图1 采用PEMDS框架的分布式电力设备在线监测系统
框架设计的关键是找到所有子系统的共性体系结构模型进行抽象和实现。研制PEMDS时分析的要点集中于信号(或数据)的流动及处理,任何一个子系统都可简化地视为由数据采集单元和处理过程组成:数据采集单元获得被监测设备的原始信息;数据处理过程则对信息进行加工、处理,最后对设备某一状况作出估计。几乎所有的监测子系统都符合这一模型。如,介质损耗因数检测装置通过采集工频电流、电压信号或其相位差来计算tanδ,油中溶解气体检测装置通过采集气敏传感器的输出信号来计算气体组分和含量,其基本工作方式是数据采集及处理。
由于不同的监测参数跟随着不同的信号和数据处理方法,因此PEMDS要容纳不同的数据采集单元及任意的数据处理过程,需要对不同数据采集单元和处理过程进行抽象。
2 主要对象的模型设计
PEMDS能容纳多种检测装置,必须对系统中存在的数据类型动态地进行判断,调度相应的数据处理对象对数据进行处理。
先对“数据”进行抽象,在PEMDS中抽象出的数据对象,第一类是“矢量数据”。这种数据中的元素在逻辑上呈线性排列,一个坐标可枚举出数据中的每一个元素,在计算机中这种数据的典型代表是一维数组,如,一般数据采集卡采得的数据就是这种形式。第二类是“矩阵数据”,这种数据中的元素在逻辑上呈平面排列,需要两个坐标才能确定数据中的某一个元素,在计算机中这种数据的典型代表是二维数组。如,为反映局部放电统计特性生成的三维φ-q-n谱图(φ为放电相位;q为放电量;n为放电重复率)数据就属于这种类型。
“数据”被抽象为数据对象后,对“数据处理”也要进行抽象。PEMDS中将数据处理对象考虑为“可以接受一个数据对象,然后返回另一个数据对象”的接口。除了这一接口外,为了将数据处理对象集成进系统框架,还需要一些附加接口。如,数据处理对象应通知系统处理数据的类型,从而得知该数据处理对象能够处理数据的种类。
对客体的抽象取决于主体观察的角度。如对数据采集单元,在软件上抽象出该对象是为了通过它实施对实际硬件的控制,提供完成这种控制的手段。如PEMDS只知道对每个数据采集对象提供一系列预先规定的接口,在需要时调用相应接口,对接口的实现必须符合该接口相应的语义(Semantic),但它并不知道这些接口后面具体的实现方式。
这种通过接口来和对象交互的方式和传统意义上的接口有很大差别。传统的通过代码库或对象库向外界展示其功能和服务的方式,体现的是代码重用,框架体现的是设计重用,框架中的接口是客户(指框架)对服务提供者(指数据采集单元,数据,数据处理等对象)的要求,其规范由客户需要来制订。
3 框架的整体结构
PEMDS中,框架主要起对整个系统中的对象进行管理和调度的作用,同时提供一些通用性的服务,其结构见图2。目前已研制成JFY-3变压器局部放电监测子系统[1],已集成到PEMDS中。为了说明子系统和PEMDS的相互作用,将JFY-3子系统作为例子也置于图2中(虚线框中为JFY-3子系统组件,其余为PEMDS框架组件)。
图2 PEMDS的主要结构
4 对象的具体实现
在对象的具体实现上,PEMDS要求与之交互的对象实现为COM[2~3](组件对象模型:Component Object Model)对象。由于COM是二进制的对象模型,PEMDS中框架和对象的连接发生在运行时刻,系统动态地判断某一对象是否存在,考察它是否支持所需要的接口,并根据不同的结果采取不同的行为。因此,所有子系统与框架的集成是动态的,不需要进行源代码或库的编译或连接,只需要得到PEMDS的二进制运行映象并掌握对象实现规范,就可开发相应的监测子系统。所有的监测子系统运行在相同的框架中,只是负责实际数据采集和数据处理的对象不同。当新的接口发布时,不影响原有对象通过旧的接口和系统连接,而新的对象可利用新接口和系统交互。这解决了在运行中进行系统更新和版本控制的问题。在每一个子系统中,可根据实际安装的数据采集装置硬件来对数据采集对象软件进行灵活部署。此外,二进制的COM模型允许以任意开发语言和工具来实现COM对象,可使用最熟悉的语言和工具来进行开发。
采用COM的优点还在于其分布式版本DCOM(Distributed COM)支持局域网或Internet上的对象定位、创建、生命期管理和对象之间相互作用。当一个数据采集对象加入到系统中时,可以根据现场实际情况将它设置为本地或远程对象,而系统对它的操纵方式完全一样。这为现场的安装和部署提供了很大的灵活性,可随意部署数据采集装置的物理位置而无需重构软件。另外,使用DCOM使得远离现场的科研单位、管理机构可通过Internet直接和现场的数据采集对象交互,控制其运行,监视设备的状态。
5 框架软件设计的优越性
1) 解决了监测中心和各子系统之间的通讯。
2) 监测中心处的软件系统安装和部署与各子系统大致相同,不需要太多特定子系统相关的知识。
3) 每个子系统和监测中心的界面和操作方式几乎相同,整个系统在结构和风格上一致。
4) 框架将各个子系统开发中的重复工作大幅度减少,提高了生产率。
PEMDS为研究工作提供了一个很好的平台。任何一个新设计的数据处理对象在系统中注册后,即可在框架中运行并检验,使用不同数据采集单元采集到的数据,需要时马上进行远程数据采集来得到最新的现场数据。该数据处理对象一旦在PEMDS中完成调试、测试和算法检验,就可投入现场运用。
6 PEMDS中的软件体系结构和软件重用
PEMDS中的软件体系结构是一种连续批处理式(Batch sequential)和仓库集中存储(Repository)的混合模型[4],见图3。在框架的驱动下,各数据处理对象依次处理数据,后一个数据处理对象处理前一个对象的输出结果,形成批处理序列。同时,任何数据都存储于工作台中,形成共享数据区,该区为进行诊断处理提供了证据的来源。
图3 PEMDS中的主要体系结构模型
将系统设计为目前的模型主要考虑为:
1) 系统体系结构应该反映该系统的物理含义和人们对其的认识。对监测系统最直观的认识就是将它看作是一个数据采集单元加上一系列的数据处理过程,这种设计对于系统的理解和维护比较有利。
2) 系统体系结构设计应能完成系统必须具有的功能。需要把将来诊断系统的集成考虑在内。诊断系统需要一个数据集中放置的场所来进行证据的收集,因此需要一个象工作台这样的设计。
3) PEMDS的目标是要融合不同部门的工作,应尽可能采用一种平行结构而不是层次式或分级结构,从而使新的部件可迅速地加入到系统中。
软件体系结构的研究实际上是软件重用(Software Reuse)的新方向,偏重于设计重用(Design Reuse)。软件重用被认为是提高软件生产率和质量的重要途径[5],但至今仍面临许多困难。在电力设备监测领域的不同方向使用PEMDS应该属于代码重用,它确实已被编码和实现。但它作为一个框架,从一定意义上来说又应该属于设计重用,这种重用并不象通常的设计重用那样发生在软件工程的过程中,而是作为一个实际的产品出现。
7 结论
a.框架设计可以解决对发、变电站的各种设备进行分布式监测中遇到的软件协同等问题。
b.对在线监测装置进行抽象提炼出数据采集装置对象模型,使不同的在线监测装置运行在同一框架之下成为可能;对数据和数据处理过程进行抽象,提炼出适当的数据对象模型和数据处理对象模型,使从不同数据采集对象得到的数据能统一处理,给系统的扩充提供了灵活性。
c.采用COM可以解决在线监测中诸如系统动态配置,产品更新等问题。
参考文献
1 姜 磊等.新型固定式变压器放电在线监测系统.中国电工技术学会电工测试专委会’98学术会议论文集,泰安,1998
2 Brockschmidt K. Inside OLE. 2nd Ed. Washington: Microsoft Press, 1995
3 Mocrosoft corporation & digital equipment corporation. The component object model specification. Washington, Microsoft Corporation, 1995
4 Shaw M, David G. Software architecture: perspectives on an emerging discipline. Prentice Hall, Inc. 1996
5 Mili H et al. Reusing software: Issues and research directions. IEEE Trans software engineering 1995,21(6