2、物理层与传输模式:RS-485接口详解、两线制与四线制、Modbus RTU与ASCII模式的区别、传输距离与速率
好,咱们进入第二章。这一章聊的是物理层,说白了就是信号怎么在线上跑。很多工程师一上来就写代码,结果现场死活通不上,最后发现是RS-485的A/B线接反了,或者终端电阻没加。嗯,这种坑我踩过不止一次。
2.1 RS-485接口详解
RS-485,全称叫TIA/EIA-485。它不是协议,是电气标准。它定义了电压、阻抗、时序这些物理层面的东西。Modbus只是借它的壳来传数据。
RS-485最大的特点是差分传输。什么意思?就是靠两根线(A和B)之间的电压差来判断逻辑0和1。A比B高200mV以上,算逻辑1;B比A高200mV以上,算逻辑0。这种设计抗共模干扰能力很强。我在一个变频器旁边拉过300米的线,信号照样稳。
另外,RS-485是半双工的。同一时刻只能一个人说话,其他人听。所以Modbus协议里才设计了主从机制——主机问,从机答,不能抢答。
关键参数速查:
- 逻辑1(空闲态):A > B,电压差 +200mV ~ +6V
- 逻辑0(激活态):B > A,电压差 -200mV ~ -6V
- 共模电压范围:-7V ~ +12V
- 最大节点数:标准32个,加中继可扩展
2.2 两线制与四线制
两线制就是A、B两根线,收发共用。所有设备都挂在这两根线上。这是最常用的方式,Modbus RTU基本都用它。优点是省线,缺点是半双工,收发要切换。
四线制呢?收发分开。两根发(Y、Z),两根收(A、B)。这样主机可以同时收发,实现全双工。但注意,从机还是半双工的。四线制在工业现场很少见,我做了十年项目,只用过一次——那是一个要求实时性极高的PLC系统,主机需要一边发指令一边收数据。
| 对比项 | 两线制 | 四线制 |
|---|---|---|
| 线缆数量 | 2根(A、B) | 4根(Y、Z、A、B) |
| 工作模式 | 半双工 | 全双工(主机端) |
| 成本 | 低 | 高 |
| 应用场景 | 绝大多数Modbus网络 | 高速、实时性要求高的场景 |
我的建议:普通灌溉控制器,两线制完全够用。别为了追求全双工去搞四线制,布线麻烦,成本翻倍,收益不大。
2.3 Modbus RTU与ASCII模式的区别
Modbus有两种传输模式:RTU和ASCII。很多人搞混,其实区别就在编码方式上。
RTU模式:数据以二进制形式传输。一个字节就是8位,直接发。比如数值0x1A,线上就是0x1A。效率高,速度快。我99%的项目都用RTU。
ASCII模式:每个字节拆成两个ASCII字符发。比如0x1A,变成'1'和'A'两个字符,也就是0x31和0x41。数据量翻倍,速度慢一半。但好处是可读性强,用串口助手能看到明文。
你想想看,同样发100个字节,RTU只要100个字节时间,ASCII要200个。所以工业现场几乎清一色RTU。ASCII我只在调试阶段用过,方便看报文。
注意:同一个网络里,所有设备必须用同一种模式。RTU和ASCII不能混用。我曾经在一个项目里,主机设了RTU,从机默认是ASCII,结果调了三天才发现。
| 对比项 | RTU | ASCII |
|---|---|---|
| 编码方式 | 二进制 | ASCII字符 |
| 数据效率 | 高(1:1) | 低(1:2) |
| 校验方式 | CRC16 | LRC |
| 帧间隔 | 3.5字符时间 | 1秒 |
| 可读性 | 差 | 好 |
2.4 传输距离与速率
RS-485的理论传输距离是1200米。但这是有条件的——波特率越低,距离越远。你想想看,信号在线路上传输会有衰减和畸变,速率越高,畸变越严重。
我整理了一个经验数据表,供你参考:
| 波特率 | 最大距离(约) | 典型场景 |
|---|---|---|
| 9600 bps | 1200米 | 长距离灌溉管网 |
| 19200 bps | 800米 | 中等距离 |
| 38400 bps | 400米 | 现场总线 |
| 115200 bps | 100米 | 机柜内部 |
注意,这只是理论值。实际项目中,线缆质量、接地情况、干扰源都会影响距离。我有个项目,线缆用了劣质双绞线,9600波特率连500米都跑不到。后来换了屏蔽双绞线,问题解决。
避坑指南:
- 终端电阻:长线(>300米)两端必须加120Ω电阻,防止信号反射
- 接地:屏蔽层单端接地,不要两端都接,否则形成地环路
- 线缆:用屏蔽双绞线,绞距越密越好
- 中继器:超过1200米或超过32个节点,加中继器
最后说一句,速率和距离是矛盾的。你要远距离,就得降速率。灌溉控制器一般跑9600或19200就够了,控制指令就那么几个字节,没必要追求高速。稳定第一。
好,这一章就到这。下一章我们聊Modbus的帧结构,看看报文到底长什么样。