4. 串行链路通信故障诊断
RS-485 是 SCADA 系统中最常见的现场总线物理层之一,它用一对差分线(A/B)承载半双工信号,靠 120Ω 终端电阻抑制反射,靠共地或隔离抑制共模干扰。正因为结构简单,一旦出现通信中断或误码,故障点往往集中在几个固定位置:总线冲突、终端电阻、接地环路、波特率与校验。本节按“现象—定位—恢复”的顺序逐一展开,并给出可直接执行的排查方法。
一、总线冲突:多主站同时驱动
RS-485 是半双工总线,同一时刻只能有一个节点驱动 A/B 线。若两个主站(或主站与误配置为主动发送的从站)同时使能发送,总线电平被两股驱动电流“对拉”,接收端看到的是被削顶、畸变的波形,表现为:通信时断时续、CRC 校验错误集中爆发、某些从站完全无响应,且故障与“谁先发”相关,具有随机性。
定位方法:用示波器或带差分探头的总线分析仪观察 A-B 差分波形。正常空闲态差分电压约 200mV 以上(取决于偏置电阻),发送时应出现清晰的 ±1.5V 以上摆幅。若波形出现平台塌陷、上升沿变缓或幅度不足,且多台设备同时段出现,基本可判定为冲突。也可临时断开部分从站,若冲突消失,则冲突源在剩余节点中。
恢复措施:确认协议层是否允许多主;若为 Modbus RTU 等单主协议,检查是否有从站被误设为“主动上报”或“主站模式”。对多主场景,应改用令牌传递或由软件层严格仲裁发送权。硬件上可加装带冲突检测的收发器,或在软件中加入发送前监听(类似 CSMA)逻辑,但 RS-485 本身不提供冲突检测,最终仍需协议层保证唯一驱动。
二、终端电阻:缺失、过多与偏置
RS-485 总线两端应各接一个 120Ω 终端电阻,用于吸收信号反射。常见错误有三类:两端都不接、只接一端、或每个节点都接(多接)。不接或只接一端时,信号在总线末端反射,表现为高速率下误码率升高、距离越长越明显;多接时总线负载过重,差分幅度下降,同样导致通信不稳。
定位方法:断电后用万用表测 A-B 之间的直流电阻。若两端各 120Ω 且中间无其他电阻,读数约 60Ω;若读数为 120Ω,说明只有一端接了;若读数远小于 60Ω(如 30Ω 以下),说明存在多个终端电阻并联。注意测量前必须断开所有节点电源,避免收发器内部电阻影响。
恢复措施:只保留物理总线最远两端的 120Ω 电阻,中间节点一律拆除。若总线较短(如小于 50m)且速率低于 19.2kbps,可只在一端接 120Ω 并加偏置电阻,但需实测波形确认。偏置电阻通常取 560Ω~1kΩ,分别将 A 拉高、B 拉低,保证空闲态差分电压大于 200mV,防止接收器在无驱动时输出随机电平。
三、接地环路:地电位差与共模干扰
当总线两端设备分别接入不同接地系统,或现场存在大功率设备启停,地电位差会在 A/B 线上叠加共模电压。RS-485 收发器共模范围通常为 -7V~+12V,超出后接收器无法正确判决,表现为:白天正常、夜间或大设备启动时误码激增;用手触摸机柜或改变接地方式,通信状态随之变化。
定位方法:用万用表交流档测量两端设备地之间的电压,若超过 1V 即需警惕;用示波器观察 A/B 对地波形,若共模电压明显偏移或出现工频包络,说明存在接地环路。也可临时用一根粗导线将两端地短接,若通信恢复,则确认是地电位差问题。
恢复措施:首选隔离型 RS-485 收发器或加装光耦隔离模块,切断地环路。若无法隔离,应确保整条总线单点接地,并将屏蔽层仅在一点接地,避免屏蔽层形成地环。对于变频器、大接触器附近的线缆,应远离动力线并采用双绞屏蔽线,屏蔽层接机柜地。
四、波特率与校验不匹配
波特率、数据位、停止位、校验方式必须完全一致。常见错误是主站 9600-8-N-1,某从站仍为 19200-8-E-1,表现为该从站始终无响应或返回乱码,而其他从站正常。校验错误则表现为帧结构正确但 CRC/LRC 失败,通常由干扰、终端电阻不当或波特率偏差累积引起。
定位方法:用串口监听工具抓取原始字节,对比主站发送与从站返回的帧格式。若从站返回的字节数正确但内容错乱,优先怀疑波特率;若返回帧的校验字段与计算值不符,则检查校验配置和线路质量。也可逐个从站单独通信,确认其参数。
恢复措施:统一所有节点的串口参数,并在组态软件中逐站核对。对于长距离或高干扰场合,可降低波特率至 9600 或 4800,并启用偶校验以增加检错能力。若校验错误集中在特定时段,应结合接地和终端电阻一并排查。
五、综合排查流程与恢复验证
面对一条报错的 RS-485 链路,建议按“先静态、后动态,先物理、后协议”的顺序推进。第一步断电,用万用表测 A-B 电阻,确认终端电阻是否为 60Ω 左右;第二步核对主站与各从站的波特率、数据位、停止位、校验,确保完全一致;第三步上电,用示波器观察差分波形幅度、上升沿和空闲偏置;第四步测量两端地电位差,判断是否需要隔离;第五步检查是否存在多主站同时发送。
恢复后不能只看“能通”,还要做稳定性验证:连续轮询 30 分钟以上,统计 CRC 错误率和超时次数;在变频器、接触器动作时段重点观察;用串口工具抓取完整帧,确认校验字段正确。若误码率仍高于 0.1%,应回头检查屏蔽层接地和线缆走向,必要时降低波特率或增加中继器。
- 断电测 A-B 电阻 ≈ 60Ω(仅两端 120Ω)
- 所有节点串口参数一致(波特率/数据位/停止位/校验)
- 空闲态差分电压 > 200mV(偏置电阻正常)
- 两端地电位差 < 1V,或已使用隔离收发器
- 屏蔽层单点接地,远离动力电缆
- 同一时刻仅一个主站驱动总线
- 连续轮询 30 分钟,CRC 错误率 < 0.1%
需要强调的是,RS-485 故障往往不是单一原因,而是终端电阻缺失叠加接地环路、或波特率错误叠加总线冲突。因此排查时应逐项隔离变量:先只保留主站与一个从站通信,确认基础链路正常,再逐个接入其余节点,观察误码是否随某台设备接入而出现。这种“二分法”能快速把故障范围缩小到具体节点或具体区段,比盲目更换设备更有效。