Я пытаюсь получить данные от контроллера кластера SMA с помощью pymodbus, но я не получаю никакого ответа. Например, в документации говорится, что запрос по адресу 30005 с 2 регистрами и к устройству 1 Я получу серийный номер для контроллера кластера, я получаю следующее:
Объект 'ModbusIOException' не имеетатрибут 'registers'
Код, который я использую:
from pymodbus.client.sync import ModbusTcpClient as ModbusClient
from pymodbus.constants import Endian
from pymodbus.payload import BinaryPayloadDecoder as Decoder
import time
client = ModbusClient('192.168.8.103', port=502)
try:
c=client.connect()
print(c)
while c:
result = client.read_holding_registers(30005, 2, unit=1)
print(result.registers)
decoder = BinaryPayloadDecoder.fromRegisters(result.registers, wordorder=Endian.Big, byteorder=Endain.Big)
value = decoder.decode_64bit_uint()
time.sleep(5)
except Exception as e:
print(e)