基于
Kafka
JavaScript
信号系统
智能
数据
采集
处理
方法
总第 484 期2023 年第 4 期基于 Kafka 和 JavaScript 的城轨信号系统智能运维数据采集与处理方法谭力天,李靖兰,杨将(湖南中车时代通信信号有限公司,湖南 长沙 410005)摘要:在城市轨道交通(简称“城轨”)信号系统的传统运维过程中,运维数据采集和处理的效率较低、数据间缺乏关联性且及时性差。为了将城轨信号系统的各种专业运维数据转化为具有通用格式、可读性强且标准化的信息资源,从而为后续的数据分析和信息融合提供数据基础,文章提出一种采用 Kafka 数据采集和JavaScript(JS)脚本数据处理的方法。其首先通过 Kafka 系统集中采集不同信号专业的运维数据;然后,通过动态加载 JS 脚本文件,自动处理并存储所采集的运维数据;最后,以 ZC、VOBC 信号系统运维数据为例进行试验验证。结果显示,与人工数据采集和处理方式相比,该方法缩短了 50%的处理时间,且处理结果与人工采集的相一致,证明了本文的数据采集和处理方法能够有效实现城轨智能运维系统数据的通用化、可读化和标准化。关键词:智能运维;信号系统;数据采集处理;城市轨道交通;Kafka 数据采集中图分类号:U284.5 文献标识码:A 文章编号:20965427(2023)04010506doi:10.13889/j.issn.20965427.2023.04.016A Method of Data Collection and Processing for Urban Rail Transit Intelligent Operation and Maintenance Based on Kafka and JavaScriptTAN Litian,LI Jinglan,YANG Jiang(Hunan CRRC Times Signal&Communication Co.,Ltd.,Changsha,Hunan 410005,China)Abstract:In the traditional operation and maintenance process of urban rail transit signal system,the collection and processing efficiency of operation and maintenance data is low.There is also a lack of correlation among data,and the timeliness is poor.In order to transform the operation and maintenance data of various professions in urban rail signal system into standardized information resources with a universal format and good readability,and provide a foundation for subsequent data analysis and information fusion,the paper proposes a method using Kafka data collection and JS script data processing.It collects operation and maintenance data of different professions in signaling through the Kafka system,and then automatically processes and stores the collected data by loading JavaScript(JS)files dynamically.The ZC and VOBC signal system operation and maintenance data are used as examples for verification.The results of verification show that compared with manual data collection and processing methods,this method shortens the processing time by 50%,and the results are consistent with the results of manual methods,proving that the data collection and processing method proposed in this paper can effectively achieve universal format,good readability and standardization of intelligent operation and maintenance data of urban rail transit system.Keywords:intelligent operation and maintenance;signal system;data collection and processing;urban rail transit;Kafka data collectionRAMS技术收稿日期:20230213作者简介:谭力天(1989),男,工程师,主要从事城市轨道交通信号关键技术方面的研究工作。基金项目:湖南省重点研发计划项目(2022GK2018)1052023 年第 4 期0引言“智能运维安全体系”作为中国城市轨道交通协会发布的 中国城市轨道交通智慧城轨发展纲要 中八大体系之一,是中国城市智慧城轨的重要组成部分,是轨道交通智慧化发展的重点方向之一1-3。轨道交通智能运维以系统关键设备为目标4,在运维过程中对设备进行全生命周期控制。文献 5 主要描述了依托智慧城轨行业目标,并融合城市轨道交通(简称“城轨”)关键设备(如信号系统)智能运维与城轨综合智能运维,通过采用大数据、5G、AI和物联网等现代通信和信息技术,实现城轨信号系统运营、维修和管理等多维度业务的智能化,整体提升系统的安全性和可靠性,降低运维成本,提高运维效率,为绿色出行提供保障。当前,在实际运营维护过程中存在的问题如下:(1)预防修和故障修多,预知修少;(2)人工作业多,运维效率低;(3)运维数据细化不足,监视信息不全面,数据间缺乏关联性;(4)跨专业管理困难、复杂,缺少统一处理和分析的综合性运维管理平台;(5)运维透明度不足,及时性差,影响服务质量并可能带来安全隐患 6-7。为实现城轨信号系统运维多系统、跨专业的通用化、可读化和标准化,诸多专家、学者开展了相关研究。文献 6 提出了一种基于大数据分析和云平台等现代信息化技术的数据采集与处理方案,其侧重于数据积累层面,主要是数据的统一标准定义、数据积累,包括对管理数据、运营数据、维护数据等的统一格式定义与存储,为利用大数据理论挖掘信息价值奠定基础,但其没有描述具体的实现方式和形式。文献 8 提出了一种由大数据平台承担数据采集、存储、分析、挖掘及展现等基本功能的方案,但没有给出具体的数据采集方法。可以看出,将城轨信号系统不同专业的运维数据转化为具有通用格式、可读化、标准化的信息资源库,为后续的数据分析与信息融合提供数据基础,该转化过程是智能运维系统的重要组成之一,而其具体实现方式值得研究。为此,本文提出了一种基于Kafka数据采集和JavaScript(JS)脚本数据处理的城轨信号系统智能运维数据采集与处理方法。其通过Kafka系统集中采集不同信号专业的运维数据,然后通过动态加载JS脚本文件来自动处理并存储所采集的运维数据,实现运维数据的通用化、可读化和标准化。1智能运维系统数据流在将城轨不同信号专业运维数据转化为具有通用格式、可读、标准的信息资源库的过程中,城轨信号系统运维数据流向是从不同信号专业的分散状态转换为智能运维系统的集中状态。1.1数据流构成城轨信号系统与智能运维系统的数据流如图1所示。目前,实际数据流是由城轨信号系统运维数据端发送到数据采集服务器并经数据处理后再发送到智能运维系统的。涉及的信号系统主要有车载控制系统(vehicle on board controller,VOBC)、计算机联锁系统(computer interlocking,CI)、区域控制器系统(zone controller,ZC)和列车自动监控系统(automatic train supervision,ATS)。1.2数据采集架构信号系统数据采集架构包括数据层、通信层和服务层,如图2所示。数据层包括各个信号系统输出的运维数据集;通信层作为各个信号系统运维数据的发送端,通过不同的关键字(如“Topic-VOBC”)发送对应数据,采用TCP通信协议实现数据传输;服务层为数据采集的服务器,根据不同关键字对采集数据进行管理和存储,以供后续消息消费者获取数据。图 1 城轨信号系统与智能运维系统数据流Fig.1Data flow chart of urban rail signal system and intelligent operation and maintenance system图 2 信号系统运维数据采集架构Fig.2Structure for operation and maintenance data collection of signal system1062023 年第 4 期谭力天 等:基于 Kafka 和 JavaScript 的城轨信号系统智能运维数据采集与处理方法1.3数据特点城轨信号系统持续运营时间长,且要求长时间不间断运行;设备种类繁多;关联接口多,设备间耦合性较高。信号系统的智能运维数据涉及多个不同的子系统,不仅需要高度的数据集中,以实现多对一的数据传输,同时还需要满足实时通信和离线通信的需求,涉及不同协议结构和组成的数据通信内容。由于涉及几十套不同系统设备,数据峰值流量可达2050 MiB/s,因此对系统数据的采集与处理提出了较高的要求。具体数据通信信息各不相同,包括状态、报警、事件等多种内容,且涉及不同的子系统,如VOBC、CI、ZC和ATS等。为了使智能运维分析具有高效、统一的数据基础,结合信号系统特点,相应的数据采集需要实现统一多对一数据集中,数据处理结果需要满足多系统、跨专业统一格式和统一标准,以便维护人员能够识别和使用。2数据采集与处理针对城轨信号系统统一且多对一的数据流,本文采用大数据方式收集运维数据,实现多对一的集中传输(图3),便于后续的处理和存储等操作。智能运维系统与信号系统之间通过冗余网络进行数据通信,利用车-地无线传输系统和地-地有线传输系统完成信息的发送和接收。在本文的设计中,分别在信号系统端和智能运维端部署了Kafka系统。其中,信号系统端负责发送运维数据,而智能运维端则负责接收相应的数据。针对大量不同种类数据,在数据处理时根据可灵活配置的处理架构,动态加载不同脚本文件实现不同类型设备数据的解析,而无需修改相应的软件,降低了不同系统数据处理的耦合性,从而提高了系统的可扩展性。JS脚本文件是一种可扩展的标志语言,其提供了一种可扩展的标准来描述数据9-10。即在不同子系统进行数据处理过程中,只需要根据各自协议的规范来修改对应脚本文件描述即可,其在减少工作量的同时,提高了数据处理的便捷性、兼容性和效率。2.1基于Kafka的数据采集方式根据数据采集时间,信号系统数据采集方式可分为两种:(1)实时采集。信号系统实时、周期性地向智能运维系统发送数据信息。(2)离散采集。信号系统在正常运营时段不允许与智能运维系统进行通信;当运营结束后,智能运维系统向信号系统发出请求,在信号系统允许的前提下获取相应的离线数据信息。本文采用实时采集方式,根据系统特性,选择Kafka系统进行数据传输。2.1.1大数据通信方式Kafka是一种高吞吐量的分布式发布订阅消息系统,具有如下特性11:(1)即使对于以TiB计量的消息存储,Kafka也能保持长时间的稳定性能;(2)即使在普通的硬件上,Kafka也能支持每秒处理数百万条消息;(3)支持离线数据处理和实时数据处理;(4)支持不同消息分区,并保证消息的顺序传输;(5)易于在线扩展。一个典型的Kafka包含一个Zookeeper集群,通过Zookeeper 管理集群配置及服务协同。其包含若干Producer(生产者),用于向Kafka发送数据消息;同时,也包含若干Consumer(消费者),用于接收Kafka中的消息。每条发送到Kafka集群的消息都有一个类别,被称为一个Topic。Kafka支持多个Topic,用户只需指定消息对应的Topic,即可发送或接收数据,而不必关心数据存储在何处。本文以一类信号系统为基准,对应设置一个Topic。通过大数据Kafka系统,在信号系统端将对应的运维数据发送到该Topic,实现数据的采集与集中。在智能运维端,只需要以不同的Topic接收信息,即可获得对应信号系统的运维数据。例如,ZC 系统和 VOBC 系统的Topic分别为Topic-ZC和Topic-VOBC。通过这种简单而高效的方式,实现不同信号系统的数据采集。2.1.2通信内容城轨信号系统中的数据内容种类较为丰富、多样和典型,其主要的运维信息如下:(1)告警信息。其主要包括列车的故障报警。此类信息为触发式信息,采用二进制数据,当系统故障时输出,处理时需要对数据进行分类、清洗、筛选与解析。(2)设备逻辑信息。其主要包括列车的级别、模式、输入输出信息、速度、方向及其他运行信息。此类信图 3 智能运维数据采集与处理示意Fig.3Schematic diagram of intelligent operation and maintenance data collection and processing1072023 年第 4 期息为周期式信息;其采用二进制数据,处理时需要对数据进行清洗、筛选与解析。(3)运营信息。其主要包括列车停车、折返、站台作业、目的地和停站等信息。此类信息为周期式信息,处理时需要对数据进行分类、清洗、筛选与解析。表1为VOBC发送到智能运维系统的运营信息示例。(4)状态信息。其主要包括与ATO、DMI等其他设备的通信状态、设备硬件状态和版本信息。此类信息为周期式信息,处理时需要对数据进行分类、清洗、筛选与解析。表2示出VOBC发送到智能运维系统的状态信息示例。2.2利用JS脚本文件的数据处理方式本文针对不同子系统的结构和特性,提出了一种动态加载相应子系统JS脚本文件的方法,以实现数据处理。具体来说,系统会动态加载不同设备对应的JS脚本文件。所有的脚本文件都必须满足统一的要求,即其数据处理结果必须具有统一的格式和标准。JS是一种高级脚本语言,主要用于网络应用。其具有动态性和基于对象的特性12,同时可以实现跨平台开发,即不受操作平台的限制。因此,JS已经被广泛用于网络应用开发。通过使用JS脚本,可以对数据捕捉和应用服务进行解耦,使得数据处理更加灵活和定制化。城轨信号系统智能运维具有涉及多个不同子系统且数据类型、协议等不同的特点,而这与JS脚本语言的特性相契合。图4示出智能运维数据处理流程,在采集到ZC、VOBC等系统的运维数据后,首先进行分类、清洗和筛选,以获得可信的、完整的、类别清晰的数据流;然后,通过JS脚本文件,实现对数据的解析和转换。(1)对不同数据进行分类,根据采集数据中不同的Topic和JS脚本文件,进行设备类型信息分类;然后,根据不同的消息类型,可以对告警信息和状态信息等进行内容分类。(2)通过对信息类型、数据格式、信息完整性和信息准确性进行校验,完成数据去重、去伪和去错的清洗与筛选处理。(3)通过脚本文件配置信息与运维数据结合,完成从运维信息到通用、可读、标准信息的解析和转换。由图4可以看出,对于同样的运维数据流0 xAA、0 x02和0 xAA,ZC系统与VOBC系统具有完全不同的含义。脚本文件定义了运维信息的数据结构和数据参数名。在处理数据时,根据不同系统的数据结构,将数据参数名与数据流相结合。对于ZC系统与VOBC系统,通过这种方式,可以将这两个涉及不同专业领域、相互间难以处理和理解的二进制数据转换为“参数名:数据值”的形式,从而得到具有通用格式、可读和标准的数据信息,为智能运维分析提供数据支持。JS脚本文件详细描述了对应某一类型信号系统的数据结构和组成,可以根据不同类型的信息(如告警信表 1VOBC 发送到智能运维系统的列车运营信息帧Tab.1Train operation information frame sent to intelligent operation and maintenance system by VOBC信息帧名称 msg_id TrainRunDir StopInPlatfSta RecomSpeed ReverseType ReverseErrNo StopPointAttri StopSecAttri描述消息ID列车运行方向列车停稳停准状态推荐速度(km/h)折返类型折返故障号当前停车点属性当前停车区域属性表 2VOBC 发送到智能运维系统的设备状态信息Tab.2Device status information sent to intelligent operation and maintenance system by VOBC设备状态信息名称 msg_id ATP_ATOComFault VOBC_DMIComFault VOBC_RedCommFault VOBC_BlueCommFault AtpPlugPowerOnSelfChk AtpAppPowerInit AtpAppInitErrNo描述消息IDATP与ATO通信故障VOBC与DMI通信故障VOBC与红网通信故障VOBC与蓝网通信故障ATP插件上电自检状态ATP应用初始化状态ATP应用初始化故障码图 4 智能运维数据处理流程Fig.4Process of intelligent operation and maintenance data processing1082023 年第 4 期谭力天 等:基于 Kafka 和 JavaScript 的城轨信号系统智能运维数据采集与处理方法息、状态信息等)分别解析数据流中对应的数据。对于顺序结构的数据,将参数名与数据进行一对一的解析并输出;对于循环结构的数据,以循环标志头与标志尾为控制,根据循环数量将参数名与数据进行循环对应输出。也就是说,当解析到循环标志尾时,如果已经达到循环数量,就结束循环并继续顺序解析;如果还未达到循环数量,则将对应的参数名跳转至标志头处进行循环,继续与数据进行对应解析,直到循环结束。例如,顺序结构的“年、月”解析后为“TimeYear”:53和“TimeMonth”:1,即参数名与数据一一对应解析。而对于循环结构的“联锁数量-联锁ID-联锁ZC通信状态”,解析后为“Cinum”:4,“CiInfo”:“CiID”:15361,“ZcCiStatus”:170,“CiID”:15362,“ZcCiStatus”:170,“CiID”:15363,“ZcCiStatus”:170,“CiID”:15364,“ZcCiStatus”:170 ,根据循环数量“Cinum”为 4,参数名“CiID”和“ZcCiStatus”循环4次,与实际数据对应进行解析。3数据采集处理工具实现该城轨信号系统智能运维数据采集处理工具主要由Kafka功能模块和JS动态解析功能模块组成。Kafka功能模块主要负责数据采集,而解析功能模块则负责数据处理。当工具运行后,首先启动Kafka功能模块。针对不同的系统,可以在Kafka中创建不同的Topic,并将每个Topic的名称作为不同信号系统的唯一标识,以实现对不同信号系统的统一管理。系统可以获取所有的Topic 列表(TopicList)。例如,可以将 VOBC 系统的Topic设置为“VOBC”,ZC系统的topic设置为“ZC”,以便记忆和管理。一旦Topic创建成功,其会被自动保存,且每个topic只需创建一次。一个终端既可以是Consumer,也可以是Producer。在本文中,信号系统端工具负责数据发送,智能运维端工具负责数据接收。在启动Producer后,可以根据不同Topic的名称将数据写入系统数据集,以实现数据发送。启动Consumer后,可以通过Topic名称获取对应的数据,实现数据接收。Producer与Consumer只需要根据Topic向系统发送或接收数据,而不需要知道对方的存在。这降低了系统的复杂度并提高了系统的可扩展性,同时可以实现灵活的数据通信。信号系统可以设置数据的时效性,以满足离线和实时通信的不同需求。对于包含多个子系统的城轨智能运维系统而言,二者需求具有相似性。Consumer接收数据后,通过数据分类、清洗和筛选,系统工具可以获得VOBC和ZC等不同系统可信且有效的原始数据流。系统工具通过动态加载与Topic对应的JS脚本文件,实现对数据的处理,从而获得多系统、多专业统一的具有通用格式、可读、标准的数据。4实例分析为验证本文所提方法及工具的有效性,将本工具分别部署在ZC系统和VOBC系统的运维数据端,并部署在统一的服务端的数据采集服务器上。在ZC系统运维数据端,首先启动Zookeeper 和Kafka,然后将ZC信号系统运维数据通过 Kafka 系统发送到服务端“Topic-ZC”。在服务端,本工具的解析模块部分通过选择对应的测试系统,动态加载相应的ZC系统对应JS脚本,对“Topic-ZC”中存储的系统数据进行处理。如图5所示,ZC系统对应信息经过采集、处理后,其可读信息具有“数据描述+数据内容”的标准格式。例如,“TimeYear:53,TimeMonth:1,TimeDay:17”表示此包数据为2023年(以1970年开始计数)1月17日的数据。后续信息包括了板卡数量(如“BoardBox:6”,表示板卡数量为6)及各个板卡的状态、版本、通信对象状态、计轴状态、列车状态等信息。ZC运维数据从ZC系统发出,经数据采集系统通过“Topic-ZC”发送到采集服务器。然后,通过分类、清洗和筛选,将该ZC运维数据与动态加载的JS脚本文件进行解析,并转换为如图5所示的通用、标准且可读的数据,供智能运维系统进行后续应用。在服务端,本工具解析模块部分通过选择对应的测试系统,动态加载相应的VOBC系统对应JS脚本,对“Topic-VOBC”中存储的系统数据进行处理。图6示出VOBC系统对应信息经过采集、处理后的可读信息,其包括 ATO 运 营 信 息(msg_id:206)和 列 车 状 态 信 息图 5 解析 ZC 运维数据Fig.5Parsing ZC maintenance data图 6 解析 VOBC 运维数据Fig.6Parsing VOBC maintenance data1092023 年第 4 期(msg_id:203)两类VOBC信息包。这些信息同样具有“数据描述+数据内容”的标准格式。例如,“ServiceNo:14,LineNo:4”表示服务号/表号为14,线路编号为4。通过在ZC系统和VOBC系统的运维数据端以及服务端数据采集服务器上分别部署本工具,可以对ZC和VOBC系统的原始二进制运维数据进行多对一采集与处理。处理后的数据以一系列“参数名:数据值”的通用、标准、可读格式呈现,实现了两个系统、跨专业的数据层面的通用化、可读化和标准化数据解析。这样使得两个系统不同结构、代表不同含义的原始数字信息转换为智能运维系统后续可以有效识别的通用、可读、标准的信息,为智能运维系统进行后续统一的综合问题分析、故障预警等工作做好了数据层面的准备。在1 h运维数据量的采集和处理任务上,本文所提出的方法相比传统的人工采集方式,效率得到显著提高。如表3所示,原本需要20 min的处理时间,现在只需10 min,时间缩短了50%,且处理结果与人工采集方式的相一致。5结束语为解决城轨信号系统传统运维过程中,运维数据的采集和处理效率较低、数据间缺乏关联性、及时性差的问题,本文提出了一种基于Kafka和JS的城轨信号系统智能运维数据的采集与处理方法。该方法通过大数据技术实现了从信号系统到智能运维系统的多对一数据采集;同时,通过动态加载JavaScript脚本文件的方式,实现了灵活的数据处理,将城轨信号系统不同专业的运维数据统一转化为通用、可读、标准的信息,为后期跨专业问题的综合分析与处理提供了依据。最后,本文以ZC和VOBC信号系统为例进行了测试,成功地将两个系统、跨专业的不同格式的原始二进制运维信息在数据层面进行了通用化、可读化和标准化的数据解析,验证了本文方法的可行性。下一步将针对城轨智能运维系统非信号系统专业,如车辆、网络等专业进行数据采集与处理研究,实现城轨系统全面的数据信息资源化。参考文献:1佚名.中国城市轨道交通智慧城轨发展纲要J.城市轨道交通,2020(4):8-23.Anon.Outline of smart urban rail transit development in Chinas urban rail transitJ.China Metros,2020(4):8-23.2谭文举.轨道交通全自动运行条件下运营场景设计及智能运维研究D.北京:北京交通大学,2020.TAN W J.Operation scenario design and intelligent maintenance under fully automatic operation in urban rail transitD.Beijing:Beijing Jiaotong University,2020.3雷成健,张超,吕浩炯,等.智慧城轨下智能列车运行技术的研究与展望J.现代城市轨道交通,2020(8):38-44.LEI C J,ZHANG C,LYU H J,et al.Study and prospect of operation technology for smart train in transit systemJ.Modern Urban Transit,2020(8):38-44.4路向阳,吕浩炯,廖云,等.城市轨道交通全自动驾驶系统关键装备技术综述J.机车电传动,2018(2):1-6.LU X Y,LYU H J,LIAO Y,et al.A review of key apparatus of urban rail transit full automatic operation systemJ.Electric Drive for Locomotives,2018(2):1-6.5冯江华.轨道交通装备技术演进与智能化发展J.控制与信息技术,2019(1):1-6.FENG J H.Technical evolution and intelligent development of rail transit equipmentsJ.Control and Information Technology,2019(1):1-6.6牛涛,张辉.城市轨道交通智能运维系统方案研究J.铁道运输与经济,2022,44(4):99-105.NIU T,ZHANG H.Research on intelligent operation and maintenance system scheme of urban rail transitJ.Railway Transport and Economy,2022,44(4):99-105.7杜心言.轨道交通智能运维与创新平台建设J.现代城市轨道交通,2019(6):1-9.DU X Y.Construction of intelligent operation and maintenance and innovation platform for rail transitJ.Modern Urban Transit,2019(6):1-9.8陆鑫源,朱莉,张郁,等.城市轨道交通信号智能运维系统应用与实践J.铁道通信信号,2020,56(3):82-86.LU X Y,ZHU L,ZHANG Y,et al.Application and practice of intelligent signal operation and maintenance system for urban rail transitJ.Railway Signalling&Communication,2020,56(3):82-86.9彭文韬.基于XML配置管理的数字多用表检定软件设计与实现J.中国管理信息化,2017,20(8):143.PENG W T.Design and implementation of digital multimeter verification software based on XML configuration managementJ.China Management Informationization,2017,20(8):143.10 黄思远.基于XML的JS页面生成系统的设计与实现D.北京:北京邮电大学,2016.HUANG S Y.The design and implementation of JavaScript web page generating system based on XMLD.Beijing:Beijing University of Posts and Telecommunications,2016.11 徐玉景.基于Kafka的全链路流数据处理平台的设计与实现D.济南:山东大学,2018.XU Y J.Design and implementation of Kafka-based full-link stream data processing platformD.Jinan:Shandong University,2018.12 管衡.JavaScript恶意代码检测相关技术研究D.南京:南京邮电大学,2020.GUAN H.Research on JavaScript malicious code detection technologyD.Nanjing:Nanjing University of Posts and Telecommunications,2020.表 31 h 运维数据量采集和处理耗时对比Tab.3Comparison of 1h O&M data collection and processing time系统ZCVOBC人工耗时/min146基于Kafka 和JS 的数据采集与处理方法耗时/min64110