摘 要: 由于在教學(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)信息,來作為學(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ā)送來的信號(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ù)庫管理模塊,、故障顯示模塊、故障設(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ù)庫模塊讀取數(shù)據(jù)庫的數(shù)據(jù),進(jìn)行相應(yīng)的計(jì)算,。同時(shí)聯(lián)鎖模塊通過計(jì)算故障顯示模塊傳來的操作信息,,得到更新的顯示信息,再更新數(shù)據(jù)庫中相對(duì)應(yīng)的信息,。
2.2 聯(lián)鎖信息數(shù)據(jù)庫管理模塊
數(shù)據(jù)服務(wù)器用于存儲(chǔ)和維護(hù)系統(tǒng)所有的信息,,是其他模塊的數(shù)據(jù)后臺(tái),可以為其他模塊提供數(shù)據(jù)提取和存儲(chǔ)服務(wù),。在該仿真系統(tǒng)中,,數(shù)據(jù)庫需要的數(shù)據(jù)分為靜態(tài)和動(dòng)態(tài)兩種。在程序運(yùn)行前,,被手動(dòng)輸入的數(shù)據(jù)就是靜態(tài)數(shù)據(jù),,這些數(shù)據(jù)用來進(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ù)庫信息的邏輯操作,、教師機(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)圖中的圖形元素,。這些圖形元素可以通過改變顏色或者形狀來表達(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í)無需設(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ù)來開發(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)行模擬,,用程序把它畫出來。信號(hào)機(jī)是用有顏色的圈圈和一個(gè)水平的“|—”組合表示的,。接著就是編寫信號(hào)機(jī)的各種屬性以及各種屬性所對(duì)應(yīng)的各種信號(hào)機(jī)的狀態(tài),。以信號(hào)機(jī)的名字屬性作為例子來說明。
?。?)通過ReadProperties來讀取ID屬性的值,。
Private Sub UserControl_ReadProperties(PropBag As PropertyBag)
m_ID=PropBag.ReadProperty("ID",def_ID)
End Sub
?。?)通過WriteProperties來保存ID屬性的值,。
Private Sub UserControl_WriteProperties(PropBag As PropertyBag)
Call PropBag.WriteProperty("ID", m_ID,, def_ID)
End Sub
?。?)通過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ù)庫進(jìn)行數(shù)據(jù)的存儲(chǔ)。在數(shù)據(jù)庫中主要存儲(chǔ)了關(guān)于信號(hào)機(jī),、道岔,、區(qū)段的信息。以信號(hào)機(jī)為例,,在數(shù)據(jù)庫中保存了信號(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è)置白燈燈絲斷等,;道岔故障有道岔定反無表示,、道岔定位無表示、道岔反位無表示等[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ī)斷絲表示此處列車無法通過,。要做到逼真的故障仿真,,就要保證其發(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.