找回密码
 注册会员
更新自动建库工具PCB Footprint Expert 2024.04 Pro / Library Expert 破解版

[嵌入式/ARM] ATS仿真培训系统列车模拟运行的设计与实现

[复制链接]
admin 发表于 2013-3-26 17:11:38 | 显示全部楼层 |阅读模式

本文包含原理图、PCB、源代码、封装库、中英文PDF等资源

您需要 登录 才可以下载或查看,没有账号?注册会员

×
摘  要: 通过VC++中ActiveX控件制作方法设计出上海地铁8号线ATS仿真培训系统中列车模型,并通过列车时刻表数据存放列车运行时所需的一些数据信息,此时刻表数据以XML格式存储,在对时刻表数据进行解析时采用目前比较流行的TinyXml。最后还给出此仿真培训系统的列车正常模拟运行的结果。
关键词: 列车运行仿真; XML; VC++
       中国近年来,基于通信的列车控制系统CBTC(Communication Based Train Control)已逐渐被信号界所认可,成为当今世界范围内铁路信号技术的发展趋势,随着CBTC系统在国内城市轨道交通工程中的广泛应用,使得城市轨道交通运营企业急需大量具备CBTC系统背景的运营管理、通信信号等专业知识和操作技能的综合性运营人才。这些综合性运营专业人员不仅需要熟悉CBTC系统的工作原理,同时还需要具备实际操作能力。考虑到现场行车安全,无法在目前已经投入运营的系统上进行教学培训。所以开发仿真培训系统就成为解决这一问题的途径。
     列车自动运行ATS(Automatic Train Supervision)是CBTC系统中负责监视和控制整个地铁线路中列车的运行状态的一个组成部分[1]。本文中的列车模拟运行就是此ATS仿真培训系统中的一子模块。
1 列车模型
1.1 列车模型的设计

     对于8号线列车控件,它的属性分为:静态属性和动态属性。静态属性是指设计控件时可修改,但当列车控件绘制完成时就不可修改的一类属性;动态属性主要指设计控件时无需设置,在站场图的仿真运行过程中可不断改变的属性[2]。其属性可按如下设置:
     (1) 静态属性:列车长度,列车车厢数,列车重量。
     (2) 动态属性:列车标签,列车行车方向,列车标签的方向,列车车门状态等。
1.2 列车模型的实现
     开发列车控件使用的是VC++,它是开发ActiveX控件的常用工具之一。VC++集成开发环境,使用了微软自己的类库MFC,MFC对开发ActiveX控件提供了全面的支持[3-4]。
     其主要定义代码如下:
     Class Train:public COleControl{…}        //列车控件定义
     其主要属性定义如下:
     //静态属性
     Short TrainDetails;        //列车长度
     Short TrainMass; //列车重量
     Short TrainCarriages;    //列车车厢
     //动态属性
     BSTR TrainLabel;  //列车标签
     Short LabelPosition;  //标签位置
     Short Direction;  //列车行车方向
     Short DoorState;  //车门状态
     …
     在VS2005编译环境中,列车控件显示如图1所示。
    20121107045310963414107.gif
   2 列车时刻表
2.1 时刻表数据存储

     可扩展标记语言(XML)是用于标记电子文件使其具有结构性的标记语言,可以用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言。作为一种数据格式,它具有以下特点:
     (1) 规范性:XML是W3C制定的,XML的标准化工作由W3C的XML工作组负责,它遵循严格的语法要求,便于不同开发人员的理解。
     (2) 简单性:XML文档只是纯文本,这样XML文档就可以自由地在两个不同的系统之间交换数据,因为基本上任何系统都提供了对文本格式的支持。
     (3) 自我描述:XML可以明确地表示数据模型中各个部分的意义,只要查看XML文档就能确定该数据的意义。每个数字的意义是清楚的,且不会错误地与数字本身相联系。当读取文档时,开发人员了解&lt;Arrival>05:00:00</Arrival>中的05:00:00指的是列车到站时间而不是列车离站的时间。
     (4) 结构和内容分离:在XML中数据和显示格式是分离的,XML元数据文件就是纯数据文件,可以作为数据源提供数据。
     (5) 可扩展性:XML允许使用者创建和使用他们自己的标记,而不像HTML那样使用有限的词汇。
     基于以上XML语言的特点,再加上列车时刻表数据比较简单,它包括列车发车站点,列车到达站点时间以及列车离开站点时间。为了使数据结构清晰,便于不同开发人员的理解,所以列车时刻表数据的存储方式则采用XML。
     列车时刻表XML数据主要由4个标签组成:列车运行的线路、列车停靠的站台、列车到达站台的时间和列车离开站台的时间。
     (1) 列车运行线路:规定列车运行的线路。
     (2) 列车停靠站点:站点以名字首字母命名,如SGR1为胜光路,其后1表示停在站点的哪一站台,而每个站点都有两个站台。
     (3) 列车到达/离开站台时间: 此两时间为列车控件出现或离开站台的时间,它们的差为列车停站时间。
     以下就是采用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开发工具完成,本文采用XmlSpy2005进行数据编写。
2.2 时刻表数据解析
*滑块验证:
您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

QQ|手机版|MCU资讯论坛 ( 京ICP备18035221号-2 )|网站地图

GMT+8, 2025-3-11 15:05 , Processed in 0.061341 second(s), 10 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表