LabVIEW子VI与VI的层次结构

2015-08-07 12:38:40   来源:vihome   

关键字: LabVIEW  VI  层次结构

例2-1是我们创建的第一个VI,也是一个极其简单的VI。其实在图形化语言中,最经常使用的是子VI。子VI类似于文本语言中的子程序。
在图形化语言中,子VI是提供给其它VI使用的VI,子VI可以实现与调用VI之间的数据交换。子VI除了可以被其它VI使用外,它的另一个作用就是简化程序框图。对于一个复杂的程序框图可以通过创建多个子VI来进行化简。

子VI是模块化程序设计的基础和主要部件。子VI使得程序易于调试、理解和维护。所以理解和创建子VI是构建VI的基础。

LabVIEW函数选板上所提供的内置VI都属于子VI。这些内置VI是LabVIEW开发环境所提供的,安装LabVIEW后即可获得。除此之外,我们还可以创建适合自己使用的子VI。
2.5.1 创建子VI
 
创建子VI有两种方法,一是通过创建一个新VI来实现;另一个是从现有的VI中提取部分代码构成一个子VI。

我们通过一个滤波器的设计来介绍第一种方法,创建一个适合自己使用的子VI。

例2-2 理想滤波器
滤波器是信号处理中比较常用的部件,在实际工程应用中也常常用到。一般情况下,我们可以选择LabVIEW所提供的滤波器内置VI。在LabVIEW的函 数选板中,选择:》信号处理》滤波器可以看到多种滤波器内置VI,包括高级IIR滤波器和高级FIR滤波器供我们在设计中使用,参见下图。
Picture
图 2-14 LabVIEW所提供的滤波器内置VI
我们在电动式振动台的测试项目中,需要准确测试振动加速度的峰值,可是在实际的加速度信号中往往包含许多谐波分量,从而导致无法准确的测量出加速度的峰 值。为了解决这个问题,最好的办法是就是对加速度信号进行滤波处理。使用上述滤波器内置VI可以实现滤波处理,但是我们担心滤波后信号的幅度和相位是否会 发生改变。也就是说,滤波器的幅频特性和相频特性是否真正会令我们满意。其实,我们只是期待能够提取加速度信号的基波分量,并不关心其它分量的信息。那么 有没有这样仅提取基波信号的方法呢?

通过对函数》信号处理》波形测量》中的谐波失真分析内置VI的仔细分析,认为这个内置VI可以实现我们提取加速度信号的基波分量的要求。所以我们创建了这个子VI,并将其命名为:理想滤波器,参见下图。
Picture
图 2-15 理想滤波器程序框图
这个子VI是我们通过挖掘了谐波失真分析内置VI中其它功能来实现的,也就是利用它可以导出信号中的其它信息这个特点实现了基波信号的提取。通过对导出信号项的设置,实现了对基波信号的提取。同时还可以获得基波频率和信号的失真度(%)。

之所以称其为理想滤波器,就是因为它具有极好的幅频特性和相频特性。在振动加速度测试中已经取得十分满意的效果。


2.5.2 创建子VI的图标和连线板
 
已经创建完成的VI还不是子VI,因为我们还没有为这个VI创建它的数据输入输出通道和图标。建立输入输出通道应该是子VI最重要的特征之一,通过输入输出通道才可以实现子VI与其它VI间的数据交换。

图标是区分VI的标志,图标的创建方法这里不具体说明,大家可以参照帮助文件来试着完成。图标和前面板,参见下图。
Picture
图 2-17 例2-2的前面板和图标
下面创建连线板,具体操作是:在前面板中,鼠标单击图标在弹出的快捷菜单中选择显示连线板,然后对应将前面板中的控件与连线板一一对应分配。参见下图。
Picture
图 2-18 例2-2的前面板和连线板
至此,子VI创建完成,保存后就可以供其它程序使用。对于常用的子VI建议存储到用户库中,当然别忘了为它创建简要的说明文档。

下面我们继续通过VI的属性来确定子VI的前面板外观和运行时的位置。
[1] [2]
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。

推荐阅读

编辑:什么鱼
本文引用地址: http://www.eeworld.com.cn/Test_and_measurement/2015/0807/article_12653.html
[发表评论]
[加入收藏]
[打印本页]
[关闭窗口]
[返回顶部]
[RSS订阅]
小广播
每日新闻
最热点击
本周热门资源推荐
EEWORLD独家
论坛精华
精选博文