Проблемы с чтением из ПЛК с pymodbus

У меня проблемы с чтением регистров из моего ПЛК WAGO 750-881 с использованием pymodbus, python 2.7 и Windows. Я прекрасно умею читать с помощью утилиты Modbus Poll, поэтому я думаю, что проблема в моем коде Python. Используя следующий код, я получаю сообщение об ошибке: runfile('C:/Users/Mike/modbustest2.py', wdir='C:/Users/Mike') Exception Response(131, 3, IllegalValue)

from pymodbus.client.sync import ModbusTcpClient

c = ModbusTcpClient(host="192.168.1.20")
chk = c.read_holding_registers(257,10, unit = 1)
response = c.execute(chk)        
print response

Я понимаю, мой код должен читать print response.registers но .registers Кажется, расширение не доступно для меня. print response.registers выдает эту ошибку: AttributeError: 'ExceptionResponse' object has no attribute 'registers' Я включил только print response ошибка, потому что я думал, что это может быть полезным в некотором роде. Кто-нибудь знает в чем может быть проблема?

1 ответ

Решение

Вы получаете объект ExceptionResponse обратно с кодом исключения IllegalValue.

Наиболее вероятная причина - вы читаете регистр, который ПЛК не считает существующим.

Конечно, у этого объекта нет атрибута registers, потому что это не ответ ReadHoldingRegisters.

Другие вопросы по тегам