基于工程数据的测试脚本自动生成方案研究

2023-02-06 08:55秦晓光王斐武
铁道通信信号 2023年1期
关键词:交路应答器数据表

杨 森,秦晓光,王 飞,王斐武

列车运行控制系统作为整个高铁系统的“大脑”,是保证高速铁路列车安全且高效运行的核心控制系统[1-2],对于包括车载ATP 设备在内的系统关键设备的测试是必不可少的。目前国内各个车载ATP 设备厂家及第三方测试机构都形成了完善的测试规范化流程,但在测试脚本的编写上大多依托某个典型线路的工程数据进行人工筛查编写,每轮全功能测试均采用同一套脚本来实现。这一方面导致脚本编写过程效率低下,另一方面容易产生对某个固定线路模板的依赖,可能出现对现场复杂情况遍历不足的问题。此外,实验室测试要完成对现场问题的复现工作,现有方法常常是根据ATP 的记录数据反向推导出测试脚本,而不是根据问题发生地点的线路情况正向生成,这可能导致对现场情况还原得不够准确。因此,研究从工程数据到测试脚本的自动转化非常必要。

目前,对于列控系统自动化测试已有多人研究,如李子豪等[3]提出了基于Teststand 的列控车载系统测试方案,陈晓轩[4]提出了基于需求规约的ATP 系统自动测试与结果分析方案,但其重点都在于测试执行的自动化和测试结果的自动分析方面。王嗣策[5]提出了车载ATP 测试平台的测试脚本自动生成方案,设计了以关键字驱动的测试脚本结构,但针对的是既有测试脚本格式文件。张勇[6]研究了测试序列的生成方法,提出了将测试案例自动串联成测试序列的方案,但没有落实在实际的脚本数据上。魏国栋等[7-12]提出了不同的列控设备测试脚本自动生成方法,其研究的重点在于测试场景的模拟、报文数据的自动生成等,而不是贴合线路实际工程数据生成的测试脚本。

本文通过对线路工程数据中的要素进行自动提取和整合,实现从工程数据到测试脚本的自动转化,并可依据进路选择自由生成不同进路类型的测试脚本。

1 方案设计

车载ATP 设备测试脚本本质上就是将列车运行过程中的外部接口信息,按照距离或时间等条件依次排列的组合。仿真测试环境将测试脚本作为输入文件,在列车运行过程中,当满足接口数据发送条件时,仿真测试设备将相应的测试数据,如轨道电路信号、应答器报文等以实际物理信号的形式发送给被测设备。以北京华铁信息技术有限公司的CTCS3-300H 型车载设备CTCS-2 级测试脚本为例,脚本内容主要包含轨道电路载频、轨道电路低频和应答器编号等,以距离为主要触发条件,在测试过程中,根据列车的位置判断是否向被测ATP设备发送新的数据。因此,本文研究的核心是按照进路选择的情况,自动生成与列车实际运行相同的轨道区段与应答器的组合。

本文提出的测试脚本自动生成方案主要由数据提取、元素匹配、组合排列3 部分组成,见图1。其中,数据提取是对线路工程数据进行初步提取,获取与测试脚本相关的信息;元素匹配是根据进路选择的情况,筛选出脚本中应有的元素;组合排列是将已筛选好的元素按照里程信息进行顺序排列,并根据脚本规则进行编写,最终形成测试脚本。

图1 测试脚本自动生成方案

1.1 数据提取

高速铁路的线路工程数据通常包括车站信息表、线路坡度表、线路数据表、道岔信息表、应答器信息表、进路信息表、坐标系转换表等多个文件,覆盖了工务、电务、车务等多个专业范畴。本文主要从车站信息表、线路数据表、应答器信息表、进路信息表、坐标系转换表等文件中筛选出对于生成车载ATP测试脚本有用的数据,然后对多种信息重新统合,得出整个线路中所有的应答器集合、轨道区段集合、进路集合和区间集合。其中,进路集合和区间集合中的元素用于与所选交路匹配,应答器集合和轨道区段集合应根据线路类别分为多个子集合。由于线路数据表只包含正线的区段信息,经过数据提取后的轨道区段集合并不包括侧线的轨道区段元素,后续需要根据所选交路的进路信息进行补全。

1.2 元素匹配

元素匹配是先从区间集合和进路集合中筛选出所选交路覆盖的区间和进路元素,再根据进路和区间筛选轨道区段和应答器元素。在匹配区间和进路元素的过程中,需对所选交路进行合理性判断,以防出现接车进路与发车进路不匹配、区间类别与进路不匹配等情况;并根据交路的情况,计算出整个脚本的起点位置、运行方向等全局信息。

将筛选出来的元素分别存储在相应的轨道区段输出列表和应答器输出列表中,并最终合并为元素输出列表,用于最后的脚本生成。在该过程中注意:①里程信息应在同一坐标系下;②侧线应答器不应出现在区间里;③应找出进路信息中应答器组内所有的应答器等。元素匹配原理见图2。

图2 元素匹配原理

1.3 组合排列

参考列车运行方向,以里程数据作为排序条件,对元素输出列表中的元素进行重新排列,从而模拟实际列车运行过程中车载ATP设备先后接收到各类信息的过程,从数据上完全贴合现场的真实运行情况。将已排好顺序的元素输出列表依据测试脚本的编写格式,自动编写成标准的脚本文档格式,即可完成测试脚本的自动生成。在此基础上,可根据测试案例要求,进行延时发送、报文更改等操作。

组合排列的过程应注意排列条件的判断,上行线正向和下行线反向的情况下里程应递减,下行线正向和上行线反向的情况下里程应递增。若出现类似于东郊环线等环行线路时,应根据交路起点的位置,判断交路是否越过环路的里程终点,若越过则终点后的所有元素均应将里程加上环线的周长后再进行排列,避免出现乱序。

2 软件实现

依托.NET框架编写软件,通过输入线路工程数据文件夹,以及测试人员的进路选择操作,即可生成最终的测试脚本文件。

2.1 数据导入与提取

软件采用递归搜索算法,对整个工程数据文件夹进行初步筛选。首先提取文件名中的关键字,包括车站信息表、进路信息表、应答器信息表、线路数据表等,若没有找到某个关键字对应的文件,则停止进程,并提示编写人员检查工程数据文件夹中的内容,进行文件添加或文件名称规范化修改。然后对多种信息进行统合,即锁定区间、进路、轨道区段和应答器等元素的关键属性。

1)通过线路数据表的页名判断线路类别;通过相邻车站的排列组合,确定出区间元素的起始车站、终点车站和线路类别。

2)遍历进路信息表中的进路信息,确定进路元素的车站名称、联锁编号、所包含轨道电路、所包含应答器、起始信号机和终点信号机。

3)遍历线路数据表中的区段信息、进路信息表中的进路区段信息,以及所在车站的进站信号机、出站口的里程信息,确定出轨道区段元素的区段名称、起始坐标、终点坐标、载频、所属车站和信号机类别等。

4)遍历应答器信息表中的应答器信息,确定出应答器元素的编号、里程和所属车站。

最终得出整条线路的区间集合、进路集合、轨道区段集合和应答器集合等,各集合以结构体形式分别存储各类信息。信息存储形式示意见图3。

图3 信息存储形式示意

2.2 元素匹配与脚本自动生成

脚本编写人员可以选择图形化或者表格化操作界面来完成进路选择工作。软件根据各个车站的进路选择计算出整个脚本的实际交路情况,并判断进路选择是否合理,以防出现交路中途中断、接车进路与发车进路不在同一股道、区间方向与接发车进路不符等情况。

元素匹配采用遍历筛选的方式。对于轨道区段和应答器的元素匹配,应分别对归属于区间的元素和归属于进路的元素进行匹配。

1)对于区间中的轨道区段元素和应答器元素,根据里程信息,在相应的子集合中进行筛选,即里程在该区间的起点和终点之间的元素均应被筛选出来。

2)对于进路中的应答器元素,根据编号信息直接筛选即可;对于进路中的轨道区段元素,则需要根据进路信息的描述补充到轨道区段输出列表中,轨道区段里程信息则根据所在车站的出站口或进站信号机位置进行推算。

轨道区段和应答器元素筛选流程见图4。

图4 轨道区段和应答器元素筛选流程

以图5 所示两站一区间的交路情况为例,列车以下行线正向由A站3G发车,至B站3G接车。软件先对区间和进路元素进行筛选。区间的筛选条件为:起始车站为A站、终点车站为B站、线路类别为下行线正向。进路的筛选条件为:车站名称为A站、起始信号机为X3、终点信号机为SN、联锁编号为x,车站名称为B 站、起始信号机为X、终点信号机为X3、联锁编号为y。

图5 两站一区间进路和区间筛选示意

确定好区间和进路元素之后,再将应包含的应答器和轨道区段元素确定出来,导入元素输出列表。此时元素输出列表是乱序的,需根据各元素的里程信息排序,示例中的运行方向为下行,则按照里程递增的顺序对输出列表重新排序。

测试脚本自动生成采用填写模板的方式,即根据文档编辑要求准备空模板,并将其嵌入到应用程序后台;然后将输出列表中的元素逐条填写到空模板中,即可完成测试脚本的自动生成。此时该线路的进路集合、区间集合、轨道区段集合、应答器集合已经存储在程序后台,操作人员可以随时更改交路,快速生成其他进路测试脚本。

2.3 关键字处理

软件运算主要基于对线路工程数据的提取,判断依据来自于工程数据表格中的文字描述。在软件调试过程中发现多处需要特殊处理的地方。

1)车站名称中经常出现“东南西北”这样的方位词,但在表格中车站命名中是否加“站”字并没有统一,因此需要在此处引入逻辑判断运算,以防在进行元素匹配运算时找错车站。

2)在进路逻辑检查运算中,由于大型枢纽车站的信号机命名更为复杂,因此不能简单地以信号机名称中的“N”“F”等字符来判断进路的指示方向,应根据“S”“X”“N”“F”等在字符串中的位置,来判断其真正的含义。

3)在进路完整性判断中应判断关键字“线路所”,途径线路所的进路并不存在接车与发车进路完整性和一致性的检查。

4)在对车站顺序进行遍历的运算中,应判断关键字“中继”,仅将该区段的所属车站存储为相应的中继站,不对车站信息列表进行更新。

总之,由于工程数据表中存在语言表达的不确定性,需要对相应的关键字进行搜索判断,综合考虑是否存在关键字及关键字在整个字符串中的位置来判断其真正含义。由于工程数据表描述缺乏严格的统一性,当出现软件难以判断的情况时,仍需要人工将工程数据表中的相应字段统一为软件规定的格式。

2.4 操作界面

采用.NET 架构提供的WinForm 控件集作为界面开发的API,操作界面示意见图6。根据编写人员的实际需要分为总体控制区、过程记录区、交路预览区等操作区域。同时,可以通过交路预览清楚地观察当前所设定的交路形式,并可直接操作预览界面中的车站、区间控件等对交路进行更改。除主界面外,软件附带错误提醒、进路选择等子界面,供编写人员更方便地操作。

图6 操作界面示意

2.5 试验验证

通过多个试验样本对软件进行验证。试验的样本主要包括津秦正线、广深港客专、京沈客专(辽宁段)、京沪等的列控工程数据表,以及北京东郊环行道环行1 线工程数据表,抽取其中多个车站组合情况,分别生成上行正向、上行反向、下行正向、下行反向、上下行线交替等多种形式的测试脚本文件。对生成结果进行人工验证,脚本中的轨道区段、应答器位置均正确,可以应用于仿真测试平台。测试脚本生成结果示例见图7。

图7 测试脚本生成结果示例

3 结束语

列控系统仿真测试自动化是当前的发展趋势,基于线路工程数据的测试脚本自动化编写是自动化仿真测试的重要组成部分,可以大幅度减少测试人员的工作量,提高仿真测试与现场的贴合度。本文的研究实现了从工程数据到测试脚本的自动转化,以此为基础可进一步研究测试序列的自动生成、测试结果的自动分析等,对整个列控系统的自动化测试有积极作用。

猜你喜欢
交路应答器数据表
湖北省新冠肺炎疫情数据表(2.26-3.25)
湖北省新冠肺炎疫情数据表
应答器THR和TFFR分配及SIL等级探讨
基于列控工程数据表建立线路拓扑关系的研究
大小交路模式下通信系统功能的联调实现
虚拟应答器测试方法研究
地铁信号系统既有线交路改造方案探讨
既有线运能释放及机车交路延长条件下编组站改编能力配置的优化
应答器在基于通信的列车控制系统中的应用
图表