陳海歡
(西南交通大學(xué) 信息科學(xué)與技術(shù)學(xué)院,成都 611756)
互聯(lián)互通是當(dāng)前城市軌道交通的發(fā)展方向,對(duì)提高運(yùn)輸效率、改善乘車環(huán)境、縮短出行時(shí)間起著重要的作用。但因各信號(hào)廠家采用的信號(hào)系統(tǒng)總體架構(gòu)、通信協(xié)議、接口標(biāo)準(zhǔn)存在一定差異,需要制定統(tǒng)一的標(biāo)準(zhǔn)和接口規(guī)范,以實(shí)現(xiàn)車輛及不同地域地面設(shè)備互通互換,進(jìn)而實(shí)現(xiàn)列車跨線聯(lián)通聯(lián)運(yùn),達(dá)到網(wǎng)絡(luò)化運(yùn)營(yíng)目的。OPC UA是OPC基金會(huì)為過程自動(dòng)化及其它領(lǐng)域數(shù)據(jù)通信提供的新標(biāo)準(zhǔn),旨在為企業(yè)制造模型創(chuàng)建統(tǒng)一對(duì)象和架構(gòu)定義[1],在工業(yè)制造領(lǐng)域有著大量應(yīng)用?,F(xiàn)階段,國(guó)內(nèi)對(duì)信號(hào)系統(tǒng)互聯(lián)互通研究與實(shí)施還處于起步階段,對(duì)OPC UA在城軌信號(hào)系統(tǒng)互聯(lián)互通中的應(yīng)用研究極少,本文對(duì)其在城市軌道交通信號(hào)系統(tǒng)互聯(lián)互通中的應(yīng)用展開研究。
OPC(OLE for Process Control)通信標(biāo)準(zhǔn)的核心是互通性和標(biāo)準(zhǔn)化?;谖④浀腃OM/DCOM技術(shù),采用服務(wù)器/客戶端模式,定義了一些用于數(shù)據(jù)訪問、事件和報(bào)警處理、歷史數(shù)據(jù)訪問的接口[2],在控制級(jí)別很好地解決了硬件設(shè)備間互通性的問題。但隨著互聯(lián)網(wǎng)技術(shù)的快速發(fā)展,傳統(tǒng)OPC技術(shù)不夠靈活、平臺(tái)局限性等問題逐步突顯,OPC基金會(huì)提出了最新的數(shù)據(jù)通信統(tǒng)一方法——OPC統(tǒng)一架構(gòu)(OPC UA,OPC Unified Architecture)。
OPC UA集成現(xiàn)有的OPC規(guī)范,包括OPC實(shí)時(shí)數(shù)據(jù)訪問規(guī)范OPC DA、OPC報(bào)警事件訪問規(guī)范OPC A&E、OPC歷史數(shù)據(jù)訪問規(guī)范OPC HAD、命令、復(fù)雜數(shù)據(jù)和對(duì)象類型等,采用統(tǒng)一的地址空間和服務(wù)模型,使得同一系統(tǒng)能被統(tǒng)一訪問;通過經(jīng)管理員開放的端口進(jìn)行通信,提升傳輸性能;支持多種消息編碼格式和多種傳輸協(xié)議[3],如TCP和HTTP協(xié)議;自糾正特性提高其可靠性,標(biāo)準(zhǔn)冗余模型也使得來自不同廠商的軟件應(yīng)用可以同時(shí)被采納并彼此兼容;底層通信通過加密算法,保證消息完整性;跨平臺(tái)技術(shù)使得數(shù)據(jù)能靈活交換。
典型的城市軌道交通信號(hào)系統(tǒng)由列車自動(dòng)監(jiān)控(ATS)、聯(lián)鎖、區(qū)域控制器(ZC)、車載列車自動(dòng)防護(hù)/列車自動(dòng)運(yùn)行(ATP/ATO)以及數(shù)據(jù)通信系統(tǒng)(DCS,Data Communication System)等組成。ATS主要實(shí)現(xiàn)線路監(jiān)督、列車調(diào)度、時(shí)刻表管理等監(jiān)督管理功能;聯(lián)鎖負(fù)責(zé)線路設(shè)備(例如,信號(hào)機(jī)、區(qū)段、道岔、屏蔽門、防淹門、緊急停車按鈕等)狀態(tài)的采集及依據(jù)需要對(duì)軌旁設(shè)備進(jìn)行控制;ZC主要完成列車的跟蹤、移動(dòng)授權(quán)計(jì)算等;車載ATP/ATO實(shí)現(xiàn)對(duì)列車的控制,防止列車超速、冒進(jìn)、倒溜、未停準(zhǔn)等非安全因素。它們之間通過DCS連接起來,實(shí)現(xiàn)相互之間的信息傳遞及控制。體系架構(gòu)如圖1所示[4],簡(jiǎn)化后得到如圖2所示的系統(tǒng)框架。
圖1 互聯(lián)互通信號(hào)系統(tǒng)總體架構(gòu)示意圖
圖2 互聯(lián)互通信號(hào)系統(tǒng)簡(jiǎn)化架構(gòu)示意圖
車站ATS通過gateway實(shí)現(xiàn)與相關(guān)設(shè)備(如ZC、本地控制器(LC,Local Controller)、車載控制器(CC,Carborne Controller))之間的信息交互。
通過以上分析可知,gateway作為信息交互的主要設(shè)備,是實(shí)現(xiàn)城市軌道交通信號(hào)系統(tǒng)互聯(lián)互通的關(guān)鍵。但因各家信號(hào)公司采取的通信協(xié)議存在一定的差異,因此,需將它們進(jìn)行轉(zhuǎn)換才能相互訪問,gateway正好能解決這個(gè)問題。可行的解決方案是:建立滿足OPC UA協(xié)議的UA Server,gateway通過TCP異步通信,作為server發(fā)送信息給UA Server,同時(shí),外部廠商應(yīng)是全滿足OPC UA的客戶端,通過訪問UA Server即可實(shí)現(xiàn)信息互傳。其架構(gòu)如圖3所示。
圖3 采用OPC UA的信號(hào)系統(tǒng)架構(gòu)示意圖
ATS主要功能包括列車運(yùn)行情況的集中監(jiān)視、自動(dòng)排列進(jìn)路、自動(dòng)列車運(yùn)行調(diào)整、自動(dòng)生成時(shí)刻表、自動(dòng)記錄列車運(yùn)行軌跡、自動(dòng)進(jìn)行運(yùn)行數(shù)據(jù)統(tǒng)計(jì)及報(bào)表生成、自動(dòng)檢測(cè)設(shè)備運(yùn)行狀態(tài)等,輔助調(diào)度人員對(duì)全線列車進(jìn)行管理。
對(duì)于ATS子系統(tǒng)的監(jiān)測(cè)內(nèi)容,通過TCP方式傳遞給UA Server,此時(shí),可將ATS子系統(tǒng)當(dāng)作是server進(jìn)行處理,而UA Server此時(shí)當(dāng)作是client進(jìn)行處理。ATS監(jiān)控的內(nèi)容主要包括有:聯(lián)鎖信息、信號(hào)機(jī)信息、區(qū)段信息、道岔信息、屏蔽門信息、站間閉塞信息、緊急停車按鈕狀態(tài)信息、命令信息等。對(duì)于消息傳遞實(shí)體,定義消息類CMessageEntity。
class CMessageEntity
{
Public CTrackState TrackState;//軌道占用
狀態(tài)
Public CRouteState RouteState;//進(jìn)路狀態(tài)
Public CVehicleState VehicleState;//列車
運(yùn)行狀態(tài)
Public CSignalState SignalState; //信號(hào)機(jī)
狀態(tài)
Public CTurnoutState TurnoutState; //道岔
狀態(tài)
Public CPlatformDoorState PlatformDoor-
Sate;//屏蔽門狀態(tài)
Public CTrainIdentificationNum Train-
Identi-ficationNum;//列車識(shí)別號(hào)
public CIsDeflected IsDeflected;//是否與實(shí)
際偏離
public CDegradationProcessing Degra
dation-Processing;//降級(jí)處理信息
public CToPassengerInfo ToPassenger-
Info;//給旅客提供的信息
}
其中,CTrackState、CRouteState、CVehicleState、CSignalState、CTurnoutState、CPlatformDoorState、CTrainIdentificationNum、CIsDeflected、CDegradationProcessing、CToPassen-gerInfo均為在外部定義的類,包含各自的信息,例如,ID、顏色、位置、狀態(tài)等信息,CTrainIdentificationNum(列車識(shí)別號(hào))中應(yīng)包含列車服務(wù)號(hào)、列車目的地號(hào)、列車車體號(hào)等信息。
class CTrainIdentificationNum
{
public long serviceNum { get; set; }//列車服
務(wù)號(hào)
public long destinationNum { get; set; }//列
車目的地號(hào)
public long trainBodyNum { get; set; }//列
車車體號(hào)
}
消息傳遞到UA Server后,滿足OPC UA的client可以對(duì)其進(jìn)行訪問。此時(shí),UA Server作為滿足OPC UA協(xié)議的服務(wù)器,而滿足OPC UA的外部廠商作為客戶端對(duì)其進(jìn)行訪問、接入控制和安全校驗(yàn)等操作。
基于.NET Framework 4.5.2,在VS 2015平臺(tái)上,采用C#編程語(yǔ)言,對(duì)OPC UA客戶端訪問OPC UA服務(wù)器過程進(jìn)行模擬測(cè)試研究。
OPC UA客戶端與服務(wù)器之間的通信應(yīng)滿足較高的安全等級(jí),以保證信息可靠傳遞,從而確保機(jī)車車輛能安全可靠運(yùn)行。在實(shí)施過程中,需要添加證書,確保信息來自可靠服務(wù)器并且在網(wǎng)絡(luò)傳輸過程中未被截取或偷聽。
利用VS2015中X.509證書制作工具,在“VS2015開發(fā)人員命令提示”中輸入“makecert -r -pe -n“CN=MyServer” -ss My -sky exchange”,制作一個(gè)“CN=MyServer”的服務(wù)器證書,利用IE證書導(dǎo)出工具,導(dǎo)出證書文件“certificate.cer”,并添加給客戶端。采用socket實(shí)現(xiàn)客戶端與服務(wù)器通信,利用SSL實(shí)現(xiàn)客戶端對(duì)服務(wù)器單向認(rèn)證,以字節(jié)流的方式實(shí)現(xiàn)信息交互。
客戶端通過Client Hello消息將其支持的(SSL,Secure Sockets Layer,安全套接層)版本、加密算法、密鑰交換算法、MAC算法等信息發(fā)送給SSL服務(wù)器;服務(wù)器后通過Server Hello消息通知客戶端;同時(shí),服務(wù)器將攜帶自己的公鑰信息的數(shù)字證書通過Certificate消息發(fā)送給客戶端;后發(fā)送Server Hello Done消息,通知客戶端版本和加密套件協(xié)商結(jié)束,開始進(jìn)行密鑰交換;客戶端驗(yàn)證證書合法后,利用證書中的公鑰加密SSL客戶端隨機(jī)生成的premaster secret,通過Client Key Exchange消息發(fā)送給服務(wù)器;客戶端再發(fā)送Change Cipher Spec消息,通知服務(wù)器后續(xù)報(bào)文將以協(xié)商好的密鑰和加密套件進(jìn)行加密;客戶端計(jì)算已交互握手信息的Hash值,利用協(xié)商好的密鑰和加密套件進(jìn)行加密,通過Finished消息發(fā)送給服務(wù)器,服務(wù)器同樣對(duì)交互的握手信息進(jìn)行Hash值計(jì)算,并與客戶端傳過來的Hash值進(jìn)行比較,若二者相同,則證明密鑰和加密套件協(xié)商成功;同樣,服務(wù)器發(fā)送Change Cipher Spec消息,通知客戶端后續(xù)報(bào)文將采用協(xié)商好的密鑰和加密套件進(jìn)行加密;服務(wù)器再將交互的握手信息的Hash值,利用協(xié)商好的密鑰和加密套件進(jìn)行處理,并通過Finished消息傳遞給客戶端,客戶端將其與自身計(jì)算結(jié)果進(jìn)行比較,若二者相同,則證明密鑰和加密套件協(xié)商成功,雙方能進(jìn)行正常安全通信[5]。其消息傳遞過程如圖4所示。
圖4 只認(rèn)證服務(wù)器的SSL握手過程
仿真表明,滿足OPC UA的客戶端和服務(wù)器能穩(wěn)定連接并實(shí)現(xiàn)信息互傳,服務(wù)器端仿真結(jié)果如圖5所示。顯示結(jié)果包含有SSlStream的批量加密算法、算法強(qiáng)度、身份驗(yàn)證代碼(MAC)算法、密鑰交換算法等信息。
圖5 server端仿真結(jié)果
客戶端能穩(wěn)定連接服務(wù)器并接收從服務(wù)器傳遞來的消息,仿真結(jié)果如圖6所示。
圖6 客戶端仿真結(jié)果
信息互傳是實(shí)現(xiàn)城市軌道交通信號(hào)系統(tǒng)互聯(lián)互通的基礎(chǔ),以保證在設(shè)備互換、跨線運(yùn)行過程中,車輛能可靠運(yùn)行。OPC UA在滿足可靠通信和身份驗(yàn)證的前提下,將所需傳遞的信息以TCP方式在客戶端和服務(wù)器之間進(jìn)行交互,表現(xiàn)良好。本次仿真客戶端和服務(wù)器均在Windows平臺(tái)上進(jìn)行部署,并且在之前的測(cè)試中,OPC UA在Linux和Windows通信中同樣表現(xiàn)良好,證明了OPC UA在城市軌道交通信號(hào)系統(tǒng)互聯(lián)互通中能有較好的應(yīng)用。