• 易迪拓培训,专注于微波、射频、天线设计工程师的培养
首页 > 测试测量 > Labview 虚拟仪器 > Labview结构的使用

Labview结构的使用

录入:edatop.com    点击:

条件结构

条件结构是执行条件语句的一种方法。这类似于文本编辑语言中常见的If…Then…Else语句。它位于程序框图中,函数→编程→结构→条件结构。如图所示:

条件结构包含有两个或者更多的子框图,每一个子框图包含一段程序代码,由此对应一个程序分支。多个子框图就像一摞卡片重叠在一起,任何时候只有一个是可见的,执行哪一个取决于于选择端子外部接口相连的某个整数,布尔数,字符串或者枚举指,用户也可以直接输入所有可能出现的值。

1. 选择端口的输入值

条件结构选择端口的输入值是由与它相连的输入控件对象决定的,数据类型可以是布尔量,整形,字符串型或者枚举型。条件结构顶部中间是各分支的选择标识,它自动调整为输入的数据类型,可以在工具模板上使用标签工具直接键入单个数值或某个数据范围。数值之间用逗号来分开,例如:“..0,2,4..10”表示选择条件为:≤0,2,4,5,6,7,8,9,10。

对于字符型和枚举型数值在条件标识上会自动加上双引号,当键入的选择器标识值与连接选择端口的数值类型不同时,选择器标识变为红色标识有错误。如图:

设置默认分支的方法是,选择一个分支结构,在快捷菜单中执行“本分支设置为默认分支”,它的作用是当选择端口的值与选择器标识值没有一个匹配时,就执行默认分支。如图:

2.条件结构的数据通道

条件结构的数据通道就是数据的输入和输出端口。将结构内外的端子相连后,边框上就会出现一个小矩形框,这就是数据通道,用于传输数据。向条件结构的一个分支提供数据时,这个数据对于所有的分支都是有效的,也就是其他分支都可以使用这个输入数据。条件结构的输出通道有些不同,当在一个分支中创建输出通道后,所有分支的同一位置都会出现一个白色小方框,它要求每一个分支都必须为这个通道予以连接,通道变为实心后程序才可以运行。也可以在通道的快捷菜单中选定“未连线时使用默认”为没有连接的分支定义一个默认输出值,这时输出通道变为灰色。如图:

条件结构应用举例

例一:

该例的目的是检查一个数是不是正数,如果是就计算该数的平方根值,如果不是则发出警告。

  1. 新建一个VI,在前面板上放置一个数值输入控件和一个数字显示控件。
  2. 在程序框图上放置一个条件结构,调整边框为合适大小。
  3. 在比较运算子模板中选取“大于等于0?”函数,如果数字大于或者等于0则返回真,否则返回假。它的输出连接条件接口的选择端口。
  4. 在数值数字运算子模板中选取“平方根”函数,放置在条件结构的“真”子代码框。
  5. 选择一个发声函数,放到条件结构的“假”子代码框。它位于函数→编程→图形与声音→蜂鸣声。如图:
  6. 在条件结构的假代码框的输出通道上选取创建常量,创建常数-999,表示当数值输入为负数时输出-999,同时蜂鸣器发出警告。
  7. 完成连线,如图:

运行结果如图:

例二:

该例的目的是首先要判断液面的高度是否超过零界面,如果超过零界面则执行后续操作(循环判断液面是否超位),否则停止执行程序。

因为Labview语言的While训话是先执行,然后再判断条件。而在实际应用中,经常是要求先进行判断条件,只有当条件满足时才执行,否则不执行。可以在While循环中加入条件结构来实现此功能

  1. 新建一个VI,在前面板上放置一个数值输入控件,模拟容器“液面高度”同时放置一个“液面报警”指示灯,当液面超过零界面时点亮。
  2. 在程序框图上放置一个While循环结构并在它内部放置一个条件结构,调整结构边框位合适的大小。
  3. 在比较运算子模板中选取“大于0?”函数,如果数字大于0返回真,否则返回假。它的输出连接条件的选择端口,并且连接到While循环结构的循环条件端子,表示输入数字量大于0则继续循环,并且执行真分支。
  4. 在真分支代码框中,放置“大于?”函数,将“液面高度”与上限值“5”进行比较,输出送给“液面报警”指示灯。
  5. 完成连线,并运行程序。程序及运行结果如图:

顺序结构

顺序框图位于函数→编程→结构→平铺式顺序结构,层叠式顺序结构。

顺序结构依次执行程序,它可以包含多个代码子框图,这些代码子框图看起来就像是多帧电影胶片一样,所以把每个子框图称为帧。右击顺序结构的框架,将弹出如图所示的快捷菜单。 [p]

其中添加顺序局部变量是为了在各个帧之间传递数据。

顺序结构的一个典型应用就是计算程序运行的时间,将通过这个例子来说明顺序结构的用法。

  1. 新建一个VI,在前面板上放置一个数值输入控件“给定数据”和两个数值显示控件“执行次数”,“所需时间”。
  2. 在程序框图上放置一个层叠式顺序结构,右击结构边框,在弹出的快捷菜单中执行两次“在后面添加帧”,创建帧1和帧2。
  3. 选取第0帧,记录程序运行初始时间。
  4. 右击顺序结构框图的边框,在弹出的快捷菜单中执行“添加顺序局部变量”,这时在第0帧的下边框出现一个黄色小方框,这就是顺序局部变量,它可以在同一个顺序结构中的各帧之间传递数据。

    放置一个时间计数器到顺序结构内,它位于函数→编程→定时→时间计数器。返回毫秒定时器的值,用与计算占用的时间。用连线工具将它与顺序局部变量相连,这时黄色小方框里会出现一个指向顺序结构外部的箭头,数值可用后续帧使用,如图:

  5. 选取第1帧,实现等于给定值的匹配运算。程序如图:
  6. 选取第2帧,同样放置一个时间计数器函数用于返回当前时间,将它减去顺序局部变量传递过来的第一帧初始时间后就可以得到花费的时间,如图:

运行,结果如图:

注意:Labview编程的主要特点是数据流形式,这便于VI大量的按照并行方式运行,优化了程序的计算性能。而顺序结构却趋向于中断数据流编程,禁止程序并行操作,顺序结构还掩盖了部分代码,所以用户在编程时应尽量不用或少用顺序结构。

在实际应用中,经常用人为的数据依从关系来确定程序先后执行的顺序,在前面簇的章节中,我们就提到过Error簇可以控制程序执行的先后顺序,但并不是每一个控件都有Error簇的输入和输出端口,这时还有另一种方法能实现顺序执行的功能。如图:

从第一个While循环结构中的布尔开关上连了一根线到第二个While循环结构的边框上,可以看到,第二个While循环结构中没有一个对象需要这个数据,只是起到顺序执行程序的目的。

公式节点

用户可以在程序框图的两个位置找到公式节点结构,一个位于函数→Express→算术与比较→公式;另一个位于函数→编程→结构→公式节点。如图:

第一种公式节点的使用比较方便,如图:

当把第一种公式节点放置到程序框图上时,系统便会自动弹出如上图所示的对话框,它的操作比较简单,当上述对话框右上方的方块显示为绿色时,则表明系统识别输入的函数,当出现非法函数时,则表明系统不识别。如图:

它的使用虽然方便,但消耗的系统资源较多,下面我们将重点介绍第二种公式节点的使用方法。

如图:创建一个公式节点到程序框图,在边框上单击右键

选择添加,然后即可在节点框中输入变量名称,如图:

公式节点中的函数和操作符与C语言中的基本相符,遇到特殊函数时查表即可。

应用举例:

例一:该例的目的事联系使用条件表达式来执行不同条件时的数据传输。

下面的代码表示:如果X为非负数,Y等于X的平方根;如果X为负数,Y等于-999。

if(x>=0)then y=sqrt(x)

else y=-999

end if

对这段代码可以用公式节点来计算,需要注意大小写,如图所示:

运行结果如图:

例二:该例的目的是联系使用公式节点来计算两个输出x1和x2,并在同一图表中显示。 [p]

点击浏览:矢量网络分析仪、频谱仪、示波器,使用操作培训教程

上一篇:Labview波形显示控件
下一篇:labview串口调试

微波射频测量操作培训课程详情>>
射频和天线工程师培训课程详情>>

  网站地图