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

2024-04-16 10:36
文章标签 labview 变体

本文主要是介绍4.Labview簇、变体与类(上),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

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

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

簇、变体与类的讲解

  • 一、簇
    • 1.1 簇简介
    • 1.2 几种常用簇
    • 1.3 簇的函数
  • 二、变体
    • 2.1 什么是变体?
    • 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之间的传递等,由于类的用法较多且相对复杂,考虑在基础阶段大家用到的频率很低很低,所以下一章节中,类作为选看文章给大家讲解用法,本系列文章将在下一篇文章中单独详细讲解类的用法,感谢大家本期的收看,欢迎大家是剖藏加关注查看文章的实时更新。

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

这篇关于4.Labview簇、变体与类(上)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/908557

相关文章

跨系统环境下LabVIEW程序稳定运行

在LabVIEW开发中,不同电脑的配置和操作系统(如Win11与Win7)可能对程序的稳定运行产生影响。为了确保程序在不同平台上都能正常且稳定运行,需要从兼容性、驱动、以及性能优化等多个方面入手。本文将详细介绍如何在不同系统环境下,使LabVIEW开发的程序保持稳定运行的有效策略。 LabVIEW版本兼容性 LabVIEW各版本对不同操作系统的支持存在差异。因此,在开发程序时,尽量使用

LabVIEW FIFO详解

在LabVIEW的FPGA开发中,FIFO(先入先出队列)是常用的数据传输机制。通过配置FIFO的属性,工程师可以在FPGA和主机之间,或不同FPGA VIs之间进行高效的数据传输。根据具体需求,FIFO有多种类型与实现方式,包括目标范围内FIFO(Target-Scoped)、DMA FIFO以及点对点流(Peer-to-Peer)。 FIFO类型 **目标范围FIFO(Target-Sc

【LabVIEW学习篇 - 21】:DLL与API的调用

文章目录 DLL与API调用DLLAPIDLL的调用 DLL与API调用 LabVIEW虽然已经足够强大,但不同的语言在不同领域都有着自己的优势,为了强强联合,LabVIEW提供了强大的外部程序接口能力,包括DLL、CIN(C语言接口)、ActiveX、.NET、MATLAB等等。通过DLL可以使用户很方便地调用C、C++、C#、VB等编程语言写的程序以及windows自带的大

LabVIEW程序员是怎样成长为大佬

成为一名LabVIEW编程领域的“大佬”需要时间、实践、学习和解决复杂问题的经验。尽管LabVIEW作为一种图形化编程语言在初期可能相对容易上手,但要真正成为精通者,需要在多个层面上深入理解。以下是LabVIEW程序员如何逐步成长为“大佬”的路径: 1. 打好基础 LabVIEW的大佬们通常在初期会打下非常坚实的基础,理解LabVIEW编程的核心概念,包括: 数据流编程模型:Lab

LabVIEW环境中等待FPGA模块初始化完成

这个程序使用的是LabVIEW环境中的FPGA模块和I/O模块初始化功能,主要实现等待FAM(Field-Programmable Gate Array Module,FPGA模块)的初始化完成,并处理初始化过程中的错误。让我们逐步分析各部分的功能: 1. Wait for FAM Initialization框架 此程序框架用于等待I/O模块成功初始化。如果在5秒钟内模块没有完成配

LabVIEW开发FPGA方法与FIFO数据丢失处理

开发基于NI 7975R FPGA的系统涉及一系列流程,包括驱动安装、LabVIEW项目设置、开发调试、编译和与Windows系统的通信。重点在于FIFO的正确配置,避免数据丢失是关键环节之一,尤其是在使用高速数据流传输时。以下将详细介绍这些过程,并重点讨论FIFO数据丢失的原因与解决方案。 FPGA开发流程 驱动安装与工具准备:开发FPGA需要安装LabVIEW FPGA模块以及N

LabVIEW软件,如何检测连接到的设备?

在LabVIEW软件中,检测连接到的设备通常是通过NI提供的硬件驱动和相关工具来完成的。以下是几种常见的检测设备的方法: 1. 使用NI MAX(Measurement & Automation Explorer) 打开NI MAX:LabVIEW设备管理通常通过NI MAX完成,打开NI MAX后,你可以查看系统中所有连接的NI硬件设备。识别设备:在“设备和接口”下,NI MAX会列出所

如何学好LabVIEW开发

学习LabVIEW开发的关键在于打好基础、科学规划和实践结合。正如房屋装修一样,底层结构的稳固决定了项目的可持续发展。通过网络视频系统学习并结合实际项目不断练习,是掌握LabVIEW技能的有效途径。此外,提前规划和养成良好的开发习惯,可以避免后期维护和修改时的痛苦。 正文: 在学习LabVIEW开发的过程中,很多人会问到如何开始学习,有时甚至需要参加培训课程。如今,随着网络资源的丰富,

走迷宫变体【拼多多1面0905】

题目大致描述: 有一个N*M的迷宫,主角被放在随机的位置上,给你一个函数,控制主角逃离迷宫。 可以使用的函数:int move(String direction) (//direction代表上下左右四个方向,分别是“U"、“D"、“L"、“R"//返回值有3种,包括-1、0、1;-1表示前面是陷阱或墙,主角不能往前走,会留在原地;0表示迷宫出口,恭喜成功逃离;1表示前面可以走,主角前进一格)

串口与Labview通讯的调试

在学习Labview和串口的通讯和调试的时候。首先必须先了解一些Labview的基础知识,然后就是了解串口,在调试的过程中,我们需要下位机来辅助我们的程序编写与调试,也就是我们平时使用的单片机,如果没有单片机也不要紧,可以使用虚拟串口来把电脑的串口相连接,这样也可以达到我们的预期效果 工欲善其事,必先利其器 让我们先来做一些准备工作 在这里可以把两个虚拟的串口相连接,在上图的左边,可以看到我