CBTC仿真测试系统线路数据可视化生成的设计与实现

2018-05-03 10:00徐中伟万勇兵
铁路计算机应用 2018年4期
关键词:信号机站场区段

朱 勇,徐中伟,万勇兵

(1.同济大学 电子与信息工程学院,上海 201804;2.上海轨道交通技术研究中心,上海 201103)

基于通信的列车自动控制(CBTC,Communication Based Train Control System)系统作为城市轨道交通控制系统的神经中枢,必须经过严格的功能及安全测试,确保系统的质量合格。计算机仿真测试与现场试验线测试是CBTC测试的两种手段,其中计算机仿真测试以其经济、安全、可重复等优点而被广泛采用。CBTC仿真测试系统通过研究CBTC系统的结构、功能和行为,利用计算机对系统真实的运行环境进行模拟,分析系统对测试用例的响应,进而验证系统功能,评估系统安全性[1]。

1 CBTC仿真测试系统结构

CBTC仿真测试系统由测试引擎、车辆仿真子系统、接口中间件子系统、轨旁设备仿真子系统组成,系统结构如图1所示。

图1 CBTC仿真测试系统结构图

测试引擎负责监控车辆运动状态及轨旁设备状态,生成、管理、执行自动化测试脚本,处理测试结果;车辆仿真子系统是对真实列车的运行动力学仿真,通过牵引力、牵引延时、制动延时和黏着力等参数构建列车运动模型,结合运行场景计算出列车的瞬时速度、加速度以及位移等信息,并周期向被测系统更新;轨旁仿真子系统负责信号机、道岔、区段、屏蔽门、按钮等轨旁设备仿真,动态显示站场图,实现设备故障注入,提供一个虚拟的设备环境;接口中间件子系统的作用是对接受到的设备状态信息、控制命令、应答器报文等进行格式转换及物理节点映射,然后再转发出去,其设计目的是屏蔽各种被测CBTC系统的差异性和复杂性,保证CBTC仿真测试系统的独立性,提高它的通用性。

2 站场可视化设计

2.1 可视化技术简介

数据可视化技术指的是运用计算机图形学和图像技术,将数据转换位图形或图像在屏幕上显示出来[2]。其主旨是借助于图形化手段,清晰有效地传达与沟通信息,并利用数据分析和开发工具发现其中未知信息的处理过程。它涉及到计算机图形学、计算机辅助设计、计算机视觉及人机交互技术等诸多领域。

线路数据主要来源于站场平面布置图[3],该图是根据站场缩尺平面图绘制成的有关设备布置情况的技术图纸,描述的是CBTC仿真测试过程中的整个线路环境,对于被测系统而言就是真实线路上的各种物理设备和运行场景。现在CBTC测试中的平面线路布置图普遍采用DWG格式,图中各种设备数量总和一般数量巨大,大型的站场图尤甚,人工生成相应的线路数据繁杂且容易出错。因此可以采用数据可视化技术,通过丰富的图形交互功能实现线路数据的可视化生成,从而使数据可以更加灵活的展示,更易于理解和编辑。

2.2 设备图元设计

CBTC线路设备有信号机、道岔、区段、计轴器、屏蔽门、(有源/无源)应答器等。所谓图元,就是这些设备在计算机屏幕上的图形表示。如图2所示为一些基本的设备图元。对于每一个设备图元,使用唯一的图元ID号加以区别,以便于进行设备统计和进路搜索等操作。至于设备的不同状态,道岔的岔前、定位和反位可以使用不同的线段颜色表示,区段的锁闭、解锁与此类似;信号机则可以根据所点的灯丝,用对应的颜色填充相应的灯体。

设备图元根据车站平面布置图排列组合,就构成了站场图。站场图是线路拓扑数据的可视化表现形式,描述了车站站场中信号机、道岔、轨道区段等线路设备之间的联锁关系和拓扑关系[4]。在CBTC仿真测试系统中,线路拓扑数据用以描述线路设备间的拓扑关系,主要包括图元ID、设备类型、设备名、设备编号、车站信息、坐标、前驱后继设备等信息。对站场图中设备按类型、按车站、按所在线路等要求统计后所得的数据,即线路设备统计数据。线路拓扑数据和线路设备统计数据均是线路数据的重要组成部分。

图2 设备基本图元

2.3 交互设计

在完成设备到图元的可视化映射后,需要实现人与图元之间的交互,其中,最重要的是在窗口(用户界面)中完成图元与键鼠的交互。

窗口是人机沟通的桥梁,而键鼠则是最常用的人机交互设备。交互操作的实现有赖于图元对键鼠事件的响应,比如通过鼠标点击绘制/编辑/选中设备图元、鼠标拖放图元实现重定位、通过滚轮缩放更改图元尺寸以更好地观察站场图中的局部细节或是总体概况、获取键盘输入的设备信息等。

3 线路数据生成

线路数据有静态数据和动态数据之分。静态数据主要包括线路设备信息及设备统计数据、线路拓扑结构和线路条件(如坡度、停车点)等;动态数据主要包括信号设备状态变化信息(如轨道占用、道岔状态等)。由于动态数据在CBTC实际测试过程中动态生成,本文的主要研究对象放在静态数据上。

本文设计了线路数据生成器(LDG,Line Data Generator)系统,实现可视化地生成线路数据,并基于UML(Unified Modeling Language)构建了LDG系统的静态模型和动态模型。

按照“高内聚,低耦合”的思想,将LDG系统分为表现层、控制层以及数据访问层3个层次。表现层主要为用户提供可视的、交互性的界面和功能支持;控制层根据表现层的请求,调用数据访问层功能,传回操作结果;数据访问层完成对数据的访问功能。系统在整体上也相应分为对应的3层结构,具体构成如图3所示。表现层主要由站场图编辑窗口、设备信息录入窗口、设备统计窗口和数据库数据查询窗口组成;控制层主要实现对表现层请求的接收,以及对数据访问层操作的组合使用;数据访问层实现访问数据库或对XML文件的操作。

图3 LDG系统结构图

3.1 LDG系统静态模型

线路数据的主体是线路设备,对于每一种设备类型,可以采用面向对象的思想抽象出相应的类,用以描述此设备类型相关的属性、操作、关系和语义。设备间具有一些共性:名称、编号、设备类型、坐标(在屏幕上绘图区域中的位置)、公里标及公里标系(平面布置图中的位置)、车站名、车站编号、左侧设备类型、左侧设备编号、右侧设备类型、右侧设备编号、所属ZC区域、所属ATS区域、所属CI区域等。当然也会有自己特有的一些属性和行为,比如信号机特有的一些属性:信号机类型、立柱高度(高柱和矮柱)、防护方向、是否存在并置信号机以及并置信号机编号以及信号显示等,特有的行为:点亮/熄灭某种色灯;道岔的特有属性:道岔类型、动作类型(单动/双动)、道岔的位置(定位/反位)、所属区段等,特有的行为:改变道岔的位置;区段特有的属性:物理类型(计轴区段/轨道区段)、区段内道岔(数量及编号)、区段内屏蔽门(数量及编号)、区段内紧急停车按钮(数量及编号)、区段内扣车按钮(数量及编号)、区段内折返按钮(数量及编号)等;应答器存在有源、无源应答器之分。

为了提高系统的可重用性和可扩展性,定义所有设备类的基类DevBase描述线路设备的共性,每一种设备类都是DevBase派生的子类。设备类在继承DevBase时,可添加特有的一些属性和行为,也可以重写DevBase中的行为,以满足需求。DevBase的主要内容包括:对象的创建和销毁,如类的构造、析构、拷贝、删除函数等;对象图元显示、刷新和隐藏功能;查找前驱设备和后继设备;定义设备的各种属性;获取及设置属性值等。

系统的静态模型中类图是很重要的内容,描述类继承与依赖关系[5]。系统整体的类图如图4所示,图中并未将所有线路设备列出来,只选取了Signal(信号机)、Switch(道岔)及区段(Track)3种典型的线路设备。图中的各种类并不是独立存在的,它们相互之间存在千丝万缕的联系,比如一对多或一对一的关联关系,或者是泛化关系。类的作用如下:

(1)DevBase类:线路设备类的基类;

(2)线路设备(信号机、道岔、区段等)类:用于描述线路设备的信息;

(3)窗口类:所有操作界面的基类;

(4)站场图编辑窗口:提供线路设备图元,用户进行站场图拼接的界面;

(5)设备信息录入窗口:进行设备信息编辑的界面;

(6)设备统计窗口:统计站场图中设备信息的界面;

(7)数据库数据查询窗口:对数据库中线路数据查询进行操作的界面;

(8)控制类:封装数据库类和XML类的行为;

(9)数据库类:读写数据库,对设备统计数据、设备属性数据进行操作;

(10)XML类:读写XML文件,操作线路拓扑数据。

3.2 LDG系统动态模型

序列图是系统动态模型的重要组成部分,用于表示对象的行为顺序[6]。序列图由一组对象构成,每个对象分别带有一条竖线,代表生命线,生命线若消失表示对象被销毁。从一个对象的生命线指向另一个对象的生命线的水平箭头表示消息。序列图就是描述对象间随着时间的推移互相之间交换消息的过程。

图4 LDG系统类图

LDG系统生成线路数据的序列图如图5所示,描述了站场编辑、设备信息录入、数据库查询等可视化用户接口及设备对象、控制对象等之间的动态协作关系,共8个对象之间的交互,对象之间消息语法格式如下:

[predecessor][guard-condition][sequence-expression][return-value:=]message-name ([argument-list])

上述定义中方括号里的内容是可选部分。比如图5中消息[p]4:updateinfo()表示:在p为真的情况下,发送第4条消息updateinfo;消息7.1:r:=ReadXML(filename)表示:序号为7.1的消息(消息7的处理过程中的第一条嵌套消息),消息名为ReadXMl,消息参数为filename,返回值为r。

3.3 线路数据保存

最终生成的线路数据中设备统计信息和设备属性信息由数据库类保存至数据库;线路拓扑数据则由XML类保存为XML文件。数据库中数据的保存关键在于将类映射为数据库表,这个过程遵循下面的规则:

(1)每种线路设备对应一张数据库表,以设备的编号作为主键;

(2)没有属性的类无需映射为数据库表,如Form类、控制类、XML类和数据类;

(3)如果子类映射表中包含父类的属性,只将子类映射为数据库表,父类并不映射,如DevBase类;

(4)类的属性可以映射为数据库表中的1个或多个属性列,但并非类中所有的属性都需要映射,比如设备类中设备名在编辑窗口中坐标信息、显示的字体、颜色、对齐方式等;当然也可以根据需要将若干个属性映射为表中的一个属性列;

(5)如果类中某个属性本身又是一个对象,则应将其映射为表中的若干列。

XML作为一种结构化的、易于解读的标记语言,很适合用于存储线路拓扑数据[7]。XML文件的作用是便于CBTC仿真测试系统各子系统快速便捷地加载站场图,仅在需要时依据设备类型、设备编号等关键信息读写数据库数据,而无须访问数据库后才能完成系统初始化。所以,XML文件中的存储数据关键在于只保存设备类型、设备编号等访问数据库,及设备名、设备坐标等用于站场图显示的关键信息。

图5 LDG系统序列图

4 仿真实例

以上海市申通张江试验线的工程数据和平面布置图为基础,在实验室环境下利用C#语言对LDG系统进行仿真实现,生成相应的线路数据。

经过实践检验,本文提出的方案可以解决CBTC仿真测试系统线路数据的可视化生成。如图6所示为张江线的部分站场图,图7所示为信号机的部分设备信息。

图6 张江线部分站场图

图7 信号机设备信息图

5 结束语

本文从可视化生成线路数据的角度出发,对站场图的显示进行了设计,分析了研究线路数据的组成和特点,并利用UML对数据生成过程进行建模,构建LDG系统的静态模型和动态模型,使用线路数据库表保存设备统计信息和设备属性信息,用XML文件保存线路拓扑数据,并最终在C#语言开发环境下,对LDG系统进行实现。通过实际的测试,这种线路数据自动生成的方法实现简单、易于扩展,有利于实现CBTC仿真测试系统中各子系统统一的数据接口,降低开发成本,提高系统效率,具有很好的应用价值。

参考文献:

[1] 饶康康,陈邦兴,徐中伟,等. CBTC线路仿真系统的站场图设计与实现[J]. 城市轨道交通研究,2013,16(1):38-42.

[2] 许文鹏. 数据可视化系统架构的设计与实现[D]. 北京:北京交通大学,2015.

[3] 袁春贵. 计算机联锁仿真系统线路数据自动生成工具的研究与开发[D]. 北京:北京交通大学, 2009.

[4] 张秉帅,李 坤,杨 淘,等. 以ATS为核心的站场图数据及显示方案的研究[J]. 铁路计算机应用, 2014,23(6):5-9.

[5] 刘羽飞,韩伯涛,郑雪峰. 病案管理系统的面向对象设计与实现[J]. 计算机工程与设计,2006,27(6):1058-1061.

[6] 王颖卓,刘中田,王升辉. 基于UML的列车运行监控装置功能建模分析[J]. 铁路计算机应用,2017,26(2):8-12.

[7] 张延龙,郭秀清. 基于ActiveX和XML技术的ATS站场图设计与实现[J]. 微型机与应用, 2013(18):10-13.

[8] 周长发. C#面向对象编程[M]. 北京:电子工业出版社,2007.

猜你喜欢
信号机站场区段
贝雷梁在道路下穿铁路站场工程中的应用
中老铁路双线区段送电成功
微型注浆钢管桩在高铁站场软基加固中的应用研究
广州地铁CBTC系统特殊区段NCO延伸分析和验证
提速半自动闭塞区段接近信号机存在问题及改进措施
油气站场甲烷排放检测技术及量化方法
输气站场危险性分析
铁路信号机一体化的双灯设计
铀浓缩厂区段堵塞特征的试验研究
驼峰信号机与驼峰辅助信号机显示不一致问题分析