1、工程师培训资料工程师培训资料 标题:MCGS嵌入式组态软件的脚本程序嵌入式组态软件的脚本程序培训(高(高端培训)端培训)培训人:xx第第12章章 MCGS嵌入式组态软件的脚本程序嵌入式组态软件的脚本程序12.1 脚本程序概述12.2 脚本程序的语言要素12.2.1 脚本程序的数据类型12.2.2 脚本程序的变量、常量及函数12.2.3 脚本程序的运算符12.3 脚本程序的基本语句12.3.1 脚本程序的赋值语句12.3.2 脚本程序的条件语句12.3.3 脚本程序的循环语句12.3.4 脚本程序的退出语句12.3.5 脚本程序的注释语句12.4 脚本程序的调试12.5 脚本程序的实例12.5.
2、1 计数器的实例12.5.2 字符串分解实例 第12章 MCGS嵌入式组态软件的脚本程序 脚本程序是MCGS嵌入式组态软件中的一种内置编程语言引擎。当某些控制和计算任务通过常规组态方法难以实现时,通过脚本语言可以解决其常规组态方法难以解决的问题。本章介绍MCGS嵌入版组态软件的脚本语言包括:脚本语言编辑环境、脚本程序语言要素、脚本程序基本语句、脚本程序的查错和运行等相关的内容。12.1 脚本程序概述 MCGS嵌入版组态软件脚本程序的作用是编制各种特定的流程控制程序和操作处理程序提供了方便的途径。脚本程序被封装在一个功能构件里(称为脚本程序功能构件),在后台由独立的线程来运行和处理。在MCGS嵌
3、入版组态软件中,脚本语言是一种语法上类似Basic的编程语言。脚本程序可以应用在运行策略中,把整个脚本程序作为一个策略功能块执行,也可以在动画界面的事件中执行。脚本程序编辑环境是用户书写脚本语句的地方。脚本程序编辑环境主要由脚本程序编辑框、编辑功能按钮、MCGS嵌入版组态软件操作对象列表和函数列表、脚本语句和表达式4个部分构成。1.脚本程序编辑框用于书写脚本程序和脚本注释,用户必须遵照MCGS嵌入版组态软件规定的语法结构和书写规范书写脚本程序,否则语法检查不能通过。2.编辑功能按钮提供了文本编辑的基本操作,用户使用这些操作可以方便操作和提高编辑速度。3.脚本语句和表达式列出了MCGS嵌入版组态
4、软件使用的三种语句的书写形式和MCGS嵌入版组态软件允许的表达式类型。用鼠标单击要选用的语句和表达式符号按钮,在脚本编辑处光标所在的位置填上语句或表达式的标准格式。例如;用鼠标单击ifthen按钮,则MCGS嵌入版组态软件提供一个if then 结构,并把输入光标停到合适的位置上。4.MCGS嵌入版组态软件对象和函数列表以树结构的形式,列出了工程中所有的窗口、策略、设备、变量、系统支持的各种方法、属性以及各种函数,以供用户快速的查找和使用。12.2 脚本程序的语言要素在MCGS嵌入版组态软件中,脚本程序使用的语言非常类似普通的Basic语言,本节将对脚本程序的语言要素进行详细的说明。12.2.
5、1 脚本程序的数据类型脚本程序的数据类型 MCGS嵌入版组态软件脚本语言使用的数据类型只有三种:开关型:表示开或者关的数据类型,通常0表示关,非0表示开。也可以作为整数使用;数值型:值在3.4E38范围内;字符型:最多512个字符组成的字符串。12.2.2 脚本程序的变量、常量及函数脚本程序的变量、常量及函数 变量:脚本程序中,用户不能定义子程序和子函数,其中数据对象可以看作是脚本程序中的全局变量,所有的程序段都可共用。可以用数据对象的名称来读写数据对象的值,也可以对数据对象的属性进行操作。开关型、数值型、字符型三种数据对象分别对应于脚本程序中的三种数据类型。在脚本程序中不能对组对象和事件型数
6、据对象进行读写操作,但可以对组对象进行存盘处理。常量:开关型常量:0或非0的整数,通常0表示关,非0表示开;数值型常量:带小数点或不带小数点的数值,如:12.45,100字符型常量:双引号内的字符串,如:“OK”,“正常”系统变量:MCGS嵌入版组态软件系统定义的内部数据对象作为系统内部变量,在脚本程序中可自由使用,在使用系统变量时,变量的前面必须加“$”符号,如$Date。系统函数:MCGS嵌入版组态软件系统定义的内部函数,在脚本程序中可自由使用,在使用系统函数时,函数的前面必须加“!”符号,如!abs()。属性和方法:MCGS嵌入版组态软件系统内的属性和方法都是相对于MCGS嵌入版组态软件
7、的对象而言的,引用对象的方法可以参见下个部分。表达式:由数据对象(包括设计者在实时数据库中定义的数据对象、系统内部数据对象和系统函数)、括号和运算符组成的运算式称为表达式,表达式的计算结果称为表达式的值。当表达式中包含有逻辑运算符或比较运算符时,表达式的值只可能为0(条件不成立,假)或非0(条件成立,真),这类表达式称为逻辑表达式;当表达式中只包含算术运算符,表达式的运算结果为具体的数值时,这类表达式称为算术表达式;常量或数据对象是狭义的表达式,这些单个量的值即为表达式的值。表达式值的类型即为表达式的类型,必须是开关型、数值型、字符型三种类型中的一种。表达式是构成脚本程序的最基本元素,在MCG
8、S嵌入版组态软件的组态过程中,也常常需要通过表达式来建立实时数据库对象与其他对象的连接关系,正确输入和构造表达式是MCGS嵌入版组态软件的一项重要工作。12.2.3 脚本程序的运算符脚本程序的运算符 1.算术运算符 乘方、*乘法、除法、整除、加法、减法、Mod 取模运算2.逻辑运算符AND 逻辑与、NOT 逻辑非、OR 逻辑或、XOR 逻辑异或3.比较运算符 大于、大于等于、等于、小于等于、小于、不等于4.运算符优先级按照优先级从高到低的顺序,各个运算符排列如下:“()”、“”、“*,Mod、,”、“,”、“NOT”、“AND,OR,XOR”。12.3 脚本程序的基本语句 由于MCGS嵌入版组
9、态软件脚本程序是为了实现某些多分支流程的控制及操作处理,因此包括了几种最简单的语句:赋值语句、条件语句、退出语句和注释语句,同时,为了提供一些高级的循环和遍历功能,还提供了循环语句。所有的脚本程序都可由这五种语句组成,当需要在一个程序行中包含多条语句时,各条语句之间须用“:”分开,程序行也可以是没有任何语句的空行。大多数情况下,一个程序行只包含一条语句,赋值程序行中根据需要可在一行上放置多条语句。12.3.1 脚本程序的赋值语句脚本程序的赋值语句 赋值语句的形式为:数据对象=表达式。赋值号用“=”表示,它的具体含义是:把“=”右边表达式的运算值赋给左边的数据对象。赋值号左边必须是能够读写的数据
10、对象。例如:开关型数据、数值型数据以及能进行写操作的内部数据对象,而组对象、事件型数据对象、只读的内部数据对象、系统函数以及常量,均不能出现在赋值号的左边,因为不能对这些对象进行写操作。赋值号的右边为一表达式,表达式的类型必须与左边数据对象值的类型相符合,否则系统会提示“赋值语句类型不匹配”的错误信息。12.3.2 脚本程序的条件语句脚本程序的条件语句 条件语句有如下三种形式:If 表达式 Then 赋值语句或退出语句If 表达式 Then 语句End IfIf 表达式Then 语句Else 语句End If条件语句中的四个关键字“If”、“Then”、“Else”、“End if”不分大小写
11、。如拼写不正确,检查程序会提示出错信息。12.3.3 脚本程序的循环语句脚本程序的循环语句 循环语句为While和EndWhile,其结构为:While 条件表达式.EndWhile当条件表达式成立时(非零),循环执行While和EndWhile之间的语句。直到条件表达式不成立(为零)时退出。12.3.4 脚本程序的退出语句脚本程序的退出语句 退出语句为“Exit”,用于中断脚本程序的运行,停止执行其后面的语句。一般在条件语句中使用退出语句以便在某种条件下,停止并退出脚本程序的执行。12.3.5 脚本程序的注释语句脚本程序的注释语句 以单引号“”开头的语句称为注释语句,注释语句在脚本程序中只起
12、到注释说明的作用,实际运行时,系统不对注释语句作任何处理。12.4 脚本程序的调试脚本程序编制完成后,系统将首先对程序代码进行检查,以确认脚本程序的编写是否正确。检查过程中,如果发现脚本程序有错误,则会显示相应的出错信息,以提示可能的出错原因帮助用户查找和排除错误。常见的提示信息有:1.组态设置正确,没有错误。2.未知变量。3.未知表达式。4.未知的字符型变量。5.未知的操作符。6.未知函数。7.函数参数不足。8.括号不配对。9.IF 语句缺少ENDIF。10.IF 语句缺少THEN。11.ELSE 语句缺少对应的IF语句。12.ENDIF 缺少对应的 IF 语句。13.未知的语法错误。根据系
13、统提供的错误信息作出相应的改正,系统检查通过后可以在运行环境中运行。这样达到简化组态过程、优化控制流程的目的。12.5 脚本程序的实例MCGS嵌入式组态系统内嵌255个系统计时器。计时器号的系统序号为1255,以1号计数器为例,要求用按钮启动、停止1号计数器,使1号计数器复位,给1号计数器限制最大值。函数的具体应用可以看“在线帮助”。计时器的运行效果图如图12-1所示。具体制作过程操作如下:1.建立计数器所需要的变量。在MCGS组态软件开发平台上,单击“实时数据库”,点击“新增对象”按钮,新增四个变量:计数器1号、计数器1号工作状态、显示时间、计数器1号最大值。分别按照如图12-2所示进行设置
14、。2.制作用户窗口画面。在MCGS组态软件开发平台上,单击“用户窗口”,再双击“脚本程序”窗口,进入“动画组态”,从“工具箱”中选中5次“标签”,按效果图放置,分别为:1号计数器操作演示,1号计数器计数,1号计数器时间显示,1号计数器工作状态,1号计数器最大值。再从“工具箱”中选中3次“标签”,按效果图放置,作为“1号计数器计数”、“时间显示”、“1号计数器工作状态显示”在运行时对应显示用,从工具箱”中选中“输入框”,针对“1号计数器最大值”运行时进行输入。所用到的数据变量:计数器1号、时间显示、计数器1号工作状态、计数器1号最大值在变量的属性设置中进行设置。计时器的运行效果图如图12-1所示
15、。图12-1 计时器的运行效果图3.用户窗口画面变量连接设置(1)先对三个显示输出框进行变量连接,如图12-2至12-6所示。图12-2 计数器的变量设置图12-3 用户窗口的窗口设置图12-4 计数器计数的显示框设置图12-5 计数器1号时间显示的显示框设置 图12-6 计数器1号工作状态的显示框设置(2)计数器1号最大值的输入框进行变量连接设置,如图12-7所示。图12-7 计数器1号最大值的输入框设置 4.脚本程序注释:启动计数器的脚本程序为:!TimerRun(1)停止计数器计数的脚本程序为:!TimerStop(1)计数器复位的脚本程序为:!TimerReset(1,0)计数器最大值
16、脚本程序为:!TimerSetLimit(1,计数器1号最大值,0)用户窗口的脚本程序为:计数器1号=!TimerValue(1,0)计数器1号时间显示=$Time 计数器1号工作状态=!TimerState(1)对4个标准按钮进行属性设置,如图12-8至12-11所示。图12-8 启动计数器标准按钮属性设置图12-9 停止计数器计数标准按钮属性设置图12-10 计数器复位标准按钮属性设置图12-11 计数器最大值标准按钮属性设置5.编辑用户窗口的脚本程序,如图12-12所示。图12-12 编辑用户窗口的脚本程序 脚本程序编写完成后,按“检查”按钮,检查脚本程序语法正确与否,当语法正确后按“确
17、定”按钮完成脚本程序的设置,退出循环脚本编辑窗口。进入模拟运行环境时,就会按照脚本程序编写的计数器的使用方式出现相应的工作状态,计数器实例工程文件放在光盘内可参考使用。12.5.2 字符串分解实例字符串分解实例 在实际应用过程中经常要用到字符串操作。例如:对西门子200系列PLC中的“V数据存储器”进行处理。下面以字符串转换应用工程为例进行讲述功能如下;输入一个0到9999的某个数,先要把这个数转换为字符串,不足四位字符时,前面补“0”,对字符串进行分解,分解后先转换为相应的ASCII码,再用16进制表示,字符串转换具体制作过程下面详细介绍。字符串分解的运行效果图如图12-13所示。图12-1
18、3 字符串分解的运行效果图 1.建立计数器所需要的变量 在MCGS组态软件开发平台上,单击“实时数据库”,点击“新增对象”按钮,新增10个变量:数据显示1、数据显示2、数据显示3、数据显示4、数值输入、为数值型的,字符串分解1、字符串分解2、字符串分解3、字符串分解4、字符串显示为字符串型的。窗口属性设置如下,其中:字符串分解2、字符串分解3、字符串分解4属性设置只需要把“显示输出”中“表达式”中的“字符串分解1”改为“字符串分解2”、“字符串分解3”、“字符串分解4”;其中数据显示2、数据显示3、数据显示4属性设置只需要把“显示输出”中“表达式”中的“数据显示1”相应地改为“数据显示2”、“
19、数据显示3”、“数据显示4”即可。分别以代表性变量为例参照设置,如图12-14所示。图12-14 数据变量的建立2.制作用户窗口画面在MCGS组态软件开发平台上,单击“用户窗口”,再双击“脚本程序”窗口,进入“动画组态”,从“工具箱”中选中3次“标签”,按效果图放置,显示文字分别为:字符串操作、输入数值、字符串显示、字符串分解、数值显示。再从“工具箱”中选中“输入框”,放在“输入数值”后面,从“工具箱”中选中“标签”,放在“字符串显示”后面,用于显示字符串。窗口的构件设置如图12-15至12-18所示,窗口的整体画面设置为如图12-19所示。图12-15 输入框属性设置 图12-16 字符串显
20、示输出框属性设置图12-17 字符串显示输出框属性设置 图12-18 字符串显示输出框属性设置图12-19 字符串操作的窗口画面3.用户窗口画面变量连接设置从“工具箱”中选中3次“标准按钮”,分别拖放到桌面适当位置,按钮名分别为:数值转变为字符串、字符串分解为单个字符、字符转为ASCII码用16进制显示。4.脚本程序编写:分别设置为如图12-20至12-2所示的窗口画面:(1)数值转变为字符串的脚本程序为:字符串显示=!right(0000+!Str(数值输入),4)(2)字符串解为单个字符的脚本程序为:字符串分解1=!left(字符串显示,1)字符串分解2=!mid(字符串显示,2,1)字符
21、串分解3=!mid(字符串显示,3,1)字符串分解4=!right(字符串显示,1)(3)字符串转为ASCCI码用16进制显示的脚本程序为:数据显示1=!Val(!I2Hex(!Ascii2I(字符串分解1)数据显示2=!Val(!I2Hex(!Ascii2I(字符串分解2)数据显示3=!Val(!I2Hex(!Ascii2I(字符串分解3)数据显示4=!Val(!I2Hex(!Ascii2I(字符串分解4)图12-20 数值转变为字符串的按钮设置图12-21 字符串解为单个字符的按钮设置 图12-22 字符串转为ASCCI码用16进制显示的按钮设置 脚本程序输入完成后点击检查按钮,确认正确后
22、退出。用户窗口的画面组态完成后,可以用“编辑条”中的工具进行调整相应的构件的位置关系。脚本程序编写完成后按“检查”按钮,检查脚本程序语法正确与否。当语法正确后按“确定”按钮完成脚本程序的设置,退出循环脚本编辑窗口。进入模拟运行环境时,就会按照脚本程序编写的字符串分解实例进行工作字符串分解实例工程文件放在光盘内可参考使用。本章小结本章小结 本章重点介绍了MCGS嵌入版组态软件脚本程序的属性设置,以及脚本程序的分类和脚本程序编写时候的注意事项。最后通过两个应用的脚本程序的实例工程进行讲解使学生动手独立完成脚本程序的实例工程。通过本章的学习使学生能够进一步了解MCGS嵌入版组态软件脚本程序属性设置的相关功能。思考题思考题 1.什么是MCGS嵌入版组态软件的脚本程序?2.MCGS嵌入版组态软件的脚本程序的特点有哪些?3.MCGS嵌入版组态软件在脚本程序编写时注意哪些地方?20192019年年x x月月