铁路固定行车设备建模软件包的设计与实现

2024-01-08 04:16孟德军
铁路计算机应用 2023年12期
关键词:图元道岔模具

孟德军

(中国铁路沈阳局集团有限公司 信息技术所,沈阳 110001)

反映铁路路网结构及线路设备的图纸(如站场平面示意图、车站信号平面布置图、区间信号平面布置图等)是铁路重要的基础技术资料[1]。随着铁路信息化应用的深入开展,多种信息系统中的设备以建模后的图形文档(简称:图档)作为人机交互操作界面,具有简明直观的特点[2]。行车相关的辅助决策类应用(如行车调度自动调整),需要直接提取或识别设备图档中的信息作为智能计算的基础参数,从而简化数据维护[3]。以上应用具有共性需求,即设备建模后图纸的绘制、展示、交互及信息提取。

针对以上需求,现有的解决方案大多采用AutoCAD 或Visio 等国外商业软件提供的二次开发技术来实现[4],但存在以下问题:(1)AutoCAD 或Visio 绘制的图纸,图形元件允许被打散,设备信息识别与提取存在困难;(2)AutoCAD 与Visio 虽然提供了嵌入其他应用的图形组件,但均采用COM/ActiveX 技术实现,仅能在Windows 平台上由桌面应用程序调用,缺少面向Web 应用的图形组件,与目前主流的基于Web 的应用系统集成困难;(3)即使在Windows 平台桌面应用上,其二次开发方式也不够灵活,需要购买国外软件授权,投入较大;(4)缺少面向铁路应用的语义层抽象,开发难度较大。此外,国内文献关于如何使用二次开发技术提高绘图质量与效率方面的研究较多[5-8],但对图纸信息与业务系统集成方面的研究较少。

基于此,本文研发了一套铁路固定行车设备建模软件包,利用可扩展标记语言(XML,eXtensible Markup Language)定义了图形元件(简称:图元)模具文档格式、图档格式;设计了图档的编辑功能(即图档编辑器)、图元模具的制作功能(即图元模具设计器);设计了桌面应用交互组件、Web 应用交互组件及组件类库,可与其他应用系统深度融合,实现对铁路运输生产运营线路设备的数字化、可视化管理,满足运输管理相关应用系统中集成或利用设备图档的共性需求,摆脱对国外商用软件的过度依赖。

1 图元及图档格式设计

图档是由抽象化的描述股道、道岔、信号机等固定行车设备的图元及其业务属性与关联关系构成。图元模具用于复制出同一类型的图元,其定义了图元的矢量图形表示,即一系列参数控制的绘图指令序列。因此,建模图档也是一种矢量图描述。

1.1 图元模具格式定义

利用XML 定义图元模具文档格式,根元素命名为StencilDocument。一个图元模具文档可以包含多个图元模具;每个图元模具包含图形表示的相关元素,如形状、字体、填充、线条样式、文本样式等,其中,形状可以嵌套定义,即形状元素可包含子形状元素。形状元素包含绘制路径(GraphicsPath)集合,由直线、折线、圆弧、椭圆弧、二次贝塞尔曲线、三次贝塞尔曲线、SPLINE 样条曲线、NURBS样条曲线为基本的绘图指令组成。

此外,图元模具还包含控制点、连接点及业务属性定义。同一图元在不同的业务属性下可以有不同的外观呈现。图形坐标、样式、属性都可以使用由算数表达式及自定义函数组成的“公式”,利用词法分析、语法分析、表达式树等技术实现“公式”的动态求值。

1.2 图档格式定义

利用XML 定义图档格式,根元素命名为RailDrawDocument,其下可包含图元模具引用元素集合、图层元素集合、节点元素集合、连接元素集合及栅格图像集合。

节点元素集合下可包含分组元素与节点元素,分组是嵌套定义的,其下可包含子节点与子分组。节点按类型分为块图元节点、线图元节点与一般形状节点,图元节点引用图元模具,其外观是由模具决定的,仅包含形状属性与业务属性的修改值,节省了存储空间。如建模图档中的道岔节点,包含节点坐标与道岔类型、道岔编号等业务属性,其业务属性是在图元模具中严格定义的。连接元素由源节点、源端口、目的节点、目的端口四元组表示,用来建立建模图档中节点间的连接关系,从而形成图元节点间的拓扑关联结构。

图1 给出了一个具体的XML 格式图档示例,其表示一个调车信号机及与之关联的2 个股道。其中,Masters 元素下通过UID 引用了“矮调”与“普通线路”2 个图元模具;Nodes 元素下,ID 为“1”的Sym 元素的M 属性为0,其代表Masters 中索引0,即“矮调”图元模具;Links 元素下的2 个Link 元素表示调车信号机与左右两侧的股道的连接。从示例可见,XML 表示的图档具有开放共享、简洁明了、易于处理的特点,通过图元模具的引用,节省了数据存储空间。

图1 调车信号机与连接股道图档示例

2 软件包功能设计

2.1 图元模具制作

软件包设计了2 种图元模具制作方法:(1)通过自由绘制图形与模具制作元件(包括定位点、对称点、辅助线、标签、格式文本、交叉点、控制点、卯接头、榫接头、元件属性等)相配合,组合后自动生成图元模具;(2)通过图元模具设计器,更加精细化地调整图元形状,利用树形视图展示模具结构定义,通过属性框定义变换公式与业务属性,如图2 所示。

图元模具设计器的输出除了XML 表示的模具文档之外,还可以导出Web 应用所需要的Javascript 图元模具库,其中的属性公式转换为Javascript 函数,提高了浏览器端的计算效率。

2.2 图档编辑器

图档编辑器提供了图形对象的变换操作(平移、旋转、缩放、翻转)、组合拆分、组合嵌套、复制粘贴、撤销重做等功能。设计了自定义连接点管理、曲形曲线编辑、自动折线避让等编辑功能,可从图元模具选项板中选取图元模具,拖放至图形编辑区,创建该图元模具对应的图元节点。图元节点是图元模具的实例化,继承了图元模具的形状及属性、控制点、连接点。

控制点可用来调整图元节点的外观形状,如用鼠标拖动控制点改变复式交分道岔的形状、道岔号的相对显示位置等。连接点是用于与其他图元节点建立连接的,一个图元可以有多个连接点。连接点分为榫接头、卯接头2 种类型,在处于编辑状态的图形中用“x”表示卯接头,“+”表示榫接头。线图元(如股道线)的2 个端点,默认是连接点,且都为榫接头,可以与其他图元节点中的卯接头建立连接。在编辑器中拖动卯接头所属图元节点,会连带改变与之相连接的榫头所属图元节点的形状。拖动榫接头到卯接头附近则建立连接,快速拖动榫接头离开卯接头则断开连接。另外,按照铁路信号平面布置图的特点,设计了“魔法棒”功能,即只需要将设备图元拖放到线路附近,就可自动建立连接,提高建模效率。

2.3 组件类库

2.3.1 交互组件设计

分别针对桌面应用与Web 应用,设计了图形组件及类库,供外部应用程序调用。图形组件可读取并显示编辑器生成的建模图档,具备平移、鼠标焦点缩放、缩略图导航,以及路径选取、图元选取、浮动提示、信息标注等功能。指定开始节点与终止节点,在标出路径的同时,还可给出该路径经过的道岔、信号、轨道区段信息。

2.3.2 类库设计

类库分为底层和上层,底层是没有业务含义的图元对象层,上层是具有铁路专业含义的语义对象层。语义对象层建立在图元对象层之上,与应用需求相关,不同类别的图档建立不同的语义对象层。

对于信号平面布置图,主要设计以下几类对象:(1)INodeInLine 接口对象,代表与线路管理相关的设备(道岔、信号机、绝缘子等);(2)IRailLine接口对象,代表线路、实体线路与联动道岔的内部隐含的逻辑线路,联动道岔类继承简单道岔类,主要有双动、交叉渡线、4 组复式交分、5 组复式交分与6 组复式交分;(3)轨道区段对象,以信号机、轨道绝缘子为边界确定轨道区段;(4)供电单元对象,以接触网绝缘与接触网开关为边界确定供电单元对象。

2.3.3 导入/导出功能设计

为了避免重复的制图工作,软件包设计了数据导入转换功能,包括:(1)导入既有的Visio 2007格式的图形文件,转换为本软件包定义的XML 格式文件;(2)导入Visio 模具库文件,转换为本软件包定义的模具库文件;(3)导入SVG 图形文件,并可将Adobe Illustrator 制图中的符号图形转换为图元模具;(4)导入AutoCAD 交换图纸格式(DXF)图形文件,对应于一般几何图形对象;(5)导出SVG 格式的图形文档;(6)导出Web 应用的JSON格式文档。

3 关键技术

3.1 技术栈

针对不同平台,分别使用不同的技术栈,如表1所示,实现用户界面与图形渲染功能。

表1 软件包实现技术栈

软件包采用面向对象的软件设计方法,不同平台上使用的编程语言(C#与Typescript)虽然不同,但核心类设计具有同构性。

3.2 Web 组件封装

目前,大多信息系统是基于Web 技术开发的,但应用开发框架多种多样,如Vue、Angular 等。不同的应用开发框架采用不同的组件封装技术,互操作困难。为了使Web 图形组件与调用方使用的开发框架无关,软件包采用了Web Component 技术。

Web Components 是万维网联盟推动的一项标准,旨在丰富 HTML 的 DOM 特性,让 HTML 有更强大的复用能力。无论调用方采用什么框架,只要在HTML 页面中简单插入“”标签,就可在页面中显示建模图档。

4 软件包应用

4.1 铁路营业线施工系统应用

软件包内含的图形组件,应用在“铁路营业线施工计划管控信息系统”中,如图3 所示。

图3 施工计划录入界面

图3 上半部视图显示软件包提供的图形组件所呈现车站的信号平面布置图,提供施工计划图形化录入界面,用户可用鼠标点选信号机、股道、道岔等设备图元,在图上直接标注施工影响范围,具有操作直观、准确、明晰的特点。由于图元本身包含业务属性,所以能够自动转换为文本描述,如图3中“5 号道岔至X1 信号机至4 号道岔间线路”,形成了数字化的施工计划。

4.2 教学仿真实验应用

通过本文软件包绘制的站场及区间平面信号布置图,以及可编程组件,已应用在“调度集中区段行车指挥虚拟仿真实验系统”中,如图4 所示。

图4 虚拟仿真实验教学界面

上部视图是由软件包图形组件所呈现的站内及区间线路设备模型,其中,设备图元根据模拟指令显示不同的状态。图4 中的“11316”运行在进站线路上,其下线路变红色表示闭塞分区占用,其后方区间四显示信号机分别显示红灯、黄灯、黄绿灯。

通过在虚拟仿真实验教学平台上模拟车站及区间线路信号联锁,结合列车运行图表,仿真列车运行,帮助学生学习理解列车运行图、进路联锁、调度命令等基本概念,掌握在调度集中区段行车调度指挥的基本原理与相关知识。

5 结束语

本文介绍了铁路行车设备建模软件包的设计思路、实现技术与应用案例。软件包中的图档编辑器可用于绘制铁路路网示意图、站场区间平面布置图,替代AutoCAD、Visio 等平面建模软件,节约应用系统集成时的软件采购成本;软件包实现的图形组件类库,方便与其他系统集成,具有广泛的应用前景。相比于商业软件,本软件包偏重于铁路系统内应用,通用性不强,产品化程度较低,在利用内嵌动态语言或宏脚本,以及实现用户自定义的功能等方面有待进一步研究探索。

猜你喜欢
图元道岔模具
一种组态控件技术在电力监控系统中的运用
学术出版物插图的编排要求(一):图注
联锁表自动生成软件的设计与实现
中低速磁浮道岔与轮轨道岔的差异
《模具制造》月刊2020年订阅通知
第十三届Asiamold广州模具展盛大开幕
场间衔接道岔的应用探讨
既有线站改插铺临时道岔电路修改
擦擦模具
模具制造中高速切削技术的应用