虚拟仪器实验指导书.doc_第1页
虚拟仪器实验指导书.doc_第2页
虚拟仪器实验指导书.doc_第3页
虚拟仪器实验指导书.doc_第4页
虚拟仪器实验指导书.doc_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

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

文档简介

此文档收集于网络,如有侵权,请联系网站删除 虚拟仪器课程实验指导书信息与控制工程学院2006.03目 录第1章 课程简介、实验项目及学时安排1.1课程简介1.2实验项目及学时安排第2章 实验设备简介第3章 Labview课程实验实验一、LabVIEW开发环境及基本操作实验二、数组、簇实验三、程序结构实验实验四、文件的I/O管理实验五、数据采集基础实验六、DAQ程序设计初步 实验七、图形显示实验八、设计练习(1)示波器设计 设计练习(2)信号发生器设计第一章 课程简介、实验项目及学时安排1.1课程简介虚拟仪器(virtual instrumention)是基于计算机的仪器。计算机和仪器的密切结合是目前仪器发展的一个重要方向。粗略地说这种结合有两种方式,一种是将计算机装入仪器,其典型的例子就是所谓智能化的仪器。随着计算机功能的日益强大以及其体积的日趋缩小,这类仪器功能也越来越强大,目前已经出现含嵌入式系统的仪器。另一种方式是将仪器装入计算机。以通用的计算机硬件及操作系统为依托,实现各种仪器功能。虚拟仪器主要是指这种方式。下面的框图反映了常见的虚拟仪器方案。虚拟仪器的主要特点有:n 尽可能采用了通用的硬件,各种仪器的差异主要是软件。n 可充分发挥计算机的能力,有强大的数据处理功能,可以创造出功能更强的仪器。n 用户可以根据自己的需要定义和制造各种仪器。虚拟仪器实际上是一个按照仪器需求组织的数据采集系统。虚拟仪器的研究中涉及的基础理论主要有计算机数据采集和数字信号处理。目前在这一领域内,使用较为广泛的计算机语言是美国NI公司的LabVIEW。虚拟仪器的起源可以追朔到20世纪70年代,那时计算机测控系统在国防、航天等领域已经有了相当的发展。PC机出现以后,仪器级的计算机化成为可能,甚至在Microsoft公司的Windows诞生之前,NI公司已经在Macintosh计算机上推出了LabVIEW2.0以前的版本。对虚拟仪器和LabVIEW长期、系统、有效的研究开发使得该公司成为业界公认的权威。普通的PC有一些不可避免的弱点。用它构建的虚拟仪器或计算机测试系统性能不可能太高。目前作为计算机化仪器的一个重要发展方向是制定了VXI标准,这是一种插卡式的仪器。每一种仪器是一个插卡,为了保证仪器的性能,又采用了较多的硬件,但这些卡式仪器本身都没有面板,其面板仍然用虚拟的方式在计算机屏幕上出现。这些卡插入标准的VXI机箱,再与计算机相连,就组成了一个测试系统。VXI仪器价格昂贵,目前又推出了一种较为便宜的PXI标准仪器。虚拟仪器研究的另一个问题是各种标准仪器的互连及与计算机的连接。目前使用较多的是IEEE 488或GPIB协议。未来的仪器也应当是网络化的。现在多用 LabVIEW 8.0因为它是一种基于G语言的虚拟仪器软件开发工具,是目前国际上应用最广的虚拟仪器开发环境之一,主要应用于仪器控制、数据采集、数据分析、数据显示等领域,并应用于Windows、Macintosh、Unix等多种操作系统平台。与传统程序语言不同,LabVIEW 8.0采用强大的图形化语言编程,面向测试工程师而非专业程序员,编程方便,人机交互界面直观、友好。1.2 实验项目及学时安排LabVIEW虚拟仪器设计实验课是以认识和熟悉LabVIEW 8.0编程环境的构成和验证所学理论为基础,在此基础上开展自行设计LabVIEW系统设计平台、确定实验方案,学习虚拟仪器开发环境在仪器控制、数据采集等方面的操作,培养虚拟仪器在测量和控制系统中的应用能力。所安排了验证性、设计性和综合性不同属性的实验项目。序号实 验 项 目学时实 验 性 质验证综合设计1LabVIEW开发环境及基本操作42数组、簇23程序结构实验24文件的I/O管理25数据采集基础26DAQ程序设计初步27图形显示28设计练习(1) 示波器设计设计练习(2)信号发生器设计8实验一 LabVIEW开发环境及基本操作一、 实验目的 1.了解Labview8.0Express的编程环境. 2 . 掌握的基本操作方法,并编制简单的程序.3. 学习建立子程序的过程.二、 实验原理、内容及步骤实验原理: LabVIEW作为一种图形化的设计语言,主要提供3种图像化的模板来帮助创建:工具模板,控制模板和功能模板。前面板窗口和框图程序窗口都提供工具模板,而控制模板只出现在前面板窗口中,功能模板指出现在框图程序窗口中。前面板所需的各种“控件”均有控制模板提供。前面模板的设计过程就是利用工具模板中的相应的工具,从控制模板中取出所需的“控件”并摆放在前面板窗口中的适当位置。框图程序设计时所需的各种“功能函数”均由控制模板提供,利用工具模板中的工具,从功能模板中选出相应的“图标”放置在程序窗口中。 二实验步骤和内容:例1.建立一个测量温度和容积的VI,其中须调用一个仿真测量温度和容积的传感器子VI。步骤如下:1.选择 FileNew,打开一个新的前面板窗口。2.从 ControlsNumeric 中选择 Tank放到前面板中。3.在标签文本框中输入“容积” ,然后在前面板中的其他任何位置单击一下。4.把容器显示对象的显示范围设置为0.0到1000.0。a.使用文本编辑工具(Text Edit Tool),双击容器坐标的10.0 标度,使它高亮显示。b.在坐标中输入 1000,再在前面板中的其他任何地方单击一下。 这时0.0到1000.0之间的增量将被自动显示。5.在容器旁配数据显示。将鼠标移到容器上,点右键,在出现的快速菜单中选Visible ItermsDigital Display即可。6.从ControlsNumeric 中选择一个温度计,将它放到前面板中。设置其标签为“温度”,显示范围为0到100,同时配数字显示。可得到如下的前面板图。图练习的前面板图7.WindowsShow Diagram 打开流程图窗口。从功能模板中选择对象,将它们放到流程图上组成下图(其中的标注是后加的)。随机数发生器乘法函数数值常数进程监视器图练习的流程图该流程图中新增的对象有两个乘法器、两个数值常数、一个随机数发生器、一个进程监视器,温度和容积对象是由前棉板的设置自动带出来的。a.乘法器和随机数发生器由FunctionsNumeric中拖出,尽管数值常数也可以这样得到,但是建议使用c 中的方法更好些。b.进程监视器(Process Monitor)不是一个函数,而是以子VI的方式提供的,它存放在LabVIEWActivity目录中,调用它的方法是在FunctionsSelect a VI下打开Process Monitor,然后在流程图上点击一下,就可以出现它的图标。注意:LabVIEW目录一般在Program FilesNational Instruments目录下。8.用连线工具将各对象按规定连接。a中的遗留问题创建数值常数对象的另一种方法是在连线时一起完成。具体方法是:用连线工具在某个功能函数或VI的连线端子上单击鼠标右键,再从弹出的菜单中选择 Create Constant,就可以创建一个具有正确的数据格式的数值常数对象。9.选择 FileSave, 把该VI 保存为 LabVIEWActivity 目录中的 Temp & Vol.vi。在前面板中,单击Run(运行)按钮,运行该 VI。注意电压和温度的数值都显示在前面板中。10.选择FileClose,关闭该 VI 。例2.为 VI创建图标和联接器1.打开 LabVIEWActivity 目录中的Temp & Vol.vi,这是例1做的程序。2.在前面板中,用鼠标右键单击窗口右上角的图标,在快捷菜单中选择 Edit Icon.,也可以双击图标激活图标编辑器。注意只能在前面板中编辑图标和联接器。3.删除默认图标。使用Select Tool(矩形框),单击并拖动想要删除的部分,按下。也可以通过双击工具框中的阴影矩形删除图标。4.用 Pencil Tool (铅笔工具)绘制一个温度计。5.用 Text Tool(文本工具)创建文本。得到图标将如下图所示。图编辑后的图标编辑器窗口6.单击OK,关闭编辑器。新创建的图标就显示在屏幕右上角的图标窗口中。7.用鼠标右键单击前面板中的图标窗口,在快捷菜单中选择Show Connector,设置联接器端子连接模式。在默认情况下,LabVIEW 会根据前面板中的控制对象和显示对象的数目确定联接器的端子连接模式。因为前面板中有两个对象,所以联接器有两个端子,如左图所示。用鼠标右键单击联接器窗口,在快捷菜单中选择Rotate 90 Degrees(旋转90度),注意联接器窗口的变化,如左图所示。9.将端子连接到温度计和电压计: a.点击联接器上部端子。光标自动变成连线工具,同时端子变成黑色。b.单击温度显示对象。一个移动的虚线框把它包围起来,选中的端子的颜色变为与控制/显示对象的数据类型一致的颜色。如果单击前面板中的任何空白区域以后,虚线消失,选中的端子变暗,这表示您已经成功地把显示对象和上部端子连接起来。如果端子是白色,则表示没有连接成功。c.重复步骤a 和 b,把底部的端子和容积计连接起来。d. 用鼠标右键单击联接器,在快捷菜单中选择Show Icon.10.选择FileSave ,保存该 VI。这样这个 VI 就完成了,并也可以作为子 VI 被其他的VI调用。子VI 的图标在主 VI 的流程图中代表它。VI 的联接器(含有两个端子)输出温度和电压。三实验设备及实验注意事项1实验前必须做好预习,并做出必要的计算和记录用的表格;2实验开始前先检查仪器设备是否完好,并仔细观察熟悉实验箱面板布置;3接好线后首先组内相互检查无误后,再经指导教师确认无误后方可合闸送电进行实验;4实验中如发现异常(如冒烟、异味、冒火等非正常现象),应立即切断电源,并报告指导教师,仔细查找原因,问题解决后,方可继续进行实验;5实验完毕应先关掉电源,将所用仪器设备恢复原貌,并清理卫生后方可离开。四实验报告要求五, 预习要求及思考题1. 熟悉的LabVIEW 8.0 编程环境。2. VI中的三个模块是什么?简述其各自功能。3. 在前面板和框图程序中,如何区分控制器和指示器?4. 设计一个VI程序根据所给的x1,y1,x2,y2值求出直线的斜率。把此程序作为子程序,自己设计一个简单的VI程序调用子程序。5. 通过下面的要求练习LabVIEW的操作。画出如右下所示的流程图,配以适当的前面板。注意连线时快捷菜单和Create功能的使用,和在前面板上替换不同的Indicator的方法。 图补充练习的面板及框图实验二 数组、簇一实验目的 1学习如何创建数组和簇,掌握它们的区别一级形影的操作。 2 . 学习并掌握Chart和Graph的使用了解它们的区别。二实验原理、内容及步骤实验原理:数组是同类型元素的集合。一个数组可以是一维或者多维,如果必要,每维最多可有2311个元素。可以通过数组索引访问其中的每个元素。索引的范围是0到n 1,其中n是数组中元素的个数。图所显示的是由数值构成的一维数组。注意第一个元素的索引号为0,第二个是1,依此类推。数组的元素可以是数据、字符串等,但所有元素的数据类型必须一致。图数组示意图簇(Cluster)是另一种数据类型,它的元素可以是不同类型的数据。它类似于C语言中的stuct。使用簇可以把分布在流程图中各个位置的数据元素组合起来,这样可以减少连线的拥挤程度。减少子VI的连接端子的数量。波形(Waveform)可以理解为一种簇的变形,它不能算是一种有普遍意义的数据类型,但非常实用。数组和簇的互换将数组变为簇(或者相反)很方便。尤其是因为LabVIEW包括的关于数组的操作功能多于簇。例如,前面板上有一个多按钮的簇,你希望颠倒这些按钮值的序。好了,Reverse 1D Array功能正好可用,但是它仅可用于数组。这没关系,你可以使用功能Cluster to Array将簇转换为数组,使用Reverse 1D Array切换开关的值,最后再利用Array to Claster 变换回簇。实验步骤和内容:例1. 初始化一个35的二位数组,其元素的初始值全部为1;计算数组的大小;有一位数组常量(5,4,3,2,1)在替代二位数组的第0行;以第0行第一列元素为起点,提取2行3列的一个二维矩阵。例2.将一位数组(100,10,1)、常量0和Element2 0.1组成一个新的数组,求出该数组的最大最小值和对应的索引位置;将数组的元素前后对调,即0号元素与N1号(4号)元素对调,1号元素与N2(3号)元素对调;将后2个数据移至数组的最前端,其它元素顺序后移;对数组的元素进行升序排序。例3.将一个一维数组(0,1,2,3,4,5)对一位数组进行插值(Interpolate 1D Array)和门限制(Threshold 1D Array);将其分解为两个一维数组,分别包含前3个元素(0,1,2)和后3个元素(3,4,5);并将这两个一维数组进行插接,形成新的数组(0,3,1,4,2,5);将插接后的数组分为三个数组(0,4)(3,2)(1,5);将拆分后的数组分为一个二维数组,并求其转置。例4.个人资料簇(含有姓名、年龄、性别三个元素)的打包(用良种方式,按元素和按名称)与解包(用良种方式,按元素和按名称)。例5.把3个不同类型的数组:数值型(1,2,3)、字符串型(a,b,c)、布尔型(False,True,False)用Index&Bundle Cluster Array函数组成簇的数组;把3个相同类型的数组(11,12,13)、(21,22,23)、(31,32,33)用Build Cluster Array函数生成一个簇的数组;并将数组(1,2,3)转化为簇,在转化为数组。三实验设备及实验注意事项1实验前必须做好预习,并做出必要的计算和记录用的表格;2实验开始前先检查仪器设备是否完好,并仔细观察熟悉实验箱面板布置;3接好线后首先组内相互检查无误后,再经指导教师确认无误后方可合闸送电进行实验;4实验中如发现异常(如冒烟、异味、冒火等非正常现象),应立即切断电源,并报告指导教师,仔细查找原因,问题解决后,方可继续进行实验;5实验完毕应先关掉电源,将所用仪器设备恢复原貌,并清理卫生后方可离开。四, 预习要求及思考题1. 简述Chart 和Graph的区别。2. Chart的三种工作模式是什么?简单介绍各自的工作方式。3. 对于下面的二位数组,回答如下的问题247516934525849a.1,3中的元素值是什么?b.在对此二位数组使用Array subset函数时,如果输入为: index=2 length=3,index=3,length=2,输出是什么?4. 簇和数组的区别是什么?5. Bundle和Bundle by Name函数有何不同?Unbundle和Unbundle by Name的区别是什么?实验三 LabVIEW 8.0编程结构实验一实验目的1.学习并掌握For循环和While循环以及它们的不同点2.学习使用移位寄存器和反馈节点3.学习顺序结构、Case结构和公式节点的使用。二实验原理、内容及步骤1. While 循环While 循环可以反复执行循环体的程序,直至到达某个边界条件。它类似于普通编程语言中的 Do 循环和 Repeat-Until 循环。While 循环的框图是一个大小可变的方框,用于执行框中的程序,直到条件端子接收到的布尔值为 FALSE。该循环有如下特点:1)计数从0开始(i=0)。2)先执行循环体,而后i+1,如果循环只执行一次,那么循环输出值i=0。3)循环至少要运行一次。 图While 循环示意图2. For循环For循环用于将某段程序执行指定次数。和While 循环一样,它不会立刻出现在流程图中,而是出现一个小的图标,而后您可以修改它的大小和位置。具体的方法是,先单击所有端子的左上方,然后按下鼠标,拖曳出一个包含所有端子的矩形。释放鼠标时就创建了一个指定大小和位置的For循环。 For循环将把它的框图中的程序执行指定的次数,For循环具有下面这两个端子:N: 计数端子(输入端子)用于指定循环执行的次数。I: 周期端子(输出端子)含有循环已经执行的次数。上图显示了一可以产生100个随机数并将数据显示在一个图表上的For循环。在该例中,i 的初值是0,终值是99。3. 移位寄存器(Shift Register)移位寄存器可以将数据从一个循环周期传递到另外一个周期。在程序设计中,经常要用到它创建一个移位寄存器的方法是,用鼠标右键单击循环的左边或者右边,在快捷菜单中选择 Add Shift Register。移位寄存器在流程图上用在循环边框上相应的一对端子来表示。右边的端子中存储了一个周期完成后的数据,这些数据在这个周期完成之后将被转移到左边的端子,赋给下一个周期。移位寄存器可以转移各种类型的数据数值、布尔数、数组、字符串等等。它会自动适应与它连接的第一个对象的数据类型。下图表示了它的工作过程图Shift Register的工作过程可以令移位寄存器记忆前面的多个周期的数值。这个功能对于计算数据均值非常有用。还可以创建其他的端子访问先前的周期的数据,方法是用鼠标右键单击左边或者右边的端子,在快捷菜单中选择Add Element。例如,如果某个移位寄存器左边的端口含有三个元素,那么就可以访问前三个周期的数据。4. 分支结构:CaseCase结构含有两个或者更多的子程序(Case),执行那一个取决于与选择端子或者选择对象的外部接口相连接的某个整数、布尔数、字符串或者标识的值。必须选择一个默认的Case以处理超出范围的数值,或者直接列出所有可能的输入数值。Case结构见下图,各个子程序占有各自的流程框,在其上沿中央有相应的子程序标识:Ture、False或、。按钮用来改变当前显示的子程序(各子程序是重叠放在屏幕同一位置上的)。子程序标识按钮条件端子5. 顺序结构(Sequence Structure)在代码式的传统编程语言中,默认的情况是,程序语句按照排列顺序执行,但LabVIEW中不同,它是一种图形化的数据流式编程语言。在图左图中,假设有A、B、C、D个节点,其数据流向如右图所示。按照数据流式语言的约定,任何一个节点只有在所有图顺序结构的说明的输入数据有效时才会执行,所以图中,当且仅当A、B、C个节点执行完,使得D节点的个输入数据都到达D节点后,D节点才执行。但是你要注意,这里并没有规定A、B、C个节点的执行顺序。在LabVIEW中这种情况下,A、B、C的执行顺序是不确定的,如果你需要对它们规定一个确定的顺序,那就需要使用本节介绍的“顺序结构”。 图中的右边是顺序结构的图标,它看上去像是电影胶片。它可以按一定顺序执行多个子程序。首先执行0帧中的程序,然后执行1帧中的程序,逐个执行下去。与Case结构类似,这多帧程序在流程图中占有同一个位置。二. 实验步骤和内容:例1. 用 While 循环和图表获得数据,并实时显示。创建一个可以产生并在图表中显示随机数的VI。 前面板有一个控制旋钮可在0到10秒之间调节循环时间,还有一个开关可以中止VI的运行。学习怎样改变开关的动作属性,以便不用每次运行VI时都要打开开关。操作步骤如下: 图练习的前面板1.选择FileNew,打开一个新的前面板。2.选择ControlsBoolean,在前面板中放置一个开关。设置开关的标签为控制开关。3.使用标签工具创建 ON 和 OFF 的标签,放置于开关旁。4.选中ControlsGraph,在前面板中放置一个波形图(是chart,而不是graph)。设置它的标签为随机信号。这个图表用于实时显示随机数。5.把图表的纵坐标改为0.0 到 1.0。方法是用标签工具把最大值从10.0改为1.0。6.选择ControlsNumeric,在前面板中放置一个旋钮。设置旋钮的标签为循环延时。这个旋钮用于控制While 循环的循环时间。流程图7.开流程图,按照下图创建流程图。图练习的流程图a.从 FunctionsStructures 中选择 While 循环,把它放置在流程图中。将其拖至适当大小,将相关对象移到循环圈内。b.从 Functions Numeric中选择随机数(0-1)功能函数放到循环内。c.在循环中设置Wait Until Next ms Multiple函数 (FunctionsTime & Dialog),该函数的时间单位是毫秒,按目前面板旋钮的标度,可将每次执行时间延迟0到10毫秒。d.照上面所示的流程图连线,把随机数功能函数和随机信号图表输入端子连接起来,并把启动开关和While 循环的条件端子连接。8.返回前面板,调用操作工具后单击垂直开关将它打开。9.把该 VI 保存为 LabVIEWActivity目录中的Random Signal.vi。10.执行该 VI。While循环的执行次数是不确定的,只要设置的条件为真,循环程序就会持续运行。在这个例子中,只要开关打开(TRUE),框图程序就会一直产生随机数,并将其在图表中显示。11.单击垂直开关,中止该VI。关闭开关这个动作会给循环条件端子发送一个FALSE值,从而中止循环。12.用鼠标右键单击图表,选择Data OperationsClear Chart,清除显示缓存,重新设置图表。例2. 创建一个可以在图表中显示运行平均数的VI。前面板 打开一个新的前面板,按照下图所示创建对象。 把波形图表的坐标范围改为0.0到2.0。 在添加竖直坐标之后,用鼠标右键单击它,在快捷菜单中选择Mechanical ActionLatch When Pressed,再选择OperateMake Current Values Default,把ON状态设置为默认状态。图练习的前面板流程图 按下图创建流程图。图练习的流程图 在流程图中添加 While 循环(FunctionsStructures),创建移位寄存器。a. 用鼠标右键单击While循环的左边或者右边,在快捷菜单中选择Add Shift Register。b. 用鼠标右键单击寄存器的左端子,在快捷菜单中选择Add Element,添加一个寄存器。用同样的方法创建第三个元素。 Random Number (01)函数(FunctionsNumeric)产生0到1之间的某个随机数。 Compound Arithmetic 函数(FunctionsNumeric)在本练习中,它将返回两个周期产生的随机数的和。如果要加入其他的输入,只需用右键单击某个输入,从快捷菜单中选择Add Input。 除法函数(FunctionsNumeric)在本练习中,它用于返回最近四个随机数的平均值。 数值常数(FunctionsNumeric)在While循环的每个周期,Random Number (01)函数将产生一个随机数。VI就将把这个数加入到存储在寄存器中的最近三个数值中。Random Number (01)再将结果除以4,就能得到这些数的平均值(当前数加上以前的三个数)。然后再将这个平均值显示在波形图中。 Wait Until Next ms Multiple函数 (FunctionsTime & Dialog)它将确保循环的每个周期不会比毫秒输入快。在本练习中,毫秒输入的值是500毫秒。如果用鼠标右键单击图标,从快捷菜单中选择VisibleLabel,就可以看到Wait Until Next ms Multiple的标签。 用鼠标右键单击Wait Until Next ms Multiple 功能函数的输入端子,在快捷菜单中选择Create Constant。出现一个数值常数,并自动与功能函数连接。 将Constant设置为500。这样连接到函数的数值常数设置了500毫秒的等待时间。因此循环每半秒执行一次。注意,VI用一个随机数作为移位寄存器的初始值。如果没有设置移位寄存器端子的初始值,它就含有一个默认的数值,或者上次运行结束时的数值,因此开始得到的平均数没有任何意义。 执行该 VI,观察过程。 把该 VI 保存为LabVIEWActivity目录下的Random Average.vi。例3. 用For循环和移位寄存器计算一组随机数的最大值。1.打开一个新的前面板,按照下图创建对象。a.将一个数字显示对象放在前面板,设置它的标签为“最大值”。b.将一个波形图表放在前面板,设置它的标签为“随机数”。将图表的纵坐标范围改为0.0到1.0。c.在图表的快捷菜单中选择Visible ItemsScrollbar和Digital Display,并隐藏Plot Legend。d.用移位工具修改滚动栏的大小。 图5练习3的面板和流程图2.按照上图画流程图。3.在流程图中放置一个For循环(FunctionsStructures)。4.在For循环的边框处单击鼠标右键,在快捷菜单中选择Add Shift Register。5.将下列对象添加到流程图。a.Random Number (01)函数(FunctionsNumeric)产生0到1之间的某个随机数。b.数值常数(FunctionsNumeric)在这个练习中需要将移位寄存器的初始值设成0。c.Max&Min函数(FunctionsComparison)输入两个数值,再将它们的最大值输出到右上角,最小值输出到右下角。这里只需要最大值,只用连接最大值输出。d.数值常数(FunctionsNumeric)For循环需要知道需要执行的次数。本练习中是100次。6.按照上图连接各个端子。7.运行该VI。8.将该VI保存为LabVIEWActivity 目录下的Calculate Max.vi。例4. 创建一个VI以检查一个数值是否为正数。如果它是正的,VI就计算它的平方根,反之则显示出错。前面板1.打开一个新的前面板,并按照下图所示创建对象。控制对象用于输入数值,显示对象用于显示该数值的平方根。流程图2.照下图创建流程图。图练习的面板和流程图3.从FunctionsStructures中选择一个 Case结构,并放置在在流程图中。Case 结构是一个可以改变大小的方框。先来做Ture的情况,照流程图上半部分构造。a.Greater Or Equal To 0? 函数(FunctionsComparison)如果输入数值大于或者等于0就会返回一个TRUE值。b.Square Root 函数(FunctionsNumeric)返回输入数值的平方根。c.连好线d.点击Case框的选择按钮,转入False情况编程e.数值常数(FunctionsNumeric)这里用于显示错误的代数值-999.00。f.One Button Dialog函数(FunctionsTime & Dialog)在这里它用于显示一个对话框,内容是Error.。 g.字符串常数 (FunctionsString)用Edit Text Tools在对话框中输入字符串。h.该VI在TRUE或者FALSE情况下都会执行。如果输入的数值大于等于0,VI会执行TRUE Case,返回该数的平方根,否则将会输出999.00,并显示一个对话框,内容为Error.。4.返回前面板,运行该VI。修改标签为Number的数字式控制对象的数值,分别尝试一个正数和负数。注意,当把数字式控制对象的值改为负数时,LabVIEW会显示Case结构的FALSE Case中设置的出错信息。5.保存该 VI 到LabVIEWActivity 目录中的Square Root.vi。例5. 创建一个 VI,计算生成等于某个给定值的随机数所需要的时间。前面板1.打开一个新的前面板,并按照下图所示创建对象。图练习的前面板我们约定数据是到100范围的整数。当前值用于显示当前产生的随机数。“执行次数”用于显示达到指定值循环执行的次数。匹配时间用来显示达到指定值所用的时间。流程图图练习的流程图(共帧)1.在流程图中放置顺序结构(FunctionsStructures)。2.用鼠标右键单击帧的边框,在快捷菜单中选择Add Frame After,创建一个新帧。重复这个步骤,再创建一个帧。共桢。3.选中第桢,设置读取初始时间(子)程序4.第0帧的下边框上含有一个小方框,其中有一个箭头。这个方框叫做顺序局部变量,可以在同一个顺序结构中的各个帧之间传递数据。用鼠标右键单击第0帧的底部边框,选择Add Sequence Local,创建顺序局部变量。顺序局部变量显示为一个空的方块。当您将某个功能函数与顺序局部变量相连时,方块中的箭头就会自动显示。5.Tick Count (ms) 函数(FunctionsTime & Dialog)返回启动到现在的时间(以毫秒为单位)。在这里例子里需要使用两个这个函数。另一个在第帧中。6.按图连好线。转入第帧。该帧是匹配计算,内含一个循环结构。该图中使用的新函数有:Round to Nearest函数(FunctionsNumeric)在该例中,它用于取0到100之间的随机数到距离最近的整数。Not Equal?函数(Functions Comparison)在该例中,它将随机数和前面板中设置的数相比较,如果两者不相等会返回TRUE值,否则返回FALSE。Increment函数(FunctionsNumeric)在该例中,它将While循环的计数器加1。7.连好线。转入第帧在第0帧中,Tick Count (ms)功能函数将以毫秒为单位表示当前时间。这个数值被连到顺序局部变量,这样它就可以被后续的帧使用。在第1帧中,只要函数返回的值与指定值不等,VI就会持续执行While循环。在第2帧中,Tick Count (ms)功能函数以毫秒为单位返回新的时间。VI从中减去原来的时间(由第0帧通过顺序局部变量提供)就可以计算出花费的时间。8.前面板,在Number to Match控制对象中输入一个数值,执行该VI。9.VI保存为LabVIEWActivity 目录下Time to Match.vi。三 实验仪器设备及注意事项1实验前必须做好预习,并做出必要的计算和记录用的表格;2实验开始前先检查仪器设备是否完好,并仔细观察熟悉实验箱面板布置;3接好线后首先组内相互检查无误后,再经指导教师确认无误后方可合闸送电进行实验;4实验中如发现异常(如冒烟、异味、冒火等非正常现象),应立即切断电源,并报告指导教师,仔细查找原因,问题解决后,方可继续进行实验;5实验完毕应先关掉电源,将所用仪器设备恢复原貌,并清理卫生后方可离开。四预习要求及思考题1.说明For循环和While循环的区别。2.用移位寄存器编写个小程序。 实验四 文件的I/O管理一实验目的1学习字符串方面的知识。2用Labview编写一些简单的VI数据管理程序,以完成对文件的输入/输出控制。3了解属性节点如何作为前面板转化的方法。4学习不同的字符排列方式。5学习从一个用户接口访问文件。6学习特性节点的执行次序。二实验原理、内容及步骤实验原理: 字符串是ASCII字符的集合。像其它语言一样,Labview提供了各种字符串处理的功能。 在Labview中,除了通常的字符串应用(文本传送和显示、数据存储等)外,在进行仪器控制操作时,控制命令和数据大部分也是按字符串格式传送的。字符串控件包括:1String Control&Indicator2Combo Box3Table.Express Table4Tree Labview提供的文件I/O函数是一组功能较强的文件处理工具。使用文件I/O函数可以进行所有有关文件输入输出的操作,主要包含以下几个方面:1打开和关闭数据文件;2在文件中读取和写入数据;3读取和写入数据到电子表格格式的文件;4转移和重新命名文件与目录;5干边文件属性;6创建、修改和读取配置文件。使用高层VI可以简单地实现常用的I/O操作。使用底层VI和函数可以控制文件I/O的每一步操作。编制比较复杂的文件管理程序。 一个典型的文件I/O操作班扩以下3个步骤:(1)创建或打开一个文件。(2).对已经打开的文件作读取或写入操作。(3).关闭文件,同时refume会自动被释放文件I/O函数分为3个层次:1High-level VIs;2Low-level VIs;3Advanced VIs.另外,Labview还提供了:1.文件常量;2.文件配置函数;3.路径操作函数;4.两个快速VI5.数据存储函数。 属性节点可以在一个应用程序或者虚拟仪器中得到或者设定各种不同的属性,可以使用单击操作工具中的各属性终端或者在节点的白色区域单击右键,并从弹出的快捷菜单中选择Properties来操作。 可通过单击右键,从弹出的快捷菜单中选择Change to Red 或 Chang to Write 来改变属性节点钟各自得属性的读/写状态。 属性节点从头到尾都起作用。只有当错误在执行之前发生前时,属性节点才停止执行,所以要不断地检查可能的错误。假如在一个属性中发生错误,Labview会忽略余下的属性并产生一个错误。 在前面板中单击右键,并在弹出的快捷菜单中选择创建一个新的属性节点时,Labview就会在方框中创建一个与前面板没有命名连接方式的属性节点。由于节点与创建它的位置没有说明连接方式,所以它们没有参数数字输入,所以用户不需要将属性节点连接到前面板的中断或者控制参数上。 实验步骤和内容:例1 字符串1为i“ABCDEFG”七个大写字母,字符串为七个数字字符串常量1为“hijklmn”七个小写字母,字符串常量2为“0.1234567” 。把以上的字符串依照次序合并为一个字符串,字母全部变为大写字母,把字母H替换为Z,计算其长度,找到字符串中消失点的位置。例2 利用Build TextExpressVi 合并字符串,完成其实字符为某年某月,最佳员工1和最佳员工2为用户自定义的字符串,Score1 和Score2 是两个数值型变量对应两个员工的工作表现得分,“和”为固定需要的字符串。例3 创建一个VI,使用 String Length、Format Into String、Concatenate String 和 Match Pattern 功能。三实验设备及实验注意事项1实验前必须做好预习,并做出必要的计算和记录用的表格;2实验开始前先检查仪器设备是否完好,并仔细观察熟悉实验箱面板布置;3接好线后首先组内相互检查无误后,再经指导教师确认无误后方可合闸送电进行实验;4实验中如发现异常(如冒烟、异味、冒火等非正常现象),应立即切断电源,并报告指导教师,仔细查找原因,问题解决后,方可继续进行实验;5实验完毕应先关掉电源,将所用仪器设备恢复原貌,并清理卫生后方可离开。四, 预习要求及思考题1怎样通过一个对话框来访问一个文件?实验五 数据采集基础一实验目的 学习使用Express Vi进行数据采集与一起通信的方法二实验原理、内容及步骤实验原理:在计算机广泛应用的今天,数据采集的重要性是十分显著的。它是计算机与外部物理世界连接的桥梁。各种类型信号采集的难易程度差别很大。实际采集时,噪声也可能带来一些麻烦。数据采集时,有一些基本原理要注意,还有更多的实际的问题要解决。采样频率、抗混叠滤波器和样本数。假设现在对一个模拟信号x(t) 每隔t时间采样一次。时间间隔t被称为采样间隔或者采样周期。它的倒数1/t 被称为采样频率,单位是采样数/每秒。t=0, t ,2t ,3t 等等,x(t)的数值就被称为采样值。所有x(0),x(t),x(2t )都是采样值。这样信号x(t)可以用一组分散的采样值来表示:下图显示了一个模拟信号和它采样后的采样值。采样间隔是t,注意,采样点在时域上是分散的。图6-1 模拟信号和采样显示如果对信号x(t)采集N个采样点,那么x(t)就可以用下面这个数列表示:这个数列被称为信号x(t)的数字化显示或者采样显示。注意这个数列中仅仅用下标变量编制索引,而不含有任何关于采样率(或t)的信息。所以如果只知道该信号的采样值,并不能知道它的采样率,缺少了时间尺度,也不可能知道信号x(t)的频率。根据采样定理,最低采样频率必须是信号频率的两倍。反过来说,如果给定了采样频率,那么能够正确显示信号而不发生畸变的最大频率叫做恩奎斯特频率,它是采样频率的一半。如果信号中包含频率高于奈奎斯特频率的成分,信号将在直流和恩奎斯特频率之间畸变。图显示了一个信号分别用合适的采样率和过低的采样率进行采样的结果。采样率过低的结果是还原的信号的频率看上去与原始信号不同。这种信号畸变叫做混叠(alias)。出现的混频偏差(alias frequency)是输入信号的频率和最靠近的采样率整数倍的差的绝对值。b 过低采样率下的采样结果a 足够的采样率下的采样结果图6-2 不同采样率的采样结果图给出了一个例子。假设采样频率 fs 是100HZ,,信号中含有25 、70、160、和 510 Hz的成分。图 说明混叠的例子采样的结果将会是低于奈奎斯特频率(fs/2=50 Hz)的信号可以被正确采样。而频率高于50HZ的信号成分采样时会发生畸变。分别产生了30、40和10 Hz的畸变频率F2、F3和F4。计算混频偏差的公式是:混频偏差ABS(采样频率的最近整数倍输入频率)其中ABS表示“绝对值”,例如:混频偏差 F2 = |100 70| = 30 Hz混频偏差F3 = |(2)100 160| = 40 Hz混频偏差F4 = |(5)100 510| = 10 Hz为了避免这种情况的发生,通常在信号被采集(A/D)之前,经过一个低通滤波器,将信号中高于奈奎斯特频率的信号成分滤去。在图的例子中,这个滤波器的截止频率自然是25HZ。这个滤波器称为抗混叠滤波器采样频率应当怎样设置呢?也许你可能会首先考虑用采集卡支持的最大频率。但是,较长时间使用很高的采样率可能会导致没有足够的内存或者硬盘存储数据太慢。理论上设置采样频率为被采集信号最高频率成分的倍就够了,实际上工程中选用倍,有时为了较好地还原波形,甚至更高一些。通常,信号采集后都要去做适当的信号处理,例如FFT等。这里对样本数又有一个要求,一般不能只提供一个信号周期的数据样本,希望有个周期,甚至更多的样本。并且希望所提供的样本总数是整周期个数的。这里又发生一个困难,有时我们并不知道,或不确切知道被采信号的频率,因此不但采样率不一定是信号频率的整倍数,也不能保证提供整周期数的样本。我们所有的仅仅是一个时间序列的离散的函数x(n)和采样频率。这是我们测量与分析的唯一依据。数据采集结构上图表示了数据采集的结构。在数据采集之前,程序将对DAQ板卡初始化,板卡上和内存中的Buffer是数据采集存储的中间环节。需要注意的两个问题是:是否使用Buffer?是否使用外触发启动、停止或同步一个操作。 实验步骤和内容:例1基于DAQ任务的模拟输入程序设计例2产生模拟信号输出例3采集一个直流电压信号 准备一个直流电源(

温馨提示

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

评论

0/150

提交评论