研究自动生成EMS系统的SVG图技术

(整期优先)网络出版时间:2018-12-22
/ 3

研究自动生成EMS系统的SVG图技术

陈栋

(深圳供电局有限公司广东省深圳市518000)

摘要:电网能量管理系统EMS采用标准的SVG矢量图,本文研究了自动化生成SVG矢量图技术,实现智能化维护EMS图形,有效提高了维护效率。

关键词:SVG;EMS;自动生成;转换工具

0引言

图形是EMS系统展示信息的重要途径,SVG是基于XML的二维图形描述语言,采用SVG格式进行图形转换,使保存的文件具有很强的通用性,不仅可供Web调用或第三方应用软件使用,还有利于不同开发商的能量管理系统EMS进行图形信息交互,是当前图形转换的最佳方案[1]。EMS系统监控涉及画面众多,主要有以下几类:一部分是以厂站接线图为代表的SCADA电网拓扑图;另一部分是各应用模块的专用图像如AVC、AGC等;还有一部分是以表格形式展示的监视表,比如稳控系统可切负荷监视表、错峰限电表等。

1SVG概述

SVG英文全称为ScalableVectorGraphics,为可缩放的矢量图形。SVG是基于XML格式的文件,严格按照W3C标准开发,是一种开放标准的矢量图形语言。SVG支持对矢量图形、图像、文字及动画的描述,尤其对矢量图形有非常强大的处理能力,不仅可以通过特定的标记描述矩形、圆形、椭圆、多边形、直线和折线等基本图形,对于贝赛尔曲线等也同样有所支持,同时还支持色彩变化、滤镜和遮照、裁减、音效、以及对象嵌套和组合等功能[2]。SVG最奇妙之处在于它是一种文本格式的图像。也就是说,我们可以不用任何图像处理工具,仅仅用记事本就可以生成一个SVG图像[3]。SVG发布在WEB服务器,具备在线查看、矢量图形浏览的功能,如图1

图2自动生成厂站接线图的流程

2自动生成SVG矢量图设计

本论文对SVG厂站接线图和EXCEL表格转换SVG两种形式自动生成SVG矢量图进行设计。

图3EXCEL生成SVG业务流程图

2.1自动生成厂站接线图的SVG

在EMS系统中厂站接线图采用系统固定的图元构成SVG格式的矢量图。固定图元包括电网所有的一次设备,EMS系统根据电网实际接线情况将图元进行组合,绘制成厂站接线图。

本论文对已有图元如何根据电网实际接线情况进行自动组合的技术进行研究。主要流程如图2所示。首先在信息系统上将厂站接线信息建立数字档案,通过文本格式经过隔离装置传送至EMS三区,然后经过防火墙传送至EMS一区。EMS一区根据接收到的厂站接线信息进行自动组合,形成接线图,同时可以进行人工配置修正。

2.2自动转换EXCEL格式的SVG

本系统核心设计分为三部分:一、文件选择功能:能够自动对报表格式进行判断,是否为EXCEL格式文档,并提供解析文档的所在的路径;二、文件生成功能:默认生成的文件在源文件EXCEL的路径下,同时也选择其他生成路径,确认后生成SVG文件;三、文件修改功能:生成SVG后,系统会展示SVG页面,右键弹出选项修改字体颜色、背景进行微调。系统操作流程如图3所示。

3开发自动生成SVG软件

本论文对两种形式的自动生成SVG进行开发,第一种主要是在EMS系统上开发,第二种则需开发第三方软件。

3.1自动生成SVG接线图的开发

在EMS模块上扩展,采用C语言进行开发,主要是增加图元按照接线图的逻辑进行组合模块。在EMS数据库中增加厂站接线图的拓扑信息,这部分根据信息系统转发过来的接线信息生成。在EMS原有的图模一体化基础上开发自动生成拓扑的功能。EMS系统的图元在SVG上实现并不复杂,如开关的语句[4]:

<symbolid="breaker""viewBox="004040">

<g>

<rectx="4"y="10"width="12"height="8"/>

<linex1="0"y1="14"x2="4"y2="14"/>

<linex1="16"y1="14"x2="24"y2="14"/>

</g>

</symbol>

自动生成拓扑主要基于以下基础信息:1.厂站的设备个数,如多少条母线、多少台主变、多少条线路等;2.根据电力系统的间隔属性,生成设备间隔的基础组合,如三卷变有变高、变中、变低三个间隔,对应的开关、刀闸、接地刀闸等按照电力系统规则自动生成基础简隔;3.根据信息系统的接线信息在EMS系统上生成拓扑信息,如线路所挂的母线,设备物理位置排序,主变所挂的母线;4.自动调整图元之间的距离,按照平均距离进行摆放设备图元。5.自动生成其他基础属性,如主变间隔自动生成档位、油温、线温等。

关于接线图连接关系有效性可以通过SVG属性的扩展,对一次设备及其连接关系进行标识和建模,并建立与二次装置的关联的方式描述一个变电站的功能结构等方法来完成[5]。

3.2EXCEL转换SVG的开发

3.2.1程序架构

采用WinForm框架,在.NET环境下快速开发系统提供了强大的技术支持,开发人员不需要重复建设基础功能和公共模块,框架本身提供了强大的函数库和开发包,代码生成器自动生成了界面(FORM)、业务层(BLL)、数据层(DAL)、模型(ORM)及业务工程模块(DLL),程序员只须集中精力专注业务部分的工作,因此大大提高开发效率和节约开发成本;

本设计中,将源文件EXCEL报表的两类后缀.xls和.xlsx,经由系统工具转换,生成目标文件后缀为.SVG。通过数据流的重组,实现EXCEL向SVG转换,设计架构如图4所示。

图4输出SVG数据流

3.2.2核心模块功能

引用NPOI类文件:NPOI是一个开源的C”读写EXCEL等微软OLE2组件文档的项目,在没有安装Office的情况下,能对EXCEL文档进行读、写操作,有利于系统很好的移植

为完成转换工作,设计了4个方法

1、openFile_Click():选择需要转换文件的全路径,并判断后缀是否为.xls和.xlsx

2、parseFile_EXCELSVG_Click():选择生成SVG文件的路径

3、EXCELToDataTable():

读取ISheet目录,如果没有找到指定的sheetName对应的sheet,则尝试获取第一个sheet;一行最后一个cell的编号,即总的列数;遍历数据中,没有数据的行默认是null,无需写入数据,使用continue跳出;没有数据的单元格都默认是null。对于有些数据,需要合并显示,需要判断合并单元格是否重载,调用isMergeCell时要在输出变量前加out;按照以上方式,将EXCEL解析的数据存放在DataTable中。

4、ChangeExeclToSVG():

创建一个XmlDocumentxmlDoc=newXmlDocument()格式对象,用于存储SVG数据的对象;创建类型声明节点,给节点属性赋值,此节点为SVG的属性节点;创建并添加foreignObject节点,foreignObject元素允许包含外来的XML命名空间,其图形内容是别的用户代理绘制的。这个被包含的外来图形内容服从SVG变形和合成;添加body节点,显示页面的内容;添加tabel节点,相当于EXCEL的sheet页;添加tr和td节点及数据,此方法就是读取内存中EXCEL数据流,对数据进行重组,生成SVG数据流,拼装存储为SVG文件

生成SVG格式如下

<?xmlversion="1.0"encoding="utf-8"standalone="yes"?>

<SVGviewBox="(0,0,1500,1200)"xmlns="http://www.w3.org/2000/SVG"xmlns:xlink="http://www.w3.org/1999/xlink"xmlns:cge="http://www.cim.com">

<foreignObjectx="0"y="0"width="100%"height="100%">

<bodyxmlns="http://www.w3.org/1999/xhtml">

<tableid="tableId"border="0"cellpadding="0"cellspacing="0">

<trheight="35px">

<td>序号</td>

<td>站名</td>

<td>电压等级(kV)</td>

<td>线路</td>

<td>负荷</td>

<td>级别</td>

</tr>

......

......

</table>

</body>

</foreignObject>

</SVG>

这部分工作将原EXCEL报表数据,以SVG格式生成图表参考展示

3.2.3SVG图模发布

生成的SVG需通过SCADA系统展示。上传SVG至SCADA系统有两种方式:最简单的方式是将已生成的SVG报表通过U盘的方式,拷贝到SCADA系统中相应的目录,此种方法费时费力。通过SFTP方式上传,sftp是SecureFileTransferProtocol的缩写,安全文件传送协议。可以为传输文件提供一种安全的网络的加密方法。因为SFTP使用加密传输认证信息和传输的数据,所以,使用SFTP是非常安全的。SVG报表通过SFTP安全的上传SCADA系统指定的目录,经SCADA系统对SVG图模的解析后,用户可以在SCADA系统浏览查看

4结束语

图形是EMS系统的重要组成部分,传统的人工维护出错率一直未改善,智能化维护技术成为解决这一历史问题的重要手段。本论文研究的自动生成EMS系统的SVG矢量图,有力的证明了其可行性,为EMS系统的智能化开创了新视界。

参考文献

[1]SVG技术在电网调度自动化系统中的应用.电力系统自动化,2015,29卷13期.

[2]SVG及其在电力系统软件图形化中的应用初探继电器2004,32卷16期.

[3]基于XSL技术SVG图像的更新计算机与现代化2004年第8期

[4]SVG在电网调度员培训仿真系统中的应用[J].信息化研究,2003,29(11):12-15.

[5]基于CIM/SVG图模一体编辑器系统的设计及实现继电器2006,34卷23期.