3、通讯协议基础:Modbus RTU/TCP、Profinet、EtherCAT协议对比
各位同行,大家好。今天我们来聊聊远程IO模块的“语言”——通讯协议。
做我们这行的,说白了就是跟各种协议打交道。你想想看,一个项目里,PLC、变频器、传感器、远程IO,它们之间怎么说话?靠的就是协议。我见过不少现场问题,最后查来查去,都是协议配置没对上。
今天我就把最常用的三种协议——Modbus、Profinet、EtherCAT——掰开揉碎了讲。不讲虚的,全是实战经验。
3.1 Modbus RTU/TCP:老当益壮的“通用语言”
Modbus,这玩意儿太经典了。1979年就出来了,到现在还在用。为什么?因为它简单、稳定、开放。
3.1.1 Modbus RTU(串行通信)
RTU走的是RS-232或RS-485。我个人习惯,现场能用485就不用232。为什么?485是差分信号,抗干扰强,传输距离能到1200米。232嘛,20米就差不多了。
关键参数:
- 物理层:RS-485(常用),RS-232
- 波特率:9600、19200、115200(我一般用9600,稳)
- 数据格式:8位数据位,1位停止位,无校验(最常见)
- 传输方式:半双工,一问一答
避坑指南:
我曾经在一个化工厂项目里,Modbus RTU通讯老是丢包。查了两天,最后发现是终端电阻没加。记住:485总线两端必须加120欧姆终端电阻。不加?数据反射,通讯必乱。
3.1.2 Modbus TCP(以太网通信)
Modbus TCP就是把RTU的报文封装在TCP/IP包里。说白了,就是把串口那套搬到以太网上。
区别在哪?
- RTU用串口,TCP用网线
- RTU有CRC校验,TCP有TCP/IP协议栈保证
- TCP可以多主站,RTU只能一主多从
报文结构对比:
Modbus RTU报文:
[地址] [功能码] [数据] [CRC低] [CRC高]
Modbus TCP报文:
[事务标识符] [协议标识符] [长度] [单元标识符] [功能码] [数据]
嗯,这里要注意:Modbus TCP的“单元标识符”其实就是RTU里的“从站地址”。很多新手会搞混。
3.2 Profinet:西门子的“亲儿子”
Profinet,搞西门子PLC的肯定不陌生。它基于工业以太网,实时性比Modbus TCP强不少。
核心特点:
- 实时性:循环时间1ms以内,适合运动控制
- 等时同步:多个设备时钟同步,精度微秒级
- 诊断功能:断线、短路、设备故障,一目了然
我的经验:
Profinet配置时,一定要用西门子的GSDML文件。我见过有人手动配参数,结果设备死活连不上。其实GSDML文件里已经把设备的所有信息都定义好了,直接导入就行。
设备命名:
Profinet设备不是靠IP地址识别的,是靠设备名称(Device Name)。你想想看,如果靠IP,DHCP一变就乱了。设备名称是固定的,IP可以自动分配。这个设计很聪明。
警告:
Profinet的线缆必须用工业以太网线(CAT5e以上)。普通网线?别省这个钱。我曾经在一个项目里,为了省几块钱用了普通网线,结果通讯时断时续,最后全部换掉,多花了三天工期。
3.3 EtherCAT:速度之王
EtherCAT,德国倍福(Beckhoff)搞出来的。它有多快?这么说吧,1000个IO点,刷新周期不到100微秒。
工作原理:
EtherCAT用的是“飞读飞写”技术。数据帧经过每个从站时,从站直接读取或写入数据,然后继续转发。不像Profinet那样主站轮询。所以速度极快。
关键特性:
- 拓扑结构:线型、星型、树型都支持
- 同步精度:小于1微秒
- 数据效率:有效数据占比高,几乎100%
实战案例:
我记得有个锂电池卷绕项目,要求同步精度极高。用Profinet,抖动有几十微秒,产品良率上不去。换成EtherCAT后,同步精度直接到纳秒级,良率从92%提到了99.5%。这就是差距。
3.4 三大协议对比总结
好了,三种协议都讲完了。我做个表格,大家一目了然。
| 对比项 | Modbus RTU | Modbus TCP | Profinet | EtherCAT |
|---|---|---|---|---|
| 物理层 | RS-485/232 | 以太网 | 工业以太网 | 工业以太网 |
| 传输速率 | 115.2 kbps(典型) | 100 Mbps | 100 Mbps | 100 Mbps |
| 实时性 | 10-100 ms | 10-100 ms | 1-10 ms | <100 μs |
| 同步精度 | 无 | 无 | 1 μs | <1 μs |
| 最大从站数 | 247 | 无限制 | 256 | 65535 |
| 成本 | 低 | 中 | 高 | 中高 |
| 适用场景 | 简单IO、仪表 | 上位机通讯 | 西门子生态 | 高速运动控制 |
3.5 选型建议
说了这么多,到底怎么选?我给大家几个建议:
- 预算有限,要求不高:选Modbus RTU。便宜、稳定、够用。我做过一个水处理项目,全是Modbus RTU,运行五年没出过问题。
- 需要上位机通讯:选Modbus TCP。简单,几乎所有上位机都支持。
- 西门子PLC,中等实时性:选Profinet。生态好,诊断方便。
- 高速运动控制,高精度同步:选EtherCAT。别犹豫,这是唯一选择。
最后说一句:
协议只是工具,没有绝对的好坏。我见过有人用Modbus RTU做出了比EtherCAT还稳定的系统,也见过用EtherCAT却因为配置不当导致通讯崩溃的。关键还是看你怎么用。
嗯,今天就到这里。下一章我们讲远程IO模块的硬件选型,到时候见。