基于数据缓冲池技术的二次设备状态评价数据处理方法
2018-04-20李金,高寿
李 金,高 寿
(1.中国南方电网电力调度控制中心,广东 广州 510663;2. 南瑞集团公司(国网电力科学研究院),江苏 南京 210003)
0 引言
电力系统中二次设备的检修以人工进行定期检验为主,容易造成“过剩维修”或者“延后维修”的问题,造成设备有效利用率降低及人力、物力、财力的浪费,检修效果也不好。而随着变电站和输电线路的数量越来越多,二次设备检验工作量剧烈增加。由于编制限制及人才培养周期等原因二次设备检验人员却并不能相应增加,加上许多线路停电难、停电时间短,造成二次设备检验完成率较低,二次设备技术人员长期处于超负荷工作状态,既影响了保护检验质量又容易发生误碰、误接线、误整定等事故。因此,运用先进的科技手段,加强电气二次设备状态监测和状态检修工作的重要性日益突出[1-5]。
二次设备状态评价是二次设备状态检修的基础,基于二次设备状态监测技术,根据反映二次设备状态的关键指标状态信息确定二次设备所处的状态,然后对二次设备的运行健康状态进行整体评价。然而随着电网规模的扩大,二次设备的数量也急剧增加,而在主站端针对每条监测信息进行实时状态评价的方法给服务器造成了巨大的计算压力。同时二次设备监测指标的传输方式较为分散,可能发生某一设备短时间内向主站端传输多条监测指标信息,从而出现对同一设备多次重复评价的情况[6-9]。本文提出了一种基于数据缓冲池技术的二次设备状态评价数据处理方案,采用多任务处理和缓冲池技术,实现了大量监测数据的并行解析;标记状态评价对象在缓冲池中的任务状态,避免了对同一设备的重复评价现象。
1 二次设备状态评价方法
主站端二次设备评价基于子站传输上来的二次设备监测数据,子站端二次设备监测数据通过61850协议上传到主站数据中心,再由数据中心通过JMS传输至主站端二次设备状态评价功能模块(以下简称主站端)完成设备评价、设备检修等功能应用。
当子站端设备的监测指标发生改变时,子站将产生的监测信息上传到数据中心。此时数据中心通过JMS将收到的监测信息传输给主站端。主站端监听程序在收到数据中心传来的监测信息后,经过解析处理,启动状态评价任务对该设备的新状态进行评价。然而在这个过程中,如果该设备的其他监测指标也发生变化,或某些模拟量指标(如CPU使用率)持续变化,则会使子站端将该设备的这些指标不停上传,而主站端重复启动状态评价程序对同一设备进行评价,大大加重了服务器的负担,造成系统资源的浪费,严重情况下可能出现服务器卡死等现象[10]。
2 数据缓冲池设计方案
针对上述问题,本文提出了设计数据缓冲池的解决方案,将数据中心传输的数据和数据库中相应的设备及状态数据存入数据缓冲池中,其他程序通过该数据缓冲池读取数据;同时,通过标记设备评价状态避免了重复评价同一设备的问题。
2.1 设备评价状态设计
为了避免重复评价同一件设备的运行健康状态,首先必需要将设备在状态评价中的各个状态区分开来。
本文将二次设备在整个状态评价过程中的状态分为3个:待评价、评价中、已评价。当主站端接收到JMS信号时,从JMS信息体中获取二次设备的监测数据信息,其中包含设备的唯一编码、设备的监测指标、监测指标的状态量值等信息。通过设备的唯一编码,可以从系统中获取需要评价的设备,将该设备对象及其评价指标填入数据缓冲池中,此时可将该设备状态置为“待评价”状态;当状态评价线程扫描到该设备,开始执行状态评价功能时,将该设备状态置为“评价中”;当状态评价线程完成对该设备的评价任务时,将该设备的状态置为“已评价”。因此,二次设备在各状态下的真实情况如下。
已评价:上一评价周期的状态评价工作已完成,至今尚无新的监测指标有变化。
待评价:上一评价周期的状态评价工作完成后,又有新的监测指标变动,需要重新评价设备状态;目前设备对象及各项指标的当前值已填入数据缓冲池中,但状态评价线程尚未扫描到该设备,还处于等待状态。
评价中:目前状态评价线程正在对该设备的当前状态进行评价。
2.2 缓冲池结构设计
数据缓冲池包括两部分:
(1)待处理的状态数据队列,队列中每个对象包括设备的唯一标识、设备状态量名称、设备状态量监测值,如表1所示。
表1 待处理设备状态队列元素结构表
(2)待评价的二次设备队列,队列中的每个对象包括设备的唯一标识及其当前所有状态值,如表2所示。
表2 待评价设备队列元素结构表
2.3 监测数据监听任务功能设计
监测数据监听任务是主站端用于监听从数据中心传来的JMS消息的程序。接收到一条JMS消息后,监听任务首先从消息体中解析出具体的消息内容,然后将这些内容填入缓冲池中待处理的设备状态量队列中。
2.4 监测数据处理任务功能设计
监测数据处理任务用于分析处理设备状态量队列中的数据。监测数据处理任务流程图如图1所示。监测数据处理任务启动后,遍历设备状态量队列中的各项数据,根据其中的设备唯一编码,在数据库中查看它们的状态,然后进行如下处理:
(1)对于“已评价”状态的设备,将其设备唯一编码和当前所有的状态值取出,填入待评价的二次设备队列中,在数据库表中将该设备的评价状态置为“待评价”,然后用设备监测指标队列中取出的指标值更新队列中相应的状态量数据。
图1 监测数据处理任务流程图
(2)对于“待评价”状态的设备,直接在缓冲池中更新二次设备队列中相应的状态量数据。
(3)对于“评价中”状态的设备,则在评价任务对该设备的评价完成后,设备的评价状态置为“已评价”,对其按第一种方式处理。
上述处理完成后,在处理设备状态量队列中将该条记录清理出队列,队列为空时任务中止。
2.5 状态评价任务功能设计
状态评价任务用于对待评价的二次设备队列中的设备及其状态量信息进行设备健康状态评价。状态评价任务启动后,遍历待评价的二次设备队列,先将该设备的评价状态置为“评价中”,然后根据每个设备及其状态量信息执行健康状态评价算法,得到状态评价结果后,将队列中的设备状态量信息和状态评价结果信息更新到数据库中保存,然后将数据库中的设备状态信息变更为“已评价”状态。
完成上述步骤后就将刚才评价的数据从待评价的二次设备队列中清除,继续遍历下面的数据,直至队列为空为止。
如前文所述,监测数据处理任务的监听程序始终保持监听JMS消息,每条消息到达后将消息体中的信息填入待处理队列;监测数据处理程序周期性地运行,将待处理队列的数据处理完以后就结束;状态评价程序也周期性地启动,每次执行遍历处理待评价设备队列,到队列为空的时候停止执行;同时考虑到监测数据处理程序和状态评价程序在上一执行周期内如果没有处理完所有数据,在下一执行周期会再次启动一个新程序,因此这两个程序要以单例模式的方式实现。
3 算例与讨论
为验证上述所提的二次设备状态评价数据处理方案,基于本文所提的方法,开发了二次设备状态评价功能软件,并编写了模拟程序向监听程序发送二次设备监测数据。
模拟程序随机从二次设备状态评价系统中抽取二次设备信息及状态量发送给监听程序,记录下每个设备被重复抽取以及被评价的次数,分别用本文提出的方法和无缓冲池的处理方法对收到的监测数据进行状态评价。两种方法部署在同一台服务器上执行,每次模拟程序抽取10 000条监测数据进行测试,测试结果如表3所示。
表3 两种状态评价数据处理方法对比
从表3的测试结果来看,当同一设备接收多次监测数据的时候,本文提出的方法能够有效地减少重复评价的次数,大幅减少程序执行时间。
4 结论
本文提出了一种针对大量二次设备状态监测数据进行分析、处理、评价的方法,将待处理数据填入缓冲池,灵活配置二次设备在状态评价过程中的不同状态,有效地减少了系统重复计算的数量,提高程序运行效率,有助于提高系统的稳定性和实用性。
[1] 王俏文,丁坚勇,陶文伟,等. 基于层次分析模型的二次设备状态检修方法[J]. 南方电网技术, 2013,7(4):97-102.
[2] 吴杰余, 张哲, 尹项根. 电气二次设备状态检修研究[J]. 继电器, 2002,30(2):22-24.
[3] 王师霜. 二次设备状态评价数据挖掘技术的研究与应用[D]. 北京: 华北电力大学, 2013.
[4] 宫宇, 吕金壮. 大数据挖掘分析在电力设备状态评估中的应用[J]. 南方电网技术, 2014,8(6):74-77.
[5] 成永强. 基于数据挖掘的设备状态检修[D]. 北京: 华北电力大学, 2005.
[6] 汪权东, 陈卫标, 李金贤, 等. 大数据量、高中断频率数据接收的软件设计[J]. 计算机工程, 2004,30(7):69-72.
[7] 张逸, 杨洪耕. 海量电能质量数据交换格式文件快速解析方案[J]. 电力自动化设备, 2013,33(12):116-121.
[8] 冯璐, 冯凤娟. 单例模式在数据库连接池中的应用[J]. 网络安全技术与应用, 2008(3):47-50.
[9] 胡泽林, 张云泉. 高速缓存优化的并行连接算法[J]. 计算机工程与设计, 2009, 30(20):4581-4584.
[10] 牟乃夏, 薛重生, 杨亮杰,等. 基于内存缓冲池的实时配电地理信息系统数据集成技术与功能设计[J]. 电气应用, 2005,24(4):24-26.