2、物理层与电气特性:RS-232、RS-485、RS-422接口标准对比与选型
做Modbus这么多年,我经常被问到同一个问题:
“这三种接口到底怎么选?”
说实话,选错了接口,后面调试能让你怀疑人生。今天咱们就把RS-232、RS-485、RS-422这三个老伙计掰开揉碎讲清楚。
2.1 先看一张总览图
下面这张图,是我自己总结的选型逻辑。你一看就明白该走哪条路。
我的习惯: 拿到项目需求,先问三个问题——距离多远?几个设备?要不要同时收发?答案出来,接口基本就定了。
2.2 RS-232:老当益壮的短距离选手
RS-232是串口通信的老祖宗。我记得刚入行那会儿,调试PLC和触摸屏,用的就是DB9接口的RS-232。
核心特点:
- 单端信号传输:用一根信号线对地传输,说白了就是电压差。
- 逻辑电平:-3V~-15V表示逻辑“1”,+3V~+15V表示逻辑“0”。
- 最大距离:理论15米,实际超过10米就开始丢包。
- 连接方式:点对点,只能接一个设备。
我曾经踩过的坑: 有一次在工厂现场,RS-232线拉了20米,结果数据全是乱码。后来发现是线缆太长,信号衰减严重。最后老老实实换成RS-485,问题解决。记住,RS-232别超过10米,这是血泪教训。
什么时候用RS-232?
- 调试阶段,电脑直接连PLC或变频器
- 短距离(3米以内),比如控制柜内部通信
- 设备少,就一个上位机带一个下位机
2.3 RS-485:工业现场的主力军
RS-485是我用得最多的接口。说实话,Modbus RTU在工业现场能火起来,RS-485功不可没。
核心特点:
- 差分信号传输:用A、B两根线传信号,抗干扰能力比RS-232强太多。
- 逻辑电平:A-B > +200mV为逻辑“1”,A-B < -200mV为逻辑“0”。
- 最大距离:1200米(加中继器可以更远)。
- 多节点:一条总线上最多挂256个设备。
- 半双工:同一时刻只能发或收,不能同时进行。
选型要点: 如果你要接多个设备,比如一个PLC带20个温控器、10个变频器,RS-485是唯一选择。Modbus RTU就是跑在RS-485上的。
实际项目中的注意事项:
- 终端电阻:总线两端各加一个120Ω电阻,防止信号反射。我见过有人不加,结果通信时好时坏。
- 偏置电阻:总线空闲时,A线比B线高200mV以上,防止误触发。
- 屏蔽层单端接地:屏蔽层只在一端接地,避免形成地环路。
我的经验: 现场布线时,RS-485的A/B线一定要用双绞线,绞距越密越好。我曾经在一个电机旁边走线,没做屏蔽,结果电机一启动,通信就断。后来换成屏蔽双绞线,世界清净了。
2.4 RS-422:全双工的“异类”
RS-422其实是个过渡产品。它比RS-232强,但不如RS-485灵活。不过在某些场景下,它依然有不可替代的优势。
核心特点:
- 差分信号:和RS-485一样,抗干扰能力强。
- 全双工:可以同时发送和接收,不需要切换方向。
- 1发多收:一个发送端可以带最多10个接收端。
- 最大距离:也是1200米。
什么时候用RS-422?
- 需要全双工通信,比如某些高速数据采集系统
- 一个主站带多个从站,但主站只发不收(比如广播指令)
- 对实时性要求高,不想花时间切换收发方向
注意: RS-422不能像RS-485那样挂多个发送端。如果你需要多个设备都能主动发数据,老老实实用RS-485。
2.5 三张表搞定选型
下面这三张表,是我做项目时经常翻的。你直接拿去用。
表1:电气特性对比
| 参数 | RS-232 | RS-422 | RS-485 |
|---|---|---|---|
| 信号类型 | 单端 | 差分 | 差分 |
| 传输线数 | 3根(TX、RX、GND) | 4根(T+、T-、R+、R-) | 2根(A、B) |
| 最大节点数 | 1发1收 | 1发10收 | 32发32收(标准) |
| 最大距离 | 15米 | 1200米 | 1200米 |
| 最大速率 | 115.2kbps | 10Mbps | 10Mbps |
| 通信方式 | 全双工 | 全双工 | 半双工 |
表2:抗干扰能力对比
| 干扰类型 | RS-232 | RS-422 | RS-485 |
|---|---|---|---|
| 共模干扰 | 差 | 好 | 好 |
| 电磁干扰(EMI) | 差 | 较好 | 较好 |
| 地电位差 | 敏感 | 不敏感 | 不敏感 |
表3:典型应用场景
| 场景 | 推荐接口 | 原因 |
|---|---|---|
| 电脑调试PLC | RS-232 | 距离近,设备少,简单直接 |
| 工厂设备联网 | RS-485 | 距离远,节点多,抗干扰强 |
| 高速数据采集 | RS-422 | 全双工,不需要切换方向 |
| 变频器控制 | RS-485 | 现场干扰大,需要差分信号 |
2.6 实际接线与配置
光说不练假把式。咱们看看实际怎么接线。
RS-232接线(DB9接口):
电脑端(DB9母头) PLC端(DB9公头)
针脚2(RX) —————— 针脚3(TX)
针脚3(TX) —————— 针脚2(RX)
针脚5(GND) —————— 针脚5(GND)
RS-485接线(两线制):
主站(A+) —————— 从站1(A+) —————— 从站2(A+)
主站(B-) —————— 从站1(B-) —————— 从站2(B-)
主站(GND) —————— 从站1(GND) —————— 从站2(GND)
注意:总线两端各加120Ω终端电阻
RS-422接线(四线制):
主站(T+) —————— 从站1(R+)
主站(T-) —————— 从站1(R-)
主站(R+) —————— 从站1(T+)
主站(R-) —————— 从站1(T-)
一个小技巧: 现场调试时,如果通信不通,先用万用表量一下A-B之间的电压。空闲状态下,应该在200mV~500mV之间。如果电压为0或者负值,说明偏置电阻没加对。
2.7 避坑指南
最后,把我这些年踩过的坑总结一下,你遇到了直接对照排查。
- 地电位差问题:两个设备距离远时,地电位可能差几十伏。RS-232直接烧接口芯片。RS-485虽然抗共模,但超过-7V~+12V范围也会坏。加隔离模块是正解。
- 线缆选型:别用普通电线代替双绞线。我见过有人用网线里的单根线走RS-485,结果100米外就丢包。
- 终端电阻别乱加:只有总线两端加,中间设备不要加。加多了信号幅度不够,通信失败。
- 波特率匹配:所有设备波特率必须一致。我遇到过有人把PLC设成9600,触摸屏设成19200,结果怎么调都不通。
总结一句话: 短距离点对点用RS-232,长距离多节点用RS-485,需要全双工且节点少用RS-422。选对了接口,项目就成功了一半。
公众号:蓝海资料掘金营,微信deep3321