Changes in Description

Add new Paramcontrol with Range Validation
move Values from general to Etcher-Robot step Table
Add File Extension to Save/Open File Dialog
This commit is contained in:
2026-03-09 12:19:09 +01:00
parent ff9add4081
commit a753f1c7a7
7 changed files with 199 additions and 47 deletions

View File

@@ -48,8 +48,6 @@ public sealed partial class ReceipePageVM : ObservableValidator, IDisposable
TargetTemperatureCoolplateVm.IsChanged ||
PermissibleBeamParamDeviationsVm.IsChanged ||
TimeIntervallBeamCheckVm.IsChanged ||
RadialPosLowerWaterJetVm.IsChanged ||
ChuckRpmVm.IsChanged ||
HvmaxTestCurrentVm.IsChanged ||
Hvn2PrePurgeTimeVm.IsChanged ||
HvnumRetriesVm.IsChanged ||
@@ -123,7 +121,7 @@ public sealed partial class ReceipePageVM : ObservableValidator, IDisposable
private ParamControlFloatVm hvtestFrequencyVm = new();
[ObservableProperty]
private ParamControlIntVm hvpolarityVm = new();
private ParamControlIntRangeVm hvpolarityVm = new();
[ObservableProperty]
private ParamControlFloatVm hvtestPressureN2Vm = new();
@@ -145,16 +143,10 @@ public sealed partial class ReceipePageVM : ObservableValidator, IDisposable
[ObservableProperty]
private ParamControlIntVm numberRobotPositionsVm = new();
[ObservableProperty]
private ParamControlFloatVm chuckRpmVm = new();
[ObservableProperty]
private ObservableCollection<EtcherRobotStepData> etcherRobotSteps;
[ObservableProperty]
private ParamControlFloatVm radialPosLowerWaterJetVm = new();
[ObservableProperty]
private ParamControlIntVm flowNodeCountVm = new();
@@ -404,6 +396,9 @@ public sealed partial class ReceipePageVM : ObservableValidator, IDisposable
PosZ = 0.0f,
MoveSpeed = 0.0f,
AngleAlpha = 0.0f,
AngleGamma = 0.0f,
ChuckRpm = 0.0f,
RadialposUnderwater = 0.0f,
WaterFromAbove = false,
WaterFromBelow = false,
Medium = 0,
@@ -430,6 +425,9 @@ public sealed partial class ReceipePageVM : ObservableValidator, IDisposable
PosZ = etchStep.PosZ,
MoveSpeed = etchStep.MoveSpeed,
AngleAlpha = etchStep.AngleAlpha,
AngleGamma = etchStep.AngleGamma,
ChuckRpm = etchStep.ChuckRpm,
RadialposUnderwater = etchStep.RadialposUnderwater,
WaterFromAbove = etchStep.WaterFromAbove,
WaterFromBelow = etchStep.WaterFromBelow,
Medium = etchStep.Medium,
@@ -515,9 +513,7 @@ public sealed partial class ReceipePageVM : ObservableValidator, IDisposable
PermissibleBeamParamDeviationsVm.AcceptChanges();
TimeIntervallBeamCheckVm.AcceptChanges();
RadialPosLowerWaterJetVm.AcceptChanges();
ChuckRpmVm.AcceptChanges();
HvmaxTestCurrentVm.AcceptChanges();
Hvn2PrePurgeTimeVm.AcceptChanges();
HvnumRetriesVm.AcceptChanges();
@@ -530,6 +526,9 @@ public sealed partial class ReceipePageVM : ObservableValidator, IDisposable
HvtestVoltageVm.AcceptChanges();
HvtestPressureN2Vm.AcceptChanges();
FlowReceipe.AcceptChanges();
trayPositionsCollectionChanged = false;
etcherRobotStepsCollectionChanged = false;
flowreceipeCollectionChanged = false;
}
[RelayCommand]
@@ -547,10 +546,7 @@ public sealed partial class ReceipePageVM : ObservableValidator, IDisposable
PermissibleBeamParamDeviationsVm.DiscardChanges();
TimeIntervallBeamCheckVm.DiscardChanges();
RadialPosLowerWaterJetVm.DiscardChanges();
ChuckRpmVm.DiscardChanges();
HvmaxTestCurrentVm.DiscardChanges();
Hvn2PrePurgeTimeVm.DiscardChanges();
HvnumRetriesVm.DiscardChanges();
@@ -584,6 +580,7 @@ public sealed partial class ReceipePageVM : ObservableValidator, IDisposable
public void ReadReceipeFile()
{
var dlg = new OpenFileDialog();
dlg.Filter = "XML-Dateien (*.xml)|*.xml|Alle Dateien (*.*)|*.*";
if (dlg.ShowDialog() != true)
return;
@@ -599,6 +596,7 @@ public sealed partial class ReceipePageVM : ObservableValidator, IDisposable
public void WriteReceipeFile()
{
var dlg = new SaveFileDialog();
dlg.Filter = "XML-Dateien (*.xml)|*.xml|Alle Dateien (*.*)|*.*";
if (dlg.ShowDialog() != true)
return;
@@ -656,9 +654,7 @@ public sealed partial class ReceipePageVM : ObservableValidator, IDisposable
PermissibleBeamParamDeviationsVm.PropertyChanged += NewData;
TimeIntervallBeamCheckVm.PropertyChanged += NewData;
RadialPosLowerWaterJetVm.PropertyChanged += NewData;
ChuckRpmVm.PropertyChanged += NewData;
HvmaxTestCurrentVm.PropertyChanged += NewData;
Hvn2PrePurgeTimeVm.PropertyChanged += NewData;
HvnumRetriesVm.PropertyChanged += NewData;
@@ -724,12 +720,12 @@ public sealed partial class ReceipePageVM : ObservableValidator, IDisposable
RestingTimeCoolplateVm.SName = "Verweilzeit Kühlplatte: ";
TargetTemperatureCoolplateVm.SName = "Zieltemperatur Kühlplatte";
RadialPosLowerWaterJetVm.SName = "Radial Position Unterwasserstrahl: ";
ChuckRpmVm.SName = "Drehzahl: ";
HvmaxTestCurrentVm.SName = "HV: Max. Teststrom: ";
Hvn2PrePurgeTimeVm.SName = "HV: Vorreinigungszeit: ";
HvnumRetriesVm.SName = "HV: Anzahl Wiederholversuche: ";
HvpolarityVm.SName = "HV: Polarität (1=Pos, 2=Neg): ";
HvpolarityVm.IMin = 1;
HvpolarityVm.IMax = 2;
HvrampTimeVm.SName = "HV: Rampenzeit: ";
HvtestFrequencyVm.SName = "HV: Testfrequenz: ";
HvTestOkCurrentVm.SName = "HV: Teststrom Teil OK";
@@ -789,8 +785,6 @@ public sealed partial class ReceipePageVM : ObservableValidator, IDisposable
receipe.ReceipeObject.ReceipeCoolplate.TargetTemperature = TargetTemperatureCoolplateVm.Value;
receipe.ReceipeObject.ReceipeEtcher.NumberRobotPos = (ushort)NumberRobotPositionsVm.Value;
receipe.ReceipeObject.ReceipeEtcher.RadialPosLowerWaterJet = RadialPosLowerWaterJetVm.Value;
receipe.ReceipeObject.ReceipeEtcher.Rpm = ChuckRpmVm.Value;
receipe.ReceipeObject.ReceipeEtcher.RobotStepData = new List<EtcherRobotStepData>(EtcherRobotSteps);
receipe.ReceipeObject.ReceipeHvTester.MaximumTestCurrent = HvmaxTestCurrentVm.Value;
@@ -845,8 +839,6 @@ public sealed partial class ReceipePageVM : ObservableValidator, IDisposable
TargetTemperatureCoolplateVm.Value = receipe.ReceipeObject.ReceipeCoolplate.TargetTemperature;
NumberRobotPositionsVm.Value = receipe.ReceipeObject.ReceipeEtcher.NumberRobotPos;
RadialPosLowerWaterJetVm.Value = receipe.ReceipeObject.ReceipeEtcher.RadialPosLowerWaterJet;
ChuckRpmVm.Value = receipe.ReceipeObject.ReceipeEtcher.Rpm;
EtcherRobotSteps = new(receipe.ReceipeObject.ReceipeEtcher.RobotStepData);
HvmaxTestCurrentVm.Value = receipe.ReceipeObject.ReceipeHvTester.MaximumTestCurrent;
@@ -910,6 +902,12 @@ public sealed partial class ReceipePageVM : ObservableValidator, IDisposable
EtcherRobotSteps[i].PosZ);
_adsManager.WriteValue("GVL_SCADA.stRecipeEtcher.stRobotStepData[" + i + "].rAngleAlpha",
EtcherRobotSteps[i].AngleAlpha);
_adsManager.WriteValue("GVL_SCADA.stRecipeEtcher.stRobotStepData[" + i + "].rAngleGamma",
EtcherRobotSteps[i].AngleGamma);
_adsManager.WriteValue("GVL_SCADA.stRecipeEtcher.stRobotStepData[" + i + "].rRadialPosLowerWaterJet",
EtcherRobotSteps[i].RadialposUnderwater);
_adsManager.WriteValue("GVL_SCADA.stRecipeEtcher.stRobotStepData[" + i + "].rRPM",
EtcherRobotSteps[i].ChuckRpm);
_adsManager.WriteValue("GVL_SCADA.stRecipeEtcher.stRobotStepData[" + i + "].rMoveSpeed",
EtcherRobotSteps[i].MoveSpeed);
_adsManager.WriteValue("GVL_SCADA.stRecipeEtcher.stRobotStepData[" + i + "].rDelay",
@@ -954,14 +952,11 @@ public sealed partial class ReceipePageVM : ObservableValidator, IDisposable
_adsManager.WriteValue("GVL_SCADA.stMachine.rTimeIntervalBeamCheck", TimeIntervallBeamCheckVm.Value);
_adsManager.WriteValue("GVL_SCADA.stMachine.stMasterRecipeHotplate.rRestingTime", RestingTimeHotplateVm.Value);
_adsManager.WriteValue("GVL_SCADA.stMachine.stMasterRecipeHotplate.rTemp", TargetTemperatureHotplateVm.Value);
_adsManager.WriteValue("GVL_SCADA.stMachine.stMasterRecipeCoolplate.rRestingTime",
RestingTimeCoolplateVm.Value);
_adsManager.WriteValue("GVL_SCADA.stMachine.stMasterRecipeCoolplate.rRestingTime", RestingTimeCoolplateVm.Value);
_adsManager.WriteValue("GVL_SCADA.stMachine.stMasterRecipeCoolplate.rTemp", TargetTemperatureCoolplateVm.Value);
_adsManager.WriteValue("GVL_SCADA.stMachine.stMasterRecipeEtcher.uiNumRobotPos", NumberRobotPositionsVm.Value);
_adsManager.WriteValue("GVL_SCADA.stMachine.stMasterRecipeEtcher.rRadialPosLowerWaterJet",
RadialPosLowerWaterJetVm.Value);
_adsManager.WriteValue("GVL_SCADA.stMachine.stMasterRecipeEtcher.rChuckRPM", ChuckRpmVm.Value);
_adsManager.WriteValue("GVL_SCADA.stMachine.stMasterRecipeHVTest.rTestVoltage", HvtestVoltageVm.Value);
_adsManager.WriteValue("GVL_SCADA.stMachine.stMasterRecipeHVTest.rMaxTestCurrent", HvmaxTestCurrentVm.Value);
_adsManager.WriteValue("GVL_SCADA.stMachine.stMasterRecipeHVTest.rRampTime", HvrampTimeVm.Value);
@@ -1009,6 +1004,9 @@ public sealed partial class ReceipePageVM : ObservableValidator, IDisposable
EtcherRobotSteps.Last().PosY = GetFloat(_adsManager.ReadValue("GVL_SCADA.stRecipeEtcher.stRobotStepData[" + i + "].rPosY"));
EtcherRobotSteps.Last().PosZ = GetFloat(_adsManager.ReadValue("GVL_SCADA.stRecipeEtcher.stRobotStepData[" + i + "].rPosZ"));
EtcherRobotSteps.Last().AngleAlpha = GetFloat(_adsManager.ReadValue("GVL_SCADA.stRecipeEtcher.stRobotStepData[" + i + "].rAngleAlpha"));
EtcherRobotSteps.Last().AngleGamma = GetFloat(_adsManager.ReadValue("GVL_SCADA.stRecipeEtcher.stRobotStepData[" + i + "].rAngleGamma"));
EtcherRobotSteps.Last().RadialposUnderwater = GetFloat(_adsManager.ReadValue("GVL_SCADA.stRecipeEtcher.stRobotStepData[" + i + "].rRadialPosLowerWaterJet"));
EtcherRobotSteps.Last().ChuckRpm = GetFloat(_adsManager.ReadValue("GVL_SCADA.stRecipeEtcher.stRobotStepData[" + i + "].rRPM"));
EtcherRobotSteps.Last().MoveSpeed = GetFloat(_adsManager.ReadValue("GVL_SCADA.stRecipeEtcher.stRobotStepData[" + i + "].rMoveSpeed"));
EtcherRobotSteps.Last().Delay = GetFloat(_adsManager.ReadValue("GVL_SCADA.stRecipeEtcher.stRobotStepData[" + i + "].rDelay"));
EtcherRobotSteps.Last().Medium =GetUShort(_adsManager.ReadValue("GVL_SCADA.stRecipeEtcher.stRobotStepData[" + i + "].uiMedium"));
@@ -1046,8 +1044,6 @@ public sealed partial class ReceipePageVM : ObservableValidator, IDisposable
RestingTimeCoolplateVm.Value=GetFloat(_adsManager.ReadValue("GVL_SCADA.stMachine.stMasterRecipeCoolplate.rRestingTime"));
TargetTemperatureCoolplateVm.Value = GetFloat(_adsManager.ReadValue("GVL_SCADA.stMachine.stMasterRecipeCoolplate.rTemp" ));
NumberRobotPositionsVm.Value = GetInt(_adsManager.ReadValue("GVL_SCADA.stMachine.stMasterRecipeEtcher.uiNumRobotPos"));
RadialPosLowerWaterJetVm.Value = GetFloat(_adsManager.ReadValue("GVL_SCADA.stMachine.stMasterRecipeEtcher.rRadialPosLowerWaterJet"));
ChuckRpmVm.Value = GetFloat(_adsManager.ReadValue("GVL_SCADA.stMachine.stMasterRecipeEtcher.rChuckRPM"));
HvtestVoltageVm.Value = GetFloat(_adsManager.ReadValue("GVL_SCADA.stMachine.stMasterRecipeHVTest.rTestVoltage"));
HvmaxTestCurrentVm.Value = GetFloat(_adsManager.ReadValue("GVL_SCADA.stMachine.stMasterRecipeHVTest.rMaxTestCurrent"));
HvrampTimeVm.Value = GetFloat(_adsManager.ReadValue("GVL_SCADA.stMachine.stMasterRecipeHVTest.rRampTime"));