配色: 字号:
虚拟仪器_labview_课件PPT_第五章_结构与属性控制
2012-09-23 | 阅:  转:  |  分享 
  
第五章结构与属性控制5.1For循环For循环是LabVIEW最基本的结构之一,它执行指定次数的循环。相当于C语言的For循环
:for(inti=0;igramming→Structure子模板中创建。5.1.1For循环的组成最基本的For循环由:循环框架、迭代端口i
和总计数端口构成。此外,LabVIEW在For循环中引入移位寄存器(ShiftRegister)和框架隧道(LoopT
unnel)两个独具特色的新概念。数据在移位寄存器中的流动过程:移位寄存器的特点:(1)移位寄存器(左右)是For循环的
数据缓冲区。(2)可以增加和减少移位寄存器的个数。(3)左右两侧移位寄存器的数据类型必须一致。框架隧道:框
架隧道是For循环与循环外部进行数据交换的数据隧道。其功能:(1)在循环开始前,将循环外的数据送至循环内;(2)在循环结束
后将循环结果送至结构外。框架隧道的属性:有索引(EnableIndexing)和无索引(DisenableIndexi
ng)。(1)当框架属性为EnableIndexing时,该框架隧道就是一个数据缓存,每次循环结果在隧道内按先后次序组成
一个数组,循环结束时,一次将合成的数组送出。(2)当框架属性为DisenableIndexing时,该框架隧道最后一次
循环送过来的数据,并在循环结束时将该数据送出。框架隧道属性用框架隧道右键菜单设置。5.1.2For循环的使用例5.
1.1求N!.5.1.3For循环的特点1.一旦For循环开始执行,就必须执行完相应次数循环后才能终止,不可中途跳
转出来。2.具有自动索引功能例:求一维数组所有元素的和。当For循环计数端口给定值与两数组长度不等时,Fo
r循环自动按最小循环次数执行。5.2While循环当循环次数不能预先确定时,就需要用到While循环。它也是LabVI
EW最基本的结构之一。相当于C语言的While循环和do循环:While(条件){}Do{}LabVI
EW中While循环可从框图功能模板Function→Programming→Structure子模板中创建。5.2.1W
hile循环的组成最基本的While循环由:循环框架、迭代端口i和条件端口构成。条件端口控制循环是否执行,每次循环结
束后,判断条件端口的值,若为False,停止执行循环;若为True,则继续执行下一次循环。不给条件端口赋值,则While循环只执行
一次。此外,LabVIEW在While循环中也可引入移位寄存器(ShiftRegister)和框架隧道(LoopTun
nel),与For循环中用法完全相同。5.2.2While循环的使用例5.2.1求N!.5.2.3While循环的
特点1.具有自动索引功能例:显示一维数组所有元素。5.3顺序结构在代码式的传统编程语言中,默认的情况是,
程序语句按照排列顺序执行,称为控制流程;但LabVIEW中不同,它是一种图形化的数据流式编程语言,具有并发、多任务的特点。
在LabVIEW7.0以前只有一种顺序结构。从LabVIEW7.0开始,旧版本的顺序结构称为StackedSequence
Structure(堆叠顺序结构),同时引入新的FlatSequenceStructure(平铺顺序结构)。Stacked
SequenceStructure的创建,在Function→Programming→Structure下FlatSeq
uenceStructure的创建5.3.1顺序结构的组成1.StackedSequenceStructure
由:顺序框架(也称为帧,Frame)、框图标识符和递增/递减按钮构成。如下图:StackedSequenceStr
ucture帧序号从0开始。StackedSequenceStructure中引入了局部变量(SequenceLo
cal)的概念,通过局部变量就可以在顺序框架中向后传递数据顺序框架中也存在框架隧道,但隧道没有EnableIndexi
ng和DisenableIndexing属性右击顺序框架,在弹出对话框中可增加删除帧。2.FlatSequenceSt
ructure与StackedSequenceStructure结构具有相同的功能,区别仅在于表现形式不一样。堆
叠结构相对平铺结构,比较节省空间。平铺结构在帧数不多时,把每个帧平铺开来,比较直观,便于代码阅读。平铺结构如下图:FlatSe
quenceStructure顺序结构不能添加局部变量(SequenceLocal),因为每个帧都是可见的,不需要局部变量这种
机制在帧之间传递数据。平铺结构可以转换为堆叠结构。5.3.2顺序结构的使用例5.3.1用For循环产生一个2000点的
随机波形,并计算所用时间.5.3.3顺序结构的特点1.LabVIEW在堆叠顺序框架中引入了局部变量(SequenceL
ocal)的概念,通过本地结果就可以在顺序框架中向后传递数据。2.顺序框架中也存在框架隧道,但隧道没有EnableInd
exing和DisenableIndexing属性。3.NI提供了顺序结构,却不提倡过多使用。因为:●顺序结构妨
碍了LabVIEW的优点之一的并行运行机制;●顺序结构掩盖了部分程序代码,中断了作为LabVIEW特点的数据流形式。5.
4Case结构Case结构也是LabVIEW最基本的结构之一。相当于C语言的switch语句:switch(表达式)
{case1:语句1;case2:语句2;casen:语句n;default:语句n+1;
}LabVIEW中Case循环可从框图功能模板Function→Programming→Structure子模板中创建。5
.4.1Case结构的组成最基本的Case结构由:Case框架、选择端口、框图标识符和递增/递减按钮构成。上图中选
择端口相当于C语言的Switch语句中的“表达式”,选择标识符相当于“表达式n”。选择端口的外部控制条件的数据类型有3种:
布尔型、数字型和字符串型。控制条件的数据类型必须与选择标识符中数据类型一致。1.控制条件为布尔类型,选择标识符取值
True和False;2.控制条件为数字类型,选择标识符取值0,1,2,…;3.控制条件为字符串类型,选择标识符
取值“条件n”;5.4.2Case结构的使用例5.4.1求一个数的平方根,若该数>=0,输出开方结果;否则弹出对话框,
报告错误,同时输出-99999.00.5.4.3Case结构的特点1.LabVIEW的Case结构简洁明了,不但相当于S
witch语句,还可以实现ifelse语句功能。2.Case框架中也存在框架隧道,但隧道没有EnableIndexin
g和DisenableIndexing属性。3.每个子框架必须连接一个数据,否则程序出错。5.5事件结构5.5
.1事件驱动的概念LabVIEW是一种数据流的编程环境,由数据流决定程序中节点的执行顺序。但在编程中可以设置事件,对数据流
进行干预。这些事件是用户在前面板的互动操作,如:点击鼠标事件、键盘事件等。在事件驱动程序中,首先是等待事件,当事件发生时执行
指定事件的程序代码,对事件进行响应,然后再回到等待状态。使用事件设置,当用户改变一个前面板的值、关闭前面板、退出程序等,都可
以被程序及时捕捉到。5.5.2事件结构的建立LabVIEW中Event结构可从框图功能模板Function→Struct
ure子模板中创建,如下。5.5.3事件结构的设置在事件结构边框右键弹出菜单上选择CaseEventCase添加事件
子图形代码框。点击事件数据节点可以选择、添加、删除事件节点。在EditEventsHandledbyThis
Case设置代码框设置事件源和事件类型。例5.5.1:事件结构的使用。当按钮或滑钮按下时产生MouseDown事件,执行0
帧代码,弹出对话框,询问是否继续?点击Yes,继续While循环,点击No结束While循环。此外设置一个超时处理事件,假如5秒没
有在前面板操作,则退出While循环。5.6公式节点假如程序中有一些复杂的数学计算,编写图形代码是比较麻烦的。如x>0,
y=mx3+3nx2-x+1;x<=0,y=-2mx3+x-5。5.6.1公式节点的创建①在功能模板Functio
n→Programming→Structure子模板中选择FormulaNode。②添加输入输出端口。③公
式节点的预定义函数。④公式节点的操作符。5.6.2公式节点的使用例5.6.1求y=3
x+100例5.6.2如x>0,y=mx3+3nx2-x+1;x<=0,y=-2mx3+x-5。
应用选择结构<逻辑表达式>?<表达式1>:<表达式2>;5.6.3公式节点的特点1.LabVIEW的公式节点的使用简化
计算公式的图形化编程,提高了效率。2.公式节点框架中出现的所有变量,必须有一个对应的输入输出端口,注意输入输出端口是可设置
的。3.公式节点框架内每个公式后以分号”;”结束。5.7定时循环结构5.7.1定时循环的创建在功能模板Fu
nction→Programming→Structure子模板中选择TimedStructure下的TimedLoop。
5.7.2时间顺序结构5.8属性节点前面板对象属性是指前面板上控件的外观和功能特征,如显示的颜色、可见性、闪烁、位
置、比例等。5.8.1属性节点的创建简便的方法是在前面板对象或其端口的右键弹出菜单中选择Creat→Property
Node,如下图:属性类型的选择,单击属性节点,在弹出菜单中的Property下,列出了对象的所有属性,如下图:5.8.
2属性节点的使用①VisibleAttribute控制前面板对象是否可见,数据类型为布尔型。当为True时,可见
;当为False时,不可见②DisableAttribute控制前面板对象是否可用,数据类型为整型。当其值为0时,
可用;当其值为1时,不可用;当其值为2时,不可用,且变暗。③KeyFocusAttribute控制前面板对象是否
处于焦点状态,数据类型为布尔型。当为True时,处于焦点状态;当为False时,失去焦点状态。④BlinkingAttr
ibute控制前面板对象是否闪烁,数据类型为布尔型。当为True时,处于闪烁状态;当为False时,处于正常状态。⑤
PositionAttribute设置控制前面板对象在前面板中的位置,数据类型为簇,均为整型。⑥BoundsAt
tribute(ReadOnly)获得控制前面板中对象的大小,包括高和宽,数据类型为簇,均为整型。5.8.3属性节点的
特点1.与本地变量类似,属性节点也有Read和Write两种属性。2.在编程中会经常应用到属性节点,特别是对于Gra
ph和Chart波形控件,应用属性节点能添加不少实用功能。在第6章中详细介绍。实验三1
.产生100个0.0~100.0的随机数,求其最小值、最大值、平均值,并将数据在Graph中显示。2.产生0.0~100
.0的随机数序列,求其最小值、最大值、平均值。并将随机数序列和平均值序列显示在Chart波形图中,直到人为停止。3.程序开始
运行后,要求用户输入一个口令,口令正确时,滑件显示件显示一个0~100的随机数,否则程序立即停止。4.编写一个程序测试自己在
前面板输入一下字符串所用的时间:Avirtualinstrumentisaprograminthegraphica
lprogramminglanguage.实验四1.在前面板中显示一个按钮和一个滑
钮,当在按钮或滑钮上按下鼠标时,产生事件。当该事件发生时,弹出对话框,询问是否继续,点击yeswhile循环继续执行;若点击No
退出while循环;此外设置了一个超时处理子图形代码框,若5秒钟没有在前面板操作,则退出while循环。2.编写计算以下等式
的程序:y1=x3-x2+5y2=mx+bx的范围是0~10;y1和y2用数组显示件显示在前
面板上。3.编写一个程序,实现是否可视、可用、焦点状态、闪烁、位置及对象尺寸等属性。超时端口Timeout连接一个数值
指定等待事件的毫秒数。默认值为-1,即无限等待。通过事件端口可以访问事件的数据值。事件选择标签显示当前响应事件的子图形代码框。→→→输入端子左数据端子右数据端子输出端子用ConfigureTimedLoop(双击输入端子)配置输入端子:用输入端口配置输入端子:→增加多种属性,方法1:拖动;方法2:AddElement第五章结构与属性控制5.1For循环(重点)5.2While循环(重点)5.3顺序结构(重点)5.4选择结构(重点)5.5事件结构5.6公式节点5.7定时循环结构5.8属性节点(重点)→→例5.1.2求0到99之间所有偶数的和.→2.停止条件可修改,避免死循环。→→→→
献花(0)
+1
(本文系qiange21首藏)