LabVIEW调用子VI(subVI)有两种方法:1)通过程序框图-查看(菜单)-函数-选择VI...,在程序框图上添加子VI时,该子VI的调用方法是静态链接的,即编译生成可执行程序后,子VI的代码将会被静态链接到可执行程序中;2)通过程序框图-查看(菜单)-函数-编程-应用程序控制-通过引用调用,通过VI引用动态调用,可以保证VI在需要时才被装入内存,与静态调用相比节约了内存资源。
异步调用优点官方解释如下:http://zone.ni.com/reference/zhs-XX/help/371361H-0118/lvconcepts/asynchronous_vi_calls/
如通过子VI节点或通过引用调用节点以标准调用方法调用一个VI,数据流在被调用节点处暂停直到子VI返回结果。然后数据流从节点的输出端继续。
与上述方式不同,异步调用VI时,子VI运行的同时数据流仍然在调用方VI中继续。如调用方VI不是立即需要子VI的执行结果,就可考虑异步调用子VI。在这些情况下,异步调用可使子VI和调用VI并行运行,明显优化调用方VI的执行时间。关于异步VI调用的优点,请参考下列编程情境范例:
- 将任务分配给子VI,主VI继续运行
- 将一个任务的工作量分散到同一个VI的各个实例,尤其是直到运行时才知道任务需要的VI实例的个数
- 打开复杂的用户界面,界面由若干个单独的VI组成。这些VI必须并行运行,同时收集结果