4.8.3 vi、内置vi和子vi


      前面我们多次谈到vi、内置vi和子vi,它们之间有什么区别呢?

1、vi

Picture
这是一个例程
      严格的讲,通用类型vi(包括例程)和用户自行设计的通用类型vi统称为vi。但是在实际使用中,我们更习惯使用vi来称谓所有类型的vi,包括使用者自己设计的子vi。

      这样的称呼并没有什么不妥,大家习惯这样的称呼。可是要注意通用类型vi不能与其它vi进行数据交换,换句话说,它是可以独立运行的vi。参见例图。

      这样的例程它的输入、输出全部都呈现在前面板上,所以它没有定义“连接器”的连接形式。它无法实现静态调用,但是可以实现动态调用。关于静态调用和动态调用的概念我们将会在“vi的调用“(x.x.x)一节阐述。


2、内置vi

Picture
      在此之前,我们一直强调LabVIEW函数选板上的vi都是内置vi,现在我们要引申这个概念。其实LabVIEW开发环境中的vi.lib以及工具包所包含的一些vi,都是内置vi。

      所有的内置vi都是严格类型的vi,是图形化程序设计的基础构件之一。可以被静态调用。

      我们随便从vi.lib中打开一个vi,都会发现它们的“连接器”都是以定义好的。参见例图。尽管这些内置vi不会出现在函数选板上。

      注意:vi.lib是开发环境的底层库,对这些vi绝对不要进行改动,因为它们是大家(开发环境)共用的。如果需要改动可以重新命名并存储到user.lib中。


3、子vi

Picture
      子vi的特征是严格类型vi,可以被静态调用,所有内置vi也可以称为子vi。使用者自行设计的严格类型vi也是一种子vi。

      左图就是自行设计的子vi,它被放置在user.lib中。

      关于子vi的设计这里就不谈了,因为几乎每本有关LabVIEW的书籍中都会谈到。

      还有,LabVIEW的每个工具包都会有工具包自己的底层子vi库,这样就可以确保工具包是授权使用的(付费)。这样即使非授权用户获得了专有例程,因没有底层子vi的支持也无法运行。

      由于vi具有层次结构,所以一个vi中可能包含几十个甚至数百个子vi。



Picture
上一页
Picture
下一页

这里也可以留言,但是其他到访者将不会看到