第2章 虚拟仪器软件开发平台2-3

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
在结构边框上右击弹出的快捷菜单,选择 Replace→Replace with Flat Sequence,可以将层叠式 顺序结构变换为平铺式顺序结构


2.顺序结构的工作方式

数据传递至顺序结构时,层叠式从标识0开始执行,依 次顺序执行;平铺式从左至右执行所有子图形代码框。

从结构外面向顺序结构写数据时,可连接可不连接这 个数据通道;但是当顺序结构向外输出数据时,各个 图形代码框中只能有一个连接这个数据通道。
代码框之间的数据传递,平铺式可从一帧直接连线到 另一帧来传递数据,层叠式则需要通过局部变量—— Sequence Local来传送数据。


在层叠式顺序结构的边框上面右击,选择Add Sequence Local即可在当前帧创建一个顺序局部变量端 口。 将本帧中的数据连接到该局部变量端口,该数据就可 传到后面的帧,该数据不会作用到它前面的帧。
循环 框 计数端口 条件端口

2.While循环的工作流程
条件端口控制循环的停止与否。 条件端口有两种状态 :

当使用状态为Stop if True 时,若输入值为Ture, 则停止循环 。若输入值为False,则继续执行下一次 循环。 当使用状态为Continue if True 时,若输入值为 Ture,则继续执行下一次循环。若输入值为False, 则停止循环。
2.3.4 顺序结构



LabVIEW是一种数据流程序设计语言,没有明确的先后顺 序,当节点所有输入端的数据全部有效时,节点才执行。 Sequence结构,它是一种先后顺序执行的结构,看上去象 电影胶片的帧(Frame),每一帧为一段框图程序,按照 帧(Frame)的顺序来执行框图程序。 两种形式顺序结构,Flat Sequence Structure平铺式顺序结构 和Stacked Sequence Structure层叠式顺序结构。功能相同, 区别仅在于表现形式不同。


循环结束后,才去检测条件端口的值,因此不 管条件是否成立,循环至少要执行一次。

计数端口用于统计循环执行的次数,While循环 每执行一次,计数端口的值就加1。
计数端口从零开始计数,也就是说,在第一次 循环结束时,计数端口的值为0,如果循环执行 了10次,则计数端口的值为9。 While循环也具有数据通道索引和移位寄存器、 反馈接点的功能,它们的用法与For循环相同, 只是While循环的边框数据通道默认为不能索引。


如下图示意了层叠式顺序结构通过局部变量传递 数据的情况。在标识是1号帧的一个数据传递到标 识是2号的帧进行“或”运算,0号帧不能使用该 数据。
S
X M
X
N
3
上机练习



1、创建一个模拟温度测量的VI程序,并将温度测 量值用温度计指示器显示出来,并将该VI程序创 建为VI子程序。 2、调用上次实验创建的VI,要求每间隔一定时间 测量一次温度,并对多次测量温度值求平均,显 示实时温度测量曲线,设计超出温度范围的LED 报警指示。 N S X3 3、用While循环来实现计算X的立方和,(M≤N, X M 且M,X,N,均为整数)。 4、用公式节点求解一元二次方程,先使用CASE 判别有解和无解。

用While 循环实现求X的立方和

For循环和While循环的区别:
For循环要执行预先指定的循环次数。 而While循环只有在条件端口接收到的值为False 时才停止循环。While循环不必知道循环次数。 While循环不满足条件也要执行1次。 For循环当N<1时1次都不执行。
循环框
计数端口

2.For循环的工作流程



For循环用于将结构中的程 序循环执行指定的次数。 在开始For循环之前,从循 环次数端口读入循环次数, 计数端口输出0值。 接下来执行For循环框内框 图代码程序,每执行一次 计数端口值自动加1。
循环次数达到设定值后, 退出循环。
i=0 循环次数=N



CASE0 (Add),VI就进行加法运算,CASE1,则VI将进行 减法运算。 使用了一个数字型Text Ring控制器(在控制模板中的 Ring&Enum子模板中) 注意:当在一个子Case中建立了一个输出数据通道后,必 须给每一个子Case定义输出数据通道。
例子
设定默认的子CASE, 当所有条件都不满足时, 执行默认子CASE

下面是用移位寄存器实现a++的框图程序。
例:求 S
X M
X
N
3
( M N , 且X , M , N均为整数)
S=0,X=M 循环次数=N—M+1
S=S+X^3 X=X+1 i=i+1 False
循环次数-1=0
Ture 结束
2.3.2 While循环

1.While循环的创建

While循环由循环框、条件端口和计数端口组成。

2.3.3 Case结构

1.Case结构的创建

Case结构由选择框架、选择端口、选择器标签, 以及递增/递减按钮组成。
选择标签
递减按钮
递增按钮
选择端口
选择框架

2.Case结构的工作流程
Case结构有一个条件选择端口 (Selector),根 据连到该端口 的值来判断执行哪一个子Case。 Selector端口的数据类型有布尔型、数字型和字 符串型。

1. 顺序结构的创建

在函数模板的Structures子模板中选择创建顺序结构。 选取Stacked Sequence Structure层叠式顺序结构 。

在结构边框上面单击鼠标右键,从弹出的快捷菜单中 选择“Add Frame After”或“Add Frame Before”可以 增加子图形代码框。


例如:下图中通道自动索引功能有效时,每一次循环产生 一个新的数据,存储在循环的边框通道上,待循环结束以 后,产生的6个数据将传送到一个数组指示器中。自动索 引功能无效时,只有最后一次For循环产生的1个随机数传 到循环外。
空心
实 心

4.移位寄存器



创建:右击边框,弹出一个菜单,选择Add Shift Register选项,可添加一个移位寄存器。 用途:主要用于While循环和For循环,将上一次循环的 值传给下一次循环。 数据类型: 数字型、布尔型、字符串等 。 初始化:在循环外将初始值连到移位寄存器的左端口, 有默认初值。 还可以存储前几次循环的值,在移位寄存器的左端口或 右端口上右击鼠标弹出菜单,选择Add Element选项, 可创建附加的左端口来存储前几次循环的值。
仪器设计技术
2.3 LabVIEW的程序结构

主要的程序结构有:

循环(While循环和For循环) 选择(Case结构) 顺序(Sequence结构) 事件(Event结构)
2.3.1 For循环

1.For循环的创建

基本的For循环结构由循环框、循环次数端口和 计数端口组成。
循环次数端口
循环次数=0
Ture 结束循环
False 循环体
i=i+1
循环次数-1

FOR循环执行流程

3.For循环的数据通道与自动索引

数据通道是用连线工具连接循环框内外的数据端口时, 在框架上自动形成的方形通道图标 。

图标空心表明此时数据通道具有自动索引功能,实 心图标不能索引 。 自动索引是指将循环框外面的数组成员逐个依次进 入循环体内,或将循环框内的数据累加成一个数组 输出到循环框外面。


3.设置选择结构的默认项
应设置一个默认项来处理超出条件选项范围的 情况。 设置选择结构默认项的方法是在选择结构边框 上单击鼠标右键,选择Make This The Default Case。


4.选择结构数据通道的设置
输入数据时,每个子Case框可连可不连数据通 道。 输出数据时,每个子Case框必须为通道连接数 据。否则程序不能运行,这时通道的图标是空 心的,只有为每个子Case框的数据端口都连接 数据后,图标才变成实心。 Use Default if Unwired可使程序中没有连线的 子Case框输出默认值。
相关文档
最新文档