第2章:物理层与传输介质:RS-232、RS-485、RS-422的区别与选型、双绞线与屏蔽、终端电阻匹配
各位工程师朋友,咱们接着聊。上一章我们把Modbus的协议框架理清了,这一章得落地到物理层了。说白了,Modbus报文最终是要靠电线来传输的。你协议写得再漂亮,物理层选错了,现场照样跑不起来。
我见过太多项目,上位机软件调得好好的,一到现场就丢包、乱码。查到最后,十有八九是RS-485的接线或者终端电阻出了问题。所以这一章,咱们把物理层的这些“硬骨头”啃下来。
2.1 三种物理接口:RS-232、RS-485、RS-422
这三种接口,是工业通信的老三样。虽然现在也有以太网,但在PLC、变频器、仪表这些设备上,它们依然是绝对主力。我个人的习惯是:能用485就不用232,能用422就不用单端。
2.1.1 RS-232:点对点的老将
RS-232是最早的串行通信标准。它的信号是“单端”的,什么意思?就是一根信号线对地线。比如发送数据(TXD)和接收数据(RXD),都是相对于信号地(GND)来测量电压的。
关键参数:
- 传输距离:理论15米左右。我在现场试过,超过20米基本就废了,数据全是错的。
- 通信方式:全双工。可以同时发和收,这点比RS-485强。
- 连接方式:点对点。只能接一个设备,不能组网。
- 电平标准:-3V到-15V表示逻辑“1”,+3V到+15V表示逻辑“0”。
2.1.2 RS-485:工业现场的主力军
RS-485是目前Modbus最常用的物理层。它用“差分信号”传输,也就是用两根线(A和B)的电压差来表示数据。这招很聪明,因为外部干扰对两根线的影响是差不多的,一相减,干扰就被抵消了。
关键参数:
- 传输距离:理论1200米。实际项目中,我用过800米,加了中继器还能更远。
- 通信方式:半双工。同一时刻只能发或收,需要软件控制收发切换。
- 连接方式:多点。一条总线上最多可以挂32个节点(标准),现在有些芯片可以做到256个。
- 电平标准:A比B高200mV以上为逻辑“1”,A比B低200mV以上为逻辑“0”。
2.1.3 RS-422:全双工的485
RS-422可以看作是RS-485的“全双工”版本。它用了4根线:一对发送(T+、T-),一对接收(R+、R-)。这样发和收可以同时进行,不需要切换。
关键参数:
- 传输距离:和485差不多,1200米左右。
- 通信方式:全双工。适合需要实时响应的场合。
- 连接方式:一主多从。主机可以同时发,从机可以同时回,但主机只能有一个。
说实话,RS-422在Modbus里用得不多。因为Modbus是主从协议,主机发完命令才等从机回复,半双工完全够用。只有在一些高速数据采集系统里,我才会考虑用422。
2.1.4 选型对比表
| 特性 | RS-232 | RS-485 | RS-422 |
|---|---|---|---|
| 传输方式 | 单端 | 差分 | 差分 |
| 通信模式 | 全双工 | 半双工 | 全双工 |
| 最大距离 | 15米 | 1200米 | 1200米 |
| 节点数量 | 1对1 | 最多32-256 | 1主多从 |
| 抗干扰能力 | 差 | 强 | 强 |
| 典型应用 | 短距离调试 | 工业总线 | 高速采集 |
2.2 双绞线与屏蔽:抗干扰的秘诀
选好了接口,线材也不能马虎。RS-485和RS-422必须用双绞线,这不是建议,是必须。为什么?
双绞线每根线都绞在一起,目的是让两根线受到的电磁干扰尽量一致。你想想看,如果两根线平行走,干扰源离一根近、离另一根远,那干扰就不一样了。绞在一起后,每根线在空间上“轮流”靠近干扰源,平均下来干扰就相等了。
屏蔽层的作用:
- 屏蔽层可以阻挡外部的电磁干扰(EMI)。
- 但屏蔽层不能两端都接地!
线材选型建议:
- 普通环境:用RVSP 2×0.5mm²双绞屏蔽线。
- 强干扰环境:用STP-120(特性阻抗120Ω的屏蔽双绞线)。
- 千万别用电话线或者网线里的单根线代替,那会出大问题。
2.3 终端电阻匹配:为什么是120Ω?
这是现场最容易忽略的问题。很多工程师觉得“不接电阻也能通啊”,没错,短距离确实能通。但距离一长、波特率一高,信号反射就会让你头疼。
信号反射的原理:
电信号在电缆里传输,遇到阻抗突变的地方(比如线路末端突然断开),就会产生反射。反射回来的信号和原来的信号叠加,就会造成波形畸变。你看到的乱码,其实就是反射波把数据位“冲”坏了。
终端电阻的作用:
- 在总线两端各接一个电阻,让信号走到末端时被“吸收”掉,不再反射回来。
- 电阻值必须等于电缆的特性阻抗。RS-485标准电缆的特性阻抗是120Ω,所以终端电阻就是120Ω。
怎么判断是否需要接?
- 用示波器看A-B之间的波形。如果波形有“振铃”(过冲后上下抖动),就需要接。
- 或者简单点:距离<50米且波特率<9600,可以不接;否则必须接。
嗯,这里还要注意一点:有些设备内部已经集成了终端电阻,比如西门子的PLC,它有个拨码开关可以切换。用之前先查一下手册,别重复接了。
2.4 实战总结:一个典型的485网络搭建步骤
最后,我给大家总结一下搭建一个Modbus RTU 485网络的步骤。这是我每次做项目都会走的流程:
- 选型:确定主机和从机都支持RS-485。
- 布线:用RVSP双绞屏蔽线,走单独的线槽,远离动力电缆。
- 接线:A接A,B接B,GND接GND(很多设备需要共地)。屏蔽层在主机端单点接地。
- 终端电阻:在总线的首尾两个设备上,各接一个120Ω电阻。
- 偏置电阻(可选):如果总线空闲时电平不稳定,可以在主机端加偏置电阻,把A-B的电压拉到200mV以上。
- 测试:用示波器看波形,确认没有反射和畸变。
好了,物理层这部分就讲到这里。下一章我们进入数据链路层,聊聊Modbus的报文结构。到时候你会发现,理解了物理层,报文里的那些“地址”、“功能码”才真正有了意义。