POWERLINK的冗余包括三种冗余:双网冗余,环网冗余和多主冗余。
双网冗余顾名思义,就是系统中有两个独立的网络,当一个网络出现故障,另一个网络依然可以工作。双网冗余是一种物理介质的冗余,又称 “线缆冗余”,对于每个节点,都有两个网络接口,或多个网络接口。
图1-1 线缆冗余模型
图1-1所示,节点1和节点2既可以是主站节点也可以从站节点。节点1发出的数据帧在经过选择器的时候,一个数据帧被复制成两个数据帧,同时在两个网络中传输。在接收方节点2 的选择器处,会同时有两个数据帧到来,选择器选择其中一个,发给节点2。同理,当节点2 发送数据时,在经过节点2的选择器时,也被复制成成两个数据帧,同时在两个网络中传输。在接收方节点1 的选择器处,会同时有两个数据帧到来,选择器选择其中一个,发给节点1。
这样,两个网络同时工作,当一个网络出现故障,网络节点可以从另外一个网络收发数据。这种机制的好处是无需网络切换,所以当一个网络出现故障时,不会影响另外一个网络的运行,整个系统的通信没有延迟,不会丢失数据帧。
当某个网段出现线路故障时,需要将此信息通知应用程序,以帮助用户修理网络。选择器检查网络状态的方法如下:
1. 选择器检查每个网络数据接收情况,假设某个选择器有两个网口,一个称为A网,另一个称为B网。如果B网已经接收到数据,而A网从B网接收到数据时开始,在一段时间T内没有收到任何数据(或者在一定时间内B网已经收到了多于2次数据帧,而A网在这段时间内没有收到数据),就说明A网出现了故障。也可以简单的检查节点的网口状态,即网口的Link状态和Active状态的信号。
2. 当选择器检测到某个网络出现故障时,将该信息上报给与其连的POWERLINK节点,该POWERLINK节点的协议栈需要将这个信息上报给网络中的其它节点,对于从站节点,需要将该信息包含在PollResponse, StatusResponse, IdentResponse这三种上报的数据帧里;对于主站节点,需要将该信息包含在PollReques数据帧里发给相应的从站。
3. 网路信息在PollResponse, StatusResponse, IdentResponse,PollReques数据帧中的“FLS”,“SLS”。FLS是英文“First link status”的缩写,SLS是英文“Second link status”的缩写,其在数据帧中位置如图1-2:
|
Bit Offset |
|||||||
Octet Offset |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
0 |
Res |
Massage Type |
||||||
1 |
Destination |
|||||||
2 |
source |
|||||||
3 |
xxx |
|||||||
4 |
xx |
xx |
xx |
xx |
xx |
xx |
xx |
xx |
5 |
FLS |
SLS |
PR |
RS |
||||
6-n |
xxx |
图 1-2线缆状态字段在数据帧中的位置
在POWERLINK数据帧的第5个字节的第6和第7比特位分别表示第一个网络的状态(FLS)和第二个网络的网络的状态(SLS):
Bit 7 = First Link Status (FLS) (0 = Link OK, 1 = Link not OK).
Bit 6 = Second Link Status (SLS) (0 = Link OK, 1 = Link not OK)
注意: POWERLINK数据帧的第5个BYTE,是以太网数据帧的第19个BYTE。
在双网冗余的核心就是选择器,他的功能如下:
1. 发送数据时,将数据帧复制,在两个网络中同时发送。
2. 接收数据时,如果两个网络都正常工作,接收节点将从两个网络收到两包相同的数据,选择器需要从两个网络中选择一个数据帧,发给节点的应用。选择的机制可以很多,最简单的选择机制是选择最先到达的那个数据帧。如图1-3所示,数据帧到达某个POWERLINK节点的时序:
图 1-3 双网中两个相同数据帧的时间差
对于“情况一”,从两个网络上传来的数据帧在时间上交叠在一起,这对于选择器来说,很容易确定这两个数据帧是同样的数据帧,选择最早到来的那个数据帧,丢掉另一个。对于这种网络,要求两个网络对同一个数据帧的延迟时间不能大于一个最小以太网帧传输的延迟(对于100Mbps网络来说,这个时间是5.2微秒)。如果大于了这个时间,就有可能成为“情况二”。
对于“情况二”,选择器需要首先确定这两帧数据是否为相同的数据帧。因为有可能A网过来的数据帧是上一次的老数据,而B网过来的数据帧是后一次的新数据,此时B网过来数据帧需要传给POWERLINK节点。也有可能这两个数据帧是同一数据帧,此时B网过来数据帧不需要传给POWERLINK节点。对于这种情况如何区分?需要在选择器中缓存先到达的数据帧,将后到达的数据帧和前面缓存的先到达的数据进行比较,如果是相同的,就丢掉后到达的数据帧,否则就需要将后到达的数据帧传给POWERLINK节点,同时缓存此帧数据,因为该帧数据为一帧新的数据。
3. 在数据帧中填写线路状态信息。
通过一个选择器(Selector)与两个不同的网络相连。双网冗余支持任意的拓扑结构,树形、星形等。在连接的时候,两个网最好选择同样的HUB、同样长度的线缆,以保证两个网络的数据包到达某一节点是的时间差不超过5.2us。
在双网冗余中,每个节点需要一个Selector,该Selector可以集成在节点内部,也可以作为一个单独的设备外接在节点外面。每个节点需要把自己要发送的数据同时发送到两个网络上,这样,接收节点会在两个网络上都能收到该数据包,Selector的作用就是从这两个数据包中选择一个作为接收的数据,selector的工作原理如图1-4所示。
图 1-4 “Link Selector”内部结构
双网冗余的FPGA方案如下:
双网冗余是在单网的FPGA方案上,将“openHUB”模块替换为“Link Selector”。使用FPGA来实现POWERLINK和双网冗余(cable redundancy)的系统架构如图1-5所示。
图 1-5 双网冗余的FPGA方案
环形冗余是一种常用的冗余,也是一种线路的冗余,当菊花链的拓扑结构的最后一个节点再与主站相连接时,就构成了一个环。当某一根线缆出问题,这个系统依然可以继续工作,但是如果有两根线缆出现问题,就会导致某个或某些节点从网络中分离开。
非环形冗余的拓扑结构如图2-1所示,对于这种拓扑结构,如果某个节点或某段线路出现故障,就会导致部分节点从网络上脱离,例如当3号节点出现故障,或者与3号节点相连的线缆发生脱落,就导致4号和5号节点从网络中脱离,而失去连接。
图 2-1 菊花链型的单网拓扑
为此,我们引入了环网拓扑,将最后一个节点和第一个节点用线缆相连,这样整个网络上的节点就构成了一个环,因此称之为环形冗余,如图2-2所示。对于这种拓扑,当3号节点出现故障,或者和3号节点相连的线缆发生脱落,4号和5号节点依然和网络相连。因此环形冗余允许一个节点或者一处网段出现故障。
图 2-2 环网拓扑
网络闭合时的通信机制:
网络的“环”是闭合的,也就是中间没有断开的点,整个网络形成一个完整的环。
对于环形冗余,有一个节点的模块特殊一些,我们可以称之为“冗余模块”, 通常将该模块放置在POWERLINK主站节点处,其他节点都是用普通的HUB。
当主站有数据需要发送时,它从冗余模块的两个网口中选择一个,假定我们选择B口,将数据发送出去,如果当前网络的“环”是闭合的,也就是中间没有断开的点。这个数据帧从B口发出,经过网络上所有的节点,最后到达冗余模块A口。至此,该数据帧已经遍历了网络的所有节点,它的作用已经完成,冗余模块从A口接收到该数据帧之后,需要把这个数据帧处理掉,无需再放到网络中传输,否则会形成网络风暴,在网络上积累的数据帧越来越多,导致系统最终无法运行,如图2-3所示。
图 2-3 环网冗余主站发送数据
如图2-4,当某个从站节点发送数据时,例如2号从节点,如果当前网络的“环”是闭合的,也就是中间没有断开的点,该节点发送的数据会从HUB的两个网口同时发送出去,由于网络没有断点,所以该数据帧在遍历完网络所有节点以后,也会到达冗余模块的A口和B口,此时它的作用已经完成,冗余模块也需要把这个数据帧处理掉,无需再放到网络中传输。
图 2-4环网冗余从站发送数据
综上,当网络的“环”是闭合的,冗余模块只从一个网口收/发数据帧,而另一个网口在收到数据后,将该数据帧吸收掉。
网络开环时的通信机制:
网络开环,也就是网络中有一个断点,使得网络的“环”断开,成为菊花链结构。如下图所示,假如2号从节点和3号节点之间的网络脱落。 此时冗余模块的作用和HUB 的功能相同。因为只有这样,才能使网络中的每一个数据帧都遍历整个网络。
因此对于环形冗余,在网络“闭环”时,冗余模块的一个网口用来收/发数据,而另一个口用来“吸收”数据;在网络“开环”时,冗余模块就变成了一个HUB,环网的切换如图2-5所示。
图 2-5 环网冗余网络有断点的处理机制
由于冗余模块的功能在不同的网络状态(开环和闭环)下,功能是不同的,因此冗余模块需要实时监控网络的状态,根据网络的状态来切换自己的功能。
网络闭环状态的检测:
当网络的状态为闭环时,主站从冗余模块网口B发出的数据,能达到冗余模块的网口A,因此检测网络状态是否为闭环最简单的方法就是监控冗余模块的网口A是否收到了来之主站的数据帧,即数据帧中的源node id 的值大于239。这些数据帧包括:SoA,SoC, PollPreq, PollPresMN, ASND等,通常采用SoA数据帧。
网络开环状态的检测:
当网络的状态为开环时,主站从冗余模块网口B发出的数据,不能达到冗余模块的网口A,因此检测网络状态是否为开环最简单的方法就是监控冗余模块的网口A,如果冗余模块的网口A在一段时间T内没有收到来自主站的数据,说明网络状态为开环。这里最关键是的时间参数T的选择,如果T选的比较小,就会出现错误的判断,如果T选的比较大,就会导致丢失太多的数据帧。时间参数T的选取主要取决于网络的传输延迟,即数据帧从冗余模块网口B发出,至到达冗余模块网口A,所经历的时间T_delay。 当主站从冗余模块网口B发出一个数据帧,如果网络是闭合的,那么冗余模块网口A应该在时间T_delay后收到该数据,如果没有收到,就说明网络是开环的。时间T_delay可以通过在冗余模块中实际测量得到。
一种比较简单的算法:冗余模块网口B已经连续发送了2次的SoA,但是冗余模块网口A还没收到来自主站的数据,这时说明网络状态是开环的。因为冗余模块网口B已经连续发送了2次SoA的时间间隔为一个POWERLINK循环周期,数据帧在网络中的传输时间T_delay一定小于POWERLINK循环周期。否则,意味着主站发送数据至最后一个节点的时间大于一个POWERLINK循环周期,这是不可能的。
如前所述,冗余模块的功能和当前的网络状态有关,当网络状态为闭环时,冗余模块的网口A需要吸收掉接收到的数据帧,同时不断检测当前的网络状态,当发现网络状态变为开环,就切换到开环状态;当网络状态为开环时,冗余模块成为一个HUB,冗余模块的网口A就成了HUB的一个接口,同时不断检测当前的网络状态,当发现网络状态变为闭环,就切换到闭环状态。图2-6为环网冗余状态检测模块的工作状态图:
图 2-6 环网冗余状态检测机制
注意:当网络状态从闭环变为开环时,由于检测算法的原因,会导致丢失一个循环周期内的部分数据;当网络状态从开环变为闭环时,由于检测算法的原因,会导致丢失一个循环周期内的部分数据在网络中一直被传递,直到冗余模块的工作状态切换到闭环状态,冗余模块的网口A将其吸收为止。
当网络的某个点出现故障时,网络中的节点需要将此信息传递到应用层,方便用户检查并修理故障点。HUB 和冗余模块的每个端口都需要检测对数据帧的接收情况。某个端口如果在一段较长的时间内没有收到数据,说明有可能与该端口连接的网段出现了故障,HUB 或冗余模块需要将该端口的状态信息上报到POWERLINK 协议栈。POWERLINK 协议栈中可以定义一个object来保存该信息。其他的节点可用通过PDO或者SDO的方式得到该信息,上报给其他节点的应用程序。
环网冗余是在单网的FPGA方案上,将“openHUB”模块替换为“Switch HUB”,如图2-7所示。 “Switch HUB”的功能如上所述,根据网络的状态进行切换。
图 2-7环网冗余的FPGA方案
由于一个POWERLINK网络有且只有一个MN,当正在工作的主站出现故障时,网络就会瘫痪,因此对于要求较高的一些场合,需要多主冗余。在一个系统中,存在多个主站,其中一个处于活动状态,其他的主站处于备用状态,当正在工作的主站,出现故障,备用主站接替其工作,继续维持网络的稳定运行如图3-1所示。
图 3-1多主冗余的拓扑
对于POWERLINK的从站节点号的范围是从1至239;而对于标准的主站,节点号为240;对于主站冗余系统,由于有多个主站,这些主站的节点号范围为241至250。
在多主冗余中,无论是活动主站还是备用主站,他们的节点号范围是从241至250。对于活动的主站,在向外发送SoC, SoA, PollRequest,ASND数据帧时,将其源NODE ID 的值设置为240;在向外发送PollResponse数据帧时,数据帧中源NODE ID 的值设为活动主站自身的NODE ID。对于备用主站,使用其自身的节点号来收发数据。如下图所示,当节点号为241的主站处于活动状态时,他使用241和240作为自己的节点号,来收发数据,当节点号为241的主站出现故障,节点号为242的主站接替其工作时,节点号为242的主站使用241和240作为自己的节点号,来收发数据,如图3-2所示。
图 3-2 多主冗余的主站切换示意图
当活动主站从MN1切换到MN2时,MN1和MN2发送的数据帧的目标MAC地址和POWERLINK 源地址,目标地址值的变化,如图3-3所示,描述了冗余的活动主站(MN1)和冗余的备用主站(MN2),以及从站(CN1)在通信过程中的“源MAC”地址和“目标MAC”地址分配。
“Message Type”:数据帧的类型
“MAC Source”:数据帧的源MAC地址
“MAC Destination”: 数据帧的目的MAC地址
“POWERLINK src”:数据帧的源Node ID
“POWERLINK dest”:数据帧的目标Node ID
MAC Source |
MAC Destination |
Message Type |
POWERLINK src |
POWERLINK dest |
MAC-MN1 |
01:11:1E:00:00:01 |
SoC |
240 |
255 |
MAC-MN1 |
MAC-CN1 |
PollRequest |
240 |
1 |
MAC-CN1 |
01:11:1E:00:00:02 |
PollResponse |
1 |
255 |
MAC-MN1 |
MAC-MN2 |
PollRequest |
240 |
242 |
MAC-MN2 |
01:11:1E:00:00:02 |
PollResponse |
242 |
255 |
MAC-MN1 |
01:11:1E:00:00:02 |
PollResponse |
241 |
255 |
MAC-MN1 |
01:11:1E:00:00:03 |
SoA |
240 |
255 |
Switch-over, MN2 becomes active |
||||
MAC-MN2 |
01:11:1E:00:00:01 |
SoC |
240 |
255 |
MAC-MN2 |
MAC-CN1 |
PollRequest |
240 |
1 |
MAC-CN1 |
01:11:1E:00:00:02 |
PollResponse |
1 |
255 |
MAC-MN2 |
MAC-MN1 |
PollRequest |
240 |
241 |
MAC-MN1 |
01:11:1E:00:00:02 |
PollResponse |
241 |
255 |
MAC-MN2 |
01:11:1E:00:00:02 |
PollResponse |
242 |
255 |
MAC-MN2 |
01:11:1E:00:00:03 |
SoA |
240 |
255 |
图 3-3 多主冗余主站发送数据帧的MAC地址分配
主站的对象字典中保存了对网络上所有从节点和冗余主站的配置信息。当网络上电以后,主站首先检查是否需要配置网络上的其他节点,如果需要,就根据保存在主站内的配置信息通过SDO的方式发送给相应的节点。当某个节点重新回到网络中时,主站也会去检查是否需要重新配置该节点。因此活动主站从MN1切换到MN2时,MN2的对象字典里也需要保存有与MN1相同的对网络上节点的配置信息,配置示意图如图3-4所示。
图 3-4 多主冗余网络配置信息
由于在一个系统中有多个备用主站,当活动主站出现故障时,需要有一种机制,从多个备用主站中选择一个接替活动主站的工作。这里采用竞争机制,每个备用主站有唯一的优先级,这个优先级有两种方式确定:
1. 在备用主站中定一个 object,用来保存优先级参数,这个object的索引为0x1f89,子索引为0x0a。在组建POWERLINK 网络时,事先配置好每个备用主站的优先级。优先级是一个数值,取值范围为1,2……等自然数。数值越小,优先级越高。
2. 由节点号来确定优先级。由于每个备用节点有唯一的节点号,可以将节点号的数值看作是优先级的值。
系统上电时,多个冗余主站同时启动,此时哪个冗余主站应该率先接管网络,成为活动主站?这由前面所说的优先级决定。所有冗余主站根据优先级的不同,分别等待不同的时间。如果在等待的时间内收到了SOA数据帧,说明已经有其他的主站开始工作,该冗余主站进入standby状态;如果在等待的时间内没有收到SOA数据帧,该冗余主站进入活动主站状态,进入Reduced Cycle。由于POWERLINK主站在启动的时候,首先进入到Reduced Cycle, 在这个状态下,主站只是产生SOA 和ASND来配置网络。如果活动主站在这个正在工作在该状态下,由于某种故障停机,备用主站需要有能力检测,并根据优先级的机制选出一个备用主站,接替活动主站的工作。因此当活动主站工作在Reduced Cycle状态时,备用主站需要周期性检测SOA,如果很长时间没有收到SOA,就认为活动主站出现故障。具体的方法是在备用主站中实现一个定时器。定时器的定时时间为T_reduced_switch_over_MN 是指如果在该时间间隔内没有收到SOA,就认为网络中没有活动的主站来产生SOA。备用主站每次收到SOA数据帧,就重新设置自己的定时器;如果定时器的定时时间到,但是还没收到SOA数据帧,就启动接管程序。启动接管程序时,首先发送一个广播消息ActiveManagingNodeIndication (AMNI),来通知网络上其他的备用主站,本主站将要成为活动主站。其它的备用主站,在收到该消息时,需要重新设置自己的定时器,启动过程如图3-5所示。
优先级高的备用主站,T_reduced_switch_over_MN 的时间小,这样的备用主站等待时间短,优先级低的备用主站,T_reduced_switch_over_MN 的时间大,定时器等待的时间长。
图 3-5 多主冗余的启动过程
冗余主站1的优先级高,等待的时间短,当定时结束后,还没有收到SOA/SOC数据幀,会发送广播AMNI数据幀,通知其他冗余主站,将由本站做为活动主站。冗余主站2的优先级高,等待的时间短,当定时结束后,冗余主站2收到了AMNI数据幀或者SOA数据幀,这时冗余主站2将进入到” standby”状态,备用主站接管网络管理权的过程如图3-6所示。
注意在启动时,这里的T1,T2要设置的足够长,以便有明显的优先级,如果|T1-T2|的值太小(例如几个微秒),由于冗余主站1和冗余主站2在上电顺序,初始化的速度等差异,导致两个设备不能同时启动定时器,从而使优先级失效,因此最好把这两个参数设置的大一些,而且之间的差值也足够大。
图 3-6 多主冗余的监控机制
当活动主站进入到POWERLINK正常的循环周期,会周期性产生SOC数据帧。在该状态下,备用主站需要检测SOC数据帧,如果很长时间没有收到SOC数据帧,就说明当前的活动主站出现故障,优先级最高的备用主站将接替活动主站的工作。备用主站检测SOC数据帧的方法依然是通过设置定时器。定时器的值如下:
Tcycle_MN 是POWERLINK循环周期长度
MNSwitchOverPriority_U32 是节点的优先级,优先级越高,该数值越小。
MNSwitchOverDelay_U32是一个可选的延时参数,该参数不是必须的。
MNSwitchOverCycleDivider_U32 是一个除数因子,他将循环周期等分,得到较小的时间片。
在主站进入到operational工作模式时,之所以采用监控SOC数据帧而不是SOA数据帧,原因是SOC数据帧的抖动更小,更准确。
对于备用主站,每次收到SOC数据帧时,定时器清零重新启动。当某个备用主站的定时器定时时间到,说明该备用主站超过一个循环周期没有收到SOC数据帧,意味着活动主站可能已经出现故障(但是也不排除如下两种可能:SOC抖动过大和SOC数据帧丢失)。每个备用主站,由于优先级不同,所以每个备有主站的定时器设置的时间不同。当某个备用主站的定时时间到,它就发送一个AMNI消息来通知网络上的其他备用主站,本备用主站将要接替活动主站的工作,其他备用主站收到AMNI消息,需要将自身的定时器清零重新设置。下面举例说明:
假设在我们的系统里有3个冗余主站 RMN (POWERLINK node-ID 241, 242, 243) ,241是活动主站,假设他现在出现了故障,仲裁机制启动:
RMN241
MNSwitchOverPriority_U32 = 1
MNSwitchOverCycleDivider _U32 = 3
RMN242
MNSwitchOverPriority_U32 = 2
MNSwitchOverCycleDivider _U32 = 3
RMN243
MNSwitchOverPriority_U32 = 3
MNSwitchOverCycleDivider _U32 = 3
下面是各个备用主站的定时器定时时间:
图3-7为接管的时序图。当242号备用主站在规定的时间内没有收到SOC数据帧,就发送一个AMNI消息,然后接管活动主站的工作。243号备用主站收到AMNI消息后,将定时器清零重新设置。
图 3-7 多主冗余备用主站接管时序图
除此之外,应用程序可以通过发送命令让本地或者远程的活动主站进入到standby状态。
1. 启动:POWERLINK 设备在启动时,根据节点号和NMT_StartUp_U32 object (index 1F80h)的设置来决定该节点接下来的行为。如果该节点的节点号为1至239,那说明该节点是从站,接下来应该进入到从站的状态机。如果节点号是240且NMT_StartUp_U32 object (index 1F80h)的第14 bit 为0,则说明该节点是标准的主站。如果NMT_StartUp_U32 object (index 1F80h)的第14 bit 为1,则说明该节点是冗余主站,进入到冗余主站的状态机,支持冗余功能的主站的NMT状态机如图3-8所示。
图 3-8 冗余主站的NMT状态机
2. 冗余主站的状态机
冗余主站的状态机主要有两个大的状态,一个是active状态,一个是standby状态。当处于活动状态时,该节点作为活动的主站在工作。当处于standby状态时,该节点处于备用主站。当节点启动完成,进入到冗余主站的状态机时,首先检测是否能在规定的时间内受到SOC和SOA数据帧,如果能收到,说明在网络上有其他的活动主站,该节点应该进入到standby状态;否则进入到active状态。在COMMUNICATING状态下的冗余主站的NMT状态机如图3-9。
图 3-9 COMMUNICATING状态下的冗余主站NMT状态机
Active状态:
当节点工作在冗余主站的Active状态时,他的作用和标准的主站一样。此外增加了切换到standby状态的功能。当该节点收到了SOC,SOA,AMNI等消息时,就从Active状态切换到standby状态。
standby状态:
当节点工作在冗余主站的standby状态时,从活动主站的角度看,备用主站的就像标准的从站那样工作,从活动主站接收PollReq数据帧,回复PollRes数据帧。此外他还具有如下功能:
定时检测SOA和SOC数据帧。如果在规定的时间内没有收到SOA和SOC,需要切换状态,接管活动主站的工作。冗余主站切换时的状态机描述如图3-10所示。
监控网络上其他节点的状态,备用主站通过监听节点的PollResponse,StatusResponse,IdentResponse这些数据帧的信息来得知其状态信息,并将这些信息更新到自己的列表中。在接管活动主站的工作时,需要这些信息,来达到无缝切换。
图 3-10 多主冗余状态切换
3. 状态切换
表3-1所示为状态切换的条件和事件:
NMT_RMT1 |
Auto : 自动跳转 |
无需任何条件 |
|
NMT_RMT2 |
Timeout SoC, SoA:SoC或SoA超时 |
在规定的时间内没有收到SoC或SoA |
|
NMT_RMT3 |
Reception of SoC, SoA:收到了SoC或SoA |
在规定的时间内收到SoC或SoA |
|
NMT_RMT4 |
Timeout(SoC,SoA):SoC或SoA超时 |
在“规定的时间”内没收到SoC或SoA ,所谓的“规定的时间”为 Treduced_switch_over_MN resp. Tswitch_over_MN. |
|
NMT_RMT5 |
Reception of SoC, SoA or AMNI.:接收到SoC或SoA或AMNI |
在“规定的时间”内收到SoC或SoA ,所谓的“规定的时间”为 Treduced_switch_over_MN resp. Tswitch_over_MN. |
|
NMT_RMT6 |
Timeout(SoC):SoC超时 |
在“规定的时间”内没收到SoC ,所谓的“规定的时间” Tswitch_over_MN
|
|
NMT_RMT7 |
Reception of SoC, SoA or AMNI:接收到SoC或SoA或AMNI |
在“规定的时间”内收到SoC或SoA ,所谓的“规定的时间”为 Tswitch_over_MN |
表 3-1 切换条件和事件说明
多主冗余涉及到数据链路层以及应用层的功能变化,因此环网冗余是在单网的FPGA方案上,将“openHUB”模块替换为“Switch HUB”,如图3-11所示。 “Switch HUB”的功能如上所述,根据网络的状态进行切换。
图 3-11环网冗余的FPGA方案
多主环网,即在一个环形网络中,存在多个主站,拓扑如图4-1:
图 4-1多主环网拓扑图
多主双网,即在双网的架构中,存在两个或者多个冗余主站,拓扑如图4-2:
图 4-2多主双网拓扑图
多主双环网即将以上多主,环网,双网相结合,拓扑如图4-3:
图 4-3 多主双环网拓扑图
QQ群:2589 004343
电话:18018889452
邮箱:openpowerlink@163.com