【从零开始的Labview学习(三)】子VI

图标和连线板设计

使用子VI的必要性

编辑图标

左键双击图标
在这里插入图片描述
有很多符号供选择
在这里插入图片描述

在这里插入图片描述

连线板设计

子VI控件的接线端在这里插入图片描述
推荐布局:左侧为输入控件,中间为附加项,右侧为输出控件

子VI前面板设计

保证与程序框图中控件对应,避免在连线板设计时出错

创建子VI

创建方法

方法一:直接把已有VI视为子VI
方法二:
右键编辑,选择创建子VI
在这里插入图片描述

  • 选取代码创建子VI时,所有控件、穿过选择框的连线 都将创建接线端
  • 子VI用到主VI控件的属性节点或调用节点,需要将该主VI控件引用作为接线端引出

调用子VI

在这里插入图片描述

主VI与子VI对比

在这里插入图片描述

多态VI

函数的多态性

对不同对象进行相同操作
不同数据类型间的运算,运算规则不同

创建多态VI

在这里插入图片描述
在这里插入图片描述

调用多态VI

直接使用,多态VI会根据输入类型自动使用对应的VI。

可重入VI

含义

在这里插入图片描述
默认情况下,VI为非重入且执行系统不能在一个VI上同时运行多个调用。
同时调用一个非重入的子VI,如果某个调用正在运行,则其它的调用要等它运行完毕后才能运行。

例:时间提醒

下列程序框图是用来提醒用户午饭时间和休息时间已到。必须对Alarm Timer VI的重入属性进行设置才能保证有理想的结果。
在这里插入图片描述

用户指定一个午饭时间和休息时间。假设午饭时间为12:00pm,休息时间为10:00am。

Alarm Timer VI等待指定时间。Alarm Timer VI的实例位于程序框图的并行部分,无法预测哪一个实例先执行。假设午饭时间定时器先运行。

如Alarm Timer VI被配置为不可重入执行,休息时间定时器无法在12:00pm之前开始运行,必须等到午饭时间定时器完成执行。这个延迟机制使休息时间定时器无法在10:00am触发一个提醒。为了保证各个子VI实例在合适的时间被触发,必须配置Alarm Timer VI为重入执行。

重入方式

LabVIEW的重入VI类型如下:

非重入执行-LabVIEW为所有子VI实例分配同一个数据空间。
共享副本重入执行-LabVIEW分配一个副本池在调用方之间共享,该副本池最初仅包含一个副本。调用方调用一个共享副本VI时,将从副本池取出一个副本并在调用结束执行后返回该副本。如调用方调用共享副本VI时副本池为空,LabVIEW将为调用新建一个副本,并在执行结束后将副本返回副本池,因此副本池不断增大
预分配的副本重入执行-LabVIEW为每个子VI使用分配单独的、非共享副本。

调试重入VI

如需调试某个重入VI,可选择文件»VI属性显示VI属性对话框,从下拉菜单中选择执行并勾选允许调试复选框。

如要调试某个预分配副本的实例,打开子VI的相关实例。无法编辑副本VI,但是可以查看VI程序框图。例如,设置断点、创建探针、启用高亮显示执行过程和单步执行。

要调试共享副本的VI实例,需在源VI中使用断点、探针和启用高亮显示执行过程。副本VI无法在调用之间保持上述设置。

注:  调试应用程序或动态链接库时,无法调试打开VI引用函数创建的可重入前面板。如可重入前面板是LabVIEW创建的动态链接库的接入点,也无法对其进行调试。

VI右键菜单

说明和提示
设置子VI节点
调用设置
显示VI层次结构

层次结构窗口

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值