【3】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 …

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

AI从云端到边缘:人员入侵检测算法的技术原理和视频监控方案应用

在当今数字化、智能化的时代&#xff0c;安全已成为社会发展的重要基石。特别是在一些关键领域&#xff0c;如公共安全、智能化监管以及智慧园区/社区管理等&#xff0c;确保安全无虞至关重要。而人员入侵检测AI算法作为一种先进的安全技术&#xff0c;正逐渐在这些领域发挥着不…

Web后端Javaee企业级开发之定时任务 Springboot整合任务框架Quartz和Task详解

定时任务 在Java EE企业级开发中&#xff0c;定时任务&#xff08;也称为后台调度或周期性任务&#xff09;是非常常见的一种功能&#xff0c;主要用于执行那些不需要用户交互&#xff0c;但需要按照预定时间间隔或事件触发的任务。Java EE提供了几个框架和API来处理这种需求&…

如何制作 PDF 文件

本文概述了如何使用 Microsoft Word、GeekerPDF、Google Docs 和 Mac Pages 创建 PDF。您还可以使用免费的 PDF 创建器&#xff1b;有许多可供下载或在线使用的创建器。 如何使用 Microsoft Word 创建 PDF 如果您拥有 2007 或更高版本的 Microsoft Word&#xff0c;创建 PDF 的…

深入解析软件架构中的分层架构

目录 前言1. 什么是分层架构1.1 分层架构的基本概念1.2 分层架构的优势 2. 分层架构的具体实现2.1 表示层2.2 应用层2.3 数据访问层2.4 数据层 3. 分层架构的实践与挑战3.1 分层架构的实践经验3.2 分层架构的常见挑战 结语 前言 在软件开发过程中&#xff0c;架构设计是决定项…

【 ClickHouse】 ClickHouse数据类型(整型、浮点型、布尔型、Decimal型、字符串、数组、时间类型)(二)

ClickHouse数据类型 整型 固定长度的整型&#xff0c;包括有符号整型或无符号整型。 1)整型范围&#xff1a; Int8 - [-128 : 127] Int16 - [-32768 : 32767] Int32 - [-2147483648 : 2147483647] Int64 - [-9223372036854775808 : 9223372036854775807]2)无符号整型范围&…

结构思考力:让你的思维更有条理

在这个信息爆炸的时代&#xff0c;如何让自己的思维更有条理&#xff0c;更高效地沟通显得尤为重要。最近读了《结构思考力》一书。今天&#xff0c;我想和大家分享一下读后感&#xff0c;从以下几个方面展开&#xff1a;1. 什么是结构思考力及其重要性&#xff1b;2. 为什么要…

SpringMVC—RequestMapping注解

一、RequestMapping注解 RequestMapping注解&#xff1a;是Spring MVC框架中的一个控制器映射注解&#xff0c;用于将请求映射到相应的处理方法上&#xff0c;具体来说&#xff0c;他可以将指定URL的请求绑定到一个特定的方法或类上&#xff0c;从而实现对请求的处理和响应。 …

leetcode498 对角线遍历

题目 给你一个大小为 m x n 的矩阵 mat &#xff0c;请以对角线遍历的顺序&#xff0c;用一个数组返回这个矩阵中的所有元素。 示例 输入&#xff1a;mat [[1,2,3],[4,5,6],[7,8,9]] 输出&#xff1a;[1,2,4,7,5,3,6,8,9] 解析 本题目主要考察的就是模拟法&#xff0c;首…

【C语言】解决C语言报错:Null Pointer Dereference

文章目录 简介什么是Null Pointer DereferenceNull Pointer Dereference的常见原因如何检测和调试Null Pointer Dereference解决Null Pointer Dereference的最佳实践详细实例解析示例1&#xff1a;未初始化的指针示例2&#xff1a;释放内存后未将指针置为NULL示例3&#xff1a;…

MacOS - 启动台(LaunchPad)缺少应用软件图标

问题描述 MacOS 有时会遇到已安装的软件在启动台&#xff08;LaunchPad&#xff09;中找不到的 bug&#xff0c;这种情况在新安装软件时易出现。 原因分析 首先去访达&#xff08;Finder&#xff09;中的“应用程序”文件夹确认是否已安装某软件&#xff08;LaunchPad 中图标…

Linux--08---挂载分区

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 1.查看系统磁盘分区情况1.lsblk 查看2.fdisk -l 2.挂载未分区磁盘1. 创建分区2. 格式化分区3. 创建挂载点4. 挂载分区5. 更新 /etc/fstab6.验证挂载 3.修改挂载的磁…

谱写数字金融大文章,金仓助力金融强国建设

中央金融工作会议提出&#xff0c;“做好科技金融、绿色金融、普惠金融、养老金融、数字金融五篇大文章”&#xff0c;这既是金融领域推进高质量发展的内在要求&#xff0c;也是建设金融强国的有效实现路径。人大金仓积极践行国家战略&#xff0c;贯彻中央金融工作精神&#xf…

【自撰写】【国际象棋入门】第5课 常见开局战术组合(一)

第5课 常见开局战术组合&#xff08;一&#xff09; 本次课中&#xff0c;我们简要介绍几种常见的开局战术组合。开局当中&#xff0c;理想的情况是&#xff0c;己方的两只&#xff08;或以上&#xff09;轻子相互配合&#xff0c;或者与己方的兵配合&#xff0c;在完成布局的…

windows下使用Qt的MinGW8.1.0编译grpc

参考连接&#xff1a;https://blog.csdn.net/u014340533/article/details/125528855 1、编译环境 操作系统&#xff1a;windows10 Qt版本&#xff1a;5.15.2 编译器&#xff1a;MinGW8.1.0 CMake&#xff1a;3.23.1 Git&#xff1a;2.39.2 NASM&#xff1a;2.14.02 配置…

Java 打包编译、运行报错

无法访问com.sun.beans.introspect.PropertyInfo-CSDN博客 [ERROR] COMPILATION ERROR : [INFO] ------------------------------------------------------------- [ERROR] sa-base/src/main/java/net/lab1024/sa/base/module/support/datatracer/service/DataTracerChangeCon…

范式(下)-BC范式(BCNF)、关系模式的规范化

一、关系模式STC 假设有一个关系模式STC&#xff0c;包含有学号Sno、教师编号Tno、课程编号Cno、选课成绩G四个属性 即STC(Sno&#xff0c;Tno&#xff0c;Cno&#xff0c;G) 数据间的关系为 每个学生可选修多门课程&#xff0c;每门课程可以被多名学生选修每个老师只能讲授…

zustand 状态管理库的使用 结合TS

zustand 是一个用于React应用的简单、快速且零依赖的状态管理库。它使用简单的钩子&#xff08;hooks&#xff09;API来创建全局状态&#xff0c;使得在组件之间共享状态变得容易。 React学习Day10 基本用法 安装&#xff1a;首先&#xff0c;你需要安装zustand库。 npm insta…

福昕PDF编辑器快速去除PDF水印方法

在福昕PDF编辑器软件中打开一个带有水印的PDF文件&#xff0c;点击如图下所示的页面管理->水印&#xff0c;点击全部移除 点击 是 水印消除&#xff08;注&#xff1a;部分类型的水印可以消除&#xff0c;但是有些类型的水印无法通过此方法消除&#xff09;

RockChip Android12 System之MultipleUsers

一:概述 System中的MultipleUsers不同于其他Preference采用system_dashboard_fragment.xml文件进行加载,而是采用自身独立的xml文件user_settings.xml加载。 二:Multiple Users 1、Activity packages/apps/Settings/AndroidManifest.xml <activityandroid:name="S…

基于STM32的智能水产养殖系统(四)

硬件原理 步进电动机 步进电动机&#xff08;Step Motor 或 Stepper Motor&#xff09;是一种将电脉冲信号转换成对应的角位移或线位移的电动机。与普通电动机不同&#xff0c;步进电动机每接收到一个脉冲信号&#xff0c;就会按设定的角度&#xff08;步距角&#xff09;转动…