基于Redis 技术的CTCS0/2 等级转换场景仿真平台的构建研究

2021-01-25 03:39杨丽丽毛瑞雷
科技创新与应用 2021年5期
关键词:仿真器联络线应答器

杨丽丽,毛瑞雷

(中车青岛四方机车车辆股份有限公司技术中心,山东 青岛 266000)

随着铁路覆盖范围的扩展,为实现列车不停车跨线运行、提高运输效率,客专线路、客货混线路与普速线速间存在互联互通的实际需求。针对该需求,在采用CTCS-0 级(以下简称C0 级)列控系统线路与采用CTCS-2 级(以下简称C2 级)列控系统线路连接处设置联络线,通过在联络线处设置等级转换区段及相应应答器设备,由司机确认后完成级间转换操作,实现跨线运行。每条联络线的特点不同,比如有的联络线长度只有一个闭塞分区,有的联络线在不同进路上存在不同的分相区。为了保证联络线场景相关参数设置的合理性,确保级间转换能够顺利执行,开发设计相应联络线等级转换仿真平台进行仿真验证十分有必要[1-3]。

目前,大部分仿真测试平台的构建是基于底层以太网通信协议和自开发数据交换协议完成的。常见的底层以太网通信协议包括TCP、UDP 协议。使用这两种方式进行通信的平台,在开发过程中不可避免要完成传输格式、交互端口等数据交换协议的制定工作[4],使得整体平台存在开发效率低、后期修改工作复杂等问题。而使用Redis技术进行开发具有快速开发、平台无关性、松散耦合、易于使用等优点,因此本文在介绍联络线功能以及Redis技术的基础上,研究了如何利用Redis 技术搭建联络线CTCS0-2 等级转换场景仿真平台,并在Visual C#编程环境下完成该仿真平台的设计与开发。

1 总体介绍

1.1 联络线场景介绍

列车在C0 与C2 级列控线路间跨线运行时,通过与两线路联络线处设置的等级转换区段及应答器等设备交互,得到线路区段信息与等级转换预告等信息,由司机确认后完成级间转换操作,实现跨线运行。根据《列控系统应答器应用原则》(TB/T3484-2017)对于C0/C2 级间转换的主要要求[5],级间转换应答器组的设置规范如下。

(1)无源应答器组设置:CTCS-0/2 等级转换应答器组包含预告应答器组(正、反向)[YG]和执行应答器组[ZX],每个应答器组包含两个无源应答器。其中,等级转换预告应答器组与等级转换点应答器组的距离应大于列车按照等级转换点处线路的实际最高允许速度运行5s 的走行距离,等级转换执行应答器组应设置在距离首个闭塞分区入口30m±0.5m 处;等级转换设置在线路区间内列车较少实施制动的区段;等级转换执行点应答器组处的列控顶棚速度不应超过160km/h。

图1 C0/C2 等级转换应答器组设置示意图

(2)有源应答器组设置:C0 线路车站向C2 线路方向出站口(含反向)上下行各设置两个有源应答器组[CZC0][FCZ-C0],向列车发送临时限速信息与线路数据。两个应答器组之间的链接距离应大于200m,距离等级转换点最近的应答器组距转换边界应大于450m。

(3)当等级转换应答器组与相邻其他应答器组之间的距离不能满足应答器组间最小距离要求时,可与相邻的应答器组进行合并。

常见的C0/C2 级间转换应答器组布置如图1 所示。

联络线场景实现的功能为列车将执行跨线运行时,当经过联络线内等级转换预告应答器组时,车载设备接收到此应答器组存储的前方部分C0/C2 级区段等级转换预告、线路速度、坡度、应答器链接和轨道区段等信息;之后,列车经过C0/C2 等级转换执行应答器组时,车载设备接收到此应答器组发送的等级转换执行信息,通过人机界面(Driver Machine Interface,DMI)向司机输出转换警示消息;司机按压确认按钮后,列车越过执行点完成级间转换。

1.2 Redis 技术介绍

Redis 技术是近年新兴的具备低延迟和极高的数据写入与查询性能的内存缓存型数据库[6]。作为数据库使用时,开发者可以将数据直接存储到内存中,实现低延迟的数据读取操作;Redis 技术采用单线程实现数据交互,为提供更灵活的写入与查询操作,Redis技术支持key-value 格式存储数据,这种结构的数据之间不存在耦合关系,不存在表结构限制,因此非常易于水平扩展,相应能够增加基于Redis 构建的平台下模块的松耦合性。针对目前主流编程语言,Redis 均提供了相关的实现版本,包括PHP,Java,JavaScript,C#,C/C++,Python 等,且具有良好的平台无关性,支持多种操作系统的应用。

基于上述Redis 技术数据传输延迟低、数据结构简单易扩展、数据库易于使用的良好性能优势,将Redis 技术应用于仿真平台的搭建可以提高平台的开发效率及使用性能。一方面,Redis 技术以封装的TCP 协议作为底层通信协议,屏蔽了底层通信协议的细节,使开发人员能够集中精力开发仿真应用程序,降低了系统开发代码的复杂性,从而提高仿真平台的开发效率;另一方面,仿真平台使用Redis 技术支持的key-value 型数据结构开发模块前期,只需设计各模块输入、输出信息在Redis 中对应的key 值与value 类型即可,省去了类似自开发数据交换协议、接口的商议制定等必需工作。灵活的数据结构与Redis 技术的单线程链路通信方式使得仿真平台下各模块之间不存在直接的数据交互关系,因此,基于Redis 技术构建的仿真平台的运行全生命周期中,因平台需求变动而需要增加或删除模块时,其他模块无需做出较大的代码修改,提高了仿真平台的架构灵活性,具备良好的可扩展性能。

图2 基于Redis 技术构建的仿真平台架构示意图

图2 所示为基于Redis 技术构建的仿真平台架构框图,说明了仿真平台模块与服务器端的交互机制。

图3 联络线C0/C2 等级转换场景仿真平台整体结构图

2 联络线C0/C2 等级转换场景仿真平台总体设计

目前,当列车在C2 级区段线路上运行时,列车车载设备ATP(Automatic Train Protection,列车超速防护)通过轨道电路读取器来接收相关线路信息,同时ATP 将轨道电路信息发送给车载设备的列车运行监控记录装置LKJ,ATP 控制列车的运行;当列车从C2 级区段跨联络线运行至C0 级区段线路时,由车载设备LKJ 获得控车权。因此,联络线C0/C2 等级转场景仿真平台包含两大部分,C0 子系统与C2 子系统,以实现跨线运行时的等级转换。

为了能够快速开发联络线等级转换场景仿真平台,同时使平台使用过程中具备灵活的模块接入性能,选择Redis 技术进行仿真平台架构部署及开发各仿真模块。

根据联络线等级转换场景中C0 子系统的工作原理,C0 子系统由车载设备模块、地面设备模块、列车接口单元等诸多仿真模块组成。仿真平台中各仿真模块构成元素较多、数据交互较复杂,总的来说可分为三大类模块。按仿真平台功能来划分,这三大部分分别为仿真初始配置模块,包括线路数据单元、仿真执行控制器;仿真功能模块,包括仿真列车模型、列车接口单元、司机驾驶台、列车运行监控记录装置LKJ、轨道电路仿真器、轨道电路码接收单元、速度和雷达仿真器;仿真结果收集和分析模块,包括记录数据库、事件记录器等。由于硬件设备及线路数据传输方式的升级,C2 子系统相较C0 子系统增加了一些新的功能模块,包括列车超速防护仿真器ATP、应答器仿真器、应答器信息接收单元与列车运行控制中心仿真器TCC。这些仿真模块构建的联络线C0/C2 等级转换场景仿真平台整体结构如图3 所示。

联络线仿真平台从开始执行仿真到仿真结束的整体过程,可以分为仿真平台数据配置、仿真功能执行与仿真结果分析三大阶段。

(1)在仿真平台数据配置阶段,仿真执行控制器将不同等级线路的线路数据发送给各等级对应的线路数据单元中,C0 级线路数据存至列车运行监控记录装置中,模拟列车运行在C0 级线路过程时的线路数据来源,C2 级线路数据存至C2 线路数据单元中,模拟列车运行在C2级线路上时,列车通过应答器信息接收单元实时从数据单元中获取的线路数据来源,仿真执行控制器同时完成一些其他如应答器报文、列车接口信息的初始更新;平台下的功能仿真模块接收到上述更新数据后完成相应的数据配置工作,用于后续仿真运行。

(2)仿真功能执行阶段,各仿真器通过间接的数据交互,实现通信,共同配合完成列车跨线运行的仿真过程。该阶段各个仿真器共同作用,实现的主要功能包括:

速度雷达仿真器依据线路数据信息,实时计算当前列车速度与走行距离,为列车运行监控记录装置提供速度和雷达相关信息。

C2 等级行车时,列车超速防护仿真器实时获取速度雷达仿真器提供的速度信息,当速度超过最高允许速度时,通过列车接口单元控制仿真列车模型的制动行为。当列车速度未超过最高允许速度时,由司机驾驶台输出相应的牵引制动指令,通过列车接口单元实时控制仿真列车模型的行驶。

当列车运行在C0 级线路上时,列车运行监控记录装置LKJ 仿真器从装载的C0 线路数据单元逻辑匹配线路信息,司机驾驶台模块参照轨道电路接收单元从轨道电路仿真器接收到的轨道电路码信息进行控车。

当列车运行在C2 级线路上时,车载设备ATP 仿真器和LKJ 仿真器通过速度雷达仿真器实时获取速度信息,并通过轨道电路接收模块、应答器信息接收模块获得列控中心仿真器发送至轨道电路仿真器与应答器仿真器的线路信息(包括进路参数、线路参数、限速、停车信息等),生成目标距离曲线,实现列车的超速防护,司机驾驶台模块参照目标距离曲线进行控车。

各仿真器在仿真执行阶段,收集自身的列车运行相关信息并发送到事件记录器,用于后续仿真结果的数据分析。

(3)仿真结果分析阶段,通过对事件记录器记录的事件及数据结果进行综合分析,验证联络线等级转换场景中相关参数设置的合理性。

基于Redis 技术构建的仿真平台不同于其他传统的平台开发模式,使用该技术开发的仿真模块均与仿真数据库直接完成数据存储与读取过程,能间接实现模块间的通信行为,使仿真模块不再受限于模块之间交互内容过多造成的强耦合性问题。同时,考虑到后期仿真模块位置部署的不确定性、平台功能改动导致的模块变动,平台下的模块需能在同一网络空间中任意分布。

结合1.2 小节对基于Redis 技术构建的仿真平台的性能分析和上述对仿真平台的功能分析,Redis 技术能够满足仿真平台这两方面的需求,因此最终选择Redis 技术作为平台框架的技术基础,并进行平台的后续实现开发。

3 联络线C0/C2 等级转换场景仿真平台的实现

依据上文设计的联络线C0/C2 等级转换场景仿真平台架构及各模块数据交互机制,仿真平台的开发更侧重于仿真环境的配置、各仿真模块功能逻辑的开发、Redis机制下仿真模块交互数据在数据库中的存取,包括变量名称及字段类型。整体开发流程框图如图4 所示。

本文利用Redis 技术搭建的仿真平台,将线路数据单元作为服务器端,其他模块作为客户端,实现低耦合的数据交互,采用面向对象的编程语言C#在Visual Studio软件开发环境下开发平台下的各模块。使用C#进行模块开发时,开发者通过在项目中引用Redis 官方发布的Nuget 包“StackExchange.Redis”,实现对 Redis 发布的软件包的访问。

图4 联络线C0/C2 等级转换场景仿真平台开发流程图

以场景中列车在C2 线路上运行过程中,ATP 仿真器、速度雷达仿真器、轨道电路接收模块等模块为例,说明各模块在仿真执行过程中的数据交互方式。开始仿真后,应答器仿真器、轨道电路仿真器根据仿真执行控制器前期更新至C2 线路数据单元中的线路数据,实时向仿真数据库中更新发送动态列车控制信息、临时限速等线路信息,轨道电路接收模块、应答器信息接收模块同步实时根据上述信息解析并更新仿真数据库中的行车所需的必要信息;仿真司机驾驶台实时向数据库更新牵引制动等级等信息,速度雷达仿真器从数据库中获取牵引制动登记后进行速度与位置的计算并更新至仿真数据库中;ATP 仿真器实时与仿真数据库交互,获取生成目标距离制动曲线所需的速度距离等参数信息,并监控列车安全运行。联络线C0/C2 等级转换场景即基于上述数据交互模式,由C0 行车场景、等级转换场景、C2 行车场景共同组成。等级转换场景从列车接收到仿真数据库中的等级转换预告信息开始运行,到列车接收到等级转换执行信息并完成LKJ 与ATP 设备权力转移后完成。

4 结束语

本文主要完成了联络线C0/C2 等级转换场景仿真平台的设计,采用了Redis 技术和面向对象的编程语言实现了仿真平台的具体开发,利用开发的仿真模块进行了场景的仿真。通过对Redis 技术在联络线等级转换场景中的实际应用,说明了Redis 技术在开发灵活的复杂系统仿真平台方面具备的快速开发、易于扩展的良好使用性能,为构建高性能、易使用的仿真平台提供了一种技术思路。

仿真过程中,涉及到的列车运行场景较多,数据交互十分复杂,为降低平台开发复杂度,并完成等级转换场景的仿真工作,平台开发过程中,对非必需模块的数据交互进行了一定程度的简化,后续其他场景的仿真工作可在此基础上进行完善,进一步丰富平台的功能。

猜你喜欢
仿真器联络线应答器
巧用应答器,提高小学语文课堂实效
分相区内应答器安装方式分析
城市轨道交通联络线布局建设成本优化法的改进
地铁联络线中空气的流动和换热特性分析
AI仿真器将大大提高科学领域的仿真模拟速度
城市轨道交通联络线计轴点的设置研究
联络线对地铁通风与热环境的影响
基于英标联锁的ETCS1级系统应答器设置简析
基于英标联锁的ETCS1级系统应答器设置简析
新型多功能水声应答器电子系统设计