趙 剛 林炳躍 崔瑩瑩 王 飛
目前,國內動車段、動車運用所調車計劃的編制,主要利用Excel表格工具完成,并通過傳真與各檢修車間以及運輸部門交互。這種計劃編制方式工作效率低、信息不能共享、計劃變更流程繁瑣。隨著全國高鐵線路的不斷建設,動車組開行數量不斷增加,上述缺點越發突出,尋求行車指揮計劃的信息化、智能化方案,輔助目前的檢修作業和調車作業的計劃編制非常必要。
動車段 (所)調車計劃輔助編制系統 (以下簡稱系統),使用信息化方式存儲和共享計劃數據,調度人員使用定制的計劃軟件,編制和錄入計劃數據。數據通過以太網傳輸到服務器,持久化存儲為某一版本的文件。通過服務器,其他終端可獲取這一版本的數據,并可對其進行修改和再次提交。為了滿足用戶現有的使用習慣,兼容現有作業流程,系統軟件針對不同段 (所)的特點進行定制化設計,可提供計劃沖突判斷、股道運用提示等智能輔助功能,并以現有Excel格式打印。
系統由前臺終端和后臺服務器設備構成,主要包括:計劃編制終端、計劃接收終端、消息服務器、應用服務器和網絡設備等。系統結構設計如圖1所示。
計劃編制終端具有獲取計劃、編制計劃和提交計劃3種權限。計劃接收終端只具備獲取計劃功能。消息服務器作為數據轉發的核心節點,管理所有計劃軟件連接,并處理計劃軟件的相關數據請求。應用服務器是計劃數據的業務核心節點,提供計劃數據的解析、版本管理、數據持久化等。作業圖表軟件將計劃以計劃線的形式展現,如果配合上接發車計劃數據,可以形成完整的動車組移動軌跡。

圖1 系統結構圖
計劃編制軟件是前臺,提供計劃編制、計劃發布、保存模板、導出Excel以及股道占用時間和沖突提示等功能。主要采用表格控件實現計劃數據展示功能,通過自定義的編輯區域,對數據進行編輯和修改,同時通過圖形方式提示股道運用沖突。軟件界面示意如圖2所示。

圖2 計劃編制軟件界面
不同動車段 (所)在計劃編制流程和使用習慣上存在差異,軟件設計既要支持界面布局和數據修改項的靈活變換,又要兼容到統一的后臺計劃數據結構中。因此,軟件要有很高的適應性,這樣才能在大規模的部署應用中,既使用戶感受到定制化開發帶來的良好用戶體驗,又降低了多分支開發的復雜度和維護難度。
消息服務器主要采用TCP消息協議來完成數據轉發的功能。消息服務器只負責業務數據轉發,不對傳輸的數據進行分析和修改,其功能示意圖如圖3所示。

圖3 消息服務器功能示意圖
消息服務器處于星狀拓撲接口的中心位置,對多條鏈接有集中控制的功能,包括鏈接狀態信息的顯示和不同業務數據轉發控制的功能。為了提高數據轉發效率,采用了環形接收緩沖和異步數據發送技術。
應用服務器主要完成數據的版本管理和終端數據版本同步。當數據從消息服務器傳輸過來,應用服務器將數據解析,組裝成數據對象,并在其中增加版本信息,之后將數據對象序列化成二進制文件,保存在本地磁盤中待用,應用服務器功能示意如圖4所示。
版本的定義方式是采用本機時間加數據班次信息。應用服務器會從終端的心跳信息中判斷是否要將數據推送給某個終端。當心跳中帶有的數據信息版本低于應用服務器當前的數據版本,應用服務器會主動將最新的計劃數據發送給該終端。

圖4 應用服務器功能示意圖
計劃數據作為系統的核心數據需要持久化存儲。一般的持久化存儲方案是采用數據庫,但本系統如采用數據庫存儲,會遇到數據表格式和數據訪問層接口的維護問題。因為當系統部署到不同動車段 (所),各個軟件版本不盡相同,使用數據庫存儲計劃數據時,不同版本軟件的數據庫表結構將會存在差異,從而導致數據訪問層代碼也會有不同版本,這在一定程度上增加了開發和維護成本。
為了回避以上問題,系統采用二進制序列化的持久化數據存儲方式。二進制序列化是.Net平臺下穩定的、抽象層次更高的、與對象結構無關的通用方法。采用該方式可以不用編寫大量的數據訪問層代碼,并且當計劃數據對象變更時,不用改變任何持久化邏輯代碼。當然該方式有存儲的數據文件無法直接閱讀、文件的檢索效率不如數據庫高的缺點,但對系統應用影響不大。
每個班次制定本班次時間內的調車計劃,計劃數據需要根據調度班次劃分版本。隨著作業計劃不斷執行,當發生檢修超時或者臨時變更檢修計劃等情況,以及其他不可控因素,都會使最終的實際調車作業偏離計劃預期,一般這種偏離被控制在本班次可以控制的范圍內。當班次更換時,上一個班次的計劃就過期了。新班次的計劃是將最新的變化因素考慮進去并制定之后的計劃,這樣本來應該是連續不間斷的調車計劃,將被分解為按班次劃分的白班和夜班計劃。而當同一個班次內的計劃也需要重新編排時,班次內的計劃也將形成新的版本。不斷更新的計劃版本,給計劃系統帶來多版本計劃融合的難題。
解決方案是由系統的應用服務器產生計劃版本號,所有的新計劃都是通過應用服務器打上版本號后才能被發布。版本號由時間戳和班次類型2個關鍵詞構成,同時也是計劃數據序列化為二進制文件的文件名。系統維持最新的一套計劃數據在各個終端同步和傳輸。當計劃預期與實際執行結果的偏差在可控范圍內時,只需在執行時對當前計劃稍作調整,等待下一個班次計劃糾正之前的偏差即可。當計劃接收終端需要對新的計劃和現有計劃進行融合時,軟件提供了計劃數據字段比對提示功能,由用戶手動融合相同車組的不同調車數據,簡化了人工比對的工作量,并且保證不會造成數據錯誤和數據冗余。
該系統已經成功應用在北京、武漢和廣州動車段。從實際應用情況看,基本滿足了設計的要求,提供了友好的用戶交互界面,并且可以實現界面功能定制開發。以TCP協議為基礎的數據傳輸結構穩定而高效,計劃數據結構擴展性強,基于版本控制的計劃管理和序列化數據存儲設計,降低了開發和維護成本。隨著動車段 (所)檢修業務量的不斷增長,業務流程的不斷優化,該系統在多終端分布式結構擴展、數據并發修改、多數據版本智能融合等方面還要繼續研發和改進。
[1] 蘇慶,李忠良,吳偉民.在C#.NET下實現數據導入Excel的方法研究[J].計算機與現代化,2011(4).
[2] 飛頡經緯.基于C#的自動生成 Word文檔的開發[J].科技創新導報,2010(3).
[3] 黎浩東.鐵路編組站階段計劃編制研究綜述[J].鐵道學報,2011(8):15.
[4] 蔣繼磊,楊志杰.動車組運用計劃編制及其優化[J].鐵道運輸與經濟,2010(4).
[5] 丁昆,崔磊.鐵路調車計劃圖形編制法[J].鐵道貨運,2006(6):10.
[6] 王雅琳,周穎,雷友誠,等.基于 MVC的調車作業計劃輔助編制系統[J].計算機工程,2010(11):05.
[7] 史建中,周通.編組站綜合自動化系統的信息共享平臺建設[J].鐵道通信信號,2011(3):65-67.
[8] 宋鵬飛,魏博.動車段編組系統于CTC接口的實現[J].鐵道通信信號,2011(6):17-20.
[9] 王俊.動車段調車防護系統設計方案[J].鐵道通信信號,2012(8):13-14.