CN101907991A - 一种基于插件技术的电力***分析软件接口实现方法 - Google Patents
一种基于插件技术的电力***分析软件接口实现方法 Download PDFInfo
- Publication number
- CN101907991A CN101907991A CN 201010213989 CN201010213989A CN101907991A CN 101907991 A CN101907991 A CN 101907991A CN 201010213989 CN201010213989 CN 201010213989 CN 201010213989 A CN201010213989 A CN 201010213989A CN 101907991 A CN101907991 A CN 101907991A
- Authority
- CN
- China
- Prior art keywords
- plug
- data
- information
- platform
- request
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Stored Programmes (AREA)
Abstract
本发明属于电力***应用技术领域,特别是涉及一种基于插件技术的电力***分析软件接口实现方法,首先利用插件技术,将电力***的分析功能分解为图形支持模块、数据支持功能模块,和各种在线\离线分析功能模块,实现各功能模块最大程度的解耦;其次应用动态链接库的动态加载和动态调用技术实现插件与支持平台间的数据交互,与现有技术相比,本发明能够有效地降低功能对象与对象管理逻辑之间的耦合程度,使应用程序变得更加稳定且具有良好的可扩展性,从根本上保证了软件成为“面向需求的开放式体系架构”。
Description
技术领域
本发明属于电力***应用技术领域,特别是涉及一种电力***分析软件接口实现方法。
背景技术
软件的开发质量很大程度上都由软件设计结构的复杂度决定。一个好软件架构对软件的稳定性、扩展性、代码的重用性、应对需求变更的自适应调节能力、易维护性等方面都起着决定性作用。在实际应用过程中,因各***的结构、运行特性、运行方式、运行人员的关注点等不同,电力***分析软件的功能需求复杂,各种分析计算功能、数据支持功能、图形显示功能等的集成开发,虽然能够提高数据交互效率,但很难适应电力***安全稳定分析功能种类繁多、发展迅速、定制要求强等特点,引出对电力***分析软件的功能进行适当解耦十分必要。为了增强软件的稳定性、可扩展性、开放性和易维护性,本发明提出了一种基于插件技术的电力***分析软件接口实现方法,支持基于插件的软件框架的开发。
发明内容
基于上述现有技术,本发明提出一种基于插件技术的电力***分析软件接口实现方法:首先利用插件技术,将电力***的分析功能分解为图形支持模块、数据支持功能模块,和各种在线\离线分析功能模块,实现各功能模块最大程度的解耦;其次应用动态链接库的动态加载和动态调用技术实现插件与支持平台间的数据交互,从而提高电力***分析软件的稳定性、可扩展性和易维护性。
本发明提出的一种基于插件技术的电力***分析软件接口实现方法,该方法包括下列步骤:
第一步:将电力***分解为图形支持模块、数据支持功能模块,和各在线或离线分析功能模块,分别作为插件;
第二步:设置插件配置列表,用于记载注册的全部插件;
第三步:将插件注册到图形支持模块,该过程包括注册请求、注册信息校验和文件生成与拷贝;注册信息包括基本信息,包括插件名称和开发版本,向平台开放的API函数信息,以及共享数据项描述信息,并于注册校验成功后修改插件配置列表,增加新的插件信息;
第四步:将可视化图形平台作为宿主,管理电力***的设备图形信息;
第五步:将各插件的相关数据存放在各自管理的内存中,该相关数据包括内部数据:中间数据和共享数据;
第六步:各插件向可视化图形平台提出数据请求,以及提供数据请求信息,该数据请求信息包括功能模块标识,即对应模块的注册ID和数据项标识;各插件收到数据请求后,依据该数据请求信息,首先判断该数据请求是否对应本插件的功能模块,若是则依据数据项标识完成数据查询,向对应的内存空间赋值;若否则忽略该请求;如此完成一次数据请求的应答;
第七步:可视化图形平台的信息包含图形相关信息、内容及形式固定,由平台通过公共API函数提供给其他插件。
与现有技术相比,本发明的基于插件技术的电力***分析软件接口实现方法,能够有效地降低功能对象与对象管理逻辑之间的耦合程度,使应用程序变得更加稳定且具有良好的可扩展性,从根本上保证了软件成为“面向需求的开放式体系架构”。本发明方法有效屏蔽了支持平台程序与功能插件之间复杂的交互和通信联系,第三方插件开发者无需关注平台程序是如何运行的,如何调用插件对象等复杂问题,也完全无需了解框架的宿主程序是的程序编写,只须关心自己所要解决问题的处理逻辑,只要程序逻辑编写正确,符合插件式框架规定的格式和流程即可。同时尽管在程序开发和运行过程中,各插件之间,插件与框架之间都是基本功能独立的,但是在使用过程中它们的功能却仍然表现为一个整体,完全不影响用户使用。
附图说明
图1为本发明的图形支持功能模块与插件之间的解耦关系;
图2为本发明的插件注册流程。
具体实施方式
本发明提出一种基于插件技术的电力***分析软件接口的实现方法,支持电力***软件中图形支持功能与分析计算功能的解耦,并支持数据交互,可有效降低电力***分析软件的复杂度,增强稳定性、可扩展性、开放性和易维护性。方法详细说明如下:
第一步:设置插件配置列表,记载注册的全部插件。
电力***分析功能众多,用户依据各自需求对软件功能进行定制的要求很高,因此为准确管理各实施***的功能插件,特定义插件配置列表,记录注册插件数量和对应的动态库名称。列表内容示例如下
Count=3
Name1=PlugIn1.dll
Name2=PlugIn2.dll
Name3=PlugIn3.dll
第二步:插件注册到图形平台的过程包括注册请求、注册信息校验和文件生成与拷贝共3次平台与插件动态链接库间的交互;注册信息包括插件名称和开发版本等基本信息,向平台开放的API函数信息,以及共享数据项描述信息;注册校验成功后修改插件配置列表,增加新的插件信息。
插件注册到图形平台的过程如图2所示,首先由插件向平台提交注册请求,提供注册信息;平台接收请求后应答并对相应的注册信息进行验证。注册信息包括:
A.插件名称
B.插件版本
C.版权信息
D.插件业务功能描述信息
E.插件的全球唯一标识号(GUID)
F.插件消息——显示插件启动时发给主程序的Windows消息
G.主程序消息——显示主程序回馈给插件的Windows消息
H.初始化——插件初始化时执行的函数
I.执行——插件业务功能执行的函数
J.执行结束——插件业务功能执行完成之后执行的函数
K.销毁——插件销毁时执行的函数
L.显示插件参数列表
注册信息验证通过后,平台执行文件生成与拷贝,进行插件安装;最后修改插件配置列表,增加新的插件信息,完成插件注册全过程。即完成了平台与插件动态链接库间的交互。
第三步:电力***的图形支持功能模块作为宿主,管理电力***的设备图形信息。
电力***的图形描述以单线图为主,主要构成图元为电力***中的一次设备和二次设备,包括断路器、线路、发电机、变压器、负荷、电压互感器、电流互感器、保护装置等物理设备,每一个设备由唯一的标识符确定,另外还有地理位置信息等图形相关内容。这些信息由图形***和图形文件进行存储和管理。
第四步:在方法实施过程中,各插件的数据存放在各自管理的内存中,包括内部数据,如分析计算的基础和计算中间数据,和向平台开放的共享数据。
各插件内部任意实现功能,只需符合本方法接口协议即可接入***实施。因此数据管理各自进行,仅需提供响应平台数据请求的公共函数即可。
第五步:插件向图形平台提供任意内容的数据和信息,由平台向各插件轮询形式发出,但必须首先在第一步中完成向平台的数据注册。数据请求信息由平台向各插件轮询形式发出,包括功能类标识,即对应模块注册ID,和数据项标识;各插件收到请求后,依据该请求信息,首先判断该数据请求是否对应本插件的功能范围,若是则依据数据项标识完成数据查询,向平台对应内存空间赋值;若否则忽略该请求;以上构成一次数据请求的应答。
插件向平台提供的数据和信息取决于其本身的分析功能,不受平台限制,因此其数据内容较自由,各插件间数据定义也各不相同。因此本方法在第二步注册过程中即要求完成数据注册工作,实现平台对插件数据的准确管理。
向平台进行数据传递的过程通过公共API函数进行,采用动态内存分配技术将具体数值信息赋值到平台上的相应设备图元,这里提供一个伪代码的调用样例:
for(int i=0;i<ElecObjList.GetCount();i++)
{
CDrawObjList cDrawObjList;
if(GetDrawObjList(&cDrawObjList)==1)
{
CDrawObj*pDrawObj=NULL;
if(cDrawObjList.Lookup(ElecObjList[i]m_strPsBob,pDrawObj)==
TRUE)
{
PLUGINARGUMENT stArgu;
stArgu.m_dwIndexNum=1203000001;
stArgu.m_strMeaning=″VI″;
stArgu.m_strType=″double″;
stArgu.m_strUnit=″A″;
stArgu.m_strValue=″8.6″;
pDrawObj->m_ArguList.SetAt(pDrawObj->m_ArguList.GetCount(),
stArgu);
}
}
}
第六步:由图形平台管理的信息只包含图形相关信息,内容及形式固定,引出由平台通过公共API函数提供给插件。
插件从图形平台获取图元信息时,是由图形平台提供一组API,实现内存共享,例如获取当前图纸上的全部设备图元信息,具体实现如下:
int GetDrawObjList(CDrawObjList*pDrawObjList)
{
for(int i;i<theApp.m_cDrawObjList.GetCount();i++)
{
CDrawObj*pObj=&(theApp.m_cDrawObjList.GetDrawObj(i));
pDrawObjList->SetAt(pObj->m_strPsBob,pObj);
}
return 1;
}
Claims (1)
1.一种基于插件技术的电力***分析软件接口实现方法,该方法包括下列步骤:
第一步:将电力***分解为图形支持模块、数据支持功能模块,和各在线或离线分析功能模块,分别作为插件;
第二步:设置插件配置列表,用于记载注册的全部插件;
第三步:将插件注册到可视觉化图形平台,该过程包括注册请求、注册信息校验和文件生成与拷贝;注册信息包括基本信息,包括插件名称和开发版本,向平台开放的API函数信息,以及共享数据项描述信息,并于注册校验成功后修改插件配置列表,增加新的插件信息;
第四步:将可视化图形平台作为宿主,管理电力***的设备图形信息;
第五步:将各插件的相关数据存放在各自管理的内存中,该相关数据包括内部数据,中间数据和共享数据;
第六步:各插件向可视化图形平台提出数据请求,以及提供数据请求信息,该数据请求信息包括功能模块标识,即对应模块的注册ID和数据项标识;各插件收到数据请求后,依据该数据请求信息,首先判断该数据请求是否对应本插件的功能模块,若是则依据数据项标识完成数据查询,向对应的内存空间赋值;若否则忽略该请求;如此完成一次数据请求的应答;
第七步:可视化图形平台的信息包含图形相关信息、内容及形式固定,由平台通过公共API函数提供给其他插件。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201010213989 CN101907991A (zh) | 2010-06-30 | 2010-06-30 | 一种基于插件技术的电力***分析软件接口实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201010213989 CN101907991A (zh) | 2010-06-30 | 2010-06-30 | 一种基于插件技术的电力***分析软件接口实现方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101907991A true CN101907991A (zh) | 2010-12-08 |
Family
ID=43263458
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 201010213989 Pending CN101907991A (zh) | 2010-06-30 | 2010-06-30 | 一种基于插件技术的电力***分析软件接口实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101907991A (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102541647A (zh) * | 2010-12-24 | 2012-07-04 | 中国科学院沈阳自动化研究所 | 一种软件集成过程中的可执行组件功能外部调用方法 |
CN103034491A (zh) * | 2012-12-06 | 2013-04-10 | 国电南瑞科技股份有限公司 | 一种电力***界面集成的实现***及其实现方法 |
CN104240148A (zh) * | 2014-08-28 | 2014-12-24 | 国家电网公司 | 一种基于插件的电网可视化方法 |
CN105117204A (zh) * | 2015-07-15 | 2015-12-02 | 浙江工商大学 | 基于正交分解的互联网应用轻量级软件开发方法 |
CN105741047A (zh) * | 2016-02-18 | 2016-07-06 | 南京国电南自美卓控制***有限公司 | 基于clr类库技术的发变组保护装置管理***及方法 |
CN110109713A (zh) * | 2019-04-18 | 2019-08-09 | 北京四方继保自动化股份有限公司 | 一种实现二次设备可视化插件的方法 |
CN110908726A (zh) * | 2018-09-14 | 2020-03-24 | 广州神马移动信息科技有限公司 | 数据管理方法、装置、设备及计算机可读存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1710535A (zh) * | 2005-05-10 | 2005-12-21 | 上海宝信软件股份有限公司 | 一种gis应用***及其开发方法 |
CN101004675A (zh) * | 2006-01-19 | 2007-07-25 | 腾讯科技(深圳)有限公司 | 一种显示菜单的方法、***及客户端 |
CN101201755A (zh) * | 2007-05-10 | 2008-06-18 | 深圳市同洲电子股份有限公司 | 一种数字接收终端的软件模块管理方法、***及设备 |
-
2010
- 2010-06-30 CN CN 201010213989 patent/CN101907991A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1710535A (zh) * | 2005-05-10 | 2005-12-21 | 上海宝信软件股份有限公司 | 一种gis应用***及其开发方法 |
CN101004675A (zh) * | 2006-01-19 | 2007-07-25 | 腾讯科技(深圳)有限公司 | 一种显示菜单的方法、***及客户端 |
CN101201755A (zh) * | 2007-05-10 | 2008-06-18 | 深圳市同洲电子股份有限公司 | 一种数字接收终端的软件模块管理方法、***及设备 |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102541647A (zh) * | 2010-12-24 | 2012-07-04 | 中国科学院沈阳自动化研究所 | 一种软件集成过程中的可执行组件功能外部调用方法 |
CN102541647B (zh) * | 2010-12-24 | 2013-06-26 | 中国科学院沈阳自动化研究所 | 一种软件集成过程中的可执行组件功能外部调用方法 |
CN103034491A (zh) * | 2012-12-06 | 2013-04-10 | 国电南瑞科技股份有限公司 | 一种电力***界面集成的实现***及其实现方法 |
CN104240148A (zh) * | 2014-08-28 | 2014-12-24 | 国家电网公司 | 一种基于插件的电网可视化方法 |
CN105117204A (zh) * | 2015-07-15 | 2015-12-02 | 浙江工商大学 | 基于正交分解的互联网应用轻量级软件开发方法 |
CN105117204B (zh) * | 2015-07-15 | 2018-05-29 | 浙江工商大学 | 一种基于正交分解的互联网应用轻量级软件开发的方法 |
CN105741047A (zh) * | 2016-02-18 | 2016-07-06 | 南京国电南自美卓控制***有限公司 | 基于clr类库技术的发变组保护装置管理***及方法 |
CN110908726A (zh) * | 2018-09-14 | 2020-03-24 | 广州神马移动信息科技有限公司 | 数据管理方法、装置、设备及计算机可读存储介质 |
CN110109713A (zh) * | 2019-04-18 | 2019-08-09 | 北京四方继保自动化股份有限公司 | 一种实现二次设备可视化插件的方法 |
CN110109713B (zh) * | 2019-04-18 | 2022-06-03 | 北京四方继保自动化股份有限公司 | 一种实现二次设备可视化插件的方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101907991A (zh) | 一种基于插件技术的电力***分析软件接口实现方法 | |
CN103019791B (zh) | 软件部署方法及软件部署*** | |
US20090244059A1 (en) | System and method for automatically generating virtual world environments based upon existing physical environments | |
CN103178996B (zh) | 分布式包交换芯片模型验证***及验证方法 | |
CN104867058A (zh) | 智能变电站scd文件的ied可视化方法 | |
CN110032454A (zh) | 远程调用方法、***和相关设备及计算机可读存储介质 | |
Jalender et al. | Designing code level reusable software components | |
CN110659206A (zh) | 基于微服务的模拟架构建立方法、装置、介质及电子设备 | |
Lee et al. | Harmonizing IEC 61850 and CIM for connectivity of substation automation | |
CN109615290A (zh) | 用于获得送达地址的方法、装置、***及介质 | |
CN107341005A (zh) | 图表生成方法及其装置 | |
CN104881746A (zh) | 管理信息***中的平台即服务Paas平台架构 | |
CN112926109B (zh) | 一种复杂嵌入式***虚拟运行环境可视化建模方法 | |
CN110392053A (zh) | 容器访问控制方法、装置、客户端及服务器 | |
CN111161052A (zh) | 银行作业数据的处理方法及装置 | |
CN104102496A (zh) | 一种基于windows平台的银行自助***跨浏览器插件的开发方法 | |
Hammers et al. | Governing the process chain of product development with an enhanced Quality Gate approach | |
Boer et al. | Distributed simulation with COTS simulation packages | |
CN103562896A (zh) | 用于最小化软件应用之间的通信和集成复杂性的装置 | |
KR20180037487A (ko) | Real World의 Node와 Cyber World Node를 OPC UA Node와 동일하게 모델링하여 OPC UA Server를 CPS서버로 활용하는 방법 | |
CN102073500A (zh) | 基于soa的家具设计***集成方法及*** | |
CN113328913B (zh) | 一种提高项目测试效率的方法、装置和*** | |
CN117539468B (zh) | 一种快速实现业务的低代码开发平台 | |
CN103377299B (zh) | 提供电网线路的三维可视化服务的方法及*** | |
CN103714035A (zh) | 一种用于集成环境的多层软件总线结构 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20101208 |