Cleanup and Enhancement

This commit is contained in:
2026-07-10 12:01:21 +02:00
parent fb35ddb389
commit ac2eafc8c6
4 changed files with 21 additions and 11 deletions
+11
View File
@@ -83,6 +83,14 @@ namespace PamhagenSysCtrl.Helpers {
};
}
public async Task EnsureRunning() {
var s = await Plc.StatusRead();
if (s.Mode == T1.Mode.RUN || s.Mode == T1.Mode.RUN_F)
return;
var error = await Plc.ErrorStatusRead();
throw new T1Exception($"Interner Fehler: {error} ({(int)error:0000})");
}
protected async Task<(ushort RW010, ushort RW011, ushort RW012, ushort RW013, ushort RW014, ushort RW015, ushort RW016)> ReadInputRegisters() {
var d = await Plc.DataRead("RW010", 7);
// RW010, RW011, RW012, RW013 Drucksensoren
@@ -93,6 +101,7 @@ namespace PamhagenSysCtrl.Helpers {
}
public async Task<SensorStates> ReadInputs() {
await EnsureRunning();
var (r1, r2, r3, r4, f1, v, f2) = await ReadInputRegisters();
long pressure = (long)r1 | ((long)r2 << 16) | ((long)r3 << 32) | ((long)r4 << 48);
@@ -149,6 +158,7 @@ namespace PamhagenSysCtrl.Helpers {
}
public async Task<ActuatorStates> ReadOutputs() {
await EnsureRunning();
var (v1, v2, v3, v4, p1, s1, s2) = await ReadOutputRegisters();
long valves = (long)v1 | ((long)v2 << 16) | ((long)v3 << 32) | ((long)v4 << 48);
@@ -179,6 +189,7 @@ namespace PamhagenSysCtrl.Helpers {
}
public async Task WriteOutputs(ActuatorStates state) {
await EnsureRunning();
var v1 = (ushort)((state.Valves ) & 0xFFFF);
var v2 = (ushort)((state.Valves >> 16) & 0xFFFF);
var v3 = (ushort)((state.Valves >> 32) & 0xFFFF);