资源描述
,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,单击此处编辑母版标题样式,单击此处编辑母版文本样式,二级,三级,四级,五级,*,组态王中命令语言是一种在语法上,类似语言,的程序,,用于增强应用程序的灵活性、处理一些算法和操作等,第,5,章 用户脚本程序,组态王中命令语言是一种在语法上类似语言的程序,用于增强应用,5.1,命令语言类型,命令语言都是靠事件触发执行的,包括,应用程序命令语言,热键命令语言,事件命令语言,数据改变命令语言,自定义函数命令语言,动画连接命令语言,画面命令语言,5.1 命令语言类型 命令语言都是靠事件,5.1,命令语言类型,动画连接命令语言和画面命令语言的执行受画面是否加载的影响。,5.1 命令语言类型 动画连接命令语言和画面,5.1,命令语言类型,执行不受画面打开与否的限制,只要符合条件就可以执行的命令语言称为,后台执行语言,,包括:,应用程序命令语言,热键命令语言,事件命令语言,数据改变命令语言,自定义函数命令语言,注意:,后台执行语言受运行系统中“特殊,/,开始执行后台任务”和“特殊,/,停止执行后台任务”命令的控制。或者改变,$,启动后台命令语言,5.1 命令语言类型 执行不受画面打开与否的,5.1,命令语言类型,应用程序命令语言,指在组态王运行系统应用程序启动时、运行期间和程序退出时执行的命令语言程序。如果是在运行系统运行期间,该程序按照指定时间间隔定时执行。,应用程序命令语言只能定义一个。,菜单条,工具栏,关键字选择,命令语言编辑区,变量选择,函数选择,运算符输入,触发条件,思考:,有的数据需要每隔,1000ms,处理一次,有的需要,2000ms,处理一次,怎样处理,?,5.1 命令语言类型,5.1,命令语言类型,数据改变命令语言,连接的,变量或变量的域,的值发生了变化,。,可以定以多个,事件命令语言,规定的表达式的条件成立时执行的命令语言。如某个变量等于定值,某个表达式描述的条件成立,。,注意:使用“事件命令语言”或“数据改变命令语言”过程中要注意防止死循环。,5.1 命令语言类型数据改变命令语言,5.1,命令语言类型,热键命令语言,工程人员随时按下键盘上相应的热键都可以启动这段命令语言程序。热键命令语言,可以指定使用权限和操作安全区,自定义函数语言,如果组态王提供的各种函数不能满足工程的特殊需要,组态王还提供用户自定义函数功能。自定义函数是利用类似,C,语言来编写的一段程序,其自身不能直接被组态王触发调用,,必须通过其他命令语言来调用执行,。,5.1 命令语言类型热键命令语言,5.1,命令语言类型,画面命令语言,画面命令语言就是与画面显示与否有关系的命令语言程序。画面命令语言分为三个部分:显示时、存在时、隐含时,动画连接语言,点击某图素执行的某段命令语言。包含三个选项:按下时、弹起时和按住时。,5.1 命令语言类型画面命令语言,5.2,命令语言语法,命令程序的语法与,一般,C,程序区别不大,在输入命令语言时,除汉字外,其他关键字,如标点符号,必须以英文状态输入,。,每一语句结束用分号,”,;”结束,使用,ifelse,、,while,()等语句时,其程序多行时要用花括号“,”,括起来,用,或者,*,注释,5.2 命令语言语法命令程序的语法与一般C程序区别不大,5.2,命令语言语法,1,、运算符,!,逻辑非,-,负数(单目),取补码,将整型变量变成“,2,”的补码(二进制数取反再加,1,,便于一种电路实现)。,*,乘法,/,除法,模运算,加法,减法(双目),组态王的运算符相对来说比较丰富,包含了位逻辑运算符,5.2 命令语言语法1、运算符!逻辑非-负数(单目)取,5.2,命令语言语法,1,、运算符,&,整型量按位与,|,整型量按位或,整型量异或,&,逻辑与,|,逻辑或,大于,=,大于或等于,=,等于(判断),!=,不等于,=,等于(赋值),5.2 命令语言语法1、运算符&整型量按位与|整型量按位,5.2,命令语言语法,1,、运算符,5.2 命令语言语法1、运算符,赋值语句用得最多,语法如下:,变量(变量的可读写域),=,表达式,;,可以给一个,可读写变量,赋值,也可以给,可读写变量的域,赋值。,例如:,自动开关,=1,,反应罐温度,.priority=3;,5.2,命令语言语法,2,、赋值语句,赋值语句用得最多,语法如下:5.2 命令语言语法2、赋值,IFELSE,语句用于按表达式的状态有条件地执行不同的程序,可以嵌套使用。语法为:,IF(,表达式,),一条或多条语句;,ELSE,一条或多条语句;,注意:无,end,类结束标识符,5.2,命令语言语法,3,、条件语句,IFELSE 语句用于按表达式的状态有条件地执行不同的程序,需要注意的是,,if-else,语句里如果是单条语句可省略花括弧“,”,,多条语句必须在一对花括弧“,”,中,,ELSE,分支可以省略。,例,1,:,if(step=3),颜色,=”,红色”,;,/,上述语句表示当变量,step,与数字,3,相等时,将变量颜色置为“红色”(变量“颜色”为内存字符串变量),例,2,:,if,(出料阀,=1,),出料阀,=0;/,将离散变量“出料阀”设为,0,状态,else,出料阀,=1;,5.2,命令语言语法,3,、条件语句,需要注意的是,if-else 语句里如果是单条语句可省略花括,例,3,:,if(step=3),颜色,=”,红色”,;,反应罐温度,.priority=1;,else,颜色,=”,黑色”,;,反应罐温度,.priority=3;,5.2,命令语言语法,3,、条件语句,例3:if(step=3)5.2 命令语言语法3、,当,while,()括号中的表达式条件成立时,循环执行后面“,”,内的程序。语法如下:,WHILE(,表达式,),一条或多条语句,(,以;结尾,),5.2,命令语言语法,4,、循环语句,当while()括号中的表达式条件成立时,循环执行后面“,单行注释在注释语句的开头加注释符“,/”,多行注释是在注释语句前加“,/*”,,在注释语句后加“*,/”,例,1,:,/,设置装桶速度,if(,游标刻度,=10)/,判断液位的高低,装桶速度,=80;,5.2,命令语言语法,5,、注释方法,单行注释在注释语句的开头加注释符“/”5.2 命令语言,多行注释是在注释语句前加“,/*”,,在注释语句后加“*,/”,。多行注释也可以用在单行注释上,。,例,2,:,if(,游标刻度,=10)/*,判断液位的高低*,/,装桶速度,=80;,例,3,:,/*,判断液位的高低改变装桶的速度*,/,if(,游标刻度,=10),装桶速度,=80;,else,装桶速度,=60;,5.2,命令语言语法,5,、注释方法,多行注释是在注释语句前加“/*”,在注释语句后加“*/”。多,5.3,命令语言编辑环境,工具栏:提供命令语言编辑的工具。,关键字选择列表。,函数选择,运算符输入,变量选择,5.3 命令语言编辑环境工具栏:提供命令语言编辑的工具。,“组态王”支持使用内建的复杂函数,其中包括字符串函数、数学函数、系统函数、控件函数、,SQL,函数及其他函数,具体见,组态王命令语言函数速查手册,。,5.3,命令语言编辑环境,“组态王”支持使用内建的复杂函数,其中包括字符串函数、数学函,5.3,命令语言编辑环境,编辑环境中无调试窗口和工具。,提供,trace(),函数进行调试用,举例,调用格式:,Trace(test=%2D,Express);,即把表达式,Express,的值按照十进制整数格式输出到信息窗口中,若,Express=100,,信息窗口将显示“,test=100”,。字符串“,test”,也可由用户指定,5.3 命令语言编辑环境编辑环境中无调试窗口和工具。,5.3,命令语言编辑环境,脚本里可以定义变量。,变量使用注意,:,可定义类型:,LONG,、,FLOAT,、,STRING,、,BOOL,和自定义结构类型,自定义变量,无域概念,只有变量的值。,使用方法和组态王一致,变量作用域本脚本或者函数,,其他数据字典里定义的变量相当于全局变量,变量定义,不区分大小写,5.3 命令语言编辑环境脚本里可以定义变量。,5.4,自定义函数编写,自定义函数的语法与,C,语言中定义子函数的格式类似。自定义函数命令语言是,由变量定义部分和可执行语言组成的单独实体,。,自定义函数定义的内容为:,1,、自定义函数类型(函数返回值类型),2,、函数名(唯一)和函数参数类型及名称(多个),3,、函数体内容,5.4 自定义函数编写自定义函数的语法与C语言中定义子函,5.4,自定义函数编写,返回类型定义,函数名称、参数类型定义,自定义变量类型定义,返回值,调用方式:,Test=,弧度转换,(test);,Test=,弧度转换,(156);,5.4 自定义函数编写返回类型定义函数名称、参数类型定义,5.4,自定义函数编写,几点注意,:,六个关键字:,LONG,、,FLOAT,、,STRING,、,BOOL,、,VOID,、,RETURN,,大小写均可,函数名不能为空,,return,返回值用于返回值,,VOID,函数不用返回值,单独用,return,表示程序结束,自定义函数中的函数名称和在函数中定义的变量不能与组态王中定义的变量、组态王的关键字、函数名等相同。,5.4 自定义函数编写几点注意:,5.4,自定义函数编写,自定义函数显示框里会显示系统报警或者控件连接要求的函数,5.4 自定义函数编写自定义函数显示框里会显示系统报警或,1,、,Exit(Option),:,此函数使组态王运行环境退出。调用形式:,参数:,Option:,整型变量或数值,0-,退出当前程序;,1-,关机;,2-,重新启动,windows,;,5.5,常用函数介绍,1、Exit(Option):此函数使组态王运行环境退出。调,2,、,ShowPicture,:,此函数用于显示画面。,调用格式:,ShowPicture(PictureName);,例如:ShowPicture(“反应车间”),3,、,ClosePicture,:,此函数用于将已调入内存的画面关闭,并从内存中删除。,格式:,ClosePicture(,画面名,);,例如:,ClosePicture(,反应车间,);,5.5,常用函数介绍,2、ShowPicture:此函数用于显示画面。5.5,4,、,startapp,:,此函数用于启动另一窗口应用程序。为确保能启动应用程序,请在,应用程序名前使用全路径。路径使用,DOS,名称,即在,DOS,下显示的路径名。,调用格式:,StartApp(,命令行参数,),;或,StartApp(,应用程序名,),;,例如:,StartApp(“c:programfilesmicrosoftofficeofficeexcel report.xls”);,或者:,StartApp(c:program filesmicrosoftofficeofficeexcel,);,5.5,常用函数介绍,4、startapp:此函数用于启动另一窗口应用程序。为确保,5,、,startapp,:,此函数用于启动另一窗口应用程序。为确保能启动应用程序,请在,应用程序名前使用全路径。路径使用,DOS,名称,即在,DOS,下显示的路径名。,调用格式:,StartApp(,命令行参数,),;或,StartApp(,应用程序名,),;,例如:,StartApp(“c:programfilesmicrosoftofficeofficeexcel report.xls”);,或者:,StartApp(c:program filesmicrosoftofficeofficeexcel,);,5.5,常用函数介绍,5、startapp:此函数用于启动另一窗口应用程序。为确保,6,、,ActivateApp(“Word.exe”),:,此函数用于激活正在运行的窗口应用程序,使之变为当
展开阅读全文