贾利生
(铁道第三勘察设计院集团有限公司,天津 300251)
铁路信号工程设计具有图纸量大、复杂度高、容易出错等特点,为了降低设计人员的劳动强度、减少差错、统一标准,在铁路信号工程设计中,计算机辅助设计(CAD)发挥着非常重要的作用[1]。
从20世纪90年代至今,6502电气集中联锁CAD系统(简称6502CAD)、计算机联锁CAD系统、ZPW-2000系列电码化CAD系统、ZPW-2000R移频自动闭塞CAD系统的开发和相继投入应用,大大提高了信号工程设计效率,同时提高了设计质量、缩短了设计周期[2-4]。但是随着多个系统的应用,出现了新的问题。由于各系统的开发时期、软件开发人员、使用的开发语言等不同,各系统在同一台电脑中使用时,出现了软件互相冲突、软件使用方法各异等问题,这样不易于信号设计人员对各系统的学习和使用,因此将各系统集成为一体,解决系统间相互冲突问题,建立统一的运行平台,将各系统的程序进行统一管理,从而形成一个平台化、集成化、系统化的铁路信号计算机辅助设计集成系统(简称SIGCAD)是非常必要的。
开发全新的系统运行平台,完成统一的菜单设计、软件更新、系统帮助、系统信息等功能;开发针对不同子系统打包方案的软件注册功能及通用安装程序。
各子系统至SIGCAD系统平台的移植及解决集成后系统间相互冲突问题。
统一各子系统的界面风格。
SIGCAD系统集成了6502CAD、计算机联锁CAD、ZPW-2000系列电码化CAD、ZPW-2000R移频自动闭塞CAD四个子系统的所有功能,具体如下。
6502CAD子系统用于完成车站6502电气集中联锁包括控制台盘面布置及配线、联系图、排列表、信号机点灯、轨道电路、道岔控制、网络电路图、侧面配线等全套施工图图纸设计,其中子系统里的信号平面图、双线及电缆径路图、联锁表、室外电缆配线图软件同样适用于计算机联锁车站,且可满足普速、重载、客专、城市轨道交通等的设计需求。
计算机联锁CAD子系统,可完成计算机联锁的信号机点灯、轨道电路、道岔控制、自动闭塞方向电路、自闭结合、半自动闭塞、驱采电路等电路图纸,以及组合内部配线、驱采匣(接口柜)配线、室外分线盘、侧面等配线图纸。
ZPW-2000系列电码化CAD子系统可完成两线制和四线制站内电码化的移频设备、综合架设备、防雷柜等的布置图,JMJ/FMJ/GCJ电路、正线电码化电路、股道电码化电路等电路图纸,以及内部配线、室外分线盘、侧面等配线图纸。
ZPW-2000R移频自动闭塞CAD子系统可完成区间信号平面布置图、双线及电缆径路图等室外部分图纸,各闭塞分区电路图、驱采电路、侧面配线图等室内部分图纸。
结构模块分为功能模块和平台模块,详见图1。
图1 系统结构模块
根据系统功能,将功能模块划分为20个,包括了6502CAD、计算机联锁CAD、ZPW-2000系列电码化CAD、ZPW-2000R移频自动闭塞CAD四个子系统包含的所有模块。在车站联锁设计时,无论是6502电气集中联锁还是计算机联锁,都必须有信号平面图、双线及电缆径路图、联锁表、电缆配线图,故将此4个功能模块单独设置。绘制继电器电路模块主要完成零散的继电电路设计,实用工具模块则完成图纸目录、移交清册、加图框、图标等的设计,与前面的4个子系统没有直接关系,也单独设置。
平台模块共4个,分别为软件注册、软件更新、系统帮助、系统信息。
根据系统结构模块的划分进行的系统界面设计如图2所示。
系统运行平台的建立分为两部分:
(1)在WINDOWS操作系统下建立“使用帮助”“授权协议”“卸载”功能,如图3所示。此处的使用帮助提供了PDF格式的用户手册[5]。
图2 系统界面
图3 windows操作系统中的系统界面
(2)在AutoCAD的菜单区建立SIGCAD系统界面。
SIGCAD系统共20个功能模块,每个模块中又包含了多个命令,命令总计200多项。系统界面设计可采用屏幕菜单或抽屉式菜单的方式,但此2种方式均需占用AutoCAD绘图区域,且不符合用户使用习惯,因此还是采用了用户习惯使用的下拉式菜单方式。由于AutoCAD的下拉式菜单区是有限的,20个模块做成20个下拉式菜单全部排列在菜单区是不现实的,为此,巧妙地采用了在AutoCAD内部进行菜单切换的方式解决了此问题。
在AutoCAD下拉菜单区建立如图2所示的“SIGCAD”菜单,菜单上列出4个子系统及其他模块,4个子系统的模块采用了二级菜单项,如图4列出了6502CAD子系统的模块。当选择任何一个功能模块时,例如:选择“信号平面布置图”,则下拉菜单区自动将“SIGCAD”菜单替换为“信号平面”菜单,而“信号平面”菜单的最后一项功能为“退出”,即切换回“SIGCAD”菜单。
图4 6502CAD二级菜单界面
通过菜单切换的方式建立系统运行平台的优点:只占用了一个菜单位置就可以放置下20个模块的菜单项,同时,在绘制同一张图中可使用20个模块中的任意命令,只需切换一下菜单即可。同时该种方式充分实现了各模块命令的资源共享,例如在设计车站的双线及电缆布置图或区间信号平面布置图时,可以切换到“信号平面”菜单使用其中的“绘制土建设施”方便地绘制站台、桥梁、隧道、涵洞、道口等设施。
为了便于用户及时更新系统及获得帮助,将软件更新、系统帮助(提供CHM格式的帮助文件)等4个系统平台模块也设置在了“SIGCAD”菜单区。
为了实现SIGCAD系统对AutoCAD 2000~2013所有版本的兼容,SIGCAD系统采用了Visual lisp语言开发。Visual LISP是一种可视化的集成开发环境系统,它是在Auto lisp语言基础上发展的一种智能化语言,有更多的功能函数和更强大的接口,可充分利用AutoCAD提供的界面设计出高起点的软件系统。由于Visual LISP是嵌入在AutoCAD2000及以上的所有版本内部的LISP编程语言,它是LISP语言与AutoCAD有机结合的产物[6],因此通过系统开发语言的选择有效地解决了系统对AutoCAD不同版本的兼容性。
为了满足在不同版本的AutoCAD中SIGCAD菜单能够顺利装载,不是简单的更换AutoCAD菜单文件的方法,而是采用对当前菜单区的菜单进行检测和判断,然后在指定的位置加入SIGCAD菜单,这样不仅可不影响不同版本的AutoCAD菜单,对用户安装的第三方软件的菜单也不构成影响。
对于菜单文件的支持,不同版本的AutoCAD还是存在着差异。如2006以前版本只支持MNU、MNS、MNC菜单文件,2006及以后版本则可支持装载速度更快的基于XML格式的CUI菜单文件,2010及以后版本则又可支持CUIX格式,因此为了提高菜单的装载速度,编制了不同格式的菜单文件,根据检测到的AutoCAD版本信息,装载不同格式的菜单文件。
软件冲突主要表现在两个方面。
(1)程序名的重名冲突。由于系统涉及的程序众多,开发时间跨度大、软件开发人员多,故部分软件的子程序名、函数名存在用重的问题,如将所有程序都集成到一起时,装载程序时容易调用了错误的程序。为了解决此问题,将不同模块的程序设置于不同的程序目录中,在系统切换菜单的同时,设置相应的系统支持路径,如图5的系统切换菜单流程。这样只需保证同一模块内的子程序不要重名即可,大大降低了系统集成开发的工作量。
图5 系统切换菜单流程
(2)图块的重名冲突。图形库中图块的名称用重时,图块的调用则会出错,插入的图块总是第一次被图形调用的块。由于系统中对于图块的插入都是由程序自动完成的,用户只有在成图后才能发现图纸的错误。为了彻底解决此问题,最好的解决方案就是对图块名进行逐一核对,将重名的图块重新命名。
由于ZPW-2000R移频自动闭塞CAD子系统是基于在.NET2010开发环境下利用C号语言进行的AutoCAD二次开发[7],与Visual LISP语言开发的系统存在着差别。由于Visual LISP支持对Windows的ActiveX对象的操作及支持ActiveX与其他程序的交互,因此通过Visual LISP提供的丰富的ActiveX接口函数可轻松实现将其他开发环境开发的系统进行集成[8]。如将自动闭塞CAD子系统集成至SIGCAD系统,可通过vlax-create-object和vlax-invoke-method两个函数来实现。
友好的系统界面便于用户操作,提高设计效率,因此系统集成中大量采用了与AutoCAD界面风格一致的菜单、对话框和幻灯片显示技术,可以使用户彻底摆脱使用说明书。
(1)统一各系统的界面,各模块菜单采用了标准的
下拉菜单方式实现,用户不再需要记忆各程序命令名称;
(2)对于交互式操作,如设计参数的输入、类型的选择、图形中位置的输入及实体的拾取等则采用了对话框的方式(图6),通过对话框形象、直观的界面,达到了可以随意输入、随时修改,鼠标、键盘并用的效果;
(3)当需用户人工输入设备类型时,如果类型较多,类型名不便于记忆,则需从使用说明书中查找类型对应图块的名称。针对这种情况,设计了信号设备幻灯库、控制台块幻灯库、继电电路设备幻灯库等,开发了带双击幻灯片放大显示功能的幻灯片显示程序,显示效果如图7所示,可使用户摆脱使用说明书。
图6 计算机联锁子系统中的对话框
图7 信号平面布置图模块中的幻灯片显示
随着该集成系统的研究和应用,使得铁路信号计算机辅助设计上了一个新的台阶,达到了集成化、系统化、专业化的水平,由于集成系统采用了模块化的设计,系统易于扩展,便于随后开发的列控数据等新的功能模块的添加。该集成系统已初步在邯黄、邯长、邯济、张唐、津秦客运、哈齐客运等项目的生产中投入使用,极大地提高了生产效率,达到了预期的成效。
[1] 王秉文.6502电气集中工程设计[M].北京:中国铁道出版社,2005:200-201.
[2] 铁道第三勘察设计院集团有限公司.信号专业CAD综合改造与开发软件研制报告[R].天津:铁道第三勘察设计院集团有限公司,2006.
[3] 铁道第三勘察设计院集团有限公司.ZPW-2000A电码化计算机辅助设计软件研制报告[R].天津:铁道第三勘察设计院集团有限公司,2010.
[4] 铁道第三勘察设计院集团有限公司.车站信号冗余型计算机联锁辅助设计软件研制报告[R].天津:铁道第三勘察设计院集团有限公司,2013.
[5] 铁道第三勘察设计院集团有限公司.SIGCAD系统用户手册V0.9.3[Z].天津:铁道第三勘察设计院集团有限公司,2013.
[6] 赵景亮.AutoCAD 2004与AutoLISP二次开发技术[M].北京:清华大学出版社,2004:1-2.
[7] 杨瑞宇.CAD二次开发及其在铁路信号施工图设计中的应用[J].铁道标准设计,2012(2):115-117.
[8] Autodesk, Inc..AutoCAD2000 VISUAL LISP开发人员手册[Z].Autodesk, Inc.1999:161-1637.