吳玲英
(上海申通地鐵集團有限公司軌道交通培訓中心,201102,上海∥工程師)
我國城市軌道交通正處于快速發展階段,就上海而言,有多家外國公司參與了上海軌道交通的建設。上海軌道交通1號線采用了美國GRS公司(現為ALSTOM公司的一部分)的列車自動控制(ATC)系統,2號線采用了美國USS公司的技術,6、8、9號線則采用阿爾卡特的基于通信的列車控制(CBTC)系統。各公司的站場數據格式不同、站場仿真界面不同、仿真功能不同,這就需要開發多套仿真系統,以達到對上崗或者在崗人員的培訓目的。站場圖是仿真系統的主視圖,在統一數據格式下自動生成各類制式的站場圖將縮短仿真系統的開發周期。
站場圖由信號機、道岔、軌道、站臺等站場設備圖形組成。這些設備元素之間存在著邏輯關系。圖1所示為上海軌道交通3號線的一段站場圖。

圖1 設備圖形與站場拓撲結構的對應關系
站場圖的繪制,就是要確定各個設備圖形的位置坐標。在站場圖的坐標體系中,首先要確定的是道岔的坐標位置。道岔構成了站場的整體框架,對應于站場拓撲結構中的節點。軌道連接了兩個離散的道岔,軌道的Y坐標由所連接的道岔Y坐標確定,軌道的X坐標根據軌道在道岔間的位置偏移量確定,對應于站場拓撲結構的邊。信號機、站臺等站場設備元素的坐標,由其所隸屬的軌道坐標確定。
通過對站場圖結構的分析,將站場數據結構分為定位層、設備對象層兩層(圖2所示為站場數據的層次結構)。
1)定位層:站場拓撲圖抽象出了站場的整體形狀。如圖2所示,站場圖的設備坐標基于站場拓撲圖的點邊坐標。此層用拓撲圖定位站場設備位置。
2)設備對象層:此層將站場中的每個設備看作獨立的對象,將不同制式站場設備的共性概括出來,作為各對象的基類,再繼承基類的數據結構,擴展出具體制式站場設備的數據結構。

圖2 站場數據的層次結構
站場信息采用XML純文本存儲。XML是一種簡單的數據存儲語言,使用一系列簡單的標記描述數據,其層次結構清晰,易于讀寫與共享。泰雷茲公司的上海軌道交通8號線列車自動監控(ATS)仿真系統即采用XML存儲站場數據。
以下是采用XML純文本保存的信號機的數據結構。
<Signal>
<ID>4101</ID>
<Name>XA</Name>
<EdgeID>3</EdgeID>
<Displacement>200000</Displacement>
<Direction>1</Direction>
<TerritoryID>1</TerritoryID>
</Signal>
其中,標記<EdgeID>存儲了信號機所在邊的ID(編號),標記<Displacement>存儲了信號機在所在邊上的偏移量,標記<Direction>存儲了信號機的方向。
圖3顯示了站場數據實體間的關系:信號機(Signal)實體中JJQD、FirstQD字段代表了信號機的前后設備,道岔(Switch)實體中的 ConPre、ConDW、ConFW字段代表了道岔岔前、定位、反位連接的設備,軌道(Track)ConLeft、ConRight字段代表軌道左右連接的設備。

圖3 數據庫連接關系圖
根據不同線路的ATS系統的特點,開發不同的組件,形成組件庫,以解決不同系統對相同部件表現形式上的差異[1-3]。
構建站場圖組件的首要任務是設計其組件屬性。本文站場圖組件屬性分為靜態屬性和動態屬性兩類。靜態屬性主要指設計組件時可修改,但當站場圖繪制完成時就不可修改的一類屬性;動態屬性主要指設計組件時無需設置,在站場圖的仿真運行過程中可不斷改變的屬性。以上海軌道交通8號線信號機組件為例,其屬性可按如下設置:① 靜態屬性包含信號機名稱、信號機標簽、信號機位置等;② 動態屬性包含以限速前行狀態、引導狀態、未知狀態,故障狀態等。
站場圖的組件定義如下:
class CL8SignalCtrl:public COleControl ∥信號機組件定義
{…}
其中,COleControl類封裝了 MFC(面向對象)的ActiveX控件。所有組件都由此類派生。
信號機組件屬性定義的MIDL代碼如下:
dispinterface_DL8Signal ∥信號機組件
{
properties: ∥靜態屬性
[id(6)]BSTR Name; ∥信號機名稱
[id(3)]BSTR Tag; ∥信號機標簽
[id(1)]short Location; ∥信號機位置
∥動態屬性
[id(2)]short State; ∥信號機狀態
[id(4)]boolean Fault; ∥信號機故障
[id(5)]boolean Approach; ∥信號機接近
…
};
目前ATS仿真系統的站場圖主要通過組件的人工拼接完成。在拼接過程中,需要設置組件的屬性,以及組件與組件之間的位置關系。不同制式ATS仿真系統的站場組件又有所差異,故采用拼接方式的工作量將很大。對組件屬性與組件位置的自動設置,將簡化站場圖生成過程。
據上所述,站場拓撲圖的點對應道岔,邊對應軌道。站場圖繪制的步驟是先繪制道岔,再繪制軌道、信號機、站臺。拓撲頂點的度數為3的點即表示道岔,因此構造拓撲圖的鄰接矩陣。在無向圖中,任一頂點n的度為第n列所有元素的和。兩個道岔的斜股在同一斜邊上,那么這兩個道岔就是雙動道岔,否則為單動道岔。軌道、信號機、站臺根據所在邊的偏移量繪制。圖4為站場圖繪制流程。
列車仿真運行時,根據設備的前后關系繪制列車的位置。當列車跨越區段時,需要知道下一區段的信息,這就要生成組件的前后關系。采用分治的思想,先根據每條拓撲邊,將該拓撲邊上的軌道,由X坐標從小到大依次排序,再由道岔與各邊上的首尾軌道確定前后關系。信號機、站臺的前后關系由所屬的軌道確定。這樣整個站場圖的設備關系就生成了。

圖4 站場圖繪制流程
為了生成不同制式的站場圖,首先要有各制式完備的站場組件庫,然后結合站場拓撲圖、站場自動生成算法,生成站場圖。圖5所示為自動生成的上海軌道交通3號線的一段站場圖,圖6所示為自動生成的上海軌道交通8號線的一段站場圖。

圖5 上海軌道交通3號線的一段站場圖
上述站場圖的自動生成方法是研究了不同制式站場圖的共性,并結合站場圖結構特性,給出自動生成的算法。此方法的實現,為開發人員省去了組件配置及位置關系人工錄入的步驟,簡化了此類仿真系統主視圖的開發過程,為快速開發列車運行仿真培訓系統奠定了基礎。

圖6 上海軌道交通8號線的一段站場圖
[1]段繼華,劉衛.組件化技術在程序設計中的應用[J].無線電通信技術,2003,29(1):57.
[2]王野,郭秀清.基于組件技術的列車自動監控仿真系統開發平臺[J].計算機應用,2007,27(增2):285.
[3]宇鵬,王曉峰,李云飛.Visual C++實踐與提高——ActiveX篇[M].北京:中國鐵道出版社,2001.