页数:28页文件大小:423.9 KB来源: 工控组态软件及应用ppt课件
本课件讲解组态王命令语言的应用:先介绍应用程序、数据改变、事件、热键、自定义函数、画面与动画连接七类命令语言及其触发方式,再讲解运算符、赋值语句、If-Else与While循环的语法规则及注释方法,最后通过画面切换、系统退出、菜单制作与十字路口交通灯控制等实例演示常用函数与脚本的编写。
第5章 组态王编程语言应用。【本章教学目标与要求】
5.1 命令语言类型。组态王中命令语言是一种在语法上类似 C 语言的程序,可以利用这些程序来增强应用程序的灵活性、处理一些算法和操作等。命令语言类型分为:
命令语言是靠事件触发执行的,如定时、数据的变化、键盘键的按下、鼠标的点击等,具有完备的词法语法查错功能和丰富的运算符、数学函数、字符串函数、控件函数、SQL 函数和系统函数。各种命令语言通过“命令语言编辑器”编辑输入,在组态王运行系统中被编译执行。
1、应用程序命令语言:在工程浏览器的目录显示区,选择“文件”→“命令语言”→“应用程序命令语言”,则在右边的内容显示区出现“请双击这儿进入<应用程序命令语言>对话框…”图标,双击该图标弹出应用程序命令语言编辑器。
应用程序命令语言是指在组态王运行系统应用程序启动时、运行期间和程序退出时执行的命令语言程序。如果是在运行系统运行期间,该程序按照指定时间间隔定时执行。
2、数据改变命令语言:在工程浏览器中选择命令语言—数据改变命令语言,在浏览器右侧双击“新建…”,弹出数据改变命令语言编辑器。数据改变命令语言触发的条件为连接的变量或变量的域的值发生了变化。
3、事件命令语言:指当规定的表达式的条件成立时执行的命令语言,如某个变量等于定值、某个表达式描述的条件成立。在工程浏览器中选择命令语言—事件命令语言,在浏览器右侧双击“新建…”,弹出事件命令语言编辑器。
4、热键命令语言:可以链接到指定的热键上,软件运行期间按下键盘上相应的热键都可以启动这段命令语言程序。输入时选择“文件”→“命令语言”→“热键命令语言”,双击右边内容显示区出现的“新建…”图标,弹出热键命令语言编辑器。热键可以是键盘上的任意键,或是任意键加 Ctrl 键或 Shift 的组合。
5、用户自定义函数:如果组态王提供的各种函数不能满足工程的特殊需要,组态王还提供用户自定义函数功能,可以实现特殊算法、模块化的公用程序等。自定义函数是利用类似 C 语言来编写的一段程序,其自身不能直接被组态王触发调用,必须通过其他命令语言来调用执行。自定义函数里有六个关键字,大小写均可,语法含义和 C 语言类似:
自定义函数的语法与 C 语言中定义子函数的格式类似,由变量定义部分和可执行语言组成。自定义函数定义的内容为:
【例】自定义函数 A():功能为自动加 1,当 A 大于或等于 100 时自动置 0,A 值是一个从 0—100 不停变化的无限循环的数。
6、画面命令语言:画面命令语言就是与画面显示与否有关系的命令语言程序,画面命令语言定义在画面属性中。
7、动画连接命令语言:对于图素,有时一般的动画连接表达式完成不了工作,而程序只需要点击一下画面上的按钮等图素才执行,如点击一个按钮执行一连串的动作,或执行一些运算、操作等,这时可以使用动画连接命令语言。
5.2 命令语言语法。命令语言程序的语法与一般 C 程序的语法没有大的区别:每一程序语句的末尾应该用分号“;”结束;在使用 if…else…、while()等语句时,其程序要用花括号“{ }”括起来。在命令语言编辑器中书写、编辑时一定要在英文输入状态下进行,特别是一些运算符号、标点符号,如果在中文状态下输入则无法保存执行。
1、运算符:组态王命令语言支持算术运算、关系运算、逻辑运算与位运算等多种运算符,可在命令语言编辑器中查看完整列表。本页源文件文字较少,主要为软件中的运算符列表截图,建议对照原图补充。
2、赋值语句:赋值语句用得最多,语法如下:
变量(变量的可读写域)=表达式;
可以给一个变量赋值,也可以给可读写变量的域赋值。如:
3、If-Else 语句:用于按表达式的状态有条件地执行不同的程序,可以嵌套使用。语法为:
IF(表达式){ 一条或多条语句;}ELSE{ … }
If—Else 语句里如果是单条语句可省略花括号“{ }”,多条语句必须在一对花括号“{ }”中,ELSE 分支可以省略。
4、While()语句:当 while()括号中的表达式条件成立时,循环执行后面“{ }”内的程序。语法如下:
WHILE(表达式){ 一条或多条语句(以;结尾)}
同 IF 语句一样,WHILE 里的语句若是单条语句可省略花括号“{ }”,若是多条语句必须在一对花括号“{ }”中。
【例】将离散型变量设为相反状态:
if(\\本站点\FV103==1)\\本站点\FV103=0; //将离散变量“出料阀”设为 0 状态
else \\本站点\FV103=1;
上述语句表示将内存离散变量“FV103”设为相反状态。If-else 这里是单条语句,可以省略“{ }”。
【例】利用 If—Else 语句实现液位位式控制,控制要求 10 <= LT101 <= 90。命令语言如下:
//液位位式控制//
if(\\本站点\LT101<=10){ \\本站点\FV101=1; //如果液位 LT101 小于等于 10,打开阀门 FV101; }
else if(\\本站点\LT101>=90){ \\本站点\FV101=0; //如果液位 LT101 大于等于 90,关闭阀门 FV101;}
else{ ; }
本例也可以用事件改变命令语言实现。
5、命令语言程序的注释方法:添加注释有利于程序的可读性,也方便程序的维护和修改。组态王的所有命令语言中都支持注释,注释可以在程序的任何地方进行。
5.3 一些常用“命令语言”的介绍。
ShowPicture("PictureName") 和 ClosePicture("PictureName") 这两条命令是专门用来进行画面切换的。
【例】在演示工程中进行画面之间的切换。
思路:设置按钮,进行组态画面切换,以一幅画面为主,切换后返回主画面。
【例】在主画面上设置一个按钮,实现退出组态王运行系统:在主画面上创建一个按钮,改名为“退出”,双击“退出”按钮弹出动画连接对话框,单击命令语言连接按钮“弹起时”弹出命令语言编辑器,在命令语言编辑区中写入:Exit(0)
3、Exit:此函数使组态王运行环境退出。调用形式:Exit(Option); 参数 Option 为整型变量或数值:0-退出当前程序;1-关机;2-重新启动 Windows。
4、菜单制作命令语言:用户将经常要调用的功能做成菜单形式,方便用户管理,并且对该菜单可以设置权限,提高系统操作的安全性。
menuindex 和 childmenuindex 都从等于 0 开始:menuindex==0 表示一级菜单中的第一个菜单;childmenuindex==0 表示所属一级菜单中的第一个二级菜单。
【例】利用菜单功能完成演示工程“二种液体混合加热”中画面之间的切换。
菜单制作命令语言格式示例:
if(menuindex==0) Showpicture("画面1名称");
if(menuindex==1) Showpicture("画面2名称");
if(menuindex==2 && childmenuindex==0) Showpicture("画面3名称(子菜单第一级)");
if(menuindex==2 && childmenuindex==1) Showpicture("子菜单2");
if(menuindex==4) Showpicture("画面5名称");
if(menuindex==5) Exit( 0 );
【例】十字路口交通灯的控制,控制要求:
设计思路:根据控制要求,东西向的红灯亮的时间和南北向的绿灯亮的时间相同,东西向的黄灯闪的时间和南北向的黄灯闪的时间也相同,东西向的 R、Y、B 灯可分别并联,南北向的 R、Y、B 灯也可分别并联,东西向的 B = 南北向的 R,东西向的 Y = 南北向的 Y,所以总共只需要三个变量即可。
在数据词典中定义 R、Y、B 三个内存离散型变量。由于组态王中没有专门的定时器,所以设计了一个自动加 1 计数器来进行计时,时间可根据计数的个数来进行调整。根据控制条件,黄灯仅仅是在满足条件时闪烁,所以黄灯的闪烁可以用“隐含”、“闪烁”来实现。
命令语言程序控制流程图:图示为十字路口交通灯控制的程序流程,按计时计数器的区间判断依次切换东西向与南北向的红、绿、黄灯状态,并循环执行。
下载地址:{{downurl}}
{{{a}}}
{{#b}}{{{b}}}
{{/b}} {{/title}} {{#nolog}}登陆注册
{{/nolog}} {{#djsx}}点我刷新
{{/djsx}} {{#gocz}} {{/gocz}} {{#ffqr}} {{/ffqr}}