2012-05-19 53 views
1

未来我们使用Jamod RTU捕捉的variuos串行连接的电表raedings。我们设置了modbus timeoutexception = 1200ms。现在发生了什么事情,当我们测量一米而我们没有得到结果(或读数)时,我们转向下一个连接在同一系列中的结果。但有时,前一个仪表将读数发送回应用程序,并且该仪表的读数保存为新的或下一个。避免Modbus信息从仪表设备

为了解决这个问题,我们已经在的NPort管理员减少网络超时(用于管理COM端口)从5000到500毫秒。但我不认为这是永久的解决方案。有什么办法可以避免迟到的信息或用相应的电表标记每条信息?

回答

2

每个MODBUS答复具有嵌入所述消息内设备的源地址。读它可以解决你的问题。

0

从何以地址字段被处理

一个消息帧的地址字段中的Modicon Modbus Protocol Reference Guide PI–MBUS–300 Rev. J

10页包含两个字符(ASCII)或八个 位(RTU)。有效的从站设备地址范围为0 - 247十进制。通过将从地址在 消息的地址字段247。 主地址的从站 - 各个从属设备被分配在1的范围内的地址。当从机发送响应时,它将自己的地址放在响应的这个地址字段中,让主机知道哪个从机正在响应。

地址0被用于广播地址,其中所有的从属设备识别。 当Modbus协议上更高级别网络中使用,广播可能并不 允许或可通过其它方法来代替。例如,Modbus Plus使用一个共享全局数据库,可以使用每个令牌轮换更新一个 。

因此,您可以跟踪从站地址并分配指定的从站地址接收值。这应该可以从所有响应对象的getUnitID()访问。