LabVIEW中While循环与Case结构的结合使用

标签:
labviewcase结构while循环校园 |
与所有的工具软件一样,LabVIEW中的各个函数以及结构通过互相组合才能创建出实际的应用程序。就像你盖房子一样,你不可能只用一个榔头或者一把锯就行了,你只有通过把这两个工具组合使用起来才能做出好东西来。把这个理论用于你的LabVIEW测试程序开发中也是一个道理。在LabVIEW里面的结构与函数就是我们的各种工具,我们很少单独的使用其中的一种工具,在实际的程序中都是结合在一起使用的。在这里,我们先从一个单独的While循环结构开始,它将像一个电锯一样,只有你按了关闭开关后才会停止旋转。之后,我们会加入一个Case结构,它将会处理软件可能出现的所有状况。事实上,While循环+Case结构的组合是非常强大的,使用这个组合几乎可以创建你能想到的任何应用软件。
主循环
几乎所有的LabVIEW程序至少有一个主循环,这个主循环在程序结束之前将一直循环。程序结束的原因可以是按了程序停止按钮、程序出错或其他原因。下图就是一个While循环的例子,里面有一个标准的等待函数(防止程序独占CPU)以及一个停止按钮。
这里可以仔细的研究一会。这种While循环+Case结构的组合就是创建LabVIEW应用程序的基础。
在While循环中处理多个事件
下面开始进一步的讨论。如果有多个按钮要如何处理?最简单的方法就是如下图所示在While循环里面添加多个Case结构,如下图所示。这种方法在开始的时候很容易,一旦你的Case结构多了起来就会比较麻烦了。
现在我们知道如何通过While循环+Case结构的组合来处理多个事件了,以此类推如果要处理N个事件就在While循环里面添加N个Case结构。不过在程序框图里面空间不是很充裕的情况下该怎么办?在这种情况下,"再添加一个Case结构"的解决办法就不是那么合适了。对于这种情况的解决办法其实也很简单,就是创建一个有多case的Case结构,这个结构中的每个case对应着一个事件。
为了能够实现这个设想,我们需要建立一个布尔变量的数组,在这个数组中保存每个按钮的值并搜索该数组中值为TRUE的元素的序列号,通过这个序列号我们能够知道哪个按钮被按下了并将该按钮的编号输入Case结构的case选择端点,之后就会执行该按钮对应的相关操作了。如下图所示:
现在如果要添加新的事件,只需要在数组中添加一个新的元素并在Case结构中添加一个对应的case即可。
不过在实际的使用之中,我们通常是使用枚举类型(enum)的数据来连接Case结构的case选择端点而不是平直的I32类型的整型数据。