掌桥专利:专业的专利平台
掌桥专利
首页

技术领域

本发明主要涉及城市轨道交通技术领域,具体涉及一种城轨设备智能在线监测方法及系统。

背景技术

城市轨道交通作为现代化交通体系中载客量大、速度快、绿色环保等级高的交通方式,每天客流量高达几百万人次,伴随运营规模的扩大,为保障线路安全可靠运行,避免发生安全事故,需要采用一种智能化的城轨车辆运维方案,实现对城轨列车关键系统和部件运行状态的实时监测。但由于城市轨道交通是一个复杂的系统,涉及车辆、信号、供电、通信等多个系统,包括众多子系统及产品部件,且在线监测的设备数据具有变量多、周期短、变化小、时效性强等特点,因此对系统的监测性能提出了较高要求。

传统监测方式将实时数据写入关系型数据库,监测页面定期查询关系数据库中的最新数据实现监测展示,这种将数据写入数据库,然后进行离线分析、处理、展示的方式,查询和写入效率低下,存在性能瓶颈,不能及时将监测最新值更新至前端显示,也不便于对监测值的运算、统计。

传统监测方式前端监测图元与监测数据通过代码方式强绑定,当监测逻辑发生变化或者新增了监测图元后,需要需要修改调整监测逻辑和前端代码,维护复杂。

另外,工业设备数据采集频率高、点位多,导致数据量大,所需数据存储空间大。当监测设备数量增加时,数据量及存储空间将会呈线性增长,传统的关系型数据库存储空间有限,历史数据查询、检索、计算效率低下。

传统监测的项点(监测点位)值是根据业务逻辑规则编写代码运算得到,监测逻辑发生变化或者新增监测项点时候,需要修改监测点位值的运算逻辑代码实现,增加了代码维护工作量,不利于业务变更或业务扩展。

发明内容

本发明要解决的技术问题就在于:针对现有技术存在的技术问题,本发明提供一种提高系统处理能力和减少实时数据前端推送压力,实现毫秒级实时数据在线监测的城轨设备智能在线监测方法及系统。

为解决上述技术问题,本发明提出的技术方案为:

一种城轨设备智能在线监测方法,包括步骤:

1)获取各类城轨设备的实时数据并解析,并将解析后的数据按标准格式写入消息中间件的数据解析通道;

2)将数据解析通道中的监测设备及测点与数据库中已建模的监测设备及测点进行比较;如果数据库中配置了此监测设备及测点,则将此监测设备及测点值写入消息中间件的数据清洗通道;

3)将数据清洗通道中的监测设备的测点值与数据库中已建模的监测设备的测点值进行比较;如果两者的测点值不同,则将数据库中的监测设备的测点值更新为数据清洗通道中的监测设备的测点值,并将变化的监测设备的测点和测点值写入内存数据库的跳变频道;

4)获取内存数据库的跳变频道的跳变测点数据,将跳变测点数据按标准格式写入内存数据库对应的主题分发频道;其中跳变测点数据为变化的监测设备的测点和测点值;

5)根据主题、项点与测点的关联关系,针对每一主题创建一个线程监听内存数据库中对应的主题分发频道,获取项点关联测点的跳变数据,将获取到测点的跳变值作为输入参数值,执行测点所属项点的逻辑表达式,计算得到所属项点值,并将项点值写入内存数据库的前端订阅频道;

6)前端订阅频道将对应的主题项点信息推送至监测主题页面;所述主题项点信息包括项点值;

7)监测主题页面遍历每一条主题项点信息,获取对应项点关联的图元节点元素,对项点关联的图元节点元素设置项点值,实现监测项点值在图形页面相应图元上的动态展示。

优选地,在步骤7)中,先进行图形页面的绘制,再通过配置监测图形的编号,配置完成后形成图形监测的预定格式文件,再下载至监测主题页面进行显示。

优选地,在步骤7)中,在图形中绑定监测项点ID,通过数据包驱动和图形驱动,将监测项点值推送至图形页面的指定图元,并根据配置的规则将项点值渲染到对应图元上。

优选地,所述预定格式文件为SVG文件。

优选地,步骤4)中的跳变测点数据在写入内存数据库对应的主题分发频道的同时,也同步写入至时序数据库;以及步骤5)中的项点值写入内存数据库的前端订阅频道的同时,也同步写入时序数据库。

优选地,步骤5)中,逻辑表达式为定义的一套逻辑运算规则运行片段,该规则接收一个或多个测点值作为输入参数,通过对接收的测点值执行逻辑运算得到一个输出值。

本发明还公开了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序在被处理器运行时执行如上所述方法的步骤。

本发明进一步公开了一种城轨设备智能在线监测系统,包括相互连接的存储器和处理器,所述存储器上存储有计算机程序,所述计算机程序在被处理器运行时执行如上所述方法的步骤。

与现有技术相比,本发明的优点在于:

1、本发明采用监测数据存储和监测数据实时推送展示分离方式处理监测数据,数据存储和数据实时推送采用不同线程异步执行,数据推送线程从消息中间件读取到采集的监测数据后,在内存数据库中对测点值进行分析、计算和处理后,将处理后的结果写入内存数据库的发布通道,监测值直接由内存数据库推送前端监测显示页面,不在关系数据库上进行存取操作,提高了系统的性能;而对于前后两个时间点接收到的测点值未发生变化的情况,则只对接收到的数据进行存储操作,而不在内存数据库中进行运算和推送前端处理,提高系统的处理能力和减少实时数据前端推送压力,实现了毫秒级实时数据的在线监测。本发明通过借助消息中间件和实时数据处理引擎对监测数据进行上述处理和展示,取代数据的存盘和读取分析和展示,实现了在高频率和大数据量情况下,系统能够在一个数据接收周期内将所有测点当前的最新值实时更新至前端显示的监控效果,具备对毫秒及数据的接收、处理、监测展示能力。

2、本发明开发逻辑表达式计算引擎,项点值的计算逻辑通过配置表达式来实现,将接收到测点值作为参数传入项点的逻辑表达式中进行运算得到项点值,当项点业务规则改变或者增加项点类型时,只需要在配置中修改项点运算逻辑表达式或者新增项点运算逻辑表达式即可,而不用修改软件代码,维护简单,具备灵活性和扩展性。

3、本发明采用SVG绘制组态图形,在图形中绑定监测项点ID,通过数据包驱动和图形驱动,将监测项点值推送至前端图形的指定图元,并根据配置的规则将项点值渲染到图元上,监测项点增加或者监测主题增加,只需要配置主题项点和SVG组态图形即可,而不用修改软件代码,易于扩张。也就是说,将监测主题图形和监测项点通过配置方式绑定,而不是通过代码方式绑定,实现了图元和项点的解耦,当业务横向扩展,增加监测主题时,只需绘制监测图元和在数据库中配置图元的项点即可,增强了系统的扩展力。

4、本发明采用树形结构定义数据模式,以从ROOT节点到叶子节点的路径来命名一个时间序列,时间序列包含时间戳、数据点,将监测数据测点作为时间序列,一个时间戳的测点值作为数据点。在插入数据时,一组对齐序列的时间戳列在内存和磁盘中仅需存储一次,而不是每个时间序列存储一次;查询数据时,可以对于每一条时间序列单独查询。

5、本发明采用时序数据库代替传统的关系型数据库和 NoSQL数据库,显著提高了工业设备时序数据的写入和查询效率,从分钟级提升到秒级,带来更好的用户体验;采用时序数据库基于列存储,降低了存储空间,提高了数据存储量,能够满足数据量持续增长的需求。

附图说明

图1为本发明的监测方法在实施例的流程图。

图2为本发明中的数据实时推送处理时序图。

图3为本发明中的图形组态设计流程图。

具体实施方式

以下结合说明书附图和具体实施例对本发明作进一步描述。

如图1所示,本发明实施例的城轨设备智能在线监测方法,包括以下步骤:

1)数据采集及解析处理

基于约定的通信协议,实现城轨各类工业设备的实时数据采集及解析,将解析后的数据按JSON格式写入消息中间件的数据解析通道(约定为dtu通道),为后续数据清洗提供统一标准化的数据格式。

其中写入消息中间件的数据格式如下:"{时间:值,系统:值,监测设备号.测点1:值,监测设备号.测点2:值,监测设备号.测点3:值}";

其中JSON的KEY格式为:监测设备.测点,Value为解析后的测点值;JSON对象中包含了数据时间、监测设备及监测点位实时值。数据样例如下:

{"lineCode":"003","sysType":"DCS","HQZS13SW02_P4.isUse":"-1","HQZS13SW02_P4.speedState":"-1","stamp":"2023-06-09 14:23:00:028","HQZS13SW02_P4.linkState":"-1","HQZS13SW02_P4.portState":"-1"}。

2)数据清洗处理

实时监听数据解析通道(dtu通道)中的输出值,将监听到的设备及测点与数据库中已建模监测设备及测点(需要进行实时监控的设备及状态点位)进行比较;如果数据库中配置了该监测设备及测点,则将监听到的监测设备及测点值写入消息中间件的数据清洗通道(约定为dtd通道);其中写入dtd通道的数据格式与写入dtu通道的数据格式相同。

由于通信协议中约定的各工业设备的各状态点位的状态码(良好、故障、待测等)值可能不统一,需要判断待写入dtd通道的测点值是否需要统码。对于需要统码的测点,将接收到的测点值统码为数据库中配置的标准码位值后再写入dtd通道。

3)数据跳变处理

3.1、缓存数据库中建模的监测设备及测点,并赋初始值;

3.2、监听消息中间件的数据清洗通道(dtd通道),读取dtd通道中的监测设备的测点值(JSON格式),将读取的监测设备的测点值和缓存的监测设备的测点值进行比较;如果值不相同(测点值发生了变化),则执行以下处理:

3.2.1、更新缓存的测点值为监听到的测点值,将缓存跳变数据(变化后的测点及其最新值);

3.2.2、将跳变数据按JSON格式写入内存数据库的跳变频道(约定为jump频道);

写入内存数据库的数据格式为:"{跳变时间:值,跳变ID:监测设备号.测点号,跳变值:值}",数据样例如下:{"stamp":"2022-11-07 15:39:55:000","jumpId":"HQZS13SW02_P4.portState","jumpValue":"false"};

3.2.3、将跳变数据插入时序数据库,供后续项点运算服务初始化读取使用,SQL语句样例如下:insert into root.WCU4149.jsjM9(timestamp,status) values(1667784720000,'0');

其中,root.WCUATP.WCU4149为监测设备,jsjM9为测点号,status为时序值;

3.3、对于参与项点对齐的测点,从dtd通道监听到的测点值不管是否发生了变化,都写入内存数据库的跳变频道(jump频道)和插入时序数据库。

4)主题分发处理

4.1、查询数据库,获取主题、项点与设备及测点的关联信息,一个主题(系统)包含多个项点(监测点位),每个项点关联一个或多个测点,主题、项点、测点的关联关系根据业务应用需求配置到数据库中;

4.2、订阅内存数据库的跳变频道(jump频道),获取跳变频道中的跳变测点数据,根据数据库中查询出的主题、项点、测点关联关系,将跳变测点数据(所属主题号、所属项点号、跳变ID(测点ID)、跳变值、时间)按JSON格式写入内存数据库对应的主题分发频道(tbr频道);

其中写入主题分发频道的数据格式为:{主题号:值,项点号:值,跳变ID:值,跳变值:值,时间:值},数据样例如下:

{"lineCode":"003","themeCode":"CS03_HQZ_ZCT_M1","itemCode":"15_LOGSEC_1231","jumpId":"303720a1b52c46b9abdaab292c664ed1","jumpValue":"false","stamp":"2022-11-07 15:39:55:000"}。

5)项点运算处理

5.1、根据主题、项点与测点的关联关系,针对每一主题创建一个线程监听内存数据库中对应的主题分发频道(tbr频道),获取项点关联测点的跳变数据,将获取到测点的跳变值作为输入参数值,执行测点所属项点的逻辑表达式(根据业务逻辑编写的计算规则),计算得到所属项点的值;其中所属项点的输出值可以为基本数据类型、也可以为JSON格式的字符串;

具体地,项点运算逻辑表达式样例如下:

str='';color1='';color2='';

if(@1=='1')color1='red';else if(@1=='2')color2='green';

str=str+"{\"signal1-path-fill\":\""+color1+"\",";str=str+"\"signal2-path-fill\":\""+color2+"\"}";return str;

执行项点运算逻辑表达式后输出项点值的样例如下:

str="{\"signal1-path-fill\":\"red\",\"signal2-path-fill\":\"green\"}";

5.2、将运算得到的主题项点值按JSON格式写入内存数据库的前端订阅频道(front频道),供客户端监测功能订阅获取主题项点的实时值。

其中写入front频道的数据格式如下:"{主题ID:值,项点ID:值,项点运算值:值,项点时间:值}";

5.3、将运算得到的项点信息(时间、项点值)写入时序数据库;其中设备为主题号,数值为项点值,SQL语句样例如下:

insert into root.THEME.003.CS03_STZ_SBF_M2(Time,X4) values (2022-11-08 11:24:52,'{"NAME": "信号设备室3","HJWD":"23.68","HJSD":"54.56"}')。

6)数据实时推送处理

6.1、进入监测主题页面后,客户端与服务器按照主题建立连接,进行管理,服务器端定时往客户端发送心跳信息;

6.2、主题连接建立后,订阅内存数据库的前端订阅频道(front频道),建立主题项点监听;

6.3、当数据服务有新数据往内存数据库的front频道推送时,服务器监督主题消息,按照连接管理,将front频道中实时数据推送至建立连接的客户端(监测主题页面);

其中数据实时推送处理时序如图2所示。

7)监测页面渲染处理

客户端监测主题(图形页面)接收到内存数据库的front频道推送过来的主题项点列表信息后,循环遍历项点列表中的每一条项点信息记录(由项点ID、项点值、时间、渲染方式组成的JSON字符串),在监测主题图形中通过项点ID号获取该项点关联的图元节点元素,按项点的渲染方式(填充、显隐、动画、设值、轮廓设置等操作)对项点关联的图元节点元素设置(作用)项点值,实现监测项点值在图形页面相应的图元上的动态展示。

如图3所示,图形组态技术方案分为组态制作、组态发布和组态运行三个部分,具体为:

组态制作:组态的图形使用SVG格式,采用通用的图形绘制VISIO工具进行信号监测界面的绘制,绘制完成后另存为SVG格式的文件,再通过Chrome的开发者工具配置监测图形的编号(编号唯一组成:线号.主题.设备类型.监控维度.设备编号),配置完成后形成图形监测的SVG文件。当然,前端SVG组态图形也可通过其他组态工具绘制替代。

组态发布:组态发布组件允许运维人员把制作的图形监测的SVG文件上传至服务器,并对其进行业务分类索引。系统前台可通过索引条件,下载至监测主题界面中进行显示。

组态运行:组态的运行分为信号数据驱动组件和前台图形驱动方案。信号数据驱动组件主要提供给系统终端的常连接服务,采用Websocket-server技术实现,该组件内部具有连接管理(1个系统终端可以按监控主题界面建立多个连接)和数据驱动(实时的监听Redis中topics中的信号数据,归类推送至相应的终端连接中)功能。前台图形驱动方案由Websocket-client模块、主题控制图形包模块和监测界面加载模块组成。Websocket-client模块允许主题监测界面打开或关闭一个连接。主题控制图形包模块具有本主题图形动画显示、事件功能。监测界面加载模块具有从组态发布组件获取监测图形SVG文件,动态切换界面图形功能。

本发明采用SVG绘制组态图形,在图形中绑定监测项点ID,通过数据包驱动和图形驱动,将监测项点值推送至前端图形的指定图元,并根据配置的规则将项点值渲染到图元上,监测项点增加或者监测主题增加,只需要配置主题项点和SVG组态图形即可,而不用修改软件代码,易于扩张。也就是说,将监测主题图形和监测项点通过配置方式绑定,而不是通过代码方式绑定,实现了图元和项点的解耦,当业务横向扩展,增加监测主题时,只需绘制监测图元和在数据库中配置图元的项点即可,增强了系统的扩展力。

本发明采用监测数据存储和监测数据实时推送展示分离方式处理监测数据,数据存储和数据实时推送采用不同线程异步执行,数据推送线程从消息中间件读取到采集的监测数据后,在内存数据库中对测点值进行分析、计算和处理后,将处理后的结果写入内存数据库的发布通道,监测值直接由内存数据库推送前端监测显示页面,不在关系数据库上进行存取操作,提高了系统的性能;而对于前后两个时间点接收到的测点值未发生变化的情况,则只对接收到的数据进行存储操作,而不在内存数据库中进行运算和推送前端处理,提高系统的处理能力和减少实时数据前端推送压力,实现了毫秒级实时数据的在线监测。本发明通过借助消息中间件和实时数据处理引擎对监测数据进行上述处理和展示,取代数据的存盘和读取分析和展示,实现了在高频率和大数据量情况下,系统能够在一个数据接收周期内将所有测点当前的最新值实时更新至前端显示的监控效果,具备对毫秒及数据的接收、处理、监测展示能力。

本发明开发逻辑表达式计算引擎,项点值的计算逻辑通过配置表达式来实现,将接收到测点值作为参数传入项点的逻辑表达式中进行运算得到项点值,当项点业务规则改变或者增加项点类型时,只需要在配置中修改项点运算逻辑表达式或者新增项点运算逻辑表达式即可,而不用修改软件代码,维护简单,具备灵活性和扩展性。

本发明采用树形结构定义数据模式,以从ROOT节点到叶子节点的路径来命名一个时间序列,时间序列包含时间戳和数据点,将监测数据测点作为时间序列,一个时间戳的测点值作为数据点。在插入数据时,一组对齐序列的时间戳列在内存和磁盘中仅需存储一次,而不是每个时间序列存储一次;查询数据时,可以对于每一条时间序列单独查询。

本发明采用时序数据库代替传统的关系型数据库和 NoSQL数据库,显著提高了工业设备时序数据的写入和查询效率,从分钟级提升到秒级,带来更好的用户体验;采用时序数据库基于列存储,降低了存储空间,提高了数据存储量,能够满足数据量持续增长的需求。

本发明还公开了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序在被处理器运行时执行如上所述方法的步骤。本发明进一步公开了一种城轨设备智能在线监测系统,包括相互连接的存储器和处理器,所述存储器上存储有计算机程序,所述计算机程序在被处理器运行时执行如上所述方法的步骤。本发明的介质和系统,与上述方法相对应,同样具有如上方法所述的优点。

相关术语解释:

测点:解析程序按通信协议格式对采集的二进制数据进行解析、拆解为具有业务含义的最小单元及其值,按协议拆解形成的最小单元称为一个测点,测点及其值用key:value形式表示,key部分为测点名称,测点名称由监测设备号和属性组成,样例如下:P1407.PJB为一个测点,其中,PJB为测点号,P1407为监测设备号。

项点:监测设备在监测界面的一个监测、展示点位称为一个项点,通过对一个或多个测点的值执行定义的逻辑表达式运算后得到。

主题:一个需要监测的子系统称为一个主题,一个主题包含多个监测点位(项点)。

跳变数据:同一个测点的值发生了变化,称为数据发生了跳变,值发生了变化的测点及及其值称为跳变数据。

项点对齐:一个项点的值由多个测点的值组合运算得到,并且要求参与运算的测点的值为同一个时序的值,即测点值的采集时间相同,称为项点对齐。

统码:由于不同监测设备的通信协议中对同一状态码(良好、故障、待测等)定义的值不一致,在系统中定义相同的状态码定义统一的码位值,并将采集到的测点值转换为系统中统一的码位值的过程称为统码,方便监测终端对状态值进行统一监测处理。

以上仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,应视为本发明的保护范围。

相关技术
  • 一种智能电容器的电路安全在线监测系统及方法
  • 一种换流站设备运行参数及运行环境智能监测系统及方法
  • 一种城轨列车电能质量在线监测方法及系统
  • 一种城轨列车钢轨形貌在线监测系统及方法
技术分类

06120116505419