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 选型建议

说了这么多,到底怎么选?我给大家几个建议:

  1. 预算有限,要求不高:选Modbus RTU。便宜、稳定、够用。我做过一个水处理项目,全是Modbus RTU,运行五年没出过问题。
  2. 需要上位机通讯:选Modbus TCP。简单,几乎所有上位机都支持。
  3. 西门子PLC,中等实时性:选Profinet。生态好,诊断方便。
  4. 高速运动控制,高精度同步:选EtherCAT。别犹豫,这是唯一选择。

最后说一句:

协议只是工具,没有绝对的好坏。我见过有人用Modbus RTU做出了比EtherCAT还稳定的系统,也见过用EtherCAT却因为配置不当导致通讯崩溃的。关键还是看你怎么用。

嗯,今天就到这里。下一章我们讲远程IO模块的硬件选型,到时候见。