您的位置:控制工程论坛网论坛 » 自动化软件 » 利用紫金桥软件来提高画面组态速度

zijinqiao

zijinqiao   |   当前状态:在线

总积分:1659  2024年可用积分:0

注册时间: 2007-01-15

最后登录时间: 2023-01-13

空间 发短消息加为好友

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

zijinqiao  发表于 2017/9/15 10:30:02      1046 查看 2 回复  [上一主题]  [下一主题]

手机阅读

概述

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

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

 

间接变量的使用

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

  INDIRVAR = &TAGETBAR

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

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

 

例如,如上所示为灯光控制画面,图中红色的为照明灯。鼠标单击照明灯将出现照明设置对话框。

图中有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的基本参数画面:

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;

是不是看起来很麻烦!

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

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

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

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

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

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

TMPL为图形模板对象名称。

 

图形样板

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

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

 

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

 

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

 

结论

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

 


1楼 0 0 回复
  • zijinqiao

    zijinqiao   |   当前状态:在线

    总积分:1659  2024年可用积分:0

    注册时间: 2007-01-15

    最后登录时间: 2023-01-13

    空间 发短消息加为好友

    zijinqiao   发表于 2017/9/15 10:30:44

    希望大家多多关注

    2楼 回复本楼

    引用 zijinqiao 2017/9/15 10:30:44 发表于2楼的内容

  • zijinqiao

    zijinqiao   |   当前状态:在线

    总积分:1659  2024年可用积分:0

    注册时间: 2007-01-15

    最后登录时间: 2023-01-13

    空间 发短消息加为好友

    zijinqiao   发表于 2017/9/15 10:33:24

    紫金桥软件是一款能快速建立人机交互界面的软件工具,提供了许多的功能组件,用户可以使用搭积木的方式来构建自己的系统。支持各种工控设备和常见的通信协议,应用本软件的集成的驱动,可以直接对硬件进行监视和控制,方便又简洁。图形系统、实时数据库、I/O设备通讯开放的外部接口、与关系数据库交互、Web发布、冗余系统、分布式网络等功能的支持成为它的主要内容。    

    3楼 回复本楼

    引用 zijinqiao 2017/9/15 10:33:24 发表于3楼的内容

总共 , 当前 /