鄭偉
(中鐵第五勘察設(shè)計(jì)院集團(tuán)有限公司,北京102600)
通過聯(lián)鎖系統(tǒng)的需求分析能夠反映聯(lián)鎖軟件與其控制對(duì)象間的直接關(guān)系,利用建模語言實(shí)現(xiàn)聯(lián)鎖系統(tǒng)設(shè)計(jì),可以有效提高軟件的安全性與可靠性。本文首先建立聯(lián)鎖軟件系統(tǒng)的靜態(tài)結(jié)構(gòu)模型,通過用例圖實(shí)現(xiàn)對(duì)聯(lián)鎖機(jī)的用例分析,完成需求建模。其次對(duì)聯(lián)鎖系統(tǒng)的內(nèi)部結(jié)構(gòu)進(jìn)行分析,選取的分析對(duì)象包括信號(hào)機(jī)、道岔、軌道電路區(qū)段和進(jìn)路,研究其聯(lián)鎖邏輯關(guān)系。
在聯(lián)鎖軟件系統(tǒng)設(shè)計(jì)中,對(duì)由人機(jī)對(duì)話層、聯(lián)鎖控制層和執(zhí)行層組成的硬件結(jié)構(gòu)做了簡化,構(gòu)建最小功能系統(tǒng)。人機(jī)會(huì)話層由單上位機(jī)實(shí)現(xiàn),聯(lián)鎖層由單聯(lián)鎖機(jī)構(gòu)成,驅(qū)動(dòng)采集以及室外設(shè)備可均由軟件仿真實(shí)現(xiàn)。
聯(lián)鎖機(jī)的處理過程是聯(lián)鎖軟件的核心,通過對(duì)進(jìn)路處理過程建立活動(dòng)圖來描述這其動(dòng)作轉(zhuǎn)化,如圖1 所示。
圖1 聯(lián)鎖機(jī)軟件活動(dòng)圖
信號(hào)設(shè)備對(duì)象主要包括信號(hào)機(jī)、道岔、軌道區(qū)段和進(jìn)路,在聯(lián)鎖運(yùn)算中需要涉及其狀態(tài)信息,可通過類圖和對(duì)象圖實(shí)現(xiàn)相應(yīng)類和對(duì)象的描述。
對(duì)各信號(hào)設(shè)備對(duì)象之間關(guān)系的描述通過創(chuàng)建類圖實(shí)現(xiàn),如圖2 所示。
圖2 進(jìn)路與信號(hào)機(jī)、道岔和軌道電路關(guān)系類圖
信號(hào)機(jī)作為信號(hào)開放的標(biāo)志,必須保證進(jìn)路的安全防護(hù)。圖2 中,signal 對(duì)象(信號(hào)機(jī))描述了信號(hào)機(jī)編號(hào)(signal_id)、信號(hào)操作按鈕(signal_opr_btn_id)、信號(hào)機(jī)類型(signal_form,列車或調(diào)車信號(hào))、信號(hào)顯示燈光(signal_light)、信號(hào)開放情況(signal_status, 開 放 或 關(guān) 閉)、 信 號(hào) 資 源 占 用 情 況(signal_occupied,進(jìn)路征用或否)、敵對(duì)信號(hào)條件(signal_conflict,是否構(gòu)成敵對(duì))、信號(hào)機(jī)燈絲狀態(tài)(filament_state,燈絲是否斷絲)、曾開放標(biāo)志(signal_opened)等。
道岔位置具有三種狀態(tài),分別為定、反位和四開狀態(tài)。根據(jù)鎖閉方式可分為進(jìn)路鎖閉、區(qū)段鎖閉和單獨(dú)鎖閉。圖2 中可以看到靜態(tài)數(shù)據(jù)結(jié)構(gòu)描述了道岔的道岔編號(hào)(switch_id)、道岔類型(switch_form,單動(dòng)道岔或雙動(dòng)道岔)、道岔實(shí)時(shí)狀態(tài)(switch_status)、雙動(dòng)道岔號(hào)(switch_dle_id)、道岔鎖閉情況(switch_locked)、道岔轉(zhuǎn)換位置(switch_change)、道岔區(qū)段編號(hào)(switch_belong_section_id)等。
圖3 進(jìn)路處理過程協(xié)作圖
圖4 進(jìn)路控制過程活動(dòng)圖
軌道電路是用于檢查區(qū)段是否被占用、監(jiān)督鋼軌是否存在斷軌情況。軌道區(qū)段可以分為無岔區(qū)段、有岔區(qū)段和股道,與進(jìn)路建立和解鎖有密切關(guān)系,通過“三點(diǎn)檢查”來實(shí)現(xiàn)進(jìn)路的分段解鎖。圖2 中描述了軌道區(qū)段編號(hào)(section_id)、區(qū)段實(shí)時(shí)狀態(tài)(section_status)、軌道區(qū)段類型(section_form)、區(qū)段鎖閉標(biāo)志(section_sign_locked)、區(qū)段占用標(biāo)志(section_has_used)、區(qū)段資源征用標(biāo)志(section_occupied)等。
圖5 選路過程順序圖
圖2 中描述了進(jìn)路對(duì)象的屬性,包括進(jìn)路號(hào)(route_id)、進(jìn)路類型(route_form,列車或調(diào)車)、進(jìn)路始端按鈕(opr_btn_start)、進(jìn)路終端按鈕(opr_btn_end)、進(jìn)路變更按鈕(opr_btn_alter)、防護(hù)信號(hào)機(jī)開放名稱(signal_belong_id)、進(jìn)路所含區(qū)段號(hào)(section_belong_route_id)、進(jìn)路中的道岔名稱(switch_belong_id)、進(jìn)路中的道岔類型(switch_belong_type)、是否存在超限區(qū)段(section_transfinite)、超限區(qū)段名稱(section_transfinited_id)等。
文中對(duì)進(jìn)路處理過程進(jìn)行建模,研究進(jìn)路建立過程中各子模塊間的協(xié)作關(guān)系和動(dòng)態(tài)時(shí)序關(guān)系,并對(duì)每一個(gè)子模塊建立相對(duì)應(yīng)的UML 模型。
一次完整進(jìn)路過程由聯(lián)鎖系統(tǒng)的協(xié)作處理通過協(xié)作圖完成,如圖3 所示。
從動(dòng)態(tài)角度而言,利用時(shí)間順序可以看到進(jìn)路之間的處理流程,體現(xiàn)對(duì)象間信息交互的時(shí)序性,該過程由順序圖實(shí)現(xiàn)。圖中以進(jìn)路的一次建立和解除過程為例,調(diào)度員是每次活動(dòng)的發(fā)起者,而活動(dòng)過程則由聯(lián)鎖軟件邏輯來處理。活動(dòng)的逐步觸發(fā)過程由活動(dòng)圖描述,如圖4 所示。
以進(jìn)路選擇階段為例,選路過程主要完成進(jìn)路的選擇和選排一致檢查,包括始終端按鈕的確定、道岔選擇以及道岔位置轉(zhuǎn)換,圖5 所示為選路過程順序圖。
進(jìn)路解鎖過程相較進(jìn)路建立同樣重要。進(jìn)路建立過程中,若因故不能鎖閉進(jìn)路,信號(hào)不能開放,雖影響行車效率,但可以保證安全;但若已鎖閉進(jìn)路因故障原因錯(cuò)誤解鎖,則意味著敵對(duì)進(jìn)路可能建立,危及行車安全。
采用UML 語言對(duì)計(jì)算機(jī)聯(lián)鎖軟件進(jìn)行建模,有助于聯(lián)鎖專業(yè)領(lǐng)域?qū)<液蛙浖_發(fā)人員的交流。文中提出了聯(lián)鎖軟件建模設(shè)計(jì)中各部分的功能需求及靜態(tài)和動(dòng)態(tài)建模方法,但仍存在一些問題有待探究。在基于模型的形式化分析和測(cè)試方面,還需要進(jìn)一步研究和改善。