在工业现场,Modbus之所以应用广泛,是因为它简单、开放、成本低,尤其Modbus RTU跑在RS-485总线上,能实现多台设备手拉手组网。但简单不等于不会出问题。很多工程师一到现场发现PLC读不到仪表、变频器或温控器数据,第一反应是检查站号、波特率、校验位,甚至怀疑程序写错。经验丰富的调试人员却常常先拿出万用表,量A、B线之间的电压和电阻。原因很直接:Modbus通信再复杂,最终也要靠A、B两根差分线把电平信号传过去。物理层不成立,协议层一切免谈。

先量A、B线,本质上是先给物理层做“体检”。RS-485采用差分传输,逻辑状态由A、B线之间的电压差决定。上电空闲时,如果总线偏置正常,A、B之间通常能看到约0.2V到1V的直流差分电压,说明线路有确定的空闲电平;如果读数为负值,往往意味着A、B接反或偏置方向相反;如果接近0V,则可能是偏置电阻缺失、线路短路或收发器未进入正常状态。别小看这个空闲偏置,它决定了总线在无数据时是否稳定,偏置不当会导致首字节丢失、帧头识别失败,表现为“有时能通、有时不通”。

断电测电阻同样关键。标准RS-485总线要求在两端各接120Ω终端电阻,以匹配电缆特性阻抗、抑制反射。若两端终端都正确,断电后测A、B线之间的电阻大约在60Ω左右;若只有一端有终端,约为120Ω;若远大于120Ω,可能是终端缺失或线路断开;若接近0Ω,则基本可判定A、B短路。现场很多“偶发通信故障”并非PLC程序问题,而是终端电阻漏接、多接,或者总线被接成星型、树型,导致信号反射严重。先量A、B线,能在几分钟内把这类问题筛出来。

现场最常见的A、B线故障,第一是极性接反。不同厂家对A、B标注并不完全统一,有的设备A对应D+,有的标注相反。若仅凭颜色或说明书硬接,很容易整条总线反相。第二是终端电阻缺失或过多。短距离、低波特率时,缺终端也许能勉强通信,但一上到19200bps、38400bps甚至更高,误码率就明显上升。第三是共地问题。RS-485是差分信号,不要求两端必须共地,但共模电压必须在收发器允许范围内。若设备间地电位差过大,轻则通信不稳,重则烧毁接口。量A、B线对地电压,有助于判断共模是否异常。第四是屏蔽层处理不当,形成地环路,把变频器、伺服驱动器的干扰耦合进总线。

从调试流程看,先量A、B线也符合“先易后难、先硬后软”的工程原则。确认A、B线无短路、无断路、极性