隧道模式
在LabVIEW中,循环的隧道模式指的是数据在循环结构的迭代中如何处理和传递的方式。
for循环中默认的隧道模式为自动索引隧道,while循环中默认的隧道模式为最终值。
- 在程序面板中分别创建一个for循环和while循环,并设置随机数,将随机数连接到循环体的外壁,并创建显示控件,设置两个循环循环5次结束。
- 运行结果
- 可将随机数再次引出,连接到循环体的外壁,并修改其隧道模式。例如,将for循环中的随机数再引出一条数据线连接到循环体外壁,设置隧道模式为最终值,并创建显示控件。
- 运行结果:
移位寄存器
在LabVIEW的循环之间传递数据——移位寄存器。
-
右键单击循环的左侧或右侧边框,从快捷菜单中选择“添加移位寄存器”可创建移位寄存器。
-
移位寄存器用于将上一次循环产生的值传递至下一次循环。移位寄存器以成对接线端的形式出现,分别位于循环两侧的边框上,位置相对。
-
右侧接线端含有一个向上的箭头,用于存储每次循环结束时的数据。LabVIEW会将连接到右侧寄存器的数据传递到下一次循环中。循环执行完毕后,右侧接线端将返回移位寄存器最后一次保存的值。
-
移位寄存器可以传递任何数据类型,并与其连接的第一个对象的数据类型自动保持一致。连接至各移位寄存器的数据必须为相同类型。
-
初始化移位寄存器:初始化移位寄存器即重置VI运行时移位寄存器传递给第一次循环的值。要初始化移位寄存器,请将一个输入控件或常数连接至移位寄存器接线端。
-
一个循环中可有多对移位寄存器。如循环中的多个操作都需使用前面循环的值,则可使用多对移位寄存器保存结构中不同操作的数据值。
案例
案例:使用for循环和移位寄存器,计算1+2+……+100。
- 在程序框图中,设置for循环,并添加移位寄存器,设置循环次数为101,并使用加函数。同时,设置下一次循环的初始值为0,这样当重新运行程序时,不会用上一次循环结束的值。
- 运行结果:
层叠移位寄存器
- 使用层叠移位寄存器可访问前几次循环的数据。层叠移位寄存器可保存前几次循环的值,并将值传递到下一次循环中。要创建层叠移位寄存器,请右键单击左侧接线端,从快捷菜单中选择“添加元素”。
- 层叠移位寄存器只存在于循环边框左侧,因为右侧接线端仅用于把当前循环的数据传递给下一次循环。
案例:在移位寄存器的案例中,使用层叠移位寄存器,每一次循环的事件间隔为1s,观察其值。
-
鼠标移动到移位寄存器的左侧接线端,然后鼠标右键,添加元素,即创建了层叠移位寄存器。最后将加改为加1的函数(注意:若有初始化,则添加的层叠移位寄存器也需要初始化)
-
运行结果: