基于LabVIEW的虚拟仪器设计实验.docx
- 文档编号:8035680
- 上传时间:2023-05-12
- 格式:DOCX
- 页数:22
- 大小:829.18KB
基于LabVIEW的虚拟仪器设计实验.docx
《基于LabVIEW的虚拟仪器设计实验.docx》由会员分享,可在线阅读,更多相关《基于LabVIEW的虚拟仪器设计实验.docx(22页珍藏版)》请在冰点文库上搜索。
基于LabVIEW的虚拟仪器设计实验
基于LabVIEW的虚拟仪器设计实验
张巧梅专业:
电子信息工程
摘要:
随着电子技术、计算机技术的高速发展及其在电子测量技术与仪器领域中的应用,新的测试理论、方法以及新的仪器结构不断出现,虚拟仪器也随之出现并得到了很大的发展。
目前在这一领域内,使用较为广泛的计算机语言是美国NI公司的LabVIEW。
LabVIEW(LaboratoryVirtualinstrumentEngineeringWorkbench)是一种图形化的编程语言开发环境,LabVIEW也是一种通用编程系统,具有各种各样、功能强大的函数库,包括数据采集、GPIB、串行仪器控制、数据分析、数据显示及数据存储,甚至还有目前十分热门的网络功能,是一个功能强大且灵活的软件。
LabVIEW也有完善的仿真、调试工具,如设置断点、单步等,其动态连续跟踪方式,可以连续、动态地观察程序中的数据及其变化情况,并且LabVIEW与其它计算机语言相比,有一个特别重要的不同点:
其它计算机语言都是采用基于文本的语言产生代码行,而LabVIEW采用图形化编程语言--G语言。
关键词LabVIEW软件虚拟仪器实验设计
Abstract:
Withtheelectronictechnology,computertechnology'srapiddevelopmentinelectronicmeasurementandinstrumentfieldofapplicationoftestingnewtheories,Virtualinstrumenthasemergedandobtainedverybigdevelopment.Nowinthisfield,UsingawiderangeofcomputerlanguageistheNIcompanyLabVIEW.LabVIEWisakindofgraphicalprogramminglanguage,ofthedevelopmentenvironment.LabVIEW
alsoisakindofcommonprogrammingsystem,Withvariousand
powerfulfunction,Includingdataacquisition,GPIB,Serialinstrumentcontrol,Dataanalysis,Datadisplayanddatastorage,Evennow
verypopularnetworkfunction,Isapowerfulandflexiblesoftware.
LabVIEWalsohavesimulationandDebuggingtools.IfsetbreakpointandSingle-stepetc.Thedynamiccontinuosly,Cancontinuouslyand
dynamicobservationsofthedataandprograms.Andwithother
computerlanguageLabVIEWhaveaparticularlyimportantdifference:
Othercomputerlanguageisbasedonthetextofthelanguagecode,
butLabVIEWusinggraphicalprogramminglanguage-Glanguage.
Keywords:
LabVIEWSoftwareVirtualinstrumentExperiment
引言
虚拟仪器是基于计算机的软硬件测试平台,它可代替传统的测量仪器,如示波器,逻辑分析仪,信号发生器,频谱分析仪等;可集成于自动控制,工业控制系统;可自由构建成专有仪器系统。
它由计算机,应用软件和仪器硬件组成。
无论哪种虚拟仪器系统,都是将仪器硬件搭载到笔记本电脑,台式PC或工作站等各种计算机平台(甚至可以是掌上电脑)加上应用软件而构成的。
虚拟仪器的起源可以追溯到20世纪70年代,那时计算机测控系统在国防、航天等领域已经有了相当的发展。
PC机出现以后,仪器级的计算机化成为可能,甚至在Microsoft公司的Windows诞生之前,NI公司已经在Macintosh计算机上推出了LabVIEW2.0以前的版本。
对虚拟仪器和LabVIEW长期、系统、有效的研究开发使得该公司成为业界公认的权威。
目前LabVIEW的最新版本为LabVIEW2009,LabVIEW2009为多线程功能添加了更多特性,这种特性在1998年的版本5中被初次引入。
使用LabVIEW软件,用户可以借助于它提供的软件环境,该环境由于其数据流编程特性、LabVIEWReal-Time工具对嵌入式平台开发的多核支持,以及自上而下的为多核而设计的软件层次,是进行并行编程的首选。
1虚拟仪器系统概述
1.1虚拟仪器概念
虚拟仪器(VirtualInstrument,缩写为VI)是基于计算机的仪器,是将仪器装入计算机,以通用的计算机硬件及操作系统为依托,实现各种仪器功能。
1.2虚拟仪器的特点
尽可能采用了通用的硬件,各种仪器的差异主要是软件。
可充分发挥计算机的能力,有强大的数据处理功能,可以创造出功能更强的仪器。
用户可以根据自己的需要定义和制造各种仪器。
1.3虚拟仪器的分类
(1)PC总线——插卡型虚拟仪器。
(2)并行口式虚拟仪器。
(3)GBIB总线方式的虚拟仪器。
(4)VXI总线方式虚拟仪器。
(5)PXI总线方式虚拟仪器。
1.4虚拟仪器的软件开发环境
虚拟仪器实际上是一个按照仪器需求组织的数据采集系统。
虚拟仪器的研究中涉及的基础理论主要有计算机数据采集和数字信号处理。
目前在这一领域内,使用较为广泛的计算机语言是美国NI公司的LabVIEW。
2图形化编程语言LabVIEW
2.1LabVIEW概述
LabVIEW是一种程序开发环境,由美国国家仪器(NI)公司研制开发的,类似于C和BASIC开发环境,但是LabVIEW与其他计算机语言的显著区别是:
其他计算机语言都是采用基于文本的语言产生代码,而LabVIEW使用的是图形化编辑语言--G编写程序,产生的程序是框图的形式。
与C和BASIC一样,LabVIEW也是通用的编程系统,有一个完成任何编程任务的庞大函数库。
LabVIEW的函数库包括数据采集、GPIB、串口控制、数据分析、数据显示及数据存储,等等。
LabVIEW也有传统的程序调试工具,如设置断点、以动画方式显示数据及其子程序(子VI)的结果、单步执行等等,便于程序的调试。
LabVIEW图标如下图所示:
LabVIEW程序又称为虚拟仪器,它的表现形式和功能类似于实际的仪器;但LabVIEW程序很容易改变设置和功能。
因此,LabVIEW特别适用于实验室、多品种小批量的生产线等需要经常改变仪器和设备的参数和功能的场合,及对信号进行分析研究、传输等场合。
利用LabVIEW,可产生独立运行的可执行文件,它是一个真正的32位编译器。
像许多重要的软件一样,LabVIEW提供了Windows、UNIX、Linux、Macintosh的多种版本。
它主要的方便就是,一个硬件的情况下,可以通过改变软件,就可以实现不同的仪器仪表的功能,非常方便,是相当于软件即硬件!
现在的图形化主要是上层的系统,国内现在已经开发出图形化的单片机编程系统(支持32位的嵌入式系统,并且可以扩展的)。
2.2LabVIEW的使用
LabVIEW作为目前国际上唯一的编译型图形化编程语言,把复杂,繁琐,费时的语言编程简化成用菜单或图标提示的方法选择功能,使用线条把各种功能连接起来的简单图形编程方式。
LabVIEW中编写的框图程序,很接近程序流程图,因此只要把程序流程图画好了,程序也就差不多变好了。
LabVIEW中的程序查错不需要先编译,若存在语法错误,LabVIEW会马上告诉用户。
只要用鼠标轻轻的点两三下,用户就可以快捷的查到错误的类型,原因以及错误的准确位置,这个特性在程序较大的情况下特别方便。
LabVIEW中的程序调试方法同样令人称道。
程序测试的数据探针工具最具典型性。
用户可以在程序调试运行的时候,在程序的任意位置插入任意多的探针,检查任意一个中间结果。
增加或取消一个数据探针,只需要轻轻的点两下鼠标及行了。
同传统的编程语言相比,采用LabVIEW图形编程方式可以节省大约80%的程序开发时间,并且其运行速度几乎不受影响。
处理具有其他语言所提供的常规函数功能外,LabVIEW中还集成了大量的生成图形界面的模板,丰富实用的数值分析,数字信号处理功能,以及多种硬件设备驱动功能。
3LabVIEW虚拟仪器实验
3.1一个虚拟温度报警器
3.1.1此实验的前面板设置
(1)首先新建一个VI,打开程序的前面板,从控件选板的“图形”子选板中选取“系统表格”对象,并放置在前面板的适当位置。
(2)在前面板的控件选板中选择所需的输入控件和布尔控件,放置在前面板适当的位置。
前面板设置如下图所示:
3.1.2此实验的程序框设置
(1)打开程序框图,从函数选板中的“编程”>>“函数”子选板中选取“Whlie循环”并在程序框中拖出一个适当大小的方框。
以下为“Whlie循环”的使用实例:
演示While循环的使用以及移位寄存器和While循环的连用。
实验前面板设置如下图所示:
程序面板设计如下图所示:
其中用到了移位寄存器,下面简绍移位寄存器的有关知识:
移位寄存器的功能是把当前循环完成时的某个数据传递给下一个循环开始。
移位寄存器的添加可以通过在循环结构的左边框或右边框上弹出的快捷菜单获得,在其中选择添加移位寄存器。
右端子在每次完成一次循环后存储数据,移位寄存器将上次循环的存储数据在下次循环开始时移动到左端子上,移位寄存器可以存储任何类型的数据类型,但是连接到同一个寄存器端子上的数据必须是同一种类型,移位寄存器的数据类型与第一个连接到其端子之一的对象数据类型相同。
在使用移位寄存器时应注意初始值问题,如果不给移位寄存器指定明确的初始值,则左端子将在对其所在循环调用之间保留数据,当多次调用包含循环结构的子VI时会出现这种情况,如果对此情况不加考虑,可能引起错误的程序逻辑。
一般情况下应为左端子明确提供初始值,以免出错,但在某些场合,利用一次特殊性也可以实现特殊的程序功能。
“While循环的使用以及移位寄存器和While循环的连用”的演示结果如下图所示:
(2)从函数选板中的“编程”>>“结构”子选板中选取“条件结构”,并在程序框中拖出一个适当大小的方框。
“条件结构”如下图所示:
图框中左边的数据端口是条件选择端口,通过其中的值选择到底哪个子图形代码框被执行,这个默认的是布尔型,可以改变为其他类型,在改变为数据类型是考虑的一点是:
如果调节结构的选择端口最初接受的是数字输入,那么代码中可能从在n个分支,当改变为布尔型时,分支0和1自动变为假和真,而其他分支并没有丢失,在条件结构执行前,一定要明确删除这些多余的分支,以免出错。
顶端是选择器标签,里面有所有可以被选择的条件,两旁的按钮分别为增量按钮和减量按钮。
选择器标签的个数可以根据实际来确定,在选择器标签上选择在前面添加分支或者在后面添加分支,就可以增加选择器标签的个数。
在选择器标签中可以输入单个值或数值列表和范围。
“条件结构”的使用实例:
“报警计数器”原理图如下图所示:
结果演示如下图所示:
(3)打开程序框图,从函数选板中的“编程”>>“结构”子选板中选取“事件结构”并在程序框中拖出一个适当大小的方框。
“事件结构”如下图所示:
事件结构是一种多选择结构,能同时相应多个事件。
事件结构由超时端子,事件结构节点和事件选择标签组成:
超时端子:
用于设定事件结构在等待指定事件发生时的超时时间,以毫秒为单位。
当值为-1时,事件结构处于永远等待状态,直到指定的事件发生为止。
当值为一个大于零的整数时,事件结构会等待相应的时间,当事件在指定的时间内发生时,事件接受并影响该事件,若超过指定的事件,事件没有发生,则事件会停止执行,并返回一个超时事件。
事件结构节点有若干个事件数据端子组成,增减数据端子可通过拖拉事件结构节点来进行,也可以在事件结构节点上右击选择添加和删除元素来进行。
事件选择标签用于标示当前显示的子框图所处理的事件源。
事件结构的工作原理就像具有内置等待通知函数的条件结构。
事件结构可包含多个分支,一个分支即一个独立的事件处理程序。
一个分支配置可处理一个或多个事件,但每次只能发生这些事件中的一个事件。
一个事件处理完毕后,事件结构的执行亦告完成。
事件结构并不通过循环来处理多个事件。
与“等待通知”
函数相同,事件结构也会在等待事件通知的过程中超时。
发生这种情况时,将制定特定的超时分支。
与条件结构一样,事件结构也支持隧道。
但在默认状态下,无需为每个分支中的事件结构输出隧道连线。
所有为连线的隧道的数据类型将使用默认值。
右击点击隧道,从快捷菜单中取消选择未连线时使用的默认可恢复为默认的条件结构行为,即所有条件结构的隧道必须要连线。
事件结构能响应的事件类型有两种:
通知事件和过滤事件。
(4)打开程序框图,从函数选板中的“编程”>>“对话框与用户界面”子选板中选取“注册事件”并在程序框中拖出一个适当大小的方框。
“事件结构”如下图所示:
事件注册引用句柄:
是对“注册事件”函数创建的已有事件注册的引用。
错误输入:
表明VI或函数运行前发生的错误,默认值为无错误。
如错误发生在VI或函数运行之前,VI或函数将把错误输入值传递至错误输出。
如在VI或函数运行前没有发生错误,VI或函数将正常运行。
如在VI函数运行时发生错误,VI或函数将正常运行并在错误输出中设置自身的错误状态。
错误输入和错误输出用于检查错误并通过将一个将节点的错误输出与另一个节点的错误输入连线指定执行顺序。
事件源:
是对应用程序,VI,控件或用户事件的引用。
必须是对本地对象的引用。
不能将引用连线至远程对象。
如将引用句柄数组或簇连线至输入端,LabVIEW将为事件注册所有的数组或簇元素。
事件注册引用句柄输出:
返回对新建或已有事件注册的引用。
错误输出:
包含错误信息,如错误输入表明在VI或函数在运行前已发生错误,错误输出将包含相同的错误信息,否则,表明VI或函数中出现的错误装态。
右击单击错误输出的前面板显示控件,从快捷菜单中选择解释错误可以获得更多关于该错误的信息。
(5)打开程序框图,从函数选板中的“编程”>>“对话框与用户界面”子选板中选取“取消注册事件”如下图所示:
事件注册引用句柄:
是对“注册事件”函数创建的已有事件注册的引用。
错误输出:
包含错误信息,如错误输入表明在VI或函数在运行前已发生错误,错误输出将包含相同的错误信息,否则,表明VI或函数中出现的错误状态。
右击单击错误输出的前面板显示控件,从快捷菜单中选择解释错误可以获得更多关于该错误的信息。
(6)打开程序框图,从函数选板中的“编程”>>“对话框与用户界面”子选板中选取“销毁用户事件”如下图所示:
用户事件:
是由“创建用户事件”函数创建的用户事件引用句柄。
错误输入:
表明VI或函数运行前发生的错误,默认值为无错误。
如错误发生在VI或函数运行之前,VI或函数将把错误输入值传递至错误输出。
如在VI或函数运行前没有发生错误,VI或函数将正常运行。
如在VI函数运行时发生错误,VI或函数将正常运行并在错误输出中设置自身的错误状态。
错误输入和错误输出用于检查错误并通过将一个节点的错误输出与另一个节点的错误输入连线指定执行顺序。
错误输出:
包含错误信息,如错误输入表明在VI或函数在运行前已发生错误,错误输出将包含相同的错误信息,否则,表明VI或函数中出现的错误状态。
右击单击错误输出的前面板显示控件,从快捷菜单中选择解释错误可以获得更多关于该错误的信息。
(7)再在程序框中放入其他一些所需的基本的函数控件。
程序框图如下图所示:
3.1.3结果演示
虚拟温度报警演示结果如下图所示:
此实验设置了一个固定温度的温度计,和一个用来测量温度的温度计,测量温度计在程序框中由“0-1的随机数”控件和数值100相乘来控制。
当温度超过80度时,报警灯就闪亮一次并且在报警历史框中记录一次报警时间和超出温度值。
当查看了报警历史后,此程序还能通过按“清除历史报警”按钮来清除报警历史。
还能显示总的报警次数。
通过观察演示,证明此设计达到了预期的目标,运行结果真确合理。
3.2一个虚拟示波器
3.2.1前面板设置
(1)首先新建一个VI,打开程序的前面板,从控件选板的“图形”子选板中选取“波形图”对象,如下图所示:
并放置在前面板的适当位置。
“波形图”如下图所示:
波形图用于将测量值显示为一条或多条曲线。
波形图仅绘制单值函数,即在y=f(x)中,每个点沿x轴均匀分布。
波形图可显示包含任意个数据点的曲线。
波形图接受多种数据类型,从而最大程度的降低了数据在显示为图形前进行类型转化的工作量。
波形图显示波形是以成批数据一次刷新方式进行的,数据输入基本形式是数据数组(一维或二维数组),簇或波形数据。
以下是一个波形图的演示示例:
前面板设置如下图所示:
使用簇的捆绑函数来将需要延迟的时间,间隔采样时间及原始输出波形捆绑在一起。
需要注意的是在默认情况下,X轴的标度总是根据起始位置,步长及数据数组的长度自动适应调整的。
并且数据捆绑的顺序不能错,必须以起始位置,步长,数据数组的顺序进行。
在Y轴上,如果配置为默认设置,Y轴将根据所有显示数据的最大值最小值之间的范围进行自动标度,一般情况来说,默认设置可满足大多数的应用。
LabVIEW在构建一个二维数组时,如两个数组的长度不一致,整个数组的存储长度将以较长的那个数组的长度为准,而数据较少的那组在所有的数据存储完后,余下的空间将被0填充。
应当注意的是,如果不同曲线间的数据量或数据的大小差距太大,并不适合用一个波形图来显示。
因为波形图总是要在一个屏内把一个数组的数据完全显示出来,如果一维数据与另一个数组数据相差太大,长度长的波形将会被压缩,影响显示效果。
除了数组和簇,波形图还可以显示波形数据。
波形数据是LabVIEW的一种数据类型,本质上还是簇。
程序框图如下图所示:
此程序演示了和Chart图表类似的波形控件在不同数据输入情况下不同的显示效果。
其中有一维和二维数组输入。
波形图显示的每条波形,其数据都必须是一个一维数组,这是波形图的特点,所以显示n条波形就必须有n组数据。
置于这些数据数组如何组织,用户可以根据不同的需要来确定。
演示结果如下图所示:
波形图与波形图表的不同之处是:
波形图标保存了旧的数据,所保存旧数据的长度可以自行指定。
新传递给波形图的数据被接续在旧数据的后面,这样就可以在保持一部分旧数据显示的同时显示新数据。
也可以把图形图表的这种工作方式想象为先进先出的队列,新数据带来之后,会把同样长度的旧数据从队列中挤出去。
波形图和波形图表显示的运行结果是一样的,但是实现方法和过程不同。
波形图在循环之外,每个数据都产生之后,跳出循环,然后一次显示出整个曲线。
波形图表产生在循环内,每得到一个数据点,就立刻显示一个。
可以把波形图的X轴和Y轴都设置为自动调整刻度区间以反映曲线数据的取值区间。
使用右键快捷菜单中X标尺或Y标尺子菜单中的自动调整X标尺或自动调整Y标尺选项,就可以激活或取消自动调整坐标刻度区间的功能。
需要注意的是,使用自动调整坐标刻度区间的功能会使图表和图形的更新速度变的较慢。
在X标尺和Y标尺的子菜单中都有“格式化...”这一选项。
选定该选项,弹出属性对话框。
在对话框中就可以对波形图的各种组件进行设置。
属性对话框如下图所示:
在属性对话框中可以单独修改X轴和Y轴的特性。
包括以下选择:
外光标签用于指明对象中那些元素是可视的,它提供了一种选择显示图形选项板,曲线图注,滚动条,刻度图注及光标图注的方法。
也可以通过在图形上弹出快捷菜单,在显示项的下拉菜单中选择这些项。
在格式与精度区域中可以改变数字对象的格式与精度。
可以改变坐标轴刻度的数字精度和坐标轴刻度的符号,相关选项包括浮点型,科学记数法,国际单位制符号,十六进制,绝对时间和相对时间,这些选择都依赖于对格式的选择。
图线标签用于配置波形图中曲线的外观,可以选择线性,点标记,刻度。
标尺标签可以设置波形图的坐标刻度和栅格的形式。
栅格类型和颜色用于控制栅格线,包括无栅格,仅在主刻度标记出有栅格以及主次刻度处有栅格。
还可以指明坐标是线性坐标还是对数坐标。
游标标签用于在波形图中添加光标和配置光标的外观。
(2)在前面板的控件选板中选择所需的输入控件和布尔控件,放置在前面板适当的位置。
在从控件选板的“Express”子选板中选取“旋钮”对象,所在位置如下图所示:
前面板设置如下图所示:
3.2.2函数程序框图
(1)打开程序框图,从函数选板中的“编程”>>“波形”>>“模拟波形”>>“波形生成”子选板中选取“基本函数发生器”,把“基本函数发生器”拖到程序框图中即可。
“基本函数发生器”如下图所示:
偏移量:
指定信号的直流偏移量,默认值为0.0
重置信号:
如值为TURE,相位将被重置为相位控件的值,时间标示将被重置为0。
默认值为FALSE.
信号类型:
只要生成的波形的类型。
频率:
波形频率,以HZ为单位,默认值为10。
幅值:
是指波形的幅值。
幅值也是峰值电压,默认值为1.0。
相位:
波形的初始相位,以度为单位,默认值为0。
采样信息:
Fs是每秒采样率,默认值为1000,#s是波形的采样数,默认值为1000。
方波占空比:
方波在一个周期内高电平所占时间的百分比。
仅当信号类型是方波时,VI使用该参数。
默认值为50。
信号输出:
生成的波形
VI会记住上个生成波形的时间标识,并从这一点开始继续递增时间标识。
该函数将波形类型,采样数目,相位输入和即将生成的波形频率(以Hz为单位)作为输入端。
(2)打开程序框图,从函数选板中的“编程”>>“函数”子选板中选取“Whlie循环”,并在程序框中拖出一个适当大小的方框。
函数程序框图如下图所示:
在此程序框图中用到了Whlie循环,Whlie循环无需指定循环的次数,,当且仅当满足循环退出条件时,才退出循环,所以当用户不知道循环要运行的次数时,While循环就显的很重要。
While循环有两个端子:
计数接线端(输出端)和条件接线端(输入端)。
计数接线端记录循环已经执行的次数,条件接线端分:
条件为真是继续进行和条件为真时停止执行。
3.2.3.演示结果
一个简单虚拟示波器的演示结果:
当输入为正弦波是:
当输入信号为方波时:
当输入信号为三角波时:
当输入信号为锯齿波时:
此实验设计了一个简单的虚拟示波器,有旋钮控制采样点数,采样频率以及信号幅度,信号频率。
由一个下拉列表控制波形输入,波形输入分别为:
正弦波,方波,三角波以及锯齿波。
把采样点数和采样频率通过“捆绑”函数输入到“基本函数发生器”的采样信息端。
不知道循环的次数,所以本实验采用While循环,条件接线端为条件为真时停止执行。
演示本实验时需要合适的采样频率和采样点数,只有采样频率和采样点数合适才能观察到清晰的演示结果。
当在下拉列表中选择波形时,模拟显示屏就显示对应的波形。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 LabVIEW 虚拟仪器 设计 实验
文档标签
- 基于LabVIEW虚拟仪器设计
- 基于LabVIEW虚拟仪器平台
- 基于LABVIEW虚拟频谱
- 基于VRMLJava虚拟
- 基于虚拟仪器电子秤设计
- 基于LabVIEW虚拟网络
- LabVIEW虚拟仪器设计实验
- 基于labview虚拟仪器平台
- 虚拟仪器基于labview模拟
- 毕业设计基于LABVIEW虚拟
- 虚拟仪器LABVIEW作业
- 基于Labview虚拟仪器计算器
- 基于LabVIEW虚拟频谱
- 基于LABVIEW虚拟函数
- 基于LabVIEW虚拟音频
- LABVIEW入门实验设计
- 基于Labview声卡虚拟
- 虚拟仪器课程设计基于labview
- 基于labview声卡虚拟
- 基于虚拟仪器记录仪设计
- 基于LabVIEW科学计算器
- labview计算器设计步骤