在LabVIEW的For循环和While循环中使用自动索引隧道

更新 Aug 21, 2023

适用于

软件

  • LabVIEW

问题详述

在LabVIEW中,若连线至或接出While循环或For循环,连线的隧道有可能是实心的,也有可能是方括号样式。这两种隧道的区别是什么?如何在这两种模式之间进行切换呢?

解决方案

什么是自动索引?
         
启用自动索引隧道          已禁用自动索引隧道
如果隧道内有一个小括号,则表示启用自动索引 。当您接入或接出For循环时,这是默认的设置。如果将一个数组通过自动索引的方式连接至For循环输入端,LabVIEW会把计数终端设置数组的大小,因此您无需连接计数终端。

如何启用或禁用自动索引?
要在自动索引和非索引隧道之间切换,请右键单击隧道,然后选择禁用索引启用索引

自动索引和For循环
默认情况下,将任一数组连接到For循环时都会启用自动索引,因为For循环的常见应用是处理单个数组元素。如果您不需要单独处理数组的元素,请禁用自动索引。禁用自动索引输入时,For循环一次处理数组中的所有元素,而不是每次迭代处理一个元素。

同样,当您通过自动索引将数组输出隧道时,输出数组会从循环的每次迭代中接收一个新元素。因此,自动索引输出数组的大小始终与迭代次数相等。如果在输出隧道中禁用自动索引,则会收到上次迭代的数据值,而不是每次迭代的元素值。

自动索引和While循环
默认情况下,在接入或接出While循环时禁用自动索引,因此接线隧道将是实心的。如果为连接至While循环的数组启用自动索引,则While循环将以与For循环相同的方式对数组进行索引。但是,While循环执行的迭代次数不受数组大小的限制,因为While循环会迭代直到满足特定的条件(由条件接线端决定)。此外,当您自动索引数组输出隧道时,输出数组会从循环的每次迭代中接收一个新元素。

相关信息

  • 如果两个不同长度的数组通过自动索引的方式连接至For循环中,则长度较短的数组的元素个数决定循环的次数。示例:两个数组元素个数分别为4和8的数组被自动索引到For循环中,则循环执行次数将为4次。
  • 如果两个不同长度的数组通过自动索引的方式连接至While循环中,那么它们都将被索引,直到循环结束(由条件接线端决定),而且当数组没有数据后,在后续的每次迭代中,数组元素的数据类型的默认值将自动填充为数组的其余部分。 While循环具有独立于数组的停止条件,因此编写程序时需要注意在适当时停止While循环,从而避免将错误数据添加到输入和输出数组。