鄭偉
(中鐵第五勘察設計院集團有限公司,北京102600)
通過聯鎖系統的需求分析能夠反映聯鎖軟件與其控制對象間的直接關系,利用建模語言實現聯鎖系統設計,可以有效提高軟件的安全性與可靠性。本文首先建立聯鎖軟件系統的靜態結構模型,通過用例圖實現對聯鎖機的用例分析,完成需求建模。其次對聯鎖系統的內部結構進行分析,選取的分析對象包括信號機、道岔、軌道電路區段和進路,研究其聯鎖邏輯關系。
在聯鎖軟件系統設計中,對由人機對話層、聯鎖控制層和執行層組成的硬件結構做了簡化,構建最小功能系統。人機會話層由單上位機實現,聯鎖層由單聯鎖機構成,驅動采集以及室外設備可均由軟件仿真實現。
聯鎖機的處理過程是聯鎖軟件的核心,通過對進路處理過程建立活動圖來描述這其動作轉化,如圖1 所示。

圖1 聯鎖機軟件活動圖
信號設備對象主要包括信號機、道岔、軌道區段和進路,在聯鎖運算中需要涉及其狀態信息,可通過類圖和對象圖實現相應類和對象的描述。
對各信號設備對象之間關系的描述通過創建類圖實現,如圖2 所示。

圖2 進路與信號機、道岔和軌道電路關系類圖
信號機作為信號開放的標志,必須保證進路的安全防護。圖2 中,signal 對象(信號機)描述了信號機編號(signal_id)、信號操作按鈕(signal_opr_btn_id)、信號機類型(signal_form,列車或調車信號)、信號顯示燈光(signal_light)、信號開放情況(signal_status, 開 放 或 關 閉)、 信 號 資 源 占 用 情 況(signal_occupied,進路征用或否)、敵對信號條件(signal_conflict,是否構成敵對)、信號機燈絲狀態(filament_state,燈絲是否斷絲)、曾開放標志(signal_opened)等。
道岔位置具有三種狀態,分別為定、反位和四開狀態。根據鎖閉方式可分為進路鎖閉、區段鎖閉和單獨鎖閉。圖2 中可以看到靜態數據結構描述了道岔的道岔編號(switch_id)、道岔類型(switch_form,單動道岔或雙動道岔)、道岔實時狀態(switch_status)、雙動道岔號(switch_dle_id)、道岔鎖閉情況(switch_locked)、道岔轉換位置(switch_change)、道岔區段編號(switch_belong_section_id)等。

圖3 進路處理過程協作圖

圖4 進路控制過程活動圖
軌道電路是用于檢查區段是否被占用、監督鋼軌是否存在斷軌情況。軌道區段可以分為無岔區段、有岔區段和股道,與進路建立和解鎖有密切關系,通過“三點檢查”來實現進路的分段解鎖。圖2 中描述了軌道區段編號(section_id)、區段實時狀態(section_status)、軌道區段類型(section_form)、區段鎖閉標志(section_sign_locked)、區段占用標志(section_has_used)、區段資源征用標志(section_occupied)等。

圖5 選路過程順序圖
圖2 中描述了進路對象的屬性,包括進路號(route_id)、進路類型(route_form,列車或調車)、進路始端按鈕(opr_btn_start)、進路終端按鈕(opr_btn_end)、進路變更按鈕(opr_btn_alter)、防護信號機開放名稱(signal_belong_id)、進路所含區段號(section_belong_route_id)、進路中的道岔名稱(switch_belong_id)、進路中的道岔類型(switch_belong_type)、是否存在超限區段(section_transfinite)、超限區段名稱(section_transfinited_id)等。
文中對進路處理過程進行建模,研究進路建立過程中各子模塊間的協作關系和動態時序關系,并對每一個子模塊建立相對應的UML 模型。
一次完整進路過程由聯鎖系統的協作處理通過協作圖完成,如圖3 所示。
從動態角度而言,利用時間順序可以看到進路之間的處理流程,體現對象間信息交互的時序性,該過程由順序圖實現。圖中以進路的一次建立和解除過程為例,調度員是每次活動的發起者,而活動過程則由聯鎖軟件邏輯來處理。活動的逐步觸發過程由活動圖描述,如圖4 所示。
以進路選擇階段為例,選路過程主要完成進路的選擇和選排一致檢查,包括始終端按鈕的確定、道岔選擇以及道岔位置轉換,圖5 所示為選路過程順序圖。
進路解鎖過程相較進路建立同樣重要。進路建立過程中,若因故不能鎖閉進路,信號不能開放,雖影響行車效率,但可以保證安全;但若已鎖閉進路因故障原因錯誤解鎖,則意味著敵對進路可能建立,危及行車安全。
采用UML 語言對計算機聯鎖軟件進行建模,有助于聯鎖專業領域專家和軟件開發人員的交流。文中提出了聯鎖軟件建模設計中各部分的功能需求及靜態和動態建模方法,但仍存在一些問題有待探究。在基于模型的形式化分析和測試方面,還需要進一步研究和改善。