李詩(shī)雄 倪少權(quán)
(1.西南交通大學(xué) 信息科學(xué)與技術(shù)學(xué)院,成都 611756;2.西南交通大學(xué) 交通運(yùn)輸與物流學(xué)院,成都 610031;3.西南交通大學(xué) 全國(guó)鐵路列車運(yùn)行圖編制研發(fā)培訓(xùn)中心,成都 610031)
站場(chǎng)形數(shù)據(jù)結(jié)構(gòu)在車站信號(hào)實(shí)訓(xùn)系統(tǒng)中的實(shí)現(xiàn)
李詩(shī)雄1,3倪少權(quán)2,3
(1.西南交通大學(xué) 信息科學(xué)與技術(shù)學(xué)院,成都 611756;2.西南交通大學(xué) 交通運(yùn)輸與物流學(xué)院,成都 610031;3.西南交通大學(xué) 全國(guó)鐵路列車運(yùn)行圖編制研發(fā)培訓(xùn)中心,成都 610031)
計(jì)算機(jī)聯(lián)鎖系統(tǒng)是負(fù)責(zé)處理進(jìn)路內(nèi)的道岔、信號(hào)機(jī)、軌道電路之間安全聯(lián)鎖關(guān)系的系統(tǒng)。本文通過對(duì)比計(jì)算機(jī)聯(lián)鎖中總進(jìn)路表和站場(chǎng)形數(shù)據(jù)結(jié)構(gòu)兩種實(shí)現(xiàn)方法各自的特點(diǎn),選擇了站場(chǎng)形數(shù)據(jù)結(jié)構(gòu)進(jìn)行數(shù)據(jù)的存儲(chǔ)和進(jìn)路的搜索,并在高鐵車站信號(hào)實(shí)訓(xùn)系統(tǒng)實(shí)現(xiàn),驗(yàn)證了該方法的可行性和合理性。
站場(chǎng)形數(shù)據(jù)結(jié)構(gòu);計(jì)算機(jī)聯(lián)鎖系統(tǒng);節(jié)點(diǎn);搜索
在高速鐵路(簡(jiǎn)稱:高鐵)車站,計(jì)算機(jī)聯(lián)鎖系統(tǒng)處于自律模式,平時(shí)車站值班員不能隨意進(jìn)行操作。當(dāng)有特殊情況,需要車站值班員來手動(dòng)操作時(shí),由于平時(shí)練習(xí)較少,值班員不能熟練進(jìn)行操作。為此,高鐵車站信號(hào)實(shí)訓(xùn)系統(tǒng)應(yīng)運(yùn)而生。
高鐵車站信號(hào)實(shí)訓(xùn)系統(tǒng),主要功能包括高鐵車站計(jì)算機(jī)信號(hào)聯(lián)鎖系統(tǒng)模擬演練和值班員培訓(xùn)考核管理。該系統(tǒng)的一個(gè)重要的功能就是車站信號(hào)聯(lián)鎖系統(tǒng)的模擬演練。要實(shí)現(xiàn)這個(gè)功能,較常見的方法有兩種:(1)總進(jìn)路表,(2)站場(chǎng)形數(shù)據(jù)結(jié)構(gòu)。
1.1 概述
如果要建立任何的一條進(jìn)路,都必須要指出這條進(jìn)路的特點(diǎn)以及相關(guān)監(jiān)控對(duì)象的數(shù)量和特征。這具體包括:進(jìn)路的性質(zhì)、進(jìn)路的方向、進(jìn)路的范圍、防護(hù)進(jìn)路的信號(hào)機(jī)、進(jìn)路中的軌道電路區(qū)段和數(shù)量、進(jìn)路中的道岔和應(yīng)該處在的位置及數(shù)量、與進(jìn)路有關(guān)系的侵限絕緣軌道區(qū)段和其檢查條件、進(jìn)路的接近區(qū)段、進(jìn)路的離去區(qū)段、進(jìn)路的末端是否存在需要結(jié)合的設(shè)備等。
如果把上述各項(xiàng)都放進(jìn)一個(gè)數(shù)據(jù)表就形成了一個(gè)進(jìn)路表,把某個(gè)車站的所有進(jìn)路(包括迂回進(jìn)路)的進(jìn)路表集合到一起就形成了這個(gè)車站的總進(jìn)路表。
在計(jì)算機(jī)程序中可以定義一個(gè)類來表示進(jìn)路表,不同的進(jìn)路表作為類的對(duì)象儲(chǔ)存在數(shù)據(jù)庫(kù)中。當(dāng)辦理某條進(jìn)路的時(shí)候,可以根據(jù)進(jìn)路的操作命令,從靜態(tài)的數(shù)據(jù)庫(kù)中選出相符合的進(jìn)路表,進(jìn)而可以找到所需要的靜態(tài)數(shù)據(jù)。在編寫相關(guān)程序時(shí),進(jìn)路表類Route的定義程序部分如下:
1.2 總進(jìn)路表的不足
此種方法雖然比較形象,能直觀地看出每一條進(jìn)路的情況。但是,如果某個(gè)高鐵車站的規(guī)模比較大,而且進(jìn)路數(shù)量眾多的時(shí)候,其總進(jìn)路表必定會(huì)十分的龐大,從而在運(yùn)行的時(shí)候所占用的內(nèi)存容量很大。雖然在現(xiàn)在的計(jì)算機(jī)中,儲(chǔ)存器的容量已經(jīng)不再成為限制因數(shù)。但是,占用內(nèi)存的容量越大,也就意味著增加了內(nèi)存檢測(cè)程序的長(zhǎng)度和其執(zhí)行的時(shí)間,這樣對(duì)于系統(tǒng)的可靠性十分的不利。此外,如果該車站需要進(jìn)行擴(kuò)建或者改建的時(shí)候,就必需對(duì)總進(jìn)路表進(jìn)行很大的修改。而且使用人工來編制總進(jìn)路表,尤其是在編制很多大型的總進(jìn)路表的時(shí)候,不僅十分復(fù)雜,而且極易出錯(cuò),故總進(jìn)路表法有較大不足。
2.1 概述
若用計(jì)算機(jī)來自動(dòng)生成總進(jìn)路表,并將其放進(jìn)聯(lián)鎖軟件中,當(dāng)辦理進(jìn)路的時(shí)候,通過使用者的操作命令來調(diào)用進(jìn)路表生成程序,自動(dòng)生成一個(gè)與進(jìn)路操作命令相符合的進(jìn)路表,以供聯(lián)鎖軟件來使用,將更加方便快捷。
要實(shí)現(xiàn)上述功能,要將對(duì)應(yīng)站場(chǎng)信號(hào)平面布置圖中的每一個(gè)監(jiān)控的對(duì)象(比如信號(hào)機(jī)、道岔、特設(shè)的變通按鈕、進(jìn)路始終端按鈕、侵限絕緣區(qū)段、軌道電路區(qū)段等)設(shè)置一個(gè)靜態(tài)的數(shù)據(jù)模塊,然后在每一個(gè)模塊中羅列出此監(jiān)控對(duì)象自身的屬性和一些進(jìn)路搜索程序所需要的標(biāo)志。因該種數(shù)據(jù)結(jié)構(gòu)在圖形上呈現(xiàn)出一種車站站場(chǎng)的形式,故被叫做站場(chǎng)形數(shù)據(jù)結(jié)構(gòu)。
2.2 模塊的鏈接
當(dāng)建立好站場(chǎng)形數(shù)據(jù)結(jié)構(gòu)后,還需要把各個(gè)數(shù)據(jù)模塊鏈接起來,這樣才能進(jìn)行搜索進(jìn)路。所以,需要對(duì)每一個(gè)模塊進(jìn)行擴(kuò)展,并劃分為兩個(gè)部分,數(shù)據(jù)部分df和指針部分pf。使用數(shù)據(jù)部分df來存儲(chǔ)原來的數(shù)據(jù),用指針部分pf來存儲(chǔ)相鄰模塊的首地址。
如圖1,有3個(gè)模塊節(jié)點(diǎn),a、b、c,暫時(shí)不管它們?cè)诖鎯?chǔ)器里面的物理位置是否有序排列,我們希望能在搜索到a后就能搜索到b,搜索到b后就能搜索到c。那么,只需要把b的首地址放到a的指針部分pf中,將c的首地址放到b的指針部分pf中,c沒有后繼的模塊,c的指針部分pf存放空地址null,這樣構(gòu)成了一個(gè)鏈表。從而,在搜索到a后就能夠搜索到b,繼而在搜索到b后就能夠搜索到c。
圖1 單向節(jié)點(diǎn)搜索
但是,一般的模塊節(jié)點(diǎn)有左節(jié)點(diǎn)和右節(jié)點(diǎn)兩個(gè)不同的鏈接節(jié)點(diǎn),所以一個(gè)節(jié)點(diǎn)則需要有兩個(gè)指針部分pf來存儲(chǔ)兩個(gè)相鄰節(jié)點(diǎn)的首地址,這樣就可以進(jìn)行雙向搜索。如圖2所示,既可以從模塊a搜索到模塊c,亦可以從模塊c搜索到模塊a。
圖2 雙向節(jié)點(diǎn)搜索
就道岔節(jié)點(diǎn)來看,一般有3個(gè)鏈接節(jié)點(diǎn):(1)岔前節(jié)點(diǎn);(2)岔后直股節(jié)點(diǎn);(3)岔后彎股節(jié)點(diǎn)。所以,可以在道岔節(jié)點(diǎn)中設(shè)置3個(gè)指針部分:指針部分pf用來存儲(chǔ)岔前節(jié)點(diǎn)的首地址,指針部分pfz用來存儲(chǔ)岔后直股節(jié)點(diǎn)的首地址,指針部分pfw用來存儲(chǔ)岔后直股節(jié)點(diǎn)的首地址。
2.3 站場(chǎng)形數(shù)據(jù)結(jié)構(gòu)舉例
圖3是京滬高速鐵路中滄州西站在高鐵車站信號(hào)實(shí)訓(xùn)系統(tǒng)中顯示的站場(chǎng)信號(hào)平面布置圖,圖4是其部分站場(chǎng)形數(shù)據(jù)結(jié)構(gòu)。
2.4 站場(chǎng)形數(shù)據(jù)結(jié)構(gòu)的優(yōu)點(diǎn)
(1)這種站場(chǎng)形數(shù)據(jù)結(jié)構(gòu)所占用的內(nèi)存空間比總進(jìn)路表數(shù)據(jù)庫(kù)要小得多,方便檢測(cè);
(2)這種站場(chǎng)形數(shù)據(jù)結(jié)構(gòu)是通過各個(gè)節(jié)點(diǎn)的鏈接而形成的鏈表,在這種結(jié)構(gòu)中的任何部位刪除或者添加節(jié)點(diǎn)只需要修改所涉及節(jié)點(diǎn)的指針部分中的首地址即可,較為方便,而且不影響其他節(jié)點(diǎn)在存儲(chǔ)器里面的物理位置。這種特性十分適合站場(chǎng)的擴(kuò)建或者改建;
(3)站場(chǎng)形數(shù)據(jù)結(jié)構(gòu)本質(zhì)上是鏈表,鏈表結(jié)構(gòu)可以充分利用計(jì)算機(jī)內(nèi)存空間,實(shí)現(xiàn)靈活的內(nèi)存動(dòng)態(tài)管理,可以用計(jì)算機(jī)輔助設(shè)計(jì)方法進(jìn)行實(shí)現(xiàn)。
圖3 滄州西站信號(hào)平面布置圖
圖4 滄州西站部分站場(chǎng)形數(shù)據(jù)結(jié)構(gòu)
3.1 系統(tǒng)概述
高鐵車站信號(hào)實(shí)訓(xùn)系統(tǒng)是根據(jù)DS6-K5B計(jì)算機(jī)聯(lián)鎖系統(tǒng)相關(guān)標(biāo)準(zhǔn),采用面向?qū)ο蟮木幊陶Z(yǔ)言C++進(jìn)行開發(fā),可供高鐵車站值班人員進(jìn)行訓(xùn)練,管理部門對(duì)相關(guān)人員進(jìn)行考核、管理。經(jīng)測(cè)試,該系統(tǒng)能夠在Windows XP(32 bit、64 bit)、Windows 7(32 bit、64 bit)操作系統(tǒng)上運(yùn)行。
該系統(tǒng)一個(gè)重要的功能就是車站信號(hào)聯(lián)鎖系統(tǒng)的模擬演練,具體包括了:進(jìn)路的排列、進(jìn)路的取消、人工解鎖進(jìn)路、重開信號(hào)、道岔操作、區(qū)段事故解鎖、鈕封操作、引導(dǎo)按鈕的延時(shí)抬起操作、其他按鈕的操作、點(diǎn)燈和滅燈操作等。
3.2 算法建立
為了實(shí)現(xiàn)算法流程圖的建立,先介紹一些即將使用到的符號(hào)和名詞術(shù)語(yǔ)。
(1)開始節(jié)點(diǎn)K0:這是按照發(fā)車方向進(jìn)行搜索時(shí)所指定的起始節(jié)點(diǎn)。如果從發(fā)車進(jìn)路的角度來看,它是始端節(jié)點(diǎn);如果從接車進(jìn)路來看,它是終端節(jié)點(diǎn)。
(2)中間節(jié)點(diǎn)Ki:這是和變通按鈕互相對(duì)應(yīng)的指定節(jié)點(diǎn)。
(3)目標(biāo)節(jié)點(diǎn)Kg:這是按照發(fā)車方向進(jìn)行搜索的時(shí)候要找到的所指定的最終的節(jié)點(diǎn)。如果從發(fā)車進(jìn)路的角度來看,它是始端節(jié)點(diǎn);如果從接車進(jìn)路來看,它是終端節(jié)點(diǎn)。
(4)后繼節(jié)點(diǎn)Kc:在站場(chǎng)形數(shù)據(jù)結(jié)構(gòu)中,有方向的直線箭頭所指向的節(jié)點(diǎn),或是說該節(jié)點(diǎn)指針部分pf中所指向的節(jié)點(diǎn)就是此節(jié)點(diǎn)的后繼節(jié)點(diǎn)。
(5)后繼直節(jié)點(diǎn)Kc(z):在站場(chǎng)形數(shù)據(jù)結(jié)構(gòu)中,有方向的直線箭頭所指向的直股股道節(jié)點(diǎn),或是說這個(gè)節(jié)點(diǎn)的指針部分pfz中所指向的節(jié)點(diǎn)就是此節(jié)點(diǎn)的后繼直節(jié)點(diǎn)。
(6)后繼彎節(jié)點(diǎn)Kc(w):在站場(chǎng)形數(shù)據(jù)結(jié)構(gòu)中,有方向的直線箭頭所指向的彎股股道節(jié)點(diǎn),或是說這個(gè)節(jié)點(diǎn)的指針部分pfw中所指向的節(jié)點(diǎn)就是此節(jié)點(diǎn)的后繼彎節(jié)點(diǎn)。
(7)當(dāng)前節(jié)點(diǎn)Kn:在搜索的過程中剛被尋找到的節(jié)點(diǎn)。
(8)死節(jié)點(diǎn)Kd:沒有后繼節(jié)點(diǎn)Kc的節(jié)點(diǎn)。
(9)堆棧S:用于存儲(chǔ)開始節(jié)點(diǎn)K0、中間節(jié)點(diǎn)Ki以及目標(biāo)節(jié)點(diǎn)Kg。
(10)堆棧S1:用于存儲(chǔ)在搜索的過程中需要進(jìn)行考察的節(jié)點(diǎn)。
(11)堆棧S2:用于存儲(chǔ)在搜索的過程中需要進(jìn)行保存的路徑上的節(jié)點(diǎn)。
(12)渡線類型暫存單元L:用于存儲(chǔ)道岔形狀的正斜線“/”型或者反斜線“”型。
根據(jù)上面名詞術(shù)語(yǔ)和符號(hào)的介紹,建立搜索算法流程,如圖5所示。
圖5 搜索算法流程圖
圖5就是高鐵車站信號(hào)實(shí)訓(xùn)系統(tǒng)的搜索算法流程圖,可能在很多其他計(jì)算機(jī)聯(lián)鎖系統(tǒng)中有其他的算法流程,所以流程圖不是唯一的。而且可能在一些比較特殊的站場(chǎng)形數(shù)據(jù)結(jié)構(gòu)中,這種算法需要進(jìn)行補(bǔ)充和完善。
3.3 系統(tǒng)的相關(guān)顯示
為了驗(yàn)證站場(chǎng)形數(shù)據(jù)結(jié)構(gòu)在系統(tǒng)中是否成功實(shí)現(xiàn),根據(jù)DS6-K5B計(jì)算機(jī)聯(lián)鎖系統(tǒng)的相關(guān)標(biāo)準(zhǔn),先介紹一些系統(tǒng)應(yīng)該顯示的內(nèi)容。
在排列進(jìn)路的時(shí)候,點(diǎn)擊列車按鈕是綠色文字閃爍并且在信號(hào)機(jī)名稱的后面加上LA或者A字符,點(diǎn)擊調(diào)車按鈕是白色文字閃爍并且在信號(hào)機(jī)名稱的后面加上DA或者A字符。進(jìn)路在鎖閉以后,按鈕名稱恢復(fù)為原來狀態(tài)。
軌道區(qū)段在空閑狀態(tài)時(shí)顯示為藍(lán)色光帶,在區(qū)段鎖閉時(shí)顯示為白色光帶,在區(qū)段占用時(shí)顯示為紅色光帶。
道岔處于定位的時(shí)候,道岔名顯示為綠色;道岔處于反位的時(shí)候,道岔名顯示為黃色。
3.4 在系統(tǒng)中的實(shí)現(xiàn)
根據(jù)上面相關(guān)介紹,以滄州西站為例,假設(shè)要辦理從進(jìn)站信號(hào)機(jī)SN到站內(nèi)IIG的接車進(jìn)路,按壓始端按鈕(SN)和終端按鈕(XII)后,始端按鈕顯示為SNLA綠色文字閃爍,終端按鈕顯示為XIILA綠色文字閃爍。2號(hào)道岔和4號(hào)道岔此時(shí)處于定位狀態(tài),其名稱顯示為綠色。系統(tǒng)顯示結(jié)果與相關(guān)標(biāo)準(zhǔn)相符合,如圖6所示。
圖6 辦理進(jìn)路
根據(jù)進(jìn)路操作命令,確定進(jìn)路始端節(jié)點(diǎn)K(SN)和進(jìn)路終端節(jié)點(diǎn)K(IIG)。從節(jié)點(diǎn)K(SN)出發(fā),根據(jù)其指針部分pf中的地址可以找到節(jié)點(diǎn)K(2DG),從而找到節(jié)點(diǎn)K(2)。節(jié)點(diǎn)K(2)是一個(gè)標(biāo)準(zhǔn)的對(duì)向道岔節(jié)點(diǎn),有2個(gè)后繼節(jié)點(diǎn)K(8DG)和K(CX)。根據(jù)圖5所示的算法,當(dāng)搜索過程遇到這種對(duì)向道岔節(jié)點(diǎn)時(shí),優(yōu)先搜索后繼直節(jié)點(diǎn)Kc (z),如果找不到所需要的目標(biāo)節(jié)點(diǎn)時(shí),再返回到對(duì)向道岔節(jié)點(diǎn),繼續(xù)搜索后繼彎節(jié)點(diǎn)Kc (w)。所以,下一步搜索K(8DG),然后一直搜索下去終究搜索不到目標(biāo)節(jié)點(diǎn)K(IIG)。于是返回K(2)繼續(xù)沿彎股搜索,可以依次搜索到K(CX)、K(4)、K(4DG)、K(6DG)、K(6)、K(XII)、K(IIG)。因?yàn)镵(IIG)是所需要的目標(biāo)節(jié)點(diǎn),故搜索過程到此結(jié)束。
高鐵車站信號(hào)實(shí)訓(xùn)系統(tǒng)從這些節(jié)點(diǎn)中提取出所需要的數(shù)據(jù),生成一個(gè)進(jìn)路表,進(jìn)路就排列出來了。此時(shí)相關(guān)進(jìn)路為鎖閉狀態(tài),顯示為白色光帶。按鈕名稱恢復(fù)為原來狀態(tài)。2號(hào)道岔和4號(hào)道岔此時(shí)處于反位狀態(tài),其名稱顯示為黃色。系統(tǒng)顯示結(jié)果與相關(guān)標(biāo)準(zhǔn)相符合。
本文通過對(duì)比總進(jìn)路表和站場(chǎng)形數(shù)據(jù)結(jié)構(gòu)各自的特點(diǎn),因站場(chǎng)形數(shù)據(jù)結(jié)構(gòu)諸多優(yōu)點(diǎn),最后選擇了站場(chǎng)形數(shù)據(jù)結(jié)構(gòu)進(jìn)行數(shù)據(jù)的存儲(chǔ)和進(jìn)路的搜索,并在高鐵車站信號(hào)實(shí)訓(xùn)系統(tǒng)中進(jìn)行了實(shí)現(xiàn),說明了站場(chǎng)形數(shù)據(jù)結(jié)構(gòu)的可行性。這類算法在系統(tǒng)中的實(shí)現(xiàn),能讓車站值班員隨時(shí)練習(xí)聯(lián)鎖系統(tǒng)的操作,從而使自身業(yè)務(wù)更加熟悉,間接加強(qiáng)了鐵路列車的行車安全,提高了列車的運(yùn)行效率。
[1]趙志熙.計(jì)算機(jī)聯(lián)鎖系統(tǒng)技術(shù)[M].北京:中國(guó)鐵道出版社,1999.
[2]王瑞峰.鐵路信號(hào)運(yùn)營(yíng)基礎(chǔ)[M].北京:中國(guó)鐵道出版社,2008.
[3]張基溫.新概念C++程序設(shè)計(jì)大學(xué)教程[M].北京:清華大學(xué)出版社,2013.
[4]胡 媛,魏宗壽.采用DFS策略的進(jìn)路搜索算法研究[J].鐵路計(jì)算機(jī)應(yīng)用,2007,17(9):4-6.
[5]陳志穎,董 昱,楊 柳,等.計(jì)算機(jī)聯(lián)鎖進(jìn)路搜索算法的分析與研究[J].鐵道通信信號(hào),2007,43(4):4-6.
責(zé)任編輯 王 浩
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
李詩(shī)雄,在讀碩士研究生; 倪少權(quán),教授。