馮 濤,鄭云水
(蘭州交通大學自動化與電氣工程學院,蘭州 730070)
新型網絡計算機聯(lián)鎖仿真系統(tǒng)研究與設計
馮 濤,鄭云水
(蘭州交通大學自動化與電氣工程學院,蘭州 730070)
以實現多個站場計算機聯(lián)鎖仿真功能為目的,同時加入設備三維仿真模型,解決了傳統(tǒng)計算機聯(lián)鎖仿真系統(tǒng)只能模擬計算機聯(lián)鎖操作,對現場設備仿真能力不足的問題。系統(tǒng)采用ASP.NET Web開發(fā)技術,使用C#編程語言完成系統(tǒng)功能模塊設計,同時運用Web 3D技術加入設備三維仿真模型??蓪崿F多個站場計算機聯(lián)鎖仿真系統(tǒng)人機交互界面的Web訪問及三維仿真模型在線瀏覽功能。新型網絡計算機聯(lián)鎖仿真系統(tǒng)可緩解計算機聯(lián)鎖人員培訓壓力,提高學員故障處理能力,帶來全新用戶體驗,值得推廣和使用。
網絡;計算機聯(lián)鎖;ASP.NET;Web 3D;數據庫
計算機聯(lián)鎖系統(tǒng)是鐵路重要的行車安全控制系統(tǒng),近年來計算機聯(lián)鎖系統(tǒng)在國內得到廣泛應用。隨著新技術新方法的引入,計算機聯(lián)鎖培訓的壓力逐漸增大,對于各種新技術方法的及時了解和掌握成了現場培訓需要迫切解決的問題。然而傳統(tǒng)單機版計算機聯(lián)鎖仿真系統(tǒng)只能模擬單個站場且站場改建后無法對仿真系統(tǒng)及時修改,影響培訓效果。沙盤仿真系統(tǒng)雖然能夠比較真實的反映現場設備狀況,但由于造價昂貴,受經濟條件限制,并沒有得到大面積推廣。于是,對于計算機聯(lián)鎖仿真培訓,需要一種可多人參與培訓,又能對多個站場進行仿真,同時還能反映現場設備狀態(tài),隨著站場改建的同時可做出相應修改,部署和實施成本較低的仿真系統(tǒng)。
網絡計算機聯(lián)鎖仿真系統(tǒng),不同于傳統(tǒng)單機版和C/S模式或沙盤模擬的計算機聯(lián)鎖仿真模式,其運用新型的Web開發(fā)技術,建立一種網站模式的仿真系統(tǒng),可在用戶瀏覽器端生成計算機聯(lián)鎖人機交互界面,模擬車站控制臺操作,完成聯(lián)鎖控制功能,滿足多人在線培訓要求,同時納入Web 3D技術,加入計算機聯(lián)鎖設備及現場信號設備三維仿真場景,模擬計算機聯(lián)鎖系統(tǒng)對現場設備狀態(tài)的采集和驅動。
新型網絡計算機聯(lián)鎖仿真系統(tǒng)設計要達到以下功能:
(1)能夠仿真某電務段管轄范圍內多個車站的人機交互界面,能夠對操作信息進行處理,形成有效的操作命令,同時對錯誤的操作命令給予提示;
(2)具備基本的進路控制功能,能夠完成進路選出、進路鎖閉、信號開放、進路正常解鎖、非正常解鎖、道岔單獨操作、進路引導總鎖閉等功能;
(3)能夠對站內各類計算機聯(lián)鎖系統(tǒng)常見故障及處理過程進行仿真,加入實景圖片及仿真動畫場景,提高直觀性和可交互性。
網絡計算機聯(lián)鎖仿真系統(tǒng),可建設獨立的培訓網站,也可在鐵路局內部網站中建設此培訓專欄,突破人員和地域的限制,方便維護和管理。
ASP.NET是微軟.NET框架下推出的功能強大的服務器應用程序開發(fā)技術,其運用軟件開發(fā)的思想進行Web應用程序開發(fā),夠夠適應和解決復雜的互聯(lián)網需求。
C#是微軟主推的編程語言,它簡化了C++的諸多復雜性,同時具備更強大的功能。
盡管它不是一種無限制語言,不能開發(fā)硬件驅動程序,但在需要時仍可使用某些聲明為非安全的類或類的方法,如此可使用指針,靜態(tài)數組等,同時當調用這些非安全代碼時不會產生其他任何問題[3],因此用C#編寫的計算機聯(lián)鎖仿真軟件可實現Web訪問功能。
其次,還包括Web 3D技術、數據庫技術及ADO. NET數據庫訪問技術等。Web 3D技術是在網絡上實現具有動態(tài)效果并可實時交互的三維模型在線瀏覽技術,采用基于幾何模型的三維建模技術,打破傳統(tǒng)計算機聯(lián)鎖培訓只能模擬控制臺顯示,無法模擬現場實際設備的難題。數據庫技術是網絡計算機聯(lián)鎖仿真系統(tǒng)不可或缺的一部分。ADO.NET數據庫訪問技術運用了.NET Framework中的一些列類庫,封裝了大量數據操作代碼,使得在應用程序中使用和操作數據更加方便。
網絡計算機聯(lián)鎖仿真系統(tǒng),為實現多個站場仿真功能,需要繪制各個站場界面,同時還要進行聯(lián)鎖控制程序設計,對各個站場均能進行計算機聯(lián)鎖操作,完成基本聯(lián)鎖控制功能,同時要建立聯(lián)鎖仿真數據庫,添加聯(lián)鎖程序所需的各種數據以及三維仿真場景和動畫等。
系統(tǒng)為邏輯上的三層體系結構,分別為:用戶界面層、聯(lián)鎖邏輯層、數據訪問層,其結構示意如圖1所示。

圖1 系統(tǒng)體系結構
網絡計算機聯(lián)鎖仿真系統(tǒng),為實現多個站場仿真功能,需要繪制各個站場界面,同時還要進行聯(lián)鎖控制程序設計,對各個站場均能進行計算機聯(lián)鎖操作,完成基本聯(lián)鎖控制功能,同時要建立聯(lián)鎖仿真數據庫,添加聯(lián)鎖程序所需的各種數據以及三維仿真場景和動畫等。
4.1 用戶界面設計
本系統(tǒng)使用ASP.NET GDI+中的Graphics類進行計算機聯(lián)鎖用戶界面繪制[3]。
首先,要進行站場數據設置,包括車站名、道岔、信號機名稱,編號,坐標及類型、方向等,軌道區(qū)段名稱、長度等設置相應變量。其次,繪制信號設備及站場線路,主要是道岔、軌道區(qū)段、信號機、按鈕及絕緣節(jié)的繪制。
(1)道岔、軌道區(qū)段繪制及絕緣節(jié)繪制:使用Graphics類中的DrawLine方法繪制軌道區(qū)段,如繪制起點坐標為(775,1 650),終點坐標為(1 550,1 650)的一段軌道區(qū)段,使用語句gr.DrawLine(pen,775, 1 650,1 550,1 650)即可繪制,同時還可定義軌道區(qū)段的線條的寬度,使用Pen pen=new Pen(Color.Green, 20)即定義畫筆的線條寬度為20,顯示顏色為綠色。道岔和絕緣節(jié)的繪制方法與軌道區(qū)段相同。
(2)信號機繪制:使用Graphics類中的DrawLine方法繪制信號機機柱,即一條豎線,使用Graphics類中的DrawEllipse來繪制信號機,如需在坐標(2 325, 1 600)處繪制一架燈位直徑為120的信號機,可使用語句gr.DrawEllipse(pen,2 325,1 600,120,120)。使用FillEllipse方法可填充信號機燈光顏色,如紅燈顯示的填充方法為:SolidBrush brush2=new SolidBrush (Color.Red);gr.FillEllipse(brush2,new Rectangle (2 325,1 600,120,120))。
(3)按鈕繪制:計算機聯(lián)鎖人機界面按鈕一般設在信號機旁,多為填充顏色的矩形,繪制方法與信號機類似,用gr.DrawRectangle(pen,200,200,50,50)即可繪制一個起始坐標為(200,200),長度和寬度均為50的按鈕,對其填充顏色可使用語句SolidBrush brush3=new SolidBrush(Color.YellowGreen);gr. FillRectangle(brush3,new Rectangle(200,200,50, 50)。
此外,用戶界面上還有一些文字信息及特殊符號,如用greenPen.EndCap=LineCap.ArrowAnchor可定義線尾箭頭,而使用文字處理語句:Font font=new Font (“楷體”,80);Brush brush5=new SolidBrush(Color. Red);gr.DrawString(“X1JG”,font,brush5,350, 1680)即可在(350,1680)處繪制"X1JG"軌道區(qū)段名稱。
4.2 聯(lián)鎖控制程序模塊設計
本仿真系統(tǒng)中的聯(lián)鎖控制程序主要包含操作輸入及操作命令形成模塊、操作命令執(zhí)行模塊、進路處理模塊及采集驅動模塊、常見故障處理模塊[4,5]。
操作輸入及操作命令形成模塊主要將用戶的鼠標及鍵盤操作信息記錄下來,判斷操作的合法性,若不合法則給出提示信息。如進路操作命令、進路取消命令等,需將這些操作命令存入操作日志。針對每一鼠標操作或鍵盤操作,在其相應的鼠標點擊事件里添加記錄代碼及合法性檢查代碼。
操作命令執(zhí)行模塊完成操作命令的執(zhí)行過程,主要有進路操作命令、進路取消命令、人工延時解鎖命令、進路故障解鎖命令、區(qū)段故障解鎖命令、重復開放信號命令、非常關閉信號命令、開放引導信號命令、引導鎖閉命令、引導解鎖命令、道岔單獨操作命令、道岔單獨鎖閉命令、道岔單獨解鎖命令[3]。進路操作命令是在已建立的站場型數據庫中選出一組符合需要的數據,形成一條進路表,并將其存于總進路表中,即完成進路搜索功能[4]。使用深度優(yōu)先搜索算法,利用C#的堆棧操作完成進路搜索。進路選出后,利用畫筆函數,在相應軌道區(qū)段繪制白光帶。這些操作命令均涉及到C#鼠標事件處理函數,C#中的Control類提供了多種鼠標事件,如按下始端按鈕和終端按鈕,需觸發(fā)Click事件。MouseEnter和MouseLeave表示鼠標進入和離開對象的邊界區(qū)域時觸發(fā)事件,當需在信號機或道岔處查看實物場景圖片時,可使用此事件。MouseDown和MouseUp是鼠標按下和松開事件,它們構成了Click事件,但有時需單獨使用,如道岔單獨操作命令執(zhí)行時,需將道岔轉換函數捆綁到MouseUp事件,在道岔處松開鼠標,即可完成道岔轉換的顯示。MouseWheel鼠標滾輪事件,當需要將顯示出的設備實景圖片放大或縮小時,可設置MouseWheel事件。改變信號機燈光顯示時可使用DoubleClick事件。另外,由于網頁中的站場界面存在眾多自定義按鈕,為得到更好的用戶體驗,使用ASP.NET AJAX可實現頁面的無刷新操作。
進路處理模塊主要對操作命令執(zhí)行模塊中搜索出來的進路進行處理,主要包括選排一致性檢查及道岔控制模塊、進路鎖閉模塊、信號開放模塊、信號保持開放模塊、進路自動解鎖模塊[6]。在服務器端使用C#編寫應用程序,以選排一致性檢查及道岔控制命令執(zhí)行模塊為例,其流程如圖2所示,當進路搜索程序搜索出進路之后,需將此進程標志設置成選排標志,當程序開始執(zhí)行選排模塊時,首先將道岔所處狀態(tài)與進路表道岔狀態(tài)相比較,檢查選排一致性,若選排一致則直接執(zhí)行道岔鎖閉模塊,若選排不一致則繼續(xù)檢查進路表進路。在進路范圍內先檢查道岔區(qū)段是否空閑,若空閑,則需檢查道岔是否單鎖。在道岔未單鎖情況下,開始執(zhí)行道岔轉向定位或反位的命令,否則將直接轉出。在程序編寫過程中,需使用到C#中的垃圾回收機制,它不像C++的析構函數那樣顯式的釋放資源,而能夠監(jiān)視對象的生存周期,當對象沒有被應用程序使用時就會自動釋放對象的內存及資源,因此使用更加方便。

圖2 選排一致性檢查及道岔控制命令執(zhí)行流程
采集驅動模塊采集現場設備狀態(tài),同時驅動設備動作,可通過已建立的信號設備三維仿真模型的動作及聯(lián)鎖機模型采集驅動板指示燈的狀態(tài)來形象地模擬對現場設備的驅動和采集。轉轍機三維仿真模型如圖3所示。

圖3 轉轍機三維仿真模型
故障處理模塊針對某些常見故障現象如道岔擠岔或四開、信號機燈絲斷絲等情況能在用戶界面給出表示,同時給出現場設備、計算機聯(lián)鎖機柜、信號機械室繼電器組合的故障場景,使培訓人員熟悉常見故障情況,了解故障處理流程。
4.3 聯(lián)鎖仿真數據庫設計
網絡計算機聯(lián)鎖仿真系統(tǒng)針對當前計算機聯(lián)鎖培訓只針對個別車站,對學員指導性差的缺點,提出了多站場模擬仿真培訓模式,使學員能夠熟悉各自工作車站內的各種特殊操作,以應對突發(fā)狀況,出現故障時能夠及時處理。
要實現多站場模擬,可通過GDI+方式繪制站場界面,而聯(lián)鎖功能的實現需建立專門的數據庫存放和調用靜態(tài)及動態(tài)數據。當辦理進路時,調用可供各個站場使用的進路搜索程序生成一個與進路操作命令相符的進路表,供聯(lián)鎖程序使用。參與聯(lián)鎖運算的靜態(tài)數據采用站場型數據結構,主要包括信號機、道岔、軌道區(qū)段等元素的名稱、性質等信息。動態(tài)數據主要包括操作輸入變量、狀態(tài)輸入變量和中間變量等。操作輸入變量用于形成操作命令,主要是按鈕操作變量等。狀態(tài)輸入變量對應信號狀態(tài)、軌道區(qū)段狀態(tài)、道岔狀態(tài)建立信號控制表、道岔控制表和區(qū)段狀態(tài)表,信號控制表又包括信號狀態(tài)、鎖閉標志、燈絲狀態(tài)、曾開放信息等變量;道岔控制表包括道岔狀態(tài)、鎖閉變量、征用標志等變量;區(qū)段狀態(tài)表包含區(qū)段狀態(tài)、鎖閉變量、曾占用變量、征用標志等變量[7,8]。中間變量是指程序執(zhí)行過程中產生的變量,可存放在動態(tài)數據表中。
基于E-R模型的數據庫設計方法是目前廣泛采用的一種行之有效的一種數據庫概念模型設計方法[9],它能夠明確反映現實世界實體之間的相互關系,通過確定實體類型,實體之間的聯(lián)系,實體及聯(lián)系的屬性,可以畫出E-R圖,進而設計出符合規(guī)范的數據庫。網絡計算機聯(lián)鎖仿真系統(tǒng)數據庫實體類型及屬性如下。
(1)車站:包括車站名,車站編號。
(2)進路:包括進路的性質、方向、進路的范圍(始終端以及變更點)。
(3)信號機:信號機的性質、名稱、編號、信號狀態(tài)、鎖閉標志、信號控制、燈絲狀態(tài)、允許燈絲狀態(tài)、曾開放信息、實物場景圖片及三維仿真場景。
(4)道岔:道岔名稱、編號、方向、性質、所屬區(qū)段號、道岔狀態(tài)、鎖閉變量、控制進路號、征用標志、延時參數、實物場景圖片實物場景圖片及三維仿真場景。
(5)軌道區(qū)段:區(qū)段名稱、編號、性質、類型、狀態(tài)、鎖閉變量、保護區(qū)段號、曾占用信息、控制進路號、征用標志等。
(6)按鈕:按鈕名稱,編號。
其主體E-R圖如圖4所示。
4.4 數據訪問機制
要在Web中仿真多個站場計算機聯(lián)鎖基本操作功能,同時顯示現場設備仿真場景,必須要進行數據庫數據的使用、查詢、更改、刪除等操作。如當按下始端按鈕和終端按鈕辦理進路時,必須查詢數據庫,得到信號機、道岔及軌道區(qū)段的狀態(tài)信息,如果信號開放,道岔位置正確,軌道區(qū)段未征用,則可辦理進路,即在執(zhí)行操作命令和聯(lián)鎖程序時需要調用和查詢數據庫信息。而在故障處理模塊中,必須將故障信息存放在數據庫中,當進行故障查找時,與數據庫信息比對,使用故障數據即產生故障信息,同時還需在數據庫中添加三維仿真場景。

圖4 聯(lián)鎖仿真數據庫主體E-R圖
本系統(tǒng)采用SQL數據庫,使用ADO.NET實現SQL數據庫的各種操作。使用ADO.NET操作數據庫,首先需要創(chuàng)建連接,然后執(zhí)行并顯示命令對象,最后關閉連接。ADO.NET提供了數據源綁定控件,也可編程實現對數據源的訪問。在應用程序開發(fā)中,使用ADO.NET中的一些常用對象能夠方便對數據庫的操作,例如使用Connection對象中的System.Data. SqlClient.SqlConnection對象就可以連接SQL數據庫,而當插入或刪除數據時,就需要使用Command對象。DataSet數據集對象是ADO.NET的核心,它包括DataSet基本對象、DataTable數據表對象、DataRow數據行對象和DataView數據視圖對象,當向道岔數據集“dc”中添加多個表時,可使用DataSet中的Add方法,將DataTable表填充到“dc”中,其句法為:DataSet dc= new DataSet();dc.Tables.Add(Table),其次還包括DataRader數據訪問對象。
三維模型在數據庫中存儲主要包含三方面數據,即幾何實體、平面簡略圖及實體信息(文件格式,源文件名等)[10]。在數據庫中不僅存放三維模型的文件信息,還要記錄源文件的路徑,通過此路徑即可在服務器上查找到源文件,從而實現三維模型的瀏覽。
新型網絡計算機聯(lián)鎖仿真系統(tǒng)在瀏覽器端顯示站場界面,完成各種進路操作,同時可查看各種設備狀態(tài),建立直觀映像。用戶登陸后,主頁顯示各個站場名,點擊某個站場名即進入該站計算機聯(lián)鎖人機交互界面,可進行各種進路操作。在站場關鍵設備處設置設備場景按鈕,點擊按鈕即可顯示設備圖片或三維仿真場景,同時每個站場還設有一個計算機聯(lián)鎖設備按鈕和一個信號機械室設備按鈕,可查看聯(lián)鎖機柜及機械室繼電器組合架等設備的仿真場景。在故障處理中,如設置某轉轍機故障則需查看站場界面顯示、機械室繼電器、聯(lián)鎖機及室外轉轍機等設備的仿真場景。其故障顯示界面見圖5。

圖5 系統(tǒng)故障處理顯示
新型網絡計算機聯(lián)鎖仿真系統(tǒng)以《鐵路信號設備三維仿真培訓系統(tǒng)》為背景,在豐富三維仿真模型的基礎上產生。其不僅可以仿真多個站場計算機聯(lián)鎖人機交互界面,而且能夠聯(lián)系現場設備,模擬計算機聯(lián)鎖各種常見故障。帶來全新的用戶體驗,有著廣泛的推廣應用前景。
[1] 李一龍.計算機聯(lián)鎖技術培訓模式的研究[J].中國鐵路,2008 (5):53-56.
[2] 呂永紅,劉紅艷.計算機聯(lián)鎖模擬培訓系統(tǒng)[J].鐵道通信信號, 2007,43(12):21-22.
[3] 郭清,等.ASP.NET開發(fā)技術大全[M].北京:清華大學出版社, 2009:22-25.
[4] 王斌曉黃彥全.基于C/S模式的計算機聯(lián)鎖教學系統(tǒng)軟件設計[J].鐵道通信信號,2009,45(12):17-19.
[5] 趙志熙,等.計算機聯(lián)鎖系統(tǒng)技術[M].北京:中國鐵道出版社, 2008:138-144.
[6] 秦武.鐵路信號計算機聯(lián)鎖仿真系統(tǒng)的設計與實現[D].南京:南開大學,2010:23-26.
[7] 徐洪澤,岳強,等.車站信號計算機聯(lián)鎖控制系統(tǒng)原理及應用[M].北京:中國鐵道出版社,2009:34-43.
[8] 黃宇.基于CTC的聯(lián)鎖仿真系統(tǒng)設計與實現[D].北京:北京交通大學,2011:7-9.
[9] 瞿有甜.數據庫技術與應用[M].杭州:浙江大學出版社,2010: 131-135.
[10]陳增祥.基于SQL Server數據庫的三維模型存取研究與實現[J].電腦編程技巧與維護,2012(4):24-25.
Research and Design on New Network Computer Interlocking Simulation System
FENG Tao,ZHENG Yun-shui
(School of Automation and Electrical Engineering,Lanzhou Jiaotong University,Lanzhou 730070,China)
Thenewnetworkcomputerinterlockingsimulationsystemtakesaimatachieving computer-based interlocking simulation function among multiple stations and yards.At the same time,it adopts 3D simulation models,successfully solves the problem that traditional interlocking simulation system could only simulate the interlocking operation but cannot fully simulate the real equipment in stations and yards.The new system uses ASP.NET Web development technology,utilizes C# programming language to design the system function models,and also adopts 3D simulation models with Web 3D technology.The new network computer interlocking simulation system can realize Web access ofhuman-computer interaction interface and can realize online browsing of 3D simulation models among multiple stations and yards.The new network computer interlocking simulation system,which makes it more easier for the training of operation staff,thus improves the trainee's ability to solve common faults, and also brings new experience for users,should be widely used.
network;computer interlocking;ASP.NET;Web 3D;database
U284
A
1004-2954(2013)03-0133-05
2012-07-13
馮 濤(1987—),男,碩士研究生,E-mail:ft10512@126.com。