APP下载

基于Batik及SVG的监控画面的图模库一体化平台设计

2010-03-23杨丰萍

华东交通大学学报 2010年5期
关键词:图元图形状态

杨丰萍,傅 华

(华东交通大学电气与电子工程学院,江西南昌330013)

目前,SCADA(Supervisory Control And Data Acquisition,数据采集与监视控制)系统的调度端软件主要由实时数据库、通信程序和用户图形界面程序组成。其中,用户图形界面通过判断实时数据库里对应设备的状态,以图形的方式实时地呈现给调度员,以便调度员及时掌握设备参数、运行状态,其重要性不言而喻。

SVG(Scalable VectorGraphics,可伸缩矢量图形)是一套基于XML(Extensib le Markup Language)语言的可缩放矢量图形语言描述规范。而SVG格式的电力调度自动化系统的图形交互方案(草案)是IEC 61970标准系列的核心内容之一,因此,SVG将在新一代调度端软件开发中逐步推广应用[1-2]。

Batik是基于Java技术的工具,目的在于使用Java应用程序Applet将所要使用的图片以SVG格式用于不同目的。应用Batik可以在任何Java可用的场合来操纵SVG文档,也可以使用不同的Batik模块来生成、操纵、转换代码及在应用程序Applet中研究SVG图像。

平台使用开源SVG图形编辑器平台GLIPSGraffitieditor(基于Batik开源项目),调用Hibernate(持久层框架)连接数据库,简化繁琐的数据配置过程。同时加入基于Batik的SVG显示模块,对于SVG图形进行拓扑动态着色,可极大改善SCADA系统软件的用户图形界面,便于和其他图形功能模块的集成。

1 绘图平台的总体框架

图模库一体化绘图平台的实质是设备图元对象与数据库记录一一对应,在定义一个设备图元对象的同时自动追加一条数据库记录。另一方面,要求设备图元的属性参数及其数据输入界面能够根据用户的要求进行修正,这样才能真正做到图形与数据库的一一对应,而且也能保证系统兼容性。

本文将SCADA系统监测画面的软件平台划分成图形绘制模块、图形显示模块、图模同步模块和模库同步模块进行设计和实现。图形绘制模块主要完成对基本图形和电力图元库操作。在电力监控画面生成的过程中,对画面上的图元基本几何属性和业务属性进行编辑。图形显示模块主要完成显示生成SVG,使用SVG viewing component模块对其进行拓扑动态着色。图模同步模块负责把SVG图元和CIM数据模型进行关联。模库同步模块利用持久层框架实现数据模型与实时数据库的关联。平台框架如图1所示。

2 绘图平台的组成模块

2.1 图形绘制模块和图元库的建立

电力图元库的建立的关键是为了解决各类图元的组合与复用的问题。电力SVG图元库文件包括SVG文档结构、样式表文件引用部分、电力图元定义部分、基本图元管理。

在SCADA监控画面中,有一些复杂图元如变压器、断路器、电容器等,都可以有多个基本几何图形组合而成。为了能够反复使用这些电力图元,在图元库文档中使用SVG符号标签<symbol>进行定义电力图元。利用<symbol>标签定义了标准电力系统常用设备图元形状,将相关图元聚合在一起,使多个基本图形构成一个整体,实现电力图元统一管理。为了复用绘好的电力设备图元,将常用的电力系统设备图元存储起来,写入同一个SVG文件,形成图元库。在绘制SVG图形过程中,生成的文件中会使用<use>标签,利用<xlink:href>这个属性,链接SVG图元库文件,完成对电力图元的调用,实现图元的复用性。

在监控画面生成的过程中,需要对监控画面上的一些图元的几何属性(如:轮廓颜色、填充颜色、线条宽度、几何位置等)进行实时编辑,使得监控画面更加方便调度员对设备图元的观测。

图1 SCADA系统监测画面的软件平台总体架构

2.2 图模同步模块

图模同步模块负责基于CIM的SVG图元建模,实现SVG图元和CIM数据模型的关联。由于电力SVG图元含有大量业务数据信息,为了应对人机交互的要求,实际的图形交互并非是对单纯的图形进行操作,而是需要后台数据的交互。所以,SVG图元建模其目的不在于描述图形的外观,而是表达出图元的类型,该类型就必须要符合CIM模型。

目前IEC 61970-301部分CIM包中,基于CIM的SVG图元建模主要用到核心包、拓扑包和电线包的部分内容,包含了变压器、互感器、导线等,覆盖了CIM中Sw itch,PowerTransformer,VoltageTransformer,Connector,Conductor等对象。

图2 基于CIM的SVG图元建模

依照这些CIM数据模型,使用Rational ROSE作为辅助建模工具,用统一建模语言UML(United Model Language)对SVG主要图元建模,如图2所示。在程序中创建SVG图元的类,利用id属性使得SVG图形和CIM数据模型类进行关联,达到图模同步的效果。

2.3 图形显示模块

图形显示模块使用SVG viewing component模块显示SVG图形并对其进行拓扑分析。SVG viewing component是Batik的核心模块,可以很容易浏览SVG图形并提供后台的交互功能。

Batik Swing组件模块的目标是提供一个Swing组件,可以用来显示SVG文件。JSVGCanvas类可以通过URI或者DOM树很容易地操作SVG文件,如旋转,缩放,平移,选择文本或激活超链接。将JSVGCanvas加入到Batik Swing应用程序中。在Batik Swing应用程序中跟踪所有显示或者操作SVG的事件。

在Batik环境下通过提供的JSVGCanvas对象获取当前显示SVG文件的DOM文档对象引用,通过对该DOM的操作对当前SVG图像在拓扑分析进行动态着色或者改变状态,程序如下:

拓扑结构是潮流分析、状态估计等高级应用的基础。在CIM中,与拓扑模型的建立相关的主要是核心包(Core)中的ConductingEquipment(导电设备类)和Terminal(端点类),导电设备一般有1个或2个端点;拓扑包(Topology)中的ConnectivityNode(连接节点类),TopologiealNode(拓扑节点类)和Topologieallsland(拓扑岛类);量测包(Meas),通过判断测点值是否相同可以知道这些导电设备的端点是否连接在同一个连接节点上。

拓扑分析是根据导电设备间的连接关系计算出整个电网的连接关系,通常需要将电网模型进行整理抽象。拓扑分析可分为两个过程,连接关系分析和网络拓扑分析。

连接关系分析即根据传导设备之间的连接关系,形成连接节点模型。连接线描述了设备间的关联关系,将其抽象为连接节点,连接节点信息为关联设备记。在SVG图元中定义该设备所关联的连接节点,除了要设置导电设备的连接节点,还需要在SVG文件中将连接线归入到指定的连接节点下,这样才能根据设备之间的连接关系动态的确定连接线的颜色。

网络拓扑分析,SCADA远动实时数据库中实时状态量方式变化时,向显示模块发送变化信息,其中包括图元ID和变化状态量。根据收到的信息,搜索到指定的导电设备。通过导电设备的连接节点形成一个拓扑节点,同一拓扑节点下的连接节点的状态是相同的。带电状态为1,不带电状态为0。拓扑流程图如图3所示。

网络拓扑分析主要以开关及进线为研究对象,开关和进线状态为分变合和合变分,不带电到带电和带电到不带电,因此,只要关注带电设备的连接点的状态,对其进行拓扑分析。例如,进线由不带电到带点时,开关由分变合时,一侧连接节点带电,设置为1,则另一侧连接节点要根据所连接的SVG图元状态量进行判别设置。如果连接的图元带电,另一侧连接节点设置为1,如果连接的图元不带电,另一侧连接节点设置为0。拓扑分析的对象仍然是带电状态改变的进线下闭合开关对侧连接节点和变位开关两侧状态不同的连接节点。利用信息进行拓扑分析后,根据拓扑结果利用SVG DOM对图元进行动态着色。

2.4 模库同步模块

模库同步模块负责CIM数据模型对象与实时数据库建立关联,并同步完成图元显示数据的存储和电力设备业务处理数据的录入,是图模库一体化配置的关键。本文采用Hibernate面向对象持久层框架,实现对象和数据库之间的关联,将上层的以Java作为开发语言建立的持久化类与底层的数据库实现分离开,模库同步模块的结构如图4所示。

面向对象持久层是指在数据管理系统(特别是关系型数据库管理系统)和面向对象的数据应用系统之间增加一层映射管理层,通常这种映射称为对象/关系映射。该映射文档详细定义和描述了类、类的属性、类之间关系,和对象类型的数据类型到关系型数据库相应元素的映射逻辑[6]。在绘制图形的时,输入所需的参数,并将参数存入数据库中,自动对监控系统数据进行配置。

图3 拓扑流程图

图4 模库同步模块的结构

3 软件平台在SCADA中的应用

本文分别采用Myeclipse和PostgreSQL作为计算机程序和数据库的开发工具,基于Batik的SVG viewing component模块,创建图形显示模块,导入SVG图形,对其进行拓扑分析。以刀闸为例,由合到分的过程,刀闸灰色表示断开、红色表示闭合,接线灰色表示不带电、红色表示带电。刀闸由原来闭合状态变为分开状态,同时,刀闸颜色由红色变为灰色,SVG图元发生变化的表示刀闸断开。

图5 SVG图元属性的配置

以变压器为例,在绘制SVG图形过程中,配置图元属性,在数据库中保存变压器信息。同时点击图元,弹出属性框中会显示配置的图元信息,方便查看和修改,见图5。

在深入研究SVG技术、持久化框架技术和IEC61970标准的CIM模型的基础上,在GLIPSGraffiti editor开源软件上实现了图形绘制模块、图模同步模块和模库同步模块,实现了图模库一体化。利用Hibernate持久层框架,提高实时数据访问性能,达到了SCADA系统的自动化工程配置的目的。根据实际的需要,对SVG图形拓扑动态着色,提高了系统的交互性和实时性,同时对跨平台的专业化的远动监控绘图软件具有重要的现实意义。

[1] 杨丰萍,冯春华,王健.基于Java和SVG的监控画面图形生成软件的设计[J].继电器,2008,36(3):32.

[2] 屈志坚,刘明光,陈秋琳.基于SVG和持久框架的SCADA图库一体化配置系统[J].电力自动化设备,2009,29(8):124.

[3] 杨丰萍,冯春华,陈剑云.基于SVG的远动系统监控画面的设计[J].计算机系统应用,2008,(12)1:91-93.

[4] 冯春华,杨丰萍.基于SVG的监控画面图库一体化的实现[J].华东交通大学学报,2007,24(4):104-107.

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

[6] 武爱萍,陈剑云,屈志坚.基于CIM的SCADA系统实时数据库模型设计实现[J].电力系统及其自动化学报,2008,20(2):105.

[7] 钱锋,唐国庆,顾全.基于CIM标准和SVG的分散式图模合并[J].电力系统自动化,2007,31(5):84-89.

[8] 李项军,夏靖波,武兆雪,罗斌贝骞.基于SVG的图形化网络拓扑显示模块设计[J].电光与控制,2007,14(5):160-167.

[9] 樊淑丽,王康元,邱家驹,等.基于SVG的电力信息可视化框架设计[J].继电器,2007,25(10):48-51.

猜你喜欢

图元图形状态
学术出版物插图的编排要求(一):图注
联锁表自动生成软件的设计与实现
状态联想
生命的另一种状态
分图形
找图形
坚持是成功前的状态
基于Qt绘图系统的图形应用优化研究与实现
图形变变变
图形配对