張?zhí)礻?,?揚
在鐵路信號系統(tǒng)中,低頻信息碼傳輸序列表(簡稱“碼序表”),是驗證列控中心編碼邏輯正確性的重要依據(jù),是整個信號系統(tǒng)設計中的重要環(huán)節(jié)[1]。碼序表的編制具有數(shù)據(jù)量大、周期短的特點,編制過程繁瑣、重復度高且易出錯。傳統(tǒng)的人工編制方式已無法滿足需求,而計算機輔助繪圖方式則提供了較好的解決辦法。針對碼序表輔助設計軟件的開發(fā),已有學者展開了研究。例如,通過人工輸入特征數(shù)據(jù),按特征表格進行碼序運算,將結(jié)果存入access 表格后,再將數(shù)據(jù)寫入AutoCAD 圖形文件;以區(qū)間及車站信號平面布置圖、信號點布置表作為輸入,實現(xiàn)碼序運算與圖紙的直接生成;基于列控工程數(shù)據(jù)表,對客運專線碼序表的工程設計進行研究[2-5]。
然而,現(xiàn)階段已有的碼序表自動生成輔助設計軟件大多以進路或車站為單位,無法獲取到鄰站的邊界碼序,故處理方式通常以L5~HU 碼作為鄰站默認的邊界碼序輸入。雖然這種軟件設計方法能夠確保生成的碼序表在列舉邊界區(qū)段的發(fā)碼情形時,不會出現(xiàn)缺漏,但可能存在贅余,需要對表格內(nèi)容進行逐一校核與修改。尤其當站場結(jié)構(gòu)復雜時,進路數(shù)量非常多,會導致生成的大量圖紙內(nèi)容需要調(diào)整,且由于輸入數(shù)據(jù)的局限性,難以在碼序表中體現(xiàn)車站站形及進路示意。
為進一步提高碼序表生成的準確性及豐富圖紙信息,本文以整條線路為單位提供必要的輸入數(shù)據(jù),對線路各信號設備建立面向?qū)ο竽P?,?gòu)建全線拓撲關(guān)系[6-7],并依序?qū)M路各軌道區(qū)段碼序進行遞推,得到精確的邊界碼序,進而實現(xiàn)全線碼序的追蹤,同時基于線路拓撲關(guān)系繪制車站簡易站形結(jié)構(gòu)及進路走行示意圖。
在信號設計時,碼序表是以區(qū)間、車站信號平面布置圖及列控工程數(shù)據(jù)表為基礎,車站(線路所)的每張碼序表與車站進路數(shù)據(jù)表的每條列控編碼接、發(fā)車進路一一對應。每張碼序表的縱列,表示該進路對應的列車運行前方鄰站TCC邊界區(qū)段的各種碼型,以及本站不同區(qū)段的占用情況;橫列表示本站進路(含區(qū)間)范圍內(nèi),各軌道區(qū)段的遞推碼序情況。碼序表通常為dwg 格式的AutoCAD 文件,本文采用Visual Studio 2010+ObjectARX2013+AutoCAD2013 組合開發(fā)環(huán)境實現(xiàn)軟件設計??傮w設計方案見圖1。
圖1 總體設計方案
ObjectARX 具有高效的AutoCAD 圖形處理效率[8],其生成的軟件需通過動態(tài)鏈接庫的方式加載到AutoCAD中,對象鏈接與嵌入技術(shù)(Object Linking and Embedding,OLE)能通過跨進程的方式實現(xiàn)AutoCAD 與Excel 進程間的數(shù)據(jù)交換,故在AutoCAD 平臺下能同時實現(xiàn)dwg、Excel 文件的讀取與生成。
基于對碼序表內(nèi)容的分析,本文以列控系統(tǒng)基礎數(shù)據(jù)表、車站信號平面布置圖(簡稱“站場圖”)及車站聯(lián)鎖表作為輸入數(shù)據(jù)。根據(jù)《列控數(shù)據(jù)管理暫行辦法》《計算機聯(lián)鎖車站聯(lián)鎖圖表編制原則》[9-10],列控基礎數(shù)據(jù)表與聯(lián)鎖表都有其相應的編制規(guī)范,便于軟件進行信息識別與數(shù)據(jù)處理。但是站場圖通常是基于AutoCAD 中提供的基礎圖元繪制而成,圖紙數(shù)據(jù)雖易提取,但難以實現(xiàn)各信號設備類別的區(qū)分及屬性數(shù)據(jù)歸類。為此,對站場圖按自定義實體方式進行規(guī)范化繪制。自定義實體是指通過CAD 二次開發(fā)方式定制圖元對象,鐵路信號設備的屬性數(shù)據(jù)可以直接封裝在圖元中,并以函數(shù)接口形式獲取相應數(shù)據(jù)[11]。
全線碼序追蹤的前提是建立線路的拓撲關(guān)系,按順序根據(jù)線路經(jīng)行的軌道區(qū)段逐一遞推得到其碼序信息。在生成碼序表時,以各車站進路為單位,需在線路拓撲結(jié)構(gòu)基礎上進行通過進路搜索及閉塞分區(qū)的劃分。
基于面向?qū)ο笏枷氲姆庋b特性,將對應信號設備抽象成對象時,可實現(xiàn)文件讀取過程中離散數(shù)據(jù)的整合。根據(jù)站場圖生成站內(nèi)信號設備對象,每個對象有其唯一的ID 信息,然后基于圖紙中各對象的坐標數(shù)據(jù),可構(gòu)建站內(nèi)拓撲關(guān)系,并以ID 信息進行表示。列控基礎數(shù)據(jù)表中的信號點布置表,包含了線路正線上的信號點布置信息,可據(jù)此生成區(qū)間中各信號設備對象,并按里程信息直接建立區(qū)間內(nèi)的拓撲關(guān)系。
由于輸入的線路數(shù)據(jù)分別來自于站場圖與信號點布置表,兩者文件格式不同,導致獲取到的車站數(shù)據(jù)與區(qū)間數(shù)據(jù)間的關(guān)聯(lián)性被割裂,需對區(qū)間與站內(nèi)的拓撲關(guān)系另做處理。在讀取信號點布置表時,根據(jù)表中的“進站”與“出站口”標識,可定位到車站正線上的正/反向進站信號機外方的相鄰區(qū)間區(qū)段,并對其設置相應的屬性標識:將下行線正向進站信號機外方的區(qū)間區(qū)段設置為三接近區(qū)段(3JJG),下行線反向進站信號機外方的區(qū)間區(qū)段,設置為一離去區(qū)段(1LQG),上行線同理。以站內(nèi)4 個進站信號機處的絕緣節(jié)為節(jié)點,根據(jù)線路的上、下行與區(qū)間區(qū)段屬性搜索區(qū)段對象,確定絕緣節(jié)左右連接的具體區(qū)段,從而完成區(qū)間與車站拓撲關(guān)系的重新連接,形成全線的拓撲結(jié)構(gòu)。
一個閉塞分區(qū)可能包含多個軌道區(qū)段,區(qū)間軌道區(qū)段根據(jù)其所屬防護信號機是否相同,判斷是否屬于同一閉塞分區(qū);站內(nèi)軌道區(qū)段根據(jù)其所屬咽喉是否為股道,判斷是否屬于同一閉塞分區(qū)。以車站下行正向運行的進路為例,發(fā)車進路由上行咽喉區(qū)段組成,接車進路由下行咽喉區(qū)段與股道組成,因此,進路中X1LQG 與屬于上行咽喉的站內(nèi)區(qū)段為同一閉塞分區(qū),股道與屬于下行咽喉的站內(nèi)區(qū)段為同一閉塞分區(qū),其閉塞分區(qū)劃分示意見圖2。對于反向運行時閉塞分區(qū)的劃分,還需考慮離去區(qū)段發(fā)碼分區(qū)是否合并。
圖2 3JJG與1LQG及閉塞分區(qū)劃分示意
每條通過進路對應一張碼序表,表中需體現(xiàn)進路中每一軌道區(qū)段的發(fā)碼信息。對于結(jié)構(gòu)較為簡單、站內(nèi)不存在進路信號機的車站,可直接以接車進路與發(fā)車進路組合的方式得到通過進路;對于存在進路信號機的車站,則無法采用上述方法。為適應不同站場結(jié)構(gòu),本文設計了一種基于聯(lián)鎖表的通過進路遞歸搜索算法。
通過遍歷聯(lián)鎖表中的列車進路,首先確定組合通過進路的首條列車進路,其必須滿足的條件為:始端信號機類型為進站信號機;后續(xù)接續(xù)進路的始端信號機與上一條進路的終端信號機相同。按此條件不斷查找接續(xù)進路并添加滿足條件的進路信息,直到找到的接續(xù)進路終端信號機類型為進站信號機,說明查找到的所有列車進路已經(jīng)組合成一條完整的通過進路。通過進路搜索流程見圖3。
圖3 通過進路搜索流程
結(jié)合全線拓撲關(guān)系,獲取通過進路始、終端信號機外方連接的區(qū)間軌道區(qū)段信息,由此得到列車在本站集中區(qū)范圍(兩端TCC 邊界)內(nèi)通過進路的完整運行路徑,包括進路運行方向、直彎進出股道、信號機、軌道區(qū)段、道岔等信息,可直接供碼序遞推過程使用。
車站的邊界碼是相鄰站間進行碼序追蹤與遞推的基本依據(jù)。由于碼序追蹤具有方向性,碼序信息的遞推過程需根據(jù)車站信息表,對全線車站進行順序或逆序遍歷,得到每一車站相同運行方向進路的碼序,此處約定下行正向與上行反向的列車運行進路方向相同。因線路兩端車站的邊界區(qū)段碼序情形未知,需通過人工輸入。
考慮列車下行正向運行方向,設列車經(jīng)行的首個車站為始發(fā)站,最后一個車站為終到站。對于最高碼序為L5 碼的線路,參考碼序表編制的相關(guān)規(guī)則[12-14],全線中所有下行正向與上行反向的進路碼序追蹤運算示意見圖4,詳細步驟如下。
圖4 全線碼序追蹤運算示意
Step 1按全線碼序追蹤思想,每一車站必須先獲取其前方鄰站邊界區(qū)段的所有邊界碼,才能遞推本站的碼序內(nèi)容,并得到本站邊界區(qū)段的邊界碼,以供后方鄰站追蹤使用,故需先對終到站所有下行正向與上行反向進路的碼序進行遞推。終到站的前方線路數(shù)據(jù)不存在,故其參考的邊界碼序由人工輸入。
Step 2對終到站所有滿足運行方向要求的進路,依序遍歷其中所有的軌道區(qū)段,按占用-HB/HU-U-LU-L-L2-L3-L4-L5或占用-HB/HUUU/UUS-U2/U2S-LU-L-L2-L3-L4-L5 的碼序順序,依次對進路中所屬閉塞分區(qū)不同的軌道區(qū)段遞推得到其碼序。
Step 3若車站進路中存在過彎(側(cè)線進路)的情形,則軌道區(qū)段可能需降級或升級發(fā)送UU/UUS 碼,此時需基于UU/UUS 碼順序遞推其相鄰軌道區(qū)段的碼序。
Step 4若進路為反向運行,列車按自動站間閉塞制式行車,此時區(qū)間有車占用與空閑時的發(fā)碼規(guī)則不同。區(qū)間空閑時,碼序追蹤方式與正向運行相同;區(qū)間被占用時,出站信號機關(guān)閉,股道及對應咽喉區(qū)段發(fā)HU 碼。此時需結(jié)合本站與鄰站間的閉塞分區(qū)個數(shù)及鄰站邊界區(qū)段的追蹤碼序,分別確定區(qū)間空閑與占用時可能的發(fā)碼情形,據(jù)此遞推得到本進路各軌道區(qū)段碼序。
Step 5每條進路經(jīng)過的首個軌道區(qū)段為本站左側(cè)TCC 內(nèi)方的邊界區(qū)段,根據(jù)其所屬上、下行線路,分別存儲對應邊界區(qū)段的所有邊界碼,供鄰站追蹤使用。
Step 6以終到站為起點,對線路上所有車站逆序遍歷,重復Step 2~Step 5,則可計算得到全線所有下行正向與上行反向運行的軌道區(qū)段碼序。
Step 7根據(jù)Step 1~Step 6 的步驟,同理可計算得到全線車站所有下行反向與上行正向運行的進路碼序,由此完成全線碼序信息的追蹤與遞推。
反向運行的進路碼序遞推過程:獲取前方鄰站邊界區(qū)段的邊界碼,根據(jù)線路拓撲關(guān)系計算本站與前方鄰站間的閉塞分區(qū)個數(shù)n,當n≥8 時,區(qū)間空閑時的邊界碼序只可能為L5 碼;當n=7時,區(qū)間空閑時的邊界碼序只可能為L5 和L4碼,依此類推。根據(jù)n值,確定區(qū)間空閑時進路邊界區(qū)段最低能夠達到的碼序值,則所有的鄰站邊界碼序中,大于等于該碼序值的邊界碼,均按區(qū)間空閑時的發(fā)碼規(guī)則進行遞推;其余小于該碼序值的邊界碼,均按區(qū)間占用時的發(fā)碼規(guī)則遞推進路碼序信息。
按照進路的運行方向分別生成對應格式的碼序表,將每條進路碼序依序填入表格中,并對每行發(fā)碼情形進行說明,具體內(nèi)容填入說明欄中。在表格左上角添加進路走行信息,其格式為:接車進路始端信號機名稱→進路信號機名稱→發(fā)車進路始端信號機名稱→發(fā)車進路終端信號機名稱。若存在變通進路,則在走行信息中額外添加“變通”標注。
根據(jù)全線拓撲結(jié)構(gòu),按區(qū)間(中繼站)或車站TCC 邊界范圍,分別在圖紙中繪制對應的區(qū)間或車站站形。通過線路拓撲關(guān)系查找到本站TCC邊界范圍內(nèi)所有的軌道區(qū)段、信號機、絕緣節(jié)等對象信息,確定首個繪制的軌道區(qū)段及繪制基點,按照拓撲邏輯關(guān)系依序繪制其余信號設備對象的圖元示意,最終將結(jié)果保存并輸出為dwg 格式的文件。
軟件通過一次性讀取所有輸入文件,對線路制式、最高碼序等屬性進行設置,選擇性生成全線或部分車站的碼序表。由于碼序表中的發(fā)碼信息存在一定的重復性,為精簡碼序表內(nèi)容,做以下處理:若一個閉塞分區(qū)中存在多個軌道區(qū)段,在列舉該閉塞分區(qū)中軌道區(qū)段占用的發(fā)碼情形時,只考慮列車經(jīng)行該閉塞分區(qū)的末尾軌道區(qū)段;車站站內(nèi)不逐一列舉各道岔區(qū)段或股道占用的發(fā)碼情形,只列舉出站/進路、進站信號機關(guān)閉(HU)與開放引導(HB)時的發(fā)碼情形;若本站TCC 邊界外方恰好為鄰站的進站信號機,則本站邊界區(qū)段的碼序信息,需結(jié)合鄰站站內(nèi)軌道區(qū)段的碼序及鄰站進站信號機的信號顯示具體分析。例如,當鄰站信號機開放側(cè)向進路時,TCC 邊界處鄰站的站內(nèi)軌道區(qū)段可能存在多個發(fā)碼情形,但此時只列舉與進站信號機開放側(cè)線進路的信號顯示對應的發(fā)碼情形。
該軟件已在京津城際線(北京南城際場-天津城際場)碼序表工程圖紙設計中通過測試,并擬投入大秦線(大同-秦皇島)碼序表圖紙設計中使用。京津線亦莊站的某條進路對應的碼序表生成實例見圖5。
圖5 京津線亦莊站碼序表生成實例
本文以自定義實體的方式將規(guī)范化的站場圖、列控基礎數(shù)據(jù)表及聯(lián)鎖表作為輸入,通過構(gòu)建線路拓撲關(guān)系,實現(xiàn)了全線碼序的追蹤計算。該方式能夠準確計算車站邊界碼序,并繪制簡易站形及進路走行示意,進一步提高了碼序表的編制效率及準確率。