181第五章动作脚本力控提供动作脚本以增强对应用程序控制的灵活性。比如,用户可以在按下某一个按钮,打开某个窗口或当某一个变量的值变化时,用脚本触发一系列的逻辑控制、联锁控制,改变变量的值、改变图形对象的颜色、大小,控制图形对象的运动等等。5.1动作脚本类型所有动作脚本都是事件驱动的。事件可以是数据改变、条件、鼠标或键盘、计时器等等。处理顺序由应用程序指定。不同类型的动作脚本决定在何处以何种方式加入控制。执行动作与图形对象直接相关的脚本,称作对象动作脚本。对象动作脚本分为触敏性动作脚本和一般性动作脚本。触敏性动作脚本在图形对象被点击(左键)时执行。一般性动作脚本在图形对象所在窗口被打开、打开期间和关闭时执行(即使窗口被隐藏或被覆盖时仍然执行,在窗口被关闭后,停止执行)。若要加入对象动作脚本,选中图形对象后双击鼠标,在“动画连接”对话框中选择“触敏动作-左键动作”或“杂项-一般性动作”。另一种类型的脚本是命令型动作脚本,这种脚本用于创建位于Draw的“特殊功能[S]/动作”菜单项中的各种动作脚本:窗口、应用程序、数据改变、键和条件等。菜单位置如下图所示:也可以在Draw的导航器中启动命令型动作脚本的定义过程,如下图:182第二部分用户指南5.2对象动作脚本图形对象的触敏性动作脚本可用于完成界面与用户之间的交互式操作,而图形对象的一般性动作脚本可用于完成程序逻辑对图形对象本身各种属性改变的控制(例如,按照某种条件的变化实现对图形对象动态地显示或隐藏)或其它控制。若要创建触敏性动作脚本,请执行以下步骤:1、创建要加入动作脚本的图形对象。2、双击对象,出现动画连接对话框。3、在动画连接对话框中选择“触敏动作-左键动作”,弹出动作脚本编辑器:在脚本编辑器内编写脚本语言。举例:第五章动作脚本1831、在Draw中的当前窗口画面中,创建一个矩形对象。2、双击矩形,进入动画连接对话框,选择“触敏动作-左键动作”,弹出触敏性动作脚本编辑器。3、在“按下鼠标”脚本编辑器中,填写脚本如下:this.FColor=255;“鼠标按着周期执行”编辑器中,填写脚本如下:a=a+5;“释放鼠标”编辑器中,填写脚本如下:this.FColor=0;4、单击“确认”按钮。如要求定义变量a,定义变量a为中间变量。5、在画面上建立一个变量显示对象,显示变量a的值。6、在Draw中将画面“保存”,然后单击“运行”,进入运行系统VIEW下,观看动作效果。此时,用鼠标左键点击该矩形(矩形填充颜色变为黑色),按着鼠标一段时间,观看a值的变化效果,释放鼠标,可以看到矩形颜色变为红色。若要创建一般性动作脚本,请执行以下步骤:1、创建要加入脚本的图形对象。2、双击对象,进入动画连接对话框。3、在动画连接对话框中选择“杂项-一般性动作”。弹出一般性动作脚本编辑器:举例:1、在Draw中的当前窗口画面中,创建一个矩形对象。2、双击矩形,进入动画连接对话框,选择“杂项-一般性动作”,弹出一般性动作脚本编辑器。3、打开“运行中周期执行”编辑区域。4、输入脚本如下:IFc==100THEN184第二部分用户指南Show()ELSEHide()ENDIF5、点击“保存”,如c变量没有事先定义,则出现对话框如下:6、点击“确认”,进入变量定义对话框:7、定义变量c为中间变量。并在画面上建立一个变量输入/显示对象,在运行系统下可以设置和显示变量c的值。8、“运行”系统,在刚才的窗口下,c变量的初始值是0,矩形是隐藏的,设置c变量的值为100,矩形就显示了出来。5.3应用程序动作脚本应用程序动作脚本的作用范围为整个应用程序,可以在这种脚本中调用其他应用程序、完成数值计算等。若要创建应用程序动作脚本,请选择“特殊功能[S]/动作/应用程序”菜单命令。根据执行条件应用程序动作脚本有三种:进入程序:在应用程序启动时执行一次。程序运行周期执行:在应用程序运行期间周期性的执行。周期可以指定.退出程序:在应用程序退出时执行一次。举例:1、首先按照第二章步骤定义中间变量c。第五章动作脚本1852、然后,选择Draw的菜单“特殊功能-应用程序动作”,打开脚本编辑器:3、在“进入程序”脚本区域,输入脚本:c=0;在“程序运行周期执行”脚本区域,输入脚本:IFc=100THENc=c+10;ELSEc=0;ENDIF4、单击“确认”。5、在画面上建立一个变量显示文本对象,在运行系统下可以显示变量c的值。6、在Draw中点击“运行”按钮,进入VIEW运行系统,在刚才的画面窗口中观察c变量的变化。该变量将从0,10,20,….一直到110,然后返回又从0开始。5.4窗口动作脚本窗口动作脚本的作用范围为窗口。若要创建窗口动作脚本,请选择菜单命令“特殊功能[S]/动作/窗口”菜单项。根据执行条件窗口动作脚本有三种:进入窗口:开始显示窗口时执行一次。窗口运行时周期执行:在窗口显示过程中以指定周期执行。退出窗口:在窗口关闭时执行一次。5.5数据改变动作脚本数据改变动作脚本以变量的数值改变作为触发事件。每当变量的数值发生变化时,脚本执行一次。若要数据改变动作脚本,选择菜单命令“特殊功能[S]/动作/数据改变”,出现数据改变动作脚本编辑器:186第二部分用户指南变量名:在此项中输入变量名或变量名字段。已定义动作:这个下拉框中可以列出已经定义了数据改变动作的变量的列表,可以选择其中一个变量以修改脚本。举例:1、首先按照5.3节示例,定义C变量及其变化规律。2、在窗口上画一个圆,如图:3、用鼠标右键单击该图形对象,出现右键菜单。如图:第五章动作脚本1874、选择“对象命名”,定义该圆名称,如“round”。5、然后,选择Draw的菜单“特殊功能-动作-数据改变”,打开对话框如下:6、定义一个和变量C相应的数据改变动作,脚本如下:#round.FColor=#round.FColor+5;上述脚本含义:只要变量C发生变化,就执行上述语句一次。也就是说,对象round的填充颜色值有上述变化。7、单击“确认”,该C变量对应的数据改变动作已经定义完毕。8、在Draw中,单击“运行”,进入VIEW运行状态。可以看到,名叫“round”的圆形的填充颜色,随着c值的改变而改变。5.6键动作脚本键动作脚本以键盘按键的动作作为触发事件。若要创建键动作脚本,选择菜单命令“特殊功能[S]/动作/键”菜单项,出现键动作脚本编辑器:188第二部分用户指南根据执行条件键动作脚本有三种:键按下:在键按下瞬间执行一次。按键期间周期执行:在键按下期间循环执行,执行周期取决与“系统参数”里的“动作周期”时间参数。键释放:在键释放瞬间执行一次。5.7条件动作脚本条件动作脚本以变量或逻辑表示式的条件值为触发事件。当条件值为真时、为真期间、为假时和为假期间执行条件动作脚本。若要创建条件动作脚本,选择菜单命令“特殊功能[S]/定义动作/条件”菜单项,出现条件动作脚本编辑器:名称:此项用于指定条件动作脚本的名称。单击后面的“...”按钮,会自动列出已定义的条件动作脚本的名称。条件执行的时机有4种:当条件为真时、为真期间、为假时和为假期间执行脚本。对于为真期间和为假期间执行的脚本,需要指定执行的时间周期。说明:此项用于指定对条件动作脚本的说明。此项内容可以不指定。第五章动作脚本189条件选择:有2种条件,自定义条件和预定义条件。对于自定义条件,需要在条件对话框内输入条件表达式。如果要使用预定义条件,选择“预定义”按钮,这时自定义条件的条件表达式的输入框自动消失,同时显示出“预定义条件”选择按钮,单击此按钮,出现如下对话框:预定义条件目前提供了“过程报警”、“设备故障”和“数据源故障”几种类型。选择某一种条件类型,并具体指定其他条件。动作:有2种动作,自定义动作和预定义动作。对于自定义条件,需要在自定义动作对话框内输入动作脚本。如果要使用预定义动作,单击按钮“预定义动作”,出现如下对话框:预定义动作包含以下几种:记录:选择此项后,当条件满足时,将形成事件记录。标准报警声音:选择此项后,当条件满足时,系统将发出标准报警声音。系统报警窗提示:选择此项后,当条件满足时,系统将显示报警窗口。弹出提示框:选择此项后,当条件满足时,系统将弹出一个提示对话框。打开窗口:选择此项后,当条件满足时,系统将打开窗口。要打开的窗口可以指定。190第二部分用户指南语音提示:选择此项后,当条件满足时,系统将播放一个语音文件。语音文件可以指定。打印:选择此项后,当条件满足时,系统将把所发生的条件的描述信息输出到打印机上。以上预定义动作可以同时选择一个或多个。自定义动作和预定义动作可以同时指定,运行时将同时动作。注意:预定义动作不能在条件“为真期间”或“为假期间”时选择。5.8脚本编辑器在Draw中,各种脚本类型所用的脚本编辑器对话框的形式大体相同,我们以键动作脚本为例来说明脚本编辑器的使用。菜单此菜单命令用于将编辑器内的文本内容保存到文本文件中或从文件中读入文本内容。激活此“保存到文件(S)”命令,弹出对话框:第五章动作脚本191在输入项“文件名()”内输入您要保存的文件名称,单击“保存(S)”按钮,编辑器内的文本内容则被保存到指定的文本文件中。反之亦然。此菜单中包含一组常用的编辑命令,可用于完成“剪切”、“复制”、“粘贴”、“删除”、“查找/替换”、“全部选择”等操作。例如:选择“查找”菜单,出现“替换”对话框:工具按钮:一旦输入完脚本,请单击此按钮。对话框将保存脚本内容然后关闭。:单击此按钮关闭对话框并取消当前输入。:单击此按钮保存脚本内容。:单击此按钮删除编辑器中的全部文本内容。删除的内容并不保存到剪切板上,删除操作也不能撤消。:选择后进入函数选择列表框:192第二部分用户指南选择所需的函数,单击“选择”按钮或者直接双击函数名,函数表达式自动被添加到编辑器中(当您选择一个函数时,在说明中将自动给出这个函数的帮助信息和用法示例)。:单击此按钮后出现窗口选择对话框:选择一个窗口名称后,单击“确定”按钮或双击窗口名称,窗口选择对话框关闭,在脚本中插入被选择的窗口的名称。:单击此按钮后出现变量选择对话框:第五章动作脚本193选择一个变量名称后,单击“选择”按钮,变量选择对话框关闭,在脚本中插入被选择的变量。:单击此按钮后出现字段选择对话框:选择一个字段后,单击“选择”按钮或双击字段名称,字段选择对话框关闭,在脚本中插入被选择的字段。194第二部分用户指南:单击这些块功能按钮在当前光标处向脚本插入标准语句块。单击这些文本按钮在当前光标处向脚本加入以上算术运算符、逻辑运算符、注释符。5.9动作脚本语言动作脚本就是用动作脚本语言编写的一段程序。动作脚本语言是力控开发系统Draw提供的一种自行约定的内嵌式程序语言。它是一种类似BASIC和C的高级语言。本节介绍该语言的语法及用法。动作脚本语言支持赋值、数学运算等基本语法,也可以书写由IF-ELSE-EDIF等语句构成的带有分支结构的程序脚本。5.9.1表达式在脚本中所用的句法与通常的四则运算相似。大多数的表达式可能是如下的形式:a=32;//表达式1a=a+1;//表达式2a=(b-c)*32/d;//表达式3#rectangle1.fColor=8;//表达式4@idirect=@lic101.pv;//表达式5a=rand(10);//表达式6每个表达式把等号(=)右边表达式的值赋给左边的变量。表达式以分号(;)结束。表达式中操作数必须是常量或变量。在赋值运算符(=)的左边必须是单个变量名。表达式4“#rectangle1.fColor=8;”以符号“#”开头,表示其后面的有效符号为图形对象名称。在此例中rectangle1是一个填充矩形的对象名称,fColor是它的属性字段,代表它的填充颜色。这个表达式的运行结果是将一个名为rectagnle1的填充矩形的填充颜色置为编号为8的颜色。在这里,我们解释一下图形对象及其属性字段的概念。在开发系统中,包括从简单图形(如:线、矩形等)到标准图形(如:趋势、报警记录等)都可以视为图形对象。每一种对象都有一些共