4、主流通信协议(下):Modbus TCP/RTU协议详解、EtherNet/IP协议详解、CC-Link IE Field协议详解
好,咱们接着聊。上一节我们把Profinet和EtherCAT这两个“快枪手”聊透了。这一节,我带你看看另外三个在工业现场同样举足轻重的协议:Modbus、EtherNet/IP和CC-Link IE Field。
这三个家伙,性格完全不同。Modbus是老黄牛,皮实耐用;EtherNet/IP是美国人搞的,跟CIP协议深度绑定;CC-Link IE Field则是日本三菱的看家本领,在亚洲市场占有率极高。你想想看,一个合格的自动化工程师,这三种协议至少得懂两种,不然出去选型很容易被供应商牵着鼻子走。
4.1 Modbus TCP/RTU协议详解
Modbus,说实话,是我入行时接触的第一个现场总线协议。那时候师傅扔给我一本英文手册,说:“小子,把这个啃下来,以后吃饭的本事就有了。” 现在看来,这话一点不假。
Modbus本质上是一个主从(Master-Slave)架构的协议。一个主站,多个从站。主站发命令,从站响应。就这么简单。它有两种最常见的物理层实现:
- Modbus RTU:走RS-485/RS-232串口。数据是二进制格式,效率高。我习惯用9600或19200波特率,距离能到1200米(加中继器还能更远)。
- Modbus TCP:走以太网。其实就是把Modbus帧封装在TCP/IP包里,端口号是502。说白了,就是把串口那套逻辑搬到了网上。
我个人建议,如果你现场设备距离近(几十米内),且对实时性要求不高,优先选Modbus TCP。为啥?布线方便,一根网线搞定,不用像RS-485那样纠结A/B线有没有接反。
来看一个典型的Modbus RTU报文帧结构:
地址码 | 功能码 | 数据区 | CRC校验
1字节 | 1字节 | N字节 | 2字节
举个例子,读取从站地址为01的设备的保持寄存器(功能码03),起始地址0x0000,读取2个寄存器:
发送:01 03 00 00 00 02 C4 0B
接收:01 03 04 12 34 56 78 9A BC
这里要注意,CRC校验是Modbus RTU的命根子。我曾经遇到过一台温控器,数据偶尔跳变,查了半天发现是现场变频器干扰导致CRC校验错误,从站直接丢弃了响应包。后来加了终端电阻和屏蔽层,问题解决。
4.2 EtherNet/IP协议详解
EtherNet/IP,全称Ethernet Industrial Protocol。这名字听着就霸气,直接把“工业”两个字写脸上了。它是ODVA(开放DeviceNet供应商协会)推的标准,在美国和欧洲市场用得非常多。
EtherNet/IP的核心思想,是把CIP(Common Industrial Protocol)协议搬到标准以太网上。CIP协议定义了对象模型,每个设备都是一个对象集合。比如一个数字量输入模块,它就是一个“数字输入点对象”。
它的通信方式有两种:
- 显式报文:用于配置、诊断等非实时数据。走TCP,面向连接,可靠但慢。
- 隐式报文:用于实时I/O数据。走UDP,无连接,快但不可靠。不过别担心,EtherNet/IP在应用层做了数据完整性校验。
我记得有一次给一个汽车焊装线做改造,甲方指定要用EtherNet/IP。我选了一个支持该协议的远程IO模块,结果发现配置过程比Profinet复杂不少。你需要用RSNetWorx或类似的软件,给每个设备分配IP地址,还要配置CIP对象的参数。嗯,这里要注意,EtherNet/IP的设备IP地址不能冲突,而且子网掩码和网关必须一致,否则设备之间连不上。
来看一个典型的EtherNet/IP数据包结构(简化版):
以太网帧头 | IP头 | UDP头 | 封装头 | CIP命令 | 数据
14字节 | 20字节| 8字节 | 24字节 | 可变 | 可变
你算算,光协议头就占了66字节。如果传一个开关量(1位),效率其实很低。但没办法,工业协议就是这样,可靠性优先。
4.3 CC-Link IE Field协议详解
CC-Link IE Field,这是三菱电机主导的协议。IE就是Industrial Ethernet的缩写。说白了,这是三菱用来跟西门子的Profinet、罗克韦尔的EtherNet/IP打擂台的产品。
它的最大特点,是1Gbps的通信速率。你没看错,千兆!这在工业以太网里算是顶配了。而且它采用令牌传递(Token Passing)机制,保证了通信的确定性。什么意思?就是每个站拿到令牌后才能发数据,不会出现多个站同时抢线的情况。
我接触CC-Link IE Field是在一个锂电池涂布机项目上。甲方要求整条生产线同步精度在1ms以内。我算了一下,如果用Modbus TCP,轮询周期至少10ms,根本不行。后来选了CC-Link IE Field,配合三菱的L系列PLC,循环周期做到了0.5ms,完美满足要求。
CC-Link IE Field的帧结构比较复杂,我简单说一下:
前导码 | 帧头 | 数据 | FCS | 结束符
8字节 | 14字节| 可变 | 4字节| 1字节
它的数据区可以包含多个站点的数据。比如一个主站带10个从站,主站发一个帧,所有从站都能收到,然后各自提取自己的数据。这种“一帧多收”的模式,大大提高了总线利用率。
4.4 三种协议对比总结
好了,三种协议都聊完了。我最后给你一张对比表,方便你选型时参考:
| 特性 | Modbus TCP/RTU | EtherNet/IP | CC-Link IE Field |
|---|---|---|---|
| 物理层 | RS-485/以太网 | 以太网 | 以太网(千兆) |
| 通信速率 | 最高100Mbps(TCP) | 100Mbps | 1Gbps |
| 实时性 | 低(轮询机制) | 中(隐式报文) | 高(令牌传递) |
| 最大节点数 | 247(RTU)/ 无限制(TCP) | 约50(建议) | 64 |
| 典型应用 | 简单IO、仪表、变频器 | 离散制造、过程控制 | 高速生产线、运动控制 |
| 配置难度 | 简单 | 中等 | 中等偏难 |
| 成本 | 低 | 中 | 高 |
选型时,我的建议是:
- 如果预算有限,且对实时性没要求,Modbus TCP是首选。便宜、简单、通用。
- 如果甲方指定了罗克韦尔或欧姆龙PLC,那就用EtherNet/IP。别问为什么,兼容性第一。
- 如果做高速同步或运动控制,且用三菱系统,CC-Link IE Field是唯一选择。
嗯,这一节就到这里。下一节我们聊聊无线通信协议,比如WIA-PA和IO-Link Wireless,那又是另一番天地了。