我正在使用jlibmodbus库读取从属寄存器。
我能够读取0到125之间的寄存器,但是如果尝试读取值126或更大的寄存器,则会收到错误消息,指出起始偏移量错误。
我大约有500个寄存器,如何使用读取保持寄存器一次性读取所有内容。
最佳答案
Modbus读取寄存器响应(具有读取输入寄存器或读取保持寄存器的功能)可容纳125个寄存器。
您需要发出四个请求来读取500个寄存器。在每个请求中,指定起始地址:
请求1:起始地址= 0,寄存器数= 125
请求2:起始地址= 125,寄存器数= 125
请求3:起始地址= 250,寄存器数= 125
请求4:起始地址= 375,寄存器数= 125
此处使用的地址是虚构的,您需要检查设备的Modbus映射以获取正确的地址。