LabVIEW异步调用VI的多个实例实现并行执行

简介: LabVIEW异步调用VI的多个实例实现并行执行

LabVIEW异步调用VI的多个实例实现并行执行


默认情况下,如对一个VI进行多个异步调用,LabVIEW将这些调用按顺序排列,依次执行。各个调用的执行时间累加,效率不高。按照下列步骤,并行执行各个调用,避免一个调用阻止另一个调用的执行。


使用的对象


使用下列程序框图对象,开始对重入VI进行动态调用,稍后收集VI的输出:


创建下列程序框图,在重入VI上开始多个异步调用并收集结果。


下面列出了上述程序框图的要点。


在VI属性对话框的执行页上,勾选共享副本重入执行或预分配的副本重入执行,配置vi路径指定VI的重入执行。


在打开VI引用函数的选项参数中包括0x40标签。该标签表示开始同步调用重入VI。否则,LabVIEW按顺序执行调用。


注LabVIEW帮助中打开VI引用函数的选项标签为十六进制表示。因为,传入数值常量之前,把数值常量的格式改为十六进制显示,以保证传入正确的值。


也可组合使用选项标签,指定被调VI的多个特性。在该例中,合并选项标签0x100和0x40,配置LabVIEW对VI进行同步调用,并收集被调VI的执行结果。


对于一个具体的引用,使用等量的等待异步调用节点和开始异步调用节点。


使用0x40选项标签表示开始异步调用节点调用VI的副本,而不是VI本身。关于调用VI副本的详细信息,请参考意见和建议。


如在一个VI引用上开始了多个调用,不能直接确定VI实例返回的是哪个等待异步调用节点返回的输出。如要获知VI返回的是哪个实例的输出,可为VI调用分配一个标识符。


收集结果后,使用关闭引用函数关闭VI引用。


如要忽略异步调用的结果,取消等待异步调用节点,并使用0x80替换0x100选项标签。


说明和建议


VI服务器属性和方法无法修改异步调用的VI的并行实例。如在0x40 VI引用上调用VI服务器属性或方法,属性或方法无法修改异步调用节点实际调用的VI副本。属性和方法会影响到原被调VI。如要将VI服务器属性或方法应用于开始异步调用节点实际调用的VI副本,在原被调VI中调用相关属性和方法。


需要说明的是,上述的例程和文档,都是可以下载的,双击即可打开,其中压缩文件是可以采用粘贴复制的方式,拷贝到硬盘上。这不是图片,各位小伙伴看到后尝试一下,这个问题就不用加微信咨询了。有关LabVIEW编程、LabVIEW开发等相关项目,可联系们。附件中的资料这里无法上传,可去公司网站搜索下载。

相关文章
|
25天前
|
Java 调度
Java实现定时启动,且只执行一次,如何实现?
【10月更文挑战第18天】Java实现定时启动,且只执行一次,如何实现?
160 3
|
1月前
|
安全 调度 C#
STA模型、同步上下文和多线程、异步调度
【10月更文挑战第19天】本文介绍了 STA 模型、同步上下文和多线程、异步调度的概念及其优缺点。STA 模型适用于单线程环境,确保资源访问的顺序性;同步上下文和多线程提高了程序的并发性和响应性,但增加了复杂性;异步调度提升了程序的响应性和资源利用率,但也带来了编程复杂性和错误处理的挑战。选择合适的模型需根据具体应用场景和需求进行权衡。
|
5月前
|
监控 安全 Java
任务调度和异步执行相关的功能
任务调度和异步执行相关的功能
25 0
|
6月前
|
存储 数据采集 Windows
LabVIEW重入:允许同时调用同一子VI
LabVIEW重入:允许同时调用同一子VI
218 1
|
Shell Linux
shell脚本多进程并发写法实例(高阶修炼)
shell脚本多进程并发写法实例(高阶修炼)
|
存储 开发工具 数据安全/隐私保护
乾坤大挪移,如何将同步阻塞(sync)三方库包转换为异步非阻塞(async)模式?Python3.10实现。
众所周知,异步并发编程可以帮助程序更好地处理阻塞操作,比如网络 IO 操作或文件 IO 操作,避免因等待这些操作完成而导致程序卡住的情况。云存储文件传输场景正好包含网络 IO 操作和文件 IO 操作,比如业内相对著名的七牛云存储,官方sdk的默认阻塞传输模式虽然差强人意,但未免有些循规蹈矩,不够锐意创新。在全球同性交友网站Github上找了一圈,也没有找到异步版本,那么本次我们来自己动手将同步阻塞版本改造为异步非阻塞版本,并上传至Python官方库。
乾坤大挪移,如何将同步阻塞(sync)三方库包转换为异步非阻塞(async)模式?Python3.10实现。
|
6月前
|
弹性计算 运维 Serverless
基于函数计算搭建的异步任务执行框架
本文介绍基于函数计算实现的异步任务执行框架(编程语言:Python3),把跟阿里云资源开通相关的API封装到一个独立的模块,提供标准的API跟企业内部在用的ITSM或OA进行集成,降低客户对接API门槛,更快上阿里云。
166 0
基于函数计算搭建的异步任务执行框架
|
API 调度 Python
Python 异步: 创建和运行异步任务(7)
您可以从 asyncio 程序中的协程创建任务对象。任务提供独立调度和运行的协程的句柄,并允许查询、取消任务,以及稍后检索结果和异常。异步事件循环管理任务。因此,所有协程都成为事件循环中的任务并作为任务进行管理。
218 0
|
缓存 Go
Go-并发模式总结(扇入模式,超时模式,callback模式等)
Go-并发模式总结(扇入模式,超时模式,callback模式等)
151 0
Go-并发模式总结(扇入模式,超时模式,callback模式等)
|
图形学
Unity 之 关于停止协程的五种方式解析
通过代码结合示例一一解析了五种停止协程的方式。
1698 0
Unity 之 关于停止协程的五种方式解析