张雯柏,彭翠云,张立都,胡爱云
(上海铁大电信科技股份有限公司 研究发展中心, 上海 200070)
铁路信号智能分析与故障诊断系统(简称:智能分析)在信号集中监测(CSM,Centralized Signaling Monitoring)的基础上,对安全隐患预先识别与实时处理,给出稳定有效的故障解决方案。电务设备检修、故障定位、隐患处理不再只依靠维护人员的业务水平和经验积累程度[1]。现有CSM系统主要有 CSM–HH、 CSM–TD、 CSM–TH、CSM–KA、CSM–YH、 CSM–JS、 CSM–JD、CSM–WD、 CSM–LT、 CSM–CL等。唐汇东应用蚁群算法生成脚本全局串接测试RBC[2]。崔岩使用正向最大匹算法生成脚本测试TCC[3]。丛向超提出覆盖全场景编制脚本测试TSRS[4]。白鸿钧等人研究脚本语言测试LKJ[5]。在上述研究基础上,本文着重研究以数据驱动方式把自动化脚本系统引入CSM智能分析系统测试。
对智能分析系统的渐增式集成测试是上站之前必备的工作步骤,实际站场中信号设备类型多样、故障逻辑多变、测试脚本数量大,直接依靠手工编写需要较长时间,且在接口协议转换、经验值读取、数值计算等编写过程中容易出错。因此,设计一套以数据驱动读取站场数据、程序化业务逻辑、序列化故障脚本数目,面向CSM智能分析的测试脚本生成系统具有一定的实用意义。
搭建的智能分析测试系统,如图1所示,分为脚本入口层、模拟转换层以及传输层。脚本入口层是模拟采集工具TestServer;模拟转换层包括相应数据格式转换模块;传输层主要是综合信息通信采集板卡,能够接收RS485、CAN、RS232和TCP/IP格式的数据;环境监测、列控中心、TDCS/CTC、UPS和集中监测等信息直接从TCP/IP通信网输入站机[6]。
图1 CSM智能分析系统的测试结构图
(1)将测试脚本输入到TestServer,把脚本分割为单个模拟采集数据包;(2)数据包通过脚本入口网传输至模拟转换层,模拟工具接收对应的数据解析归类,分别打包为RS485、TCP/IP、CAN以及Moxa卡等监测格式的数据;(3)传输至监测站机,经拆解分析后保留有用信息作为监测采集数据,并转发到智能分析系统处理,得到报警和预警结果。
测试故障按安全级别分为报警和预警脚本。铁路信号设备类型分为信号机、道岔、轨道电路、站内电码化、电源屏、外电网、环境监测、联锁系统、列控中心、TDCS/CTC、UPS等,其中,信号机、道岔、轨道电路、电源屏与外电网需要通过测试脚本进行逻辑分析。如图2所示,按设备类型依次展开各自对应的报警和预警项目。
同一报警或预警对应不同的原因,如表1中区间轨道电路包括4个报警项目,其中,“区间红光带”的故障原因包括“发送功出电压低”等6类[7],如果要验证该报警项目,则需编写上述6类故障原因脚本。
智能分析系统以单个设备为最小的处理单元,站场信号设备配置数量增加,测试脚本成倍数增长,同类单元的监测点与采集种类相同,因此设计时按照故障类型分类,对设备统一编号,统计并编写该类故障下所有设备的独立脚本,文章以区间轨道电路为例,图3所示是一个区间轨道电路单元包含的11个故障区域,需要配套编写相应的11类逻辑脚本[8]。
模拟转换层的模块要按照一定的通信协议解析脚本,因此编写脚本前,需要设计脚本中各类采集通信协议,按照现场实际采集方式设计以下几类通信协议,如图4所示。
以区间轨道电路通信协议为例,区间轨道电路走网络通信时,模拟量通信协议以“区间轨道电路(网络)=区段名称,模拟量标志位,设定值”格式设计,按ZPW2000A监测通信协议,模拟量标志位设置在0到27范围,分别表示区段各监测点采集量,如“04=28810AG,3,2 000”, 其中“3”表示“功出载频”。区间轨道电路开关量通信协议以“区间轨道电路(网络)=区段名称,开关量标志位,状态位”格式设计,开关量标志位,0表示主轨,1表示小轨;状态位,0表示空闲,1表示占用,2表示无效。如“09=28810AG,0,1”。区间轨道电路走串口通信时,以“区间轨道电路(串口)=区段名称,模拟量标志位,模拟量类型”格式设计,模拟量类型中,1表示区间轨道电路,2表示电码化。
图2 CSM智能分析系统处理报警与预警分类
表1 区间轨道电路报警项目与原因
图3 区间轨道电路单元故障定位区域与监测采集点
自动化测试脚本分为5个层次:线性化,结构化,共享化,数据驱动化与关键字驱动化脚本。考虑到站场数据配置多,储存格式多样,不能随意修改,因此采用数据与脚本分离的数据驱动化设计方式,脚本只编写逻辑控制信息,通过读取站场配置文档,经逻辑计算配置模拟量大小。该设计方式优点是可以快速添加相似测试,不同类别脚本读取同一数据时互不影响。编写时程序成本大,有多少类脚本就要写多少类逻辑,但后期维护成本小。
信号设备的报警可以按照业务逻辑逐层分析定位,因此编写脚本遵从相应的逻辑推导规则,能够降低误写率,避免内容重复的编写。如图5所示,图5 a是对应的数据驱动化编写脚本程序流程图;图5 b是区间轨道红光带的业务逻辑分析流程图。
图4 测试系统模拟通信协议分类
2.2.1 编写初始化脚本
在脚本运行之前,需要对测试站场信号设备的开关量和模拟量进行初始化设置,保证测试站场处于正常工作状态。
(1)初始化站场信号设备开关量。通过站场配置文件读取所有信号设备的开关量,查找对应的ID号并设置,有道岔的1DQJ、2DQJ、定反表继电器开关量;站内轨道电路GJ、FBJD等相关开关量;联锁、外电网、电源屏相关开关量;控制台接发车与闭塞按钮相关开关量;各模块与采集板卡通信状态等相关开关量等。程序对应读取StationCFG.ini站场图信息,读取FrankCFG.ini连接的通信地址与分机号,读取Digit.ini中所有配置开关量的名称和ID号。
(2)初始化站场信号设备模拟量。查找所有模拟量ID号并设置对应模拟量等于正常状态下的经验值。有电源屏、外电网、站内轨道、道岔、信号机、电缆绝缘、电源漏流、电码化、区间轨道电路与监测、计轴、环境监测、UPS等相关的电压、电流、阻抗、功率、载频、相位角模拟量。编写程序对应读取 Power、ModBus、TrackCircuit、Turnout、TrackTestDa、TrackOnSit、Signal、SetOther等文挡中的模拟量名称与ID。
(3)根据读取的实验室经验值文档TrackTestDa和现场经验值TrackOnSit文档设置站场开关量和模拟量初始值。初始化后,所有主电源点亮,轨道处于出清状态,信号机点红灯,道岔处于定位状态。
2.2.2 编写发送功出电压低脚本
(1)编写初始化语句,调初始化脚本,使所有设备处于初始状态。
(2)取站场管辖区间内一段非尽头区段,在Digit开关量表中查找对应ID号。
(3)通过该区段名称和ID,在Analog模拟量表中查找对应的功出电压和电流、电缆侧发送电压和电流、受端电缆侧主轨电压、主轨入和小轨入电压、主轨出和小轨出电压模拟量ID号,初始化该区段所有设备的电压、电流、载频处于正常经验值。
(4)通过该区段名称和ID,在SecRelation轨道关联表中查找该区段前后相邻区段名称与ID,读取相关数据表,设置相邻区段GJ吸起。
(5)设置该区段功出电压和电流模拟量低于逻辑阈值,延时默认20 s。
应用上述(2)的方法编写剩余区间轨道红光带的5类脚本,根据逻辑依次编写,对逻辑结构不同的地方做相应调整。
在VS平台下引用MFC与DEV编写测试系统的图形用户界面(GUI),如图6所示,在菜单行添加了一系列Ribbon控件,表示各类信号设备脚本独立控制生成功能区,如轨道电路功能区中包含正常接车发车、合并过车报警、站内报警等逻辑控制选项,可以通过点击按钮触发脚本生成,保存至当前程序运行路径下。在点击生成脚本之前需要先选择“经验值设置”,确定初始化与逻辑对比的经验值来源,可以选择站场数据库读取或默认初始值;在“通信设置”中根据需求设置联锁、Modbus、Can通信接口号;根据业务逻辑,在“延时设置”中设置4类延时。
在系统设计完成之后,通过配置相应的站场设备文档对多个站进行应用。以丹霞山、滕州和南昌西等3个站为例,进行应用说明,3个站的信号设备数量依次由少到多,其中,丹霞山属于小型信号集中站,滕州站属于中型,南昌西属于大型。分别统计各站的电源屏、外电网、站内轨道、道岔、信号机、电码化和区间轨道的测试脚本数量,如图7表示各个站内信号设备种类与对应测试脚本数量的分布情况,轨道电路、信号机和道岔测试脚本最多,是电务部门维护和关注的重点,大型站的测试脚本数量要远多于中小型站。
图5 区间轨道逻辑流程与对应的编写流程
表2中统计了3个站的信号设备总数、生成测试脚本总数、手动编写平均时间和系统自动生成时间,其中,南昌西站的测试脚本11 590个,是丹霞山站的12倍多,测试脚本生成数量最多,自动生成时间最长(165 s),是丹霞山站生成时间的14倍,而平均编写一个脚本的时间是6 min,该系统缩小了编写时间,提升了编写效率。
图6 脚本生成系统轨道电路控制界面
图7 应用站场信号设备与测试脚本分布关系
按照技术规范[9-10],在监测点数目一定、采集数据一致的前提下,信号设备故障的业务逻辑流程是一致的,脚本控制程序一般不需要修改,因此系统生成的脚本逻辑性较高;数据读取过程与转换算法流程明确,可追踪错误,经过多个站场测试应用,脚本准确性较高。
表2 脚本生成系统站场脚本总数与生成时间
综上所述,为减少测试脚本编写工作量,降低测试脚本误写率,缩短测试上线周期,设计并实现了面向CSM智能分析的测试脚本生成系统。在数据驱动设计思路下,分析了智能分析系统需处理的故障项目与原因,以面向对象的程序集变更业务数据来源、接口协议与控制流程中的变量,便于调整逻辑流程和测试环境,控制脚本的输出。设计的脚本系统对铁路信号设备故障测试具有一定的实用意义,不足之处是还未实现脚本预期报警与实际报警结果自动对比功能,今后研究方向是从智能分析系统中提取报警结果,与输入的脚本预期报警对比,自动生成测试结果报告。