具体实施方式
为详细说明本发明的技术内容、所实现目的及效果,以下结合实施方式并配合附图详予说明。
本发明最关键的构思在于:在服务内存中构建电网设备的网络拓扑;根据设备到端子的连接数据以及端子到设备的连接数据,实现拓扑分析。
请参阅图1,一种电网拓扑构建和拓扑分析方法,包括:
服务端获取电网设备的拓扑连接数据,所述拓扑连接数据包括设备与其端子的连接数据以及端子与端子的连接数据;
根据所述拓扑连接数据,分别获取与各设备连接的端子,得到设备到端子的连接数据,并加载至第一内存块,与设备连接的端子包括所述设备的端子以及与所述设备的端子连接的其他设备的端子;
根据所述拓扑连接数据,分别获取与各端子连接的设备,得到端子到设备的连接数据,并加载至第二内存块,与端子连接的设备包括所述端子所属的设备以及与所述端子连接的其他端子所属的设备;
根据所述第一内存块和第二内容块中的连接数据,进行拓扑分析。
从上述描述可知,本发明的有益效果在于:可大幅提升电网拓扑分析和查询的系统性能,提升电网业务开展的工作效率和工作质量。
进一步地,所述服务端获取电网设备的拓扑连接数据具体为:
服务端与数据库建立长连接;
服务端从数据库获取电网设备的拓扑连接数据,并加载至内存;
服务端按照预设的周期时间查询数据库中的拓扑连接数据是否发生变更;
若是,则同步更新内存中的拓扑连接数据。
由上述描述可知,通过长连数据库,检测数据变更情况并同步更新内存中的拓扑连接数据,可达到数据实时更新的目的。
进一步地,所述服务端按照预设的周期时间查询数据库中的拓扑连接数据是否发生变更具体为:
服务端获取并保存数据库的全局编号,所述全局编号用于表示数据库的数据变更次数;
服务端按照预设的周期时间查询数据库的全局编号,并与自身保存的全局编号进行对比;
若服务端保存的全局编号小于数据库的全局编号,则判定数据库中的拓扑连接数据发生变更,并更新自身保存的全局编号。
由上述描述可知,通过设置全局编号记录数据变更次数,可快速地判断出数据库中的数据是否发生变更。
进一步地,所述根据所述第一内存块和第二内容块中的连接数据,进行拓扑分析具体为:
根据所述第一内存块中的连接数据,获取与所述一设备连接的端子,得到第一端子集合;
根据所述第二内存块中的连接数据,分别获取与所述第一端子集合中各端子连接的设备,得到第一设备集合;
根据所述第一设备集合,得到与所述一设备存在拓扑连接关系的设备。
由上述描述可知,通过两种连接数据的交替查询,可以迅速对整个拓扑链路进行搜索,实现高效的拓扑分析。
进一步地,所述根据所述第一设备集合,得到与所述一设备存在拓扑连接关系的设备具体为
将所述一设备从所述第一设备集合中剔除,并对所述第一设备集合进行排重,得到与所述一设备存在拓扑连接关系的设备。
由上述描述可知,通过对得到的设备集合进行过滤排重,可准确得到与指定设备存在拓扑连接关系的设备。
本发明还涉及一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现如上所述的步骤。
实施例一
请参照图1-4,本发明的实施例一为:一种电网拓扑构建和拓扑分析方法,可应用于电网拓扑网络分析应用系统,如图1所示,包括如下步骤:
S1:服务端获取电网设备的拓扑连接数据。具体地,服务端在启动时,与电网数据库建立连接,然后读取数据库全量设备数据,抽取电网设备的拓扑连接数据,并加载至内存。
其中,获取的拓扑连接数据包括设备与其端子的连接数据以及端子与端子的连接数据。
电网拓扑数据用“设备-端子”来表示,一个电网设备存在若干个端子(即图形端点)。例如,杆塔存在1个端子即其图形中心点,导线存在2个端子即其图形的起点和终点,负荷开关存在2个端子即其图形的两端。同时对设备的端子进行编号,如设备1-端子1(简写D1-T1)。另外,如果D1的T1和D2的T1相连,则将D1-T1和D2-T1记录为一个连接点(C1),表示其存在拓扑连接关系。如果D1的T1同时与D3的T2也相连,则将D1-T1、D2-T1和D3-T2都记录至C1,表示三者之间存在相互的拓扑连接关系。
因此,本步骤相当于将设备与其端子的连接数据以及各连接点数据加载至内存。
优选地,服务端与数据库建立长连接。进一步地,服务端按照预设的周期时间查询数据库中的拓扑连接数据是否发生变更,即判断是否有新增、修改或删除设备,若有,则根据数据变更信息,同步更新内存中的拓扑连接数据,达到数据实时更新的目的。
优选地,为了提高判断效率,预先为数据库设置一个全局编号StateID,每新增、修改或删除一条记录时,则StateID的值递增1。服务端在最初获取拓扑连接数据时,也获取数据库的全局编号,然后按照预设的周期时间查询数据库的全局编号,并与自身保存的全局编号进行对比,若服务端保存的全局编号小于数据库的全局编号,则说明数据库中的数据有更新,则同步更新内存中的拓扑连接数据,并更新自身保存的全局编号。
S2:根据所述拓扑连接数据,分别获取与各设备连接的端子,得到设备到端子的连接数据,并加载至第一内存块,其中,与设备连接的端子包括所述设备的端子以及与所述设备的端子连接的其他设备的端子。
例如,假设设备D1包括两个端子,分别为D1-T1和D1-T2,且D1-T1与设备D2的一个端子D2-T1连接,则与设备D1连接的端子包括D1-T1、D1-T2和D2-T1。如图2所示,图2表示第一内存块中的一个“设备-端子”内存对象的存储数据,包括设备对象的相关信息(包括设备ID、电压等级、设备类型、运行状态和端子编码等)以及与其有连接的端子(包括其自身的端子),第一内存块中存储有所有设备的“设备-端子”内存对象。
进一步地,可同时加载设备相关的图形等相关数据至内存,用于拓扑查询后的展现等,避免二次查询。
S3:根据所述拓扑连接数据,分别获取与各端子连接的设备,得到端子到设备的连接数据,并加载至第二内存块,与端子连接的设备包括所述端子所属的设备以及与所述端子连接的其他端子所属的设备。
例如,假设设备D1的一个端子D1-T1与设备D2的一个端子D2-T1连接,还与设备D3的一个端子D3-T2连接,则与端子D1-T1连接的设备包括设备D1、设备D2和设备D3。如图3所示,图3表示第二内存块中一个“端子-设备”内存对象的存储数据,包括端子及与其有连接关系的设备,第二内存块中存储有所有端子的“端子-设备”内存对象。
S4:根据所述第一内存块和第二内容块中的连接数据,进行拓扑分析。
在实际实现时,利用第一内存块和第二内存块,进行互相查询,构建基础拓扑搜索逻辑,即查询与指定设备相连的设备,搜索逻辑如图4所示。
具体地,先根据所述第一内存块中的设备到端子的连接数据,获取与所述一设备连接的端子,得到第一端子集合;然后根据所述第二内存块中的端子到设备的连接数据,分别获取与所述第一端子集合中各端子连接的设备,得到第一设备集合;最后将所述一设备从所述第一设备集合中剔除,并对所述第一设备集合进行排重,得到与所述一设备存在拓扑连接关系的设备。
例如,若要查询与设备D1存在拓扑连接关系的设备,则首先通过第一内存块查询到与设备D1存在连接关系的端子,然后通过第二内存块查询到与这些端子存在连接关系的设备,即查询到了与设备D1存在拓扑连接关系的设备。
通过两个内存块交替查询可以迅速对整个拓扑链路进行搜索,实现高效拓扑分析。
进一步地,基于基础拓扑搜索逻辑,构建电网业务拓扑搜索逻辑。例如,以实现供电范围分析为例,描述通过基础拓扑搜索实现电网业务拓扑搜索的逻辑。供电范围的逻辑为:搜索低于该变压器电压等级的所有相连设备,遇到断开的开关或末端则停止搜索。
假设对一台变压器进行供电范围分析,首先根据上述查询与指定设备相连的设备的方法,搜索与其有连接关系的设备(通常两端为导线,一侧为高电压等级,一侧为低电压等级),搜索到两端连接的设备后,判断其电压等级,如高于或大于变压器,则停止该侧搜索,如对于低于变压器,则继续该侧搜索。重复上述的搜索方法,持续广度搜索,直至搜索到末端,中间如遇开关类设备,判断其运行状态,如为断开,则停止搜索。
按照上述逻辑,完成一次供电范围分析,并记录所有符合条件的搜索到的设备信息。
进一步地,在服务端构建完电网业务拓扑搜索逻辑后,发布拓扑搜索的REST服务接口。即将电网业务拓扑搜索逻辑发布为REST服务接口,前端通过调用接口,传入搜索起始设备和搜索逻辑,内存服务自动进行拓扑搜索,将搜索结果按照设备对象返回至前端。
本实施例构建全量拓扑网络并进行分析,提升了电网拓扑分析查询的性能;结合内存拓扑网络和分析逻辑,是扩展的电网内存拓扑分析方法。
本实施例通过在服务内存中构建电网设备的网络拓扑,将拓扑网络在内存中构成一张图,同时加载必要的设备属性信息,通过内存网络分析,大大提升搜索性能,满足拓扑分析性能需求,满足复杂电网分析应用要求,满足业务应用提出的搜索逻辑需求,更好地支撑业务应用,在电网拓扑分析方面取得了满意的效果。通过服务器的内存缓存技术,大幅提升电网拓扑分析和查询的系统性能,提升电网业务开展的工作效率和工作质量。
实施例二
本实施例是对应上述实施例的一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现如下步骤:
服务端获取电网设备的拓扑连接数据,所述拓扑连接数据包括设备与其端子的连接数据以及端子与端子的连接数据;
根据所述拓扑连接数据,分别获取与各设备连接的端子,得到设备到端子的连接数据,并加载至第一内存块,与设备连接的端子包括所述设备的端子以及与所述设备的端子连接的其他设备的端子;
根据所述拓扑连接数据,分别获取与各端子连接的设备,得到端子到设备的连接数据,并加载至第二内存块,与端子连接的设备包括所述端子所属的设备以及与所述端子连接的其他端子所属的设备;
根据所述第一内存块和第二内容块中的连接数据,进行拓扑分析。
进一步地,所述服务端获取电网设备的拓扑连接数据具体为:
服务端与数据库建立长连接;
服务端从数据库获取电网设备的拓扑连接数据,并加载至内存;
服务端按照预设的周期时间查询数据库中的拓扑连接数据是否发生变更;
若是,则同步更新内存中的拓扑连接数据。
进一步地,所述服务端按照预设的周期时间查询数据库中的拓扑连接数据是否发生变更具体为:
服务端获取并保存数据库的全局编号,所述全局编号用于表示数据库的数据变更次数;
服务端按照预设的周期时间查询数据库的全局编号,并与自身保存的全局编号进行对比;
若服务端保存的全局编号小于数据库的全局编号,则判定数据库中的拓扑连接数据发生变更,并更新自身保存的全局编号。
进一步地,所述根据所述第一内存块和第二内容块中的连接数据,进行拓扑分析具体为:
根据所述第一内存块中的连接数据,获取与所述一设备连接的端子,得到第一端子集合;
根据所述第二内存块中的连接数据,分别获取与所述第一端子集合中各端子连接的设备,得到第一设备集合;
根据所述第一设备集合,得到与所述一设备存在拓扑连接关系的设备。
进一步地,所述根据所述第一设备集合,得到与所述一设备存在拓扑连接关系的设备具体为
将所述一设备从所述第一设备集合中剔除,并对所述第一设备集合进行排重,得到与所述一设备存在拓扑连接关系的设备。
综上所述,本发明提供的一种电网拓扑构建和拓扑分析方法及计算机可读存储介质,通过在内存中构建网络拓扑并进行网络分析,可大大提升搜索性能,满足拓扑分析性能需求,满足复杂电网分析应用要求,更好地支撑业务应用;通过长连数据库,检测数据变更情况并同步更新内存中的拓扑连接数据,可达到数据实时更新的目的;通过设置全局编号记录数据变更次数,可快速地判断出数据库中的数据是否发生变更;通过两种连接数据的交替查询,可以迅速对整个拓扑链路进行搜索,实现高效的拓扑分析。本发明通过服务器的内存缓存技术,大幅提升电网拓扑分析和查询的系统性能,提升电网业务开展的工作效率和工作质量。
以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等同变换,或直接或间接运用在相关的技术领域,均同理包括在本发明的专利保护范围内。