调车监控系统模拟平台联锁模拟模块的实现

2011-07-30 10:35张弘志尹德胜
铁道通信信号 2011年12期
关键词:信号机站场道岔

张弘志 尹德胜 李 铁

*中国铁道科学研究院通信信号研究所 助理研究员,100081北京

STP-yh型无线调车机车信号和监控系统 (简称调车监控系统),通过地面设备和车载设备进行无线通信联控,实现调车机车在集中区车场安全作业。为了在产品出厂前最大限度地完成测试,及在实验室对现场问题进行模拟再现,研制完成了调车监控系统模拟测试平台。联锁模拟模块作为模拟测试平台的基础模块,使用了Visual C++6.0语言,运用面向对象技术和多线程技术等,并引入了“设计模式”作为分析和解决问题的工具。

1 I/O通信接口及实现

联锁模拟模块替换掉了真实系统中的外部联锁通信机,将联锁码位 (站场联锁设备状态)模拟信息发送给地面设备。由于实验室环境和现场实际通信环境均需要模块适应各种通信方式,如RS-232、RS-485串行,TCP、UDP网络通信,甚至是CAN通信来发送联锁数据,因此专门设计了通用的底层通信接口。

不同的通信接口对应着不同的驱动程序类,且包含着不同的接口函数。如串口RS-232、RS-485对应驱动程序类 CSerial;网口TCP、UDP对应驱动程序类 CTCPSocket或是CUdpSocket;CAN口对应类CCAN。因此可应用设计模式中的适配器模式Adapter来统一不同通信方式的通信接口。具体步骤如下。

1.构建通用接口类基类CCommProduct,制定标准的接口函数,如Open、Close、Read、Write均为虚函数且可被继承。

2.创建CCommProduct的派生类,诸如包装处理串口的 CCommProductSerial,将底层的驱动类(对于串口类,就是CSerial)封装进去,并保持与基类 (通用接口类的)一致的接口,如 Open、Close、Read、Write等。同理,针对网口,用类CCommpProductUDP封装CUdpSocket;针对CAN口,用CCommProductCAN封装CCAN,通信接口UML简化类图如图1所示。

图1 通信接口UML简化类图

3.创建一个类CCommFactory实例对象pFactory,通过判别导入通信方的通信方式配置信息,创建对应各种通信产品CCommProduct的实例。

4.使用时,先用pFactory导出一个需要的通信产品实例pProductComm,以后就可直接利用该实例来完成通信。而这个实例pProductComm具体是使用什么通信机制(如串口、网络)都已封装隐藏,不需要使用者关心。

2 各种类型联锁码位的实现

现实要求在模拟联锁模块中实现各种类型的联锁码位发送。而各种码位的格式不统一,就需要编写不同的码位文件加载方式和码位提取填充方式,由此就引出了使用设计模式中的Template Method模板方法,应用该方法进行多种码位的处理UML简化类图如图2所示。

图2 应用模板方法进行多种码位的处理UML简化类图

首先设计一个基类码位分析器,其具有各种码位均需参与的处理功能:码位表创建Create和码位表刷新Update。在创建Create码位表时,要使用Import()作为码位文件加载函数;在码位刷新Update时,使用Export()作为提取联锁设备状态函数,并填充码位信息。在基类码位分析器中,将这2个函数设置为虚函数且可被继承,然后通过继承基类码位分析器来构建不同类型的码位,并重写Import()函数和Export()函数,这样在最终使用时,模块就会自动调用派生类的处理子函数。

3 联锁设备公共配置信息的实现

联锁设备的公共属性配置信息会在操作过程中根据需要进行修改,如进路排出、车列走行通过时,信号机关闭延迟时间,区段的解锁延迟时间等;又如区段分路不良模拟延长时间的设定等。为了达到各种参数下的模拟仿真,使用了设计模式中的单例singleton模式来实现。

一般方法是使用全局变量来记录配置信息,但这样一来会破坏模块封装,不易于复用。而根据单例模式的特点,其标准简化图如图3所示,将各种公共配置信息singletonData均填入一个单例类singleton中,因为单例类只有1个实例 uniqueInstance,且是自己创建自己的惟一实例,提供一个全局访问点Instance()。使用者在获取这个实例后,使用类中提供访问公共配置信息的函数GetS-ingletonData(),即可访问到所需要的信息。这样既消除了全局变量,封装了变化,又实现了参数访问。

图3 singleton模式的标准简化图

4 站场联锁设备多层结构实现

4.1 多层结构方式

针对站场每个设备,设置了不同层次数据信息,如图4所示,即对应每一个站场设备可对应多个属性页。站场图中,如道岔、信号机、股道、无岔区段、应答器等,每一个设备均可作为1个设备实体,每个设备实体可具备多个设备属性页(如显示层、模拟层、控制层等),设备属性页也能获知自己是属于哪个设备实体的。各属性页(即各个层)以基类“设备属性页”为父类,各个层次间彼此独立,但可以通过设备实体进行沟通,其好处是可以把描述设备的不同属性独立开单独进行考虑,便于各自属性的独自扩展。

图4 站场设备实现对应的UML简化类图

典型的各层信息如下:①显示层,主要完成各个设备在站场图中的显示特性,储存设备相关坐标、点、线的颜色等,并显示出设备,组成站场信号平面示意图;②命令层,联锁设备操作命令的发布,可针对道岔、区段或信号机等;③链路层,主要实现设备串联功能,表示设备的相互间连接关系,用于搜索进路等;④控制层,记录与联锁逻辑相关的设备状态,并进行联锁逻辑判定;⑤模拟层,记录设备的模拟状态。

4.2 多层方式下联锁设备操作和状态模拟流程

1.设备的命令流程。以道岔操作为例,如道岔扳动命令的执行,当执行道岔相关菜单中道岔由定位转到反位的命令时,道岔显示层提供接口,点击菜单道岔反位命令项,通过实体层通知命令层将命令发布给控制层,控制层根据当前站场联锁逻辑判断是否可行,若可行,告知模拟层进行模拟,而后控制层再通过设备实体获取模拟层状态,并告知显示层显示成新的道岔状态。

2.设备状态模拟流程。以无岔区段操作为例,如模拟区段占用流程。首先通过鼠标点触区段或有模拟车列压上区段,则通过人机接口触发区段模拟层,将区段的模拟层属性置为占用,而后控制层通过即时获取模拟层信息后,通知GUI显示层将占用状态显示出来。

3.设备状态显示流程。为方便展示站场各个设备具体的联锁运作状态,可把鼠标移动到站场设备之上,模块会自动以文字气球框的形式展示相应设备的各种属性,如联锁控制状态属性、链路属性、模拟属性 (当前是否有车列占用)等。实现方式是:当鼠标移动到相应的设备,首先获取相应的设备实体,通过设备实体可以遍历自身的多个属性页,访问到对应此实体的显示层、命令层、链路层、控制层及模拟层等各层设备信息。

5 进路操作的各种模拟实现

5.1 进路开通模拟流程

1.点击始端、终端信号机,此时系统会根据所按的信号机按钮,自动搜索其间的进路,将所有当前可开进路罗列于进路搜索结果中,由用户自己选择所要的进路。进路信息中包含途经的信号机、道岔、无岔区段、股道和所要排列的进路类型,模块会将选择的进路放入待排进路集合中。当然若是能够直接确定进路线路和类型,模块会直接将进路信息放入待排进路集合中准备排放进路。

2.从待排进路集合中取出待排进路,发送待排进路中必要的道岔扳动命令,等待道岔扳动到位。

3.待所有道岔到位后,发送区段锁闭命令。

4.待区段锁闭后,向进路中途径的阻挡信号机发送开放命令。

5.待信号机由远及近开放后,进路开通完成。

6.将已开通的进路存入已排进路集合,并从待排进路集合中删除。

7.若待排进路排列超出规定时间,则从待排进路集合中删除该待排进路。

5.2 进路取消模拟流程

1.将鼠标移至进路始端信号机处,右弹菜单,即有取消进路选项,点中。

2.从已排进路集合中查找到对应的进路,置进路准备取消标志。

3.发送进路中的关闭信号机命令。

4.待信号机关闭,发送进路中区段解锁命令。

5.待区段解锁后,进路取消完成。

6.将已取消的进路从已排进路集合中删除。

7.若取消进路操作超出规定时间,则在已排进路集合中将进路准备取消标志清除。

当然,上述进路开通和进路取消所有等待操作均使用异步完成的方法来实现,即使用一个定时器,定时对排进路集合中进路的取消进行状态监控,在不同的状态条件下,根据上述流程进行对应处理。

5.3 进路自动解锁

进路开通后,通过人工依次点触进路区段或通过后续的车列模拟模块中“走行自动模拟”,来模拟区段的占用或出清过程,随之进路会正常解锁。处理步骤如下。

1.关闭信号机。对于调车进路,车列全部进入信号机内方 (接近区段不留车),信号机方能关闭;或者出清信号机内方第一区段后 (接近区段留有车辆),信号机方能关闭。对于列车进路,只要车列一进入防护信号机内方,信号机就立即关闭。

2.进路自动解锁。针对每一轨道区段进行三点逻辑检查,即接近区段已经解锁,本区段曾占用过后又出清,它的离去区段被占用。条件满足后,发布并执行区段解锁命令。

5.4 故障解锁

当判明进路区段被使用过,但进路中区段不正常解锁时,在点击进路中未解锁区段的故障解锁菜单项后,就会发布并执行区段解锁命令,以去除区段上未正常解锁的白光带。

6 结束语

联锁模拟模块经过测试,能正确反映联锁设备的基本状态变化。作为调车监控系统模拟测试平台中的一部分,联锁模拟模块在项目准备期,可作为控制系统出厂的测试工具;在项目中期,可作为控制系统在实验室再现现场发生现象的手段。到目前,经平台测试出厂的系统产品近百套,应用于全国各铁路局的集中区调车场中。

联锁模拟模块丰富的外接接口,也可以方便地移植到其他任何以联锁系统为外接系统作为调试接口进行使用。

[1] 高继祥.铁路信号运营基础[M] .北京:中国铁道出版社,1998,2.

[2] 徐建国,张福祥.车站计算机联锁[M] .北京:中国铁道出版社,2005,6.

[3] Erich Gamma Richard Helm Ralph Johnson John Vlissides(著).李英军,马晓星,蔡敏,刘建中(译).设计模式:可复用面向对象软件的基础[M] .北京:机械工业出版社,2000,7.

[4] DavidJ.Kruglinski(著).潘爱民,王国印(译).Visual C++技术内幕[M] .第4版.北京:清华大学出版社,2001,4.

猜你喜欢
信号机站场道岔
输气站场危险性分析
驼峰信号机与驼峰辅助信号机显示不一致问题分析
中低速磁浮道岔与轮轨道岔的差异
四显示自动闭塞通过信号机在TDCS/CTC采集电路中存在的问题及改进
场间衔接道岔的应用探讨
既有线站改插铺临时道岔电路修改
半自动闭塞总出发信号机非正常关闭解决方案
铁路站场EBS工程量分解
KJH101-127型气动司控道岔的改造
特殊站场引导信号电路设计