6.Labview使用子vi进行VI间的数据传递详解(模块化)

本文通过讲解建立子VI的方式来进行VI间的数据传递方式。
大家可以将子VI理解为一个可以被调用的子程序,我们把某个程序中的一部分程序封装成一个模块以后就可以在其他的程序里边调用这一个模块

题注:
那么我们为什么要把子VI封装成一个模块呢?

因为我们在写一个大型程序的时候往往会出现在同一个程序中出现很多功能重复的时候,这样我们在写一个程序的时候因为重复的去叙述某一段程序反而会增加程序的负担使程序运行的速度减慢,在这种情况下使用子VI就可以很好的解决这一个问题,这样针对一个大型程序里面存在大量重复的程序的情况下就可以节省很多的程序空间。

子VI的使用

  • 1.什么是子VI
    • 1.1 子VI的定义
    • 1.2 如何创建子VI(理论)
      • 1.2.1 直接写程序保存为一个可以调用的VI
      • 1.2.2 将程序中的某一部分直接做成子VI
    • 1.3 如何使用子VI(实践)
  • 2. 子VI的应用场景及其拓展

1.什么是子VI

子VI(模块化) 题主在题注中也提到, 子VI的建立只是为了减少程序的负担,那么我们当使用子VI的时候首先就要明确什么是子VI ? 什么样的程序可以作为子VI?

1.1 子VI的定义

首先我们来看NI官方给的定义,具体说明如下图所示:

在这里插入图片描述

题主已经将重点画出来了,在官方的解释中将子VI定义为了模块化,大家可以看到创建模块化子VI的特点在于减少代码重复工作优化了程序的框架结构。
那么题主的解释就是: 把一个代码打包,需要的时候就拎出来让他处理处理,不需要的时候就让它躺在我的列表里就行了也不占用运行空间。
那么创建子VI需要需要注意以下几点:
①任何一个程序都可以作为子vi,只要是这个程序中有输入或输出控件就可以。
子VI应尽量避免有for循环和while循环的出现,因为只有子VI运行完成之后才能将数据输出出来。

1.2 如何创建子VI(理论)

那么我们该如何创建这个子VI呢,这里我提供了两种方式。

1.2.1 直接写程序保存为一个可以调用的VI

我们用Labview建立一个VI程序,将其保存在我们电脑内任意一个文件夹内以便于调用,举个例子:
第一步,下面我做了两个数值的和并得出他们的结果:
在这里插入图片描述
第二步,在前面板中选择我们此VI的接线方式和它的图标表达形式:
在这里插入图片描述
这两个方形的标识,左侧标识每一个方块都代表了一个控件,白色代表这个方块还没有连接任何一个控件,当这个方块儿连接好一个控件之后它的颜色就会随着控件的颜色而变化。
控件设计步骤:
用鼠标左键单击其中的一个白色方块,此时鼠标的外形会变化,然后将鼠标移至我们需要连接的那个控件上然后再次单击左键,这样控件就连接好了。我们将所有控件连接到方格中,如下图所示(一般将输入控件放在左侧一般将输出控件放在右侧):
在这里插入图片描述
上图方块中的三个橙色方形分别代表了我们上图中的两个输入和一个输出,正好和下图相匹配。控件连接好了之后,左侧方块也就完成了,那么右侧方块代表的是我们调用时这个子VI的外形外观。如果没有外观需求的话可以使用这个默认的,如果有外观的需求具体设计请看第三步。
在这里插入图片描述
我们双击右侧的方块,就会打开设计界面,该设计界面包含图中一部分文字设计和二部分图像设计,当我们在文字设计一项输入文字的时候图标上就会显示我们所需求的文字。
在这里插入图片描述
我们将右侧仪器的图标用黑框白底给抹掉,并在左侧输入我们的文字,点击确定后一个子VI就创建完成了。
在这里插入图片描述

1.2.2 将程序中的某一部分直接做成子VI

这种方式是在程序已经写好的前提下,发现程序中有部分程序是重复的, 那我们就将这一部分重复的程序选中然后将其保存为子VI,这就比较简单了。

为了便于大家理解,题主选择了一个比较简单的例子来说明

如下图所示,该程序中多次出现了两个数值相加的情况,在我们的一个程序中用鼠标左键拉动一个框选中一部分程序,
在这里插入图片描述
依次点击编辑 — 创建子VI,那么系统将会自动创建一个子VI并将线接好,此时我们直接双击子VI打开即可,则可以按照1.2.1中的方式来设置该子VI的外观等。创建完子VI的程序如下图所示:
在这里插入图片描述

1.3 如何使用子VI(实践)

大家由1.2中了解了是如何创建子VI的及其两种方式,那么本节我们将学习一下如何使用子VI。
我们打开程序的后面板,右键点击鼠标,会弹出函数选择界面,我们单击 “选择VI”
在这里插入图片描述
此时会弹出一个文件的选择界面,我们选择刚刚保存好的子VI,如下图所示:
在这里插入图片描述

2. 子VI的应用场景及其拓展

本节内容题主将尽快更新中,将选择几个比较有参考意义的实例来向大家说明子VI以帮助大家更好的强化一下对子VI的具体使用场景。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

C语言学习【C语言基本数据类型二】

C语言学习【C语言基本数据类型二】 _Bool类型 C99标准添加了_Bool类型,用于表示布尔值,即逻辑值true和false,原则上仅占用1位存储空间; float、double和long double 记数法示例 C标准规定,float类型必须至少能表示…

第33次CSP认证Q3:化学方程式配平

🍄题目描述 为了配平一个化学方程式,我们可以令方程式中各物质的系数为未知数,然后针对涉及的每一种元素,列出关于系数的方程,形成一个齐次线性方程组。然后求解这个方程组,得到各物质的系数。这样&#x…

免费SSL证书获取与部署教程

在互联网时代,HTTPS已成为网站安全的基石,为用户数据传输提供加密保障。免费SSL证书的出现降低了部署HTTPS的门槛,尤其对于个人网站、小微企业及测试环境而言,它们是理想的选择。本文旨在提供一份详尽指南,帮助您轻松获…

QLExpress入门及实战总结

文章目录 1.背景2.简介3.QLExpress实战3.1 基础例子3.2 低代码实战3.2.1 需求描述3.2.1 使用规则引擎3.3.2 运行结果 参考文档 1.背景 最近研究低代码实现后端业务逻辑相关功能,使用LiteFlow作为流程编排后端service服务, 但是LiteFlow官方未提供图形界面编排流程。…

穿越网络界限:探索NAT IPv4的神秘面纱

欢迎来到我的博客,代码的世界里,每一行都是一个故事 穿越网络界限:探索NAT IPv4的神秘面纱 前言NAT IPv4概述NAT IPv4的类型NAT IPv4的工作流程NAT IPv4的局限性和挑战 前言 在我们日常的网络使用中,我们或多或少都会遇到NAT&…

SAP:FI 财务凭证行项目文本前台修改

一、问题描述 财务凭证行项目文本点击修改,但是前台有的行可以修改,有的行是灰色的不能修改,如下图所示,这个文本信息有误,必须修改怎么办? 二、思路分析 有的行可以修改,有的行不能修改&#x…

【MySQL数据库】初步认识数据库,实现基本操作

在信息爆炸的今天,数据无处不在,它们构成了互联网世界的基石。但数据本身若未经有效组织和管理,就如同散落在沙滩上的珍珠,难以发挥其真正的价值。这时,“数据库”这一概念便如同一根线,将这些珍珠串联起来…

position:fixed无法固定到父盒子上面的解决方案

目录 问题如图所示: 下面是错误的代码: 解决方案1: 使用fixed固定定位固定到父元素: 解决方案2: 推荐使用的其他方案(粘性定位): 什么是粘性定位: 粘性定位的使用…

答辩PPT设计太耗时?aippt工具,AI一站式服务

这些网站我愿称之为制作答辩PPT的神! 很多快要毕业的同学在做答辩PPT的时候总是感觉毫无思路,一窍不通。但这并不是你们的错,对于平时没接触过相关方面,第一次搞答辩PPT的人来说,这是很正常的一件事。一个好的答辩PPT…

搞懂Docker(九)- 使用Docker Compose

获取示例程序 示例程序 或者 示例程序 获取示例程序程序结构如下├── getting-started-app/ │ ├── package.json │ ├── README.md │ ├── spec/ │ ├── src/ │ └── yarn.lock使用Docker Compose Docker Compose是一个帮助你定义和共享多容器应用程序的工具…

在线数据库设计工具drawDB

什么是 DrawDB ? DrawDB 是浏览器中强大且用户友好的数据库实体关系(DBER)编辑器。只需点击几下即可构建图表、导出 SQL 脚本、自定义编辑器等等,无需创建帐户。 软件特点: DrawDB 是完全免费的无需注册或登录。只需投…

19.接口自动化-Jekins学习

1.CI-持续集成 频繁的(一天多次)将代码集成到主干 目的:让产品快速迭代,保持高质量 好处: 快速发现错误,每次更新都集成到主干,可以快速发现错误,定位错误也容易防止分支大幅偏离主…

字符串取第一个空格之后的所有的值字符串取第一个空格之后的第二个元素的值,不要后面的值

当我们后端返回值可能存在某些特定的值或标识导致返回数据不固定且是空格分割时,我们想取出返回字符串中的某个值,就可以参考下面对这个字符串进行操作提取,当然,如果是别的符号分割开的把下面的空格替换即可 1、字符串取第一个空…

C语言笔记14

指针1 在C语言中给内存单元的编号起了个名字叫做指针,通俗来说就是地址。(内存单元编号地址指针) 1.指针变量与地址 int a10; int* p&a; * 说明了这里p的是指针变量;int*说明p是一个整形指针&…

SpringBoot 实现对提供的接口进行 AES (加密,解密)

业务来源: 最近工作中,领导要求给别的项目组的小伙伴提供几个接口,要求对接口的参数进行解密操作,然后对返回的数据进行加密操作。 这时我想到了AES AES 是对称加密算法,优点:加密速度快;缺点…

生产环境磁盘变更方案

datanode磁盘扩容(1人天) 扩容磁盘 1.1 扩容前检查、新盘初始化 确定block副本统计正常,无丢块,无under-replicated 块 后台执行命令检查 hdfs dfs fsck / 无异常可进行以下步骤进行磁盘扩容 新盘初始化 ##格式化新盘,命令示例: mkfs.xfs /dev/sdc##挂载新盘,命令示…

哔哩哔哩直播通用榜单系统

榜单系统的定位和业务价值 榜单遍布B站直播相关业务的各个角落,直播打赏、直播间互动、付费玩法、互动玩法、活动、主播PK、语聊房、人气主播排名、高价值用户排名、增值集卡、up主充电等等,在这众多的业务场景中,我们能看到各种各样的榜单。…

Allegro如何输出各层PCB视图的PDF文件

如何输出各层PCB视图的PDF文件 1、说明 用Allegro设计好PCB后,有时需要出各层的PDF文档出来进行汇报和展示,这时就需要将各层的平面视图全部以PDF的形式加载出来,具体方法如下。 2、PDF文件的输出方法(以四层板为例) …

网上跳蚤市场|基于SSM+vue的网上跳蚤市场系统的设计与实现(源码+数据库+文档)

网上跳蚤市场系统 目录 基于SSM+vue的网上跳蚤市场系统的设计与实现 一、前言 二、系统设计 三、系统功能设计 1系统功能模块 2后台登录模块 5.2.1管理员功能 5.2.2会员功能 四、数据库设计 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐 八…

如何内网穿透,远程访问内网设备

文章目录 0.前言1.准备工作2.内网穿透原理3.配置公网服务器的frp5.配置访问内网主机6.配置win10的远程桌面访问(win11类似)7.参考资料 0.前言 最近想研究一些新东西,公司的机器不敢乱搞,公司测试的服务器安装软件太多&#xff0c…