本文通过讲解建立子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的具体使用场景。