diff --git a/uniper_hmi/UniperHMI/MainWindow.xaml b/uniper_hmi/UniperHMI/MainWindow.xaml
index e2e4dc8..c86d98c 100644
--- a/uniper_hmi/UniperHMI/MainWindow.xaml
+++ b/uniper_hmi/UniperHMI/MainWindow.xaml
@@ -67,7 +67,7 @@
-
+
@@ -82,10 +82,10 @@
-
+
-
+
diff --git a/uniper_hmi/UniperHMI/MainWindowVM.cs b/uniper_hmi/UniperHMI/MainWindowVM.cs
index b2bad13..2d288c5 100644
--- a/uniper_hmi/UniperHMI/MainWindowVM.cs
+++ b/uniper_hmi/UniperHMI/MainWindowVM.cs
@@ -53,8 +53,14 @@ public sealed partial class MainWindowVM : ObservableObject, IRecipient reqBMSControlModes =
+ private ObservableCollection reqBMSControlModes =
[
new BMSControlModeEntry(E_BMS_CONTROL_MODE.AUTO_REMOTE, "Auto Remote"),
new BMSControlModeEntry(E_BMS_CONTROL_MODE.AUTO_LOCAL, "Auto Local"),
@@ -87,35 +87,9 @@ namespace UniperHMI
public void Dispose()
{
- StartButton?.Dispose();
- StartButton = null;
- StopButton?.Dispose();
- StopButton = null;
-
- _adsManager?.Deregister("GVL_SCADA.xCanChangeControlMode", CCCMChanged);
-
- _adsManager?.Deregister(_variableName + ".diSetpointAutomatic", SetpointChanged);
+
}
- [RelayCommand]
- private void StartAutomatic()
- {
- _adsManager?.WriteValue(_variableName + ".diSetpointAutomatic", Setpoint);
- }
- [RelayCommand]
- private void StopAutomatic()
- {
- _adsManager?.WriteValue(_variableName + ".diSetpointAutomatic", 0);
- Setpoint = 0;
- }
-
- public static ValidationResult ValidatePower(int power, ValidationContext context)
- {
- if (power < -40000 || power > 40000)
- return new("Must be between -40.000 and +40.000");
- else
- return ValidationResult.Success!;
- }
}
}
diff --git a/uniper_hmi/UniperHMI/Pages/ViewModels/ChuckMagazinPageVM.cs b/uniper_hmi/UniperHMI/Pages/ViewModels/ChuckMagazinPageVM.cs
index 72b5595..bbc7578 100644
--- a/uniper_hmi/UniperHMI/Pages/ViewModels/ChuckMagazinPageVM.cs
+++ b/uniper_hmi/UniperHMI/Pages/ViewModels/ChuckMagazinPageVM.cs
@@ -1,62 +1,48 @@
using CommunityToolkit.Mvvm.ComponentModel;
-using HMIToolkit;
-using System.ComponentModel.DataAnnotations;
-using Heisig.HMI.AdsManager;
using CommunityToolkit.Mvvm.Input;
-using TwinCAT.TypeSystem;
+using Heisig.HMI.AdsManager;
+using HMIToolkit;
using System.Collections.ObjectModel;
+using System.ComponentModel.DataAnnotations;
+using System.Windows;
+using TwinCAT.TypeSystem;
using UniperHMI.Model;
namespace UniperHMI
{
public sealed partial class ChuckMagazinPageVM : ObservableValidator, IDisposable
{
- private int _setpoint;
-
- [Range(-40000, 40000)]
- public int Setpoint
- {
- get => this._setpoint;
- set => SetProperty(ref this._setpoint, value, true);
- }
-
- [ObservableProperty]
- private int processValue;
-
- [ObservableProperty]
- public HMIControlButtonVM? startButton;
-
- [ObservableProperty]
- public HMIControlButtonVM? stopButton;
-
- [ObservableProperty]
- private E_BMS_CONTROL_MODE bmsControlMode;
-
- [ObservableProperty]
- public ObservableCollection reqBMSControlModes =
- [
- new BMSControlModeEntry(E_BMS_CONTROL_MODE.AUTO_REMOTE, "Auto Remote"),
- new BMSControlModeEntry(E_BMS_CONTROL_MODE.AUTO_LOCAL, "Auto Local"),
- new BMSControlModeEntry(E_BMS_CONTROL_MODE.SAFETY_CHECK, "Safety Check"),
- new BMSControlModeEntry(E_BMS_CONTROL_MODE.CAPACITY_TEST, "Capacity Test"),
- new BMSControlModeEntry(E_BMS_CONTROL_MODE.MANUAL, "Manual")
- ];
-
- [ObservableProperty]
- private BMSControlModeEntry selectedControlMode;
-
- [ObservableProperty]
- private bool canChangeControlMode;
-
private readonly string? _variableName;
private readonly IAdsManager? _adsManager;
- public ChuckMagazinPageVM()
+ private const string sChuckOnPlace1 = "_adsVariable_MagazinPlace1";
+ private const string sChuckOnPlace2 = "_adsVariable_MagazinPlace2";
+ private const string sChuckOnPlace3 = "_adsVariable_MagazinPlace3";
+ private const string sChuckOnPlace4 = "_adsVariable_MagazinPlace4";
+ private const string sChuckOnPlace5 = "_adsVariable_MagazinPlace5";
+ private const string sChuckOnPlace6 = "_adsVariable_MagazinPlace6";
+
+ [ObservableProperty]
+ private Visibility magazinPlace1;
+
+ [ObservableProperty]
+ private Visibility magazinPlace2;
+
+ [ObservableProperty]
+ private Visibility magazinPlace3;
+
+ [ObservableProperty]
+ private Visibility magazinPlace4;
+
+ [ObservableProperty]
+ private Visibility magazinPlace5;
+
+ [ObservableProperty]
+ private Visibility magazinPlace6;
+
+ public ChuckMagazinPageVM()
{
- StartButton = new HMIControlButtonVM();
- StopButton = new HMIControlButtonVM();
- SelectedControlMode = ReqBMSControlModes[1];
- canChangeControlMode = true;
+
}
public ChuckMagazinPageVM(IAdsManager adsManager, string variableName)
@@ -64,57 +50,91 @@ namespace UniperHMI
_adsManager = adsManager;
_variableName = variableName;
- //StartButton = new HMIControlButtonVM(_adsManager, _variableName + ".stStartAutoButton");
- //StopButton = new HMIControlButtonVM(_adsManager, _variableName + ".stStopAutoButton");
+ _adsManager.Register(sChuckOnPlace1, ChuckOnPlace1Changed);
+ _adsManager.Register(sChuckOnPlace2, ChuckOnPlace2Changed);
+ _adsManager.Register(sChuckOnPlace3, ChuckOnPlace3Changed);
+ _adsManager.Register(sChuckOnPlace4, ChuckOnPlace4Changed);
+ _adsManager.Register(sChuckOnPlace5, ChuckOnPlace5Changed);
+ _adsManager.Register(sChuckOnPlace6, ChuckOnPlace6Changed);
- SelectedControlMode = ReqBMSControlModes[1];
+ }
- _adsManager.Register("GVL_SCADA.xCanChangeControlMode", CCCMChanged);
+ private void ChuckOnPlace1Changed(object? sender, ValueChangedEventArgs e)
+ {
+ if ((bool)e.Value)
+ {
+ MagazinPlace1 = Visibility.Visible;
+ }
+ else
+ {
+ MagazinPlace1 = Visibility.Hidden;
+ }
+ }
+ private void ChuckOnPlace2Changed(object? sender, ValueChangedEventArgs e)
+ {
+ if ((bool)e.Value)
+ {
+ MagazinPlace2 = Visibility.Visible;
+ }
+ else
+ {
+ MagazinPlace2 = Visibility.Hidden;
+ }
+ }
+ private void ChuckOnPlace3Changed(object? sender, ValueChangedEventArgs e)
+ {
+ if ((bool)e.Value)
+ {
+ MagazinPlace3 = Visibility.Visible;
+ }
+ else
+ {
+ MagazinPlace3 = Visibility.Hidden;
+ }
+ }
+ private void ChuckOnPlace4Changed(object? sender, ValueChangedEventArgs e)
+ {
+ if ((bool)e.Value)
+ {
+ MagazinPlace4 = Visibility.Visible;
+ }
+ else
+ {
+ MagazinPlace4 = Visibility.Hidden;
+ }
+ }
+ private void ChuckOnPlace5Changed(object? sender, ValueChangedEventArgs e)
+ {
+ if ((bool)e.Value)
+ {
+ MagazinPlace5 = Visibility.Visible;
+ }
+ else
+ {
+ MagazinPlace5 = Visibility.Hidden;
+ }
+ }
+ private void ChuckOnPlace6Changed(object? sender, ValueChangedEventArgs e)
+ {
+ if ((bool)e.Value)
+ {
+ MagazinPlace6 = Visibility.Visible;
+ }
+ else
+ {
+ MagazinPlace6 = Visibility.Hidden;
+ }
+ }
- _adsManager.Register(_variableName + ".diSetpointAutomatic", SetpointChanged);
- }
- private void SetpointChanged(object? sender, ValueChangedEventArgs e)
+ public void Dispose()
{
- Setpoint = (int)e.Value;
- }
-
- private void CCCMChanged(object? sender, ValueChangedEventArgs e)
- {
- CanChangeControlMode = (bool)e.Value;
- }
-
- public void Dispose()
- {
- StartButton?.Dispose();
- StartButton = null;
- StopButton?.Dispose();
- StopButton = null;
-
- _adsManager?.Deregister("GVL_SCADA.xCanChangeControlMode", CCCMChanged);
-
- _adsManager?.Deregister(_variableName + ".diSetpointAutomatic", SetpointChanged);
- }
-
- [RelayCommand]
- private void StartAutomatic()
- {
- _adsManager?.WriteValue(_variableName + ".diSetpointAutomatic", Setpoint);
- }
-
- [RelayCommand]
- private void StopAutomatic()
- {
- _adsManager?.WriteValue(_variableName + ".diSetpointAutomatic", 0);
- Setpoint = 0;
- }
-
- public static ValidationResult ValidatePower(int power, ValidationContext context)
- {
- if (power < -40000 || power > 40000)
- return new("Must be between -40.000 and +40.000");
- else
- return ValidationResult.Success!;
- }
+ _adsManager?.Deregister(sChuckOnPlace1, ChuckOnPlace1Changed);
+ _adsManager?.Deregister(sChuckOnPlace2, ChuckOnPlace2Changed);
+ _adsManager?.Deregister(sChuckOnPlace3, ChuckOnPlace3Changed);
+ _adsManager?.Deregister(sChuckOnPlace4, ChuckOnPlace4Changed);
+ _adsManager?.Deregister(sChuckOnPlace5, ChuckOnPlace5Changed);
+ _adsManager?.Deregister(sChuckOnPlace6, ChuckOnPlace6Changed);
+ }
}
}
diff --git a/uniper_hmi/UniperHMI/Pages/ViewModels/HotCoolPlatePageVM.cs b/uniper_hmi/UniperHMI/Pages/ViewModels/HotCoolPlatePageVM.cs
index 7e7542d..14f6c01 100644
--- a/uniper_hmi/UniperHMI/Pages/ViewModels/HotCoolPlatePageVM.cs
+++ b/uniper_hmi/UniperHMI/Pages/ViewModels/HotCoolPlatePageVM.cs
@@ -105,7 +105,11 @@ namespace UniperHMI
[ObservableProperty]
private Visibility coolPlateVisibility9;
+ public HotCoolPlatePageVM()
+ {
+
+ }
public HotCoolPlatePageVM(IAdsManager adsManager, string variableName)
{
_adsManager = adsManager;
@@ -347,27 +351,27 @@ namespace UniperHMI
public void Dispose()
{
- _adsManager?.Register(sHotplateActualTemp, HotplateTempChanged);
- _adsManager?.Register(sCoolplateActualTemp, CoolplateTempChanged);
- _adsManager?.Register(sPieceOnHotplate1, HotplatePiece1Changed);
- _adsManager?.Register(sPieceOnHotplate2, HotplatePiece2Changed);
- _adsManager?.Register(sPieceOnHotplate3, HotplatePiece3Changed);
- _adsManager?.Register(sPieceOnHotplate4, HotplatePiece4Changed);
- _adsManager?.Register(sPieceOnHotplate5, HotplatePiece5Changed);
- _adsManager?.Register(sPieceOnHotplate6, HotplatePiece6Changed);
- _adsManager?.Register(sPieceOnHotplate7, HotplatePiece7Changed);
- _adsManager?.Register(sPieceOnHotplate8, HotplatePiece8Changed);
- _adsManager?.Register(sPieceOnHotplate9, HotplatePiece9Changed);
+ _adsManager?.Deregister(sHotplateActualTemp, HotplateTempChanged);
+ _adsManager?.Deregister(sCoolplateActualTemp, CoolplateTempChanged);
+ _adsManager?.Deregister(sPieceOnHotplate1, HotplatePiece1Changed);
+ _adsManager?.Deregister(sPieceOnHotplate2, HotplatePiece2Changed);
+ _adsManager?.Deregister(sPieceOnHotplate3, HotplatePiece3Changed);
+ _adsManager?.Deregister(sPieceOnHotplate4, HotplatePiece4Changed);
+ _adsManager?.Deregister(sPieceOnHotplate5, HotplatePiece5Changed);
+ _adsManager?.Deregister(sPieceOnHotplate6, HotplatePiece6Changed);
+ _adsManager?.Deregister(sPieceOnHotplate7, HotplatePiece7Changed);
+ _adsManager?.Deregister(sPieceOnHotplate8, HotplatePiece8Changed);
+ _adsManager?.Deregister(sPieceOnHotplate9, HotplatePiece9Changed);
- _adsManager?.Register(sPieceOnCoolplate1, CoolplatePiece1Changed);
- _adsManager?.Register(sPieceOnCoolplate2, CoolplatePiece2Changed);
- _adsManager?.Register(sPieceOnCoolplate3, CoolplatePiece3Changed);
- _adsManager?.Register(sPieceOnCoolplate4, CoolplatePiece4Changed);
- _adsManager?.Register(sPieceOnCoolplate5, CoolplatePiece5Changed);
- _adsManager?.Register(sPieceOnCoolplate6, CoolplatePiece6Changed);
- _adsManager?.Register(sPieceOnCoolplate7, CoolplatePiece7Changed);
- _adsManager?.Register(sPieceOnCoolplate8, CoolplatePiece8Changed);
- _adsManager?.Register(sPieceOnCoolplate9, CoolplatePiece9Changed);
+ _adsManager?.Deregister(sPieceOnCoolplate1, CoolplatePiece1Changed);
+ _adsManager?.Deregister(sPieceOnCoolplate2, CoolplatePiece2Changed);
+ _adsManager?.Deregister(sPieceOnCoolplate3, CoolplatePiece3Changed);
+ _adsManager?.Deregister(sPieceOnCoolplate4, CoolplatePiece4Changed);
+ _adsManager?.Deregister(sPieceOnCoolplate5, CoolplatePiece5Changed);
+ _adsManager?.Deregister(sPieceOnCoolplate6, CoolplatePiece6Changed);
+ _adsManager?.Deregister(sPieceOnCoolplate7, CoolplatePiece7Changed);
+ _adsManager?.Deregister(sPieceOnCoolplate8, CoolplatePiece8Changed);
+ _adsManager?.Deregister(sPieceOnCoolplate9, CoolplatePiece9Changed);
}
}
diff --git a/uniper_hmi/UniperHMI/Pages/ViewModels/KukaRobotPageVM.cs b/uniper_hmi/UniperHMI/Pages/ViewModels/KukaRobotPageVM.cs
index ef29151..5ca496b 100644
--- a/uniper_hmi/UniperHMI/Pages/ViewModels/KukaRobotPageVM.cs
+++ b/uniper_hmi/UniperHMI/Pages/ViewModels/KukaRobotPageVM.cs
@@ -28,6 +28,9 @@ namespace UniperHMI
private const string sJobGrippType = "_adsVariable_kukaJobGrippType";
private const string sChuckMagazinPlace = "_adsVariable_kukaChuckMagazinPlace";
private const string sSelectedRobotJob = "_adsVariable_kukaRobotJob";
+ private const string sActiveRobotJob = "_adsVariable_kukaActiveRobotJob";
+ private const string sFinishedRobotJob = "_adsVariable_kukaFinishedRobotJob";
+ private const string sSelectedPLCJob = "_adsVariable_kukaPLCJob";
private const string sOffsetPick_X = "_adsVariable_kukaOffsetPick_X";
private const string sOffsetPick_Y = "_adsVariable_kukaOffsetPick_Y";
private const string sOffsetPlace_X = "_adsVariable_kukaOffsetPlace_X";
@@ -51,25 +54,25 @@ namespace UniperHMI
private E_BMS_CONTROL_MODE bmsControlMode;
[ObservableProperty]
- public bool canChangeRobotJob;
+ private bool canChangeRobotJob;
[ObservableProperty]
- public RobotJobentry robotJobActiveValue;
+ private RobotJobentry robotJobActiveValue;
[ObservableProperty]
- public RobotJobentry robotJobFinishedValue;
+ private RobotJobentry robotJobFinishedValue;
[ObservableProperty]
- public bool canStartRobotJob;
+ private bool canStartRobotJob;
[ObservableProperty]
- public HMIControlButtonVM? startButton;
+ private HMIControlButtonVM? startButton;
[ObservableProperty]
- public bool canAbortRobotJob;
+ private bool canAbortRobotJob;
[ObservableProperty]
- public HMIControlButtonVM? abortButton;
+ private HMIControlButtonVM? abortButton;
private int jobGrippSide;
@@ -84,7 +87,7 @@ namespace UniperHMI
}
[ObservableProperty]
- public bool canChangeJobGrippSide;
+ private bool canChangeJobGrippSide;
private int jobGrippType;
@@ -100,7 +103,7 @@ namespace UniperHMI
}
[ObservableProperty]
- public bool canChangeJobGrippType;
+ private bool canChangeJobGrippType;
private int chuckMagazinPlace;
@@ -115,7 +118,7 @@ namespace UniperHMI
}
[ObservableProperty]
- public bool canChangeChuckMagazinPlace;
+ private bool canChangeChuckMagazinPlace;
private double pieceThickness;
@@ -130,7 +133,7 @@ namespace UniperHMI
}
[ObservableProperty]
- public bool canChangePieceThickness;
+ private bool canChangePieceThickness;
private double offsetPick_X;
@@ -156,7 +159,7 @@ namespace UniperHMI
}
}
[ObservableProperty]
- public bool canChangeOffsetPick;
+ private bool canChangeOffsetPick;
private double offsetPlace_X;
@@ -183,7 +186,7 @@ namespace UniperHMI
[ObservableProperty]
- public bool canChangeOffsetPlace;
+ private bool canChangeOffsetPlace;
private double offsetNIOPick_X;
@@ -208,7 +211,7 @@ namespace UniperHMI
}
}
[ObservableProperty]
- public bool canChangeOffsetNIOPick;
+ private bool canChangeOffsetNIOPick;
private double offsetNIOPlace_X;
@@ -233,7 +236,7 @@ namespace UniperHMI
}
}
[ObservableProperty]
- public bool canChangeOffsetNIOPlace;
+ private bool canChangeOffsetNIOPlace;
private int hotplateIndex;
@@ -249,7 +252,7 @@ namespace UniperHMI
}
[ObservableProperty]
- public bool canChangeHotPlateIndex;
+ private bool canChangeHotPlateIndex;
private int coolplateIndex;
@@ -265,13 +268,13 @@ namespace UniperHMI
[ObservableProperty]
- public bool canChangeCoolPlateIndex;
+ private bool canChangeCoolPlateIndex;
[ObservableProperty]
private RobotJobenum robotJob;
[ObservableProperty]
- public ObservableCollection robotJobs =
+ private ObservableCollection robotJobs =
[
new RobotJobentry(RobotJobenum.NONE, " ------- "),
new RobotJobentry(RobotJobenum.PICK_TRAYFEEDER, "10 - Hole Teil von Trayfeeder 'Eingabe' "),
@@ -305,7 +308,7 @@ namespace UniperHMI
];
[ObservableProperty]
- public ObservableCollection pLCJobs =
+ private ObservableCollection pLCJobs =
[
new PLCJobentry(PLCJobenum.NONE, " ------- "),
new PLCJobentry(PLCJobenum.SCAN_QR_CODE, "10 - QR Code Scannen"),
@@ -366,54 +369,136 @@ namespace UniperHMI
currentControlMode = new BMSControlModeEntry(E_BMS_CONTROL_MODE.MANUAL, "Manual");
CurrentControlMode = new BMSControlModeEntry(E_BMS_CONTROL_MODE.MANUAL, "Manual");
- selectedRobotJob = RobotJobs.First(i => i.eJob == RobotJobenum.WARMUP);
+ _adsManager.Register(sJobGrippSide, OnJobGrippSideValueChanged);
+ _adsManager.Register(sJobGrippType, OnJobGrippTypeValueChanged);
+ _adsManager.Register(sChuckMagazinPlace, OnChuckMagazinPlaceValueChanged);
+ _adsManager.Register(sPieceThickness, OnPieceThicknessValueChanged);
+ _adsManager.Register(sSelectedPLCJob, OnSelectedPLCJobValueChanged);
+ _adsManager.Register(sSelectedRobotJob, OnSelectedRobotJobValueChanged);
+ _adsManager.Register(sActiveRobotJob, OnActiveRobotJobValueChanged);
+ _adsManager.Register(sFinishedRobotJob, OnFinishedRobotJobValueChanged);
+ _adsManager.Register(sOffsetPick_X, OnOffsetPickYValueChanged);
+ _adsManager.Register(sOffsetPick_Y, OnOffsetPickXValueChanged);
+ _adsManager.Register(sCoolplateIndex, OnCoolPlateIndexValueChanged);
+ _adsManager.Register(sHotplateIndex, OnHotPlateIndexValueChanged);
+ _adsManager.Register(sOffsetNIOPlace_Y, OnOffsetNIOPlaceYValueChanged);
+ _adsManager.Register(sOffsetNIOPlace_X, OnOffsetNIOPlaceXValueChanged);
+ _adsManager.Register(sOffsetNIOPick_Y, OnOffsetNIOPickYValueChanged);
+ _adsManager.Register(sOffsetNIOPick_X, OnOffsetNIOPickXValueChanged);
+ _adsManager.Register(sOffsetPlace_Y, OnOffsetPlaceYValueChanged);
+ _adsManager.Register(sOffsetPlace_X, OnOffsetNIOPlaceXValueChanged);
+
canChangeRobotJob = true;
- selectedPLCJob = PLCJobs.First(i => i.eJob == PLCJobenum.NONE);
+ canChangeJobGrippType = false;
- jobGrippSide = 1;
- jobGrippType = 2;
- canChangeJobGrippType = false;
- robotJobActiveValue = RobotJobs.First(i => i.eJob == RobotJobenum.PUT_HVTEST_COLD);
- robotJobFinishedValue = RobotJobs.First(i => i.eJob == RobotJobenum.PICK_HOTPLATE);
-
- chuckMagazinPlace = 2;
canChangeChuckMagazinPlace = false;
canChangeJobGrippType = false;
+ _adsManager.Register("GVL_SCADA.eCurrentControlMode", CurrentControlModeChanged);
-
- pieceThickness = 2.7;
-
- offsetPlace_X = 88;
- offsetPlace_Y = 79;
-
- offsetPick_X = 89;
- offsetPick_Y = 81;
-
- offsetNIOPick_X = 176;
- offsetNIOPick_Y = 90;
-
- offsetNIOPlace_X = 123;
- offsetNIOPlace_Y = 313;
-
- hotplateIndex = 3;
- coolplateIndex = 5;
-
- //_adsManager.Register("GVL_SCADA.eCurrentControlMode", CurrentControlModeChanged);
-
- //_adsManager.Register(_variableName + ".diSetpointAutomatic", SetpointChanged);
}
- public void Dispose()
+ private void OnJobGrippSideValueChanged(object sender, ValueChangedEventArgs e)
+ {
+ jobGrippSide = (int)e.Value;
+ }
+ private void OnJobGrippTypeValueChanged(object sender, ValueChangedEventArgs e)
+ {
+ jobGrippType = (int)e.Value;
+ }
+ private void OnChuckMagazinPlaceValueChanged(object sender, ValueChangedEventArgs e)
+ {
+ chuckMagazinPlace = (int)e.Value;
+ }
+ private void OnPieceThicknessValueChanged(object sender, ValueChangedEventArgs e)
+ {
+ pieceThickness = (int)e.Value;
+ }
+ private void OnSelectedPLCJobValueChanged(object sender, ValueChangedEventArgs e)
+ {
+ selectedPLCJob = PLCJobs.First(i => (int)i.eJob == (int)e.Value);
+ }
+ private void OnSelectedRobotJobValueChanged(object sender, ValueChangedEventArgs e)
+ {
+ selectedRobotJob = RobotJobs.First(i => (int)i.eJob == (int)e.Value);
+ }
+ private void OnActiveRobotJobValueChanged(object sender, ValueChangedEventArgs e)
+ {
+ robotJobActiveValue = RobotJobs.First(i => (int)i.eJob == (int)e.Value);
+ }
+ private void OnFinishedRobotJobValueChanged(object sender, ValueChangedEventArgs e)
+ {
+ robotJobFinishedValue = RobotJobs.First(i => (int)i.eJob == (int)e.Value);
+ }
+ private void OnHotPlateIndexValueChanged(object sender, ValueChangedEventArgs e)
+ {
+ hotplateIndex = (int)e.Value;
+ }
+ private void OnCoolPlateIndexValueChanged(object sender, ValueChangedEventArgs e)
+ {
+ coolplateIndex = (int)e.Value;
+ }
+ private void OnOffsetPickXValueChanged(object sender, ValueChangedEventArgs e)
+ {
+ offsetPick_X = (double)e.Value;
+ }
+ private void OnOffsetPickYValueChanged(object sender, ValueChangedEventArgs e)
+ {
+ offsetPick_Y = (double)e.Value;
+ }
+ private void OnOffsetPlaceXValueChanged(object sender, ValueChangedEventArgs e)
+ {
+ offsetPlace_X = (double)e.Value;
+ }
+ private void OnOffsetPlaceYValueChanged(object sender, ValueChangedEventArgs e)
+ {
+ offsetPlace_X = (double)e.Value;
+ }
+ private void OnOffsetNIOPickXValueChanged(object sender, ValueChangedEventArgs e)
+ {
+ offsetNIOPick_X = (double)e.Value;
+ }
+ private void OnOffsetNIOPickYValueChanged(object sender, ValueChangedEventArgs e)
+ {
+ offsetNIOPick_Y = (double)e.Value;
+ }
+ private void OnOffsetNIOPlaceXValueChanged(object sender, ValueChangedEventArgs e)
+ {
+ offsetNIOPlace_X = (double)e.Value;
+ }
+ private void OnOffsetNIOPlaceYValueChanged(object sender, ValueChangedEventArgs e)
+ {
+ OffsetNIOPlace_Y = (double)e.Value;
+ }
+
+ public void Dispose()
{
StartButton?.Dispose();
StartButton = null;
AbortButton?.Dispose();
AbortButton = null;
+ _adsManager?.Deregister(sJobGrippSide, OnJobGrippSideValueChanged);
+ _adsManager?.Deregister(sJobGrippType, OnJobGrippTypeValueChanged);
+ _adsManager?.Deregister(sChuckMagazinPlace, OnChuckMagazinPlaceValueChanged);
+ _adsManager?.Deregister(sPieceThickness, OnPieceThicknessValueChanged);
+ _adsManager?.Deregister(sSelectedPLCJob, OnSelectedPLCJobValueChanged);
+ _adsManager?.Deregister(sSelectedRobotJob, OnSelectedRobotJobValueChanged);
+ _adsManager?.Deregister(sActiveRobotJob, OnActiveRobotJobValueChanged);
+ _adsManager?.Deregister(sFinishedRobotJob, OnFinishedRobotJobValueChanged);
+ _adsManager?.Deregister(sOffsetPick_X, OnOffsetPickYValueChanged);
+ _adsManager?.Deregister(sOffsetPick_Y, OnOffsetPickXValueChanged);
+ _adsManager?.Deregister(sCoolplateIndex, OnCoolPlateIndexValueChanged);
+ _adsManager?.Deregister(sHotplateIndex, OnHotPlateIndexValueChanged);
+ _adsManager?.Deregister(sOffsetNIOPlace_Y, OnOffsetNIOPlaceYValueChanged);
+ _adsManager?.Deregister(sOffsetNIOPlace_X, OnOffsetNIOPlaceXValueChanged);
+ _adsManager?.Deregister(sOffsetNIOPick_Y, OnOffsetNIOPickYValueChanged);
+ _adsManager?.Deregister(sOffsetNIOPick_X, OnOffsetNIOPickXValueChanged);
+ _adsManager?.Deregister(sOffsetPlace_Y, OnOffsetPlaceYValueChanged);
+ _adsManager?.Deregister(sOffsetPlace_X, OnOffsetNIOPlaceXValueChanged);
+
_adsManager?.Deregister("GVL_SCADA.eCurrentControlMode", CurrentControlModeChanged);
- //_adsManager?.Deregister(_variableName + ".diSetpointAutomatic", SetpointChanged);
}
private void CurrentControlModeChanged(object? sender, ValueChangedEventArgs e)
diff --git a/uniper_hmi/UniperHMI/Pages/ViewModels/NIOStationPageVM.cs b/uniper_hmi/UniperHMI/Pages/ViewModels/NIOStationPageVM.cs
index 5cf5747..c4e38ef 100644
--- a/uniper_hmi/UniperHMI/Pages/ViewModels/NIOStationPageVM.cs
+++ b/uniper_hmi/UniperHMI/Pages/ViewModels/NIOStationPageVM.cs
@@ -11,53 +11,18 @@ namespace UniperHMI
{
public sealed partial class NIOStationPageVM : ObservableValidator, IDisposable
{
- private int _setpoint;
-
- [Range(-40000, 40000)]
- public int Setpoint
- {
- get => this._setpoint;
- set => SetProperty(ref this._setpoint, value, true);
- }
-
- [ObservableProperty]
- private int processValue;
-
- [ObservableProperty]
- public HMIControlButtonVM? startButton;
-
- [ObservableProperty]
- public HMIControlButtonVM? stopButton;
-
- [ObservableProperty]
- private E_BMS_CONTROL_MODE bmsControlMode;
-
- [ObservableProperty]
- public ObservableCollection reqBMSControlModes =
- [
- new BMSControlModeEntry(E_BMS_CONTROL_MODE.AUTO_REMOTE, "Auto Remote"),
- new BMSControlModeEntry(E_BMS_CONTROL_MODE.AUTO_LOCAL, "Auto Local"),
- new BMSControlModeEntry(E_BMS_CONTROL_MODE.SAFETY_CHECK, "Safety Check"),
- new BMSControlModeEntry(E_BMS_CONTROL_MODE.CAPACITY_TEST, "Capacity Test"),
- new BMSControlModeEntry(E_BMS_CONTROL_MODE.MANUAL, "Manual")
- ];
-
- [ObservableProperty]
- private BMSControlModeEntry selectedControlMode;
-
- [ObservableProperty]
- private bool canChangeControlMode;
+
private readonly string? _variableName;
private readonly IAdsManager? _adsManager;
+ [ObservableProperty]
+ private BinaryValveControlVM cylinderNIOPlateVM;
+
public NIOStationPageVM()
{
- StartButton = new HMIControlButtonVM();
- StopButton = new HMIControlButtonVM();
- SelectedControlMode = ReqBMSControlModes[1];
- canChangeControlMode = true;
+ cylinderNIOPlateVM = new BinaryValveControlVM();
}
public NIOStationPageVM(IAdsManager adsManager, string variableName)
@@ -65,57 +30,16 @@ namespace UniperHMI
_adsManager = adsManager;
_variableName = variableName;
- //StartButton = new HMIControlButtonVM(_adsManager, _variableName + ".stStartAutoButton");
- //StopButton = new HMIControlButtonVM(_adsManager, _variableName + ".stStopAutoButton");
+ cylinderNIOPlateVM = new BinaryValveControlVM(_adsManager, _variableName);
- SelectedControlMode = ReqBMSControlModes[1];
- _adsManager.Register("GVL_SCADA.xCanChangeControlMode", CCCMChanged);
-
- _adsManager.Register(_variableName + ".diSetpointAutomatic", SetpointChanged);
- }
-
- private void SetpointChanged(object? sender, ValueChangedEventArgs e)
- {
- Setpoint = (int)e.Value;
- }
-
- private void CCCMChanged(object? sender, ValueChangedEventArgs e)
- {
- CanChangeControlMode = (bool)e.Value;
}
public void Dispose()
{
- StartButton?.Dispose();
- StartButton = null;
- StopButton?.Dispose();
- StopButton = null;
-
- _adsManager?.Deregister("GVL_SCADA.xCanChangeControlMode", CCCMChanged);
-
- _adsManager?.Deregister(_variableName + ".diSetpointAutomatic", SetpointChanged);
+ CylinderNIOPlateVM?.Dispose();
}
- [RelayCommand]
- private void StartAutomatic()
- {
- _adsManager?.WriteValue(_variableName + ".diSetpointAutomatic", Setpoint);
- }
-
- [RelayCommand]
- private void StopAutomatic()
- {
- _adsManager?.WriteValue(_variableName + ".diSetpointAutomatic", 0);
- Setpoint = 0;
- }
-
- public static ValidationResult ValidatePower(int power, ValidationContext context)
- {
- if (power < -40000 || power > 40000)
- return new("Must be between -40.000 and +40.000");
- else
- return ValidationResult.Success!;
- }
+
}
}
diff --git a/uniper_hmi/UniperHMI/Pages/Views/ChuckMagazinPage.xaml b/uniper_hmi/UniperHMI/Pages/Views/ChuckMagazinPage.xaml
index ce1bf77..413bf70 100644
--- a/uniper_hmi/UniperHMI/Pages/Views/ChuckMagazinPage.xaml
+++ b/uniper_hmi/UniperHMI/Pages/Views/ChuckMagazinPage.xaml
@@ -9,41 +9,56 @@
d:DesignHeight="800" d:DesignWidth="1850"
Title="Blablubb">
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
+
diff --git a/uniper_hmi/UniperHMI/Pages/Views/HotCoolPlatePage.xaml b/uniper_hmi/UniperHMI/Pages/Views/HotCoolPlatePage.xaml
index d247c1f..dea0c93 100644
--- a/uniper_hmi/UniperHMI/Pages/Views/HotCoolPlatePage.xaml
+++ b/uniper_hmi/UniperHMI/Pages/Views/HotCoolPlatePage.xaml
@@ -44,11 +44,11 @@
-
+
-
+
diff --git a/uniper_hmi/UniperHMI/Pages/Views/KukaRobotPage.xaml b/uniper_hmi/UniperHMI/Pages/Views/KukaRobotPage.xaml
index 139ddc3..92f59e9 100644
--- a/uniper_hmi/UniperHMI/Pages/Views/KukaRobotPage.xaml
+++ b/uniper_hmi/UniperHMI/Pages/Views/KukaRobotPage.xaml
@@ -7,7 +7,7 @@
mc:Ignorable="d"
d:DataContext="{d:DesignInstance Type=local:AutomaticModePageVM, IsDesignTimeCreatable=True}"
d:DesignHeight="800" d:DesignWidth="1850"
- Title="Blablubb">
+ Title="KukaRobotPage">
diff --git a/uniper_hmi/UniperHMI/Pages/Views/NIOStationPage.xaml b/uniper_hmi/UniperHMI/Pages/Views/NIOStationPage.xaml
index 4567885..5ff2056 100644
--- a/uniper_hmi/UniperHMI/Pages/Views/NIOStationPage.xaml
+++ b/uniper_hmi/UniperHMI/Pages/Views/NIOStationPage.xaml
@@ -1,49 +1,43 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+