在LabVIEW中索引簇(Cluster)中元素

更新 Jun 3, 2021

环境

软件

  • LabVIEW

如何像索引数组一样去索引簇,利用For循环以编程方式处理修改各簇中元素?

使用属性节点,您可以获取一个包含簇中每个元素引用句柄的数组。该数组可用于访问簇中每个元素的属性和方法。请按照以下步骤操作以实现以上功能:
  1. 为簇创建属性节点(Property Node)。右键单击簇输入控件或显示控件,选择“ 创建”»“属性节点”。 
  2. 选择簇属性节点的控件[](Controls[])属性。控件[]属性的输出是一个包含簇中每个元素引用句柄的数组,其排列顺序与簇中元素的排列顺序一致。
  3. 将簇属性节点的Controls[]接线端连接至For循环。默认情况下,数组将创建自动索引隧道。
  4. Controls[]数组创建一个属性节点。在程序框图中,右键单击打开函数选板。找到应用程序控制子选项板,然后选择属性节点 VI 。将属性节点 VI放置在For循环内部,并将其引用输入接线端连接至由Controls[]数组创建的循环隧道。

 
  • 展开Controls[]数组的属性节点以访问两个属性。将第一个属性更改为类名(ClassName) 。 ClassName属性显示指定簇中元素的数据类(数值,布尔,字符串等)。将第二个属性更改为值(Value) 。 Value属性显示指定簇中元素的数据值。
  • 您可以将ClassName属性连接到条件结构的条件选择器接线端,以基于不同类对族中元素执行相应操作。
  • 使用变体至数据转换(Variant to Data)VI 将特定簇中元素的Value属性转换为适当的数据类型。实现方法请参见下图。



    注意:请务必重命名条件分支以匹配传递的数据类型。如果在变体至数据转换 VI中产生错误91,请在ClassName字符串与条件选择器的连线上放置探针,并高亮显示执行过程,以确认正确标记了对应的条件分支名称。数值应标记为“Digital”。
 
  • 若簇中包含数组,请使用转换为特定的类 VI来访问该数组数据结构的属性。然后,您可以使用属性节点访问该数组元素的引用。这将返回数组中单个元素的引用句柄。然后,您可以使用另一个属性节点来访问该数组元素的类名(ClassName)。与上述步骤4类似,您可以使用此信息执行正确匹配变体数据的条件分支。