1、引言
轨道交通车辆逻辑控制单元(Logic Control Unit,简称LCU)[1]采用计算机及网络技术,通过场效应管等无触点电路替代列车传统的中间继电器、时间继电器等有触点控制电路,实现列车逻辑控制、故障诊断及综合保护等功能,提升了系统可靠性、可维护性及智能化水平。
目前,LCU采用符合IEC61131-3标准的图形化编程语言[2]进行应用软件开发,以软件逻辑替代硬线逻辑,通过软件即可完成车辆控制逻辑设计与维护。然而,随着逻辑控制单元在铁路车辆上的广泛应用,应用软件开发面临一些问题,如:软件开发人员设计方法不同,不同项目产品配置及控制逻辑不同,导致LCU应用程序通用性差,软件开发继承性差,严重影响LCU应用软件开发质量和效率。
为了解决目前逻辑控制单元应用软件通用性差、继承性差等问题,本文提出了一种逻辑控制单元应用软件通用化设计方法,采用模块化设计思想,将LCU应用软件分为平台通用功能模块、IO映射功能模块和应用逻辑功能模块,应用开发人员仅需修改特定逻辑部分即可完成LCU应用程序开发,大大提高了软件通用性、继承性,提升了软件开发质量与效率。
2、系统软件架构
LCU软件设计采用分层设计思想[3],分为平台底层通用软件和应用层软件,如图1所示。平台底层通用软件主要实现LCU平台基本功能,如:数字量输入采集功能、数字量输出控制功能、自诊断功能、冗余切换功能、通讯管理功能、数据记录功能等,并为应用层软件提供图形化二次开发环境,通过功能接口与应用层软件进行数据交互。应用层软件则通过功能接口,获取输入采集数据、故障判断数据、通讯接收数据,经过逻辑处理功能,传递输出控制数据、故障告警数据以及通讯发送数据。
图1
由于应用软件属于特定应用,与具体项目相关,产品配置不同,导致输入输出通道数量不同,具体通道对应车辆信号逻辑也会不同;不同项目通讯协议差异,导致通讯端口、周期、数据长度等不一致;不同设计人员设计思路、水平及方法不同,导致应用软件设计千差万别。因此,应用层特定软件通用性、继承性较差,严重影响应用软件开发效率,降低软件设计和测试质量。
为了解决该问题,本文提出了一种通用化软件设计方法,将应用层特定软件划分为通用应用软件和特定应用软件,如图2所示。通用应用软件主要根据配置文件,获取板卡配置信息、通讯配置信息,自动配置输入输出通道数据、网络通讯数据与项目应用逻辑一一映射关系,实现项目通用。特定应用软件主要根据项目特定逻辑进行设计,满足不同项目应用需求。后续开发人员仅需改动特定逻辑部分,即可完成应用软件开发,大大减少设计重复率。软件的通用化也提高了应用软件运行的稳定性和可靠性。
图2
3、应用软件设计
3.1 应用软件架构设计
应用层特定应用软件框架如图3所示。
图3
LCU通用软件主要包括平台通用功能和IO映射功能。
(1)平台通用功能
平台通用功能主要分为初始化功能、输入采集功能、输出控制功能、故障管理功能和网络通讯功能。
初始化功能:应用软件通过读取配置文件实现机箱号、板卡种类及数目等产品参数自动配置,实现以太网(IP、端口、数据长度、通讯周期等)和MVB(端口、数据长度、通讯周期等)网络通讯参数配置及初始化。若初始化配置不成功,如机箱号、通讯端口、通讯数据长度等超出范围,板卡数量不符合机箱最大配置等,则上报初始化失败,封锁输出功能。
输入采集功能:通过初始化功能进行产品参数自动配置,如:输入板卡数量、板卡槽位偏移量等,通过平台底层功能接口,获取所有输入采集数据;
输出控制功能:通过初始化功能进行产品参数自动配置,如:输出板卡数量、板卡槽位偏移量等,通过平台底层功能接口,实现所有输出控制功能;
故障管理功能:通过初始化功能进行产品参数自动配置,如:输入输出板卡数量、板卡槽位偏移量等,通过平台底层功能接口,获取板卡、通道等所有故障信息收集功能。
网络通讯功能:通过初始化功能进行产品参数自动配置,如:端口、通讯周期等,通过平台底层功能接口获取网络接收数据,传递网络发送数据。
不同项目由于产品配置不同导致应用程序参数配置不同,通过平台通用功能封装,实现了参数自动配置及数据缓存自动分配,大大减少了应用程序开发人员工作量,降低了因人为变动导致的错误率。
(2)IO映射
IO映射主要包括:输入映射功能和输出映射功能。
输入映射功能:通过平台通用功能-输入采集功能获取的输入采集信息,映射为LCU产品输入端口变量,供应用逻辑使用。其中端口变量体现产品通用信息,可读性及可维护性较好。
输出映射功能:将应用特定逻辑关联的LCU产品输出端口变量映射为平台通用功能-输出控制功能中的输出控制数据。其中端口变量体现产品通用信息,可读性及可维护性较好。
映射关系的建立,提供了平台通用功能与应用特定逻辑沟通的桥梁,大大提高了逻辑变量的可读性,同时提高了应用程序的可维护性。
(3)应用特定逻辑
该部分实现逻辑控制单元(LCU)的车辆逻辑控制功能,主要通过梯形图和功能块图联合编程,实现车辆逻辑可视化、模块化编程。
3.2软件执行流程
为了保证实时性,LCU应用程序采用周期循环方式执行。LCU应用软件执行主要包括主逻辑任务和通讯功能任务。
图4
主逻辑任务主要包括以下步骤:
1)LCU应用程序启动后执行初始化功能,通过读取配置文件,自动检查机箱编码、机箱配置、通讯参数等,并进行各功能组件初始化配置。如果初始化成功,则正常执行输入输出功能;若失败,则继续尝试初始化功能。如果超过3次仍不成功,则进行故障报警,执行封锁输出等安全导向策略。
2)初始化成功后,进行故障管理功能,实时监测机箱各板卡工作状态;
3)执行输入采集功能,获取机箱输入板卡实时采集状态;
4)输入映射功能,将输入板卡实时采集数据映射为具备机箱通用接口信息变量;
5)逻辑处理功能,执行逻辑运算、逻辑处理;
6)输出映射功能,将具备机箱通用接口信息变量与输出板控制端口关联;
7)输出控制功能,执行输出板卡输出控制功能。
图5
通讯任务主要包括以下步骤:
1)通讯功能初始化,主要通过读取配置文件,获取通讯端口、通讯周期、数据长度等参数,并进行通讯参数判断及配置。如果通讯参数超出范围或通讯收发初始化失败,则尝试多次,若超过3次仍不成功,则进行故障指示灯报警,并退出初始化功能。
2)执行通讯接收功能,获取网络时间及控制数据。
3)执行通讯发送功能,向网络传递机箱状态信息。
4、测试与验证
LCU应用软件通用功能是严格按照EN50128标准进行设计开发,已完成需求分析、架构设计、详细设计、单元测试、集成测试、确认验证等,并进行轨道交通复杂电磁兼容环境下试验验证。目前,LCU通用化软件设计已在济南R2、宁波4号线、宁波5号线等地铁项目完成装车验证,运行良好。
5、结语
逻辑控制单元通过采用通用化软件设计方法,将LCU应用层特定软件划分为LCU通用功能软件和LCU特定应用软件,完成机箱板卡、通讯参数等自动配置功能、输入采集功能、输出控制功能、故障管理功能、通讯收发功能等通用化设计。软件开发人员仅需修改配置文件及LCU特定应用逻辑功能,即可完成LCU应用软件设计开发,大大提高软件开发效率及质量,保证了应用软件运行的可靠性与稳定性。
参考文献:
[1] 吕强。地铁列车LCU系统技术发展与应用[J].科技创新导报,2016,(28):1-2.
[2] 钟庆国.可编程序控制器编程语言标准IEC61131-3[J].电气传动,2000(3).
[3] 郭娟。现代分层技术在计算机软件设计中的应用[J].电子技术与软件工程,2018(5):45-46.