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写入寄存器?这不是我想要的