C LIBMODBUS:写入双寄存器?
是否有一种方法可以使用C LIBMODBUS:写入双寄存器?,c,modbus,C,Modbus,是否有一种方法可以使用LIBMODBUS将一个值写入双寄存器?例如,将值100000写入一个寄存器。目前使用modbus\u write\u寄存器写入10000我正在发送modbus消息 rc = modbus_write_registers(ctx, 4, 2, tab_reg); (Where tab_reg[0] = 10,000 and tab_reg[1] = 0) 0A 10 00 04 00 02 04 27 10 00 00 DC 09 理想情况下,我想发送的消息不会发送
LIBMODBUS
将一个值写入双寄存器?例如,将值100000
写入一个寄存器。目前使用modbus\u write\u寄存器写入10000
我正在发送modbus消息
rc = modbus_write_registers(ctx, 4, 2, tab_reg); (Where tab_reg[0] = 10,000 and tab_reg[1] = 0)
0A 10 00 04 00 02 04 27 10 00 00 DC 09
理想情况下,我想发送的消息不会发送零值的00
。这是否可以使用Libmodbus
注意-我还尝试使用modbus_write_register(),这会产生更长的消息,因此我倾向于相信写寄存器是一种方法。rc=modbus_write_register(ctx,4,1,tab_reg)代码>。。。。。顺便说一句,我想你看到了一些奇怪的事情:modbus_write_register
应该发送一个更短的消息,因为写一个保持寄存器(消息代码0x06)而不是两个(消息代码0x10)。这给了我以下消息:“0A 10 00 04 00 01 02 27 10 CE D8 0A 10 00 04 00 01 41 73”校验和之后是什么?实际上它看起来像是在重复消息的一部分,必须写入寄存器4的值41 73;但是,我没有在我的代码中写过这句话。10 00 04 00 01 02 27 10 CE D8
是您的消息吗10 00 04 00 01 41 73
是您的答案吗slave@LPs啊,我明白了。这是否意味着我已将值4173写入寄存器?这不是我想要的rc=modbus_write_寄存器(ctx,4,1,tab_reg)代码>。。。。。顺便说一句,我想你看到了一些奇怪的事情:modbus_write_register
应该发送一个更短的消息,因为写一个保持寄存器(消息代码0x06)而不是两个(消息代码0x10)。这给了我以下消息:“0A 10 00 04 00 01 02 27 10 CE D8 0A 10 00 04 00 01 41 73”校验和之后是什么?实际上它看起来像是在重复消息的一部分,必须写入寄存器4的值41 73;但是,我没有在我的代码中写过这句话。10 00 04 00 01 02 27 10 CE D8
是您的消息吗10 00 04 00 01 41 73
是您的答案吗slave@LPs啊,我明白了。这是否意味着我已将值4173写入寄存器?这不是我想要的