微波EDA网,见证研发工程师的成长!
首页 > 测试测量 > 测试测量技术文库 > Labview结构的使用

Labview结构的使用

时间:01-05 来源:互联网 点击:

顺序结构的用法。

  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,并在同一图表中显示。

x1=t^3-10*t+1

x2=a*t+b

其中:t共取10个点,范围是从0~9

  1. 新建一个VI,在前面板上放置一个波形图,用于同时显示输出的两个波形。同时放置两个数值输入控件,它们分别表示x2函数的斜率和截距。
  2. 在程序框图上放置一个For循环,计数端子设为10,计算自变量t分别等于0到9。
  3. 在For循环中添加一个公式节点,为它添加三个输入端口,分别与重复端口i,斜率a和截距b相连,并添加两个输入端口,分别表示输出x1和x2。再用文本标签工具再公式节点里添加代码。
  4. 在数组函数子模板中选取“创建数组“函数将x1和x2合并为一个二维数组,并在波形图中同时显示。
  5. 完成连线,如图:

运行结果如图:

全局变量和局部变量

全局变量和局部变量是LabVIEW用来传递数据的工具。LabVIEW编程是一种数据流编程,它是通过连线来传递数据的。但是如果一个程序太复杂的话,有时连线会很困难甚至无法连接,这时就需要用到局部变量,就如同Protel软件画电路原理图一样,给相同的连线添加网络标号,标识它们是相通的。另外用户也许会经常碰到这样一种情况,既能够对程序中一个控件对象写入数据,又要能够读出它的数据,这在数据流编程中是无法实现的,这也需要用到局部变量或者全局变量,全局变量主要是针对不同VI程序之间的通信。

局部变量:

谈到局部变量,其实早在介绍顺序结构时就已经接触过了,当时是添加顺序局部变量来传递程序初始时

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top