handle relais
This commit is contained in:
@ -22,7 +22,7 @@ class LocalException(Exception):
|
|||||||
def readInputRegister(client, addr):
|
def readInputRegister(client, addr):
|
||||||
client.connect()
|
client.connect()
|
||||||
try:
|
try:
|
||||||
res = client.read_input_registers(addr, 2)
|
res = client.read_input_registers(addr, 2, slave=2)
|
||||||
if (isinstance(res, ReadInputRegistersResponse)):
|
if (isinstance(res, ReadInputRegistersResponse)):
|
||||||
v = BinaryPayloadDecoder.fromRegisters(res.registers, byteorder=Endian.Big, wordorder=Endian.Big).decode_32bit_float()
|
v = BinaryPayloadDecoder.fromRegisters(res.registers, byteorder=Endian.Big, wordorder=Endian.Big).decode_32bit_float()
|
||||||
return v
|
return v
|
||||||
@ -37,6 +37,16 @@ def readInputRegister(client, addr):
|
|||||||
finally:
|
finally:
|
||||||
client.close()
|
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()
|
l = logging.getLogger()
|
||||||
for h in l.handlers:
|
for h in l.handlers:
|
||||||
l.removeHandler(h)
|
l.removeHandler(h)
|
||||||
@ -56,12 +66,22 @@ registers = [
|
|||||||
]
|
]
|
||||||
|
|
||||||
|
|
||||||
|
cnt = 0
|
||||||
|
coilState = True
|
||||||
while True:
|
while True:
|
||||||
try:
|
try:
|
||||||
for reg in registers:
|
for reg in registers:
|
||||||
v = readInputRegister(client, reg['addr'])
|
v = readInputRegister(client, reg['addr'])
|
||||||
logger.info(f"{reg['name']}: {v} {reg['unit']}")
|
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)
|
sleep(5)
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
logger.error(f"Caught exception: {str(e)}")
|
logger.error(f"Caught exception: {str(e)}")
|
||||||
|
Reference in New Issue
Block a user