组态控制技术陈俊cj1l@163.comChap5:模拟设备&编写控制流程模拟设备1控制流程的编写2模拟设备模拟设备是MCGS软件根据设置的参数产生一组模拟曲线的数据,以供用户调试工程使用。本构件可以产生标准的正弦波,方波,三角波,锯齿波信号,且其幅值和周期都可以任意设置。模拟设备现在我们通过模拟设备,可以使动画自动运行起来,而不需要手动操作,具体操作如下:在“设备窗口”中双击“设备窗口”进入,点击工具条中的“工具箱”图标,打开“设备工具箱”;如果在“设备工具箱”中没有发现“模拟设备”,请单击“设备工具箱”中的“设备管理”进入。模拟设备在“可选设备”中您可以看到我们MCGS组态软件所支持的大部分硬件设备。在“通用设备”中打开“模拟数据设备”,双击“模拟设备”,按确认后,在“设备工具箱”中就会出现“模拟设备”,双击“模拟设备”,则会在“设备窗口”中加入“模拟设备”。模拟设备进入模拟设备属性设置,具体操作如下:在“设备属性设置”中,点击“内部属性”,会出现图标,单击进入“内部属性”设置,把通道1的最大值设为10,通道2的最大值设为6,其它不变,设置好后按”确认”按钮退到“基本属性”页。在“通道连接”中“对应数据对象”中输入变量,第一个通道对应输入液位1,第二个通道对应输入液位2,或在所要连接的通道中单击鼠标右键,到实时数据库中选中“液位1”“液位2”双击也可把选中的数据对象连接到相应的通道。模拟设备在“设备调试”中您就可看到数据变化。这时您再进入“运行环境”,您就会发现您所做的“水位控制系统”自动地运行起来了,但美中不足的是阀门不会根据水罐中的水位变化自动开启。编写控制流程脚本程序简介用户脚本程序是由用户编制的、用来完成特定操作和处理的程序,脚本程序的编程语法非常类似于普通的Basic语言,但在概念和使用上更简单直观,力求做到使大多数普通用户都能正确、快速地掌握和使用。对于大多数简单的应用系统,MCGS的简单组态就可完成。只有比较复杂的系统,才需要使用脚本程序,但正确地编写脚本程序,可简化组态过程,大大提高工作效率,优化控制过程。编写控制流程脚本语言编辑环境脚本程序编辑环境是用户书写脚本语句的地方。脚本程序编辑环境主要由脚本程序编辑框、编辑功能按钮、MCGS操作对象列表和函数列表、脚本语句和表达式4个部分构成,分别说明如下:脚本程序编辑框用于书写脚本程序和脚本注释,用户必须遵照MCGS规定的语法结构和书写规范书写脚本程序,否则语法检查不能通过。编写控制流程编辑功能按钮提供了文本编辑的基本操作,用户使用这些操作可以方便操作和提高编辑速度。比如,在脚本程序编辑框中选定一个函数,然后按下帮助按钮,MCGS将自动打开关于这个函数的在线帮助,或者,如果函数拼写错误,MCGS将列出与所提供的名字最接近函数的在线帮助。编写控制流程脚本语句和表达式列出了MCGS使用的三种语句的书写形式和MCGS允许的表达式类型。用鼠标单击要选的语句和表达式符号,在脚本编辑处光标所在的位置填上语句或表达式的标准格式。编写控制流程MCGS对象和函数列表以树结构的形式,列出了工程中所有的窗口、策略、设备、变量、系统支持的各种方法、属性以及各种函数,以供用户快速的查找和使用。比如,可以在用户窗口树中,选定一个窗口:“窗口0”,打开窗口0下的“方法”,然后双击Open函数,则MCGS自动在脚本程序编辑框中,添加了一行语句:用户窗口.窗口0.Open(),通过这行语句,就可以完成窗口打开的工作。编写控制流程脚本程序基本语句由于MCGS脚本程序是为了实现某些多分支流程的控制及操作处理,因此包括了几种最简单的语句:赋值语句、条件语句、退出语句和注释语句,同时,为了提供一些高级的循环和遍历功能,还提供了循环语句。编写控制流程所有的脚本程序都可由这五种语句组成,当需要在一个程序行中包含多条语句时,各条语句之间须用“:”分开,程序行也可以是没有任何语句的空行。大多数情况下,一个程序行只包含一条语句,赋值程序行中根据需要可在一行上放置多条语句。编写控制流程1.赋值语句赋值语句的形式为:数据对象=表达式。赋值语句用赋值号(“=”号)来表示,它具体的含义是:把“=”右边表达式的运算值赋给左边的数据对象。赋值号左边必须是能够读写的数据对象,如:开关型数据、数值型数据以及能进行写操作的内部数据对象编写控制流程而组对象、事件型数据对象、只读的内部数据对象、系统函数以及常量,均不能出现在赋值号的左边,因为不能对这些对象进行写操作。赋值号的右边为一表达式,表达式的类型必须与左边数据对象值的类型相符合,否则系统会提示“赋值语句类型不匹配”的错误信息。编写控制流程条件语句条件语句有如下三种形式:If〖表达式〗Then〖赋值语句或退出语句〗If〖表达式〗Then〖语句〗EndIfIf〖表达式〗Then〖语句〗Else〖语句〗EndIf编写控制流程条件语句中的四个关键字“If”、“Then”、“Else”、“Endif”不分大小写。如拼写不正确,检查程序会提示出错信息。条件语句允许多级嵌套,即条件语句中可以包含新的条件语句,MCGS脚本程序的条件语句最多可以有8级嵌套,为编制多分支流程的控制程序提供了可能。编写控制流程“IF”语句的表达式一般为逻辑表达式,也可以是值为数值型的表达式,当表达式的值为非0时,条件成立,执行“Then”后的语句,否则,条件不成立,将不执行该条件块中包含的语句,开始执行该条件块后面的语句。值为字符型的表达式不能作为“IF”语句中的表达式。编写控制流程循环语句循环语句为While和EndWhile,其结构为:While〖条件表达式〗….EndWhile当条件表达式成立时(非零),循环执行While和EndWhile之间的语句。直到条件表达式不成立(为零),退出。编写控制流程退出语句退出语句为“Exit”,用于中断脚本程序的运行,停止执行其后面的语句。一般在条件语句中使用退出语句,以便在某种条件下,停止并退出脚本程序的执行。编写控制流程注释语句以单引号“’”开头的语句称为注释语句,注释语句在脚本程序中只起到注释说明的作用,实际运行时,系统不对注释语句作任何处理。编写控制流程本讲主要目的是想通过编写一段脚本程序实现水位控制系统的控制流程,使大家熟悉脚本程序的编写环境。下面先对控制流程进行分析:当“水罐1”的液位达到9米时,就要把“水泵”关闭,否则就要自动启动“水泵”;当“水罐2”的液位不足1米时,就要自动关闭“出水阀”,否则自动开启“出水阀”;当“水罐1”的液位大于1米,同时“水罐2”的液位小于6米就要自动开启“调节阀”,否则自动关闭“调节阀”。编写控制流程具体操作如下:[1]在“运行策略”中,双击“循环策略”进入策略组态窗口。[2]双击图标进入“策略属性设置”,将:循环时间设为:200ms,按“确认”。[3]在策略组态窗口中,单击工具条中的“新增策略行”图标,增加一策略行。如果策略组态窗口中,没有策略工具箱,请单击工具条中的“工具箱”图标,弹出“策略工具箱”。[4]单击“策略工具箱”中的“脚本程序”,将鼠标指针移到策略块图标上,单击鼠标左键,添加脚本程序构件编写控制流程[5]双击进入脚本程序编辑环境,输入下面程序:IF液位19THEN水泵=1ELSE水泵=0ENDIFIF液位21THEN出水阀=0ELSE出水阀=1ENDIFIF液位11and液位26THEN调节阀=1ELSE调节阀=0ENDIF编写控制流程练习与思考1.如何使用模拟设备?2.如何对运行策略进行编辑?本讲内容到此结束