(完整版)labview实验报告

长治学院

虚拟仪器实验基础

电子信息与物理系

长治学院虚拟仪器实验指导书

实验一 LabVIEW 编程环境与基本操作实验

一、实验目的

1.了解 LabVIEW 的编程环境。

2.掌握 LabVIEW 的基本操作方法,并编制简单的程序。

3.学习建立子程序的过程

二、实验内容

1.建立一个测量温度和容积的 VI 。

a.实验步骤

1)选择 File? New,打开一个新的前面板窗口。

2)从 Controls? Numeric 中选择 Tank 放到前面板中。

3)在标签文本框中输入“容积” ,然后在前面板中的其他任何位置单击一下。

4)把容器显示对象的显示范围设置为 0.0 到 1000.

a.使用文本编辑工具( Text Edit Tool ),双击容器坐标 10.0 标度,使它高亮显示。

b. 在坐标中输入 1000 ,再在前面板中的其他任何地方单击一下。

 这时 0.0 到

1000.0 之间的增量将被自动显示。

5) 在容器旁配数据显示。

将鼠标移到容器上, 点右键,在出现的快速菜单中选 Visible Iterms? Digital Display 即可。

6) 从 Controls? Numeric 中选择一个温度计, 将它放到前面板中。

 设置其标签为 “温度”,

显示范围为 0 到 100,同时配数字显示。可得到如下的前面板图。

图 1.3 练习 2 的前面板图

7) Windows?Show Diagram 打开流程图窗口。从功能模板中选择对象,将它们放到流程

图上组成下图(其中的标注是后加的)。

乘法函数 连接点

随机 数 发

生器

数值常数

图 1.4 练习 2 的流程图

2 2011-5-22

长治学院虚拟仪器实验指导书

该流程图中新增的对象有两个乘法器、 两个数值常数、 一个随机数发生器, 温度和容积

对象是由前面板的设置自动带出来的。

乘法器和随机数发生器由 Functions? Numeric 中拖出,尽管数值常数也可以这样得到,

但是建议使用在连接端子处点击右键创建( Create)常量( Constant)的方法更好些。

8)用连线工具 将各对象按规定连接。

9)选择 File?Save , 把该 VI 命名为 Temp& Vol.vi ,保存为 的文件夹中。

在前面板中,单击 Run(运行) 按钮,运行该 VI 。注意电压和温度的数值都显示在

前面板中。

10)选择 File?Close ,关闭该 VI 。

b. 实验结果

前面板图:

程序框图:

3 2011-5-22

长治学院虚拟仪器实验指导书

2、自己创建一个 VI

a.实验要求:

将两个输入的数字相加并显示结果;将同样两个输入数字相乘并显示结果;比较两个输

入数字,如果数字相等,则 LED 指示灯亮。最后,保存为 Simple Math.vi 文件。

前面板如图 1.5:数字 A 和 B 用两个数字控件输入,两个数字指示器分别显示输出结果

A+B 和 A× B,当输入数字 A 和 B 相同时,将点亮 LED 。

b.实验步骤 :

1、在前面板上输入数字 A 和 B 两个数字控件,两个数字输出控件;

2、利用两个数字控件和乘法器及加法器完成 A+B 和 A*B 的输出;结果分接数字输出控

件;

3、利用创建连线端口将输出量引至等于比较器。当二者相同时指示灯点亮,不同时指示

灯熄灭。

c.实验结果

程序框图如下:

前面板图如下:

4 2011-5-22

长治学院虚拟仪器实验指导书

3.子 VI 的创建

a.实验步骤:

1)打开练习2 中 Temp & Vol.vi 。

2)在前面板中,用鼠标右键单击窗口右上角的图标,在快捷菜单中选择 Edit Icon ? .,也

可以双击图标激活图标编辑器。注意只能在前面板中编辑图标和联接器。

3)删除默认图标。使用 Select Tool(矩形框),单击并拖动想要删除的部分,按下 <Delete>,

也可以通过双击工具框中的阴影矩形删除图标。

4)用 Pencil Tool (铅笔工具)绘制一个温度计。

5)用 Text Tool (文本工具)创建文本。得到图标将如下图所示。

6)单击OK,关闭编辑器。新创建的图标就显示在屏幕右上角的图标窗口中。

7) 用鼠标右键单击前面板中的图标窗口, 在快捷菜单中选择Show Connector ,

设置联接器端子连接模式。

 在默认情况下, LabVIEW 会根据前面板中的控制对

象和显示对象的数目确定联接器的端子连接模式。因为前面板中有两个对象,

所以联接器有两个端子,如左图所示。用鼠标右键单击联接器窗口,在快捷菜

单中选择Rotate 90 Degrees(旋转90 度),注意联接器窗口的变化,如左图所

示。

9)将端子连接到温度计和容积计:

a. 点击联接器上部端子。光标自动变成连线工具,同时端子变成黑色。

b.单击温度显示对象。一个移动的虚线框把它包围起来,选中的端子的颜色变为与控制 /

显示对象的数据类型一致的颜色。

如果单击前面板中的任何空白区域以后,虚线消失,选中的端子变暗,这表示您已经成

功地把显示对象和上部端子连接起来。如果端子是白色,则表示没有连接成功。

c. 重复步骤a 和 b ,把底部的端子和容积计连接起来。

d. 用鼠标右键单击联接器,在快捷菜单中选择 Show Icon ? .

10)选择File? Save ,保存该VI 。

这样这个 VI 就完成了, 并也可以作为子 VI 被其他的 VI调用。子 VI 的图标在主 VI 的

流程图中代表它。

 VI 的联接器(含有两个端子)输出温度和容积。

b.实验结果 (设置子 VI )

5 2011-5-22

长治学院虚拟仪器实验指导书

实现子 VI 的调用:

右键程序框图中子 VI 图标,查看 VI 层次结构

6 2011-5-22

长治学院虚拟仪器实验指导书

三、实验总结

1.总结 VI 基本编程的快捷操作。

答:显示程序框图或前面板 ctrl+E

框图中,对象的移动: shift+ 鼠标选择移动;对象的复制: ctrl+ 鼠标选择移动;

对象的删除:鼠标选择,按 <退格>;前面板与框图并排: ctrl+T

工具( Tools)模板:在前面板或框图中按住 <Shift> 键并单击鼠标右键。

控件( Controls)模板:在前面板激活状态,在前面板空白区单击右键。

函数( Functions)模板:在框图激活状态,在框图空白区单击右键。

消除所有断线: ctrl+B;实时帮助:快捷键: ctrl+H

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

答:主要有:输入控件、显示控件、程序结构、函数控件、连线

输入控件:完成实时对变量的外界修改,即数据源

显示控件:完成输出显示数据、图形等。显示仪器分析结果

程序结构:用外方框表示程序的执行顺序、总体上把握程序的执行控制。

函数控件:构成程序的主要部分,完成对数据的采集、分析直至输出功能。

连线:用线的方式显示数据流,完成上述结构之间的关系构建。

3.思考:在前面板和框图程序中,如何区分控制器和指示器。

答:在前面板中,控制器用以外部输入数据, 因此输入框为白色表示可主动输入。

 而显示器

只有显示功能,用于被动输出虚拟仪器分析结果,数据框显示灰色,不能用于外部输入。

在程序框图中。

 控制器端子在右侧, 用于连接数据输出线。显示器端子在左侧,用于连接数

据输入线。可以右键将显示图标勾掉,此时两种元件外观也不同。

4.心得体会及其它。

答:实验很简单,没吸引力——首先提下建议。

 Labview 是一种图形编程软件。上手很快,

但达到一定程度后,发现没有课本便很难取得进步。原因是,个人觉得 labview 最重要的是

对程序编程结构的深入体会和各函数控件功能的充分掌握。前者可以通过看范例理解加深。

但后者只看范例是行不通的。

 每个函数控件都有不同的功能和使用要求, 如果不知道, 很难

使用和掌握。

 它的图形化语言和 matlab 软件中的 Simulink 语言相同。

 区别在控件上的不同,

有些使用方式很类似。

7 2011-5-22

长治学院虚拟仪器实验指导书

实验二 LabVIEW 编程的结构实验 1

一、实验目的

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

2.学习使用移位寄存器( shift register)。

二、实验内容

1. 创建一个关于 While 循环的 VI

a.实验要求: 实现在 While 循环内放置随机数对象,并在前面板上显示随机数及 While

循环的实时次数。并在前面板设置开关控制按钮,实现 While 循环的停止控制。最后将该

VI 保存为 While Loop.vi 文件。

b.实验结果

程序框图:

前面板:

2.创建一个关于 For 循环的 VI

8 2011-5-22

长治学院虚拟仪器实验指导书

a.实验要求

实现在 For 循环内放置随机数对象,并在前面板上显示随机数及 For 循环的实时次数。

For 循环的指定执行次数设为 100 次。最后将该 VI 保存为 For Loop.vi 文件。

b.实验结果

程序框图:

前面板:

3.练习使用移位寄存器

a.实验要求:

设计一个包含移位寄存器的 While 循环,该前面板有 4 个数字指示器, X(i)指示器用

于显示当前循环的实时次数 i 值,X(i-1)指示器用于显示前一次迭代的已循环次数 i 的值,

X(i-2)指示器用于显示两个迭代前的已循环次数 i 的值, X(i-3)指示器用于显示三个迭

代前的已循环次数 i 的值。移位寄存器的初始化值设为 0。并在前面板设置开关控制按钮,

实现 While 循环的停止控制。最后将该 VI 保存为 Viewing Shift Registers.vi 文件。

9 2011-5-22

长治学院虚拟仪器实验指导书

b.实验结果:

程序框图:

前面板:

4.设计一个 VI

a.实验要求:

Ave

i

实现使用循环和移位寄存器计算随机数序列的移动平均值。要求该VI产生一

个随机序列, 序列长度由前面板滑动条控件输入,该随机数序列的移动平均值由下列公式可

RN i Ave RN

i 1 i

计算 :这里 i=0,1,? ,N-1 , 表示在第 i 次计算的平

i

Ave

i

i 1

10 2011-5-22

长治学院虚拟仪器实验指导书

值,是来自随机数函数的当前随机数。

 前面板要求显示当前用于计算移动平均值的随机数个

数 i+1,当前的移动平均值, 最后将该 VI 保存为 Random Number Average.vi 文件。在 Highlight

Execution 加亮执行的状态下观察数据流。

b.要求分析:

For 循环用于产生随机数列, 循环次数由滑动条控件确定。

 从而决定数列的长度。

 当 i=1

时, (i=0 时)=0。递推数列采用移位寄存器。

Ave

i

c.实验结果:

程序框图:

前面板:

11 2011-5-22

长治学院虚拟仪器实验指导书

五、实验报告与总结

1.说明 For 循环与 While 循环的区别。

答:1、For 循环提前已经预设了循环次数。当执行完次数要求后,程序会自动停止。因而

不需要外界按钮 STOP。当然 for 循环次数也已经固定了, 中途不能修改。

 While 循环则相当

于 C 语言中的 do until 结构。当条件满足时才会主动停止,否则将一直运行下去。当 while

循环面临死循环或外界希望其停止情况,因而需外加 STOP 按钮,便于中途停止。

 2、For

循环是一次将所有次数执行完,以一维数组的形式输出每一次执行的数据。

 While 循环是一

次一次的执行。后一次执行完的数据将覆盖掉前一次的。

2.理解移位寄存器的作用以及它的初始化。

答:移位寄存器的作用将上一次循环分析所得数据, 返回输入到下一次循环的输入端。

 初始

化的作用是在首次循环时寄存器中的值清为原值, 从而保证两次程序执行过程中前后不会有

数据干扰。

3.心得体会及其它。

答:在做实验一时偶然发现,点击开始后, CPU 占用率显著升高,而且立刻超过了安全水

平,达到了 90%以上。

 由常识可知, 无论是 CPU、单片机还是 PLA 长时间过载会导致烧机。

因此安置了一个等待( ms)控件,此时 CPU 占用率回到常值 10%以下。当 Loop number 控

件和 number0-1 控件在 while 循环之外时, 这两个输出控件不是实时显示, 而是当按下 STOP

后程序最后一次执行输出的数据。实时显示,则必须将显示控件放在 while 循环之外。对于

For 循环只能在结构内,若在结构外,输出控件要改为数组形式。两种循环方式中的 STOP

按钮都可以放在结构外,只是要完成相同的功能和在结构内的触发方式不同。

12 2011-5-22

长治学院虚拟仪器实验指导书

实验三 LabVIEW 编程的结构实验 2

一、实验目的

1. 掌握选择结构( Case Structure),顺序结构( Sequence Structure)编程;

2. 了解时间估计和控制函数。

3. 了解公式节点( Formula Node )的使用。

二、实验内容

1.使用 Case 结构,创建一个 VI 以检查一个数值是否为正数

a.实验要求 :如果它是正的, VI 就计算它的平方根,反之则显示出错。

b.实验结果

程序框图:

前面板:

13 2011-5-22

长治学院虚拟仪器实验指导书

3.练习用公式节点

a.实验要求 :实现 y=x-e sinx 的计算,x 为输入数据,y 为输出显示数据, 存为 Formula Code.vi

b.实验结果

程序框图:

前面板:

4. 分别用 Case 结构和公式节点语句两种方法

a.实验要求: 实现下列条件分支语句:

考虑计算两数比率 x/y 的下列代码段:

if (y 0) then

z=x/y

else

z=+

end if

两 VI 保存为 Case Division.vi 和 Formula Division.vi 。

14 2011-5-22

长治学院虚拟仪器实验指导书

b.实验结果 :(1)采用 Case结构

程序框图:

上面为前面板图:

(2)采用公式节点语句

程序框图:

15 2011-5-22

长治学院虚拟仪器实验指导书

上面为前面板图

三、实验报告与总结

1.使用公式节点时,如果输入变量的名称同输出变量的名称相同时,会怎样。

答:如果输出变量全在等式左侧, 输入变量全在右侧而且除此之外左右两侧均没有起相同名

称变量时,程序仍然可以正常运行。例如:

2. 心得体会及其它 。

答:公式节点语句除了可以输入特殊公式外,还可以实现文本编辑语言。其语法和 C 非常

接近, 但是只能实现基本的逻辑流程和运算, 不能对文件或设备进行操作或通信, 没有输入

输出语句。

 If 语句后面的条件应有括号。通过对比 Case结构和公式节点的使用,可以知道

无论是图形编辑还是文本编辑都有各自的优点。

 图形编程的优势在于其数据流的形式让程序

可读性更好。但是遇到逻辑复杂的算法或公式时,使用公式节点更加方便。

16 2011-5-22

长治学院虚拟仪器实验指导书

实验四 LabVIEW 编程的图形图表、数组与簇

一、实验目的

1.学习如何使用数组与簇,掌握它们的区别和相应操作;

2.学习并掌握 Chart 和 Graph 的使用,理解它们的区别。

二、实验内容

1.练习数组的基本创建方法

a. 实验要求:

编辑一个利用循环的自动索引( auto-indexing )功能创建一个装有 10 个随机数的数组。

b. 实验结果:

程序框图:

前面板图:

17 2011-5-22

长治学院虚拟仪器实验指导书

2. 编辑下列 VI 理解二维数组的产生,存为 Two Dimensional Array Demo.vi 。如下分别

为程序框图和前面图截取图片。

以下是自己编辑的程序框图和前面板:

3.创建一个 VI

a.实验要求:

实现将输入控件值与输入数组合并连接起来生成新的数组。

 该 VI 使用数组大小 (Array

Size)和初始化数组( Initialize Array )两函数来创建维数合适的新数组,并将新数组的所有

元素初始化为 1。最后, VI 计算两新数组间的差,并将结果显示在前面板中。最后将该 VI

保存为 Practice with Arrays .vi 文件。

b.添加的功能

18 2011-5-22

长治学院虚拟仪器实验指导书

我的添加功能是在能满足基本实验要求的情况下, 做了些改变。

 输入数组个数由随机数

产生在 0-10 内,而 x 数组为 10 元素的数组。

 y 数组显然也要为 10 个元素,它有输入元素

和输入数组合并产生。因此间接决定了输入元素。

c.实验结果:

程序框图:

前面板图:

4.创建由一个控件簇和一个显示簇所组成的 VI

a.实验要求:

要求控件进行操作时,显示簇同时进行相应的显示。前面板组成如图 4.3,最后将该 VI

保存为 Cluster.vi 文件。

b.实验说明: 对输入数字取反;对第一个布尔元件进行取非操作;将二个布尔元件的值进行

异或操作然后输出;对字符串中的大写字母转化为小写。

19 2011-5-22

长治学院虚拟仪器实验指导书

c.实验结果:

程序框图:

前面板:

5.创建一个 VI

a.实验要求:

用 Chart 和 Graph 分别显示 40 个随机数产生的曲线,比较程序的差别:

b.实验说明:

在满足基本要求的情况下,对程序做了些改变。使它输出 40 个数据后间隔 2000ms 后

重新开始下一轮 40 个数据的采集。通过按钮 STOP 来控制循环次数。

c.实验结果:

20 2011-5-22

长治学院虚拟仪器实验指导书

程序框图:

前面板图:

三、实验报告与总结

1.总结 Chart 和 Graph 的使用区别。

答:Chart 可以用于实时数据输出,每一个新数据都会添加在之前所绘图的后面;当然此时

Chart 图应放在循环里面。

 如果放在外面, 则同 Graph 一样当 40 个数据完全采集完之后才会

一起输出, 形成最终图像。

 若 Chart 图满了之后, 通过改变显示方式则有多种输出多种方式。

如果添加新一组数据, Chart 图依然会添加在原图后面。而 Graph 图会全图刷新,之前的图

会被覆盖掉。

2.心得体会及其它。

答:1、一般用 For 循环结构完成一维数组的构建。而利用两个 For 循环的嵌套则可以完成

二维数组的建立,外层构成的是数组的行元素,内层形成数组的列元素。实际上, 外层只是

要求内层的 For 循环自己循环 m 次而已,真正产生元素的还是内循环。同样的对于三维数

组,只是在外层再套一个 For 循环而已,由外到内依次形成数组的页、行、列。

 2、使用合

并数组时, 默认的是将多个数组进行合并。如果需要建立一维数组,则需要单击右键。

 将新

的数组或数组元素连接到数组为尾端。

 3、对于摇杆开关打开布尔文本时,文本显示的是布

尔元件的当前状态。

 4、chart 图只有通过“清除图像”才能初始化图像。

21 2011-5-22