首页 labview

labview

举报
开通vip

labviewnullLabview简介 一 虚拟仪器的概念 Labview简介 一 虚拟仪器的概念 虚拟仪器(Virtual Instrument,缩写为VI)是基于计算机的仪器,是将仪器装入计算机,以通用的计算机硬件及操作系统为依托,实现各种仪器功能。虚拟仪器和传统仪器的基本结构的比较: null           null 与传统仪器相比,虚拟仪器在智能化程序、处理能力、性能价格比、可操作性等方面都具有明显的技术优势,具体表现为: (1)智能化程度高,处理能力强。虚拟仪器的处理能力和智能化程度主要取决于仪器软件水...

labview
nullLabview简介 一 虚拟仪器的概念 Labview简介 一 虚拟仪器的概念 虚拟仪器(Virtual Instrument,缩写为VI)是基于计算机的仪器,是将仪器装入计算机,以通用的计算机硬件及操作系统为依托,实现各种仪器功能。虚拟仪器和传统仪器的基本结构的比较: null           null 与传统仪器相比,虚拟仪器在智能化程序、处理能力、性能价格比、可操作性等方面都具有明显的技术优势,具体表现为: (1)智能化程度高,处理能力强。虚拟仪器的处理能力和智能化程度主要取决于仪器软件水平。用户完全可以根据实际应用需求,将先进的信号处理算法、人工智能技术和专家系统应用于仪器 设计 领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计 与集成,从而将智能仪器水平提高到一个新的层次。 null(3)可操作性强。虚拟仪器面板可由用户定义,针对不同应用可以设计不同的操作显示界面。使用计算机的多媒体处理能力可以使仪器操作变得更加直观、简便、易于理解,测量结果可以直接进入数据库系统或通过网络发送。测量完后还可打印,显示所需的 报表 企业所得税申报表下载财务会计报表下载斯维尔报表下载外贸周报表下载关联申报表下载 或曲线,这些都使得仪器的可操作性大大提高。(2)复用性强,系统费用低。应用虚拟仪器思想,用相同的基本硬件可构造多种不同功能的测试分析仪器,如同一个高速数字采样器,可设计出数字示波器、逻辑分析仪、计数器等多种仪器。这样形成的测试仪器系统功能更灵活、系统费用更低。通过与计算机网络连接,还可实现虚拟仪器的分布式共享,更好地发挥仪器的使用价值。 null传统仪器虚拟仪器待测模拟信号信号处理前置预处理数据显示信号输入硬件电子系统A/D转换数字信号处理数据显示信号产生信号输出手动/模拟信号控制待测模拟信号输出模拟信号D/A转换计算机数字信号控制数字信号产生输出模拟信号Classical InstrumentVirtual Instrument(VI)计算机DAQ卡 利用计算机强大、高效的数字信号处理和控制能力,配合高速高精度A/D、D/A转换卡,实现与传统专用仪器相同乃至更强的功能,组成虚拟仪器前置预处理对比应用举例应用举例一、工业测控 二、时序分析 三、系统仿真 四、远程测量null化工生产流量测控 null滤波器频响分析null汽车引擎震动分析null马路路灯照度模拟虚拟仪器的主要特点有:虚拟仪器的主要特点有:尽可能采用了通用的硬件,各种仪器的差异主要是软件; 可充分发挥计算机的能力,有强大的数据处理功能,可以创造出功能更强的仪器; 用户可以根据自己的需要定义和制造各种仪器。 虚拟仪器实际上是一个按照仪器需求组织的数据采集系统。虚拟仪器的研究中涉及的基础理论主要有计算机数据采集和数字信号处理。目前在这一领域内,使用较为广泛的计算机语言是美国NI公司的LabVIEW。二 LabVIEW简单介绍二 LabVIEW简单介绍LabVIEW(Laboratory Virtual instrument Engineering)是美国国家仪器公司(National Instruments,NI)开发的一种图形化的编程语言。图形化的程序语言,又称为“G”语言。使用这种语言编程时,基本上不写程序代码,取而代之的是流程图。它尽可能利用了技术人员、科学家、工程师所熟悉的术语、图标和概念,使编程简单直观。null用LabVIEW做的示波器,与真实的示波器有着相同的功能 LabVIEW和虚拟仪器在物理实验中的应用LabVIEW和虚拟仪器在物理实验中的应用对学生进行LabVIEW和虚拟仪器的基本知识和技术的训练,有助于他们在将来的工作中掌握运用。 将部分实验的传统测量方法改进为计算机自动化测量分析,使实验的效率大大提高,物理内容更加突出。 通过适当配置接口,可以充分综合利用实验室现有的各种数字仪器仪表,以及用C++等系统开发的计算机数据测控系统。三,基础知识学习三,基础知识学习LabVIEW程序构成 控制选项板功能介绍 函数选项板功能介绍 工具选项板功能介绍 数据线、数据流和数据类型 控制量与显示量1.LabVIEW程序构成:1.LabVIEW程序构成:前面板窗口双击LabVIEW快捷图标,出现启动画面,单击其中的New VI,打开一个新的LabVIEW程序,可以看到它由前面板(panel)和流程图(diagram)组成。前面板窗口是图形用户界面,也就是VI的虚拟仪器面板,相当于实际仪器的控制面板,它将用户和程序联系起来,是程序运行时显示和输入的交互窗口。如图所示的示波器的前面板,上有用户输入和显示输出两类对象,具体表现有开关、旋钮、图形以及其他控制(control)和显示对象(indicator)。 null流程图窗口流程图窗口提供VI的图形化源程序,相当于实际仪器箱内的东西,在流程图中程序员用图形语言编写LabVIEW程序源代码,以控制和操纵定义在前面板上的输入和输出功能。如图×所示的示波器流程图,上面包括前面板上的控件的连线端子,还有一些前面板上没有,但编程必须有的东西,例如函数、结构和连线等。 null图×:示波器流程图图×:示波器流程图下面介绍工具条上常用按钮的功能(其他按钮功能见附录)下面介绍工具条上常用按钮的功能(其他按钮功能见附录) :运行(Run),如果VI有编译错误,此按钮将变成 。 :连续运行(Run Continuously)。 :异常中止执行(Abort Execution)。:加亮执行(Hightlight Execution),只 有流程图中有。进入加亮执行时,变成此时,流程图中的数据变亮,同时显示VI执 行中的一些中间数据。 提示:使用了 会使LEBVIEW占用大量CPU,。2.控制选项板功能介绍: 2.控制选项板功能介绍: 只能在前面板窗口中使用,通过前面板窗口Windows→Show Controls Palette打开,也可以在前面板窗口中空白处单击右键打开。该选项板用来给前面板设置各种所需的输出显示对象和输入控制对象。模块图标右上角有的表示有子选项板,单击模块图标可以访问子选项板。 使计算机其他操作变慢。建议一般不要使用 。null :数值量(Numeric),数值的控制和显示。包含数字式、指针式显示表盘及各种输入框。(详细) :布尔量(Boolean),逻辑数值的控制和显示。 包含各种布尔开关、按钮以及指示灯等。(详细) :数组和簇(Array & Cluster),数组和簇的 控制和显示。 :图形(Graph),显示数据结果的趋势图和曲 线图。 3.函数选项板功能介绍: 3.函数选项板功能介绍: 只能在流程图窗口中使用,通过流程图窗口Window→Show Functions Palette打开,也可以在路程图面板中空白处单击右键打开。函数选项板提供创建流程图的工具。其与控制选项板基本相同,模块图标右上角有的表示有子选项板,单击模块图标可以访问子选项板。null :结构(Structure),包括程序控制结构命 令,例如循环控制等,以及全局变量和局部变量 :数组(Array),包括数组运算函数、数组转 换函数,以及常数数组等。 :比较(Comperation),包括各种比较运算函 数,如大于、小于、等于。 :数据采集(Data Acquisition),包括数据采 集硬件的驱动,以及信号调理所需的各种功能模块。 :信号分析(Analysis),信号发生、时域及频 域分析功能模块及数学工具。 null4.工具选项板功能介绍: 提示:LabVIEW中,你可以随时获得帮助。用Help→Show Context Help打开帮助窗口(Context Help)快捷键为Ctrl+H,当把鼠标放到任何感兴趣的模块对象上时,就会在帮助窗口中显示相应的帮助信息。提示:在任何一个控制或是函数模块上单击右键,都会出现弹出菜单,通过弹出菜单可以方便地对模块进行编辑。 通过Windows→Show Tools Palette打开和关闭。它提供了各种用于创建、修改和调试VI程序的工具。当从选项板内选择了任一种工具后,鼠标箭头就会变成该工具相应的形状。 下面介绍常用工具按钮的功能(其它按钮功能见附录):下面介绍常用工具按钮的功能(其它按钮功能见附录): :操作(Operate Value),用于操作前面板的控制和显示。使用它向数字或字符串控制中键入值时,工具会变成标签工具。 :选择(Position/Size/Select),用于选择、移动或改变对象的大小。当它用于改变对象的连框大小时,会变成相应形状。 :标签(Edit Text),用于输入标签文本或者创建自由标签。当创建自由标签时它会变成相应形状。 :连线(Connect Wire),用于在流程图程序上连接对象。如果联机帮助的窗口被打开时,把该工具放在任一条连线上,就会显示相应的数据类型。 5.数据线、数据流和数据类型5.数据线、数据流和数据类型数据流工作方式: 在流程图上,模块接口之间的连线就是数据线。数据通过数据线在模块之间传递。LabVIEW不像一般语言按照语句的顺序一行一行的执行,它是依靠在数据线上传递的数据来控制程序的,只有当模块要求的输入数据完全到达这个模块时才能执行,然后向其所有的输出端口输出数据,这些数据再沿数据线流向其它模块。这就是LabVIEW的数据流工作方式。前面介绍过,可以通过加亮执行 观察它的数据流是如何工作的。 null当你连线时,LabVIEW会提示该接口的名称,只能在同一数据类型的端口之间连线,不同类型的数据连线的颜色和形状也不同。错误的连线会表示成黑色虚线,这时你应将连线工具移动到它上面,LabVIEW会给出两端的数据类型信息,你可以检查并改正。添加新的模块和连线可能会对已设置好的部分有影响,而且原来的错误连线也可能对新添加的连线有影响。数据线:null数据类型:LabVIEW的基本数据类型有五种:Numeric(数值),Boolean(逻辑),String(字符串)、Enum(枚举)。还有一种叫Ring(环型枚举),和Enum很类似,可以循环枚举。Numeric类型的数据按精度有分若干种类型,与标准C++的数据类型基本是一致的。其代表符号直观的表现其类型(如表所示)。可以在数值对象上点右键,通过弹出菜单中Representation修改。null提示:在流程图上,你会看到不同颜色的模块,不同颜色代表不同的数据类型,其定义与连线一致。6.控制量与显示量6.控制量与显示量在LabVIEW中,一个数字量(numeric)、布尔量(boolean)、字符量(string)等都有控制量(control)和显示量(indicator)的区别。 控制量:用于控制程序,它相当于仪器上的控制按钮,如开关、旋钮等。 显示量:用于显示程序运行的结果,它相当于仪器上的显示部件,如显示屏、指示灯等。 在流程图窗口中,我们可以看到控制部件的外框比较粗,显示部件的外框比较细,要实现控制量与显示量之间的转换,只需在流程图上的模块上点击右键,选择change to indicator(或者change to control)就可以了。四 几个要用到的模板四 几个要用到的模板组和簇(Array & Cluster)组和簇(Array & Cluster) 组:同类型元素的集合。一个组可以是一维或者多维,每维最多可有231个元素。可以通过组索引访问其中的每个元素。和C语言一样,索引的范围是0到n-1,组中元素的个数为n,第一个元素的索引号为0,第二个是1,依此类推。组的元素可以是数据、字符串等,但所有元素的数据类型必须一致。 组的建立:创建一个组有两件事要做: 建一个组的“壳”(shell),将Controls→Array&Cluster→Array模块放在前面板中(如图××所示); 在这个壳中置入组元素(数、字符串开关等)。如我们放入数,将Conrols→Numeric→Digital Control模块放在组框中.null这样一个数组就建成了,其它类型的组的建立类似,只要在步骤(2)中组框中放入你想要建的组的元素就可以了。要改变组显示元素的多少,把鼠标换成选择模式,移到组框的角上,鼠标将变成 这时,你可以任意拖动改变组。要改变组的维数,和改变数组显示元素多少的方法一样,在鼠标选择模式下移到组索引框的角上,鼠标将变成 拖动改变组的维数;也可以在组索引框上点右键,选择Add Dimension。null 簇:另一种数据类型,它的元素可以是不同类型的数据。它类似于C语言中的Stuct。使用簇结构可以把分布在流程图中各个位置的数据元素组合起来,这样可以减少连线的拥挤程度,用于错误处理。 簇的建立;与组的建立相同,同样是先建立簇的“壳”(Controls→Array&Cluster→Cluster),然后在壳中放元素,可以放不同类型的数据。需要注意的是:向簇中放置对象时,必须都是控制对象或都是显示对象,不能混在一起;簇中的数据和其放置顺序有关而和其放置的位置无关。第一个放进去的对象就是元素0,依此类推。删除其中的一个后其顺序将自动调整。 图表和图形:将数据以图形方式显示出来 图表和图形:将数据以图形方式显示出来 图表:通常Y轴为数据值,X轴为表示时间的值或数据点序号。 下面我们来看一个随机数例子: null每循环一次,随机数模块产生一个数,图表会对这些数自动编号,在图形框中显示出来,y表示数值,x表示数的序号。它保持以前的数据,并追加新的数据,使图表保持更新。 可以在图形框上点右键改变图表的性质,如在Advance→Update Mode中改变图表的更新模式;在Visible Items中选择显示标签、图例、图形模板等。同学可以自己试试其功能。 图形:与图表相似,它们的不同是:图形不能显示新追加的数据而图形可以。 我们来看一个正弦余弦波例子:null通过例子我们可以看出,图形显示的是将要显示的数据形成数组,然后一次显示出来。不能像图表那样用追加新的数据的方法来显示数据。 结构(structure)结构(structure)1. 循环结构 LabVIEW给大家提供了两种循环结构: 一个是For循环,另一个是While循环。 两个循环与大部分计算机语言中的循 环结构非常相似。二者都在Functions →Structures下。 For循环结构 如右图:N是指循环次数,i指的是循环计数,i从0执行到N-1。可以从Functions->Structures中选中For结构对象,在流程图面板上拖拉就可以将要进行循环的对象包含进去。当然也可以直接对要(或不要)进行循环的对象进行拖拉使其进入(或离开)循环结构。如果要删除循环结构直接选中按delete键即可。nullWhile循环结构 如右图:其中右边的带箭头的小 图标是用来接循环条件的,当调 节为“真”时,开始继续执行下一 次循环,为“假”时停止执行循环 条件。这里循环条件的检验是在循环体执行完时,因此循环至少执行一次。i的作用也是指示循环次数。 循环结构的数据传递 如果需要有数据在循环结构的内外传输,可以在循环体内的端子与循环体外的端子连线,这时循环体边框上出现小的黑方块(有些书上称为隧道)。在循环执行期间隧道不能进行数据传输,只能在循环结束时将最后一次循环的结果输出。所以要对每一次循环的结果进行观察我们就应该将显示端子放在循环体内部。null2. Case结构与一般机器语言中的条件语句非常相似,LabVIEW提供了Case结构。如图一左边带有问号的小方框是用来连接case结构选择端的值的,如图二图三,如果连接的是代数值则上边框之中显示的是数字,如果是逻辑型,则显示的是true or false两种条件。Case结构每次只能显示一个子图,单击上面中间的箭头显示条(或点击箭头)可以选择不同的子图。对于数值型结构只要在边框上点击右键,通过Add case就可以增加条件子图。输入输出与循环结构一样,不同的是需要在输入数值的同时输入判断条件。 null3. 顺序结构 顺序结构就是按照顺序依次执行 的结构。如右图1: 可以通过Add Frame After、Add Frame Before项生成新的标号 (对应新的一个子图)图右边的图形所示。不同的子图可以按一定顺序执行,也是每次只能显示一个子图,可以通过上边框或箭头来选择。输入输出也是用的隧道。但是隧道每次只能处理(输入或输出)一个数据源,如果顺序结构每次执行每个子图时都要向隧道输出输入数据,那么就必须是多源的数据结构。因此顺序结构的数据只有在整个结构全部执行完了以后才能输出。 例:求平方根:null4. 公式节点 公式节点是一种可以直接 在流程图中输入数学公式 并进行计算的结构,如右 图它是一个大小可变的方 框。在使用公式节点时要通过它的边框的输出输入节点传递数据,在边框上点击右键就会有Add Input 和Add Output,分别选择即可显示节点,在输入输出节点上输入变量名(注意要与公式内使用的变量一致)。 公式节点所用的操作符和功能在公式节点的帮助窗口中可以查询。 波形输入输出 :波形输入输出 :例:求平方根:【注意】:语句后面要加“;”号,而且还要注意同一变量的大小写。 LabViIEW配上NI公司的DAQ卡以及DAQ卡的驱动程序,可以完成数据的采集和输出等多种功能。LabVIEW的DAQ程序包括模拟输入、模拟输出、计数器操作、数字输入、数字输出等,我们可以在Functions面板下的Data Aquisiton中看到。在图中的6个模块下,每个模块的字模块又分成三种,顶层的是Easy VIs,中间的是Intermediate VIs,下面的是Advanced VIs。nullNI公司DAQ卡提供3个输出和16个输入,测量电压-10-10V。模拟波形输入: 简单的波形输入的模块有:单通道波形输入和多通道波形输入。它们都在Functions→Data Aquisiton→Analog Input下。 单通道波形输入 : 我们刚开始看到的示波器的例子就用到了这个模块,采集外部信号的流程图如图10所示: null设备号(Device):在NI DAQ设置工具中设定。该参数告诉LabVIEW你使用什么卡,它可以使DAQ VI自身独立于卡的类型,也就是说,如果你稍后使用了另一种卡,并且赋予它同样的设备号,你的VI程序可正常工作而无须修改。 通道号(Channel):指定数据样本的物理源。例如,一个卡有16个模拟输入通道,你就可以同时采集16组数据点。 采集点数(Number Of Samples):采集数据的总的总数,对于模拟型号,在采集时转换成数字信号。采集频率(Sample Rate):每秒采集数据的点数。null表 4 :通道及其对应的字符串多通道波形输入: 可以同时进行多个通道的输入,端口设置和单通道波形相似,只是通道控制字符串不同: null模拟波形输出:和模拟波形输入一样,简单的波形输出模块有:单通道波形输出和多通道波形输出。它们都在Functions→Data Aquisiton→Analog Output下。我们通过信号发生器的例子来了解这个模块;其流程图如图12所示:其各个端口的意义与模拟波形输入相似,具体同学们可以看LabVIEW的帮助。 简单VI的建立简单VI的建立 下面我们通过做两个简单的VI来使我们对刚才所学的知识作一个简单的运用。 伏安法测电阻null首先介绍一下实验的思路:电路图12(下页)所示:我们通过LabVIEW的输出给整个电路供电,用LabVIEW的两个输入分别测量待测电阻上的电压和标准电阻上的电压,用标准电阻上的电阻除以电阻得到电路中的电流。电压由0V开始逐渐增加5V,电压每改变一次测一组电压电流值,最后得到一个数组,线性拟合后可以得到电阻值。前面版:完成的前面板如图13所示图 13 :伏安法测电阻前面板图 null放上一个XY Graph(Controls→Graph→XY Graph),用于显示电压—电流图。将名字改成“电阻的伏安曲线图”,并将纵坐标和横坐标分别改成“电压(V)”和“电流(A)”。 放入三个控制字符串(Controls→String & Path→String Control),将名字分别改成“供电电压通道”、“测量电压通道”、“测量电流通道”。分别用于设置输出输入的通道。 null放入一个用于设置设备号的控制数、一个设定标准电阻值的控制数、一个用于设定测量间隔的控制数和一个显示测量电阻值的显示数。并分别将名字改成“设备号“、“标准电阻”、“时间间隔”和“待测电阻值”。时间间隔是用来设置改变电压和测量数据之间的时间间隔的,让电路达到平衡再测,在“时间间隔”上点右键,选择Visible Item→Unit Label,在Unit Label 上输入“s”,这样时间间隔成为一个有单位为s的量。null加入一个二维数组,把名字改成“数据”,用于显示测量的电压和电流。流程图:完成的流程图如图14所示: null根据实验思路,先输出一个电压,等到稳定后测量,在流程图中放入一个顺序结构(Functions→Structures),通过右键的Add Frame使顺序结构有四帧。 在第0帧中放入一个AO Update Channel,用于输入电压,将其Device和“设备号”相连,Channel和“供电电压通道号”相连,Value值我们以后再设置。 在第1帧中放入一个Wait,用于等待电阻上的电流达到稳定;再放入一个Covert Unit(在Numeric→Conversion下),在模块中键入“ms”,用于将s转换成ms,将Covert Unit的左边和“时间间隔”相连,右端和Wait的Milliseconds to wait相联。null在第2帧中放入两个AI Acquire Waveform(在Functions→Data Aquisiton→Analog Input下),分别用来测量标准电阻和待测电阻两端的电压,将Device和“设备号”相连,Chanal分贝和“测量电压通道”和“测量电流通道”相连,用AI Acquire Waveform测量得到的是1000个数(AI Acquire Waveform的Number of sample的默认值是1000),所以要对它们求平均值,放入两个Mean(在Functions→Mathematics→Probability And Statistics下),把两个AI Acquire Waveform的Waveform和Mean的X相连,再把标准电阻上的电压经过Mean后除以标准电阻,求出电流。 null在第3帧中放入Wait,在Wait的左端点右键,选择Create→Constant,将其值改为1000,则在测完数据1秒后再执行下一步,减少对数据测量过程的影响。 完成的顺序结构中每一帧如图15所示。上面我们只完成了测量一次的过程,我们是要逐渐改变电压来测量电阻的值。下面我们来实现改变电压的值。 null图 15 :伏安法测电阻流程图的顺序结构null显示伏安曲线:在流程图中放入一个Bundle(在Functions→Cluster下),用右键使它增加一个输入,把电压(连到For循环外面会自动形成数组)和Bunder的一个输入相连,把电流和Bundle的另一个输入相连,把Bundle的输出和电阻的伏安曲线相连。我们通过For循环来实现电压的改变,在流程图中放入一个For循环,把顺序结构放在For循环中,我们使电压从0V开始到5V,每隔0.25V测一次,把For循环的i和0.25相乘后和AO Update Channel的Value相连;把For循环的N设置为20。 null显示测量数据:在流程图放入一个Build Array(在Functions→Array下),用右键使它有两个输入,分别和电压、电流相连,把Build Array的输出和数据相连。 计算电阻值:在流程图中放入一个Liner Fit(在Functions→Mathmatics→Curve Fitting下),将电压与Liner Fit的Y Value相连,电流和Liner Fit的X Value相连,把Liner Fit的Slope和待测电阻值相连,显示电阻值。 六 练习题六 练习题同学自己设计,制作一个虚拟数字温度计,要求实现摄氏温度和华氏温度的转换。 (F=1.8T+32)null感谢季航老师的指导!01级物理二班学生:冯国星 杨永亮感谢贾宏博,王垡师兄的前期工作, 感谢一些热心朋友提供了网络资料!
本文档为【labview】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_619834
暂无简介~
格式:ppt
大小:982KB
软件:PowerPoint
页数:0
分类:
上传时间:2010-09-12
浏览量:108