联锁表自动生成软件的设计与实现
2021-05-10陈灏捷
陈灏捷,杨 扬
(西南交通大学 信息科学与技术学院,成都 611756)
随着我国铁路的快速发展,铁路信号领域的设计工作量也在快速增长,车站数量增多,出图量增大,为此,迫切需要能够代替复杂的人工设计、减少设计人员的工作量、降低人为产生的误差、提高设计效率和质量的计算机辅助设计软件。
联锁表是体现车站信号设备之间联锁关系的重要图纸,根据其说明的进路、道岔、信号机间的联锁内容,实现车站联锁关系的检查[1]。联锁表不仅能确保行车安全,还能提高运行效率,是信号工程设计中不可或缺的部分。运用传统方法编制联锁表,设计人员需要消耗大量时间进行制图和校验,效率低,也无法保证图纸的准确性。因此,实现联锁表的自动生成具有重要意义。
本文设计联锁表自动生成软件,介绍其设计流程及实现方法。
1 联锁表自动生成软件结构
1.1 软件外部交互结构
联锁表自动生成软件以AutoCAD 软件绘制的车站信号设备平面布置图(简称:站场平面图)作为数据输入,经过逻辑运算,调用AutoCAD 软件,生成CAD 格式的联锁表。本软件与AutoCAD 软件的关系如图1 所示。
图1 联锁表自动生成软件与AutoCAD 软件关系
1.2 软件总体结构
联锁表自动生成软件可分为4 个部分:
(1)信号设备图元设计程序;
(2)站场平面图重绘程序;
(3)站场形数据结构建立和进路搜索程序;
(4)CAD 格式的联锁表输出程序。其中,数据平面图是对站场平面图的重绘,在数据平面图中,可对站场的数据进行人工校验及操作。软件总体结构如图2 所示。
采用Microsoft Visual Studio 2012 作为软件开发平台,利用Visual C++编程语言实现面向对象结构设计。软件对导入的符合信号设备图元设计规则的站场平面图[2]进行重绘,生成数据平面图,通过站场形数据结构建立、搜索进路并保存进路数据等,输出CAD 格式的联锁表。
2 软件设计
2.1 站场平面图重绘流程
2.1.1 信号设备图元设计
图元数据模型描述图元数据的存取结构和图元数据的完备性[3]。联锁表自动生成软件在内存中分配和存储信号机、道岔、轨道区段等信号设备的图元数据模型中包含的所有信息,包括信号设备的特征和属性等。建立各类信号设备图元数据模型对应的数据存放区域,图元数据模型的创建和信息的存取都在各自的区域中操作,当联锁系统正确完成对信号设备的图元数据模型处理后,将信号设备的完整数据存储到联锁系统为其分配的数据存放区域。
2.1.2 站场平面图重绘
本文中设置的图形算法处理规则:根据站场平面图中信号机、道岔等信号设备的坐标及属性布置数据平面图的图元,读取站场平面图中绝缘节的坐标及类型,与道岔坐标进行匹配,即搜索道岔所在进路上距离最近的信号设备,若最近信号设备为绝缘节,则将数据平面图中道岔分支移动到该位置,并根据站场平面图中获取的绝缘节属性设置绝缘节类型,若最近信号设备为道岔,则移动到两道岔分支的中间位置,绝缘节类型为无绝缘节,其流程如图3 所示。同理,搜索进路上距离绝缘节位置最近的信号设备,若为绝缘节,则判断为轨道区段,布置轨道区段,并将轨道区段两端绝缘节移动到相应位置,根据站场平面图中无岔区段名称的文本坐标数据,与轨道区段进行匹配,完成站场图的重绘。
站场平面图中需要读取的数据包括信号机、道岔、绝缘节、脱轨器、预告信号机及相关连接直线等。其中,信号机分为发车型信号机、接车型信号机、进路型信号机及具有特殊功能的信号机;绝缘节包括普通绝缘节、超限绝缘节、端头绝缘节。采用绘图交换格式(DXF,Drawing Exchang Format)读取方法,在AutoCAD 软件与联锁表自动生成软件之间进行数据交换[4-5],其处理流程如图4 所示。
图3 道岔图形算法处理流程
图4 站场平面图重绘流程
信号设备参数包括设备的名称、类型、位置等。图形算法处理部分主要实现道岔区段及无岔区段绝缘节的连接,无岔区段命名的匹配,发车口、脱轨器等站场平面图数据的匹配。人工校验操作分为自动实现和人工实现2 个部分:(1)通过软件自动完成数据平面图中所有信号设备咽喉区编号的设置;(2)发车方向名称与进站信号机的匹配、股道接发车方向的判断、脱轨器属性的设置等,可通过人工对其准确性进行校验及修改,接车制式和发车制式缺省值如表1 所示。数据平面图站场属性和基本变通进路等无法从站场平面图直接得到的属性通过人工进行设置。
2.2 站场形数据结构建立和进路搜索流程
数据平面图中信号设备的图元数据模型包含了各个信号设备的属性和前后连接关系。对于道岔而言,需设置道岔前支标记(pFC)、道岔定位标记(pNC)、道岔反位标记(pRC);对于轨道区段和信号机而言,需设置指向前一个信号设备的标记(pZC)和指向后一个信号设备的标记(pMC)。信号设备图元标记示意如图5 所示。
表1 接车制式和发车制式缺省值
图5 信号设备图元标记示意
每个信号设备的图元数据模型按照站场平面图的形式连接,将站场平面图中每个信号设备的图元数据模型看成单个数据节点,每个数据节点通过指针把站场平面图中的所有信号设备连接起来,形成由顶点和边构成的集合,建立站场形数据结构。
信号机模块在站场平面图中所处的位置坐标不同,可以分为上行咽喉区信号机和下行咽喉区信号机,列车信号机类型可分为接车、发车和进路类型,调车信号机分为单置、并置、差置和尽头类型。有的始终端信号机可以构成合法进路,同时也有小部分终端信号机不能构成合法进路。为了能生成完整的联锁表,须对所有可能构成合法进路的始终端信号机节点进行遍历[6]。广度优先搜索算法能够遍历图中的所有节点从而找寻结果,因此本设计运用该算法实现进路搜索。
建立站场形数据结构和进路搜索流程描述如下:
(1)依据人工编制联锁表的习惯,依次选取站场平面图中信号机节点作为进路搜索的始端;
(2)对其它的信号机节点进行遍历,找出能与该始端信号机节点构成合法进路的终端信号机节点;
(3)对该始终端信号机节点构成的进路展开搜索,如果该进路合法则将进路上所有相关信号设备节点(包括信号机节点、道岔节点、轨道区段节点、绝缘节节点等)的数据存储起来;
(4)继续搜索以当前信号机节点作为始端的进路,如果没有找到其它的合法进路,则停止搜索,返回第(1)步,选择站场的下个信号机节点作为进路的始端进行进路搜索,完成该始端信号机节点的进路搜索;
(5)当站场平面图中所有的信号机节点都作为进路始端完成进路搜索时,把存储的进路数据读取出来,依次填写在表中,生成整个站场的联锁表。
建立站场形数据结构和进路搜索流程,如图6所示。
在进路搜索过程中,相对于调车进路,列车进路条件更加复杂,比如,判断始端信号机是否有6‰坡道标记且进路终端信号机外方是股道,以此作为延续进路的判断条件,进入延续进路搜索过程。在列车进路搜索过程中,若前方还有同性质的进路可排列,考虑组合列车进路,将进路数据存储,在后续进路搜索完成后,结合当前进路和存储的上一段进路信息,构成组合列车进路,记录组合列车进路数据。
2.3 特殊联锁处理流程
在进路搜索完成后,为了得到完整的进路信息,还需要进一步处理生成的进路,包括安全线防护、接近锁闭区段搜索和敌对进路处理。特殊联锁处理流程如图7 所示。
图6 站场形数据结构建立和进路搜索流程
图7 特殊联锁处理流程
通过接车进路始端对应的方向口获取方向口属性,根据线路方向及预告信号机等数据,结合表1判断接车制式为半自动闭塞、三显示自动闭塞或四显示自动闭塞,从而得到接车进路的接近锁闭区段。而对于发车进路,还需结合前一段进路进行判断。敌对进路处理分为列车敌对进路处理、调车敌对进路处理和迎面敌对进路处理,根据联锁敌对进路的各种情况记录满足敌对条件的信号。
2.4 CAD 格式的联锁表输出流程
AutoCAD 软件输出的数据为联锁表数据及工程图纸的图标数据,生成DWG 格式的图纸并保存[7]。联锁表进路数据由前期的操作生成,图号、设计者、日期等使用者信息由人机交互界面输入得到。CAD格式的联锁表输出流程如图8 所示。
根据进路的数据量计算表格所需行数,并与预设的栏宽长度比较,适当增加或减少栏宽,根据得到的栏宽进行计算,确定该图纸的长度、图纸内表格的起点坐标,绘制图纸边框,并绘制空的列车进路联锁表表格。判断是否有相应联锁表数据,根据计算机联锁车站联锁表编制原则[8],分别绘制出列车进路联锁表、调车进路联锁表、延续进路联锁表、组合列车进路联锁表,以及非调车进路联锁表。
图8 CAD 格式的联锁表输出流程
3 软件实现
联锁表自动生成软件在导入站场平面图数据后启动站场数据读取和连接模块,通过各模块间的调用,读入站场平面图的数据,转换为信号设备图元并连接,还原站场,完成设备咽喉区编号等属性的设置。调用站场形数据结构生成模块,生成站场拓扑结构,调用联锁数据生成模块,以信号机为始端,按照站场拓扑结构搜索进路。可在用户界面调用变更进路控制模块和非进路调车控制模块进行进路控制。生成进路信息后,调用联锁表输出模块,输出CAD 格式联锁表。本设计使用广州局集团有限公司石龙站站场平面图,对软件的可靠性进行验证。
3.1 软件接口
通过ActiveX 技术,遵循COM 规范,将联锁表自动生成软件与已经安装好的AutoCAD 软件连接[9],使用C++语言调用CAD 的函数,进行多段线绘制、文字插入及块等操作。
制作ARX 插件并将其放置在AutoCAD 软件的安装路径中,联锁表自动生成软件与AutoCAD 软件连接后,采用函数调用的方式完成加载插件及输入命令的操作。
联锁表自动生成软件在搜索进路时,以信号机为始端,按照拓扑结构进行搜索,在遍历过程中记录并存储信号机节点、道岔节点、轨道区段节点、绝缘节节点等数据,通过每一个数据节点的数据属性判断,生成各类进路信息所需要的数据,通过函数调用等方式在各模块之间进行传输。
3.2 用户界面
用户界面设计简单,布局清晰,能直观体现各菜单的功能,并且菜单按照操作的流程顺序布置,更易于操作。图9 为导入石龙站站场平面图后自动生成的数据平面效果图,通过该界面能够直观校核平面图的准确性,并对数据进行补充和完善。使用C++进行编程,在界面上使用MFC 所提供的可视化组件[10]。通过用户界面能够实现文件的存储和读取、CAD 站场图数据的读取、站场形数据结构生成、联锁数据生成、普速铁路与高速铁路的切换、进路控制变更、非进路调车控制、联锁表输出等功能。
图9 石龙站数据平面效果
运行控制按照各模块间函数调用关系来实现。生成数据平面图后,设置站场属性和咽喉区编号,对数据平面图进行后续操作。在生成联锁数据和非进路调车进路之前,生成站场形数据结构。变更进路的操作需要在有进路信息的前提下才能进行,变更进路搜索控制界面如图10 所示,通过输入进路的始、终端按钮查找符合条件的所有进路,并选择基本进路。
3.3 生成设计文件
根据基础输入或基础图纸调整后,生成CAD 格式的联锁表,联锁表左下角包含生成软件的版本、时间及使用者信息。可生成5 种联锁表:列车进路联锁表,调车进路联锁表,延续进路联锁表,组合进路联锁表,非调车进路联锁表。根据石龙站站场平面图生成的列车进路联锁表,如图11所示。
4 结束语
图10 变更进路搜索控制界面
图11 列车进路联锁表效果示意
联锁表自动生成软件通过将AutoCAD 软件绘制的站场平面图重绘,转换为可调整的数据平面图,运用图形算法处理规则,读取站场平面图中的数据,并添加无法直接通过站场平面图获取的站场数据,搜索进路信息,根据联锁表编制原则处理进路数据,并利用AutoCAD 软件生成图纸,实现列车进路联锁表、调车进路联锁表、延续进路联锁表、组合列车进路联锁表、非调车进路联锁表的自动生成。
该软件已应用于现场,应用结果表明,运用该软件编制联锁表,可以提高编制效率,减少人工校核所需时间,通过程序进行联锁逻辑判断,提高联锁表的完整性和准确性。由于该软件重绘站场图,这也为修改站场图基本数据提供了便利。