当前位置:文档之家› MCGS嵌入版脚本程序

MCGS嵌入版脚本程序

MCGS嵌入版脚本程序
MCGS嵌入版脚本程序

脚本程序

本章介绍MCGS嵌入版的脚本语言,主要内容包括:

●脚本语言编辑环境

●脚本程序语言要素

●脚本程序基本语句

●脚本程序的查错和运行

脚本程序简介

脚本程序是组态软件中的一种内置编程语言引擎。当某些控制和计算任务通过常规组态方法难以实现时,通过使用脚本语言,能够增强整个系统的灵活性,解决其常规组态方法难以解决的问题。

MCGS嵌入版脚本程序为有效地编制各种特定的流程控制程序和操作处理程序提供了方便的途径。它被封装在一个功能构件里(称为脚本程序功能构件),在后台由独立的线程来运行和处理,能够避免由于单个脚本程序的错误而导致整个系统的瘫痪。

在MCGS嵌入版中,脚本语言是一种语法上类似Basic的编程语言。可以应用在运行策略中,把整个脚本程序作为一个策略功能块执行,也可以在动画界面的事件中执行。MCGS 嵌入版引入的事件驱动机制,与VB或VC中的事件驱动机制类似,比如:对用户窗口,有装载,卸载事件;对窗口中的控件,有鼠标单击事件,键盘按键事件等等。这些事件发生时,就会触发一个脚本程序,执行脚本程序中的操作。

脚本语言编辑环境

脚本程序编辑环境是用户书写脚本语句的地方。脚本程序编辑环境主要由脚本程序编辑框、编辑功能按钮、MCGS嵌入版操作对象列表和函数列表、脚本语句和表达式4个部分构成,分别说明如下:

●脚本程序编辑框用于书写脚本程序和脚本注释,用户必须遵照MCGS嵌入版规定

的语法结构和书写规范书写脚本程序,否则语法检查不能通过。

●编辑功能按钮提供了文本编辑的基本操作,用户使用这些操作可以方便操作和提高

编辑速度。比如,在脚本程序编辑框中选定一个函数,然后按下帮助按钮,MCGS

嵌入版将自动打开关于这个函数的在线帮助,或者,如果函数拼写错误,MCGS

嵌入版将列出与所提供的名字最接近函数的在线帮助。

●脚本语句和表达式列出了MCGS嵌入版使用的三种语句的书写形式和MCGS嵌入

版允许的表达式类型。用鼠标单击要选用的语句和表达式符号按钮,在脚本编辑处

光标所在的位置填上语句或表达式的标准格式。比如,用鼠标单击if~then按钮,

则MCGS嵌入版自动提供一个if …then …结构,并把输入光标停到合适的位置

上。

●MCGS嵌入版对象和函数列表以树结构的形式,列出了工程中所有的窗口、策略、

设备、变量、系统支持的各种方法、属性以及各种函数,以供用户快速的查找和使

用。比如,可以在用户窗口树中,选定一个窗口:“窗口0”,打开窗口0下的“方

法”,双击Open函数,则MCGS嵌入版自动在脚本程序编辑框中,添加一行语句:

用户窗口.窗口0.Open() ,通过这行语句,就可以完成窗口打开的工作。

脚本程序语言要素

在MCGS嵌入版中,脚本程序使用的语言非常类似普通的Basic语言,本节将对脚本程序的语言要素进行详细的说明。

数据类型

MCGS嵌入版脚本程序语言使用的数据类型只有三种:

●开关型:表示开或者关的数据类型,通常0表示关,非0表示开。也可以作为整数使用;

●数值型:值在3.4E±38范围内;

●字符型:最多512个字符组成的字符串。

变量、常量及系统函数

变量:脚本程序中,用户不能定义子程序和子函数,其中数据对象可以看作是脚本程序中的全局变量,在所有的程序段共用。可以用数据对象的名称来读写数据对象的值,也可以对数据对象的属性进行操作。

开关型、数值型、字符型三种数据对象分别对应于脚本程序中的三种数据类型。在脚本程序中不能对组对象和事件型数据对象进行读写操作,但可以对组对象进行存盘处理。

常量:

●开关型常量:0或非0的整数,通常0表示关,非0表示开;

●数值型常量:带小数点或不带小数点的数值,如:12.45, 100

●字符型常量:双引号内的字符串,如:“OK”,“正常”

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

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

属性和方法:MCGS嵌入版系统内的属性和方法都是相对于MCGS嵌入版的对象而说的,引用对象的方法可以参见下个部分。

注:有关系统变量和系统函数详细的使用方法,请参见《MCGS嵌入版参考手册》

MCGS嵌入版对象

MCGS嵌入版的对象形成一个对象树,MCGS嵌入版对象的属性就是系统变量,MCGS嵌入版对象的方法就是系统函数。MCGS嵌入版对象下面有“用户窗口”对象,“设备”对象,“数据对象”等子对象。“用户窗口”以各个用户窗口作为子对象,每个用户窗口对象以这

个窗口里的构件作为子对象。

使用对象的方法和属性,必须要引用对象,然后使用点操作来调用这个对象的方法或属性。为了引用一个对象,需要从对象根部开始引用,这里的对象根部,是指可以公开使用的对象。MCGS嵌入版对象,用户窗口、设备和数据对象都是公开对象,因此,语句InputETime = $Time 是正确的,而语句InputETime = MCGS.$Time也是正确的,同样,调用函数!Beep()时,也可以采用MCGS.!Beep()的形式。可以写:窗口0.Open(),也可以写:MCGS.用户窗口.窗口0.Open(),还可以写:用户窗口.窗口0.Open()。但是,如果要使用控件,就不能只写:控件0.Left,而必须写:窗口0.控件0.Left,或:用户窗口.窗口0.控件0.Left。在对象列表框中,双击需要的方法和属性,MCGS将自动生成最小可能的表达式。

事件

在MCGS嵌入版的动画界面组态中,可以组态处理动画事件。动画事件是在某个对象上发生的,它可能是带参数也可能是不带参数的动作驱动源。如:用户窗口上可以发生事件:Load,Unload,它们分别在用户窗口打开和关闭时触发。可以对这两个事件编写一段脚本程序,当某一事件触发时(用户窗口打开或关闭时)其相应脚本程序被执行。

用户窗口的Load和Unload事件没有参数,而MouseMove事件有参数,在组态这个事件时,可以在参数组态中,选择把MouseMove事件的几个参数连接到数据对象上,这样,当MouseMove事件被触发时,就会把MouseMove的参数,包括鼠标位置,按键信息等送到连接的数据对象,然后,在事件连接的脚本程序中,就可以对这些数据对象进行处理。

表达式

由数据对象(包括设计者在实时数据库中定义的数据对象、系统内部数据对象和系统函数)、括号和各种运算符组成的运算式称为表达式,表达式的计算结果称为表达式的值。

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

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

运算符

算术运算符

●∧乘方

●* 乘法

●/除法

●\整除

●+加法

●—减法

●Mod 取模运算

逻辑运算符

●AND 逻辑与

●NOT 逻辑非

●OR 逻辑或

●XOR 逻辑异或

比较运算符

●>大于

●>=大于等于

●=等于(注意,字符串比较需要使用字符串函数!StrCmp,不能直接使用等于运算符)

●<=小于等于

●<小于

●<>不等于

运算符优先级

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

●( )

●∧

●*,/,\,Mod

●+,—

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

●NOT

●AND,OR,XOR

基本辅助函数

作为脚本语言的一部分,MCGS嵌入版提供了几组基本辅助函数,这些函数主要不是作为组态软件的功能提供的,而是为了完成脚本语言的功能提供的。这些函数包括以下几类:位操作函数,数学函数,字符串函数,时间函数。

位操作函数提供了对数值型数据中的位进行操作的功能。可以用开关型变量来提供这里的数值型数据。在脚本程序编辑器里,位操作函数都列在数学函数中,包括按位与(!BitAnd),按位或(!BitOr),按位异或(!BitXor),按位取反(!BitNot),清除数据中的某一位或把某一位置0(!BitClear),设置数据中的某一位或把某一位置1(!BitSet),检查数据中某一位是否为1(!BitTest),左移和右移(!BitLShift,!BitRShift)。

数学函数提供了常见的数学操作,包括开方,随机数生成以及三角函数等。

字符串函数提供了与字符串相关的操作,包括字符串比较,截取,搜索以及格式化等。

时间函数提供了和时间计算相关的函数。时间可以以一个字符串的形式表示,但是,为了方便进行时间计算,在MCGS嵌入版中,使用了一种内部格式来保存时间的值,这种内部格式的时间值可以保存在一个开关型变量中,同时,可以使用函数!TimeStr2I和!TimeI2Str来完成字符串形式时间量和内部格式形式时间量的转换,如:A1 = !TimeStr2I(“2001-3-2 12:23:23”),这里A1是一个开关型数据对象,获得了一个内部形式的时间量,而再用InputETime=!TimeI2Str(A1,"%Y-%m-%d %H:%M:%S ") 又可以把保存在A1中的内部形式的时间量转换为字符串形式。当时间转换为内部格式后,就可以进行时间的运算。运算完毕后,再转换为字符串形式的时间,以便输出和使用。

具体函数的使用方法,可以参照《MCGS嵌入版参考手册》中的说明。

功能函数

为了提供辅助的系统功能,MCGS嵌入版提供了功能函数。功能函数主要包括以下几类:运行环境函数,数据对象函数,系统函数,用户登录函数,定时器操作,文件操作,配方操作函数等。

运行环境函数和数据对象函数主要是提供了对MCGS嵌入版内部各个对象操作的方法。

系统函数提供了系统功能,包括启动程序,发出按键信息等等。

用户登录函数提供了用户登录和管理的功能。包括打开登录对话框,打开用户管理对话框等等。

定时器提供了MCGS嵌入版内建定时器的操作。包括对内建时钟的启动,停止,复位,时间读取等操作。

文件操作提供了对文件的操作,包括删除、拷贝文件,把文件拆开、合并,寻找文件,遍历文件,在文件中进行读写操作。对CSV(逗号分割的文本文件)进行读写操作等等。

具体的函数说明,可以参看《MCGS嵌入版参考手册》。

脚本程序基本语句

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

赋值语句

赋值语句的形式为:数据对象= 表达式。赋值号用“=”表示,它的具体含义是:把“=”右边表达式的运算值赋给左边的数据对象。赋值号左边必须是能够读写的数据对象,如:开关型数据、数值型数据以及能进行写操作的内部数据对象,而组对象、事件型数据对象、只读的内部数据对象、系统函数以及常量,均不能出现在赋值号的左边,因为不能对这些对象进行写操作。

赋值号的右边为一表达式,表达式的类型必须与左边数据对象值的类型相符合,否则系统会提示“赋值语句类型不匹配”的错误信息。

条件语句

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

If 〖表达式〗Then 〖赋值语句或退出语句〗

If 〖表达式〗Then

〖语句〗

EndIf

If 〖表达式〗Then

〖语句〗

Else

〖语句〗

EndIf

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

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

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

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

循环语句

循环语句为While和EndWhile,其结构为:

While 〖条件表达式〗

….

EndWhile

当条件表达式成立时(非零),循环执行While和EndWhile之间的语句。直到条件表达式不成立(为零),退出。

退出语句

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

注释语句

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

脚本程序的查错和运行

脚本程序编制完成后,系统首先对程序代码进行检查,以确认脚本程序的编写是否正确。检查过程中,如果发现脚本程序有错误,则会返回相应的信息,以提示可能的出错原因,帮助用户查找和排除错误。常见的提示信息有:

●组态设置正确,没有错误

●未知变量

●未知表达式

●未知的字符型变量

●未知的操作符

●未知函数

●函数参数不足

●括号不配对

●IF 语句缺少ENDIF

●IF 语句缺少THEN

●ELSE 语句缺少对应的IF语句

●ENDIF 缺少对应的 IF 语句

●未知的语法错误

根据系统提供的错误信息,作出相应的改正,系统检查通过,就可以在运行环境中运行,达到简化组态过程、优化控制流程的目的。

系统操作函数

!AppActive()

函数说明:此函数在嵌入版中无效,考虑兼容性问题,故保留。

!Beep()

函数意义:发出嗡鸣声。

返回值:数值型。返回值=0:调用成功;<>0:调用失败。

参数:无。

实例:!Beep()。

!EnableDDEConnection()

函数说明:此函数在嵌入版中无效,考虑兼容性问题,故保留。

!EnableDDEInput()

函数说明:此函数在嵌入版中无效,考虑兼容性问题,故保留。

!LinePrtOutput()

函数说明:此函数在嵌入版中无效,考虑兼容性问题,故保留。

!PlaySound()

函数说明:此函数在嵌入版中无效,考虑兼容性问题,故保留。

!SendKeys(string)

函数意义:将一个或多个按键消息发送到活动窗口,就如同在键盘上进行输入一样。

返回值:数值型。返回值=0:调用成功;<>0:调用失败。

参数:string,字符串表达式,指定要发送的按键消息。

实例:!SendKeys("%{TAB}"),切换窗口。

说明:每个按键由一个或多个字符表示。为了指定单一键盘字符,必须按字符本身的键。例如,为了表示字母A,可以用"A" 作为string。为了表

示多个字符,就必须在字符后面直接加上另一个字符。例如,要表

示A、B 及C,可用"ABC" 作为string。对SendKeys 来说,加号

(+)、插入符(^)、百分比符号(%)、上划线(~) 及圆括号( ) 都具有特殊意义。为了指定上述任何一个字符,要将它放在大括号({}) 当中。例如,要指定正号,可用{+} 表示。为了指定大括号字符,请使用{{} 及{}}。为了在按下按键时指定那些不显示的字符,例如:ENTER 或TAB 以及那些表示动作而非字符的按键,请使用下列代码:

为了指定那些与SHIFT、CTRL 及ALT 等按键结合的组合键,可在这

些按键码的前面放置一个或多个代码,这些代码列举如下:

按键代码

SHIFT +

CTRL ^

ALT %

为了说明在按下其它按键时应同时按下SHIFT、CTRL、及ALT 的任意

组合键,请把那些按键的码放在括号当中。例如,为了说明按下E 与C

的时候同时按下SHIFT 键,请使用"+(EC)"。为了说明在按下 E 的时

候同时按下SHIFT 键,但接着按C 而不按SHIFT,则使用"+EC"。

注意:不能用SendKeys 将按键消息发送到这样一个应用程序,这个应用程序并没有被设计成在Microsoft Windows 中运行。Sendkeys 也无法将

PRINT SCREEN 按键{PRTSC} 发送到任何应用程序。

!SetLinePrinter(n)

函数意义:打开/关闭行式打印输出。

返回值:数值型。返回值=0:调用成功;<>0:调用失败。

参数:n,数值型,1,表示打开行式打印输出;0,则关闭行式打印输出。

实例:!SetLinePrinter(1),打开行式打印输出。

!SetTime(n1,n2,n3,n4,n5,n6)

函数意义:设置当前系统时间

返回值:数值型。返回值=0:调用成功;<>0:调用失败。

参数:n1,数值型,设定年数,小于1000和大于9999时不变;

n2,数值型,设定月数,大于12和小于1时不变;

n3,数值型,设定天数,大于31和小于1时不变;

n4,数值型,设定小时数,大于23和小于0时不变;

n5,数值型,设定分钟数,大于59和小于0时不变;

n6,数值型,设定秒数,大于59和小于0时不变。

实例:!SetTime(2000,1,1,1,1,1),设置当前系统时间为2000年1月1日1时1分1秒。

!Shell()

函数说明:此函数在嵌入版中无效,考虑兼容性问题,故保留。

!Sleep(mTime)

函数意义:在脚本程序中等待mTime毫秒,然后再执行下条语句。只能在策略中使用,否则会造成系统响应缓慢。

返回值:数值型。返回值=0:调用成功;<>0:调用失败。

参数:mTime,数值型,要等待的毫秒数。

实例:!Sleep(10)。

!TerminateApplication()

函数说明:此函数在嵌入版中无效,考虑兼容性问题,故保留。

!WaitFor (Dat1,Dat2)

函数意义:在脚本程序中等待设置的条件满足,脚本程序再向下执行。只能在策略中使用,否则造成系统响应缓慢。

返回值:数值型。返回值=0:调用成功;<>0:调用失败。

参数:Dat1,数值型,条件表达式,如:D=15。

Dat2,数值型,等待条件满足的超时时间,单位:ms。为0则无限等待。

实例:!WaitFor(D=15,12000),等变量D的值等于15后,程序再继续执行,如果在12秒后条件仍然没有满足,也自动继续执行。此函数通常用于

做实验时,等待某个条件满足,然后再接着执行实验流程。他与Sleep

函数以及While循环语句、其他循环策略配合,能够实现复杂的流程调

度。

注意:!WaitFor只能用于策略中,而不能直接在窗口控件的脚本程序中使用。

!WinHelp()

函数说明:此函数在嵌入版中无效,考虑兼容性问题,故保留。

MCGS脚本程序要点

MCGS脚本程序 本专题将从以下几个方面介绍MCGS脚本程序 : 脚本程序简介 脚本语言编辑环境 脚本程序语言要素 脚本程序基本语句 脚本程序的查错和运行 脚本程序简介 对于大多数简单的应用系统,MCGS的简单组态就可完成。只有比较复杂 的系统,才需要使用脚本程序,但正确地编写脚本程序,可简化组态过程,大大 提高工作效率,优化控制过程。 用户脚本程序是由用户编制的、用来完成某种特定的流程控制和操作处理的 程序。它被封装在一个功能构件里(称为脚本程序功能构件),在后台由独立的 线程来运行和处理,能够避免由于单个脚本程序的错误而导致整个系统的瘫痪。 在MCGS中,脚本语言的编程语法非常类似于普通的 Basic 语言,但在概念和使用上更简单直观,力求做到使大多数普通用户都能正确、快速地掌握和使用。 脚本程序在MCGS组态软件中有四种应用场合,分别为: 在“运行策略”中的“脚本程序”构件中使用; 在“菜单”属性设置中的“脚本程序”中使用,作为菜单的一个辅助功 能运行; 在“用户窗口”属性设置中的“启动脚本” 、“循环脚本”、“退出脚本” 中使用; 更常见的用法是应用在动画界面的事件中,如在窗口中的“标准按钮” 属性设置中的“脚本程序”中使用。 MCGS引入的事件驱动机制,与 VB或 VC中的事件驱动机制类似,比如: 对用户窗口,有装载,卸载事件;对窗口中的控件,有鼠标单击事件,键盘按键 事件等等。这些事件发生时,就会触发一个脚本程序,执行脚本程序中的操作。 脚本语言编辑环境 脚本程序编辑环境是用户书写脚本语句的地方。脚本程序编辑环境主要由脚 本程序编辑框、编辑功能按钮、 MCGS操作对象列表和函数列表、脚本语句和表 达式 4 个部分构成,分别说明如下:

昆仑通态脚本

相关内容回首页数据对象操作函数 !AnswerAlm(DatName) 函数意义:应答数据对象DatName所产生的报警。如对应的数据对象没有报警产 生或已经应答,则本函数无效。 返回值:数值型,=0为操作成功,<>0为操作失败。 参数:DatName,数据对象名。 实例:!AnswerAlm(电机温度),应答数据对象“电机温度”所产生的报警。 !ChangeDataSave(Datname,n) 函数意义:改变数据对象Datname存盘的周期。 返回值:数值型,=0为操作成功,<>0为操作失败。 参数:Datname,数据对象名;n,数值型,以秒表示的存盘间隔时间。 实例:!ChangeDataSave(温度,5),温度的存盘间隔时间为5秒。 !ChangeSaveData(DatName,Num1,Num2) 该函数在通用版中可以使用,在嵌入版中不能使用! 函数意义:改变数据对象DatName所对应存盘数据的存盘间隔,把Num1小时以 前的存盘数据(以当前时间为0点)的存盘间隔改为Num2秒。本操 作只对组对象有效,对单个的数据对象无效。当DataName =空字符, 或Num1=0或Num2=0时,本操作无效。 返回值:数值型,返回值=0:调用正常,<>0:调用不正常。 参数:DatName:数据对象名。 Num1:数值型时间量,单位:小时。本函数用Num1<0的一些数值来 表示一些特殊意义的操作: =-1 改变当天对应数据对象所有存盘数据的存盘间隔; =-2 改变昨天对应数据对象所有存盘数据的存盘间隔;

=-3 改变本星期对应数据对象所有存盘数据的存盘间隔; =-4 改变上星期对应数据对象所有存盘数据的存盘间隔; =-5 改变本月对应数据对象所有存盘数据的存盘间隔; =-6 改变上个月对应数据对象所有存盘数据的存盘间隔; Num2:数值型时间量,新的存盘间隔,单位:秒。 实例:!ChangeSaveData(电机1,-2,5),把组对象“电机1”对应的存盘数据中昨天的存盘数据的存盘间隔改为5秒钟。 !FlushDataInitValueToDisk() 函数意义:把所有数据对象的初始值写入磁盘,调用后即刻刷盘。 返回值:数值型,返回值=0:调用正常,<>0:调用不正常。 参数:无。 !FreshSaveData() 函数意义:实现报警组对象和事件组对象(存盘周期为0)的强制刷盘功能。调用后即刻将报警组对象和事件组对象在内存缓冲区中的存盘数据强制写入磁盘。 返回值:数值型,返回值=0:调用正常,<>0:调用不正常。 参数:无。 !CopySaveDat() 函数说明:此函数在嵌入版中无效,考虑兼容性问题,故保留。 !DataGetInt (变量名,返回值) 函数意义:通过变量名读开关型变量的值。 返回值:开关型, 返回0:执行成功; 返回1:类型不匹配; 返回3:变量不存在。 参数:变量名,字符型,开关型变量的名称。 返回值,开关型,保存返回的值。 实例: Ret=!DataGetInt(变量名,Int)。

MCGS组态控制系统演示工程操作步骤..

水箱液位控制系统演示工程操作步骤 一、创建新工程 1、双击桌面中的图标,进入MCGS组态环境工作台,如图1所示。 2、点击图1中的“新建窗口”,出现“窗口0”图标。 3、点击“窗口0”鼠标右键,选择“属性”,按照图2进行设置,则窗口名称变为“水箱液 位控制系统”,如图2右图所示。。 图2

二、画面设计 1、在“水箱液位控制”窗口点击菜单中的【工具箱】图标,单击插入元件按钮, 打开【对象元件管理】中的【储藏罐】,选择罐17,点击确定。如图3所示,则所选中的罐出现在桌面的左上角,用鼠标改变其大小及位置。 图3 2、按照同样的方法,【储藏罐】选中2个罐(罐17,罐53),【阀】选中2个阀(阀58,阀 44),1个泵(泵40)。按图4放置。 图4 3、选中工具箱中的【流动快】按钮,单击鼠标并移动光标放置流动快。如图5所示设置

流动快。 图5 4、选中流动块,点击鼠标右键【属性】,按图6设置属性。 图6 5、添加文字,选中工具箱中的【标签】按钮,鼠标的光标变为“十字”形,在窗口任 意位置拖曳鼠标,拉出一个一定大小的矩形。建立矩形框后,鼠标在其内闪烁,可直接输入“水箱液位控制系统演示工程”文字。选中文字,鼠标右键【属性】,按图7设置。

图7 6、点击菜单中的,可变更字体大小。按图5添加其他文字。 三、MCGS数据对象设置 2、单击工作台【实时数据库】按钮,进入【实时数据库】窗口。单击窗口右边的【新增对 象】按钮,在窗口的数据对象列表中,就会增加新的数据对象。双击选中对象,按图8设置数据对象属性。 图8 3、按照图9设置其他数据对象属性。

图9 4、双击【液位组】,存盘属性按图10设置,组对象成员按图11设置。 图10

非常实用的mcgs触摸屏编程实例精选上

MCGS实例解答 1.MCGS表格中,两数据连接到两个开关量,要把采集到的“0”和“1”的状态,显示为“关”和“开” 在表格里输入“开|关”,然后连接开关型变量Data1,按钮是让开关量Data1取反。

这样就行了,运行时Data1默认为0显示关,按下按钮后Data1为1显示开,如此反复

2.mcgs里怎么画渐变色 渐变色只有通用版和网络版有,嵌入版没有 方法就是:填充颜色——填充效果,然后根据你的需要设置就行了。

3.如何在mcgs做脚本i0.0=1 让Q输出 当PLC的I0.0有信号,让Q0.0输出,在PLC中做我会,不知道在MCGS中怎么实现 在循环脚本中,循环时间为10ms,条件表达式为1,脚本程序为 IF I0.0 = 1 THEN Q0.0 = 1 ELSE Q0.0 = 0 ENDIF 4.MCGS组态如何实现这样的功能?点击某一部分,弹出登录对话框 这个画面是在有管理员帐户登录的情况下才可以设置的,我现在想实现当有人在没有登录的情况下点击了这个地方,就弹出提示:请先登录。 1条回答 可以先用函数!CheckUserGroup来判断当前登录的用户是不是你需要的用户组,返回只为0表示已经登录了你需要的用户组了,直接进行下一步,如果返回值不为0,表示当前登录的不是你需要的用户组或是没有任何登录,那么用子窗口或者可见度啥的都行,显示出来就行了。 追问

我是想在用户点击了上面图片中的部分时才弹出登录提示,怎么实现呢? 回答 你把判断的语句写到图片的事件里就行了 追问 求在具体一点,不知道怎么写。 回答 点控件,右键——事件——Click——事件连接脚本

MCGS脚本程序

MCGS 脚本程序 本专题将从以下几个方面介绍MCG脚本程序:脚本程序简介 脚本语言编辑环境 脚本程序语言要素脚本程序基本语句脚本程序的查错和运行 脚本程序简介 对于大多数简单的应用系统,MCG的简单组态就可完成。只有比较复杂的系统,才需要使用脚本程序,但正确地编写脚本程序,可简化组态过程,大大提高工作效率,优化控制过程。 用户脚本程序是由用户编制的、用来完成某种特定的流程控制和操作处理的程序。它被封装在一个功能构件里(称为脚本程序功能构件),在后台由独立的线程来运行和处理,能够避免由于单个脚本程序的错误而导致整个系统的瘫痪。 在MCG中,脚本语言的编程语法非常类似于普通的Basic语言,但在概念和使用上更简单直观,力求做到使大多数普通用户都能正确、快速地掌握和使用。 脚本程序在MCG组态软件中有四种应用场合,分别为:在“运行策略”中的“脚本程序”构件中使用;在“菜单”属性设置中的“脚本程序”中使用,作为菜单的 一个辅助功能运行; 在“用户窗口”属性设置中的“启动脚本” 、“循环脚本”、“退出脚本” 中 使用; 更常见的用法是应用在动画界面的事件中,如在窗口中的“标准按钮” 属性设置 中的“脚本程序”中使用。 MCGSI入的事件驱动机制,与VB或VC中的事件驱动机制类似,比如:对用户窗口,有装载,卸载事件;对窗口中的控件,有鼠标单击事件,键盘按键事件等等。这些事件发生时,就会触发一个脚本程序,执行脚本程序中的操作。 脚本语言编辑环境脚本程序编辑环境是用户书写脚本语句的地方。脚本程序编辑环境主要由脚本程序编辑框、编辑功能按钮、MCG操作对象列表和函数列表、脚本语句和表达式4 个部分构成,分别说明如下:

MCGS触摸屏编程实例精选

MCGS触摸屏编程实例精选 1.MCGS表格中,两数据连接到两个开关量,要把采集到的“0”和“1”的状态,显示为“关”和“开” 在表格里输入“开|关”,然后连接开关型变量Data1,按钮是让开关量Data1取反。

这样就行了,运行时Data1默认为0显示关,按下按钮后Data1为1显示开,如此反复

2.mcgs里怎么画渐变色 渐变色只有通用版和网络版有,嵌入版没有 方法就是:填充颜色——填充效果,然后根据你的需要设置就行了。

3.如何在mcgs做脚本i0.0=1 让Q输出 当PLC的I0.0有信号,让Q0.0输出,在PLC中做我会,不知道在MCGS中怎么实现 在循环脚本中,循环时间为10ms,条件表达式为1,脚本程序为 IF I0.0 = 1 THEN Q0.0 = 1 ELSE Q0.0 = 0 ENDIF 4.MCGS组态如何实现这样的功能?点击某一部分,弹出登录对话框 这个画面是在有管理员帐户登录的情况下才可以设置的,我现在想实现当有人在没有登录的情况下点击了这个地方,就弹出提示:请先登录。 1条回答 可以先用函数!CheckUserGroup来判断当前登录的用户是不是你需要的用户组,返回只为0表示已经登录了你需要的用户组了,直接进行下一步,如果返回值不为0,表示当前登录的不是你需要的用户组或是没有任何登录,那么用子窗口或者可见度啥的都行,显示出来就行了。 追问

我是想在用户点击了上面图片中的部分时才弹出登录提示,怎么实现呢? 回答 你把判断的语句写到图片的事件里就行了 追问 求在具体一点,不知道怎么写。 回答 点控件,右键——事件——Click——事件连接脚本

mcgs交通灯脚本程序

IF 模拟运行=1 THEN IF 启动=1 THEN !TimerReset(1,0) 南灯0=1 西灯2=1 西通=1 !TimerWaitFor(1,20) 西灯2=0 !TimerWaitFor(1,21) 西灯2=1 !TimerWaitFor(1,22) 西灯2=0 !TimerWaitFor(1,23) 西灯2=1 !TimerWaitFor(1,24) 西灯2=0 !TimerWaitFor(1,25) 西灯1=1 !TimerWaitFor(1,27) 西灯1=0 西通=0 西灯0=1 南灯0=0 南灯2=1 南通=1 !TimerWaitFor(1,47) 南灯2=0 !TimerWaitFor(1,48) 南灯2=1 !TimerWaitFor(1,49) 南灯2=0 !TimerWaitFor(1,50) 南灯2=1 !TimerWaitFor(1,51) 南灯2=0 南灯1=1 !TimerWaitFor(1,53) 南灯1=0 南通=0 南灯0=1 西灯0=0 西灯2=0 !TimerReset(1,0) endif

ELSE 启动=SD 西灯2=东G 西灯1=东Y 西灯0=东R 南灯2=南G 南灯1=南Y 南灯0=南R ENDIF if 启动=1 then !TimerRun(1) if 南通=1 then 南车=南车+2 北车=北车+2 西人=西人+1 东人=东人+1 endif if 西通=1 then 东车=东车+2 西车=西车+2 北人=北人+1 南人=南人+1 endif if 西通=1 then 南车=0 北车=0 西人=0 东人=0 endif if 南通=1 then 东车=0 西车=0 北人=0 南人=0 endif if 北人>337 then 北人=0 if 西人>262 then 西人=0 if 南人>340 then 南人=0 if 东人>256 then 东人=0 if 西车>922 then 西车=-400 if 东车>892 then 东车=-441 if 北车>482 then 北车=-220 if 南车>529 then 南车=-181 else

脚本编写要点 mcgs

一、脚本的两个要点 1、脚本程序:数据的逻辑运算,与PLC程序、界面的条件相对应。 2、执行条件:决定执行的时机。 二、脚本编辑器 脚本编辑器包含有执行条件选择界面和脚本程序编辑界面。 脚本编辑界面有三种: 1、控件的事件选项: 执行条件有:单击鼠标、左双击鼠标、右双击鼠标、鼠标按下、鼠标移动等 2、策略窗口: 执行条件有:启动时、退出时、循环执行等 3、按钮自带 执行条件有:按下、抬起 三、脚本程序基本语法 脚本程序的功能是对实时数据库里的数据逻辑运算;即根据输入数据的变化改变输出数据,使之符合系统要求。 在系统设计时,要学会巧设中间数据。 基本的语句有: 1、数据运算 执行:执行时,直接执行数据运算 2、if 条件 then 数据运算 执行:条件满足(逻辑为1),执行后面的数据运算(一条运算)

3、if 条件 then 数据运算1 endif 执行:条件满足(逻辑1),执行后面的数据运算(可多条运算) 4、if 条件 then 数据运算 1 else 数据运算2 endif 执行:条件满足(逻辑1),执行数据运算1,条件不满足(逻辑0)执行数据运算2.多条件的逻辑关系可用条件连接语句: 1、and :与 条件1 and 条件2 :要条件1 和条件2 都为1 ,条件1 and 条件2 才为1, 否则为0 2、or:或 条件2 or 条件2 :条件1、条件2只要有1个1 ,条件1 or 条件2 为1 . 四、脚本编写注意事项: 1、注意脚本程序执行后的数据值是否与PLC程序的要求值相符。 2、要注意脚本程序的执行时间是否恰当。 3、对于没有动作的控件要用用户策略、中间变量完成脚本执行。

MCGS高级教程

第一章MCGS的可扩充性 1.1 概述 MCGS组态软件是一套功能丰富、简单易用的组态软件,大部分工程师都可以很容易的使用这套组态软件来完成一个完整的工程项目。但是,当用户熟练的掌握了这套组态软件以后,用户必然会寻求在这套组态软件上进一步开发的能力。以实现有自己风格的界面、自己设计的控制算法和与自己硬件相匹配的驱动程序。其他一些长期使用Visual Basic、C++、Delphi的高级工程开发人员,为了充分利用自己的编程特长和已有的程序积累,也希望能够把自己编写的程序装配到MCGS组态软件中。 大部分面向工程应用的工程人员,虽然没有时间和精力开发自己的专有模块,但是,却希望能够从MCGS开发组或第三方的专业、业余开发者那里获得为自己定制的特殊模块,并且能够很方便的装配到现有的MCGS组态软件上。而对硬件开发商和一些高级的开发人员,都希望能够开发出自己的设备驱动模块和专业化、行业化的模块以充分利用MCGS软件的组态功能,当然,对于这些专业化的高品质模块,位于工程一线的工程人员也是具有非同一般的兴趣的。 为了满足用户的这些要求,MCGS提供一套可扩充的接口规范和配套的高级开发工具包。使用接口规范和工具包开发出来的扩充构件,具有很优越的特点: z安全保密。扩充构件是编译成二进制代码的,可以很好的保护您的工作。非法用户不可能通过反编译你的扩充构件来获得你独有的设备驱动构件、特殊的运算构件和 特殊的窗口界面。你更可以使用扩充构件来进行自己的加密,以防止你制作的工程 被任意拷贝,保护你自己的利益。 z简单快速。MCGS组态软件高级开发包中提供了常用的数据后处理构件源代码。初级用户可以直接使用这些数据后处理构件,但高级用户则可以修改这些构件的源代 码,以满足自己特殊的要求。众所周知,工控工程的数据后处理部分具有各自不同 的要求,因此一般的组态软件,都要求用户自己使用例如Excel、Access等软件来完 成自己的特殊的后处理。但是MCGS组态软件除了可以用类似的方法处理外,还提 供了另外一种不同的处理方法。那就是高级用户可以修改MCGS组态软件高级开发 工具包中所提供的后处理构件源代码,然后生成自己的扩充构件,装配到MCGS组 态软件上,就可以组成自己独有的后处理系统。 z性能优异。使用这种方法开发出来的MCGS组态软件的扩充构件具有很高的速度和性能。据微软公司测试,使用Visual C++软件开发出来的程序,只比使用Visual Basic 开发出来的速度高百分之十,有时甚至还低于Visual Basic。而使用Visual Basic开 发的方便性和易用性又是Visual C++所远远不能比拟的。在编写MCGS组态软件的 扩充构件时,Visual Basic确实是一种最佳选择。 z任务明确。MCGS的这种扩充构件具有清晰的结构,你完全可以向MCGS组态软件

非常实用的mcgs触摸屏编程实例下(10例)-

13.组态控制技术mcgs 下图脚本程序如何编 IF 实际总水量< 设定总水量THEN 下罐进水阀=1 下罐排水阀=0 ELSE IF 实际总水量> 设定总水量THEN 下罐进水阀=0 下罐排水阀=1 ELSE IF 实际总水量= 设定总水量THEN IF 下水位< 下水位设定量THEN

循环泵=0 上罐进水阀=0 上罐排水阀=1 ELSE IF 下水位> 下水位设定量THEN 上罐排水阀=0 上罐进水阀=1 循环泵=1 ENDIF ENDIF ENDIF ENDIF ENDIF 当然如果你的下水位是由开关量来确定的话,后面那一部分也可以改成: IF 实际总水量= 设定总水量THEN IF 下水位低=1 THEN 循环泵=0 上罐进水阀=0 上罐排水阀=1 ELSE IF 下水位高=1 THEN 上罐排水阀=0 上罐进水阀=1 循环泵=1 上面只是大体的一个思路,里面还是有很多需要补充的地方,比如给上水罐注水时,是否需要先判断进水阀是否打开再启动循环泵,给下水罐注水时是否需要判断先关停循环泵再关停进水阀,然后开启上罐排水阀,如果是这种情况的话,建议你可以使用运行策略来完成脚本编写。 14.MCGS 组态软件脚本程序有没有延时指令 !Sleep(mTime) 函数意义:在脚本程序中等待mTime毫秒,然后执行下条语句 实例:!Sleep(10),延时10毫秒 15.怎么使MCGS组态动画实现左右移动?要用脚本程序写

先向右移,再原路返回 很简单的啊,就是双击要实现动画的东西,钩选水平移动,然后在水平移动上选择对应的字地址,将此字地址与要移动的位置对应好,然后在脚本里面对这个字地址编程就可以了。 只要对我之前说的那个对应的字地址编脚本可以了 脚本可以这么编 IF 对应位=0 THEN 中间变量=0 IF 对应位=100 THEN 中间变量= 1 IF 中间变量=0 THEN 对应位= 对应位+ 5 IF 中间变量=1 THEN 对应位= 对应位- 5 16.mcgs怎么实现按钮按下去不弹起 首先放上两个元件,但不是按钮 然后分别设置属性,上面的是“按钮动作——置一——按钮”“可见度——按钮——不可见”如下图

最新MCGS脚本程序资料

MCGS脚本程序本专题将从以下几个方面介绍MCGS脚本程序: ●脚本程序简介 ●脚本语言编辑环境 ●脚本程序语言要素 ●脚本程序基本语句 ●脚本程序的查错和运行 脚本程序简介 对于大多数简单的应用系统,MCGS的简单组态就可完成。只有比较复杂的系统,才需要使用脚本程序,但正确地编写脚本程序,可简化组态过程,大大提高工作效率,优化控制过程。 用户脚本程序是由用户编制的、用来完成某种特定的流程控制和操作处理的程序。它被封装在一个功能构件里(称为脚本程序功能构件),在后台由独立的线程来运行和处理,能够避免由于单个脚本程序的错误而导致整个系统的瘫痪。 在MCGS中,脚本语言的编程语法非常类似于普通的Basic语言,但在概念和使用上更简单直观,力求做到使大多数普通用户都能正确、快速地掌握和使用。 脚本程序在MCGS组态软件中有四种应用场合,分别为: ●在“运行策略”中的“脚本程序”构件中使用; ●在“菜单”属性设置中的“脚本程序”中使用,作为菜单的一个辅助功 能运行; ●在“用户窗口”属性设置中的“启动脚本”、“循环脚本”、“退出脚本” 中使用; ●更常见的用法是应用在动画界面的事件中,如在窗口中的“标准按钮” 属性设置中的“脚本程序”中使用。 MCGS引入的事件驱动机制,与VB或VC中的事件驱动机制类似,比如:对用户窗口,有装载,卸载事件;对窗口中的控件,有鼠标单击事件,键盘按键事件等等。这些事件发生时,就会触发一个脚本程序,执行脚本程序中的操作。 脚本语言编辑环境 脚本程序编辑环境是用户书写脚本语句的地方。脚本程序编辑环境主要由脚本程序编辑框、编辑功能按钮、MCGS操作对象列表和函数列表、脚本语句和表

MCGS触摸屏高级教程

MCGS培训教程(高级部分) 经过初级培训,您已经对MCGS组态软件的框架结构有了大致的了解,在初级培训教材的指引下,您一定能组态出一些简单的工程项目,但如果想应用自如还有一定困难。在高级培训教材帮助下,您一定会如虎添翼,组态出令人满意的工程。 培训目的经过培训,您可以熟练应用MCGS组态软件中的各项功能; 能根据工艺现场要求熟练制作动画流程; 能处理相对复杂的曲线、报表、数据后处理等需求; 能熟练使用MCGS脚本程序进行复杂的工业流程控制。 培训内容动画制作,流程控制策略,设备组态,结合存盘数据提取做复杂的历史报表,配方构件应用及MCGS使用技巧介绍。 参考手册《MCGS用户指南》《MCGS参考手册》 MCGS多媒体教程MCGS工控组态软件联机帮助 E-mail:support@https://www.doczj.com/doc/c018692593.html, 网址:https://www.doczj.com/doc/c018692593.html, 目录 简介 目录 第一讲构造实时数据库 一、MCGS实时数据库的概述 二、数据对象的类型 1、开关型数据对象 2、数值型数据对象 3、字符型数据对象 4、事件型数据对象 5、数据组对象 三、数据对象的定义 四数据对象的作用域

第二讲动画制作 一、封面制作 二、动画效果 第三讲设备窗口组态 一、概述 三、设备在线调试 四、数据前处理 第四讲脚本程序 一、脚本程序语言要素 1、数据类型 2、变量及常量 3、MCGS对象 4、表达式 5、运算符 6、运算符优先级 二、脚本程序基本语句 1、赋值语句 2、条件语句 3、退出语句 4、注释语句 三、脚本程序应用场合及样例 1、脚本程序在“窗口”中的应用 2、脚本程序在“标准按钮”中的应用 3、脚本程序在“菜单”中的应用 第五讲MCGS数据后处理及报表

喷泉MCGS组态脚本程序

详细具体的脚本程序如下: IF 运行 THEN IF 花样1 THEN IF 运行时间<2 THEN 喷泉1=0 喷泉2=0 喷泉3=0 喷泉4=1 ENDIF IF 运行时间>=2 AND 运行时间<4 THEN 喷泉1=0 喷泉2=0 喷泉3=1 喷泉4=1 ENDIF IF 运行时间>=4 AND 运行时间<6 THEN 喷泉1=0

喷泉2=1 喷泉3=1 喷泉4=1 ENDIF IF 运行时间>=6 AND 运行时间<24 THEN 喷泉1=1 喷泉2=1 喷泉3=1 喷泉4=1 ENDIF 运行时间=运行时间+1 IF 运行时间=24 THEN 运行时间=0 IF 单周期 THEN 花样1=0 喷泉1=0 喷泉2=0 喷泉3=0 喷泉4=0 ENDIF

ENDIF ENDIF IF 花样2 THEN IF 运行时间<2 THEN 喷泉1=1 喷泉2=0 喷泉3=0 喷泉4=0 ENDIF IF 运行时间>=2 AND 运行时间<4 THEN 喷泉1=1 喷泉2=1 喷泉3=0 喷泉4=0 ENDIF IF 运行时间>=4 AND 运行时间<6 THEN 喷泉1=1

喷泉2=1 喷泉3=1 喷泉4=0 ENDIF IF 运行时间>=6 AND 运行时间<36 THEN 喷泉1=1 喷泉2=1 喷泉3=1 喷泉4=1 ENDIF 运行时间=运行时间+1 IF 运行时间=36 THEN 运行时间=0 IF 单周期 THEN 花样2=0 喷泉1=0 喷泉2=0 喷泉3=0 喷泉4=0 ENDIF

ENDIF ENDIF IF 花样3 THEN IF 运行时间<3 THEN 喷泉1=1 喷泉2=0 喷泉3=1 喷泉4=0 ENDIF IF 运行时间>=3 AND 运行时间<6 THEN 喷泉1=0 喷泉2=1 喷泉3=0 喷泉4=1 ENDIF IF 运行时间>=6 AND 运行时间<9 THEN

MCGS实训总结

组态控制技术及应用 学校:西安航空职业技术学院 二级学院:自动化工程学院 班级:机电一体化五班 姓名:路杰 学号:13602514 指导教师:李宁 日期:2015年6月6日

MCGS实训总结 经过连续两周的组态实训,不管项目是老师讲解,还是照搬原书或者与同学们一起讨论解决相关问题。其任务还是踉踉跄跄的完成了,总的来说,两周的训练我还是对组态(MCGS)软件的运行及使用有了较初步的认识。 近几年,科技迅速发展,自动化产品层出不穷,作为自动化专业的一员,掌握组态控制技术是必要的。现在我就简单先总体介绍一下组态技术。 组态控制技术属于一种计算机控制技术。它是利用计算机监控某种设备使其按照控制要求工作。利用组态控制技术构成的计算机组态监控系统主要由被控对象、传感器、I/O接口、计算机及执行机构等部分组成。 本次实训是借助MCGS组态软件平台来完成组态监控系统人机界面制作和程序的设计的。MCGS(Monitor and Control Generated System, 通用监控系统)组态软件是北京昆仑通态软件公司研发的基于Window平台的,用于快速构造和生成上位机监控系统的组态软件系统。通过对现场数据的采集处理,以动画显示、报警处理、流程控制、报表输出等和多种方式向用户提供解决实际工程问题的开发平台。 由于是国人开发的软件,所以它是全中文的,很适合我们使用,还有它可提供近百种绘图工具和基本图符,快速构造图形界面,此外还提供上千个精美的图库元件及渐进色等多种

动画方式可以快速的构建精美的动画,它还支持温控曲、计划曲线、时实曲线、历史曲线、XY等多种工控曲线。总之使用MCGS软件可以较快速的完成一个运行稳定、功能成熟、维护量小并且具备专业水准的计算机监控控制系统的开发工作。下面我来介绍在使用MCGS组态软件来完成任务的详细过程及遇到的问题和解决的办法。 任务一水泵运行控制 打开MCGS通用版组态软件,我们会看见5个部分,分别为主控窗口、设备窗口、用户窗口、实时数据库和运行策略。 首先我们先新建一个工程,将其命名为水泵控制系统并进行保存。 然后打开用户窗口完成相关图符的建立,老师在建工程时先建立了实时数据库,是因为对图符的控制属性有较清楚的认识,所以对于初学者来说,先画图符是最先的选择。 (1)在用户窗口中新建一个窗口0,并将其重命名水泵运行控制,在动画窗口中用标签建立动画的标题“水泵控制” (2)绘制水泵 在软件中,已经为我们提供了“对象原件库”我们可以在其中选择所要的原件,所以接下来添加一个“泵30”图符再确定,可以调节图符的大小,以至达到美观的效果(3)在泵下面添加两个“按钮”分别将名称改为“启动”和“停止”也可以双击来改变按钮的背景颜色。 (4)因为要展示停止和启动时的状态所以再添加两个指示灯,为了更为清楚的展现启动和停止的状态,也可以自己改造一个指示灯,其改造方法为先用一个库提供的指示灯作为改造对象先分解单元在将最前面的图符拖走,将底层的图符分解图符再改变其颜色和添加一个“可见度”属性并在表达式里填入@开关量,然后再对另一只指示灯做相关属性的设置。 (5)为了显示时间我们再添加两个按钮分别为“定时器启动”和“定时器复位”再添加两个标签分别为控制“计时时间”和“时间到”。 (6)添加四个输入框将其属性设置为数值型, (7)现在我们来进行实时数据库里相关数据的添加,分别为水泵、启动、复位、定时器启动、定时器复位都是开关量,而“计时时间”和“时间到”为数值型。 (8)实时数据建立完成后,再进行用户窗口里图符的相关表达式的关联,由于要有时间控制所以在运行策略里我们要添加一个定时器,和一个脚本程序,在定时器属性里设置时间值为35秒,在脚本程序里用IF-THEN语句来编写控制程序。记住要用EXIT来划分步骤,在最后要进入运行环境测试前,应调节循环策略的属性,将定时循环时间改为200s。 任务二水泵运行监控 前期仅是利用MCGS系统的“设备无关性”在水泵控制组态工程中借助定时器和脚本策略,初步实现了水泵控制系统的模拟运行,并未达到实时监控的目的,所以接下来要监控设置。 我们知道,水泵运行控制主要是使用PLC来控制的,而MCGS系统,一方面需要从PLC 采集相关数据,改变实时数据库中对应变量的值,然后以画面中图符构件的动画形式显示出来,从而达到监视运行的目的;另一方面还需要将上位机组态环境中设置的暂停和运行时间写入PLC中,实现对水泵运行时间到调整,以及通过上位机启动和停止按钮实现对水泵硬件系统的运行和停止的控制。 打开前一个“任务一”将其另存为“水泵运行监控”在将“任务一”组态工程动画及属性设置进行改进。 (1)删除定时器策略及脚本程序策略。【在联机时,PLC完成控制任务,所以组态工程

MCGS嵌入版脚本程序

脚本程序 本章介绍MCGS嵌入版的脚本语言,主要内容包括: 脚本语言编辑环境 脚本程序语言要素 脚本程序基本语句 脚本程序的查错和运行 脚本程序简介 脚本程序是组态软件中的一种内置编程语言引擎。当某些控制和计算任务通过常规组态方法难以实现时,通过使用脚本语言,能够增强整个系统的灵活性,解决其常规组态方法难以解决的问题。 MCGS嵌入版脚本程序为有效地编制各种特定的流程控制程序和操作处理程序提供了方便的途径。它被封装在一个功能构件里(称为脚本程序功能构件),在后台由独立的线程来运行和处理,能够避免由于单个脚本程序的错误而导致整个系统的瘫痪。 在MCGS嵌入版中,脚本语言是一种语法上类似Basic的编程语言。可以应用在运行策略中,把整个脚本程序作为一个策略功能块执行,也可以在动画界面的事件中执行。MCGS嵌入版引入的事件驱动机制,与VB或VC中的事件驱动机制类似,比如: 对用户窗口,有装载,卸载事件;对窗口中的控件,有鼠标单击事件,键盘按键事件等等。这些事件发生时,就会触发一个脚本程序,执行脚本程序中的操作。 脚本语言编辑环境 脚本程序编辑环境是用户书写脚本语句的地方。脚本程序编辑环境主要由脚本程序编辑框、编辑功能按钮、MCGS嵌入版操作对象列表和函数列表、脚本语句和表达式4个部分构成,分别说明如下:

脚本程序编辑框用于书写脚本程序和脚本注释,用户必须遵照MCGS嵌入版规定的语法结构和书写规范书写脚本程序,否则语法检查不能通过。 编辑功能按钮提供了文本编辑的基本操作,用户使用这些操作可以方便操作和提高编辑速度。比如,在脚本程序编辑框中选定一个函数,然后按下帮助按钮,MCGS嵌入版将自动打开关于这个函数的在线帮助,或者,如果函数拼写错误,MCGS嵌入版将列出与所提供的名字最接近函数的在线帮助。 脚本语句和表达式列出了MCGS嵌入版使用的三种语句的书写形式和MCGS嵌入版允许的表达式类型。用鼠标单击要选用的语句和表达式符号按钮,在脚本编辑处光标所在的位置填上语句或表达式的标准格式。比如,用鼠标单击if~then按钮,则MCGS嵌入版自动提供一个if…then…结构,并把输入光标停到合适的位置上。 MCGS嵌入版对象和函数列表以树结构的形式,列出了工程中所有的窗口、策略、设备、变量、系统支持的各种方法、属性以及各种函数,以供用户快速的查找和使用。比如,可以在用户窗口树中,选定一个窗口: “窗口0”,打开窗口0下的“方法”,双击Open函数,则MCGS嵌入版自动在脚本程序编辑框中,添加一行语句: 用户窗口.窗口 0.Open(),通过这行语句,就可以完成窗口打开的工作。 脚本程序语言要素 在MCGS嵌入版中,脚本程序使用的语言非常类似普通的Basic语言,本节将对脚本程序的语言要素进行详细的说明。数据类型 MCGS嵌入版脚本程序语言使用的数据类型只有三种: 开关型: 表示开或者关的数据类型,通常0表示关,非0表示开。也可以作为整数使用;

MCGS触摸屏编程实例精选

MCGS触摸屏编程实例精选 表格中,两数据连接到两个开关量,要把采集到的“0”和“1”的状态,显示为“关”和“开” 在表格里输入“开|关”,然后连接开关型变量Data1,按钮是让开关量Data1取反。 这样就行了,运行时Data1默认为0显示关,按下按钮后Data1为1显示开,如此反复 里怎么画渐变色 渐变色只有通用版和网络版有,嵌入版没有 方法就是:填充颜色——填充效果,然后根据你的需要设置就行了。 3.如何在mcgs做脚本=1 让Q输出 当PLC的有信号,让输出,在PLC中做我会,不知道在MCGS中怎么实现 在循环脚本中,循环时间为10ms,条件表达式为1,脚本程序为 IF = 1 THEN = 1 ELSE = 0 ENDIF 组态如何实现这样的功能?点击某一部分,弹出登录对话框 这个画面是在有管理员帐户登录的情况下才可以设置的,我现在想实现当有人在没有登录的情况下点击了这个地方,就弹出提示:请先登录。

1条回答 可以先用函数!CheckUserGroup来判断当前登录的用户是不是你需要的用户组,返回只为0表示已经登录了你需要的用户组了,直接进行下一步,如果返回值不为0,表示当前登录的不是你需要的用户组或是没有任何登录,那么用子窗口或者可见度啥的都行,显示出来就行了。 追问 我是想在用户点击了上面图片中的部分时才弹出登录提示,怎么实现呢? 回答 你把判断的语句写到图片的事件里就行了 追问 求在具体一点,不知道怎么写。 回答 点控件,右键——事件——Click——事件连接脚本 能记录外部机器运行的时间吗 我想用触摸屏记录外部设备的总运行时间和单点运行时间,如一个指示灯从亮到灭的这段时间 首先新建一个循环策略,循环时间为1s 里面添加一个策略,表达式为变量“灯”这个变量“灯”就是你外部的灯,是通过PLC还是通过远程IO啥的连接到MCGS里的变量。 编辑脚本 这样就行了

非常实用的mcgs触摸屏编程实例精选(续1)

23.MCGS 触摸屏碎了,如何工程移植? 这个得看原来的工程支不支持上传。 在下载时,如果点了“支持工程上传”你就能上传,如果没点上,你就不能上传了。如下图。 上传的方法是: 打开组态软件,MCGS嵌入版。文件——上传工程,按步骤运行就行了

如果支持上传,你就能上传了,如果不支持,你就只能找MCGS修好,或花钱让他们导出了。 24.MCGS触摸屏的循环移动的问题。 现在想实现某个对象的循环移动,看了资料,但对里面的几个问题不明白,能帮我回答一下吗?一是上面的“水平移动连接”的几个数代表什么?二是移动脚本里的数代表什么?这两者之间有关系吗?三是我想实现循环周期为14秒应该怎么设置?谢谢! 向左转|向右转

提问者采纳 向左转|向右转 对应a的值, 向左转|向右转 对应部件的相对坐标位置14S就是140*100MS。 脚本应该是 if a<= 140 then

a=a+1 else a=0 endif 25.MCGS组态触摸屏输入框的键盘如何改大 !SetNumPanelSize(Type,Size) 函数意义:根据需要和显示屏的大小调整软键盘的大小。 返回值:开关型。 返回值=0:修改成功。新设置将在下一次打开输入键盘时生效。 返回值=1:修改失败,参数错误。(可能是没有匹配的type ,或者size参数超出范围)。参数:Type,键盘类型,数值型; 1:代表修改数值输入键盘。 2:代表修改字符输入键盘;。 3:代表修改用户登录对话框。 Size,键盘大小,数值型;数值范围:200像素~1024像素; 实例:!SetNumPanelSize(1,500),将数值输入键盘改为500*500大小,该正方形相对于屏幕居中。所有修改将在下一次打开输入框时生效,运行环境退出后,将自动保留上次输入框的大小。 注意事项:键盘放大缩小功能在重新下载工程时没有删除配置文件,换工程后设置仍然有效,除非重新进行了设置。如果要去掉原来的设置则需要手工删除panelSize.ini文件,该文件位于\harddisk\mcgsbin目录下。 26.MCGS 组态画面单个画面的密码设置 MCGS 组态画面有好几个画面的,现在只想把其中一个画面设置密码,其他仍可以所有用户访问? 提问者采纳 假如在窗口0有一个通往窗口1的通道,这个通道可以是按钮可以是标签也可以是其他元件。而窗口1是想要设置密码的画面。现在需要对这个通道进行设置。操作如下:双击,选择脚本程序,输入IF!LogOn( )=0 THEN 用户窗口.窗口1.Open( ) ENDIF 然后确认。

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、表达式 由数据对象(包括设计者在实时数据库中定义的数据对象、系统内部数据对象和系统内部函数)、括号和各种运算符组成的运算式称为表达式,表达式

mcgs组态软件简介word版本

MCGS组态软件简介 摘要:组态软件,又称监控组态软件,译自英文SCADA,即Supervision,Control and Data Acquisition(数据采集与监视控制),组态软件的应用领域很广,它可以应用于电力系统、给水系统、石油、化工等领域的数据采集与监视控制以及过程控制等诸多领域。在电力系统以及电气化铁道上又称远动系统(RTU System,Remote Terminal Unit)。 关键字:MCGS组态软件监控组态软件系统构成国内外组态软件 正文: 1、 MCGS组态软件的功能和特点 MCGS即"监视与控制通用系统",英文全称为Monitor and Control Generated System。MCGS是为工业过程控制和实时监测领域服务的通用计算机系统软件,具有功能完善、操作简便、可视性好、可维护性强的突出特点。 MCGS工控组态软件的功能和特点可归纳如下: 1.概念简单,易于理解和使用。 2.功能齐全,便于方案设计。 3.实时性与并行处理。 4.建立实时数据库,便于用户分步组态,保证系统安全可靠运行。 5.设立“设备工具箱”,针对外部设备的特征,用户从中选择某种“构件”,设置于设备窗口内,赋予相关的属性,建立系统与外部设备的连接关系,即可实现对该种设备的驱动和控制。 6.“面向窗口”的设计方法,增加了可视性和可操作性。 7.利用丰富的“动画组态”功能,快速构造各种复杂生动的动态画面。 8.引入“运行策略”的概念。复杂的工程作业,运行流程都是多分支的。 9.MCGS系统由五大功能部件组成,主要的功能部件以构件的形式来构造。 10.支持OLE Automation技术。MCGS允许用户在Visual Basic中操作MCGS 中的对象,提供了一套开放的可扩充接口,用户可根据自己的需要用VB编制特定的功能构件来扩充系统的功能。 11.MCGS中数据的存储不再使用普通的文件,而是用数据库来管理一切。 12.设立“对象元件库”,解决了组态结果的积累和重新利用问题。 13.提供对网络的支持。考虑到工控系统今后的发展趋势,MCGS充分运用现今发展的DCCW(Distributed Computer Cooperator Work)技术,即分布式计算机协同工作方式,来使分散在不同现场之间的采集系统和工作站之间协同工作。通过MCGS,不同的工作站之间可以实时交换数据,实现对工控系统的分布式控制和管理。 2、MCGS组态软件的系统构成 MCGS组态软件的整体结 MCGS组态软件(以下简称MCGS)由“MCGS组态环境”和“MCGS运行环境”两个系统组成。两部分互相独立,又紧密相关。 MCGS组态环境是生成用户应用系统的工作环境,由可执行程序McgsSet.exe 支持,其存放于MCGS目录的Program子目录中。用户在MCGS组态环境中完成动画设计、设备连接、编写控制流程、编制工程打印报表等全部组态工作后,生成扩展名为.mcg的工程文件,又称为组态结果数据库,其与MCGS 运行环境一起,构成了用户应用系统,统称为“工程”。

相关主题
文本预览
相关文档 最新文档