From 23dd28740360a091adfe738901fdc8a856eda6c2 Mon Sep 17 00:00:00 2001 From: Wolfgang Hottgenroth Date: Thu, 17 Nov 2022 18:27:38 +0100 Subject: [PATCH] handle relais --- snippets/test1.py | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/snippets/test1.py b/snippets/test1.py index 85da684..0070c70 100644 --- a/snippets/test1.py +++ b/snippets/test1.py @@ -22,7 +22,7 @@ class LocalException(Exception): def readInputRegister(client, addr): client.connect() try: - res = client.read_input_registers(addr, 2) + res = client.read_input_registers(addr, 2, slave=2) if (isinstance(res, ReadInputRegistersResponse)): v = BinaryPayloadDecoder.fromRegisters(res.registers, byteorder=Endian.Big, wordorder=Endian.Big).decode_32bit_float() return v @@ -37,6 +37,16 @@ def readInputRegister(client, addr): finally: client.close() +def writeCoil(client, addr, value): + client.connect() + try: + res = client.write_coil(addr, value, slave=1) + logger.debug(f"write coil result {res}") + return value + finally: + client.close() + + l = logging.getLogger() for h in l.handlers: l.removeHandler(h) @@ -56,12 +66,22 @@ registers = [ ] +cnt = 0 +coilState = True while True: try: for reg in registers: v = readInputRegister(client, reg['addr']) logger.info(f"{reg['name']}: {v} {reg['unit']}") + cnt += 1 + if ((cnt % 2) == 0): + coilState = not coilState + logger.info(f"Write {coilState} to coil") + writeCoil(client, 0, coilState) + + + sleep(5) except Exception as e: logger.error(f"Caught exception: {str(e)}")