洪玲娇,李卫娟
(卡斯柯信号有限公司,上海 200071)
计算机联锁系统(CBI)是保证行车安全和效率的重要基础控制系统,它与列控中心(TCC)通过安全通信接口。CBI向TCC发送进路信息、信号设备状态信息等,TCC根据接收到的信息进行编码和发送应答器报文。由于两个系统的接口信息涉及行车安全,因此确保接口信息的正确性非常重要。测试是确保接口信息正确的有效手段,所以,执行CBI-TCC接口测试是联锁测试中的重要部分。
一般而言,联锁逻辑功能测试通过后,才开始执行CBI-TCC接口测试。在联锁逻辑功能测试阶段,已确认联锁软件中的进路跟输入的联锁表完全一致,信号显示及信号显示关系等联锁逻辑功能是正确的。
测试CBI-TCC接口时,需搭建如图1所示的测试环境:联锁机(单系)、MMI操作机、CITB仿真机、TCC模拟器。其中,联锁机中封装了被测站的联锁软件,主要完成联锁逻辑运算及接口通信功能;MMI操作机主要完成操作命令的下发、站场及其他信息的界面显示;CITB仿真机主要完成继电接口的采集驱动信息的模拟;TCC模拟器主要完成与联锁机的通信并收发接口信息功能。
图1 接口测试环境Fig.1 Interface test environment
CBI-TCC接口测试需要测试以下内容:CBI发送的信息,有区间方向控制命令、进路信息、进站信号机红灯断丝、信号机调车状态、预留信息(如有);CBI接收的信息,有区间方向信息、区间闭塞分区状态信息、信号限速信息、区间信号机红灯断丝信息、异物侵限灾害信息、无配线站区间方向信息/轨道状态信息/区间信号机断丝信息、预留信息(如有)。
测试CBI发送的信息,需要先在MMI操作机上办理相应的操作(如办理进路使信号开放、按下相关按钮等),然后在TCC模拟器上确认是否接收到CBI发送的信息、信息状态是否正确。测试CBI接收的信息,则先在TCC模拟器上设置相应信息的状态(如将某一区间闭塞分区设置为占用状态),然后在MMI操作机界面上确认CBI是否接收到信息、信息状态是否正确(对应的区间闭塞分区应显示红光带)。
测试时,CBI-TCC接口信息可以分为两类:进路信息和开关量信息。除CBI发送的进路信息归为第一类外,其余信息均归为第二类。
测试进路信息时,联锁表中的全部进路(包括无需发送进路信息给TCC的)均需逐条测试。在MMI操作机上办理了进路、信号开放后,在TCC模拟器上需确认下述内容。
1)核对进路编号,包括正常列车进路编号和引导列车进路编号。TCC模拟器上显示的进路编号应与接口表中的一致,对于不向TCC发送信息的进路,在TCC模拟器上应没有任何进路信息。
2)测试信号机点灯、灭灯状态。对于常态灭灯的信号机,需要测试点灯和灭灯两种情况。
3)测试信号显示。测试对应信号机所有可以开放的信号显示,包括红、双黄、黄闪黄、黄、绿黄、绿、红白等;TCC模拟器上给出的信号显示应与MMI操作机界面上开放的信号显示一致。对于常态灭灯的信号机,需要分别测试点灯和灭灯两种情况下的信号显示。
4)测试进路区段的锁闭状态。确认TCC模拟器上显示的进路区段均为“锁闭”,核对区段个数正确;模拟列车顺序占用/出清、通过进路,确认TCC模拟器上进路区段的状态顺序变为“解锁”。
测试开关量信息时,需要确认0/1两种状态是否都正确;此外,测试时还需要确认对应接口数据块中的信息排序是否与接口表一致。测试CBI发送的信息,以信号机调车状态为例:在MMI操作机上办理了相应调车信号机的进路、调车信号开放,则在TCC模拟器上对应调车信号机状态为“调车信号开放”;取消进路、调车信号关闭,TCC模拟器上对应调车信号机状态变为“调车信号未开放”。测试CBI接收的信息,以区间闭塞分区状态信息为例:在TCC模拟器上将对应闭塞分区状态设置为“占用”,MMI操作机上对应的闭塞分区显示红色光带;在TCC模拟器上将对应闭塞分区状态设置为“空闲”,MMI操作机上对应的闭塞分区显示浅蓝色光带。
因为需要在MMI操作机、CITB仿真机及TCC接口模拟器上执行操作或监视界面显示的变化,CBI-TCC接口测试一般需要两个测试人员一起配合完成。此外,接口测试环境的要求也会给项目CBI-TCC接口测试带来一定的限制。所以,项目CBI-TCC接口测试是比较费时费力的。
结合CBI-TCC接口测试的特点及人工测试的弊端和局限性,开发测试平台实现CBI-TCC接口测试的自动化是一项很有意义的工作。
2.1.1 测试平台环境
如图2所示,测试平台运行环境简单,联锁仿真软件和自动测试软件可以运行在同一台工控机上。自动测试软件发送控制类信息给联锁仿真软件,如办理进路、操纵道岔、总取消操作等。此外,在自动测试软件上可以模拟I/O变量的设置。联锁仿真软件实现联锁逻辑运算,并将车站设备的状态信息送给自动测试软件。
图2 自动测试平台环境Fig.2 Automatic test platform environment
2.1.2 测试平台结构
测试平台总体结构如图3所示,采用分层模式,由接口层、逻辑层、应用层组成。
图3 自动测试平台总体结构Fig.3 Overall structure of automatic test platform
1)接口层
包含数据通信接口、模拟仿真接口、测试记录接口,相应功能如下。
数据通信接口:实现与联锁仿真软件的接口,完成数据信息的传递。
模拟仿真接口:实现车站设备状态的显示,提供人工测试的操作及模拟条件设置等。
测试记录接口:连接数据库,实现对测试结果的记录及再读取。
2)逻辑层
包含信息检查、操作办理、自动走车、结果记录、数据分析等简单功能的实现。通过对下层接口层的封装单个操作,向应用层提供一个已经实现的简单操作平台。
3)应用层
定义接口测试的测试案例,包括进路办理(列车进路、引导进路、调车进路),进路解锁等测试内容。
测试平台实现的功能如下。
1)接口信息校核。《TCC接口信息表》和《国铁车站STA联锁信息表》是测试的输入文件,TCC***.RSSP1文件是接口测试的对象。正常情况下,《TCC接口信息表》中的接口信息内容与TCC***.RSSP1文件中的内容应该一致。《国铁车站STA联锁信息表》中包含的进路表跟蓝图中的联锁表是一致的。一般来说,进路条数是大于或等于《TCC接口信息表》中的进路条数。所以,在执行测试之前,可以对这些接口信息先进行校核,避免存在不匹配带来的无效测试。
2)接口信息测试。开关量信息的测试,按照对应测试用例执行;进路信息的测试,需要先筛选出被测进路对应的测试用例,然后再执行测试。此外,测试还有下述要求:a.按照《国铁车站STA联锁信息表》对所有进路进行测试;b.执行测试时,除了比对当前测试步骤对应参数变化与用例中预期结果是否相同,还需要监视TCC***.RSSP1文件中被测对象之外的其他接口信息参数未发生变化。c.若被测进路为非TCC接口进路,则测试该进路时,TCC***.RSSP1文件中送出信息对应的参数未发生变化。
3)实时记录测试过程中产生的测试日志,便于对测试结果进行分析。
4)按要求,自动输出测试记录表格,便于项目归档测试记录文件。
与开关量信息测试相比,进路信息的测试不仅内容较多,且还需要结合站型、进路类型来判断具体如何执行测试。如,正线接车进路开放绿灯的条件和发车进路开放绿灯的条件是不同的;同样是侧线接车进路,是否能开放黄闪黄信号也会影响测试步骤设置,等等。因此,需要结合站型、针对不同的进路设置相应的测试用例;这样,测试中可以根据被测进路的情况,筛选出合适的测试用例执行。
设置不同的测试条件,最终主要体现在进路信号显示上,因此,可以按进路的信号显示及进路类型进行分类,设计不同的测试用例。一条进路对应的信号显示有哪些,这些信息在《国铁车站STA联锁信息表》中已明确,如图4所示。设计测试用例时,需要根据不同的进路类型,设置不同的测试条件及测试步骤,使信号开放不同的显示。
图4 进路信号显示Fig.4 Route signal display
首先,根据点/灭灯模式,信号显示分为点灯状态和灭灯状态两大类。然后,在每一类下面,根据信号显示情况及进路类型,再细分为:引导进路(开放红白显示)、仅存在一种允许信号的列车进路、有双黄和黄闪黄两种允许信号的列车进路等,按此方式,细分出16种不同情况的进路。再按照不同的情况,设计对应的测试用例,如图5所示。
图5 测试用例Fig.5 Test case
测试平台的处理流程如图6所示。先校核《TCC接口信息表》和TCC***.RSSP1文件中接口信息内容。开关量信息,需核对码位名称、个数及排序的一致性;信息个数或排序存在不一致时,输出提示信息后结束测试;若信息名称不一致时,由人工确认后可继续执行自动测试。进路信息,若进路条数、编号或进路区段个数及排序存在不一致时,输出提示信息后结束测试;若进路名称存在不一致,由人工确认后可继续执行自动测试。《TCC接口信息表》和TCC***.RSSP1文件中进路信息完全一致后,再校核《TCC接口信息表》和《国铁车站STA联锁信息表》中的进路信息。校核通过后,开始执行相应的测试用例;完成测试后,输出测试记录表格。
图6 测试平台处理流程Fig.6 Test platform processing flow chart
采用自动化测试平台执行CBI-TCC接口测试,与人工测试相比,在测试环境搭建上,大大降低对硬件设备的要求,使测试环境搭建更加方便、快捷。此外,CBI-TCC接口测试的自动化,既可以保证测试的准确性,又可以减少测试时间及人工成本,有效提高接口测试效率。目前,进路信息测试用例的设计存在一定的限制;只考虑了站型较简单车站的情况,对于枢纽站、衔接站或信号显示关系复杂的车站,进路信息的自动测试可能不能完全覆盖。后续,将结合枢纽站、衔接站的特点,不断完善测试用例,进一步提高自动测试的覆盖率。