王 喆,郭艷軍
(1.中國鐵道科學研究院 通信信號研究所,北京 100081;2.北京大學 地球與空間科學學院,北京 100871)
列車控制中心(以下簡稱列控中心)是CTCS-2級列車控制系統地面設備的重要組成部分,是完成地面信息處理并向列車動態傳送信息的關鍵信號設備,是高安全性、高可靠性要求的系統。它對站內和區間軌道電路的載頻、低頻信息編碼,依據聯鎖系統當前的進路狀態、臨時限速服務器(Temporary Speed Restrictions Server,以下簡稱TSRS)下達的臨時限速命令和應答器報文定義原則對應答器用戶數據進行實時組幀和編碼,控制有源應答器向車載子系統傳送信息,保證列控中心管轄內列車的運行安全[1]。因此,列控中心的安全性測試成為驗證系統功能,確認系統是否滿足系統需求,是否具有足夠安全性防護能力的重要手段。通過建立TSRS仿真,驗證和檢測列控中心與其之間交互的安全性和正確性,是列車控制設備在投入運營前必須完成的室內仿真測試的重要組成部分。
TSRS與列控中心(TCC)之間采用以太網通信方式,使用用戶數據報協議(UDP)并采用信號安全數據網互連,確保信息傳輸的安全性和可靠性。其安全通信體系結構如圖 1所示。
按照TSRS-TCC通信協議要求,列控中心要向TSRS定期發送閉塞分區狀態信息、應答器方向信息,另外,根據TSRS的請求還需要發送當前執行的臨時限速信息以及臨時限速下達過程中反饋給TSRS的臨時限速錯誤回執;TSRS主要向列控中心發送周期時鐘信息、初始化命令和臨時限速命令等。

圖1 TSRS-TCC安全通信體系結構
基于模塊功能高內聚、低耦合的原則,TSRS仿真系統從功能角度可以劃分為3層:表示層、應用層和通信層,如圖 2所示。

圖2 軟件模塊結構圖
通信層在鐵路信號安全通信協議的基礎上負責對外通信功能,對上層應用屏蔽一切通信細節;應用層負責處理模擬TSRS的應用邏輯,包括臨時限速下達、基于分界點的臨時限速測試用例生成、故障注入等;表示層負責將收到的列控中心數據用圖形或者表格的形式表現出來。
列控中心和TSRS的邏輯處理主機均采用二乘二取二的可靠性和安全性冗余結構,其中列控中心的每系每個端口與TSRS兩系的對應端口均建立通信連接,如圖 3所示,A、B兩網一共有8個通信通道,只要有一個通道能夠保持通信連接,列控中心與TSRS之間就能夠正常收發數據。

圖3 TSRS與TCC連接示意圖
TSRS仿真系統的通信層接收應用層的數據,并負責將這些數據發送給對方列控中心的主備系,其中只有模擬TSRS的主系向對方設備的主、備系發送應用數據信息,模擬備系不向對方設備發送任何數據。
系統初始化模塊負責根據系統配置文件來初始化系統狀態。仿真系統配置文件主要包括網絡參數配置文件,文件中定義了列控中心編號、臨時限速服務器編號,列控中心主備機的IP地址和端口號、TSRS主備機IP地址和端口號、故障安全現場總線FSFB安全協議通信參數等信息。系統在啟動時會自動讀取網絡配置參數,然后將參數傳遞給通信層并對通信層和應用層的部分數據進行初始化。
本系統最重要的功能就是能夠對列控中心下達臨時限速。臨時限速手動執行模塊接收用戶輸入的臨時限速參數信息,包括臨時限速所在線路號、臨時限速速度值、起點公里標、終點公里標、長鏈信息、里程標系覆蓋標志以及公里標系標識等,按照通信協議組成應用數據包交給通信層下達給指定的列控中心設備。該模塊接收用戶的一次輸入并執行一條臨時限速命令,可以通過表示層的臨時限速信息窗口或者錯誤回執窗口獲得臨時限速執行的情況。該模塊適合對特定的臨時限速單步執行并觀察相應結果,從而達到對列控中心臨時限速處理模塊進行調試的目的。
臨時限速手動執行功能模塊一次只能執行用戶輸入的一條臨時限速信息,而臨時限速自動執行模塊負責對列控中心臨時限速功能模塊響應長時間、大批量、任意點臨時限速處理能力進行壓力和全覆蓋測試。因此,臨時限速自動執行模塊需要用戶提供整個測試區的起點、終點公里標,單條臨時限速的長度、同時執行的臨時限速個數(按照協議一般不超過3條)、臨時限速距離間隔以及下達限速命令的時間間隔信息,圖 4為自動下達臨時限速示意圖。

圖4 自動下達臨時限速示意圖
臨時限速自動執行模塊會根據用戶提供的測試參數自動下達、取消臨時限速,每條臨時限速的執行情況都會被存儲到結果數據庫中,以方便在結束測試后測試人員對結果進行核對并及時發現列控中心系統錯誤。當臨時限速距離間隔和臨時限速區長度都設置為1 m時,該模塊功能能夠遍歷所要測試區域的每1 m長度,從而做到對整個測試區的完全覆蓋測試。
4.4.1 影響應答器報文的臨時限速分界點
人們從長期的測試工作經驗得知,大量的錯誤是發生在輸入或輸出范圍的邊界上,而不是在輸入范圍的內部,因此針對各種邊界情況設計測試用例,可以查出更多的錯誤。臨時限速自動執行模塊雖然能夠對列控中心管轄范圍內的數據配置起到全覆蓋測試的作用,但是缺乏針對應答器報文選擇影響較大的臨時限速關鍵分界點的測試功能。以某標準車站下行線為例,當排列了往下行線正向的側線發車進路后,若臨時限速分別下達在進路上、正向L1(85 km/h制動到45 km/h的距離)范圍內、正向L2(線路當前方向最高允許速度制動到45 km/h的距離)范圍內或者管轄范圍以外時,對于側線發出應答器中報文的臨時限速有效長度、臨時限速速度值以及應答器到臨時限速的距離等字段取值有非常大的影響。對于CTCS-2級列控中心,按照報文定義規則,在排定指定進路的情況下,綜合考慮線路正向反向、正線側線等因素,對列控中心報文生成影響較大的臨時限速分界點如圖 5所示。
基于上述分界點,可以在分界點前后以及跨相應分界點處分別下達不同的臨時限速,然后核對相應應答器的報文來驗證列控中心對上述關鍵區域報文生成功能的正確性。
4.4.2 參數化分界點的測試用例生成方法
基于參數化分界點的測試用例生成方法,支持測試人員自定義測試用例模板,并且能結合用例模板和本站分界點數據自動生成當前車站的測試用例。
本方法將用例模板和分界點數據分離,用例模板中以參數的形式表示分界點數據;而分界點數據表中包含了當前測試車站的相關分界點名稱(如表 1中定義)以及對應的公里標數值。

表 1 分界點參數定義

圖5 臨時限速特殊點示意圖
自定義測試用例模板是基于XML編寫的腳本,腳本示例如下:
腳本中可以定義測試用例所在的分類并且最大支持3級分類,分別用標簽
為了能夠生成更加靈活的測試用例,還可以在

表 2 公里標運算符定義
此處的“1”還可以替換為任意的常數值,內方和外方指的是以當前車站站內區域為中心,遠離該區域定義為外方,接近該區域定義為內方。例如,“start="WayinSignal+n”表示臨時限速起點位于進站口信號機外方任意(隨機數)距離;“end="FwdL1-10”表示臨時限速終點位于線路正向L1分界點內方10 m處。
系統將自定義測試用例模板腳本和數據(分界點公里標)腳本做關聯后,生成同具體車站相關的測試用例集合并以列表的形式顯示在系統中供用戶測試。通過該方法可以使得測試用例模板適用于絕大多數車站,對每個車站進行測試之前只需要填寫分界點公里標表格即可,將測試人員的工作量降到了最小并提高了正確性。另外,如果需要添加新的測試用例類型,只需要更改模板重新生成數據就可以更新所有待測試車站的測試用例,極大地提高了工作效率。
故障注入模塊用于模擬通信過程中各種可能出現的故障,以驗證列控中心系統在應對通信故障的情況下對臨時限速的處理機制。
故障注入的類型包括:通信中斷模擬(針對系統的8個通信信道,可以指定中斷其中任意一條或多條信道)、TSRS倒機模擬、通信周期異常、中斷時鐘包發送、通信包長度異常等故障類型。這些故障類型可以逐個模擬也可以并發出現,從全面的角度來驗證列控中心的安全性和可靠性。
該模塊是整個系統與測試人員之間交互的窗口,負責將通信層和應用層傳過來的各種協議數據以良好的用戶界面表示出來,方便測試人員及時觀察各種數據的變化;另外,還要提供信息采集界面供用戶輸入所要下達的臨時限速信息和自動執行臨時限速的參數信息等,并將這些信息交給應用邏輯層處理并發送執行。
通信狀態顯示模塊能夠顯示本地TSRS的A機和B機的IP地址綁定狀態、本地主備用信息,以及被測列控中心的A機、B機主備用狀態和通信通道狀態等。狀態結果用狀態圖的形式表示,綠色矩形表示主控機,黃色矩形表示備用機,紅色矩形表示離線或通信中斷狀態;另外,綠色線條表示通信正常,紅色線條表示通信中斷,系統界面如圖 6所示。該模塊提供了最直觀的方式,可以實時觀察通信狀態從而方便測試的進行。
本系統在Visual Studio 2008環境下采用C++語言開發,自動下達臨時限速的結果,采用Access數據庫方式存儲。
該系統已經應用在龍巖-漳州CTCS-2級高速鐵路列控中心調試和驗證過程中,提高了測試效率,降低了測試成本。下一步工作將重點建立應答器報文預期結果數據庫,并完善報文自動核對功能,使得系統更加智能化,為以后的通用性仿真測試大平臺的研究奠定基礎。

圖6 系統界面圖
[1] 石 坤,穆建成,葉 峰. 基于數據驅動的列控中心報
文自動化測試研究[J].鐵路計算機應用,2011,20(8).[2] 吳芳美.鐵路安全軟件測試評估[M].北京:中國鐵道出
版社,2001.
[3] 劉長波.車站列控中心應答器報文測試的探討[J].鐵路通信信號工程技術,2007,4(1):6-8.
[4] 朱 菊,王志堅,楊 雪.基于數據驅動的軟件自動化
測試框架[J].計算機技術與發展,2006,16(5):68-70.