1

大家好,我需要一些帮助

代码:

from pymodbus.client.sync import ModbusSerialClient as ModbusClient
import logging

def readModbusData():
    logging.basicConfig()
    log = logging.getLogger()
    log.setLevel(logging.DEBUG)

    client=ModbusClient(method='rtu',port='COM3',
    baudrate=9600,timeout=1,parity='N',stopbits=2)
    print(client.connect())
    client.debug_enabled()

    log.debug("Read holding registers")
    response=client.read_holding_registers(0,1)

    print(response) #This returns the response for whole length of registers

    # print(response.getRegister(0));  #This returns value of only one 

    client.close()
readModbusData()
4

1 回答 1

0

检查这个stack_post

您忘记了unit参数并使用print(response.registers)而不是 print(response).

您应该具有以下代码段:

response = client.read_holding_registers(0, 1, unit=<set-the-unit-ID>)  # Note.

if not response.isError():
    '''isError() method implemented in pymodbus 1.4.0 and above'''

    print(response.registers)  # Note.

else:
    # Handle Error.
    print('Unable to read or there is the connection problem.')

[注意]:

  • 在许多情况下,默认情况unit1处于从属端。
于 2018-10-12T22:32:16.063 回答