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

2016-08-03 12:37:49来源: eefocus 关键字:LabVIEW  While循环  Case结构
  与所有的工具软件一样,LabVIEW中的各个函数以及结构通过互相组合才能创建出实际的应用程序。就像你盖房子一样,你不可能只用一个榔头或者一把锯就行了,你只有通过把这两个工具组合使用起来才能做出好东西来。把这个理论用于你的LabVIEW测试程序开发中也是一个道理。在LabVIEW里面的结构与函数就是我们的各种工具,我们很少单独的使用其中的一种工具,在实际的程序中都是结合在一起使用的。在这里,我们先从一个单独的While循环结构开始,它将像一个电锯一样,只有你按了关闭开关后才会停止旋转。之后,我们会加入一个Case结构,它将会处理软件可能出现的所有状况。事实上,While循环+Case结构的组合是非常强大的,使用这个组合几乎可以创建你能想到的任何应用软件。

主循环

  几乎所有的LabVIEW程序至少有一个主循环,这个主循环在程序结束之前将一直循环。程序结束的原因可以是按了程序停止按钮、程序出错或其他原因。下图就是一个While循环的例子,里面有一个标准的等待函数(防止程序独占CPU)以及一个停止按钮。 

  现在再向这个While循环里面添加一个Case结构并连接一个按钮。在Case结构的TRUE情况中,我们添加我们的工作函数或子VI来做些有用的事。下面的框图就是这样一个例子。在下图例子中,当按下Do按钮后,将会弹出一个"Hello World!"的对话框。(不过你要把Do按钮设置为Mechanical Action>>Latch When Released,以确保按下按钮后只出现一次Hello World的对话框)

 

 

 

 

  这里可以仔细的研究一会。这种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类型的整型数据。


关键字:LabVIEW  While循环  Case结构

编辑:什么鱼 引用地址:http://www.eeworld.com.cn/Test_and_measurement/article_2016080316506.html
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。

上一篇:LabVIEW中数组的自动索引
下一篇:VI设计时要遵循的3个原则

论坛活动 E手掌握
关注eeworld公众号
快捷获取更多信息
芯片资讯 锐利解读
微信扫一扫加关注
芯片资讯 锐利解读
推荐阅读
全部
LabVIEW
While循环
Case结构

小广播

独家专题更多

迎接创新的黄金时代 无创想,不奇迹
迎接创新的黄金时代 无创想,不奇迹
​TE工程师帮助将不可能变成可能,通过技术突破,使世界更加清洁、安全和美好。
TTI携TE传感器样片与你相见,一起传感未来
TTI携TE传感器样片与你相见,一起传感未来
TTI携TE传感器样片与你相见,一起传感未来
富士通铁电随机存储器FRAM主题展馆
富士通铁电随机存储器FRAM主题展馆
馆内包含了 纵览FRAM、独立FRAM存储器专区、FRAM内置LSI专区三大部分内容。 
电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2017 EEWORLD.com.cn, Inc. All rights reserved