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开发等相关项目,可联系们。

相关文章
|
14天前
|
JavaScript
DOM 属性列表(命名节点图 Named Node Map)
`DOM`的`Named Node Map`是元素节点的属性列表,类似节点列表但有区别。当属性增删时,列表自动更新。示例代码加载"books.xml",获取第一个`<book>`元素的属性节点列表,`x.length`表示属性数量,`x.getNamedItem("category").nodeValue`显示"category"属性值。输出为:`cooking`和`1`,表示类别为烹饪且有1个属性。
|
18天前
|
XML JavaScript 前端开发
DOM 属性列表(命名节点图 Named Node Map)
这段内容介绍了如何使用JavaScript操作XML文档中的DOM属性。通过`getElementsByTagName`获取元素后,`attributes`属性返回一个命名节点图(Named Node Map),表示元素的属性列表,该列表会自动更新。示例代码展示了加载"books.xml",获取第一个`<book>`元素的属性列表,然后利用`getNamedItem()`方法获取"category"属性的值并输出,同时显示属性数量。
|
3天前
|
JavaScript
DOM 属性列表(命名节点图 Named Node Map)
`DOM`的`Named Node Map`代表元素的属性列表,它是一个自动更新的节点集合。当属性增删时,列表随之变化。以下代码示例加载"books.xml",获取第一个`<book>`元素的属性节点列表,`x.length`表示属性数量,`x.getNamedItem("category").nodeValue`显示"category"属性值,如"cooking",并输出属性总数1。
|
5天前
|
XML JavaScript 数据格式
DOM 节点列表长度(Node List Length)
`length`属性用于获取DOM节点列表的长度。在示例中,`xmlDoc.getElementsByTagName("title")`返回一个节点列表,通过`for`循环遍历这个列表,访问每个`title`节点的子节点值,并用`document.write`显示。代码从"books.xml"加载XML文档并输出所有标题节点的内容。
|
5天前
|
JavaScript
DOM 属性列表(命名节点图 Named Node Map)
`DOM`中的`Named Node Map`表示元素的属性列表,它是一个自动更新的节点集合。当属性增删时,列表随之变化。例如,加载"books.xml"到`xmlDoc`,然后获取第一个`<book>`元素的属性列表:`x=xmlDoc.getElementsByTagName('book')[0].attributes`。`x.length`显示属性数量,`x.getNamedItem("category").nodeValue`返回"category"属性的值。
|
7天前
|
JavaScript
DOM 属性列表(命名节点图 Named Node Map)
该文段介绍了DOM中的命名节点图(Named Node Map),它是元素节点属性的列表,会自动更新以反映属性变化。示例展示了如何通过`loadXMLDoc()`加载"books.xml",获取第一个`<book>`元素的属性节点列表,使用`x.getNamedItem("category").nodeValue`显示"category"属性值,`x.length`显示属性数量。输出为"cooking 1"。
|
9天前
|
JavaScript
DOM 属性列表(命名节点图 Named Node Map)
该文段介绍了DOM中的命名节点图(Named Node Map),它表示元素节点的属性列表,能自动更新增删属性。示例代码展示了如何通过`getElementsByTagName()`获取首个`<book>`元素的属性列表,然后使用`getNamedItem()`获取"category"属性的值,并输出属性数量。当执行时,会显示"cooking"(属性值)和"1"(属性数量)。
|
10天前
|
SQL NoSQL 关系型数据库
实时计算 Flink版产品使用合集之mysql服务器只有1个节点,怎么改mysqlserver-id
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStreamAPI、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
16天前
|
XML JavaScript 数据格式
DOM 节点列表长度(Node List Length)
`length`属性用于获取DOM节点列表的元素数量。在示例中,加载"books.xml"后,通过getElementsByTagName("title")获取标题节点列表,然后使用`for`循环遍历列表,输出每个标题的文本内容。此代码演示了如何处理XML文档中的节点集合。
|
18天前
|
网络协议
LabVIEW中如何在网络上使用远程VI服务器
LabVIEW中如何在网络上使用远程VI服务器
22 2