我正在使用 modbus-tk 为 unittest 模拟 modbus 设备。
我添加了 2 个块数据。
def add_test_1(self):
point = "Test_1"
addr = 40003
self.slave_1.add_block(point, mbdefines.HOLDING_REGISTERS, addr, 1)
self.slave_1.set_values(point, addr, 5)
def add_test_2(self):
point = "Test_2"
addr = 40004
self.slave_1.add_block(point, mbdefines.HOLDING_REGISTERS, addr, 2)
self.slave_1.set_values(point, addr, (16560, 0))
但是当我使用 modbus-tk 读取多寄存器时。
result = modbus_client.execute(1, mbdefines.READ_HOLDING_REGISTERS, 40003, 3)
print(result)
引发异常。
Modbus Error: Exception code = 2
同时,我仍然可以使用这个在真实的 Modbus 设备中读取多个数据
result = modbus_client.execute(1, mbdefines.READ_HOLDING_REGISTERS, 40003, 3)
print(result)
数据看起来像块数据,我之前展示过
我正在使用 python 3.7.3 64 位