在NI LabVIEW的循环迭代之间传输数据
使用循环结构编程时,经常需要访问前一次LabVIEW循环产生的数据。 例如,如果需要每次循环采集一个数据且每得到五个数据后要计算这五个数据的平均值,这就需要保留前面几次循环产生的数据。移位寄存器移位寄存器可用于将上一次循环的值传递至下一次循环。 移位寄存器以一对接线端的形式出现,分别位于循环两侧的边框上,位置相对。右侧接线端含有一个向上的箭头,用于存储每次循环结束时的数据。 LabVIEW可将连接到右侧寄存器的数据传递到下一次循环中。 循环执行后,右侧接线端将返回移位寄存器保存的值。用鼠标右键点击循环的左或右边框并从快捷菜单中选择添加移位寄存器可以创建一个移位寄存器。移位寄存器可以传递任何数据类型,并与其连接的第一个对象的数据类型自动保持一致。 连接到各个移位寄存器接线端的数据必须属于同一种数据类型。循环中可添加多个移位寄存器。 如下图所示,若循环中的多个操作都需使用前面循环的值,可以通过多个移位寄存器保存结构中不同操作的数据值。图1. 使用多个移位寄存器初始化移位寄存器
初始化移位寄存器,即重设VI运行时移位寄存器传递给第一次循环的值。 如图2所示,通过将输入控件或常数连接至循环左侧的移位寄存器接线端,可初始化移位寄存器。图2. 初始化移位寄存器图2中的For循环将执行五次,每次循环后,移位寄存器的值都增加1。 For循环完成5次循环后,移位寄存器会将最终值5传递给显示控件并结束VI运行。 每次执行该VI,移位寄存器的初始值均为0。如未初始化移位寄存器,循环将使用最后一次执行时写入该寄存器的值,在循环未执行过的情况下使用该数据类型的默认值。 使用未初始化的移位寄存器可以保留VI连续执行期间的状态信息。图3. 未初始化的移位寄存器图3中的For循环将执行五次,每次循环后,移位寄存器的值都增加1。 第一次运行VI时,移位寄存器的初始值为0,即32位整型数据的默认值。 For循环完成5次循环后,移位寄存器会将最终值5传递给显示控件并结束VI运行。 而第二次运行该VI时,移位寄存器的初始值是上一次循环所保存的最终值5。 For循环执行5次后,移位寄存器会将最终值10传递给显示控件。 如果再次执行该VI,移位寄存器的初始值是10,依此类推。 关闭VI之前,未初始化的移位寄存器将保留上一次循环的值。层叠移位寄存器
层叠移位寄存器可访问之前多次循环的数据。 层叠移位寄存器可以保存以前多次循环的值,并将值传递到下一次循环中。 要创建层叠移位寄存器,可右键点击左边的接线端并从快捷菜单中选择Add Element。层叠移位寄存器只位于循环左侧,右侧的接线端仅用于把当前循环的数据传递给下一次循环。图4. 使用层叠移位寄存器在上述程序框图中,如在左侧接线端上再添加一个移位寄存器,则上两次循环的值将传递至下一次循环中,其中最近一次循环的值保存在上面的寄存器中, 而上一次循环传递给寄存器的值则保存在下面的接线端中。
不错,学习了谢谢 厉害厉害,学习了。 厉害厉害,学习了。
页:
[1]