林 鵬 徐中偉 豐文勝
(1.同濟(jì)大學(xué) 電子與信息工程學(xué)院,上海 201804;2.上海申通地鐵集團(tuán)有限公司,上海 200122)
列車速度控制是列車控制系統(tǒng)核心功能之一,通過對線路上運(yùn)行列車進(jìn)行有計(jì)劃的速度控制能夠在保障運(yùn)行效率的同時(shí),提高列車運(yùn)行的安全性。列車在運(yùn)行時(shí),鐵路線路上可能存在臨時(shí)的人為施工情況,也可能出現(xiàn)天氣突變、自然災(zāi)害等突發(fā)狀況,這就要求列控系統(tǒng)不僅能夠做到大范圍、定時(shí)的速度控制,還要能夠做到局部、即時(shí)的速度控制。
臨時(shí)限速服務(wù)器(Temporary Speed Restriction Server,TSRS) 是第三代中國列車控制系統(tǒng)(Chinese Train Contral System,CTCS-3) 系 統(tǒng)中重要的組成部分,為列車安全運(yùn)行提供了必要的限速管理控制能力。依托TSRS,列車調(diào)度員能夠更加輕松、靈活、集中地進(jìn)行列車的限速管理,做到精細(xì)及時(shí)的控制,并兼顧行車效率和安全性。
CTCS-3 系統(tǒng)由許多計(jì)算機(jī)子系統(tǒng)組成,除了TSRS,還包括調(diào)度集中系統(tǒng)(CTC)、無線閉塞中心(RBC)、列車控制中心(TCC)、計(jì)算機(jī)聯(lián)鎖(CBI)等設(shè)備。由于TSRS 在現(xiàn)場運(yùn)行中需要與多數(shù)其他子系統(tǒng)協(xié)同工作,而這些子系統(tǒng)又大多昂貴且復(fù)雜,因此TSRS 設(shè)備在調(diào)試檢測過程中,就需要一套仿真測試平臺,能模擬其他子系統(tǒng)的功能,構(gòu)造仿真的測試環(huán)境,實(shí)現(xiàn)高效簡便低成本的TSRS 設(shè)備測試。
TSRS 是一個(gè)臨時(shí)限速的統(tǒng)一管理平臺,能夠?qū)碜訡TC 的臨時(shí)限速命令(簡稱TSR 命令)進(jìn)行儲存、校驗(yàn)、刪除、拆分、設(shè)置、下發(fā)以及取消等。
在線路現(xiàn)場,TSRS 系統(tǒng)需要與其他系統(tǒng)設(shè)備相互通信,相互協(xié)作,以完成對臨時(shí)限速正常執(zhí)行。相關(guān)的系統(tǒng)設(shè)備包括相鄰的TSRS、CTC、RBC、TCC 等。通過關(guān)注各個(gè)系統(tǒng)之間邏輯通信鏈路并忽略與TSRS 無關(guān)的設(shè)備,可以抽象出系統(tǒng)結(jié)構(gòu)圖,如圖1 所示。
圖1 臨時(shí)限速相關(guān)系統(tǒng)組成Fig.1 Composition of temporary speed limit related systems
調(diào)度人員通過CTC 下發(fā)TSR 命令到TSRS 服務(wù)器,TSRS 服務(wù)器分析處理TSR 命令后,下發(fā)命令至RBC、TCC,RBC 和TCC 對 限 速 命 令 進(jìn) 行 驗(yàn)證與執(zhí)行。由于相鄰的TSRS 服務(wù)器管轄范圍有重疊,因此位于兩個(gè)TSRS 管理區(qū)域邊界處的臨時(shí)限速,需要相鄰的TSRS 協(xié)助執(zhí)行。銜接站TCC 位于既有線與客運(yùn)專線的分界處,由于既有線沒有TSRS 服務(wù)器,因此分界處的限速命令需要銜接站與TSRS 服務(wù)器配合處理。
要搭建TSRS 服務(wù)器仿真測試平臺,首先需要搭建一個(gè)TSRS 服務(wù)器能夠正常運(yùn)行的環(huán)境。根據(jù)圖1 所示的各個(gè)子系統(tǒng)間的關(guān)系,需要實(shí)現(xiàn)CTC、RBC、TCC、相鄰TSRS、銜接站TCC 這幾個(gè)設(shè)備的仿真。出于簡便低成本考慮,通過開發(fā)桌面軟件模擬這些設(shè)備,并只關(guān)注這些設(shè)備與臨時(shí)限速相關(guān)的功能。整個(gè)測試平臺需要一個(gè)測試引擎進(jìn)行統(tǒng)籌管理并提供自動(dòng)化測試功能,需要數(shù)據(jù)庫保存限速信息和測試結(jié)果信息。
CTC 具有站場信息管理、列車計(jì)劃管理、車次追蹤、危險(xiǎn)報(bào)警、臨時(shí)限速管理等功能。CTC 仿真器著重關(guān)注臨時(shí)限速相關(guān)的功能,提供了手動(dòng)設(shè)置限速命令窗口,能夠人為輸入限速命令類型、限速原因、限速值、限速時(shí)間、限速位置等限速命令必要信息,根據(jù)操作向臨時(shí)限速服務(wù)器下達(dá)臨時(shí)限速的擬定、驗(yàn)證、執(zhí)行、刪除、取消等命令。同時(shí)CTC 仿真器還提供了初始化命令下發(fā)、限速命令記錄、連接狀態(tài)顯示、報(bào)文信息查看以及線路圖顯示等功能。為了滿足自動(dòng)化測試的需求,提供通信接口以供測試引擎控制CTC 仿真器。
RBC 通過GSM-R 與車載設(shè)備進(jìn)行無線通信,具有行車許可、列車注冊以及臨時(shí)限速等功能。由于只關(guān)注TSRS 的測試,因此RBC 仿真器無需實(shí)現(xiàn)無線通信環(huán)境與車載設(shè)備仿真,只需實(shí)現(xiàn)對TSR命令的邏輯處理功能即可。考慮到一個(gè)TSRS 服務(wù)器的管轄范圍內(nèi)往往有多個(gè)RBC 站點(diǎn),采用站點(diǎn)信息與功能分離的設(shè)計(jì),RBC 仿真器通過讀取對應(yīng)站點(diǎn)的配置信息,運(yùn)行對應(yīng)的RBC 仿真站點(diǎn)。RBC 仿真器將接收到的各種限速命令信息保存在數(shù)據(jù)庫中。為了驗(yàn)證TSRS 的可靠性,RBC 仿真器引用故障注入功能,對正常的限速命令處理邏輯和設(shè)備通信邏輯進(jìn)行修改打斷,測試TSRS 設(shè)備是否要求的故障處理能力。RBC 仿真器同樣提供了供測試引擎控制的接口。
TCC 具有控制軌道電路發(fā)碼、控制區(qū)間運(yùn)行方向、控制車站信號機(jī)以及臨時(shí)限速執(zhí)行等功能。如果忽略軌道電路、LEU 以及應(yīng)答器等線路設(shè)備對TCC 的影響,只考慮TCC 與TSRS 通信的接口規(guī)范,就會發(fā)現(xiàn)對于臨時(shí)限速TCC 具有與RBC 相似的處理邏輯,因此實(shí)現(xiàn)了一個(gè)外觀和功能與RBC仿真器相似的TCC 仿真器,并實(shí)現(xiàn)其他的TCC 獨(dú)有的功能。銜接站TCC (也稱邊界轉(zhuǎn)換站TCC)位于客運(yùn)專線與既有線交界處,既有線側(cè),由于既有線沒有設(shè)置TSRS 服務(wù)器,因此銜接站TCC 需要既能夠接收客專側(cè)的TSRS 服務(wù)器的TSR 命令,又能夠處理直接來自CTC 的限速命令。除了以上特點(diǎn),銜接站TCC 與客專線TCC 具有相同的功能,因此TCC 仿真器囊括了銜接站TCC 的功能。
相鄰TSRS 服務(wù)器的管轄范圍存在重疊區(qū)域,當(dāng)需要在重疊處執(zhí)行TSR 命令時(shí),需要相鄰的TSRS 相互協(xié)作。開發(fā)相鄰TSRS 仿真器用于測試TSRS 服務(wù)器對于跨界TSR 命令的處理能力以及與相鄰的TSRS 的協(xié)作能力。TSRS 服務(wù)器對于跨界臨時(shí)限速的擬定、驗(yàn)證、執(zhí)行、取消、刪除都要通知相鄰的TSRS,并需要等待相鄰TSRS 的回復(fù)后綜合判斷當(dāng)前臨時(shí)限速的執(zhí)行狀態(tài)。相鄰TSRS 仿真器對來自被測TSRS 的命令提供了處理、顯示、存儲、故障響應(yīng)等功能,同時(shí)相鄰TSRS 仿真器還提供了簡要的TSR 命令操作界面,模擬上述TSRS服務(wù)器對跨界TSR 命令的操作,以驗(yàn)證被測TSRS對非其擬定的TSR 命令的處理能力。
測試引擎提供了系統(tǒng)初始化、仿真器管理、系統(tǒng)狀態(tài)監(jiān)控、自動(dòng)化測試以及數(shù)據(jù)記錄等功能。測試引擎能夠讀取配置信息初始化所有的仿真器。測試引擎通過運(yùn)行測試腳本運(yùn)行自動(dòng)測試,能夠按照測試腳本的命令并通過各個(gè)仿真器提供的通信接口向仿真器發(fā)送操控命令控制仿真器運(yùn)行測試,同時(shí)仿真器返回測試結(jié)果信息也能夠被記錄分析。測試引擎能夠精細(xì)地控制腳本運(yùn)行,能夠通過啟動(dòng)、暫停、停止、重啟等操作控制腳本的運(yùn)行。各個(gè)仿真器周期性的向測試引擎發(fā)送自身運(yùn)行狀態(tài)信息,以便測試引擎監(jiān)控系統(tǒng)狀態(tài)。測試引擎會按照測試腳本命令的運(yùn)行順序分析并記錄測試結(jié)果和仿真器狀態(tài)信息,生成最初的測試報(bào)告,如圖2 所示。
圖2 測試引擎運(yùn)行流程Fig.2 Test engine running process
2.2.1 仿真器的實(shí)現(xiàn)
對于所有的仿真軟件和測試引擎,使用C#語言在Windows 系統(tǒng)上進(jìn)行開發(fā),開發(fā)工具為Visual Studio。數(shù)據(jù)庫系統(tǒng)使用的是SQL Server。系統(tǒng)的配置文件使用后綴名為.ini 的文件進(jìn)行保存,并使用kernel32.dll 提供接口函數(shù)讀取配置文件。
采用模塊化的設(shè)計(jì)進(jìn)行仿真器的開發(fā),分別根據(jù)功能設(shè)計(jì)如通信模塊、TSR 處理模塊、數(shù)據(jù)庫訪問模塊,日志記錄模塊等模塊,以期望減少重復(fù)開發(fā),提高測試平臺靈活性。這些模塊以封裝的類或者編譯后的動(dòng)態(tài)鏈接庫表示。
不同的仿真器會根據(jù)自身的功能需求組合不同的模塊,例如RBC、TCC 仿真器需要所有的模塊才能正常的工作,而CTC 仿真器則不需要TSR 處理模塊。所有模塊間關(guān)系如圖3 所示。
圖3 模塊化設(shè)計(jì)Fig.3 Modular design
在真實(shí)的線路現(xiàn)場中,TCC 設(shè)備多位于封閉式網(wǎng)絡(luò)中,而其他設(shè)備可能位于開放式的網(wǎng)絡(luò)中。封閉式網(wǎng)絡(luò)存在的安全威脅多為數(shù)據(jù)幀的傳輸錯(cuò)誤問題,而開放式的網(wǎng)絡(luò)還需面對非法入侵的問題,所以針對這兩種網(wǎng)絡(luò),中國鐵路總公司制定兩種鐵路信號安全協(xié)議(Railway Signal Safety Protocal,RSSP):RSSP-I、RSSP-II。針對兩種通信協(xié)議分別開發(fā)了對應(yīng)通信模塊,并應(yīng)用于對應(yīng)的仿真器中。RSSP-I 基于UDP 通信,RSSP-II 基于TCP 通信,所以利用.NET 平臺中System.Net.Sockets 命名空間中的UdpClient、TcpClient 開發(fā)對應(yīng)的通信模塊。TSR 處理模塊是TCC、RBC 仿真器中用于處理TSR 命令的組成模塊。由于TCC、RBC 處理TSR 命令的機(jī)制如報(bào)文封裝、TSR 驗(yàn)證執(zhí)行命令處理、刷新請求命令處理、初始化命令處理等有許多相似之處,所以把這些相似之處進(jìn)行封裝,形成一個(gè)通用的模塊。對于數(shù)據(jù)庫訪問模塊,使用.NET平臺的Entity Framework6 框架結(jié)合語言集成技術(shù)(LinQ)實(shí)現(xiàn)對數(shù)據(jù)庫的訪問。Entity Framework6是微軟開發(fā)的一種對象關(guān)系映射(ORM)框架,能夠使開發(fā)人員不通過sql 訪問數(shù)據(jù)庫,提高編程的效率,增加系統(tǒng)穩(wěn)定性。日志記錄模塊提供日志記錄功能,能夠接受仿真器主體提供的日志數(shù)據(jù),并進(jìn)行格式化處理后保存到后綴名為.log 的文件中。利用System.IO 命名空間中Directory 類創(chuàng)建日志目錄,利用File 類創(chuàng)建日志文件,并寫入數(shù)據(jù)。
2.2.2 仿真測試平臺搭建
在真實(shí)現(xiàn)場中各個(gè)子系統(tǒng)之間的通信是通過安全以太網(wǎng)進(jìn)行,安全以太網(wǎng)通常包含兩個(gè)互為冗余備份的網(wǎng)絡(luò),分別稱為A 網(wǎng)和B 網(wǎng)。在系統(tǒng)運(yùn)行時(shí)其中一個(gè)網(wǎng)絡(luò)被設(shè)置為主網(wǎng),另一個(gè)網(wǎng)被設(shè)置為備網(wǎng),全部的數(shù)據(jù)通信都在主網(wǎng)完成,備網(wǎng)只發(fā)送心跳信息以確認(rèn)連接正常。當(dāng)主網(wǎng)出現(xiàn)故障無法通信的時(shí)候,系統(tǒng)會自動(dòng)切換網(wǎng)絡(luò),保證通信連接的安全。使用兩臺交換機(jī)構(gòu)造兩個(gè)小型的局域網(wǎng)模擬安全以太網(wǎng),同時(shí)另使用一臺交換機(jī)構(gòu)建一個(gè)測試網(wǎng)用于仿真器、測試引擎以及數(shù)據(jù)庫之間的通信。所有的仿真器和測試引擎都運(yùn)行在windows 系統(tǒng)的PC 總線工控機(jī)上,通過RJ45 接口網(wǎng)線連接到對應(yīng)的交換機(jī)上。PC 總線工控機(jī)具有普通PC 計(jì)算機(jī)的功能,但不同于普通PC 的是工控機(jī)具有高穩(wěn)定性、高可靠性、豐富的I/O 接口等特點(diǎn),將其應(yīng)用在測試平臺上,滿足平臺對I/O 接口需求,并保障了系統(tǒng)運(yùn)行穩(wěn)定性和測試數(shù)據(jù)安全性。測試平臺的搭建如圖4 所示。
圖4 測試平臺搭建Fig.4 Test platform construction
《客運(yùn)專線列控系統(tǒng)臨時(shí)限速技術(shù)規(guī)范》(簡稱TSRS 技術(shù)規(guī)范)是TSRS 服務(wù)器以及相關(guān)的限速設(shè)備在設(shè)計(jì)生產(chǎn)測試時(shí)要嚴(yán)格遵守的技術(shù)規(guī)范,所以測試平臺的主要工作就是測試TSRS 服務(wù)器的功能、安全性是否全部滿足TSRS 技術(shù)規(guī)范的要求。測試大綱、測試平臺全都圍繞著這些規(guī)范的要求而設(shè)計(jì)。結(jié)合測試大綱地編寫過程、測試平臺搭建過程,歸納出整個(gè)測試流程,如圖5 所示。
測試平臺正常運(yùn)行的一個(gè)前提是需要合適的線路數(shù)據(jù),所以在測試開始前需要設(shè)計(jì)測試線路數(shù)據(jù)。設(shè)計(jì)線路數(shù)據(jù)需要兼顧臨時(shí)限速的各種場景,以便全面地測試TSRS 服務(wù)器的功能。整個(gè)測試線路以被測TSRS 服務(wù)器的管轄區(qū)域?yàn)橹?,包含多個(gè)TCC區(qū)域和RBC 區(qū)域,同時(shí)也包含與相鄰的TSRS 的重疊區(qū)域以及與既有線交界區(qū)域。
測試大綱依據(jù)TSRS 技術(shù)規(guī)范和線路數(shù)據(jù)進(jìn)行測試案例的編寫。TSRS 技術(shù)規(guī)范中對TSRS 服務(wù)器、CTC、TCC、RBC、各系統(tǒng)間接口、網(wǎng)絡(luò)搭建、跨界臨時(shí)限速、邊界臨時(shí)限速等都提出了具體的要求。根據(jù)規(guī)范中每條要求編寫對應(yīng)的測試條例,并結(jié)合設(shè)計(jì)的測試線路,設(shè)計(jì)出具體的測試案例。測試腳本依據(jù)大綱中測試案例信息進(jìn)行編寫。
按照測試大綱中的要求,并按照測試線路數(shù)據(jù)中設(shè)備分布需求仿真搭建測試平臺。在系統(tǒng)初始化完成、通信建立后,測試引擎運(yùn)行測試腳本進(jìn)行自動(dòng)化測試。在自動(dòng)化測試完成后,測試者需要檢查是否因系統(tǒng)異常而無法測試的案例。對于出現(xiàn)異常的條例,可以與其它一些無法進(jìn)行自動(dòng)測試的案例一起進(jìn)行手動(dòng)測試。對于所有的測試結(jié)果進(jìn)行匯總分析校驗(yàn)后,編寫出正式的測試報(bào)告。
圖5 測試流程Fig.5 Test process
本文對列控系統(tǒng)的TSRS 服務(wù)器的測試平臺進(jìn)行研究與實(shí)現(xiàn)。主要關(guān)注與TSRS 服務(wù)器的協(xié)作系統(tǒng)以及運(yùn)行環(huán)境,并忽略一些與臨時(shí)限速無關(guān)的功能和設(shè)備,設(shè)計(jì)并實(shí)現(xiàn)了TCC、RBC、CTC、相鄰TSRS 仿真器。同時(shí)為了管理上的便利和測試的效率,設(shè)計(jì)測試引擎進(jìn)行綜合管理和自動(dòng)化測試。測試平臺依據(jù)TSRS 技術(shù)規(guī)范設(shè)計(jì)與搭建,能夠全面的測試TSRS 的功能與安全性,為TSRS 系統(tǒng)測試提供了便利、全面、高效、低成本的測試能力。