功率计 - Modbus RS485 - 5 到 6 小时后,设备不再响应
Posted
技术标签:
【中文标题】功率计 - Modbus RS485 - 5 到 6 小时后,设备不再响应【英文标题】:Power Meter - Modbus RS485 - After 5 to 6 hours, the device doesn't answer anymore 【发布时间】:2021-11-14 10:35:49 【问题描述】:使用 Raspberry PI,我使用 waveshare 2-ch rs485 hat 在 Python 中编写了一个循环,每 15 秒读取一次 Polier MTR5LMOD 的 6 个寄存器。
程序在 5 到 6 小时内工作(有时更少,有时更多)......突然......设备不再响应(无响应)!
我重新启动系统/我重新启动 Polier...但没有任何变化。
为了进一步测试,我使用modpoll 成功检查通讯。我启动我的程序,它可以工作 5 到 6 个小时。然后设备没有应答。我重用 modpoll 并且设备没有应答。在将所有内容放置一夜之后,modpoll 和我的程序都可以再次运行。
我尝试了不同的库:UMODBUS 或 MinimalModBus 或 PyModBus。
我已经检查了几次我的接线和硬件:电缆小于 10m,两侧电阻为 120 欧姆。
设备有时会重启,比如后天,但没有采取任何措施...
有没有人遇到过这种情况并找到了根本原因?
【问题讨论】:
“我重新启动了系统/我重新启动了 Polier...但没有任何改变” - 那么是什么让事情再次正常运行呢? 没有线索...我只是在睡个好觉后重新启动程序... :) 所以重新启动应用程序确实可以暂时解决问题,但稍后又会再次出现? (这很重要,因为它指向您的应用程序的问题,而不是设备的问题)。如果您想对此进行测试,请尝试让一个已知良好的应用程序(例如 modpoll 或 mbpoll)运行,看看它是否会在一天左右后停止。 这里是场景:我使用 modpoll,设备回答得很好。我启动我的程序,它可以工作 5 到 6 个小时。然后设备没有应答。我重用了 modpoll,但设备没有响应……我等了一夜,modpoll 或我的程序再次工作!!! 重启两台设备都无法解决这样的问题似乎很不寻常(我假设你切断了电源?)。我的猜测是硬件问题。也许尝试从不同的机器轮询功率计以尝试隔离问题组件(Modbus设备锁定和被看门狗重置的问题,但这通常发生得相当快)。 【参考方案1】:有几个可能的原因,
-
轮询过快会导致设备出现流量控制或溢出
设备进入睡眠模式
波特率因晶体/石英相移而改变
你可以试试串口监控工具调试底层通信,看看异常期间到底发生了什么。
【讨论】:
以上是关于功率计 - Modbus RS485 - 5 到 6 小时后,设备不再响应的主要内容,如果未能解决你的问题,请参考以下文章
Profinet转RS485Modbus网关M2AC系列伺服驱动器配置方法