Pymodbus RTU连接问题

时间:2017-01-19 14:49:48

标签: python pymodbus3

我是python和modbus的初学者,我现在试图用pymodbus控制连接到串口的风扇几个小时。使用制造商提供的专有软件,我能够控制风扇,因此连接本身也能正常工作。然而,我自己的代码没有。

根据手册,风扇设置为以下值:

模式:RTU

波特兰:19200

平价:甚至

超时:1

奴隶ID:247(F7h)

databits:8

我修改了Pymodbus Library Examples中的pymodbus示例代码。这是我的代码:

from pymodbus3.client.sync import ModbusSerialClient as ModbusClient
Fan = ModbusClient(method='rtu',port ='/dev/ttymxc1', parity = 'E', baudrate='19200', timeout=1)
connection = Fan.connect()
a = Fan.write_register(2,1, unit=0xF7)
b = Fan.read_holding_registers(2,1, unit = 0xF7)
Fan.close()

read和write命令都会导致以下错误:

pymodbus3.exceptions.ModbusIOException: Modbus Error: [Input/Output] Server responded with bad response

即使未插入电缆,我也会得到同样的信息。

有没有人有什么建议是错的?

1 个答案:

答案 0 :(得分:-1)

超时是端口等待回答的时间。

将超时设置为~2000,1为1ms,它们可能意味着1s。

并尝试地址1(如果以上不起作用),还要检查Modbus地址是否可以配置为其他东西(可能是风扇上的某些开关)。