Я использую pymodbus для чтения регистра на ПЛК Wago 750-881. Я также читаю один и тот же регистр в утилите Modbus Poll, а также HMI. Опрос Modbus и HMI читаются правильно, но программа pymodbus - нет.Неожиданный номер при чтении ПЛК с использованием pymodbus
Вот код:
from pymodbus.client.sync import ModbusTcpClient
c = ModbusTcpClient(host="192.168.1.20")
chk = c.read_holding_registers(257, 1, unit = 1)
response = c.execute(chk)
print response.getRegister(0)
Вот ответ от выполнения кода:
>>> runfile('C:/Users/Mike/modbustest2.py', wdir='C:/Users/Mike')
18283
Правильный выход должен быть 2043 Он также читает тот же номер «18283» на другие регистры. Я знаю, что проблема должна быть связана с кодом, поскольку я могу читать регистр из других программ/устройств. Любая помощь приветствуется.
Я добавил фотографию опроса Modbus. –
Вы пробовали читать +/- 1 с этого адреса, а также пробовали читать 40257 вместо 257? Я не знаком с утилитой Modbus Poll, которую вы используете, поэтому я не могу быть уверенным в том, что она на самом деле делает, чем то, что делает ваш код Python. Wireshark был бы идеальным. –
@mikec. Вы когда-нибудь это понимали? –