程 遠 陳 亮 馬 元
高速鐵路信號列控系統動態(tài)檢測是高速鐵路聯調、聯試與動態(tài)檢測過程中非常重要的環(huán)節(jié)。主要原理是從用戶角度出發(fā),基于黑盒測試理論,利用安裝有ATP的試驗動車,依據規(guī)范制定測試序列,再根據每一個測試序列中的場景進行測試,通過在實際運行的狀態(tài)下,觀察系統的輸入和輸出,對高速鐵路列控系統的功能正確性以及系統間的匹配性進行測試及判斷。
在生成列控系統動態(tài)檢測序列的進路過程中,根據設計院提供的進路信息表,應用Excel VBA開發(fā)工具,實現了測試序列進路的自動生成,并用實例驗證,能夠滿足測試序列的有效性和實時性。
在高速鐵路列控系統動態(tài)檢測過程中,每一個待測車站的進路要求全部覆蓋,區(qū)間的列控系統由于相對簡單,僅包括上、下行線的正反向,因此主要的編制工作集中在每一個待測車站的序列進路。
設計院會提供每一個車站的進路信息表,編制測試序列進路時,根據進路信息表,將該車站全部待測進路查找出來,并編制為總體序列表。
傳統的方法是人工查找。第一步,指定某一進站信號機作為始端信號機,通過查詢車站進路信息表,找到該進站信號機對應的所有接車進路,以及所對應的終端信號機;第二步,把找到的接車進路終端信號機作為始端信號機,將與之對應的反向進站信號機作為終端信號機,在進路信息表中查詢所對應的發(fā)車進路;第三步,將前2步的接發(fā)車進路串聯起來,如果在查找到的進路中,接車進路的終端信號機與發(fā)車進路的始端信號機相同,那么一般情況下就可以排出通過進路以及到開進路,否則只有接車進路。
以哈大高鐵鲅魚圈東站的進路信息表為例,進路信息表的始端信號機與終端信號機如表1所示。
通過表中描述可以看出,雖然上述過程并不復雜,但是一條高鐵或客專通常會包含幾個甚至十幾個車站,并且每個站場的大小不同,車站的進路信息數據表也會不同。由此可見,傳統的人工方法在查找進路時,會因為數據量大而容易出錯,很難保證車站進路序列的完整性。并且隨著數據量的增加,傳統查找編制方法的時間會成倍地增加,很難滿足實際工作中要求的快速性。
Excel具有強大的數據處理能力,由于設計院提供的進路信息數據表同樣為Excel表格,其數據的輸入和輸出都在同一個環(huán)境下完成,且Excel可以直接引用單元格,因此大大增加了適用性。利用Excel VBA開發(fā)工具可以開發(fā)出具有針對性、完善功能性的程序,且相對傳統軟件,開發(fā)周期短的特點尤為突出。
由于各個設計院提供的進路信息數據表格式并不一致,因此首先需要對數據進行處理。
一部分是可以自動處理的數據,如進路信息數據表中,有很多單元格會有空格,而這些空格會導致在后續(xù)VBA開發(fā)程序運行中干擾程序的判斷,因此需要將這些空格刪除。
還有一部分需要人工確認的數據,如變更進路在備注欄中會寫有“變更”,但是有些進路信息數據表沒有寫明,就需要人工確認并加入,主要是和設計院進行確認。這樣在計劃制作過程中,可以利用程序自動識別出變更進路。
程序運行前,在Excel表指定的位置填入需要查找車站的進站信號機與反向進站信號機名稱,并寫明方向,如下行正向、下行反向、上行正向、上行反向等。
通過Excel VBA開發(fā)工具,開發(fā)制作了6個模塊,分別是:選擇車站、查找序列、合并單元格、清空車站、對應屏幕清空以及一鍵清空等。
1.選擇車站模塊。通過該模塊可以在Windows環(huán)境下查找車站,并可以選擇一個或多個車站進路信息數據表,直接導入到Excel表中,成為一個新頁,并將名稱改為進路信息表提供的車站名。
2.查找序列模塊。通過事先指定的始、終端信號機,VBA程序可以查找出所有的序列進路,并排列輸出在Excel表中。一個序列用4個單元格表示,每一個序列占一行,第1個單元為始端信號機,第2個單元為股道號,第3個單元格為接車方式 (通過、到開、接車、發(fā)車),第4個單元為終端信號機。因為正線的測試序列較為特殊,輸出時可用顏色標出區(qū)分出來。
3.合并單元格模塊。主要將4個單元格的序列轉換為1個單元格描述,同時轉換為運輸語言。通過這樣的轉換,編制出來的序列可以用于和路局運輸部門進行直接溝通和交流。
4.清空車站模塊。用于將已經導入的車站一起刪除,節(jié)省手動刪除的時間。
5.對應清屏模塊 (查找序列、合并單元格對應清屏)。主要用于將原有已經輸出的內容刪除,避免下次編制序列進路時,有多余或者重復的序列。
6.一鍵清空模塊。對應清屏和清空車站2個模塊的集合,可以一次性將車站和已經查找出來的序列刪除。
以編制哈大高鐵4股道的鲅魚圈東站和12股道的長春西站測試序列為例,分別采用人工傳統方法和利用自動生成測試序列程序進行查找,通過查找時間來驗證自動生成測試序列程序的有效性以及實時性。
1.采用人工查找方法查找鲅魚圈東站的測試序列。先從鲅魚圈東站的進路信息表中,分別找到X/SN、XN/S、SN/X以及S/XN作為始、終端信號機的所有接發(fā)車進路,再將這些進路進行排列組合,從而找出測試序列并且排列出來。共找到24個測試序列,所需要的時間為10 min左右。
2.采用VBA程序查找鲅魚圈東站的測試序列。打開 Excel表格,輸入 X/SN、XN/S、SN/X以及S/XN 4對信號機,導入哈大高鐵鲅魚圈站的進路信息表,查找序列,測試序列結果如表2所示。
表2 采用VBA程序查找結果
程序運行采用配置為Intel酷睿i5 2.3 GHz CPU、2GB內存的筆記本電腦,運行1000次,取運行時間的平均值為0.1094 s。查找出來的測試序列與人工查找出的序列進行核對,完整、無遺漏、無冗余。從打開Excel表格開始到利用VBA程序查找出所有序列,所用的時間僅為2 min左右。
長春西站共有12條股道,通過人工查找的方法,將X/SF、XF/S、SF/X以及S/XF分別作為始終端信號機,按照和查找鲅魚圈東站同樣的方法,一共找到了128條測試序列,但需要的時間大概為1 h;而利用VBA程序進行查找,查找的結果與人工查找的結果一致,所用的時間僅為2 min左右。
由此,進一步驗證了VBA程序能夠很好地滿足查找進路信息表的有效性以及實時性。
自動生成測試序列的查找程序研究,在實際的高速鐵路列控系統測試工作中,不僅大大提高了測試的效率,為測試人員帶來方便,而且減小了人工查找出現錯誤的可能性。目前,編制序列的VBA程序可以很好地完成車站測試序列的查找功能。此外,還需要進一步實現將實際試驗過程中,計劃安排的測試序列與VBA程序查找出的序列進行核對,保證試驗過程中的序列具有完整性、不遺漏。
[1] 禹志陽,趙陽.基于黑盒測試技術的CTCS-3級列控系統聯調聯試研究[J].鐵道通信信號,2010(5):1-5.
[2] 中華人民共和國鐵道部.中國列車運行控制系統CTCS技術規(guī)范總則[S].2004.
[3] 王艷紅.計算機聯鎖軟件模擬自動測試系統的研究與實現[D].鐵道科學研究院,2004.
[4] 范勇,蘭景英,李繪卓.軟件測試技術[M].西安:西安電子科技大學出版社,2009.
[5] 季學勝,李開成,張勇,劉大為.CTCS-3級列控系統測試案例生成方法的研究[J].鐵道通信信號,2009(10):1-3