王 濤
(山東中車日立軌道通信信號有限公司,山東青島 266000)
軌道交通作為運輸效率高、綠色環(huán)保的交通出行方式,對于緩解城市擁堵,方便出行以及拉動地區(qū)經(jīng)濟增長都有重要作用。近年來,國家也高度重視軌道交通領(lǐng)域的發(fā)展,先后發(fā)布一系列軌道交通發(fā)展規(guī)劃,均強調(diào)重點發(fā)展軌道交通裝備等先進制造業(yè)。
信號系統(tǒng)的作用類似于行車指揮的大腦,制定全線運營計劃,監(jiān)控全線列車運行,確保列車運行安全。由于信號系統(tǒng)高可靠性、可用性等要求,因此在設(shè)計時,會采用冗余、熱備等設(shè)計方法。如在CTC調(diào)度集中系統(tǒng),或地鐵CBTC系統(tǒng)的ATS子系統(tǒng)中的服務(wù)器設(shè)備通常采用熱備配置;信號系統(tǒng)的網(wǎng)絡(luò)通常采用冗余方式。
地鐵CBTC信號系統(tǒng)中,中心ATS子系統(tǒng)的典型結(jié)構(gòu)如圖1所示。ATS系統(tǒng)核心的服務(wù)器采用熱備結(jié)構(gòu),主機進行輸入、運算和輸出,從機同時工作,但不進行輸出。網(wǎng)絡(luò)采用紅藍雙網(wǎng)的結(jié)構(gòu),雙網(wǎng)同時進行工作和數(shù)據(jù)傳輸,由節(jié)點設(shè)備的通信層軟件來決定雙網(wǎng)數(shù)據(jù)的取舍。
圖1 中心ATS典型結(jié)構(gòu)Fig.1 Typical structure of central ATS
配置冗余交換機,同時節(jié)點設(shè)備(工作站、服務(wù)器等)采用多網(wǎng)卡方式組成完全冗余的網(wǎng)絡(luò)。在該方式中,其中一個網(wǎng)絡(luò)的異常不會影響系統(tǒng)通信,仍可保證連續(xù)的數(shù)據(jù)通訊。
為滿足冗余要求,兩個網(wǎng)絡(luò)配置C類IP地址,并分配不同的IP地址段,如表1所示。
表1 IP地址分配Tab.1 IP address allocation
為滿足兩個網(wǎng)絡(luò)同時進行數(shù)據(jù)收發(fā)需求,在網(wǎng)絡(luò)節(jié)點設(shè)備(服務(wù)器、工作站、控制設(shè)備等)中通過軟件的方式進行控制。同時,考慮到軟件模塊化、通用性、可移植性等要求,通常采用在系統(tǒng)層和應(yīng)用層之間設(shè)置通信層(也被稱為中間層)的方式,由通信層完成雙網(wǎng)絡(luò)的控制邏輯。同時,也可在通信層完成其他功能擴充,如實現(xiàn)鐵路安全通信RSSP協(xié)議等。如圖2所示。
圖2 通信層結(jié)構(gòu)Fig.2 Communication layer structure
由于通信層的存在,冗余網(wǎng)絡(luò)對于應(yīng)用層透明。應(yīng)用程序無需關(guān)心具體的雙網(wǎng)控制,只需與通信層發(fā)生數(shù)據(jù)交互。具體來說是由通信層向雙網(wǎng)絡(luò)發(fā)送相同數(shù)據(jù),同時從兩個網(wǎng)絡(luò)接收數(shù)據(jù)。應(yīng)用層和通信層的接口在軟件設(shè)計時,可以考慮采用API或進程間通信等方式。
1)通信正常
應(yīng)用程序發(fā)送數(shù)據(jù)至通信層,由通信層向A、B雙網(wǎng)發(fā)送相同數(shù)據(jù),而接收節(jié)點可從兩個網(wǎng)絡(luò)收到數(shù)據(jù),但只有先到達的數(shù)據(jù)會被采用,后到的數(shù)據(jù)將會被通信層丟棄。
如圖3所示,節(jié)點1發(fā)送的數(shù)據(jù)通過A、B雙網(wǎng)到達節(jié)點2后,節(jié)點2的通信層優(yōu)先使用先到數(shù)據(jù),后到數(shù)據(jù)被丟棄。
圖3 正常時通信流程Fig.3 Normal communication flow
2)單網(wǎng)故障
在此場景下,由于在雙網(wǎng)中同時有數(shù)據(jù)傳輸,因此當(dāng)單個網(wǎng)絡(luò)有故障時,會自動從正常網(wǎng)絡(luò)獲取到信息,無需進行切換,也不會造成時延。如圖4所示。
圖4 單網(wǎng)故障時通信流程Fig.4 Communication flow in case of single network failure
同時,通信層對兩個網(wǎng)絡(luò)的狀態(tài)進行監(jiān)視,如確定其中一個網(wǎng)絡(luò)發(fā)生故障,則自動舍棄該網(wǎng)絡(luò),連續(xù)從另一網(wǎng)絡(luò)收發(fā)數(shù)據(jù)。
發(fā)送時,通信層將相同的數(shù)據(jù)向兩個網(wǎng)絡(luò)發(fā)送,進行雙網(wǎng)傳輸。
接收時,通信層對兩個網(wǎng)絡(luò)的報文都進行接收,成功后向應(yīng)用層返回報文。接收的流程如圖5所示。
圖5 通信層接收流程Fig.5 Communication layer receiving flow
可在軟件中通過綁定INADDR_ANY 地址,即0.0.0.0的IP地址的方式,對節(jié)點設(shè)備來自A、B雙網(wǎng)的數(shù)據(jù)同時進行接收。
通過CRC等方式對報文正確性進行校驗,此校驗也可不在通信層實現(xiàn),由應(yīng)用層進行校驗。
通常序號范圍可以從0x0001-0xFFFF,在每次報文發(fā)送時進行循環(huán)累加。正常情況下,接收到的序號應(yīng)為累加狀態(tài)。當(dāng)序號相同時,說明接收的是雙網(wǎng)絡(luò)的冗余報文;當(dāng)接收的序號變小時,報文傳輸可能存在問題,需根據(jù)不同情況來具體分析和應(yīng)對。
雙機熱備是在兩臺處理設(shè)備上運行各自獨立的應(yīng)用,當(dāng)其中一臺設(shè)備故障時,由另一臺設(shè)備進行接管,提升整體的可用性。
如圖1中的ATS結(jié)構(gòu),對于數(shù)據(jù)庫服務(wù)器,通常采用配置商用熱備軟件的方式,來進行管理和確保數(shù)據(jù)的完整性;但對于其他如應(yīng)用服務(wù)器、接口服務(wù)器等,為了更加靈活和方便的控制,通常由信號系統(tǒng)自行設(shè)計的熱備軟件來進行控制。
雙機熱備系統(tǒng)中,其中一方為主系,另一方為從系。主系接收數(shù)據(jù),進行運算后對外輸出;從系接收數(shù)據(jù),獨立進行運算,但不對外輸出。當(dāng)主系出現(xiàn)故障時,系統(tǒng)將自動進行主從系切換,主從系的狀態(tài)遷移如圖6所示。
圖6 主從狀態(tài)遷移Fig.6 Main/standby state transition
圖6中,為了標(biāo)記,熱備的兩臺設(shè)備分別被命名為1系和2系。正常運行時,兩系為一主一從,當(dāng)故障發(fā)生時,進行切替。
雙機間通過心跳線和互發(fā)心跳報文的方式監(jiān)測對方狀態(tài)。本文直接將雙機設(shè)備接入至冗余的雙網(wǎng)中,作為心跳線。主從切替如圖7所示。
圖7中,1系為雙機中的主系,2系為從系,雙方周期性互發(fā)心跳報文。當(dāng)2系3個周期內(nèi)未收到1系心跳時,判斷1系故障,并根據(jù)圖6中的遷移狀態(tài)升級為主系,接替1系的控制。
圖7 主從切替Fig.7 Main/standby system switching
除以上被動的心跳監(jiān)視進行切替的方式,同時對本機狀態(tài)進行自監(jiān)視,當(dāng)發(fā)現(xiàn)自身異常時,及時通知對方進行狀態(tài)切替。
當(dāng)1系與A、B雙網(wǎng)的連接斷開,會形成信息孤島,如圖8所示。此時由于1、2系都接收不到對方心跳,都會升級成為主系,因此當(dāng)故障恢復(fù)時會造成雙主狀態(tài),此種情況應(yīng)避免。通過對本機的以太網(wǎng)狀態(tài)進行監(jiān)視,當(dāng)發(fā)現(xiàn)A、B雙網(wǎng)都為斷開時,程序自動停止,需通過人工介入的手動方式才可恢復(fù),避免故障恢復(fù)后變?yōu)殡p主狀態(tài)。
圖8 1系形成信息孤島Fig.8 The system 1 forms an information island
主從雙方的心跳報文中包含本機的狀態(tài)信息(即本機是主系或從系)。啟動時,通過心跳報文的接收情況和狀態(tài)信息來對自身狀態(tài)進行設(shè)定。
如圖9所示,本機啟動時,狀態(tài)初始為從系,并根據(jù)接收心跳報文的情況確定是否進行狀態(tài)遷移:如對方離線,則直接切換為主系運行;如對方在線,且以主系運行,則本機作為從系運行,無需切換;如對方在線,且以從系運行,此時通過執(zhí)行預(yù)先的默認(rèn)配置來強制確定主從。如可默認(rèn)雙機中的1系為主系,2系為從系。
圖9 啟動流程Fig.9 Start-up flow chart
雙網(wǎng)控制和雙機熱備的冗余技術(shù)在信號系統(tǒng)中有著廣泛應(yīng)用。本文所提出的通過軟件實現(xiàn)雙網(wǎng)和熱備的控制方法,已在國內(nèi)城市軌道交通線路中上線應(yīng)用,通過實際應(yīng)用證明,可滿足系統(tǒng)的業(yè)務(wù)需求,并提升系統(tǒng)可用性和可靠性。