我正在使用libmodbus库与具有Modbus接口(SMA)的太阳能逆变器进行通信。 Modbus规范文档规定应使用某个单元ID来读取设备上的寄存器。该设备为modbus提供TCP接口。
我无法找到更改libmodbus库的Unit ID的代码。是 modbus_set_slave()函数吗?或者我还缺少其他功能吗?
答案 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->从设备在请求包中设置。