【发布时间】:2014-09-28 16:19:16
【问题描述】:
我一直在使用开源 libmodbus 库测试与 TCP modbus 设备的连接。我必须读取的第一个寄存器是设备上的 45001。事实证明,使用 libmodbus 我必须给它一个地址 0 才能获得这个寄存器。如果我想注册 45010,我使用 9。
我想在 44001 读取另一个寄存器。我在文档中没有看到有关更改基地址的任何内容。是否可以使用负偏移量?我是否必须重新编译库?
【问题讨论】:
标签: modbus
我一直在使用开源 libmodbus 库测试与 TCP modbus 设备的连接。我必须读取的第一个寄存器是设备上的 45001。事实证明,使用 libmodbus 我必须给它一个地址 0 才能获得这个寄存器。如果我想注册 45010,我使用 9。
我想在 44001 读取另一个寄存器。我在文档中没有看到有关更改基地址的任何内容。是否可以使用负偏移量?我是否必须重新编译库?
【问题讨论】:
标签: modbus
不,您需要弄清楚设备文档中描述的地址如何映射到实际的 Modbus 地址。这是非常常见的。
您使用的库只是按照 Modbus 规范定义的方式做事,并通过其接口向您公开。
【讨论】: