首页> 中国专利> 应用于SVG画面组态中的组态复用方法

应用于SVG画面组态中的组态复用方法

摘要

本发明公开了应用于SVG画面组态中的组态复用方法,本发明可以与SVG绘图工具提供的图元复用功能无缝的配合使用,实现出完整的SCADA画面组态功能,其中绘图工作完全交由SVG绘图工具来完成,数据驱动逻辑由自定义组态工具实现,二者之间的差异化操作由本发明自动弥合。本发明在提供完整组态功能的前提下大大缩短了开发一套画面组态软件的工作量,又能够屏蔽新技术带来的组态方法上的变化,照顾到了用户的使用习惯。

著录项

  • 公开/公告号CN106126779A

    专利类型发明专利

  • 公开/公告日2016-11-16

    原文格式PDF

  • 申请/专利号CN201610423631.3

  • 发明设计人 周金国;金舒;董胜刚;

    申请日2016-06-15

  • 分类号G06F17/50;

  • 代理机构南京纵横知识产权代理有限公司;

  • 代理人董建林

  • 地址 210032 江苏省南京市浦口高新区惠达路9号

  • 入库时间 2023-06-19 00:53:35

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2019-03-19

    授权

    授权

  • 2017-03-29

    著录事项变更 IPC(主分类):G06F17/50 变更前: 变更后: 申请日:20160615

    著录事项变更

  • 2016-12-14

    实质审查的生效 IPC(主分类):G06F17/50 申请日:20160615

    实质审查的生效

  • 2016-11-16

    公开

    公开

说明书

技术领域

本发明涉及一种组态复用方法,具体涉及一种应用于SVG画面组态中的组态复用方法。

背景技术

SVG(Scalable Vector Graphics,可缩放矢量图形)是由W3C定义的一种基于可扩展标记语言(XML)的,用于描述二维矢量图形的图形格式。目前的主流浏览器均已支持,至少是部分地支持SVG标准,这使得SVG成为一种天生的跨平台显示技术。

在内容与行为上,SVG与XHTML都非常类似。内容方面,SVG使用XML格式的文本内容来描述二维矢量图形,它将图形的组成定义为方(rect)、圆(circle)、直线(line)、路径(path)等有限的几种元素,通过为图形元素添加座标、尺寸与样式等属性来定义图元的形态。这些属性的格式遵守XHTML与CSS标准,但增加了一些图形显示与转换方面的内容。最终,不同形态的多个元素就可以组成一幅任意复杂的二维图像。行为方面,SVG支持JavaScript事件模型,通过在文件中嵌入动作响应脚本或是从外部引入脚本文件,在脚本中使用DOM API操作图形元素及其属性内容。该特性辅以AJAX、WebSocket等Web客户端与服务器通信手段,由来自服务器的消息通知触发脚本响应函数执行,便能够实现基于Web的SCADA功能。

此外,SVG的内容是XML格式的文本,因此既可以通过任意文本编辑器创建、读取、修改其内容,也可以使用大量既有的SVG绘图工具来绘制图形,更可以使用DOM API方便地编写自定义功能的SVG编辑器。

由于SVG拥有的这些现代图形渲染与操作特性,近年来,正有越来越多的监控系统采用或希望采用SVG来实现画面组态与实时显示功能。SCADA画面组态包含了两部分内容,画面图形与数据驱动逻辑脚本。基于SVG的画面组态,画面图形格式是SVG格式的,数据驱动脚本通过DOM API操作SVG中的图形元素。

然而,SVG标准的设计目的本不在于SCADA画面的实时显示,现有的SVG绘图工具也不能直接用于SCADA画面组态。

发明内容

为了解决上述技术问题,本发明提供了一种应用于SVG画面组态中的组态复用方法。

为了达到上述目的,本发明所采用的技术方案是:

应用于SVG画面组态中的组态复用方法,

根据待绘系统的结构创建对象树;

分析待绘系统中哪些组态内容为模型,哪些组态内容为画面;其中,模型为可复用的组态内容,画面为不可复用的组态内容,模型可以被画面也可以被模型引用,但是不可循环引用;

在对应节点下创建模型目录,在模型目录下创建模型,如果该模型引用了模型,则在该模型下创建其引用模型的模型实例;在对应节点下创建画面,如果该画面引用了模型,则在该画面下创建其引用模型的模型实例;

每创建一个创建模型目录,则在SVG绘图工具的symbols目录中自动创建一个SVG文件和模型图形;每创建一个画面,则在SVG绘图工具的symbols目录中自动创建一个SVG文件和画面图形;

在绘制系统时,将所需的模型图形和画面图形拖至窗口,即可完成复用。

画面、模型目录、模型和模型实例均为对象树中存储的对象,每种对象中添加了若干字段用来记录数据信息与拓扑关系;

画面包括以下字段:

名称:存储画面名称信息;

描述:存储关于画面的描述信息;

父节点:存储画面的父对象ID;

绘图文件:存储画面绘图文件的路径;

逻辑文件:存储画面逻辑文件的路径;

修改标志:记录绘图文件与逻辑文件是否被修改,画面汇编后,该标志清零;

模型目录包括以下字段:

名称:存储模型目录名称信息;

描述:存储模型目录描述信息;

父结点:存储模型目录的父对象ID;

模型目录文件:存储模型目录文件的路径;

模型包括以下字段:

名称:存储模型名称信息;

描述:存储模型描述信息;

父结点:存储模型的父对象ID;

绘图文件:存储模型绘图文件的路径;

逻辑文件:存储模型逻辑文件的路径;

模型实例包括以下字段:

名称:存储模型实例名称信息;

描述:存储模型实例描述信息;

父结点:存储模型实例的父对象ID;

模型链接:存储该模型实例引用的模型对象ID;

use引用:存储该模型实例对应的<use>标记的“id”属性值。

创建模型目录的过程为:

在节点下创建一个复用图元目录模版文件,文件名设置为模型目录ID,将复用图元目录模版文件中<title>标记设置为模型目录名称。

创建模型的过程为:

在模型目录中分别创建该模型的绘图文件与逻辑文件,文件名均为模型ID;在相应的模型目录文件中添加该模型的<symbol>与<use>标记对;将模型目录文件中该模型对应的<symbol>标记下的<title>标记内容设为模型名称。

修改模型的过程为,

修改模型,即修改模型的绘图文件,具体过程为:

遍历模型的绘图文件,找出其中的<use>标记,刷新模形下的模型实例;

更新该模型所属模型目录文件中的<symbol>标记下的内容;

更新所有引用该模型的画面/模型中的内容。

删除模型过程为,

删除模型目录下的模型;

在模型目录文件中删除该模型的<symbol>、<use>标记对;

更新引用了该模型的画面/模型中的内容。

修改画面的过程为,

遍历画面的绘图文件,找出其中的<use>标记,刷新画面下的模型实例。

汇编的过程为:

遍历系统的绘图文件,找到每一例<use>引用的模型的绘图文件,读取模型的绘图文件内容,为其中的图元标记id属性添加后缀,后缀内容为该<use>引用对应模型实例的ID,将修改后的模型图形内容替换<use>引用;

遍历系统的逻辑文件,找到每一例模型实参赋值,读取模型的逻辑文件,为其中的图元标记id属性添加后缀,后缀内容为该例引用对应模型实例的ID,再将数逻辑文件中每一例形参声明替换为实参;

将替换后的绘图文件与逻辑文件编译为图形文件与数据驱动脚本。

本发明所达到的有益效果:本发明可以与SVG绘图工具提供的图元复用功能无缝的配合使用,实现出完整的SCADA画面组态功能,其中绘图工作完全交由SVG绘图工具来完成,数据驱动逻辑由自定义组态工具实现,二者之间的差异化操作由本发明自动弥合;本发明在提供完整组态功能的前提下大大缩短了开发一套画面组态软件的工作量,又能够屏蔽新技术带来的组态方法上的变化,照顾到了用户的使用习惯。

具体实施方式

以下实施例仅用于更加清楚地说明本发明的技术方案,而不能以此来限制本发明的保护范围。

应用于SVG画面组态中的组态复用方法,包括:

1、根据待绘系统的结构创建对象树。

为了追踪SVG中的每一例图元引用,通过对象树存储画面与模型的关键信息,以及它们之间的引用关系,模型为可复用的组态内容,画面为不可复用的组态内容,模型可以被画面也可以被模型引用,但是不可循环引用。

每种对象中添加了若干字段用来记录数据信息与拓扑关系,通过操作对象树,即可完成创建、修改、引用、删除动作。

每一种对象均包含若干字段,字段是信息的实际持有者,多个相关联的字段组合描述了一个特定的对象,同一项字段在不同的对象类型中可以具有相同的意义也可以表示不同的意义,一项字段的内容包括名称、ID、数据类型、缺省值,对于一些特殊数据类型的字段,可能还包括一些别的内容,定义的字段具体如表一。

表一定义的字段

2、分析待绘系统中哪些组态内容为模型,哪些组态内容为画面。

3、在对应节点下创建模型目录,在模型目录下创建模型,如果该模型引用了模型,则在该模型下创建其引用模型的模型实例;在对应节点下创建画面,如果该画面引用了模型,则在该画面下创建其引用模型的模型实例。

画面、模型目录、模型和模型实例均为对象树中存储的对象。

画面包括以下字段:

名称:存储画面名称信息;

描述:存储关于画面的描述信息;

父节点:存储画面的父对象ID;

绘图文件:存储画面绘图文件的路径;

逻辑文件:存储画面逻辑文件的路径;

修改标志:记录绘图文件与逻辑文件是否被修改,画面汇编后,该标志清零。

模型目录包括以下字段:

名称:存储模型目录名称信息;

描述:存储模型目录描述信息;

父结点:存储模型目录的父对象ID;

模型目录文件:存储模型目录文件的路径。

模型包括以下字段:

名称:存储模型名称信息;

描述:存储模型描述信息;

父结点:存储模型的父对象ID;

绘图文件:存储模型绘图文件的路径;

逻辑文件:存储模型逻辑文件的路径。

模型实例包括以下字段:

名称:存储模型实例名称信息;

描述:存储模型实例描述信息;

父结点:存储模型实例的父对象ID;

模型链接:存储该模型实例引用的模型对象ID;

use引用:存储该模型实例对应的<use>标记的“id”属性值。

创建模型目录的过程为:

在节点下创建一个复用图元目录模版文件,文件名设置为模型目录ID,将复用图元目录模版文件中<title>标记设置为模型目录名称。

创建模型的过程为:

在模型目录中分别创建该模型的绘图文件与逻辑文件,文件名均为模型ID;在相应的模型目录文件中添加该模型的<symbol>与<use>标记对;将模型目录文件中该模型对应的<symbol>标记下的<title>标记内容设为模型名称。

在对象树中存储的模型和画面均可进行修改和删除,具体过程如下:

修改模型的过程为:

修改模型,即修改模型的绘图文件,具体过程为:

遍历模型的绘图文件,找出其中的<use>标记,刷新模形下的模型实例;

更新该模型所属模型目录文件中的<symbol>标记下的内容;

更新所有引用该模型的画面/模型中的内容。

删除模型过程为:

删除模型目录下的模型;

在模型目录文件中删除该模型的<symbol>、<use>标记对;

更新引用了该模型的画面/模型中的内容。

修改画面的过程为:

遍历画面的绘图文件,找出其中的<use>标记,刷新画面下的模型实例。

4、每创建一个创建模型目录,则在SVG绘图工具的symbols目录中自动创建一个SVG文件和模型图形;每创建一个画面,则在SVG绘图工具的symbols目录中自动创建一个SVG文件和画面图形;

5、在绘制系统时,将所需的模型图形和画面图形拖至窗口,即可完成复用。

复用时汇编的过程为:

遍历系统的绘图文件,找到每一例<use>引用的模型的绘图文件,读取模型的绘图文件内容,为其中的图元标记id属性添加后缀,后缀内容为该<use>引用对应模型实例的ID,将修改后的模型图形内容替换<use>引用;

遍历系统的逻辑文件,找到每一例模型实参赋值,读取模型的逻辑文件,为其中的图元标记id属性添加后缀,后缀内容为该例引用对应模型实例的ID,再将数逻辑文件中每一例形参声明替换为实参;

将替换后的绘图文件与逻辑文件编译为图形文件与数据驱动脚本。

上述方法可以与SVG绘图工具提供的图元复用功能无缝的配合使用,实现出完整的SCADA画面组态功能,其中绘图工作完全交由SVG绘图工具来完成,数据驱动逻辑由自定义组态工具实现,二者之间的差异化操作由上述组态复用方法自动弥合。

上述方法在提供完整组态功能的前提下大大缩短了开发一套画面组态软件的工作量,又能够屏蔽新技术带来的组态方法上的变化,照顾到了用户的使用习惯。

以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变形,这些改进和变形也应视为本发明的保护范围。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号