4.8.2 VI的类型
1、VI类型的介绍
在前面的介绍中我们曾提到过vi的类型(见4.3),关于vi类型的概念是在涉及到vi的动态调用时,才了解到vi分成通用类型和严格类型这样的说法,见例图中的说法。但是对vi类型的定义和说明确没有任何资料可寻。
为了解答这个问题我们先后分析了大量的vi和例程,慢慢地好像有些明白这两种vi的不同之处。
在分析vi和例程中我们发现,在一些例程中并没有定义vi的“连接器“。
为了解答这个问题我们先后分析了大量的vi和例程,慢慢地好像有些明白这两种vi的不同之处。
在分析vi和例程中我们发现,在一些例程中并没有定义vi的“连接器“。
2、通用类型vi
为了更清楚的讨论这个问题,以LabVIEW开发环境中提供的一个例子来进一步说明。该例程可以通过“NI范例查找器”在路径为:硬件输入输出 /信号分析和处理/FFT和频率分析/Advanced Harmonic Analyzer Measurement.vi下获得。它的程序框图和前面板图见下图。
这是一个独立的VI(或者称为:例程),因为它没有定义“连接器”所以它不能和其它vi进行直接的数据交换(可以通过全局变量来传递数据),但是它可以独立作为一个程序运行,通常在导入时就将前面板打开。
从“Advanced Harmonic Analyzer Measurement.vi”的程序框图可以看到,它是由3个子vi组成的。它到底是什么类型的VI呢?从vi的“三件套”来看,它只有“连线板”没有进行过任何定义,那么应该是属于通用类型VI。对这样的vi也可以实现动态调用。现在我们把这样的没有定义“连接器”的vi称为通用类型vi。通常的例程都是通用类型vi。那么严格类型的vi又是什么样的呢?
从“Advanced Harmonic Analyzer Measurement.vi”的程序框图可以看到,它是由3个子vi组成的。它到底是什么类型的VI呢?从vi的“三件套”来看,它只有“连线板”没有进行过任何定义,那么应该是属于通用类型VI。对这样的vi也可以实现动态调用。现在我们把这样的没有定义“连接器”的vi称为通用类型vi。通常的例程都是通用类型vi。那么严格类型的vi又是什么样的呢?
3、严格类型vi
我们还是先来看看一个例子,以“Advanced Harmonic Analyzer Measurement.vi”例程框图中的“Create Test Signal"vi为例,看看它的“三件套”是什么样的?
它的“连线板”是被明确定义过的,所以它应该属于严格类型vi。严格类型vi就是可以被其它vi调用的vi(静态链接子vi)。严格类型的vi能够和其它vi通过连接板的定义与其进行直接的数据交换,既可以独立运行也可以作为子vi使用。
严格类型vi就是我们通常所说的子vi。LabVIEW开发环境中函数选板上提供的内置vi都是严格类型vi。当然,还不止这些,还包括在LabVIEW路径下vi.lib中的vi;还包括各种工具包提供的子vi 。
严格类型vi就是我们通常所说的子vi。LabVIEW开发环境中函数选板上提供的内置vi都是严格类型vi。当然,还不止这些,还包括在LabVIEW路径下vi.lib中的vi;还包括各种工具包提供的子vi 。




