洪玲嬌,李衛娟
(卡斯柯信號有限公司,上海 200071)
計算機聯鎖系統(CBI)是保證行車安全和效率的重要基礎控制系統,它與列控中心(TCC)通過安全通信接口。CBI向TCC發送進路信息、信號設備狀態信息等,TCC根據接收到的信息進行編碼和發送應答器報文。由于兩個系統的接口信息涉及行車安全,因此確保接口信息的正確性非常重要。測試是確保接口信息正確的有效手段,所以,執行CBI-TCC接口測試是聯鎖測試中的重要部分。
一般而言,聯鎖邏輯功能測試通過后,才開始執行CBI-TCC接口測試。在聯鎖邏輯功能測試階段,已確認聯鎖軟件中的進路跟輸入的聯鎖表完全一致,信號顯示及信號顯示關系等聯鎖邏輯功能是正確的。
測試CBI-TCC接口時,需搭建如圖1所示的測試環境:聯鎖機(單系)、MMI操作機、CITB仿真機、TCC模擬器。其中,聯鎖機中封裝了被測站的聯鎖軟件,主要完成聯鎖邏輯運算及接口通信功能;MMI操作機主要完成操作命令的下發、站場及其他信息的界面顯示;CITB仿真機主要完成繼電接口的采集驅動信息的模擬;TCC模擬器主要完成與聯鎖機的通信并收發接口信息功能。

圖1 接口測試環境Fig.1 Interface test environment
CBI-TCC接口測試需要測試以下內容:CBI發送的信息,有區間方向控制命令、進路信息、進站信號機紅燈斷絲、信號機調車狀態、預留信息(如有);CBI接收的信息,有區間方向信息、區間閉塞分區狀態信息、信號限速信息、區間信號機紅燈斷絲信息、異物侵限災害信息、無配線站區間方向信息/軌道狀態信息/區間信號機斷絲信息、預留信息(如有)。
測試CBI發送的信息,需要先在MMI操作機上辦理相應的操作(如辦理進路使信號開放、按下相關按鈕等),然后在TCC模擬器上確認是否接收到CBI發送的信息、信息狀態是否正確。測試CBI接收的信息,則先在TCC模擬器上設置相應信息的狀態(如將某一區間閉塞分區設置為占用狀態),然后在MMI操作機界面上確認CBI是否接收到信息、信息狀態是否正確(對應的區間閉塞分區應顯示紅光帶)。
測試時,CBI-TCC接口信息可以分為兩類:進路信息和開關量信息。除CBI發送的進路信息歸為第一類外,其余信息均歸為第二類。
測試進路信息時,聯鎖表中的全部進路(包括無需發送進路信息給TCC的)均需逐條測試。在MMI操作機上辦理了進路、信號開放后,在TCC模擬器上需確認下述內容。
1)核對進路編號,包括正常列車進路編號和引導列車進路編號。TCC模擬器上顯示的進路編號應與接口表中的一致,對于不向TCC發送信息的進路,在TCC模擬器上應沒有任何進路信息。
2)測試信號機點燈、滅燈狀態。對于常態滅燈的信號機,需要測試點燈和滅燈兩種情況。
3)測試信號顯示。測試對應信號機所有可以開放的信號顯示,包括紅、雙黃、黃閃黃、黃、綠黃、綠、紅白等;TCC模擬器上給出的信號顯示應與MMI操作機界面上開放的信號顯示一致。對于常態滅燈的信號機,需要分別測試點燈和滅燈兩種情況下的信號顯示。
4)測試進路區段的鎖閉狀態。確認TCC模擬器上顯示的進路區段均為“鎖閉”,核對區段個數正確;模擬列車順序占用/出清、通過進路,確認TCC模擬器上進路區段的狀態順序變為“解鎖”。
測試開關量信息時,需要確認0/1兩種狀態是否都正確;此外,測試時還需要確認對應接口數據塊中的信息排序是否與接口表一致。測試CBI發送的信息,以信號機調車狀態為例:在MMI操作機上辦理了相應調車信號機的進路、調車信號開放,則在TCC模擬器上對應調車信號機狀態為“調車信號開放”;取消進路、調車信號關閉,TCC模擬器上對應調車信號機狀態變為“調車信號未開放”。測試CBI接收的信息,以區間閉塞分區狀態信息為例:在TCC模擬器上將對應閉塞分區狀態設置為“占用”,MMI操作機上對應的閉塞分區顯示紅色光帶;在TCC模擬器上將對應閉塞分區狀態設置為“空閑”,MMI操作機上對應的閉塞分區顯示淺藍色光帶。
因為需要在MMI操作機、CITB仿真機及TCC接口模擬器上執行操作或監視界面顯示的變化,CBI-TCC接口測試一般需要兩個測試人員一起配合完成。此外,接口測試環境的要求也會給項目CBI-TCC接口測試帶來一定的限制。所以,項目CBI-TCC接口測試是比較費時費力的。
結合CBI-TCC接口測試的特點及人工測試的弊端和局限性,開發測試平臺實現CBI-TCC接口測試的自動化是一項很有意義的工作。
2.1.1 測試平臺環境
如圖2所示,測試平臺運行環境簡單,聯鎖仿真軟件和自動測試軟件可以運行在同一臺工控機上。自動測試軟件發送控制類信息給聯鎖仿真軟件,如辦理進路、操縱道岔、總取消操作等。此外,在自動測試軟件上可以模擬I/O變量的設置。聯鎖仿真軟件實現聯鎖邏輯運算,并將車站設備的狀態信息送給自動測試軟件。

圖2 自動測試平臺環境Fig.2 Automatic test platform environment
2.1.2 測試平臺結構
測試平臺總體結構如圖3所示,采用分層模式,由接口層、邏輯層、應用層組成。

圖3 自動測試平臺總體結構Fig.3 Overall structure of automatic test platform
1)接口層
包含數據通信接口、模擬仿真接口、測試記錄接口,相應功能如下。
數據通信接口:實現與聯鎖仿真軟件的接口,完成數據信息的傳遞。
模擬仿真接口:實現車站設備狀態的顯示,提供人工測試的操作及模擬條件設置等。
測試記錄接口:連接數據庫,實現對測試結果的記錄及再讀取。
2)邏輯層
包含信息檢查、操作辦理、自動走車、結果記錄、數據分析等簡單功能的實現。通過對下層接口層的封裝單個操作,向應用層提供一個已經實現的簡單操作平臺。
3)應用層
定義接口測試的測試案例,包括進路辦理(列車進路、引導進路、調車進路),進路解鎖等測試內容。
測試平臺實現的功能如下。
1)接口信息校核。《TCC接口信息表》和《國鐵車站STA聯鎖信息表》是測試的輸入文件,TCC***.RSSP1文件是接口測試的對象。正常情況下,《TCC接口信息表》中的接口信息內容與TCC***.RSSP1文件中的內容應該一致。《國鐵車站STA聯鎖信息表》中包含的進路表跟藍圖中的聯鎖表是一致的。一般來說,進路條數是大于或等于《TCC接口信息表》中的進路條數。所以,在執行測試之前,可以對這些接口信息先進行校核,避免存在不匹配帶來的無效測試。
2)接口信息測試。開關量信息的測試,按照對應測試用例執行;進路信息的測試,需要先篩選出被測進路對應的測試用例,然后再執行測試。此外,測試還有下述要求:a.按照《國鐵車站STA聯鎖信息表》對所有進路進行測試;b.執行測試時,除了比對當前測試步驟對應參數變化與用例中預期結果是否相同,還需要監視TCC***.RSSP1文件中被測對象之外的其他接口信息參數未發生變化。c.若被測進路為非TCC接口進路,則測試該進路時,TCC***.RSSP1文件中送出信息對應的參數未發生變化。
3)實時記錄測試過程中產生的測試日志,便于對測試結果進行分析。
4)按要求,自動輸出測試記錄表格,便于項目歸檔測試記錄文件。
與開關量信息測試相比,進路信息的測試不僅內容較多,且還需要結合站型、進路類型來判斷具體如何執行測試。如,正線接車進路開放綠燈的條件和發車進路開放綠燈的條件是不同的;同樣是側線接車進路,是否能開放黃閃黃信號也會影響測試步驟設置,等等。因此,需要結合站型、針對不同的進路設置相應的測試用例;這樣,測試中可以根據被測進路的情況,篩選出合適的測試用例執行。
設置不同的測試條件,最終主要體現在進路信號顯示上,因此,可以按進路的信號顯示及進路類型進行分類,設計不同的測試用例。一條進路對應的信號顯示有哪些,這些信息在《國鐵車站STA聯鎖信息表》中已明確,如圖4所示。設計測試用例時,需要根據不同的進路類型,設置不同的測試條件及測試步驟,使信號開放不同的顯示。

圖4 進路信號顯示Fig.4 Route signal display
首先,根據點/滅燈模式,信號顯示分為點燈狀態和滅燈狀態兩大類。然后,在每一類下面,根據信號顯示情況及進路類型,再細分為:引導進路(開放紅白顯示)、僅存在一種允許信號的列車進路、有雙黃和黃閃黃兩種允許信號的列車進路等,按此方式,細分出16種不同情況的進路。再按照不同的情況,設計對應的測試用例,如圖5所示。

圖5 測試用例Fig.5 Test case
測試平臺的處理流程如圖6所示。先校核《TCC接口信息表》和TCC***.RSSP1文件中接口信息內容。開關量信息,需核對碼位名稱、個數及排序的一致性;信息個數或排序存在不一致時,輸出提示信息后結束測試;若信息名稱不一致時,由人工確認后可繼續執行自動測試。進路信息,若進路條數、編號或進路區段個數及排序存在不一致時,輸出提示信息后結束測試;若進路名稱存在不一致,由人工確認后可繼續執行自動測試。《TCC接口信息表》和TCC***.RSSP1文件中進路信息完全一致后,再校核《TCC接口信息表》和《國鐵車站STA聯鎖信息表》中的進路信息。校核通過后,開始執行相應的測試用例;完成測試后,輸出測試記錄表格。

圖6 測試平臺處理流程Fig.6 Test platform processing flow chart
采用自動化測試平臺執行CBI-TCC接口測試,與人工測試相比,在測試環境搭建上,大大降低對硬件設備的要求,使測試環境搭建更加方便、快捷。此外,CBI-TCC接口測試的自動化,既可以保證測試的準確性,又可以減少測試時間及人工成本,有效提高接口測試效率。目前,進路信息測試用例的設計存在一定的限制;只考慮了站型較簡單車站的情況,對于樞紐站、銜接站或信號顯示關系復雜的車站,進路信息的自動測試可能不能完全覆蓋。后續,將結合樞紐站、銜接站的特點,不斷完善測試用例,進一步提高自動測試的覆蓋率。