#《虚拟仪器技术》实验指导书

发布时间 : 星期二 文章#《虚拟仪器技术》实验指导书更新完毕开始阅读

1.调试编辑以上VI,按顺序打印以上VI的前面板与程序框图后,贴在实验报告上;实验报告中要求详细说明设计步骤要点。 2.理解基于数据流编程的基本编程思路。 3.总结VI基本编程的快捷操作。

4.简述VI程序有什么构成,其各部分的功能是什么。

5.思考:在前面板和框图程序中,如何区分控制器和指示器。 6.心得体会及其它。

实验二 LabVIEW编程的程序结构实验——循环结构

一、实验目的

1.学习并掌握For循环和While循环以及它们的不同点。

2.学习使用移位寄存器(shift register)和反馈节点(Feedback Node)。 二、实验设备

安装有LabVIEW 的计算机 三、实验原理

While 循环和For循环在函数(Function)的结构(Structures)选项板中可以找到。创建循环的具体方法是,选择该循环后,先在欲放入循环内执行的对象左上方单击,然后按下鼠标,拖曳出一个矩形框包围执行对象。释放鼠标时就创建了一个指定大小和位置的循环。

While 循环可以反复执行循环体的程序,直至到达某个边界条件。它类似于普通编程语言中的 Do 循环和 Repeat-Until 循环。While 循环的框图是一个大小可变的方框,用于执行框中的程序,直到条件端子接收到的布尔值为 FALSE。

1.For循环和While循环

当程序有确定的循环次数时,我们使用For循环。在程序框图中添加For循环(Functions-All Functions-Structures-For Loop),如图2-1所示。

?

(循环次数输入端)——For循环必须给定循环次数n(n>0,否则循环

不执行),此项一般都要有输入。当For循环的输入数据时一个数组时,有关数组将在后续章节中介绍),如果不给定循环次数,则数组的大小将决定For循环的循环次数。如果同时输入两个数组,循环次数以数组个数最少的决定。

?

(循环计数)——计数范围0~n-1。当具体的循环次数不可知时,我

们使用While循环(Functions-All Functions-Structures-While Loop),如图2-2所示。

图2-1 For循环 图2-2 While循环

While循环也有一个循环计数

,第一次循环时

的值为0。另外,While循

环有一个循环条件判断端子。请特别注意,无论如何,都要给While循环结构一个有效的停止条件,否则可能就会使循环陷入死循环的状态。例如,希望在一组数据中寻找一个特定的数,找到以后停止循环。由于这个特定的数的位置事先不知道,我们可以使用While循环来完成以上的操作,但如果我们将循环停止的条件只是定为找到特定的数就停止,那么,当由于各种原因造成的在这样的一组数据中不存在这个特定数时,While循环将无限运行下去。因此,我们还需要加入其他判断条件,例如我们的循环停止条件可以改为:找到特定的数或者这个数组都找完,则停止。LabVIEW 7 Express对While循环还提供了一个快捷方式:Functions-Execution-Control-While Loop,程序框图如图2-3所示,与图2-2不同的时自动加了一个停止按钮。

图2-3 快捷While

2.移位寄存器和反馈节点

使用循环结构时,经常会遇到下一次循环要用到上一次循环运行结果的情况,这时就需要不断的将每次循环的结果存储下来,以传递给下一次循环。移位寄存器(Shift Register)和反馈节点(Feedback Node)就是用来实现这样的操作的。

(a)为For循环设置移位寄存器

(b)为While循环设置移位寄存器

图2-4 设置移位寄存器

在For循环和While循环中都可以添加移位寄存器和反馈节点,添加方法如下: 1) 移位寄存器(Shift Register)

移位寄存器可以将数据从一个循环周期传递到另外一个周期。创建一个移位寄存器的方法是,用鼠标右键单击循环的左边或者右边,在快捷菜单中选择 Add Shift Register。

移位寄存器在流程图上用在循环边框上相应的一对端子来表示。右边的端子中存储了一个周期完成后的数据,这些数据在这个周期完成之后将被转移到左边的端子,赋给下一个周期。移位寄存器可以转移各种类型的数据--数值、布尔数、数组、字符串等等。它会自动适应与它连接的第一个对象的数据类型。

在For循环或者While循环的边框上单击鼠标右键,在弹出的快捷菜单中选择Add Shift Register,如图2-4(a)和图2-4(b)所示。

2) 反馈节点(Feedback Node)

反馈节点是LabVIEW 7 Express新增功能,完成的功能同移位寄存器类似。在

For循环或者While循环中,只要将其中的子VI、函数的输入/输出相连接,就会自动出现反馈节点。当然,也可以通过Functions-Execution-Control-Feedback Node来

图2-5 将反馈节点变为移位寄存器

添加。在反馈节点上单击鼠标右键,从弹出的快捷菜单中选择Replace with Shift Register,反馈节点将变成移位寄存器,如图2-5所示。

下面我们通过一个简单的例子来看一下移位寄存器和反馈节点是如何工作的。程序框图如图2-6所示。

在这里如果我们不给移位寄存器和反馈节点赋初值(本例中For循环框左边的两个常数0),下次程序运行时,移位寄存器和反馈节点中的值将以上次运行完的值开始。

图2-6 反馈节点和移位寄存器

四、实验内容

1.创建一个关于While循环的VI,实现在While循环内放置随机数对象,并在前面板上显示随机数及While循环的实时次数。并在前面板设置开关控制按钮,实现While循环的停止控制。前面板如图2.7,最后将该VI保存为While Loop.vi文件。

联系合同范文客服:xxxxx#qq.com(#替换为@)