Cleanup and Enhancement
This commit is contained in:
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user