?

基于自定義實體的聯鎖表自動生成軟件設計與實現

2023-10-11 15:21姚維文
鐵路計算機應用 2023年9期
關鍵詞:平面布置信號機軌道電路

姚維文,楊 揚

(西南交通大學 信息科學與技術學院,成都 611756)

聯鎖表是體現站場信號設備間聯鎖關系的圖表,根據其展現的進路中道岔、信號機、軌道電路間的制約關系,可實現對站場聯鎖關系的檢查[1]。因此,聯鎖表對確保行車安全,提高行車效率具有重要意義,是軌道交通信號設計領域中的關鍵一環。隨著我國軌道交通事業的蓬勃發展,其信號設計領域的工作量和設計難度與日俱增,迫切需要計算機軟件來輔助提高設計工作的效率與質量。

聯鎖表的生成需要以一張準確規范的站場信號設備布置圖為數據源。目前,國內各大設計院都在升級傳統的制圖方式,不再單純依靠拼接AutoCAD中定義好的圖塊進行繪圖,而是通過ObjectArx 對AutoCAD 進行二次開發,將站場信號設備布置圖中的設備封裝成自定義實體[2],再對其進行拼接,實現平面布置圖的繪制。

本文研發基于自定義實體的聯鎖表自動生成軟件,利用ObjectARX 對AutoCAD 進行二次開發,在AutoCAD 運行環境下,直接以由自定義實體繪制的站場信號設備平面布置圖作為數據輸入[3];同時,軟件通過直接訪問AutoCAD 數據庫[4],調用其中的圖形與文字實體,繪制聯鎖表,從而提高聯鎖表的編制效率及準確性。

1 軟件架構

本文研發的基于自定義實體的聯鎖表自動生成。軟件架構分為數據預處理、聯鎖邏輯運算和人機交互3 個模塊,模塊間數據互通,又相對獨立,如圖1 所示。

圖1 聯鎖表自動生成軟件架構

1.1 數據預處理模塊

該模塊從信號設備平面布置圖中獲取生成聯鎖表所需要的信號設備自定義實體的數據,檢查數據的合法性,并利用讀取的數據生成站場型數據結構。

1.2 聯鎖邏輯運算模塊

該模塊在站場型數據結構上利用深度優先算法,搜索各種可能存在的進路,再根據聯鎖表編制原則對搜索到的進路數據進行差異化處理,并自動生成列車進路、調車進路、延續進路、組合進路、引導進路等5 類聯鎖表。其中,列車進路、調車進路、組合進路在鐵路車站和地鐵車輛段中具有各自獨特的聯鎖需求及數據表現形式,而延續進路聯鎖表僅在鐵路車站中生成,引導進路聯鎖表僅在地鐵車輛段中生成。

1.3 人機交互模塊

該模塊可對圖紙不能提供的站場信息進行補充,實現在高速鐵路(簡稱:高鐵)車站、普速鐵路(簡稱:普鐵)車站、地鐵車輛段等3 種工作模式之間切換,可設置接近鎖閉區段閉塞分區數目,并提供修改自定義實體數據及聯鎖表數據的顯示界面與操作接口。該模塊使得自動生成的聯鎖表數據更加可靠,且能夠根據站場功能特點實現某些特殊的聯鎖表生成需求。

2 軟件功能

2.1 數據預處理

在AutoCAD 中使用自定義實體繪制的站場信號設備平面布置圖是聯鎖表自動生成軟件的數據源與基礎。為保證軟件功能的實現,需要從站場信號設備平面布置圖中獲取相關數據,如表1 所示。

表1 站場信號設備平面布置圖提供的數據

本文將站場信號設備平面布置圖中的軌道電路、信號機、絕緣節、道岔封裝為對應的自定義實體,存放于AutoCAD 數據庫中,而文本信息和塊參照屬性也可通過AutoCAD 數據庫直接訪問,它們都對應一個唯一的身份標識號碼,即AcDbObjectId。軟件通過尋找AcDbObjectId 來訪問對應的對象[5]。

由自定義實體繪制出的站場設備信號平面布置圖能提供更加規范的數據格式。但根據實際項目中的經驗,站場工作人員在設計圖紙時存在很多不確定的因素,如信號設備名稱重復或數據缺失等。為保證后續聯鎖表數據的準確性,軟件在讀取站場信號設備平面布置圖后,需要進行數據的合法性檢查,篩除無效數據,并在人機交互界面上提示錯誤信息。

2.2 站場型數據結構建立

2.2.1 信號設備抽象表示

站場型數據結構是描述站場中信號設備左右位置關系及連接關系的拓撲圖,是進路搜索的基礎。本文軟件將站場中每一個信號設備抽象表示為一個數據節點[6]。在每個信號機和軌道電路對象中封裝有一個左指針(pW)指向左邊連接設備的信息,一個右指針(pE)指向右邊連接設備的信息;在每個道岔對象中封裝有前支指針(pF)、定位指針(pN)、反位指針(pR)分別指向道岔前支、定位和反位連接設備的信息,如圖2 所示。

圖2 自定義實體數據節點

2.2.2 數據節點關聯算法

本文軟件利用由自定義實體繪制的站場信號設備平面布置圖中讀取的坐標數據,生成站場型數據結構,其步驟如下。

(1)將各個軌道電路與兩側絕緣節相關聯:遍歷圖紙中所有絕緣節實體,以絕緣節基點坐標為中心,創建一個邊長為1 的矩形區域對象Rect。如果軌道區段兩端端點的坐標落在Rect 之中,則將此絕緣節信息存入符合條件的軌道電路自定義實體中,如圖3 所示。IAG 軌道電路實體的2 個端點的坐標分別在以JY0 與JY1 為基點創造的矩形區域對象Rect 中,因此,在IAG 實體中記錄其左端絕緣節為JY0,右端絕緣節為JY1。

圖3 軌道電路與絕緣節關聯示意

(2)將軌道電路與信號機相關聯:對信號設備平面布置圖中所有信號機實體,以信號機基點為中心,創建一個邊長為1 的封閉多段線實體pPolyLine。遍歷圖紙中的軌道電路實體,以多段線實體pPolyLine 和某一軌道電路實體為參數,若2 個實體相交,則返回交點坐標,否則繼續判斷其他軌道電路實體與pPolyLine 的相交關系。每個信號機與2 條軌道電路分別產生交點pt1 和pt2,通過對pt1、pt2及信號機D1 基點坐標的橫坐標相比較,可得出軌道電路與信號機左側或是右側相連,并將信息記錄在軌道電路實體與信號機實體中,如圖4 所示。圖4 中,pt1 在D1 基點坐標ptSig 的左側,說明IAG 連接的是D1 信號機左側。

圖4 軌道電路與信號機關聯示意

(3)將軌道電路與道岔相關連:對于圖紙中所有道岔實體,以道岔基點為中心創建一個邊長為1的封閉多段線實體pPolyLine,調用ObjectARX 來判斷pPolyLine 與軌道電路實體是否相交,并求出交點,如圖5 所示。圖5 中,3 號道岔產生的多段線實體與3DG 產生了2 個交點pt1 與pt2,與另一條軌道電路產生一個交點pt3; 道岔側向的軌道電路與pPolyLine 僅相交于一點,因此,pt3 代表3 號道岔反位;計算pt3 與pt1、pt3 與pt2 間的距離,離pt3 距離近的點表示道岔定位,離pt3 距離遠的點表示道岔前支。

圖5 軌道電路與道岔關聯示意

(4)遍歷軌道電路實體,進行區段內部設備位置連接:經過前3 個步驟,每個軌道電路內部都記錄下了其關聯的信號設備及信號設備的具體位置信息。根據這些信息,在軌道電路實體內部從左到右進行信號設備的互相連接。如圖5 中,3DG 內部“D1 右”的右側是“#3 定位”,由此可得出D1 信號機右側連接3 號道岔定位。

上述步驟完畢后,站場信號設備平面布置圖即可抽象表示為站場型數據結構,如圖6 所示。

圖6 站場信號設備平面圖轉換為站場型數據結構示例

2.3 進路搜索

2.3.1 進路搜索的基本原理

為不遺漏站場中任何一條可能存在的進路數據,確保生成聯鎖表數據的完整性,本文軟件基于深度優先搜索(DFS, Depth First Search)算法進行進路搜索。DFS 算法從起點開始,不斷處理最新遇到的節點,并按照一個方向窮盡式搜索,當沿著該方向無法繼續向前搜索時,返回最近一次搜索路徑分岔處,沿著另一方向繼續搜索,該過程類似于列車在進路中從始端信號機出發,不斷經過軌道區段、道岔,最終停止于進路終端的過程。因此,DFS 算法符合進路的生成邏輯。

因聯鎖表中需要記錄基本進路與變通進路的信息,而基本進路一般編寫在變更進路之前,且一般為走道岔直股的進路,所以,為減少對基本進路與變通進路間的排序,本文軟件在搜索進路的過程中,遇到對向道岔而需要選擇搜索方向時,會優先完成道岔直股方向的進路搜索,使基本進路在進路列表中處于變通進路之前。以圖7 為例,搜索以X 為始端信號機的進路,經過5 號道岔處時,路線產生了分叉,本文軟件會繼續沿著5 號道岔直股方向前進,搜索至SI 信號機處才會結束此方向搜索,并回到5號道岔處,進行側向進路搜索。

圖7 進路搜索算法圖示

圖8 進路搜索流程

2.3.2 進路搜索流程

基于DFS 算法思想,在成功建立起站場型數據結構后,進行進路搜索時的流程如8 所示。

(1)選擇進路始端信號機,遍歷存放信號機數據信息的容器(vector),并判斷選中的信號機是否滿足作為進路始端信號機的條件[7]。

(2)按照始端信號機的朝向搜索下一個設備(NextObj),并將NextObj 寫入當前進路的數據中。

(3)判斷NextObj 是否為某個道岔的前支,若是,則需要遞歸調用進路搜索算法,先完成道岔直股方向的進路搜索,再將NxetObj 更新為當前道岔反位連接的設備,恢復遞歸前進路數據后,將道岔反位連接的設備寫入進路數據之中,并重復本步驟;若NextObj 不是道岔前支,則繼續向下運行。

(4)判斷Nextobj 是否滿足作為進路終端的條件,若不滿足,則返回步驟(2);若滿足,則當前進路搜索完成。

(5)判斷是否已遍歷完當前站場中所有信號機,若還未遍歷結束,則返回步驟(1);若已全部遍歷,則當前站場所有進路搜索完畢。

2.4 聯鎖表自動繪制

本文軟件依據中國國家鐵路集團有限公司(簡稱:國鐵集團)頒布的Q/CR 654-2018《計算機聯鎖車站聯鎖圖表編制原則》[8]及車輛段聯鎖表編制原則,輸出DWG 格式的圖紙[9]。每個DWG 文件的全部信息都包括在AutoCAD 數據庫中,AutoCAD 數據庫結構如圖9 所示。DWG 圖紙中顯示的直線、圓、文字等AutoCAD 中預先定義好的實體,以及通過AutoCAD二次開發設計出的自定義實體都記錄在AutoCAD 數據庫塊表中的塊表記錄內。因此,自動繪制聯鎖表的步驟如下。

圖9 AutoCAD 的數據庫結構

2.4.1 確定聯鎖表的繪制格式

聯鎖表數據存放在一個二維字符串數組中,數組的列數與編制原則中聯鎖表列數一一對應,行數代表當前站場的進路總數。先設定每張聯鎖表最多編制的進路數目,再利用當前站場中搜索到的進路總數除以每張聯鎖表中規定的進路數目,即可確定需要繪制多少張聯鎖表;設置字體格式并結合每列聯鎖表數據量的大小,確定每欄聯鎖表寬度;根據聯鎖表張數及每欄數據的寬度,計算多段線與文字實體在圖紙中的坐標。

2.4.2 繪制聯鎖表

通過getBlockTable 函數獲取當前AutoCAD 數據庫中的塊表,利用getAt 函數獲取當前塊表的塊表記錄;根據由聯鎖表數據生成的坐標、寬度、字體格式等數據,在AutoCAD 數據庫中創建多段線實體(AcDbPolyline)繪制聯鎖表的框架,創建文字實體(AcDbText)繪制聯鎖表的具體內容,并利用appendAcDbEntity 函數將創建的實體對象添加到數據庫類對象的塊表記錄中,實現聯鎖表的自動繪制。

2.5 人機數據交互

本文軟件的人機交互界面是基于微軟基礎類庫(MFC,Microsoft Foundation Classes)中的對話框基類(CAcUiDialog)設計的非模態對話框[10]。非模態對話框允許用戶在該對話框和AutoCAD 界面間自由切換焦點,使用場景豐富,界面反應迅速??稍趯υ捒蛑刑砑覤utton 控件來選擇實現不同的功能, 添加Combo-box 控件提供可供修改的數據選項,添加List 控件用于顯示讀取的各類數據及軟件使用過程中出現的錯誤信息。人機數據交互功能包括以下3 個部分。

(1)補充輸入不能從信號設備平面圖讀取的數據,如當前站場的性質、列車控制系統等級、進站信號機接發車制式等信息。

(2)顯示讀取的信號設備自定義實體數據,并提供相應的數據修改接口。

(3)在功能不能正常使用時,提供錯誤的原因,并在使用過程中給予當前狀態提醒及操作提示。

3 軟件界面設計

軟件界面分為站場數據輸入、聯鎖邏輯運算、數據顯示/修改、軟件狀態提示共4 個部分,如圖10所示。每個部分設置了相應的功能按鈕來實現各部分的功能。在用戶使用過程中,軟件狀態提示部分會記錄下用戶已操作的所有步驟,并給出下一步操作提示;當用戶操作出現錯誤時,給出對應的錯誤提醒,確保軟件正常運行。

圖10 軟件界面

站場屬性設置界面如圖11 所示,用戶可根據當前站場類型選擇生成普鐵、高鐵或地鐵車輛段的聯鎖表圖紙。用戶通過該界面與圖紙中自定義實體進行數據交互。以修改信號機自定義實體屬性為例,界面如圖12 所示,通過List 控件展示所有信號機自定義實體屬性,在每列屬性欄中使用combo-box 控件提供相應的選項來修改實體數據,方便用戶在AutoCAD 圖紙數據出錯時及時修正。

圖11 站場屬性設置界面

圖12 信號機實體屬性修改界面

4 軟件實現

4.1 軟件配置文件與運行環境

本文軟件采用Microsoft Visual Studio 2012 作為開發平臺,以C++為基礎進行面向對象的程序設計[10],基于自定義實體的交互邏輯進行開發,預留出與自定義實體適配的管理類,軟件配置文件與運行環境如圖13 所示。為確保軟件在AutoCAD 中能夠與由自定義實體繪制的站場信號設備平面布置圖正常交互,需要信號設計方提供信號設備自定義實體的頭文件與實現實體功能的靜態鏈接庫。頭文件和靜態鏈接庫中定義了每種自定義實體的交互接口,通過自定義實體的交互接口與軟件的自定義實體管理類互相配合,搭建起軟件與信號設備平面布置圖之間的雙向數據通道,實現信號設備平面布置圖和軟件的實時交互,并使軟件能夠在AutoCAD 環境中與由自定義實體繪制的信號設備平面布置圖一體化運行。

圖13 軟件配置文件與運行環境

4.2 軟件試用情況

在普鐵/高鐵模式下,本文軟件在讀取使用自定義實體繪制的站場信號設備平面布置圖后,可生成列車進路聯鎖表、調車進路聯鎖表、組合進路聯鎖表、延續進路聯鎖表、非調車進路聯鎖表共5 類聯鎖表;在地鐵車輛段模式下,軟件能生成列車進路聯鎖表、調車進路聯鎖表、組合進路聯鎖表、引導進路聯鎖表共4 類聯鎖表。本文選擇了5 個普鐵車站、3 個高鐵車站、2 個地鐵車輛段對軟件的通用性與準確性進行測試,并將軟件自動生成的聯鎖表與經過設計院核對的聯鎖表數據進行對比,實驗結果如表2 所示。

實驗結果表明,自動生成的聯鎖表準確率超過99%,且具有較高的通用性,可適應普鐵車站、高鐵車站、地鐵車輛段等3 種工作模式。

5 結束語

本文研發的基于自定義實體的聯鎖表自動生成軟件,通過直接訪問AutoCAD 數據庫的方式讀取由自定義實體繪制的站場信號設備平面布置圖的數據,運用實體的坐標數據自動建立站場型數據結構,搜索站場進路信息,根據標準的聯鎖表編制原則處理獲取到的進路數據,并且直接調用AutoCAD 數據庫中多段線及文字實體生成聯鎖表圖紙。該軟件不僅能提高聯鎖表自動生成的速度,且能檢測信號設備平面布置圖中的設計錯誤,通過友好的人機交互界面,實現用戶操作與站場信號設備平面布置圖間的數據互聯互通,提高軌道交通信號設計人員的工作效率。

猜你喜歡
平面布置信號機軌道電路
探討高層建筑總平面布局和消防設計平面布置
基于HHT及LCS的軌道電路傳輸變化識別探討
駝峰信號機與駝峰輔助信號機顯示不一致問題分析
四顯示自動閉塞通過信號機在TDCS/CTC采集電路中存在的問題及改進
基于仿真技術的信號平面布置驗證
JXG-50S型相敏軌道電路接收器自動測試臺
ZPW-2000客專軌道電路掉碼故障分析
110kV戶外GIS變電站總平面布置優化
半自動閉塞總出發信號機非正常關閉解決方案
25Hz相敏軌道電路的計算和仿真
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合