Labview结构的使用

发布者:数据迷航者最新更新时间:2015-10-22 来源: eefocus关键字:Labview  结构 手机看文章 扫描二维码
随时随地手机看文章

条件结构

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

Labview结构的使用

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

1. 选择端口的输入值

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

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

Labview结构的使用

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

Labview结构的使用

2.条件结构的数据通道

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

Labview结构的使用

条件结构应用举例

例一:

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

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

  7. 在条件结构的假代码框的输出通道上选取创建常量,创建常数-999,表示当数值输入为负数时输出-999,同时蜂鸣器发出警告。
  8. 完成连线,如图:
  9. Labview结构的使用

运行结果如图:

Labview结构的使用

例二:

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

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

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

顺序结构

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

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

Labview结构的使用

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

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

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

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

    Labview结构的使用

  5. 选取第1帧,实现等于给定值的匹配运算。程序如图:
  6. Labview结构的使用

  7. 选取第2帧,同样放置一个时间计数器函数用于返回当前时间,将它减去顺序局部变量传递过来的第一帧初始时间后就可以得到花费的时间,如图:
  8. Labview结构的使用

运行,结果如图:

Labview结构的使用

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

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

Labview结构的使用

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

公式节点

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

Labview结构的使用

 

Labview结构的使用

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

Labview结构的使用

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

Labview结构的使用

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

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

Labview结构的使用

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

Labview结构的使用

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

应用举例:

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

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

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

else y=-999

end if

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

Labview结构的使用

运行结果如图:

Labview结构的使用

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

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结构的使用

全局变量和局部变量

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

局部变量:

谈到局部变量,其实早在介绍顺序结构时就已经接触过了,当时是添加顺序局部变量来传递程序初始时间,以便计算程序所执行的时间。目的是在不同选择分支中都能够对指示器进行赋值。

建立局部变量:建立局部变量的方法有两种:一种是在程序框图中直接添加,如图:

Labview结构的使用

另一种方法是右击控件对象,在弹出的快捷菜单中执行“创建/局部变量”如图:

Labview结构的使用

局部变量的应用

该例的目的在于使用局部变量向它联系的前面板上的电流控件写数据,也可以从电流控件读取数据。程序框图如图所示:

Labview结构的使用

 

Labview结构的使用

程序的目的是检验电流量,如果电流大于5A时,则限定电流量为上限5A,这时电流局部变量时写入状态,可以向它写入数据5A,尽管电流控件是控制器;如果电流小于5A时,则将电流通过一个“电流显示器”来显示,这时就需要将电流局部变量改变为读取状态,方法是在快捷菜单上执行“转化为读取”命令。

全局变量:

全局变量与局部变量不同,它是在不同的程序之间进行通信。LabVIEW的全局变量是一个独立的VI,它是一种特殊的程序,没有程序框图只有前面板,功能是保存一个或多个全局变量,所以也把全局变量程序称为“容器”。

建立全局变量:它的建立和局部变量类似,将全局变量拖拽到程序框图中,在它的快捷菜单中执行“打开前面板”,或双击全局变量图标,打开全局变量程序前面板,然后在前面板中添加所需要的全局变量控件,如图,添加了3个全局变量,并保存VI。

Labview结构的使用

建立了全局变量以后就可以在其他程序里面调用它,方法是在程序框图上选中“选择VI...”,如图:

Labview结构的使用

在打开的对话框窗体中为程序选择想要放置的全局变量。如果最先放置的不是想要的全局变量,可以像对局部变量那样操作,在快捷菜单上选取“选择项”子选项,在列出的所有变量对象中进行选择,或者用操作工具来选择。

使用全局变量时必须特别小心,因为它对所有的LabVIEW程序都是通用的,稍有不慎就可能互相干扰,用户必须清楚的知道全局变量的读写位置。用户编辑时既可以向全局变量输入数据,也可以从它读取数据,这一点与局部变量是完全相同的。

全局变量的应用较少,这里就不再举例

使用全局变量和局部变量的注意事项:

LabVIEW语言编程是一种数据流,全局变量和局部变量提供了一种违反严格数据流的程序设计方式。大家有必要了解竞态条件的缺陷,当两个或两个以上的事件可以按任何顺序发生时就产生了竞态条件。用户要想知道再多个并行的程序中一个全局变量什么时候被访问是比较困难的。特别是再多线程编程中,对这种共享数据变量的竞态条件问题要求更加苛刻,使用全局变量会带来意想不到的错误。

如果用户的应用程序中有全局变量,那么就存在大量的数据复制的危险,因为用户要想在不同的地方对数据进行处理,最终就有许多的数据备份,造成内存的巨大开销和系统资源的浪费,所以建议初学者尽量不要使用全局变量。

如果程序中使用了全局变量或者是局部变量,那么在程序运行之前,必须首先要确定它的初始值是否满足执行要求,如果不满足的话,就要对它们进行初始化。

关键字:Labview  结构 引用地址:Labview结构的使用

上一篇:Labview串口的使用
下一篇:Labview波形显示控件

推荐阅读最新更新时间:2024-03-30 23:06

基于包容式结构的智能循迹小车设计
智能小车是一种集环境感知、动态决策与规划、行为控制与执行等多种功能于一体的综合系统,是一种功能简化的移动机器人,广泛用于智能吸尘器、搬运小型物件、清理垃圾等。所谓智能,即是没有人为干预下能自动完成给定的任务。然而,环境未知,执行任务复杂,单一的传感器不能实现其功能,多传感器信息技术被用来感知周围环境与任务执行是一种有效的措施,通过多传感器信息的综合判断处理,获得对环境的正确理解,使小车系统具有容错性,保证系统信息的快速性和正确性,其可靠度高于单个传感器所能达到的目标。常用机器人的体系结构有分层体系结构、包容式体系结构和混合式体系结构。在20世纪80年代Brooks提出了机器人的行为主义和包容结构,将复杂的任务分解成多个简单的可以并
[单片机]
基于包容式<font color='red'>结构</font>的智能循迹小车设计
幻灯机的工作原理与结构
幻灯机的种类较多,形状各异,但它们的光学系统结构基本相同。 1.幻灯机的成像过程 幻灯机的镜头相当于一块凸透镜,当幻灯片处在镜头的一倍焦距和两倍焦距之间时,光源照亮幻灯片通过镜头在银幕上形成一个放大的、倒立的实像。具有这种光路特征的幻灯机称为直射式幻灯机,它的成像过程如图2-2-1所示。 图2-2-1 幻灯机光路图 2.幻灯机的光学系统 幻灯机的光学系统包括反光碗、光源、聚光镜、放映镜头等,它们在幻灯机中的作用和对它们的要求如下: (1)光源 它的作用是发光并照射到幻灯片上。对光源的要求:满足“白昼放映”条件,应有足够的亮度;满足“点光源”条件,灯丝排列面积小;光源表面附近温度低,以免烤坏幻灯片;有较高的色温
[模拟电子]
幻灯机的工作原理与<font color='red'>结构</font>
labview实现串口通信(二)
labview也可以调用mscomm控件来实现串口通信,但是编程相对来讲比较复杂,一般不推荐,直接用labview中自带的visa是最方便的,在调试过程中的注意事项, 一、串口通讯的波特率设置要精确,比如要求9600的波特率,则晶振应选择11.0593MHz或其倍数。 二、由于通常情况下LabVIEW串口VI接收或发送的都是字符串(Normal), 这里是指串口通信中,如果不是在串口通信,我们可以做个小小的验证, 在前面板中,字符串在正常显示的情况下,你输入00,跟字符串00也会匹配,指示灯也会亮的,但是在串口通信中,一定注意, 所以如果需要发送或接收十六进制数值(Hex),请在发送或接收之前进行必要的转换。(这一点尤
[测试测量]
结构化海量网络数据处理技术研究
飞行试验数据处理是飞行试验工程中非常重要的一个环节,是对各类试飞数据信息进行细致、充分和全面的分析与处理,数据处理结果是飞行试验鉴定结论的核心依据。随着计算机网络技术在飞行试验测试领域的深入应用,网络化测试技术逐渐成为飞行试验测试技术发展的另一个核心。同时随着现代飞机设计技术的发展,飞机系统越来越复杂,飞行试验科目、测试参数、测试数据种类以及测试数据总量越来越多。对飞行试验数据处理从质量、速度以及数据安全性、可靠性等方面提出了更高的要求。机载网络化测试系统架构技术应用于最新的飞机测试系统上,该系统采集记录的网络数据记录了飞机一个飞行试验起落的各类测试数据信息,新一代飞机测试参数总量激增,数据总量达到上百个GB。为缩短单架次飞行试
[测试测量]
非<font color='red'>结构</font>化海量网络数据处理技术研究
简述虚拟仪器技术及LabVIEW编程课程的认识和理解
   虚拟仪器 --软件就是仪器    虚拟仪器 ,虚拟示波器, 虚拟仪器 技术, 虚拟仪器 软件, 虚拟仪器 开发, 虚拟仪器 组成   一、引言   当前多媒体计算机、信息高速公路和计算机网络是计算机信息科学的三个重要发展方向。它们相互联系、相互促进、共同发展,已经渗透到人们日常工作、生活、学习、娱乐的各个方面,逐步地由办公室、实验室走向家庭。   虚拟现实是多媒体计算机的一个重要应用领域,多媒体技术是虚拟现实的技术基础。虚拟现实(VirtualReality)是利用多媒体计算机技术生成的一个具有逼真的视觉、听觉、触觉及嗅觉的模拟现实环境。用户可以用人的自然技能对这一虚拟的现实进行交互体验,而用户体验到的结果--该虚拟
[测试测量]
绝缘结构不俗气!电容式电压互感器耐压耐热不分离
1 前言 本电容式电压 互感器 采用一种新型的绝缘结构,即电磁装置为干式结构。 具有下列技术经济特点: 1.1 电磁单元先经过绝缘处理,然后充微正压SF6气体保护。 1.2 防渗漏效果好,气体年泄漏率小于0.05%,产品使用寿命期间几乎不用补气。 1.3 电磁单元无渗漏油的隐患,不用化验油样等年检。 1.4 由于电磁装置充气,可以节省油处理工艺时间,从而缩短产品的生产周期,同时改善了劳动条件。 1.5 对研制GIS用电容式电压互感器提供技术支持。 2 研究的主要内容 2.1 产品性能指标 2.1.1 产品主要性能指标见表1。 2.1.2 产品电容分压器的tanδ≤0.10%,电容偏差不超过额定值的±5%。 2.1.3 中间电
[电源管理]
绝缘<font color='red'>结构</font>不俗气!电容式电压互感器耐压耐热不分离
卷绕式铅酸蓄电池结构性能介绍
卷绕式铅酸蓄电池   卷绕式铅酸蓄电池是近年来开发的新产品。铅酸蓄电池的工作过程就是铅和酸之间的化学反应过程,为了提高蓄电池的比容量,人们需要尽可能加大它们之间的接触面积,为此,人们采用压延铅合金的方式制造出了很薄的铅箔作为极板基片。但这样一来,它的机械强度势必要减小,为了解决这一问题,人们将正极板、隔板、负极板交替叠放,并卷绕在一起。从而制成电池单体为圆柱形的卷绕式铅酸蓄电池,又称螺旋卷式铅酸蓄电池,或卷式电极铅酸蓄电池。其外形如图1所示。      一直以来,卷绕式铅酸蓄电池都是西方发达国家的一张技术王牌。据报道,美国在上世纪60年代就开始研究卷绕式铅酸蓄电池。西方少数发达国家也把卷绕式铅酸蓄电池应用在军事(装
[电源管理]
卷绕式铅酸蓄电池<font color='red'>结构</font>性能介绍
SAR ADC内部结构
前言 用了这么久ADC,从没细看过ADC的内部原理和如何获得最佳精度,今天看到一篇ST的官方文档讲的不错,这里整理分享给大家。 SAR ADC内部结构 STM32微控制器中内置的ADC使用SAR(逐次逼近)原则,分多步执行转换。转换步骤数等 于ADC转换器中的位数。每个步骤均由ADC时钟驱动。每个ADC时钟从结果到输出产生一 位。ADC的内部设计基于切换电容技术。 下面的图介绍了ADC的工作原理。下面的示例仅显示了逼近的前面几步,但是该过程会持续到LSB为止 SAR切换电容ADC的基本原理(10位ADC示例) 带数字输出的ADC基本原理图 采样状态 采样状态:电容充电至电压VIN。Sa切换至VIN,采样期间Sb开关闭合
[单片机]
SAR ADC内部<font color='red'>结构</font>
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
最新测试测量文章
换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved