Python 什么';这是将浮点值写入ModbusServerContext的最佳方式
我正在使用该库创建Modbus服务器。我发现了你能找到的所有例子。我面临着在服务器(从)端写入浮点值的问题。有一个Python 什么';这是将浮点值写入ModbusServerContext的最佳方式,python,modbus,modbus-tcp,Python,Modbus,Modbus Tcp,我正在使用该库创建Modbus服务器。我发现了你能找到的所有例子。我面临着在服务器(从)端写入浮点值的问题。有一个更新\u writer函数,我想在其中将浮点值=22.34写入两个保持电阻器: ... def updating_writer(a): context = a[0] register = 3 slave_id = 0x00 address = 0x0 builder = BinaryPaylo
更新\u writer
函数,我想在其中将浮点值=22.34
写入两个保持电阻器:
...
def updating_writer(a):
context = a[0]
register = 3
slave_id = 0x00
address = 0x0
builder = BinaryPayloadBuilder(endian=Endian.Little)
builder.add_32bit_float(22.34)
res = builder.build()
context[slave_id].setValues(register, address, res)
store = ModbusSlaveContext(
di = ModbusSequentialDataBlock(0, [17]*100),
co = ModbusSequentialDataBlock(0, [17]*100),
hr = ModbusSequentialDataBlock(0, [17]*100),
ir = ModbusSequentialDataBlock(0, [17]*100))
context = ModbusServerContext(slaves=store, single=True)
...
但是,当我从Modbus主机(客户端)连接并尝试读取这2个寄存器时,我得到一个错误:
...
File "/home/workstation/devel/modbus_example/env_modbus/local/lib/python2.7/site-packages/pymodbus/server/async.py", line 83, in _send
pdu = self.framer.buildPacket(message)
File "/home/workstation/devel/modbus_example/env_modbus/local/lib/python2.7/site-packages/pymodbus/transaction.py", line 354, in buildPacket
data = message.encode()
File "/home/workstation/devel/modbus_example/env_modbus/local/lib/python2.7/site-packages/pymodbus/register_read_message.py", line 71, in encode
result += struct.pack('>H', register)
struct.error: cannot convert argument to integer
如何将浮点值写入某个上下文?我找不到任何示例。检查此线程:检查此线程: