pymodbus3 не удается прочитать с устройства Modbus
У меня проблема с модулем python pymodbus3.
У меня есть устройство Modbus и эти два сценария:
pymodbus_tester.py
#!/usr/bin/env python
from pymodbus.client.sync import ModbusSerialClient
if __name__ == '__main__':
mdbcli = ModbusSerialClient(
method = "rtu",
parity = "N",
stopbits = 1,
bytesize = 8,
timeout = 1,
port = "/dev/ttyUSB0",
baudrate = "115200"
)
if not mdbcli.connect():
print("Could not connect to Modbus")
print("""
********************************************************************
***** SINGLE READ TEST *****
********************************************************************
""")
ret = mdbcli.read_input_registers(
address = 0x3104,
count = 1,
unit = 0x01
)
print("Single read: {0}".format(ret))
pymodbus3_tester.py
#!/usr/bin/env python3
from pymodbus3.client.sync import ModbusSerialClient
if __name__ == '__main__':
mdbcli = ModbusSerialClient(
method = "rtu",
parity = "N",
stopbits = 1,
bytesize = 8,
timeout = 1,
port = "/dev/ttyUSB0",
baudrate = "115200"
)
if not mdbcli.connect():
print("Could not connect to Modbus")
print("""
********************************************************************
***** SINGLE READ TEST *****
********************************************************************
""")
ret = mdbcli.read_input_registers(
address = 0x3104,
count = 1,
unit = 0x01
)
print("Single read: {0}".format(ret))
Как вы можете видеть, они практически идентичны, за исключением модуля pymodbus.
Это то, что я получаю, когда запускаю их (комбинированный запуск для простоты):
griccardo@pc:~$ python pymodbus_tester.py ; echo "---------------" ; python3 pymodbus3_tester.py
********************************************************************
***** SINGLE READ TEST *****
********************************************************************
Single read: ReadRegisterResponse (1)
---------------
********************************************************************
***** SINGLE READ TEST *****
********************************************************************
Single read: None
На стороне устройства я получаю один и тот же запрос и выхожу один и тот же ответ в обоих случаях, как вы можете видеть из следующего журнала (вроде):
REQ: '1~�'
RES: '�0'
REQ: '1~�'
RES: '�0
Что-то не так с модулем pymodbus3? Или я использую это неправильно?
Спасибо Риккардо