Получение ошибок декодирования при использовании функций diag_message в библиотеке pyModbus - PullRequest
1 голос
/ 29 октября 2019

Я пытаюсь использовать диагностические подфункции из библиотеки pyModbus, но получаю ошибки при декодировании ответа. Это обрабатывается библиотекой pyModbus, а не моим кодом, поэтому сложно понять, где происходит моя проблема.

Я сослался на документацию и попробовал приведенные здесь примеры: https://pymodbus.readthedocs.io/en/latest/source/example/synchronous_client_ext.html

В приведенном ниже примере используется функция для получения количества NAK, но я пробовал ее с несколькими функциями в библиотеке diag_messages, включая DiagnosticStatusSimpleRequest и ReturnQueryDataResponse.

from pymodbus.client.sync import ModbusTcpClient, ModbusSerialClient
from pymodbus import diag_message

ip = '10.130.14.176'

with ModbusTcpClient(host=ip) as client:
    testRequest = client.read_holding_registers(3000, 1, unit=1) # test request to make sure the connection is working and the device is communicating. 
    print(testRequest.registers) # returns expected value

    rq = diag_message.ReturnSlaveNAKCountRequest(unit=1)
    rr = client.execute(rq)
    print(rr.isError) # get "Unable to decode request" error
...