第 6章 动作脚本
6.1 动作脚本简介
6.2 动作脚本类型
6.4 动作脚本语言
6.5 对象字段属性
6.6 函数
6.7 调试脚本
6.1 动作脚本简介
? 动作脚本是一种基于对象和事件的编程语言,语法采用类
BASIC的结构,可以说,每一段脚本都是与某一个对象或
触发事件紧密关联的,利用开发系统编制完的动作脚本,
可以在运行系统中执行,运行系统通过脚本对变量、函数
的操作,便可以完成对现场数据的处理和控制,进行图形
化监控。 脚本程序使用起来相当灵活,触发方式多样,当
某些控制、计算任务通过常规的组态方法难以完成时,脚
本程序保证能够解决问题。例如可以在按下某一个按钮,
打开某个窗口或当某一个变量的值变化时,用脚本触发一
系列的逻辑控制,改变变量的值、图形对象的颜色、大小,
控制图形对象的运动等
6.1.1 如何选择脚本
? 所有动作脚本都是事件驱动的 。 事件可以是数据
改变, 条件, 鼠标或键盘, 计时器等 。 处理顺序
由应用程序指定, 不同类型的动作脚本决定以何
种方式加入控制 。
? 命令型动作脚本包括:窗口、应用程序、数据改
变、键和条件等。可以在菜单或者在 Draw的导航
器中启动命令型动作脚本的定义过程。
6.1.2 脚本编辑器
? 在 Draw中,各种脚本类型所用的脚本编辑器对话
框的形式大体相同(见图 6-1),下面以键动作脚
本为例来说明脚本编辑器的使用。在图 6-1动作脚
本编辑器对话框中有菜单、分页标签、编辑框、
各种选择框、各种工具按键
6.2 动作脚本类型
? 所有的脚本都是事件驱动的。事件可以是数据更
改、条件、单击鼠标、计时器等等。在同一个脚
本程序中处理顺序按照程序语句的先后顺序执行。
不同类型的脚本决定在何处以何种方式加入脚本
控制。脚本类型有图形对象动作脚本,窗口脚本、
应用程序脚本、数据改变脚本、键脚本、条件脚
本,下面分别叙述各个脚本的意义和使用方法
6.2.1 图形对象动作脚本
? 图形对象的触敏性动作脚本可用于完成界面与用
户之间的交互式操作,从简单图形(如:线、矩
形等)到标准图形(如:趋势、报警记录等)都
可以视为图形对象。图形对象包括每一种对象都
有的共同属性和专有属性。比如:所有的图形对
象都存在着位置坐标属性;而填充类型的图形对
象还有边线颜色或填充颜色等属性
例 6- 1,创建一个矩形对象, 用脚本程序实现,①
当用鼠标左键点击时, 矩形由红色变为黑色, ② 常按
左键时, 变量 a的值每次递增 5
⑴ 在 Draw中的当前窗口画面中, 创建一个矩形对象 。
⑵ 双击矩形, 进入动画连接对话框, 选择, 触敏动作
-左键动作,, 弹出触敏性动作脚本编辑器 。
⑶ 在, 按下鼠标, 页的脚本编辑器中, 填写脚本如
下:
this.FColor=255;
“鼠标按着周期执行, 页的编辑器中, 填写脚本如下:
a=a+5;
“释放鼠标, 页的编辑器中, 填写脚本如下:
this.FColor=0;
⑷ 单击, 确认, 按钮 ( 如要求定义变量 a,按 4.2节的
方法定义变量 a,且设置为中间变量 ) 。
⑸ 在画面上建立一个变量显示对象,显示变量 a
的值。 方法是:
① 在开发窗口中创建“文本”,在文本中输入
,a”。
② 双击对象,a”出现图 2- 7所示的动画连接对
话框,在框中选数据输出 /模拟。
③ 点击模拟出现图 2- 21所示的模拟值输出对
话框,点击“变量选择”出现图 3- 19所示的变量
选择对话框,在全局页的类别窗口中选中间变量,
在变量名窗口中找到,a”,点击选择按钮。
④ 点击图 2- 21模拟值输出对话框中的“确认’
按钮,点击图 2- 7动画连接对话框中的返回。
⑹ 在 Draw中将画面“保存”,然后单击“运
行”,进入运行系统 VIEW下,观看动作效果。
此时,用鼠标左键点击该矩形(矩形填充颜色变
为黑色),按着鼠标一段时间,可见 a值的变化
效果,释放鼠标,看到矩形颜色变为红色。
6.2.2 应用程序动作脚本
? 应用程序动作脚本的作用范围为整个应用程序,
可以在这种脚本中调用其他应用程序、完成数值
计算等。若要创建应用程序动作脚本,请选择
,特殊功能 [S]/动作 /应用程序, 菜单命令。出现
如图 6- 4所示的动作脚本编辑器。
例 6- 2 用脚本程序实现变量,c”
从 0开始每次递增 10直到 110,反复循环。
⑶ 在“进入程序”脚本区域,输入脚本,c=0;
在“程序运行周期执行”脚本区域,输入脚本:
IF c<=100 THEN
c=c+10;
ELSE
c=0;
ENDIF
⑷ 单击“确认”后,建立一个变量显示文本对
象(参照例 6- 1),在运行系统下可以显示变
量 c 的值。
⑸在 Draw中点击“运行”按钮,进入 View运行
系统,在刚才的画面窗口中观察 c变量的变化。
该变量将从 0,10,20,…,一直到 110,然后返
回又从 0开始。
6.2.3 窗口动作脚本
? 窗口动作脚本的作用范围为窗口, 窗口画面关闭的时候,
动作脚本就不执行了 。 若要创建窗口动作脚本, 请选择菜
单命令, 特殊功能 [F]/动作 /窗口, 菜单项 。
? 在出现的窗口动作脚本对话框中有进入窗口, 窗口运行周
期执行, 退出窗口三页:
? 进入窗口:开始显示窗口时执行一次 。
? 窗口运行时周期执行:在窗口显示过程中以指定周期执行 。
? 退出窗口:在窗口关闭时执行一次。
6.2.4 数据改变动作脚本
? 数据改变动作脚本以变量的数值改变作为触发事
件。每当变量的数值发生变化时,脚本执行一次。
若要数据改变动作脚本,选择菜单命令, 特殊功
能 [S]/动作 /数据改变,,出现如图 6- 5所示的数
据改变动作脚本编辑器
例 6- 3用脚本程序实现变量,c”从 0开始变化
时,圆的颜色随着变化,反复循环。
⑶ 选择, 对象命名,,定义该圆名称,如, round”
⑷ 然后, 选择 Draw的菜单, 特殊功能 -动作 -数据改
变,, 定义一个和变量 C相应的数据改变动作, 脚本
如下:
#round.FColor=#round.FColor+5;
上述脚本含义:只要变量 C发生变化,就执行上述语
句一次。也就是说,对象 round的填充颜色值有上述
变化。
⑸单击, 确认,,该 C变量对应的数据改变动作已经
定义完毕
6.2.5 键动作脚本
? 键动作脚本以键盘按键的动作作为触发事件 。 若
要创建键动作脚本, 选择菜单命令, 特殊功能
[F]/动作 /键, 菜单项, 出现键动作脚本编辑器:
? 键动作脚本编辑器中有键按下、按键期间周期执
行、键释放三页
6.2.6 条件动作脚本
? 条件动作脚本以变量或逻辑表示式的条件值为触
发事件。当条件值为真时、为真期间、为假时和
为假期间执行条件动作脚本。若要创建条件动作
脚本,选择菜单命令, 特殊功能 [S]/ 动作 /条件,
菜单项,出现如图 6- 7所示的条件动作脚本编辑
器:
6.4 动作脚本语言
? 动作脚本语言支持赋值、数学运算等基本语法,
也可以书写由 IF-ELSE-ENDIF等语句构成的带有分
支结构的程序脚本。 它由以下几个部分组成:
6.4.1 变量和常数
? 变量的定义和类型参见前面章节,变量是动作脚
本的基本组成单位,任何在脚本中应用的变量必
须预先定义,或者在编译环境下直接进行编译,
它是构成脚本的基础
6.4.2 操作符
? 开发系统提供了基本的赋值、算术运算、逻辑运
算等功能,他们是通过操作符来完成的,操作符
参数可以是数字或变量。在参数外加括号是可选
的,而且操作符名称不区分大小写。
6.4.3 表达式
? 表达式一般分成以下几种
? 1.逻辑表达式
? 2.算术表达式
? 3.字符表达式
6.4.4 赋值语句
? 赋值语句的形式为:, 变量 =表达式 ;”赋值语句用赋值号
(, =”号)来表示。表示把, =”右边表达式的运算值赋给
左边的变量。
? 例 6-13:
? a = 32; //表达式 1
? a = a+1; //表达式 2
? a = (b-c)*32/d; //表达式 3
? #rectagle1.fColor = 8; //表达式 4
? @idirect = @lic101.pv ; //表达式 5
? a = rand(10); //表达式 6
? 说明:表达式 4中 #rectagle1是一个填充矩形的对象名称,
fColor属性字段,代表它的填充颜色。这个表达式的运行
结果是将一个名为 rectagle1的填充矩形的填充颜色置为
编号为 8的颜色。
6.4.5 注释
? 注释是用来解释代码如何工作的附加文本 。
? "//"表示该行后面的所有文本是注释 。
? "/*","*/"必须配对使用,出现在这两者之间的
所有文本都是注释。不支持嵌套,"/*"会在后续
文本中找一个与它最靠近的 "*/"与它配对,不管
中间是否又出现了 "/*"。
6.4.6 程序结构
? 程序结构基本分为三种,顺序程序结构、分支程序结构和循
环结构:
? 例 6-14:
? IF Fliuid_tempture > 98 || Fliuid_tempture < 60
THEN
? Out_Message=“温度不正常, ;
? Playsoud(alert.wav);
? ENDIF
? ② IF 表达式 THEN
? 执行体 1
? ELSE
? 执行体 2
? ENDIF
? 如果表达式的条件成立,则执行执行体 1,否则执行执行体
2。
例 6-15:
IF Fliuid_tempture > 98 THEN
Flag_Alerm=1;
Out_Message=“温度超高,
PlaySoud(“Alert.wav”,0);
ELSE
Out_Message=“温度正常, ;
ENDIF
在这个例子中,当液体温度超过 98摄氏度时,报
警标志位为 1,系统发出声音报警。否则系统的输
出信息为, 温度正常,
例 6-16:
IF Fliuid_tempture > 98 THEN
Out_Message=“温度过高, ;
Playsoud(alert1.wav);
ELSE IF Fliuid_tempture < 60 THEN
Out_Message=“温度过低, ;
Playsoud(alert2.wav);
ELSE
Out_Message=“温度正常, ;
ENDIF
ENDIF
例 6-17 编程控制当 a的值为 0时将执行 b = b+1;a的值为
1时将执行 b = b+2;a为 0,1以外的其他值时将执行 b =
b+10
Switch (a)
Case 0:
b = b+ 1;
Case 1:
b = b+2;
Default:
b = b+10;
EndSwitch
在上例中,a的值为 0时将执行 b = b+1;a的值为 1时将执
行 b = b+2;a为 0,1以外的其他值时将执行 b = b+10;
3.循环结构
? ⑴ WHILE循环
例 6-20:
n = 0;
m = 1;
WHILE n < 10 DO
m = m * n;
n = n +1;//n为循环控制变量
ENDWHILE
⑵ FOR循环
? 例 6-21:
? m = 0;
? FOR I = 0 TO 3
? m = m+1;
? NEXT
? 在上例中,循环次数为 4,I每次增量为 1。第一次
循环 I 取值为 0。第二次循环 I 取值为 1。第三次
循环 I 取值为 2。执行完后 m的值为 3。
例 6-23:
m = 0;
FOR I = 0 TO I + 10 STEP I + 2
m = m+1;
m = m+1;
NEXT
在上例中,I上限为 10,循环增量为 2。循环次数为 6,
I每次增量为 2。执行完后 m的值为 10。
6,5对象字段属性
? 在力控 R 中的 每个对象都应对它命名、设定它的
属性、进行动画连接、变量退换、形成字图等等。
下面进一步说明对象字段属性
1.概述
? 所谓对象,就是组成系统的一些基本构件,如窗
口,窗口中的图形,配方等。每个对象作为一独
立单元,有自身的状态。可以通过对象的属性和
方法与对象通信,力控 R的字段属性可以作为对象
的一个属性,供动作脚本中使用
2.对象命名
? 要想引用对象的属性或方法, 必须能够指明是哪
个对象, 对象命名是对象的唯一标识 。
? 选中图形对象单击鼠标右键,在右键菜单上选择
其中的, 对象命名 [N]”菜单项,出现如图 11- 10
所示的, 对象名称, 对话框,在输入框内键入一个
名称便可以了
3.属性引用
? 对象有自己的属性和方法,其属性和方法的引用
方式不同于普通变量和函数。在引用对象的属性 /
方法时必须说明为哪个对象,对象的属性可以通
过改变其属性字段的值而动态改变,图形对象名
称必须以, #”符号开头。对象属性字段的引用格
式为, #对象名,属性, 。
例 6-24:
#Tred1.tr_euhi = 100 ; //Tred1是一个趋
势对象的名称,数值上限为 100
#Caledar1.Day = 29 ; //Caledar1是一个
ActiveX控件对象的名称,日期为 29号
Tag1 = #Caledar1.Year ; //Tag1是一个普
通变量的名称
4.基本图元属性
? 每一种图元对象都有自己的属性。这些属性有些
是共有的,如对象位置;有些则是专有的属性,
如文本对象的显示文字。在运行时,这些属性可
以通过脚本来读写
6.6 函数
? 函数分为系统函数和自定义函数
6.6.1 预设函数
? 力控 R的预设函数可以分为两大类,全局函数和对
象函数。对象函数是与对象相关的函数,如配方
函数,Windows控件函数。全局函数可以直接调用,
而对象函数必须按 对象属性方法引用 规则调用,
6.6.2 自定义函数
? 可以把一些公共的、通用的运算或操作定义成自
定义函数,然后在脚本中引用。该函数中可以引
用 Draw中的变量以及其支持的函数。双击导航器 /
自定义函数,弹出如图 6- 11所示的自定义函数设
置对话框。
例 6-26 创建一个按钮和两个文
本,检验传地址和传值的区别
1.传地址
① 在图 6- 11所示的自定义函数设置对话框中,定
义函数名称 test,输入如图 6- 11所示的参数,点
击图 6- 11中的, 编辑代码, 进入如图 6- 12所示
的动作脚本编辑器,在窗口中有
② 创 建 一 个 按 钮, 按 钮 的 左 键 动 作 输 入
li101.pv=test(value),其中 value,li101.pv为实
型,中间变量 。
③ 创建两个文本的模拟输出动画连接,输入变量
value,li101.pv,运行时可以看到按下按钮后执行
完该函数后,VALUE和 li101.pv的值就自动加 10。
2.传值
? ①,②,③同上,只是将①步的引用方式改为传
值方式,同样执行后,li101.pv的值就自动加 10,
而 value的值没有变化
例 6-27:在 4个参数中求最大值, 代码如下:
//Function name,PMax
//Parameters,X1,X2,X3,X4
if(X2 > x1) then
x1 = x2;
endif
if(X3 > x1) then
x1 = x3;
endif
if(X4 > x1) then
x1 = x4;
endif
RETURN X1;
6.7 调试脚本
? 当您保存或从脚本编辑器中返回时,脚本编辑器
对脚本程序进行语法检查和编译。当发现语法错
误时,会发出警告提示
? 例如,当脚本程序的第 3行含有语法错误时,系统
出现如图 6- 13所示的错误提示:
6.1 动作脚本简介
6.2 动作脚本类型
6.4 动作脚本语言
6.5 对象字段属性
6.6 函数
6.7 调试脚本
6.1 动作脚本简介
? 动作脚本是一种基于对象和事件的编程语言,语法采用类
BASIC的结构,可以说,每一段脚本都是与某一个对象或
触发事件紧密关联的,利用开发系统编制完的动作脚本,
可以在运行系统中执行,运行系统通过脚本对变量、函数
的操作,便可以完成对现场数据的处理和控制,进行图形
化监控。 脚本程序使用起来相当灵活,触发方式多样,当
某些控制、计算任务通过常规的组态方法难以完成时,脚
本程序保证能够解决问题。例如可以在按下某一个按钮,
打开某个窗口或当某一个变量的值变化时,用脚本触发一
系列的逻辑控制,改变变量的值、图形对象的颜色、大小,
控制图形对象的运动等
6.1.1 如何选择脚本
? 所有动作脚本都是事件驱动的 。 事件可以是数据
改变, 条件, 鼠标或键盘, 计时器等 。 处理顺序
由应用程序指定, 不同类型的动作脚本决定以何
种方式加入控制 。
? 命令型动作脚本包括:窗口、应用程序、数据改
变、键和条件等。可以在菜单或者在 Draw的导航
器中启动命令型动作脚本的定义过程。
6.1.2 脚本编辑器
? 在 Draw中,各种脚本类型所用的脚本编辑器对话
框的形式大体相同(见图 6-1),下面以键动作脚
本为例来说明脚本编辑器的使用。在图 6-1动作脚
本编辑器对话框中有菜单、分页标签、编辑框、
各种选择框、各种工具按键
6.2 动作脚本类型
? 所有的脚本都是事件驱动的。事件可以是数据更
改、条件、单击鼠标、计时器等等。在同一个脚
本程序中处理顺序按照程序语句的先后顺序执行。
不同类型的脚本决定在何处以何种方式加入脚本
控制。脚本类型有图形对象动作脚本,窗口脚本、
应用程序脚本、数据改变脚本、键脚本、条件脚
本,下面分别叙述各个脚本的意义和使用方法
6.2.1 图形对象动作脚本
? 图形对象的触敏性动作脚本可用于完成界面与用
户之间的交互式操作,从简单图形(如:线、矩
形等)到标准图形(如:趋势、报警记录等)都
可以视为图形对象。图形对象包括每一种对象都
有的共同属性和专有属性。比如:所有的图形对
象都存在着位置坐标属性;而填充类型的图形对
象还有边线颜色或填充颜色等属性
例 6- 1,创建一个矩形对象, 用脚本程序实现,①
当用鼠标左键点击时, 矩形由红色变为黑色, ② 常按
左键时, 变量 a的值每次递增 5
⑴ 在 Draw中的当前窗口画面中, 创建一个矩形对象 。
⑵ 双击矩形, 进入动画连接对话框, 选择, 触敏动作
-左键动作,, 弹出触敏性动作脚本编辑器 。
⑶ 在, 按下鼠标, 页的脚本编辑器中, 填写脚本如
下:
this.FColor=255;
“鼠标按着周期执行, 页的编辑器中, 填写脚本如下:
a=a+5;
“释放鼠标, 页的编辑器中, 填写脚本如下:
this.FColor=0;
⑷ 单击, 确认, 按钮 ( 如要求定义变量 a,按 4.2节的
方法定义变量 a,且设置为中间变量 ) 。
⑸ 在画面上建立一个变量显示对象,显示变量 a
的值。 方法是:
① 在开发窗口中创建“文本”,在文本中输入
,a”。
② 双击对象,a”出现图 2- 7所示的动画连接对
话框,在框中选数据输出 /模拟。
③ 点击模拟出现图 2- 21所示的模拟值输出对
话框,点击“变量选择”出现图 3- 19所示的变量
选择对话框,在全局页的类别窗口中选中间变量,
在变量名窗口中找到,a”,点击选择按钮。
④ 点击图 2- 21模拟值输出对话框中的“确认’
按钮,点击图 2- 7动画连接对话框中的返回。
⑹ 在 Draw中将画面“保存”,然后单击“运
行”,进入运行系统 VIEW下,观看动作效果。
此时,用鼠标左键点击该矩形(矩形填充颜色变
为黑色),按着鼠标一段时间,可见 a值的变化
效果,释放鼠标,看到矩形颜色变为红色。
6.2.2 应用程序动作脚本
? 应用程序动作脚本的作用范围为整个应用程序,
可以在这种脚本中调用其他应用程序、完成数值
计算等。若要创建应用程序动作脚本,请选择
,特殊功能 [S]/动作 /应用程序, 菜单命令。出现
如图 6- 4所示的动作脚本编辑器。
例 6- 2 用脚本程序实现变量,c”
从 0开始每次递增 10直到 110,反复循环。
⑶ 在“进入程序”脚本区域,输入脚本,c=0;
在“程序运行周期执行”脚本区域,输入脚本:
IF c<=100 THEN
c=c+10;
ELSE
c=0;
ENDIF
⑷ 单击“确认”后,建立一个变量显示文本对
象(参照例 6- 1),在运行系统下可以显示变
量 c 的值。
⑸在 Draw中点击“运行”按钮,进入 View运行
系统,在刚才的画面窗口中观察 c变量的变化。
该变量将从 0,10,20,…,一直到 110,然后返
回又从 0开始。
6.2.3 窗口动作脚本
? 窗口动作脚本的作用范围为窗口, 窗口画面关闭的时候,
动作脚本就不执行了 。 若要创建窗口动作脚本, 请选择菜
单命令, 特殊功能 [F]/动作 /窗口, 菜单项 。
? 在出现的窗口动作脚本对话框中有进入窗口, 窗口运行周
期执行, 退出窗口三页:
? 进入窗口:开始显示窗口时执行一次 。
? 窗口运行时周期执行:在窗口显示过程中以指定周期执行 。
? 退出窗口:在窗口关闭时执行一次。
6.2.4 数据改变动作脚本
? 数据改变动作脚本以变量的数值改变作为触发事
件。每当变量的数值发生变化时,脚本执行一次。
若要数据改变动作脚本,选择菜单命令, 特殊功
能 [S]/动作 /数据改变,,出现如图 6- 5所示的数
据改变动作脚本编辑器
例 6- 3用脚本程序实现变量,c”从 0开始变化
时,圆的颜色随着变化,反复循环。
⑶ 选择, 对象命名,,定义该圆名称,如, round”
⑷ 然后, 选择 Draw的菜单, 特殊功能 -动作 -数据改
变,, 定义一个和变量 C相应的数据改变动作, 脚本
如下:
#round.FColor=#round.FColor+5;
上述脚本含义:只要变量 C发生变化,就执行上述语
句一次。也就是说,对象 round的填充颜色值有上述
变化。
⑸单击, 确认,,该 C变量对应的数据改变动作已经
定义完毕
6.2.5 键动作脚本
? 键动作脚本以键盘按键的动作作为触发事件 。 若
要创建键动作脚本, 选择菜单命令, 特殊功能
[F]/动作 /键, 菜单项, 出现键动作脚本编辑器:
? 键动作脚本编辑器中有键按下、按键期间周期执
行、键释放三页
6.2.6 条件动作脚本
? 条件动作脚本以变量或逻辑表示式的条件值为触
发事件。当条件值为真时、为真期间、为假时和
为假期间执行条件动作脚本。若要创建条件动作
脚本,选择菜单命令, 特殊功能 [S]/ 动作 /条件,
菜单项,出现如图 6- 7所示的条件动作脚本编辑
器:
6.4 动作脚本语言
? 动作脚本语言支持赋值、数学运算等基本语法,
也可以书写由 IF-ELSE-ENDIF等语句构成的带有分
支结构的程序脚本。 它由以下几个部分组成:
6.4.1 变量和常数
? 变量的定义和类型参见前面章节,变量是动作脚
本的基本组成单位,任何在脚本中应用的变量必
须预先定义,或者在编译环境下直接进行编译,
它是构成脚本的基础
6.4.2 操作符
? 开发系统提供了基本的赋值、算术运算、逻辑运
算等功能,他们是通过操作符来完成的,操作符
参数可以是数字或变量。在参数外加括号是可选
的,而且操作符名称不区分大小写。
6.4.3 表达式
? 表达式一般分成以下几种
? 1.逻辑表达式
? 2.算术表达式
? 3.字符表达式
6.4.4 赋值语句
? 赋值语句的形式为:, 变量 =表达式 ;”赋值语句用赋值号
(, =”号)来表示。表示把, =”右边表达式的运算值赋给
左边的变量。
? 例 6-13:
? a = 32; //表达式 1
? a = a+1; //表达式 2
? a = (b-c)*32/d; //表达式 3
? #rectagle1.fColor = 8; //表达式 4
? @idirect = @lic101.pv ; //表达式 5
? a = rand(10); //表达式 6
? 说明:表达式 4中 #rectagle1是一个填充矩形的对象名称,
fColor属性字段,代表它的填充颜色。这个表达式的运行
结果是将一个名为 rectagle1的填充矩形的填充颜色置为
编号为 8的颜色。
6.4.5 注释
? 注释是用来解释代码如何工作的附加文本 。
? "//"表示该行后面的所有文本是注释 。
? "/*","*/"必须配对使用,出现在这两者之间的
所有文本都是注释。不支持嵌套,"/*"会在后续
文本中找一个与它最靠近的 "*/"与它配对,不管
中间是否又出现了 "/*"。
6.4.6 程序结构
? 程序结构基本分为三种,顺序程序结构、分支程序结构和循
环结构:
? 例 6-14:
? IF Fliuid_tempture > 98 || Fliuid_tempture < 60
THEN
? Out_Message=“温度不正常, ;
? Playsoud(alert.wav);
? ENDIF
? ② IF 表达式 THEN
? 执行体 1
? ELSE
? 执行体 2
? ENDIF
? 如果表达式的条件成立,则执行执行体 1,否则执行执行体
2。
例 6-15:
IF Fliuid_tempture > 98 THEN
Flag_Alerm=1;
Out_Message=“温度超高,
PlaySoud(“Alert.wav”,0);
ELSE
Out_Message=“温度正常, ;
ENDIF
在这个例子中,当液体温度超过 98摄氏度时,报
警标志位为 1,系统发出声音报警。否则系统的输
出信息为, 温度正常,
例 6-16:
IF Fliuid_tempture > 98 THEN
Out_Message=“温度过高, ;
Playsoud(alert1.wav);
ELSE IF Fliuid_tempture < 60 THEN
Out_Message=“温度过低, ;
Playsoud(alert2.wav);
ELSE
Out_Message=“温度正常, ;
ENDIF
ENDIF
例 6-17 编程控制当 a的值为 0时将执行 b = b+1;a的值为
1时将执行 b = b+2;a为 0,1以外的其他值时将执行 b =
b+10
Switch (a)
Case 0:
b = b+ 1;
Case 1:
b = b+2;
Default:
b = b+10;
EndSwitch
在上例中,a的值为 0时将执行 b = b+1;a的值为 1时将执
行 b = b+2;a为 0,1以外的其他值时将执行 b = b+10;
3.循环结构
? ⑴ WHILE循环
例 6-20:
n = 0;
m = 1;
WHILE n < 10 DO
m = m * n;
n = n +1;//n为循环控制变量
ENDWHILE
⑵ FOR循环
? 例 6-21:
? m = 0;
? FOR I = 0 TO 3
? m = m+1;
? NEXT
? 在上例中,循环次数为 4,I每次增量为 1。第一次
循环 I 取值为 0。第二次循环 I 取值为 1。第三次
循环 I 取值为 2。执行完后 m的值为 3。
例 6-23:
m = 0;
FOR I = 0 TO I + 10 STEP I + 2
m = m+1;
m = m+1;
NEXT
在上例中,I上限为 10,循环增量为 2。循环次数为 6,
I每次增量为 2。执行完后 m的值为 10。
6,5对象字段属性
? 在力控 R 中的 每个对象都应对它命名、设定它的
属性、进行动画连接、变量退换、形成字图等等。
下面进一步说明对象字段属性
1.概述
? 所谓对象,就是组成系统的一些基本构件,如窗
口,窗口中的图形,配方等。每个对象作为一独
立单元,有自身的状态。可以通过对象的属性和
方法与对象通信,力控 R的字段属性可以作为对象
的一个属性,供动作脚本中使用
2.对象命名
? 要想引用对象的属性或方法, 必须能够指明是哪
个对象, 对象命名是对象的唯一标识 。
? 选中图形对象单击鼠标右键,在右键菜单上选择
其中的, 对象命名 [N]”菜单项,出现如图 11- 10
所示的, 对象名称, 对话框,在输入框内键入一个
名称便可以了
3.属性引用
? 对象有自己的属性和方法,其属性和方法的引用
方式不同于普通变量和函数。在引用对象的属性 /
方法时必须说明为哪个对象,对象的属性可以通
过改变其属性字段的值而动态改变,图形对象名
称必须以, #”符号开头。对象属性字段的引用格
式为, #对象名,属性, 。
例 6-24:
#Tred1.tr_euhi = 100 ; //Tred1是一个趋
势对象的名称,数值上限为 100
#Caledar1.Day = 29 ; //Caledar1是一个
ActiveX控件对象的名称,日期为 29号
Tag1 = #Caledar1.Year ; //Tag1是一个普
通变量的名称
4.基本图元属性
? 每一种图元对象都有自己的属性。这些属性有些
是共有的,如对象位置;有些则是专有的属性,
如文本对象的显示文字。在运行时,这些属性可
以通过脚本来读写
6.6 函数
? 函数分为系统函数和自定义函数
6.6.1 预设函数
? 力控 R的预设函数可以分为两大类,全局函数和对
象函数。对象函数是与对象相关的函数,如配方
函数,Windows控件函数。全局函数可以直接调用,
而对象函数必须按 对象属性方法引用 规则调用,
6.6.2 自定义函数
? 可以把一些公共的、通用的运算或操作定义成自
定义函数,然后在脚本中引用。该函数中可以引
用 Draw中的变量以及其支持的函数。双击导航器 /
自定义函数,弹出如图 6- 11所示的自定义函数设
置对话框。
例 6-26 创建一个按钮和两个文
本,检验传地址和传值的区别
1.传地址
① 在图 6- 11所示的自定义函数设置对话框中,定
义函数名称 test,输入如图 6- 11所示的参数,点
击图 6- 11中的, 编辑代码, 进入如图 6- 12所示
的动作脚本编辑器,在窗口中有
② 创 建 一 个 按 钮, 按 钮 的 左 键 动 作 输 入
li101.pv=test(value),其中 value,li101.pv为实
型,中间变量 。
③ 创建两个文本的模拟输出动画连接,输入变量
value,li101.pv,运行时可以看到按下按钮后执行
完该函数后,VALUE和 li101.pv的值就自动加 10。
2.传值
? ①,②,③同上,只是将①步的引用方式改为传
值方式,同样执行后,li101.pv的值就自动加 10,
而 value的值没有变化
例 6-27:在 4个参数中求最大值, 代码如下:
//Function name,PMax
//Parameters,X1,X2,X3,X4
if(X2 > x1) then
x1 = x2;
endif
if(X3 > x1) then
x1 = x3;
endif
if(X4 > x1) then
x1 = x4;
endif
RETURN X1;
6.7 调试脚本
? 当您保存或从脚本编辑器中返回时,脚本编辑器
对脚本程序进行语法检查和编译。当发现语法错
误时,会发出警告提示
? 例如,当脚本程序的第 3行含有语法错误时,系统
出现如图 6- 13所示的错误提示: