第5章 控制程序流(6)
While循环
相对于For循环而言While循环的使用率可是太高了,几乎在绝大部分程序中都可以发现它的存在。如:事件结构、状态机、连续数据采集等等。可以说它是LabVIEW结构中最常用的结构。
它的基本概念很简单就是重复执行一段不确定重复次数的程序代码,它的停止是靠用户(程序)使能“条件终端”来控制结束。
下面看几个小例子:
如果我们将停止控制开关放在While循环的外部会发生什么现象呢?
我们会看到While循环要么执行一次(T),要么就无限期执行下去(F)。
这里再次展现了数据流的概念,因为依据数据流的工作原理,所有输入到While循环的数据必须在执行循环前传输,而循环的输出数据只有循环结束后才输出。
所以当开关为T时运行程序,While循环只执行一次,当开关为F时运行程序,While将不会停止会无限期的运行下去。
为了降低CPU的使用率,也可以使用带有定时功能的While循环来代替那个小定时器。用鼠标右键单击While循环的边框弹出一个快捷菜单,就可以选择替换为定时的While循环。
我查看了一下,这样程序结构的节点多了一些,图形显得臃肿了,但是使用起来感觉还是很方便的。我甚至在数据采集时也使用这样的结构。
下面看看大师在书中所列举的一个有趣,但很说明问题的一个例子。
欣赏完大师的例子,现在回过头来看看同样的情况,在定时的While循环会是什么结果。
上面的例图给出了定时While循环的程序框图,修改了定时时间间隔后,运行程序其结构与大师提供的解决方法一样也解决了这个问题。
当程序开始运行30秒后,我们按下Stop开关,再过30秒后,程序就自动停了下来。与我们所期待的一样。
这是LabVIEW的内部运行机制,我们无法得知。但可以肯定的是它的运行机制与While循环的运行机制是不一样的。
关于定时While循环和普通While循环在数据采集中的不同之处
请看本站“一切随缘”Blog——LabVIEW中,一篇博文——”数据采集时CPU工作在100%的状态“中的内容。