LabVIEW使用调用节点与通过引用调用节点调用VI时的差别
使用调用节点(Invoke Node)与通过引用调用节点(Callby Reference)调用VI时有什么差别?
解决方案
在通过引用调用VI时,使用调用节点和通过引用调用节点的主要差别在于编程的便捷性以及结构的灵活性。当使用通过引用调用节点时,必须连线严格类型引用。严格类型引用中包括含有数据类型的连线板以及指向VI的引用。因此,当使用通过引用调用节点时,LabVIEW已知数据类型并在节点中创建连线板。通过这个方法,能够实现动态加载VI,同时获得简单连线的便捷性。
当使用调用节点时,LabVIEW忽略是否使用严格类型引用。因此能够传递任何VI到调用节点并运行。由于不需要限定类型以及调用具有相同连线板的VI,使用调用节点大大增加了灵活性。但是,如果要传递值,则需要知道控件及其数据类型的名称,这需要额外的编程。如果想做的只是打开前面板并运行VI,那么调用节点也是一个简单的方法。考虑到能够传递任何VI路径并且打开加载该VI,这个方法显得更加灵活。
使用调用节点调用VI的另一个好处是它提供了与VI交互的能力。如果VI需要被控制或者输出需要多次读取,调用节点的方法能够与VI交互以实现所需功能。使用通过引用调用节点时,在VI结束执行后连线板会输出结果,但它不提供与运行中VI交互的能力。
相关信息
如果要异步调用目标VI,请使用开始异步调用节点(StartAsynchronous Call Node)而不是通过引用调用节点(Call by Reference Node)。这将允许目标VI在单独的线程上运行。
使用调用节点的方法可能会在UI线程中运行目标VI,如果希望在调用VI运行时让被调用VI充分执行,则可能会导致一些问题。即使有一个False常量连接到结束前等待(WaitUntil Done)终端,也会发生这种情况。对于单独线程中的完整异步调用,需要修改目标VI的执行设置,方法是转到文件»VI属性(File»VIProperties),在对话框中选择执行(Execution),然后选择不同于用户界面或与调用者相同的执行系统。
需要说明的是,上述的例程和文档,都是可以下载的,双击即可打开,其中压缩文件是可以采用粘贴复制的方式,拷贝到硬盘上。这不是图片,各位小伙伴看到后尝试一下,这个问题就不用加微信咨询了。有关LabVIEW编程、LabVIEW开发等相关项目,可联系们。附件中的资料这里无法上传,可去公司网站搜索下载。