有没有一种办法可以在PROFINET网络某处发生断线/连接故障时,依然保证整个系统的正常运行?
答案是肯定的,可以采用PROFINET的介质冗余(Media Redundancy)机制来实现。
介质冗余是通过将线型网络拓扑改造成环形网络拓扑来实现的,这种改造并不是简单的将线型总线的首尾相连(如果是这样会形成网络风暴),而是通过介质冗余管理器(medium redundancy manager)来实现的。介质冗余环网中有一个冗余管理器,其它的节点(PROFINET IO控制器/设备)都称为冗余客户端。
介质冗余管理器至少有两个端口,线型总线的首、尾分别接到这两个端口中。在正常情况下,冗余管理器会阻塞其中一个端口,仅使用另一个端口发送网络通信的数据报文,这个端口称为工作端口(static ring port),被阻塞端口称为阻塞端口或隔离端口(isolated ring port)。因此,在正常情况下,这个环型网络还是以线型网络的方式在工作,如下图所示:
当网络中某处发生断线/连接故障时,冗余管理器会检测到这种故障,并把原来阻塞的端口打开。这样中断的网络又从另一个方向重新构成线型网络,从而使系统继续运行。这个过程,被称为网络重构。如下图所示:
图中:①冗余管理器;②测试报文;③冗余客户端;
那么问题来了,冗余管理器是如何检测到网络中有断线/连接故障的呢?
其实是这样的:虽然阻塞端口不发送PROFINET的数据报文,但仍然会与工作端口之间发送一种测试报文,这种报文从冗余管理器的一个端口发出,通过整个网络,然后回到另一个端口;如果在指定的时间内,冗余管理器的端口收不到另一个端口发送的测试报文,则认为网络出现故障,此时会打开阻塞端口,重构整个网络。
介质冗余管理器可以是交换机或PROFINET IO控制器(高性能CPU,比如CPU1517)。就西门子产品而言,常见的介质冗余协议包括两种:高速冗余环和介质冗余协议。
高速冗余环(high-speed redundancy ring),简称HSR,最大支持50个交换机构成环形网络拓扑,其中只能有一个交换机被指定为冗余管理器(不支持CPU作为管理器)。高速冗余环网络的最大重构时间是300ms,是西门子的专用技术,并不公开;
介质冗余协议(Medium Redundancy Protocol),简称MRP,是一种开放式协议,属于PROFINET标准的一部分,符合IEC61158国际标准。这意味着任何符合这个标准的设备都可以在一个环型拓扑网络中构成MRP环网。西门子的很多CPU、分布式IO设备、交换机、通信模块都支持MRP协议。MRP环网中最多有50个节点(包括PROFINET IO控制器、IO设备和网络组件),可以在STEP7中组态和诊断,网络重构的典型时间为200ms;
需要注意的是,PROFINET IO 控制器与IO设备之间通信(刷新)时间的典型值为1~32ms,看门狗的典型值是4倍的刷新时间,因此最大128ms,这都比HSR和MRP网络重构的时间短,因此会出现PROFINET IO设备故障;
这种情况下,对于MRP网络,应更改PROFINET IO设备的【允许数据丢失的更新周期数目】,使其对应的看门狗时间大于200ms。比如下面这张图是ET200SP接口模块IM155-6 ST的属性,将【高级选项】-【实时设置】-【看门狗时间】中数据丢失的周期数更改为102,从而使看门狗时间变为204ms。这样就可以超过网络重构时间,发生故障重构时不会报IO设备故障。
好了,关于PROFINET介质冗余就先介绍到这里,如果大家感兴趣,我们后续可以讲一个介质冗余的实例。
我的书《西门子S7-200 SMART PLC应用技术——编程、通信、装调、案例》也包括了西门子S7-200 SMART支持的PROFINET的新技术(比如智能设备),目前正在搞优惠活动,你可以点击下面的链接查看:
发表评论