APP下载

基于Visio二次开发的站场图设计与实现

2020-03-28

铁路计算机应用 2020年3期
关键词:信号机站场二次开发

饶 皓

(上海富欣智能交通控制有限公司,上海 201203)

轨道交通信号系统是对轨道交通信号设备进行实时控制和行车作业指挥的安全系统[1]。站场平面图描述了站场中信号机、道岔、区段等设备之间的联锁关系[2]和拓扑信息,是轨道交通信号系统能够运行的关键信息。因此在地铁线路设计中,需要对站场图进行精确细致地刻画,要求方便编辑且能够通过站场图界面方式对轨道线路上所有信号设备的工作状态实时监测显示和诊断维护,以保证整个系统正常运行。针对这种情况,国内外对平面站场图绘制都做了大量研究,并取得了一定的成果,目前,主要是利用ObjectArx、VBA、VLisp对AutoCAD进行二次开发,来简化复杂的绘制过程,但是,这个开发过程非常复杂和极为繁琐,并且,对VC++编程语言能力要求颇高。

本文提出了一种基于Visio二次开发的人机交互绘图界面和基于Windows 用户界面框架(WPF)的自动绘图界面,充分借鉴Visio形状,利用 Visio程序创建图形、分析图形,使用简单易学的高级语言进行编程。本文站场图设计依托Visio绘图软件,可加载不同的站场图数据[3-4],并显示对应站场的设备状态和控制信息,设备动态信息的变化通过所对应站场图的图形颜色和形态变化来体现。该软件基于面向对象思想[5-6],通过Visio模具来设计信号设备图形,并与轨道交通信号系统数据融合一体,使用XML文件存储站场图数据[7-8],易于扩充,且能够确保满足站场平面图的站场数据完整性、一致性和编辑方便性等方面的要求。

1 站场图数据分析

按照站场图状态显示,数据结构分为2部分:

(1)静态数据结构,该数据结构是Visio模具[9],主要用于静态站场图的绘制和显示[10],人机交互绘图界面属于静态的视觉图形;

(2)动态数据结构,该数据结构是XML格式,主要用于动态站场图的显示[10],自动绘图界面又可以提供可视化交互的功能。

前者基于.Net,利用VBA对Visio进行二次开发,完成信号机、道岔、区段、站台、屏蔽门、按钮等模具制作,通过这些模具来完成整个站场图绘制。后者通过信号模具组合而成的静态站场图与CBTC系统数据(比如联锁表),生成XML文件,该文件包含各类信号设备的图形坐标以及初始化数据,根据实时收到计算机联锁发送的设备状态,动态地更新并显示到站场图中。

1.1 静态站场图数据

静态站场图数据主要用来绘制站场图,主要包括如下内容:

(1)站场图总体信息,包含站场图名称、整个站场图的设备总数、信号机和道岔等设备数量;

(2)信号机信息,包含信号机名称,信号机坐标,信号机类型,信号机输入输出点;

(3)道岔信息,包含道岔名称,道岔坐标,岔芯长度,道岔输入输出点;

(4)区段信息,包含区段名称,区段坐标,计轴复位类型,区段输入输出点。

1.2 动态站场图数据

动态站场图数据主要由静态站场图数据与联锁表构成,两者设备一一对应。通过网络接口方式与计算机联锁交互,在站场图中动态显示信号机点灯状态、轨道区段占用、道岔定反位等信息,实时反馈当前联锁所管辖的设备状态。

本系统中采用了Visio模具和XML文件的格式来存储站场图信息。具有以下优势:

(1)Visio绘图控件运行在应用程序的进程内,并且不要求运行Visio应用程序的单独实例;

(2)Visio绘图控件对每个实例显示单个Visio文档和单个窗口,可以通过将多个控件实例嵌入到应用程序中来显示多个文档;

(3)Visio绘图控件提供用于加载现有Visio文件的方法,并公开Window和Document事件,可以通过程序捕捉;

(4)Visio绘图可自主化程度高,可以自主绘制模具的形状。

2 站场图数据生成

2.1 静态站场图数据生成

根据所设计的生成站场图数据结构绘制出信号设备模具,模具的绘制是在Visio绘图软件二次开发上,按照实际的站场图绘制所需要的基本设备摸具,并存储在相应Visio模具的对应目录中,可以方便利用基于Visio的二次开发进行站场图绘制。

轨旁设备模具如图1所示。

图1 轨旁设备模具

单开道岔的直线模式和非直线模式分别如图2和图3所示。

图2 直线模式

图3 非直线模式

具体制造步骤如下:

(1)在道岔的Shape Data模块中添加属性 “左开道岔1直线模式”,Type单元格选3(布尔型);

(2)在左开道岔1的Controls模块添加“反位直线控制点”和“反位非直线控制点”,同时修改X、Y、X Behavior、Y Behavior的值,结果如图4所示。

(3)修改Geometry3和Geometry4中“NoShow”单元格的值,与道岔属性“左开道岔1直线模式”相关联,如图5所示。

当所有信号模具全部绘制后,利用C#语言进行基于Visio绘图软件二次开发[5],根据信号设备模具绘制静态站场图,如图6所示。

图4 控制点属性图

图5 几何图形属性图

图6 静态站场图

2.2 动态站场图数据生成

动态站场图的数据由保存的静态站场图数据结构和联锁表进行校验生成,将绘制好的站场图信息按照各类模具的XML文件格式进行生成存储。以信号机为例,其XML文件格式如下:

从XML的树形结构,可以清晰地得出信号机所需的信息,包括线路名、信号机的数量、信号机名称,信号机显示的坐标,其它信号设备,如道岔、信号机、轨道区段等,都有各自XML文件保存。此XML结构中设备是针对之前的站场图数据结构进行命名的,方便阅读、XML解析及后续的显示。

3 动态站场图显示

3.1 软件处理流程

动态站场图显示简要步骤如下:

(1)启动软件,读取信号设备XML配置文件;

(2)解析XML文件,根据坐标绘制直线、矩形、椭圆、曲线等图形;

(3)在画布上组合上述图形,完成站场图绘制显示;

(4)网络接口获取信号设备实时信息来更新站场图显示。

具体软件处理流程如图7所示。

图7 软件处理流程图

3.2 实现效果

该软件根据图7设计流程编写整个程序的框架,程序设计软件采用WPF框架,使用C#编程语言。以实际的车辆段站场图为例,实现效果如图8所示。

图8 动态站场图显示

4 结束语

本文通过对Visio进行二次开发,设计实现人机绘图界面和自动绘图界面的站场图绘制软件,为整个信号系统维护诊断提供了直接的页面显示,辅助故障应急处理,指导现场设备维护,反映设备运用质量及线路站场运行情况,更加直观地反映当前轨旁设备的状态,在发现设备隐患、提高维护水平、保证行车安全方面发挥着重要作用,对于整个轨道交通信号系统正常运行维护诊断极具意义。本文提出的Visio二次开发的方法也为轨道交通信号系统站场图的绘制提供了另一种思路,该成果已实际应用于浦东机场捷运线。该软件可以在信号模具易用性和编辑效率等方面进一步完善,以获得更好的应用效果。

猜你喜欢

信号机站场二次开发
贝雷梁在道路下穿铁路站场工程中的应用
微型注浆钢管桩在高铁站场软基加固中的应用研究
油气站场甲烷排放检测技术及量化方法
输气站场危险性分析
铁路信号机一体化的双灯设计
驼峰信号机与驼峰辅助信号机显示不一致问题分析
地铁车辆段信号设备的维护与改进
浅谈Mastercam后处理器的二次开发
色灯信号机的结构与功能
例谈课本习题的“二次开发”