LabVIEW使用VI服务器的调用节点将数据传递到另一个VI 使用调用节点(Invoke Node)与通过引用调用节点(Call by Reference)调用VI时有什么差别?

简介: LabVIEW使用VI服务器的调用节点将数据传递到另一个VI 使用调用节点(Invoke Node)与通过引用调用节点(Call by Reference)调用VI时有什么差别?

LabVIEW使用VI服务器的调用节点将数据传递到另一个VI


注意第二个:使用调用节点(Invoke Node)与通过引用调用节点(Call by Reference)调用VI时有什么差别?


可以使用按引用节点调用来动态调用VI。允许将值传递给控件并从指示器返回值。此方法是使用VI服务器将数据传递到VI的首选方法。有关更多信息,请参阅通过引用调用VI和通过调用节点调用VI与通过引用节点调用VI之间的区别


还可以使用“设置控件值”和“获取控件值”方法来完成此任务。要使用此方法,必须先使用打开VI引用功能打开对VI的引用,然后在调用运行VI调用节点之前使用单独的调用节点传递数据。该过程需要为将数据传递到的每个控件提供一个调用节点。必须知道控件的名称及其数据类型。可以使用调用节点的“设置控制值”方法或“设置控制值 [变体]”方法来传递数据。必须确保名称和数据类型匹配,否则将收到一条错误消息,指出输入参数无效。如果要从VI中提取信息,则需要为要从中检索信息的每个指标创建一个单独的调用节点。使用获取控件值或获取控件值 [变体] 方法检索信息。


使用调用节点(Invoke Node)与通过引用调用节点(Callby Reference)调用VI时有什么差别?


解决方案


在通过引用调用VI时,使用调用节点和通过引用调用节点的主要差别在于编程的便捷性以及结构的灵活性。当使用通过引用调用节点时,必须连线严格类型引用。严格类型引用中包括含有数据类型的连线板以及指向VI的引用。因此,当使用通过引用调用节点时,LabVIEW已知数据类型并在节点中创建连线板。通过这个方法,能够实现动态加载VI,同时获得简单连线的便捷性。


当使用调用节点时,LabVIEW忽略是否使用严格类型引用。因此能够传递任何VI到调用节点并运行。由于不需要限定类型以及调用具有相同连线板的VI,使用调用节点大大增加了灵活性。但是,如果要传递值,则需要知道控件及其数据类型的名称 ,这需要额外的编程。如果想做的只是打开前面板并运行VI,那么调用节点也是一个简单的方法。考虑到能够传递任何VI路径并且打开加载该VI,这个方法显得更加灵活。


使用调用节点调用VI的另一个好处是它提供了与VI交互的能力。如果VI需要被控制或者输出需要多次读取,调用节点的方法能够与VI交互以实现所需功能。使用通过引用调用节点时,在VI结束执行后连线板会输出结果,但它不提供与运行中VI交互的能力。

如果要异步调用目标VI,请使用开始异步调用节点(Start Asynchronous Call Node)而不是通过引用调用节点(Call by Reference Node)。这将允许目标VI在单独的线程上运行。


使用调用节点的方法可能会在UI线程中运行目标VI,如果希望在调用VI运行时让被调用VI充分执行,则可能会导致一些问题。即使有一个False常量连接到结束前等待(Wait Until Done)终端,也会发生这种情况。对于单独线程中的完整异步调用,需要修改目标VI的执行设置,方法是转到文件»VI属性(File»VI Properties),在对话框中选择执行(Execution),然后选择不同于用户界面或与调用者相同的执行系统。


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

相关文章
|
8天前
|
JavaScript
DOM 属性列表(命名节点图 Named Node Map)
`DOM`中的`Named Node Map`是元素节点属性的列表,自动更新增删操作。代码示例载入"books.xml",获取第一个`<book>`元素的属性列表,`x.length`显示属性数量,`x.getNamedItem("category").nodeValue`输出"category"属性值,如"cooking",并显示属性总数1。
|
8天前
|
XML JavaScript 数据格式
DOM 节点列表长度(Node List Length)
`length`属性用于获取DOM节点列表的元素数量。在示例中,代码加载"books.xml",然后通过`getElementsByTagName("title")`获取所有标题节点。使用`for`循环遍历这些节点,输出每个标题的文本内容。这个例子展示了如何交互式地处理XML文档中的特定标签。
|
12天前
|
JavaScript
DOM 节点列表长度(Node List Length)
`length`属性用于获取DOM节点列表的元素数量。通过遍历这个属性,如`for (i=0;i<x.length;i++)`,可以访问和处理每个节点。在示例中,代码加载"books.xml",然后获取所有"title"标签,并打印它们的子节点值。
|
6天前
|
JavaScript 前端开发 安全
怎样用Node.js搭建web服务器
本文探讨了如何使用Node.js构建高效的HTTP服务器。首先,介绍了HTTP常见请求方法,如GET、POST、PUT等。接着,展示了如何使用Node.js的`http`模块创建服务器,并根据请求方法进行不同处理,如判断GET和POST请求,以及获取GET请求参数和处理POST请求数据。最后,讨论了服务器代码的模块化管理,包括路由管理和业务逻辑拆分,以提升代码的维护性和扩展性。通过本文,读者可以掌握基础的Node.js服务器开发及模块化设计技巧。
|
2天前
|
JavaScript
DOM 节点列表长度(Node List Length)
`length`属性用于获取DOM节点列表的元素数量。通过遍历这个属性,如`for (i=0; i<x.length; i++)`,可以访问和处理每个节点。在示例中,代码加载"books.xml",然后获取所有"title"节点,并打印它们的第一个子节点的值。
|
3天前
|
SQL 弹性计算 API
云服务器 ECS产品使用问题之如何通过API调用阿里云服务器上SQL Server数据库中的数据
云服务器ECS(Elastic Compute Service)是各大云服务商阿里云提供的一种基础云计算服务,它允许用户租用云端计算资源来部署和运行各种应用程序。以下是一个关于如何使用ECS产品的综合指南。
|
4天前
|
XML JavaScript 数据格式
DOM 节点列表长度(Node List Length)
`length`属性用于获取DOM节点列表的长度,即节点数量。通过它可遍历列表,如`for(i=0; i<x.length; i++)`循环访问每个`title`节点,并输出其内容。示例展示了从"books.xml"加载XML后,获取并打印所有标题节点的值。
|
3天前
|
弹性计算 监控 JavaScript
云服务器 ECS产品使用问题之Node.js项目部署成功后无法通过公网IP+端口号访问,是什么导致的
云服务器ECS(Elastic Compute Service)是各大云服务商阿里云提供的一种基础云计算服务,它允许用户租用云端计算资源来部署和运行各种应用程序。以下是一个关于如何使用ECS产品的综合指南。
|
6天前
|
JavaScript
DOM 节点列表长度(Node List Length)
`length`属性用于获取DOM节点列表的元素数量。通过遍历这个属性,如`for (i=0; i<x.length; i++)`,可以访问和处理每个节点。在示例中,加载"books.xml",然后获取所有"<title>"标签,并输出它们的子节点值。
|
2天前
|
弹性计算
阿里云ECS使用体验
在申请高校学生免费体验阿里云ECS云服务器后的一些使用体验和感受。

热门文章

最新文章