目录
- 1.脚本程序概述
- 1.1 脚本程序简介
- 1.2 脚本程序编辑环境
- 2.脚本程序语言要素
- 2.1 变量和常量
- 2.2 对象
- 2.3 事件
- 2.4 表达式
- 2.5 联行符
- 2.6 运算符
- 2.7 系统函数
- 3. 基本语句
- 3.1 赋值语句
- 3.2 条件语句
- 3.3 循环语句
- 3.4 跳出语句
- 3.5 退出语句
- 3.6 注释语句
- 3.7 声明语句
- 3.6 命名规则
1.脚本程序概述
1.1 脚本程序简介
脚本程序是组态软件中的一种内置编程语言引擎。当某些控制和计算任务通过常规组态方法难以实现时,通过使用脚本语言编写脚本程序来实现。
在基于Linux的触摸屏种,脚本程序可以应用在运行策略、窗口启动脚本、窗口循环脚本、窗口退出脚本、窗口事件脚本、构件事件脚本、按钮脚本中。
1.2 脚本程序编辑环境
在任意用户窗口内双击,弹出用户窗口属性设置页面。可以看到用户窗口属性设置页面包含有启动脚本、循环脚本、推出脚本。
点击“打开脚本程序编辑器”,可以进入脚本编辑页面。
- (1)脚本编辑框
- 脚本编辑框时用户进行脚本编写的地方是,所有脚本内容均显示在此处。脚本编辑框用于书写脚本程序和脚本注释,用户必须遵照McgsPro规定的语法结构和书写规范书写脚本程序,否则会语法检查不通过。
- 脚本编辑框中正在编辑的行浅黄色高亮,数字常量红色显示,关键词蓝色显示。
- (2)功能按钮
功能按钮提供了文本编辑的基本操作,用户使用这些操作可以方便操作和提高编辑速度。主要包含功能按钮如下图所示:
- (3)对象树
对象树以树结构的形式,列出了工程中所有的窗口、策略、设备、变量、系统支持的各种方法、属性以及各种函数。对象树只在脚本编辑窗口中有效。
- (4)对象树查找
当系统中窗口、设备或对象比较多时,可以通过对象树查找功能进行快速查找。查找范围:系统变量、系统函数、二级节点(模块名称)、三级节点名称(窗口名称、构件名称、设备名称、变量名称、策略名称)。注:不包含属性、方法。查找模式:分为非全词匹配和全词匹配两种 - (5)编辑框右键菜单
脚本编辑框中点击鼠标右键弹出操作菜单,可以进行一些快捷操作,此部分功能主要是用于在只有脚本编辑框时进行一些语法或操作符的快捷输入。右键操作功能项基本上与功能按钮相似。
2.脚本程序语言要素
2.1 变量和常量
(1)变量
Mcgs组态软件脚本程序中,用户不能定义子程序和子函数,脚本编辑器中的变量可以是:
- 实时数据库中组态的数据对象
数据对象可以看作是脚本程序中的全局变量,在所有程序段共用。脚本编辑中可以用数据对象的名称来读写数据对象的值。也可以对数据对象的属性进行操作,其支持整数、浮点数、字符串3种数据对象。 - 当前脚本中定义的局部变量
支持字节型、整数、浮点数、字符串 4种数据类型 - 当前脚本中定义的局部数组变量
支持字节型数组、整数数组、浮点数数组、字符串数组4种数据类型。访问元素的方法为array[index], index为访问元素的位置(从1开始),返回对应的元素类型:字节型(byte)、整数(integer)、浮点数(float/single)、字符串(string)。
在脚本程序中不能对组对象进行读写操作,但可以对组对象的方法进行操作。
(2)常量
- 整数常量:如 12
- 十六进制整数常量: 如 0x123
- 浮点数常量:如 12.34
- 字符串常量:如 “abc”,“正常”
- 字符串常量内支持以下转义:
“\n”:代表换行
“\r”:需要和“\n”一起使用(“\r\n”),在微软环境中代表换行
“"”:代表双引号
“\t”:代表制表符
“\”:代表反斜杠自身
其他以“\”开始的字符将作为非法字符串。
- 字符串常量内支持以下转义:
(3)系统变量
Mcgs组态定义的内部数据对象作为系统内容变量,在脚本程序中可自由使用,在使用系统变量时,变量的前面必须加“$”符号。系统变量为只读类型。
2.2 对象
Mcgs组态软件的对象形成一个对象树,MCGS对象是最根部的对象,它的属性就是系统变量,它的方法就是系统函数。MCGS对象下有“用户窗口”对象、“设备”对象、“数据对象”等子对象。
使用对象的方法和属性,必须要引用对象,然后使用点操作来调用这个对象的方法或属性。为了引用一个对象,需要从对象根部开始引用,这里的对象根部,是指可以公开使用的对象。如InputETime = $ Time和 InputETime = MCGS.$ Time 都对。
2.3 事件
在基于Linux的触摸屏中,用户窗口支持事件的概念。所谓事件,就是当用户在窗口中进行某些操作时,用户窗口会根据用户不同的操作进行相应的处理。例如当用户在窗口中用鼠标单击窗口时,就会触发用户窗口的Click事件,同时执行在Click事件中定义的一系列操作。在McgsPro组态软件的动画界面组态中,可以组态处理动画事件。动画事件是在某个对象上发生的,它可能是带参数也可能是不带参数的动作驱动源。
2.4 表达式
由变量、括号和各种运算符组成的运算式称为表达式,表达式的计算结果称为表达式的值。当表达式中包含有逻辑运算符或比较运算符时,表达式的值只可能为0(条件不成立,假)或非0(条件成立,真),这类表达式称为逻辑表达式;当表达式中只包含算术运算符,表达式的运算结果为具体的数值时,这类表达式称为算术表达式;常量或变量是狭义的表达式,这些单个量的值即为表达式的值。表达式值的类型即为表达式的类型,必须是字节型、整数、浮点数、字符串四种类型中的一种。表达式是构成脚本程序的最基本元素,也常常应用于构件对象的组态中。
2.5 联行符
在语句结束使用“”可连接下一行至本行,共同形成一条完整的语句。使用规则:<空格><回车或注释>,如:
a = a + _
b
将形成等效语句:a = a + b
注意:联行符
(1)联行符不能用来连接字符串,正确的方式是使用加法和联行符一同来完成:
str = “aaaaa” + _
"bbbbb"
(2)当前行,联行符必须是最后一个有效字符。
2.6 运算符
2.7 系统函数
McgsPro提供了几组系统函数,这些函数是为了完成脚本语言的功能提供的。系统函数的具体用法可参考Mcgs帮助文档中的脚本函数章节。
3. 基本语句
3.1 赋值语句
赋值语句的形式为:变量 = 表达式。
赋值号左边必须是能够读写的变量,如:整数变量、浮点数变量以及能进行写操作的内部变量,而组对象、只读的系统变量、系统函数以及常量,均不能出现在赋值号的左边,因为不能对这些对象进行写操作。赋值号的右边为一表达式,表达式的类型必须与左边变量值的类型相符合,否则系统会提示“类型不匹配”的错误信息。
3.2 条件语句
形式一:
If 〖表达式〗 Then 〖赋值语句或退出语句〗
形式二:
If 〖表达式〗 Then
〖语句〗
EndIf
形式三:
If 〖表达式〗Then
〖语句〗
Else
〖语句〗
EndIf
条件语句中的四个关键字“If”、“Then”、“Else”、“Endif”不分大小写。如拼写不正确,检查程序会提示出错信息。条件语句允许多级嵌套。
3.3 循环语句
While 〖条件表达式〗
…
EndWhile
当条件表达式成立时(非零),循环执行While和EndWhile之间的语句。直到条件表达式不成立(为零),退出。
3.4 跳出语句
跳出语句为“Break”,用于跳出当前循环,必须在循环语句中使用。
3.5 退出语句
退出语句为“Exit”,用于中断脚本程序的运行,停止执行其后面的语句。一般在条件语句中使用退出语句,以便在某种条件下,停止并退出脚本程序的执行。
3.6 注释语句
以英文单引号“’”开头的语句称为注释语句,注释语句在脚本程序中只起到注释说明的作用,实际运行时,系统不对注释语句作任何处理。
3.7 声明语句
以英文“DIM”开头的语句称为局部变量声明语句,其声明了一个可在本脚本中使用的局部变量。系统支持4种类型的变量:整数、浮点数、字符串和字节型。分别以integer、float/single、string、byte表示。
- DIM <变量名> AS <类型>;
- DIM <变量名>(<数组长度>) AS <数组类型>;
3.6 命名规则
-
不能以关键字命名:if、then、else、endif、while、break、endwhile、and、or、xor、not、exit、break、byte、integer、single、float、string。
-
不能以数字开头
-
不能含有特殊字符:`~!@#$%^&*()-=+\|]}[{'";😕?.>,<~!·#¥%……—*()——+|?,。《》/。
-
不能为空
-
不能为“_”
To Be Continue …