基于SVG的监控组态软件界面的研究
刘毅;侯立刚
【摘 要】图形界面是构成监控组态软件的基本组成部分之一,对于该软件具有很大的影响.当前各种组态软件使用各自不同的图形样式来形成监控画面,使不同的软件系统间交互困难.为了克服这个缺点,提高编写监控画面的代码复用率,增强应用程序处理大量图形信息的效率,提出了建立监控组态软件的图形元素库,该库使用的是由国际标准推荐的SVG监控界面标准图片格式,并定义了设备单元属性的方式.同时,结合具有面向对象设计思想的ASF蜡染工程,研究和设计了组态软件监控图形元素库模块.并通过配置图元属性,与关系型SQL数据库对应,方便程序员录入数据,提高组态软件的总体水平.%The graphical interface is one of the basic components of the monitoring configuration software,which has a great impact on the software.However,a variety of configuration software currently used different graphic styles to form the monitor screen,so that different systems interact difficultly.To overcome this shortcoming and improve the reusing rate of code writing monitor screen and enhance applications efficiency of dealing with a lot of graphics information,this paper sets up a moni
toring graphics elements library of configuration software,which uses SVG recommended by the international image formats of monitoring interface,and elaborates the way to define equipment element property.Integrating Batik project of ASF (Apache software foundation)and adopting Object Orient Design Thought,the paper analyses and designs the monitoring graphics elements library module of configuration software.Configuring graph's properties as the corresponding with relational SQL datebase which facilitate the programmer inputs data,can improve the total level of the configuration software.
【期刊名称】《辽宁石油化工大学学报》
【年(卷),期】2016(036)006
【总页数】4页(P60-63)
【关键词】组态软件;SVG;界面;图形元素库
【作 者】刘毅;侯立刚
svg图形
【作者单位】辽宁石油化工大学 信息与控制工程学院,辽宁 抚顺 113001;辽宁石油化工大学 信息与控制工程学院,辽宁 抚顺 113001
【正文语种】中 文
【中图分类】TP311.5
组态软件是利用微机对工业过程进行控制和采集信息的自动化软件,它可以监视工业过程中的设备,反映设备的参数信息。监控组态软件主要包括监控图形界面模块、实时数据库模块和通信模块。其中,监控图形界面模块作为人机交互的接口,联系着监控人员和它所监控的设备。它能够将实时数据库中对应设备的状态反映给监控人员,对监控人员及时了解设备运行状况具有重要的意义[1]。
随着组态软件的广泛使用,需要不同的系统间能够实现信息共享和协同工作。但是,在传统的软件开发中,几乎都是组态软件开发商自行决定图形格式,使软件的灵活性和开放性受到限制。由于不同的组态软件开发商都有各自独立的标准,图形格式比较多样,让人们使用很不方便,而且存在兼容性差的问题。通过IEC 61970标准定义统一的系统图形格式,能够让以它为标准开发的组态软件达到数据共享及互相操作的目的。
SVG(可缩放矢量图像)是一个标准开放的矢量图像格式,它具有能够任意缩放、文件尺寸较小、适合网络传输、显示效果和彩控制能力超强等特点。此外, SVG是基于XML的应用图形格式,符合IEC61970标准的数据交互的原则,因此将SVG作为标准显示器的图形格式[2-4]。本文也采用它作为监控画面的标准图形格式。
Batik是由免费开放源码的Apache软件基金会推出的一套处理SVG图形的Java工具包,包括图像的生成、显示等功能[5]。本文基于SVG图形格式,通过建立监控组态的标准化图形元素库,提高组态软件监控图形元素的重复利用率,并利用Java中的Batik工具包的跨平台特点,研究和设计了一款监控组态图形软件。
监控图形系统的框架结构如图1所示。
显然,SVG图形是由相应的图形软件生成的。它的文件系统由三部分组成:监控图形库文档、CSS(层叠样式表)文档[6]和SVG文档。在监控图形库文档中,symbol是用来定义一个标准的系统设备的元素。在CSS文档中,定义了绘制图形的规则。在SVG文档中,设备通过use元素实例化。
Batik工具包可以让用户根据自己的需求格式来形成对应的矢量图形。在这个平台,所有的渲染是通过aphics2d(绘制2D图像的类)来实现的,并且该平台提供了drawRect(绘制矩形)、fillCircle(绘制圆形) 和drawString(绘制文本字符串)这样的方法方便用户使用。对于像显示器之类的抽象意义上的输出类型,都有相应的解决办法。此外,SVGGraphics2D(抽象类Graphics2D)具有生成SVG内容的新功能, 并且可以提供以下的技术支持:(1)允许应用程序导出SVG格式的图形;(2)提供利用DOM API(根据类名匹配元素)操作生成文档的能力[7-9]。
2.1 SVG图形文档结构的监控
如图2所示的SVG图形文件的文档结构符合监控图形系统对图形界面的要求。
2.2 应用实例
定义图形元素对象描述了一个新的图形元素类型,而图形元素对象则是一个图形元素类型声明的实例。一旦定义了某个图形元素,它就可以被SVG文档随时调用。因此,同一种图形元素不需要重新定义,因为图形元素对象能够被重新使用。在图形格式文件中,提供并使用了三种命令来定义图形元素。
defs确认SVG文档中图形元素的定义部分;
symbol用于定义重复使用的图形元素;
use用于声明图形元素。
通过对图形元素对象的定义和引用,使图形文件容量变小,间接缩短了图形文件传输时间并降低了计算机内存的消耗,有效提高了工作效率。
以下是一个变压器的定义和声明代码的例子[10]。
定义CSS:
DeviceStyle.css
.on
{
stroke:blue;
fill:none;
}
.off
{
stroke: yellow;
fill: none;
}
定义图形元素库:
ElementsLibrary.svg
defs
symbol id="transformer" viewBox="5 5 80 80"
circle cx="10" cy="25" r="10"/
circle cx="10" cy="30" r="10"/
/symbol
…
/defs
SVG文档中使用的元素:
MonitoringGraphics.svg
g
use xlink:href="#transformer" id="Byq B001" class="on" x="0" y="0" width="100%" height="100%"/
/g
以上代码的作用是定义和声明一个变压器。属性“id”表示变压器的地址代码;属性“xlink:href” 表示在这里使用变压器元素;属性“class”表示变压器的状态。例如,“class=on”表明变压器正在运行。
在生成组态软件的图形系统时,已经定义了基本图形元素和设备元素。当绘制监控图形界面时这两种元素都可以拿来使用,根据需要,通过元素属性配置模块来编辑几何属性,并统一由父类SVGShape(SVG形状)作为定义元素的方法。不管是基本图形元素还是设备元素,都要通过继承父类来实现。这样可以提高代码重用率,使设计思路更清晰,减少编码和维护的工作量,能够更好地体现面向对象的设计思想。
元素库模块和图形生成平台通过SVGModule(SVG模块)接口连接,并且每个图形元素可以通过配置文件加载,方便元素库的扩展。通过在配置文件中使用SVGModule适当的配置就能添加一个元素模块。图形绘制时,操作者首先点击绘图菜单,设置设备元素的路径。然后,通过单击鼠标,移动光标确定图形元素的具体位置。接下来采用Drawuse(SVGFrame框架、Rectangle矩形、String字符串)等方法绘制监控组态软件设施元素。最后,将元素显示
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论