当前位置:首页>行业资讯>技术应用>资讯内容

组件技术在电力系统中的应用

发布日期:2017-07-07 来源: 本网 查看次数: 3336 作者:admin

核心提示:  电力情报组件技术在电力系统中的应用张明霞,宋玮,米增强(华北电力大学电力系,河北保定071003)解决电力系统应用软件重复开发和维护困难等问题。介绍了组件软件技术的基本思想及其代码重用的优越性和构

  电力情报组件技术在电力系统中的应用张明霞,宋玮,米增强(华北电力大学电力系,河北保定071003)解决电力系统应用软件重复开发和维护困难等问题。介绍了组件软件技术的基本思想及其代码重用的优越性和构建大型应用的灵活性,并编制了故障计算实用组件。组件对象模型是电力系统应用软件的标准化方向。IEC(国际电工委员会)61970系列标准及CIM(公共信息模型)CIS(组件接口规范)以组件对象模型为基础,将EMS应用程序的研制规范化。

  随着计算机技术的广泛应用,电力系统的安全稳定运行越来越依赖于基于微机技术的硬件装置和软件产品。接线分析、潮流计算、故障计算等是许多电力系统分析计算软件的基本内容,通过多年的理论研究和工程实践,己形成一套成熟的理论和行之有效的算法。就理论本身而言,算法己能满足绝大部分工程需要,也就是说,多年来,相当一部分科研人员和工程人员不可否认地陷入工程的泥潭,大学硕士生,从事电力系统智能设计与信息管理的研多人多次地重复同一工作,不同企业、工作单元间无法共享代码,即使同一工作单元甚至同一个人编写的代码,很多情况下由于应用环境及客户需求的不同不得不推倒重来,造成资源的巨大浪费,很大程度上阻碍了应用软件的推广。

  时至今日组件软件技术己不陌生,从OLE到ActiveX,从COM到DCOM,微软将其独立于语言的二进制代码重用的构想变为现实,为解决软件开发过程中的诸多弊端提供了一剂良方,也为软件业开拓了广阔前景。

  1传统软件的不足分析电力系统传统应用软件体系结构和设计思想等方面的原因,主要存在以下问题,造成软件生产及应用中的资源浪费。

  软件对应用环境的适应性差,很难在不同应用环境间共享代码;随着环境的变更,许多代码失去其生命力,不得不重复开发;软件可维护性差,难以适应设备配置、电网结构及保护整定原则的差异,难以及时应用新理论、新方法,适应生产运行的新要求。从而造成软件开发周期长、成本高的恶性循环。

  软件严重依赖于编程语言,用不同语言开发的应用难以交互,开发人员必须在各种编程语言间做出取舍,在同一应用中难以荟萃各种编程语言提供的优良性能,因而软件产品不能满足多方面的需求。

  封闭的应用程序体系结构缺乏必要的灵活性各部分频繁传递数据,关系错综复杂没有形成足够独立的功能模块,应用一旦成型,难再变更。

  面向代码而非面向服务的设计框架缺乏开放性,难以满足日益广泛的分布式网络应用的需求。

  2面向对象代码重用的局限性面向对象编程某种程度上是软件业乐于接受的方案。简单地说,面向对象编程技术的目标并不是用模仿计算机逻辑的程序方式以方便编程,而是让开发者按照现实世界人们思考问题的模式编写程序。面向对象编程得到大规模普及是因为它允许开发者可以在完全不同的工程之间共享代码,但这种重用却局限于语言和应用环境。即它们一般要求原始的开发者和打算重用代码的人使用同样的编程语言。如某个类库使用C++编写的,那么用其它语言编写的应用程序就基本上不能重用该代码;同样,ava类就只能在ava程序中使用。

  真正的代码重用意味着代码必须是以足够通用的方式为重建更大型的代码而编写,而且还能够按照代码的工作方式得到定制。所以,虽然使用面向对象编程比不使用它能获得相对多的软件重用,但却面对上述局限。如何将代码共享与重用应用到实际的、现实的编程中,虽然面向对象编程长期以来一直作为对这个问题的最直接解决方案,但显然未尽人意。

  3组件软件技术的优越性组件技术亦可理解为“基于对象”的编程技术,它与软件业看好多年的面向对象技术有着深厚渊源,却又有着本质的区别。如上所述,对于使用不同语言的编程人员间的合作与代码共享,面向对象技术无能为力。面对客户提出的新要求、应用的新环境或研发的新进展,很多代码成为‘食之无味,弃之不甘“的尴尬。组件技术应运而生,通过接口与实现的分离,使得代码完全走向市场,程序员不必重复许多人都己做过的工作,集中精力于新功能的实现,甚至不需编写任何代码,即可组装功能完善的大型应用。正如pc厂商完全可以通过购买各种部件组装性能优良的PC机,而无需自己生产所有部件,亦不必关心部件的材质、构造等内部细节,语言独立性、可重用性、互操作性及独立发展性等优点的集中体现。

  3.1组件对象COM定义并实现了软部件机制,可将这些软部件统称为“对象”。COM对象与C++类很相似,它们都支持封装、多态性及继承。然而,作为二进制对象的COM对象又不同于C++对象,COM对象关心的仅是接口。COM部件之所以能构造应用程序,完全依赖于部件所支持的接口,一个COM对象所具备的功能也是通过接口体现。结合数据库和网络技术,一个大型分布式应用完全可以由一系列功能独立的软部件来构建。

  3.2组件的实现正是接口使得组件可与用户及其它应用程序进行通讯,没有接口,COM组件就毫无用处;接口定义软件和组件能利用的公用功能,是组件对外界的唯一窗口。接口的设计取决于组件本身的功能及其与其它应用程序或组件的通讯,接口设计的合理与否直接关系到组件功能的有效实现及其与其它应用的通讯机制,进而影响整个应用的可重用性和可维护性。

  组件的实现从接口的设计开始,根据组件所要实现的功能及其与其它相关应用的交互规划接口,并力求功能模块相互独立且可灵活交互,维护组件对语言及应用的独立性和组件间交互的灵活性;当一个组件需要调用其它组件的功能或将信息发送给其它组件时,还需妥善处理组件间的调用、触发关系;在大型分布式应用中,组件的功能划分也是设计初期须慎重考虑的问题。

  4组件软件技术在电力系统中的适应性只需部件具有醒的功能。这也正是组象的bli.调度负荷的加洛电力系统应用软件灵的bookmark1电力系统中,由于各电网结构的差异及规划设计、运行分析等不同功能要求,应用软件的开发亦存在不同的侧重点。为特定系统研制的特定应用,很难推广。而这些应用中有相当一部分(如接线分析、潮流计算等)公共的、基本的功能,这势必造成相关应用中重复开发完成这些功能的代码;另外,面向对象技术通过实现继承实现的代码的重用,却限制了对象足够的独立发展性;再者,随着电力系统生产运行中科技含量的加及电网规模化造成要求也日益增加,以往自成体系、闭关自守的封闭式应用往往捉襟见肘,难以两全。应用组件软件技术将接线分析、潮流计算等基本功能封装为独立的软部件,对外提供说明其功能的接口及功能函数,而不必考虑软部件将有谁怎样实用。客户调用相应的接口函数获得其所需的功能;当然,也可以如PC厂商一样选择需要的部件、以任意的方式构建自己的谐波分析、继电保护等应用,而不需要自己生产任何源代码,不必拘泥于特定的结构方式。

  如此博采众长的“拿来主义”,突破了“自给自足”的局限,使得电力系统软件生产社会化、规范化,必将提高资源利用率,推动新技术、新方法的应用,更有效地保证电力系统的安全稳定运行。

  5故障计算组件笔者基于组件软件技术开发了故障计算组件,在不同开发环境和电力系统应用软件中能够“即插即用”,避免了重复开发,实现了软件资源的共享。

  由于实现了软部件,克服了以往“牵一发而动全身”

  的弊端,相关的软件有很好的可维护性和可扩充性,并将大大缩短电力系统其它应用的开发周期。

  为简便起见,组件对外提供一个接口,封装其故障计算的功能。定义如下:故障计算采用基于多口网络理论的补偿法,其原理详见。

  本文所实现故障计算组件为基本组件,没有复用其它组件,但在实际使用中,故障计算在一定程度上依赖于潮流计算,以获得必要的数据。笔者前期开发了潮流计算基本组件,提供接口ILoad- 6测试组件技术的宗旨在于其对语言、平台的独立性,笔者用VisualC+卜6.0实现组件,并分别在普遍使用的VisualC++60和VisualBasic6.0中进行了测试;该组件在图形化继电保护整定计算软件中应用性能良好。

  7结束语COM不是语言,而是使软组件象对象一样彼此交互的一种二进制标准,它所提供的组件对象模型弥合了面向对象程序设计的不足。组件技术在电力系统软件设计中的应用尚处尝试阶段,还有很多细节需要深入研究;其广泛应用将促进研发人员间的交流合作,推动软件生产的标准化、规范化;它所倡导的多层分布式应用体系结构将是未来软件的总体模型。

网友评论

共有0条评论
马上注册
在线客服系统