机车驾驶模拟系统中信号的设计与实现内江铁路机械学校陈光军黄恩兴【摘要】:本文全面分析了铁路信号显示的特点,阐述了机车驾驶模拟系统中信号的作用,对线路上信号机显示进行预案编制,实时计算机列车的位置,自动输出列车运行前方信号机的颜色。【关键字】:机车信号制动距离数据链表预案编制实时计算Win32API1、概述机车驾驶模拟系统是基于韶山4000型电力机车设计的,包括电路、气路的仿真,简单的信号联锁关系,牵引计算的实时计算和场景的动态改变等模块。信号联锁是信号机、道岔和进路之间互相联系、互相制约的关系,是保证机车车辆安全行进的重要保证。铁路上地面色灯信号机的显示距离一般在1000米左右,它们向司机发出各种信号,报告线路和道岔情况,帮助司机安全正点的运行。但是,它们受曲线半径、隧道、雨雪、风沙和大雾等条件的限制,给司机暸望带来一定的困难,另外,随着列车速度的不断提高,特别是高速列车,其制动距离增大了,再单纯的依赖地面信号机显然是极其危险的。机车信号机能很好的解决这个问题,它装在机车司机室内,能显示和地面信号机同样功能的信号,保证了行车安全,提高了运行效率,也改善了司机的工作条件。2、意义传统模拟机车系统中线路场景是采用录像方式的,其中机车信号是不能动态显示的,录像时是什么信号就固定了,其主要缺点是培训学员不能对信号突变起到训练作用。基于此原因,我们把机车模拟驾驶系统中的信号显示进行预案编制,使信号机可以根据其预案进行显示。3、系统设计系统主要由实时计算,信号显示预案编制,电路和气路仿真,线路参数表,信号显示控制等模块组成,系统结构框图如图一。实时计算信号显示预案编制电路、气路仿真线路参数表信号显示控制图一场景中的信号机是地面信号机(如图二),它主要有类型、公里标和当前显示的颜色三种属性。信号机的数据结构定义了信号机类型、当前显示颜色、所在位置和下一个信号机的内存地址,该结构的代码是:structNODE{LONGlSignCurrentPosition;//信号机所在位置intiSignStyle;//信号机的类型intiSignColor;//信号机当前显示的颜色structNODE*pNext;//下一个信号机的内存地址};信号显示预案编制的实现措施有两种,一是根据信号机的数据结构建立一个文本文件,该文件内容是所有的信号机及其属性,程序在最初运行时根据该文件建立一张数据链表;二是在程序中实现,程序界面如图三,设置某个信号机的显示预案时,程序首先检查数据链表中有没有该信号机,若没有,则把该信号机及其显示预案添加到数据链表中,若有,则修改该信号机的属性。修改某个信号机显示预案的主要代码如下:voidAlterCurrentSignColor(LONGlPosition,intiColor){NODE*pTempNode;pTempNode=mp_Head;while((NULL!=pTempNode)&&(lPositionpTempNode-lSignCurrentPosition)){图二三一pTempNode=pTempNode-pNext;}if(NULL!=pTempNode){pTempNode-iSignColor=iColor;}}信号显示预案修改的方法是根据图三,培训老师双击某个信号机图标,弹出“设置信号显示”的窗口,程序先要读取该信号机的类型,再根据该类型进行相应的信号预案设置,例如出站信号机不能设置双黄灯;线路上红色的矩形框代表了机车车辆运行的当前位置。实时计算模块根据电路和气路仿真模块以及线路参数表提供的相关参数,这些参数主要有方向手柄的位置、685线的状态、列车管的气压大小以及线路的坡度、长度、曲线半径等,通过实时牵引计算,计算出列车的速度;列车运行位置的实时计算实时跟踪列车速度,计算出列车的实际位置。列车实际位置要经过一定的转换计算,变换成在场景中列车位置,把列车场景位置送给信号显示控制模块,进而控制信号预案按照规定进行信号输出,使地面信号机和机车信号机按照信号预案显示,培训学员根据地面信号或者机车信号以及线路情况驾驶列车。信号显示控制模块实时跟踪列车位置进行信号的控制和显示。地面信号机具有种类繁多、灯位多和空间大灯等特点,而机车信号机安装驾驶室中,具有空间小、种类单一、灯位少等特点。因此,同样意义的信号在地面信号机和机车信号机上的显示颜色时不一样的,地面信号到机车信号必须经过一套自定义的转换规则,例如地面进站信号机的双黄灯用整数“2”表示,而机车信号机则在一个灯位上显示两个半黄灯,用整数“5”表示,其它信号的转换规则类似。实时模块代码设计都在一个独立的线程中,线程循环检测各自的输入参数,一旦参数有变化,立即进行运算,并且实时的输出有关参数,以供其它模块进行图三一检测。线程启动的主要代码如下:hThread=(HANDLE)_beginthreadex(NULL,0,&ThreadFunc,this,0,<hreadID);代码都是用Win32API实现的,Win32API函数直接针对Windows的底层,具有实时性强、可靠性高、效率高和可移植性好等特点。4、结束语模拟机车系统中信号的实现解决了传统信号不能改变的问题,在培训学员的教学中能使学员在各种信号的条件下模拟驾驶列车,起到了很好的效果,具有良好的推广前景。