注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

紫金桥软件

大庆紫金桥软件技术有限公司—监控组态软件,实时数据库,管控一体化专业厂商

 
 
 

日志

 
 

利用紫金桥软件来提高画面组态速度  

2014-08-25 10:32:42|  分类: 默认分类 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

概述

编写程序时,我们经常将相似的模块组织成函数,以避免重复编码,这样维护起来也方便。同样在工程组态时,也存在相似的功能,相似的表现形式,如果组织合理,同样可以让我们事半功倍。下面以紫金桥软件为例,来说明如何减少重复工作。

紫金桥软件提供了间接变量,变量转向、图形模板、图形样板等多种手段来避免画面组态的重复工作,下面就对这些手段予以详细说明。

 

间接变量的使用

间接变量是一种特殊形式的中间变量,是能够被动态指向其他变量的变量,或称为指针变量,它类似于C语言中的指针。间接变量在初始状态并不指向任何变量,它需要通过特殊的赋值语句来定向。其形式如下:

  INDIRVAR = &TAGETBAR

其中INDIRVAR:代表间接变量;TAGETBAR表示目标变量,目标变量一般为数据库变量。

 

利用紫金桥软件来提高画面组态速度 - dqzijinqiao - 紫金桥软件
  

经过这种变量重定向后,变量INDIRVAR和TAGETBAR的数值将保持一致。改变INDIRVAR的数值就等于改变TAGETBAR的值,反之亦然。二者绑定到一起,这种绑定将一直保持,直到INDIRVAR 变量被重定向为其它变量。利用间接变量可以避免画面上的大量重复的工作,举例如下:

 

利用紫金桥软件来提高画面组态速度 - dqzijinqiao - 紫金桥软件
  

例如,如上所示为灯光控制画面,图中红色的利用紫金桥软件来提高画面组态速度 - dqzijinqiao - 紫金桥软件为照明灯。鼠标单击照明灯将出现照明设置对话框。

 

利用紫金桥软件来提高画面组态速度 - dqzijinqiao - 紫金桥软件
  

图中有9盏灯,每盏灯的设置框都类似,只是关联的变量不同。如果做将设置对话框画面画好后,复制几份,将变量分别替换为对应的照明灯的变量,倒也不费事。但是困难的是什么时候认为第一幅画面已经定型,决定复制为第二幅。因为一旦幅之后,如果想对画面进行调整,势必两幅画面都要修改。

 

对于这种情况,在画面中可以使用间接变量。在单击照明灯时,将间接变量重定向指向实际变量。例如在照明灯的鼠标动作中填写如下脚本:

第一盏灯:

INDIRVAR = &LAMP1.PV;

DISPLAY(“站台照明设置”);

 

第二盏灯:

INDIRVAR = &LAMP2.PV;

DISPLAY(“站台照明设置”);

其他类似。

 

而在站台照明设置窗口中,只使用间接变量INDIRVAR,这样你只需要做一幅画面就可以了,减少了画面编辑和维护工作量。

  

变量转向功能

间接变量只能重定向到画面中已经存在的变量,这就无法让间接变量指向数据库动态加入新点。变量转向功能正是为此目的而产生的。

变量转向是通过VarRedir函数实现的,该函数格式如下:

VarRedir(Tag, NewTag)

该函数有两个含义:

1)如果Tag为数据库变量,则对其进行重定向,即改变变量的数据库参数项,使其指向其他位号。

2)如果Tag为间接变量,则改变间接变量的指向。

参数

Tag:字符串,数据库变量或间接变量,必须是变量本身,不能为变量名称字符串。

NewTag:字符串,新位号名或变量名。数据库位号要包括参数。

在上面例子中可以将INDIRVAR = &LAMP1.PV替换为VarRedir(INDIRVAR, "LAMP1.PV")。

通过间接变量,VarRedir都可以将变量转向到数据库变量、中间变量、窗口变量,那么是不是变量重定向函数可以完全代替间接变量呢?

不是的。

· 间接变量在组态时就对变量进行编译、检查,所以使用间接变量更安全些,同样使用VarRedir更灵活,更适合于有规律的、重复度较高的替换。

· 间接变量在组态时就对变量进行编译、检查,所以其替换是静态的,速度比较快。

 

图形模板

当多幅画面图像相同,仅仅是每幅画面显示的点不同时,可以使用图形模板。

注意这里说的是点不同,而不是变量不同。一个点可以有很多参数,每个”点.参数”对应一个变量。可以认为点是变量的集合。

下面,我们通过一个简单的例子来说明图形模板对象的使用方法。此例子是使用一幅简单的画面来显示点的NAME、DESC、EU、PV、EULO、EUHI六个基本参数。

下面是点FI1001的基本参数画面:

 

利用紫金桥软件来提高画面组态速度 - dqzijinqiao - 紫金桥软件
 

 

点FI1002,FI1003等都有与点FI1001类似的基本参数画面。如果简单的复制,我们可以生成其他点的基本参数画面,但是画面需要调整时就很费事了。

使用间接变量可以避免画面复制的问题,对于上面的画面我们至少要定义6个间接变量。变量转向动作也要象下面这样写很多行。

INDIR_NAME = &FI1001.NAME;

INDIR_DESC = &FI1001.DESC;

INDIR_EU = &FI1001.EU;

INDIR_PV = &FI1001.PV;

INDIR_EULO = &FI1001.EULO;

INDIR_EUHI = &FI1001.EUHI;

是不是看起来很麻烦!

使用图形模板就可以减少替换语句,只是替换点名即可。方法如下:

在窗口中画出如下图素,并将其与图形模板对象打成单元。

 

利用紫金桥软件来提高画面组态速度 - dqzijinqiao - 紫金桥软件
 

 

图中”TP”为图形模板对象,运行时不可见。

在文本输出动作中,分别输入变量T.NAME、T.DESC、T.EU,在数值输出动画中分别输入T.PV、T.EULO、T.EUHI等。这些变量都定义为模板变量

变量转向动作只要象下面一行即可。

#TMPL.ChangeTag("T1", "FI1001");

TMPL为图形模板对象名称。

 

图形样板

以上讲述的都是对变量或点的替换,而样板是对图形的替换。

在实际绘图中我们经常遇到这样情况,要求画面中相同的元素使用相同的颜色或字体,而在项目实施前一段时间内很难确定下来,即便确定下来在项目实施中难免有些改变。若是没有确定好规则,就无法着手工作,如果已经绘制了大量的画面,修改起来是非常繁琐的事。尤其是对于单元中的图元改动更为复杂(需要拆开单元,改后再合成单元)。 

样板就是为了解决上述问题而诞生的。样板用于规定线的颜色、宽度、线性、填充色、填充样式、字体、字号以及图形的形状。利用样板可以方便修改具有相同、相似属性的图元。

例如规定燃油管线使用样板A(绿色),蒸汽管线使用样板B(白色),如果要将所有的燃油管线改为黄色,只需要重新定义样板A的颜色属性为黄色即可,样板负责对所有画面中的燃油管线颜色进行替换。

 

结论

紫金桥软件提供了很多独特的方法来减少组态工程师的工作,利用这些方法,可以大大减少重复性劳动,并使得工程易于维护,提高了工作效率。

  评论这张
 
阅读(12)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017