发明内容
本发明目的是:针对现有技术的不足,提供一种多源异构电网运行实时数据接入系统及方法。本发明能够支持电网多业务系统产生的运行实时数据按不同方式不同频率的自动化接入,还支持柔性扩展以满足后续更多业务系统更多形式的接入需求。
具体地说,本发明的多源异构电网运行实时数据接入系统是采用以下技术方案实现的,包括配置服务、接入调度器、接入插件、数据存储及数据源五个模块,其中:
配置服务模块包含接入状态监控、接入启停控制及接入配置三个子模块,接入配置子模块用于配置接入任务调度参数、数据解析规则、测点及测点值创建规则参数,接入启停控制子模块通过向接入调度器模块发送启停控制命令控制接入任务的启动和停止,接入状态监控子模块用于监控接入调度器模块的运行状态;
接入调度器模块负责加载任务并根据任务调度参数调度执行接入任务,由命令处理器、冗余检测、任务加载器及任务调度器四个子模块构成,并分为主调度器和备调度器两种类型;命令处理器子模块用于接收启停控制命令,启停控制命令用于控制接入任务的启动和停止;冗余检测子模块是调度器主备冗余的核心,用于部署多个接入调度器,通过心跳检测机制实现贮备冗余检测,但是只有一个是主调度器,备调度器通过冗余检测子模块实时检测主调度器的运行状态,一旦检测到主调度器发生故障,就会立刻抢占主调度器的位置,负责接收命令处理器发来的处理命令,同步任务配置及调度执行任务,原来的主调度器则变成备调度器;任务加载器子模块负责加载接入任务配置,定时同步更新已加载任务配置和状态以保证任务调度执行的准确性和一致性;任务调度器子模块根据任务配置,定时调度执行接入插件模块,并记录插件执行时间及执行状态;
接入插件模块负责根据数据解析规则解析数据,根据测点及测点值创建规则在平台创建测点并将数据解析为测点值存入相应测点;
数据存储模块用于存储相关数据,由配置管理库、监控日志库和实时数据库构成,配置管理库用于存储插件参数配置以及提供加载的接口调度参数,监控日志库用于存储监控日志、任务调度日志及接入日志,实时数据库用于存储实时数据;
数据源模块用于提供电网运行实时数据,包括多种类型的数据库及数据资源;
所述接入任务具有任务调度参数、数据访问参数、数据解析规则、测点创建规则、测点值创建规则及关联的接入插件模块信息,创建一个接入任务首先要配置其关联的接入插件模块信息以及相应的参数和规则,配置好接入任务后启动数据接入流程,所述数据接入流程包括接入任务加载、任务调度、启动与进程执行任务有关联的接入插件模块,解析并完成数据接入。
上述系统的进一步特征在于,采用关系数据库与实时数据库两种类型数据库混合使用的方式存储数据,配置管理库和监控日志库为关系数据库,实时数据库采用“测点名称”这一标识符来标识所存储的数据。
本发明的多源异构电网运行实时数据接入方法,包括以下步骤:
1)首先制定测点名称的命名规则,将测点标准化;
2)通过配置关联的接入插件模块信息以及相应的参数和规则来创建一个接入任务,使用配置服务模块中的接入配置子模块来配置任务调度参数、数据访问参数、数据解析规则、测点创建规则、测点值规则及关联的接入插件模块信息;
3)启动接入调度器模块,通过配置服务模块的接入启停控制子模块,向接入调度器模块发送启停控制命令,控制接入任务的启动,由接入调度器模块中的任务加载器子模块加载接入任务列表及任务的调度参数;
4)任务调度器子模块开始周期检查任务调度参数,当发现某个任务满足执行条件时,立刻启动进程,执行任务关联的接入插件模块;
5)任务关联的接入插件模块根据配置的数据访问参数访问到待接入的数据;
6)任务关联的接入插件模块根据数据解析规则解析数据,根据测点创建规则不断构造测点名称并检查该测点在平台是否存在,如果存在则根据测点值规则写入实时数据;如果不存在,则先创建该测点然后写入实时数据;
7)当任务关联的接入插件模块完成数据解析后,任务调度器子模块释放创建的进程资源,该接入任务本次执行结束。
上述方法的进一步特征在于,采用主备冗余设计保证数据接入的高可用性,将接入调度器模块分为主调度器和备调度器两种类型,同一时刻只有一个主调度器工作,其他存在的多个备调度器只定期检测主调度器是否正常工作,当发现主调度器运行异常,则由某个备调度器切换成主调度器负责处理接入任务。
上述方法的进一步特征在于,主/备调度器切换的过程如下:
启动某个接入调度器模块,该接入调度器模块首先会检测是否有主调度器正在运行,如果没有主调度器运行,则将自身注册成为主调器,加载接入任务并进行任务调度,如发现有主调度器正在运行,则该接入调度器模块与主调度器进行心跳检测,检测其运行状态;如果发现主调度器不响应心跳检测,则该接入调度器模块标记主调度器为故障状态并将自身注册成为主调器,加载接入任务并进行任务调度,如果主调度器正常响应心跳检测,则将自己注册成为备调度器并定时与主调度器进行心跳检测以检测其运行状态。
上述方法的进一步特征在于,所述接入插件模块支持自定义插件以扩展实时数据的接入,自定义插件的过程如下:
配置并注册自定义插件,说明插件名称、功能描述及插件执行加载类名;
创建接入任务,配置任务关联的接入插件模块信息及相应的参数和规则;
启动数据接入,加载任务列表并调度执行接入任务;
创建独立进程,加载自定义插件,传入任务编号,调用自定义插件的入口方法,运行自定义插件;
根据自定义插件的配置信息解析数据、创建测点并接入数据。
本发明的有益效果如下:本发明支持电网运行生产多业务系统产生的运行实时数据不同方式不同频率的自动化接入,支持柔性扩展可以满足后续更多业务系统更多形式的接入需求,同时防止数据接入发生故障。本发明允许自定义插件扩展,根据接入数据的方式和数据格式开发满足个性化需求的接入插件时仅需要关注数据解析及数据接入逻辑。总而言之,基于以上益处更好的支撑管理部门跨专业跨部门的分析辅助决策,本发明能够为整个电网体系提供完备的辅助决策支持。
具体实施方式
下面结合实施例并参照附图对本发明作进一步详细描述。
实施例1:
本发明的一个实施例,公开了一种多源异构电网运行实时数据接入系统及方法。
参见图1,多源异构电网运行实时数据接入系统包括配置服务、接入调度器、接入插件、数据存储及数据源五个模块构成,核心模块是配置服务、接入调度器及接入插件。
配置服务模块包含接入状态监控、接入启停控制及接入配置三个子模块,接入配置子模块用于配置接入任务调度参数、数据解析规则、测点及测点值创建规则参数,接入启停控制子模块通过向接入调度器模块发送启停控制命令控制接入任务的启动和停止,接入状态监控子模块用于监控接入调度器模块的运行状态;
接入调度器模块负责加载任务并根据任务调度参数调度执行接入任务,由命令处理器、冗余检测、任务加载器及任务调度器四个子模块构成,并分为主调度器和备调度器两种类型;命令处理器子模块用于接收启停控制命令,启停控制命令用于控制接入任务的启动和停止;冗余检测子模块是调度器主备冗余的核心,用于部署多个接入调度器,通过心跳检测机制实现贮备冗余检测,但是只有一个是主调度器,备调度器通过冗余检测子模块实时检测主调度器的运行状态,一旦检测到主调度器发生故障,就会立刻抢占主调度器的位置,负责接收命令处理器发来的处理命令,同步任务配置及调度执行任务,原来的主调度器则变成备调度器;任务加载器子模块负责加载接入任务配置,定时同步更新已加载任务配置和状态以保证任务调度执行的准确性和一致性;任务调度器子模块根据任务配置,定时调度执行接入插件模块,并记录插件执行时间及执行状态;
接入插件模块负责根据数据解析规则解析数据,根据测点及测点值创建规则在平台创建测点并将数据解析为测点值存入相应测点;
数据存储模块用于存储相关数据,由配置管理库、监控日志库和实时数据库构成,配置管理库用于存储插件参数配置以及提供加载的接口调度参数,监控日志库用于存储监控日志、任务调度日志及接入日志,实时数据库用于存储实时数据;
数据源模块用于提供电网运行实时数据,包括多种类型的数据库及数据资源;
所述接入任务具有任务调度参数、数据访问参数、数据解析规则、测点创建规则、测点值创建规则及关联的接入插件模块信息,创建一个接入任务首先要配置其关联的接入插件模块信息以及相应的参数和规则,配置好接入任务后启动数据接入流程,所述数据接入流程包括接入任务加载、任务调度、启动与进程执行任务有关联的接入插件模块,解析并完成数据接入。
多源异构电网运行实时数据的接入方法的具体步骤如下:
a、首先需要制定测点名称的命名规则,即将测点标准化。
b、配置其关联插件以及相应的参数和规则来创建一个接入任务。通过配置服务中的接入配置模块来配置任务调度参数、数据访问参数、数据解析规则、测点创建规则、测点值规则及关联的接入插件。
c、启动接入调度器,通过配置服务的接入启停控制模块,向接入调度器发送命令,控制接入任务的启动,由计入调度器中的任务加载器加载接入任务列表及任务的调度参数。
d、任务调度器开始周期检查任务调度参数,当发现某个任务满足执行条件时,立刻启动进程,执行任务关联插件;
e、插件根据配置的数据访问参数访问到待接入的数据;
f、插件根据数据解析规则解析数据,根据测点创建规则不断构造测点名称并检查该测点在平台是否存在,如果存在则根据测点值规则写入实时数据;如果不存在,则先在平台创建该测点然后写入实时数据;
g、最后当插件完成数据解析后,任务调度器释放创建的进程资源,该接入任务本次执行结束。
为了保证实时数据的插入与查询效率,本实施例采用关系数据库与实时数据库两种类型数据库混合使用的方式存储数据,即配置管理库和监控日志库为关系数据库,主要负责存储电网设备台账信息、设备模型关系、运行配置信息及运行监控日志等;实时数据库负责存储电网运行实时数据,一般采用“测点名称”这一标识符来标识所存储的数据。每一个数据都由三部分组成:时标、值以及质量码。通过测点名称可以快速访问到测点存储的实时/历史电网运行数据。
为了保证测点名称具有一定意义及全网唯一性,本实施例提出了测点名称的命名规则:使用英文字符、数字、下划线、特殊符号等33至127号ASCII码字符命名测点名称,测点名称应保证全网唯一性。
测点名称一般由五部分组成:省代码、子控制区码、数据源码、数据源内部码、量测类型码。其中,针对省(市)公司一级部署系统,子控制区码是可选的,可以没有;针对省(市)公司二级部署系统,测点名称中则必须包含子控制区码。每段之间以“.”字符连接,段内不得使用“.”字符,无匹配项的段用“Null”占位。测点名称各组成部分的命名规则如下:
(1)省代码:是测点所属网省公司在测点命名上的表示方式,以省份名称的拼音首字母缩写表示;
(2)子控制区代码:是测点所属地市在测点命名上的表示方式,网省公司的子控制区码采用各地区电力公司所在地市的拼音首字母大写缩写表示,对于存在重复情况的网省,第一字的拼音字母往后取,直到没有重复为止;
(3)数据源码:是接入业务系统在测点命名上的表示方式,以数据源系统的英文缩写命名,须保证其全网唯一性,海量平台遵照CIM规范规定了数据源码的命名。常用的数据源码的命名如系统名称为:调度自动化系统、计量自动化、输变电状态监测系统、气象监测系统、电能质量系统等,系统简称分别为:SCADA、TMR、TMR、WMS、PQS等。
(4)数据源内部码:是业务系统内部设备或者测量点使用的唯一编码,一般以业务系统设备编码或者测量点的编码命名;
(5)量测类型码:是接入数据量测类型在测点命名上的表示方式,量测类型的名称遵照CIM规范中对量测的英文命名,同时海量平台为了方便测点命名还定义了量测的英文简称。以计量自动化系统中的部分量测类型为例,量测中文名称分别为:电压、A相电压、电流、A相电流、功率因数、有功功率、无功功率等,量测英文命名分别为:Voltage、A PhaseVoltage、Current、A Phase Current、Power Factor、Active Power、Reactive Power等,简称分别为U、Ua、I、Ia、F、P、Q等
以广东省佛山市调度自动化系统为例,根据上述测点命名规则,广东省佛山市调度自动化系统中功能位置编号为DE-54876的变压器的有功功率在系统平台创建的测点名称为:GD.FS.SCADA.DE-54876.P。其中GD为广东省代码,FS为子控制区域佛山市的代码,SCADA为调度自动化系统简称,DE-54876为设备的功能位置编码即数据源内部码,P为量测类型码中有功功率的英文简称。
制定了测点名称的命名规则后,可以创建一个接入任务。接入任务由任务调度参数、数据访问参数、数据解析规则、测点创建规则、测点值规则及关联的接入插件模块信息构成。创建一个接入任务首先就要配置其关联插件以及相应的参数和规则。下面以E文件接入为例,介绍E文件接入任务的配置流程,如图2所示。具体步骤如下:
a.创建接入任务,系统分配任务编号,配置任务名称、描述、任务类型等基本属性,设置开始启动时间、任务执行周期、延迟执行时间等任务调度参数;
b.配置E文件的获取规则,包括文件所在服务器地址,文件存放路径及访问文件的用户名、密码等访问权限;
c.配置文件解析规则,包括E文件的后缀,文件包含的内容标签,标签内属性间的分隔符及分隔符的个数等,图中内容标签为<ACLineSegment>,标识设备类型为交流线段,属性分隔符为空格,属性间间隔两个空格。
d.配置测点创建规则,根据测点命名规范配置测点名的构建规则,一般省代码、子控制区码和数据源码从文件名获取,数据源内部码关联设备ID属性,量测类型码为量测类型的英文简称,图中“莞水乙线有功”对应的测点名为:GD.DG.SCADA.4785075321372674.P;接着配置测点描述构建规则、测点数据源等属性。
e.配置测点值创建规则,时间戳从文件名获取,值关联到对应的量测属性,质量码关联到对应的量测值状态属性,如果没有该属性,则可以设置质量码的默认值。
f.最后选择E文件接入插件为任务关联插件,由插件根据配置的文件解析规则、测点创建规则和测点值规则完成E文件的解析、测点的创建及值的插入工作。
配置好接入任务就可以启动数据接入工作。数据接入流程一般包括接入任务加载、任务调度、启动进程执行任务插件、解析并完成数据接入等步骤,如图3所示,具体步骤如下:
a.启动接入调度器,由任务加载器加载接入任务列表及任务的调度参数;
b.任务调度器开始周期检查任务调度参数,当发现某个任务满足执行条件时,立刻启动进程,执行任务关联插件;
c.插件根据配置的数据访问参数访问到带接入的数据;
d.插件根据数据解析规则解析数据,根据测点创建规则不断构造测点名并检查该测点在平台是否存在,如果存在则根据测点值规则写入实时数据;如果不存在,则先在平台创建该测点然后写入实时数据;
e.当插件完成数据解析后,任务调度器释放创建的进程资源,该接入任务本次执行结束。
由于每天产生的电网运行实时数据量很大且接入实时性要求很高,海量平台需要不断接入各业务系统定时推送过来的运行数据。如果数据接入发生故障,电网运行数据就会累积,上层业务分析系统无法获取最新的运行数据,这是不能容忍的。所以,本实施例采用主备冗余设计保证数据接入的高可用性。将接入调度器模块分为主调度器和备调度器两种类型,同一时刻只有一个主调度器工作,同时存在的多个备调度器只定期检测主调度器是否正常工作。如果发现主调度器运行异常,则由某个备调度器切换成主调度器负责处理接入任务,如图4所示。具体步骤如下:
a.启动某个接入调度器模块,该接入调度器模块首先会检测是否有主调度器正在运行,如果没有主调度器运行,则将自身注册成为主调器,加载接入任务并进行任务调度;
b.发现有主调度器正在运行,则该接入调度器模块与主调度器进行心跳检测,检测其运行状态;如果发现主调度器不响应心跳检测,则标记主调度器为故障状态并将自身注册成为主调器,加载接入任务并进行任务调度;
c.如果主调度器正常响应心跳检测,则将自己注册成为备调度器并定时与主调度器进行心跳检测以检测其运行状态。
由于电网运行实时数据的多源异构性和接入的复杂性,为了满足今后更多电网业务系统的实时数据接入需求,本实施例允许自定义插件以扩展实时数据的接入。根据接入数据的方式和数据格式开发满足个性化需求的接入插件时仅需要关注数据解析及数据接入逻辑,而任务调度交给调度器完成。自定义插件要求使用Java语言开发,插件必须实现相应的IExecute接口,接收一个Integer类型的入参。该接口是插件的执行入口,调度器执行插件时根据注册的类名找到执行入口,传入关联该插件的任务编号(ID),从而完成数据接入工作,流程图如图5所示。具体步骤如下:
a.配置并注册自定义插件,说明插件名称、功能描述及插件执行加载类名;
b.创建接入任务,配置任务关联的插件及调度参数;
c.启动数据接入,加载任务列表并调度执行接入任务;
d.创建独立进程,加载自定义插件,传入任务编号,调用插件入口方法Execute,运行插件;
e.根据插件的配置信息解析数据、创建测点并接入数据。
由于自定义插件所需参数像接入数据的访问途径、数据格式等都无法预估,也不能定义统一的规范,所以自定义插件只能由插件开发人员根据插件运行需求提供相应的配置文件,满足个性化的实时数据接入需求。
虽然本发明已以较佳实施例公开如上,但实施例并不是用来限定本发明的。在不脱离本发明之精神和范围内,所做的任何等效变化或润饰,同样属于本发明之保护范围。因此本发明的保护范围应当以本申请的权利要求所界定的内容为标准。