指南第二章变量Word格式文档下载.docx
《指南第二章变量Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《指南第二章变量Word格式文档下载.docx(17页珍藏版)》请在冰豆网上搜索。
单击此按钮,按字母降序依次浏览变量。
单击此按钮,弹出变量选择对话框:
上面这个对话框显示了一些已创建的“中间变量”的内容,其中包括系统变量和自定义变量。
系统变量用一个美元符号($)前导,后跟一个预定义变量名。
选择要浏览或编辑的变量名,双击鼠标或单击“返回”按钮返回“变量定义”对话框。
单击此按钮,按字母升序依次浏览变量。
单击此按钮,进入“删除变量”对话框。
单击此按钮,进入实时数据库点定义对话框。
如图:
当要创建新的变量时,在此输入框内输入变量名。
变量名最长可达31个字符。
其第一个字符必须为A-Z或a-z,其后的字符可以为A-Z、a-z、0-9或其它字符。
变量名称在系统中必须唯一。
您可以为变量加上注释性说明(最长不超出63个字符)。
此项内容不是必需的。
当定义一个变量时,需要指定变量的变量类别。
有4种变量类别可供选择:
“数据库变量”、“中间变量”、“间接变量”、“窗口中间变量”。
当您创建变量时,必须指定其数据类型。
有四种标准数据类型可供选择:
实型:
值为-2.2x10308到18x10308之间的64位双精度浮点数。
整型:
值为从-2,147,283,648到2,147,283,648之间的32位长整数。
离散型:
字符型:
长度为32的字符型变量。
如果指定变量为数据库变量时,需要在“数据源”中指定这些变量所连接的数据库,同时在“参数”输入框中指定具体的点参数或状态参数。
在指定具体的点参数或状态参数时可以直接手工输入,也可以在列表中选择。
例如,在“参数”一项中,选择下拉按钮,选择“数据库点”,如图:
然后出现数据库点参数列表:
选择一个点参数,如选择点FI101的参数PV:
下面的例子说明如何创建访问远程网络数据库的数据库变量。
假设要创建两个数据库变量,这两个变量分别连接到另外两个远程网络数据库中的点参数。
假设已经配置了两个数据源DB1和DB2代表这两个网络数据库。
在DB1和DB2中均存在点FIC101,这两个变量分别连接到DB1和DB2的点参数FIC101.PV。
我们不妨将第一个变量命名为DB1_FIC101.PV,在“数据源”中选择“DB1”,在“参数”项中输入“FIC101.PV”。
将第二个变量命名为DB2_FIC101.PV,在“数据源”中选择“DB2”,在“参数”项中同样输入“FIC101.PV”。
最后,变量DB1_FIC101.PV和DB2_FIC101.PV的数据将分别来自远程网络数据库DB1中FIC101.PV和DB2中FIC101.PV的数据。
数据库参数还可以是数据库状态参数,如过程报警状态$ALARM,I/O设备状态$IO_XXXXXX(XXXXXX代表设备名)、站状态参数$SATIONTYPE等。
通过参数输入框右侧的下拉键来选择数据库状态(关于数据库状态参数的内容请参考第三章):
出现“数据库状态”对话框:
单击“确定”返回,所选参数的名称自动加在“参数”输入框中。
此项用于设置对变量的安全级别。
有四个级别可选:
“操作工级”:
操作工级或更高级别的用户可修改此变量。
“班长级”:
不低于班长级别的用户可修改此变量。
“工程师级”:
不低于工程师级别的用户可修改此变量。
“系统管理员级”:
系统管理员级的用户可修改此变量。
设置了安全级别的变量在运行系统View中,只有不低于此级别的用户可对变量值进行修改。
该选项用于记录运行系统View中,对该变量的操作过程。
如果选择不记录,就看不到对变量的操作过程。
如果选择“记录”,在运行过程中,激活“特殊功能[F]/事件记录显示”命令,点击“过程操作”按钮就可以看到针对该变量的操作过程。
如下图:
此项用于控制该变量的读写。
有“读/写”和“只读”两种选择。
这三项用于设置该变量的初始值,最大值和最小值。
其中最大值要大于最小值。
在运行状态下,输入该变量的值时,不得超出最小值到最大值构成的数据范围。
2.2变量类别
变量类别决定了变量的作用域及数据来源。
例如,如果要在界面中显示、访问数据库中的数据时,就需要使用数据库型变量。
本节描述了力控支持的几类变量。
2.2.1窗口中间变量
窗口中间变量作用域限于力控应用程序的一个窗口,或者说,在一个窗口内创建的窗口中间变量,在其它窗口内是不可引用的,即它对其它窗口是不可见的。
窗口中间变量是一种临时变量,它没有自己的数据源,通常用作一个窗口内动作控制的局部变量、局部计算变量,或用于保存临时结果。
窗口中间变量根据数据类型的不同有以下几种:
实型窗口中间变量
值为-2.2x10308到18x10308之间的64位双精度浮点型窗口中间变量。
整型窗口中间变量
值为从-2,147,283,648到2,147,283,648之间的32位长整型窗口中间变量。
字符型窗口中间变量
长度为32位的字符型窗口中间变量。
2.2.2中间变量
中间变量的作用域范围为整个应用程序,不限于单个窗口。
一个中间变量,在所有窗口中均可引用。
即在对某一窗口的控制中,对中间变量的修改将对其它引用此中间变量的窗口的控制产生影响。
窗口中间变量也是一种临时变量,它没有自己的数据源。
中间变量适于作为整个应用程序动作控制的全局性变量、全局引用的计算变量或用于保存临时结果。
中间变量根据数据类型的不同共有四种。
实型中间变量
值为-2.2x10308到18x10308之间的64位双精度浮点型中间变量。
整型中间变量
值为从-2,147,283,648到2,147,283,648之间的32位长整型中间变量。
字符中间变量
长度为32位的字符型中间变量。
2.2.3数据库变量
当要在界面上显示处理数据库中的数据时,需要使用数据库变量。
一个数据库变量对应数据库中的一个点参数(关于力控数据库的信息请参考后面的内容)。
数据库变量的作用域为整个应用程序。
数据库变量根据数据类型的不同共有四种。
实型数据库变量
值为-2.2x10308到18x10308之间的64位双精度浮点型数据库变量。
整型数据库变量
值为从-2,147,283,648到2,147,283,648之间的32位长整型数据库变量。
字符数据库变量
长度为32位的字符型数据库变量。
2.2.4间接变量
间接变量是一种可以在系统运行时被其它变量代换的变量。
如果您在创建动画连接或在编写脚本程序时所引用的变量不能一开始就确定,需要在运行时动态更改时,就可以使用间接变量。
在系统运行时,把间接变量代换为其它变量(如:
连接到I/O设备的数据库变量)。
间接变量代换为其它变量后,引用间接变量的地方就相当于在引用代换变量一样。
例如,假设您在一个矩形图形上连接了“垂直百分比填充”的动作,引用的是一个中间变量INDIRECT,另有两个来自过程I/O的变量LIC101.PV和LIC102.PV。
在进入运行时,您可能要根据条件的变化,让这个矩形的填充动作或者连接到LIC101.PV上,或者连接到LIC102.PV。
此时您可以用如下形式的脚本程序来实现(关于脚本程序的信息请参考后面的内容):
当条件满足条件1时:
@INDIRECT=@LIC101.PV;
//表达式1
当条件满足条件2时:
@INDIRECT=@LIC102.PV;
//表达式2
在表达式的两边变量的前面都加上了符号“@”,表示这个表达式不是一个赋值操作,是一个变量代换操作。
例如对于表达式1,经过这种变量代换后,变量INDIRECT和LIC101.PV的数值和行为即变为完全一致。
改变INDIRECT的数值就等于改变LIC101.PV的值,改变LIC101.PV的数值就等于改变INDIRECT的值,这种效果将一直保持,直到INDIRECT变量被代换为其它变量,例如当条件满足条件2时,执行表达式2,INDIRECT又将与LIC102.PV的值保持一致。
间接变量除了用于完成变量代换之外,也可以当作普通变量使用。
例如,对于上面的表达式1,如果改成下面的形式:
INDIRECT=LIC101.PV;
//表达式3
它只完成一个普通的赋值操作。
赋值后,变量INDIRECT与LIC101.PV的数值相同,但是当LIC101.PV的数值再次发生变化时,如果不用LIC101.PV对INDIRECT再次赋值,INDIRECT的值不会自动保持与LIC101.PV一致。
注意:
其它非间接变量都可以对间接变量进行代换,但间接变量不能对其它非间接变量进行代换,而间接变量之间可以代换。
变量数组
对于间接变量,除了可以对其自身所指向的变量进行指定外,您还可以将间接变量看成一维数组,下界为0,上界10000。
数组的每个元素都可以作为一个独立的间接变量来使用。
数组的每个元素的指向可以动态指定。
和间接变量一样,在数组元素使用前,首先要对其指向的变量进行指定,然后才可以对其进行各种操作。
数组元素可以象普通变量一样使用。
数组元素的引用
我们可以用如下形式引用间接变量的某一个元素:
间接变量IV的第i个元素的引用形式为IV[i]。
例如:
IndirVar[0]=1;
IndirVar[0]=IndirVar[0]+1;
其中IndirVar为间接变量
数组元素的指定形式
IV[i]=&
VAR;
表示间接变量IV的第i个元素指向变量VAR。
IV为间接变量,VAR为普通变量。
i为数值常量,或数值表达式。
IV[i]表示IV的第i个元素。
“&
”为地址符。
”也可以写作“@”;
例如:
IndirVar[0]=&
Var1;
IndirVar[1]=&
Var2;
IndirVar[2]=&
Var3;
在数组元素使用前,首先要对其指向的变量进行指定,然后才可以对其进行各种操作。
否则对数组元素的引用或操作将无意义。
变量数组使用举例
求数值型变量A,B,C,D,E的最大值。
A;
B;
C;
IndirVar[3]=&
D;
IndirVar[4]=&
E;
n=0;
M=IndirVar[0];
WHILEn<
5DO
IF(IndirVar[n]>
M)THEN
M=IndirVar[n];
ENDIF
n=n+1;
ENDWHILE
2.3变量数据源
当创建