组件开发架构及在继电保护配置软件中应用.docVIP

组件开发架构及在继电保护配置软件中应用.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
组件开发架构及在继电保护配置软件中应用

组件开发架构及在继电保护配置软件中应用   摘 要:传统继电保护装置的功能主要由开发人员直接编写程序,开发工作量大,维护成本高,需要提高开发效率,为此开发了基于组件化、图形化配置软件。本文介绍了该软件的组件开发架构,架构由主框架、组件库、事件总线、主程序组成。主程序读取组件配置文件,加载和创建相关组件对象,组件对应的主窗体放置在主框架的界面容器内。组件之间需要协同配合时,通过发送和响应预定义的事件实现。在继电保护配置软件中应用了该组件架构,降低了模块间的耦合关系,提高了软件可扩展能力和开发集成效率。   关键词:组件;主框架;事件总线;继电保护软件   中图分类号:TP31 文献标识码:A\   1 引言(Introduction)   在人机界面软件的开发维护周期内,由于面向的领域较为复杂,软件的复杂度和规模在不断延伸,要求软件系统具有较强的演化能力[1,2]。这一方面要求开发人员能快速适应改变,减少软件维护的代价,另一方面又需要一种通用的方法来实现满足特定的需求,确保个性化的需求实现不影响已经成熟稳定的模块[3-8]。人机界面软件存在交互频繁、基于鼠标和键盘操作无规律触发、运行周期长等特点,用组件模式开发时,面临组件数据和界面管理、组件间交互配合等难点。本文设计了一种轻量级、组件开发集成架构,通过跨平台库开发,面向不同权限的用户,可配置加载不同组件,并在继电保护装置配置软件中进行了应用。   2 基于组件技术的软件架构(Software architecture   based on component technology)   2.1 组件概念与组件系统原理   组件(Component)是一个黑盒子,是可独立发布的二进制单元。组件对外的接口主要是API功能和端口,其中API是组件对外提供的功能,端口表示组件内部调用外部其他组件功能的函数。图1是一种组件模型[1]:   图1 组件模型   Fig.1 Component model   嵌入式装置是一个典型的组件系统,例如继电保护测控装置由若干块CPU/DSP/IO插件组成,不同的装置将具有独立功能的集成电路插件按照设计要求进行组装,通过总线进行高速通信和有效协同工作[9]。类比于物理装置,软组件系统由总线、接口、组件共三部分组成。组件通过预先定制的接口连接到总线上,总线是一个总控程序(宿主程序),负责组件之间的通信和互操作;接口负责组件启动、初始化、设置、注销等功能;组件实际上是普通的程序,可由界面、数据、函数组成,可以完成某种功能,编译为DLL。在对组件的接口定义了统一的规范后,系统投入运行时,用户可以根据自己的需要通过接口集成到系统中,也可卸载,而框架程序不用修改,如果总控程序正在运行,修改某个组件时,不用停止运行,通过这种技术,增强了系统的灵活性和扩展性,延长了软件系统的生命周期。   基于组件开发设计的重点包括:(1)实现对组件的管理,宿主程序可以搜索、加载、卸载组件和维护组件的状态。将这些功能放到组件配置树(组件容器)模块实现。(2)接口的设计和识别,接口是不同组件之间、宿主程序与组件之间的通信基础。宿主程序只有识别接口,才能加载组件。(3)资源的互斥和同步,多个组件的并行运行可能对申请资源产生竞争。(4)组件的设计和生成,组件系统的功能由组件实现,在设计时需考虑与组件相关的界面显示、数据处理能够高效进行。   2.2 组件接口设计   本文采用导出函数作为组件提供服务的接口,通过函数指针方式实现对象的映射和接口的调用。定义组件基类Component,编译形成comp.dll。组件有初始化、运行、停止等接口,有请求服务的回调函数,有发送组件状态的信号,其UML模型如图2所示。   图2 组件的UML模型   Fig.2 Component UML model   其C++主要接口定义如下:   class COMP_DECLSPEC Component:   public QObject {Q_OBJECT   public:   Component ();   virtual~Component()=0;   public://公共接口   virtual bool init(void*)=0;   virtual bool run()=0;   virtual bool stop()=0;   virtual void free()=0;   signals://信号   void sigStarted(bool);   void sigFinished(int);   void sigRequire (void*,int);   public slots://回调函数   virt

文档评论(0)

189****7685 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档