使用簇与子VI之间传送数据
在LabVIEW中,每个VI的连接端点的个数最多为28个。不过在实际的使用中,你可能也不想使用有这么多个连接端点的VI,一方面连接线太多看起来很烦,另一方面就是很容易接错端点。通过使用簇(Cluster)就可以轻松的将多个输入控件或输出控件捆绑到一起,这样就只要一个连接端点就可以与子VI(subVI)之间完成传送多个数据的任务。通过这种使用簇的方法,在VI的输入输出数据个数多于28个时,就可以绕过LabVIEW的这个限制。如果你只是想减少LabVIEW中VI的连线数目,也可以使用簇来实现。
簇捆绑函数(Bundle Function)
簇捆绑函数(Bundle Function)可以在工具面板的Programming>>Cluster & Variant子面板上面找到。该函数如下图所示:
通过使用这个函数,我们可以将多个独立的元素组合到一起来创建一个新的簇,或者是用来替换簇中已有的元素。在将该函数放置到LabVIEW的程序框图中,它只有两个输入端口,如果需要增加输入的个数时,可以通过使用鼠标在该函数顶端或底端使用鼠标拖动该函数的对应边界即可。当将输入数据连接到该函数的对应输入端之后,在输入端的白色部分就会显示对应输入数据类型的标识。使用该函数最终生成的簇中的元素的次序就是这个函数的每个元素对应输入端的次序。
如果使用这个函数用来创建一个新簇,就不需要在中间的簇(cluster)输入端连接输入簇。不过对于需要替换原有簇中元素的情况,就需要将被替换簇连接到这个中间的簇输入端。如果在该输入端连接了已有的簇,这个簇捆绑函数就会根据所连接的已有簇的元素的情况自动进行调整。
有一点需要注意的是,如果你在簇中添加了一个新的元素而没有修改这个簇函数的输入的话,你的程序就会出错。反之亦然。
替换簇的元素
如果你需要替换已有簇中的某一个元素,可以像下图这样使用簇捆绑函数来完成任务。
在这里将簇连接到簇捆绑函数中间的簇连接端点,之后该函数的元素输入部分就会按照输入簇的元素的情况自动调整,之后将需要替换的元素的新值连接到对应的输入端点,对于不需要替换的元素对应的端点不需要连接新的输入值。
簇解绑函数(Unbundle Function)
簇解绑函数可以在工具面板的Programming>>Cluster & Variant子面板找到。该函数可以用来将一个簇中的每一个元素分解出来。该函数分解出的各元素输出端点的自上到下的次序与簇中各个元素对应的次序一致。如果这些元素的数据类型一样,用来区分各元素的唯一方式就是它们在簇中的次序。
该函数在框图中如上图所示,当将簇连接到该函数的输入时,该函数会自动调整其输出元素端点的个数与当前簇中元素的个数一致,并在右侧的空白处会自动根据其对应的元素的数据类型显示相应数据类型的图标。
根据元素名称捆绑与解绑簇
有些时候,我们只对簇中的一两个元素进行操作,就没有必要捆绑或是解绑整个簇。这时我们可以使用根据元素名称捆绑与解绑簇函数(Bundle By Name/Unbundle By Name)。
根据元素名称捆绑簇函数(Bundle By Name)可以在Cluster子面板找到。该函数使用名称来引用元素而不是根据元素次序来进行引用。与Bundle函数不同,使用这个函数你可以只访问你需要访问的元素。不过,根据元素名称捆绑函数不能用来创建新的簇,只能够用来替换已有簇中的元素。而且每次使用这个函数函数中间的输入端点“簇”必须连接你需要进行元素替换的簇。
根据元素名称解绑簇函数(Unbundle By Name)同样可以在Cluster子面板找到。该函数可以用来输出你指定的簇元素的值。使用这个函数就不必担心簇中元素的次序问题了。