徐琳升 胡立生
(上海交通大學(xué)電子信息與電氣工程學(xué)院,上海 200240)
工業(yè)以太網(wǎng)具有成本低、傳輸速率高且開(kāi)放性好的特點(diǎn)[1],越來(lái)越多的工業(yè)控制系統(tǒng)中的通信任務(wù)都采用工業(yè)以太網(wǎng)技術(shù)來(lái)完成。以太網(wǎng)是以辦公自動(dòng)化為標(biāo)準(zhǔn)設(shè)計(jì)的,并沒(méi)有考慮工業(yè)現(xiàn)場(chǎng)環(huán)境,如高溫、高壓及強(qiáng)電磁等。因此,以太網(wǎng)的工業(yè)現(xiàn)場(chǎng)應(yīng)用必須解決可靠性問(wèn)題。
工業(yè)應(yīng)用對(duì)網(wǎng)絡(luò)可靠性的要求主要體現(xiàn)在兩個(gè)方面:一是網(wǎng)絡(luò)的故障容錯(cuò)能力,二是網(wǎng)絡(luò)故障發(fā)生時(shí),網(wǎng)絡(luò)檢測(cè)恢復(fù)時(shí)間小于寬限時(shí)間(系統(tǒng)可容忍的網(wǎng)絡(luò)中斷時(shí)間)。路徑冗余是提高工業(yè)以太網(wǎng)可靠性的常用方法,其中環(huán)狀拓?fù)涮峁┝艘环N最為簡(jiǎn)單、高效的單點(diǎn)容錯(cuò)路徑冗余解決方案。目前,工業(yè)應(yīng)用最為廣泛的路徑冗余方法就是IEC 62439-2標(biāo)準(zhǔn)中定義的運(yùn)行在數(shù)據(jù)鏈路層的介質(zhì)冗余協(xié)議(MRP)。
MRP提供了一種在以太網(wǎng)環(huán)形網(wǎng)絡(luò)中能夠快速檢測(cè)環(huán)網(wǎng)中的鏈路故障,并能在故障發(fā)生時(shí)建立新的網(wǎng)絡(luò)拓?fù)鋪?lái)恢復(fù)網(wǎng)絡(luò),實(shí)現(xiàn)通信冗余的方法[2]。由多個(gè)工業(yè)以太網(wǎng)交換機(jī)組成以太網(wǎng)環(huán)形網(wǎng)絡(luò),交換機(jī)在物理上連接成環(huán),在邏輯上為鏈狀結(jié)構(gòu),交換機(jī)中有且僅有一個(gè)設(shè)置為主站(MRM),主站負(fù)責(zé)控制網(wǎng)絡(luò)邏輯結(jié)構(gòu);其他設(shè)置為從站(MRC),通過(guò)各交換機(jī)環(huán)端口狀態(tài)切換實(shí)現(xiàn)環(huán)網(wǎng)冗余鏈路備份。MRP網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)如圖1、2所示。
圖1 MRP環(huán)網(wǎng)閉合狀態(tài)
圖2 MRP環(huán)網(wǎng)斷開(kāi)狀態(tài)
MRM工作方式。MRM以預(yù)設(shè)的時(shí)間間隔周期性地向兩個(gè)環(huán)端口發(fā)送鏈路檢測(cè)幀,如果MRM在設(shè)定時(shí)間超時(shí)前收到鏈路檢測(cè)幀,則說(shuō)明環(huán)鏈路處于閉合狀態(tài)。MRM的環(huán)端口一個(gè)設(shè)為轉(zhuǎn)發(fā)狀態(tài),另一個(gè)設(shè)為阻塞狀態(tài),如圖1所示。如果MRM沒(méi)有在預(yù)設(shè)時(shí)間內(nèi)收到鏈路檢測(cè)幀,則說(shuō)明環(huán)鏈路處于斷開(kāi)狀態(tài),MRM的兩個(gè)環(huán)端口都設(shè)為轉(zhuǎn)發(fā)狀態(tài),如圖2所示。
MRC工作方式。MRC如果檢測(cè)到本機(jī)環(huán)端口鏈路故障或鏈路恢復(fù),則重新設(shè)置環(huán)端口狀態(tài),并分別向兩個(gè)環(huán)端口發(fā)送鏈路故障幀或鏈路恢復(fù)幀;如果MRC在一個(gè)環(huán)端口收到鏈路檢測(cè)幀、鏈路故障幀、鏈路恢復(fù)幀或拓?fù)涓淖儙瑒t向另一個(gè)環(huán)端口轉(zhuǎn)發(fā)。
MRM和MRC交互方式。如果MRM收到MRC發(fā)出的鏈路故障幀或鏈路恢復(fù)幀,則加速鏈路檢測(cè),即減小發(fā)送鏈路檢測(cè)幀的時(shí)間間隔;如果MRM檢測(cè)到環(huán)鏈路狀態(tài)發(fā)生變化,則重新設(shè)置環(huán)端口狀態(tài),清空自身MAC地址轉(zhuǎn)發(fā)表,并以預(yù)設(shè)時(shí)間間隔分別向兩個(gè)環(huán)端口發(fā)送拓?fù)涓淖儙ㄖ狹RC網(wǎng)絡(luò)拓?fù)涞淖兓?;如果MRC收到MRM發(fā)出的拓?fù)涓淖儙瑒t重新設(shè)置環(huán)端口狀態(tài),并清空MAC地址轉(zhuǎn)發(fā)表,學(xué)習(xí)新的網(wǎng)絡(luò)拓?fù)洹?/p>
根據(jù)上文對(duì)MRP原理的介紹可以知道,網(wǎng)絡(luò)恢復(fù)時(shí)間Trec主要由故障檢測(cè)時(shí)間Tdetect和環(huán)網(wǎng)中各交換機(jī)在接收到MRM發(fā)送的拓?fù)涓淖儙笄蹇兆陨鞰AC地址轉(zhuǎn)發(fā)表的時(shí)間Tflush兩部分組成,即:
Trec=Tdetect+Tflush
(1)
故障檢測(cè)時(shí)間Tdetect由MRM設(shè)定的檢測(cè)幀超時(shí)時(shí)間Ttest和檢測(cè)幀在環(huán)網(wǎng)中被轉(zhuǎn)發(fā)一周所需要的時(shí)間Tring組成,即:
Tdetect=Ttest+Tring
(2)
Ttest=MRP_TSTNRmax·MRP_TSTdefaultT
(3)
Tring=N(Tswitch+Tqueue+Tbit+Tline)
(4)
式中 MRP_TSTdefaultT——鏈路檢測(cè)幀發(fā)送周期;
MRP_TSTNRmax——最大重傳次數(shù);
N——環(huán)網(wǎng)中交換機(jī)的個(gè)數(shù);
Tswitch——交換機(jī)解析鏈路檢測(cè)幀的時(shí)間;
Tqueue——交換機(jī)轉(zhuǎn)發(fā)以太網(wǎng)幀時(shí)的排隊(duì)延遲;
Tbit——交換機(jī)接收或發(fā)送以太網(wǎng)幀所需的時(shí)間;
Tline——以太網(wǎng)幀在交換機(jī)之間傳播的時(shí)間。
當(dāng)MRM檢測(cè)到網(wǎng)絡(luò)故障后,便開(kāi)始以固定周期MRP_TOPchgT發(fā)送拓?fù)涓淖儙?。環(huán)網(wǎng)中MRC接收到MRM發(fā)送的最后一個(gè)拓?fù)涓淖儙螅瑢⑵渥陨鞰AC地址轉(zhuǎn)發(fā)表清空,故:
Tflush=Thold+Tring+TFDB
(5)
Thold=MRP_TOPchgT·MRP_TOPNRmax
(6)
式中 MRP_TOPchgT——MRM發(fā)送拓?fù)涓淖儙闹芷冢?/p>
MRP_TOPNRmax——拓?fù)涓淖儙淖畲笾貍鞔螖?shù);
TFDB——交換機(jī)清空MAC地址轉(zhuǎn)發(fā)表的時(shí)間;
Thold——MRM周期性發(fā)送拓?fù)涓淖儙臅r(shí)間;
Tring——拓?fù)涓淖儙诃h(huán)網(wǎng)中一周所需的時(shí)間。
綜上所述,MRP的網(wǎng)絡(luò)恢復(fù)時(shí)間為:
Trec=MRP_TSTNRmax·MRP_TSTdefaultT+2N(Tswitch+
Tqueue+Tbit+Tline)+MRP_TOPchgT·
MRP_TOPNRmax+TFDB
(7)
根據(jù)網(wǎng)絡(luò)對(duì)故障恢復(fù)時(shí)間的要求,通過(guò)對(duì)式(7)中一些可變參數(shù)的設(shè)定,即可得到滿足不同要求的網(wǎng)絡(luò)故障恢復(fù)時(shí)間。例如,將式(7)中的每個(gè)參數(shù)設(shè)定為: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)可得網(wǎng)絡(luò)故障恢復(fù)時(shí)間Trec=1×3+2×50×(0.01+0.00512+0.0005)+1.5+0.5≈6.6ms
通過(guò)以上分析可知,基于單環(huán)網(wǎng)絡(luò)拓?fù)涞腗RP協(xié)議能夠快速檢測(cè)網(wǎng)絡(luò)故障,并在網(wǎng)絡(luò)故障發(fā)生時(shí)通過(guò)建立新的網(wǎng)絡(luò)拓?fù)淇焖倩謴?fù)網(wǎng)絡(luò),恢復(fù)時(shí)間為毫秒級(jí)。這在一定程度上提高了工業(yè)以太網(wǎng)的可靠性。
網(wǎng)絡(luò)容錯(cuò)能力定義為,當(dāng)網(wǎng)絡(luò)發(fā)生故障時(shí)保持全網(wǎng)連通的能力,即任意兩個(gè)節(jié)點(diǎn)之間都保持通信的能力[3]。MRP是基于單環(huán)網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)的冗余協(xié)議。因此,其網(wǎng)絡(luò)容錯(cuò)能力僅為單點(diǎn)故障,即MRP僅在網(wǎng)絡(luò)中單個(gè)鏈路或節(jié)點(diǎn)發(fā)生故障時(shí)能保證全網(wǎng)的連通性。綜上可知,MRP的故障恢復(fù)時(shí)間和網(wǎng)絡(luò)容錯(cuò)能力均與網(wǎng)絡(luò)拓?fù)渲械墓?jié)點(diǎn)個(gè)數(shù)有關(guān)。由式(7)可知,當(dāng)網(wǎng)絡(luò)拓?fù)涔?jié)點(diǎn)個(gè)數(shù)N增大時(shí)MRP的網(wǎng)絡(luò)故障恢復(fù)時(shí)間將增大;同時(shí),網(wǎng)絡(luò)中出現(xiàn)多點(diǎn)故障的概率隨之增大。因此,在MRP的實(shí)際應(yīng)用中,對(duì)環(huán)網(wǎng)中節(jié)點(diǎn)個(gè)數(shù)N的最大值有一定的限制。
為了減小MRP的網(wǎng)絡(luò)故障恢復(fù)時(shí)間,提高網(wǎng)絡(luò)容錯(cuò)能力,通常將節(jié)點(diǎn)數(shù)量較大的MRP環(huán)網(wǎng)拓?fù)浣Y(jié)構(gòu)分割成幾個(gè)小的環(huán)網(wǎng)拓?fù)?,然后分別應(yīng)用MRP。這就對(duì)分割后的各個(gè)環(huán)網(wǎng)間的通信提出了要求。筆者參照MRP基本原理,構(gòu)建了一種用于環(huán)網(wǎng)間通信的互連介質(zhì)冗余協(xié)議(IMRP)。
IMRP是可用于MRP環(huán)網(wǎng)間通信的數(shù)據(jù)鏈路層路徑冗余協(xié)議。與MRP類似,IMRP也具有快速檢測(cè)網(wǎng)絡(luò)故障,并通過(guò)建立新的網(wǎng)絡(luò)拓?fù)鋪?lái)恢復(fù)網(wǎng)絡(luò)的能力。下面以連接兩個(gè)MRP環(huán)網(wǎng)為例,詳細(xì)介紹IMRP,其網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)如圖3、4所示。
圖3 IMRP環(huán)網(wǎng)閉合狀態(tài)
圖4 IMRP環(huán)網(wǎng)斷開(kāi)狀態(tài)
圖3、4中,在每個(gè)MRP環(huán)網(wǎng)中分別任意選出兩個(gè)工業(yè)以太網(wǎng)交換機(jī)節(jié)點(diǎn)(MRM、MRC均可),每個(gè)節(jié)點(diǎn)指定一個(gè)互連端口,4個(gè)節(jié)點(diǎn)通過(guò)互聯(lián)端口和環(huán)端口在物理上連接成環(huán)。指定其中一個(gè)節(jié)點(diǎn)為主節(jié)點(diǎn)(MIM),管理整個(gè)IMRP環(huán)網(wǎng),其余3個(gè)節(jié)點(diǎn)為從節(jié)點(diǎn)(MIC)。
設(shè)計(jì)一個(gè)長(zhǎng)度為64字節(jié)的標(biāo)準(zhǔn)以太網(wǎng)幀,其幀格式如圖5所示。
圖5 檢測(cè)/控制幀格式
圖5中,幀頭部為標(biāo)準(zhǔn)以太網(wǎng)幀頭。數(shù)據(jù)部分各字段的含義如下:
IMRP_Length 幀長(zhǎng)度
IMRP_Type 幀類型
IMRP_InID IMRP的ID號(hào)
IMRP_SA 發(fā)送該幀的主機(jī)MAC地址
IMRP_Interval 時(shí)間間隔
Padding 無(wú)效填充
IMRP中使用的以太網(wǎng)幀類型共有以下幾種:
a. IMRP_Test幀。鏈路檢測(cè)幀,由MIM以預(yù)設(shè)的時(shí)間間隔IMRP_TSTdefault周期性地發(fā)出,來(lái)檢測(cè)IMRP環(huán)網(wǎng)狀態(tài)。
b. IMRP_TopologyChange幀。拓?fù)涓淖兺ㄖ獛?,由MIM發(fā)出,來(lái)通知MRP環(huán)網(wǎng)和IMP環(huán)網(wǎng)中節(jié)點(diǎn),網(wǎng)絡(luò)拓?fù)涞母淖儭?/p>
c. IMRP_LinkUp幀。當(dāng)MIC檢測(cè)到鏈路恢復(fù)時(shí)發(fā)送該幀,通知MIM鏈路的恢復(fù)。
d. IMRP_LinkDown幀。當(dāng)MIC檢測(cè)到鏈路斷開(kāi)時(shí)發(fā)送該幀,通知MIM鏈路斷開(kāi)。
IMRP采用與MRP相同的循環(huán)檢測(cè)機(jī)制,具有以下3種工作方式。
MIM工作方式。MIM以預(yù)設(shè)的時(shí)間間隔IMRP_TSTdefault周期性地向環(huán)端口和互連端口發(fā)送IMRP_Test幀。若MIM在設(shè)定時(shí)間IMRP_TSTNRmax×IMRP_TSTdefault超時(shí)前收到本機(jī)發(fā)出的IMRP_Test幀,則說(shuō)明IMRP環(huán)網(wǎng)處于閉合狀態(tài)。此時(shí),MIM將互連端口設(shè)為阻塞狀態(tài),如圖3所示。若MIM在設(shè)定時(shí)間內(nèi)沒(méi)收到本機(jī)發(fā)出的IMRP_Test幀,則說(shuō)明IMRP環(huán)網(wǎng)處于斷開(kāi)狀態(tài),MIM將互連端口設(shè)為轉(zhuǎn)發(fā)狀態(tài),如圖4所示。
MIC工作方式。若MIC檢測(cè)到互連鏈路故障,則設(shè)置互連端口為阻塞狀態(tài),并分別向環(huán)端口發(fā)送IMRP_LinkDown幀;若MIC檢測(cè)到互連鏈路恢復(fù),則分別向環(huán)端口發(fā)送IMRP_LinkUp幀;若MIC收到IMRP_LinkDown幀或IMRP_LinkUp幀,則轉(zhuǎn)發(fā)。
MIM與MIC交互方式。若MIM收到MIC發(fā)出的IMRP_LinkDown幀,則立即將互連端口設(shè)為轉(zhuǎn)發(fā)狀態(tài),清空本機(jī)MAC地址轉(zhuǎn)發(fā)表,并通過(guò)環(huán)端口和互連端口發(fā)送IMRP_TopologyChange幀,通知其連接的兩個(gè)MRP環(huán)網(wǎng)中的其他節(jié)點(diǎn),網(wǎng)絡(luò)拓?fù)浒l(fā)生變化;若MIM收到MIC發(fā)出的IMRP_LinkUp幀,則MIM加速鏈路檢測(cè),若檢測(cè)到鏈路閉合,則設(shè)互連端口為阻塞狀態(tài),同樣清空本機(jī)MAC地址轉(zhuǎn)發(fā)表,并發(fā)送IMRP_TopologyChange幀;若MIC收到MIM發(fā)出的IMRP_TopologyChange幀,則重新設(shè)置互連端口狀態(tài),清空本機(jī)MAC地址轉(zhuǎn)發(fā)表,并轉(zhuǎn)發(fā)該幀。
隨著工業(yè)以太網(wǎng)在工業(yè)現(xiàn)場(chǎng)越來(lái)越多的應(yīng)用,其網(wǎng)絡(luò)可靠性的增強(qiáng)也成為近年來(lái)研究的熱點(diǎn)。筆者參考目前應(yīng)用最廣泛的MRP基本原理,構(gòu)造了用于互連通信的IMRP,從而進(jìn)一步提高工業(yè)以太網(wǎng)的可靠性。
[1] 肖賀,管海兵,宦飛.工業(yè)以太網(wǎng)冗余技術(shù)分析[J].通信技術(shù),2012,(3):59~63,67.
[2] IEC 62439-2,High Availability Automation Networks[S].Geneva:International Electrotechnical Commission,2008.
[3] 張雷.工業(yè)以太網(wǎng)拓?fù)湓O(shè)計(jì)與優(yōu)化研究[D].杭州:浙江大學(xué),2012.