文章目录
- 条件结构
- 案例一(布尔输入)
- 案例二(整数输入)
- 案例三(字符串输入)
- 事件结构
- 案例一
- 案例二
- 禁用结构
条件结构
条件结构的组成部分:
- 选择器标签(带方框的“?”):显示相关分支执行的值。可指定单个值或一个值范围。通过选择器标签指定默认分支。
- 子程序框图(分支):包含连线至条件选择器接线端的值与条件选择器标签中的值相匹配时,执行的代码。右键条件结构边框并选择相应选项,可修改子程序框图的数量或顺序。
- 条件选择器(条件结构顶部):根据输入数据的值,选择要执行的分支。输入数据可以是布尔、字符串、整数、枚举类型或错误簇。连线至条件选择器的数据类型决定了可输入条件选择器标签的分支。
案例一(布尔输入)
案例一:在条件结构中设置一个开关按钮,当开关按钮的布尔值为真时,显示字符串“我是真”,为假时,显示字符串“我是假”。
- 在前面板中,鼠标右键,在布尔模块选择开关按钮,然后在程序框图中鼠标右键,在结构模块中选择条件结构,并将开关按钮与选择器连接起来。
- 在前面板中鼠标右键,在字符串与路径模块中选择字符串显示控件,并将其放入条件结构中,创建常量,输入“我是真”,然后在鼠标移动到字符串显示控件上,鼠标右键,选择创建-属性节点-值,并将其改为全部写入。
接着将条件结构切换到“假”分支,将该值放入假分支中,创建常量,输入“我是假”,最后在最外围,放上一个while循环。
- 运行结果如下:
案例二(整数输入)
案例二:放置一个数值输入控件,并将其变为整型(其他数字类型不支持输入)与条件结构的选择器连接,并添加4个条件分支,分别为22、45、60、78,每个条件分支皆有对应的字符串表达。
- 在前面板中放置数值输入控件,在程序框图中放置条件结构,并将其连接起来,然后鼠标移动到数值输入控件的位置,鼠标右键,在表示法中选择长整型(其他整型皆可)。
如下图所示,选择长整型后控件颜色改变,并且条件选择器的真变为1,假变为“0,默认”。
- 鼠标移动到条件选择器的位置,鼠标右键,选择在后面添加分支,重复四次,并修改对应条件选择器的值为22、45、60、78。
- 在前面板中放置字符串显示控件,并将其拖动到1分支,在其属性节点中创建值,并复制4份,分别放入新创建和0的分支中,分别设置其对应的字符串表达。
- 使用while循环将整个程序包住。
- 运行结果如下,前面板中,当输入值为5时,字符串显示我是其他的值,当输入数值为45时,显示我是45。
案例二小节:为什么输入5时,字符串会显示我是其他的值呢?因为LabVIEW中的条件结构相当于文本语言中的if……else……
或switch
语句,当输入的值不为1、22、45、60、78时,则会跳转到0,默认这一分支中。
Tips
:若误将默认分支删除,可在某一分支或创建新的分支,鼠标右键,选择本分支设置为默认分支即可。
Tips
:快捷键小知识,ctrl+R
运行程序,ctrl+.
结束程序。
案例三(字符串输入)
字符串输入与整型输入的方法和思路相同。
案例三:创建一个字符串输入控件并将其与条件结构连接,创建两个分支,分别为街三仔、加油,然后在真分支中放置字符串显示控件,并在其属性节点中创建值,在其他分支中设置不同字符串的值。
-
在前面板中,鼠标右键,在字符串与路径模块中选择字符串输入控件和字符串显示控件,在程序框图中,将字符串输入控件与条件结构连接,并将字符串显示控件放入“真”分支中。
如下图所示,当字符串输入控件与条件结构连接时,条件选择器的值发生改变,分支变为"真"、“假”, 默认,带有""
即表示字符串。
-
分别创建街三仔、加油这两个分支,并在字符串显示控件中的属性节点创建值,并复制三份,分别放入"假", 默认、“街三仔”、"加油"中,并设置不同的字符串表达。
-
在最外围放置while循环。
-
运行结果如下。当输入
Hello
时字符串显示控件显示我是其他,当输入街三仔时,字符串显示控件显示街三仔。
事件结构
事件结构用于在程序运行时响应用户交互或系统事件,类似于传统编程中的事件处理机制。通过事件结构,可以实现对各种事件(如按键按下、鼠标点击、数值变化等)的监测和处理。以下是关于LabVIEW中事件结构的一些特点和用法:
-
事件绑定:
事件结构可以与控件、对象或数据通道等元素进行绑定,以监测这些元素的特定事件。例如,可以将事件结构与按钮控件绑定,以响应用户的点击事件。 -
事件类型:
LabVIEW支持多种事件类型,如按键事件、鼠标事件、定时器事件、数值变化事件等。 -
事件处理:
在事件结构中,可以为每种事件类型指定相应的处理代码,以定义事件发生时应该执行的操作。
事件结构编程的3条黄金法则:
- 不要将事件结构放置在while循环之外,而应该放置在while循环的内部;
- 不要在事件结构的内部使用循环处理事件,可选择采用生产者消费者结构,在生产者循环中放置事件结构,在消费者循环中处理事件;
- 记得为事件结构添加一个单独处理停止按钮的分支。
案例一
案例一:利用事件结构,使用两个确定按钮控件圆形指示灯的亮灭。
- 在前面板中,鼠标右键,在布尔模块中选择确定按钮,设置连个确定按钮,然后设置圆形指示灯。接着在程序框图中,鼠标右键,在结构模块中选择事件结构。
- 选中事件结构,鼠标右键,点击添加事件分支,然后在事件源中选择打开按钮控件,事件选择值改变,点击确定,即可绑定打开按钮控件的事件为值改变。
同理,将关闭按钮控件绑定事件设置为值改变。
设置好后发现事件选择器中增加了打开和关闭的事件分支,并分别将打开和关闭按钮放入对应的事件分支中。
- 将圆形指示灯放入打开事件分支中,创建常量,设置为
T
,即灯亮,并在属性节点中创建值,将其值放入关闭事件中,创建常量,设置为F
即灯灭。
- 运行结果如下,从以下第一张图可看到,当没有事件到来时程序一直在执行。第二张图可看到,当点击打开按钮时,灯亮,程序运行结束。
案例二
从案例一中可基本了解事件结构的用法,但是为什么当没有事件到来时,程序一直在运行呢?
如下图所示,将鼠标移动到事件结构的左上角,点击右键,点击创建常量,发现其值为-1
,-1
表示无穷等待,即一直等待事件到来,该值也是事件结构的默认值。
案例二:基于案例一,让事件结构在3s内,没有事件的到来,则自动将灯点亮。
- 设置事件结构的等待事件为3s,在圆形指示灯的属性节点中创建值,并将该值放入,[0] 超时的事件分支中,创建常量,设置为
T
。
注意:[0] 超时事件分支表示运行程序时,时间结构等待的时间超过用户设置的等待时间,则自动进入该分支中。
- 运行结果如下,第一张图为程序刚运行等待事件没有超过3s时,灯是灭的。第二张图为等待事件超过3s,灯亮。
Tips
:可在事件结构外放置while循环,这样当事件到来时,程序不会直接结束,但需要注意的是,不要再事件结构中放置while循环,一旦进入放置while循环的事件分支中,则跳不出来。
禁用结构
禁用结构(Disable Structure)是一种特殊的控制结构,用于临时禁用或启用其中包含的程序代码段。
禁用结构也相当于文本语言中的注释。
案例:基于事件结构的案例二,设置事件结构为无穷等待,并在事件结构外部使用while循环,将关闭事件分支的程序使用禁用结构禁用起来。
-
在程序框图中,将事件结构设置为无穷等待,使用while循环将事件结构包住,鼠标右键,在结构模块中选择程序框图禁用结构,将关闭事件分支中的程序禁用。
注意:删除事件结构左上角的等待事件,即表示设置事件结构的等待时间为其默认值。
-
运行程序,发现点击关闭按钮,灯不灭。