1

我正在尝试使用 MinimalModbus 从 modbus 设备读取注册表信息。但是,每次我尝试读取40003值为的注册表时,都会220收到此错误:

raise ValueError('The slave is indicating an error. The response is: {!r}'.format(response))
ValueError: The slave is indicating an error. The response is: '\x01\x83\x02Àñ'

我知道其中的价值,40003并且我正在关注该设备的通信文档。这是我的代码:

import minimalmodbus
import serial


gas = minimalmodbus.Instrument('COM5', 1)
gas.serial.baudrate = 9600  
gas.serial.bytesize = 8
gas.serial.parity   = serial.PARITY_NONE
gas.serial.stopbits = 1
gas.serial.timeout  = 0.05   
gas.mode = minimalmodbus.MODE_RTU  


temp = gas.read_register(40003, 1)
print (float(temp))

我对每个注册表都有这个问题,我找不到有关Àñ.

4

1 回答 1

0

问题是注册号40003。我猜modbus协议不需要完整的注册号,所以我把它改成了temp = gas.read_register(3, 1)

于 2017-06-07T12:50:38.103 回答