第二章:硬件基础——串口RS-232/RS-485与以太网RJ45接口的物理层对比与选型
做Modbus迁移,第一个绕不开的问题就是:物理层怎么选?
说白了,你原来用串口线连得好好的设备,现在要改成以太网。但串口和以太网,根本就不是一个世界的东西。我见过太多人,买了个以太网模块回来,插上发现通讯不上,最后查了半天——原来是电平不匹配。
嗯,这一章我们就来把这事彻底讲清楚。
2.1 串口家族:RS-232 与 RS-485 的恩怨情仇
先说说串口。Modbus RTU/ASCII 跑在串口上,这是最经典的模式。但串口本身分两种:RS-232 和 RS-485。很多人以为它们差不多,其实差远了。
2.1.1 RS-232:老大哥,但腿短
RS-232 是最早的串口标准。我记得刚入行那会儿,调试PLC还得用DB9接口的编程线,就是那种两头都是9针母头的线。RS-232 的特点是:单端传输。什么意思?就是一根信号线对地线,电压差来代表逻辑0和1。
- 逻辑1: -3V ~ -15V
- 逻辑0: +3V ~ +15V
你看,它用的是负逻辑,而且电压范围还挺大。这带来的问题就是:抗干扰能力差。我在一个工厂里遇到过,RS-232线拉了15米,数据就开始乱跳。后来一查,旁边就是变频器的动力电缆。
2.1.2 RS-485:工业现场的常青树
RS-485 就不一样了。它用的是差分信号——两根线(A和B)之间的电压差来决定逻辑。这招很聪明,因为外部干扰会同时作用在两根线上,差值基本不变。所以RS-485的抗干扰能力比RS-232强了一个数量级。
- 逻辑1: A线比B线高 +0.2V 以上
- 逻辑0: A线比B线低 -0.2V 以上
而且RS-485支持多点通讯。一条总线上可以挂32个节点(标准值,有些芯片能到256个)。我做过一个项目,一条RS-485总线挂了18个温湿度传感器,距离最远的那个离主机有800米,照样跑9600波特率,稳得很。
2.2 以太网RJ45:速度与距离的降维打击
说完串口,再来看以太网。RJ45接口,也就是我们常说的网口。它用的是差分信号,但比RS-485更复杂——因为它有4对差分线(8根线),而且支持全双工。
以太网的物理层标准很多,但工业现场最常见的是10/100BASE-TX。它只用两对线:一对发,一对收。速度是10Mbps或100Mbps。你想想看,串口最高也就115200bps,差了将近1000倍。
距离方面,标准以太网是100米(用超五类或六类网线)。超过100米怎么办?加交换机,或者用光纤。我有个项目,车间跨度200多米,中间加了一台工业交换机,完美解决。
| 参数 | RS-232 | RS-485 | 以太网 (10/100BASE-TX) |
|---|---|---|---|
| 传输方式 | 单端 | 差分 | 差分 |
| 最大距离 | 15米 | 1200米 | 100米 |
| 最大节点数 | 1对1 | 32~256 | 理论上无限制(通过交换机) |
| 典型速率 | 9600~115200 bps | 9600~115200 bps | 10/100 Mbps |
| 抗干扰能力 | 差 | 强 | 强 |
| 全双工 | 是(但需额外线) | 半双工 | 全双工 |
2.3 选型决策:什么时候该换?什么时候不该换?
好,现在问题来了:我到底要不要把串口设备换成以太网?
我个人习惯是这么判断的:
- 看距离: 超过15米,别用RS-232。超过100米,别用普通以太网(除非加交换机或光纤)。RS-485在1200米以内都还行。
- 看节点数: 超过32个设备,RS-485就有点吃力了。这时候以太网加交换机是更好的选择。
- 看速度: 如果数据量不大(比如温度、压力这些慢变量),串口完全够用。但如果要传波形、图片或者大量历史数据,老老实实上以太网。
- 看成本: 串口芯片便宜,线缆也便宜。以太网芯片贵一些,但交换机现在也白菜价了。
2.4 物理层对比总结:一张图看懂
下面这张图,是我自己画的。它把三种物理层的核心差异和适用场景串在了一起。你看完应该就能明白,为什么我说“选型不是拍脑袋,而是算账”。
2.5 实战中的那些坑
最后,分享几个我踩过的坑,希望能帮你省点时间。
- 接地问题: RS-485的屏蔽层,到底接不接地?我的经验是:单端接地。两端都接地,反而容易形成地环路,引入干扰。我曾经在一个项目里,两端都接了地,结果通讯误码率高达10%。去掉一端后,立马恢复正常。
- 网线质量: 工业现场别用那种几块钱一根的成品网线。我建议用超五类或六类屏蔽网线,自己做水晶头。别嫌麻烦,稳定比什么都重要。
- 波特率匹配: 串口转以太网时,很多人忘了检查波特率。两边必须一致,否则数据全是乱码。我见过有人把9600和19200混着用,折腾了一下午才发现。
好了,物理层的事就聊到这儿。下一章我们讲协议层——Modbus RTU 和 Modbus TCP 到底有什么区别?为什么说TCP才是未来?到时候见。
公众号:蓝海资料掘金营,微信deep3321