调车监控系统仿真平台车列模拟模块的实现
2011-11-26张弘志
张弘志
(中国铁道科学研究院 通信信号研究所,北京 100081)
无线调车机车信号和监控系统,简称调车监控系统,是通过车载设备和地面设备间无线通信联控,从而实现调机在集中区车场安全走行作业,使车地人员均能充分掌握站场实时使用情况。其中,车载设备安装于机车内,获取机车走行信息,采集站场中布置的无源应答器信息,并进行机车出入网控制。地面设备安装于站场信号楼,获取站场联锁设备信息,了解站场信号开放情况。
调车监控系统仿真与测试平台使用联锁模拟模块,LKJ2000车载模拟设备,LKJ2000监控装置转发软件和车列模拟模块,将整个现场设备以实验室为平台串联起来,如图1。仿真测试平台先期实现联锁模拟模块功能,包含基本的联锁设备操作和设备状态模拟,并将站场的联锁信息提交给地面设备。
图1 仿真测试平台中的位置图
1 车列模拟模块对外接口
车列模拟与联锁模拟模块处于一个程序中,会接收LKJ2000监控装置模拟/转发软件有关此台机车走行信息,并在机车通过场中应答器时通知相对应的车载设备;会获取站场联锁设备模拟状态、链路状态,并自动影响联锁设备的状态变化(如区段占用等)。车列模拟模块将联锁设备状态和应答器信息的变化有机地结合起来,便于车载/地面设备进行全面地精细控制和防护调试。
2 车列结构构建
模块将车列分成2种:带机车的车列和不带机车的车列。
带机车的车列、不带机车的车列、机车均需要记录和计算模拟状态,如走行距离、方向、所在位置等,同时要将他们以图形方式显示在站场图中。因此需要有2个属性页(模拟层、显示层)分别描述他们,如图2。
对于带机车的车列、不带机车的车列、机车占用轨道电路的设备,均是根据自身的长度对于区段占用和出清,所以在模拟层面描述时,将这3类设备设计一个父类“占用单元模拟层类”,用以描述从3者抽象出来的属性,其类结构如图3。
图2 站场车列设备实现结构UML类图
图3 车列在模拟层的相关类结构UML图
3 带机车车列控制方式实现
车列走行模拟的操控主要是针对带机车的车列,有2种方式并可随时相互切换。
(1)由外部提供机车位移信息,走行方向信息。在这种操控方式下,控制系统和模拟系统数据源步调一致,可以让控制系统设计人员直接发现问题,解决问题。(2) 车列模拟模块内部提供机车位移信息,走行方向信息。此方式可用于模拟其他非安装调车监控设备的机车所在车列的走行情况,有助于提高控制系统对车列跟踪准确性的处理水平。
4 车列的走行
4.1 走行的模拟层基本实现步骤
(1)设立直线坐标系,当车列加入站场图中,以车列上行端为坐标0点,记录下车列的坐标(上行端、下行端),这时车列的下行端坐标为负值。(2) 将此时车列占用的各个区段计入到一个占用区段队列中,记录下占用的各个区段两端绝缘节相对于这个坐标原点的偏移值,仍以坐标表示。车列与各个占用区段的相对距离可以用车列和区段坐标差的绝对值来描述。与此同时,将车列的信息也记录在其占用的区段设备中。(3) 针对一个新的走行位移、走行方向,车列离开原先的坐标0点,此时刷新车列的坐标值。车列向上行走,车列的坐标值增加;反方向时,车列的坐标值减小,甚至负向增长。但对于一个车列,由生到死,坐标0点即在车列生成时确定。(4) 存储于占用区段队列中的两头区段,是车列占用的最外侧的区段。当判断车列头部已压过最外区段的外侧绝缘节时,通过联锁设备链路属性,获取相连通的下一个区段,在区段设备和车列模拟层区段占用队列中记录双方信息,表示占用此区段并含有本车列。当判断车列尾端压过车列占用的最外侧区段,在区段设备和车列的占用区段队列中删除双发信息,表示出清此区段并不含本车列。(5)不断收到新的走行位移、走行方向,则继续(3)。
车列走行计算示意图如图4。
图4 车列走行计算示意图
4.2 走行的显示层实现方法
站场图中,区段均具备现场实际测量长度值属性。车列的线段悬浮于站场图区段上方,区段的实际测量长度值和像素按比例进行相应伸缩后画出,是实际反映车列与区段的关系。随着位移的变化,车列的线条也随着变化,非常直观地体现出车列的实际走行,如图5。
图5 车列在站场图(部分)中的展示
画图采用的映射模式是MM_TEXT模式,它是以像素为单位,X轴向左为正,Y轴向下为正。默认的坐标原点在左上角。实现流程如下:
(1)收集车列的实际长度、走行方向。(2)收集车列占用的所有区段的测量长度。同时对于占用的每条区段,收集其中含有的所有线段起止坐标,并将区段包含的线段按照从上行方向到下行方向的顺序进行排列。(3)区分车列占用区段的特点:全部占用和部分占用。从图中可以看出车列是悬浮地画在区段的线段之上。由于各个区段是由不同斜率的线段画出并连接而成,所以,对于全部占用的区段,在获取区段所有画图线段后,只需将这些线段纵坐标偏移,车列在此区段的图形就画出了。如图5中的车列在40DG反位道岔区段的表现。对于部分占用的区段,则需要明确在区段上的车列需要画在靠近区段的上行方向端还是下行方向端,同时还需要明确车列在此区段上方不能画满。至于画多少,这就需要计算画图坐标,如图5中5G无岔区段和3G股道均未画满整个轨道电路。将所有得出的组成车列的线段坐标均填入车列线段坐标数组。(4)最后根据车列线段坐标数组,画出车列线段即可。
5 车列的添加和删除
5.1 车列添加
为便于模拟车列各种走行情况,车列可添加在站场图中的任何位置。为了实现此目的,特别针对车列添加设置参数进行如下定义:
车列类型:分为带机车的车列和不带机车的车列;其中带机车的车列在上行和下行方向处均可设置是否挂带车辆及辆数。不同类型的车列会以不同的颜色铺画在站场图上。
车列号:带机车时用机车号表示,不带机车时用车列产生的先后序号表示。
查询器ID:ID有效时,可区分对应此查询器的信息输出方对应哪个机车车载设备。ID无效时表示机车上未安装查询器。
机车前进位指示方向:指示机车方向手柄为前进位时,车列前进的方向是上行方向还是下行方向,用于将机车方向手柄数据转换为机车走行方向。
查询器位于机车方向:表示查询器安装于机车的相对位置。当机车车下查询器位置与站场应答器位置重合时,可正确准时通知车载设备。
区段占用延伸方向和拓展偏移距离,这两个参数是实现车列安放任意位置的核心参数。延伸方向分为上行或下行。
5.2 车列删除
车列通过人机接口进行删除,或走出站场外规定距离后由模块自动删除。针对每一车列设置一个删除请求标志,无论是人工请求还是走行满足一定条件后自动请求删除,均会将车列的删除请求标志位置。模块在定时遍历车列集合时发现此车列有删除请求,再删除与此车列有关的一切,包括图形信息、模拟信息、设备实体。
6 车列的合并和分解
6.1 合并处理
车列的合并是在车列走行中自动进行的,当车列前进端有其他车列时,且两者相接时,程序自动将两者合并成一个车列。因此在走行中会随时判断是否有要与本车列合并的车列,其流程如图6中(a)所示。车列合并的关键有2点:合并条件判断,合并后的处理。合并的条件判断由Get-MergeDev()实现,主要是判断是否还有与本车列合并的车列,并返回要与本车列合并的车列,流程如图6中(b)所示。合并时的处理由Merge()实现,其流程如图6中(c)所示。合并后,原先的两个车列对象,其中的本车列会吸收合并的另一车列内容,而另一个车列就需要删除。
6.2 分解处理
与合并逻辑相反,车列的分解处理要创建一个新车列对象,此时需要注意分解时原车列的速度,并要把此速度作为初始速度赋予新创建的车列。车列在速度为0时分解,就构成了车列停车后的摘车操作;在速度不为0时分解,通过新分出车列具备不同的加减速度属性,可模拟出平面遛放和驼峰遛放的展示效果。这样就构成了“停”、“减”、“加”3种分解方式。
7 结束语
车列模拟模块呈现站场中的车列更为直观。由于站场中的区段是真实的测量距离,所以车列在区段上的走行展示是真实准确的。
图6 车列合并流程图
车列模拟模块的所在调车监控系统仿真与测试平台,适用于测试编组站、区段站、中间站各种站型环境,减少现场的工作量,降低系统推广费用。通过仿真测试平台调试出厂的产品,已经或即将应用在全国近百个站场上,这个平台已成为调车监控系统认证的测试环境。而车列的走行以图形方式呈现在站场图中,生动真实地展现了站场应用,具有良好的宣传效果。以站场信号平面图为依托的系统均可便利移植此模块,作为站场车列的直观指示。同时车列模块也可继续扩展,如根据车列前方信号机状态自动走行、停止,从而实现进/出站、调车走行自动化,而这些已在动车基地车列自动走行仿真中有所应用。
[1]高继祥 铁路信号运营基础[M]. 北京:中国铁道出版社,1998,2.
[2]DavidJ. Kruglinski. Visual C++ 技术内幕(第四版)[M]. 潘爱民,王国印. 北京:清华大学出版社,2001.