diff --git a/PamhagenSysCtrl/Helpers/PamhagenGraph.cs b/PamhagenSysCtrl/Helpers/PamhagenGraph.cs index f1d4d0e..782af41 100644 --- a/PamhagenSysCtrl/Helpers/PamhagenGraph.cs +++ b/PamhagenSysCtrl/Helpers/PamhagenGraph.cs @@ -17,7 +17,7 @@ namespace PamhagenSysCtrl.Helpers { public readonly Pump P5; public readonly Pump P6; public readonly EncasedAuger Auger1; - public readonly EncasedAuger Auger2; + public readonly EncasedAuger Auger3; public PamhagenGraph() { double mw2X = 180; @@ -51,13 +51,13 @@ namespace PamhagenSysCtrl.Helpers { Nodes.Add(trough); Auger1 = new EncasedAuger("", (mw1X + mw2X) / 2 - 100, 200, () => App.Plant?.IsAuger1Active ?? false); - var auger3 = new EncasedAuger("Pressen-\nQuerschnecke", 40, 200, () => App.Plant?.IsPresseQuerSchneckeActive ?? false, 180, clickable: false); - Auger2 = new EncasedAuger("", 120, 80, () => App.Plant?.IsAuger2Active ?? false, 135); - var belt = new ConveyorBelt("", 90, 160, () => App.Plant?.IsBeltActive ?? false); + var auger0 = new EncasedAuger("Pressen-\nQuerschnecke", 40, 200, () => App.Plant?.IsPresseQuerSchneckeActive ?? false, 180, clickable: false); + Auger3 = new EncasedAuger("", 120, 80, () => App.Plant?.IsAuger3Active ?? false, 135); + var belt = new ConveyorBelt("", 90, 160, () => App.Plant?.IsAuger2Active ?? false); Nodes.Add(belt); Nodes.Add(Auger1); - Nodes.Add(auger3); - Nodes.Add(Auger2); + Nodes.Add(auger0); + Nodes.Add(Auger3); var rebler = new Rebler("Rebler", (mw1X + mw2X) / 2, 200, () => App.Plant?.IsReblerActive ?? false); Nodes.Add(rebler); var switcher = new Switcher("", (mw1X + mw2X) / 2, 260, () => App.Plant?.TroughSelector ?? 0, () => App.Plant == null ? 0 : App.Plant.WantMW1Selected ? 1 : 2); diff --git a/PamhagenSysCtrl/Helpers/PamhagenPlant.cs b/PamhagenSysCtrl/Helpers/PamhagenPlant.cs index a64b854..49d10be 100644 --- a/PamhagenSysCtrl/Helpers/PamhagenPlant.cs +++ b/PamhagenSysCtrl/Helpers/PamhagenPlant.cs @@ -53,10 +53,10 @@ namespace PamhagenSysCtrl.Helpers { public bool IsReblerActive => Actuators.Rebler; public bool IsStirrerMW1Active => Actuators.StirrerMW1; public bool IsStirrerMW2Active => Actuators.StirrerMW2; - public bool IsBeltActive => Actuators.Belt; public bool IsAuger1Active => Actuators.Auger1; public bool IsAuger2Active => Actuators.Auger2; - public bool IsWasteDisposalActive => IsBeltActive || IsAuger1Active || IsAuger2Active; + public bool IsAuger3Active => Actuators.Auger3; + public bool IsWasteDisposalActive => IsAuger1Active || IsAuger2Active || IsAuger3Active; public bool IsGradationPumpActive => Actuators.GradationPump; public bool IsMP1Active => Actuators.MP1 == MotorState.Forward || Actuators.MP1 == MotorState.Backward; @@ -78,10 +78,10 @@ namespace PamhagenSysCtrl.Helpers { protected static void OnUpdate(object? sender, PlantEventArgs evt) { if (sender is not PamhagenPlant p) return; - if (p.IsPresseQuerSchneckeActive && !p.IsBeltActive) p.StartBelt(); + if (p.IsPresseQuerSchneckeActive && !p.IsAuger2Active) p.StartAuger2(); if (p.IsReblerActive && !p.IsAuger1Active) p.StartAuger1(); - if (p.IsAuger1Active && !p.IsBeltActive) p.StartBelt(); - if (p.IsBeltActive && !p.IsAuger2Active) p.StartAuger2(); + if (p.IsAuger1Active && !p.IsAuger2Active) p.StartAuger2(); + if (p.IsAuger2Active && !p.IsAuger3Active) p.StartAuger3(); if (p.IsTroughAugerActive && (!p.IsReblerActive || (p.IsMWSelected && p.FillLevelMW1 == FillState.Full) || (p.IsMW2Selected && p.FillLevelMW2 == FillState.Full))) p.StopTroughAuger(); if (p.IsMP1Active && !p.MP1HasClearance) p.StopMP1(); @@ -427,22 +427,9 @@ namespace PamhagenSysCtrl.Helpers { ActuatorsChanged = true; } - public void StartBelt() { - Actuators.Belt = true; - StartAuger2(); - ActuatorsChanged = true; - } - - public void StopBelt() { - if (IsPresseQuerSchneckeActive) throw new NoClearanceException("Presse-Querschnecke aktiv"); - if (IsAuger1Active) throw new NoClearanceException("Förderschnecke 1 aktiv"); - Actuators.Belt = false; - ActuatorsChanged = true; - } - public void StartAuger1() { Actuators.Auger1 = true; - StartBelt(); + StartAuger2(); ActuatorsChanged = true; } @@ -454,15 +441,28 @@ namespace PamhagenSysCtrl.Helpers { public void StartAuger2() { Actuators.Auger2 = true; + StartAuger3(); ActuatorsChanged = true; } public void StopAuger2() { - if (IsBeltActive) throw new NoClearanceException("Förderband aktiv"); + if (IsPresseQuerSchneckeActive) throw new NoClearanceException("Presse-Querschnecke aktiv"); + if (IsAuger1Active) throw new NoClearanceException("Förderschnecke 1 aktiv"); Actuators.Auger2 = false; ActuatorsChanged = true; } + public void StartAuger3() { + Actuators.Auger3 = true; + ActuatorsChanged = true; + } + + public void StopAuger3() { + if (IsAuger2Active) throw new NoClearanceException("Förderschnecke 2 aktiv"); + Actuators.Auger3 = false; + ActuatorsChanged = true; + } + public void StartGradationPump() { Actuators.GradationPump = true; ActuatorsChanged = true; diff --git a/PamhagenSysCtrl/Helpers/PamhagenPlc.cs b/PamhagenSysCtrl/Helpers/PamhagenPlc.cs index 25d6904..2f06fc5 100644 --- a/PamhagenSysCtrl/Helpers/PamhagenPlc.cs +++ b/PamhagenSysCtrl/Helpers/PamhagenPlc.cs @@ -17,7 +17,7 @@ namespace PamhagenSysCtrl.Helpers { public record struct ActuatorStates( long Valves, MotorState MP1, MotorState MP2, MotorState P12, MotorState P3, MotorState P4, MotorState P5, MotorState P6, - bool TroughAuger, bool Rebler, bool StirrerMW1, bool StirrerMW2, bool Belt, bool Auger1, bool Auger2, bool GradationPump + bool TroughAuger, bool Rebler, bool StirrerMW1, bool StirrerMW2, bool Auger2, bool Auger3, bool Auger1, bool GradationPump ) { public readonly bool GetV(int n) => (Valves & (1L << (n - 1))) != 0; public void SetV(int n, bool val) { @@ -212,9 +212,9 @@ namespace PamhagenSysCtrl.Helpers { (state.GetV(58) ? 0x04 : 0x00) | (state.StirrerMW1 ? 0x08 : 0x00) | (state.StirrerMW2 ? 0x10 : 0x00) | - (state.Belt ? 0x20 : 0x00) | - (state.Auger1 ? 0x40 : 0x00) | - (state.Auger2 ? 0x80 : 0x00); + (state.Auger2 ? 0x20 : 0x00) | + (state.Auger3 ? 0x40 : 0x00) | + (state.Auger1 ? 0x80 : 0x00); int measuring = (state.GetV(59) ? 0x01 : 0x00) | diff --git a/PamhagenSysCtrl/Windows/ManualControlWindow.xaml b/PamhagenSysCtrl/Windows/ManualControlWindow.xaml index b1b9186..00e8c22 100644 --- a/PamhagenSysCtrl/Windows/ManualControlWindow.xaml +++ b/PamhagenSysCtrl/Windows/ManualControlWindow.xaml @@ -39,14 +39,14 @@ FontSize="14" BorderThickness="2" FontWeight="Bold" Margin="135,10,10,10" VerticalAlignment="Top" HorizontalAlignment="Left" Click="Auger1Button_Click"/> -