首页 > 解决方案 > 功率计 - Modbus RS485 - 5 到 6 小时后,设备不再响应

问题描述

使用 Raspberry PI,我在 Python 中编写了一个循环,使用 waveshare 2-ch rs485 hat 每 15 秒读取一次 Polier MTR5LMOD 的 6 个寄存器。

该程序在 5 到 6 小时内工作(有时更少,有时更多)......突然......设备不再响应(无响应)!

我重新启动系统/我重新启动 Polier ......但没有任何变化。

为了进一步测试,我使用modpoll成功检查了通讯。我启动我的程序,它可以工作 5 到 6 个小时。然后设备没有应答。我重用 modpoll 并且设备没有应答。在将所有内容放置一夜之后,modpoll 和我的程序都再次工作。

我尝试了不同的库:UMODBUS 或 MinimalModBus 或 PyModBus。

我检查了几次我的接线和硬件:电缆小于 10m,两侧电阻为 120 欧姆。

设备有时会重新启动,例如后天,但没有采取任何措施......

有没有人遇到过这种情况并找到了根本原因?

标签: pythonraspberry-pimodbuspymodbusminimalmodbus

解决方案


有几个可能的原因,

  1. 轮询过快导致设备上的流量控制或溢出
  2. 设备进入睡眠模式
  3. 波特率因晶体/石英相移而改变

您可以尝试使用串口监控工具来调试底层通信,检查异常期间究竟发生了什么。


推荐阅读