登陆注册
7540200000012

第12章 脚本程序

脚本程序是由用户编制的、用来完成特定操作和处理的程序,脚本程序的编程语法非常类似于普通的Basic语言,但在概念和使用上更简单直观,力求做到使大多数普通用户都能正确、快速地掌握和使用。对于大多数简单的应用系统,MCGS的简单组态就可完成。只有比较复杂的系统,才需要使用脚本程序,正确地编写脚本程序,可简化组态过程,大大提高工作效率,优化控制过程。

10.1脚本程序语言要素

1.数据类型

(1)开关型:值为0或1。

(2)数值型:值在3.4E±38范围内。

(3)字符型:值为最多512字符组成的字符串。

2.变量及常量

1)变量

脚本程序中,不能由用户自定义变量,也不能定义子程序和子函数。只能对实时数据库中的数据对象进行操作,用数据对象的名称来读写数据对象的值,而且无法对数据对象的其他属性进行操作。可以把数据对象看作是脚本程序中的全局变量,在所有的程序段共用。开关型、数值型、字符型三种数据对象分别对应于脚本程序中的三种数据类型。在脚本程序中不能对组对象和事件型数据对象进行读写操作,但可以对组对象进行存盘处理。

2)常量

(1)开关型常量:0或1的数字。

(2)数值型常量:带小数点或不带小数点的数值,如:12.45,100。

(3)字符型常量:双引号内的字符串,如:“OK”,“正常”。

(4)系统内部变量:MCGS系统定义的内部数据对象作为系统内部变量,在脚本程序中可自由使用,在使用内部变量时,变量的前面必须加“”符号,如Date。

(5)系统内部函数:MCGS系统定义的内部函数,在脚本程序中可自由使用,在使用内部函数时,函数的前面必须加“!”符号,如!abs()。

3.MCGS对象

MCGS操作对象包括工程中的用户窗口、用户策略和设备构件,MCGS操作对象在脚本程序中不能当作变量和表达式使用,但可以当作系统内部函数的参数使用,如!Setdevice(设备0,1,…)中的“设备0”就是作为一个参数出现的。

4.表达式

由数据对象(包括在实时数据库中定义的数据对象、系统内部数据对象和系统内部函数)、括号和各种运算符组成的运算式称为表达式,表达式的计算结果称为表达式的值。当表达式中包含有逻辑运算符或比较运算符时,表达式的值只可能为0(条件不成立,假)或非0(条件成立,真),这类表达式称为逻辑表达式;当表达式中只包含算术运算符,表达式的运算结果为具体的数值时,这类表达式称为算术表达式;常量或数据对象是狭义的表达式,这些单个量的值即为表达式的值。表达式值的类型即为表达式的类型,且必须是开关型、数值型、字符型三种类型中的一种。

表达式是构成脚本程序的最基本元素,在MCGS其他部分的组态中,也常常需要通过表达式建立实时数据库与其他对象的连接关系,正确输入和构造表达式是MCGS的一项重要工作。

5.运算符

MCGS中支持如下运算符。

1)算术运算符

∧乘方

*乘法

/除法

\整除

+加法

-减法

Mod取模运算

2)逻辑运算符

AND逻辑与

NOT逻辑非

OR逻辑或

XOR逻辑异或

3)比较运算符

>大于

>=大于等于

=等于

<=小于等于

<小于

<>不等于

6.运算符优先级

按照优先级从高到低的顺序,各个运算符排列如下:

()最高优先级

*,/,\,Mod

+,-

<,>,<=,>=,=,<>

NOT

AND,OR,XOR

10.2脚本程序基本语句

由于MCGS脚本程序是为了实现某些多分支流程的控制及操作处理,因此只包括了几种最简单的语句:赋值语句、条件语句、退出语句和注释语句。所有的脚本程序都可由这四种语句组成,当需要在一个程序行中包含多条语句时,各条语句之间须用“:”分开,程序行也可以是没有任何语句的空行。大多数情况下,一个程序行只包含一条语句,赋值程序行中根据需要可在一行上放置多条语句。

1.赋值语句

赋值语句的形式为:数据对象=表达式。赋值语句用赋值号(“=”号)来表示,具体的含义是:把“=”右边表达式的运算值赋给左边的数据对象。赋值号左边必须是能够读写的数据对象,如:开关型数据、数值型数据、事件型数据及能进行写操作的内部数据对象。而组对象、事件型数据、只读的内部数据对象、系统内部函数及常量,均不能出现在赋值号的左边,因为不能对这些对象进行写操作。赋值号的右边为表达式,表达式的类型必须与左边数据对象值的类型一致,否则系统会提示“赋值语句类型不匹配”的错误信息。

2.条件语句

条件语句有如下三种形式:

(1)If【表达式】Then【赋值语句或退出语句】

(2)If【表达式】Then

【语句】

EndIf

(3)If【表达式】Then

【语句】

Else

【语句】

EndIf

条件语句中的四个关键字“If”、“Then”、“Else”、“EndIf”不分大小写。如拼写不正确,检查程序会提示出错信息。

条件语句允许多级嵌套,即条件语句中可以包含新的条件语句,MCGS脚本程序的条件语句最多可以有8级嵌套,为编制多分支流程的控制程序提供了可能。

“IF”语句的表达式一般为逻辑表达式,也可以是值为数值型的表达式,当表达式的值为非0时,条件成立,执行“Then”后的语句,否则,条件不成立,将不执行该条件块中包含的语句,开始执行该条件块后面的语句。

值为字符型的表达式不能作为“IF”语句中的表达式。

3.退出语句

退出语句为“Exit”,用于中断脚本程序的运行,停止执行其后面的语句。一般在条件语句中使用退出语句,以便在某种条件下,停止并退出脚本程序的执行。

4.注释语句

以单引号“’”开头的语句称为注释语句,注释语句在脚本程序中只起到注释说明的作用,实际运行时,系统不对注释语句作任何处理。

10.3脚本程序应用场合及样例

脚本程序在MCGS组态软件中有4种应用场合,分别为:【运行策略】中的脚本程序构件中使用;在窗口中的【标准按钮】属性设置中的【脚本程序】中使用;在菜单属性设置中的【脚本程序】中使用;还可以在【用户窗口】属性设置中的【启动脚本】、【循环脚本】、【退出脚本】中使用。

在本书的“水位控制”工程中,已经介绍了【运行策略】中脚本程序的使用,本章通过对选择框构件、定时器函数、字符串函数操作,掌握其他3种脚本程序应用场合的灵活运用。

10.3.1脚本程序在窗口中的应用

在MCGS组态软件工作台上,单击【用户窗口】,进入窗口工作台,再单击【新建窗口】按钮,生成【窗口0】。选择【窗口0】,单击【窗口属性】按钮,在【用户窗口属性设置】窗口中进行设置。

双击【脚本程序】按钮,进入【动画组态脚本程序】窗口,从【工具箱】单击【下拉框】按钮,拖放到桌面适当位置,双击【下拉框】,弹出【下拉框构件属性设置】窗口,【构件类型】选择【下拉组合框】,【数据输出】选择连接对象变量“姓名”。单击【确认】按钮退出。

从脚本程序窗口的【工具箱】中单击2次【标签】按钮,放在桌面上,分别为:“选择框演示程序”,“姓名”。在【姓名】标签旁再放置一个标签。

在【工具箱】中单击【常用图符】按钮,弹出【常用图符】窗口,选择【凹槽平面】按钮与【凹平面】按钮,放在桌面适当位置。通过【置于最前面】按钮、【置于最后面】按钮、【向前一层】按钮和【向后一层】按钮,做成立体效果。

在MCGS组态软件工作台上,单击【用户窗口】选中【脚本程序】窗口,单击【窗口属性】按钮,弹出【用户窗口属性设置】对话框,按脚本程序设置。

【启动脚本】和【循环脚本】设置完成后,工程运行起来,可以在下拉框中选出需要的人名,同时在姓名输出框中自动显示出选择的人名。

10.3.2脚本程序在标准按钮中的应用

MCGS系统内嵌255个系统计数器。以1号计数器为例,实现用按钮启动、停止1号计数器,使1号计数器复位,给1号计数器限制最大值。具体组态实现方法如下。

在MCGS组态软件工作台上,进入【脚本程序】窗口,从【工具箱】中选择5次【标签】,分别为:“1号计数器操作演示”,“1号计数器计数”,“1号计数器显示”,“1号计数器工作状态”,“1号计数器最大值”。再从【工具箱】中选择3次【标签】,作为“1号计数器计数”、“1号计数器显示”、“1号计数器工作状态”运行时对应的显示。从【工具箱】中选择【输入框】,针对“1号计数器最大值”运行时进行输入。

双击“1号计数器最大值”标签旁边的输入框,进行输入框的操作属性设置。

按照上面的组态设计后,在运行环境中还不能显示计数器1号的当前值、状态和时间。

因为还没有给以上数据对象变量赋值(即跟1号计数器的运行状态连接起来)。为实现组态效果,在(脚本程序)窗口的循环脚本中加入如下语句:

计数器1号=!Timer Value(1,0)

计数器1号显示时间=Time

计数器1号工作状态=!Timer State(1)

这样进入运行环境时就能实时显示1号计数器的当前值、状态和时间了。

使用按钮控制“1号计数器”的启动、停止、复位、最大值限制。具体操作如下。

从【工具箱】中选择4次【标准按钮】,拖放到桌面适当位置。

10.3.3脚本程序在字符串演示中的应用

在实际应用过程中经常用到字符串操作,例如:对西门子200系列PLC中的“V数据存储器”进行处理。输入一个0~9999的某个数,先要把这个数转换为字符串,不足四位字符时,前面补“0”,再对字符串进行分解,分解后先转换为相应的ASCII码,再用十六进制数表示。在MCGS中具体组态方法如下。

在MCGS组态软件工作台上,进入【脚本程序】窗口,从【工具箱】中选择3次【标签】,按效果图10-1所示放置,分别为:“字符串操作演示”,“输入数值”和“字符串显示”。再从【工具箱】中选择【输入框】,放在“输入数值”后面,从【工具箱】中选择【标签】,放在“字符串显示”后面,用于显示字符串。

从【工具箱】中选择3次【标准按钮】,分别拖放到桌面适当位置,按钮名称分别为:“数值转变为字符串”,“字符串分解为单个字符”,“字符转为ASCII码用16进制显示”。

从【工具箱】中选择【标签】拖放到桌面适当位置,再用【工具条】中的【复制】按钮和【粘贴】按钮,复制7个,分别用于显示分解的字符及用ASCII码转换后的十六进制数值。可以用工具条中的对齐按钮进行对齐等处理。8个标签分别显示输出对象变量:“字符串分解1”、“字符串分解2”、“字符串分解3”、“字符串分解4”和“数据显示1”、“数据显示2”、“数据显示3”、“数据显示4”。

10.3.4脚本程序在菜单中的应用

在MCGS组态软件工作台上,单击【主控窗口】进入【菜单组态】,在【工具条】中单击【新增菜单项】,产生菜单【操作0】,双击【操作0】菜单,弹出【菜单属性设置】窗口,在菜单操作属性中选择打开【脚本程序】窗口。

在(脚本程序)中输入如下语句:

数值输入=689"赋初值

定时器1号最大值=60"赋初值

!Timer Stop(1)"使1号定时器停止工作

!Timer Reset(1,0)"使1号定时器复位

!Timer Set Limit(1,定时器1号最大值,0)"设置1号定时器的上限为60,"运行到60后重新循环运行

单击F5进入运行环境,单击【脚本程序】菜单,打开【脚本程序】窗口,单击【启动1号计数器】按钮,让1号计数器启动运行;单击【数值转变为字符串】按钮、【字符串分解为单个字符】按钮、【字符转为ASCII码用16进制显示】按钮。

同类推荐
  • 信息技术教育大全-操作系统大全

    信息技术教育大全-操作系统大全

    本书系统介绍说明了有关电子信息系统及操作系统等知识,希望对该信息技术有需求的读者能够从中得到帮助。
  • 不懂PowerPoint就当不好经理

    不懂PowerPoint就当不好经理

    经理人如何用PowerPoint,来规划部门的发展,如何用PowerPoint来表达自己的经营主张?本书为各类经理人提供了从入门到提高,从原理到实战的一系列知识,相信本书将让演示文稿为经理人的管理效能加分!
  • 中国移动智能手机的秘密

    中国移动智能手机的秘密

    《中国移动智能手机的秘密》是一本关于移动终端和移动互联网的科普书。作者将这18年通信行业中的学习、思考、实践积累成《中国移动智能手机的秘密》与大家分享。书本系统总结了手机的发展历史、TD产业界“从2G向3G演进”的移动终端产业分化重组进程、智能手机的使用方法用方法和应用指南,以及对移动互联网发展独特思考。
  • 纵横于天地之间——互联网络技术

    纵横于天地之间——互联网络技术

    本书告诉你:不管你是谁,只要生活在当前的时代,你一定知道电话,知道电脑,知道上网……知道许许多多关于电子、关于计算机、关于网络的话题,这就是网络时代。网络的话题可多了:它是怎么来的?什么是“蜘蛛网”?网络的过去和现在,上网的方法,如何使用网络,互联网的安全,网络有“陷阱”吗?网络有“瘾”吗?网络文化和未来又是怎样的?到书中去找答案吧!
  • 公开时刻

    公开时刻

    本书从传播者分析,内容分析,媒介分析受众与效果分析,传播环境与传播控制分析等几大方面把汶川地震作为重大传播案例,阐释汶川地震的传播学遗产。对政府部门和新闻媒体在危机公关方面做出正面评价。
热门推荐
  • 雄霸天下系统

    雄霸天下系统

    狂妄小儿!让我剑圣来会会你!“你........”“你刚刚用的是?”“也没用啥,就是吹了一口气罢了,剑招嘛,讲究快和剑气,像我,吹一口气也是剑气,抱歉让你一剑封喉了.......”绝世轻功?无上心法?那都是基础,我要驯养万千妖兽,踏破天门,以小村落为据点,重建天下会,抢资源,建立八支铁骑,吞并玄冥教,统一万域江山。
  • 寒夜南栖两世情缘双神恋

    寒夜南栖两世情缘双神恋

    天上仙人有情否?贰世悲欢可曾闻。他和她本是不在同一生活轨迹上的二神,奈何一场宴席,一道诏令,便起了缘众生皆有众生相,无妄海中自无妄。这凡世哦,倒是人间凄苦。看看他们那自私自利的样子,再看看他们无欲无求的样子。真倒是应了那句话:天上熙熙攘攘,皆为利来往。而这其中可又有情作祟。明明他害了她那么多,欺骗她那么多,可是她还是为了他义无反顾。但是还是因为利益,狠下了心,又断了情,灭了他。寿终飞升回天界,余情未了续前缘。纵使他伤了她又如何?纵使她杀了他又如何?那只不过只是一场劫难罢了。可是……他单相思,单相思。怎奈情深她不知。一世悲,一世欢。一场缘,二生叹。|?ω?`)欢迎入坑,不过第一世是悲,第二是是欢,也就是说,第一世虐文,第二世甜文
  • 汐有朝暮

    汐有朝暮

    乔汐一个的女大神经S市可以说是Z国的最繁华的城市,乔汐为了在s市落足脚跟积极工作,小希是个平凡的姑娘,过着平凡的生活。楚朝暮有钱有钱+有钱+自恋+鬼斧神工的脸一场蓄意的车祸,是两人的姻缘走在了一起
  • 男神大人碗里来

    男神大人碗里来

    苏苏是个严重的“声控”,男友第一点就是必须声音好听,其次才是才华,相貌,可集三点于一身的顾城,出现的有点晚.新书《绝色神女:最强女帝》已养肥,待宰....
  • 网王之馨雨

    网王之馨雨

    她是二十一世纪的网络作者,是《网球王子》这部动漫中不二周助的忠实粉丝,因好友心情不好提议去蹦极,不想,居然蹦到了二次元网王中的世界,她活泼可爱,最爱调皮捣蛋;他是青学有名的天才,是永远笑眯眯的粉丝们的王子,是宠爱弟弟的兄长,他腹黑内敛,最爱不知不觉的黑别人;当腹黑的他遇上捣蛋的她:她说:“唉,这位帅哥,麻烦让我劫个色!”他说:“嗯?我们见面两次,你劫我两次?”她说:“是吗?我怎么不记得有这么回事?”他脸上的笑容越发的灿烂,她居然不记得他了呢!
  • 柳枝飘摇

    柳枝飘摇

    一个南方小镇的女孩子,来到上海,遇上淞沪会战,辗转流落的故事
  • 嫁入豪门当小三

    嫁入豪门当小三

    回到民国,成冲喜新娘,她一个乡村野妇,被两个名门闺秀的妯娌视为杂草,风流丈夫对她视而不见,反倒与自己嫂嫂关系暧昧。罢了,反正她也不爱他,她最擅长粉饰太平。可是,什么时候,三个超群的男人,满眼满心就只剩她清丽的身影?!
  • 明天继续活下去

    明天继续活下去

    欢迎来到【明天继续活下去】世界,给你不一样的感受
  • 听说苏先生今天也很爱我

    听说苏先生今天也很爱我

    祁念歆从来没想过自己会喜欢上苏以珩,但当她意识到自己的情感后,苏以珩却消失了。大学四年,她变得越来越不像她,却越来越像他。后来祁念歆发现,原来早在童年时期苏以珩就认识她,她也从没有想到,再见时会是这副模样……有人说,思念是一颗毒药,那苏以珩就是祁念歆唯一的解药。他在的时候,就是全世界。他离开以后,全世界都是他。
  • 天行

    天行

    号称“北辰骑神”的天才玩家以自创的“牧马冲锋流”战术击败了国服第一弓手北冥雪,被誉为天纵战榜第一骑士的他,却受到小人排挤,最终离开了效力已久的银狐俱乐部。是沉沦,还是再次崛起?恰逢其时,月恒集团第四款游戏“天行”正式上线,虚拟世界再起风云!