[工学]虚拟仪器实验讲义70.doc

上传人:sccc 文档编号:4533569 上传时间:2023-04-26 格式:DOC 页数:38 大小:874.50KB
返回 下载 相关 举报
[工学]虚拟仪器实验讲义70.doc_第1页
第1页 / 共38页
[工学]虚拟仪器实验讲义70.doc_第2页
第2页 / 共38页
[工学]虚拟仪器实验讲义70.doc_第3页
第3页 / 共38页
[工学]虚拟仪器实验讲义70.doc_第4页
第4页 / 共38页
[工学]虚拟仪器实验讲义70.doc_第5页
第5页 / 共38页
点击查看更多>>
资源描述

《[工学]虚拟仪器实验讲义70.doc》由会员分享,可在线阅读,更多相关《[工学]虚拟仪器实验讲义70.doc(38页珍藏版)》请在三一办公上搜索。

1、三实验1 LabVIEW编程环境与基本操作实验一、实验目的u 了解LabVIEW 7 Express的编程 环境u 掌握LabVIEW的基本操作方法,并编制简单程序u 学习建造子程序的过程提示:用CtrlH键打开帮助窗口,可以获得一些很好的帮助信息。二、LabVIEW简介现代科技技术的进步以计算机技术的进步为代表。不断革新的计算机技术,从各个层面上影响着、引导着各行各业的技术更新。基于计算机技术的虚拟仪器系统技术正以不可逆转的力量推动着测量与控制技术的革命。虚拟仪器系统的概念不仅推进了以仪器为基础的测控系统的改造,同时也影响了以数据采集为主的测控系统的传统构造方法。过去独立分散、互不相干的许多

2、传统仪器,在虚拟仪器系统的概念之下,正在逐渐靠拢、相互影响,并形成新的技术方法和技术规范。虚拟仪器系统的概念是测控系统的抽象。不管是传统的还是虚拟的仪器,它们的功能都是相同的:采集数据,对采集来的数据进行分析处理,然后显示处理的结果。它们之间的不同主要体现在灵活性方面。虚拟仪器由用户自己定义,这意味着用户可以自由地组合计算机平台、硬件、软件、以及各种完成应用系统所需要的附件。而这种灵活性在由制造商定义、功能固定、独立的传统仪器上是达不到的。常用的数字万用表、示波器、信号发生器、数据记录仪,以及温度和压力监控器就是传统仪器的代表。基于计算机的虚拟仪器得益于PC技术的发展。由于直接将仪器模块插入到

3、计算机中,我们就可以直接享用到台式或便携式计算机上出众的处理能力、显示、数据存储以及连接性能等方面的优势,使测量以最有效的方式从使用传统的仪器过渡到使用通用计算机。基于计算机的仪器不仅继承了传统仪器的标准测量能力,更增加了扩展仪器概念的灵活性,使我们能够更加直接、更加有效地面对当今测量应用的挑战。更有意义的是,利用诸如LabVIEW、LabWindows/CVI等应用开发环境,可以方便地使多台仪器的测量能力结合并同步工作,以建立功能强大仪器系统。更进一步,我们也可以开发自己的分析程序,实现那些有别于其他仪器或系统的功能。PC机和台式工作站已经成为检测系统的标准控制平台。基于虚拟仪器的应用软件包

4、、用户接口库、仪器驱动程序、检测程序和分析库正在被广泛地应用并极大地减少了开发的时间。A/D转换技术的发展,使得插卡式数据采集板成为基于PC机的仪器系统增长最快的选件。图像技术的引入,更为现代检测系统增添丰彩。今天,工业标准的计算机平台,揉合多种仪器与设备,并充分利用仪器系统软件工具,已经成为降低系统造价,完善系统功能,提高系统性能/价格比的最重要的手段。不管是建立检测系统,还是建立工业自动化系统,充分利用最现代化的手段,运用最新技术是必不可少的。简洁、实用、可靠、完备而且高性能/价格比始终是我们的追求。软件和硬件的结合、GPIB与DAQ的搭配、传统与现代的协调,使我们可以建立独特且规范的系统

5、。虚拟仪器系统技术的基础是计算机系统,核心是软件技术。因此,美国国家仪器公司(NI)提出其著名的口号:The Software is the Instrument (软件就是仪器)。可以说,组建现代化测控系统的成败很大程度上取决于软件平台和工具以及相关硬件设备的选择。为了使“软件就是仪器”这句口号成为现实,美国国家仪器公司在软件体系结构的各个层次上,形成了完整的设备驱动程序、系统开发平台、实用支持软件、应用软件包相互支撑的格局,使虚拟仪器系统的概念不再“虚拟”。其中,LabView就是美国NI公司推出的一套著名的虚拟仪器开发软件平台。1. LabView与虚拟仪器(VI)程序LabVIEW(L

6、aboratory Virtual Instrument Engineering Workbench,实验室虚拟仪器集成环境) 是一个高效的图形化程序设计环境,也是一个功能强大而又灵活地仪器和分析软件应用开发工具。它结合了简单易用的图形式开发环境与灵活强大的G编程语言,提供了一个直觉式的环境,与测量紧密结合,能让工程师与科学家们迅速开发出有关数据采集、测量控制、数据分析、存储及显示的解决方案。现今数以万计的工程师、科学家以及技术人员正在使用LabVIEW来构建测量与自动化系统。在NASA(美国国家航空和宇宙航行局),工程师们使用LabView来对国际空间站使用的低成本乘员救生飞船(X-38工程

7、)的原型机(一共四架)进行设计、制造和测试,并取得了很好的效果。V131, V132, V133和最后正式样机V201在飞行测试时的各种状态数据都是通过LabView采集和处理的。使用LabView不仅使该飞船的开发研制周期大大缩短,还极大地降低了系统开发费用。像C或BASIC一样,LabVIEW也是通用的编程系统,有一个可完成任何编程任务的庞大的函数库。LabVIEW的函数库包括数据采集、GPIB、串口控制、数据分析、数据显示及数据存储等。LabVIEW也有传统的程序调试工具,如设置断点、以动画方式显示数据及其通过程序(子VI)的结果、单步执行等,便于程序的调试。1) LabView的启动启

8、动LabVIEW 7 Express后,首先出现图1-1所示的对话框。对话框各按钮的作用如下:【New】创建一个新的VI(Virtual Instrument)程序;【Open】打开一个已有的VI程序(单击右边的小箭头,弹出的下拉菜单中包含程序示例和最近10此使用的VI程序)。【Configure】设置NI的测量和控制工具,如DAQmax的设置。【Help】LabVIEW帮助。图1-1 LabVIEW 7 Express启动界面选择Blank VI时,将出现一个未命名的前面板窗口。前面板窗口时VI代码的接口,也是组成VI的两种Labview窗口之一。另一个窗口是框图窗口,其中包含了以图形方式(

9、如图标、连线等)表示的程序代码。2) 前面板窗口和框图程序窗口使用LabVIEW开发平台编制的程序称为虚拟仪器程序,简称为VI。VI包括三个部分:程序前面板、框图程序和图标/连接器。图1-2和图1-3所示为一个虚拟仪器的前面板和与其对应的框图程序。图1-2 LabView程序前面板程序前面板用于设置输入数值和观察输出量,用于模拟真实仪表的前面板,其大小、外观、功能布局均可以由用户根据自己的需要进行定制。在程序前面板上,输入量被称为控制(Controls),输出量被称为显示(Indicators)。控制和显示是以各图1-3 与LabView程序前面板对应的框图程序种图标形式出现在前面板上,如旋钮

10、、开关、按钮、图表等,这使这得前面板直观易懂。a) 前面板工具栏前面板窗口和框图程序窗口都有各自的工具栏,工具栏包括用来控制VI的命令按钮和状态指示器。图1-4所示是前面板的工具栏。图1-4 前面板工具栏下面介绍该工具栏中各按钮的作用:(Run,运行)单击此按钮可以运行VI程序。在这里,我们要注意Run按钮的图案变化 ,如果运行的VI程序为最上级程序,则该按钮变为,当程序出错,无法执行戏曲时,该按钮变为,表示VI程序由于出错而不能运行。如果想了解出错原因,可以单击该按钮,系统将弹出一个帮助窗口,列出所有错误。(Abort Execution,终止运行)当VI程序执行时,工具栏上出现,单击它就会

11、立即停止程序运行。注意:使用该按钮来停止VI程序的运行,是强制性的停止,可能会错过一些有用的信息。通常在设计程序时,可以通过设置按钮来控制VI程序的运行,这就使得VI程序执行的是完整的、有序的过程。(Psuse/Continue,暂停/继续)单击该按钮可使VI程序暂时停止执行,再单击它,则VI程序继续执行。(Run Continuously,连续运行)单击该按钮,此按钮变为,VI程序连续的重复执行,再次单击一下该按钮可以停止程序的连续运行。(Text Settings,字体设置)单击该按钮将弹出一个下拉列表,从中可以设置字体的格式,如字体类型、大小、形状和颜色等。 此三个按钮,对选定的对象进行

12、排列方式的设置。包括对齐、间距等设置。(Recorder,重叠方式)当几个对象重叠时,可以重新排列每个对象的叠放次序,如前移、后移等。b) 框图程序工具栏框图程序窗口的工具栏按钮大多数与前面板工具栏相同,另外还增加了4个调试按钮。框图程序的工具栏如图1-5所示。图1-5 框图程序工具栏(Highlight Execution,高亮执行)单击此按钮,此按钮转换为,VI程序以一种缓慢的节奏一步一步的执行,所执行到的节点都以高亮方式显示,这样用户可以清楚的了解程序的执行过程,也可以方便的查找错误。当再次单击此按钮,即可以停止高亮执行。(Start Single Stepping,单步执行)单击此按钮

13、,程序将以单步方式运行,如果节点为 一个子程序或结构,则进入子程序或结构内部执行单步运行方式。(Start Single Stepping,单步执行)单步执行按钮。与不同的是:以一个节点为执行单位,即单击一次此按钮执行一个节点。如果节点为一个子程序或结构,也作为一个执行单位,一次执行完,然后转到下一个节点,而不会进入节点内部执行。闪烁的节点表示该节点等待执行。(Step Out)当在一个节点(如子程序或结构)内部执行单步运行方式时,单击此按钮可以一次执行完该节点,并直接跳出该节点转到下一个节点。3) 快捷菜单LabVIEW菜单中使用最多的是快捷菜单,几乎所有用来创建虚拟仪器的对象都有可选择的快

14、捷菜单。在对象上单击鼠标右键即可以访问快捷菜单。4) 下拉式菜单LabVIEW窗口上部都的菜单栏为下拉菜单。下拉式菜单包括最普通的选项如Open、Save、Copy、Paste以及LabVIEW的其他特殊选项。2. LabVIEW的操作模板LabVIEW具有多个图形化的操作模板,用于创建和运行程序。这些操作模板可以随意在屏幕上移动,并可以放置在屏幕的任意位置。操纵模板共有三类,为工具(Tools)模板、控制(Controls)模板和功能(Functions)模板。1) 工具模板(Tools Palette)38图1-6 工具模板工具模板为编程者提供了各种用于创建、修改和调试VI程序的工具。如果

15、该模板没有出现,则可以在Windows菜单下选择Show Tools Palette命令以显示该模板。当从模板内选择了任一种工具后,鼠标箭头就会变成该工具相应的形状。当从Windows菜单下选择了Show Help Window功能后,把工具模板内选定的任一种工具光标放在框图程序的子程序(Sub VI)或图标上,就会显示相应的帮助信息。工具图标有如下几种。操作工具:使用该工具来操作前面板的控制和显示。使用它向数字或字符串控制中键入值时,工具会变成标签工具的形状。选择工具:用于选择、移动或改变对象的大小。当它用于改变对象的连框大小时,会变成相应形状。标签工具:用于输入标签文本或者创建自由标签。当

16、创建自由标签时它会变成相应形状。连线工具:用于在框图程序上连接对象。如果联机帮助的窗口被打开时,把该工具放在任一条连线上,就会显示相应的数据类型。对象弹出菜单工具:用左鼠标键可以弹出对象的弹出式菜单。漫游工具:使用该工具就可以不需要使用滚动条而在窗口中漫游。断点工具:使用该工具在VI的框图对象上设置断点。探针工具:可以在框图程序内的数据流线上设置探针。程序调试员可以通过控针窗口来观察该数据流线上的数据变化状况。颜色提取工具:使用该工具来提取颜色用于编辑其他的对象。颜色工具:用来给对象定义颜色。它也显示出对象的前景色和背景色。与上述工具模板不同,控制和功能模板只显示顶层子模板的图标。在这些顶层子

17、模板中包含许多不同的控制或功能子模板。通过这些控制或功能子模板可以找到创建程序所需的面板对象和框图对象。用鼠标点击顶层子模板图标就可以展开对应的控制或功能子模板,只需按下控制或功能子模板左上角的大头针就可以把对这个子模板变成浮动板留在屏幕上。2) 控制模板(Controls Palette)图1-7 控制模板用控制模板可以给前面板添加输入控制和输出显示。每个图标代表一个子模板。如果控制模板不显示,可以用Windows菜单的Show Controls Palette功能打开它,也可以在前面板的空白处,点击鼠标右键,以弹出控制模板。注:只有当打开前面板窗口时才能调用控制模板。控制模板如图1-7所示

18、,它包括如图所示的几个子模板,说明如下。数值子模板:包含数值的控制和显示。布尔值子模块:逻辑数值的控制和显示。字符串子模板:字符串和表格的控制和显示。列表和环(Ring)子模板:菜单环和列表栏的控制和显示。数组和群子模板:复合型数据类型的控制和显示。图形子模板:显示数据结果的趋势图和曲线图。路径和参考名(Refnum)子模板:文件路径和各种标识的控制和显示。控件容器库子模板:用于操作OLE、ActiveX等功能。对话框子模板:用于输入对话框的显示控制。修饰子模板:用于给前面板进行装饰的各种图形对象。用户自定义的控制和显示。调用存储在文件中的控制和显示的接口。3) 函数模板(Functions

19、Palette)图1-8 功能模板功能模板是创建框图程序的工具。该模板上的每一个顶层图标都表示一个子模板。若功能模板不出现,则可以用Windows菜单下的Show Functions Palette功能打开它,也可以在框图程序窗口的空白处点击鼠标右键以弹出功能模板。如图1-8所示。注:只有激活了框图程序窗口,才能出现功能模板。结构子模板:包括程序控制结构命令,例如循环控制等,以及全局变量和局部变量。数值运算子模板:包括各种常用的数值运算符,如+、-等;以及各种常见的数值运算式,如+1运算;还包括数制转换、三角函数、对数、复数等运算,以及各种数值常数。布尔逻辑子模板:包括各种逻辑运算符以及布尔常

20、数。字符串运算子模板:包含各种字符串操作函数、数值与字符串之间的转换函数,以及字符(串)常数等。数组子模板:包括数组运算函数、数组转换函数,以及常数数组等。群子模板。包括群的处理函数,以及群常数等。这里的群相当于C语言中的结构。比较子模板:包括各种比较运算函数,如大于、小于、等于。时间和对话框子模板:包括对话框窗口、时间和出错处理函数等。文件输入/输出子模板:包括处理文件输入/输出的程序和函数。仪器控制子模板:包括GPIB(488、488.2)、串行、VXI仪器控制的程序和函数,以及VISA的操作功能函数。仪器驱动程序库:用于装入各种仪器驱动程序。数据采集子模板:包括数据采集硬件的驱动程序,以

21、及信号调理所需的各种功能模块。信号处理子模板:包括信号发生、时域及频域分析功能模块。数学模型子模块:包括统计、曲线拟合、公式框节点等功能模块,以及数值微分、积分等数值计算工具模块。图形与声音子模块:包括3D、OpenGL、声音播放等功能模块。通讯子模板:包括TCP、DDE、ActiveX和OLE等功能的处理模块。应用程序控制子模块:包括动态调用VI、标准可执行程序的功能函数。底层接口子模块:包括调用动态连接库和CIN节点等功能的处理模块。文档生成子模板。示教课程子模板:包括LabVIEW示教程序。用户自定义的子VI模板。“选择VI子程序”子模板:包括一个对话框,可以选择一个VI程序作为子程序(

22、SUB VI)插入当前程序中。其它几个子模板是LabVIEW的附加Toolkit安装上去的。在LabVIEW完全版中不包括这些子模板。3. 虚拟仪器程序的创建在进行Labview设计中,我们始终需要牢记的是,VI程序具有三个要素:前面板、框图程序和图标/连接器。1) 前面板使用输入控制和输出显示来构成前面板。控制是用户输入数据到程序的接口。而显示是输出程序产生的数据接口。控制和显示有许多种类,可以从控制模板的各个子模板中选取。两种最常用的前面板对象是数字控制和数字显示。若想要在数字控制中输入或修改数值,可以使用操作工具(见工具模板)点击控制部件和增减按钮,或者用操作工具或标签工具双击数值栏进行

23、输入数值修改。2) 框图程序框图程序是由节点、端点、图框和连线四种元素构成的。节点类似于文本语言程序的语句、函数或者子程序。LabVIEW有二种节点类型-函数节点和子VI节点。两者的区别在于:函数节点是LabVIEW以编译好了的机器代码供用户使用的,而子VI节点是以图形语言形式提供给用户的。用户可以访问和修改任一子VI节点的代码,但无法对函数节点进行修改。上面的框图程序所示的VI程序有两个功能函数节点,一个函数使两个数值相加,另一个函数使两数相减。端点是只有一路输入/输出,且方向固定的节点。LabVIEW有三类端点-前面板对象端点、全局与局部变量端点和常量端点。对象端点是数据在框图程序部分和前

24、面板之间传输的接口。一般来说,一个VI的前面板上的对象(控制或显示)都在框图中有一个对象端点与之一一对应。当在前面板创建或删除面板对象时,可以自动创建或删除相应的对象端点。控制对象对应的端点在框图中是用粗框框住的,如图1-9中的A和B端点。它们只能在VI程序框图中作为数据流源点。显示对象对程序框图 前面板图1-9 简单的程序框图和前面板应的端点在框图中是用细框框住的。如例子中的A+B和A-B端点。它们只能在VI程序框图中作为数据流终点。常量端点永远只能在VI程序框图中作为数据流源点。图框是LabVIEW实现程序结构控制命令的图形表示。如循环控制、条件分支控制和顺序控制等,编程人员可以使用它们控

25、制VI程序的执行方式。代码接口节点(CIN)是框图程序与用户提供的C语言文本程序的接口。连线是端口间的数据通道。它们类似于普通程序中的变量。数据是单向流动的,从源端口向一个或多个目的端口流动。不同的线型代表不同的数据类型。在彩显上,每种数据类型还以不同的颜色予以强调。下面是一些常用数据类型所对应的线型和颜色:整 形 蓝色浮点数 橙色逻辑量 绿色字符串 粉色文件路径 青色当需要连接两个端点时,在第一个端点上点击连线工具(从工具模板栏调用),然后移动到另一个端点,再点击第二个端点。端点的先后次序不影响数据流动方向。当把连线工具放在端点上时,该端点区域将会闪烁,表示连线将会接通该端点。当把连线工具从

26、一个端口接到另一个端口时,不需要按住鼠标键。当需要连线转弯时,点击一次鼠标键,即可以正交垂直方向地弯曲连线,按空格键可以改变转角的方向。3) 从框图程序窗口创建前面板对象用选择和连线工具,可以用鼠标右键点击任一节点和端点,然后从弹出菜单中选择“创建常数”,“创建控制”,或“创建显示”等命令。LabVIEW会自动地在被创建的端点与所点击对象之间接好连线。图1-10 从框图程序窗口创建前面板对象编写框图程序技巧:可以通过鼠标右键,在快捷菜单中点击View As Icon 取消此选项,则成为(只是外观显示不同)。4) 数据流编程控制VI程序的运行方式叫做“数据流”。对一个节点而言,只有当它的所有输入

27、端口上的数据都成为有效数据时,它才能被执行。当节点程序运行完毕后,它把结果数据送给所有的输出端口,使之成为有效数据。并且数据很快从源送到目的端口。如图1-11所示,这个VI程序把两个输入数值相乘,再把乘积减去50.0。这个程序中,框图程序从左往右执行,这个执行次序不是由于对象的摆放位置,而是由于相减运算函数的一个输入量是相乘函数的运算结果,它只有当相乘运算图1-11 数据流举例完成并把结果送到减运算的输入口后才能继续下去。请记住,一个节点(函数)只有当它所有的输入端的数据都成为有效数据后才能被执行,而且只有当它执行完成后,它的所有输出端口上的数据才成为有效。再看另一个程序(如图1-12所示),

28、你认为哪一个节点函数将先执行?是乘法还是除法?在这个例子中,我们无法知道哪一个节点函数首先执行,因为所有输入量几乎同时到达。对于这样一种相互独立的数据流程,如果又必须明确指定节点执行的先后次序,就必须使用顺序(Sequence)结构来明确执行次序。图1-12 数据流举例5) 创建子程序在LabVIEW中,每个VI程序都可以将其创建成子程序,以便其他程序调用。创建如下(我们将图1-11所示的VI程序保存为“例子1”,创建成子程序):a) 打开VI程序“例子1”。b) 创建接线端口。接线端口是VI程序数据的输入/输出端口,创建过程如下: 右键单击前面板中右上角图标,从弹出的快捷菜单中选择Show

29、Connector选项。此时前面板窗口右上角的图标由接线端口取代,每个小矩形框代表一个连线的端口,这些端口用来将数据输入到VI程序中或将VI程序的数据输出。LabVIEW将会根据控制器和指示器的数值选择一种连线端口模式。本例中由3个端口:两个数字控制器(Numeric1和Numeric2),一个数字指示器(Result)。如果由必要,还可以在连线端口图标上单击右键,从弹出的快捷菜单中选择Patterns来改变连线端口模式。默认状态时,输入端口(控制器端口)在连线端口方框左边,输出端口(指示器端口)在连线端口方框右边。 把连线端口分配给相应的控制器和指示器。 使用连线工具,在左边连线端口框内单击

30、鼠标左键,则端口将会变黑,再单击控制器,一个闪烁的虚线框将包围住该控制器。此时端口的颜色也会根据控制器的类型做相应的变换。现在单击右边的连线端口,使它变黑,再点击相应的指示器,这样就创建了该指示器同相应端口的连接。c) 保存此程序,以后我们就可以对其象子程序一样调用了。d) 打开一个新的VI,在框图程序中选择Functions-All Functions-Select a VI,再选择上面我们保存的VI程序“例子1”。此时,此VI程序将以图标形式出现。用连线工具可以看到它的连线端口,这样我们就可以创建相应的控制器和指示器,如图1-13所示。图1-13 调用子程序4. 程序调试技术程序调试是进行

31、任何程序设计过程中所必须的过程。我们在程序设计过程中不可避免地会有各种逻辑上和语法上的错误,这些都需要通过程序调试找出来加以改正。Lab view给我们提供了几种程序调试的方法,主要有以下几种。1) 找出语法错误如果一个VI程序存在语法错误,则在面板工具条上的运行按钮将会变成一个折断的箭头,表示程序不能被执行。这时这个按钮被称作错误列表。点击它,则LabVIEW弹出错误清单窗口,点击其中任何一个所列出的错误,选用Find功能,则出错的对象或端口就会变成高亮。2) 设置执行程序高亮在Lab VIEW的工具条上有一个画着灯泡的按钮,这个按钮叫做“高亮执行”按钮上。点击这个按钮使该按钮图标变成高亮形

32、式,再点击运行按钮,VI程序就以较慢的速度运行,没有被执行的代码灰色显示,执行后的代码高亮显示,并显示数据流线上的数据值。这样,我们就可以在根据数据的流动状态跟踪程序的执行。3) 断点与单步执行为了查找程序中的逻辑错误,我们有时希望框图程序一个节点一个节点地执行。使用断点工具可以在程序的某一地点中止程序执行,用探针或者单步方式查看数据。使用断点工具时,点击希望设置或者清除断点的地方。断点的显示对于节点或者图框表示为红框,对于连线表示为红点。当VI程序运行到断点被设置处,程序被暂停在将要执行的节点,以闪烁表示。按下单步执行按钮,闪烁的节点被执行,下一个将要执行的节点变为闪烁,指示它将被执行。我们

33、也可以点击暂停按钮,这样程序将连续执行直到下一个断点。4) 探针可以用探针工具来查看当框图程序流经某一根连接线时的数据值。从Tools工具模板选择探针工具,再用鼠标左建点击我们希望放置探针的连接线。这时显示器上会出现一个探针显示窗口。该窗口总是被显示在前面板窗口或框图窗口的上面。在框图中使用选择工具或连线工具,在连线上点击鼠标右键,在连线的弹出式菜单中选择“探针”命令,同样可以为该连线加上一个探针。三、作业1. 在前面板和框图程序中,如何区别控制器和指示器?2. 设计一个VI程序,根据所给的x1,y1,x2,y2的值求出直线的斜率。把此程序作为子程序,自己设计一个简单的VI程序调用此子程序。试

34、验2 LabVIEW编程结构实验一、实验目的u 学习并掌握For循环和While循环以及它们的不同点;u 学习使用移位寄存器(Shift Register)和反馈节点(Feedback Node);u 学习顺序结构(Sequence Structure)、Case结构(Case Structure)和公共节点(Formula Node)的使用。二、实验内容1.For循环和While循环当程序有确定的循环次数时,我们使用For循环。在程序框图中添加For循环(Functions-All Functions-Structures-For Loop),如图2-1所示。u (循环次数输入端)For循环

35、必须给定循环次数n(n0,否则循环不执行),此项一般都要有输入。当For循环的输入数据时一个数组时,有关数组将在后续章节中介绍),如果不给定循环次数,则数组的大小将决定For循环的循环次数。如果同时输入两个数组,循环次数以数组个数最少的决定。u (循环计数)计数范围0n1。当具体的循环次数不可知时,我们使用While循环(Functions-All Functions-Structures-While Loop),如图2-2所示。 图2-1 For循环 图2-2 While循环While循环也有一个循环计数,第一次循环时的值为0。另外,While循环有一个循环条件判断端子。请特别注意,无论如何

36、,都要给While循环结构一个有效的停止条件,否则可能就会使循环陷入死循环的状态。例如,希望在一组数据中寻找一个特定的数,找到以后停止循环。由于这个特定的数的位置事先不知道,我们可以使用While循环来完成以上的操作,但如果我们将循环停止的条件只是定为找到特定的数就停止,那么,当由于各种原因造成的在这样的一组数据中不存在这个特定数时,While循环将无限运行下去。因此,我们还需要加入其他判断条件,例如我们的循环停止条件可以改为:找到特定的数或者这个数组都找完,则停止。LabVIEW 7 Express对While循环还提供了一个快捷方式:Functions-Execution-Control-

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

38、或者While循环的边框上单击鼠标右键,在弹出的快捷菜单中选择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 Regis

39、ter,反馈节点将变成移位寄存器,如图2-5所示。下面我们通过一个简单的例子来看一下移位寄存器和反馈节点是如何工作的。程序框图如图2-6所示。在这里如果我们不给移位寄存器和反馈节点赋初值(本例中For循环框左边的两个常数0),下次程序运行时,移位寄存器和反馈节点中的值将以上次运行完的值开始。图2-6 反馈节点和移位寄存器3.顺序结构(Sequnce Structure)在实验1中我们提到VI程序的运行是“数据流”驱动的,有时我们必须对这种数据流进行控制,这样就用到了顺序结构。在LabVIEW 7 Express中有两种循序结构:Flat Sequence Structure(Functions

40、-Structures-Flat Sequence Structure)和Stacked Structure(Functions-Structures-Stacked Sequence Structure)。使用Flat Sequence Structure可以看到整个程序框图,当程序框图所占的空间的大小允许时,可以使用这种顺序结构。在程序框上单击鼠标右键,在弹出的快捷菜单中选择Add Frame after或Add Frame Before,这样可以在本帧后或者前添加一帧,如图2-7所示。使用Stacked Sequence Structure比较省空间,但是数据在各帧中的传递必须通过Seq

41、uence Local来实现,并且每次只能显示一帧。可以用类似的方法来添加前一帧或 图2-7 添加帧图 2-8 添加Sequence Local者后一帧,在弹出的快捷菜单中选择Add Sequence Local,则在顺序结构中添加Sequence Local,如图2-8所示。4.Case结构(Case Structure)Case结构(如图2-9所示)的输入端可以连接布尔型和数字型变量。当连接的是布尔型变量时,只有True Case和False Case两种。当连接的是数字型变量时,Case框上的标识将变为0,1,根据输入量的不同,Case结构选择运行不同的程序。关于Case结构,举例如下,

42、程序框图如图2-9所示。图2-9 Case结构举例框图程序在默认状态下,Case结构只有0和1两项,用右键单击Case结构的边框,从弹出的快捷菜单中选择Add Case After来添加一个Case,如图2-10所示。图2-10 添加Case前面板如图2-11所示。是用来选择操作是加法、减法还是乘法。选择All Controls-Ring&Enum-Memu Ring,然后通过工具模板改变大小,鼠标右键选择Properties,在弹出的对话框中改变其属性,同时添加如图2-12所示的内容。图2-11 Case结构举例前面板图2-12 属性设置5.公共节点(Formula Node)一些复杂的计算

43、过程我们可以交给公式节点来完成,我们所要作的就是将公式输入公式节点,规定输入值和输出值就可以了。在LabVIEW 7以前的版本中,公式的输入还是比较麻烦的,需要严格按照规定公式,而LabVIEW 7 Express中提供了一种更为简便的方式,来解决大多数的计算问题(和以前版本相同的公式节点在Functions-All Functions-Structures-Formula Node中)。我们可以通过LabVIEW 7 Express自带的一个例子来看看公式节点是如何工作的,同时感受一下LabVIEW 7 Express的方便快捷。在LabVIEW 7 Express自带例子中,找到Calcu

44、lation on Dynamic Data.vi文件,打开VI程序。前面板如图2-13所示,程序框图如图2-14所示。图2-13 Calculation on Dynamic Data.vi前面板图2-14 Calculation on Dynamic Data.vi框图程序在框图程序中添加Simulate Signal(Functions-Input-Simulate Signal),会弹出如图2-15所示的对话框,安图中所示设置。在对话框中添加Formula(Functions-Arithmetic & Comparison-Formula),按图2-16设置。图2-15 Simulat

45、e Signal属性设置图2-16 Formula属性设置在框图程序中,添加Time Delay(Fumctions-Execution Control-Time Delay)延时函数,按图2-17所示设置。一般来说,为了能够实现分时互用,在循环结构中都要添加延时;也可以在Functions-All Functions-Time & Dialog中选择其他延时函数。在框图程序中,添加Merge Signals(Functions-Signal Manipulation-Merge Signals),用来将两个或者两个以上的信号合并成单一的信号输出。当一个信号和另一个信号相连时,这个函数自动出现

46、。图2-17 Time Delay设置三、作业1. 说明For循环和While循环的区别。2. 用Case结构编写一个小程序。3. 用顺序结构编写一个小程序。4. 使用公式节点时,如果输入变量的名称同输出变量的名称相同时,会怎么样?实验3 LabVIEW图形、数组、簇编程实验一、实验目的u 学习如何创建数组和簇,掌握他们的区别以及相应的操作;u 学习并掌握Chart和Graph的使用,了解他妈的区别;u Chart的三种显示模式。二、实验内容1. 数组数组是一些具有相同类型的元素组成的集合。数组包含两方面的内容:元素和维数。数组中的元素可以是数字、布尔、字符、路径、波形和簇等数据类型。建立数组

47、的步骤如下:1) 从数组和类子模板(Controls-All Controls-Array & Cluster)上选中数组(Array),防治在前面板设计窗口中,此时为数组空壳,可以向里边添加(用拖拽的方法)数字、布尔、字符等数据类型的控制器或指示器,来建立相应的数组控制器和指示器。此时可以看到数组上有如下两个显示窗口:u 标号显示窗标号从0开始,每单击一次“增加”键,标号显示值顺序递增。这个标号就是数组元素的序号;对于一个含n个元素的数组,其标号为0n-1。u 元素显示窗用来显示元素的数值。数组中的元素按序号排列。数组元素的查找按行/列标号进行。2) 右键单击标号窗口,弹出一个快捷菜单(如图3-1所示),选择Add Dimension来增加数组的维数。每单击Add Dimension选项一次,维数就增加一维。2. 簇簇相当与一个容器,容器中的元素可以是各种不同的数据类型。也就是说,可以在一个簇中放置控制模板上的各种控减5,如数字控件、布尔控件、数组控件等,但是不能将输入控件和输出控件

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 教育教学 > 成人教育


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号