LabVIEW中异步调用+可重入VI设置

本文介绍了如何在LabVIEW中通过设置0x40选项使重入VI支持并行调用,以提高性能。通过示例说明了同步与异步的区别,以及注意事项,包括VI副本共享和VI服务器操作的影响。
摘要由CSDN通过智能技术生成

在工程实际中,有时需要并行调用同一个子VI,这时就需要我们在异步调用的同时,将目标子VI设置为可重入。

一 在重入VI上启用同步调用

选项标签设置为0x40可同时调用目标VI的多个实例,实例之间并行运行。如果在For循环中通过配置循环并行来使用“开始异步调用”节点,该选项标签可以启用并行运行,使得各个节点均可访问目标VI副本的数据空间,如不使用该选项标签,对同一目标VI的调用每次只执行一次,其他调用必须等待才能访问该数据空间。

二 范例讲解

将一个VI引用传递至多个开始异步调用节点时,LabVIEW默认情况下按顺序依次执行。要实现并行执行,首先将被调VI设置为重入VI,然后打开被调VI的引用时使用0x40选项。

在下图范例中,目标VI运行100毫秒,使用For循环将该目标VI异步调用10次,通过是否设置为0x40标签,对运行时间进行对比。

结果可以看出,设置为0x40标签后,目标VI并行执行,运行时间也大大降低。

在这个范例中,有几点需要注意:

1. 选项设为0x40,可对重入VI启用同步调用。如不传递0x40选项,则各个调用将串行执行;

2. 开始异步调用函数总是立即返回。只有传递0x40参数至“打开VI引用”函数,目标VI才会并行执行;

3. 当所有VI调用开始后,调用等待异步调用。本范例不收集输出,也不指定由哪个循环来处理某个异步调用;

4.如下图,调用填充异步调用池方法,可使异步调用的比较指标中不包括创建数据空间所花费的时间。

三 注意点

1.目标可重入VI是共享副本的;

2. 如包括了0x40选项,VI服务器属性和方法无法修改被调VI副本。这是因为一开始调用的就是目标VI的副本,而不是被调VI本身。因此,如在“打开VI引用”函数返回的VI引用上使用VI服务器属性或方法,则不能对实际调用的VI副本起作用。如要执行VI服务器任务(例如,打开或定位实际调用VI的前面板),必须在原重入VI中调用属性或方法。

本文所用范例资源随文附上,大家可自行查看测试。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值