《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計應(yīng)用 > ATS仿真培訓(xùn)系統(tǒng)列車模擬運行的設(shè)計與實現(xiàn)
ATS仿真培訓(xùn)系統(tǒng)列車模擬運行的設(shè)計與實現(xiàn)
來源:微型機與應(yīng)用2012年第14期
孫志勇, 陳永生
(同濟大學(xué) 計算機科學(xué)與技術(shù)系, 上海200331)
摘要: 通過VC++中ActiveX控件制作方法設(shè)計出上海地鐵8號線ATS仿真培訓(xùn)系統(tǒng)中列車模型,并通過列車時刻表數(shù)據(jù)存放列車運行時所需的一些數(shù)據(jù)信息,此時刻表數(shù)據(jù)以XML格式存儲,在對時刻表數(shù)據(jù)進行解析時采用目前比較流行的TinyXml。最后還給出此仿真培訓(xùn)系統(tǒng)的列車正常模擬運行的結(jié)果。
關(guān)鍵詞: 軟件 列車運行仿真 XML VC++
Abstract:
Key words :

摘  要: 通過VC++中ActiveX控件制作方法設(shè)計出上海地鐵8號線ATS仿真培訓(xùn)系統(tǒng)中列車模型,并通過列車時刻表數(shù)據(jù)存放列車運行時所需的一些數(shù)據(jù)信息,此時刻表數(shù)據(jù)以XML格式存儲,在對時刻表數(shù)據(jù)進行解析時采用目前比較流行的TinyXml。最后還給出此仿真培訓(xùn)系統(tǒng)的列車正常模擬運行的結(jié)果。
關(guān)鍵詞: 列車運行仿真; XML; VC++

    中國近年來,基于通信的列車控制系統(tǒng)CBTC(Communication Based Train Control)已逐漸被信號界所認可,成為當(dāng)今世界范圍內(nèi)鐵路信號技術(shù)的發(fā)展趨勢,隨著CBTC系統(tǒng)在國內(nèi)城市軌道交通工程中的廣泛應(yīng)用,使得城市軌道交通運營企業(yè)急需大量具備CBTC系統(tǒng)背景的運營管理、通信信號等專業(yè)知識和操作技能的綜合性運營人才。這些綜合性運營專業(yè)人員不僅需要熟悉CBTC系統(tǒng)的工作原理,同時還需要具備實際操作能力。考慮到現(xiàn)場行車安全,無法在目前已經(jīng)投入運營的系統(tǒng)上進行教學(xué)培訓(xùn)。所以開發(fā)仿真培訓(xùn)系統(tǒng)就成為解決這一問題的途徑。
    列車自動運行ATS(Automatic Train Supervision)是CBTC系統(tǒng)中負責(zé)監(jiān)視和控制整個地鐵線路中列車的運行狀態(tài)的一個組成部分[1]。本文中的列車模擬運行就是此ATS仿真培訓(xùn)系統(tǒng)中的一子模塊。
1 列車模型
1.1 列車模型的設(shè)計

    對于8號線列車控件,它的屬性分為:靜態(tài)屬性和動態(tài)屬性。靜態(tài)屬性是指設(shè)計控件時可修改,但當(dāng)列車控件繪制完成時就不可修改的一類屬性;動態(tài)屬性主要指設(shè)計控件時無需設(shè)置,在站場圖的仿真運行過程中可不斷改變的屬性[2]。其屬性可按如下設(shè)置:
    (1) 靜態(tài)屬性:列車長度,列車車廂數(shù),列車重量。
    (2) 動態(tài)屬性:列車標(biāo)簽,列車行車方向,列車標(biāo)簽的方向,列車車門狀態(tài)等。
1.2 列車模型的實現(xiàn)
     開發(fā)列車控件使用的是VC++,它是開發(fā)ActiveX控件的常用工具之一。VC++集成開發(fā)環(huán)境,使用了微軟自己的類庫MFC,MFC對開發(fā)ActiveX控件提供了全面的支持[3-4]。
    其主要定義代碼如下:
    Class Train:public COleControl{…}        //列車控件定義
    其主要屬性定義如下:
    //靜態(tài)屬性
    Short TrainDetails;        //列車長度
    Short TrainMass; //列車重量
    Short TrainCarriages;    //列車車廂
    //動態(tài)屬性
    BSTR TrainLabel;  //列車標(biāo)簽
    Short LabelPosition;  //標(biāo)簽位置
    Short Direction;  //列車行車方向
    Short DoorState;  //車門狀態(tài)
    …
    在VS2005編譯環(huán)境中,列車控件顯示如圖1所示。

2 列車時刻表
2.1 時刻表數(shù)據(jù)存儲

    可擴展標(biāo)記語言(XML)是用于標(biāo)記電子文件使其具有結(jié)構(gòu)性的標(biāo)記語言,可以用來標(biāo)記數(shù)據(jù)、定義數(shù)據(jù)類型,是一種允許用戶對自己的標(biāo)記語言進行定義的源語言。作為一種數(shù)據(jù)格式,它具有以下特點:
    (1) 規(guī)范性:XML是W3C制定的,XML的標(biāo)準(zhǔn)化工作由W3C的XML工作組負責(zé),它遵循嚴(yán)格的語法要求,便于不同開發(fā)人員的理解。
    (2) 簡單性:XML文檔只是純文本,這樣XML文檔就可以自由地在兩個不同的系統(tǒng)之間交換數(shù)據(jù),因為基本上任何系統(tǒng)都提供了對文本格式的支持。
    (3) 自我描述:XML可以明確地表示數(shù)據(jù)模型中各個部分的意義,只要查看XML文檔就能確定該數(shù)據(jù)的意義。每個數(shù)字的意義是清楚的,且不會錯誤地與數(shù)字本身相聯(lián)系。當(dāng)讀取文檔時,開發(fā)人員了解<Arrival>05:00:00</Arrival>中的05:00:00指的是列車到站時間而不是列車離站的時間。
    (4) 結(jié)構(gòu)和內(nèi)容分離:在XML中數(shù)據(jù)和顯示格式是分離的,XML元數(shù)據(jù)文件就是純數(shù)據(jù)文件,可以作為數(shù)據(jù)源提供數(shù)據(jù)。
    (5) 可擴展性:XML允許使用者創(chuàng)建和使用他們自己的標(biāo)記,而不像HTML那樣使用有限的詞匯。
    基于以上XML語言的特點,再加上列車時刻表數(shù)據(jù)比較簡單,它包括列車發(fā)車站點,列車到達站點時間以及列車離開站點時間。為了使數(shù)據(jù)結(jié)構(gòu)清晰,便于不同開發(fā)人員的理解,所以列車時刻表數(shù)據(jù)的存儲方式則采用XML。
    列車時刻表XML數(shù)據(jù)主要由4個標(biāo)簽組成:列車運行的線路、列車停靠的站臺、列車到達站臺的時間和列車離開站臺的時間。
    (1) 列車運行線路:規(guī)定列車運行的線路。
    (2) 列車停靠站點:站點以名字首字母命名,如SGR1為勝光路,其后1表示停在站點的哪一站臺,而每個站點都有兩個站臺。
    (3) 列車到達/離開站臺時間: 此兩時間為列車控件出現(xiàn)或離開站臺的時間,它們的差為列車停站時間。
    以下就是采用XML方式存儲的列車時刻表的一小部分:
    <?xml version="1.0" encoding="UTF-8"?>
    <TimeTableLists>
         <Name>時刻表1</Name>
             <TimeTable>
                   <ID>801</ID>
                   <Record>
                        <Line>1</Line>
                             <Platform>SGR1</Platform>
                             <Arrival>05:02:00</Arrival>
                             <Departure>05:03:00</Departure>
                        </Record>
                         ……
               </TimeTable>
    </TimeTableLists>
    <TimeTableLists>
        <Name>時刻表2</Name>
             <TimeTable>
                   <ID>801</ID>
                   <Record>
                                <Line>1</Line>
                    <Platform>SGR1</Platform>
                <Arrival>05:02:00</Arrival>
                <Departure>05:03:00</Departure>
             </Record>
              ……
       </TimeTable>
    </TimeTableLists>
    XML文件除了可以用記事本編寫外,還可以使用多種可視化XML開發(fā)工具完成,本文采用XmlSpy2005進行數(shù)據(jù)編寫。
2.2 時刻表數(shù)據(jù)解析

 


    XML文檔的解析方法有很多種,如Libxml++、微軟的MSXML等。本文所采用的是TinyXml,它是目前非常流行的一款基于DOM模型的開源XML解析器,使用起來很方便且容易上手,能夠用于C++,并能在Windows或Linux中編譯。這個解析庫的模型通過解析XML文件,在內(nèi)存中生成DOM模型,從而很方便地遍歷整棵XML樹。
    TinyXml中的類與XML文件的對應(yīng)關(guān)系如圖2所示。TiXmlBase是所有類的基類,TiXmlAttribute為XML中元素的屬性TiXmlNode為DOM結(jié)構(gòu)中的節(jié)點,如<Record>;TiXmlComment為XML文件中的注釋;TiXmlDeclaration 為XML文件中的聲明,如<?xml version="1.0" encoding="UTF-8"?>;TiXmlDocument為XML文件的整個文檔;TiXmlElement為XML文件中的元素,如<Line>、<Platform>;TiXmlText為XML文件中的元素的文本,如<Line></Line>之間的值1;TiXmlUnknown為XML中的未知部分。

    如果XML文檔元素屬性值是中文,用TinyXml解析出來的值會出現(xiàn)亂碼。亂碼是由于GB2312與UTF8之間轉(zhuǎn)換不當(dāng)造成的,通過MultiByteToWideChar函數(shù)可以進行轉(zhuǎn)換,解決亂碼問題。
    解析的主要代碼如下:
       TiXmlDocument* myDocument=new TiXmlDocument();
       const TiXmlElement* rootElement=myDocument->RootEle-
        ment();
       for(const TiXmlElement* timelablelist=rootElement->
        FirstChildElement();timelablelist;
           timelablelist=timelablelist->NextSiblingElement())
                                 //循環(huán)遍歷兩套時刻表
     {   
             const TiXmlElement* name=timelabellist->FirstChild
            Element();
             ……
            for(const TiXmlElement*Timetable=name->NextSibling
            Element();Timetable;
             Timetable=Timetable-> NextSiblingElement())
                             //循環(huán)遍歷TimeTable節(jié)點
              {  
                  const TiXmlElement* Id=Timetable->First Child
                Element();
               
                   ……
                    for(const TiXmlElement* Record=Id->NextSibling
                Element();Record;
          Record=Record->NextSiblingElement())
                                 //循環(huán)遍歷Record節(jié)點
            {
                ……
            }
          }
     }
3 列車模擬運行
    列車的模擬運行主要是根據(jù)時刻表發(fā)車,選擇運行的線路,根據(jù)移動閉塞原理計算列車的行駛速度,按照一定的信號邏輯動態(tài)地改變線路上的控件狀態(tài)。
    時刻表中存有列車的線路信息,線路信息表中則有列車的運行方向以及軌道數(shù)據(jù),通過軌道數(shù)據(jù)可以查詢所需的站場數(shù)據(jù),包括:信號機、區(qū)段、道岔以及站臺,它們按照一定關(guān)系連接形成站場圖,列車在當(dāng)前的區(qū)段或者通過某個信號機時可以推算出下次要經(jīng)過的區(qū)段或信號機。
    列車模擬運行在8號線ATS仿真系統(tǒng)上,此系統(tǒng)采用VC2005開發(fā),在Win7系統(tǒng)上列車運行的結(jié)果如圖3所示。

    本文針對上海地鐵8號線ATS培訓(xùn)系統(tǒng)中的列車模擬運行進行設(shè)計,構(gòu)建了列車模型控件,并使用XML格式對列車時刻表數(shù)據(jù)進行存儲并通過TinyXml對其解析,達到以列車正常運行的目的。隨著國內(nèi)城市軌道交通的迅猛發(fā)展,人才培訓(xùn)的需求也勢必增加,同時本文對于以后設(shè)計其他線路仿真系統(tǒng)有鋪墊的作用。
參考文獻
[1] 曾小清, 王長林, 張樹京. 基于通信的軌道交通運行控制[M]. 上海:同濟大學(xué)出版社,2007.
[2] 王野,郭秀清.基于組件技術(shù)的列車自動監(jiān)控仿真系統(tǒng)開發(fā)平臺[J]. 計算機應(yīng)用, 2007,27(z2):285-288.
[3] 魯也傳,陳永生,郭玉臣. 基于通信的列車自動監(jiān)控系統(tǒng)平臺設(shè)計與實現(xiàn)[J]. 計算機應(yīng)用, 2009,29(S2):152-154.
[4] 宇鵬,王曉峰,李云飛.Visual C++實踐與提高——ActiveX 篇[M]. 北京:中國鐵道出版社,2001:161-211.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
女人色偷偷aa久久天堂| 国产精品资源| 久久都是精品| 先锋影音一区二区三区| 一区二区黄色| 亚洲最新合集| 夜久久久久久| 99精品国产福利在线观看免费 | 欧美天天视频| 欧美午夜电影在线观看| 欧美日韩国产美| 欧美日韩福利在线观看| 欧美日韩一区二区三区免费看| 欧美电影打屁股sp| 欧美男人的天堂| 欧美伦理在线观看| 欧美日韩一区二区在线播放| 欧美绝品在线观看成人午夜影视 | 国产精品免费电影| 国产精品美女| 国产日韩欧美黄色| 国产一区二区精品丝袜| 国内久久精品视频| 今天的高清视频免费播放成人 | 亚洲人成网在线播放| 亚洲精品国产精品乱码不99| 日韩一级免费观看| 亚洲一区二区3| 欧美一区二区免费观在线| 性欧美1819sex性高清| 欧美在线观看日本一区| 久久精品99国产精品日本| 久久婷婷国产综合国色天香| 欧美成人第一页| 欧美日韩三级| 国产麻豆精品theporn| 狠狠爱www人成狠狠爱综合网| 精品成人a区在线观看| 亚洲激情在线播放| 正在播放亚洲一区| 香蕉成人啪国产精品视频综合网| 久久精品日产第一区二区| 99国产精品视频免费观看| 亚洲一区在线观看视频| 久久国产福利| 欧美高清在线视频观看不卡| 欧美亚日韩国产aⅴ精品中极品| 国产日本欧美一区二区| 亚洲国产成人久久| 亚洲午夜久久久久久尤物| 欧美在线你懂的| 亚洲免费观看高清在线观看 | 亚洲肉体裸体xxxx137| 亚洲无吗在线| 久久久一区二区| 欧美日本亚洲韩国国产| 国产毛片精品视频| 亚洲国产高清一区| 亚洲一区亚洲| 亚洲精品久久久久久一区二区| 亚洲永久免费av| 久久久久久999| 麻豆91精品91久久久的内涵| 久久青草久久| 欧美精品aa| 国产三级欧美三级| 亚洲激情第一页| 亚洲另类一区二区| 亚洲尤物视频网| 亚洲精品在线免费| 欧美一区二区女人| 欧美另类综合| 国产一区二区三区自拍| 一本色道久久综合亚洲精品按摩 | 在线一区免费观看| 久久综合狠狠综合久久综合88| 欧美色大人视频| 在线不卡免费欧美| 亚洲欧美国产制服动漫| 99精品99久久久久久宅男| 久久久精品日韩| 国产精品久在线观看| 亚洲国产日韩欧美| 欧美一级片在线播放| 亚洲午夜羞羞片| 嫩草影视亚洲| 国产一区二区精品久久| 一区二区三区高清在线| 亚洲精选中文字幕| 久久视频一区| 国产精品亚洲美女av网站| 99re视频这里只有精品| 亚洲黄色av一区| 久久九九国产| 国产欧美一二三区| 亚洲一区国产| 亚洲一区二区三区视频播放| 欧美国产在线视频| 欲香欲色天天天综合和网| 欧美一区在线看| 欧美一区二区成人6969| 欧美午夜视频一区二区| 亚洲精品在线免费| 亚洲精品国久久99热| 美女精品自拍一二三四| 韩日精品视频| 久久爱www.| 久久久国产一区二区| 国产情人节一区| 亚洲综合日韩中文字幕v在线| 亚洲永久精品大片| 欧美肉体xxxx裸体137大胆| 亚洲精品美女免费| 99国产精品| 欧美激情在线| 亚洲日本成人网| 99re这里只有精品6| 欧美另类人妖| 日韩视频永久免费观看| 亚洲最快最全在线视频| 欧美精品一区二区三区在线播放| 国内成人精品2018免费看| 欧美伊人久久久久久久久影院 | 欧美日本亚洲| 亚洲精品综合| 一区二区三区精品视频在线观看| 欧美女同视频| 日韩视频一区二区三区| 亚洲亚洲精品三区日韩精品在线视频| 欧美日韩在线大尺度| 亚洲一级电影| 久久精品夜色噜噜亚洲a∨| 国产一区二区中文| 久久国产精品第一页| 久久综合一区二区| 亚洲激情图片小说视频| 一区二区三区日韩精品视频| 欧美性猛交xxxx乱大交退制版| 亚洲一区二区在线视频| 久久黄色网页| 在线日韩电影| 一区二区日韩伦理片| 欧美午夜激情在线| 亚洲欧美精品伊人久久| 久久综合九色综合欧美就去吻| 亚洲国产一区二区a毛片| 在线视频日本亚洲性| 国产精品免费区二区三区观看| 新67194成人永久网站| 蜜臀av性久久久久蜜臀aⅴ| 亚洲精品你懂的| 性18欧美另类| 在线观看成人小视频| 亚洲视频网在线直播| 国产精品一级二级三级| 亚洲高清在线观看| 欧美日韩国产首页| 亚洲欧美精品在线| 狂野欧美一区| 国产一区二区三区在线观看视频 | 99国内精品久久| 午夜精品久久久久久久久| 国产日韩欧美精品| 亚洲激情视频| 欧美色图五月天| 亚洲欧美在线网| 欧美成年人视频| 一区二区三区四区国产精品| 久久久精品网| 日韩视频免费在线观看| 欧美在线综合视频| 亚洲国产精品va在线观看黑人| 中文在线资源观看视频网站免费不卡| 国产精品夜夜嗨| 亚洲区第一页| 国产精品网站在线播放| 亚洲国产精品一区二区久 | 欧美日韩亚洲不卡| 午夜欧美电影在线观看| 欧美激情欧美激情在线五月| 亚洲欧美国产一区二区三区| 欧美成人精品| 亚洲制服av| 欧美国产精品久久| 亚洲欧美日韩精品在线| 欧美成人精品h版在线观看| 亚洲一区二区三区乱码aⅴ蜜桃女 亚洲一区二区三区乱码aⅴ | 久久国产精品99久久久久久老狼| 欧美久久精品午夜青青大伊人| 性色av香蕉一区二区| 欧美日韩精品免费看| 久久精品国产2020观看福利| 欧美三级免费| 亚洲人成在线观看| 国产一区二区三区黄| 亚洲永久免费精品| 亚洲欧洲精品成人久久奇米网| 久久久久青草大香线综合精品| 亚洲私人影吧| 欧美精品亚洲精品|