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

在Labview中,何为簇与变体,何为类?应该如何理解?具体有什么应用场景?

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

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

簇、变体与类的讲解

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

一、簇

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

1.1 簇简介

簇的作用是什么呢? 根据题主经验,我认为一般用来归纳各数据类型,比如我们将许多数据类型,字符串、数值、数组很多条线在VI间传来传去,显得杂乱不堪。但是有了簇以后,我们可以将这些控件整理为一个簇类控件 ,在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之间的传递等,由于类的用法较多且相对复杂,考虑在基础阶段大家用到的频率很低很低,所以下一章节中,类作为选看文章给大家讲解用法,本系列文章将在下一篇文章中单独详细讲解类的用法,感谢大家本期的收看,欢迎大家是剖藏加关注查看文章的实时更新。

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

相关推荐
江畔柳前堤1 天前
roLabelImg 详细安装教程
开发语言·人工智能·后端·云原生
阿里云大数据AI技术1 天前
分链路差异化设计的DSP准实时数仓|钛动科技基于阿里云实时计算 Flink 版 + DLF Paimon + EMR Serverless StarRocks 的实践
人工智能·flink
陕西企来客1 天前
2026年7月AI智能搜索曝光趋势研判
大数据·人工智能·机器学习·ai智能搜索曝光
阿里云大数据AI技术1 天前
从算力到智能体,面向 Agentic AI 的基础设施演进
人工智能·agent
hangyuekejiGEO1 天前
GEO技术服务选型指南
大数据·人工智能·python
阿里云大数据AI技术1 天前
EMR Serverless Spark AI Function 的双维降本实践
人工智能·sql·spark
维基框架1 天前
GitHub源码处理提速 一趟扫描反而更慢
人工智能·github
冬奇Lab1 天前
代码库知识库系列(05):向量检索 vs 知识图谱——加了调用图并没有变更好
人工智能
AKAMAI1 天前
你的源服务器可能是你做出的最昂贵决定
运维·人工智能·云计算
冬奇Lab1 天前
【无标题】
人工智能·开源