王慶勝,杜建新,朱 罕,張興超
(上海富欣智能交通控制有限公司,上海 201203)
軌道交通軟件開發中的數據結構定義方法
王慶勝,杜建新,朱 罕,張興超
(上海富欣智能交通控制有限公司,上海 201203)
本文介紹一種軌道交通軟件開發中的數據結構定義方法,步驟包括:形成設備基礎信息表;形成設備對象到邊及控制區域的第二索引表。采用這種數據描述方法能減少映射表的使用,使數據操作簡單、一致和方便,符合軌道交通軟件開發對數據的實時性和安全性的要求。
數據結構;軌道交通;實時性
在軟件開發過程中,數據結構是軟件成功的關鍵,軌道交通中數據結構的設計需要符合一定的標準,如EN50128標準。EN50128中的安全規則具有數據安全、無動態內存等特點,它強制不能使用動態分配內存,減少指針的使用及盡量提高軟件的實時性。
軌道交通中線路數據需要存儲到軟件內部,供軟件在特定條件下進行線路數據的查找、排序及計算使用,軌道交通軟件開發中的數據結構通常由兩種用途的表組成:
(1)基礎信息表:設備(信號機,信標,站臺,計軸區段等)或邏輯元素(限速區段,坡度等)的屬性信息;
(2)設備索引表:設備在邊(Edge),控制區域(ZC, Zone Control)的范圍表。
前者主要是設備及邏輯元素的各類信息,包括位置,方向,屬性值。后者主要是通過邊,控制區域對設備及邏輯元素進行查找。
軌道交通中的線路拓撲圖如圖1所示。為有向圖且包括一系列的節點和具有方向的邊,圖1中的節點都用“節點”加一個數字表示,邊都用“邊”加一數字表示。每個邊和節點在系統中獨一無二地定義,用這種方式來描述軌道的連接關系和朝向;每個節點都有一個物理的約束來限制可以穿越它的路徑的數量,有向圖會保存從指定的邊沿著指定的方向到達的下一條邊。典型的數據結構(設備基礎信息)是表達設備(或者邏輯元素)在線路上的具體位置的,可以是一個坐標點或者標明起始點及終點的區域信息。
圖2說明了一個典型的數據結構定義方式。表(Elem Record Array)由多個設備對象組成,設備對象對應于設備基礎信息表的一行,每個設備對象定義了設備或邏輯元素的屬性,圖中每個設備對象的含義是:{設備ID,{方向,所在邊的ID,起始點,終點}},如圖2第1行的設備對象為{1,{ORIENT_POSITIVE_common,1,0,168499 }},其中設備ID為1,ORIENT_POSITIVE_common表示正方向,邊的ID為1;區域表示設備在所對應的邊上的占用區域,用在設備在邊上的一個起點和一個終點表示,如圖2第1行的設備對象的區域的起始點為0,區域的終點為168499。這樣就由多個所述設備對象形成一個數組,每個所述設備對象為該數組的一個元素。

圖1 線路拓撲圖

圖2 設備基礎信息表
為了方便在邊及控制區域上查找到對應的設備信息,需要對邊或者控制區域上的設備進行索引。如圖3所示,是現有設備對象到邊/控制區域的索引表示意圖。以圖3(a)為例,設備對象到邊的索引表(Elem in Edge)由多個行組成,每一個行的含義為對應邊上的設備索引號即{設備索引號起點,設備索引號終點}。如行中的第一行為{0,3},對應于圖2中的邊的ID為1的4個所述設備對象,設備索引號起點0對應于設備ID1,設備索引號終點3對應于設備ID4。區域控制索引表也是如此。

圖3 (b)設備在控制區域中的索引表

圖3 (a)設備在邊上的索引表
但在實際線路中,往往還有更加復雜的情況,例如各設備對象的設備ID并不是按照邊的ID,區域的ID來進行排序的,這樣就出現了另外兩張映射表,如圖4所示,是現有設備對象到邊的索引關系示意圖;在圖2所示的設備基礎信息表和圖3(a)所示的設備對象到邊的索引表之間還增加了一個索引表即Map Index in Edge,索引表顯示了設備基礎信息表的設備ID和索引表的設備索引號之間的映射關系,相互對應的設備基礎信息表的設備ID和索引表的設備索引號之間用虛線相連,索引表中的前4行對應到索引表的第1行中,索引表中的后2行對應到索引表的第2行中。

圖4 設備信息對應到邊的關系說明圖
如圖5所示,是現有設備對象到區域的索引關系示意圖;在圖2所示的設備基礎信息表和圖3(b)所示的設備對象到區域的索引表之間還增加了一個索引表即Map Index in ZC,索引表顯示了設備基礎信息表的設備ID和索引表的設備索引號之間的映射關系,相互對應的設備基礎信息表的設備ID和索引表的設備索引號之間用虛線相連,索引表中的前3行對應到索引表的第1行中,索引表中的后3行對應到索引表的第2行中。
由上可知,當實際線路比較復雜時,各設備對象的設備ID并不是按照邊的ID或區域的ID來進行排序的,這會使得映射關系變得復雜,索引表增多。而索引表的增多,會使得軟件中指針的使用增多,軟件的實時性較差,安全性也較差與軌道交通軟件開發的要求不相符。隨著后期數據的刪減,也將帶來數據表維護過多,容易出現錯誤的問題。

圖5 設備信息對應到控制區域的關系說明圖

圖6 設備信息對應到邊/控制區域的關系說明圖
本文采用的設備信息與邊/控制區域對應的關系說明如圖6所示。具體的查找方式是:
(1) 根據軌道交通中所采用的真實設備、由行車需要而劃分的虛擬區域及信息形成相對應的設備對象,由各所述設備對象組成設備基礎信息表,所述設備基礎信息表的各所述設備對象的屬性信息包括設備ID、邊、方向和區域,所述設備ID為對應的所述真實設備、所述虛擬區域或所述信息的標識符,所述邊和所述真實設備、所述虛擬區域或所述信息所處的邊相對應,所述方向為所述邊的方向,所述區域和所述真實設備、所述虛擬區域或所述信息所處的區域相對應。
(2)形成所述設備對象到所述邊的第一索引表,方法為:遍歷所述設備基礎信息表中的每一個所述設備對象,將所述設備基礎信息表中所述邊和所述方向相同的所述設備對象篩選出來、將所篩選出來的所述設備對象的所述設備ID進行排序并寫入到所述第一索引表中并形成所述第一索引表中的一行。
(3)形成所述設備對象到所述控制區域的第二索引表,方法為:遍歷所述設備基礎信息表中的每一個所述設備對象,將所述設備基礎信息表中所述區域相同的所述設備對象篩選出來、將所篩選出來的所述設備對象的所述設備ID進行排序并寫入到所述第二索引表中,形成所述第二索引表中的一行。
本方法在軌道交通的一個子系統的軟件中實施后,將原來數據結構中定義的56張數據表結構減少到了37張,同時也減少了處理數據表的函數數量及復雜度,數據定義的代碼行數減少了25%。在減少了操作的復雜度的同時增加了操作的一致性,對于理解和維護數據表結果有現實意義。
[1]嚴蔚敏,吳偉民. 數據結構(C語言版)[M]. 北京:清華大學出版社,2011.
[2]朗宗棪,曾小清,姜季生. 軌道交通信號控制基礎[M].上海:同濟大學出版社,2007.
責任編輯 方 圓
Data structure def i nition in software development of Urban Transit
WANG Qingsheng, DU Jianxin, ZHU Han, ZHANG Xingchao
( Shanghai Fuxin Intelligent Traff i c Control Co., LTD, Shanghai 201203, China )
This paper introduced a method of data structure definition in software development of Urban Transit, which included the following step, such as building up the device basic information table, forming up the map table from device object to edge or zone control. The table usage could be reduced by using this method. It was simplicity, consistently and conveniently in operating. This method could meet the requirement of real-time and safety in software development of Urban Transit.
data structure; Urban Transit; real-time
U2∶TP39
A
1005-8451(2014)12-0046-03
2014-06-01
上海市科學技術委員會軌道交通運控系統定位技術研究及驗證(13511503100)。
王慶勝,高級工程師;杜建新,工程師。