《用户脚本程序.pptx》由会员分享,可在线阅读,更多相关《用户脚本程序.pptx(48页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、5.1 命令语言类型命令语言都是靠事件触发执行的,如定时、数据的变化、键盘键的按下、鼠标的点击等。根据事件和功能的不同,包括应用程序命令语言、热键命令语言、事件命令语言、数据改变命令语言、自定义函数命令语言、动画连接命令语言和画面命令语言等。具有完备的词法语法查错功能和丰富的运算符、数学函数、字符串函数控件函数SQL 函数和系统函数。各种命令语言通过“命令语言编辑器”编辑输入,在“组态王”运行系统中被编译执行。应用程序命令语言、热键命令语言、事件命令语言、数据改变命令语言可以称为“后台命令语言”,它们的执行不受画面打开与否的限制,只要符合条件就可以执行。另外可以使用运行系统中的菜单“特殊/开始
2、执行后台任务”和“特殊/停止执行后台任务”来控制所有这些命令语言是否执行。而画面和动画连接命令语言的执行不受影响。也可以通过修改系统变量“$启动后台命令语言”的值来实现上述控制,该值置0 时停止执行,置1 时开始执行。返回下一页第1页/共48页5.1 命令语言类型1.应用程序命令语言在工程浏览器的目录显示区,选择“文件命令语言应用程序命令语言”,则在右边的内容显示区出现“请双击这儿进入对话框”图标,如图51 所示。双击图标,则弹出“应用程序命令语言”对话框,如图52 所示。在输入命令语言时,除汉字外,其他关键字,如标点符号必须以英文状态输入。应用程序命令语言是指在组态王运行系统应用程序启动时、
3、运行期间和程序退出时执行的命令语言程序。如果是在运行系统运行期间,该程序按照指定时间间隔定时执行。返回上一页下一页第2页/共48页5.1 命令语言类型如图53 所示,当选择“运行时”标签时,会有输入执行周期的编辑框“每毫秒”。输入执行周期,则组态王运行系统运行时,将按照该时间周期性的执行这段命令语言程序,无论打开画面与否。选择“启动时”标签,在该编辑器中输入命令语言程序,该段程序只在运行系统程序启动时执行一次。选择“停止时”标签,在该编辑器中输入命令语言程序,该段程序只在运行系统程序退出时执行一次。应用程序命令语言只能定义一个。返回上一页下一页第3页/共48页5.1 命令语言类型2.数据改变命
4、令语言在工程浏览器中选择命令语言数据改变命令语言,在浏览器右侧双击“新建”,弹出数据改变命令语言编辑器,如图54 所示。数据改变命令语言触发的条件为连接的变量或变量的域的值发生了变化。在命令语言编辑器“变量.域”编辑框中输入或通过单击“?”按钮来选择变量名称(如:原料罐液位)或变量的域(如:原料罐液位.Alarm)。这里可以连接任何类型的变量和变量的域,如离散型、整型、实型、字符串型等。当连接的变量的值发生变化时,系统会自动执行该命令语言程序。数据改变命令语言可以按照需要定义多个。需要注意是,在使用“事件命令语言”或“数据改变命令语言”过程中要注意防止死循环。例如,变量A 变化引发数据改变命令
5、语言程序中含有命令B=B+1,若用B 变化再引发事件命令语言或数据改变命令语言的程序中不能再有类似A=A+1 的命令。返回上一页下一页第4页/共48页5.1 命令语言类型3.事件命令语言事件命令语言是指当规定的表达式的条件成立时执行的命令语言。如某个变量等于定值,某个表达式描述的条件成立。在工程浏览器中选择命令语言事件命令语言,在浏览器右侧双击“新建”,弹出事件命令语言编辑器,如图55 所示。事件命令语言有三种类型:发生时:事件条件初始成立时执行一次。存在时:事件存在时定时执行,在“每毫秒”编辑框中输入执行周期,则当事件条件成立存在期间周期性执行命令语言,如图56 所示。消失时:事件条件由成立
6、变为不成立时执行一次。事件描述:指定命令语言执行的条件。备注:对该命令语言做一些说明性的文字。返回上一页下一页第5页/共48页5.1 命令语言类型4.热键命令语言“热键命令语言”链接到工程人员指定的热键上,软件运行期间,工程人员随时按下键盘上相应的热键都可以启动这段命令语言程序。热键命令语言可以指定使用权限和操作安全区。输入热键命令语言时,在工程浏览器的目录显示区,选择“文件命令语言热键命令语言”,双击右边的内容显示区出现“新建”图标,弹出热键命令语言编辑器,如图57 所示。热键定义,当Ctrl 和Shift 左边的复选框被选中时,表示此键有效,如图58 所示。热键定义区的右边为键按钮选择区,
7、用鼠标单击此按钮,则弹出如图59 所示的对话框。返回上一页下一页第6页/共48页5.1 命令语言类型在此对话框中选择一个键,则此键被定义为热键,还可以与Ctrl 和Shift 形成组合键。热键命令语言可以定义安全管理,安全管理包括操作权限和安全区,两者可单独使用,也可合并使用,如图510 所示。比如:设置操作权限为918。只有操作权限大于等于918的操作员登录后按下热键时,才会激发命令语言的执行。返回上一页下一页第7页/共48页5.1 命令语言类型5.用户自定义函数如果组态王提供的各种函数不能满足工程的特殊需要,组态王还提供用户自定义函数功能。用户可以自己定义各种类型的函数,通过这些函数能够实
8、现工程特殊的需要。如特殊算法、模块化的公用程序等,都可通过自定义函数来实现。自定义函数是利用类似C 语言来编写的一段程序,其自身不能直接被组态王触发调用,必须通过其他命令语言来调用执行。编辑自定义函数时,在工程浏览器的目录显示区,选择“文件命令语言自定义函数命令语言”,在右边的内容显示区出现“新建”图标,用左键双击此图标,将出现“自定义函数命令语言”对话框,如图511 所示。具体的应用请参考组态王使用手册。返回上一页下一页第8页/共48页5.1 命令语言类型6.画面命令语言画面命令语言就是与画面显示与否有关系的命令语言程序。画面命令语言定义在画面属性中。打开一个画面,选择菜单“编辑/画面属性”
9、,或用鼠标右键单击画面,在弹出的快捷菜单中选择“画面属性”菜单项,或按下+键,打开画面属性对话框,在对话框上单击“命令语言”按钮,弹出画面命令语言编辑器,如图512 所示。画面命令语言分为三个部分:显示时、存在时、隐含时。显示时:打开或激活画面为当前画面,或画面由隐含变为显示时执行一次。返回上一页下一页第9页/共48页5.1 命令语言类型存在时:画面在当前显示时,或画面由隐含变为显示时周期性执行,可以定义指定执行周期,在“存在时”中的“每毫秒”编辑框中输入执行的周期时间。隐含时:画面由当前激活状态变为隐含或被关闭时执行一次。只有画面被关闭或被其他画面完全遮盖时,画面命令语言才会停止执行。只与画
10、面相关的命令语言可以写到画面命令语言里如画面上动画的控制等,而不必写到后台命令语言中如应用程序命令语言等,这样可以减轻后台命令语言的压力,提高系统运行的效率。返回上一页下一页第10页/共48页5.1 命令语言类型7.动画连接命令语言对于图素,有时一般的动画连接表达式完成不了工作,而程序只需要点击一下画面上的按钮等图素才执行,如点击一个按钮,执行一连串的动作,或执行一些运算、操作等。这时可以使用动画连接命令语言。该命令语言是针对画面上的图素的动画连接的,组态王中的大多数图素都可以定义动画连接命令语言。如在画面上放置一个按钮,双击该按钮,弹出动画连接对话框,如图513 所示。在“命令语言连接”选项
11、中包含三个选项:按下时:当鼠标在该按钮上按下时,或与该连接相关联的热键按下时执行一次。弹起时:当鼠标在该按钮上弹起时,或与该连接相关联的热键弹起时执行一次。返回上一页下一页第11页/共48页5.1 命令语言类型按住时:当鼠标在该按钮上按住,或与该连接相关联的热键按住,没有弹起时周期性执行该段命令语言。按住时命令语言连接可以定义执行周期,在按钮后面的“毫秒”标签编辑框中输入按钮被按住时命令语言执行的周期。单击上述任何一个按钮都会弹出动画连接命令语言编辑器,如图514 所示。其用法与其他命令语言编辑器用法相同。动画连接命令语言可以定义关联的动作热键,如图513 所示,单击“等价键”中的“无”按钮,
12、可以选择关联的热键,也可以选择、与之组成组合键。运行时,按下此热键,效果同在按钮上按下鼠标键相同。定义有动画连接命令语言的图素可以定义操作权限和安全区,只有符合安全条件的用户登录后,才可以操作该按钮。返回上一页第12页/共48页5.2 命令语言语法命令语言程序的语法与一般C 程序的语法没有大的区别,每一程序语句的末尾应该用分号“;”结束,在使用ifelse、while()等语句时,其程序要用花括号“”括起来。1.运算符用运算符连接变量或常量就可以组成较简单的命令语言语句,如赋值、比较、数学运算等。命令语言中可使用的运算符以及算符优先级与连接表达式相同,运算符有以下几种。运算符的优先级:下面列出
13、算符的运算次序,首先计算最高优先级的算符,再依次计算较低优先级的算符。同一行的算符有相同的优先级。返回下一页第13页/共48页5.2 命令语言语法返回上一页下一页第14页/共48页5.2 命令语言语法2.赋值语句赋值语句用得最多,语法如下:变量(变量的可读写域)=表达式;可以给一个变量赋值,也可以给可读写变量的域赋值。例如:自动开关=1;表示将自动开关置为开(1表示开,0表示关)颜色=2;将颜色置为黑色(如果数字2代表黑色)反应罐温度.priority=3;表示将反应罐温度的报警优先级设为3返回上一页下一页第15页/共48页5.2 命令语言语法3.IF-ELSE 语句IFELSE 语句用于按表
14、达式的状态有条件地执行不同的程序,可以嵌套使用。语法为:IF(表达式)一条或多条语句;ELSE一条或多条语句;返回上一页下一页第16页/共48页5.2 命令语言语法需要注意的是,if-else 语句里如果是单条语句可省略花括弧“”,多条语句必须在一对花括弧“”中,ELSE 分支可以省略。例1:if(step=3)颜色=”红色”;/上述语句表示当变量step 与数字3 相等时,将变量颜色置为“红色”(变量“颜色”为内存字符串变量)例2:if(出料阀=1)出料阀=0;/将离散变量“出料阀”设为0状态else出料阀=1;上述语句表示将内存离散变量“出料阀”设为相反状态。If-else 里是单条语句可
15、以省略“”。返回上一页下一页第17页/共48页5.2 命令语言语法例3:if(step=3)颜色=”红色”;反应罐温度.priority=1;else颜色=”黑色”;反应罐温度.priority=3;上述语句表示当变量step 与数字3 相等时,将变量颜色置为“红色”(变量“颜色”为内存字符串变量),反应罐温度的报警优先级设为1;否则变量颜色置为“黑色”,反应罐温度的报警优先级设为3。返回上一页下一页第18页/共48页5.2 命令语言语法4.While()语句当while()括号中的表达式条件成立时,循环执行后面“”内的程序。语法如下:WHILE(表达式)一条或多条语句(以;结尾)返回上一页下
16、一页第19页/共48页5.2 命令语言语法需要注意的是,同IF 语句一样,WHILE 里的语句若是单条语句,可省略花括弧“”外,但若是多条语句必须在一对花括弧“”中。这条语句要慎用,否则,会造成死循环。例1:while(循环=10)/判断液位的高低装桶速度=80;多行注释是在注释语句前加“/*”,在注释语句后加“*/”。多行注释也可以用在单行注释上。返回上一页下一页第21页/共48页5.2 命令语言语法例2:if(游标刻度=10)/*判断液位的高低*/装桶速度=80;例3:/*判断液位的高低改变装桶的速度*/if(游标刻度=10)装桶速度=80;else装桶速度=60;返回上一页第22页/共4
17、8页5.3 命令语言执行中如何跟踪变量的值命令语言一旦运行起来,往往看到的是最终的结果,如果结果出现差错,就需要查看命令语言的执行过程调试命令语言。组态王提供了一个函数Trace(),该函数可以将规定的信息发送到组态王信息窗口中,类似于程序的调试,根据这些信息,用户可以了解到命令语言执行的过程和期间变量的值。该函数可以添加到命令语言程序的任何需要跟踪的位置,当命令语言调试完成后,可以将其删除。函数的具体使用方法请参见组态王函数手册。返回第23页/共48页5.4 在命令语言中使用自定义变量自定义变量是指在组态王的命令语言里单独指定类型的变量,这些变量的作用域为当前的命令语言,在命令语言里,可以参
18、加运算、赋值等。当该命令语言执行完成后,自定义变量的值随之消失,相当于局部变量。自定义变量不被计算在组态王的点数之中。适用于应用程序命令语言、事件命令语言、数据改变命令语言、热键命令语言、自定义函数、画面命令语言、动画连接命令语言、控件事件函数等。自定义变量功能的提供可以极大地方便用户编写程序。自定义变量的类型有BOOL(离散型)、LONG(长整型)、FLOAT (实数型)、STRING(字符串型)和自定义结构变量类型。其在命令语言中的使用方法与组态王变量相同。需要注意,自定义变量在使用之前必须要先定义。自定义变量没有“域”的概念,只有变量的值。在结构变量中定义一个结构,如图515 所示。设计
19、一个求原料罐上、下平均温度的自定义函数。返回下一页第24页/共48页5.4 在命令语言中使用自定义变量函数返回值类型为:FLOAT,函数名称及参数表为:平均温度(原料罐yuanliao1)函数体程序为:float 平均温度1;平均温度1=(yuanliao1.原料罐上部温度+yuanliao1.原料罐下部温度)/2;return 平均温度1;其中“原料罐”为已定义的结构;“yuanliao1”为自定义结构变量,它继承原结构的所有成员作为自己的成员;“平均温度1”为自定义变量,作为函数的返回值。返回上一页第25页/共48页5.5 实例命令语言应用控制1.实现画面切换功能利用系统提供的“菜单”工具
20、和ShowPicture()函数能够实现在主画面中切换到其他任一画面的功能。具体操作如下:(1)选择工具箱中的“菜单”工具,将鼠标放到监控画面的任一位置并按住鼠标左键画一个按钮大小的菜单对象,双击出菜单定义对话框,对话框设置如图516 所示。(2)菜单项输入完毕后单击“命令语言”按钮,弹出命令语言编辑框,在编辑中输入如下命令语言,菜单命令语言对话框如图517 所示。(3)单击“确认”按钮关闭对话框,当系统进入运行状态时单击菜单中的每一项,进入响应画面中返回下一页第26页/共48页5.5 实例命令语言应用控制2.如何退出系统如何退出组态王运行系统,返回到Windows,可以通过Exit()函数来
21、实现。(1)选择工具箱中的“按钮”工具,在画面上画一个按钮,选中按钮并单击鼠标右键,在弹出的下拉菜单中执行“字符串替换”命令,设置按钮文本为:系统退出。(2)双击按钮,弹出动画连接对话框,在此对话框中选择“弹起时”选项弹出命令语言编辑框,在编辑框中输入如下命令语言:Exit(0);(3)单击“确认”按钮关闭对话框,当系统进入运行状态时候单击此按钮系统将退出组态王运行环境。返回上一页下一页第27页/共48页5.5 实例命令语言应用控制3.定义热键在工业现场,为了操作的需要可能需要定义一些热键,当某键被按下时系统执行响应的控制命令。例如当按下F1 时,原料油出料阀被开启或关闭,这可以使用命令语言热
22、键命令语言来实现。(1)在工程浏览器左侧的“工程目录显示区”内选择“命令语言”下的“热键命令语言”选项,双击“目录内容显示区”的新建图标弹出“热键命令语言”编辑对话框,如图518所示。(2)对话框中单击“键”按钮,在弹出的“选择键”对话框中选择“F1”键后关闭对话框。返回上一页下一页第28页/共48页5.5 实例命令语言应用控制(3)在命令语言编辑区中输入如下命令语言:If(本站点原料油出料阀=1)本站点原料油出料阀=0;Else本站点原料油出料阀=1;(4)单击“确认”按钮关闭对话框。当系统进入运行状态时,按下“F1”键执行上述命令语言:首先判断原料油出料阀的当前状态,如果是开启的则将其关闭
23、,否则将其打开,从而实现了开关的切换功能。返回上一页第29页/共48页图51 选择应用程序命令语言返回第30页/共48页图52 应用程序命令语言返回第31页/共48页图53 应用程序命令语言返回第32页/共48页图54 数据改变命令语言编辑器返回第33页/共48页图55 事件命令语言编辑器返回第34页/共48页图56 事件命令语言存在时返回第35页/共48页图57 热键命令语言编辑器返回第36页/共48页图58 热键定义返回第37页/共48页图59 热键选择返回第38页/共48页图510 热键的安全管理定义返回第39页/共48页图511 自定义函数命令语言编辑器返回第40页/共48页图512 画面命令语言编辑器返回第41页/共48页图513 图素动画连接动画框中的命令语言连接返回第42页/共48页图514 图素动画连接命令语言编辑器返回第43页/共48页图515 结构变量返回第44页/共48页图516 菜单定义对话框返回第45页/共48页图517 菜单命令语言对话框返回第46页/共48页图518 热键命令语言对话框返回第47页/共48页感谢您的观看!第48页/共48页
限制150内