Some fixes

This commit is contained in:
2026-07-09 09:27:28 +02:00
parent fdb7976dda
commit 68cbcef053
3 changed files with 25 additions and 24 deletions
+4 -4
View File
@@ -41,8 +41,8 @@ namespace PamhagenSysCtrl.Helpers {
public double GradationOe => Sensors.GradationOe; public double GradationOe => Sensors.GradationOe;
public MotorState PresseQuerSchnecke => Sensors.PresseQuerSchnecke; public MotorState PresseQuerSchnecke => Sensors.PresseQuerSchnecke;
public bool WantA1Selected => Actuators.TroughSelector; public bool WantA1Selected => Actuators.GetV(58);
public bool WantA2Selected => !Actuators.TroughSelector; public bool WantA2Selected => !Actuators.GetV(58);
public bool IsTroughAugerActive => Actuators.TroughAuger; public bool IsTroughAugerActive => Actuators.TroughAuger;
public bool IsReblerActive => Actuators.Rebler; public bool IsReblerActive => Actuators.Rebler;
@@ -159,12 +159,12 @@ namespace PamhagenSysCtrl.Helpers {
} }
public void SelectA1() { public void SelectA1() {
Actuators.TroughSelector = true; Actuators.SetV(58, true);
//if (IsReblerActive) Actuators.StirrerA1 = true; //if (IsReblerActive) Actuators.StirrerA1 = true;
} }
public void SelectA2() { public void SelectA2() {
Actuators.TroughSelector = false; Actuators.SetV(58, false);
//if (IsReblerActive) Actuators.StirrerA2 = true; //if (IsReblerActive) Actuators.StirrerA2 = true;
} }
+18 -17
View File
@@ -11,13 +11,13 @@ namespace PamhagenSysCtrl.Helpers {
FillState[] FillingLevelTanks, FillState[] FillingLevelTanks,
MotorState PresseQuerSchnecke MotorState PresseQuerSchnecke
) { ) {
public readonly bool GetDS(int n) => (PressureSensors & (1 << (n - 1))) != 0; public readonly bool GetDS(int n) => (PressureSensors & (1L << (n - 1))) != 0;
} }
public record struct ActuatorStates( public record struct ActuatorStates(
long Valves, long Valves,
MotorState MP1, MotorState MP2, MotorState P12, MotorState P3, MotorState P4, MotorState P5, MotorState P6, MotorState MP1, MotorState MP2, MotorState P12, MotorState P3, MotorState P4, MotorState P5, MotorState P6,
bool TroughAuger, bool Rebler, bool TroughSelector, bool StirrerA1, bool StirrerA2, bool Belt, bool Auger1, bool Auger2, bool GradationPump bool TroughAuger, bool Rebler, bool StirrerA1, bool StirrerA2, bool Belt, bool Auger1, bool Auger2, bool GradationPump
) { ) {
public readonly bool GetV(int n) => (Valves & (1L << (n - 1))) != 0; public readonly bool GetV(int n) => (Valves & (1L << (n - 1))) != 0;
public void SetV(int n, bool val) { public void SetV(int n, bool val) {
@@ -98,6 +98,7 @@ namespace PamhagenSysCtrl.Helpers {
var (r1, r2, r3, r4, f1, v, f2) = await ReadInputRegisters(); var (r1, r2, r3, r4, f1, v, f2) = await ReadInputRegisters();
long pressure = (long)r1 | ((long)r2 << 16) | ((long)r3 << 32) | ((long)r4 << 48); long pressure = (long)r1 | ((long)r2 << 16) | ((long)r3 << 32) | ((long)r4 << 48);
pressure = (pressure & 0x01FFFFFFFFFFFFFF) | ((pressure & 0x0600000000000000) << 1);
var a1 = Int3ToFillState((f1 ) & 0x7); // 111 011 001 000 var a1 = Int3ToFillState((f1 ) & 0x7); // 111 011 001 000
var a2 = Int3ToFillState((f1 >> 3) & 0x7); // 111 011 001 000 var a2 = Int3ToFillState((f1 >> 3) & 0x7); // 111 011 001 000
@@ -164,17 +165,17 @@ namespace PamhagenSysCtrl.Helpers {
var m1 = (s1 & 0x01) != 0; var m1 = (s1 & 0x01) != 0;
var m2 = (s1 & 0x02) != 0; var m2 = (s1 & 0x02) != 0;
var m3 = (s1 & 0x04) != 0; var m3 = (s1 & 0x08) != 0;
var m4 = (s1 & 0x08) != 0; var m4 = (s1 & 0x10) != 0;
var m5 = (s1 & 0x10) != 0; var m5 = (s1 & 0x20) != 0;
var m6 = (s1 & 0x20) != 0; var m6 = (s1 & 0x40) != 0;
var m7 = (s1 & 0x40) != 0; var m7 = (s1 & 0x80) != 0;
var m8 = (s1 & 0x80) != 0;
var m9 = (s2 & 0x4) != 0; var m8 = (s2 & 0x04) != 0;
var state = new ActuatorStates(valves, mp1, mp2, p12, p3, p4, p5, p6, m1, m2, m3, m4, m5, m6, m7, m8, m9); var state = new ActuatorStates(valves, mp1, mp2, p12, p3, p4, p5, p6, m1, m2, m3, m4, m5, m6, m7, m8);
state.SetV(59, (s2 & 0x1) != 0); state.SetV(58, (s1 & 0x04) != 0);
state.SetV(60, (s2 & 0x2) != 0); state.SetV(59, (s2 & 0x01) != 0);
state.SetV(60, (s2 & 0x02) != 0);
return state; return state;
} }
@@ -183,7 +184,7 @@ namespace PamhagenSysCtrl.Helpers {
var v1 = (ushort)((state.Valves ) & 0xFFFF); var v1 = (ushort)((state.Valves ) & 0xFFFF);
var v2 = (ushort)((state.Valves >> 16) & 0xFFFF); var v2 = (ushort)((state.Valves >> 16) & 0xFFFF);
var v3 = (ushort)((state.Valves >> 32) & 0xFFFF); var v3 = (ushort)((state.Valves >> 32) & 0xFFFF);
var v4 = (ushort)((state.Valves >> 48) & 0xFFFF); var v4 = (ushort)((state.Valves >> 48) & 0x01FF);
int pumps = int pumps =
(state.MP1 == MotorState.Backward ? 0x001 : 0x000) | (state.MP1 == MotorState.Backward ? 0x001 : 0x000) |
@@ -199,7 +200,7 @@ namespace PamhagenSysCtrl.Helpers {
int devices = int devices =
(state.TroughAuger ? 0x01 : 0x00) | (state.TroughAuger ? 0x01 : 0x00) |
(state.Rebler ? 0x02 : 0x00) | (state.Rebler ? 0x02 : 0x00) |
(state.TroughSelector ? 0x04 : 0x00) | (state.GetV(58) ? 0x04 : 0x00) |
(state.StirrerA1 ? 0x08 : 0x00) | (state.StirrerA1 ? 0x08 : 0x00) |
(state.StirrerA2 ? 0x10 : 0x00) | (state.StirrerA2 ? 0x10 : 0x00) |
(state.Belt ? 0x20 : 0x00) | (state.Belt ? 0x20 : 0x00) |
@@ -207,9 +208,9 @@ namespace PamhagenSysCtrl.Helpers {
(state.Auger2 ? 0x80 : 0x00); (state.Auger2 ? 0x80 : 0x00);
int measuring = int measuring =
(state.GetV(59) ? 0x1 : 0x0) | (state.GetV(59) ? 0x01 : 0x00) |
(state.GetV(60) ? 0x2 : 0x0) | (state.GetV(60) ? 0x02 : 0x00) |
(state.GradationPump ? 0x4 : 0x0); (state.GradationPump ? 0x04 : 0x00);
await WriteOutputRegisters(v1, v2, v3, v4, (ushort)pumps, (ushort)devices, (ushort)measuring); await WriteOutputRegisters(v1, v2, v3, v4, (ushort)pumps, (ushort)devices, (ushort)measuring);
} }
+3 -3
View File
@@ -5,7 +5,7 @@
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:PamhagenSysCtrl" xmlns:local="clr-namespace:PamhagenSysCtrl"
mc:Ignorable="d" mc:Ignorable="d"
Title="MainWindow" Height="450" Width="800"> Title="MainWindow" Height="520" Width="800">
<Grid> <Grid>
<TextBox x:Name="PortInput" Text="COM1" <TextBox x:Name="PortInput" Text="COM1"
Margin="10,10,10,10" VerticalAlignment="Top" HorizontalAlignment="Left" Height="25" Width="80" FontSize="14" Padding="2,2,2,2"/> Margin="10,10,10,10" VerticalAlignment="Top" HorizontalAlignment="Left" Height="25" Width="80" FontSize="14" Padding="2,2,2,2"/>
@@ -16,7 +16,7 @@
<Grid x:Name="ButtonPanel" Margin="5,50,5,5"> <Grid x:Name="ButtonPanel" Margin="5,50,5,5">
</Grid> </Grid>
<TextBlock x:Name="Status" <TextBlock x:Name="Status" FontSize="14"
Margin="500,50,10,10" VerticalAlignment="Top" HorizontalAlignment="Left"/> Margin="350,50,10,10" VerticalAlignment="Top" HorizontalAlignment="Left"/>
</Grid> </Grid>
</Window> </Window>