虚拟仪器实验指导书Word文档下载推荐.docx
- 文档编号:22410533
- 上传时间:2023-02-04
- 格式:DOCX
- 页数:63
- 大小:3.63MB
虚拟仪器实验指导书Word文档下载推荐.docx
《虚拟仪器实验指导书Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《虚拟仪器实验指导书Word文档下载推荐.docx(63页珍藏版)》请在冰豆网上搜索。
(1)LabVIEW应用程序的构成
所有的LabVIEW应用程序,
即虚拟仪器(VI),它包括前面板
(frontpanel)、流程图(blockdiagram)
以及图标/连结器(icon/connector)三部分。
前面板
前面板是图形用户界面,也就是
VI的虚拟仪器面板,这一界面上有用
户输入和显示输出两类对象,具体表
现有开关、旋钮、图形以及其他控制
(control)和显示对象(indicator)。
框图ctrl+E
框图提供VI的图形化源程序。
在框图中对VI编程,以控制和操纵定义在前面板上的输入和输出功能。
框图中包括前面板上的控件的连线端子,还有一些前面板上没有,但编程必须有的东西,例如函数、结构和连线等。
框图中,对象的移动:
shift+鼠标选择移动;
对象的复制:
ctrl+鼠标选择移动;
对象的删除:
鼠标选择,按<
退格>
;
前面板与框图并排:
ctrl+T
图1.2与图1.1对应的框图。
图标/连接器
图标连接器
图标/连接器是子VI被其它VI调用的接口。
图标是子VI在其他程序框图中被调用的节点表现形式;
而连接器则表示节点数据的输入/输出口,就象函数的参数。
用户必须指定连接器端口与前面板的控制和显示一一对应。
连接器一般情况下隐含不显示,除非用户选择打开观察它。
(2)操作模板
在LabVIEW的用户界面操作模板包括:
工具(Tools)模板:
在前面板或框图中按住<
Shift>
键并单击鼠标右键。
控件(Controls)模板:
在前面板激活状态,在前面板空白区单击右键。
函数(Functions)模板:
在框图激活状态,在框图空白区单击右键。
(3)连线,连线工具
流程图上的每一个对象都带有自己的连线端子,连线将构成对象之间的数据通道。
因为这不是几何意义上的连线,因此并非任意两个端子间都可连线,连线类似于普通程序中的变量。
数据单向流动,从源端口向一个或多个目的端口流动。
不同的线型代表不同的数据类型。
消除所有断线:
ctrl+B
(4)程序调试技术
a)找出语法错误
如果一个VI程序存在语法错误,则在面板工具条上的运行按钮会变成一个折断的箭头,表示程序不能被执行。
点击它,LabVIEW弹出错误清单窗口,点击其中任何一个所列出的错误,选用Find功能,则出错的对象或端口就会变成高亮。
b)设置执行程序高亮
在LabVIEW的工具条上有一个画着灯泡的按钮,这个按钮叫做“高亮执行”按钮上。
点击这个按钮使它变成高亮形式,再点击运行按钮,VI程序就以较慢的速度运行,没有被执行的代码灰色显示,执行后的代码高亮显示,并显示数据流线上的数据值。
这样,你就可以根据数据的流动状态跟踪程序的执行。
c)断点与单步执行
为了查找程序中的逻辑错误,有时希望流程图程序一个节点一个节点地执行。
使用断点工具可以在程序的某一地点中止程序执行,用探针或者单步方式查看数据。
使用断点工具时,点击你希望设置或者清除断点的地方。
断点的显示对于节点或者图框表示为红框,对于连线表示为红点。
当VI程序运行到断点被设置处,程序被暂停在将要执行的节点,以闪烁表示。
按下单步执行按钮,闪烁的节点被执行,下一个将要执行的节点变为闪烁,指示它将被执行。
你也可以点击暂停按钮,这样程序将连续执行直到下一个断点。
b)探针
可用探针工具来查看当流程图程序流经某一根连接线时的数据值。
从Tools工具模板选择探针工具,再用鼠标左建点击你希望放置探针的连接线。
这时显示器上会出现一个探针显示窗口。
该窗口总是被显示在前面板窗口或流程图窗口的上面。
3.子VI
子VI(SubVI)相当于普通编程语言中的子程序,也就是被其他的VI调用的VI。
可以将任何一个定义了图标和联接器的VI作为另一个VI的子程序。
4.LabVIEW编程常用的两个公共帮助选项:
Context(上下文本)和LabVIEWHelp(LabVIEW帮助),对于LabVIEW编程很有用,基本函数的操作都有介绍。
快捷键:
ctrl+H。
三、实验设备
安装有LabVIEW的计算机。
四、实验内容
1.熟悉LabVIEW的编程环境,理解基于数据流编程(dataflowprogramming)的概念。
浏览SecondsBreakdown.VI,该VI用于记录飞机到达机场时所剩的时间(秒)并将其转换为小时/分钟/秒的表示格式。
测试该VI:
在输入控件中输入值,单击运行,进行测试时间的转换。
完成练习Exploring_a_VI。
2.创建自己的第一个VI。
建立一个测量温度和容积的VI。
步骤如下:
1)选择File»
New,打开一个新的前面板窗口。
2)从Controls»
Numeric中选择Tank放到前面板中。
3)在标签文本框中输入“容积”,然后在前面板中的其他任何位置单击一下。
4)把容器显示对象的显示范围设置为0.0到1000.
a.使用文本编辑工具(TextEditTool),双击容器坐标10.0标度,使它高亮显示。
b.在坐标中输入1000,再在前面板中的其他任何地方单击一下。
这时0.0到1000.0之间的增量将被自动显示。
5)在容器旁配数据显示。
将鼠标移到容器上,点右键,在出现的快速菜单中选VisibleIterms»
DigitalDisplay即可。
6)从Controls»
Numeric中选择一个温度计,将它放到前面板中。
设置其标签为“温度”,显示范围为0到100,同时配数字显示。
可得到如下的前面板图。
图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。
3.自己创建一个VI,完成以下功能:
将两个输入的数字相加并显示结果;
将同样两个输入数字相乘并显示结果;
比较两个输入数字,如果数字相等,则LED指示灯亮。
最后,保存为SimpleMath.vi文件。
前面板如图1.5:
数字A和B用两个数字控件输入,两个数字指示器分别显示输出结果A+B和A×
B,当输入数字A和B相同时,将点亮LED。
完成后,应用“高亮执行”观察数据流的运行流程,利用断点,单步调试等工具进行调试。
练习使用探针工具来查看当流程图程序流经某一根连接线时的数据值。
图1.5 练习3的前面板
4.子VI的创建
1)打开练习2中Temp&
Vol.vi。
2)在前面板中,用鼠标右键单击窗口右上角的图标,在快捷菜单中选择EditIcon….,也可以双击图标激活图标编辑器。
注意只能在前面板中编辑图标和联接器。
3)删除默认图标。
使用SelectTool(矩形框),单击并拖动想要删除的部分,按下<
Delete>
。
也可以通过双击工具框中的阴影矩形删除图标。
4)用PencilTool(铅笔工具)绘制一个温度计。
5)用TextTool(文本工具)创建文本。
得到图标将如下图所示。
图1.6 编辑后的图标编辑器窗口
6)单击OK,关闭编辑器。
新创建的图标就显示在屏幕右上角的图标窗口中。
7)用鼠标右键单击前面板中的图标窗口,在快捷菜单中选择ShowConnector,设置联接器端子连接模式。
在默认情况下,LabVIEW会根据前面板中的控制对象和显示对象的数目确定联接器的端子连接模式。
因为前面板中有两个对象,所以联接器有两个端子,如左图所示。
用鼠标右键单击联接器窗口,在快捷菜单中选择Rotate90Degrees(旋转90度),注意联接器窗口的变化,如左图所示。
9)将端子连接到温度计和容积计:
a.点击联接器上部端子。
光标自动变成连线工具,同时端子变成黑色。
b.单击温度显示对象。
一个移动的虚线框把它包围起来,选中的端子的颜色变为与控制/显示对象的数据类型一致的颜色。
如果单击前面板中的任何空白区域以后,虚线消失,选中的端子变暗,这表示您已经成功地把显示对象和上部端子连接起来。
如果端子是白色,则表示没有连接成功。
c.重复步骤a和b,把底部的端子和容积计连接起来。
d.用鼠标右键单击联接器,在快捷菜单中选择ShowIcon….
Save,保存该VI。
这样这个VI就完成了,并也可以作为子VI被其他的VI调用。
子VI的图标在主VI的流程图中代表它。
VI的联接器(含有两个端子)输出温度和容积。
5、调用子VI
用调用子VI完成下面功能。
七、实验报告与总结
1.调试编辑以上VI,画出以上VI的程序框图。
2.理解基于数据流编程的基本编程思路。
3.总结VI基本编程的快捷操作。
4.简述VI程序有什么构成,其各部分的功能是什么。
5.思考:
在前面板和框图程序中,如何区分控制器和指示器。
6.心得体会及其它。
实验二LabVIEW编程的结构实验1
1.学习并掌握For循环和While循环以及它们的不同点。
2.学习使用移位寄存器(shiftregister)。
1.While循环和For循环在函数(Function)的结构(Structures)的选项板中可以找到。
创建循环的具体方法是,选择该循环后,先在欲放入循环内执行的对象左上方单击,然后按下鼠标,拖曳出一个矩形框包围执行对象。
释放鼠标时就创建了一个指定大小和位置的循环。
2.While循环可以反复执行循环体的程序,直至到达某个边界条件。
它类似于普通编程语言中的Do循环和Repeat-Until循环。
While循环的框图是一个大小可变的方框,用于执行框中的程序,直到条件端子接收到的布尔值为FALSE。
图2.1 While循环
3.For循环用于将某段程序执行指定次数。
和While循环一样,它不会立刻出现在流程中,而是出现一个小的图标,而后您可以修改它的大小和位置。
For循环将把它的框图中的程序执行指定的次数,For循环具有下面这两个端子:
N:
计数端子(输入端子)——用于指定循环执行的次数。
I:
周期端子(输出端子)——含有循环已经执行的次数。
图2.2 For循环与移位寄存器
3.移位寄存器可以将数据从一个循环周期传递到另外一个周期。
创建一个移位寄存器的方法是,用鼠标右键单击循环的左边或者右边,在快捷菜单中选择AddShiftRegister。
移位寄存器在流程图上用在循环边框上相应的一对端子来表示。
右边的端子中存储了一个周期完成后的数据,这些数据在这个周期完成之后将被转移到左边的端子,赋给下一个周期。
移位寄存器可以转移各种类型的数据--数值、布尔数、数组、字符串等等。
它会自动适应与它连接的第一个对象的数据类型。
1.创建一个关于While循环的VI,实现在While循环内放置随机数对象,并在前面板上显示随机数及While循环的实时次数。
并在前面板设置开关控制按钮,实现While循环的停止控制。
前面板如图2.3,最后将该VI保存为WhileLoop.vi文件。
图2.3 WhileLoop
2.创建一个关于For循环的VI,实现在For循环内放置随机数对象,并在前面板上显示随机数及For循环的实时次数。
For循环的指定执行次数设为100次。
前面板如图2.4,最后将该VI保存为ForLoop.vi文件。
图2.4 ForLoop
3.练习使用移位寄存器:
设计一个包含移位寄存器的While循环,该前面板有4个数字指示器,X(i)指示器用于显示当前循环的实时次数i值,X(i-1)指示器用于显示前一次迭代的已循环次数i的值,X(i-2)指示器用于显示两个迭代前的已循环次数i的值,X(i-3)指示器用于显示三个迭代前的已循环次数i的值。
移位寄存器的初始化值设为0。
前面板如图2.5,最后将该VI保存为ViewingShiftRegisters.vi文件。
4.设计一个VI,实现使用循环和移位寄存器计算随机数序列的移动平均值。
要求该VI产生一个随机序列,序列长度由前面板滑动条控件输入,该随机数序列的移动平均值由下列公式可计算:
这里i=0,1,…,N-1,表示在第i次计图2.4 ViewingShiftRegisters
算的平均值,是来自随机数函数的当前随机数。
前面板要求显示当前用于计算移动平均值的随机数个数i+1,当前的移动平均值,前面板设计如图2.6所示,最后将该VI保存为RandomNumberAverage.vi文件。
在HighlightExecution加亮执行的状态下观察数据流。
图2.5 RandomNumberAverage
五、实验报告与总结
2.说明For循环与While循环的区别。
3.理解移位寄存器的作用以及它的初始化。
4.心得体会及其它。
实验三 LabVIEW编程的结构实验2
1.掌握选择结构(CaseStructure),顺序结构(SequenceStructure)编程;
2.了解时间估计和控制函数。
3.了解公式节点(FormulaNode)的使用。
1.Case结构含有两个或者更多的子程序(Case),执行那一个取决于与选择端子或者选择对象的外部接口相连接的某个整数、布尔数、字符串或者标识的值。
必须选择一个默认的Case以处理超出范围的数值,或者直接列出所有可能的输入数值。
Case结构见下图3.1。
图3.1Case结构
2.顺序结构(SequenceStructure)顺序地执行子框图,它看上去像是电影胶片。
它可以按一定顺序执行多个子程序。
首先执行0帧中的程序,然后执行1帧中的程序,逐个执行下去。
与Case结构类似,这多帧程序在流程图中占有同一个位置。
3.时间估计和控制函数
“等待Wait”:
控制VI定时执行,每次执行单元(比如循环)内部,在执行代码运行结束后,开始计时。
保持此状态直到毫秒计数器的值等于预先设定的值。
用于每次执行单元至少执行时间设定。
“等待下一个整数倍的毫秒WaituntilNextmsMultiple”:
每次执行单元(比如循环)内部,在执行代码开始运行时,就开始计时。
保持此状态直到毫秒计数器的值等于预先设定数的整数倍。
用于同步各单元操作。
“TickCount(ms)函数
”:
用与ExpressVI完成定时任务。
4.公式节点是一个大小可变的方框,可以利用它直接在流程图中输入公式。
从函数Functions的结构Structures中选择公式节点就可以把它放到流程图中。
当某个等式有很多变量或者非常复杂时,这个功能就非常有用。
图3.2公式节点
1.使用Case结构,创建一个VI以检查一个数值是否为正数。
如果它是正的,VI就计算它的平方根,反之则显示出错。
提示:
可以使用以下函数
OneButtonDialog函数(Functions»
Time&
Dialog)——它可以用于显示一个对话框,内容可由字符串常量输入提供。
例如:
前面板如图3.3,最后将该VI保存为CaseStructure.vi文件。
图3.3CaseStructure
2.看TimingwithSoundDemo.vi,理解该顺序结构实现的作用,并在连续运行(ContinuouslyRun模式下运行该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。
2.写出实验内容2的TimingwithSoundDemo.vi实现功能。
3.使用公式节点时,如果输入变量的名称同输出变量的名称相同时,会怎样。
4.得体会及其它。
实验四 LabVIEW编程的图形图表、数组与簇
1.学习如何使用数组与簇,掌握它们的区别和相应操作;
2.学习并掌握Chart和Graph的使用,理解它们的区别。
1.数组是同类型元素的集合。
一个数组可以是一维或者多维,如果必要,每维最多可有231-1个元素。
可以通过数组索引访问其中的每个元素。
创建一个数组有两件事要做,首先要建一个数组的“壳”(shell),然后在这个壳中置入数组元素(数或字符串等)。
数组元素不能是数组、图表或者图形。
LabVIEW提供了很多用于操作数组的功能函数,位于函数Functions»
数组Array中。
其中包括创建数组(BuildArray),初始化数组(InitializeArray),数组大小(ArraySize),数组子集(ArraySubset),索引数组(IndexArray)等等。
●
创建数组(BuildArray)——,用于根据标量值或者其他的数组创建一个数组。
初始化数组(InitializeArray)——用于创建所有元素值都相等的数组。
下图中,该功能函数创建了一个一维数组。
●数组大小(ArraySize)——返回输入数组中的元素个数。
●数组子集(ArraySubset)——选取数组或者矩阵的某个部分。
●索引数组(IndexArray)——用于访问数组中的某个元素。
2.簇(Cluster)是另一种数据类型,它的元素可以是不同类型的数据。
它类似于C语言中的stucture。
使用簇可以把分布在流程图中各个位置的数据元素组合起来,这样可以减少连线的拥挤程度。
减少子VI的连接端子的数量。
捆绑(Bundle)数据
Bundle功能将分散的元件集合为一个新的簇,或允许你重置一个已有的簇中的元素。
可以用位置工具拖曳其图标的右下角以增加输入端子的个数。
最终簇的序是取决于被捆绑的输入的顺序。
右图中Bundle图标中部的Claster端子用于用新元素重置原簇中的元素。
●分解(Unbundle)簇
Unbundle功能是Bundle的逆过程,它将一个簇分解为若干分离的元件。
如果你要对一个簇分解,就必须知道它的元素的个数。
LabVIEW还提供一种可以根据元素的名字来捆绑或分解簇的方法,稍后介绍。
3.图形显示对于虚拟仪器面板设计是一个重要的内容。
在LabVIEW的图形显示功能中Graph和Chart是两个基本的概念。
Chart是将数据源(例如采集得到的数据)在某一坐标系中,实时、逐点地显示出来,它可以反映被测物理量的变化趋势。
而Graph则是对已采集数据进行事后处理的结果。
它先将被采集数据存放在一个数组之中,然后根据需要组织成所需的图形显示出来。
它的缺点是没有实时显示,但是它的表现形式要丰富得多。
1.练习数组的基本创建方法,编辑一个利用循环的自动索引(auto-indexing)功能创建一个装有10个随机数的数组。
利用随机数产生函数,循环10次产生一数组。
2.编辑下列VI,理解二维数组的产生,存为TwoDimensionalArrayDemo.vi。
前面板:
程序框图:
五、实验注意事项
图4.1TwoDimensionalArray
3.创建一个VI,实现将输入控件值与输入数组合并连接起来生成新的数组。
该VI使用数组大小(ArraySize)和初始化数组(InitializeArray)两函数来创建维数合适的新数组,并将新数组的所有元素初始化为1。
最后,VI计算两新数组间的差,并将结果显示在前面板中。
前面板和基本程序框图组成如图4.2,最后将该VI保存为PracticewithArrays.vi文件。
图4.2
(1)PracticewithArrays前面板
图4.2
(2)PracticewithArray
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 虚拟仪器 实验 指导书