付紫彪
隨著越來越多高鐵線路的規(guī)劃建設(shè)和投入使用,與之配套的動車段(所)數(shù)量也在不斷攀升。為提高作業(yè)效率、保證作業(yè)安全,全路已近40個(gè)動車段(所)運(yùn)用了控制集中系統(tǒng)(Control Centralized System, CCS)。CCS 具備作業(yè)計(jì)劃管理、調(diào)度命令管理、動車組位置追蹤、作業(yè)過程控制等功能,可實(shí)現(xiàn)動車段(所)內(nèi)的調(diào)度指揮和行車作業(yè)自動化,有效保障了站場內(nèi)動車組的高效檢修、安全運(yùn)營和合理調(diào)度[1-3]。
動車段(所)站場一般規(guī)模龐大、信號設(shè)備多,僅站場存車線就普遍高達(dá)二三十條。為了充分實(shí)現(xiàn)CCS 功能,需要配置大量的接口數(shù)據(jù),如站場表示信息等。作為CCS 安全可靠運(yùn)行的保障,其數(shù)據(jù)測試質(zhì)量直接影響系統(tǒng)的運(yùn)行效果及現(xiàn)場作業(yè)安全。
當(dāng)前,CCS 接口數(shù)據(jù)測試完全依賴于外部廠商提供的仿真環(huán)境。在實(shí)際測試中,經(jīng)常遇到仿真環(huán)境不能及時(shí)搭建、不易維護(hù),以及無法提供部分?jǐn)?shù)據(jù)驗(yàn)證等問題,造成數(shù)據(jù)測試不及時(shí)、不全面,并且主要通過人工進(jìn)行數(shù)據(jù)校驗(yàn),容易產(chǎn)生漏測或誤測風(fēng)險(xiǎn)。遇到工期緊張時(shí),測試人員壓力大,若數(shù)據(jù)錯(cuò)誤又需修改配置重新提交測試,則耗時(shí)長,影響工期節(jié)點(diǎn)[4]。
因此,本文從實(shí)現(xiàn)接口數(shù)據(jù)自動測試,減少對仿真環(huán)境依賴的角度出發(fā),開展CCS 關(guān)鍵接口數(shù)據(jù)自動測試平臺(簡稱“測試平臺”)的研究,分別從測試平臺構(gòu)成、軟件設(shè)計(jì)和平臺應(yīng)用等方面進(jìn)行重點(diǎn)介紹。
測試平臺由內(nèi)部CCS 和外部測試系統(tǒng)兩部分組成,平臺架構(gòu)見圖1。一方面模擬計(jì)算機(jī)聯(lián)鎖和CTC,通過網(wǎng)線與CCS連接,采用既有通信協(xié)議,實(shí)現(xiàn)信息自動發(fā)送;另一方面模擬CCS 自動發(fā)送內(nèi)部信息。測試平臺提供界面顯示測試進(jìn)度和測試結(jié)果,通過比對內(nèi)外部信息數(shù)據(jù)的一致性,判斷CCS接口配置的準(zhǔn)確性[5-6]。
圖1 測試平臺架構(gòu)
1)CCS 側(cè)采用單機(jī)單網(wǎng)的方式,組成一套內(nèi)部交互的獨(dú)立局域網(wǎng),按照與現(xiàn)場相同的應(yīng)用軟件和配置進(jìn)行部署。除設(shè)置一套接口服務(wù)器外,還配備其他與接口相關(guān)的值班員終端、信號員終端和應(yīng)用服務(wù)器。其中,值班員終端顯示采集表示和車次窗信息;信號員終端顯示本站聯(lián)鎖碼位、采集表示和車次窗信息,并執(zhí)行控制命令和車次窗相關(guān)操作;應(yīng)用服務(wù)器進(jìn)行車次窗邏輯處理。
2)外部測試系統(tǒng)設(shè)置一套接口仿真測試終端,開發(fā)關(guān)鍵接口測試軟件(簡稱“測試軟件”)。采用與實(shí)際相同的網(wǎng)絡(luò)接口和CCS 實(shí)現(xiàn)外部格式信息的交互。此外,增加一路網(wǎng)絡(luò)接口與CCS 局域網(wǎng)連接(圖1 中紅線),實(shí)現(xiàn)測試平臺內(nèi)部格式信息的交互。外部測試系統(tǒng)獲取所有信息和數(shù)據(jù),為比對內(nèi)外部數(shù)據(jù)信息奠定基礎(chǔ)。
在終端上部署測試軟件,模擬不同設(shè)備廠商、外部系統(tǒng)(“實(shí)際系統(tǒng)”)的交互內(nèi)容、數(shù)據(jù)格式及交互特點(diǎn),具備雙方規(guī)定的傳輸控制協(xié)議(Transmission Control Protocol,TCP)通信要求。根據(jù)接口標(biāo)準(zhǔn)規(guī)范及CCS 交互協(xié)議要求,借助內(nèi)網(wǎng)實(shí)現(xiàn)CCS 的用戶數(shù)據(jù)報(bào)協(xié)議(User Datagram Protocol, UDP)通信。通過自動加載內(nèi)外部數(shù)據(jù),觸發(fā)執(zhí)行接口數(shù)據(jù)配置測試,即可無需借助外部廠商的仿真環(huán)境,達(dá)到對CCS 關(guān)鍵接口數(shù)據(jù)的自動化遍歷測試的目的[7-8]。
CCS與CTC接口進(jìn)行信息交互主要依據(jù)《列車調(diào)度指揮系統(tǒng)(TDCS)數(shù)據(jù)通信規(guī)程》、各接口廠商的補(bǔ)充協(xié)議和規(guī)定數(shù)據(jù)格式等[9]。由于CCS早期與TDCS接口,后續(xù)站場雖均升級為CTC設(shè)備,但與各廠商的系統(tǒng)交互仍然繼續(xù)沿用此協(xié)議。
CCS 借助CTC 實(shí)現(xiàn)與計(jì)算機(jī)聯(lián)鎖的信息交互,交互協(xié)議依據(jù)《調(diào)度集中車站自律機(jī)與計(jì)算機(jī)聯(lián)鎖接口通信協(xié)議(V1.1)》,數(shù)據(jù)格式遵照不同廠商的具體規(guī)定要求[10-11]。
對接發(fā)車、調(diào)車進(jìn)路的控制是整個(gè)CCS 的關(guān)鍵,有4 類接口信息在其中發(fā)揮了重要作用,分別為:與CTC 交互的車次窗、采集表示信息;與計(jì)算機(jī)聯(lián)鎖交互的站場碼位、控制命令信息。為實(shí)現(xiàn)這些信息的有效交互,CCS 需要實(shí)際系統(tǒng)廠商提供接口數(shù)據(jù)進(jìn)行內(nèi)部編制,具體數(shù)據(jù)如下。
1)碼位數(shù)據(jù):本站聯(lián)鎖碼位信息中的碼序映射數(shù)據(jù)。
2)按鈕數(shù)據(jù):控制命令信息中的按鈕映射數(shù)據(jù)。
3)車次窗數(shù)據(jù):本站、相鄰車站CTC 車次窗信息中,區(qū)間和股道的車次窗編碼映射數(shù)據(jù)。
4)表示數(shù)據(jù):本站、相鄰車站CTC 表示信息中的設(shè)備類型及碼序映射數(shù)據(jù)。
在各工程項(xiàng)目中,上述這些數(shù)據(jù)編制及待測數(shù)量高達(dá)幾千條,工作量極其繁重。
CCS 通過搭建局域網(wǎng)的方式實(shí)現(xiàn)內(nèi)部信息互聯(lián)互通,通過接口服務(wù)器與實(shí)際系統(tǒng)進(jìn)行互聯(lián)。由CCS 接口及其他服務(wù)器、終端共同進(jìn)行內(nèi)外部協(xié)議和數(shù)據(jù)轉(zhuǎn)換,實(shí)現(xiàn)信息隔離。局域網(wǎng)中包含內(nèi)部交互信息,實(shí)際系統(tǒng)包含外部信息及數(shù)據(jù)內(nèi)容。
對于從外部測試系統(tǒng)側(cè)主動發(fā)送的信息,如本站聯(lián)鎖碼位信息等,外部測試系統(tǒng)自動發(fā)送外部格式及數(shù)據(jù)信息,并從局域網(wǎng)中獲取經(jīng)過CCS 轉(zhuǎn)換后的數(shù)據(jù),將內(nèi)外部信息進(jìn)行比對,判斷接口數(shù)據(jù)配置的準(zhǔn)確性;對于在CCS 側(cè)操作發(fā)送的信息,如本站車次窗信息等,則由外部測試系統(tǒng)模擬CCS 行為,加載內(nèi)部車次窗數(shù)據(jù)后,自動按照內(nèi)部格式,借助局域網(wǎng)轉(zhuǎn)譯后再返回外部測試系統(tǒng),將收到的內(nèi)外部信息進(jìn)行比對判斷,反饋具體配置項(xiàng)的測試結(jié)果,從而達(dá)到自動測試的目的。測試平臺測試邏輯見圖2。
圖2 測試平臺測試邏輯
軟件架構(gòu)分為數(shù)據(jù)訪問層、業(yè)務(wù)邏輯層和界面層3層,見圖3。
圖3 軟件架構(gòu)示意
1)數(shù)據(jù)訪問層,主要包括磁盤文件讀寫和通信數(shù)據(jù)收發(fā),如接口文件讀取、日志寫入、內(nèi)外部通信數(shù)據(jù)的接收和發(fā)送等。
2)業(yè)務(wù)邏輯層,作為測試軟件的核心,該層包括計(jì)算機(jī)聯(lián)鎖業(yè)務(wù)、CTC 業(yè)務(wù)、CCS 業(yè)務(wù)及日志管理等,如模擬聯(lián)鎖、CTC、CCS 行為,通過信息自動發(fā)送和比對,實(shí)現(xiàn)數(shù)據(jù)自動測試的要求。
3)界面層,包括操作指令下發(fā),以及通信鏈接狀態(tài)、測試實(shí)時(shí)進(jìn)度和測試結(jié)果的展示等。
按照各層實(shí)現(xiàn)的功能不同,測試軟件劃分為7 個(gè)模塊。依據(jù)實(shí)際外部接口情況,各模塊能夠獨(dú)立實(shí)現(xiàn)特定功能和需求。
1)計(jì)算機(jī)聯(lián)鎖仿真模塊,是實(shí)現(xiàn)自動測試計(jì)算機(jī)聯(lián)鎖相關(guān)接口數(shù)據(jù)的核心。通過加載聯(lián)鎖廠商提供的碼位表、按鈕表文件等,模擬接口交互要求,自動比對內(nèi)外部信息。
2)CTC 仿真模塊,負(fù)責(zé)自動測試CTC 相關(guān)接口數(shù)據(jù)。通過加載CTC 廠商提供的設(shè)備編碼、車次窗等文件,模擬接口交互要求,自動比對內(nèi)外部信息。
3)人機(jī)交互模塊實(shí)現(xiàn)信息展示和指令下發(fā)。
4)CCS 仿真模塊是自動測試實(shí)際系統(tǒng)接口數(shù)據(jù)的輔助模塊,通過加載內(nèi)部數(shù)據(jù),按照內(nèi)部協(xié)議提供接口有關(guān)信息,將CCS 處理轉(zhuǎn)為外部協(xié)議后,輔助實(shí)現(xiàn)需由內(nèi)部下發(fā)的部分接口數(shù)據(jù)的自動測試。
5)通信模塊提供TCP 和UDP 兩種通信方式,滿足各類系統(tǒng)通信要求。
6)配置文件管理模塊在程序中最先開啟運(yùn)行,是程序全局變量數(shù)據(jù)的來源。
7)日志管理模塊實(shí)現(xiàn)測試軟件對測試進(jìn)度和測試結(jié)果的記錄和運(yùn)行中日志的管理。
測試平臺需要實(shí)現(xiàn)2 個(gè)方向的數(shù)據(jù)流接口信息自動測試:①外部測試系統(tǒng)側(cè)發(fā)送的信息流,如聯(lián)鎖碼位、站透采集表示和車次窗信息等;②CCS 側(cè)發(fā)送的信息流,如本站的車次窗和控制命令信息。每個(gè)數(shù)據(jù)流的自動測試過程基本一致,下面以碼位數(shù)據(jù)測試為例介紹測試流程,見圖4。
圖4 碼位數(shù)據(jù)自動測試流程
根據(jù)聯(lián)鎖廠家提供的碼位表內(nèi)容,每次更改一個(gè)碼位值,按照聯(lián)鎖協(xié)議組成一包完整的站場表示信息;調(diào)用通信模塊依次發(fā)給CCS,監(jiān)測2 s 內(nèi)(參數(shù)可配置)是否能收到CCS 碼位信息,且對應(yīng)的設(shè)備內(nèi)外部碼位值是否一致。在界面上顯示每個(gè)碼位數(shù)據(jù)的測試結(jié)果,并記錄日志。如此循環(huán),直至所有碼位數(shù)據(jù)測試完畢。
測試軟件采用C#編譯環(huán)境作為開發(fā)平臺,基于.Net2.0,采用面向?qū)ο蠓治龇椒ê湍K化程序設(shè)計(jì)相結(jié)合的方式進(jìn)行軟件開發(fā)。將測試軟件部署在接口仿真測試終端上,軟件界面見圖5。以列表的形式展示被測數(shù)據(jù)和測試結(jié)果,并進(jìn)行日志記錄,將測試未通過的配置項(xiàng)清晰地記錄在問題反饋列表中,方便人工查看及后續(xù)的數(shù)據(jù)復(fù)核。
圖5 測試軟件界面
目前,測試平臺采用已開通的動車段(所)接口數(shù)據(jù)進(jìn)行了測試驗(yàn)證。以當(dāng)前正在工程化實(shí)施過程中的某動車所為實(shí)例,基于以往人工測試經(jīng)驗(yàn),需要2 名人員花費(fèi)2~3 個(gè)工作日(8 h/工作日)才能完成關(guān)鍵接口數(shù)據(jù)的測試工作,采用測試平臺后可在任意時(shí)間進(jìn)行測試,測試完畢后由1 名人員用1 個(gè)工作日左右完成數(shù)據(jù)的復(fù)核和復(fù)測,整體測試效率提升3~5倍。同時(shí),幫助測試人員發(fā)現(xiàn)了2處人工數(shù)據(jù)配置錯(cuò)誤和漏配問題,測試效率明顯提升,試用效果良好。
通過研發(fā)CCS 系統(tǒng)關(guān)鍵接口數(shù)據(jù)自動測試平臺,實(shí)現(xiàn)機(jī)器代替人工完成大量機(jī)械性、重復(fù)性的數(shù)據(jù)遍歷測試目標(biāo),輔以人工校核測試結(jié)果,可為測試人員找出接口配置問題,快速定位錯(cuò)誤配置項(xiàng),有效減少因接口數(shù)據(jù)問題造成一系列不必要的重復(fù)流程;減輕測試人員的工作壓力,減少人為原因的疏漏,壓縮了CCS 軟件出廠時(shí)間,保證關(guān)鍵接口數(shù)據(jù)的準(zhǔn)確性,顯著加快工程實(shí)施進(jìn)度,實(shí)現(xiàn)降本增效[12]。