2. Modbus物理层与通信模式:RS-232、RS-485、TCP/IP三种物理层对比;单播与广播模式
大家好,我是老张。搞了十几年SCADA系统集成,Modbus这玩意儿几乎天天打交道。今天咱们聊聊它的物理层和通信模式。说白了,Modbus就是个“语言”,但用什么“嗓子”喊出来,差别可大了去了。
物理层决定了数据怎么在线上跑。RS-232、RS-485、TCP/IP,这三种是我最常用的。嗯,咱们一个一个说。
2.1 RS-232:老当益壮的点对点
RS-232,年纪最大的一个。我记得刚入行那会儿,调试PLC全靠它。它的特点就是简单——一根线连一个设备,点对点通信。
- 传输距离:一般15米左右。再远信号就衰减得厉害。我在一个老旧水厂项目里,硬是拉了20米线,结果数据乱跳,最后乖乖换成了RS-485。
- 速率:最高也就115.2kbps。传点开关量、模拟量还行,要是传历史数据,能急死人。
- 接线:3根线就够了——TXD、RXD、GND。但要注意,它用的是±12V电平,跟现在常见的TTL电平不兼容,得加转换芯片。
2.2 RS-485:工业现场的主力军
RS-485,这才是工业现场的“老黄牛”。为什么?因为它支持多点通信,一条总线上能挂32个节点(用中继器还能更多)。
我做过一个污水处理项目,一个车间里20多台仪表,全挂在一条RS-485总线上。布线省了一大半,调试也方便。
- 传输距离:理论1200米。实际项目中,我建议控制在800米以内,留点余量。超过这个距离,加中继器或者换光纤转换器。
- 速率:从9.6kbps到10Mbps都有。但距离越远,速率就得降。比如1200米时,一般用9.6kbps或19.2kbps。
- 接线:两线制(A、B)或四线制。绝大多数场合用两线制,半双工通信。注意终端电阻——120Ω,在总线两端各接一个。我曾经忘了接,结果信号反射,数据包疯狂出错。
2.3 TCP/IP:现代SCADA的标配
TCP/IP,现在的新项目基本都用它。为什么?速度快、距离远、还能和办公网融合。
- 传输距离:取决于网络基础设施。局域网内100米(超五类线),通过交换机可以无限扩展。互联网就更不用说了。
- 速率:100Mbps起步,千兆、万兆都有。传什么数据都不在话下。
- 接线:标准以太网线(RJ45接口)。注意,工业环境要用工业级交换机,别拿家用路由器凑合。我见过一个项目,用了普通交换机,现场电磁干扰一强,网络就断。
Modbus TCP/IP和Modbus RTU/ASCII最大的区别是:它没有CRC校验,因为TCP/IP协议栈自己会处理。另外,端口号默认是502。
2.4 三种物理层对比
咱们用个表格,一目了然:
| 特性 | RS-232 | RS-485 | TCP/IP |
|---|---|---|---|
| 通信方式 | 点对点 | 多点(半双工) | 多点(全双工) |
| 最大节点数 | 2 | 32(无中继器) | 理论无限制 |
| 传输距离 | 15米 | 1200米 | 100米(局域网) |
| 典型速率 | 115.2kbps | 9.6kbps - 10Mbps | 100Mbps+ |
| 抗干扰能力 | 弱 | 强(差分信号) | 中(依赖网络设备) |
| 典型应用 | 调试、单设备 | 现场总线、仪表组网 | SCADA上位机、远程监控 |
2.5 单播与广播模式
说完物理层,咱们聊聊通信模式。Modbus里,单播和广播是两种基本玩法。
单播:一对一聊天
主站给一个从站发请求,从站回复。这是最常见的模式。比如SCADA系统读取某个PLC的寄存器值,就是单播。
每个从站有唯一地址(1-247)。主站发报文时,地址字段填目标从站地址。从站收到后,处理并回复。如果没回复,主站会超时重试。
广播:一对多喊话
主站给所有从站发命令,地址填0。从站收到后执行,但不回复。广播一般用于同步操作,比如“所有设备复位”、“统一写时间”。
我个人习惯,广播尽量少用。为什么?因为一旦广播发出去,所有从站同时响应,总线负载瞬间飙升。如果从站数量多,或者处理时间长,容易出问题。我曾经在一个项目里,用广播复位20台变频器,结果总线卡死了一分钟。后来改成逐个复位,稳得很。
2.6 知识体系图
下面这张图,把咱们刚才讲的内容串起来:
嗯,这张图把咱们讲的核心内容都概括了。左边是物理层,三种方式各有千秋;右边是通信模式,单播和广播各有用处。选型时,根据现场距离、节点数、速率要求来定。
好了,这一章就到这儿。记住,物理层是基础,选对了事半功倍;通信模式是策略,用对了系统才稳。下次咱们聊聊Modbus的数据帧结构,那个更有意思。