Mcgs屏幕脚本程序

目录

  • 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 …

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/723392.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

小白如何重装系统win10?电脑一键重装系统傻瓜式操作!超详细步骤!

随着电脑的广泛应用&#xff0c;给笔记本/台式电脑系统重装已成为一项基本技能。对于电脑新手而言&#xff0c;如何重装Win10系统&#xff0c;或者更高版本的Win11系统可能是一个巨大的挑战。如果对电脑重装系统刚好有需要了解的小伙伴&#xff0c;不妨看看下面的干货分享。本文…

AI智能写作工具, 免费在线智能创作内容网站

对于需要创作内容的同学&#xff0c;选择一款适合自己的AI写作工具可以极大的提高创作效率。下面小编就来和大家分享几款可以生成高质量原创内容的AI写作工具。 1. Kimi智能助手 Kimi智能助手是一款集成了先进算法的AI工具&#xff0c;它能够理解复杂的语言模式&#xff0c;生…

Mp3文件结构全解析(一)

Mp3文件结构全解析(一) MP3 文件是由帧(frame)构成的&#xff0c;帧是MP3 文件最小的组成单位。MP3的全称应为MPEG1 Layer-3 音频 文件&#xff0c;MPEG(Moving Picture Experts Group) 在汉语中译为活动图像专家组&#xff0c;特指活动影音压缩标准&#xff0c;MPEG 音频文件…

vue3delete请求报403forbidden,前后端解决方式,cookie无效问题

在做开发时&#xff0c;前期已经在Controller类加上CrossOrigin(origins "*")&#xff0c;发送get和post请求都没问题&#xff0c;但遇到delete请求时&#xff0c;又报出跨域问题 一.前端添加proxy代理服务器&#xff08;未能解决&#xff09; 在vue.config.js中使…

【实战】Spring Cloud Stream 3.1+整合Kafka

文章目录 前言新版版本优势实战演示增加maven依赖增加applicaiton.yaml配置新增Kafka通道消费者新增发送消息的接口 实战测试postman发送一个正常的消息postman发送异常消息 前言 之前我们已经整合过Spring Cloud Stream 3.0版本与Kafka、RabbitMQ中间件&#xff0c;简直不要太…

要改Google签名?这些你足够了解吗!

大家好&#xff0c;我是小编阿文。欢迎您关注我们&#xff0c;经常分享有关Android出海&#xff0c;iOS出海&#xff0c;App市场政策实时更新&#xff0c;互金市场投放策略&#xff0c;最新互金新闻资讯等文章&#xff0c;期待与您共航世界之海。 老项目keystore签名信息包含国…

python-画三角形

[题目描述] 输入一个正整数n&#xff0c;请使用大写字母拼成一个这样的三角形图案&#xff08;参考样例输入输出&#xff09;&#xff1a;三角形图案的第1行有1个字母&#xff0c;第2行有2个字母&#xff0c;以此类推&#xff1b;在三角形图案中&#xff0c;由上至下、由左至右…

【Redis技术进阶之路】「底层源码解析」揭秘高效存储模型与数据结构底层实现(链表)

揭秘高效存储模型与数据结构底层实现 【专栏简介】【技术大纲】【专栏目标】【目标人群】1. Redis爱好者与社区成员2. 后端开发和系统架构师3. 计算机专业的本科生及研究生 链表使用场景List&#xff08;列表&#xff09;和 链表的关系链表的实现链表的节点list的源码实现结构模…

零信任是对抗AI威胁的“解药”

人工智能的变革力量正在重塑众多行业的业务运营。通过机器人流程自动化&#xff08;RPA&#xff09;&#xff0c;人工智能正在将人力资源从重复的、基于规则的任务中解放出来&#xff0c;并将其重点放在战略性的、复杂的操作上。此外&#xff0c;人工智能和机器学习算法可以以前…

防爆气象仪的工作原理

TH-WFB5矿山气象传感器在矿山安全监测系统中扮演着至关重要的角色&#xff0c;它们能够及时发现异常情况&#xff0c;为矿山的安全运营提供可靠的数据支持。矿山气象传感器能够实时监测矿山环境中的风速、风向、温度、湿度和大气压力等关键气象参数。这些传感器采用先进的传感技…

BottomSheet 半模态视图

先看效果图: 越来越多的app,使用半模态视图,弹窗从底部弹窗,手动滑动收起。交互流程丝滑,体验流畅。我这一研究才发现,官方出了一个控件叫 UISheetPresentationController,使用起来及其方便,只需要关注业务逻辑就可以,着急的朋友可以直接把demo拿去。BottomSheetDemo…

项目二 OpenStack快速入门

任务一 熟悉OpenStack图形界面操作 1.1 Horizon项目 •各OpenStack服务的图形界面都是由Horizon提供的。 •Horizon提供基于Web的模块化用户界面。 •Horizon为云管理员提供一个整体的视图。 •Horizon为终端用户提供一个自主服务的门户。 •Horizon由云管理员进行管理…

2024最新版Vcpkg安装第三方库报错error: building XXXX failed with: BUILD_FAILED

很多朋友用Vcpkg安装第三方库的时候基本都会遇到报错的情况&#xff0c;而且大部分都会出现下面这个页面里面的红色报错信息&#xff0c;但是实际上真正错误应该是上面的Cmake Error提示&#xff0c;下面的红色警告只是Vcpkg官方提供给我们的一个最基础的解决方式&#xff0c;而…

『啥叫不可测试代码』

最近写单元测试&#xff0c;知道 golang的单测覆盖率提高会比较难&#xff0c;没想到这么难。当提高到一定程度&#xff0c;有的 case就无法成型了&#xff0c;也就无从增加覆盖率。为何呢&#xff1f;思考许久&#xff0c;究其原因&#xff0c;还是被测代码属于“不可测代码”…

NSSCTF-Web题目10

目录 [强网杯 2019]随便注 1、题目 2、知识点 3、思路 [GXYCTF 2019]BabyUpload 1、题目 2、知识点 3、思路 [强网杯 2019]随便注 1、题目 2、知识点 数据库注入&#xff0c;堆叠注入&#xff0c;更改表名 3、思路 正常提交查询&#xff0c;看看数据回显 加入单引号…

数学建模基础:非线性模型

目录 前言 一、非线性方程组 二、非线性规划 三、微分方程模型 四、非线性模型的应用 五、实例示范&#xff1a;传染病传播模型 实例总结 五、总结 前言 非线性模型用于描述变量之间的非线性关系&#xff0c;相比线性模型&#xff0c;其数学形式更为复杂&#xff0c;但…

Window常用的脚本有哪些?快来看看有哪些是你正在用的!(欢迎评论补充~)

前言 在日常开发中&#xff0c;如果能熟练掌握以下这些使用频率很高的脚本&#xff0c;那工作起来真的是手拿把攥&#xff0c;事半功倍&#xff0c;接下来给大家介绍一些我们日常使用率很高的一些脚本&#xff01; 常用脚本(Batchfile & VBScript) 1.一键启动.bat 一次…

Android device/xxx/system/common/overlay编译产物

MTK 如下代码编译的产物在 framework-res.apk 编译配置文件在device/mediatek/system/common/目录下的Android.bp device/mediatek/system/common/overlay/telephony/frameworks/base/core/res/res/values-mcc655-mnc01/config.xml 在Android U上面还在overlay目录中进行了产…

pytets测试框架中如果需要运行多个测试套件时pytest.ini文件设置

pytets测试框架中如果需要运行多个测试套件时pytest.ini文件设置方法 testpaths testcases/fenmi testcases/weixin testcases/Zgen

【数据结构与算法】对称矩阵,三角矩阵 详解

给出对称矩阵、三角矩阵的节省内存的存贮结构并写出相应的输入、输出算法。 对称矩阵和三角矩阵可以通过特殊的存储结构来节省内存。这种存储结构只存储矩阵的一部分元素&#xff0c;而不是全部元素。 对称矩阵&#xff1a;对于一个n阶对称矩阵&#xff0c;我们只需要存储主对…