Mcgs屏幕脚本程序

news2024/11/17 16:17:51

目录

  • 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.coloradmin.cn/o/1838848.html

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

相关文章

uniapp运行到模拟器(联想模拟器)

记录一下uniapp项目运行到联想模拟器的流程 先配置一下模拟器端口 填写对应的adb路径&#xff0c;也就是模拟器安装路径下的adb.exe的路径 然后打开模拟器的设置&#xff0c;搜索版本找到版本号&#xff0c;多次点击打开开发者模式 进入开发者选项&#xff0c;打开USB调试 …

睿治数据治理平台焕新升级,推出全新建模与调度平台

在数据治理的浩瀚征途中&#xff0c;企业常常面临着数据冗余如同连绵山峦&#xff0c;使得关键信息的获取变得困难重重&#xff1b;在数据检索的海洋中&#xff0c;有时迷失方向&#xff0c;消耗大量时间精力&#xff0c;严重影响了运营效率&#xff1b;特别是在处理大规模数据…

开辟一个存储空间以存放一个结构体数据

在软件开发中&#xff0c;常常需要动态地分配和撤销内存空间&#xff0c;例如对动态链表中结点的插入与删除。在C语言中是利用库函数malloc和free来分配和撤销内存空间的。C提供了较简便而功能较强的运算符new和delete 来取代malloc和free函数。注意&#xff1a;new和delete是运…

一次完整的web渗透测试(文件上传getshell)

一、背景 日常空闲事件会进行一些公益SRC的挖掘&#xff0c;今天也是空闲&#xff0c;摸鱼有点浪费时间&#xff0c;那就拿几个公益SRC练练手&#xff08;有waf的我会直接跳过&#xff0c;毕竟没钱去挂代理&#xff09;。上号&#xff01; 二、测试过程 2.1、目录扫描 先给…

Webmin在EPICS IOC启动中的应用

本文使用webmin启动远程工控机中的EPICS IOC&#xff0c;受控设备使用PI公司的六轴台以及相应的控制器C-887&#xff1a; 1&#xff09;控制器C-887 2) 六轴台&#xff1a; 3&#xff09;在工控机上安装用于与C-887控制器进行通信的EPICS IOC程序&#xff0c;安装结束后&#…

哪个城市的Delphier最多?Delphier平均年龄多大了?

先来看看哪个城市的Delphier最多&#xff1a; 北上广深不是白叫的&#xff0c; 大家想换工作&#xff0c;就去这些大城市&#xff0c;机会多。 有人会觉得奇怪&#xff0c;怎么才这么几个人&#xff1f; 因为以上数据统计基数为2000人&#xff0c; 根据微信公众号和QQ群得出…

基于jeecgboot-vue3的Flowable流程-业务表单

因为这个项目license问题无法开源&#xff0c;更多技术支持与服务请加入我的知识星球。 这个部分主要讲自定义业务表单的流程关联 1、挂接关联流程对话框代码 <!--挂载关联流程--><a-modal cancel"flowOpen false" :title"flowTitle" v-model:…

Linux系统:线程互斥

Linux系统&#xff1a;线程互斥 线程互斥互斥锁 mutex互斥锁原理 常见的锁死锁自旋锁 spinlock其它锁 线程互斥 讲解线程互斥前&#xff0c;先看到一个抢票案例&#xff1a; class customer { public:int _ticket_num 0;pthread_t _tid;string _name; };int g_ticket 10000…

酒店宾馆民宿预订管理系统(ThinkPHP+uniapp+uView)

便捷高效&#xff0c;轻松管理你的住宿预订&#x1f3e8; 基于ThinkPHPuniappuView开发的多门店民宿酒店预订管理系统&#xff0c;快速部署属于自己民宿酒店的预订小程序&#xff0c;包含预订、退房、WIFI连接、吐槽、周边信息等功能。​​ 一、引言&#xff1a;为何需要民宿…

安卓手机数据快速找回!2个视频恢复大师,助你还原视频

我们的手机成为了储存信息的海洋。但与此同时&#xff0c;也带来了一个不容忽视的问题&#xff1a;一旦手机中的视频资料丢失&#xff0c;我们该如何高效地找回呢&#xff1f;现在很多程序都能够有效地找回手机视频&#xff0c;本文将为您揭示这些视频恢复大师的神奇能力&#…

家用洗地机哪个好?选对洗地机,还你一个清爽的家,快来抄作业!

能够带来高效生活的洗地机已经成为现代家庭清洁的首选。如果你还在犹豫的话&#xff0c;不妨看看这篇文章&#xff0c;让我来带你感受科技清扫的魅力&#xff0c;轻松扫净灰尘污渍&#xff0c;重拾家居整洁。洗地机&#xff0c;不只清洁&#xff0c;更是一种高品质生活态度的选…

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

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

大学物理绪论组收集和分析

目录 ​编辑 随机误差的估计 算术平均值的标准偏差 不确定度&#xff08;Uncertainty&#xff09;是测量学中的一个重要概念&#xff0c;用于表示测量结果的可靠程度。它反映了测量值可能偏离真值&#xff08;即被测量的客观真实值&#xff09;的程度。 A类不确定度的计算方…

访问0xdddddddd内存地址引发软件崩溃的实战问题排查

目录 1、问题描述 2、访问空指针或者野指针 3、C程序中常见的异常内存值 4、0xdddddddd内存访问违例问题分析与排查 4.1、初步分析 4.2、CConfMeidaConfigDlg窗口类对象是何时被销毁的&#xff1f; 4.3、为啥会访问到已经释放内存的CConfMeidaConfigDlg类对象&#xff1…

centOS Stream9配置NAT8网络

首先将VMware关机&#xff0c;添加网络适配器 启动虚拟机&#xff0c;查看ens192是否打开连接 安装的图形化需要查看右上角电源处网卡是否连接 最小化安装一般不会出现未连接的状态 使用ip a 查看 配置网卡文件 cd /etc/NetworkManager/system-connections/cd到当前目录下…

四维世景产品及研发部副总经理张静普受邀为第十三届中国PMO大会演讲嘉宾

全国PMO专业人士年度盛会 四维世景科技&#xff08;北京&#xff09;有限公司产品及研发部副总经理张静普先生受邀为PMO评论主办的2024第十三届中国PMO大会演讲嘉宾&#xff0c;演讲议题为“项目管理中的数字化实践及应用”。大会将于6月29-30日在北京举办&#xff0c;敬请关注…

C++11(下):线程库

线程库 1.线程1.1线程类介绍以及简单使用1.2线程函数参数1.3如何获取线程函数返回值 2.锁2.1锁的种类2.2 lock_guard与unique_lock 3.原子库3.1介绍与基本使用3.2CAS&#xff08;原子操作原理&#xff09; 4.条件变量 1.线程 1.1线程类介绍以及简单使用 在C11之前&#xff0c…

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目录中进行了产…

NSSCTF-Web题目10

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

Ubuntu下FastDDS的源码编译和简单测试

FastDDS是eprosima公司开发的DDS&#xff08;Data Distribution Service&#xff09;库&#xff0c;使用的语言是C&#xff0c;自称是"The Most Complete Open Source DDS Middleware"&#xff0c;其官网是https://eprosima.com/&#xff0c;FastDDS源码在https://gi…