目录
一. For循环
1.1 移位寄存器
1.2 隧道模式
二. While循环
三. 条件结构
四. 事件结构
五. 顺序结构
六. 程序框图禁用结构
一. For循环
在左上角的N处设置循环的总数,若想For循环的内部程序执行n次,则循环总数设置为n;
左下角显示的是循环计数接线端,从0开始显示,循环运行完整时,输出n-1.
For循环可以同While循环一样显示条件接线端, 在其右键快捷菜单中可进行显示。
条件接线端的两种形式:
1.1 移位寄存器
在For循环的右键快捷菜单中可添加移位寄存器,移位寄存器其实就是将上一个值/变量/参数等移动到开头的地方再执行,因为存储了上一次的数据,并且移到了开头继续将变量带入执行,因此叫移位寄存器,下面演示了用移位寄存器来创建数组。
1.2 隧道模式
当有数据流过For循环或其它结构时,便会产生隧道。
最终值:循环结束的最后一个值;
索引:将每次运行的结果都进行保留,数值→一维数组,一维数组→二位数组
连接:连接是针对数组的,将每次运行的数组进行连接;
条件:输出满足条件的数据。
最终值,索引,条件
连接
二. While循环
While循环没有循环总数输入端口,只要不满足条件接线端的停止条件,While循环内部的程序将会一直运行。
在While循环的右键快捷菜单上可以实现和For循环的替换。
三. 条件结构
一般情况下,条件结构根据条件接线端的布尔数据类型执行相应的真分支或假分支,输入为真则执行真分支,输入为假则执行假分支。
条件结构的条件接线端的数据类型并非必须为布尔量,对于多种状态来讲,可以使用枚举控件来进行选择。(实质为整型数值量)
在枚举控件的右键快捷菜单中编辑项,来设定我们所需要的条件名字。
然后将枚举连接到条件结构接线端,在选择器标签右键选择 “为每个值添加分支” 即可为每个值添加一个子程序框图。
或者可以根据输入数值的大小来执行相应的子程序框图。
若分支不够,在右键快捷菜单中还有 “在此分支前或后添加分支”,并且可以利用 “重排分支” 对分支进行排序。
四. 事件结构
事件结构是专门用于对前面板上所产生的动作进行编程的一种结构,它极为重要。举例来说,平时在程序运行时我们点击右上角的关闭,则会关闭我们的前面板。关闭前面板就是一个动作,我们可以在程序框图中用事件结构编写当前面板关闭时来停止程序运行,而不关闭前面板。
在事件结构右击点击 “添加事件分支”,添加的内容如下图所示。
程序框图如下:
这样在程序运行时,我们关闭前面板即可停止程序运行。
下面两幅图简单演示了鼠标进入布尔灯让灯亮,离开布尔灯让灯灭的简单示例。
在事件结构的左上角上表示超时时间,如果在规定时间内没有触发任一事件则执行超时分支,设置为-1代表事件结构永不超时。
五. 顺序结构
LabVIEW最大的特点是数据流驱动,所以程序不一定会按图形代码的先后顺序执行,这是和传统的文本编程语言最大的不同之处。
如果一定要指定某段代码的先后执行顺序,则可以用顺序结构来实现。顺序结构包含一个或多个按顺序执行的子程序框图或帧,程序中用帧结构来控制程序的执行顺序,从左到右执行完某一帧中的程序以后再执行下一帧中的程序。
上图例子所示,两个时间计数器的差值就是Sub VI的执行时间。
上图显示的是平铺式顺序结构,平铺式顺序结构可以转化为层叠式顺序结构,但平铺式顺序结构显示更加直观。
按照数值顺序从小到大顺序执行,[0..2]代表有0,1,2共三步需要执行。
六. 程序框图禁用结构
将程序框图套在暂时不需要执行的程序上可禁用此段程序,以免程序框图报错无法运行,经常在程序调试时使用。
若调试完成,恢复此段程序可在程序框图禁用结构处右击弹出快捷菜单中选择 “删除程序框图禁用结构”。