徐 强,崔 龙,黄 琨
(中国铁道科学研究院集团有限公司 通信信号研究所, 北京 100081)
近年来,随着我国CTCS-3 级客运专线建设的快速推进,作为CTCS-3 级列控系统地面核心设备[1]的无线闭塞中心(RBC,Radio Block Center)得到了广泛的应用。在工程项目实施中,需将大量的原始线路工程数据配置为RBC可读取的数据格式以控制列车运行。由于数据量庞大,开发数据配置工具以替代人工完成数据配置是十分必要的。许多研究人员都针对不同类型的地面列控设备进行了数据配置方法研究,例如基于图论生成RBC配置数据的数据模型[2]、从列控工程数据表自动创建列控配置模型的技术[3]、基于服务的铁路信号数据一体化配置系统的方法[4]、基于ES(enterprise system)[5]技术的铁路信号工程数据配置等。
由于不同类型的设备,甚至同一类型不同型号的设备所采用的数据结构都不相同,因此对于本文所指向的RBC设备来说,上述已有研究方案借鉴意义不大。本文旨在从列控地面工程数据和RBC工程化数据配置规则出发,制定一套完整的工程化数据生成方法与实现方案,并基于此方案开发相应的工程化数据配置工具,为今后采用RBC设备的工程项目的顺利实施提供有力保障。
列控地面工程数据作为RBC数据配置的输入,由信号设计单位和铁路局相关部门提供[6],是RBC数据配置的重要依据。
列控地面工程数据主要包括列控地面工程输入数据和输出数据,其中,列控地面工程输入数据由设计单位按照规定格式提供给设备供应厂家;列控地面工程输出数据由列控中心厂家负责编制,提供给工程设计单位,作为工程设计的依据。列控地面工程数据的分类结构如图1所示。
图1 列控地面工程数据分类结构图
图1中,制作RBC系统线路数据所需列控地面工程数据表的详细说明如下。
(1) 信号数据表。描述线路布置信号机和轨道区段的数据信息,包括信号机名称、公里标、信号点类型、轨道区段名称、区段载频、区段长度等数据。
(2) 应答器位置表。主要描述线路布置的应答器数据信息,包括应答器名称、编号、应答器公里标、应答器用途和类型等数据。
(3) 列车进路信息表。按车站划分,每个车站编制一个进路信息表,描述该车站所有接车、发车进路的数据信息,包括进路编号、进路类型、该进路通过的应答器链接信息、道岔信息、进路速度信息和轨道区段信息等数据。
(4) 线路坡度表。主要描述线路的坡度数据信息,包括线路坡度值、坡度长度及变坡点公里标等数据。
(5) 线路速度表。主要描述线路的速度数据信息,包括线路速度值、速度长度及变速点公里标等数据。
(6) 分相区信息表。主要描述设置的分相区信息,包括分相区起点里程、终点里程及分相区长度信息。
(7) RBC信息表。主要描述RBC管辖的相关信息,包括RBC所在地区编号、RBC编号、电话号码以及RBC的管辖范围等数据。
(8) 道岔信息表。主要描述各个车站内的道岔信息,包括道岔编号、岔尖里程以及正侧线关系等数据。
(9) 断链信息表。主要描述线路设置的长链、短链信息,包括断链所在线别、断链类型、断链起点里程、终点里程及断链长度等信息。
RBC数据由站别常量表、站别常量文件和站别数据3部分组成,其中站别常量表存储格式为Excel,由14个数据表构成;站别常量文件存储格式为Excel,由30个数据表构成;站别数据存储格为C源码,由34个文件构成。站别常量表、站别常量文件的文件结构分别如图2、图3所示。
图 2 站别常量表结构图
RBC数据的配置流程为:(1)以列控地面工程数据为输入,配置站别常量表;(2)以站别常量表为输入,配置站别常量文件;(3)将站别常量文件按规定格式转化为站别数据。
站别常量表、站别常量文件是由列控地面工程数据至站别数据转换的中间表,是验证数据配置正确与否的重要依据;站别数据是站别常量文件的C源码形式,是RBC最终应用的线路数据形式。
图 3 站别常量文件结构图
RBC将列车控制逻辑与站别数据结合在一起,从而实现对列车的控制[7],由于站别数据的格式为C源码,因此需按照RBC系统数据格式要求,将列控地面工程数据表转换为对应的C源码格式。文件之间的具体转换关系如图4所示。
其中,站别常量表是对列控地面工程数据表进行汇总和数字化处理后得到的中间表,将列控地面工程数据表中的信息转变为对应的数字变量,并将RBC站别常量数据所需列控数据表进行整合,方便后续站别常量文件的计算、特殊线路设计处理以及数据的人工核验。
图4 RBC数据转换流程图
站别常量文件则是通过将图4中的站别常量表按照RBC系统定义的站别常量数据结构体进行重新编排、整合和计算获得。站别常量文件中各个表的结构与RBC系统中对线路数据定义的数据结构一一对应,方便后续C源码的生成。
站别数据(C源码)为RBC存储和编译站别常量数据的源文件。通过相关软件将其与RBC逻辑代码一同编译,从而实现站别数据下装。
根据数据处理流程,可以将数据生成分为两个部分:(1) 由列控地面工程数据生成对应的站别常量表;(2) 由站别常量表生成对应的站别常量文件,以及对应的C源码。
考虑到两部分逻辑相互影响,存在数据生成错误的可能性,本文设计中将两个部分划分为两个功能模块进行开发。
将列控地面工程数据转化为站别常量表的具体处理流程如图5所示。
(1) 设置站别常量表模板路径,并将模板进行拷贝,作为最后输出的站别常量表;
(2) 读取信号数据表和进路数据表,并生成闭塞进路列表;
(3) 按照线路顺线,生成闭塞进路的结合关系,并将其写入到站别常量表;
(4) 将闭塞进路信息写入站别常量表中;
(5) 读取应答器位置表,结合闭塞进路信息中的公里标和长度,建立应答器与闭塞进路的连接关系;
(6) 将应答器信息以及应答器和闭塞进路对应关系写入站别常量表;
(7) 读取分相区信息表,将分相区信息转化至对应的闭塞进路中,形成轨道条件信息表,并将其写入站别常量表中;
(8) 读取线路坡度表,将坡度信息转化至对应的闭塞进路中,并将其写入站别常量表中;
(9) 读取线路速度表,将速度信息转化至对应的闭塞进路中,并将其写入站别常量表中;
(10) 结合之前生成的信息,生成相关CBI信息表,并将其写入站别常量表中;
(11) 保存写入的站别常量表。
站别常量表转化为对应的站别常量文件,并进一步转化为RBC系统所需的站别数据(C源码)的流程图如图6所示,具体处理流程如下。
(1) 设置站别常量文件模板路径,并将模板进行拷贝,作为最后输出的站别常量文件。
(2) 读取站别常量表,按照相关逻辑生成对应的站别常量文件,将其写入到站别常量文件中,并保存。
(3) 读取生成的站别常量文件,将其转化为对应的C源码文件,生成完毕后关闭打开的站别常量文件。
数据生成工具主要包含5个模块:数据读取模块、站别常量表计算模块、站别常量文件计算模块、C源码生成模块和数据写入模块。设计结构如图7所示。
图5 RBC站别常量表生成流程图
图 6 RBC站别常量文件及C源码生成流程图
其中数据读取模块主要负责对Excel文件进行读取,包括读取特定数据表、特定单元格的文本、公式和数值等。站别常量表和站别常量文件计算模块主要负责站别常量表和站别常量文件的计算、组织和存储,其具体处理逻辑参考文中2.3和2.4节所述;C源码生成模块主要负责由站别常量文件计算得出对应的站别数据的C源码。数据写入模块分为两部分:Excel文件写入模块和C源码写入模块。Excel写入模块主要功能有创建、删除电子表,写入特定数据表、特定单元格的内容、公式和数值,合并、拆分单元格,设置单元格格式等;C源码写入模块主要负责将生成数据写入到C源码文件中。
图7 数据生成工具设计结构图
本文设计中采用C#和NPOI作为实现数据生成工具的技术手段。C#语言作为一种简单的、现代的、面向对象的、类型安全的编程语言,不但提供了面向对象的编程技术,还提供了面向组件编程的支持技术[8]。考虑到列控地面工程数据表以及站别常量表和站别常量文件包含有大量数据,且均为Excel格式,数据工具需能够快速、正确、稳定地读取Excel文件,因此采用NPOI进行相关Excel文件的编辑。NPOI是基于Java版本的POI库制作的.NET框架版本。NPOI具有开发简易、读取高效等特点。且其对于Excel没有依赖性,可以在未安装Excel的计算机上运行。.NET框架具有便利、稳定等优秀特性,是较适合编制数据制作工具的语言平台。
数据生成工具验证使用的数据为某线路中某个RBC管辖范围内的列控地面工程数据,该线路设计数据容量[9]如表1所示。
表1 测试用列控地面工程数据容量表 单位:个
通过人工制作和数据生成工具自动生成两种方式,生成同一台RBC的站别数据。由于C源码的数据结构与站别常量文件结构一一对应,且人工制作C源码耗费时间较长,容易产生错误,因此数据生成测试的范围限定在中间表环节。经过测试,两种制作方式所需的制作时间如表2所示。
表2 数据生成时间对比表
由表2可知,相对于传统的人工制作方式,通过数据生成工具可以在较短时间内完成RBC站别数据的生成,提高了站别数据的制作效率,缩短了列控地面工程数据变更时RBC软件的更新周期。此外,通过人工和工具双重方法制作双份数据,还可实现数据的相互校验,提高数据正确率与安全性。
本文针对制作RBC用站别数据过程中存在的数据量大、易出错以及制作周期长的问题,设计了基于C#和NPOI的工程化数据生成工具。该工具读取列控地面工程数据后生成对应的站别数据。经过测试,数据生成工具在保证数据正确性的基础上,显著提高了数据生成速度,缩短了软件更新周期。通过人工和工具双重数据制作相互核验的方式,既保证了数据的正确性、完整性,又提高了制作效率。
为了提高软件的计算速度,减少内存占用,本文采用的模型仅涵盖了常见线路设计模式。后续可将线路模型进行改进,如设计基于图论的数据模型等,以提高复杂线路状况下站别数据中间表生成的正确率。此外,考虑到列控地面工程数据可能存在错误,导致对应生成的站别数据错误,后续可增加列控地面工程数据核验功能[10],实现在RBC站别常量数据生成之前对列控地面工程数据的核验,防止后期因为列控地面工程数据错误造成的数据无效制作、重复制作,减少数据制作、核验时间,减轻核验人员工作量,提高RBC站别常量数据制作效率。