穆中華 李麗蘭
(鄭州鐵路職業(yè)技術(shù)學(xué)院,450052,鄭州∥第一作者,副教授)
計(jì)算機(jī)聯(lián)鎖是實(shí)現(xiàn)車站“運(yùn)行指揮,安全防護(hù)”功能的控制系統(tǒng),是我國車站信號設(shè)備的發(fā)展方向。計(jì)算機(jī)聯(lián)鎖課程是信號專業(yè)學(xué)生的必修課,理論性、實(shí)踐性都非常強(qiáng)。目前,國內(nèi)計(jì)算機(jī)聯(lián)鎖設(shè)備生產(chǎn)廠家主要是鐵道部指定的四家,技術(shù)已較成熟,但是受產(chǎn)權(quán)限制,各廠家核心技術(shù)是保密的。若建設(shè)一個小型站場的計(jì)算機(jī)聯(lián)鎖實(shí)驗(yàn)系統(tǒng),價(jià)格昂貴,動輒100多萬元,作為教學(xué)和實(shí)驗(yàn)設(shè)備一次性投入過大,性價(jià)比較低,也無法滿足學(xué)習(xí)動手操作的需要。另外,近幾年我國高速鐵路發(fā)展迅速,計(jì)算機(jī)聯(lián)鎖增加了很多新功能。因此,迫切需要開發(fā)計(jì)算機(jī)聯(lián)鎖仿真系統(tǒng),用仿真的方法來實(shí)現(xiàn)信號、進(jìn)路和道岔之間的聯(lián)鎖關(guān)系,以及在客運(yùn)專線中的應(yīng)用方式,以滿足教學(xué)需要。
(1)現(xiàn)有計(jì)算機(jī)仿真軟件多以功能仿真為主,未明確區(qū)分上位機(jī)和下位機(jī),其結(jié)構(gòu)與真實(shí)聯(lián)鎖不符。
(2)現(xiàn)有計(jì)算機(jī)仿真軟件大多不帶I/O(輸入/輸出)功能,即無法采集驅(qū)動信號設(shè)備;或者帶I/O功能的仿真軟件過度依賴信號設(shè)備,無法獨(dú)立設(shè)置條件運(yùn)行。
(3)由于裝備的變化,信號設(shè)備功能劃分也有變化。如:改變運(yùn)行方向(以下簡為“改方”)功能,在既有模式中由改方電路或計(jì)算機(jī)聯(lián)鎖來完成,而在客運(yùn)專線標(biāo)準(zhǔn)中由列控中心來完成,且由計(jì)算機(jī)聯(lián)鎖來操作。
(4)計(jì)算機(jī)聯(lián)鎖存儲數(shù)據(jù)有變化。如:計(jì)算機(jī)聯(lián)鎖不但要獲取接近離去區(qū)段的狀態(tài),還需要區(qū)間閉塞分區(qū)的狀態(tài),用以送給RBC(無線閉塞中心)使用。
(5)由于標(biāo)準(zhǔn)的變化,計(jì)算機(jī)聯(lián)鎖的功能有所變化。如:計(jì)算機(jī)聯(lián)鎖增加了開燈/關(guān)燈模式,分別適用于列控C2和列控C3模式。
本計(jì)算機(jī)聯(lián)鎖系統(tǒng)以武廣客運(yùn)專線技術(shù)為藍(lán)本,實(shí)現(xiàn)適用于客運(yùn)專線的聯(lián)鎖系統(tǒng)。計(jì)算機(jī)聯(lián)鎖仿真軟件采用模塊化編程,由上位機(jī)軟件和下位機(jī)軟件構(gòu)成。
上位機(jī)是聯(lián)鎖與操作人員的人機(jī)接口,主要完成人機(jī)對話功能。操作人員通過上位機(jī)操作下位機(jī)。上位機(jī)一方面接收來自控制臺車站值班員的操作命令,將其轉(zhuǎn)換成約定的格式發(fā)送給聯(lián)鎖機(jī);另一方面接收聯(lián)鎖機(jī)提供的監(jiān)控對象的各種表示信息,并轉(zhuǎn)換成顯示器能夠接收的格式。上位機(jī)軟件采用模塊化編程思想和面向?qū)ο蠹夹g(shù),使用C++Builder 6開發(fā)環(huán)境,軟件結(jié)構(gòu)清晰,功能完善。上位機(jī)軟件主要分為顯示模塊、操作模塊和通信模塊等。
2.1.1 顯示模塊
上位機(jī)軟件采用圖形化的顯示界面,其站場狀態(tài)必須與下位機(jī)保持一致,實(shí)時(shí)性要求較高。本軟件采用定時(shí)刷新方式(周期為250ms)動態(tài)更新站場狀態(tài)。雖然站場圖形不斷更新,但要求有一個穩(wěn)定的顯示畫面,為此上位機(jī)軟件采用雙緩沖技術(shù),保證了畫面重畫時(shí)不會出現(xiàn)閃爍現(xiàn)象。顯示模塊流程如圖1所示。
圖1 顯示模塊流程
2.1.2 操作模塊
上位機(jī)作為人機(jī)接口,完成人機(jī)交互的工作,接收操作人員指令。操作部分采用消息驅(qū)動機(jī)制,捕捉鼠標(biāo)和鍵盤消息,驅(qū)動事件處理函數(shù)。操作模塊流程如圖2所示。
圖2 操作模塊流程
2.1.3 通信模塊
通信模塊負(fù)責(zé)上位機(jī)與下位機(jī)的數(shù)據(jù)收發(fā),采用UDP通信協(xié)議。數(shù)據(jù)發(fā)送采用250ms定時(shí)發(fā)送方式;接收采用事件驅(qū)動方式,當(dāng)通信端口接收到數(shù)據(jù)后驅(qū)動數(shù)據(jù)處理函數(shù)。模塊發(fā)送和接收流程如圖3所示。
下位機(jī)軟件是聯(lián)鎖軟件的核心,主要實(shí)現(xiàn)聯(lián)鎖邏輯的運(yùn)算。本下位機(jī)集邏輯運(yùn)算、站場操作、狀態(tài)記錄和回放、室外仿真等于一體。軟件采用模塊化編程思想和面向?qū)ο蠹夹g(shù),使用Visual Studio開發(fā)環(huán)境,C++語言開發(fā),結(jié)構(gòu)清晰,功能完善。
圖3 發(fā)送和接收流程
下位機(jī)軟件主要分為邏輯運(yùn)算、環(huán)境仿真、采集和驅(qū)動、顯示和操作、記錄和回放、通信等模塊。
2.2.1 邏輯運(yùn)算模塊
邏輯運(yùn)算模塊完成全站聯(lián)鎖關(guān)系的運(yùn)算,采用聯(lián)鎖表的方式進(jìn)行邏輯計(jì)算。即由聯(lián)鎖表生成配置文件,在運(yùn)算過程中按照聯(lián)鎖關(guān)系采集和驅(qū)動相應(yīng)設(shè)備,當(dāng)設(shè)備狀態(tài)與聯(lián)鎖表狀態(tài)完全吻合后開放信號,進(jìn)路辦理成功。
邏輯運(yùn)算模塊流程包括辦理進(jìn)路流程和進(jìn)路檢查流程,如圖4、5所示。邏輯運(yùn)算模塊與安全息息相關(guān),所以采用了安全編程技術(shù),對所有變量進(jìn)行編碼;并向安全側(cè)賦初值,運(yùn)算過程中實(shí)時(shí)進(jìn)行數(shù)據(jù)校驗(yàn),保證其安全性。
圖4 辦理進(jìn)路流程
圖5 進(jìn)路檢查流程
2.2.2 環(huán)境仿真模塊
由于聯(lián)鎖軟件在執(zhí)行過程中需要采集和驅(qū)動很多開關(guān)量,而軟件在單機(jī)上運(yùn)行時(shí)不具備該條件,故在軟件中加入環(huán)境仿真模塊,以此來模擬該站繼電器的狀態(tài),保證聯(lián)鎖軟件在任何環(huán)境下都可以運(yùn)行。
環(huán)境仿真部分采用二級緩沖技術(shù),即將該模塊作為聯(lián)鎖軟件的二級緩沖區(qū)。聯(lián)鎖軟件采集的開關(guān)量首先存于該模塊中,再由聯(lián)鎖邏輯運(yùn)算模塊讀?。宦?lián)鎖輸出的開關(guān)量首先存于該模塊中,再由該模塊驅(qū)動繼電器(如圖6所示)。
圖6 環(huán)境仿真的二級緩沖技術(shù)
采用這種方式的優(yōu)點(diǎn)是:①在無外部設(shè)備時(shí),該模擬作為外部設(shè)備的仿真,可以操作和改變其狀態(tài),滿足聯(lián)鎖軟件的運(yùn)行條件,保證聯(lián)鎖軟件正常運(yùn)行;②在有外部設(shè)備時(shí),該模塊執(zhí)行對外采集和驅(qū)動的處理,聯(lián)鎖軟件及其配置文件無需作任何變動,適應(yīng)能力強(qiáng);③環(huán)境仿真模塊中加入設(shè)備仿真功能,可用軟件模擬設(shè)備動作過程,如在道岔動作時(shí)加入延時(shí)來模擬道岔動作過程。
環(huán)境仿真模塊流程如圖7所示。
2.2.3 采集和驅(qū)動模塊
圖7 環(huán)境仿真模塊流程
采集和驅(qū)動模塊負(fù)責(zé)聯(lián)鎖邏輯運(yùn)算模塊的輸入和輸出。由于聯(lián)鎖軟件所有對外要采集和驅(qū)動的狀態(tài)均由環(huán)境仿真模塊完成,因此采集和驅(qū)動模塊只需完成與環(huán)境仿真模塊的數(shù)據(jù)交換即可。采集和驅(qū)動模塊定時(shí)(周期為250ms)對仿真環(huán)境模塊執(zhí)行采集和驅(qū)動操作,實(shí)時(shí)性較高。采集和驅(qū)動模塊流程如圖8所示。
圖8 采集和驅(qū)動流程
2.2.4 顯示和操作模塊
為更清晰地展示上位機(jī)與下位機(jī)的關(guān)系,下位機(jī)軟件除完成運(yùn)算外,還可顯示站場狀態(tài),并可對站場進(jìn)行狀態(tài)設(shè)置、設(shè)備單操、辦理進(jìn)路等操作,完全復(fù)示上位機(jī)的顯示和操作。
站場狀態(tài)采用列表的方式進(jìn)行顯示,每個列表中對不同類型的數(shù)據(jù)以不同的底色區(qū)分,清晰明了;站場數(shù)據(jù)的顯示以周期250ms實(shí)時(shí)更新。
對站場設(shè)備的操作使用了消息驅(qū)動機(jī)制,采用鼠標(biāo)單擊、雙擊、鼠標(biāo)右鍵菜單等方式,操作簡便。
2.2.5 記錄和回放模塊
下位機(jī)軟件集維修機(jī)的功能于一體,可實(shí)現(xiàn)狀態(tài)的記錄和回放。狀態(tài)記錄采用增量保存的方式對記錄的數(shù)據(jù)進(jìn)行存儲,既保證信息的完整性,又確保了存儲的數(shù)據(jù)量最小。站場上任何設(shè)備狀態(tài)的變化和任何操作事件都會被記錄和回放模塊捕捉,并記錄變化部分狀態(tài),以此實(shí)現(xiàn)存儲量的最小化?;胤殴δ芘c記錄過程相反:該模塊根據(jù)用戶選擇的時(shí)間,將記錄文件中該時(shí)間之前的記錄逐條計(jì)算,得出該時(shí)間的實(shí)際狀態(tài),并由顯示和操作模塊進(jìn)行顯示。記錄和回放模塊流程如圖9所示。
圖9 記錄和回放模塊流程
2.2.6 通信模塊
通信模塊完成聯(lián)鎖軟件與上位機(jī)、CTC(分散自律調(diào)度集中)、列控中心和RBC的通信,采用UDP通信協(xié)議。數(shù)據(jù)發(fā)送采用250ms定時(shí)發(fā)送方式;數(shù)據(jù)接收采用事件驅(qū)動方式,當(dāng)通信端口接收到數(shù)據(jù)后驅(qū)動數(shù)據(jù)處理函數(shù)。發(fā)送數(shù)據(jù)流程和接收數(shù)據(jù)流程如圖10、11所示。
圖10 發(fā)送數(shù)據(jù)流程
客運(yùn)專線的聯(lián)鎖系統(tǒng)不僅要與CTC通信,還要與列控中心、RBC等列控設(shè)備通信。本聯(lián)鎖軟件預(yù)留了這部分接口,適合在任何線路上使用。
圖11 接收數(shù)據(jù)流程
(1)開放信號功能:可使用鼠標(biāo)在上位機(jī)上直接按壓始終端按鈕選擇進(jìn)路,也可使用下位機(jī)輸入進(jìn)路始終端按鈕,辦理列車進(jìn)路、調(diào)車進(jìn)路和長調(diào)車進(jìn)路,符合聯(lián)鎖條件后信號開放。信號因故關(guān)閉,但開放條件仍然滿足,可以重復(fù)開放信號。在下位機(jī)選中相應(yīng)防護(hù)信號機(jī),點(diǎn)擊右鍵菜單中“開放引導(dǎo)信號”,可開放引導(dǎo)信號。
(2)進(jìn)路解鎖功能:進(jìn)路建立后,可使用“總?cè)∠?、“總?cè)私狻苯怄i進(jìn)路;可用下位機(jī)模擬列車正常占用、出清,進(jìn)路解鎖;軌道電路光帶保留,可使用“故障解鎖”方式解鎖進(jìn)路。
(3)道岔的單操單鎖功能:在人機(jī)界面上,使用鼠標(biāo)右鍵,選擇“總定(或總反)”,可以單扳道岔;需要對道岔進(jìn)行單獨(dú)鎖閉時(shí),使用鼠標(biāo)右鍵,選擇“道岔區(qū)段鎖閉”即可。
(4)改變運(yùn)行方向功能:根據(jù)列車運(yùn)行情況,可采用正常改方和輔助改方兩種方法改變運(yùn)行方向。正常改方時(shí),發(fā)車站直接辦理發(fā)車進(jìn)路即可;輔助改方時(shí),發(fā)車站按壓“總輔助”+“發(fā)車輔助”按鈕,接車站按壓“總輔助”+“接車輔助”按鈕,即可改變運(yùn)行方向。
(1)信息自動提示功能。上位機(jī)設(shè)有信息自動提示框,當(dāng)有操作時(shí),提示當(dāng)前操作,自動顯示上位機(jī)和下位機(jī)通信狀態(tài),如“通信正?!被颉巴ㄐ胖袛唷?。
(2)記錄保存功能。該軟件可實(shí)現(xiàn)記錄自動保存和手動保存:系統(tǒng)在每天的00:00自動保存當(dāng)天記錄;單擊界面 “保存記錄”按鈕,當(dāng)前內(nèi)存中的記錄即可存到文件中。
(3)回放再現(xiàn)功能。該軟件可查看當(dāng)前記錄和歷史記錄。查看當(dāng)前記錄:系統(tǒng)默認(rèn)當(dāng)前記錄,即內(nèi)存中的記錄,拖動時(shí)間軸上的滑塊,在主界面各表中顯示當(dāng)前時(shí)間的記錄。查看歷史記錄:通過下拉式列表框選擇記錄文件,列表框列出當(dāng)前存在的記錄文件,選擇一個文件后,即可拖動時(shí)間軸的滑塊查看記錄。
(4)系統(tǒng)設(shè)置功能。為使軟件適用于既有線路和客專線路,可以對軟件中的參數(shù)進(jìn)行設(shè)置,包括接近離去區(qū)段的個數(shù)、股道延時(shí)解鎖的時(shí)間、進(jìn)路延時(shí)解鎖的時(shí)間和聯(lián)鎖信號開燈模式等。
(1)圖形化界面,清晰明了。
(2)站場圖形和配置數(shù)據(jù)采用配置文件,使該軟件具有通用性,可用于任何車站。
(3)充分利用鼠標(biāo)功能,用右鍵菜單代替部分按鈕,使操作簡便,符合日常使用習(xí)慣。
(1)使用文件的方式配置數(shù)據(jù),使軟件具有通用性,通過更換配置文件,可方便地生成其他站聯(lián)鎖軟件。
(2)具備現(xiàn)場環(huán)境仿真功能,可不依賴于室外設(shè)備而獨(dú)立運(yùn)行,并可仿真室外設(shè)備。
(3)采用二級緩沖技術(shù),實(shí)現(xiàn)了真實(shí)室外環(huán)境和仿真環(huán)境自適應(yīng)功能,無需任何更改即可自動切換。
(4)具備顯示和操作功能,上位機(jī)的所有操作和顯示在下位機(jī)上均可實(shí)現(xiàn),可在無上位機(jī)或上位機(jī)故障的情況下繼續(xù)使用。
(5)集維修機(jī)的功能于一體,可實(shí)現(xiàn)記錄及再現(xiàn)站場狀態(tài)和操作,用一個軟件實(shí)現(xiàn)了整個聯(lián)鎖系統(tǒng)的功能。
(6)具備與列控中心、RBC等列控設(shè)備通信的功能,適合在任何等級的線路上使用。
(7)按照客運(yùn)專線標(biāo)準(zhǔn),聯(lián)鎖增加了開/關(guān)燈模式,在列控C3模式時(shí)聯(lián)鎖處于關(guān)燈模式,在列控C2模式時(shí)處于開燈模式。
(8)軟件開發(fā)過程中秉承故障導(dǎo)向安全的思想,結(jié)合安全編程技術(shù),使軟件具有較高的安全性。
(9)采用消息機(jī)制和多線程技術(shù),保證了軟件的實(shí)時(shí)性。
計(jì)算機(jī)聯(lián)鎖仿真系統(tǒng)采用仿真的方法實(shí)現(xiàn)信號機(jī)、進(jìn)路和道岔之間的聯(lián)鎖關(guān)系,人機(jī)界面貼近真實(shí)的聯(lián)鎖設(shè)備,可滿足鐵路院校和電務(wù)職工培訓(xùn)基地的教學(xué)需要。另外,該軟件采用二級緩沖技術(shù),具備真實(shí)室外環(huán)境和仿真環(huán)境的自適應(yīng)能力,當(dāng)室外設(shè)備條件具備時(shí),無需做任何更改即可直接驅(qū)動采集室外設(shè)備,建成真實(shí)的計(jì)算機(jī)聯(lián)鎖站。
[1]趙志熙.微機(jī)聯(lián)鎖系統(tǒng)技術(shù)[M].北京:中國鐵道出版社,1995.
[2]王選.軟件設(shè)計(jì)方法[M].北京:清華大學(xué)出版社,1992.
[3]吳芳美.鐵路安全軟件測試評估[M].北京:中國鐵道出版社,2001.
[4]TB/T 3027—2002 計(jì)算機(jī)聯(lián)鎖技術(shù)條件[S].
[5]TB/T 2307—1992 電氣集中各種結(jié)合電路技術(shù)條件[S].
[6]何梅芳,段武,開祥寶,等.TYJLⅡ計(jì)算機(jī)聯(lián)鎖控制系統(tǒng)研究報(bào)告[R].北京:鐵道科學(xué)研究院,1997.
[7]王曉東.數(shù)據(jù)結(jié)構(gòu)與算法設(shè)計(jì)[M].北京:電子工業(yè)出版社,2002.
[8]李鐵民,楊靜,張素華.軟件設(shè)計(jì)技法[M].北京:中國林業(yè)出版社,2000.