我有一个特定的条件,我想从MODBUS协议读取数据。
但它只允许我一次读取120个寄存器。如果我增加这个数,它会给我 ERROR CODE = 3 我正在使用JAMOD。
有没有办法可以从所有寄存器中读取数据?
我已经浏览过这些链接,但它们没有帮助:
我已经制作了一个自定义Spark接收器来读取数据,我需要在Kafka中推送这些数据。
请为我提供解决方案或解决方法,我可以阅读所有 65536个寄存器。
答案 0 :(得分:0)
在Modicon Modbus Protocol Reference Guide PI–MBUS–300 Rev. J中的Modbus消息中的字段内容中,响应消息中的字节计数字段确定返回的8位字节内容的数量。由于寄存器是16位长,并且字段长度为8位,因此可能返回不超过128位。通过在字节计数长度中包含消息中的一些其他字段来进一步限制。
不要期望在每个请求中收到超过125个寄存器。检索整个地址空间需要多个请求。
请注意,当向其发送读取未定义寄存器的请求时,某些设备可能会返回错误。除非有完整的存储器映射,否则只能读取具体记录的寄存器。