现场手记:那个让我熬到凌晨两点的“Modbus多协议冲突”

干我们这行,白天在现场吃灰,晚上在后台查Bug,是常有的事。

前几天去一个化工厂做改造。现场有十几台变频器,走RS-485总线。但时不时地,总线上会有某台变频器丢包。

现场手记:那个让我熬到凌晨两点的“Modbus多协议冲突”的图1

现象:白天正常,夜里丢包

一开始怀疑是线太长、干扰大。加了终端电阻、拉了地线,白天测试数据好得很。但一到凌晨2点,值班员说部分变频器数据不刷新了。

排查:抓包发现“地址撞车”

抓了一晚上的串口包,发现凌晨2点有一个很奇怪的现象:有两个数据包在总线上“撞车”了。仔细核对现场的从站地址,原来,有一台备用泵的控制柜,不仅物理地址也设成了5,而且只在后半夜(切换水泵时)才会通电并入总线。

解决:从源头隔离

问题找到了,两个地址为5的设备同时在线,总线必然乱码。让现场把备用泵的地址改成16,同时在主机的轮询配置里,将这十几台设备分成两个独立的采集任务组,错开采集频率,避免总线拥堵。

现场手记:那个让我熬到凌晨两点的“Modbus多协议冲突”的图2

物联网现场,很多问题不是设备硬件坏了,而是逻辑没理清。一个优秀的主机不仅要能采数据,还要能通过灵活的任务分组和超时设置,帮工程师兜底。

你现场遇到过地址冲突的坑吗?最后是怎么发现的?评论区聊聊。

查看全文
我的头像
默认 最新