首页 > 范文大全 > 正文

基于CIM/SVG图模数据一体化电力平台开发技术的对比研究

开篇:润墨网以专业的文秘视角,为您筛选了一篇基于CIM/SVG图模数据一体化电力平台开发技术的对比研究范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!

摘 要:可伸缩矢量图(SVG))以及通用信息模型(CIM)是电力系统自动化系统图形、模型信息共享和标准化,基于cim/svg图模数据一体化技术是不同电力应用系统间图形、数据模型信息共享以及可视化的关键课题之一。研究并对比了两种基于CIM/SVG图模一体化电力平台开发技术:基于VB、VC或者C#等编程工具从底层开发的模式;利用Visio二次开发技术进行开发的模式。从四个主要模块的开发对两种开发模式进行对比,分析了两种开发模式的各自的特点,为开发者根据需要采用不同的开发方法提供一定的依据。

关键词:CIM/SVG 数据一体化 电力平台

中图分类号:TP39 文献标识码:A 文章编号:1007-3973(2012)001-092 -02

基于CIM/SVG图模数据一体化技术的软件开发一般有两种途径,一种途径是全部基于某种编程语言从底层开发;另外一种途径是利用Microsoft Visio进行二次开发。本文主要从以下几个方面对两种开发平台的方法进行对比:图元的设计;图形系统的开发;实现拓扑的连接;CIM模型的实现。

1 设备图元建模

设备图元模型包括图形属性和应用属性,图形属性指设备在图形系统中的几何表示,应用属性为存储在数据库中供各种应用使用的设备参数等信息,设备图元建模即实现设备图形属性和应用属性的关联统一。

1.1 基于Visio的电力设备图元建模

基于Visio的电力设备图元建模一方面可以利用Visio原有的图元,另外还可对通过原有图元进行修改或者重新开发新图元,无论是自作图元还是定义图元的属性,基于Visio对电力设备图元建模,可极大地减少工作量。

修改Actions区域就可修改模具的右击菜单;修改Connection Points区域就可修改图元的连接点;此外还可对其他区域进行修改,具体可参考Visio的帮助文档,进而了解每个区域和单元的内容及各种函数的用法。

目前已有专为开发Visio图形开发而开发出来的工具――shape studio,利用它可更方便地修改图元的形状、定义图元的动作属性和状态属性等。

1.2 基于SVG编程的电力设备图元建模

通过从低层编程实现基于SVG的电力设备图元建模可以通过编写SVG文档来实现。在编写SVG图元时要按照一定的规范,因而在开发SVG图元时需要对SVG的元素熟悉。SVG的元素包括图形元素、容器元素、图形引用元素、文本、SVG文档片断内容。SVG图元一般由多个元素组成的,其中几个重要的元素包括元素,元素,元素,元素。

做好SVG图元的形状之后,还要开发图元的应用属性,使图元能够实现图形属性和其应用属性的统一,因此基于SVG的电力设备图元建模还需要在数据库中建表或者建立外部文件,将图元的参数属性保存起来,再通过其图元的ID将其图形和属性关联起来,这样才算完整地实现基于SVG的电力设备图元建模。

由上可知,基于Visio的电力设备图元建模,可以在原有图元的基础上开发或者制作新图元,而且Visio提供的shape sheet表格,可以很方便的使图元的图形属性和应用属性结合起来,不需要自己去编写代码。但也存在一定的缺点,例如利用Visio开发的图元,二维图形不能黏附一维图形,这就使图形的连接上造成不方便。而从低层编程实现基于SVG的电力设备图元建模,就需要对SVG的元素和规范熟悉,开发的工作量比较大,但是这样具有很大的独立性,可以完全根据用户的需要设计出图元。

2 图形系统的开发

图形系统的主要功能是提供交互式的窗体界面, 通过它可实现图形编辑、图纸绘制以及元件数据输入、修改、设置、查询和显示等。利用Visio二次开发和底层开发的窗体界面所能实现的功能和开发步骤基本是差不多的。创建用户界面时,把控件从工具箱拖到窗体上的适当的位置,然后再双击控件,给它添加相应的处理代码,即可创建用户界面。Visio提供了Visio Drawing Control控件,使图形系统的功能更容易实现,更加完善。

2.省略环境中,在工具箱上添加Microsoft Visio 11.0 Drawing Control的COM 组件,然后就可以往Form中拖,这样就可以看到一个绘图框,和Visio软件中的绘图框是一样的。因为Microsoft Visio 11.0 Drawing Control 是一个Microsoft ActiveX控件,它提供了Visio 对象模型(API)和用户界面的完全访问能力,因此,可以将Visio图形和用户界面集成到应用程序中,自定义其外观并使应用程序自动具有Visio的功能。所以在这个控件的功能与它Visio中的功能是一样的,可以对控件中的元件实现一定的操作,如变换图元的格式、形状,复制粘贴等基本功能。

2.2 基于纯编程开发窗体

开发窗体界面时,工序和利用Visio来开发差不多,界面是比较容易开发的,但是如果要开发出一个有着Visio drawing control控件功能的图形系统,工作量是非常大的,需要自己添加很多功能,例如实现图形在画图界面中的翻转,复制粘贴,改变颜色等功能,虽然不是一件难事,但是如果所有的功能都要去编写大量的代码,那就需要很多时间和精力。

从底层开发窗体界面,可以与Visio开发一样将窗体、框架等元素完成,之后一般利用C#的gdi+技术来进行开发绘图区域,gdi+是从VC++的gdi发展而来的一种技术,利用gdi+提供的接口,可以构造各种和Visio图元一样的图形。但是由gdi+构造的图元不方便和SVG图元对应起来,进行旋转等操作时甚至要考虑复杂的坐标变换,并且当涉及到组合等复杂操作时也不如利用Visio的空间一样直接。开发这样一个画图的界面,需要很多控件,工作量很大,而且编辑控件的时候,不同图形用到的方法也不同。

3 实现拓扑的连接

图形之间的拓扑识别就是根据图形之间的连接点,识别图形之间的连接关系。开发一个图模一体化的平台,实现图形之间的拓扑连接是非常重要的,而且拓扑的识别,是平台实现如潮流计算等高级应用的基础。图形的拓扑识别方法有很多,但是利用Visio二次开发进行拓扑分析,会比从底层编写拓扑分析代码简便,减少工作量。

3.1 Visio二次开发中的拓扑分析

在Visio的二次开发中要确定图形之间的连接关系是简单的事,因为当一个图形被连接到另一个图形上时,在Visio的 对象模型中,它们之间的连接关系是通过connect 对象来表示的。 一旦获得connect对象的引用,就可查看哪些图形被连接,以及它们的连接方式。

对平台上的图进行拓扑分析时,是通过Visio提供的page. shapes对象对图纸上的每一个shape进行遍历,提取其shape.Connects属性和shape From Connects属性,这样就可以知道图元之间的连接关系。要开发基于CIM/SVG的图模一体化平台,拓扑分析就需要符合IEC61970标准,但是由于在IEC61970中是用terminal表示连接的端点。因此,要使平台符合IEC61970可以将它的每一个connect看作cim模型的一个terminal,再根据cim模型逐步拼接connectivity Node、topologic Node、topologic Island,这样就可以根据IEC61970来完成拓扑分析。

例子:IEEE 9节点算例连接图与拓扑分析结果

图2结果是拓扑分析的节点结果,结果为有9个拓扑节(TopologicalNode),就是图2中的节点。24个连接点(ConnectivityNode),根据连线的不同位置会有不同的结果。而连接关系则通过生成的CIM文件可以得到。

3.2 从底层开发实现拓扑分析

利用底层开发进行拓扑分析时关键在于热点的捕捉,即两个二维图形是否连接于一点的判定。为了便于处理,可以采用网格的形式,通过限制用户只能将图形端点画在网格交点处,既可以方便的判定两图形是否连接。同时,对每个图元限定若干个连接点,只有连接点才参与拓扑。遍历该电力网络图中的所有连接点,寻找所有坐标相同的连接点,这些连接点的交点即为一个connectivityNode,而与之对应,这些连接点也既是属于这个connectivityNode的Terminals。然后利用与Visio二次开发类似,也是根据cim模型拼接成topologicNode、以及topologicNode。

4 结论

本文对利用Visio二次开发与单纯用编程语言开发电力系统图模一体化平台作了几方面的比较,可以看到,利用Visio的二次开发技术,充分地发挥Visio强大的绘图和二次开发的功能,可以使平台容易地实现绘图功能和良好的人机交互界面,可以让开发人员更专注于平台的高级功能开发,缩短开发周期。但是,利用Visio进行二次开发,首先需要对Visio的开发很熟悉,而且开发出来的平台不能完全独立脱离Visio。不过总的来说,利用Visio开发图模一体化电力平台,与全部基于VB、VC或者C# 等开发工具的开发模式相比, 具有开发平台高、开发工作量少、开发周期短以及开发功能强大的特点, Visio的二次开发技术为图模一体化的软件的开发提供了有效的途径。

参考文献:

[1] 郭创新,齐旭,朱传柏,等.基于SVG的电力调度图形支撑平台设计与实现[J].电力系统及其自动化学报,2007,19(2):28-33.

[2] 李耀,章健,晋彦斌.基于Visio图形化的继电保护整定计算软件的研究[J].微计算机信息,2008,24(2-1):239-240.

[3] 万里.SVG元素和代码解释[EB/OL].

[4] 王健,陈剑云,屈志坚.基于SVG的电力图元库的设计与实现[J].继电器,2008,36(8):79-82.

[5] 美国Microsoft公司(莱恩工作室译).开发Microsoft Visio解决方案[M].北京:北京大学出版社,2002.