摘 要: 計(jì)算機(jī)聯(lián)鎖系統(tǒng)負(fù)責(zé)處理進(jìn)路內(nèi)的道岔、信號(hào)機(jī)、軌道之間聯(lián)鎖關(guān)系,是實(shí)現(xiàn)列車自動(dòng)監(jiān)控系統(tǒng)仿真的關(guān)鍵。主要介紹了該系統(tǒng)的組成結(jié)構(gòu)及各部分的功能,運(yùn)用組件化的仿真技術(shù)設(shè)計(jì)人機(jī)交互界面,生成站場(chǎng)圖數(shù)據(jù)庫和聯(lián)鎖表數(shù)據(jù)庫,實(shí)現(xiàn)進(jìn)路的排列功能。
關(guān)鍵詞: ATS仿真系統(tǒng);計(jì)算機(jī)聯(lián)鎖;進(jìn)路控制
0 引言
城市軌道交通通信信號(hào)系統(tǒng)是保證行車安全和提高運(yùn)輸效率的有利工具[1]。列車自動(dòng)監(jiān)控系統(tǒng)(Automatic Train Supervision,ATS)主要實(shí)現(xiàn)對(duì)列車運(yùn)行的監(jiān)督和控制,它在提高運(yùn)輸效率和保障運(yùn)行安全方面起著十分重要的作用[2-3]。因此,ATS系統(tǒng)能否進(jìn)行正常操作,將直接關(guān)系到列車安全。
計(jì)算機(jī)聯(lián)鎖系統(tǒng)負(fù)責(zé)處理進(jìn)路內(nèi)的道岔、信號(hào)機(jī)、軌道電路之間的聯(lián)鎖關(guān)系,接受ATS或者操作員的控制指令,向ATS系統(tǒng)輸出聯(lián)鎖信息[4]。聯(lián)鎖機(jī)實(shí)現(xiàn)了信號(hào)設(shè)備的邏輯處理功能,完成了進(jìn)路排列、進(jìn)路鎖閉、開放信號(hào)和道岔動(dòng)作等命令,實(shí)現(xiàn)了進(jìn)路自動(dòng)解鎖、故障解鎖等解鎖功能。計(jì)算機(jī)聯(lián)鎖系統(tǒng)是保證行車安全,提高運(yùn)輸效率的重要技術(shù)裝備[5]。本文以蘇州軌道交通一號(hào)線ATS仿真系統(tǒng)為例,分析計(jì)算機(jī)聯(lián)鎖系統(tǒng)的結(jié)構(gòu),研究其仿真功能的實(shí)現(xiàn)。
1 系統(tǒng)結(jié)構(gòu)
計(jì)算機(jī)聯(lián)鎖系統(tǒng)可分為多種層次結(jié)構(gòu)[6],如圖1所示。
人機(jī)對(duì)話層設(shè)備主要功能是:(1)接收工作人員發(fā)布的控制命令;(2)顯示設(shè)備工作狀態(tài)和車輛運(yùn)行情況。
聯(lián)鎖層設(shè)備的主要功能是:(1)接收人機(jī)會(huì)話層操作信息和監(jiān)控層信息、進(jìn)行聯(lián)鎖運(yùn)算;(2)產(chǎn)生輸出信息、交付監(jiān)控層執(zhí)行和人機(jī)會(huì)話層顯示。
監(jiān)控層設(shè)備主要功能是:執(zhí)行層輸出命令、開放信號(hào)、轉(zhuǎn)換道岔。
2 用戶界面顯示
系統(tǒng)軟件開發(fā)的編譯環(huán)境采用Visual Studio 2008,編程語言采用標(biāo)準(zhǔn)C++。
在仿真系統(tǒng)中,用戶界面顯示是指站場(chǎng)圖的顯示、控制按鈕的命令實(shí)現(xiàn)和站場(chǎng)設(shè)備狀態(tài)的實(shí)時(shí)顯示,是實(shí)現(xiàn)人機(jī)交互的基礎(chǔ)。
站場(chǎng)圖初始化顯示采用GDI雙緩沖技術(shù),用以避免站場(chǎng)界面的閃爍。站場(chǎng)圖涉及的元素包括信號(hào)機(jī)、軌道和道岔,控制按鈕包括故障解鎖、進(jìn)路排列和取消進(jìn)路。
每個(gè)站場(chǎng)控件具有相同的屬性,在設(shè)計(jì)控件類(即道岔類CSwitch、區(qū)段類CTrack、信號(hào)機(jī)類CSignal等)時(shí)設(shè)計(jì)一個(gè)父類,讓控件類全部繼承自父類。
以信號(hào)機(jī)為例,信號(hào)機(jī)的屬性包括:
CStringm_SignalName;//信號(hào)機(jī)名稱
short m_NameVisible; //信號(hào)機(jī)名稱可見
shortm_LocationType;//信號(hào)機(jī)位置
CRectm_LampRect;//機(jī)燈所在矩形
COLORREF m_FontColor;//字體的顏色
COLORREF m_VerticalColor;//基座顏色
COLORREF m_LampColor;//機(jī)燈的顏色
COLORREF m_SignalBackColor;//信號(hào)機(jī)背景色
BOOL m_Visible;//控件可見性
為了方便設(shè)置和讀取控件的屬性值,仿真系統(tǒng)中設(shè)置了set和get函數(shù)來調(diào)用。
GetSignalName();//信號(hào)機(jī)名稱
void SetSignalName(CString strNewValue);
short GetLocationType();//信號(hào)機(jī)位置
void SetLocationType(short LocationType);
BOOL GetVisible();//信號(hào)機(jī)是否可見
void SetVisible(BOOL bNewValue);
COLORREF GetColor();//信號(hào)機(jī)顏色
void SetColor(const COLORREF);
short GetDirection();//信號(hào)機(jī)方向
void SetDirection(short Direction);
站場(chǎng)控件以.ocx格式保存
3 聯(lián)鎖系統(tǒng)數(shù)據(jù)庫設(shè)計(jì)
計(jì)算機(jī)聯(lián)鎖系統(tǒng)為實(shí)現(xiàn)系統(tǒng)維護(hù)、行車管理自動(dòng)化奠定了基礎(chǔ)。
聯(lián)鎖數(shù)據(jù)主要包括人機(jī)交互層傳輸過來的控制命令信息、站場(chǎng)實(shí)時(shí)狀態(tài)信息以及用于排列進(jìn)路使用的聯(lián)鎖表。
3.1 站場(chǎng)圖數(shù)據(jù)
采用Accesss數(shù)據(jù)庫進(jìn)行站場(chǎng)圖數(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ū)段或者道岔)、JJQ(靠近信號(hào)機(jī)的區(qū)段或者道岔)。
3.2 聯(lián)鎖表數(shù)據(jù)
在計(jì)算機(jī)聯(lián)鎖系統(tǒng)中,由于參加運(yùn)算的數(shù)據(jù)量很大,而進(jìn)路的處理又是整個(gè)聯(lián)鎖系統(tǒng)中最重要的問題之一。一個(gè)進(jìn)路時(shí)只涉及很少一部分的數(shù)據(jù),設(shè)計(jì)靜態(tài)聯(lián)鎖表文件,對(duì)每一條進(jìn)路數(shù)據(jù)列一個(gè)數(shù)據(jù)表,將該進(jìn)路有關(guān)的特性和變量全部納入到該聯(lián)鎖表中[7]。蘇州軌道交通一號(hào)線包含的進(jìn)路數(shù)量少而且簡(jiǎn)單,采用靜態(tài)聯(lián)鎖表文件可以提高進(jìn)路處理的運(yùn)行速度,并且保證進(jìn)路處理的高可靠性和安全性。聯(lián)鎖表應(yīng)該包含的數(shù)據(jù)有:進(jìn)路的類型、進(jìn)路的編號(hào)、始端信號(hào)機(jī)、終端信號(hào)機(jī)、敵對(duì)信號(hào)、進(jìn)路上的道岔、進(jìn)路上的邏輯道岔及進(jìn)路上的區(qū)段。
仿真界面如圖2所示。
以蘇州軌道交通一號(hào)線木瀆站S0110至S0106進(jìn)路為例,其在聯(lián)鎖表數(shù)據(jù)庫中的信息如表1所示,其線路圖如圖3所示。
采用靜態(tài)文件的優(yōu)點(diǎn)是:(1)靜態(tài)文件占用較小的存儲(chǔ)空間,有利于檢測(cè)查詢。(2)進(jìn)路的數(shù)據(jù)結(jié)構(gòu)是由節(jié)點(diǎn)連接而成,在任何地方增加或者減少節(jié)點(diǎn),只需要對(duì)部分進(jìn)路數(shù)據(jù)進(jìn)行修改,不影響存儲(chǔ)區(qū)的其他位置[8]。
在ATS仿真系統(tǒng)中,通過GetRoute來讀取進(jìn)路。
4 時(shí)刻表編寫
仿真系統(tǒng)根據(jù)實(shí)際列車運(yùn)行時(shí)刻表編寫仿真運(yùn)行時(shí)刻表,如表2所示。
5 進(jìn)路控制
在ATS系統(tǒng)中,根據(jù)聯(lián)鎖表、計(jì)劃運(yùn)行圖及列車的所在位置自動(dòng)判斷、生成并輸出進(jìn)路控制命令傳送至聯(lián)鎖設(shè)備,實(shí)現(xiàn)對(duì)列車的進(jìn)路的控制。
進(jìn)路處理可劃分為4個(gè)模塊:
?。?)檢查進(jìn)路安排是否一致和形成道岔控制的子模塊。該模塊檢查排在進(jìn)路上面的道岔是否處于正確的位置,如果不符合要求,則要執(zhí)行相應(yīng)的道岔控制命令,使道岔處于正確的位置。
(2)自動(dòng)解鎖子模塊。該模塊主要實(shí)現(xiàn)進(jìn)路在正常狀況下的解鎖功能以及調(diào)車進(jìn)路的中途折返解鎖。
?。?)信號(hào)保持子模塊。當(dāng)進(jìn)路的信號(hào)開放以后,應(yīng)不斷地去詢問開放信號(hào)條件是否仍然滿足,若條件滿足則保持信號(hào)繼續(xù)開放,若條件不滿足,則取消信號(hào)機(jī)開放命令,關(guān)閉信號(hào)機(jī)。
?。?)進(jìn)路鎖閉和信號(hào)開放子模塊。用于檢查鎖閉條件是否仍然滿足,若滿足后就鎖閉進(jìn)路,并且形成防護(hù)信號(hào)機(jī)開放命令。
進(jìn)路處理過程,可以分為進(jìn)路的建立和解除兩個(gè)部分,它們之間的臨界部分是信號(hào)保持。進(jìn)路的建立是指從按壓進(jìn)路始、終端按鈕開始到防護(hù)該條進(jìn)路的信號(hào)機(jī)開放這一階段[9]。排列進(jìn)路流程如圖4所示。
進(jìn)路的解除是指從列車或調(diào)車車列駛?cè)胄盘?hào)機(jī)內(nèi)方到出清進(jìn)路中全部道岔區(qū)段為止的這一階段。
排列進(jìn)路的相關(guān)代碼如下:
if(g_pDoc->pStaXH==NULL||g_pDoc->pEndXH==NULL)
AfxMessageBox(L"請(qǐng)選擇始端和終端信號(hào)!");
//確定所選進(jìn)路的始端信號(hào)機(jī)和終端信號(hào)機(jī)
if(!g_pDoc->m_pXHControlOP->SetRouteOP(g_pDoc->pStaXH->GetSignalName(),g_pDoc->pEndXH->GetSignalName(),ROUTE_OP_BUILD))//讀取聯(lián)鎖表
{
flag=FALSE;
//g_pDoc->m_pCmdView2->SetResponseLine(L"操作被聯(lián)鎖邏輯取消");
}//檢查進(jìn)路
if(g_pDoc->pStaXH->GetSignalName().Left(1)==L"F")
g_pDoc->pStaXH->SetTXXHBK(0);
else//改變始端信號(hào)機(jī)狀態(tài)并記錄
g_pDoc->pStaXH->SetBroad(BROAD_CANCEL);
if(g_pDoc->pEndXH->GetSignalName().Left(1)==L"F")
g_pDoc->pEndXH->SetTXXHBK(0);
else//改變終端信號(hào)機(jī)狀態(tài)并記錄
g_pDoc->pEndXH->SetBroad(BROAD_CANCEL);
//建立進(jìn)路并征用
g_pDoc->pStaXH=NULL;
g_pDoc->pEndXH=NULL;
//g_pDoc->m_pCmdView2->m_ExBTCMD1.SetCheck(0);//功能按鈕恢復(fù)初始狀態(tài)
6 結(jié)論
本文以蘇州軌道交通一號(hào)線的ATS仿真系統(tǒng)為研究對(duì)象,分析計(jì)算機(jī)聯(lián)鎖系統(tǒng)的系統(tǒng)結(jié)構(gòu)和主要功能。根據(jù)前期的分析,利用仿真技術(shù)搭建了可視化的人機(jī)界面,并對(duì)界面中的每一站場(chǎng)元素建立數(shù)據(jù)庫,結(jié)合聯(lián)鎖規(guī)則生成聯(lián)鎖表數(shù)據(jù)庫,最終實(shí)現(xiàn)列車的進(jìn)路控制。計(jì)算機(jī)聯(lián)鎖對(duì)于ATS仿真系統(tǒng)各個(gè)功能的實(shí)現(xiàn)具有重要意義。本文所設(shè)計(jì)的計(jì)算機(jī)聯(lián)鎖系統(tǒng)對(duì)其他線路也具有通用價(jià)值和普遍意義。
參考文獻(xiàn)
[1] 張照亮.鐵路信號(hào)計(jì)算機(jī)聯(lián)鎖系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].武漢:武漢理工大學(xué),2001.
[2] 曹友杰.鐵路信號(hào)分布式計(jì)算機(jī)聯(lián)鎖系統(tǒng)-道岔控制模塊研究[D].蘭州:蘭州交通大學(xué),2014.
[3] 袁翩翩,陳永生,張立.單線接發(fā)列車仿真系統(tǒng)故障模擬[J].微型機(jī)與應(yīng)用,2014,33(22):17-19,23.
[4] 田曉莉.基于CBTC的ATS列車進(jìn)路控制技術(shù)研究[D].成都:西南交通大學(xué),2014.
[5] 陸亞平.CTCS_3級(jí)計(jì)算機(jī)聯(lián)鎖上位機(jī)系統(tǒng)仿真研究[D].成都:西南交通大學(xué),2010.
[6] 吳江,郭秀清.上海地鐵ATS仿真系統(tǒng)進(jìn)路自動(dòng)排列的設(shè)計(jì)與實(shí)現(xiàn)[J].微型機(jī)與應(yīng)用,2012,31(17):7-10.
[7] 董俊祺.軌道交通ATS仿真運(yùn)行框架的設(shè)計(jì)與實(shí)現(xiàn)[J].地下工程與隧道,2008(2):63-64,67,69.
[8] 華似磊,董俊祺.城市軌道交通列車自動(dòng)監(jiān)控仿真系統(tǒng)組件設(shè)計(jì)與實(shí)現(xiàn)[J].城市軌道交通研究,2007(2):41-43,47.