郝 建,張 浩,張軍政,伍田昊睿,盧佩玲,楊志杰
(1.中國鐵道科學研究院研究生部,北京 100081; 2.中國鐵道科學研究院集團有限公司通信信號研究所,北京 100081)
列車運行控制系統(tǒng)(簡稱為列控系統(tǒng))是列車安全、高速行駛的重要技術支撐,也是衡量國家鐵路發(fā)展水平的重要標志[1]。截至2020年底,中國高鐵運營里程增至3.79萬km,高速鐵路安全運營的背后離不開列控系統(tǒng)強有力的保障。作為一種對安全性與可靠性要求極高的控制系統(tǒng)[2],列控系統(tǒng)若存在功能設計缺陷,將會引發(fā)重大事故,導致嚴重的生命、財產(chǎn)損失。因此,在線路正式投入運營前,必須對列控系統(tǒng)進行全面測試,充分驗證其各項功能是否滿足相應的需求規(guī)范,及時發(fā)現(xiàn)并解決可能存在的問題[3]。
近年來,列控系統(tǒng)測試技術也隨著列控系統(tǒng)的發(fā)展不斷完善,建立了從子系統(tǒng)靜態(tài)測試、實驗室仿真測試、現(xiàn)場動態(tài)驗證測試、聯(lián)調(diào)聯(lián)試到試運行的完整測試、驗證流程。測試場景不斷豐富,提高了測試的全面性和測試結(jié)果的可信度[4]。
實驗室仿真測試是將現(xiàn)場動態(tài)驗證測試的大部分工作在實驗室中利用仿真測試平臺實施和完成,縮減現(xiàn)場動態(tài)測試工作量,降低對線路運輸?shù)挠绊懀瑫r提高測試場景覆蓋度,保證測試質(zhì)量。既有實驗室仿真測試平臺主要由線路仿真子系統(tǒng)、數(shù)據(jù)配置子系統(tǒng)、被測設備、接口適配子系統(tǒng)及仿真設備子系統(tǒng)等組成。測試前,根據(jù)設計院提供的線路設計圖紙與列控數(shù)據(jù)人工配置線路仿真子系統(tǒng),實現(xiàn)對真實線路環(huán)境的高度模擬;根據(jù)站場圖形等實際情況與待測設備的特殊設計邏輯編寫測試案例。測試時,由測試人員執(zhí)行各項測試操作,觀察被測設備終端顯示,結(jié)合設計數(shù)據(jù)與技術規(guī)范判定測試結(jié)果,及時發(fā)現(xiàn)問題并反饋給設計單位。測試通過后,編寫仿真測試報告,經(jīng)專家審查合格后,將設備軟件發(fā)布現(xiàn)場應用[5]。
既有實驗室仿真測試平臺不具備自動測試能力。隨著測試線路的增加,測試場景逐漸豐富,測試案例數(shù)量隨之增多,測試過程自動化成為現(xiàn)階段的迫切需求。因此,非常有必要研究列控系統(tǒng)仿真測試的自動化,以期節(jié)省測試時間、減少人力投入。
為解決目前仿真測試過程效率低下、對人工因素依賴性高的問題,滿足逐年增長的列控系統(tǒng)測試需求,將實驗室環(huán)境中的既有仿真測試平臺架構進行優(yōu)化、升級,根據(jù)功能需求將其設計為五層:平臺支撐層、真實設備層、接口適配層、仿真測試層、測試控制層,其層次結(jié)構如圖1所示。
圖1 自動化仿真測試平臺結(jié)構
平臺支撐層即仿真測試支撐系統(tǒng),為仿真測試平臺的可靠運行提供底層支持。主要包括虛擬化云平臺、物理工控機、局域網(wǎng)、GSM-R通信網(wǎng)、桌面管理系統(tǒng)。
仿真測試支撐系統(tǒng)的關鍵在于虛擬化云平臺。由于列控系統(tǒng)涉及子系統(tǒng)眾多,在搭建仿真測試平臺時,通常需要布置大量物理PC機或工控機用于運行各類仿真設備、數(shù)據(jù)庫、測試驅(qū)動管理工具以及數(shù)據(jù)配置工具,增加了測試環(huán)境的硬件復雜程度。復雜的硬件組成導致網(wǎng)絡結(jié)構復雜,在搭建測試環(huán)境時,需要相當一部分時間用于網(wǎng)絡環(huán)境的調(diào)試,降低了環(huán)境部署效率。
為簡化測試環(huán)境的硬件及網(wǎng)絡結(jié)構、提高系統(tǒng)可用性與擴展性,引入虛擬化技術整合環(huán)境中各類物理資源,轉(zhuǎn)移至虛擬化云平臺中實現(xiàn)。虛擬化云平臺由多臺物理服務器構成,利用虛擬化技術將物理服務器劃分為相互獨立的多臺虛擬計算機,在虛擬機中運行各類仿真設備、數(shù)據(jù)庫及測試工具,虛擬機之間通過服務器內(nèi)部虛擬網(wǎng)絡進行通信。虛擬化云平臺可以保證仿真測試系統(tǒng)的高可用性,當一臺服務器出現(xiàn)故障時,其上的虛擬機可在線遷移至集群內(nèi)的其他物理主機中重新運行,保障測試任務的連續(xù)性[6]。
仿真測試平臺采用半實物半仿真的架構設計,將列控實物設備接入虛擬化云平臺中時,可通過虛擬局域網(wǎng)與特定物理交換機端口的映射,將云平臺內(nèi)部虛擬機接入外部物理網(wǎng)絡,實現(xiàn)云平臺內(nèi)部應用程序與外部真實設備的數(shù)據(jù)交互。
在云平臺的基礎上,可根據(jù)測試線路的需求編寫執(zhí)行腳本,自動完成虛擬機創(chuàng)建、網(wǎng)卡配置、VLAN劃分、IP配置、用戶分配及桌面池添加等操作,實現(xiàn)仿真測試環(huán)境的自動部署。
桌面管理系統(tǒng)對各虛擬機、物理工控機的桌面及列控設備的終端操作界面等進行統(tǒng)一管理。用戶通過特定客戶端可登入管理系統(tǒng)中的任一桌面,并對該虛擬機/工控機的操作系統(tǒng)進行各項操作。與現(xiàn)有測試環(huán)境相比,應用桌面管理系統(tǒng)可以簡化操作端的硬件結(jié)構,提高操作靈活度。
真實設備層是列控系統(tǒng)實物設備的集合,包括測試環(huán)境中所需的真實設備,使實驗室仿真測試環(huán)境的布置與現(xiàn)場盡量保持一致。真實設備層主要包括無線閉塞中心(RBC)、列控中心(TCC)、計算機聯(lián)鎖(CBI)、臨時限速服務器(TSRS)、調(diào)度集中(CTC)、車載ATP等設備[7]。
RBC根據(jù)閉塞信息、進路狀態(tài)及列車位置報告為其管轄范圍內(nèi)的列車生成行車許可,通過GSM-R無線傳輸網(wǎng)絡將通信管理、行車命令、線路數(shù)據(jù)、模式轉(zhuǎn)換等信息發(fā)送給列車。TCC根據(jù)軌道區(qū)段占用狀態(tài)、進路狀態(tài)、臨時限速信息等,產(chǎn)生列車移動授權,通過軌道電路與有源應答器發(fā)送給車載ATP,保障列車在站間的安全運行。CBI完成車站進路的辦理、解鎖,控制信號機的開放與關閉;向RBC、TCC提供進路相關信息。TSRS集中管理限速,接收CTC下發(fā)的限速命令并拆分給限速相關TCC、RBC等設備執(zhí)行。將真實車載ATP接入仿真測試平臺,通過車載接口適配設備實現(xiàn)車地聯(lián)動控制[5]。
接口適配層包括車載接口仿真系統(tǒng)與地面設備接口適配系統(tǒng),通過專用硬件將真實列控設備接入仿真測試環(huán)境中,采用模塊化設計,可接入不同型號列控設備。車載接口仿真系統(tǒng)主要包括ATP接口適配、模擬駕駛臺、DMI自動操控、JRU數(shù)據(jù)分析;地面設備接口適配系統(tǒng)主要包括CBI接口適配、TCC接口適配。
仿真測試層由線路仿真系統(tǒng)和接口仿真軟件組成,為測試執(zhí)行提供仿真環(huán)境。
線路仿真系統(tǒng)模擬軌道電路、道岔、信號機、應答器等現(xiàn)場室外設備的邏輯關系,提供與TCC/CBI設備的接口,主要功能包括:
(1)接收TCC發(fā)送的有源應答器報文、軌道電路碼序和閉塞方向等信息;
(2)接收CBI發(fā)送的道岔、信號機狀態(tài)和進路狀態(tài)等信息;
(3)提供與車載ATP適配設備的接口,向車載ATP設備轉(zhuǎn)發(fā)軌道電路低頻、載頻和應答器報文,同時根據(jù)列車位置實現(xiàn)軌道電路占用出清控制并將占用狀態(tài)發(fā)送給TCC/CBI,實現(xiàn)車地聯(lián)動控制;
(4)為測試人員提供直觀的顯示操作界面,在界面上可進行軌道區(qū)段占用或應答器報文修改等故障插入操作;
(5)提供與自動測試子系統(tǒng)接口,接收自動測試子系統(tǒng)分發(fā)的測試任務,并反饋執(zhí)行結(jié)果。
測試控制層是實現(xiàn)仿真測試高效性、保證測試結(jié)論準確度的關鍵,由自動測試子系統(tǒng)、數(shù)據(jù)配置系統(tǒng)、測試案例管理系統(tǒng)三部分組成。
自動測試子系統(tǒng)主要負責實現(xiàn)測試過程的自動化與測試結(jié)果的自動分析,將測試案例轉(zhuǎn)化為測試任務,下發(fā)給各子模塊執(zhí)行,并將執(zhí)行結(jié)果回填后臺數(shù)據(jù)庫;根據(jù)測試數(shù)據(jù)與期望測試結(jié)果進行比較,得出分析結(jié)論反饋給測試案例管理系統(tǒng)。
數(shù)據(jù)配置系統(tǒng)為各仿真設備及接口適配設備提供配置數(shù)據(jù)。數(shù)據(jù)配置系統(tǒng)的輸入數(shù)據(jù)包括線路列控數(shù)據(jù)、設備接口數(shù)據(jù)、網(wǎng)絡配置數(shù)據(jù)與車站平面圖等。
測試案例管理系統(tǒng)負責測試案例數(shù)據(jù)庫導入導出、測試案例查看、測試進度控制及測試報告生成等功能。
仿真測試平臺在具備人工測試功能的基礎上,增加自動測試功能,主要包括基于測試腳本自動執(zhí)行測試案例、自動駕駛列車、測試結(jié)果自動記錄與綜合顯示、測試過程回放與分析以及測試結(jié)果的自動判定等功能,如圖2所示。
圖2 自動化仿真測試平臺的主要功能
在列控系統(tǒng)中,RBC、TCC與計算機聯(lián)鎖系統(tǒng)均有接口數(shù)據(jù)交互,其子系統(tǒng)測試中的諸多項目與聯(lián)鎖進路操作息息相關;在C2/C3列控系統(tǒng)仿真集成測試中,聯(lián)鎖進路決定了列車的運行路徑。同時,RBC子系統(tǒng)測試及仿真集成測試需要真實車載ATP配合,必然涉及DMI的操作控制。因此,聯(lián)鎖進路自動排列與取消、DMI自動操控是實現(xiàn)測試案例自動執(zhí)行的基礎,本文將對該部分關鍵技術進行重點研究。
Robot Framework是基于python語言編寫的自動化測試框架,支持關鍵字驅(qū)動,可分布式地執(zhí)行測試并具有良好的擴展性。該框架擁有豐富的生態(tài)系統(tǒng),包括多種案例庫管理與測試報告生成工具[8-9],其基本結(jié)構如圖3所示。
圖3 Robot Framework基本結(jié)構
在以關鍵字驅(qū)動的自動化測試中,測試案例對應的腳本由一個個關鍵字構成。關鍵字即對測試操作的抽象與封裝,其執(zhí)行順序代表著系統(tǒng)的業(yè)務邏輯[10]。在關鍵字驅(qū)動模式下,測試數(shù)據(jù)存儲于數(shù)據(jù)文件中,與關鍵字相獨立,可通過調(diào)用不同關鍵字的組合實現(xiàn)測試案例的自動執(zhí)行,提高腳本的復用度[11-12]。因此,設計將測試案例中的進路相關操作封裝于關鍵字中,將進路的始端與終端信號按鈕寫入數(shù)據(jù)文件。執(zhí)行測試案例時,Robot Framework根據(jù)測試案例中的測試步驟,加載相應的數(shù)據(jù)文件并調(diào)用關鍵字對應的底層代碼,完成對聯(lián)鎖進路的操作,并將執(zhí)行結(jié)果返回Robot Framework。
列控系統(tǒng)仿真測試中涉及到聯(lián)鎖進路操作的測試場景較多,對TCC的測試是眾多測試場景中具有代表性的一類。TCC是確保列車安全運行的核心設備之一,主要負責軌道電路編碼、有源應答器報文選擇及與其它系統(tǒng)進行功能交互。TCC自動化測試主要是對軌道電路碼序與有源應答器報文的測試,TCC與其它系統(tǒng)的交互直接或間接影響軌道電路碼序的排列與有源應答器報文的選擇[13-15]。
由于軌道電路碼序與有源應答器報文與聯(lián)鎖進路關聯(lián)緊密,對其進行測試時涉及到聯(lián)鎖進路的遍歷,因此實現(xiàn)聯(lián)鎖進路的自動操作是完成TCC自動測試的關鍵。本文在現(xiàn)有TCC仿真測試的基礎上,采用Robot Framework自動測試框架,以測試案例關鍵字驅(qū)動測試自動執(zhí)行。設計應用于TCC自動化測試的總體架構,如圖4所示。
圖4 TCC自動測試總體架構
TCC自動測試總體架構包括自動測試系統(tǒng)與仿真測試系統(tǒng)兩部分。對于自動測試系統(tǒng),主要分為測試案列自動生成工具、測試案例管理系統(tǒng)、自動測試框架(Robot Framework)及測試報告生成4個部分,具體功能如下。
(1)測試案例自動生成工具:根據(jù)被測車站的工程數(shù)據(jù)與測試需求,自動生成車站的測試案例及對應的測試腳本。
(2)測試案例管理系統(tǒng):針對不同線路、不同車站的測試案例進行統(tǒng)一管理,可根據(jù)實際情況對測試腳本靈活編輯與執(zhí)行。
(3)自動測試框架(Robot Framework):完成針對不同測試案例對應腳本的指令解析,根據(jù)腳本信息向仿真測試系統(tǒng)派發(fā)相應指令,并實時獲取列控中心的狀態(tài)信息。
(4)測試報告生成:根據(jù)執(zhí)行命令返回的結(jié)果與預期結(jié)果進行比較,自動生成簡單易讀且符合工程要求的測試報告,便于核對、歸檔。
在列控系統(tǒng)仿真測試中,通常以真實車載ATP設備的狀態(tài)變化與動作響應作為部分測試結(jié)果的評判依據(jù)。每完成一條測試案例即需要操作人機界面(DMI)以完成ATP的數(shù)據(jù)重置,DMI操作步驟多且流程較為固定。因此,完成DMI的自動操控是實現(xiàn)測試自動執(zhí)行的前提。
DMI自動操控的關鍵在于按鍵自動操作及圖像識別兩部分?,F(xiàn)有研究方法中,DMI按鍵操作主要基于機械裝置按壓DMI按鍵;DMI圖像識別多利用錄像設備獲取DMI圖像,通過各類識別算法對DMI圖像中的符號與文字進行特征提取,根據(jù)識別到的操作提示轉(zhuǎn)化為相應操作命令,驅(qū)動機械裝置動作[16-19]。這類方法存在諸多缺點。
(1)基于機械手的DMI自動操作裝置占用空間大,工作時與人工操作無法同時進行。
(2)機械裝置按壓角度、力度、速度、摩擦力等都需要精準調(diào)節(jié),長時間使用后由于各類損耗需對機械裝置進行校準,操作精度與可用性無法保證。
(3)利用錄像設備采集到的視頻圖像由于拍攝角度、光線亮度、刷新率不一致造成屏閃等因素的影響,獲取的原始圖像存在一定的失真,導致最終識別結(jié)果準確率不高。
由于DMI是一臺運行Linux操作系統(tǒng)的計算機,可應用VNC(Virtual Network Console)技術跨平臺獲取DMI的屏幕畫面。VNC包括客戶端與服務端,服務端利用RFB(Remote Frame Buffer)協(xié)議分享其所運行機器的屏幕到客戶端,并在客戶端進行觀察控制。VNC技術獲取到的DMI圖像是對其原始屏幕畫面的逐幀掃描,還原度高[20-21]。DMI按鍵輸入可利用特定模塊通過串口通信模擬按壓指令,與人工操作互不干擾。由此,設計DMI自動操控系統(tǒng)如圖5所示。
圖5 DMI自動操控系統(tǒng)結(jié)構
DMI圖像采集模塊作為VNC客戶端,由應用VNC服務端的DMI中獲取原始視頻圖像,將其以統(tǒng)一接口發(fā)送至DMI圖像識別模塊。
DMI圖像識別模塊采用了卷積神經(jīng)網(wǎng)絡(Convolutional Neural Network, CNN)與循環(huán)神經(jīng)網(wǎng)絡(Recurrent Neural Network, RNN)的結(jié)合算法。首先根據(jù)DMI顯示規(guī)范[22]對視頻圖像中的不同區(qū)域進行裁剪,劃分為具有特定文本或圖標信息的圖片集;再利用CNN提取圖片中的字符特征,并作為RNN的輸入以獲取字符間的語義信息;最后通過CTC(Connectionist Temporal Classification)算法將RNN的輸出序列轉(zhuǎn)錄為最終字符識別結(jié)果[23]。
DMI自動操控模塊獲取自動執(zhí)行框架Robot Framework發(fā)送的操作指令,操作指令類型包括啟機SOM、任務結(jié)束、模式轉(zhuǎn)換、等級轉(zhuǎn)換等。
DMI自動操控模塊根據(jù)操作指令,結(jié)合DMI圖像識別結(jié)果,依據(jù)該型號DMI的按鍵邏輯,分解為相應的DMI按鍵指令,控制DMI按鍵操作模塊根據(jù)按鍵指令模擬按壓DMI按鍵,完成DMI的自動操控。
借助京張高鐵東花園北站TCC仿真測試環(huán)境,驗證本文提出的自動測試方法的可行性。東花園北站接車與發(fā)車進路共16條,對接、發(fā)車進路排列組合,可生成24條測試案例。在進行區(qū)間及站內(nèi)碼序測試時,由于占用區(qū)段及鄰站狀態(tài)的不同,每條案例又細分為若干測試場景,單靠人工測試很難快速完成。
因此,在仿真測試環(huán)境中部署自動測試框架Robot Framework,將進路信息數(shù)據(jù)、車站碼序表等測試數(shù)據(jù)導入測試案例管理工具中,自動生成測試案例及案例腳本,測試案例管理工具界面如圖6所示。
圖6 測試案例管理工具界面
選擇東花園北站S至SII至XN進路,以此案例下的區(qū)間及站內(nèi)碼序測試為例,得到應用Robot Framework后的自動化測試結(jié)果,如圖7所示。
圖7 S-SII-XN進路碼序自動測試結(jié)果
S-SII-XN進路的碼序測試結(jié)果中,綠色表明TCC發(fā)碼與預期碼序一致,紅色表明不一致,并標注出實際值與預期值的對比,由測試人員進一步進行分析。
同時,測試案例管理工具生成該案例的測試報告,如圖8所示。測試報告記錄了本次自動執(zhí)行案例的整體情況,包括場景執(zhí)行的成功與失敗次數(shù)以及執(zhí)行完該案例的耗時。該進路的碼序遍歷測試僅在不到2 s內(nèi)完成,擴展到全站時不超過1 min,用時遠小于人工測試。
圖8 TCC測試案例的自動測試報告
以CTCS3-300H型ATP的DMI為例,利用VNC技術獲取其DMI圖像,如圖9所示。
圖9 DMI原始圖像獲取
編寫包含按鍵組合命令的腳本文件,用以執(zhí)行CTCS-2/3級上行運行注冊流程、CTCS-2/3級下行運行注冊流程、RBC注冊流程等。由DMI自動操控模塊導入并運行腳本文件,實現(xiàn)ATP啟機后的自動注冊,完成仿真測試前的準備工作。
設計DMI事件管理器,用于DMI狀態(tài)提示與DMI按鍵指令間的轉(zhuǎn)化。DMI事件管理器實時接收采集模塊輸出的DMI畫面信息,由圖像識別模塊提取其中的字符、圖標等,判斷出DMI當前所處狀態(tài),通知自動操控模塊根據(jù)腳本定義輸出相應按鍵指令。DMI事件管理器界面如圖10所示。
圖10 DMI事件管理器界面
執(zhí)行一條C2下行正線運行的測試案例,通過CTCS3-300H型ATP的DMI驗證自動操控方法的可行性。得到CTCS-2級下行運行ATP注冊流程如圖11所示。
圖11 CTCS-2級下行運行ATP注冊流程
執(zhí)行一條C3下行正線運行的測試案例,在ATP進行C3注冊過程中,同時需要完成RBC的注冊流程。得到CTCS-3級下行運行ATP注冊結(jié)果如圖12所示。
圖12 CTCS-3級下行運行注冊完畢
高速鐵路新增運營里程逐年上升,給列控系統(tǒng)的仿真測試任務帶來巨大挑戰(zhàn),提高測試過程自動化水平是現(xiàn)階段當務之急。以提高列控系統(tǒng)仿真測試效率為研究背景,對現(xiàn)有的列控系統(tǒng)仿真測試平臺進行了升級設計,增加了自動測試的相關模塊;研究自動測試的關鍵技術,提出基于Robot Framework的測試案例自動執(zhí)行方法,利用TCC碼序測試完成對該方法正確性的驗證;設計基于VNC技術與圖像識別的DMI自動操控方法,通過執(zhí)行C2/C3測試案例檢驗了該方法的可行性。結(jié)果表明,本文提出的測試自動化方法可以取代仿真測試中的部分人工操作,并對提高測試效率有一定貢獻。