工控网首页
>

应用设计

>

基于Visual Graph图形系统的电力系统开发

基于Visual Graph图形系统的电力系统开发

0.引言

  在EMS中,图形界面是人机接口的重要组成部分。其中在图形建模及开 发方面,早在上世纪八十年代就提出了面向对象建模的思路(Object-Oriented, 即OO 模型) [1-4]。这种自上而下的建模方法有代码重用率高、开发周期较短以 及便于维护等优点。不过,对于传统的OO方法,目前大多仍从底层开发(如 Windows API, MFC等[5,6])的方式,一旦涉及相对复杂的图形技术,代码将急速 膨胀,软件的开发周期依然相当可观。
本文提出了一种新的图形建模及开发方法:面向图形对象的建模 (Graphic Object-Oriented,简称GOO)方法。它与传统面向对象的图 形建模方法相比,主要区别在于它关注的不再是怎样从计算机底层代码去实现图 形,而是可视化的图形对象。图形对象是由相应的图形类生成的。图形类除了拥 有一般类的特征之外,还拥有可视的图形,能够直接编辑,同时也可以通过程序 代码来操纵。GOO建模的特点决定了它需要比以往更高等级的开发平台。该平台需 要拥有完全可视的图形开发人机接口,而且能够内部管理各种图形交互事件并提 供基本的图形对象和建模工具。故GOO建模起点较之OO建模更高,但对开发者而言 难度则大大降低,效率也大幅度提高。
本文基于Visual Graph图形平台(以下简称VG),图形建模采用自上而下 的类的继承的思路:在VG提供的基本的图形单元类的基础上进行继承和扩充,建 立各种元件部件类,再把这些部件组合,形成各种电力元件的模型。最后绘制复 杂的电力系统。

1.VG的基本结构及基本单元类

  1.1VG的基本结构
目前国内外已经开发了多种组态式图形通用系统,如ArcObject、 VectorDraw、JFDraw, Visual Graph等。其中VG是一种ActiveX组件,主要包括 一套基本可视图形类库和管理图形的接口,另外还提供图形开发建模的工具。其 中的可视图形类有各种成员属性和成员函数,可通过一套语法简洁的脚本语言来 操作图形,并对外提供编程接口,内嵌到各编程工具中进行开发。
1.2VG的基本单元类
VG提供一个基本图形单元类-IUnit,它由描述图形单 元特征的基本属性和函数组成,例如名称Name,坐标Left、Top,尺寸Width、 Height,移动函数MoveTo(x,y)等,设计时既可通过鼠标操作来修改图形,也可直 接设置相应属性值。Unit下面继承有四种子类:
  文字单元类 IText:该类为文本框对象,成员属性包括 文字内容Text,字体Font等。
  形状单元类 IShape:该类包括矩形、椭圆、圆角矩形 、圆弧四种形状对象,成员属性包括线条颜色LineColor、线宽LineWidth、背景 颜色BackColor等。
  折线单元类 ILine:该类包括点、线、连接点、连接线 ,成员属性包括组成折线的点集合Points[i]、各点类型属性Bytes[i]、线条类形 LineType等。其中连接线可以连接两个图形,形成一组拓扑连接关系。
  元件单元类 IElement:该类看作一个类似容器的空白 图形,它容纳其他的子图形以形成新的图形类,其成员属性包括组成元件的子对 象集合Units[i],子对象数目UnitCount等。由上述的几种基本图形类可以在 IElement中绘制任意复杂的二维图形,组成一个新的图形类,即新的元件类。本 文最后要建立的电力元件就是用IElement制作的图形元件类。
上述即是VG提供的基本图形单元类,除此之外,VG还提供了对图形的基本 操作函数,包括添加、删除、移动、旋转、对齐、缩放、拷贝、剪切、粘贴、撤 销、恢复、修改颜色、文本框字体等。对于复杂的操作,可用这些函数不同的组 合来实现。

2.电力元件部件类

  本文将电力元件定义为图形对象端口对象 的有序组合。图形对象是描述电力元件的图形符号,以一次设备单线图 为例,如三绕组变压器是由三个圆表示,负荷由一根箭头线表示等。端口对象则 是元件之间连接的纽带。如图1所示,””代表元件的一个端口,图中G1和BK1之 间的端口重合,则二者已经连接在一起,在VG中元件可以通过端口的自动吸附来 实现连接。
元件中的每个图形对象或者端口对象就称为该元件的一个部件。元件部件 类由图形类和端口类组成。二者都继承自基本图形类,本文定义了如下的端口类 和图形类:
  1)端口部件类,MyPort:继承自VG的ILine中的连接 线,该线只包含一个点,即一根退化为点的连接线。端口部件类除了折线单元类 的属性外,还扩充了如下自定义的属性:
电压等级Vn,整型。缺省值为0,代表尚未指定电压等 级;
端口序号PNo,整形,只读。为方便按电压等级着色, 在同一元件中,规定不同电压等级端口的端口序号是不同的,而同一电压等级中 端口的端口序号是相同的。比如线路、开关等元件两端的端口电压等级相同,则 其PNo都是0,而含有多电压等级的元件如图1中的三绕组变压器T1,它有三个端口 ,电压等级都不同,其端口序号分别为0、1、2,而图1中的断路器BK1,有两个端 口,电压等级相等,端口序号均为0。

图1元件的端口、端口序号、元件之间的连接及不同电压等级 着色示意图
Fig1 Ports of elements, No. of ports, connection between elements and coloring of different parts of element by different voltage classes

  端口带电状态 PState,整型,指该 端口在带电着色后的状态,值0,1依次代表停电、带电,缺省值为0;
  端口类型PType,整形,指该端口所在支路的类型,值 为0,1,2依次代表辐射支路、桥路和环路,缺省值为0;
  节点号PNodeNo,指该端口所连接的电气节点序号,缺 省值0代表尚未分配节点号。
  2)图形部件类MyGraph:继承自VG的基本图形单元类 IUnit,下面继承有形状类MyShape和线类MyLine,二者分别又同时继承自IShape 和ILine。为了方便按电压等级着色,这两个类扩充了一个自定义属性PNo,其值 与同电压等级端口中的PNo相同。

3.电力元件类

  建立好了元件的基本部件图形类和端口类之后,再扩充其 它一些必要的属性,就可以组合起来形成各种类型的电力元件。
  电力元件类MyElement:继承自IElement,主要属性如 下:
图形连接的集合Links[i](系统自带属性),从该属性 可以得到某个连接所在的本元件的连接端口Port,以及该连接连到的另一元件 LinkUnit及其端口LinkPort。如图1,G1只有一个连接:G1.Links [0].Port=G1.Port0,G1.Links[0].LinkUnit=BK1,G1.Links [0].LinkPort=BK1.Port0,其它元件的该属性也类似于此。此属性可方便地实现 深度/广度优先遍历。
TypeNo,元件的类型号,整型,只读,如可规定1代表 发电机、2代表负荷等;
  SearchState,元件的被遍历状态,缺省值0表示尚未被 遍历到,1表示已经被遍历;
这样电力元件类确定后,就可以在其内加入图形部件和端口部件,组成各 种类型的元件。电力元件的类型一般比较稳定,可以分为如下的几类:
  功率类,单端口元件,包括发电机、调相机、负荷、接 地电容、电抗等;
  母线类,单端口元件无阻抗的元件;
  开关类,双端口元件,包括开关、刀闸等,两端口同属 一个电压等级。开关类有特殊属性开关状态State,整型,0代表断开,1代表闭合 ;
  变压器类,多端口元件,包括各种变压器,各端口电压 等级Vn不同,则各端口的PNo也不同;
  阻抗类,双端口元件,包括架空线、电缆、串联电抗器 、串联电容器等元件,各端口的PNo相同。

4.标注类

  标注类MyLabel:继承IText类,增加自 定义属性UnitName,即该标注所指的元件名 ,字符串型。标注类用来对元件进行标注,如元件名称,电气参数等。
图2为电力元件类图形建模类的结构示意图。


图2电 力元件的类的建立
Fig 2 Construction of classes of various power elements

5.图形建模系统

本文的图形建模系统由三个模块组成,如图3所示:


图3 图形建模系统的结构
Fig3 The structure of Graphic Model Building System

  • 图形元件库模块:任何绘制的图都能以模板存入元件库成为元件,同时元 件也可以从库中直接调出添加到当前的图形编辑器中。元件库分类管理。
  • 图形编辑模块:提供矢量图的基本编辑功能,实现对图形的可视化编 辑。
  • 图形类编辑模块:把每个图形当作类看待,直接修改其成员属性和成 员函数。


建模时,按照自上而下,由简到繁的方式,从当前元件库中选取图形元件 搭建新的图形,同时设计其成员属性和成员函数,最后将绘制好的新图当<

投诉建议

提交

查看更多评论
其他资讯

查看更多

Visual Graph 演示(PPT)

四川鸿讯数据有限公司使用Visual Graph开发农电一体化综合管理平台

煤炭科学研究总院使用Visual Graph开发煤矿安全生产监控系统

可鲁电器使用Visual Graph开发DAPStudio案例

Visual Graph的绘图能力