2016-09-09 9 views
0

enter image description here Я использую 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» на другие регистры. Я знаю, что проблема должна быть связана с кодом, поскольку я могу читать регистр из других программ/устройств. Любая помощь приветствуется.

ответ

0

Возможно, вы не указали неправильный регистрационный код или неправильный идентификатор устройства, или некоторую комбинацию обоих.

Если вы используете Wireshark для захвата того, что делает стороннее программное обеспечение и ваше собственное программное обеспечение, вы должны быстро заметить разницу.

+0

Я добавил фотографию опроса Modbus. –

+0

Вы пробовали читать +/- 1 с этого адреса, а также пробовали читать 40257 вместо 257? Я не знаком с утилитой Modbus Poll, которую вы используете, поэтому я не могу быть уверенным в том, что она на самом деле делает, чем то, что делает ваш код Python. Wireshark был бы идеальным. –

+0

@mikec. Вы когда-нибудь это понимали? –

 Смежные вопросы

  • Нет связанных вопросов^_^