Java 避免来自仪表设备的modbus消息

Java 避免来自仪表设备的modbus消息,java,modbus,Java,Modbus,我们使用Jamod RTU捕获串联连接的variuos电表的读数。我们已将modbus timeoutexception设置为1200ms。现在发生的事情是,当我们敲打一个米,我们没有得到结果(或读数),我们移动到下一个连接在同一系列。但有时,前一个仪表会将读数发送回应用程序,并将该仪表的读数保存到新的或下一个仪表 为了解决这个问题,我们将nport administrator(用于管理com端口)中的网络超时时间从5000毫秒减少到500毫秒。但我认为这不是永久性的解决方案。有没有办法避免迟到

我们使用Jamod RTU捕获串联连接的variuos电表的读数。我们已将modbus timeoutexception设置为1200ms。现在发生的事情是,当我们敲打一个米,我们没有得到结果(或读数),我们移动到下一个连接在同一系列。但有时,前一个仪表会将读数发送回应用程序,并将该仪表的读数保存到新的或下一个仪表

为了解决这个问题,我们将nport administrator(用于管理com端口)中的网络超时时间从5000毫秒减少到500毫秒。但我认为这不是永久性的解决方案。有没有办法避免迟到的消息,或者用它的腐蚀表标记每条消息?

摘自第10页,共页

如何处理地址字段

消息框的地址字段包含两个字符(ASCII)或八个字符 位(RTU)。有效的从设备地址在0–247十进制范围内。 各个从设备分配的地址范围为1–247。A. 主机通过将从机地址放在 消息当从机发送其响应时,它会将自己的地址放在 响应的地址字段,用于让主机知道哪个从机正在响应

地址0用于所有从属设备都能识别的广播地址。 在更高级别的网络上使用Modbus协议时,广播可能不可用 允许或可由其他方法代替。例如,Modbus Plus使用 可随每个令牌循环更新的共享全局数据库


因此,您可以跟踪从机地址,并通过指定的从机地址在接收时分配值。应可从所有响应对象上的
getUnitID()
访问此消息。

每个MODBUS响应都在消息中嵌入了设备源地址。阅读它可以解决你的问题