闫 石,唐汇东,栾德杰,杨华昌
(中国铁道科学研究院集团有限公司 通信信号研究所,北京 100081)
无线调车机车信号和监控系统(STP)是保证站内调车作业安全的关键设备,当前已经在全路范围内推广使用。在STP 研制和推广过程中,为满足对STP 设备的调试、测试、认证,以及对用户的培训等需求,均需搭建STP 仿真测试平台[1]。而列车运行监控装置(LKJ)是STP 仿真测试平台中的重要组成部分,针对真实LKJ 设备无法支持STP 自动化测试、部分异常场景使用真实LKJ 设备不易模拟等问题,设计一种适用于STP 仿真测试平台的LKJ 模拟系统,可为STP 的开发调试、测试认证、培训演示等提供有力的技术支撑。
STP 仿真测试平台用于铁路车站STP 系统的站场改造数据仿真测试、作业场景再现、调车作业人员仿真培训等。在站场改造后进行数据仿真测试,可提高站场设备改造后STP 系统开通运营的效率和数据成熟度,避免由于数据测试错漏而产生的调车作业安全防护风险;在发生调车作业事故后或用户需要时进行作业场景再现,可对特定调车作业场景进行模拟,还原现场情况并分析调车作业过程,有利于精准定位事故原因或查找潜在的作业安全隐患;对调车作业人员进行仿真培训,可提高调车作业操作及管理人员对STP 系统、调车过程的直观了解程度和操作熟练度,有利于更好发挥STP 在调车作业中的安全防护功能,并提高作业效率[2]。
在STP 研制和推广过程中,需对STP 设备执行严格的测试与验证,以确保STP 设备的安全性、可靠性和功能完整性[3],而测试环境是执行测试的基础。当使用全实物设备搭建测试环境时,费时费力,而且难以实现自动化测试,另外由于在某些场合(如现场培训、功能演示等)受到资源条件的限制,搭建真实环境变得更加困难。为此,设计一种基于半实物的STP 仿真测试平台,以实现对LKJ、计算机联锁、无线通信、应答定位器、调车作业单等系统的仿真模拟。STP 仿真测试平台架构如图1 所示。STP 仿真测试平台用于支撑STP系统的单元测试、集成测试、接口测试、产品认证测试和培训演示等需求。
图1 STP 仿真测试平台架构Fig.1 Architecture of STP simulation test platform
在STP 仿真测试平台中,STP 仿真测试平台设备连接图如图2 所示,其中STP 地面控制主机、车载控制主机、电务终端、车务终端、作业单打印机为真实被测STP 设备,其他模拟单元可根据需要替换为真实设备,实现对测试环境的灵活配置。
在仿真测试平台中,LKJ 2000 监控装置若采用真实的LKJ 设备,在测试时,需测试人员手动操纵LKJ 模拟测试仪,给出机车速度、方向等机车工况,操作起来非常繁琐,且存在以下问题:①真实LKJ 设备接口复杂,且LKJ 基础数据制作技术壁垒高[4],搭建基于真实LKJ 的STP 仿真测试环境费时且费力;②真实LKJ 设备无法支持自动化的STP 测试过程,如在STP 测试过程中机车速度调节、机车手柄方向控制等均需由测试人员手动操作,导致测试任务繁琐,严重影响对STP 设备的测试效率;③部分异常场景使用真实LKJ 设备不易模拟,导致难以对STP 设备执行全面的测试。为此,研究设计适用于STP 仿真测试平台的LKJ 模拟系统,以实现对STP 设备的自动化测试、故障分析等功能。
图2 STP 仿真测试平台设备连接图Fig.2 Equipment connection diagram of STP simulation test platform
LKJ 模拟系统物理层采用加装CAN 卡的工控机实现。为方便现场培训演示等需要,系统支持在加装了USB 转CAN 卡的计算机上运行。当部署完成后,LKJ 模拟系统与STP 车载主机、模拟联锁系统等设备进行网络连接。LKJ 模拟系统网络连接图如图3 所示。
图3 LKJ 模拟系统网络连接图Fig.3 Network connection diagram of LKJ simulation system
LKJ 模拟系统软件采用面向对象的设计方法,使用VC++开发,运行于Windows 环境下,具有安装方便、参数配置灵活、可快速部署等优点。
(1)软件层次划分。LKJ 模拟系统软件层次图如图4 所示,软件主要划分为3 个层次:数据通信层通过CAN 总线与STP 车载主机及车载显示器交互信息,通过以太网或串口通信方式与联锁模拟系统通信;逻辑运算层完成测试脚本解析、控制模式产生、限速曲线计算等功能;界面显示层展示通信内容,并模拟LKJ 显示器按键操作。
(2)界面设计。设计的LKJ 模拟系统软件界面如图5 所示,界面提供了LKJ 显示器的警惕、解锁、进入调车等按键功能;可设置手柄位置、设置平调发送命令;可显示当前速度、辆数及工况等信息;可显示接收来自STP 车载主机的信息包,并可查看对应的内容解析。
LKJ 模拟系统在实现时采用多线程并发处理,从而提高系统响应的实时性。各个线程的功能划分如下。
(1)消息接收线程。消息接收线程主要用来监视通信接口,并接收从外界发送过来的数据。当接收到数据后,依据协议拆解包,而后把数据内容存入消息队列供应用服务线程读取。
(2)应用服务线程。该线程是软件的应用层工作者线程,该线程负责执行软件的主要业务逻辑,如机车控制模式与限速曲线计算、机车速度和位移模拟等。应用服务线程以周期的方式进行调度,响应周期为10 ms。
(3)UI 线程。UI 线程是软件的用户界面线程,负责用户界面显示和用户操作响应。
应用服务线程和UI 线程之间采用线程消息进行通讯;应用服务线程和消息接收线程之间采用消息队列机制,基于生产者消费者模型,由消息接收线程产生消息并存入消息队列,由应用服务线程从该消息队列中读取消息并执行响应。3 个线程的工作关系及流程如图6 所示。
图4 LKJ 模拟系统软件层次图Fig.4 Software hierarchy of LKJ simulation system
图5 LKJ 模拟系统软件界面Fig.5 Software interface of LKJ simulation system
图6 3 个线程的工作关系及流程Fig.6 Work flow and relation of the three threads
LKJ 模拟系统作为STP 仿真测试平台的主要组成部分,其使用CAN 总线与被测STP 车载设备通信,可模拟真实LKJ 设备向STP 车载控制主机提供工况、限速、控制模式等信息,支持对STP 设备的自动化测试,并可提供故障注入功能。LKJ 模拟系统还通过串口或网络与联锁模拟系统相连,向联锁模拟系统发送或转发机车速度、工况、里程等信息,以便联锁模拟系统将仿真车列与LKJ 关联,从而根据LKJ 提供的速度、工况和里程信息控制仿真车列在虚拟的站场中自动走行,并自动占用、出清轨道电路,最终实现仿真测试平台的闭环模拟控制。LKJ 模拟系统功能架构如图7 所示。
图7 LKJ 模拟系统功能架构Fig.7 Functional architecture of LKJ simulation system
LKJ 模拟系统的模拟仿真功能是对真实LKJ 设备及其机车接口的功能模拟,具体包括控制模式计算功能和机车工况模拟功能。
(1)控制模式计算。LKJ 模拟系统根据STP 车载控制主机提供的前方进路信息,计算当前所属的控制模式,并依据车列辆数、接风管条件、进路停车点等信息生成模式限速曲线,监控仿真车列运行。LKJ 模拟系统可实现的STP 系统控制模式分为限速控制模式和停车控制模式。STP控制模式如图8 所示,其中限速控制模式包括牵引控制模式、推进控制模式、限速道岔侧向过岔控制模式、存车线走行控制模式、限速区段控制模式,停车控制模式包括停车信号防护模式、尽头线走行模式、一度停车防护模式、出站调车控制模式等。
图8 STP 控制模式Fig.8 STP control mode
(2)机车工况模拟。LKJ 模拟系统可通过软件的方式模拟机车工况,而后按照车列加、减速运行模型计算出当前速度,将速度值沿时间积分得到车列走行位移值,走行全过程实时进行车列完整性检查,并实时计算车列前端至前方信号机之间的距离。而后将机车运行速度、累计走行位移、车列前端至前方信号机实时距离等信息通过CAN 总线发送给STP 车载控制主机,从而在STP 车载控制主机的LKJ 接口上模拟出测试所需的外部运行环境,用于STP 自身功能仿真和调试。
在对STP 设备执行自动化测试时,系统还可基于测试脚本,按照时间触发或事件触发的方式自动设置机车工况,并根据模式限速曲线自动调节机车速度,从而实现按限速曲线启动、加速、定速、减速运行,按停车曲线停车等功能。
STP 系统的车载相关条件(速度、位移、工况等)均从LKJ 设备中获取,而这些车载相关条件是完成STP 安全防护功能的基础,因而有必要研究在LKJ 设备或其外界环境存在故障时STP 系统的控制行为,提升STP 系统在异常场景下的安全性,从而确保现场调车作业安全。
利用真实LKJ 设备进行故障注入具有很大的局限性。从现场运行反馈的数据来看,机车速度、位移、工况等相关故障的发生具有明显的随机性、偶然性和多样性,而且从实际运行中采集到的故障条件下的数据样本十分有限,导致故障样本具有稀缺性;真实的LKJ 设备是封装后的模块,尽管对真实LKJ 设备进行破坏性试验可以实现故障注入,但是不具备经济性,也不具备可重复性,难以形成足够多的测试样本;机车速度、位移、工况等变量彼此相互关联,导致故障产生的影响在空间上具有迁移特性,在时间上具有演变特性[5],使得利用真实LKJ 设备进行故障注入难以实现对故障严重程度的精准模拟。
使用LKJ 模拟系统实现故障注入,通过控制发往STP 车载主机输入接口上的数据,模拟实际控车场景中与机车速度、位移、工况等相关的各种故障(如通信故障、车列走行时的轮滑、空转等),为STP 车载设备测试创建异常场景,从而给STP 设备故障测试创造条件。通过将机车速度、位移、工况等作为随机变量,对现场反馈的故障样本进行随机抽样,而后由LKJ 模拟系统软件合成给STP 车载主机的输入数据,可生成大量、随机的故障测试场景,实现各种故障的组合,可解决故障样本不够的问题;无需对真实LKJ 设备进行破坏性试验,且具备可重复性,显著降低了故障注入的成本;通过软件逻辑充分利用测试数据与经验,以分层、分解和组合的方式进行故障注入[6],可实现对故障严重程度的精准模拟。
LKJ 模拟系统的数据交互功能包括与STP 车载控制主机之间的数据通信功能、与仿真平台联锁模拟系统之间的数据通信功能,以及与用户之间的数据交互功能。
(1)与STP 车载控制主机之间通信。物理层采用CAN 总线连接,协议层采用真实LKJ 设备与STP 车载主机之间的通信协议,信息交互采用周期的方式进行。信息传递方向为双向传递,LKJ 模拟系统向STP 系统车载主机传递机车速度、工况、里程值、限速、平调信号、制动及卸载等信息,STP 车载主机向LKJ 模拟系统传输前方信号机名称及显示状态、前方开放进路、停留车位置。
(2)与仿真平台模拟联锁系统通信。物理层采用串口或者TCP/IP 网络,协议层采用自定义的通信协议。由LKJ 模拟系统单方向给联锁模拟系统传递信息,传输内容包括机车速度、工况、LKJ 里程值。为方便测试环境搭建和故障诊断,LKJ 模拟系统在用户界面上设置有上述通信的对应指示灯,并提供通信数据的记录、下载和分析功能。
(3)与用户之间的数据交互。提供基于图形化的用户界面,为用户操作提供支持。在测试开始前,用户可以通过操作界面上的复选框、按钮等控件来配置系统的仿真参数,另外系统还提供测试脚本的导入接口,以便对STP 执行自动化测试时可加载测试脚本文件;在执行测试时,用户可通过软件界面来模拟LKJ 显示器上的操作,并实时查看测试进度;在测试完成后,系统支持报表格式选择、报表格式设定等,并提供测试日志的下载接口和用户设定格式的测试结果报表输出、打印等。
LKJ 模拟系统的测试辅助功能是对真实LKJ设备的功能扩展,用于在STP 仿真测试平台中向用户提供更加方便的测试手段,主要包括数据转发功能和数据自动测试功能。
(1)数据转发。在部分场景下(如对STP 产品的认证环节),STP 仿真测试平台需要接入真实LKJ 设备,此时需要将真实LKJ 设备与仿真机车实现联动,为此给LKJ 模拟系统定义了“转发模式”,让其作为连接真实LKJ 设备与仿真机车的纽带。在“转发模式”下,LKJ 模拟系统配合真实LKJ 设备一起使用,其通过CAN 总线接收真实LKJ 设备的数据,并将其中的速度、工况和里程信息转发给联锁模拟系统,以便联锁模拟系统能够基于真实LKJ 设备提供的机车速度、方向等信息并结合站场工程数据实现轨道电路自动占用、出清,从而实现仿真车列在虚拟的站场中自动走行。当LKJ 模拟系统工作于“转发模式”时,STP 仿真测试平台转发模式信息流向图如图9 所示。
图9 转发模式信息流向图Fig.9 Information flow chart of forwarding mode
(2)数据自动测试。在STP 设备投入运营前会对其进行功能验证,但受到运营现场人力、物力和时间上的限制,往往只能对几种典型作业场景进行验证。现场运营场景具有多样性,功能测试难以覆盖所有的运营场景,也无法对站场所有区段和信号机均进行测试,亟需引入经济、全面、自动化的测试和验证手段。
基于LKJ 模拟系统结合联锁模拟系统,可实现对STP 站场数据的自动化测试。LKJ 模拟系统首先对整个站场进行树形建模,将车站抽象为若干棵以边缘区段为树根、以道岔为树叉的二叉树,针对每棵二叉树进行深度优先搜索[7],控制仿真机车从树根向叶子节点走行。在走行的过程中,对途径的每个调车信号执行蓝灯防护功能测试,对每个限速道岔验证超速防护功能,对每条存车线验证停留车防护功能。在仿真机车到达叶子节点后,LKJ模拟系统控制仿真机车停车换向,并向联锁模拟系统申请换向后的走行进路,如此反复搜索,最终将整个站场区段全部遍历,整个站场信号机全部执行测试。LKJ模拟系统控制整个数据自动测试流程,并记录自动测试的全过程,且可根据用户设定按需进行报表输出,如此可以充分利用无人值守时间进行测试,从而大大提高数据仿真和自动测试效率。数据自动测试流程如图10 所示。
图10 数据自动测试流程Fig.10 Data automatic test process
STP 在全路范围内的推广应用为保证车站调车作业安全发挥了重要作用[8],设计STP 仿真测试平台,对于提升STP 测试及应用效率具有重要意义。针对当前真实LKJ 设备无法支持STP 自动化测试,部分异常场景使用真实LKJ 设备不易模拟等问题,设计并实现一种可适用于STP 仿真测试平台的LKJ模拟系统,该系统具有搭建成本低、部署方便、可支持STP 自动化测试等优点。LKJ 模拟系统和其它仿真模块共同构成STP 仿真测试平台,为STP 系统工程数据测试、系统功能调试、功能展示、工程化推广及系统认证提供了方便的技术手段。