《虚拟仪器技术》实验指导书_第1页
《虚拟仪器技术》实验指导书_第2页
《虚拟仪器技术》实验指导书_第3页
《虚拟仪器技术》实验指导书_第4页
《虚拟仪器技术》实验指导书_第5页
已阅读5页,还剩67页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、虚拟仪器技术实验指导书注意:在实验之前,首先在计算机的D盘下面创建一个以自己名字+学号命名的目录,在此文件夹下面再建立8个子文件夹目录,分别命名为实验一至实验八,所有的实验程序都保存到相应的目录中。实验一 LabVIEW编程环境与基本操作一、实验目的1了解LabVIEW的编程与运行环境。2掌握LabVIEW的基本操作方法,并编制简单的程序。3掌握使用调试工具调试VI程序。4掌握VI子程序的建立和调用过程。二、实验设备安装有LabVIEW 的计算机三、实验原理现代科技技术的进步以计算机技术的进步为代表。不断革新的计算机技术,从各个层面上影响着、引导着各行各业的技术更新。基于计算机技术的虚拟仪器系

2、统技术正以不可逆转的力量推动着测量与控制技术的革命。虚拟仪器系统的概念不仅推进了以仪器为基础的测控系统的改造,同时也影响了以数据采集为主的测控系统的传统构造方法。过去独立分散、互不相干的许多传统仪器,在虚拟仪器系统的概念之下,正在逐渐靠拢、相互影响,并形成新的技术方法和技术规范。虚拟仪器系统的概念是测控系统的抽象。不管是传统的还是虚拟的仪器,它们的功能都是相同的:采集数据,对采集来的数据进行分析处理,然后显示处理的结果。它们之间的不同主要体现在灵活性方面。虚拟仪器由用户自己定义,这意味着用户可以自由地组合计算机平台、硬件、软件、以及各种完成应用系统所需要的附件。而这种灵活性在由制造商定义、功能

3、固定、独立的传统仪器上是达不到的。常用的数字万用表、示波器、信号发生器、数据记录仪,以及温度和压力监控器就是传统仪器的代表。基于计算机的虚拟仪器得益于PC技术的发展。由于直接将仪器模块插入到计算机中,我们就可以直接享用到台式或便携式计算机上出众的处理能力、显示、数据存储以及连接性能等方面的优势,使测量以最有效的方式从使用传统的仪器过渡到使用通用计算机。基于计算机的仪器不仅继承了传统仪器的标准测量能力,更增加了扩展仪器概念的灵活性,使我们能够更加直接、更加有效地面对当今测量应用的挑战。更有意义的是,利用诸如LabVIEW、LabWindows/CVI等应用开发环境,可以方便地使多台仪器的测量能力

4、结合并同步工作,以建立功能强大仪器系统。更进一步,我们也可以开发自己的分析程序,实现那些有别于其他仪器或系统的功能。PC机和台式工作站已经成为检测系统的标准控制平台。基于虚拟仪器的应用软件包、用户接口库、仪器驱动程序、检测程序和分析库正在被广泛地应用并极大地减少了开发的时间。A/D转换技术的发展,使得插卡式数据采集板成为基于PC机的仪器系统增长最快的选件。图像技术的引入,更为现代检测系统增添风采。今天,工业标准的计算机平台,揉合多种仪器与设备,并充分利用仪器系统软件工具,已经成为降低系统造价,完善系统功能,提高系统性能/价格比的最重要的手段。不管是建立检测系统,还是建立工业自动化系统,充分利用

5、最现代化的手段,运用最新技术是必不可少的。简洁、实用、可靠、完备而且高性能/价格比始终是我们的追求。软件和硬件的结合、GPIB与DAQ的搭配、传统与现代的协调,使我们可以建立独特且规范的系统。虚拟仪器系统技术的基础是计算机系统,核心是软件技术。因此,美国国家仪器公司(NI)提出其著名的口号:The Software is the Instrument (软件就是仪器)。可以说,组建现代化测控系统的成败很大程度上取决于软件平台和工具以及相关硬件设备的选择。为了使“软件就是仪器”这句口号成为现实,美国国家仪器公司在软件体系结构的各个层次上,形成了完整的设备驱动程序、系统开发平台、实用支持软件、应用

6、软件包相互支撑的格局,使虚拟仪器系统的概念不再“虚拟”。其中,LabVIEW就是美国NI公司推出的一套著名的虚拟仪器开发软件平台。1、LabVIEW与虚拟仪器(VI)程序LabVIEW(Laboratory Virtual Instrument Engineering Workbench,实验室虚拟仪器集成环境) 是一个高效的图形化程序设计环境,也是一个功能强大而又灵活地仪器和分析软件应用开发工具。它结合了简单易用的图形式开发环境与灵活强大的G编程语言,提供了一个直觉式的环境,与测量紧密结合,能让工程师与科学家们迅速开发出有关数据采集、测量控制、数据分析、存储及显示的解决方案。现今数以万计的工

7、程师、科学家以及技术人员正在使用LabVIEW来构建测量与自动化系统。在NASA(美国国家航空和宇宙航行局),工程师们使用LabVIEW来对国际空间站使用的低成本乘员救生飞船(X-38工程)的原型机(一共四架)进行设计、制造和测试,并取得了很好的效果。V131, V132, V133和最后正式样机V201在飞行测试时的各种状态数据都是通过LabVIEW采集和处理的。使用LabVIEW不仅使该飞船的开发研制周期大大缩短,还极大地降低了系统开发费用。像C或BASIC一样,LabVIEW也是通用的编程系统,有一个可完成任何编程任务的庞大的函数库。LabVIEW的函数库包括数据采集、GPIB、串口控制

8、、数据分析、数据显示及数据存储等。LabVIEW也有传统的程序调试工具,如设置断点、以动画方式显示数据及其通过程序(子VI)的结果、单步执行等,便于程序的调试。1) LabVIEW的启动启动LabVIEW 7 Express后,首先出现图1-1所示的对话框。对话框各按钮的作用如下:【New】创建一个新的VI(Virtual Instrument)程序;【Open】打开一个已有的VI程序(单击右边的小箭头,弹出的下拉菜单中包含程序示例和最近10此使用的VI程序)。【Configure】设置NI的测量和控制工具,如DAQmax的设置。【Help】LabVIEW帮助。图1-1 LabVIEW 7 E

9、xpress启动界面选择Blank VI时,将出现一个未命名的前面板窗口。前面板窗口是VI代码的接口,也是组成VI的两种LabVIEW窗口之一。另一个窗口是框图窗口,其中包含了以图形方式(如图标、连线等)表示的程序代码。2) 前面板窗口和框图程序窗口使用LabVIEW开发平台编制的程序称为虚拟仪器程序,简称为VI。VI包括三个部分:程序前面板、框图程序和图标/连接器。图1-2和图1-3所示为一个虚拟仪器的前面板和与其对应的框图程序。图1-2 LabVIEW程序前面板程序前面板用于设置输入数值和观察输出量,用于模拟真实仪表的前面板,其大小、外观、功能布局均可以由用户根据自己的需要进行定制。在程序

10、前面板上,输入量被称为控制(Controls),输出量被称为显示(Indicators)。控制和显示是以各图1-3 与LabView程序前面板对应的框图程序种图标形式出现在前面板上,如旋钮、开关、按钮、图表等,这使这得前面板直观易懂。a) 前面板工具栏前面板窗口和框图程序窗口都有各自的工具栏,工具栏包括用来控制VI的命令按钮和状态指示器。图1-4所示是前面板的工具栏。图1-4 前面板工具栏下面介绍该工具栏中各按钮的作用:(Run,运行)单击此按钮可以运行VI程序。在这里,我们要注意Run按钮的图案变化 ,如果运行的VI程序为最上级程序,则该按钮变为,当程序出错,无法执行戏曲时,该按钮变为,表示

11、VI程序由于出错而不能运行。如果想了解出错原因,可以单击该按钮,系统将弹出一个帮助窗口,列出所有错误。(Abort Execution,终止运行)当VI程序执行时,工具栏上出现,单击它就会立即停止程序运行。注意:使用该按钮来停止VI程序的运行,是强制性的停止,可能会错过一些有用的信息。通常在设计程序时,可以通过设置按钮来控制VI程序的运行,这就使得VI程序执行的是完整的、有序的过程。(Psuse/Continue,暂停/继续)单击该按钮可使VI程序暂时停止执行,再单击它,则VI程序继续执行。(Run Continuously,连续运行)单击该按钮,此按钮变为,VI程序连续的重复执行,再次单击一

12、下该按钮可以停止程序的连续运行。(Text Settings,字体设置)单击该按钮将弹出一个下拉列表,从中可以设置字体的格式,如字体类型、大小、形状和颜色等。 此三个按钮,对选定的对象进行排列方式的设置。包括对齐、间距等设置。(Recorder,重叠方式)当几个对象重叠时,可以重新排列每个对象的叠放次序,如前移、后移等。b) 框图程序工具栏框图程序窗口的工具栏按钮大多数与前面板工具栏相同,另外还增加了4个调试按钮。框图程序的工具栏如图1-5所示。图1-5 框图程序工具栏(Highlight Execution,高亮执行)单击此按钮,此按钮转换为,VI程序以一种缓慢的节奏一步一步的执行,所执行到

13、的节点都以高亮方式显示,这样用户可以清楚的了解程序的执行过程,也可以方便的查找错误。当再次单击此按钮,即可以停止高亮执行。(Start Single Stepping,单步执行)单击此按钮,程序将以单步方式运行,如果节点为 一个子程序或结构,则进入子程序或结构内部执行单步运行方式。(Start Single Stepping,单步执行)单步执行按钮。与不同的是:以一个节点为执行单位,即单击一次此按钮执行一个节点。如果节点为一个子程序或结构,也作为一个执行单位,一次执行完,然后转到下一个节点,而不会进入节点内部执行。闪烁的节点表示该节点等待执行。(Step Out)当在一个节点(如子程序或结构)

14、内部执行单步运行方式时,单击此按钮可以一次执行完该节点,并直接跳出该节点转到下一个节点。3) 快捷菜单LabVIEW菜单中使用最多的是快捷菜单,几乎所有用来创建虚拟仪器的对象都有可选择的快捷菜单。在对象上单击鼠标右键即可以访问快捷菜单。4) 下拉式菜单LabVIEW窗口上部都的菜单栏为下拉菜单。下拉式菜单包括最普通的选项如Open、Save、Copy、Paste以及LabVIEW的其他特殊选项。2、LabVIEW的操作模板LabVIEW具有多个图形化的操作模板,用于创建和运行程序。这些操作模板可以随意在屏幕上移动,并可以放置在屏幕的任意位置。操纵模板共有三类,为工具(Tools)模板、控制(C

15、ontrols)模板和功能(Functions)模板。1) 工具模板(Tools Palette)图1-6 工具模板工具模板为编程者提供了各种用于创建、修改和调试VI程序的工具。如果该模板没有出现,则可以在Windows菜单下选择Show Tools Palette命令以显示该模板。当从模板内选择了任一种工具后,鼠标箭头就会变成该工具相应的形状。当从Windows菜单下选择了Show Help Window功能后,把工具模板内选定的任一种工具光标放在框图程序的子程序(Sub VI)或图标上,就会显示相应的帮助信息。工具图标有如下几种。操作工具:使用该工具来操作前面板的控制和显示。使用它向数字或

16、字符串控制中键入值时,工具会变成标签工具的形状。选择工具:用于选择、移动或改变对象的大小。当它用于改变对象的连框大小时,会变成相应形状。标签工具:用于输入标签文本或者创建自由标签。当创建自由标签时它会变成相应形状。连线工具:用于在框图程序上连接对象。如果联机帮助的窗口被打开时,把该工具放在任一条连线上,就会显示相应的数据类型。对象弹出菜单工具:用左鼠标键可以弹出对象的弹出式菜单。漫游工具:使用该工具就可以不需要使用滚动条而在窗口中漫游。断点工具:使用该工具在VI的框图对象上设置断点。探针工具:可以在框图程序内的数据流线上设置探针。程序调试员可以通过探针窗口来观察该数据流线上的数据变化状况。颜色

17、提取工具:使用该工具来提取颜色用于编辑其他的对象。颜色工具:用来给对象定义颜色。它也显示出对象的前景色和背景色。与上述工具模板不同,控制和功能模板只显示顶层子模板的图标。在这些顶层子模板中包含许多不同的控制或功能子模板。通过这些控制或功能子模板可以找到创建程序所需的面板对象和框图对象。用鼠标点击顶层子模板图标就可以展开对应的控制或功能子模板,只需按下控制或功能子模板左上角的大头针就可以把对这个子模板变成浮动板留在屏幕上。2) 控制模板(Controls Palette)图1-7 控制模板用控制模板可以给前面板添加输入控制和输出显示。每个图标代表一个子模板。如果控制模板不显示,可以用Window

18、s菜单的Show Controls Palette功能打开它,也可以在前面板的空白处,点击鼠标右键,以弹出控制模板。注:只有当打开前面板窗口时才能调用控制模板。控制模板如图1-7所示,它包括如图所示的几个子模板,说明如下。数值子模板:包含数值的控制和显示。布尔值子模块:逻辑数值的控制和显示。字符串子模板:字符串和表格的控制和显示。列表和环(Ring)子模板:菜单环和列表栏的控制和显示。数组和群子模板:复合型数据类型的控制和显示。图形子模板:显示数据结果的趋势图和曲线图。路径和参考名(Refnum)子模板:文件路径和各种标识的控制和显示。控件容器库子模板:用于操作OLE、ActiveX等功能。对

19、话框子模板:用于输入对话框的显示控制。修饰子模板:用于给前面板进行装饰的各种图形对象。用户自定义的控制和显示。调用存储在文件中的控制和显示的接口。3) 函数模板(Functions Palette,又称功能模板)图1-8 功能模板功能模板是创建框图程序的工具。该模板上的每一个顶层图标都表示一个子模板。若功能模板不出现,则可以用Windows菜单下的Show Functions Palette功能打开它,也可以在框图程序窗口的空白处点击鼠标右键以弹出功能模板。如图1-8所示。注:只有激活了框图程序窗口,才能出现功能模板。结构子模板:包括程序控制结构命令,例如循环控制等,以及全局变量和局部变量。数

20、值运算子模板:包括各种常用的数值运算符,如+、-等;以及各种常见的数值运算式,如+1运算;还包括数制转换、三角函数、对数、复数等运算,以及各种数值常数。布尔逻辑子模板:包括各种逻辑运算符以及布尔常数。字符串运算子模板:包含各种字符串操作函数、数值与字符串之间的转换函数,以及字符(串)常数等。数组子模板:包括数组运算函数、数组转换函数,以及常数数组等。群子模板。包括群的处理函数,以及群常数等。这里的群相当于C语言中的结构。比较子模板:包括各种比较运算函数,如大于、小于、等于。时间和对话框子模板:包括对话框窗口、时间和出错处理函数等。文件输入/输出子模板:包括处理文件输入/输出的程序和函数。仪器控

21、制子模板:包括GPIB(488、488.2)、串行、VXI仪器控制的程序和函数,以及VISA的操作功能函数。仪器驱动程序库:用于装入各种仪器驱动程序。数据采集子模板:包括数据采集硬件的驱动程序,以及信号调理所需的各种功能模块。信号处理子模板:包括信号发生、时域及频域分析功能模块。数学模型子模块:包括统计、曲线拟合、公式框节点等功能模块,以及数值微分、积分等数值计算工具模块。图形与声音子模块:包括3D、OpenGL、声音播放等功能模块。通讯子模板:包括TCP、DDE、ActiveX和OLE等功能的处理模块。应用程序控制子模块:包括动态调用VI、标准可执行程序的功能函数。底层接口子模块:包括调用动

22、态连接库和CIN节点等功能的处理模块。文档生成子模板。示教课程子模板:包括LabVIEW示教程序。用户自定义的子VI模板。“选择VI子程序”子模板:包括一个对话框,可以选择一个VI程序作为子程序(SUB VI)插入当前程序中。其它几个子模板是LabVIEW的附加Toolkit安装上去的。在LabVIEW完全版中不包括这些子模板。3、虚拟仪器程序的创建在进行LabVIEW设计中,我们始终需要牢记的是,VI程序具有三个要素:前面板、框图程序和图标/连接器。1) 前面板使用输入控制和输出显示来构成前面板。控制是用户输入数据到程序的接口。而显示是输出程序产生的数据接口。控制和显示有许多种类,可以从控制

23、模板的各个子模板中选取。两种最常用的前面板对象是数字控制和数字显示。若想要在数字控制中输入或修改数值,可以使用操作工具(见工具模板)点击控制部件和增减按钮,或者用操作工具或标签工具双击数值栏进行输入数值修改。2) 框图程序框图程序是由节点、端点、图框和连线四种元素构成的。节点类似于文本语言程序的语句、函数或者子程序。LabVIEW有二种节点类型-函数节点和子VI节点。两者的区别在于:函数节点是LabVIEW以编译好了的机器代码供用户使用的,而子VI节点是以图形语言形式提供给用户的。用户可以访问和修改任一子VI节点的代码,但无法对函数节点进行修改。上面的框图程序所示的VI程序有两个功能函数节点,

24、一个函数使两个数值相加,另一个函数使两数相减。端点是只有一路输入/输出,且方向固定的节点。LabVIEW有三类端点-前面板对象端点、全局与局部变量端点和常量端点。对象端点是数据在框图程序部分和前面板之间传输的接口。一般来说,一个VI的前面板上的对象(控制或显示)都在框图中有一个对象端点与之一一对应。当在前面板创建或删除面板对象时,可以自动创建或删除相应的对象端点。控制对象对应的端点在框图中是用粗框框住的,如图1-9中的A和B端点。它们只能在VI程序框图中作为数据流源点。显示对象对程序框图 前面板图1-9 简单的程序框图和前面板应的端点在框图中是用细框框住的。如例子中的A+B和A-B端点。它们只

25、能在VI程序框图中作为数据流终点。常量端点永远只能在VI程序框图中作为数据流源点。图框是LabVIEW实现程序结构控制命令的图形表示。如循环控制、条件分支控制和顺序控制等,编程人员可以使用它们控制VI程序的执行方式。代码接口节点(CIN)是框图程序与用户提供的C语言文本程序的接口。连线是端口间的数据通道。它们类似于普通程序中的变量。数据是单向流动的,从源端口向一个或多个目的端口流动。不同的线型代表不同的数据类型。在彩显上,每种数据类型还以不同的颜色予以强调。下面是一些常用数据类型所对应的线型和颜色:整 形 蓝色浮点数 橙色逻辑量 绿色字符串 粉色文件路径 青色当需要连接两个端点时,在第一个端点

26、上点击连线工具(从工具模板栏调用),然后移动到另一个端点,再点击第二个端点。端点的先后次序不影响数据流动方向。当把连线工具放在端点上时,该端点区域将会闪烁,表示连线将会接通该端点。当把连线工具从一个端口接到另一个端口时,不需要按住鼠标键。当需要连线转弯时,点击一次鼠标键,即可以正交垂直方向地弯曲连线,按空格键可以改变转角的方向。3) 从框图程序窗口创建前面板对象用选择和连线工具,可以用鼠标右键点击任一节点和端点,然后从弹出菜单中选择“创建常数”,“创建控制”,或“创建显示”等命令。LabVIEW会自动地在被创建的端点与所点击对象之间接好连线。图1-10 从框图程序窗口创建前面板对象编写框图程序

27、技巧:可以通过鼠标右键,在快捷菜单中点击View As Icon 取消此选项,则成为(只是外观显示不同)。4) 数据流编程控制VI程序的运行方式叫做“数据流”。对一个节点而言,只有当它的所有输入端口上的数据都成为有效数据时,它才能被执行。当节点程序运行完毕后,它把结果数据送给所有的输出端口,使之成为有效数据。并且数据很快从源送到目的端口。如图1-11所示,这个VI程序把两个输入数值相乘,再把乘积减去50.0。这个程序中,框图程序从左往右执行,这个执行次序不是由于对象的摆放位置,而是由于相减运算函数的一个输入量是相乘函数的运算结果,它只有当相乘运算图1-11 数据流举例完成并把结果送到减运算的输

28、入口后才能继续下去。请记住,一个节点(函数)只有当它所有的输入端的数据都成为有效数据后才能被执行,而且只有当它执行完成后,它的所有输出端口上的数据才成为有效。再看另一个程序(如图1-12所示),你认为哪一个节点函数将先执行?是乘法还是除法?在这个例子中,我们无法知道哪一个节点函数首先执行,因为所有输入量几乎同时到达。对于这样一种相互独立的数据流程,如果又必须明确指定节点执行的先后次序,就必须使用顺序(Sequence)结构来明确执行次序。图1-12 数据流举例5) 创建子程序在LabVIEW中,每个VI程序都可以将其创建成子程序,以便其他程序调用。创建如下(我们将图1-11所示的VI程序保存为

29、“例子1”,创建成子程序):a) 打开VI程序“例子1”。b) 创建接线端口。接线端口是VI程序数据的输入/输出端口,创建过程如下:Ø 右键单击前面板中右上角图标,从弹出的快捷菜单中选择Show Connector选项。此时前面板窗口右上角的图标由接线端口取代,每个小矩形框代表一个连线的端口,这些端口用来将数据输入到VI程序中或将VI程序的数据输出。LabVIEW将会根据控制器和指示器的数值选择一种连线端口模式。本例中由3个端口:两个数字控制器(Numeric1和Numeric2),一个数字指示器(Result)。如果由必要,还可以在连线端口图标上单击右键,从弹出的快捷菜单中选择Pa

30、tterns来改变连线端口模式。默认状态时,输入端口(控制器端口)在连线端口方框左边,输出端口(指示器端口)在连线端口方框右边。Ø 把连线端口分配给相应的控制器和指示器。Ø 使用连线工具,在左边连线端口框内单击鼠标左键,则端口将会变黑,再单击控制器,一个闪烁的虚线框将包围住该控制器。此时端口的颜色也会根据控制器的类型做相应的变换。现在单击右边的连线端口,使它变黑,再点击相应的指示器,这样就创建了该指示器同相应端口的连接。c) 保存此程序,以后我们就可以对其象子程序一样调用了。d) 打开一个新的VI,在框图程序中选择Functions-All Functions-Select

31、 a VI,再选择上面我们保存的VI程序“例子1”。此时,此VI程序将以图标形式出现。用连线工具可以看到它的连线端口,这样我们就可以创建相应的控制器和指示器,如图1-13所示。图1-13 调用子程序4、程序调试技术程序调试是进行任何程序设计过程中所必须的过程。我们在程序设计过程中不可避免地会有各种逻辑上和语法上的错误,这些都需要通过程序调试找出来加以改正。Lab view给我们提供了几种程序调试的方法,主要有以下几种。1) 找出语法错误如果一个VI程序存在语法错误,则在面板工具条上的运行按钮将会变成一个折断的箭头,表示程序不能被执行。这时这个按钮被称作错误列表。点击它,则LabVIEW弹出错误

32、清单窗口,点击其中任何一个所列出的错误,选用Find功能,则出错的对象或端口就会变成高亮。2) 设置执行程序高亮在Lab VIEW的工具条上有一个画着灯泡的按钮,这个按钮叫做“高亮执行”按钮上。点击这个按钮使该按钮图标变成高亮形式,再点击运行按钮,VI程序就以较慢的速度运行,没有被执行的代码灰色显示,执行后的代码高亮显示,并显示数据流线上的数据值。这样,我们就可以在根据数据的流动状态跟踪程序的执行。3) 断点与单步执行为了查找程序中的逻辑错误,我们有时希望框图程序一个节点一个节点地执行。使用断点工具可以在程序的某一地点中止程序执行,用探针或者单步方式查看数据。使用断点工具时,点击希望设置或者清

33、除断点的地方。断点的显示对于节点或者图框表示为红框,对于连线表示为红点。当VI程序运行到断点被设置处,程序被暂停在将要执行的节点,以闪烁表示。按下单步执行按钮,闪烁的节点被执行,下一个将要执行的节点变为闪烁,指示它将被执行。我们也可以点击暂停按钮,这样程序将连续执行直到下一个断点。4) 探针可以用探针工具来查看当框图程序流经某一根连接线时的数据值。从Tools工具模板选择探针工具,再用鼠标左建点击我们希望放置探针的连接线。这时显示器上会出现一个探针显示窗口。该窗口总是被显示在前面板窗口或框图窗口的上面。在框图中使用选择工具或连线工具,在连线上点击鼠标右键,在连线的弹出式菜单中选择“探针”命令,

34、同样可以为该连线加上一个探针。5、LabVIEW程序设计的一般过程 1)前面板设计使用输入控件器和输出指示器来构成前面板。控制器是用户输入数据到程序的方法,而指示器显示程序产生的数值。2)框图程序的组成 框图程序由节点、端口和连线和组成。 前面板框图程序3)从框图程序创建前面板对象 用任意LabVIEW工具,用户都可以用鼠标右键单击任意的LabVIEW功能函数或者子程序,然后可以弹出其快捷菜单。4)数据流编程 VI程序的运行是“数据流”驱动的。对一个节点而言,只有当它的输入端口上的数据都有效以后,它才能被执行。当节点程序运行完毕后,它把结果数据送给所有的输出端口。“数据流”与常规程序的“控制流

35、”相类似,相当于指令执行的顺序按照程序的编写顺序。如下图,这个VI程序把两个输入数值相乘,再把乘积减去50。下面简单介绍这个VI框图程序的创建过程:选择框图程序窗口。在功能模板中选择Numeric下的Multiply(乘法)函数,放入框图程序窗口。在此函数图标的左端输入端口上单击右键,从弹出的对话框中选择CreatàControl,创建一个与它相连的控制器。重复上面的步骤,创建第二个控制器同乘法函数的连接。在功能模板中选择Numeric下的Subtract(减法)函数,放入框图程序窗口。在此函数左端相应输入端口上单击右键,从弹出的对话框中选择CreatàConstant,创

36、建一个常数。在此减法(Subtract)函数右端输出端口上单击右键,从弹出的对话框中选择CreatàIndicator,创建指示器。用连线工具连线。四、实验内容1、创建自己的第一个VI。建立一个测量温度和容积的VI。步骤如下:1)选择 File»New,打开一个新的前面板窗口。2)从 Controls»Numeric 中选择 Tank放到前面板中。3)在标签文本框中输入“容积” ,然后在前面板中的其他任何位置单击一下。4)把容器显示对象的显示范围设置为0.0到1000.a.使用文本编辑工具(Text Edit Tool),双击容器坐标10.0标度,使它高亮显示。b

37、.在坐标中输入 1000,再在前面板中的其他任何地方单击一下。 这时0.0到1000.0之间的增量将被自动显示。5)在容器旁配数据显示。将鼠标移到容器上,点右键,在出现的快速菜单中选Visible Iterms»Digital Display即可。6)从Controls»Numeric 中选择一个温度计,将它放到前面板中。设置其标签为“温度”,显示范围为0到100,同时配数字显示。可得到如下的前面板图。练习1的前面板图随机数发生器乘法函数数值常数连接点7)Windows»Show Diagram 打开流程图窗口。从功能模板中选择对象,将它们放到流程图上组成下图(其

38、中的标注是后加的)。练习1的流程图该流程图中新增的对象有两个乘法器、两个数值常数、一个随机数发生器,温度和容积对象是由前面板的设置自动带出来的。乘法器和随机数发生器由Functions»Numeric中拖出,尽管数值常数也可以这样得到,但是建议使用在连接端子处点击右键创建(Create)常量(Constant)的方法更好些。8)用连线工具将各对象按规定连接。9)选择 File»Save, 把该VI命名为Temp & Vol.vi,保存为 D:Yourname的文件夹中。在前面板中,单击Run(运行)按钮,运行该 VI。注意电压和温度的数值都显示在前面板中。10)选择

39、File»Close,关闭该 VI 。2、自己创建一个VI,完成以下功能: 将两个输入的数字相加并显示结果;将同样两个输入数字相乘并显示结果;比较两个输入数字,如果数字相等,则LED指示灯亮。最后,保存为Simple Math.vi文件。 前面板如图1.5:数字A和B用两个数字控件输入,两个数字指示器分别显示输出结果A+B和A×B,当输入数字A和B相同时,将点亮LED。 完成后,应用“高亮执行”观察数据流的运行流程,利用断点,单步调试等工具进行调试。练习使用探针工具来查看当流程图程序流经某一根连接线时的数据值。 图1.5练习3的前面板3、子VI的创建与调用 )打开练习1中T

40、emp & Vol.vi。)在前面板中,用鼠标右键单击窗口右上角的图标,在快捷菜单中选择 Edit Icon.,也可以双击图标激活图标编辑器。注意只能在前面板中编辑图标和联接器。3)删除默认图标。使用Select Tool(矩形框),单击并拖动想要删除的部分,按下<Delete>。也可以通过双击工具框中的阴影矩形删除图标。4)用 Pencil Tool (铅笔工具)绘制一个温度计。5)用 Text Tool(文本工具)创建文本。得到图标将如下图所示。图.编辑后的图标编辑器窗口6)单击OK,关闭编辑器。新创建的图标就显示在屏幕右上角的图标窗口中。7) 用鼠标右键单击前面板中的

41、图标窗口,在快捷菜单中选择Show Connector,设置联接器端子连接模式。在默认情况下,LabVIEW 会根据前面板中的控制对象和显示对象的数目确定联接器的端子连接模式。因为前面板中有两个对象,所以联接器有两个端子,如左图所示。用鼠标右键单击联接器窗口,在快捷菜单中选择Rotate 90 Degrees(旋转90度),注意联接器窗口的变化,如左图所示。9)将端子连接到温度计和容积计: a. 点击联接器上部端子。光标自动变成连线工具,同时端子变成黑色。b. 单击温度显示对象。一个移动的虚线框把它包围起来,选中的端子的颜色变为与控制/显示对象的数据类型一致的颜色。如果单击前面板中的任何空白区

42、域以后,虚线消失,选中的端子变暗,这表示您已经成功地把显示对象和上部端子连接起来。如果端子是白色,则表示没有连接成功。c. 重复步骤a 和 b,把底部的端子和容积计连接起来。d. 用鼠标右键单击联接器,在快捷菜单中选择Show Icon.10)选择File»Save ,保存该 VI。这样这个 VI 就完成了,并也可以作为子 VI 被其他的VI调用。子VI 的图标在主 VI 的流程图中代表它。VI 的联接器(含有两个端子)输出温度和容积。4、设计一个VI程序,根据所给的x1,y1,x2,y2的值求出直线的斜率。把此程序作为子程序,自己设计一个简单的VI程序调用此子程序。五、实验报告要求

43、1调试编辑以上VI,按顺序打印以上VI的前面板与程序框图后,贴在实验报告上;实验报告中要求详细说明设计步骤要点。2理解基于数据流编程的基本编程思路。3总结VI基本编程的快捷操作。4简述VI程序有什么构成,其各部分的功能是什么。5思考:在前面板和框图程序中,如何区分控制器和指示器。6心得体会及其它。实验二 LabVIEW编程的程序结构实验循环结构一、实验目的1学习并掌握For循环和While循环以及它们的不同点。2学习使用移位寄存器(shift register)和反馈节点(Feedback Node)。二、实验设备安装有LabVIEW 的计算机三、实验原理While 循环和For循环在函数(F

44、unction)的结构(Structures)选项板中可以找到。创建循环的具体方法是,选择该循环后,先在欲放入循环内执行的对象左上方单击,然后按下鼠标,拖曳出一个矩形框包围执行对象。释放鼠标时就创建了一个指定大小和位置的循环。While 循环可以反复执行循环体的程序,直至到达某个边界条件。它类似于普通编程语言中的 Do 循环和 Repeat-Until 循环。While 循环的框图是一个大小可变的方框,用于执行框中的程序,直到条件端子接收到的布尔值为 FALSE。1.For循环和While循环当程序有确定的循环次数时,我们使用For循环。在程序框图中添加For循环(Functions-All

45、Functions-Structures-For Loop),如图2-1所示。u (循环次数输入端)For循环必须给定循环次数n(n>0,否则循环不执行),此项一般都要有输入。当For循环的输入数据时一个数组时,有关数组将在后续章节中介绍),如果不给定循环次数,则数组的大小将决定For循环的循环次数。如果同时输入两个数组,循环次数以数组个数最少的决定。u (循环计数)计数范围0n1。当具体的循环次数不可知时,我们使用While循环(Functions-All Functions-Structures-While Loop),如图2-2所示。 图2-1 For循环 图2-2 While循环

46、While循环也有一个循环计数,第一次循环时的值为0。另外,While循环有一个循环条件判断端子。请特别注意,无论如何,都要给While循环结构一个有效的停止条件,否则可能就会使循环陷入死循环的状态。例如,希望在一组数据中寻找一个特定的数,找到以后停止循环。由于这个特定的数的位置事先不知道,我们可以使用While循环来完成以上的操作,但如果我们将循环停止的条件只是定为找到特定的数就停止,那么,当由于各种原因造成的在这样的一组数据中不存在这个特定数时,While循环将无限运行下去。因此,我们还需要加入其他判断条件,例如我们的循环停止条件可以改为:找到特定的数或者这个数组都找完,则停止。LabVI

47、EW 7 Express对While循环还提供了一个快捷方式:Functions-Execution-Control-While Loop,程序框图如图2-3所示,与图2-2不同的时自动加了一个停止按钮。图2-3 快捷While2.移位寄存器和反馈节点使用循环结构时,经常会遇到下一次循环要用到上一次循环运行结果的情况,这时就需要不断的将每次循环的结果存储下来,以传递给下一次循环。移位寄存器(Shift Register)和反馈节点(Feedback Node)就是用来实现这样的操作的。(a)为For循环设置移位寄存器(b)为While循环设置移位寄存器图2-4 设置移位寄存器在For循环和Wh

48、ile循环中都可以添加移位寄存器和反馈节点,添加方法如下:1) 移位寄存器(Shift Register)移位寄存器可以将数据从一个循环周期传递到另外一个周期。创建一个移位寄存器的方法是,用鼠标右键单击循环的左边或者右边,在快捷菜单中选择 Add Shift Register。移位寄存器在流程图上用在循环边框上相应的一对端子来表示。右边的端子中存储了一个周期完成后的数据,这些数据在这个周期完成之后将被转移到左边的端子,赋给下一个周期。移位寄存器可以转移各种类型的数据数值、布尔数、数组、字符串等等。它会自动适应与它连接的第一个对象的数据类型。在For循环或者While循环的边框上单击鼠标右键,在

49、弹出的快捷菜单中选择Add Shift Register,如图2-4(a)和图2-4(b)所示。2) 反馈节点(Feedback Node)反馈节点是LabVIEW 7 Express新增功能,完成的功能同移位寄存器类似。在For循环或者While循环中,只要将其中的子VI、函数的输入/输出相连接,就会自动出现反馈节点。当然,也可以通过Functions-Execution-Control-Feedback Node来图2-5 将反馈节点变为移位寄存器添加。在反馈节点上单击鼠标右键,从弹出的快捷菜单中选择Replace with Shift Register,反馈节点将变成移位寄存器,如图2-

50、5所示。下面我们通过一个简单的例子来看一下移位寄存器和反馈节点是如何工作的。程序框图如图2-6所示。在这里如果我们不给移位寄存器和反馈节点赋初值(本例中For循环框左边的两个常数0),下次程序运行时,移位寄存器和反馈节点中的值将以上次运行完的值开始。图2-6 反馈节点和移位寄存器四、实验内容1创建一个关于While循环的VI,实现在While循环内放置随机数对象,并在前面板上显示随机数及While循环的实时次数。并在前面板设置开关控制按钮,实现While循环的停止控制。前面板如图2.7,最后将该VI保存为While Loop.vi文件。图 2.7While Loop2创建一个关于For循环的V

51、I,实现在For循环内放置随机数对象,并在前面板上显示随机数及For循环的实时次数。For循环的指定执行次数设为100次。前面板如图2.8,最后将该VI保存为For Loop.vi文件。图 2.8For Loop3练习使用移位寄存器:设计一个包含移位寄存器的While循环,该前面板有4个数字指示器,X(i)指示器用于显示当前循环的实时次数i值,X(i-1)指示器用于显示前一次迭代的已循环次数i的值,X(i-2)指示器用于显示两个迭代前的已循环次数i的值,X(i-3)指示器用于显示三个迭代前的已循环次数i的值。移位寄存器的初始化值设为0。并在前面板设置开关控制按钮,实现While循环的停止控制。

52、前面板如图2.9,最后将该VI保存为Viewing Shift Registers.vi文件。4设计一个VI,实现使用循环和移位寄存器计算随机数序列的移动平均值。要求该VI产生一个随机序列,序列长度由前面板滑动条控件输入,该随机数序列的移动平均值由下列公式可计算:这里i=0,1,N-1, 表示在第i次计算的平均值,是来自随机数函数的当前随机数。前面板要求显示当前用于计算移动平均值的随机数个数i+1,当前的移动平均值,前面板设计如图2.10所示,最后将该VI保存为Random Number Average.vi文件。在Highlight Execution加亮执行的状态下观察数据流。图 2.9V

53、iewing Shift Registers 图 2.5Random Number Average五、实验报告要求1调试编辑以上VI,按顺序打印以上VI的前面板与程序框图后,贴在实验报告上;实验报告中要求详细说明设计步骤要点。2说明For循环与While循环的区别。3理解移位寄存器的作用以及它的初始化。4心得体会及其它。实验三LabVIEW编程的程序结构实验分支结构与顺序结构一、实验目的1 掌握分支结构(Case Structure),顺序结构(Sequence Structure)编程。2 了解时间估计和控制函数。3了解公式节点(Formula Node)的使用。二、实验设备安装有LabVI

54、EW 的计算机二、实验原理1. 分支结构(Case Structure)分支结构(如图3-1所示)的输入端可以连接布尔型和数字型变量。当连接的是布尔型变量时,只有True Case和False Case两种。当连接的是数字型变量时,Case框上的标识将变为0,1,根据输入量的不同,Case结构选择运行不同的程序。关于Case结构,举例如下,程序框图如图3-1所示。图3-1 Case结构举例框图程序在默认状态下,Case结构只有0和1两项,用右键单击Case结构的边框,从弹出的快捷菜单中选择Add Case After来添加一个Case,如图3-2所示。图3-2 添加Case前面板如图3-3所示

55、。是用来选择操作是加法、减法还是乘法。选择All Controls-Ring&Enum-Memu Ring,然后通过工具模板改变大小,鼠标右键选择Properties,在弹出的对话框中改变其属性,同时添加如图3-4所示的内容。图3-3 Case结构举例前面板图3-4 属性设置Case结构含有两个或者更多的子程序(Case),执行那一个取决于与选择端子或者选择对象的外部接口相连接的某个整数、布尔数、字符串或者标识的值。必须选择一个默认的Case以处理超出范围的数值,或者直接列出所有可能的输入数值。Case结构见下图3.5。子程序标识按钮条件端子图3.5 Case结构2.顺序结构(Sequ

56、nce Structure)VI程序的运行是“数据流”驱动的,有时我们必须对这种数据流进行控制,这样就用到了顺序结构。在LabVIEW 7 Express中有两种循序结构:Flat Sequence Structure(Functions-Structures-Flat Sequence Structure)和Stacked Structure(Functions-Structures-Stacked Sequence Structure)。使用Flat Sequence Structure可以看到整个程序框图,当程序框图所占的空间的大小允许时,可以使用这种顺序结构。在程序框上单击鼠标右键,在弹出的快捷菜单中选择Add Frame after或Add Frame Before,这样可以在本帧后或者前添加一帧,如图3-6所示。使用Stacked

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论