2、介质冗余协议(MRP):MRP工作原理、环网拓扑、主站与从站角色
各位工程师朋友,咱们接着聊EtherCAT的冗余方案。上一章讲了链路层冗余,那是点对点的备份。但实际工厂里,设备经常是串成一串的,比如一条产线上的十几个伺服驱动器。这种线性拓扑,中间断一根线,后面全掉线。怎么办?
环网冗余就是干这个的。而MRP(介质冗余协议),是工业以太网里最成熟、最通用的环网协议之一。EtherCAT虽然有自己的冗余机制,但很多场合下,客户指定要MRP,因为它的兼容性好,西门子、罗克韦尔这些大厂都在用。
我个人习惯,把MRP理解成「工业以太网的救生圈」——平时它不碍事,一旦网络断了,它立刻把数据流从另一头兜回来。
2.1 MRP的工作原理:断线后200ms内恢复
MRP的核心思想很简单:把一条线性的网络,首尾相接,形成一个环。正常情况下,环上有一个逻辑断点,数据不会在环里死循环。一旦检测到物理链路断了,这个逻辑断点立刻闭合,数据从另一条路径绕过去。
嗯,这里要注意:MRP的恢复时间,标准规定是200ms以内。对于大多数工业控制场景,这个时间是能接受的。但如果你做的是高速同步运动控制,比如电子凸轮、飞剪,200ms的抖动可能就出废品了。所以MRP适合对实时性要求不那么苛刻的场合。
MRP的关键机制:
- 环网检测帧:主站定期发送测试帧,检查环是否完整。
- 逻辑断点:正常情况下,主站阻塞一个端口,防止数据帧在环里无限转发。
- 链路故障检测:从站或主站检测到端口Link Down,立即通知主站。
- 拓扑重配置:主站收到故障通知,打开阻塞端口,让数据从另一侧绕行。
我曾经在一个汽车焊装车间里遇到过一个问题:环网里混入了非MRP设备,结果测试帧被那个设备直接丢弃了,主站一直以为环是断的,反复切换。后来排查了三天,才发现是某个第三方交换机没开MRP功能。所以,MRP要求环上所有设备都支持并启用MRP,否则别想正常工作。
2.2 环网拓扑:物理上是环,逻辑上是线
MRP的拓扑,说白了就是「物理环,逻辑线」。你布线的时候,把设备一个个串起来,最后一台设备的出口连回第一台设备的入口,形成一个物理环。但数据在环里怎么走?
看下面这张图,我画了一个典型的MRP环网结构:
你看,主站有两个端口,分别连接环的两侧。正常情况下,主站会阻塞其中一个端口(图中虚线部分),这样数据帧从端口A发出,经过从站1、2、3、4,最后到达端口B时,因为被阻塞了,不会继续转发。这就避免了数据在环里无限循环。
一旦从站1和从站2之间的链路断了(图中红色叉号处),从站1和从站2都会检测到Link Down,然后向主站发送故障通知。主站收到后,立刻打开阻塞的端口B。这时候,数据就可以从端口A→从站1→...然后从另一侧绕回来:端口B→从站4→从站3→从站2。虽然路径变长了,但所有设备依然能通信。
我的经验:环网布线时,尽量让物理环的路径短一些。我见过一个项目,环网绕了工厂一整圈,光纤长度超过2公里。结果MRP的恢复时间从200ms飙到了500ms以上,因为故障通知帧在长距离传输上耗时太久。后来我们加了中继器才解决。
2.3 主站与从站角色:谁说了算?
MRP网络里,角色分得很清楚:一个环里只有一个主站(MRM),其他都是从站(MRC)。主站负责监控环的状态、管理逻辑断点、处理故障切换。从站只管转发数据,以及检测自己端口的链路状态。
说白了,主站是「交警」,从站是「路口的摄像头」。交警决定什么时候封路、什么时候放行;摄像头只负责报告「路口堵了」或者「路通了」。
| 角色 | 功能 | 典型设备 | 数量 |
|---|---|---|---|
| MRM(主站) | 发送测试帧、管理逻辑断点、处理故障、触发拓扑重配置 | PLC、工业PC、高端交换机 | 每个环1个 |
| MRC(从站) | 转发数据帧、检测端口Link状态、报告故障 | 伺服驱动器、IO模块、普通交换机 | 每个环多个 |
这里有个容易踩的坑:MRP主站必须支持两个独立的以太网端口,而且这两个端口要能分别配置成环网的两个接口。我见过有人拿普通PLC当MRP主站,结果PLC只有一个网口,根本没法接成环。所以选型的时候,一定要确认设备支持MRP Manager功能。
避坑指南:我曾经在一个项目中,把两个MRP主站接在了同一个环里。结果两个主站都试图发送测试帧,互相冲突,环网每隔几秒就切换一次,整个网络像抽风一样。记住:一个环,只能有一个主站。如果你需要更大的冗余,可以用多个环通过网桥连接,但每个环内部依然只有一个主站。
2.4 MRP的局限性:不是万能的
说实话,MRP虽然好用,但也不是银弹。我总结了几点,大家心里有数:
- 恢复时间200ms:对于高速运动控制,这个时间太长了。如果你做的是伺服同步,建议用EtherCAT自带的冗余机制,或者干脆用双网卡冗余。
- 环上所有设备必须支持MRP:混入一个不支持MRP的交换机,整个环就废了。我前面说的那个焊装车间的案例,就是血的教训。
- 环网规模有限制:标准规定一个环最多50个设备。设备太多,测试帧的轮询周期会变长,故障检测时间也会增加。
- 不支持多链路故障:如果环上同时断了两处,MRP就无能为力了。数据会分成两段,各自孤立。所以物理布线还是要做好防护。
嗯,说到这里,我想起一个项目:客户要求环网里同时支持MRP和EtherCAT。这其实是可以的,因为MRP工作在数据链路层,EtherCAT工作在网络层以上,两者不冲突。但配置起来比较麻烦,需要仔细规划VLAN和优先级。后面如果有机会,我可以专门讲讲这个混合组网的方案。
好了,MRP的核心内容就这些。说白了,它就是给线性拓扑加了个「备份通道」,用200ms的切换时间换取网络的高可用性。选不选它,取决于你的应用场景——如果设备掉线200ms不会造成废品,那MRP就是性价比最高的方案。