4.Labview簇、变体与类(上)

在Labview中,何为簇与变体,何为类?应该如何理解?具体有什么应用场景?
本文基于Labview软件,独到的讲解了簇与变体与类函数的使用方法和场景,从理论上讲解其数据流的底层概念,从实践上建立函数的使用规范及应用场景。

本文介绍簇、变体与类的函数使用和具体使用场景。具体内容分区请大家查看目录。

簇、变体与类的讲解

  • 一、簇
    • 1.1 簇简介
    • 1.2 几种常用簇
    • 1.3 簇的函数
  • 二、变体
    • 2.1 什么是变体?
    • 2.2 变体的用法
  • 三、类

一、簇

== 可以称为杂物收纳盒 == 簇这个东西,在Labview中往往是把他拿来和数组进行对比的,他们两个是有相同之处的。
相同之处: 二者皆为数据的容器,顾名思义就是把很多数据放到这一个小容器里面。
不同之处: 可以认为同一个数组内部存放的是相同的数据,比如只放数值、只放字符串;但是同一个里面可以多种类型的参数,比如可以一个容器中放入数值、字符串、数组等。关于数组的函数使用,因为之前详细讲过一次,本章不做具体讲解,大家可以点击链接查看之前有关数组的讲解:
1.【Labview白话系列】Labview数组精讲链接

1.1 簇简介

簇的作用是什么呢? 根据题主经验,我认为一般用来归纳各数据类型,比如我们将许多数据类型,字符串、数值、数组很多条线在VI间传来传去,显得杂乱不堪。但是有了簇以后,我们可以将这些简单介绍一下,上面说过,就是相当于很多数据类型的集合,这里说一下怎么使用,前面板右键,选择数据容器后点击簇,放置在前面板,此时就建立好簇的容器了,然后就可以直接建立数值、字符串等的控件将其拖放进去,如下图所示的:
在这里插入图片描述
这里需要注意的是:簇里面的数据是有顺序的! 并且簇里面数据的顺序和我们放入簇的顺序有关,即先放入的顺序是0,其次是1,2…这个顺序关系到我们使用簇时,索引簇内部的某个数据类型使用的。那么当我们需要调整簇内部某个控件的位置时,我们可以右键单击簇选择“重新排序簇中控件”的方式来调整簇内的控件顺序,具体顺序标号会在簇内部的控件右下角显示。
在这里插入图片描述

1.2 几种常用簇

簇的方式可以建立很多种,大家都知道簇是可以添加好多种不同样的控件的,比如大家最熟知的“错误簇”,里面就包含了布尔、字符串、数值等控件的集合,那么簇怎么使用呢,这里告诉大家,建立簇是整个过程中最重要的一个环节,因为簇在后期调用时需要了解建立的这个簇的特性,比如内部控件的排序啊、控件的类型啊等等,那么题主列举几种建立的常用簇的方式。

  1. 前面板使用容器生成: 1.1中讲解了这种方式,这里需要强调一个注意的点,就是 控件的输入和输出类型是随着簇的类型改变的,且二者一致,也就是说,如果将一个显示控件放在输入簇中,那么该簇中的这个控件会自动转化为输入控件。
  2. 使用捆绑方式创建簇:
    将多个控件捆绑到一个簇类控件中,即可生成新的输出簇,该方式在编程中使用较多,往往在VI间传递时,将多个控件打包成簇,放入子VI中,仅需要建立一个接口就可以将所有控件传入子VI了。
    捆绑创建的簇如下图所示:
    在这里插入图片描述
  3. 建立严格类型的簇: 这一部分,如果大家基础还没打好可以不用学,因为这是后期编程用到的技巧,如果能看懂最好。这里就需要将簇的内部的控件类型定义为严格类型,就可以创建这类簇了,那么这种严格类型的簇有什么用处呢?可以说将簇定义为严格类型后,当簇内部的控件发生变化时,如果在多个VI中都调用了这个簇,那么所有控件都会自动改变而无需我们手动更改。 ,建立方式如下:
    ①首先在该位置右键创建一个输入簇;
    ②右键选择制作自定义类型;
    ③右键选择打开自定义类型;
    ④在上方选择框中选择严格自定义类型;
    ⑤点击文件 — 应用改动,并将该自定义类型保存在任意文件夹中以便于后期调用。
    ⑥将该簇连接到①的位置,就算是改完了。
    在这里插入图片描述
    那么该簇保存在电脑中,我们如果建立子VI时,那么可以直接在子VI的后面板右键,点击“选择VI”,将该簇放置在子VI面板中即可。当主VI的簇变化时,那么该子VI中调用的该簇也随着变化,很方便。

1.3 簇的函数

簇的函数,包括以下几种:

  1. 创建簇数组: 顾名思义,把现在的簇作为数组的一个元素,组成数组,也就是说数组中的每一个元素都是一个簇,是不是很好理解。 在这里插入图片描述

  2. 索引与捆绑簇数组: 就是将数组组成簇以后,再将这个单个簇作为数组的一个元素,展现出来。这里要说明的是,输入的所有数组的维数要完全相同。
    在这里插入图片描述

  3. 数组至簇转换/簇至数组转换: 就是将数组转换为簇,簇转换为数组,这个函数还是比较矫情的,簇转换为数组的时候,必须要求簇内部的控件是同种类型的,数组转换为簇的时候也必须要求数组为一维数组。

在这里插入图片描述

二、变体

2.1 什么是变体?

变体出现的场景是什么样的呢?如下:
在我们使用Labview在程序框图上连线时,必须相同类型或者能强制相互转换的类型端口才能连接在一起,例如我们不能将一个数值型的控件连接到布尔型的控件上,也不能将一个数组类型的控件连接到簇类型的控件上。但是,有时候我们需要设计的子程序具有更强大的灵活性,在一个连接端口上能接入不同的数据类型,在程序内部能自动识别其原始的实际数据类型,然后分别进行不同的处理,这时候变体数据(Variant data)类型就派上用场了。
在labview中,大家可以将变体理解为一个通用的数据类型,它与数值、字符串等的是同一级别且可以将其互相转换。
在这里插入图片描述

2.2 变体的用法

上面提到,变体可以作为任何数据类型的转换形式,所有数据类型都可以将接口连接至变体上,可以说是 “一口多用” ,下图前三个图是变体函数的子vi和后一张图主函数调用的程序,在选择要将变体转换为什么格式之后,就可以将任何数据类型的变体转换了。本文最后提供该函数的程序下载地址。
在这里插入图片描述

三、类

由于类这一特征常用在项目中,一般用于建立VI之间的数据互通,数据传输等。涉及项目、VI之间的传递等,由于类的用法较多且相对复杂,考虑在基础阶段大家用到的频率很低很低,所以下一章节中,类作为选看文章给大家讲解用法,本系列文章将在下一篇文章中单独详细讲解类的用法,感谢大家本期的收看,欢迎大家是剖藏加关注查看文章的实时更新。

本文讲解了簇函数及变体的用法,希望大家巩固并多多实践,从大量工程实践中深入了解该内容的具体用法,如有不全面或者其他问题,题主欢迎大家评论或私聊联系。 本期就到这里,感谢大家的收看。更多文章请查看题主首页搜索。

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

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

相关文章

汽车维修类中译英的英语翻译

近年来,随着全球化的加速和汽车市场的不断扩大,汽车维修领域的交流与合作也日益频繁。汽车维修类中译英的英语翻译在汽车行业中扮演着至关重要的角色。那么,针对汽车维修类翻译,中译英的英语翻译有何技巧? 业内人士指出…

Linux 系统解压缩文件

Linux系统,可以使用unzip命令来解压zip文件 方法如下 1. 打开终端,在命令行中输入以下命令来安装unzip: sudo apt-get install unzip 1 2. 假设你想要将zip文件解压缩到名为"target_dir"的目录中,在终端中切换到目标路…

C#/.NET/.NET Core拾遗补漏合集(24年4月更新)

前言 在这个快速发展的技术世界中,时常会有一些重要的知识点、信息或细节被忽略或遗漏。《C#/.NET/.NET Core拾遗补漏》专栏我们将探讨一些可能被忽略或遗漏的重要知识点、信息或细节,以帮助大家更全面地了解这些技术栈的特性和发展方向。 GitHub开源地…

Java中的单元测试Junit框架

单元测试 概述与以往的测试比较 Junit框架快速入门优点测试步骤断言机制 自动化测试 Junit框架常见注解 概述 针对最小的功能单元(方法),编写测试代码对其进行正确性测试 与以往的测试比较 只能在main方法编写测试代码,去调用其…

Python实现PDF页面的删除与添加

在处理PDF文档的过程中,我们时常会需要对PDF文档中的页面进行编辑操作的情况,如插入和删除页面。通过添加和删除PDF页面,我们可以增加内容或对不需要的内容进行删除,使文档内容更符合需求。而通过Python实现PDF文档中的插入和删除…

微服务学习 Eureka注册中心

服务调用时候出现问题,当服务者很多时候,比如不同的端口。消费者如何找到服务者的地址?又如何判断服务者是否健康。 Eureka基本原理: 总结:如果有多个服务提供者,消费者该如何选择? 搭建Eureka注册中心: 1.…

LeetCode-72. 编辑距离【字符串 动态规划】

LeetCode-72. 编辑距离【字符串 动态规划】 题目描述:解题思路一:动规五部曲解题思路二:动态规划【版本二】解题思路三:0 题目描述: 给你两个单词 word1 和 word2, 请返回将 word1 转换成 word2 所使用的最…

找出mongodb的jumbo块并进行分裂

https://www.cnblogs.com/abclife/p/15968628.html 根据这篇文档中的脚本,在我们自己的环境中跑了下,第一次跑的结果如下: 运行完上面跑出的split脚本后,还是存在jumbo块,第二次跑出的结果: 从上面结果可以…

PostgreSQL15 + PostGis + QGIS安装教程

目录 下载1、PostgreSQL安装1.1、环境变量配置 2、PostGIS安装2.1、安装插件 3、QGIS下载3.1、安装3.2、测试 下载 PostgreSQL15安装:下载地址 PostGIS安装:下载地址(倒数第二个) 1、PostgreSQL安装 下载安装包之后一直点下一步…

Python 版分布式消息队列 Kafka 实现图片数据传输

1、Kafka 介绍 在使用 Kafka 之前,通常需要先安装和配置 ZooKeeper。ZooKeeper 是 Kafka 的依赖项之一,它用于协调和管理 Kafka 集群的状态。 ZooKeeper 是一个开源的分布式协调服务,它提供了可靠的数据存储和协调机制,用于协调…

清远某国企IBM服务器Board故障上门维修

接到一台来自广东清远市清城区某水利大坝国企单位报修一台IBM System x3650 M4服务器无法开机的故障,分享给大家,同时也方便有需要的朋友能及时找到我们快速解决服务器问题。 故障服务器型号:IBM System x3650 M4 服务器使用单位:…

厂区3D全景线上漫游体验突破现实时空阻碍

智慧园区,作为现代城市发展的重要引擎,其管理效率和安全监控的需求日益凸显。而720VR全景展示技术的引入,无疑为智慧园区的建设注入了新的活力。通过360全空间无死角的视觉展示,用户可以身临其境地感受园区的每一个角落&#xff0…

记账本|基于SSM的家庭记账本小程序设计与实现(源码+数据库+文档)

家庭记账本小程序目录 基于SSM的家庭记账本小程序设计与实现 一、前言 二、系统设计 三、系统功能设计 1、小程序端: 2、后台 四、数据库设计 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐 八、源码获取: 博主介绍:✌️大…

【opencv】示例-imagelist_reader.cpp 读取YAML格式文件中的图片列表,并逐个显示这些图片的灰度图...

这段代码的功能是使用OpenCV库读取一个YAML或XML格式文件中的图片列表,并且逐个地在窗口中以灰度图像的形式显示这些图片。用户可以按任意键来查看下一张图片。程序提供了帮助信息输出,指导用户如何使用该程序。此外,它使用命令行参数解析器来…

(文章复现)考虑网络动态重构的分布式电源选址定容优化方法

参考文献: [1]朱俊澎,顾伟,张韩旦,等.考虑网络动态重构的分布式电源选址定容优化方法[J].电力系统自动化,2018,42(05):111-119. 1.摘要 以投资周期经济收益最高为目标,基于二阶锥规划提出了一种考虑网络动态重构的分布式电源选址定容优化方法。首先&am…

毅四捕Go设计模式笔记——责任链模式

责任链模式(Chain of Responsibility Pattern) 为了解决什么问题? 责任链模式的目的是为了将请求的发送者和接收者解耦。它允许多个处理器都有机会处理请求,将这些处理器连接成一条链,并沿着这条链传递请求&#xff…

Linux磁盘空间问题排查记录

问题 pip install时总提示OSError(28, ‘No space left on device’)或者ERROR: Could not install packages due to an OSError: [Errno 28] No space left on device 分析 很明显,磁盘空间不足。尝试了以下方法,没有解决问题: 清理pip缓…

给现有rabbitmq集群添加rabbitmq节点

现有的:10.2.59.216 rabbit-node1 10.2.59.217 rabbit-node2 新增 10.2.59.199 rabbit-node3 1、分别到官网下载erlang、rabbitmq安装包,我得版本跟现有集群保持一致。 erlang安装包:otp_src_22.0.tar.gz rabbitmq安装包&#xff1…

详解App Inventor 2 中的文件作用域(作用范围):App、程序包、缓存、兼容、私有、共享

本文内容来自中文网文档“文件管理器”组件部分,详细介绍了每一种文件作用域的特点及用法。 下面是每种作用域类型的简述: App [推荐] :Android 2.2及更高版本上文件将从应用程序特定存储中读取和写入,在 Android 早期版本上&…

STM32—DMA直接存储器访问详解

DMA——直接存储器访问 DMA:Data Memory Access, 直接存储器访问。 DMA和我们之前学过的串口、GPIO都是类似的,都是STM32中的一个外设。串口是用来发送通信数据的,而DMA则是用来把数据从一个地方搬到另一个地方,而且不占用CPU。…