#《虚拟仪器技术》实验指导书.docx
《#《虚拟仪器技术》实验指导书.docx》由会员分享,可在线阅读,更多相关《#《虚拟仪器技术》实验指导书.docx(76页珍藏版)》请在冰豆网上搜索。
#《虚拟仪器技术》实验指导书
虚拟仪器技术
实验指导书
注意:
在实验之前,首先在计算机的D盘下面创建一个以自己名字+学号命名的目录,在此文件夹下面再建立8个子文件夹目录,分别命名为实验一至实验八,所有的实验程序都保存到相应的目录中。
实验一LabVIEW编程环境与基本操作
一、实验目的
1.了解LabVIEW的编程与运行环境。
2.掌握LabVIEW的基本操作方法,并编制简单的程序。
3.掌握使用调试工具调试VI程序。
4.掌握VI子程序的建立和调用过程。
二、实验设备
安装有LabVIEW的计算机
三、实验原理
现代科技技术的进步以计算机技术的进步为代表。
不断革新的计算机技术,从各个层面上影响着、引导着各行各业的技术更新。
基于计算机技术的虚拟仪器系统技术正以不可逆转的力量推动着测量与控制技术的革命。
虚拟仪器系统的概念不仅推进了以仪器为基础的测控系统的改造,同时也影响了以数据采集为主的测控系统的传统构造方法。
过去独立分散、互不相干的许多传统仪器,在虚拟仪器系统的概念之下,正在逐渐靠拢、相互影响,并形成新的技术方法和技术规范。
虚拟仪器系统的概念是测控系统的抽象。
不管是传统的还是虚拟的仪器,它们的功能都是相同的:
采集数据,对采集来的数据进行分析处理,然后显示处理的结果。
它们之间的不同主要体现在灵活性方面。
虚拟仪器由用户自己定义,这意味着用户可以自由地组合计算机平台、硬件、软件、以及各种完成应用系统所需要的附件。
而这种灵活性在由制造商定义、功能固定、独立的传统仪器上是达不到的。
常用的数字万用表、示波器、信号发生器、数据记录仪,以及温度和压力监控器就是传统仪器的代表。
基于计算机的虚拟仪器得益于PC技术的发展。
由于直接将仪器模块插入到计算机中,我们就可以直接享用到台式或便携式计算机上出众的处理能力、显示、数据存储以及连接性能等方面的优势,使测量以最有效的方式从使用传统的仪器过渡到使用通用计算机。
基于计算机的仪器不仅继承了传统仪器的标准测量能力,更增加了扩展仪器概念的灵活性,使我们能够更加直接、更加有效地面对当今测量应用的挑战。
更有意义的是,利用诸如LabVIEW、LabWindows/CVI等应用开发环境,可以方便地使多台仪器的测量能力结合并同步工作,以建立功能强大仪器系统。
更进一步,我们也可以开发自己的分析程序,实现那些有别于其他仪器或系统的功能。
PC机和台式工作站已经成为检测系统的标准控制平台。
基于虚拟仪器的应用软件包、用户接口库、仪器驱动程序、检测程序和分析库正在被广泛地应用并极大地减少了开发的时间。
A/D转换技术的发展,使得插卡式数据采集板成为基于PC机的仪器系统增长最快的选件。
图像技术的引入,更为现代检测系统增添风采。
今天,工业标准的计算机平台,揉合多种仪器与设备,并充分利用仪器系统软件工具,已经成为降低系统造价,完善系统功能,提高系统性能/价格比的最重要的手段。
不管是建立检测系统,还是建立工业自动化系统,充分利用最现代化的手段,运用最新技术是必不可少的。
简洁、实用、可靠、完备而且高性能/价格比始终是我们的追求。
软件和硬件的结合、GPIB与DAQ的搭配、传统与现代的协调,使我们可以建立独特且规范的系统。
虚拟仪器系统技术的基础是计算机系统,核心是软件技术。
因此,美国国家仪器公司(NI)提出其著名的口号:
TheSoftwareistheInstrument(软件就是仪器)。
可以说,组建现代化测控系统的成败很大程度上取决于软件平台和工具以及相关硬件设备的选择。
为了使“软件就是仪器”这句口号成为现实,美国国家仪器公司在软件体系结构的各个层次上,形成了完整的设备驱动程序、系统开发平台、实用支持软件、应用软件包相互支撑的格局,使虚拟仪器系统的概念不再“虚拟”。
其中,LabVIEW就是美国NI公司推出的一套著名的虚拟仪器开发软件平台。
1、LabVIEW与虚拟仪器(VI)程序
LabVIEW(LaboratoryVirtualInstrumentEngineeringWorkbench,实验室虚拟仪器集成环境)是一个高效的图形化程序设计环境,也是一个功能强大而又灵活地仪器和分析软件应用开发工具。
它结合了简单易用的图形式开发环境与灵活强大的G编程语言,提供了一个直觉式的环境,与测量紧密结合,能让工程师与科学家们迅速开发出有关数据采集、测量控制、数据分析、存储及显示的解决方案。
现今数以万计的工程师、科学家以及技术人员正在使用LabVIEW来构建测量与自动化系统。
在NASA(美国国家航空和宇宙航行局),工程师们使用LabVIEW来对国际空间站使用的低成本乘员救生飞船(X-38工程)的原型机(一共四架)进行设计、制造和测试,并取得了很好的效果。
V131,V132,V133和最后正式样机V201在飞行测试时的各种状态数据都是通过LabVIEW采集和处理的。
使用LabVIEW不仅使该飞船的开发研制周期大大缩短,还极大地降低了系统开发费用。
像C或BASIC一样,LabVIEW也是通用的编程系统,有一个可完成任何编程任务的庞大的函数库。
LabVIEW的函数库包括数据采集、GPIB、串口控制、数据分析、数据显示及数据存储等。
LabVIEW也有传统的程序调试工具,如设置断点、以动画方式显示数据及其通过程序(子VI)的结果、单步执行等,便于程序的调试。
1)LabVIEW的启动
启动LabVIEW7Express后,首先出现图1-1所示的对话框。
对话框各按钮的作用如下:
【New】——创建一个新的VI(VirtualInstrument)程序;
【Open】——打开一个已有的VI程序(单击右边的小箭头,弹出的下拉菜单中包含程序示例和最近10此使用的VI程序)。
【Configure】——设置NI的测量和控制工具,如DAQmax的设置。
【Help】——LabVIEW帮助。
图1-1LabVIEW7Express启动界面
选择BlankVI时,将出现一个未命名的前面板窗口。
前面板窗口是VI代码的接口,也是组成VI的两种LabVIEW窗口之一。
另一个窗口是框图窗口,其中包含了以图形方式(如图标、连线等)表示的程序代码。
2)前面板窗口和框图程序窗口
使用LabVIEW开发平台编制的程序称为虚拟仪器程序,简称为VI。
VI包括三个部分:
程序前面板、框图程序和图标/连接器。
图1-2和图1-3所示为一个虚拟仪器的前面板和与其对应的框图程序。
图1-2LabVIEW程序前面板
程序前面板用于设置输入数值和观察输出量,用于模拟真实仪表的前面板,其大小、外观、功能布局均可以由用户根据自己的需要进行定制。
在程序前面板上,输入量被称为控制(Controls),输出量被称为显示(Indicators)。
控制和显示是以各
图1-3与LabView程序前面板对应的框图程序
种图标形式出现在前面板上,如旋钮、开关、按钮、图表等,这使这得前面板直观易懂。
a)前面板工具栏
前面板窗口和框图程序窗口都有各自的工具栏,工具栏包括用来控制VI的命令按钮和状态指示器。
图1-4所示是前面板的工具栏。
图1-4前面板工具栏
下面介绍该工具栏中各按钮的作用:
(Run,运行)——单击此按钮可以运行VI程序。
在这里,我们要注意Run按钮的图案变化,如果运行的VI程序为最上级程序,则该按钮变为
,当程序出错,无法执行戏曲时,该按钮变为
,表示VI程序由于出错而不能运行。
如果想了解出错原因,可以单击该按钮,系统将弹出一个帮助窗口,列出所有错误。
(AbortExecution,终止运行)——当VI程序执行时,工具栏上出现
,单击它就会立即停止程序运行。
注意:
使用该按钮来停止VI程序的运行,是强制性的停止,可能会错过一些有用的信息。
通常在设计程序时,可以通过设置按钮来控制VI程序的运行,这就使得VI程序执行的是完整的、有序的过程。
(Psuse/Continue,暂停/继续)——单击该按钮可使VI程序暂时停止执行,再单击它,则VI程序继续执行。
(RunContinuously,连续运行)——单击该按钮,此按钮变为
,VI程序连续的重复执行,再次单击一下该按钮可以停止程序的连续运行。
(TextSettings,字体设置)——单击该按钮将弹出一个下拉列表,从中可以设置字体的格式,如字体类型、大小、形状和颜色等。
——此三个按钮,对选定的对象进行排列方式的设置。
包括对齐、间距等设置。
(Recorder,重叠方式)——当几个对象重叠时,可以重新排列每个对象的叠放次序,如前移、后移等。
b)框图程序工具栏
框图程序窗口的工具栏按钮大多数与前面板工具栏相同,另外还增加了4个调试按钮。
框图程序的工具栏如图1-5所示。
图1-5框图程序工具栏
(HighlightExecution,高亮执行)——单击此按钮,此按钮转换为
,VI程序以一种缓慢的节奏一步一步的执行,所执行到的节点都以高亮方式显示,这样用户可以清楚的了解程序的执行过程,也可以方便的查找错误。
当再次单击此按钮,即可以停止高亮执行。
(StartSingleStepping,单步执行)——单击此按钮,程序将以单步方式运行,如果节点为一个子程序或结构,则进入子程序或结构内部执行单步运行方式。
(StartSingleStepping,单步执行)——单步执行按钮。
与
不同的是:
以一个节点为执行单位,即单击一次此按钮执行一个节点。
如果节点为一个子程序或结构,也作为一个执行单位,一次执行完,然后转到下一个节点,而不会进入节点内部执行。
闪烁的节点表示该节点等待执行。
(StepOut)——当在一个节点(如子程序或结构)内部执行单步运行方式时,单击此按钮可以一次执行完该节点,并直接跳出该节点转到下一个节点。
3)快捷菜单
LabVIEW菜单中使用最多的是快捷菜单,几乎所有用来创建虚拟仪器的对象都有可选择的快捷菜单。
在对象上单击鼠标右键即可以访问快捷菜单。
4)下拉式菜单
LabVIEW窗口上部都的菜单栏为下拉菜单。
下拉式菜单包括最普通的选项如Open、Save、Copy、Paste以及LabVIEW的其他特殊选项。
2、LabVIEW的操作模板
LabVIEW具有多个图形化的操作模板,用于创建和运行程序。
这些操作模板可以随意在屏幕上移动,并可以放置在屏幕的任意位置。
操纵模板共有三类,为工具(Tools)模板、控制(Controls)模板和功能(Functions)模板。
1)工具模板(ToolsPalette)
图1-6工具模板
工具模板为编程者提供了各种用于创建、修改和调试VI程序的工具。
如果该模板没有出现,则可以在Windows菜单下选择ShowToolsPalette命令以显示该模板。
当从模板内选择了任一种工具后,鼠标箭头就会变成该工具相应的形状。
当从Windows菜单下选择了ShowHelpWindow功能后,把工具模板内选定的任一种工具光标放在框图程序的子程序(SubVI)或图标上,就会显示相应的帮助信息。
工具图标有如下几种。
操作工具:
使用该工具来操作前面板的控制和显示。
使用它向数字或字符串控制中键入值时,工具会变成标签工具的形状。
选择工具:
用于选择、移动或改变对象的大小。
当它用于改变对象的连框大小时,会变成相应形状。
标签工具:
用于输入标签文本或者创建自由标签。
当创建自由标签时它会变成相应形状。
连线工具:
用于在框图程序上连接对象。
如果联机帮助的窗口被打开时,把该工具放在任一条连线上,就会显示相应的数据类型。
对象弹出菜单工具:
用左鼠标键可以弹出对象的弹出式菜单。
漫游工具:
使用该工具就可以不需要使用滚动条而在窗口中漫游。
断点工具:
使用该工具在VI的框图对象上设置断点。
探针工具:
可以在框图程序内的数据流线上设置探针。
程序调试员可以通过探针窗口来观察该数据流线上的数据变化状况。
颜色提取工具:
使用该工具来提取颜色用于编辑其他的对象。
颜色工具:
用来给对象定义颜色。
它也显示出对象的前景色和背景色。
与上述工具模板不同,控制和功能模板只显示顶层子模板的图标。
在这些顶层子模板中包含许多不同的控制或功能子模板。
通过这些控制或功能子模板可以找到创建程序所需的面板对象和框图对象。
用鼠标点击顶层子模板图标就可以展开对应的控制或功能子模板,只需按下控制或功能子模板左上角的大头针就可以把对这个子模板变成浮动板留在屏幕上。
2)控制模板(ControlsPalette)
图1-7控制模板
用控制模板可以给前面板添加输入控制和输出显示。
每个图标代表一个子模板。
如果控制模板不显示,可以用Windows菜单的ShowControlsPalette功能打开它,也可以在前面板的空白处,点击鼠标右键,以弹出控制模板。
注:
只有当打开前面板窗口时才能调用控制模板。
控制模板如图1-7所示,它包括如图所示的几个子模板,说明如下。
数值子模板:
包含数值的控制和显示。
布尔值子模块:
逻辑数值的控制和显示。
字符串子模板:
字符串和表格的控制和显示。
列表和环(Ring)子模板:
菜单环和列表栏的控制和显示。
数组和群子模板:
复合型数据类型的控制和显示。
图形子模板:
显示数据结果的趋势图和曲线图。
路径和参考名(Refnum)子模板:
文件路径和各种标识的控制和显示。
控件容器库子模板:
用于操作OLE、ActiveX等功能。
对话框子模板:
用于输入对话框的显示控制。
修饰子模板:
用于给前面板进行装饰的各种图形对象。
用户自定义的控制和显示。
调用存储在文件中的控制和显示的接口。
3)函数模板(FunctionsPalette,又称功能模板)
图1-8功能模板
功能模板是创建框图程序的工具。
该模板上的每一个顶层图标都表示一个子模板。
若功能模板不出现,则可以用Windows菜单下的ShowFunctionsPalette功能打开它,也可以在框图程序窗口的空白处点击鼠标右键以弹出功能模板。
如图1-8所示。
注:
只有激活了框图程序窗口,才能出现功能模板。
结构子模板:
包括程序控制结构命令,例如循环控制等,以及全局变量和局部变量。
数值运算子模板:
包括各种常用的数值运算符,如+、-等;以及各种常见的数值运算式,如+1运算;还包括数制转换、三角函数、对数、复数等运算,以及各种数值常数。
布尔逻辑子模板:
包括各种逻辑运算符以及布尔常数。
字符串运算子模板:
包含各种字符串操作函数、数值与字符串之间的转换函数,以及字符(串)常数等。
数组子模板:
包括数组运算函数、数组转换函数,以及常数数组等。
群子模板。
包括群的处理函数,以及群常数等。
这里的群相当于C语言中的结构。
比较子模板:
包括各种比较运算函数,如大于、小于、等于。
时间和对话框子模板:
包括对话框窗口、时间和出错处理函数等。
文件输入/输出子模板:
包括处理文件输入/输出的程序和函数。
仪器控制子模板:
包括GPIB(488、488.2)、串行、VXI仪器控制的程序和函数,以及VISA的操作功能函数。
仪器驱动程序库:
用于装入各种仪器驱动程序。
数据采集子模板:
包括数据采集硬件的驱动程序,以及信号调理所需的各种功能模块。
信号处理子模板:
包括信号发生、时域及频域分析功能模块。
数学模型子模块:
包括统计、曲线拟合、公式框节点等功能模块,以及数值微分、积分等数值计算工具模块。
图形与声音子模块:
包括3D、OpenGL、声音播放等功能模块。
通讯子模板:
包括TCP、DDE、ActiveX和OLE等功能的处理模块。
应用程序控制子模块:
包括动态调用VI、标准可执行程序的功能函数。
底层接口子模块:
包括调用动态连接库和CIN节点等功能的处理模块。
文档生成子模板。
示教课程子模板:
包括LabVIEW示教程序。
用户自定义的子VI模板。
“选择…VI子程序”子模板:
包括一个对话框,可以选择一个VI程序作为子程序(SUBVI)插入当前程序中。
其它几个子模板是LabVIEW的附加Toolkit安装上去的。
在LabVIEW完全版中不包括这些子模板。
3、虚拟仪器程序的创建
在进行LabVIEW设计中,我们始终需要牢记的是,VI程序具有三个要素:
前面板、框图程序和图标/连接器。
1)前面板
使用输入控制和输出显示来构成前面板。
控制是用户输入数据到程序的接口。
而显示是输出程序产生的数据接口。
控制和显示有许多种类,可以从控制模板的各个子模板中选取。
两种最常用的前面板对象是数字控制和数字显示。
若想要在数字控制中输入或修改数值,可以使用操作工具(见工具模板)点击控制部件和增减按钮,或者用操作工具或标签工具双击数值栏进行输入数值修改。
2)框图程序
框图程序是由节点、端点、图框和连线四种元素构成的。
节点类似于文本语言程序的语句、函数或者子程序。
LabVIEW有二种节点类型----函数节点和子VI节点。
两者的区别在于:
函数节点是LabVIEW以编译好了的机器代码供用户使用的,而子VI节点是以图形语言形式提供给用户的。
用户可以访问和修改任一子VI节点的代码,但无法对函数节点进行修改。
上面的框图程序所示的VI程序有两个功能函数节点,一个函数使两个数值相加,另一个函数使两数相减。
端点是只有一路输入/输出,且方向固定的节点。
LabVIEW有三类端点----前面板对象端点、全局与局部变量端点和常量端点。
对象端点是数据在框图程序部分和前面板之间传输的接口。
一般来说,一个VI的前面板上的对象(控制或显示)都在框图中有一个对象端点与之一一对应。
当在前面板创建或删除面板对象时,可以自动创建或删除相应的对象端点。
控制对象对应的端点在框图中是用粗框框住的,如图1-9中的A和B端点。
它们只能在VI程序框图中作为数据流源点。
显示对象对
程序框图前面板
图1-9简单的程序框图和前面板
应的端点在框图中是用细框框住的。
如例子中的A+B和A-B端点。
它们只能在VI程序框图中作为数据流终点。
常量端点永远只能在VI程序框图中作为数据流源点。
图框是LabVIEW实现程序结构控制命令的图形表示。
如循环控制、条件分支控制和顺序控制等,编程人员可以使用它们控制VI程序的执行方式。
代码接口节点(CIN)是框图程序与用户提供的C语言文本程序的接口。
连线是端口间的数据通道。
它们类似于普通程序中的变量。
数据是单向流动的,从源端口向一个或多个目的端口流动。
不同的线型代表不同的数据类型。
在彩显上,每种数据类型还以不同的颜色予以强调。
下面是一些常用数据类型所对应的线型和颜色:
整形蓝色
浮点数橙色
逻辑量绿色
字符串粉色
文件路径青色
当需要连接两个端点时,在第一个端点上点击连线工具(从工具模板栏调用),然后移动到另一个端点,再点击第二个端点。
端点的先后次序不影响数据流动方向。
当把连线工具放在端点上时,该端点区域将会闪烁,表示连线将会接通该端点。
当把连线工具从一个端口接到另一个端口时,不需要按住鼠标键。
当需要连线转弯时,点击一次鼠标键,即可以正交垂直方向地弯曲连线,按空格键可以改变转角的方向。
3)从框图程序窗口创建前面板对象
用选择和连线工具,可以用鼠标右键点击任一节点和端点,然后从弹出菜单中选择“创建常数”,“创建控制”,或“创建显示”等命令。
LabVIEW会自动地在被创建的端点与所点击对象之间接好连线。
图1-10从框图程序窗口创建前面板对象
编写框图程序技巧:
可以通过鼠标右键,在快捷菜单中点击ViewAsIcon取消此选项,则
成为
(只是外观显示不同)。
4)数据流编程
控制VI程序的运行方式叫做“数据流”。
对一个节点而言,只有当它的所有输入端口上的数据都成为有效数据时,它才能被执行。
当节点程序运行完毕后,它把结果数据送给所有的输出端口,使之成为有效数据。
并且数据很快从源送到目的端口。
如图1-11所示,这个VI程序把两个输入数值相乘,再把乘积减去50.0。
这个程序中,框图程序从左往右执行,这个执行次序不是由于对象的摆放位置,而是由于相减运算函数的一个输入量是相乘函数的运算结果,它只有当相乘运算
图1-11数据流举例
完成并把结果送到减运算的输入口后才能继续下去。
请记住,一个节点(函数)只有当它所有的输入端的数据都成为有效数据后才能被执行,而且只有当它执行完成后,它的所有输出端口上的数据才成为有效。
再看另一个程序(如图1-12所示),你认为哪一个节点函数将先执行?
是乘法还是除法?
在这个例子中,我们无法知道哪一个节点函数首先执行,因为所有输入量几乎同时到达。
对于这样一种相互独立的数据流程,如果又必须明确指定节点执行的先后次序,就必须使用顺序(Sequence)结构来明确执行次序。
图1-12数据流举例
5)创建子程序
在LabVIEW中,每个VI程序都可以将其创建成子程序,以便其他程序调用。
创建如下(我们将图1-11所示的VI程序保存为“例子1”,创建成子程序):
a)打开VI程序“例子1”。
b)创建接线端口。
接线端口是VI程序数据的输入/输出端口,创建过程如下:
Ø右键单击前面板中右上角图标,从弹出的快捷菜单中选择ShowConnector选项。
此时前面板窗口右上角的图标由接线端口
取代,每个小矩形框代表一个连线的端口,这些端口用来将数据输入到VI程序中或将VI程序的数据输出。
LabVIEW将会根据控制器和指示器的数值选择一种连线端口模式。
本例中由3个端口:
两个数字控制器(Numeric1和Numeric2),一个数字指示器(Result)。
如果由必要,还可以在连线端口图标上单击右键,从弹出的快捷菜单中选择Patterns来改变连线端口模式。
默认状态时,输入端口(控制器端口)在连线端口方框左边,输出端口(指示器端口)在连线端口方框右边。
Ø把连线端口分配给相应的控制器和指示器。
Ø使用连线工具,在左边连线端口框内单击鼠标左键,则端口将会变黑,再单击控制器,一个闪烁的虚线框将包围住该控制器。
此时端口的颜色也会根据控制器的类型做相应的变换。
现在单击右边的连线端口,使它变黑,再点击相应的指示器,这样就创建了该指示器同相应端口的连接。
c)保存此程序,以后我们就可以对其象子程序一样调用了。
d)打开一个新的VI,在框图程序中选择Functions-AllFunctions-SelectaVI…,再选择上面我们保存的VI程序“例子1”。
此时,此VI程序将以图标
形式出现。
用连线工具可以看到它的连线端口,这样我们就可以创建相应的控制器和指示器,如图1-13所示。
图1-13调用子程序
4、程序调试技术
程序调试是进行任何程序设计过程中所必须的过程。
我们在程序设计过程中不可避免地会有各种逻辑上和语法上的错误,这些都需要通过程序调试找出来加以改正。
Labview给我们提供了几种程序调试的方法,主要有以下几种。
1)找出语法错误
如果一个VI程序存在语法错误,则在面板工具条上的运行按钮将会变成一个折断的箭头,表示程序不能被执行。
这时这个按钮被称作错误列表。
点击它,则LabVIEW弹出错误清单窗口,点击其中任何一个所列出的错误,选用Find功能,则出错的对象或端口就会变成高亮。
2)设置执行程序高亮
在LabVIEW的工具条上有一个画着灯泡的按钮,这个按钮叫做“高亮执行”按钮上。
点击这个按钮使该按钮图标变成高亮形式,再点击运行按钮,VI程序就以较慢的速度运行,没有被执行的代码灰色显示,执行后的代码高亮