我正在使用 jlibmodbus 库来读取从属寄存器。 我能够读取从 0 到 125 的寄存器,但如果我尝试读取寄存器值 126 或更大,则会收到错误消息,指出起始偏移量错误。
我有大约 500 个寄存器,如何使用读取保持寄存器一次性读取所有寄存器。
最佳答案
Modbus 读取寄存器响应(功能读取输入寄存器或读取保持寄存器)具有可容纳 125 个寄存器的空间。
您需要发出四个请求才能读取 500 个寄存器。在每个请求中,您指定起始地址:
- 请求1:起始地址=0,寄存器数量=125
- 请求2:起始地址=125,寄存器数量=125
- 请求3:起始地址=250,寄存器数量=125
- 请求4:起始地址=375,寄存器数量=125
此处使用的地址是虚构的,您需要检查设备的 Modbus 映射以获得正确的地址。
关于java - Jlibmodbus 读取保持寄存器限制为 125,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47710510/