Case结构是
labview中另外一个功能强大的程序流程控制结构。Case结构在 LabVIEW中用于完成根据输入文本进行选择执行,功能上和文本编程语言中的"if-then-else"结构一样。我们可以在LabVIEW的函数工具板的Programming>>Structures部分看到这个结构。Case结构有两个以上的子框图,在程序的执行过程中,根据连线到选择端子(selector terminal)上的布尔量、数字或者字符串值的实际值,只会执行这些子框图中的一个。
如果在LabVIEW中,一个布尔量连接到Case结构的选择端子,那么这个Case结构会有两个Case,分别是FALSE与TRUE。对应着布尔类型变量的两个值。
如果连接数值或者是字符串类型的变量到Case结构的条件选择端子,这个LabVIEW中的Case结构就可以有从一个到无穷多个的case。初始情况下,Case结构是只有两个case的,不过在LabVIEW中可以非常容易的添加多个case。对于一个case可以设定多个值,只需要在每个值之间使用英文逗号分开即可。另外,你必须为Case结构设定一个默认的case,当连线到选择端子的值与整个Case结构的值都不一致的时候,就会执行这个默认 case中的子框图。在使用LabVIEW进行编程的时候可能不会考虑到所有可能的情况,这个时候就需要一个默认case来处理意料之外的事件了。
Case结构可以有多个子框图,不过你一次只能看到其中的一个,如果需要浏览其他的子框图,可以使用Case结构上端的减小(左侧)或增加(右侧)按钮来查看前一个或后一个子框图。还可以点击Case结构上方的下拉菜单按钮来列出所有的子框图,之后点击其中的一个进行查看。还可以在Case结构的边框上点击鼠标右键,从右键菜单中选择Show Case来查看某一个子框图。
如果你连接了一个浮点数到Case结构的选择端子,LabVIEW会自动的将其转换为I32类型的数据,并会按照转换之后的整数来完成对子框图的选择执行。
你可以在Case结构的左边框上任意移动选择端子。当连接变量到这个端子时,Case结构将会自动识别变量的数据类型并修正各个case。当把链接到选择端子的整数值更换为布尔量的时候,原来的case 0和case 1就会自动变成FALSE和TRUE。如果除了这两个case之外还有其他case存在,LabVIEW并不会删除其他的case,以防用户不小心改错代码。但是如果你要继续执行这个Case结构,就需要删除其他的case了。
如果连接字符串类型变量到选择端子,应该把字符串值放到一对英文的双引号之间。如果在输入的时候忘了写这个对双引号,LabVIEW也会自动为你添加的。
如果需要添加新的case,只需要在Case结构的边框上点击鼠标右键,之后选择Add Case After或Add Case Before来在当前case前面或后面添加新的case。
Case结构中的数据输入与输出
输入到Case结构的数据(包括了通过隧道Tunnel和选择端子)对所有的case来说都是可以访问的。每个case是否使用输入数据并没有硬性规定。但是当其中一个case使用数据输出隧道(tunnel)输出了数据之后,全部的case都需要输出一个值。当在一个case中使用输出隧道(tunnel)输出数据后,其他的case在相应位置都会有一个小白块。LabVIEW这时的运行按钮就变成无法运行的状态,只有在每个case都为输出数据设定一个输出值之后这个运行按钮才会变为可运行状态,而且原来的小白块会变为黑色。
你也可以在那个小白块上点击右键之后选择Use Default If Unwired来让其他case输出默认值。不过在使用这个选项的时候需要特别小心,以防出现不可预知的运行结果。