轨道交通信号日志分析系统的开发应用
2022-11-07巫宜国
巫宜国
(深圳地铁运营集团有限公司,广东 深圳 518040)
0 引言
轨道交通信号系统设备维护和故障处理中,常常要分析各种日志信息,但传统的人工分析日志效率比较低下、故障诊断不及时,同时维护成本也比较高[1]。无法充分挖掘日志规律性价值,从而不可提前预知可能存在的隐患;日志分析过程人为经验依赖程度高,分析效率较低,无法快速高效完成故障排查[2]。
针对上述问题,该文结合设备维护日志分析中积累的经验,开发了一套日志分析系统。通过这一系统能更简单、便捷地分析日志,得到列车运行相关数据和信号设备运行状态等数据,有效地指导运营时刻表编制,掌握设备的运行性能,提前发现设备中存在的隐患,在实际运用中取得良好效果。
1 信号系统日志简介
1.1 日志的种类
信号系统日志主要用于记录系统的运行中人员操作、系统操作、系统响应和列车运行记录、报警信息和各系统接口间传输的数据等,这些信息便于软件设计人员、维护人员掌握系统运行状态和运行中出现的各种异常。据统计,部分故障还呈现出一定的规律性。对于此类问题,若不能及时进行分析处理,可能造成重大安全隐患甚至影响列车运行,不利于轨道交通的安全、高效运营和乘客出行。
信号系统的日志主要有:ATS日志,记录了ATS系统运行期间人员/系统操作记录、列车运行状态日志、接口数据日志、报警日志等;NMS日志,记录了全线网络设备运行状态和报警信息等;联锁系统(PMI)日志,记录了进路触发、操岔、通信状态、重启、故障报警等;车载运行日志,记录了列车运行中接收到的移动授权、运行速度、加速度、制动率的运行状态信息和系统报警数据;数据记录仪(DR)日志,记录了通过接入交换机系统之间收发的所有数据包;还有交换机日志、计轴日志等。
1.2 常规日志分析方法和缺陷
系统供应商提供了常规的日志分析工具,供维护人员查看系统报警,人员操作、进路触发等各类系统运行信息,辅助故障的分析处理。也可以统计一定时间周期内,某个报警信息的数量,发现一些设备故障隐患,及时进行处理,避免故障的发生,如每天运营期间统计列车通信丢失和信标丢失的数量,对丢失数量多的设备进行处理。但该工具也有一些不足,如筛选报警信息时间周期不能太长,也不能对筛选的结果输出文件进行保存和进一步分类统计,无法远程分析和查看。
对于一些日志数据,如NMS日志,无法用系统供应商提供的日志分析工具,日志分析存在较大的困难。通常是使用记事本或者notepad++打开后,查找关键字,或者使用Excel导入文件,利用筛选工具和Excel公式进行分析和统计。但这些操作较为繁琐,分析效率低,特别当日志文件太大、行数超过一百万行的也不便导入,且Excel处理速度变得非常缓慢。
2 日志分析工具的研制
2.1 需求分析
结合日常维护中日志分析需求,日志分析工具实现的主要功能如下:
(1)分析列车运行期间,每个站的到站和发车时间,列车ATO模式下区间运行速度等级。得出列车不同速度等级下的区间旅行时间,优化调整时刻表的参数。
(2)统计分析信号系统一段时间内各类报警的数量,针对不同列车、不同控区进行分类统计,便于掌握系统运行中发生的一些没有立即影响行车的异常信息,定期分析和处理这些异常,掌握系统运行的趋势。
(3)分析全线车地通信质量。根据列车运行时通信测试记录,分析列车在该时间内的丢包率,列车在每个站台的丢包情况以及丢包时与列车通信的AP,发现通信质量较差的区段和可能存在问题的AP,并进行处理,减少发生通信故障影响行车。
(4)统计分析NMS日志中设备端口报警和AP与列车关联通信的次数等,判断网络设备是否存在工作不稳定的情况。
(5)在漫游测试AP信号强度后,分析AP信号强度是否正常。
(6)在设备更换后,能对设备相关的MAC地址等参数进行维护。
(7)分析PMI故障日志,找出故障代码,通过查询功能查询故障日志的含义及处理建议。PMI是信号联锁系统,在设备运行中,故障率较高,需要通过对PMI日志进行分析查明故障原因,再通过维护手册,查明故障的具体原因和故障排除建议。
2.2 软件设计语言的选择
Python程序设计语言是一种当前比较流行的程序设计语言,有大量功能强大的第三方包支持,简单易学,适合非计算机软件开发的设备维护人员。它大量用于数据分析、人工智能等领域。软件移植性良好,可以安装到任何系统的电脑,因此该文选用了Python语言作为软件编写语言。
2.3 软件功能的设计
日志分析软件主要需实现对指定日志进行分析,实现预定的功能。首先打开指定文件路径的日志文件,查找出日志文件记录的关键词,再提取出这一行中需要的信息,提取出的信息经过一定的逻辑判断和分类存储,输出分析结果,即可实现大部分的功能,软件流程图如图1所示。Python使用“in”语句查找关键字所在的行,找到该行数据均可使用“split”语句分拆后提取需要的信息。
图1 日志分析基本流程
tkinter模块是Python常用的一款人机界面设计模块,使用该模块的窗口、菜单(Menu)、按钮(Button)、标签(Label)等控件设计人机界面,图2所示为该软件主界面。
图2 软件的界面
pandas模块是一款功能强大的数据分析模块,可用于ATS报警数量的分类汇总统计,同时也可以用于读取日志文件和输出分析结果。
软件日志记录功能的设计:Python使用logger包可以方便实现日志的记录功能,便于掌握软件设计期间的调试和软件使用期间出现异常的分析。
2.4 软件功能的实现
不同系统厂家的日志也必然有所不同,需要针对需求,找到需要的日志文件和关键词,设计逻辑实现需要的功能。以下介绍深圳地铁9号线信号日志分析系统的功能。
2.4.1 列车运行性能分析功能
通过分析一段时间的列车运行日志数据,可以得出这段时间所有列车的到发站时间,同时可以知道列车在区间运行的速度等级和列车运行的模式,其中列车到站的关键字为“arrival at Platform”,发车时间的关键字为“to MOVING”,速度等级的关键字为“SpeedProfileType”,速度等级要针对“Exit ATO”进行排除,结合站台编号,将记录下的每个时间进行计算,得出分析结果。如表1所示为某次测试的部分结果。
表1 分析结果(不同速度等级下的区间旅行时间)
通过列车性能分析功能,可以快速知道不同等级下不同列车在不同区间的旅行时间,为时刻表编制提供依据。
2.4.2 车地通信质量分析
车地通信质量分析,在现有的信号系统日志里面缺少实时测试车地通信质量的日志,需要另外编制一个小程序,持续ping列车,并记录ping包测试结果,结果需包含时间戳,结合NMS日志(记录列车通信时关联的AP)和列车运行日志的数据,综合分析,得出列车运行测试期间的总丢包率、在停靠站台的丢包率和通信丢包关联的AP等数据,如表2所示为6月25日测试的站台中丢包率较高的几个。
表2 分析结果(站台丢包率)
以上结果可以得出各个站台的丢包率情况,需要对丢包率高的站台进行整改,减少站台丢失通信产生的故障。
2.4.3 其他日志统计分析
ATS日志、NMS日志中记录了大量不影响行车的报警信息,AP信号强度通过列车漫游测试,记录AP的信号强度日志文件。通过使用panda工具包,可以快捷地实现日志文件读取,分类统计分析,并将结果以总、分方式统计,输出到电子表格。
2.4.4 PMI日志查询分析
故障日志分析是通过联锁设备重启时出现重启的关键词,找到特定行的报警信息,进行提取,然后将该行关键信息输出,完成日志的分析。将设备维护手册里的报警日志含义和处理建议进行整理,保存到一个文件里。在分析故障日志后,可以复制其中的关键词,进行查询。再通过查询功能,查询报警信息行里面的关键字进行查询,得出故障排除的建议。图3为软件操作界面,下半部分可以导入日志文件分析,上半部分可查询日志中关键词的含义及故障排除建议。
图3 PMI日志分析界面及结果
3 日志分析系统应用成果
通过对列车运行性能分析,方便地收集到列车在各个区间运行准确的旅行时间,利用这些旅行时间对时刻表进行了调整,减少了原来预估时间不准导致的预报站不准的问题,大大提高了广播预报站的准确性。也可以根据地铁高峰期和非高峰期的特点,在非高峰期乘客少,上下车时间明显比高峰期的少。组织人员测试高峰期与非高峰期乘客上下车的时间,大部分车站均可压缩5~10 s的停站时间,通过适当压缩停站时间,将减少的停站时间,根据测试到不同区间不同等级的运行时间调整到区间运行时间,让更多的区间运行在低的速度等级下。实现在不降低全线旅行速度的前提下,优化时刻表,实现了节能目标。
通过每月对ATS报警信息的统计分析,持续跟踪不同报警的数量发展情况,发现了部分区段车地通信的丢失报警较多、部分列车丢失信标较多等问题,指导现场维护人员及时进行处理,减少了故障的发生率。通过对车地通信质量分析,发现并解决了梅景上行站台、深圳湾公园站下行站台、怡海上行站台列车通信丢包率高的问题,消除了这些站台车地通信丢失导致轨道关闭的故障隐患。
通过NMS日志分析和AP信号强度分析,发现了个别AP与列车关联次数正常和信号不强等问题,进行及时重启或更换,保障设备的稳定运行。
PMI日志查询分析工具的使用,一线工班的维护人员也可以快速判断出设备故障的原因和故障处理的建议,及时正确处理PMI联锁故障。
4 结论
Python程序设计语言简单易学,有大量第三方工具包可以直接使用,简化了程序设计过程。对于非计算机软件开发专业的设备维护人员也能快速上手,将设备维护中积累的日志分析经验,通过编写软件来实现日志分析的自动化,提高日志分析效率,及时发现设备存在的故障隐患,减少设备故障数量,更好地保障设备正常稳定运行。也可以利用计算机处理速度的优势,深度挖掘大量日志数据中有用的数据,为生产提供服务。