陳海歡
(西南交通大學 信息科學與技術學院,成都 611756)
互聯互通是當前城市軌道交通的發展方向,對提高運輸效率、改善乘車環境、縮短出行時間起著重要的作用。但因各信號廠家采用的信號系統總體架構、通信協議、接口標準存在一定差異,需要制定統一的標準和接口規范,以實現車輛及不同地域地面設備互通互換,進而實現列車跨線聯通聯運,達到網絡化運營目的。OPC UA是OPC基金會為過程自動化及其它領域數據通信提供的新標準,旨在為企業制造模型創建統一對象和架構定義[1],在工業制造領域有著大量應用。現階段,國內對信號系統互聯互通研究與實施還處于起步階段,對OPC UA在城軌信號系統互聯互通中的應用研究極少,本文對其在城市軌道交通信號系統互聯互通中的應用展開研究。
OPC(OLE for Process Control)通信標準的核心是互通性和標準化。基于微軟的COM/DCOM技術,采用服務器/客戶端模式,定義了一些用于數據訪問、事件和報警處理、歷史數據訪問的接口[2],在控制級別很好地解決了硬件設備間互通性的問題。但隨著互聯網技術的快速發展,傳統OPC技術不夠靈活、平臺局限性等問題逐步突顯,OPC基金會提出了最新的數據通信統一方法——OPC統一架構(OPC UA,OPC Unified Architecture)。
OPC UA集成現有的OPC規范,包括OPC實時數據訪問規范OPC DA、OPC報警事件訪問規范OPC A&E、OPC歷史數據訪問規范OPC HAD、命令、復雜數據和對象類型等,采用統一的地址空間和服務模型,使得同一系統能被統一訪問;通過經管理員開放的端口進行通信,提升傳輸性能;支持多種消息編碼格式和多種傳輸協議[3],如TCP和HTTP協議;自糾正特性提高其可靠性,標準冗余模型也使得來自不同廠商的軟件應用可以同時被采納并彼此兼容;底層通信通過加密算法,保證消息完整性;跨平臺技術使得數據能靈活交換。
典型的城市軌道交通信號系統由列車自動監控(ATS)、聯鎖、區域控制器(ZC)、車載列車自動防護/列車自動運行(ATP/ATO)以及數據通信系統(DCS,Data Communication System)等組成。ATS主要實現線路監督、列車調度、時刻表管理等監督管理功能;聯鎖負責線路設備(例如,信號機、區段、道岔、屏蔽門、防淹門、緊急停車按鈕等)狀態的采集及依據需要對軌旁設備進行控制;ZC主要完成列車的跟蹤、移動授權計算等;車載ATP/ATO實現對列車的控制,防止列車超速、冒進、倒溜、未停準等非安全因素。它們之間通過DCS連接起來,實現相互之間的信息傳遞及控制。體系架構如圖1所示[4],簡化后得到如圖2所示的系統框架。

圖1 互聯互通信號系統總體架構示意圖

圖2 互聯互通信號系統簡化架構示意圖
車站ATS通過gateway實現與相關設備(如ZC、本地控制器(LC,Local Controller)、車載控制器(CC,Carborne Controller))之間的信息交互。
通過以上分析可知,gateway作為信息交互的主要設備,是實現城市軌道交通信號系統互聯互通的關鍵。但因各家信號公司采取的通信協議存在一定的差異,因此,需將它們進行轉換才能相互訪問,gateway正好能解決這個問題。可行的解決方案是:建立滿足OPC UA協議的UA Server,gateway通過TCP異步通信,作為server發送信息給UA Server,同時,外部廠商應是全滿足OPC UA的客戶端,通過訪問UA Server即可實現信息互傳。其架構如圖3所示。

圖3 采用OPC UA的信號系統架構示意圖
ATS主要功能包括列車運行情況的集中監視、自動排列進路、自動列車運行調整、自動生成時刻表、自動記錄列車運行軌跡、自動進行運行數據統計及報表生成、自動檢測設備運行狀態等,輔助調度人員對全線列車進行管理。
對于ATS子系統的監測內容,通過TCP方式傳遞給UA Server,此時,可將ATS子系統當作是server進行處理,而UA Server此時當作是client進行處理。ATS監控的內容主要包括有:聯鎖信息、信號機信息、區段信息、道岔信息、屏蔽門信息、站間閉塞信息、緊急停車按鈕狀態信息、命令信息等。對于消息傳遞實體,定義消息類CMessageEntity。
class CMessageEntity
{
Public CTrackState TrackState;//軌道占用
狀態
Public CRouteState RouteState;//進路狀態
Public CVehicleState VehicleState;//列車
運行狀態
Public CSignalState SignalState; //信號機
狀態
Public CTurnoutState TurnoutState; //道岔
狀態
Public CPlatformDoorState PlatformDoor-
Sate;//屏蔽門狀態
Public CTrainIdentificationNum Train-
Identi-ficationNum;//列車識別號
public CIsDeflected IsDeflected;//是否與實
際偏離
public CDegradationProcessing Degra
dation-Processing;//降級處理信息
public CToPassengerInfo ToPassenger-
Info;//給旅客提供的信息
}
其中,CTrackState、CRouteState、CVehicleState、CSignalState、CTurnoutState、CPlatformDoorState、CTrainIdentificationNum、CIsDeflected、CDegradationProcessing、CToPassen-gerInfo均為在外部定義的類,包含各自的信息,例如,ID、顏色、位置、狀態等信息,CTrainIdentificationNum(列車識別號)中應包含列車服務號、列車目的地號、列車車體號等信息。
class CTrainIdentificationNum
{
public long serviceNum { get; set; }//列車服
務號
public long destinationNum { get; set; }//列
車目的地號
public long trainBodyNum { get; set; }//列
車車體號
}
消息傳遞到UA Server后,滿足OPC UA的client可以對其進行訪問。此時,UA Server作為滿足OPC UA協議的服務器,而滿足OPC UA的外部廠商作為客戶端對其進行訪問、接入控制和安全校驗等操作。
基于.NET Framework 4.5.2,在VS 2015平臺上,采用C#編程語言,對OPC UA客戶端訪問OPC UA服務器過程進行模擬測試研究。
OPC UA客戶端與服務器之間的通信應滿足較高的安全等級,以保證信息可靠傳遞,從而確保機車車輛能安全可靠運行。在實施過程中,需要添加證書,確保信息來自可靠服務器并且在網絡傳輸過程中未被截取或偷聽。
利用VS2015中X.509證書制作工具,在“VS2015開發人員命令提示”中輸入“makecert -r -pe -n“CN=MyServer” -ss My -sky exchange”,制作一個“CN=MyServer”的服務器證書,利用IE證書導出工具,導出證書文件“certificate.cer”,并添加給客戶端。采用socket實現客戶端與服務器通信,利用SSL實現客戶端對服務器單向認證,以字節流的方式實現信息交互。
客戶端通過Client Hello消息將其支持的(SSL,Secure Sockets Layer,安全套接層)版本、加密算法、密鑰交換算法、MAC算法等信息發送給SSL服務器;服務器后通過Server Hello消息通知客戶端;同時,服務器將攜帶自己的公鑰信息的數字證書通過Certificate消息發送給客戶端;后發送Server Hello Done消息,通知客戶端版本和加密套件協商結束,開始進行密鑰交換;客戶端驗證證書合法后,利用證書中的公鑰加密SSL客戶端隨機生成的premaster secret,通過Client Key Exchange消息發送給服務器;客戶端再發送Change Cipher Spec消息,通知服務器后續報文將以協商好的密鑰和加密套件進行加密;客戶端計算已交互握手信息的Hash值,利用協商好的密鑰和加密套件進行加密,通過Finished消息發送給服務器,服務器同樣對交互的握手信息進行Hash值計算,并與客戶端傳過來的Hash值進行比較,若二者相同,則證明密鑰和加密套件協商成功;同樣,服務器發送Change Cipher Spec消息,通知客戶端后續報文將采用協商好的密鑰和加密套件進行加密;服務器再將交互的握手信息的Hash值,利用協商好的密鑰和加密套件進行處理,并通過Finished消息傳遞給客戶端,客戶端將其與自身計算結果進行比較,若二者相同,則證明密鑰和加密套件協商成功,雙方能進行正常安全通信[5]。其消息傳遞過程如圖4所示。

圖4 只認證服務器的SSL握手過程
仿真表明,滿足OPC UA的客戶端和服務器能穩定連接并實現信息互傳,服務器端仿真結果如圖5所示。顯示結果包含有SSlStream的批量加密算法、算法強度、身份驗證代碼(MAC)算法、密鑰交換算法等信息。

圖5 server端仿真結果
客戶端能穩定連接服務器并接收從服務器傳遞來的消息,仿真結果如圖6所示。

圖6 客戶端仿真結果
信息互傳是實現城市軌道交通信號系統互聯互通的基礎,以保證在設備互換、跨線運行過程中,車輛能可靠運行。OPC UA在滿足可靠通信和身份驗證的前提下,將所需傳遞的信息以TCP方式在客戶端和服務器之間進行交互,表現良好。本次仿真客戶端和服務器均在Windows平臺上進行部署,并且在之前的測試中,OPC UA在Linux和Windows通信中同樣表現良好,證明了OPC UA在城市軌道交通信號系統互聯互通中能有較好的應用。