徐琳升 胡立生
(上海交通大學電子信息與電氣工程學院,上海 200240)
工業以太網具有成本低、傳輸速率高且開放性好的特點[1],越來越多的工業控制系統中的通信任務都采用工業以太網技術來完成。以太網是以辦公自動化為標準設計的,并沒有考慮工業現場環境,如高溫、高壓及強電磁等。因此,以太網的工業現場應用必須解決可靠性問題。
工業應用對網絡可靠性的要求主要體現在兩個方面:一是網絡的故障容錯能力,二是網絡故障發生時,網絡檢測恢復時間小于寬限時間(系統可容忍的網絡中斷時間)。路徑冗余是提高工業以太網可靠性的常用方法,其中環狀拓撲提供了一種最為簡單、高效的單點容錯路徑冗余解決方案。目前,工業應用最為廣泛的路徑冗余方法就是IEC 62439-2標準中定義的運行在數據鏈路層的介質冗余協議(MRP)。
MRP提供了一種在以太網環形網絡中能夠快速檢測環網中的鏈路故障,并能在故障發生時建立新的網絡拓撲來恢復網絡,實現通信冗余的方法[2]。由多個工業以太網交換機組成以太網環形網絡,交換機在物理上連接成環,在邏輯上為鏈狀結構,交換機中有且僅有一個設置為主站(MRM),主站負責控制網絡邏輯結構;其他設置為從站(MRC),通過各交換機環端口狀態切換實現環網冗余鏈路備份。MRP網絡拓撲結構如圖1、2所示。

圖1 MRP環網閉合狀態

圖2 MRP環網斷開狀態
MRM工作方式。MRM以預設的時間間隔周期性地向兩個環端口發送鏈路檢測幀,如果MRM在設定時間超時前收到鏈路檢測幀,則說明環鏈路處于閉合狀態。MRM的環端口一個設為轉發狀態,另一個設為阻塞狀態,如圖1所示。如果MRM沒有在預設時間內收到鏈路檢測幀,則說明環鏈路處于斷開狀態,MRM的兩個環端口都設為轉發狀態,如圖2所示。
MRC工作方式。MRC如果檢測到本機環端口鏈路故障或鏈路恢復,則重新設置環端口狀態,并分別向兩個環端口發送鏈路故障幀或鏈路恢復幀;如果MRC在一個環端口收到鏈路檢測幀、鏈路故障幀、鏈路恢復幀或拓撲改變幀,則向另一個環端口轉發。
MRM和MRC交互方式。如果MRM收到MRC發出的鏈路故障幀或鏈路恢復幀,則加速鏈路檢測,即減小發送鏈路檢測幀的時間間隔;如果MRM檢測到環鏈路狀態發生變化,則重新設置環端口狀態,清空自身MAC地址轉發表,并以預設時間間隔分別向兩個環端口發送拓撲改變幀,通知MRC網絡拓撲的變化;如果MRC收到MRM發出的拓撲改變幀,則重新設置環端口狀態,并清空MAC地址轉發表,學習新的網絡拓撲。
根據上文對MRP原理的介紹可以知道,網絡恢復時間Trec主要由故障檢測時間Tdetect和環網中各交換機在接收到MRM發送的拓撲改變幀后清空自身MAC地址轉發表的時間Tflush兩部分組成,即:
Trec=Tdetect+Tflush
(1)
故障檢測時間Tdetect由MRM設定的檢測幀超時時間Ttest和檢測幀在環網中被轉發一周所需要的時間Tring組成,即:
Tdetect=Ttest+Tring
(2)
Ttest=MRP_TSTNRmax·MRP_TSTdefaultT
(3)
Tring=N(Tswitch+Tqueue+Tbit+Tline)
(4)
式中 MRP_TSTdefaultT——鏈路檢測幀發送周期;
MRP_TSTNRmax——最大重傳次數;
N——環網中交換機的個數;
Tswitch——交換機解析鏈路檢測幀的時間;
Tqueue——交換機轉發以太網幀時的排隊延遲;
Tbit——交換機接收或發送以太網幀所需的時間;
Tline——以太網幀在交換機之間傳播的時間。
當MRM檢測到網絡故障后,便開始以固定周期MRP_TOPchgT發送拓撲改變幀。環網中MRC接收到MRM發送的最后一個拓撲改變幀后,將其自身MAC地址轉發表清空,故:
Tflush=Thold+Tring+TFDB
(5)
Thold=MRP_TOPchgT·MRP_TOPNRmax
(6)
式中 MRP_TOPchgT——MRM發送拓撲改變幀的周期;
MRP_TOPNRmax——拓撲改變幀的最大重傳次數;
TFDB——交換機清空MAC地址轉發表的時間;
Thold——MRM周期性發送拓撲改變幀的時間;
Tring——拓撲改變幀在環網中一周所需的時間。
綜上所述,MRP的網絡恢復時間為:
Trec=MRP_TSTNRmax·MRP_TSTdefaultT+2N(Tswitch+
Tqueue+Tbit+Tline)+MRP_TOPchgT·
MRP_TOPNRmax+TFDB
(7)
根據網絡對故障恢復時間的要求,通過對式(7)中一些可變參數的設定,即可得到滿足不同要求的網絡故障恢復時間。例如,將式(7)中的每個參數設定為:MRP_TSTNRmax=3,MRP_TSTdefaultT=1ms,N=50,Tswitch=0.01ms,Tqueue忽略,Tbit=0.00512ms,Tline=0.0005ms,TFDB=0.5ms,Thold=0.5ms×3。代入式(7)可得網絡故障恢復時間Trec=1×3+2×50×(0.01+0.00512+0.0005)+1.5+0.5≈6.6ms
通過以上分析可知,基于單環網絡拓撲的MRP協議能夠快速檢測網絡故障,并在網絡故障發生時通過建立新的網絡拓撲快速恢復網絡,恢復時間為毫秒級。這在一定程度上提高了工業以太網的可靠性。
網絡容錯能力定義為,當網絡發生故障時保持全網連通的能力,即任意兩個節點之間都保持通信的能力[3]。MRP是基于單環網絡拓撲結構的冗余協議。因此,其網絡容錯能力僅為單點故障,即MRP僅在網絡中單個鏈路或節點發生故障時能保證全網的連通性。綜上可知,MRP的故障恢復時間和網絡容錯能力均與網絡拓撲中的節點個數有關。由式(7)可知,當網絡拓撲節點個數N增大時MRP的網絡故障恢復時間將增大;同時,網絡中出現多點故障的概率隨之增大。因此,在MRP的實際應用中,對環網中節點個數N的最大值有一定的限制。
為了減小MRP的網絡故障恢復時間,提高網絡容錯能力,通常將節點數量較大的MRP環網拓撲結構分割成幾個小的環網拓撲,然后分別應用MRP。這就對分割后的各個環網間的通信提出了要求。筆者參照MRP基本原理,構建了一種用于環網間通信的互連介質冗余協議(IMRP)。
IMRP是可用于MRP環網間通信的數據鏈路層路徑冗余協議。與MRP類似,IMRP也具有快速檢測網絡故障,并通過建立新的網絡拓撲來恢復網絡的能力。下面以連接兩個MRP環網為例,詳細介紹IMRP,其網絡拓撲結構如圖3、4所示。

圖3 IMRP環網閉合狀態

圖4 IMRP環網斷開狀態
圖3、4中,在每個MRP環網中分別任意選出兩個工業以太網交換機節點(MRM、MRC均可),每個節點指定一個互連端口,4個節點通過互聯端口和環端口在物理上連接成環。指定其中一個節點為主節點(MIM),管理整個IMRP環網,其余3個節點為從節點(MIC)。
設計一個長度為64字節的標準以太網幀,其幀格式如圖5所示。

圖5 檢測/控制幀格式
圖5中,幀頭部為標準以太網幀頭。數據部分各字段的含義如下:
IMRP_Length 幀長度
IMRP_Type 幀類型
IMRP_InID IMRP的ID號
IMRP_SA 發送該幀的主機MAC地址
IMRP_Interval 時間間隔
Padding 無效填充
IMRP中使用的以太網幀類型共有以下幾種:
a. IMRP_Test幀。鏈路檢測幀,由MIM以預設的時間間隔IMRP_TSTdefault周期性地發出,來檢測IMRP環網狀態。
b. IMRP_TopologyChange幀。拓撲改變通知幀,由MIM發出,來通知MRP環網和IMP環網中節點,網絡拓撲的改變。
c. IMRP_LinkUp幀。當MIC檢測到鏈路恢復時發送該幀,通知MIM鏈路的恢復。
d. IMRP_LinkDown幀。當MIC檢測到鏈路斷開時發送該幀,通知MIM鏈路斷開。
IMRP采用與MRP相同的循環檢測機制,具有以下3種工作方式。
MIM工作方式。MIM以預設的時間間隔IMRP_TSTdefault周期性地向環端口和互連端口發送IMRP_Test幀。若MIM在設定時間IMRP_TSTNRmax×IMRP_TSTdefault超時前收到本機發出的IMRP_Test幀,則說明IMRP環網處于閉合狀態。此時,MIM將互連端口設為阻塞狀態,如圖3所示。若MIM在設定時間內沒收到本機發出的IMRP_Test幀,則說明IMRP環網處于斷開狀態,MIM將互連端口設為轉發狀態,如圖4所示。
MIC工作方式。若MIC檢測到互連鏈路故障,則設置互連端口為阻塞狀態,并分別向環端口發送IMRP_LinkDown幀;若MIC檢測到互連鏈路恢復,則分別向環端口發送IMRP_LinkUp幀;若MIC收到IMRP_LinkDown幀或IMRP_LinkUp幀,則轉發。
MIM與MIC交互方式。若MIM收到MIC發出的IMRP_LinkDown幀,則立即將互連端口設為轉發狀態,清空本機MAC地址轉發表,并通過環端口和互連端口發送IMRP_TopologyChange幀,通知其連接的兩個MRP環網中的其他節點,網絡拓撲發生變化;若MIM收到MIC發出的IMRP_LinkUp幀,則MIM加速鏈路檢測,若檢測到鏈路閉合,則設互連端口為阻塞狀態,同樣清空本機MAC地址轉發表,并發送IMRP_TopologyChange幀;若MIC收到MIM發出的IMRP_TopologyChange幀,則重新設置互連端口狀態,清空本機MAC地址轉發表,并轉發該幀。
隨著工業以太網在工業現場越來越多的應用,其網絡可靠性的增強也成為近年來研究的熱點。筆者參考目前應用最廣泛的MRP基本原理,構造了用于互連通信的IMRP,從而進一步提高工業以太網的可靠性。
[1] 肖賀,管海兵,宦飛.工業以太網冗余技術分析[J].通信技術,2012,(3):59~63,67.
[2] IEC 62439-2,High Availability Automation Networks[S].Geneva:International Electrotechnical Commission,2008.
[3] 張雷.工業以太網拓撲設計與優化研究[D].杭州:浙江大學,2012.