MCGS脚本.docx
《MCGS脚本.docx》由会员分享,可在线阅读,更多相关《MCGS脚本.docx(13页珍藏版)》请在冰豆网上搜索。
MCGS脚本
脚本
一、脚本程序语言要素
1、数据类型
开关型值为0或1
数值型值在3.4E±38范围内
字符型值为最多512字符组成的字符串
2、变量及常量
变量:
脚本程序中,不能由用户自定义变量,也不能定义子程序和子函数。
只能对实时数据库中的数据对象进行操作,用数据对象的名称来读写数据对象的值,而且无法对数据对象的其他属性进行操作。
可以把数据对象看作是脚本程序中的全局变量,在所有的程序段共用。
开关型、数值型、字符型三种数据对象分别对应于脚本程序中的三种数据类型。
在脚本程序中不能对组对象和事件型数据对象进行读写操作,但可以对组对象进行处理。
常量:
开关型常量0或1的数字
数值型常量带小数点或不带小数点的数值,如:
12.45,100
字符型常量双引号内的字符串,如:
“OK”,“正常”
系统内部变量:
MCGS系统定义的内部数据对象作为系统内部变量,在脚本程序中可自由使用,在使用内部变量时,变量的前面必须加“$”符号,如$Date,内部变量的详细资料请参考《用户参考手册》的内部变量一章或在线帮助中的内部变量列表。
系统内部函数:
MCGS系统定义的内部函数,在脚本程序中可自由使用,在使用内部函数时,函数的前面必须加“!
”符号,如!
abs(),内部函数的详细资料请参考《用户参考手册》的内部函数一章或在线帮助中的内部函数列表。
3、MCGS对象
MCGS操作对象包括工程中的用户窗口、用户策略和设备构件,MCGS操作对象在脚本程序中不能当作变量和表达式使用,但可以当作系统内部函数的参数使用,如!
Setdevice(设备0,1,””)。
4、表达式
由数据对象(包括设计者在实时数据库中定义的数据对象、系统内部数据对象和系统内部函数)、括号和各种运算符组成的运算式称为表达式,表达式的计算结果称为表达式的值。
当表达式中包含有逻辑运算符或比较运算符时,表达式的值只可能为0(条件不成立,假)或非0(条件成立,真),这类表达式称为逻辑表达式;当表达式中只包含算术运算符,表达式的运算结果为具体的数值时,这类表达式称为算术表达式;常量或数据对象是狭义的表达式,这些单个量的值即为表达式的值。
表达式值的类型即为表达式的类型,必须是开关型、数值型、字符型三种类型中的一种。
表达式是构成脚本程序的最基本元素,在MCGS其他部分的组态中,也常常需要通过表达式来建立实时数据库与其他对象的连接关系,正确输入和构造表达式是MCGS的一项重要工作。
5、运算符
算术运算符
∧乘方
*乘法
/除法
\整除
+加法
—减法
Mod取模运算
逻辑运算符
AND逻辑与
NOT逻辑非
OR逻辑或
XOR逻辑异或
比较运算符
>大于
>=大于等于
=等于
<=小于等于
<小于
<>不等于
6、运算符优先级
按照优先级从高到低的顺序,各个运算符排列如下:
()最高优先级
∧
*,/,\,Mod
+,—
<,>,<=,>=,=,<>
NOT
AND,OR,XOR
二、脚本程序基本语句
由于MCGS脚本程序是为了实现某些多分支流程的控制及操作处理,因此只包括了几种最简单的语句:
赋值语句、条件语句、退出语句和注释语句。
所有的脚本程序都可由这四种语句组成,当需要在一个程序行中包含多条语句时,各条语句之间须用“:
”分开,程序行也可以是没有任何语句的空行。
大多数情况下,一个程序行只包含一条语句,赋值程序行中根据需要可在一行上放置多条语句。
1、赋值语句
赋值语句的形式为:
数据对象=表达式。
赋值语句用赋值号(“=”号)来表示,它具体的含义是:
把“=”右边表达式的运算值赋给左边的数据对象。
赋值号左边必须是能够读写的数据对象,如:
开关型数据、数值型数据、事件型数据以及能进行写操作的内部数据对象。
而组对象、事件型数据、只读的内部数据对象、系统内部函数以及常量,均不能出现在赋值号的左边,因为不能对这些对象进行写操作。
赋值号的右边为一表达式,表达式的类型必须与左边数据对象值的类型相符合,否则系统会提示“赋值语句类型不匹配”的错误信息。
2、条件语句
条件语句有如下三种形式:
If〖表达式〗Then〖赋值语句或退出语句〗
If〖表达式〗Then
〖语句〗
EndIf
If〖表达式〗Then
〖语句〗
Else
〖语句〗
EndIf
条件语句中的四个关键字“If”、“Then”、“Else”、“Endif”不分大小写。
如拼写不正确,检查程序会提示出错信息。
条件语句允许多级嵌套,即条件语句中可以包含新的条件语句,MCGS脚本程序的条件语句最多可以有8级嵌套,为编制多分支流程的控制程序提供了可能。
“IF”语句的表达式一般为逻辑表达式,也可以是值为数值型的表达式,当表达式的值为非0时,条件成立,执行“Then”后的语句,否则,条件不成立,将不执行该条件块中包含的语句,开始执行该条件块后面的语句。
值为字符型的表达式不能作为“IF”语句中的表达式。
3、退出语句
退出语句为“Exit”,用于中断脚本程序的运行,停止执行其后面的语句。
一般在条件语句中使用退出语句,以便在某种条件下,停止并退出脚本程序的执行。
4、注释语句
以单引号“'”开头的语句称为注释语句,注释语句在脚本程序中只起到注释说明的作用,实际运行时,系统不对注释语句作任何处理。
三、脚本程序应用场合及样例
脚本程序在MCGS组态软件中有四种应用场合,分别为:
在“运行策略”中的“脚本程序”构件中使用;在窗口中的“标准按钮”属性设置中的“脚本程序”中使用;在“菜单”属性设置中的“脚本程序”中使用;还可以在“用户窗口”属性设置中的“启动脚本”、“循环脚本”、“退出脚本”中使用。
在初级教材中我们已经熟悉了“运行策略”中的脚本程序,在本讲中通过对“选择框”构件,定时器函数、字符串函数操作,达到对其它3种场合灵活运用MCGS组态软件中的脚本程序,简化组态过程,提高工作效率,效果图如下:
1、脚本程序在“窗口”中的应用
具体操作如下:
选择框演示程序
在MCGS组态软件开发平台上,单击“用户窗口”进入,再单击“新建窗口”按钮,生成“窗口0”,选中“窗口0”,单击“窗口属性”按钮,弹出“用户窗口属性”设置,设置完毕按“确认”按钮,退出。
如图:
双击“脚本程序”进入“动画组态”环境,从“工具箱”中选中“选择框”,拖放到桌面适当位置,双击“选择框”,弹出“选择框属性设置窗口”对话框,选中“选项类型”中的“其它”,按“确认”按钮退出,如下图:
再从“工具箱”中选3次“标签”,放在桌面上,分别为:
选择框演示程序,姓名,选择框选择输出。
选择框选择输出属性设置如下图:
从“工具箱”中单击“常用图符”
图标,弹出“常用图符”,选中“凹槽平面”
图标,放在桌面适当位置,通过“置于最前面”
,“置于最后面”
,“向前一层”
,“向后一层”
,做成立体效果,如上图效果图。
在MCGS组态软件开发平台上,单击“用户窗口”选中“脚本程序”窗口,单击“窗口属性”按钮,弹出“用户窗口属性设置”对话框,设置如下图:
2、脚本程序在“标准按钮”中的应用
计数器操作演示
计时器号:
系统计时器的序号1—255,MCGS系统内嵌255个系统计时器。
我们以1号计数器为例,要求用按钮启动、停止1号计数器,使1号计数器复位,给1号计数器限制最大值。
函数的具体应用可以看“在线帮助”。
具体操作如下:
在MCGS组态软件开发平台上,单击“用户窗口”,再双击“脚本程序”,进入“动画组态”,从“工具箱”中选中5次“标签”,按效果图放置,分别为:
1号计数器操作演示,1号计数器计数,1号计数器显示,1号计数器工作状态,1号计数器最大值。
再从“工具箱”中选中3次“标签”,按效果图放置,作为“1号计数器计数”、“1号计数器显示”、“1号计数器工作状态显示”在运行时对应显示用,从工具箱”中选中“输入框”,针对“1号计数器最大值”运行时进行输入,属性设置分别如下:
我们用按钮来控制“1号计数器”的启动、停止、复位、最大值限制。
具体如下:
从“工具箱”中选四次“标准按钮”,拖放到桌面适当位置,如效果图,属性设置分别如下:
字符串操作演示
在实际应用过程中我们经常要用到字符串操作,例如:
对西门子200系列PLC中的“V数据存储器”进行处理。
输入一个0一9999的某个数,先要把这个数转换为字符串,不足四位字符时,前面补“0”,再对字符串进行分解,分解后先转换为相应的ASCCI码,再用16进制表示。
具体操作如下:
在MCGS组态软件开发平台上,单击“用户窗口”,再双击“脚本程序”,进入“动画组态”,从“工具箱”中选中3次“标签”,按效果图放置,分别为:
字符串操作演示,输入数值,字符串显示。
再从“工具箱”中选中“输入框”,放在“输入数值”后面,从“工具箱”中选中“标签”,放在“字符串显示”后面,用于显示字符串。
分别设置如图:
从“工具箱”中选中3次“标准按钮”,分别拖放到桌面适当位置,如效果图,按钮名分别为:
数值转变为字符串,字符串分解为单个字符,字符转为ASCCI码用16进制显示。
属性设置分别如下:
从“工具箱”中选中“标签”拖放到桌面适当位置,再用“工具条”中的“拷贝”按钮,复制7个,用于分别显示分解的字符及用ASCCI码转换后的16进制数值。
可以用“编辑条”中的
工具进行处理。
属性设置如下,其中:
字符串分解2、字符串分解3、字符串分解4属性设置只需要把“显示输出”中的“表达式”中的“字符串分解1”改为相应的“字符串分解2”、“字符串分解3”、“字符串分解4”;其中:
数据显示2、数据显示3、数据显示4属性设置只需要把“显示输出”中的“表达式”中的“数据显示1”改为相应的“数据显示2”、“数据显示3”、“数据显示4”即可。
3、脚本程序在“菜单”中的应用
在MCGS组态软件开发平台上,单击“主控窗口”进入“菜单组态”,在“工具条”中单击“新增菜单项”,产生菜单“操作0”,双击“操作0”菜单,弹出“菜单属性设置”对话框,设置如下图,在“脚本程序”中输入如下:
数值输入=689 '赋初值
定时器1号最大值=60 '赋初值
!
TimerStop
(1) '使1号定时器停止工作
!
TimerReset(1,0) '使1号定时器复位
!
TimerSetLimit(1,定时器1号最大值,0) '设置1号定时器的上限为60,
'运行到60后重新循环运行
按“F5”进入运行环境,单击“脚本程序”菜单,打开“脚本程序”窗口,单击“启动1号计数器”按钮,让1号计数器启动运行;单击“数值转变为字符串”按钮、“字符串分解为单个字符”按钮、“字符转为ASCCI码用16进制显示”按钮,则如图显示: