From af64d911bd8a153f6428ac662b13ea2ffd81cc18 Mon Sep 17 00:00:00 2001 From: Benjamin Braatz Date: Wed, 2 Feb 2022 20:00:02 +0100 Subject: [PATCH] Correct parameters only in "nichtokay". --- conf.json | 82 ++++++++++++++++++++++++++++++++--------- gmodbus/hitachi.py | 22 ++++++++++- schaltschrank/config.py | 3 +- 3 files changed, 86 insertions(+), 21 deletions(-) diff --git a/conf.json b/conf.json index 6045733..f01492f 100644 --- a/conf.json +++ b/conf.json @@ -3,9 +3,9 @@ "type": "output", "address": 56, "pins": - [ [ "A1-1", "T1-1", "Motorschütz" ], [ "A1-2", "T1-2" ], + [ [ "A1-1", "T1-1", "Motorschütz" ], [ "A1-2", "T1-2", "Steckdosen 400V" ], [ "A1-3", "T1-3", "Zentralschmierung" ], [ "A1-4", "T1-4", "Ölpumpe" ], - [ "A1-5", "T1-5" ], [ "A1-6", "T1-6", "Notaus Schaltschrank Lampe" ], + [ "A1-5", "T1-5", "Steckdosen 230V" ], [ "A1-6", "T1-6", "Notaus Schaltschrank Lampe" ], [ "A1-7", "T1-7", "Lüfter Schaltschrank" ], [ "A1-8", "T1-8", "Notaus Maschine Lampe" ] ] }, { "name": "A2", "type": "output", @@ -20,9 +20,9 @@ "address": 32, "interrupt pin": 4, "pins": - [ [ "E1-1", "T1-18", "Motorschütz Rückmeldung" ], [ "E1-2", "T1-19" ], + [ [ "E1-1", "T1-18", "Motorschütz Rückmeldung" ], [ "E1-2", "T1-19", "Steckdosen 400V Rückmeldung" ], [ "E1-3", "T1-20", "Zentralschmierung Rückmeldung" ], [ "E1-4", "T1-21", "Ölpumpe Rückmeldung" ], - [ "E1-5", "T1-22" ], [ "E1-6", "T1-23", "Notaus Schaltschrank" ], + [ "E1-5", "T1-22", "Steckdosen 230V Rückmeldung" ], [ "E1-6", "T1-23", "Notaus Schaltschrank" ], [ "E1-7", "T1-24" ], [ "E1-8", "T1-25", "Notaus Maschine" ] ] }, { "name": "E2", "type": "input", @@ -58,7 +58,7 @@ "Schwungrad", "Öldruck", "Bruchplatte Einzug" ] } ], "modbus": { "serial device": "/dev/serial0", - "baudrate": 9600, + "baudrate": 19200, "slave id": 1 }, "statemachines": [ { "name": "Notaus Schaltschrank", @@ -196,6 +196,35 @@ "value": false, "state": "aus" } ] } }, "init": "aus" }, + { "name": "Steckdosen", + "states": + { "aus": + { "commands": + [ { "name": "setpin", + "pin": "Steckdosen 400V", + "value": false }, + { "name": "setpin", + "pin": "Steckdosen 230V", + "value": false } ], + "events": + [ { "name": "pinstate", + "pin": "Notaus", + "value": true, + "state": "an" } ] }, + "an": + { "commands": + [ { "name": "setpin", + "pin": "Steckdosen 400V", + "value": true }, + { "name": "setpin", + "pin": "Steckdosen 230V", + "value": true } ], + "events": + [ { "name": "pinstate", + "pin": "Notaus", + "value": false, + "state": "aus" } ] } }, + "init": "an" }, { "name": "Motor", "states": { "notaus": @@ -214,10 +243,15 @@ [ { "name": "pinstate", "pin": "Notaus", "value": true, - "state": "nichtokay" } ] }, + "state": "nichtokay" }, + { "name": "pinstate", + "pin": "Stop", + "value": true, + "state": "notaus" } ] }, "nichtokay": { "commands": [ { "name": "motorstop" }, + { "name": "motorcheck" }, { "name": "setpin", "pin": "Motorschütz", "value": true }, @@ -234,6 +268,10 @@ "pin": "Notaus", "value": false, "state": "notaus" }, + { "name": "pinstate", + "pin": "Stop", + "value": true, + "state": "nichtokay" }, { "name": "pinstate", "pin": "Okay", "value": true, @@ -257,6 +295,10 @@ "pin": "Notaus", "value": false, "state": "notaus" }, + { "name": "pinstate", + "pin": "Stop", + "value": true, + "state": "tippenokay" }, { "name": "pinstate", "pin": "Okay", "value": false, @@ -281,15 +323,15 @@ "pin": "Notaus", "value": false, "state": "notaus" }, + { "name": "pinstate", + "pin": "Stop", + "value": true, + "state": "tippenokay" }, { "name": "pinstate", "pin": "Okay", "value": false, "state": "nichtokay" }, { "name": "tippenfertig", - "state": "tippenokay" }, - { "name": "pinstate", - "pin": "Stop", - "value": true, "state": "tippenokay" } ] }, "tippenrück": { "commands": @@ -299,15 +341,15 @@ "pin": "Notaus", "value": false, "state": "notaus" }, + { "name": "pinstate", + "pin": "Stop", + "value": true, + "state": "tippenokay" }, { "name": "pinstate", "pin": "Okay", "value": false, "state": "nichtokay" }, { "name": "tippenfertig", - "state": "tippenokay" }, - { "name": "pinstate", - "pin": "Stop", - "value": true, "state": "tippenokay" } ] }, "dauerokay": { "commands": @@ -328,6 +370,10 @@ "pin": "Notaus", "value": false, "state": "notaus" }, + { "name": "pinstate", + "pin": "Stop", + "value": true, + "state": "dauerokay" }, { "name": "pinstate", "pin": "Okay", "value": false, @@ -351,14 +397,14 @@ "pin": "Notaus", "value": false, "state": "notaus" }, - { "name": "pinstate", - "pin": "Okay", - "value": false, - "state": "nichtokay" }, { "name": "pinstate", "pin": "Stop", "value": true, "state": "dauerokay" }, + { "name": "pinstate", + "pin": "Okay", + "value": false, + "state": "nichtokay" }, { "name": "pinstate", "pin": "Prozesskraftüberwachung aus", "value": false, diff --git a/gmodbus/hitachi.py b/gmodbus/hitachi.py index 02678cd..7088cfd 100644 --- a/gmodbus/hitachi.py +++ b/gmodbus/hitachi.py @@ -12,8 +12,8 @@ class SJP1Fu(): self.__protocol = DatatypesProtocol(client, SJP1FU_COILS, SJP1FU_REGISTERS) registers = [12015, 12220, 12222, 13015, 13021, 13022, 13023, 13024, 13026, - 13027, 13101, 13210, 13221, 14140, 15102, 15103, 15110, 15112, - 15114, 15116, 15118] + 13027, 13101, 13210, 13221, 14140, 14501, 15102, 15103, 15110, + 15112, 15114, 15116, 15118] async def check_parameters(self) -> None: for register in self.registers: @@ -269,6 +269,24 @@ SJP1FU_REGISTERS = { }, }, }, + 14501: { + 'code': 'CF-01', + 'name': 'Communication transmission spped selection', + 'rw': 'rw', + 'type': 'enum', + 'conf': { + 'values': { + 3: '2400 bps', + 4: '4800 bps', + 5: '9600 bps', + 6: '19200 bps', + 7: '38400 bps', + 8: '57600 bps', + 9: '76800 bps', + 10: '115200 bps', + }, + }, + }, 15102: { 'code': 'Hb102', 'name': 'First IM motor capacity selection', diff --git a/schaltschrank/config.py b/schaltschrank/config.py index 59e281d..75f671f 100644 --- a/schaltschrank/config.py +++ b/schaltschrank/config.py @@ -70,9 +70,10 @@ async def fu_handler(queues, fu): event = await in_queue.get() if event['name'] == 'motorstop': await fu.stop_inverter() - await fu.correct_parameters() for out_queue in queues: await out_queue.put({'name': 'motoraus'}) + elif event['name'] == 'motorcheck': + await fu.correct_parameters() elif event['name'] == 'dauervor': if previous != 'dauervor': await asyncio.sleep(1) -- 2.34.1