李詩雄 倪少權
(1.西南交通大學 信息科學與技術學院,成都 611756;2.西南交通大學 交通運輸與物流學院,成都 610031;3.西南交通大學 全國鐵路列車運行圖編制研發培訓中心,成都 610031)
站場形數據結構在車站信號實訓系統中的實現
李詩雄1,3倪少權2,3
(1.西南交通大學 信息科學與技術學院,成都 611756;2.西南交通大學 交通運輸與物流學院,成都 610031;3.西南交通大學 全國鐵路列車運行圖編制研發培訓中心,成都 610031)
計算機聯鎖系統是負責處理進路內的道岔、信號機、軌道電路之間安全聯鎖關系的系統。本文通過對比計算機聯鎖中總進路表和站場形數據結構兩種實現方法各自的特點,選擇了站場形數據結構進行數據的存儲和進路的搜索,并在高鐵車站信號實訓系統實現,驗證了該方法的可行性和合理性。
站場形數據結構;計算機聯鎖系統;節點;搜索
在高速鐵路(簡稱:高鐵)車站,計算機聯鎖系統處于自律模式,平時車站值班員不能隨意進行操作。當有特殊情況,需要車站值班員來手動操作時,由于平時練習較少,值班員不能熟練進行操作。為此,高鐵車站信號實訓系統應運而生。
高鐵車站信號實訓系統,主要功能包括高鐵車站計算機信號聯鎖系統模擬演練和值班員培訓考核管理。該系統的一個重要的功能就是車站信號聯鎖系統的模擬演練。要實現這個功能,較常見的方法有兩種:(1)總進路表,(2)站場形數據結構。
1.1 概述
如果要建立任何的一條進路,都必須要指出這條進路的特點以及相關監控對象的數量和特征。這具體包括:進路的性質、進路的方向、進路的范圍、防護進路的信號機、進路中的軌道電路區段和數量、進路中的道岔和應該處在的位置及數量、與進路有關系的侵限絕緣軌道區段和其檢查條件、進路的接近區段、進路的離去區段、進路的末端是否存在需要結合的設備等。
如果把上述各項都放進一個數據表就形成了一個進路表,把某個車站的所有進路(包括迂回進路)的進路表集合到一起就形成了這個車站的總進路表。
在計算機程序中可以定義一個類來表示進路表,不同的進路表作為類的對象儲存在數據庫中。當辦理某條進路的時候,可以根據進路的操作命令,從靜態的數據庫中選出相符合的進路表,進而可以找到所需要的靜態數據。在編寫相關程序時,進路表類Route的定義程序部分如下:


1.2 總進路表的不足
此種方法雖然比較形象,能直觀地看出每一條進路的情況。但是,如果某個高鐵車站的規模比較大,而且進路數量眾多的時候,其總進路表必定會十分的龐大,從而在運行的時候所占用的內存容量很大。雖然在現在的計算機中,儲存器的容量已經不再成為限制因數。但是,占用內存的容量越大,也就意味著增加了內存檢測程序的長度和其執行的時間,這樣對于系統的可靠性十分的不利。此外,如果該車站需要進行擴建或者改建的時候,就必需對總進路表進行很大的修改。而且使用人工來編制總進路表,尤其是在編制很多大型的總進路表的時候,不僅十分復雜,而且極易出錯,故總進路表法有較大不足。
2.1 概述
若用計算機來自動生成總進路表,并將其放進聯鎖軟件中,當辦理進路的時候,通過使用者的操作命令來調用進路表生成程序,自動生成一個與進路操作命令相符合的進路表,以供聯鎖軟件來使用,將更加方便快捷。
要實現上述功能,要將對應站場信號平面布置圖中的每一個監控的對象(比如信號機、道岔、特設的變通按鈕、進路始終端按鈕、侵限絕緣區段、軌道電路區段等)設置一個靜態的數據模塊,然后在每一個模塊中羅列出此監控對象自身的屬性和一些進路搜索程序所需要的標志。因該種數據結構在圖形上呈現出一種車站站場的形式,故被叫做站場形數據結構。
2.2 模塊的鏈接
當建立好站場形數據結構后,還需要把各個數據模塊鏈接起來,這樣才能進行搜索進路。所以,需要對每一個模塊進行擴展,并劃分為兩個部分,數據部分df和指針部分pf。使用數據部分df來存儲原來的數據,用指針部分pf來存儲相鄰模塊的首地址。
如圖1,有3個模塊節點,a、b、c,暫時不管它們在存儲器里面的物理位置是否有序排列,我們希望能在搜索到a后就能搜索到b,搜索到b后就能搜索到c。那么,只需要把b的首地址放到a的指針部分pf中,將c的首地址放到b的指針部分pf中,c沒有后繼的模塊,c的指針部分pf存放空地址null,這樣構成了一個鏈表。從而,在搜索到a后就能夠搜索到b,繼而在搜索到b后就能夠搜索到c。

圖1 單向節點搜索
但是,一般的模塊節點有左節點和右節點兩個不同的鏈接節點,所以一個節點則需要有兩個指針部分pf來存儲兩個相鄰節點的首地址,這樣就可以進行雙向搜索。如圖2所示,既可以從模塊a搜索到模塊c,亦可以從模塊c搜索到模塊a。

圖2 雙向節點搜索
就道岔節點來看,一般有3個鏈接節點:(1)岔前節點;(2)岔后直股節點;(3)岔后彎股節點。所以,可以在道岔節點中設置3個指針部分:指針部分pf用來存儲岔前節點的首地址,指針部分pfz用來存儲岔后直股節點的首地址,指針部分pfw用來存儲岔后直股節點的首地址。
2.3 站場形數據結構舉例
圖3是京滬高速鐵路中滄州西站在高鐵車站信號實訓系統中顯示的站場信號平面布置圖,圖4是其部分站場形數據結構。
2.4 站場形數據結構的優點
(1)這種站場形數據結構所占用的內存空間比總進路表數據庫要小得多,方便檢測;
(2)這種站場形數據結構是通過各個節點的鏈接而形成的鏈表,在這種結構中的任何部位刪除或者添加節點只需要修改所涉及節點的指針部分中的首地址即可,較為方便,而且不影響其他節點在存儲器里面的物理位置。這種特性十分適合站場的擴建或者改建;
(3)站場形數據結構本質上是鏈表,鏈表結構可以充分利用計算機內存空間,實現靈活的內存動態管理,可以用計算機輔助設計方法進行實現。

圖3 滄州西站信號平面布置圖

圖4 滄州西站部分站場形數據結構
3.1 系統概述
高鐵車站信號實訓系統是根據DS6-K5B計算機聯鎖系統相關標準,采用面向對象的編程語言C++進行開發,可供高鐵車站值班人員進行訓練,管理部門對相關人員進行考核、管理。經測試,該系統能夠在Windows XP(32 bit、64 bit)、Windows 7(32 bit、64 bit)操作系統上運行。
該系統一個重要的功能就是車站信號聯鎖系統的模擬演練,具體包括了:進路的排列、進路的取消、人工解鎖進路、重開信號、道岔操作、區段事故解鎖、鈕封操作、引導按鈕的延時抬起操作、其他按鈕的操作、點燈和滅燈操作等。
3.2 算法建立
為了實現算法流程圖的建立,先介紹一些即將使用到的符號和名詞術語。
(1)開始節點K0:這是按照發車方向進行搜索時所指定的起始節點。如果從發車進路的角度來看,它是始端節點;如果從接車進路來看,它是終端節點。
(2)中間節點Ki:這是和變通按鈕互相對應的指定節點。
(3)目標節點Kg:這是按照發車方向進行搜索的時候要找到的所指定的最終的節點。如果從發車進路的角度來看,它是始端節點;如果從接車進路來看,它是終端節點。
(4)后繼節點Kc:在站場形數據結構中,有方向的直線箭頭所指向的節點,或是說該節點指針部分pf中所指向的節點就是此節點的后繼節點。
(5)后繼直節點Kc(z):在站場形數據結構中,有方向的直線箭頭所指向的直股股道節點,或是說這個節點的指針部分pfz中所指向的節點就是此節點的后繼直節點。
(6)后繼彎節點Kc(w):在站場形數據結構中,有方向的直線箭頭所指向的彎股股道節點,或是說這個節點的指針部分pfw中所指向的節點就是此節點的后繼彎節點。
(7)當前節點Kn:在搜索的過程中剛被尋找到的節點。
(8)死節點Kd:沒有后繼節點Kc的節點。
(9)堆棧S:用于存儲開始節點K0、中間節點Ki以及目標節點Kg。
(10)堆棧S1:用于存儲在搜索的過程中需要進行考察的節點。
(11)堆棧S2:用于存儲在搜索的過程中需要進行保存的路徑上的節點。
(12)渡線類型暫存單元L:用于存儲道岔形狀的正斜線“/”型或者反斜線“”型。
根據上面名詞術語和符號的介紹,建立搜索算法流程,如圖5所示。

圖5 搜索算法流程圖
圖5就是高鐵車站信號實訓系統的搜索算法流程圖,可能在很多其他計算機聯鎖系統中有其他的算法流程,所以流程圖不是唯一的。而且可能在一些比較特殊的站場形數據結構中,這種算法需要進行補充和完善。
3.3 系統的相關顯示
為了驗證站場形數據結構在系統中是否成功實現,根據DS6-K5B計算機聯鎖系統的相關標準,先介紹一些系統應該顯示的內容。
在排列進路的時候,點擊列車按鈕是綠色文字閃爍并且在信號機名稱的后面加上LA或者A字符,點擊調車按鈕是白色文字閃爍并且在信號機名稱的后面加上DA或者A字符。進路在鎖閉以后,按鈕名稱恢復為原來狀態。
軌道區段在空閑狀態時顯示為藍色光帶,在區段鎖閉時顯示為白色光帶,在區段占用時顯示為紅色光帶。
道岔處于定位的時候,道岔名顯示為綠色;道岔處于反位的時候,道岔名顯示為黃色。
3.4 在系統中的實現
根據上面相關介紹,以滄州西站為例,假設要辦理從進站信號機SN到站內IIG的接車進路,按壓始端按鈕(SN)和終端按鈕(XII)后,始端按鈕顯示為SNLA綠色文字閃爍,終端按鈕顯示為XIILA綠色文字閃爍。2號道岔和4號道岔此時處于定位狀態,其名稱顯示為綠色。系統顯示結果與相關標準相符合,如圖6所示。

圖6 辦理進路
根據進路操作命令,確定進路始端節點K(SN)和進路終端節點K(IIG)。從節點K(SN)出發,根據其指針部分pf中的地址可以找到節點K(2DG),從而找到節點K(2)。節點K(2)是一個標準的對向道岔節點,有2個后繼節點K(8DG)和K(CX)。根據圖5所示的算法,當搜索過程遇到這種對向道岔節點時,優先搜索后繼直節點Kc (z),如果找不到所需要的目標節點時,再返回到對向道岔節點,繼續搜索后繼彎節點Kc (w)。所以,下一步搜索K(8DG),然后一直搜索下去終究搜索不到目標節點K(IIG)。于是返回K(2)繼續沿彎股搜索,可以依次搜索到K(CX)、K(4)、K(4DG)、K(6DG)、K(6)、K(XII)、K(IIG)。因為K(IIG)是所需要的目標節點,故搜索過程到此結束。
高鐵車站信號實訓系統從這些節點中提取出所需要的數據,生成一個進路表,進路就排列出來了。此時相關進路為鎖閉狀態,顯示為白色光帶。按鈕名稱恢復為原來狀態。2號道岔和4號道岔此時處于反位狀態,其名稱顯示為黃色。系統顯示結果與相關標準相符合。
本文通過對比總進路表和站場形數據結構各自的特點,因站場形數據結構諸多優點,最后選擇了站場形數據結構進行數據的存儲和進路的搜索,并在高鐵車站信號實訓系統中進行了實現,說明了站場形數據結構的可行性。這類算法在系統中的實現,能讓車站值班員隨時練習聯鎖系統的操作,從而使自身業務更加熟悉,間接加強了鐵路列車的行車安全,提高了列車的運行效率。
[1]趙志熙.計算機聯鎖系統技術[M].北京:中國鐵道出版社,1999.
[2]王瑞峰.鐵路信號運營基礎[M].北京:中國鐵道出版社,2008.
[3]張基溫.新概念C++程序設計大學教程[M].北京:清華大學出版社,2013.
[4]胡 媛,魏宗壽.采用DFS策略的進路搜索算法研究[J].鐵路計算機應用,2007,17(9):4-6.
[5]陳志穎,董 昱,楊 柳,等.計算機聯鎖進路搜索算法的分析與研究[J].鐵道通信信號,2007,43(4):4-6.
責任編輯 王 浩
Station type data structure in Station Signaling Training System
LI Shixiong1,3,NI Shaoquan2,3
( 1.School of Information Science and Technology,Southwest Jiaotong University,Chengdu 611756,China;2.School of Transportation and Logistics,Southwest Jiaotong University,Chengdu 610031,China;3.Research and Training Center of National Railway Train Diagram,Southwest Jiaotong University,Chengdu 610031,China)
The Computer Interlocking System was responsible for the safety interlocking relationship between the turnouts,signal machine and the track circuit.In this paper,by comparing the differences between the total route table and the station type data structure,the author selected the station type data structure to store data and search the route.Then,the feasibility and rationality of this method were verifed by the actualization in the Station Signaling Training System of high-speed railway.
station type data structure;Computer Interlocking System;node;search
U284.1:TP391.6
A
1005-8451(2016)04-0058-05
2015-09-26
李詩雄,在讀碩士研究生; 倪少權,教授。