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