labview新手入门.docx_第1页
labview新手入门.docx_第2页
labview新手入门.docx_第3页
labview新手入门.docx_第4页
labview新手入门.docx_第5页
免费预览已结束,剩余150页可下载查看

下载本文档

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

文档简介

AVR与虚拟仪器 labview新手入门/index_labview_start.html0目录ID文件名简介1什么是labviewLabVIEW(Laboratory Virtual instrument Engineering)是一种图形化的编程语言,它广泛地被工业界、学术界和研究实验室所接受,视为一个标准的数据采集和仪器控制软件。2labview下载与安装详细介绍了labview的下载与安装,包教包会。3Labview入门主要向大家介绍Labview的前面板,程序框图,下拉菜单,选项板,最后将会教大家写一个最简单的Labview程序.4编辑和调试虚拟仪器介绍对对象的各种处理,如选择,移动,删除,调整大小等及对Labview程序的调试技巧,最后大家介绍常用的快捷键.5子VI的应用介绍如何创建,编辑,保存子VI,6循环介绍两种常用的循环结构,以及For循环中移位寄存器的使用方法7数组介绍数组创建,维数特性及数组函数8簇介绍簇,簇的应用, Error簇及簇函数9波形显示控件介绍三种最常用的图形显示控件及他们之间的联系与区别10结构的使用介绍另外两种重要的结构,顺序结构和分支结构及公式节点和文件菜单的使用11字符串与文件I/O介绍字符串,字符串函数,及把数据写入文件和从文件中读取数据12DAQ与波形DAQ的基本操作,及完成简单的信号输入和输出13串口的使用简单的串口的使用14labview论坛更多精彩内容,就在 labview论坛 进入学习交流吧 /thread.php?fid-8.html一什么是labviewLabview概述虚拟仪器(virtual instrumention)是基于计算机的仪器。计算机和仪器的密切结合是目前仪器发展的一个重要方向。粗略地说这种结合有两种方式,一种是将计算机装入仪器,其典型的例子就是所谓智能化的仪器。随着计算机功能的日益强大以及其体积的日趋缩小,这类仪器功能也越来越强大,目前已经出现含嵌入式系统的仪器。另一种方式是将仪器装入计算机。以通用的计算机硬件及操作系统为依托,实现各种仪器功能。虚拟仪器主要是指这种方式。下面的框图反映了常见的虚拟仪器方案。虚拟仪器的主要特点有: 尽可能采用了通用的硬件,各种仪器的差异主要是软件。 可充分发挥计算机的能力,有强大的数据处理功能,可以创造出功能更强的仪器。 用户可以根据自己的需要定义和制造各种仪器。 虚拟仪器实际上是一个按照仪器需求组织的数据采集系统。虚拟仪器的研究中涉及的基础理论主要有计算机数据采集和数字信号处理。目前在这一领域内,使用较为广泛的计算机语言是美国NI公司的LabVIEW。虚拟仪器的起源可以追朔到20世纪70年代,那时计算机测控系统在国防、航天等领域已经有了相当的发展。PC机出现以后,仪器级的计算机化成为可能,甚至在Microsoft公司的Windows诞生之前,NI公司已经在Macintosh计算机上推出了LabVIEW2.0以前的版本。对虚拟仪器和LabVIEW长期、系统、有效的研究开发使得该公司成为业界公认的权威。普通的PC有一些不可避免的弱点。用它构建的虚拟仪器或计算机测试系统性能不可能太高。目前作为计算机化仪器的一个重要发展方向是制定了VXI标准,这是一种插卡式的仪器。每一种仪器是一个插卡,为了保证仪器的性能,又采用了较多的硬件,但这些卡式仪器本身都没有面板,其面板仍然用虚拟的方式在计算机屏幕上出现。这些卡插入标准的VXI机箱,再与计算机相连,就组成了一个测试系统。VXI仪器价格昂贵,目前又推出了一种较为便宜的PXI标准仪器。虚拟仪器研究的另一个问题是各种标准仪器的互连及与计算机的连接。目前使用较多的是IEEE 488或GPIB协议。未来的仪器也应当是网络化的。LabVIEW(Laboratory Virtual instrument Engineering)是一种图形化的编程语言,它广泛地被工业界、学术界和研究实验室所接受,视为一个标准的数据采集和仪器控制软件。LabVIEW集成了与满足GPIB、VXI、RS-232和RS-485协议的硬件及数据采集卡通讯的全部功能。它还内置了便于应用TCP/IP、ActiveX等软件标准的库函数。这是一个功能强大且灵活的软件。利用它可以方便地建立自己的虚拟仪器,其图形化的界面使得编程及使用过程都生动有趣。图形化的程序语言,又称为“”语言。使用这种语言编程时,基本上不写程序代码,取而代之的是流程图或流程图。它尽可能利用了技术人员、科学家、工程师所熟悉的术语、图标和概念,因此,LabVIEW是一个面向最终用户的工具。它可以增强你构建自己的科学和工程系统的能力,提供了实现仪器编程和数据采集系统的便捷途径。使用它进行原理研究、设计、测试并实现仪器系统时,可以大大提高工作效率。利用LabVIEW,可产生独立运行的可执行文件,它是一个真正的位编译器。像许多重要的软件一样,LabVIEW提供了Windows、UNIX、Linux、Macintosh的多种版本。二 labview下载与安装Labview下载下载地址/evaluation/labview/pc/labview_82_chs.exe(建议使用迅雷下载。下载可能需要一段时间。)labview安装 双击安装图标出现单击确定,进入单击Unzip,进入解压时不能拖动上面的界面,否则会出现这时单击否。解压完成之后出现单击确定,进入单击安装labview8.2,进入单击下一步,进入无序列号的话选择试用版,单击下一步进入选择安装的路径,单击下一步,进入选择安装的组件,单击下一步,进入选择我接受许可协议,单击下一步,进入安装完成之后,重新启动计算机,从national instruments文件夹中启动labview程序,进入 有激活码用激活码激活,无激活码单击试用即可。三 labview入门运行Labview,如图: 点击新建VI,即可打开一个新的Labview程序 前面板 :工具条 :标签 :数值控件 :标尺 :图标 :旋钮 :图例 :XY图 前面板工具条:运行按钮 :连续运行按钮 :中断运行按钮。当编码出错使VI不能编译或运行时,中断运行按钮将替换运行按钮 :连续运行按钮:暂停/继续按钮 :异常终止执行按钮 :对齐对象按钮。用于将变量对象设置成较好的对齐方式 :分布对象按钮。用于对两个及其以上的对象设置最佳分布方式。 :调整对象大小按钮。用于将若干个前面板对象调整到同一大小。程序框图:数值输入控件 :旋钮控件 :数值常量 :乘:For循环结构 :数据连线 :捆绑函数 :XY图控件:子VI程序框图工具条:加亮执行按钮。当程序执行时,在框图代码上能够看都数据流,这对于调试和校验程序的正确运行是非常有用的。在加亮执行模式下,按钮转变成一个点亮的灯泡:保存连线值按钮。:单步进入按钮。允许进入节点,一旦进入节点,就可在节点内部单步执行。 :单步跳过按钮。单步跳过节点,但不执行时不进入节点内部但有效地执行节点。:单步跳出按钮。允许跳出节点,通过跳出节点可完成该节点的单步执行并跳转到下一个节点。 :文本设置按钮。:层叠顺序。下拉菜单由于Labview8.2采用了中文的界面,每个下拉菜单的功能根据字面意思就很容易理解了,在这里我不再赘述。选项板 工具选项板?左图所示便是工具选项板,各按钮的功能如下:自动选择工具 :操作工具 :定位/调整大小/选择工具:编辑文本工具 :连线工具 :对象快捷菜单工具 :滚动窗口 :设置/清除断点工具 :探针工具 :颜色复制工具:着色工具 控件选项板:和下拉菜单一样Labview8.2采用了中文的界面各个控件的功能一目了然某些常用的控件的功能我们会在下面的章节中做详细的介绍 函数选项板和下拉菜单一样Labview8.2采用了中文的界面各个控件的功能一目了然某些常用的控件的功能我们会在下面的章节中做详细的介绍 下面将手把手地教大家写一个简单的VI程序,让大家对一个基本的认识再进入下一章节的讲解。创建第一个VI: 本节将创建的第一个VI来完成下列功能: 1. 将两个输入数字相加并显示结果 2. 将同样的两个输入数字相乘并显示结果 3. 比较两个输入数字,如果数字相等,则LED指示灯变亮 步骤:1. 从“文件”菜单中选择“新建”VI打开新的前面板 2. 创建数字控件和指示器。使用两个前面板控件输入数字,使用两个指示器输入数字加和乘的结果。 a. 从控件选项板的数值子选项板中选择数值输入控件 b. 单击数值输入控件,然后拖拽控件到所希望的位置,然后单击鼠标将控件放下,如图: c. 在标签框(在控件上方)内键如字母,按前面板工具条上的Enter按钮。如果在继续编程操作(诸如将其他控件放置在前面板上)之前不键入标签内容,标签框将保留默认标签内容“数值”。如果控件或指示器没有标签,可用右键单击控件,在控件上弹出快捷菜单,从显示项菜单中选择标签,标签框就会出现,然后可使用标签工具编辑文本。 d. 重复以上过程创建第二个数字控件和第二个数字指示器。可选择按任意方式排列控件和指示器,不过排列得整齐而有规律会更好些 3. 创建布尔LED。如果两个输入数字是相同的,那么指示灯打开;如果不是,则保持关闭状态。 a. 从控件选项板的布尔子选项板中选择圆形知识灯。将该指示器放置到前面版上并拖拽到所希望的位置,然后单击鼠标按钮。 b. 在标签框内键入“Round LED”,键入完毕,单击标签框外边的任何地方,或单击Enter按钮。如图: ” 4. 从窗口下拉菜单中选择显示程序框图,切换到程序框图。 5. 先在在框图上放置“加”和“乘”函数。可从框图选项板,编程选项板的数值子选项板中选择“加”函数。按照同样的步骤,将“乘”函数放置到框图上并显示标签。 6. 从框图选项板,编程选项板的子选项板中选择“等于?”函数,并放到框图上,如果他们相等,返回“真”,如果不相等,则返回“假 7. 连线,在工具选项板中选择连线工具,当把鼠标移到各个控件的上方时,能够参与连线的节点便会自动闪烁,提示用户,此处可以连线。连线完成后如图: 8. 连线完成后,单击运行按钮,便可在前面板上看到运行的结果。 四 编辑和调试虚拟仪器编辑技术在前一章的末节,我们一起写了一个最简单的Labview程序,下面我们将仔细讨论前面板和程序框图中的各种编辑技术1创建:在上一章中我们介绍了最常用的创建方法,就是用鼠标选择,然后放置到框图或前面板中,在这里我们为大家介绍另外一种常用的方法。如图:放置一个随机数函数到程序框图,位于函数编程数值随机数。然后在上面单击右键,选择创建显示控件,如图则可看到有一数值控件与其相连,前面版上也出现了一个数值控件。如图:2选择对象:在前面板和程序框图中,使用定位工具来选择对象,它也可以用来移动和调整对象的大小,如图:当对象被选中时,就会出现环绕的虚线轮廓当要选择多个对象时,按住键并同时单击鼠标即可,如图:或者在空白处单击鼠标,并拖拽光标直到全部希望的对象均出现在矩形框来选择多个对象。如图:3移动对象:选定对象后,用鼠标拖拽,便可移动对象到指定位置。如图:4删除和复制对象:显然,选中所要进行操作的控件后,单击主菜单中的编辑,然后选择删除或者复制,粘贴是完全可以实现各项操作的。下面我向大家介绍几种用键盘来实现这些操作的方法。删除:选中控件后,按下“退格”键或即可复制:选中控件后,按,然后即可,或者按下,然后拖拽所需要复制的控件到其他地方即可,如图:5调整对象大小:当工具选项板上选定定位工具时,把鼠标挪到各个控件的角上时,就会大小调节的句柄,直接拖拽,然后释放,便可改变控件的大小,如图:注意:某些控件横向的大小,不能改变纵向的大小,比如数字控件!6标签对象:标签分为两种自由标签和固有标签。固有标签是用户在添加控件时系统自动添加上的,不能删除和复制,只能隐藏。如图,单击右键,把标签一栏取消即可。自由标签不附加与任何对象,可独立的创建,移动或处理。使用即可实现自由创建和编辑。如图: 输入完后,在空白处单击鼠标即可。7改变字体,字形和文本大小:使用工具条上的文本设置工具,可以方便地更改标签,控件或指示器中显示的任何文本的字体,字形,大小和对齐方式。如图:选中控件后,更改大小为36具体每一项下拉菜单的功能,大家根据字面的意思即可理解,这里不再赘述。8编辑连线:如图:当连线发生错误时,就会出现断线,在有断线的时候,程序也就不能运行,运行按钮也会发生改变,如图:此时选中断线,然后按即可删除,或者按清除所有断线。9对象的对齐,分布和大小调节:对齐先选中所需要对齐的控件,然后选择不同的对齐方式即可对齐后的效果如图:控件之间的间距也可进行调整,如图,先选中他们,然后然后选择调整间距。排列后的效果如图:三个控件已呈等垂直间距排列 调试技术1发现错误:当编程错误使VI不能编译或运行时,工具条上的运行按钮便会变为不能运行,如图:,单击,便会弹出程序错误列表,如图:单击显示错误,便可在程序框图中找到出错的地方,如图: 2加亮执行:单击加亮执行按钮,可在程序框图中观察到数据流的流动状态,但程序的执行时间会明显增加。如图: 3单步通过VI:为了调试程序,你可以一个节点一个节点地执行框图,在运行程序的时候,不要点击运行按钮,直接点击单步运行按钮,运行一步后,程序自动暂停下来,等待用户的下一个命令,再执行下一步。如图: 两个单步按钮均可,只是暂停的位置略有区别。 4断点与探针:要更为详细的知道程序在运行时的各个参数,可以在各条连线上设置断点,然后用探针查看断电上的数据,然后按继续按钮让程序继续运行。如图: 程序运行到断电处便会自动暂停,然后单击继续,便可继续运行。如图: 快捷键键盘上的按键组合功能Ctrl+S保存VICtrl+R运行VICtrl+E在前面板和程序框图间切换Ctrl+H打开或关闭帮助窗口Ctrl+B消除所有无效连线Ctrl+W关闭活动的窗口Ctrl+F查找对象和VI五子VI什么是子VI子VI是供其他VI使用的VI,与子程序类似。子VI是层次化和模块化VI的关键组件,它能使VI易于调试和维护。使用子VI是一种有效的编程技术,因为它允许在不同的场合重复使用相同的代码。G编程语言的分层特性就是在一个子VI中能够调用到另一个子VI。下面可用一个表格表明子VI的作用:程序代码调用子程序function average (in1,in2,out)out=(in1+in2)/2.0; mainaverage (point1,point2,pointavg); 子VI框图调用子VI框图编辑图标和连接器:1图标:每个VI都有一个默认的图标,显示在前面板和框图窗口的右上角。默认图标是一个Labview徽标和一个数字构成的图片,该数字指出自从Labview启动后已打开新VI的数量。使用“编辑图标”可以定制该图标。如图:选择编辑图标后,便可打开图标编辑器。编辑器如图: 各个控件的作用如图: 一个像素一个像素地绘制和擦除绘制直线。使用限制绘制水平,垂直和对角线从图标象素选取前景色用前景色填充封闭区域使用前景色绘制矩形框。双击该工具,可以用前景色给图标加边框使用前景色绘制框并用背景色填充。双击该工具,可以用前景色给图标加边框并用背景色填充。选择图标区域,用于移动,复制,删除,或执行其他操作。双击次此工具并在键盘上按键将立刻删除整个图标。在图标中输入文本。双击该工具可以选择不同字体。在图标中通常采用小字体。显示当前前景色和背景色。分别单击前景和背景将进入彩色选项板,从中可以选择新的颜色。编辑好图标以后,就可以看到自己编辑的图标,如图:连接器:连接器是与VI控件和指示器对应的一组端子。连接器是为了VI建立的输入和输出口,这样VI就可以作为子VI使用。连接器从输入端子接受数据,并在VI执行完成是将数据传送到输出端子。在前面板上,每一个端子都与一个具体的控件或指示器相对应。连接器端子的作用与函数调用时子程序参数列表中的参数类似。 注意:只能从前面板查看和编辑连接器窗格。 在右上角图标上单击右键,选择显示连线板,即可看到连接器。默认情况下,Labview根据前面板上控件和指示器的数目显示端子模板。如图: 也可在模式选项中选择更多的连接器类型,如图: 注意:子VI最多可用的端子数是28! 创建子VI方法一:把前面板和程序框图编辑妥当以后,按照上面的步骤编辑子VI的图标(编辑图标可跳过),然后打开连接器,给控件和指示器指定端子,在工具选项板上选择连线工具,然后把控件和指示器上的对应位置相连接。如图:连接正确后,在指示器上的相应位置颜色就会发生改变,表明该处已连接上 全部正确连接后如图: 保存,更改名称为“求平均值”,退出,即可在其他程序中调用这个子VI了。 打开一个新的VI,在前面板上放置两个数值输入控件和一个数值显示控件,如图: 打开程序框图,选择“选择VI” 在弹出的对话框中选择“求平均值”,如图: 放置到程序框图中,如图: 然后连线,运行,如图: 方法二: Labview可以在程序框图中直接将选定的部分创建为子VI,如图: 这是一个将摄氏温度转化为华氏温度的程序,中间的运算可整个设置为一个子VI,步骤如下:1. 把要设置为子VI的部分进行选择,如图: 2. 点击编辑,然后点击“创建子VI”,如图:创建完成后,如图: 双击子VI图标,便可对他进行编辑,如图: 建议:我极力建议将所创建的子VI保存在目录下而不是保存在库文件中。尽管在称为VI库的单个文件中能够保存多个VI,但我们不希望这样做。将VI保存为单个文件是最有效的存储方式。因为这样在复制,重新命名和删除文件时比使用VI库时要容易些。 与其他目录一样,VI库文件可以装入,保存和打开,但不是分层的。不能在VI库内创建另一个VI库,也不能在VI库内创建新目录。VI库文件创建后,当其出现在文件对话框中时,其图标将与VI文件图标略有不同。 六循环While循环1.While循环是一种结构,它重复执行代码片段直到满足某种条件为止。它可比作传统语言中的Do Loop或RepeatUntil循环。它位于编程结构While循环。每个While循环都有一个条件端子和一个重复端子。如图:重复端子用于记录和输出已执行的循环的次数,条件端子输入的是一个布尔变量:真或假,While循环将一直执行到连接条件端子上的布尔值变成真或假为止,取决于条件端子设置为“真(T)时停止”还是“真(T)时继续”。在条件端子上单击右键即可进行更改。如图: 下面举个简单的例子:利用While循环产生随机数,当产生的随机数大于0.8时,循环停止。 步骤如下:1. 打开前面板,新建两个数值显示控件,一个为循环次数,一个显示最后产生的那个大于0.8的随机数。如图: 2 切换到程序框图,放置一个While循环,如图:3. 放置随机数函数到While循环内,并连线,如图:4. 放置比较函数,将循环次数与重复端子连线,如图:5 运行,即可在前面板上看到结果,如图:在程序框图中,在数值显示控件上单击右键,可更改数值的类型,如图: 各种数值的类型都可以看见,我就不再赘述。 在While循环的边框上单击右键,可添加位移寄存器,如图: 有关位移寄存器的用法,我们将会在For循环中讲到,这里暂不做介绍。 注意:While循环的条件端子一定要有连线,否则程序无法运行!如图: For循环1 For循环位于函数编程结构For循环,如图:从图中可以看到,For循环有两个端子 计数端子:要执行循环的次数,可用于For循环内部的循环计数 重复端子:已执行循环的次数,可用于For循环内部的重复计数 For循环应用举例:产生10个随机数,并把最后一个显示出来。 步骤如下:1 放置一个数值显示控件到前面板,并改名为随机数。2 放置For循环到程序框图,如图: 3放置随机数函数到程序框图,并连线4计数端子上单击右键,选择创建常量,并输入10,如图:5运行程序,便可在前面板上看到结果。6因为程序的运行的速度非常快,我们无法一个一个地看清所产生的10个随机数,我们可以在程序框图中添加时间延迟控件。它位于函数编程定时时间延迟,如图:7 放置它到程序框图上,选择延迟的时间,即两次循环之间的时间间隔。如图:8 将时间设置为1.000,点击确定即可,再运行程序就可从前面板上看到所产生的随机数了。移位寄存器移位寄存器用于For循环或While循环中从一个迭代传输数据到下一个迭代,它由循环垂直边框上一对反向相反的端子组成,在边框上单击右键,选择添加移位寄存器,就可进行添加。如图:右端子(带向上箭头的矩形)在每完成一次迭代后存储数据,移位寄存器将上次迭代的存储数据在下一次迭代开始时移动到左端子(具有向下箭头的矩形)上。移位寄存器可存储任何数据类型,包括数字,布尔,字符串和数组,但连接到同一个寄存器端子上的数据必须是同一类型。移位寄存器的类型与第一个连接到其端子之一的对象数据类型相同。 下面是1234100的程序,如图: 说明:进行第一次运算的是0+0,For循环中的重复端子是从0开始计数,移位即寄存器在没有初始化的情况下,默认的数值是0,所以第一次运算的是0+0,第二次运算的是寄存器的0与重复端子的1相加,所以循环要进行101次。而计数端子输出的数据始终是101。 移位寄存器的初始化:移位寄存器的初始化是非常必要的,因为只要用户不退出VI,移位寄存器便可记录上次运算完时的结果,所以上面的程序在第二次执行时输出的结果不是5050,而是10100!添加初始化即可,如图: 下面在举几个复杂一点的例子。 例一:计算一组随机数的最大值和最小值 1. 新建一个VI,在前面板上放置一个波形图标,它位于新式图形波形图表,用它来记录产生的随机数。同时在前面板上放置两个数值显示控件“最大值”和“最小值”,用来显示随机数中的最大值和最小值。 2. 在程序框图中,放置一个For循环,设置循环次数为50次。单击边框选择添加两个移位寄存器,分别初始化为0和1。 3. 放置随机数函数和最大最小值函数与程序框图中,其中最大最小值函数位于编程比较最大值与最小值。然后连线。如图: 运行,便可在前面板上看到结果,如图: 例二:计算1. 在前面板上放置一个数值输入控件“阶次n”和一个数值显示控件“求和结果” 2. 在程序框图上放置两个For循环嵌套结构,外层循环的计数端口与“阶次n”连接,输出是各个数的阶乘所组成的一个数组。它的重复端子加1作为内层循环的循环次数,内层循环利用一个移位寄存器实现阶乘运算,移位寄存器的初始值设为1。 3. 同样在程序框图的右边在放置一个For循环结构,它的计数端子没有任何连接数据,使用的是自动索引功能。这个循环的作用是对由阶乘所组成的一个数组进行索引,对索引出的各个元素进行求和计算,最后将计算结果输出给“求和结果”。 4. 完成连线,如图: 运行结果如图: 例三:计算自然对数中底数e的近似值。 算法:步骤: 1. 新建一个VI,打开前面板,添加两个数字显示控件,分别表示”近似值e”和“临界阶次N”。 2. 切换到程序框图,放置一个While循环,将条件端子的条件改为“真时停止”。在它内部再放置一个For循环,计数端子与While循环结构的重复端子加1后连接。右击For循环边框,添加移位寄存器,并初始化为1,For循环结构的功能是计算各个数的阶乘。 3. 计算各个数阶乘的倒数,添加倒数函数,它位于函数编程数值倒数。 4. 添加比较函数,将它的阶乘的倒数与10-5比较,比较结果连接到While循环结构的条件端子上,如果小于则返回“真”,停止循环,否则返回“假”继续循环。 5. 由于While循环默认的是不能够自动索引功能,而程序中需要累加保存每次计算的阶乘,这就需要在输出通道上选择“启用索引”,实现自动索引,将各个元素累加成为一维数组。 6. 在程序框图右边再添加一个For循环,它的功能是进行自动索引求和,需要主机的是它的移位寄存器被初始化为1,这是由近似算法所决定的。将输出结果送给“近似值e”。 7. 完成连线,并运行程序。如图: 运行结果,如图: 例四:实现对随机数进行平滑滤波。通过对4个连续的随机数求其平均值来实现。 1. 新建一个VI,在前面板上放置两个波形图表,一个为“原始波形”,一个为“滤波后波形”。 2. 在程序框图上放置一个While循环,在边框添加一个移位寄存器,然后在左边的寄存器上单击右键,选择“添加元素”,一共添加3个。如图: 3.4. 添加随机数产生函数,并添加符合运算,将连续产生的4个随机数相加,相加的结果除以4。 5. 放置循环定时函数,定义循环时间为100ms。 6. 完成连线,在While循环的条件端子处添加输入控件。如图: 运行结果: 七数组数组数组是由同一类型数据元素组成的大小可变的集合。同其他语言一样,Labview也提供了数组结构,数组是相同数据类型的集合,这些数据类型可以是数组型,布尔型,字符串型等。当需要频繁地对一批数据进行绘图时,使用数组将获益匪浅。下面将详细介绍数组及数组函数的各种用法。创建数组1从前面板上创建数组:打开前面板,在控件新式数组,矩阵与簇数组,如图:再在里面放置一个数值输入控件即可,如图: 如果要显示更多的数组成员,在工具选项板上选择定位工具,在数组的边框停滞,当出现网状拐角后就可以拖动增加或减少显示区域。如图: 如果要增加或减少数组的维度,既可以在索引框的快捷菜单上执行,如图: 增加后如图: 对于二维数组来说,索引框中上一个为行索引,下一个为列索引。 2程序框图上创建数组:在程序框图上创建数组和在前面板上创建数组有点类似,也首先创建一个外壳,然后再放入数值型常量,枚举或环形常量,字符串型常量以及布尔型常量等。刚刚放入常量后,所有的数组成员显示为灰色,可以用操作工具依次给它们赋值,赋值范围以外的数组成员保持灰色不变。如果跳过一些数组成员给后面的成员赋值,则前面的成员自动赋一个系统默认的值。先在程序框图上放置一个数组常量,位于函数编程数组数组常量,如图: 然后再往里放入一个数值常量,完成后如图: 数组函数数组函数的面板如图:设计步骤如下: 1. 创建一个For循环,循环次数定为100次 2. 在数学函数中调用Sinc函数,重复端子作为输入,输出用一个波形图表和一个数组显示。如图: 例二:创建一个二维数组 1. 程序框图如图所示: 2. 现在已经有两组一维数组了,可以使用创建数组函数就可以把他们创建为二维数组,在一个波形图中显示,如图: 3. 可以用鼠标对该函数进行拉伸操作,即可有两个输入端子了。 4. 程序框图如图: 5. 前面板运行结果如图: 例三:初始化和分离数组:利用For循环的自动索引功能从一个输入数组中依次抽取各个元素,如果是大于0的数则添加到正数数组,如果是小于0的则添加到负数数组。并分别计算两个数组中各自有多少个元素。如图所示便是程序框图下图是在选择结构中为“假”时的情景 其中一共用到了三个数组函数,一个初始化函数,一个创建函数,一个数组大小函数,运行时前面板如图: 数组函数就给大家介绍这么多,大多数函数的功能看汉语意思便能明白,当大家有什么问题的时候,可上我们的网站提问,我们将尽力为大家解答。 八簇簇簇是一种类似数组的数据结构,用于分组数据。簇和数组有着重要的差别,其中一个重要差别是,簇可以包含不同的数据类型,而数组仅可以包含相同的数据类型。例如,一个数组可以包含10个数字指示器,一个簇却可以包含一个数字控件,一个开关和一个字符串控件。尽管簇和数组的元素都是有序存放的,但访问簇的元素最好是通过释放的方法同时访问其中部分或全部元素,而不是通过索引一次访问一个元素。簇和数组的另一个差别是簇具有固定的大小。簇通常用于将出现在框图上的有关数据元素分组管理。因为簇在框图中仅用唯一的连线表示,所以对于减少连线混乱和子VI需要的连接器端子个数,使用簇有着积极的效果。可以将簇看做是一捆连线,线缆中每一个连线表示簇的不同元素。在框图上,只有当簇具有相同类型,相同元素数量和相同元素顺序时,才可以将簇的子端连接。多态性应用于簇时,只需要簇具有同样顺序,同样数量的元素。下面来向大家介绍簇的创建簇的创建框位于前面板中的控件新式数组,矩阵和簇簇,如图: 然后就可以往簇的框中添加各种类型的控件了,例如现在要建立一个学生的记录信息,包括学生的姓名,学号,性别和年龄.这就需要在簇外壳里依次放入两个字符串输入控件,一个数字控件和一个布尔控件.如图:与数组的创建类似,簇也可以从程序框图中创建,先在程序框图上放置一个簇外壳,然后就可以在簇外壳里放置各种数据类型常数。如图: 簇内对象的大小是可以调整的,右击簇边界,在弹出的快捷菜单中可以选择各种调节操作,如图: 选择调整为匹配大小,即可缩小簇的边框,如图为调整后的结果: 簇结构中的元素排列是按照它们放置的先后来排序的,它与簇内元素的位置无关。放入簇内的第一个元素序号为0,第二个元素序号是1,依次向下排列。如果删除了一个元素,序号将重新自动调整。簇的排序很重要,它直接影响着后面将要介绍的“捆绑”以及“接触捆绑”函数的端口顺序,如果你想将一个簇与另一个簇连接,这两个簇的序和类型必须相同。 如果想要改变簇内元素的排列顺序,可以右击簇结构的边框,在弹出的快捷菜单中执行“重新排序簇中控件”,如图: 这时鼠标会变成一个带“”号的手柄箭头,黑框指出新设置的排列序号,白框表示原先的排列序号,可以改变标题栏上的“单击设置”内容,然后单击簇元素即可设置新的序号。设置完毕后单击工具栏上的“”按钮确定更改,如果想恢复原先设定值,单击“”取消设置。b) 簇函数簇函数的模版如图:簇函数中最主要的就是构造打包生成簇的“捆绑”函数,还有从簇中解包提取簇中元素的“解除捆绑”函数。它们是根据簇成员的顺序来进行操作的,这也说明了簇内成员顺序排列的重要性。 簇函数举例:1. 创建簇,解包簇,再打包簇 该例的目的是学习使用簇的两个基本函数,如图:首先放置一个簇外壳到前面板上,将标签内容改为“输入簇”在簇外壳中依次放入字符串控件“Name”,布尔控件“Sex”,数字输入控件“Pay”以及字符串控件“Address”,通过这些簇元素来组成某一公司内一名员工的工资记录。如图:切换到程序框图,放置一个“解除捆绑”解包簇函数,函数刚放入时,它的右侧只有2个输出端口,当输入端口与“输入簇”端子相连后,右侧端口会自动增加为簇元素的数目,端口从上向下排列的顺序与簇内元素的放置顺序相对应,并且数据类型也是与簇元素数据类型相对应。如图:同样放置一个“捆绑”打包簇函数,用定位工具将输入端口的数目增加到4个,依次将它们与解包出来的4个簇元素相连,表示又把它们进行打包生成一个新的簇。在输出端口创建一个簇显示器,把标签改为“输出簇”,如图:2. 替换簇成员 该例的目的是学习使用“按名称捆绑”函数来替换簇内的某些元素。1. 新建一个VI,在前面板上创建一个簇外壳,依次向簇内添加一个数字输入控件,一个布尔控件,一个字符串输入控件,如图: 2. 打开程序框图,选择“按名称捆绑”函数,它的功能是按照名称来替换簇成员的值。在函数刚放入时,它的左侧只有一个输入端口,将函数的“输入簇”端口与创建的簇端子相连之后,左侧端口会显示簇内第一个元素的名称数值,用操作工具单击它可以选择其他的簇成员。如图: 3. 在前面板上创建一个输入控件,将标签改为“输入数字”,在程序框图将它与“数值”端口相连,表示将用它来替换簇元素。如图: 4. 在“按名称捆绑”函数后面创建输出簇,完成后即可运行程序,如图: 3. 插接生成簇数组 该例的目的是学习使用“索引与捆绑簇数组”函数插接簇数组函数来生成一个簇数组。1. 新建一个VI,打开程序框图,放置一个该函数,刚放入时它只有一个输入的端口,用定位工具拖拉它为3个输入端口。 2. 在程序框图上放置三个数组外壳,然后分别添加字符串常量,数值常量和布尔常量,建立三个数组,如图: 然后给他们赋如图所示的值,如图:然后连线,并创建显示控件,如图:运行,结果如图:说明:该函数从输入的3个数组中依次取值,相同索引值的数据被攒程一个簇,所有的簇构成一个一维数组。插接成的数组的长度与所有输入数组中长度最短的一个相等,多余的数据被丢弃。4. 建立“数组的数组” 该例看起来好像是不可以实现的,因为在数组的学习中,已经知道数组的成员不可以是数组。这里将学习把一维数组当成一个簇,然后通过建立簇的数组,因为簇数组的每一个成员都是一个簇(即一维数组),从而实现建立“数组的数组”的目的。1. 先新建一个VI,打开程序框图,放置一个“创建簇数组” 函数,该函数的功能是建立簇的数组,簇数组的每个成员都是一个簇。刚放入程序框图时,函数只有一个输入端口,用定位工具拖动它的边框,使它具有3个输入端口。 2. 在程序框图上创建3个数值型数组,分别对它们进行赋值,第一个和第三个数组长度设定为5,第二个数组的长度设定为4。在“创建簇数组”函数的输出端口创建一个簇显示器,将簇显示器的标签内容改为“数组的数组”,如图: 3. 运行程序,即可在前面板上看到结果,如图: Error簇Error簇是一类很重要的簇,许多的控件里都有“错误输入”和“错误输出”这两个簇的端口,通常来讲,当一个VI中间出现错误而导致不能运行时,可以在出错的控件的“错误输出”端子创建一个显示控件,则可以让程序继续运行,如图所示,即为Error簇:而Error簇更重要的应用在于,它可以控制控件执行的先后顺序,也可以通过Error簇来控制循环的终止。如图: 当信号的发生出现错误的时候,就可以把循环停止。 九波形显示控件图形是虚拟仪器的重要组成部分,Labview为用户提供了丰富的图形显示功能,在图形子模版中提供了许多可供使用的显示控件,如图: 我们将在下面的章节通过一些例子向大家介绍前三种图形显示控件的使用。波形图及波形图表首先放置一个波形图表到前面板上,然后在上面单击右键,如图:或者右击后选择属性,便可以看到所有能对该控件操作的选项,如图: 例一:用波形图表显示两组随机数。 1. 新建一个VI,在前面板上放置一个波形图表,取消X轴和Y轴的刻度标签,如图: 2. 定位工具上下拖动边框,让它显示两条曲线图注,如图: 3. 然后把他们拖动到合适的位置。如图: 4. 切换到程序框图,放置一个For循环,计数端子取值为100,这样每次运行产生100个数据。在循环体内放置两个随机数产生函数,分别乘上一个因子5和-5。如图: 运行结果如图:例二:温度临界预警器1. 新建一个VI,在前面板上放置一个波形图表,将Y轴的刻度标签改为“温度”,然后选择隐藏图例,然后将Y轴坐标的自动调整取消,如图: 2. 添加一个布尔圆形指示灯,并调整为合适大小,把标签内容改为“报警”当温度超出临界值时点亮报警灯,同时在前面板放置一个停止开关。 3. 在程序框图上放置如图所示的程序,其中添加一个定时工具,把时间间隔设为200ms。如图: 运行结果如图:波形图波形图和波形图表得大部分组建及其功能都是类似的,特别的是波形图具有光标指示器,利用它可以准确地读出波形曲线上的任何一点数据,便于分析某一时刻的特性值。如图:波形图举例:例一:该例的目的是用随机数函数产生100个随机数据,分别用波形图和波形图表来显示,并比较他们的区别。 1. 新建一个VI,在前面板上分别放置一个波形图和一个波形图表,调整为合适大小,取消显示图例,取消Y标尺自动调整,最大值设为1,最小值设为0。 2. 切换到程序框图,放置一个For循环结构,内部添加一个随机数产生函数,For循环结构计数端口设为100,同时添加定时工具,每次循环间隔时间为100ms. 3. 连线,如图所示: 运行,程序结果如图:我们可以清楚地看到这两种显示工具的区别,它们地实现方法和过程不同,在程序框图也可以看出,波形图表产生在循环体内,这样每得到一个数据点,就立刻显示一个;而波形图产生在循环体外,100个数据都产生之后,跳出循环,然后一次显示出整个数据曲线。程序运行第二次时,波形图表的X轴刻度就会随之增加,由099变为100199,表示数据点的增加;而波形图的X轴刻度并没有发生变化,还是099,表示只显示当前的数据。例二:该例的目的是学习使用“捆绑”打包函数来设置波形图的X轴刻度起始点和间隔。1. 新建一个VI,在前面板上放置一个波形图,取消X轴的自动调整,使产生的波形可以充满整个X轴刻度。同时放置两个数值输入控件,Xo控制X轴刻度的起始点,数据类型为I32,Delta X控制X轴刻度的水平间隔,数据类型为DBL。 2. 切换到程序框图,放置一个高斯白噪声函数,它位于函数信号处理信号生成高斯白噪声。如图: 3. 添加“捆绑”函数,用定位工具拖动它的边框为3个输入端口,然后如图所示联系。 运行,结果如图:例三:该例的目的是学习使用簇数组来显示不同长度的数据,并比较它与直接用二维数组显示的区别。1. 新建一个VI,在前面板上放置两个波形图,将它们标签内容分别改为“二维数组显示”和“簇数组显示”,标签字体大小设为18号。 2. 打开程序框图,添加正弦波函数和方波函数,它们位于函数信号处理信号生成正弦波,方波。分别给它们的采样端口赋值为150和200。 3. 在数组函数中,选择创建数组函数,将正弦波和方波的输出合并为一个二维数组。在介绍数组时,已经得知当将两个不同长度的一维数组组成二维数组时,会自动在长度较短的一维数组后面添加0,使得它们的长度相同。所以在图形显示时会在正弦波形后面添加一些没有意义的0。 4. 为了解决显示不同长度的一维数组,需要建立一个簇数组。方法是用“捆绑”函数将一维数组打包为一个簇,然后用创建数组函数建立一个簇数组,由于每组数据是一个簇,这样就可以解决显示不同长度的一维数组。 程序框图如图所示:运行结果如图:XY图以上介绍的两种波形显示器:波形图表和波形图只能描绘样点均匀分布的单值函数变化曲线,因为它们的X轴只是表示时间先后,而且是单调均匀的。要想描绘Y与X的函数关系,就需要用XY图。XY图形就是通常意义上的笛卡尔图形,描绘XY图首先需要两个数组X和Y,分别对应于图形的X轴和Y轴,并且需要两个数组打包构成一个簇,X轴在上,Y轴在下。下面通过两个例子来说明XY图的一般用法。XY图位于控件新式图形XY图,如图:例一:应用XY图显示里萨如图形。首先简单介绍一下构成里萨如图形的原理,如果知道X和Y方向的两个数组分别按正弦规律变化(假设其数据点数,幅值和频率都相同),如果它们的相位相同,则应用XY图描绘出的里萨如图形是一条45的斜线;当它们之间的相位差等于90时为圆;大部分情况都是椭圆。1. 新建一个VI,在前面板上放置一个XY图,调整它的边框为合适大小,同时放置一个数值输入控件“相位差”。 2. 切换到程序框图,添加两个正弦波函数放置到程序框图上。将“相位差”输入控件与第二个正弦波函数的“相位输入”端口相连,默认的相位是0。 3. 在簇函数子模板上选择“捆绑”函数,将两个正弦信号打包为一个簇,第一个数组作为X轴的数据,第二个数组作为Y轴的数据,簇的输出与XY图相连。如图: 例二:用XY图描绘同心圆1. 新建一个VI,在前面板上放置一个XY图,使曲线图例显示两条曲线标识。 2. 在程序框图上放置一个For循环,给计数端子赋值为360,添加正弦函数和余弦函数,它们位于函数数学基本与特殊函数三角函数正弦,余弦。 3. 选择“捆绑”打包函数,将每次循环产生的一对正弦值和余弦值攒成一个簇,循环结束后将这360个簇组成一个簇函数。 4. 因为XY图的显示机制决定了它的输入必须是簇,所以要再用一次“捆绑”打包函数将两个簇数组转换为簇,最后再用“创建数组”函数组成一个簇数组。程序框图如图: 运行结果如图:Labview同时还为我们提供了另外一种XY图,就是Express XY图切换到程序框图时,我们

温馨提示

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

评论

0/150

提交评论