LabVIEW讲义.docx
- 文档编号:14919859
- 上传时间:2023-06-28
- 格式:DOCX
- 页数:59
- 大小:976.67KB
LabVIEW讲义.docx
《LabVIEW讲义.docx》由会员分享,可在线阅读,更多相关《LabVIEW讲义.docx(59页珍藏版)》请在冰点文库上搜索。
LabVIEW讲义
第一章虚拟仪器及LabVIEW入门
1.1虚拟仪器概述
虚拟仪器(virtualinstrumention)是基于计算机的仪器。
计算机和仪器的密切结合是目前仪器发展的一个重要方向。
粗略地说这种结合有两种方式,一种是将计算机装入仪器,其典型的例子就是所谓智能化的仪器。
随着计算机功能的日益强大以及其体积的日趋缩小,这类仪器功能也越来越强大,目前已经出现含嵌入式系统的仪器。
另一种方式是将仪器装入计算机。
以通用的计算机硬件及操作系统为依托,实现各种仪器功能。
虚拟仪器主要是指这种方式。
下面的框图反映了常见的虚拟仪器方案。
虚拟仪器的主要特点有:
⏹尽可能采用了通用的硬件,各种仪器的差异主要是软件。
⏹可充分发挥计算机的能力,有强大的数据处理功能,可以创造出功能更强的仪器。
⏹用户可以根据自己的需要定义和制造各种仪器。
虚拟仪器实际上是一个按照仪器需求组织的数据采集系统。
虚拟仪器的研究中涉及的基础理论主要有计算机数据采集和数字信号处理。
目前在这一领域内,使用较为广泛的计算机语言是美国NI公司的LabVIEW。
虚拟仪器的起源可以追朔到20世纪70年代,那时计算机测控系统在国防、航天等领域已经有了相当的发展。
PC机出现以后,仪器级的计算机化成为可能,甚至在Microsoft公司的Windows诞生之前,NI公司已经在Macintosh计算机上推出了LabVIEW2.0以前的版本。
对虚拟仪器和LabVIEW长期、系统、有效的研究开发使得该公司成为业界公认的权威。
普通的PC有一些不可避免的弱点。
用它构建的虚拟仪器或计算机测试系统性能不可能太高。
目前作为计算机化仪器的一个重要发展方向是制定了VXI标准,这是一种插卡式的仪器。
每一种仪器是一个插卡,为了保证仪器的性能,又采用了较多的硬件,但这些卡式仪器本身都没有面板,其面板仍然用虚拟的方式在计算机屏幕上出现。
这些卡插入标准的VXI机箱,再与计算机相连,就组成了一个测试系统。
VXI仪器价格昂贵,目前又推出了一种较为便宜的PXI标准仪器。
虚拟仪器研究的另一个问题是各种标准仪器的互连及与计算机的连接。
目前使用较多的是IEEE488或GPIB协议。
未来的仪器也应当是网络化的。
1.2LabVIEW是什么?
LabVIEW(LaboratoryVirtualinstrumentEngineering)是一种图形化的编程语言,它广泛地被工业界、学术界和研究实验室所接受,视为一个标准的数据采集和仪器控制软件。
LabVIEW集成了与满足GPIB、VXI、RS-232和RS-485协议的硬件及数据采集卡通讯的全部功能。
它还内置了便于应用TCP/IP、ActiveX等软件标准的库函数。
这是一个功能强大且灵活的软件。
利用它可以方便地建立自己的虚拟仪器,其图形化的界面使得编程及使用过程都生动有趣。
图形化的程序语言,又称为“G”语言。
使用这种语言编程时,基本上不写程序代码,取而代之的是流程图或流程图。
它尽可能利用了技术人员、科学家、工程师所熟悉的术语、图标和概念,因此,LabVIEW是一个面向最终用户的工具。
它可以增强你构建自己的科学和工程系统的能力,提供了实现仪器编程和数据采集系统的便捷途径。
使用它进行原理研究、设计、测试并实现仪器系统时,可以大大提高工作效率。
利用LabVIEW,可产生独立运行的可执行文件,它是一个真正的32位编译器。
像许多重要的软件一样,LabVIEW提供了Windows、UNIX、Linux、Macintosh的多种版本。
1.3LabVIEW的运行机制
1.3.1 LabVIEW应用程序的构成
所有的LabVIEW应用程序,即虚拟仪器(VI),它包括前面板(frontpanel)、流程图(blockdiagram)以及图标/连结器(icon/connector)三部分。
前面板
前面板是图形用户界面,也就是VI的虚拟仪器面板,这一界面上有用户输入和显示输出两类对象,具体表现有开关、旋钮、图形以及其他控制(control)和显示对象(indicator)。
图1所示是一个随机信号发生和显示的简单VI是它的前面板,上面有一个显示对象,以曲线的方式显示了所产生的一系列随机数。
还有一个控制对象——开关,可以启动和停止工作。
显然,并非简单地画两个控件就可以运行,在前面板后还有一个与之配套的流程图。
流程图
流程图提供VI的图形化源程序。
在流程图中对VI编程,以控制和操纵定义在前面板上的输入和输出功能。
流程图中包括前面板上的控件的连线端子,还有一些前面板上没有,但编程必须有的东西,例如函数、结构和连线等。
图1-2是与图1-1对应的流程图。
我们可以看到流程图中包括了前面板上的开关和随机数显示器的连线端子,还有一个随机数发生器的函数及程序的循环结构。
随机数发生器通过连线将产生的随机信号送到显示控件,为了使它持续工作下去,设置了一个WhileLoop循环,由开关控制这一循环的结束。
如果将VI与标准仪器相比较,那么前面板上的东西就是仪器面板上的东西,而流程图上的东西相当于仪器箱内的东西。
在许多情况下,使用VI可以仿真标准仪器,不仅在屏幕上出现一个惟妙惟肖的标准仪器面板,而且其功能也与标准仪器相差无几。
图标/连接器
VI具有层次化和结构化的特征。
一个VI可以作为子程序,这里称为子VI(subVI),
被其他VI调用。
图标与连接器在这里相当于图形化的参数,详细情况稍后介绍。
1.2.2 LabVIEW的操作模板
在LabVIEW的用户界面上,应特别注意它提供的操作模板,包括工具(Tools)模板、控制(Controls)模板和函数(Functions)模板。
这些模板集中反映了该软件的功能与特征。
下面我们来大致浏览一下。
工具模板(ToolsPalette)
该模板提供了各种用于创建、修改和调试VI程序的工具。
如果该模板没有出现,则可以在Windows菜单下选择ShowToolsPalette命令以显示该模板。
当从模板内选择了任一种工具后,鼠标箭头就会变成该工具相应的形状。
当从Windows菜单下选择了ShowHelpWindow功能后,把工具模板内选定的任一种工具光标放在流程图程序的子程序(SubVI)或图标上,就会显示相应的帮助信息。
下述工具中注意1和2的区别,2用于编程时,1用于运行程序时。
4是一个特有的工具,它并不是一个简单的画线工具,而是一个符合LabVIEW语言规定的对象连接工具。
工具图标有如下几种:
图标
名称
功 能
1
OperateValue(操作值)
用于操作前面板的控制和显示。
使用它向数字或字符串控制中键入值时,工具会变成标签工具
2
Position/Size/Select(选择)
用于选择、移动或改变对象的大小。
当它用于改变对象的连框大小时,会变成相应形状。
3
EditText(编辑文本)
用于输入标签文本或者创建自由标签。
当创建自由标签时它会变成相应形状。
4
ConnectWire(连线)
用于在流程图程序上连接对象。
如果联机帮助的窗口被打开时,把该工具放在任一条连线上,就会显示相应的数据类型。
5
ObjectShortcutMenu(对象菜单)
用鼠标左键可以弹出对象的弹出式菜单。
6
ScrollWindows(窗口漫游)
使用该工具就可以不需要使用滚动条而在窗口中漫游。
7
Set/ClearBreakpoint(断点设置/清除)
使用该工具在VI的流程图对象上设置断点。
8
ProbeData(数据探针)
可在框图程序内的数据流线上设置探针。
通过控针窗口来观察该数据流线上的数据变化状况。
9
GetColor(颜色提取)
使用该工具来提取颜色用于编辑其他的对象。
10
SetColor(颜色设置)
用来给对象定义颜色。
它也显示出对象的前景色和背景色。
下面的两个模板是多层的,其中每一个子模板下还包括多个对象。
控件模板(ControlPalette)
注意:
只有打开前面板时才能调用该模板
该模板用来给前面板设置各种所需的输出显示对象和输入控制对象。
每个图标代表一类子模板。
如果控件模板不显示,可以用Windows菜单的ShowControlsPalette功能打开它,也可以在前面板的空白处,点击鼠标右键,以弹出控制模板。
控制模板如左图所示,它包括如下所示的一些子模板。
子模板中包括的对象,我们在功能中用文字简要介绍。
位于前面板控件选板上的输入控件和显示控件可用于创建前面板。
控件的种
类有:
数值控件(如滑动杆和旋钮)、图形、图表、布尔控件(如按钮和
开关)、字符串、路径、数组、簇、列表框、树形控件、表格、下拉列表控
件、枚举控件和容器控件等等。
前面板控件有新式、经典和系统三种样式。
函数模板(FunctionsPalette)
注:
只有打开了流程图程序窗口,才能出现函数模板。
函数模板是创建流程图程序的工具。
该模板上的每一个顶层图标都表示一个子模板。
若功能模板不出现,则可以用Windows菜单下的ShowFunctionsPalette功能打开它,也可以在流程图程序窗口的空白处点击鼠标右键以弹出函数模板。
功能模板如上图所示
1.4 LabVIEW的初步操作
1.4.1 创建VII
我们通过例子来说明如何创建一个VI。
建立一个测量温度和容积的VI,其中须调用一个仿真测量温度和容积的传感器子VI。
步骤如下:
1.选择File»New,打开一个新的前面板窗口。
2.从Controls»Numeric中选择Tank放到前面板中。
3.在标签文本框中输入“容积”,然后在前面板中的其他任何位置单击一下。
4.把容器显示对象的显示范围设置为0.0到1000.0。
a.使用文本编辑工具(TextEditTool),双击容器坐标的10.0标度,使它高亮显示。
b.在坐标中输入1000,再在前面板中的其他任何地方单击一下。
这时0.0到1000.0之间的增量将被自动显示。
5.在容器旁配数据显示。
将鼠标移到容器上,点右键,在出现的快速菜单中选VisibleIterms»DigitalDisplay即可。
6.从Controls»Numeric中选择一个温度计,将它放到前面板中。
设置其标签为“温度”,显示范围为0到100,同时配数字显示。
可得到如下的前面板图。
图1-3 前面板图
7.Windows»ShowDiagram打开流程图窗口。
从功能模板中选择对象,将它们放到程序框图上组成下图(其中的标注是后加的)。
图1-4 程序框图
该流程图中新增的对象有两个乘法器、两个数值常数、一个随机数发生器、一个进程监视器,温度和容积对象是由前棉板的设置自动带出来的。
a.乘法器和随机数发生器由Functions»Numeric中拖出,尽管数值常数也可以这样得到,但是建议使用c中的方法更好些。
b.进程监视器(ProcessMonitor)不是一个函数,而是以子VI的方式提供的,它存放在LabVIEW\Activity目录中,调用它的方法是在Functions»SelectaVI下打开ProcessMonitor,然后在流程图上点击一下,就可以出现它的图标。
注意:
LabVIEW目录一般在ProgramFiles\NationalInstruments\目录下。
8.用连线工具
将各对象按规定连接。
a中的遗留问题创建数值常数对象的另一种方法是在连线时一起完成。
具体方法是:
用连线工具在某个功能函数或VI的连线端子上单击鼠标右键,再从弹出的菜单中选择CreateConstant,就可以创建一个具有正确的数据格式的数值常数对象。
9.选择File»Save,把该VI保存为LabVIEW\Activity目录中的Temp&Vol.vi。
在前面板中,单击Run(运行)按钮,运行该VI。
注意电压和温度的数值都显示在前面板中。
10.选择File»Close,关闭该VI。
附注与说明:
1.如果要查看某个功能函数或者VI的输入输出,需要从Help菜单中选择ShowHelp,再把光标置于这个功能函数或者VI上。
例如进程监视器VI的Help窗口显示如下:
2.显示对象(Indicator)、控制对象(Control)和数值常数对象
显示对象和控制对象都是前面板上的控件,前者有输入端子而无输出端子,后者正好相反,它们分别相当于普通编程语言中的输出参数和输入参数。
数值常数对象可以看成是控制对象的一个特例。
在前面板中创建新的控制对象或显示对象时,LabVIEW都会在流程图中创建对应的端子。
端子的符号反映该对象的数据类型。
例如,DBL符号表示对象数据类型是双精度数;TF符号表示布尔数;I16符号表示16位整型数;ABC符号表示对象数据类型是字符串。
一个对象应当是显示对象还是控制对象必须弄清楚,否则无法正确连线。
有时他们的图标是相似或相同的,可以根据需要明确规定它是显示对象还是控制对象。
方法是将鼠标移到图标上,然后点右键,可出现快速菜单(例见右图)。
如果菜单中的第一项是ChangtoControl,说明这是一个显示对象,你可以根据需要,将其变为控制对象。
如果菜单中的第一项是ChangtoIndicator,说明这是一个控制对象,你也可以根据需要,将其变为显示对象。
控制对象和显示对象都不能在流程图中删除,只能从前面板上删除。
3.关于连线
连线是程序设计中较为复杂的问题。
流程图上的每一个对象都带有自己的连线端子,连线将构成对象之间的数据通道。
因为这不是几何意义上的连线,因此并非任意两个端子间都可连线,连线类似于普通程序中的变量。
数据单向流动,从源端口向一个或多个目的端口流动。
不同的线型代表不同的数据类型。
下面是一些常用数据类型所对应的线型和颜色:
类型
颜色
标量
一维数组
二维数组
整形数
兰色
浮点数
橙色
逻辑量
绿色
字符串
粉色
文件路径
青色
当需要连接两个端点时,在第一个端点上点击连线工具(从工具模板栏调用),然后移动到另一个端点,再点击第二个端点。
端点的先后次序不影响数据流动的方向。
当把连线工具放在端点上时,该端点区域将会闪烁,表示连线将会接通该端点。
当把连线工具从一个端口接到另一个端口时,不需要按住鼠标键。
当需要连线转弯时,点击一次鼠标键,即可以正交垂直方向地弯曲连线,按空格键可以改变转角的方向。
接线头是为了帮助正确连接端口的连线。
当把连线工具放到端口上,接线头就会弹出。
接线头还有一个黄色小标识框,显示该端口的名字。
线型为波折号的连线表示坏线。
出现坏线的原因有很多,例如:
连接了两个控制对象;源端子和终点端子的数据类型不匹配(例如一个是数字型,而另一个是布尔型)。
可以通过使用定位工具点击坏线再按下
选择Edit»RemoveBadWires或者按下
当VI无法运行,或者显示SignalhasLooseEnds(信号丢失终端)的错误信息时,这是一个快捷的调试方法。
1.4.2 程序调试技术
1.找出语法错误
如果一个VI程序存在语法错误,则在面板工具条上的运行按钮会变成一个折断的箭头,表示程序不能被执行。
这时该按钮被称作错误列表。
点击它,则LabVIEW弹出错误清单窗口,点击其中任何一个所列出的错误,选用Find功能,则出错的对象或端口就会变成高亮。
2.设置执行程序高亮
在LabVIEW的工具条上有一个画着灯泡的按钮,这个按钮叫做“高亮执行”按钮上。
点击这个按钮使它变成高亮形式,再点击运行按钮,VI程序就以较慢的速度运行,没有被执行的代码灰色显示,执行后的代码高亮显示,并显示数据流线上的数据值。
这样,你就可以根据数据的流动状态跟踪程序的执行。
3.断点与单步执行
为了查找程序中的逻辑错误,有时希望流程图程序一个节点一个节点地执行。
使用断点工具可以在程序的某一地点中止程序执行,用探针或者单步方式查看数据。
使用断点工具时,点击你希望设置或者清除断点的地方。
断点的显示对于节点或者图框表示为红框,对于连线表示为红点。
当VI程序运行到断点被设置处,程序被暂停在将要执行的节点,以闪烁表示。
按下单步执行按钮,闪烁的节点被执行,下一个将要执行的节点变为闪烁,指示它将被执行。
你也可以点击暂停按钮,这样程序将连续执行直到下一个断点。
4.探针
可用探针工具来查看当流程图程序流经某一根连接线时的数据值。
从Tools工具模板选择探针工具,再用鼠标左建点击你希望放置探针的连接线。
这时显示器上会出现一个探针显示窗口。
该窗口总是被显示在前面板窗口或流程图窗口的上面。
在流程图中使用选择工具或连线工具,在连线上点击鼠标右键,在连线的弹出式菜单中选择“探针”命令,同样可以为该连线加上一个探针。
1.5 图形入门
图形是一种周期性更新数据的数字式图形显示对象。
可以在Controls»Graph模板中找到多种图表。
可以选取相应的图形格式,以满足自己的显示需要或者让它显示更多的数据。
图表具有的特性有:
滚动条、图例、模板、数值显示、时间坐标显示等。
我们通过例子来说明如何使用图形
1.建立前面板及流程图如下
该程序中利用一个循环产生连续的sin(i)函数值,并及时地在图形上显示出来,现在前面板上的图形是一个strip,这是一个坐标式显示器,与纸带式图表记录器相似。
每接受一个新数据,新数据就将显示在右侧,而原有数据移动到左侧
图1-7 图表的例子
2.用鼠标选中chart,点击右键,可在快速菜单中选择Advanced»UpdateMode子菜单。
可以选择更换其他两种更新模式。
示波器模式是一个返回式的显示器,与示波器类似。
每接受一个新数据时,它就把新数据绘制在原有数据的右侧。
当数据曲线到达显示区的右边缘时,VI会删除全部图形,从左边缘重新开始绘制曲线。
示波器模式显然要快于条状图模式,因为它不会因为滚动产生溢出。
扫描模式更接近于示波器模式,但是当数据曲线到达显示区的右边时,不会变成空白,而是会出现一个移动的垂线,标记新数据的开始,并当VI添加新数据时穿过整个显示区。
第二章程序结构
2.1循环结构
2.1.1 While循环
While循环可以反复执行循环体的程序,直至到达某个边界条件。
它类似于普通编程语言中的Do循环和Repeat-Until循环。
While循环的框图是一个大小可变的方框,用于执行框中的程序,直到条件端子接收到的布尔值为FALSE。
●该循环有如下特点:
●计数从0开始(i=0)。
●先执行循环体,而后i+1,如果循环只执行一次,那么循环输出值i=0。
●循环至少要运行一次。
图2-1 While循环示意图
例:
用While循环和图表获得数据,并实时显示。
创建一个可以产生并在图表中显示随机数的VI。
前面板有一个控制旋钮可在0到10秒之间调节循环时间,还有一个开关可以中止VI的运行。
学习怎样改变开关的动作属性,以便不用每次运行VI时都要打开开关。
操作步骤如下:
图2-2 练习2-1的前面板
1.选择File»New,打开一个新的前面板。
2.选择Controls»Boolean,在前面板中放置一个开关。
设置开关的标签为控制开关。
3.使用标签工具创建ON和OFF的标签,放置于开关旁。
4.选中Controls»Graph,在前面板中放置一个波形图(是chart,而不是graph)。
设置它的标签为随机信号。
这个图表用于实时显示随机数。
5.把图表的纵坐标改为0.0到1.0。
方法是用标签工具把最大值从10.0改为1.0。
6.选择Controls»Numeric,在前面板中放置一个旋钮。
设置旋钮的标签为循环延时。
这个旋钮用于控制While循环的循环时间。
7.
打开程序框图面板,按照下图创建程序框图。
图2-2 练习2-1的程序框图
a.从Functions»Structures中选择While循环,把它放置在程序框图中。
将其拖至适当大小,将相关对象移到循环圈内。
b.从Functions»Numeric中选择随机数(0-1)功能函数放到循环内。
c.在循环中设置WaitUntilNextmsMultiple函数(Functions»Time&Dialog),该函数的时间单位是毫秒,按目前面板旋钮的标度,可将每次执行时间延迟0到10毫秒。
d.照上面所示的程序框图连线,把随机数功能函数和随机信号图表输入端子连接起来,并把启动开关和While循环的条件端子连接。
8.返回前面板,调用操作工具后单击垂直开关将它打开。
9.把该VI保存为LabVIEW\Activity目录中的RandomSignal.vi。
10.执行该VI。
While循环的执行次数是不确定的,只要设置的条件为真,循环程序就会持续运行。
在这个例子中,只要开关打开(TRUE),框图程序就会一直产生随机数,并将其在图表中显示。
11.单击垂直开关,中止该VI。
关闭开关这个动作会给循环条件端子发送一个FALSE值,从而中止循环。
12.用鼠标右键单击图表,选择DataOperations»ClearChart,清除显示缓存,重新设置图表。
附注与说明
布尔开关的机械动作:
布尔开关有6种机械动作属性可供选择。
在前面板上用鼠标右键单击开关,在快捷菜单中选择MechanicalAction就可以看到这些可选的动作。
LabVIEW还提供了一个范例示范这些动作,它是位于Examples\General\Controls\booleans.llb的MechanicalActionofBooleans.vi。
2.1.2移位寄存器(ShiftRegister)
移位寄存器可以将数据从一个循环周期传递到另外一个周期。
在程序设计中,经常要用到它.创建一个移位寄存器的方法是,用鼠标右键单击循环的左边或者右边,在快捷菜单中选择AddShiftRegister。
如右图所示。
移位寄存器在程序框图上用在循环边框上相应的一对端子来表示。
右边的端子中存储了一个周期完成后的数据,这些数据在这个周期完成之后将被转移到左边的端子,赋给下一个周期。
移位寄存器可以转移各种类型的数据--数值、布尔数、数组、字符串等等。
它会自动适应与它连接的第一个对象的数据类型。
下图表示了它的工作过程.
图2-3 ShiftRegister的工作过程
可以令移位寄存器记忆前面的多个周期的数值。
这个功能对于计算数据均值非常有用。
还可以创建其他的端子访问先前的周期的数据,方法是用鼠标右键单击左边或者右边的端子,在快捷菜单中选择AddElement。
例如,如果某个移位寄存器左边的端口含有三个元素,那么就可以访问前三个周期的数据。
例:
使用移位寄存器,创建一个可以在图表中显示运行平均数的VI。
前面板
1.打开一个新的前面板,按照下图所示创建对象。
2.把波形图表的坐标范围改为0.0到2.0。
3.在添加竖直坐标之后,用鼠标右键单击它,在快捷菜单中选择MechanicalAction»LatchWhenPressed,再选择Operate»MakeCurrentVal
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- LabVIEW 讲义
![提示](https://static.bingdoc.com/images/bang_tan.gif)