完整版labview实验报告Word文档格式.docx
《完整版labview实验报告Word文档格式.docx》由会员分享,可在线阅读,更多相关《完整版labview实验报告Word文档格式.docx(28页珍藏版)》请在冰豆网上搜索。
![完整版labview实验报告Word文档格式.docx](https://file1.bdocx.com/fileroot1/2023-1/23/cd18ee81-c64a-4f51-b0b1-b0cd9289c81d/cd18ee81-c64a-4f51-b0b1-b0cd9289c81d1.gif)
可得到如下的前面板图。
图1.3 练习2的前面板图
7)Windows»
ShowDiagram打开流程图窗口。
从功能模板中选择对象,将它们放到流程图上组成下图(其中的标注是后加的)。
图1.4 练习2的流程图
该流程图中新增的对象有两个乘法器、两个数值常数、一个随机数发生器,温度和容积对象是由前面板的设置自动带出来的。
乘法器和随机数发生器由Functions»
Numeric中拖出,尽管数值常数也可以这样得到,但是建议使用在连接端子处点击右键创建(Create)常量(Constant)的方法更好些。
8)用连线工具
将各对象按规定连接。
9)选择File»
Save,把该VI命名为Temp&
Vol.vi,保存为D:
\Yourname\的文件夹中。
在前面板中,单击Run(运行)按钮,运行该VI。
注意电压和温度的数值都显示在前面板中。
10)选择File»
Close,关闭该VI。
b.实验结果
前面板图:
程序框图:
2、自己创建一个VI
a.实验要求:
将两个输入的数字相加并显示结果;
将同样两个输入数字相乘并显示结果;
比较两个输入数字,如果数字相等,则LED指示灯亮。
最后,保存为SimpleMath.vi文件。
前面板如图1.5:
数字A和B用两个数字控件输入,两个数字指示器分别显示输出结果A+B和A×
B,当输入数字A和B相同时,将点亮LED。
b.实验步骤:
1、在前面板上输入数字A和B两个数字控件,两个数字输出控件;
2、利用两个数字控件和乘法器及加法器完成A+B和A*B的输出;
结果分接数字输出控件;
3、利用创建连线端口将输出量引至等于比较器。
当二者相同时指示灯点亮,不同时指示灯熄灭。
c.实验结果
程序框图如下:
前面板图如下:
3.子VI的创建
a.实验步骤:
1)打开练习2中Temp&
Vol.vi。
2)在前面板中,用鼠标右键单击窗口右上角的图标,在快捷菜单中选择EditIcon….,也可以双击图标激活图标编辑器。
注意只能在前面板中编辑图标和联接器。
3)删除默认图标。
使用SelectTool(矩形框),单击并拖动想要删除的部分,按下<
Delete>
也可以通过双击工具框中的阴影矩形删除图标。
4)用PencilTool(铅笔工具)绘制一个温度计。
5)用TextTool(文本工具)创建文本。
得到图标将如下图所示。
6)单击OK,关闭编辑器。
新创建的图标就显示在屏幕右上角的图标窗口中。
7)用鼠标右键单击前面板中的图标窗口,在快捷菜单中选择ShowConnector,设置联接器端子连接模式。
在默认情况下,LabVIEW会根据前面板中的控制对象和显示对象的数目确定联接器的端子连接模式。
因为前面板中有两个对象,所以联接器有两个端子,如左图所示。
用鼠标右键单击联接器窗口,在快捷菜单中选择Rotate90Degrees(旋转90度),注意联接器窗口的变化,如左图所示。
9)将端子连接到温度计和容积计:
a.点击联接器上部端子。
光标自动变成连线工具,同时端子变成黑色。
b.单击温度显示对象。
一个移动的虚线框把它包围起来,选中的端子的颜色变为与控制/显示对象的数据类型一致的颜色。
如果单击前面板中的任何空白区域以后,虚线消失,选中的端子变暗,这表示您已经成功地把显示对象和上部端子连接起来。
如果端子是白色,则表示没有连接成功。
c.重复步骤a和b,把底部的端子和容积计连接起来。
d.用鼠标右键单击联接器,在快捷菜单中选择ShowIcon….
Save,保存该VI。
这样这个VI就完成了,并也可以作为子VI被其他的VI调用。
子VI的图标在主VI的流程图中代表它。
VI的联接器(含有两个端子)输出温度和容积。
b.实验结果(设置子VI)
实现子VI的调用:
右键程序框图中子VI图标,查看VI层次结构
三、实验总结
1.总结VI基本编程的快捷操作。
答:
显示程序框图或前面板ctrl+E
框图中,对象的移动:
shift+鼠标选择移动;
对象的复制:
ctrl+鼠标选择移动;
对象的删除:
鼠标选择,按<
退格>
;
前面板与框图并排:
ctrl+T
工具(Tools)模板:
在前面板或框图中按住<
Shift>
键并单击鼠标右键。
控件(Controls)模板:
在前面板激活状态,在前面板空白区单击右键。
函数(Functions)模板:
在框图激活状态,在框图空白区单击右键。
消除所有断线:
ctrl+B;
实时帮助:
快捷键:
ctrl+H
2.简述VI程序有什么构成,其各部分的功能是什么。
主要有:
输入控件、显示控件、程序结构、函数控件、连线
输入控件:
完成实时对变量的外界修改,即数据源
显示控件:
完成输出显示数据、图形等。
显示仪器分析结果
程序结构:
用外方框表示程序的执行顺序、总体上把握程序的执行控制。
函数控件:
构成程序的主要部分,完成对数据的采集、分析直至输出功能。
连线:
用线的方式显示数据流,完成上述结构之间的关系构建。
3.思考:
在前面板和框图程序中,如何区分控制器和指示器。
在前面板中,控制器用以外部输入数据,因此输入框为白色表示可主动输入。
而显示器只有显示功能,用于被动输出虚拟仪器分析结果,数据框显示灰色,不能用于外部输入。
在程序框图中。
控制器端子在右侧,用于连接数据输出线。
显示器端子在左侧,用于连接数据输入线。
可以右键将显示图标勾掉,此时两种元件外观也不同。
4.心得体会及其它。
实验很简单,没吸引力——首先提下建议。
Labview是一种图形编程软件。
上手很快,但达到一定程度后,发现没有课本便很难取得进步。
原因是,个人觉得labview最重要的是对程序编程结构的深入体会和各函数控件功能的充分掌握。
前者可以通过看范例理解加深。
但后者只看范例是行不通的。
每个函数控件都有不同的功能和使用要求,如果不知道,很难使用和掌握。
它的图形化语言和matlab软件中的Simulink语言相同。
区别在控件上的不同,有些使用方式很类似。
实验二LabVIEW编程的结构实验1
1.学习并掌握For循环和While循环以及它们的不同点。
2.学习使用移位寄存器(shiftregister)。
1.创建一个关于While循环的VI
实现在While循环内放置随机数对象,并在前面板上显示随机数及While循环的实时次数。
并在前面板设置开关控制按钮,实现While循环的停止控制。
最后将该VI保存为WhileLoop.vi文件。
程序框图:
前面板:
2.创建一个关于For循环的VI
a.实验要求
实现在For循环内放置随机数对象,并在前面板上显示随机数及For循环的实时次数。
For循环的指定执行次数设为100次。
最后将该VI保存为ForLoop.vi文件。
前面板:
3.练习使用移位寄存器
设计一个包含移位寄存器的While循环,该前面板有4个数字指示器,X(i)指示器用于显示当前循环的实时次数i值,X(i-1)指示器用于显示前一次迭代的已循环次数i的值,X(i-2)指示器用于显示两个迭代前的已循环次数i的值,X(i-3)指示器用于显示三个迭代前的已循环次数i的值。
移位寄存器的初始化值设为0。
最后将该VI保存为ViewingShiftRegisters.vi文件。
b.实验结果:
4.设计一个VI
实现使用循环和移位寄存器计算随机数序列的移动平均值。
要求该VI产生一个随机序列,序列长度由前面板滑动条控件输入,该随机数序列的移动平均值由下列公式可计算:
这里i=0,1,…,N-1,表示在第i次计算的平均
值,是来自随机数函数的当前随机数。
前面板要求显示当前用于计算移动平均值的随机数个数i+1,当前的移动平均值,最后将该VI保存为RandomNumberAverage.vi文件。
在HighlightExecution加亮执行的状态下观察数据流。
b.要求分析:
For循环用于产生随机数列,循环次数由滑动条控件确定。
从而决定数列的长度。
当i=1时,(i=0时)=0。
递推数列采用移位寄存器。
c.实验结果:
五、实验报告与总结
1.说明For循环与While循环的区别。
1、For循环提前已经预设了循环次数。
当执行完次数要求后,程序会自动停止。
因而不需要外界按钮STOP。
当然for循环次数也已经固定了,中途不能修改。
While循环则相当于C语言中的dountil结构。
当条件满足时才会主动停止,否则将一直运行下去。
当while循环面临死循环或外界希望其停止情况,因而需外加STOP按钮,便于中途停止。
2、For循环是一次将所有次数执行完,以一维数组的形式输出每一次执行的数据。
While循环是一次一次的执行。
后一次执行完的数据将覆盖掉前一次的。
2.理解移位寄存器的作用以及它的初始化。
移位寄存器的作用将上一次循环分析所得数据,返回输入到下一次循环的输入端。
初始化的作用是在首次循环时寄存器中的值清为原值,从而保证两次程序执行过程中前后不会有数据干扰。
3.心得体会及其它。
在做实验一时偶然发现,点击开始后,CPU占用率显著升高,而且立刻超过了安全水平,达到了90%以上。
由常识可知,无论是CPU、单片机还是PLA长时间过载会导致烧机。
因此安置了一个等待(ms)控件,此时CPU占用率回到常值10%以下。
当Loopnumber控件和number0-1控件在while循环之外时,这两个输出控件不是实时显示,而是当按下STOP后程序最后一次执行输出的数据。
实时显示,则必须将显示控件放在while循环之外。
对于For循环只能在结构内,若在结构外,输出控件要改为数组形式。
两种循环方式中的STOP按钮都可以放在结构外,只是要完成相同的功能和在结构内的触发方式不同。
实验三 LabVIEW编程的结构实验2
1.掌握选择结构(CaseStructure),顺序结构(SequenceStructure)编程;
2.了解时间估计和控制函数。
3.了解公式节点(FormulaNode)的使用。
1.使用Case结构,创建一个VI以检查一个数值是否为正数
如果它是正的,VI就计算它的平方根,反之则显示出错。
3.练习用公式节点
实现y=x-esinx的计算,x为输入数据,y为输出显示数据,存为FormulaCode.vi
4.分别用Case结构和公式节点语句两种方法
实现下列条件分支语句:
考虑计算两数比率x/y的下列代码段:
if(y
0)then
z=x/y
else
z=+
endif
两VI保存为CaseDivision.vi和FormulaDivision.vi。
(1)采用Case结构
上面为前面板图:
(2)采用公式节点语句
上面为前面板图
三、实验报告与总结
1.使用公式节点时,如果输入变量的名称同输出变量的名称相同时,会怎样。
如果输出变量全在等式左侧,输入变量全在右侧而且除此之外左右两侧均没有起相同名称变量时,程序仍然可以正常运行。
例如:
2.心得体会及其它。
公式节点语句除了可以输入特殊公式外,还可以实现文本编辑语言。
其语法和C非常接近,但是只能实现基本的逻辑流程和运算,不能对文件或设备进行操作或通信,没有输入输出语句。
If语句后面的条件应有括号。
通过对比Case结构和公式节点的使用,可以知道无论是图形编辑还是文本编辑都有各自的优点。
图形编程的优势在于其数据流的形式让程序可读性更好。
但是遇到逻辑复杂的算法或公式时,使用公式节点更加方便。
实验四 LabVIEW编程的图形图表、数组与簇
1.学习如何使用数组与簇,掌握它们的区别和相应操作;
2.学习并掌握Chart和Graph的使用,理解它们的区别。
1.练习数组的基本创建方法
编辑一个利用循环的自动索引(auto-indexing)功能创建一个装有10个随机数的数组。
2.编辑下列VI理解二维数组的产生,存为TwoDimensionalArrayDemo.vi。
如下分别为程序框图和前面图截取图片。
以下是自己编辑的程序框图和前面板:
3.创建一个VI
实现将输入控件值与输入数组合并连接起来生成新的数组。
该VI使用数组大小(ArraySize)和初始化数组(InitializeArray)两函数来创建维数合适的新数组,并将新数组的所有元素初始化为1。
最后,VI计算两新数组间的差,并将结果显示在前面板中。
最后将该VI保存为PracticewithArrays.vi文件。
b.添加的功能
我的添加功能是在能满足基本实验要求的情况下,做了些改变。
输入数组个数由随机数产生在0-10内,而x数组为10元素的数组。
y数组显然也要为10个元素,它有输入元素和输入数组合并产生。
因此间接决定了输入元素。
4.创建由一个控件簇和一个显示簇所组成的VI
要求控件进行操作时,显示簇同时进行相应的显示。
前面板组成如图4.3,最后将该VI保存为Cluster.vi文件。
b.实验说明:
对输入数字取反;
对第一个布尔元件进行取非操作;
将二个布尔元件的值进行异或操作然后输出;
对字符串中的大写字母转化为小写。
5.创建一个VI
用Chart和Graph分别显示40个随机数产生的曲线,比较程序的差别:
在满足基本要求的情况下,对程序做了些改变。
使它输出40个数据后间隔2000ms后重新开始下一轮40个数据的采集。
通过按钮STOP来控制循环次数。
1.总结Chart和Graph的使用区别。
Chart可以用于实时数据输出,每一个新数据都会添加在之前所绘图的后面;
当然此时Chart图应放在循环里面。
如果放在外面,则同Graph一样当40个数据完全采集完之后才会一起输出,形成最终图像。
若Chart图满了之后,通过改变显示方式则有多种输出多种方式。
如果添加新一组数据,Chart图依然会添加在原图后面。
而Graph图会全图刷新,之前的图会被覆盖掉。
1、一般用For循环结构完成一维数组的构建。
而利用两个For循环的嵌套则可以完成二维数组的建立,外层构成的是数组的行元素,内层形成数组的列元素。
实际上,外层只是要求内层的For循环自己循环m次而已,真正产生元素的还是内循环。
同样的对于三维数组,只是在外层再套一个For循环而已,由外到内依次形成数组的页、行、列。
2、使用合并数组时,默认的是将多个数组进行合并。
如果需要建立一维数组,则需要单击右键。
将新的数组或数组元素连接到数组为尾端。
3、对于摇杆开关打开布尔文本时,文本显示的是布尔元件的当前状态。
4、chart图只有通过“清除图像”才能初始化图像。