LabVIEW中For循环会丢失数据

285 阅读2分钟

LabVIEW中For循环会丢失数据 LabVIEW程序中包含一个For循环,有时循环会丢失数据,或是输入循环的数据和输出循环的数据间无法关联起来,为什么会发生这种情况,该如何避免? 解答: 循环丢失数据有以下几种情况。首先,如果For循环的总数 (N) 接线端连接了“0”,则通过循环传递的任何数据都会丢失,因为此时循环内的代码一次都没有执行,故数据无法被传递到For循环的输出端。这种情况下通过隧道输入For循环的数据必然会丢失。例如,下图所示的程序代码中,一个数值输入控件以及一个已经初始化的数组通过隧道传入了一个执行次数被设为零次的For循环。由于数据流在For循环里中断,两个连接循环输出的显示控件实际上是未被初始化的。

image.png 当For循环执行的次数少于经初始化数组中的元素个数,也会发生丢失数据的情况。例如,一个包含6个元素的数组输入了一个执行三次的循环,则输出数组中只会包含输入数组中的前三个元素。

image.png 要保留数据,可以将隧道替换为移位寄存器。移位寄存器在内存中开辟了数据存储空间,即使循环被配置为执行零次,也能够使得数据保存在For循环的输出端。要将隧道替换为移位寄存器,右键点击隧道,在弹出的菜单中选择替换为移位寄存器。若For循环的实际循环次数是由自动索引的数组或是文件决定的话,请确保数组中的元素个数不为零,以免发生循环数据丢失。

程序如下附件所示。 相关资料说明,如下所示。 LabVIEW、LabVIEW开发、LabVIEW编程、LabVIEW程序 文字内容均在附件Word中,同时上文中提到的例子和资料,均在word中的附件里,可点击下载。登录www.bjcyck.com可以查看更多详细信息。这里只是简略的介绍,有任何关于LabVIEW、LabVIEW开发、LabVIEW编程、LabVIEW程序相关问题,请与我们联系。 链接地址为:www.bjcyck.com/nd.jsp?id=3…