首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >避免来自仪表设备的modbus消息

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

Stack Overflow用户
提问于 2012-05-19 14:59:30
回答 2查看 286关注 0票数 1

我们正在使用Jamod RTU来捕获串联的各种电表的运行情况。我们已将modbus timeoutexception设置为1200ms。现在发生了什么,当我们pinging一个仪表时,我们没有得到结果(或读数),我们移动到同一系列中连接的下一个。但有时,前一个仪表会将读数发回应用程序,该仪表的读数会保存到新的或下一个仪表中。

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

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-06-01 15:53:27

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

票数 2
EN

Stack Overflow用户

发布于 2012-06-01 03:03:20

来自Modicon Modbus Protocol Reference Guide PI–MBUS–300 Rev. J的第10页

地址字段的处理方式

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

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

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10663081

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档