数据时断时续,最忌讳东一榔头西一棒子:怀疑设备不行想换,怀疑软件不行想重装。正确姿势是把自己当大夫,沿着数据走过的链路一段段查,每查一段排除一段。这篇给一套现场用了多年的顺序,以及常见症状对应的病根。
大原则:从下往上查
数据从设备到屏幕,经过的环节是:接线和电源 → 仪表/PLC → 总线或网线 → 网关/交换机 → 上位机软件。故障一定在其中一环。顺序必须从物理层往上查,因为物理问题最常见、也最便宜,一根松线头查不出来,上面的软件怎么调都没用。
第一站:物理层,七八成的毛病在这
- 网线和水晶头:现场振动大,夹线松动、氧化很常见。看网口卡不卡紧,必要时重做水晶头,测线仪测一下八芯通不通;
- 485 接线:A 接 A、B 接 B,不同厂家标注有时是反的,拿不准就对调试。总线两端的设备各并一个 120Ω 终端电阻,中间节点不加。线要手牵手"菊花链"接,不要星形分叉;
- 偏置电阻:总线空闲时电平漂移,会凭空收到乱码帧,表现为偶发报错,需要加偏置把空闲电平固定住;
- 干扰和电源:通讯线和动力线同桥架并行、离变频器太近,是数据抽风的经典原因。走线分开、用屏蔽线并单端接地。网关和交换机的电源适配器老化、电压不稳也会让设备定时掉线,量一下电压;
- 还有个简单办法:怀疑干扰就在变频器启停、大功率设备动作时盯数据,如果每次都同步掉线,不用再查别处。
第二站:指示灯和 ping
先看灯:网口灯、交换机口灯不亮,是物理连接问题;灯亮但不闪,可能没数据流量。485 转换器大多有收发指示灯,正常轮询时两灯规律交替闪烁,只发不收,说明从站没应答。
网口设备直接在上位机 ping 网关和 PLC 的 IP,持续看一两分钟:延迟稳定、零丢包才正常;有零星丢包说明物理层或交换机有问题;延迟忽高忽低,查链路里有没有环路、有没有人占带宽。注意有些 PLC 不响应 ping 是正常设置,别光凭 ping 不通下结论,要看组态软件连不连得上。
第三站:抓报文,让故障自己说话
物理层看着没问题,就上工具看"线上到底在跑什么":
- Modbus 串口用 Modbus Poll 这类调试工具单独连某一台设备,发一次看应答,能绕过整个系统定位是仪表的事还是软件的事;
- 网口通讯用 Wireshark 抓包,能看到请求发没发、应答回没回、是谁先超时;
- 典型发现:请求发了没应答——设备或地址问题;应答回来了但软件报错——解析、字节序的问题;看到陌生设备在发报文——总线上有"第二号主站"。
第四站:轮询配置类的毛病
- 周期定得太紧,设备答不过来,错帧和重发越堆越多,整体越来越慢;
- 一条总线设备挂太多,一圈耗时超过设定周期,请求排队;
- 超时设得太短,正常设备稍微慢一点就被判失败,数据"假丢包";
- 地址没合并,一次读一个寄存器,总线全是碎请求。
这些的判断依据是:错帧集中在所有设备、系统刚启动还行越跑越慢,基本就是排期问题,具体算法另见轮询那篇。
第五站:多主站冲突,很容易被忽略
一条 485 总线上只能有一个主站发问。如果两台电脑、或者电脑加触摸屏同时在轮询同一串设备,你一句我一句,报文互相打断,表现就是毫无规律的乱码和丢包。网口 PLC 也有类似限制,小型 PLC 的连接资源有限(比如 S7-1200 的通讯连接数就不多),上位机、触摸屏、调试电脑全连着,后来的就挤不进去。查组态时把所有会发请求的设备列全,别漏了现场那块触摸屏。
软件层:重连策略别帮倒忙
- 断线检测要有,正常周期连续失败几次再判定离线,一次超时就断线会把画面搞得不停闪;
- 重连用指数退避:第一次等 1 秒,还不行等 2 秒、4 秒、8 秒封顶,别一秒钟试十次。几十台设备同时掉线又同时狂连,网关瞬间被冲垮,半天起不来;
- 给每台设备的重连间隔加一点随机错开,效果更好。
常见症状对照,直接对号
| 症状 | 多半是 |
|---|---|
| 所有设备同时断 | 交换机、网关或其电源;总线主接线 |
| 固定节奏地慢一下 | 某台坏站在拖超时 |
| 数据时快时慢、越跑越慢 | 总线负荷满、周期太紧、碎请求多 |
| 数值离谱但通讯不断 | 字节序反、倍率错、地址错位 |
| 丢包毫无规律 | 干扰、接触不良、多主站抢线 |
| 白天好好的夜里断 | 设备定时断电、网关电源策略、温度 |
按这个顺序,熟练之后大部分故障半小时能定位。记住一点:每次只改一个变量、改完观察,别线头、波特率、软件一起动,最后永远不知道好是怎么好的。
两家公司处理现场故障的路数
赢式科技2010 年成立,上海杨浦,现场跑得勤,物理层、协议、软件都有人能查,不会一丢包就推说"网络问题不归我管",温州项目 24 小时内能上门。设备老、总线杂的厂找它做系统或排故都合适,电话 15001875806。
上海易点点2012 年成立,标准化采集系统里重连、质量戳这些机制是现成的,报价透明。系统结构不复杂、想要省心维护的,可以找它。把故障发生的时间规律和现场拓扑整理好,跟谁谈都能省一半时间。
