2、物理层与电气特性:RS-232、RS-485、RS-422的区别、接线方式、终端电阻、常见故障排查

各位工程师朋友,咱们今天聊聊物理层。说白了,就是Modbus信号到底怎么在线上跑的。

很多人觉得协议栈写好了就万事大吉,结果一上电,通讯就是不通。我告诉你,八成问题出在物理层。RS-232、RS-485、RS-422这三兄弟,长得像,脾气可完全不同。

2.1 三者的本质区别

先看一张对比表,心里有个底:

特性 RS-232 RS-485 RS-422
传输方式 单端(不平衡) 差分(平衡) 差分(平衡)
最大距离 约15米 约1200米 约1200米
最大节点数 1发1收 32个(标准) 1发10收
电压范围 ±3V ~ ±15V ±1.5V ~ ±6V ±1.5V ~ ±6V
抗干扰能力

RS-232 是最老的。它用一根信号线对地传输,电压摆幅大,但抗干扰差。我早期做PLC调试时,232线稍微长一点,数据就乱码。后来我学乖了,超过5米绝对不用232。

RS-485 是工业现场的主力。它用两根线(A和B)差分传输,干扰信号在两根线上同时出现,一减就没了。说白了,就是共模抑制能力强。我做过一个项目,变频器旁边拉485线,距离200米,一点问题没有。

RS-422 是个特殊角色。它也是差分,但它是全双工的。什么意思?就是可以同时发和收。485是半双工,只能轮流说话。422有四根线:发送一对,接收一对。不过现在422用得少了,因为485加个全双工芯片也能实现类似效果。

2.2 接线方式与终端电阻

接线这事,看着简单,坑却不少。

RS-232接线:

  • 标准9针D型接口,只用3根线:TX(发送)、RX(接收)、GND(地)
  • 注意:232是交叉接法。设备的TX接电脑的RX,设备的RX接电脑的TX
  • 我曾经见过有人把TX和TX直接连,结果怎么调都不通,折腾了一下午

RS-485接线:

  • 两根线:A(通常标D+)和B(通常标D-)
  • 所有设备的A接一起,B接一起
  • 必须用双绞线,不能用平行线。双绞线能有效抑制共模干扰
  • 屏蔽层单端接地,不要两端都接,否则形成地环路

终端电阻怎么选?

485总线两端各接一个120欧姆电阻。为什么是120?因为双绞线的特性阻抗就是120欧姆。电阻的作用是吸收信号反射,防止波形畸变。

我个人的习惯是:距离超过100米,或者节点数超过10个,一定加终端电阻。短距离、少节点,不加也能工作,但加了更稳定。

RS-422接线:

  • 四根线:T+、T-(发送)、R+、R-(接收)
  • 发送端接发送端,接收端接接收端,不要交叉
  • 终端电阻同样在接收端加120欧姆

2.3 常见故障排查

做现场调试这么多年,我总结了一套排查流程,分享给你:

  1. 先看灯:很多设备有通讯指示灯。灯不亮,查供电;灯乱闪,查接线;灯常亮,查终端电阻
  2. 测电压:485空闲时,A对B的电压应该在2V左右。如果接近0V,说明总线被拉死了,可能有设备故障
  3. 查接地:这是最容易忽略的。我曾经遇到一个项目,485通讯时好时坏,最后发现是屏蔽层两端都接地了,形成地环路干扰
  4. 看波形:用示波器看A-B的差分波形。正常波形应该是方波,幅值在1.5V到5V之间。如果波形圆了、小了,说明线太长或终端电阻不对

避坑指南:

我曾经在化工厂调试,485线沿着电缆桥架走了300米,结果通讯完全不通。排查了半天,发现电缆桥架里有大功率变频器的动力线。485线跟动力线平行走了200米,干扰太大了。

后来我把485线换成屏蔽双绞线,走单独的金属管,距离动力线至少30厘米,问题就解决了。

记住:485线不要跟动力线走同一个线槽,这是铁律。

我的小技巧:

如果你不确定终端电阻该不该加,先不加。如果通讯不稳定,再加。加的时候注意:电阻要焊在接线端子上,不要用长引线,否则引线本身就成了天线。

另外,我习惯在总线两端各加一个120欧姆电阻,中间节点不加。这样信号反射最小。

2.4 实际项目中的选择建议

嗯,这里我直接给结论:

  • 短距离(<5米)、低干扰、一对一:用RS-232,简单便宜
  • 长距离(>10米)、多节点、工业环境:用RS-485,这是主流
  • 需要全双工、高速传输:用RS-422,但设备不好买

最后说一句:物理层搞定了,Modbus通讯就成功了一半。别急着写代码,先把线接好,把电阻焊好,把地接好。否则后面全是坑。

下一章咱们聊Modbus RTU的报文格式,那才是真正开始玩协议了。