(完整版)labview实验报告
时间:2020-09-06 12:17:16 来源:勤学考试网 本文已影响 人
长治学院
虚拟仪器实验基础
电子信息与物理系
长治学院虚拟仪器实验指导书
实验一 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