libmodbus单元ID更改

时间:2016-03-01 06:55:39

标签: modbus modbus-tcp

我正在使用libmodbus库与具有Modbus接口(SMA)的太阳能逆变器进行通信。 Modbus规范文档规定应使用某个单元ID来读取设备上的寄存器。该设备为modbus提供TCP接口。

我无法找到更改libmodbus库的Unit ID的代码。是 modbus_set_slave()函数吗?或者我还缺少其他功能吗?

1 个答案:

答案 0 :(得分:3)

我相信它是modbus_set_slave()函数,尽管术语不同。从概念上讲,奴隶ID或单位ID是可接受的术语。

如果您有兴趣,可以使用以下示例: https://github.com/stephane/libmodbus/blob/master/tests/unit-test-client.c

编辑:开源的好处很容易确认。在https://github.com/stephane/libmodbus/blob/master/src/modbus-tcp.c中观察到由modbus_set_slave()设置的ctx->从设备在请求包中设置。