于 瀟,錢(qián) 婳,臧永立,王 鯤
(中國(guó)鐵道科學(xué)研究院 通信信號(hào)研究所,北京 100081)
基于面向?qū)ο蠹夹g(shù)的CBTC系統(tǒng)聯(lián)鎖監(jiān)控機(jī)軟件模塊設(shè)計(jì)
于 瀟,錢(qián) 婳,臧永立,王 鯤
(中國(guó)鐵道科學(xué)研究院 通信信號(hào)研究所,北京 100081)
隨著鐵路的高速發(fā)展以及計(jì)算機(jī)聯(lián)鎖系統(tǒng)在城市軌道交通中的應(yīng)用,計(jì)算機(jī)聯(lián)鎖系統(tǒng)在鐵路運(yùn)輸中發(fā)揮的作用日益增加。本文結(jié)合面向?qū)ο筌浖_(kāi)發(fā)的特點(diǎn),簡(jiǎn)述面向?qū)ο蠹夹g(shù)在計(jì)算機(jī)聯(lián)鎖監(jiān)控機(jī)軟件開(kāi)發(fā)中的應(yīng)用。
聯(lián)鎖系統(tǒng);面向?qū)ο?;監(jiān)控機(jī);軟件設(shè)計(jì)
計(jì)算機(jī)聯(lián)鎖系統(tǒng)負(fù)責(zé)處理進(jìn)路內(nèi)的道岔、信號(hào)機(jī)和軌道電路之間安全聯(lián)鎖關(guān)系,接收列車(chē)自動(dòng)監(jiān)控(ATS)或者操作員的控制指令,向列車(chē)自動(dòng)防護(hù)(ATP)、ATS輸出聯(lián)鎖信息。計(jì)算機(jī)聯(lián)鎖是地鐵信號(hào)系統(tǒng)的安全核心,對(duì)提高地鐵運(yùn)營(yíng)效率、自動(dòng)化程度、管理水平以及減少行車(chē)指揮調(diào)度人員的工作強(qiáng)度具有直接的影響。監(jiān)控機(jī)作為聯(lián)鎖系統(tǒng)的人機(jī)接口,其功能包括:站場(chǎng)信息顯示,重要信息存儲(chǔ),提供聯(lián)鎖人機(jī)交互接口和多設(shè)備接口。在基于通信的列車(chē)控制(CBTC)系統(tǒng)中,監(jiān)控機(jī)操作的對(duì)象數(shù)要比傳統(tǒng)計(jì)算機(jī)聯(lián)鎖中復(fù)雜。對(duì)監(jiān)控機(jī)的軟件開(kāi)發(fā)也有著更高的要求,把面向?qū)ο蟮能浖_(kāi)發(fā)思想應(yīng)用于監(jiān)控機(jī)開(kāi)發(fā)無(wú)疑會(huì)提高軟件開(kāi)發(fā)效率,提高系統(tǒng)的安全性。
客觀世界是由各種各樣的事物所組成的,各種各樣的事物即為“對(duì)象”,每個(gè)事物都有自己的靜態(tài)特性和動(dòng)態(tài)行為,不同事物間的相互關(guān)系和相互作用就構(gòu)成了各種不同的系統(tǒng),進(jìn)而構(gòu)成了整個(gè)客觀世界。人們?yōu)榱烁玫卣J(rèn)識(shí)客觀世界,把具有相似靜態(tài)特征和動(dòng)態(tài)行為的事物結(jié)合為一個(gè)種類(lèi),這就形成了“類(lèi)”。這里的類(lèi)是具有相似靜態(tài)特征和動(dòng)態(tài)行為的事物的抽象,客觀世界就是由不同類(lèi)的事物以及他們之間相互聯(lián)系和相互作用構(gòu)成的一個(gè)整體。
計(jì)算機(jī)軟件就是為了模擬和描述客觀世界的事物及他們之間的聯(lián)系,使客觀世界中各種系統(tǒng)通過(guò)計(jì)算機(jī)得以描述和實(shí)現(xiàn)。這種以類(lèi)和對(duì)象的方式認(rèn)識(shí)客觀世界的思想就是面向?qū)ο笏枷搿?/p>
監(jiān)控機(jī)應(yīng)用軟件采用自頂向下的設(shè)計(jì)方法進(jìn)行模塊化設(shè)計(jì),以實(shí)現(xiàn)監(jiān)控機(jī)的功能需求。
監(jiān)控機(jī)的主要功能:(1)提供信號(hào)值班員操作和顯示界面,值班員通過(guò)鼠標(biāo)向監(jiān)控機(jī)傳遞控制意圖,在監(jiān)控機(jī)進(jìn)行必要的邏輯處理后,將控制命令發(fā)送給聯(lián)鎖機(jī),同時(shí)監(jiān)控機(jī)接收聯(lián)鎖機(jī)發(fā)來(lái)的站場(chǎng)信號(hào)設(shè)備的狀態(tài)信息,并顯示。(2)給ATS提供接口,接收ATS的操作命令轉(zhuǎn)發(fā)給聯(lián)鎖,并將聯(lián)鎖的狀態(tài)信息傳輸給ATS顯示。
2.1 外部連接關(guān)系
監(jiān)控機(jī)分監(jiān)控A機(jī)和監(jiān)控B機(jī),以主備方式連接到聯(lián)鎖網(wǎng)絡(luò)中。聯(lián)鎖網(wǎng)絡(luò)采用雙網(wǎng)冗余方式,每臺(tái)監(jiān)控機(jī)分別連接到2系網(wǎng)絡(luò)中。監(jiān)控機(jī)與ATS系統(tǒng)采用串行通信方式,監(jiān)控機(jī)與2系A(chǔ)TS均有通信。其連接關(guān)系如圖1所示。
圖1 監(jiān)控機(jī)的連接關(guān)系
2.2 軟件模塊劃分
監(jiān)控機(jī)采用嵌入式Windows XP操作系統(tǒng),軟件開(kāi)發(fā)工具為Delphi6。
如圖2所示,監(jiān)控機(jī)軟件設(shè)主程序模塊,用于調(diào)度管理以太網(wǎng)1通信模塊、以太網(wǎng)2通信模塊、串口通信模塊、用戶(hù)程序處理模塊和時(shí)鐘校準(zhǔn)處理模塊。
用戶(hù)程序處理模塊完成顯示處理模塊、操作處理模塊和報(bào)警處理模塊實(shí)例的創(chuàng)建和初始化設(shè)置。接收主程序模塊的運(yùn)行命令啟動(dòng)顯示處理模塊、操作處理模塊和報(bào)警處理模塊的工作。
以太網(wǎng)1通信模塊控制監(jiān)控機(jī)中2塊以太網(wǎng)通信卡中的1塊,通過(guò)用戶(hù)數(shù)據(jù)報(bào)協(xié)議(UDP),完成以太網(wǎng)通信卡的初始化并定時(shí)查詢(xún)?cè)摼W(wǎng)卡的接收、發(fā)送緩沖區(qū),接收主程序模塊的運(yùn)行命令并發(fā)送給其他子系統(tǒng),以及接受其他子系統(tǒng)傳輸?shù)男畔⒉鬟f給主程序模塊,實(shí)現(xiàn)監(jiān)控機(jī)與其他子系統(tǒng)的以太網(wǎng)通信。通過(guò)以太網(wǎng)1通信模塊與監(jiān)控機(jī)進(jìn)行交互的有聯(lián)鎖(IL)子系統(tǒng)、維修機(jī)(MT)子系統(tǒng)。
以太網(wǎng)2通信模塊控制監(jiān)控機(jī)中2塊以太網(wǎng)通信卡中的另外一塊,通過(guò)UDP,完成以太網(wǎng)1通信模塊同樣的功能。以太網(wǎng)2通信模塊與以太網(wǎng)1通信模塊的軟件結(jié)構(gòu)完全一致。
串口通信模塊完成ATS通信模塊實(shí)例的創(chuàng)建和初始化設(shè)置,接收主程序模塊的運(yùn)行命令,啟動(dòng)監(jiān)控機(jī)與外接系統(tǒng)的串口通信。
時(shí)鐘校準(zhǔn)處理模塊完成本地時(shí)鐘的校準(zhǔn)操作。
監(jiān)控機(jī)軟件結(jié)構(gòu)如圖2所示。
圖2 監(jiān)控機(jī)軟件結(jié)構(gòu)框圖
2.3 模塊間數(shù)據(jù)流
模塊間數(shù)據(jù)流如圖3所示。
圖3 監(jiān)控機(jī)主要模塊數(shù)據(jù)流圖
以太網(wǎng)1通信模塊和以太網(wǎng)2通信模塊均與時(shí)鐘校準(zhǔn)處理模塊交互時(shí)鐘信息。將從聯(lián)鎖系統(tǒng)(LS)子系統(tǒng)接收的站場(chǎng)(ST)信息傳輸給顯示處理模塊,顯示處理模塊將此信息作為站場(chǎng)顯示的依據(jù)。時(shí)鐘信息來(lái)源為MT子系統(tǒng)。
串口通信模塊與時(shí)鐘校準(zhǔn)處理模塊交互時(shí)鐘信息。
顯示處理模塊將站場(chǎng)顯示信息傳輸給串口通信模塊。串口通信模塊最終將此信息通過(guò)串口傳輸給ATS系統(tǒng),作為ATS顯示站場(chǎng)的依據(jù)。
操作處理模塊將操作員下達(dá)的操作命令傳輸給以太網(wǎng)1通信模塊。以太網(wǎng)1通信模塊最終將此命令通過(guò)以太網(wǎng)傳輸給IL子系統(tǒng)。
以太網(wǎng)2通信模塊將報(bào)警信息傳輸給報(bào)警處理模塊。
報(bào)警處理模塊將報(bào)警信息傳輸給串口通信模塊。串口通信模塊最終將報(bào)警信息通過(guò)串口傳輸給ATS系統(tǒng),作為ATS系統(tǒng)顯示聯(lián)鎖報(bào)警信息的依據(jù)。
操作處理模塊將操作員下達(dá)的操作命令傳輸給以太網(wǎng)2通信模塊。以太網(wǎng)2通信模塊最終將此命令通過(guò)以太網(wǎng)傳輸給IL子系統(tǒng)。
以太網(wǎng)1通信模塊將報(bào)警信息傳輸給報(bào)警處理模塊。
串口通信模塊將操作命令信息傳輸給操作處理模塊。
用戶(hù)程序處理模塊是監(jiān)控機(jī)軟件中最重要也最復(fù)雜的模塊,是人機(jī)接口的核心部分,要對(duì)道岔、信號(hào)機(jī)、區(qū)段等進(jìn)行顯示和操作。若按照面相過(guò)程的思想進(jìn)行設(shè)計(jì),顯示處理和操作處理等模塊要同時(shí)滿(mǎn)足道岔、信號(hào)機(jī)和區(qū)段等對(duì)象的操作,必然使得模塊程序復(fù)雜,重復(fù)性大,從而導(dǎo)致模塊間數(shù)據(jù)流的數(shù)據(jù)量增大,類(lèi)型增多,對(duì)其他模塊的設(shè)計(jì)也造成影響。使得監(jiān)控機(jī)軟件耦合性增強(qiáng),不易于擴(kuò)展和修改。
根據(jù)面向?qū)ο蟮乃枷?,在監(jiān)控機(jī)軟件設(shè)計(jì)過(guò)程中,將監(jiān)控機(jī)軟件操控顯示的事物抽象為聯(lián)鎖區(qū)內(nèi)動(dòng)態(tài)事物和靜態(tài)事物2個(gè)基本類(lèi)。監(jiān)控機(jī)控制和顯示的其他事物分別抽象成為動(dòng)態(tài)事物類(lèi)和靜態(tài)事物類(lèi)的子類(lèi),繼承其父類(lèi)的方法,并根據(jù)自身特性分別對(duì)其實(shí)現(xiàn)。繼承關(guān)系如圖4所示。
圖4 動(dòng)、靜態(tài)事物的繼承關(guān)系
聯(lián)鎖區(qū)內(nèi)動(dòng)態(tài)事物主要是指狀態(tài)會(huì)根據(jù)聯(lián)鎖數(shù)據(jù)的變化而發(fā)生改變的事物,它們大多可以通過(guò)監(jiān)控機(jī)對(duì)其進(jìn)行操作。如信號(hào)機(jī)、道岔等。聯(lián)鎖區(qū)內(nèi)動(dòng)態(tài)事物類(lèi)封裝了聯(lián)鎖區(qū)內(nèi)動(dòng)態(tài)事物的常用方法:如繪圖方法、響應(yīng)鼠標(biāo)事件方法等。其繪圖方法的繼承關(guān)系如圖5所示。各個(gè)動(dòng)態(tài)事物子類(lèi)均繼承了父類(lèi)的函數(shù),并根據(jù)自身需求重構(gòu)。
圖5 子類(lèi)繪圖函數(shù)的繼承關(guān)系
聯(lián)鎖區(qū)內(nèi)靜態(tài)事物主要是指狀態(tài)比較穩(wěn)定,狀態(tài)顯示只受自身配置文件支配而不受聯(lián)鎖數(shù)據(jù)影響的事物。如用于顯示站名的位圖、盡頭線和絕緣節(jié)等。聯(lián)鎖區(qū)內(nèi)靜態(tài)事物類(lèi)封裝了聯(lián)鎖區(qū)內(nèi)靜態(tài)事物的常用方法:繪圖、響應(yīng)鼠標(biāo)事件、讀配置文件等。
采用面相對(duì)象的開(kāi)發(fā)方式,使得監(jiān)控機(jī)軟件的顯示處理和操作處理等模塊設(shè)計(jì)更加清晰、簡(jiǎn)潔。無(wú)需在這些相關(guān)的模塊中考慮對(duì)所有動(dòng)、靜態(tài)事物的操作。模塊間的信息流數(shù)據(jù)量也大幅度減少,降低了軟件的開(kāi)發(fā)成本。
以面向?qū)ο笏季S方式開(kāi)發(fā)的監(jiān)控機(jī)程序目前已在環(huán)形試驗(yàn)場(chǎng)通過(guò)了測(cè)試,CBTC系統(tǒng)運(yùn)行穩(wěn)定。面向?qū)ο蠹夹g(shù)在聯(lián)鎖系統(tǒng)中的應(yīng)用將發(fā)揮更大的作用,保證系統(tǒng)的安全和高效。
[1] 黃維通. Visual C++面向?qū)ο笈c可視化程序設(shè)計(jì)[M]. 2版. 北京:清華大學(xué)出版社,2003.
[2] 邵維忠,楊芙清. 面向?qū)ο蟮南到y(tǒng)分析[M]. 2版. 北京:清華大學(xué)出版社,2006.
責(zé)任編輯 楊利明
Model design of object-oriented software for interlocking monitoring machine
YU Xiao, QIAN Hua, ZANG Yongli, WANG Kun
( Signal & Communication Research Institute, China Academy of Railway Sciences, Beijing 100081, China )
With the rapid development of the railway and the application of computer based Interlocking System in Urban Transit, the System played more and more important role in railway transportation. In this paper, combining with the characteristics of object-oriented software development, the model design of software for interlocking monitoring machine was brief introduced.
Interlocking System; object-oriented; monitor; software design
U284.3∶TP39
A
1005-8451(2014)05-0049-03
2013-11-14
于 瀟,助理研究員;錢(qián) 婳,助理研究員。