APP下载

基于Python的区间综合监控系统工程数据校验方法与应用

2019-10-23卫晴雯

铁路计算机应用 2019年10期
关键词:配线配置文件校验

卫晴雯

(西南交通大学 信息科学与技术学院, 成都 611756)

区间综合监控系统(QJK)按照安全完整性等级(SIL)4级的要求设计,在安全性、可靠性、可用性和可维护性方面都有较高要求,为了保证列车的安全运行,在工程实施前必须对其进行严格的测试。工程数据的正确性和可靠性是保证QJK安全使用的前提和基础。QJK的工程数据和驱采配线表的数据应该保持一致,但进行测试时使用的是配置文件,难免有驱采配线表和配置文件信息不一致的情况。因此,对工程数据的校验已成为必不可少的环节。

2015年,中国铁道科学研究院的陈倩佳学者设计出一种对列控数据自动审核的工具[1],通过将列控工程数据表导入到自动审核工具中,利用数据审核逻辑模块,对原始数据进行审核,减少了人为错误,提高了审核效率。2017年,许风伟工程师提出列控数据审核方法[2],分别对基础数据、工程数据表、列控配置数据制定了审核流程,对实际问题进行了分析,并提出了审核方法,帮助工作人员及时有效发现问题。

本文提出的校验方法是从读取数据到核对数据的方法集合,包括:(1)分析驱采配线表的编制规则并确定读取数据方式(2)根据数据结构确定核对顺序以及期间名称处理问题(3)通过统计大量继电器名称类型确定对应关系得到核对方法。本文利用上述校验方法设计并实现了基于Python的QJK工程数据自动校验工具。和人工核对数据相比,显著提高了数据核对速度、覆盖率以及准确率。

1 QJK概述

普速线路信号控制系统主要由车站联锁、区间闭塞电路、轨道电路、区间信号机等设备组成。除了车站联锁外,其他组成部分都是自动闭塞区间的信号设备。自动闭塞区间信号设备主要存在问题有:电缆施工成本高、继电器电路自身缺陷和限制、区间分路不良、信号设备缺乏监测等。QJK适用于普速铁路,采用安全计算机技术和安全通信技术[3],具有站间安全信息传输、区间方向控制和区间占用逻辑检查等功能,各功能之间相互独立,可独立在现场运用,也可组合运用[4-5],能够有效解决自动闭塞区间信号设备的上述问题。

1.1 系统接口

QJK设备硬件基于二乘二取二冗余安全平台,具有较高的可靠性和安全性,并满足SIL4级的要求,车站之间依据RSSP-I安全通信协议来保障信息交互安全。QJK对外接口如图 1所示,QJK通过驱动采集单元与继电器接口来采集继电器状态并输出继电器驱动信息,采用光纤进行站间通信,与相邻QJK交互站间复示、区间运行方向控制、区间占用检查等信息。系统可通过通信或继电接口方式实现解锁盘(RJP)的表示灯和按钮状态的驱动和采集,实时向集中监测设备传输QJK的状态信息、报警信息和区间闭塞分区的逻辑状态。联锁和CTC接口为预留接口。一般一个车站配备一个QJK。

1.2 系统功能

(1)站间安全信息传输功能。

通过采集本站站联继电器,将继电器状态转化为数字信号通过光纤传输到邻站,并在邻站驱动相应的复示继电器,完成站联继电器状态的透明传输功能。铁路线路车站与车站之间需要进行信息交互才能实现列车从一个车站到下一个车站的连续运行。

图 1 QJK系统接口示意图

(2)区间方向控制功能。

在自动闭塞线路上,普速线一般采用四线制方向电路实现站间的方向控制和闭塞控制。站间采用4芯的电缆传递方向控制信息。QJK采用软件逻辑和通信的方式实现区间的方向控制和闭塞控制。

(3)区间占用逻辑检查控制功能。

区间占用逻辑检查控制功能以区间闭塞分区为逻辑检查单位,根据列车在区间占用出清闭塞分区的顺序,对闭塞分区的占用和出清进行逻辑检查,边界区段与普通区段处理逻辑相同,当发现不符合列车正常运行的出清逻辑时,将该闭塞分区判为失去分路,对外提供故障区段的防护条件,并进行报警。通过信号许可对区间运行的列车进行区域跟踪,提高区间占用逻辑检查的准确性,减少误报和漏报。

1.3 维护终端数据

QJK在投入现场使用前,需要结合线路上各个车站的实际工程数据和环境加以配置,并进行测试。测试通过方可投入使用,否则需要进行修改、变更、升级等操作,直到测试通过。QJK配置的工程数据叫维护终端数据,其正确性十分重要,校验依据是设计院提供的驱采配线表(IO配线表),前者是可扩展标记语言(xml,Extensible Markup Language)文件,后者是计算机辅助设计(CAD,Computer Aided Design)文件。在进行QJK工程数据测试之前要进行维护终端数据校验,校验通过,才能进行后续工作。

2 驱采配线表

驱采配线表是设计院根据实际情况编制的继电器信息表,用于做为信号设备研发的数据来源,表中存储着继电器的驱动采集数据,用来保存与继电器驱动采集电路相关的各项信息。QJK需要采集现场继电器实时信息进行分析判断,进而根据相应的逻辑关系对继电器进行驱动,因此继电器既需要采集电路又需要驱动电路。驱采配线表中有采集表和驱动表,两表的格式保持一致。

2.1 数据组成

驱采配线表的数据主要包括驱动采集类型、控制柜端子名称、码位名称(继电器名称)、组合端子和接口柜端子等。不同设计院提供的驱采配线表数据内容不完全相同,但都包括驱动采集类型、控制柜端子名称和码位名称(继电器名称)。在QJK已有的驱采配线表中,将编制规则分为3类。

2.2 编制规则

2.2.1 一行一点位

图2中的驱采配线表显示采集板的表头和1行继电器信息。这种驱采配线表编制规则是1个继电器信息占用1行。控制柜端子名称中包含板号和点位,由AC01-1可知板号为1且点位为1,码位名称0931G-QGJ也就是继电器名称。每1块采集板上有32个点位,在此格式下每1行是1个点位,放置1个继电器的信息。

图 2 一行一点位编制规则的驱采配线表示意图

2.2.2 三行两点位

图3、图4和图5中的驱采配线表显示采集板的表头加2个继电器信息。这种驱采配线表的编制规则是2个继电器占用3行。图3中,由JKD-305可知板号为5,1和19分别表示点位1和点位19,7783G-FHJ和7896G-FHJ分别是与这2个点位相对应的继电器名称。图 3和图 4中的驱采配线表编制规则都是普通的三行两点位,虽然图 3中3行的中间行为空,但和图 4一样,都是只读取3行中的第1行作为继电器名称。图5中,继电器的名称分别是XG1LQGG-FHJ(1)-1和7144G-FHJ(10)-1。与图3、图4相比,这种特殊的三行两点位读取继电器名称的方式不同,这种继电器名称需要读取三行中的第一行和第二行。

图 3 普通二行三点位编制规则的驱采配线表示意图(1)

图 4 普通二行三点位编制规则的驱采配线表示意图(2)

图 5 特殊二行三点位编制规则的驱采配线表示意图

3 自动校验工具设计和应用

3.1 开发环境

自动校验工具在Wing IDE 6.0的集成开发环境下,使用Python2.7 进行开发。Python是高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。Python可以很容易地从文件读取数据,可以选择与数据匹配的数据结构[6-10]。Wing IDE是适用于Python语言的集成开发环境,具有良好的命令自动完成功能、编辑功能和调试功能。同时,为了方便工作人员使用自动校验工具,本文使用Python的wxpython图形库创建了用户界面。

3.2 工作流程

本文设计、开发的自动校验工具的功能主要包括:读取维护终端数据、读取驱采配线表数据、执行工程数据校对以及输出记录,具体工作流程如图6所示。

3.2.1 读取维护终端数据

维护终端数据有设备逻辑信息、通信接口信息和显示信息,3种配置文件。设备逻辑信息描述功能逻辑相关的配置,通信接口信息描述与维护终端通信的所有设备的通信接口信息,显示信息描述界面需要显示的所有设备信息。配置文件为xml格式。用Python编码时要先导入xml.dom.minidom模块,用该模块来读取xml文档。从3个配置文件中获取运用处理函数、自定义类型、实例化对象以及存储数据等,将数据存储在实例化后的自定义类型中。

设置Python自定义类型,包括:车站、区间、闭塞分区、区段等。从设备逻辑信息配置文件中读取区间信息、采集板继电器信息、驱动板继电器信息以及通信车站信息,并将它们分别存储到对应的实例中。例如,区间信息存储在区间实例中,与闭塞分区有一一对应关系的采集板继电器信息存储在闭塞分区实例中,与端口一一对应关系的采集板继电器信息存储在端口实例中。从通信接口信息配置文件中读取车站名和车站ID,将它们存储到车站实例中。从显示信息配置文件中读取车站类型、站内轨信息、区间方向信息,并存储在对应的实例中。

3.2.2 读取驱采配线表数据

读取驱采配线表数据的主要功能包括:将驱采配线表CAD文件转换为Excel文件、读取信息并确定编制规则、读取数据、运用处理函数以及存储数据等。

(1)驱采配线表格式转换

CAD格式的驱采配线表如图7所示,表中包含多个采集板和驱动板。需要将CAD文件格式转换为Excel文件格式,Python语言无法读取CAD文件,但是可以使用openpyxl模块来读取Excel文件。

运用CAD-Excel转换插件先将1个CAD文件中的所有采集板,转换到Excel文件的1个sheet页中,然后将所有驱动板转换到另1个sheet页中。

驱采配线表格式转换过程中有时会出现格式变化问题,因此自动校验工具需要对格式问题进行报错,方便人员根据报错信息手动去调整Excel文件格式。

图7 驱采配线表CAD文件示意图

由于每块采集板或驱动板在Excel文件中的位置不固定,所以需采用一定的方法对每块板进行定位。本文的定位方法是根据端子号的位置来确定板的位置(即Excel中的列数)。自动校验工具对驱采配线Excel表,如图8所示,进行按列读取,若某列的数据连续出现1、2、3,则存储该列列数,最后得到多少个这样的列就有多少块板,每个列数代表每块板在Excel中的位置。

图 8 驱采配线表Excel文件示意图

(2)读取信息并确定编制规则

读取信息是指读取Excel文件的采集板或驱动板sheet页的最大行数。如果最大行数小于48,则为一行一点位,否则为三行两点位。由于有标题行,三行两点位的采集板或驱动板(32个点位)的行数一定大于48。如果三行中的第二行为空,或者第一行数据的前两个字母为AC,则为普通三行两点位,否则为特殊三行两点位。然后按编制规则读取数据,采取不同的读取方式,获得完整的继电器信息。存储数据之前需要使用处理函数来去掉数据中的回车空格等字符。

本文没有在读取驱采配线表模块编写设计院提供数据文件的数据逻辑(即编制规则),而是将数据逻辑放在读取方式上,若设计院文件的编制规则改变,只需增加对应的读取方式即可,增强了程序的可拓展性。

3.2.3 执行工程数据校对

执行工程数据校对时,将采集板和驱动板数据分别进行核对,根据存储数据的数据结构,核对顺序为板号、点位、继电器名称,核对继电器名称需要使用名称核对方法来确定名称是否可以判断为相同。名称核对方法需要通过大量继电器名称类型确定名称对应关系。该方法包括去除回车空格、拆分维护终端数据、拆分驱采配线表数据、排除数字、进行一致性比较和进行个别特殊对比。工程数据校对的另一个功能是校验驱动板继电器前后节点名称,用于校验驱采配线表数据自身有无错误。

3.2.4 输出记录

使用Python,根据需要向Log文件中写入记录,并写入记录时间。校验之后报错的类型有很多种,在输出记录中具体描述错误细节。

3.3 自动校验工具应用

以自动校验工具在敖力布告车站的应用为例说明其中两种校验情况,例1是维护终端数据漏项的情况,例2是驱动板继电器前后节点名称不匹配的情况。

(1)维护终端数据漏项

维护终端数据漏项情况如图 9~图12所示,其中,图9是驱采配线表CAD文件的部分信息,图10是驱采配线表Excel文件的部分信息,图11是维护终端数据配置文件的部分信息,图12是输出的Log文件的信息。

工程数据校验是以驱采配线表为标准来校验维护终端数据的正确性,由图9~图12可知,驱采配线表CAD文件中AC02-2对应1074G-QGJ,转换后的驱采配线表Excel文件AC02-2对应1074G-QGJ,而维护终端数据配置文件没有板号为2点位为2的1074G-QGJ信息。自动校验工具将校验结果输出到Log文件中,Log文件显示“维护终端 漏项 板号: 2通道号:2 IO表中名称: 1074G-QGJ”,其中,通道号也称为点位。提示工作人员,该配置文件维护终端数据中漏掉一个板上的一个点位的继电器名称。

图 9 驱采配线表CAD文件部分信息示意图(例1)

图10 驱采配线表Excel文件部分信息示意图(例1)

图11 维护终端数据配置文件部分信息示意图(例1)

图12 Log文件信息示意图(例1)

(2)驱动板继电器前后节点名称不匹配

驱动板继电器前后节点名称不匹配的情况如图13~图15所示,其中,图13是驱采配线表CAD文件的部分信息,图14是驱采配线表EXCEL文件的部分信息,图15是输出的Log文件的信息。

驱采配线表CAD文件中AQ02-1+对应FHJ-1086G-1,AQ02-1-对应FHJ-108G-2,经工具转换后的驱采配线表Excel文件是一样的情况,通过自动校验工具校验得到结果输出到Log文件中,Log文件中显示“IO驱动板正负极继电器名称不匹配:板号: 2通道号:1 正极继电器名称 FHJ-1086G-1; 负极继电器名称 FHJ-108G-2”。提示工作人员,驱动板继电器前后节点名称不匹配。

图 13 驱采配线表CAD文件部分信息示意图(例2)

图 14 驱采配线表Excel文件部分信息示意图(例2)

图 15 Log文件信息示意图(例2)

自动校验工具可以准确有效地指出数据的缺失、冗余和不一致,有助于快速准确定位错误位置,简单直接指明错误原因,提高数据的可靠性,保证数据的准确性。

4 结束语

本文分析QJK工程数据特性并通过基于Python编码实现的校验工具对QJK工程数据进行校验。以驱采配线表CAD文件数据为标准,校验维护终端数据配置文件的正确性,从而保证QJK工程数据的安全性。分析了驱采配线表的编制规则从而确定程序的读取方式,使得自动校验工具针对不同设计院CAD文件的不同编制规则具有灵活性和可扩展性。本文设计与实现的自动校验工具,已经应用于多个QJK项目的测试环节。实践证明该工具提高了数据核对效率和数据核对覆盖率,缩短了工程项目周期,可以适应QJK项目工程数据的频繁变化。但通过给AutoCAD软件添加插件将CAD文件转换成Excel文件,有时会出现格式变化问题,格式变化有几种常见形式,但是没有绝对规律,不能保证不会出现其他情况,所以这种文件转换方式有待进一步研究。

猜你喜欢

配线配置文件校验
基于Docker的实时数据处理系统配置文件管理软件的设计与实现
基于BIM的城市轨道交通配线设计方法
使用Excel朗读功能校验工作表中的数据
从Windows 10中删除所有网络配置文件
关于无配线车站码序设计方案优化研究
用软件处理Windows沙盒配置文件
互不干涉混用Chromium Edge
城市轨道交通典型车站配线设置研究
智能电能表的现场快速校验方法探讨
电子式互感器校验方式研究