摘 要: 由于在教學(xué)中不能到控制臺(tái)上進(jìn)行演練,學(xué)生缺乏實(shí)踐經(jīng)驗(yàn),因此設(shè)計(jì)了一個(gè)符合鐵道部相關(guān)技術(shù)標(biāo)準(zhǔn)的單線接發(fā)列車仿真系統(tǒng)。主要介紹了該系統(tǒng)的體系結(jié)構(gòu)、基于組件實(shí)現(xiàn)的關(guān)鍵技術(shù)以及仿真系統(tǒng)故障模擬的要點(diǎn)。通過該系統(tǒng),教師可以設(shè)置實(shí)際運(yùn)行中所發(fā)生的故障,培養(yǎng)學(xué)生處理故障的能力。
關(guān)鍵詞: 組件;故障;仿真
0 引言
現(xiàn)如今對(duì)于鐵路仿真系統(tǒng)的進(jìn)路排列、聯(lián)鎖和進(jìn)路解鎖算法的研究已有很多并已很完善,但是在此基礎(chǔ)上,對(duì)于鐵路故障的仿真卻十分少見。為了讓學(xué)生在校期間能充分了解鐵路列車系統(tǒng)設(shè)備組成,提高處理故障的能力,保證鐵路運(yùn)輸過程中的安全,本文設(shè)計(jì)了列車運(yùn)行的故障仿真。通過單線接發(fā)列車仿真系統(tǒng),有助于學(xué)生體驗(yàn)車務(wù)人員的日常工作流程,教師也可以通過教師機(jī)對(duì)學(xué)員機(jī)進(jìn)行故障的設(shè)置,提高學(xué)員隨機(jī)應(yīng)對(duì)、處理特殊情況的應(yīng)急能力。
1 系統(tǒng)的體系結(jié)構(gòu)
系統(tǒng)中每個(gè)實(shí)驗(yàn)室各有沙盤一套(含3個(gè)車站)、沙盤接口系統(tǒng)一套,圖1為單線鐵路仿真系統(tǒng)。系統(tǒng)由大屏幕顯示部分、教師機(jī)(管理服務(wù)器)、學(xué)員機(jī)(操作機(jī))、沙盤模型、調(diào)度電話等部分組成。單線接發(fā)列車仿真系統(tǒng)沙盤設(shè)A、B、C三個(gè)站,B站接大屏顯示。教師機(jī)可以對(duì)A、B、C三個(gè)站及區(qū)間設(shè)置故障。
教練機(jī)起著模擬站場(chǎng)設(shè)備狀態(tài)的作用,如:設(shè)置信號(hào)故障、道岔故障、區(qū)段故障和模擬列車運(yùn)行等,并可把這些狀態(tài)信息發(fā)送至學(xué)員機(jī)。同時(shí)在學(xué)員機(jī)的對(duì)應(yīng)設(shè)備上顯示其狀態(tài)信息,來(lái)作為學(xué)員模擬站場(chǎng)故障的處理,以達(dá)到提高學(xué)員處理故障問題的能力。教師機(jī)可以同時(shí)連接多臺(tái)學(xué)員機(jī),學(xué)員機(jī)與教師機(jī)之間的通信是雙向的,只有當(dāng)學(xué)員機(jī)連上了教師機(jī)才可以進(jìn)行全部操作。教師機(jī)的主要界面如圖2所示。
學(xué)員機(jī)起著仿真模擬現(xiàn)場(chǎng)計(jì)算機(jī)聯(lián)鎖系統(tǒng)(操作臺(tái))的作用。學(xué)員機(jī)具有以下功能:接收教練機(jī)發(fā)送來(lái)的信號(hào)設(shè)備狀態(tài)信息(區(qū)段狀態(tài)、道岔狀態(tài)和信號(hào)機(jī)狀態(tài)等),實(shí)現(xiàn)信號(hào)設(shè)備的聯(lián)鎖邏輯處理功能,完成進(jìn)路確選、鎖閉、發(fā)出開放信號(hào)和動(dòng)作道岔的控制命令。學(xué)員可以在學(xué)員機(jī)上學(xué)習(xí)正常和非正常時(shí)的處理方法,培養(yǎng)解決故障的能力。
2 仿真系統(tǒng)故障模擬的功能結(jié)構(gòu)
根據(jù)列車在實(shí)際運(yùn)行途中故障處理的標(biāo)準(zhǔn)操作流程,可以將單線接發(fā)列車仿真系統(tǒng)故障模擬分為故障的設(shè)置、故障的處理、故障的監(jiān)視、模擬列車的運(yùn)行等步驟。所以將單線接發(fā)列車仿真系統(tǒng)故障模擬分為5個(gè)模塊:聯(lián)鎖功能模塊、聯(lián)鎖信息數(shù)據(jù)庫(kù)管理模塊、故障顯示模塊、故障設(shè)置模塊和故障處理模塊,各個(gè)模塊相輔相成。將意義相近的步驟整合到同一個(gè)模塊中,各模塊之間相互獨(dú)立,每個(gè)模塊完成自己的功能。這種分布的體系結(jié)構(gòu)及模塊間的獨(dú)立性,保證了系統(tǒng)具有良好的可擴(kuò)展性[1-2]。圖3為故障模擬的功能模塊結(jié)構(gòu)圖。
2.1 聯(lián)鎖功能模塊
該仿真培訓(xùn)系統(tǒng)以聯(lián)鎖軟件模塊為基礎(chǔ),聯(lián)鎖軟件模塊通過數(shù)據(jù)庫(kù)模塊讀取數(shù)據(jù)庫(kù)的數(shù)據(jù),進(jìn)行相應(yīng)的計(jì)算。同時(shí)聯(lián)鎖模塊通過計(jì)算故障顯示模塊傳來(lái)的操作信息,得到更新的顯示信息,再更新數(shù)據(jù)庫(kù)中相對(duì)應(yīng)的信息。
2.2 聯(lián)鎖信息數(shù)據(jù)庫(kù)管理模塊
數(shù)據(jù)服務(wù)器用于存儲(chǔ)和維護(hù)系統(tǒng)所有的信息,是其他模塊的數(shù)據(jù)后臺(tái),可以為其他模塊提供數(shù)據(jù)提取和存儲(chǔ)服務(wù)。在該仿真系統(tǒng)中,數(shù)據(jù)庫(kù)需要的數(shù)據(jù)分為靜態(tài)和動(dòng)態(tài)兩種。在程序運(yùn)行前,被手動(dòng)輸入的數(shù)據(jù)就是靜態(tài)數(shù)據(jù),這些數(shù)據(jù)用來(lái)進(jìn)行系統(tǒng)的初始化,在程序運(yùn)行的過程中不會(huì)發(fā)生變化。關(guān)于區(qū)段、信號(hào)機(jī)、道岔的位置之類的都是靜態(tài)數(shù)據(jù)。在運(yùn)行了系統(tǒng)后,根據(jù)人員的操作,不斷變化的列車信息、信號(hào)機(jī)的狀態(tài)等都是動(dòng)態(tài)的數(shù)據(jù)。
2.3 故障顯示模塊
故障顯示模塊提供了一個(gè)人機(jī)交互的界面,使得該仿真培訓(xùn)系統(tǒng)能夠靈活地適應(yīng)不同的場(chǎng)景。根據(jù)鐵路的現(xiàn)場(chǎng)情況,按照標(biāo)準(zhǔn)繪制站場(chǎng)圖,使模擬環(huán)境和真實(shí)環(huán)境基本一致,包括信號(hào)機(jī)、區(qū)段、道岔的位置等。故障顯示模塊可以實(shí)時(shí)地提供列車運(yùn)行的狀態(tài)信息以及故障信息的顯示。
2.4 故障設(shè)置模塊
系統(tǒng)分為教師機(jī)和學(xué)生機(jī)兩大部分,故障設(shè)置模塊是教師機(jī)的重要組成部分。在教師機(jī)上教師可以模擬故障設(shè)置,設(shè)置的故障主要包括信號(hào)機(jī)故障、區(qū)段故障、道岔故障等。在這個(gè)模塊中還設(shè)計(jì)了與數(shù)據(jù)庫(kù)信息的邏輯操作、教師機(jī)與學(xué)生機(jī)之間的通信以及故障設(shè)置的顯示。
2.5 故障處理模塊
故障處理模塊是學(xué)員機(jī)的核心部分,它提供了故障處理的平臺(tái)。學(xué)生機(jī)接收到教師機(jī)設(shè)置的故障后,根據(jù)每個(gè)故障的不同情況進(jìn)行相對(duì)應(yīng)的處理,同時(shí)教師機(jī)上也可以看到學(xué)生的處理結(jié)果。
3 關(guān)鍵技術(shù)的實(shí)現(xiàn)
3.1 組件的設(shè)計(jì)
站場(chǎng)圖是該仿真系統(tǒng)的主視圖,繪制站場(chǎng)圖是開發(fā)該仿真系統(tǒng)的第一步。通過對(duì)實(shí)際站場(chǎng)圖的分析,將整個(gè)站場(chǎng)圖劃分為幾個(gè)相對(duì)獨(dú)立的組件,并將組件的不同顯示狀態(tài)封裝為組件不同屬性的設(shè)定或方法調(diào)用。這些組件統(tǒng)稱為站場(chǎng)圖組件[3]。
3.1.1 組件的劃分
站場(chǎng)圖組件是微機(jī)聯(lián)鎖仿真系統(tǒng)中可視組件的一部分,它們分別對(duì)應(yīng)于站場(chǎng)圖中的圖形元素。這些圖形元素可以通過改變顏色或者形狀來(lái)表達(dá)不同的含義。通過對(duì)實(shí)際站場(chǎng)的分析,提取出通用的站場(chǎng)組件,包括區(qū)段組件、道岔組件、信號(hào)組件等。
3.1.2 組件屬性的設(shè)計(jì)
組件的屬性分為以下兩類:靜態(tài)屬性和動(dòng)態(tài)屬性。靜態(tài)屬性是指使用組件進(jìn)行站場(chǎng)圖設(shè)計(jì)或者界面設(shè)計(jì)時(shí)可以修改的一類組件屬性,如道岔的朝向、區(qū)段的長(zhǎng)短、信號(hào)機(jī)的種類等。動(dòng)態(tài)屬性是指在繪制站場(chǎng)圖時(shí)無(wú)需設(shè)置的屬性或者設(shè)置默認(rèn)的屬性,但在程序運(yùn)行的過程中可以不斷更改的屬性。組件的動(dòng)態(tài)屬性主要包括區(qū)段占用、故障、道岔的定反、信號(hào)機(jī)的斷絲等。這些動(dòng)態(tài)屬性在故障仿真中起著重要作用。因?yàn)樵诜抡嫦到y(tǒng)運(yùn)行時(shí)由教師進(jìn)行故障設(shè)置,故障的表示用到了組件的動(dòng)態(tài)屬性。
3.1.3組件的實(shí)現(xiàn)
在該仿真系統(tǒng)中,將邏輯相對(duì)獨(dú)立、使用頻率較高的模塊封裝成為ActiveX組件。微軟的ActiveX技術(shù)遵循了COM組件定義的規(guī)范,ActiveX對(duì)象將只對(duì)外部提供嚴(yán)格規(guī)范的調(diào)用接口。使用ActiveX組件技術(shù)來(lái)開發(fā)通用組件,縮短了仿真培訓(xùn)系統(tǒng)的開發(fā)周期,并使得軟件質(zhì)量得到了可靠的保證。在系統(tǒng)中利用VB開發(fā)了ActiveX組件。因?yàn)樵赩B中,可以很好地解決透明問題,這樣在拼站場(chǎng)圖時(shí)就不存在組件之間的遮擋問題。圖4為進(jìn)站信號(hào)機(jī),方向是從左到右,名稱為X1。信號(hào)機(jī)的名稱、信號(hào)機(jī)的朝向等都是靜態(tài)屬性。信號(hào)機(jī)的故障類型等在仿真模擬時(shí)才會(huì)用到的屬性則是信號(hào)機(jī)的動(dòng)態(tài)屬性。
在編寫組件時(shí),第一步是按照現(xiàn)場(chǎng)的信號(hào)機(jī)樣子進(jìn)行模擬,用程序把它畫出來(lái)。信號(hào)機(jī)是用有顏色的圈圈和一個(gè)水平的“|—”組合表示的。接著就是編寫信號(hào)機(jī)的各種屬性以及各種屬性所對(duì)應(yīng)的各種信號(hào)機(jī)的狀態(tài)。以信號(hào)機(jī)的名字屬性作為例子來(lái)說明。
?。?)通過ReadProperties來(lái)讀取ID屬性的值。
Private Sub UserControl_ReadProperties(PropBag As PropertyBag)
m_ID=PropBag.ReadProperty("ID",def_ID)
End Sub
(2)通過WriteProperties來(lái)保存ID屬性的值。
Private Sub UserControl_WriteProperties(PropBag As PropertyBag)
Call PropBag.WriteProperty("ID", m_ID, def_ID)
End Sub
(3)通過Get函數(shù)獲取信號(hào)機(jī)當(dāng)前的ID,再通過Let函數(shù)設(shè)置信號(hào)機(jī)新的ID名稱。
Public Property Get ID() As String
ID=m_ID
End Property
Public Property Let ID(ByVal vNewValue As String)
Dim ss As String
ss=m_ID
m_ID=vNewValue
PropertyChanged "ID"
RaiseEvent CaptionChanged(ss, vNewValue)
UserControl.Refresh
End Property
編寫完組建后,生成.ocx文件就可以在仿真系統(tǒng)中運(yùn)用了。圖5所示是編寫完成的信號(hào)機(jī)組件的一部分屬性。
3.2 聯(lián)鎖表的編制
聯(lián)鎖表反映了車站內(nèi)的道岔、進(jìn)路和信號(hào)機(jī)之間的聯(lián)鎖關(guān)系。根據(jù)站場(chǎng)圖,按照信號(hào)機(jī)排列順序列出本站可辦理的所有進(jìn)路,按照這種進(jìn)路的排列順序完成聯(lián)鎖表的編制。每條進(jìn)路中聯(lián)鎖內(nèi)容包括進(jìn)路的始端信號(hào)機(jī)、終端信號(hào)機(jī)、道岔鎖閉、區(qū)段鎖閉、敵對(duì)條件等。
采用Accesss數(shù)據(jù)庫(kù)進(jìn)行數(shù)據(jù)的存儲(chǔ)。在數(shù)據(jù)庫(kù)中主要存儲(chǔ)了關(guān)于信號(hào)機(jī)、道岔、區(qū)段的信息。以信號(hào)機(jī)為例,在數(shù)據(jù)庫(kù)中保存了信號(hào)機(jī)的Index(站場(chǎng)圖上的編號(hào))、ID(站場(chǎng)圖上的名稱)、Type(0-進(jìn)站、1-出站、2-調(diào)車、3-區(qū)間)、Direct(信號(hào)機(jī)的方向)、FirstQD(信號(hào)機(jī)朝向所對(duì)應(yīng)的區(qū)段或者道岔)、JJQD(靠近信號(hào)機(jī)的區(qū)段或者道岔)、Difference(差置信號(hào))、Apposition(并置信號(hào))以及YH(所在咽喉)這些信息。
3.3 故障仿真
3.3.1 故障的分類
在該模塊中故障主要有區(qū)段故障、信號(hào)機(jī)故障、道岔故障。其中區(qū)段故障有區(qū)段占用、區(qū)段故障、區(qū)段壓不死等;信號(hào)機(jī)故障有設(shè)置紅燈燈絲斷、設(shè)置黃燈燈絲斷、設(shè)置白燈燈絲斷等;道岔故障有道岔定反無(wú)表示、道岔定位無(wú)表示、道岔反位無(wú)表示等[4]。
3.3.2 故障仿真的實(shí)現(xiàn)
故障仿真通過教師設(shè)置故障類型、故障的地點(diǎn),在站場(chǎng)視圖上模擬出故障。當(dāng)仿真軟件運(yùn)行到故障發(fā)生時(shí)刻時(shí),站場(chǎng)視圖上的相應(yīng)設(shè)備組件會(huì)被設(shè)置成故障狀態(tài),站場(chǎng)視圖上的其他設(shè)備也會(huì)做出相應(yīng)狀態(tài)改變。如信號(hào)機(jī)斷絲表示此處列車無(wú)法通過。要做到逼真的故障仿真,就要保證其發(fā)生時(shí),站場(chǎng)視圖上的各設(shè)備狀態(tài)與故障現(xiàn)場(chǎng)一致。
在該仿真系統(tǒng)中道岔、信號(hào)、區(qū)段的操作和故障設(shè)置在對(duì)應(yīng)設(shè)備的下拉菜單中,圖6是信號(hào)機(jī)的下拉菜單。
以信號(hào)機(jī)的斷絲故障為例,當(dāng)顯示設(shè)置紅燈燈絲斷時(shí),先去找到相對(duì)應(yīng)的斷絲故障的bit位,并對(duì)該位置進(jìn)行設(shè)置。
Public Sub SetXHErr(ByVal Index As Integer, ByVal DW As Integer, blnFlag As Boolean)
Dim oldXHErr As Boolean
oldXHErr=frmMain.XH(Index).Error Or frmMain.XH(Index).Fault
If blnFlag Then
Select Case DW
Case 1 ′紅
frmMain.XH(Index).ErrDW1 = True
If Not FindBit(Index, 0) Then
SetBit Index, 1, False
SetBit Index, 2, False
End If
SetBit Index, 7, True
………………………….
ShowSpecialErrInfo XHInfo(Index).YH
End Sub
ShowSpecialErrInfo函數(shù)實(shí)現(xiàn)了對(duì)故障的顯示,并且把發(fā)現(xiàn)故障的信號(hào)機(jī)加入到故障信息列表里,以便于后面的查看。
4 結(jié)論
單線接發(fā)列車仿真系統(tǒng)為學(xué)生提供了一個(gè)逼真的實(shí)訓(xùn)環(huán)境。該系統(tǒng)的故障模擬有助于學(xué)生體驗(yàn)車務(wù)人員的日常工作流程,教師也可以對(duì)學(xué)生進(jìn)行故障的設(shè)置,提高學(xué)員隨機(jī)應(yīng)對(duì)、處理特殊情況的應(yīng)急能力。
參考文獻(xiàn)
[1] 趙根苗,陳永生.ATS仿真培訓(xùn)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].城市軌道交通研究,2004,7(1):55-57.
[2] 魯也傳,陳永生,郭玉臣.基于通信的列車自動(dòng)監(jiān)控系統(tǒng)平臺(tái)設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)應(yīng)用,2009,29(S2):152-15.
[3] 王野,郭秀清.基于組件技術(shù)的列車自動(dòng)監(jiān)控仿真系統(tǒng)開發(fā)平臺(tái)[J].計(jì)算機(jī)應(yīng)用,2007,27(z2):286-288.
[4] 張耀方.CRH3型動(dòng)車組故障仿真訓(xùn)練系統(tǒng)的研究[D].北京:北京交通大學(xué),2012.