于 磊,駱正新
(通號(hào)城市軌道交通技術(shù)有限公司,北京 100070)
城軌聯(lián)鎖系統(tǒng)是以計(jì)算機(jī)為主要技術(shù)實(shí)現(xiàn)聯(lián)鎖控制的系統(tǒng),該系統(tǒng)應(yīng)保證行車安全,提高運(yùn)輸效率,改善勞動(dòng)條件,并為管理、服務(wù)現(xiàn)代化創(chuàng)造條件,應(yīng)能滿足城市軌道交通各種站場(chǎng)規(guī)模和運(yùn)營作業(yè)的需要。而聯(lián)鎖表是聯(lián)鎖系統(tǒng)的重要組成部分,是計(jì)算機(jī)聯(lián)鎖邏輯處理的基礎(chǔ)和聯(lián)鎖測(cè)試的依據(jù),決定車站作業(yè)安全。聯(lián)鎖表記錄了每條進(jìn)路的聯(lián)鎖信息,包括進(jìn)路、道岔、信號(hào)機(jī)之間的聯(lián)鎖邏輯關(guān)系及相關(guān)軌旁設(shè)備的相關(guān)信息,內(nèi)容龐雜,邏輯復(fù)雜,隨站場(chǎng)變化而變化[1]。
傳統(tǒng)的聯(lián)鎖表編制方法以人工對(duì)照信號(hào)平面布置圖填寫為主,工作量大,容易出錯(cuò)且效率低。一旦需要修改站場(chǎng)圖,就必須重新編制和修改聯(lián)鎖表。通過工具軟件讀取配置文件自動(dòng)生成聯(lián)鎖表的方法,人工填寫配置文件內(nèi)容工作量仍然繁重。如果能根據(jù)設(shè)計(jì)提供的原則實(shí)現(xiàn)聯(lián)鎖表的自動(dòng)生成將會(huì)大大縮短工作時(shí)間,降低錯(cuò)誤率,提高工作效率[2]。
聯(lián)鎖表中的聯(lián)鎖信息,幾乎全部來自于CAD信號(hào)平面布置圖。地鐵正線聯(lián)鎖表的主體是進(jìn)路,直觀反映了進(jìn)路與相關(guān)信號(hào)機(jī)、道岔、區(qū)段以及其他進(jìn)路之間的聯(lián)鎖關(guān)系[3]。地鐵正線聯(lián)鎖表內(nèi)容主要包含:進(jìn)路始端信號(hào)機(jī)、終端信號(hào)機(jī)、信號(hào)顯示、敵對(duì)信號(hào)、進(jìn)路中的道岔、進(jìn)路中的區(qū)段、進(jìn)路保護(hù)區(qū)段、進(jìn)路接近區(qū)段、其他聯(lián)鎖對(duì)象(緊急停車、站臺(tái)扣車、屏蔽門)等。
實(shí)現(xiàn)從CAD信號(hào)平面布置圖中獲取聯(lián)鎖表信息,軟件需要解決以下關(guān)鍵問題:
1)從圖中識(shí)別出信號(hào)機(jī)、軌道區(qū)段、計(jì)軸、道岔等圖元;
2)進(jìn)路搜索始終端信號(hào)機(jī)的確定;
3)進(jìn)路搜索起始軌道區(qū)段、終止軌道區(qū)段的確定;
4)信號(hào)機(jī)、道岔、軌道區(qū)段、計(jì)軸等圖元之間鏈接關(guān)系的確定;
5)進(jìn)路搜索,經(jīng)過對(duì)向道岔時(shí)多條進(jìn)路搜索路徑的確定;
6)進(jìn)路搜索,經(jīng)過軌道區(qū)段的記錄;
7)進(jìn)路搜索,經(jīng)過道岔及道岔位置、防護(hù)道岔、帶動(dòng)道岔信息的記錄;
8)進(jìn)路敵對(duì)信號(hào)的確定、是否條件敵對(duì)的判斷以及條件敵對(duì)時(shí)道岔位置條件的記錄。
為了解決上述問題,軟件采用ObjectARX開發(fā)一套標(biāo)準(zhǔn)化地鐵設(shè)備圖元庫,并設(shè)計(jì)一套完善的繪圖原則,從而能夠?qū)崿F(xiàn)信號(hào)平面布置圖中各種設(shè)備圖元的識(shí)別、屬性計(jì)算以及進(jìn)路搜索計(jì)算。
本文軟件采用ObjectARX對(duì)CAD進(jìn)行二次開發(fā),開發(fā)出一套完整的地鐵設(shè)備圖元庫,軟件以插件的形式運(yùn)行于CAD平臺(tái)上,能夠?qū)崿F(xiàn)地鐵CAD信號(hào)平面布置圖的快速繪制。ObjectARX提供了以C++為基礎(chǔ)的面向?qū)ο蟮拈_發(fā)環(huán)境及應(yīng)用程序接口,能真正快速地訪問AutoCAD圖形數(shù)據(jù)庫[4-5]。各種地鐵設(shè)備圖元被設(shè)計(jì)成不同的自定義實(shí)體圖塊,具備了各自特有的功能和屬性。
本文軟件的主要模塊設(shè)計(jì)如圖1所示,主要分為站場(chǎng)圖元繪制模塊、圖元鏈接關(guān)系計(jì)算模塊、進(jìn)路搜索計(jì)算模塊、聯(lián)鎖數(shù)據(jù)輸出模塊4個(gè)部分。
圖1 軟件模塊設(shè)計(jì)Fig.1 Design of software module
為了能直接從信號(hào)平面布置圖中獲取聯(lián)鎖表需要的信息,需要對(duì)信號(hào)平面布置圖中的各種圖元進(jìn)行統(tǒng)一標(biāo)準(zhǔn)化處理[6]。將線路、計(jì)軸、信號(hào)機(jī)、道岔、應(yīng)答器、車站、集中區(qū)分界等圖元封裝成不同類型的標(biāo)準(zhǔn)圖塊,建立標(biāo)準(zhǔn)圖元庫,如圖2所示。打開CAD軟件并加載本文繪圖軟件插件,便可通過CAD菜單命令打開“地鐵圖庫”,根據(jù)繪圖需要選取圖庫面板上提供的標(biāo)準(zhǔn)圖塊完成信號(hào)平面布置圖的繪制。
圖2 標(biāo)準(zhǔn)化地鐵設(shè)備圖元庫Fig.2 Standard metro equipment element library
軟件實(shí)現(xiàn)聯(lián)鎖數(shù)據(jù)自動(dòng)計(jì)算的關(guān)鍵是信號(hào)平面布置圖中的各種設(shè)備圖元之間建立起完善的鏈接關(guān)系,這就要求設(shè)備圖元具備完善的屬性信息。采用標(biāo)準(zhǔn)圖元庫繪制的地鐵站場(chǎng)信號(hào)平面布置圖,設(shè)計(jì)繪圖人員可以人工對(duì)圖中的各種設(shè)備圖元設(shè)置部分屬性信息。同時(shí),軟件也提供自動(dòng)計(jì)算設(shè)備圖元部分屬性的功能。各種設(shè)備圖元的屬性信息如圖3所示。
圖3 設(shè)備圖元屬性信息Fig.3 Attribute information of equipment elements
采用標(biāo)準(zhǔn)圖塊封裝的每一種設(shè)備圖元,都具備完善的屬性信息,通過ObjectARX便可讀取信號(hào)平面布置圖中的標(biāo)準(zhǔn)圖塊及其附帶的屬性信息。且每一個(gè)圖塊在CAD圖形數(shù)據(jù)庫中,都有一個(gè)唯一標(biāo)識(shí)ID值。每種設(shè)備圖元的屬性中都存儲(chǔ)了關(guān)聯(lián)設(shè)備圖元的ID值,關(guān)聯(lián)設(shè)備圖元的ID值為“引用”屬性。通過ID值,便可打開并讀取對(duì)應(yīng)圖元的相關(guān)設(shè)備信息。由此,不同設(shè)備圖元之間,便建立起完善的鏈接關(guān)系。
各種設(shè)備圖元鏈接關(guān)系如圖4所示,其中道岔圖元引用左子區(qū)段、右子區(qū)段和岔后反子區(qū)段3個(gè)子區(qū)段圖元的ID值,計(jì)軸圖元引用左子區(qū)段和右子區(qū)段圖元的ID值,子區(qū)段圖元(信號(hào)平面布置圖中的軌道區(qū)段)則引用左實(shí)體和右實(shí)體圖元的ID值(左、右實(shí)體圖元即信號(hào)平面布置圖中的道岔、計(jì)軸、車擋等設(shè)備圖元)。
該模塊基于不同設(shè)備圖元之間建立起完善的鏈接關(guān)系,實(shí)現(xiàn)一套完整的進(jìn)路搜索算法。從始端信號(hào)機(jī)開始,根據(jù)鏈接關(guān)系搜索進(jìn)路經(jīng)過的道岔和軌道區(qū)段,直到找到進(jìn)路的終端信號(hào)機(jī)。在此過程中,進(jìn)路的始終端信號(hào)機(jī)、經(jīng)過的軌道區(qū)段、經(jīng)過的道岔、道岔的位置狀態(tài)等信息全部被存儲(chǔ)到特定的進(jìn)路數(shù)據(jù)結(jié)構(gòu)中,為后續(xù)進(jìn)一步計(jì)算各種聯(lián)鎖表數(shù)據(jù)提供基礎(chǔ)。
當(dāng)CAD信號(hào)平面中的各圖元建立起完整的鏈接關(guān)系,便可完成圖中進(jìn)路的搜索,同時(shí)進(jìn)路經(jīng)過的信號(hào)機(jī)、道岔、軌道區(qū)段等設(shè)備都被進(jìn)路數(shù)據(jù)結(jié)構(gòu)存儲(chǔ)記錄。進(jìn)一步發(fā)展,進(jìn)路的敵對(duì)信號(hào)、接近區(qū)段、保護(hù)區(qū)段、自動(dòng)觸發(fā)區(qū)段等各種聯(lián)鎖信息都可以結(jié)合各種圖元的圖塊信息和鏈接關(guān)系計(jì)算得到。計(jì)算得到的聯(lián)鎖信息按照進(jìn)路被逐條存儲(chǔ)到相應(yīng)的聯(lián)鎖數(shù)據(jù)結(jié)構(gòu)中,通過程序直接輸出到對(duì)應(yīng)的Excel聯(lián)鎖表中。
聯(lián)鎖表數(shù)據(jù)主要由進(jìn)路數(shù)據(jù)構(gòu)成,實(shí)現(xiàn)進(jìn)路搜索是完成聯(lián)鎖表數(shù)據(jù)自動(dòng)計(jì)算的關(guān)鍵[7]。本文軟件依據(jù)一套完整的進(jìn)路搜索算法實(shí)現(xiàn)進(jìn)路搜索,如圖5所示。具體的進(jìn)路搜索算法步驟如下:
圖5 進(jìn)路搜索算法流程Fig.5 Flow chart of route search algorithm
1)識(shí)別圖中所有信號(hào)機(jī)、軌道區(qū)段、道岔、計(jì)軸、車擋、車站分界等設(shè)備圖元;
2)遍歷圖中所有的信號(hào)機(jī),依次以每一個(gè)信號(hào)機(jī)為進(jìn)路始端信號(hào)機(jī),開始進(jìn)路搜索,此處以始端信號(hào)機(jī)朝向?yàn)橛覟槔^續(xù)后續(xù)描述;
3)確定始端信號(hào)機(jī)內(nèi)方軌道區(qū)段,作為進(jìn)路路徑搜索的起始軌道區(qū)段;
4)遍歷圖中所有信號(hào)機(jī),確定進(jìn)路當(dāng)前搜索軌道區(qū)段是否為某信號(hào)機(jī)外方軌道區(qū)段,如果是,則終止搜索,此信號(hào)機(jī)為進(jìn)路末端信號(hào)機(jī),如果不是,則根據(jù)圖元鏈接關(guān)系獲取當(dāng)前軌道區(qū)段右端實(shí)體類型,繼續(xù)下述步驟搜索;
5)若當(dāng)前軌道區(qū)段右端實(shí)體為計(jì)軸,則繼續(xù)根據(jù)圖元鏈接關(guān)系獲取計(jì)軸右側(cè)軌道區(qū)段圖元;若當(dāng)前軌道區(qū)段右端實(shí)體為道岔,判斷此道岔為對(duì)向道岔還是順向道岔,若為順向道岔,則繼續(xù)獲取道岔右子區(qū)段(軌道區(qū)段)圖元;若是對(duì)向道岔,則存儲(chǔ)記錄此對(duì)向道岔,首先獲取此道岔的右子區(qū)段(軌道區(qū)段)圖元,當(dāng)完成一條進(jìn)路的搜索之后,后續(xù)會(huì)回退到此對(duì)向道岔,重新獲取此道岔的岔后反子區(qū)段(軌道區(qū)段)圖元,繼續(xù)搜索另外一條進(jìn)路;若當(dāng)前軌道區(qū)段右端實(shí)體為車擋,則未找到有效進(jìn)路,進(jìn)路搜索結(jié)束;
6)重復(fù)執(zhí)行上述4)、5)步驟,直到滿足進(jìn)路搜索終止條件,確定進(jìn)路終端信號(hào)機(jī)。
敵對(duì)信號(hào)反應(yīng)了聯(lián)鎖表中進(jìn)路之間相互約束關(guān)系,是重要的聯(lián)鎖數(shù)據(jù)[8]。敵對(duì)信號(hào)的計(jì)算按照如下步驟進(jìn)行:
1)遍歷進(jìn)路搜索得到的所有進(jìn)路,確定一條當(dāng)前計(jì)算敵對(duì)信號(hào)的進(jìn)路;
2)獲取進(jìn)路數(shù)據(jù)結(jié)構(gòu)中存儲(chǔ)的當(dāng)前進(jìn)路經(jīng)過的所有軌道區(qū)段;
3)遍歷當(dāng)前進(jìn)路之外的其他所有進(jìn)路,找到與當(dāng)前進(jìn)路始端信號(hào)機(jī)朝向相反,且進(jìn)路內(nèi)軌道區(qū)段與當(dāng)前進(jìn)路內(nèi)軌道區(qū)段存在相同軌道區(qū)段的一條進(jìn)路,則此進(jìn)路為當(dāng)前進(jìn)路的敵對(duì)進(jìn)路,其始端信號(hào)機(jī)為當(dāng)前進(jìn)路的敵對(duì)信號(hào)機(jī);
4)判斷此敵對(duì)信號(hào)機(jī)是否為條件敵對(duì)信號(hào)機(jī),若以此信號(hào)機(jī)為始端信號(hào)機(jī)的所有進(jìn)路都與當(dāng)前進(jìn)路敵對(duì),則為無條件敵對(duì);若以此信號(hào)機(jī)為始端信號(hào)機(jī)的所有進(jìn)路中存在一條進(jìn)路與當(dāng)前進(jìn)路不是敵對(duì)關(guān)系,則此信號(hào)機(jī)為條件敵對(duì),敵對(duì)進(jìn)路中經(jīng)過的對(duì)向道岔位置信息為敵對(duì)條件。
進(jìn)路接近鎖閉的計(jì)算,主要包含以下步驟:1)遍歷進(jìn)路搜索得到的所有進(jìn)路,確定一條當(dāng)前計(jì)算接近鎖閉的進(jìn)路;
2)根據(jù)接近區(qū)段長度計(jì)算公式,計(jì)算進(jìn)路接近區(qū)段長度;
3)以此進(jìn)路始端信號(hào)機(jī)外方第一個(gè)軌道區(qū)段為起點(diǎn),按照此進(jìn)路始端信號(hào)機(jī)朝向相反方向,根據(jù)圖元鏈接關(guān)系搜索進(jìn)路可能存在的接近方案;
4)記錄接近方案經(jīng)過的接近區(qū)段、道岔、道岔位置以及信號(hào)機(jī)開放條件等信息。
配套工具開發(fā)屬于企業(yè)數(shù)字化轉(zhuǎn)型工作的一部分,利用工具軟件將設(shè)計(jì)者從繁雜的計(jì)算中解放出來是未來工程設(shè)計(jì)的趨勢(shì)。從CAD信號(hào)平面布置圖自動(dòng)生成聯(lián)鎖表數(shù)據(jù),能夠提升設(shè)計(jì)數(shù)據(jù)自動(dòng)化,極大地提高工作效率,同時(shí)保證聯(lián)鎖數(shù)據(jù)的可靠性、安全性,為軌道列車的安全出行提供有力保障。后續(xù)在此基礎(chǔ)上,將CAD信號(hào)平面布置圖中的聯(lián)鎖數(shù)據(jù)存儲(chǔ)到服務(wù)器數(shù)據(jù)庫中,并增加相應(yīng)的版本記錄,便能夠?qū)崿F(xiàn)聯(lián)鎖數(shù)據(jù)對(duì)信號(hào)平面布置圖變更的追蹤記錄,更加便于聯(lián)鎖表數(shù)據(jù)的更新和管理。