labview完整教程详细解答.docx
《labview完整教程详细解答.docx》由会员分享,可在线阅读,更多相关《labview完整教程详细解答.docx(44页珍藏版)》请在冰豆网上搜索。
labview完整教程详细解答
第一讲:
认识Labview
简介
在开始菜单里找见点击打开,会出现如下界面:
从File>>NewVI或者从右半部分中的New>>BlankVI都可以打开如下界面:
上图中前图是虚拟仪器的前面板,是用户使用的人机界面,后面的是程序框图界面(即后面板)。
在LabVIEW的用户界面上,应特别注意它提供的操作模板,包括工具(Tools)模板、控制(Controls)模板和函数(Functions)模板。
这些模板集中反映了该软件的功能与特征。
下面我们来大致浏览一下。
工具模板(ToolsPalette)
该模板提供了各种用于创建、修改和调试VI程序的工具。
如果该模板没有出现,则可以在Windows菜单下选择ShowToolsPalette命令以显示该模板。
当从模板内选择了任一种工具后,鼠标箭头就会变成该工具相应的形状。
当从Windows菜单下选择了ShowHelpWindow功能后,把工具模板内选定的任一种工具光标放在流程图程序的子程序(SubVI)或图标上,就会显示相应的帮助信息。
工具图标有如下几种:
图标
名称
功 能
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功能打开它,也可以在前面板的空白处,点击鼠标右键,以弹出控制模板。
控制模板如右图所示,它包括如下所示的一些子模板。
子模板中包括的对象,我们在功能中用文字简要介绍。
图标
子模板名称
功 能
1
Numeric(数值量)
数值的控制和显示。
包含数字式、指针式显示表盘及各种输入框。
2
Boolean(布尔量)
逻辑数值的控制和显示。
包含各种布尔开关、按钮以及指示灯等。
3
String&Path(字符串和路径)
字符串和路径的控制和显示。
4
Array&Cluster(数组和簇)
数组和簇的控制和显示。
5
List&Table(列表和表格)
列表和表格的控制和显示
6
Graph(图形显示)
显示数据结果的趋势图和曲线图。
7
Ring&Enum(环与枚举)
环与枚举的控制和显示。
8
I/O(输入/输出功能)
输入/输出功能。
于操作OLE、ActiveX等功能。
9
Refnum
参考数
10
DigilogControls(数字控制)
数字控制
11
ClussicControls(经典控制)
经典控制,指以前版本软件的面板图标。
12
Activex
用于ActiveX等功能。
13
Decorations(装饰)
用于给前面板进行装饰的各种图形对象。
14
SelectaControls(控制选择)
调用存储在文件中的控制和显示的接口。
15
UserControls(用户控制)
用户自定义的控制和显示。
功能模板(FunctionsPalette)
注:
只有打开了流程图程序窗口(即后面板),才能出现功能模板。
功能模板是创建流程图程序的工具。
该模板上的每一个顶层图标都表示一个子模板。
若功能模板不出现,则可以用Windows菜单下的ShowFunctionsPalette功能打开它,也可以在流程图程序窗口的空白处点击鼠标右键以弹出功能模板。
功能模板如右图所示,其子模块如下所示。
(个别不常用的子模块未包含)
图标
子模板名称
功 能
1
Structure(结构)
包括程序控制结构命令,例如循环控制等,以及全局变量和局部变量。
2
Numeric(数值运算)
包括各种常用的数值运算,还包括数制转换、三角函数、对数、复数等运算,以及各种数值常数。
3
Boolean(布尔运算)
包括各种逻辑运算符以及布尔常数。
4
String(字符串运算)
包含各种字符串操作函数、数值与字符串之间的转换函数,以及字符(串)常数等。
5
Array(数组)
包括数组运算函数、数组转换函数,以及常数数组等。
6
Cluster(簇)
包括簇的处理函数,以及群常数等。
这里的群相当于C语言中的结构。
7
Comparison(比较)
包括各种比较运算函数,如大于、小于、等于。
8
Time&Dialog(时间和对话框)
包括对话框窗口、时间和出错处理函数等。
9
FileI/O(文件输入/输出)
包括处理文件输入/输出的程序和函数。
10
DataAcquisition(数据采集)
包括数据采集硬件的驱动,以及信号调理所需的各种功能模块。
11
Waveform(波形)
各种波形处理工具
12
Analyze(分析)
信号发生、时域及频域分析功能模块及数学工具。
13
InstrumentI/O(仪器输入/输出)
包括GPIB(488、、串行、VXI仪器控制的程序和函数,以及VISA的操作功能函数。
14
Motion&Vision(运动与景像)
15
Mathematics(数学)
包括统计、曲线拟合、公式框节点等功能模块,以及数值微分、积分等数值计算工具模块。
16
Communication(通讯)
包括TCP、DDE、ActiveX和OLE等功能的处理模块。
17
ApplicationControl(应用控制)
包括动态调用VI、标准可执行程序的功能函数。
18
Graphics&Sound(图形与声音)
包括3D、OpenGL、声音播放等功能模块。
包括调用动态连接库和CIN节点等功能的处理模块。
19
Tutorial(示教课程)
包括LabVIEW示教程序。
20
ReportGeneration(文档生成)
21
Advanced(高级功能)
22
SelectaVI(选择子VI)
23
UserLibrary(用户子VI库)
下面我们通过练习掌握如何应用
练习一:
建立一个测量温度和容积的VI
步骤如下:
1.选择File?
NewVI,打开一个新的前面板窗口。
2.从Controls>>AllControls>>numeric中选择Tank放到前面板中。
(注:
如果前面板中没有Controls模版,可在菜单栏选window>>showcontrolspalette,即可打开或直接点击鼠标右键)
3.在标签(Tank)文本框中输入“容积”,然后在前面板中的其他任何位置单击一下。
4.同样从Controls>>AllControls>>numeric中选择Thermometer放到前面板中
5.在标签文本框中输入“温度计”,然后在前面板中的其他任何位置单击一下。
6.把容器显示对象的显示范围设置为到。
a.双击容器坐标的标度,使它高亮显示。
在坐标中输入1000,再在前面板中的其他任何地方单击一下。
这时到之间的增量将被自动显示。
7.在容器旁配数据显示。
将鼠标移到容器上,点右键,在出现的快速菜单中选VisibleIterms>>DigitalDisplay即可。
前面板如下图所示:
图1-1 练习一的前面板图
8.Windows>>ShowblockDiagram打开流程图窗口,在窗口中建立如下程序:
图1-2 练习一的流程图
该流程图中新增的对象有两个乘法器、两个数值常数、两个随机数发生器、一个延时函数,一个while循环,一个布尔常量,温度和容积对象是由前棉板的设置自动带出来的。
a.乘法器(Multiply)、随机数发生器(Randomnumber(0--1))和数值常数(Numbericconstant)由Functions>>AllFunctions>>Numeric中拖出。
(注:
如果面板中没有Functions模版,可以从菜单栏中选Window>>ShowFunctionspalette或点击鼠标右键)
b.延时函数(Timedelay)可以从Functions>>AllFunctions>>Time&Dialog>>Timedelay中拖出,在自动弹出的对话框中输入要延时的时间(比如)。
9.连线:
把鼠标放到函数端子上,当鼠标自动变为连线模式并出现一闪一闪时,点击一下鼠标左键然后找要连接的函数端子,当鼠标出现一闪一闪时,再次点击鼠标左键,这时就把两个函数连接起来了。
10.最后选Functions>>AllFunctions>>Structures>>WhileLoop,在已编好的程序左上角点击鼠标左键,然后移动鼠标,直到出现的虚线把程序全包含起来再点鼠标左键,就创建了一个While循环。
在右下角条件端子上点击鼠标右键,再弹出的菜单里选Creatconstant就可,目的是让循环能够维持下去。
11.在前面板中,单击Run(运行)按钮,运行该VI
12.在后面板的工具栏中点击类似灯泡状的按钮,就可以看见程序中各个数据流的走向。
13.选择File?
Save,把该VI保存到任意目录下。
14.选择File?
Close,关闭该VI。
练习一结束
附注与说明:
1.显示对象(Indicator)、控制对象(Control)和数值常数对象
显示对象和控制对象都是前面板上的控件,前者有输入端子而无输出端子,后者正好相反,它们分别相当于普通编程语言中的输出参数和输入参数。
数值常数对象可以看成是控制对象的一个特例。
在前面板中创建新的控制对象或显示对象时,LabVIEW都会在流程图中创建对应的端子。
端子的符号反映该对象的数据类型。
例如,DBL符号表示对象数据类型是双精度数;TF符号表示布尔数;I16符号表示16位整型数;ABC符号表示对象数据类型是字符串。
一个对象应当是显示对象还是控制对象必须弄清楚,否则无法正确连线。
有时他们的图标是相似或相同的,可以根据需要明确规定它是显示对象还是控制对象。
方法是将鼠标移到图标上,然后点右键,可出现快速菜单(例见右图)。
如果菜单中的第一项是ChangtoControl,说明这是一个显示对象,你可以根据需要,将其变为控制对象。
如果菜单中的第一项是ChangtoIndicator,说明这是一个控制对象,你也可以根据需要,将其变为显示对象。
2.关于连线
连线是程序设计中较为复杂的问题。
流程图上的每一个对象都带有自己的连线端子,连线将构成对象之间的数据通道。
因为这不是几何意义上的连线,因此并非任意两个端子间都可连线,连线类似于普通程序中的变量。
数据单向流动,从源端口向一个或多个目的端口流动。
不同的线型代表不同的数据类型。
下面是一些常用数据类型所对应的线型和颜色:
类型
颜色
标量
一维数组
二维数组
整形数
兰色
浮点数
橙色
逻辑量
绿色
字符串
粉色
文件路径
青色
当需要连接两个端点时,在第一个端点上点击连线工具(从工具模板栏调用),然后移动到另一个端点,再点击第二个端点。
端点的先后次序不影响数据流动的方向。
当把连线工具放在端点上时,该端点区域将会闪烁,表示连线将会接通该端点。
当把连线工具从一个端口接到另一个端口时,不需要按住鼠标键。
当需要连线转弯时,点击一次鼠标键,即可以正交垂直方向地弯曲连线,按空格键可以改变转角的方向。
接线头是为了帮助正确连接端口的连线。
当把连线工具放到端口上,接线头就会弹出。
接线头还有一个黄色小标识框,显示该端口的名字。
线型为波折号的连线表示坏线。
出现坏线的原因有很多,例如:
连接了两个控制对象;源端子和终点端子的数据类型不匹配(例如一个是数字型,而另一个是布尔型)。
可以通过使用定位工具点击坏线再按下来删除它。
选择Edit?
RemoveBadWires或者按下可以一次删除流程图中的所有坏线。
当VI无法运行,或者显示SignalhasLooseEnds(信号丢失终端)的错误信息时,这是一个快捷的调试方法。
程序调试技术
(以下操作大家可以用练习一尝试)
1.找出语法错误
如果一个VI程序存在语法错误,则在面板工具条上的运行按钮会变成一个折断的箭头,表示程序不能被执行。
这时该按钮被称作错误列表。
点击它,则LabVIEW弹出错误清单窗口,点击其中任何一个所列出的错误,选用Find功能,则出错的对象或端口就会变成高亮。
2.设置执行程序高亮
在LabVIEW的工具条上有一个画着灯泡的按钮,这个按钮叫做“高亮执行”按钮上。
点击这个按钮使它变成高亮形式,再点击运行按钮,VI程序就以较慢的速度运行,没有被执行的代码灰色显示,执行后的代码高亮显示,并显示数据流线上的数据值。
这样,你就可以根据数据的流动状态跟踪程序的执行。
3.断点与单步执行
为了查找程序中的逻辑错误,有时希望流程图程序一个节点一个节点地执行。
使用断点工具可以在程序的某一地点中止程序执行,用探针或者单步方式查看数据。
使用断点工具时,点击你希望设置或者清除断点的地方。
断点的显示对于节点或者图框表示为红框,对于连线表示为红点。
当VI程序运行到断点被设置处,程序被暂停在将要执行的节点,以闪烁表示。
按下单步执行按钮,闪烁的节点被执行,下一个将要执行的节点变为闪烁,指示它将被执行。
你也可以点击暂停按钮,这样程序将连续执行直到下一个断点。
4.探针
可用探针工具来查看当流程图程序流经某一根连接线时的数据值。
从Tools工具模板选择探针工具,再用鼠标左建点击你希望放置探针的连接线。
这时显示器上会出现一个探针显示窗口。
该窗口总是被显示在前面板窗口或流程图窗口的上面。
在流程图中使用选择工具或连线工具,在连线上点击鼠标右键,在连线的弹出式菜单中选择“探针”命令,同样可以为该连线加上一个探针。
子VI的建立
子VI(SubVI)相当于普通编程语言中的子程序,也就是被其他的VI调用的VI。
可以将任何一个定义了图标和联接器的VI作为另一个VI的子程序。
在流程图中打开Functions?
SelectaVI….,就可以选择要调用的子VI。
构造一个子VI主要的工作就是定义它的图标和联接器。
每个VI在前面板和流程图窗口的右上角都显示了一个默认的图标。
启动图标编辑器的方法是,用鼠标右键单击面板窗口的右上角的默认图标,在弹出菜单中选择EditIcon。
下图显示了图标编辑器的窗口。
可以用窗口左边的各种工具设计像素编辑区中的图标形状。
编辑区右侧的一个方框中显示了一个实际大小的图标。
图标编辑器的具体使用细节参阅练习二
图标编辑器窗口
联接器是VI数据的输入输出接口。
如果用面板控制对象或者显示对象从子VI中输出或者输入数据,那么这些对象都需要在联接器面板中有一个连线端子。
您可以通过选择VI的端子数并为每个端子指定对应的前面板对象以定义联接器。
定义联接器的方法是,用鼠标右键单击面板窗口中的图标窗口,在快捷菜单中选择ShowConnector。
联接器图标会取代面板窗口右上角的图标。
LabVIEW自动选择的端子连接模式是控制对象的端子位于联接器窗口的左边,显示对象的端子位于联接器窗口右边。
选择的端子数取决于前面板中控制对象和显示对象的个数。
联接器中的各个矩形表示各个端子所在的区域,可以用它们从VI中输入或者输出数据。
如果必要,也可以选择另外一种端子连接模式。
方法是在图标上单击鼠标右键单出快捷菜单,选择ShowConnector,再次弹出快捷菜单,选择Patterns。
下面我们通过一个练习说明具体操作。
练习二:
子VI的建立及调用
步骤如下:
1.打开一个NEWVI
2.在前面板中放置一个Numbercontrol控件(数据输入控件)和一个NumberIndicator控件(数据显示),都在Allcontrols>>numberic模板下并把标签分别改为X和X^6,如下图:
3.后面板程序图如下图连接,这是一个计算X的6次方程序
4.在前面板中,用鼠标右键单击窗口右上角的图标,在快捷菜单中选择EditIcon….,也可以双击图标激活图标编辑器。
注意只能在前面板中编辑图标和联接器。
5.删除默认图标。
使用SelectTool(矩形框),单击并拖动想要删除的部分,按下。
也可以通过双击工具框中的阴影矩形删除图标。
6.
用TextTool(文本工具)创建文本(写好后可以用方向键移动文字在图标中的位置)。
得到图标将如下图所示。
7.
单击OK,关闭编辑器。
新创建的图标就显示在屏幕右上角的图标窗口中。
8.用鼠标右键单击前面板中的图标窗口,在快捷菜单中选择ShowConnector,设置联接器端子连接模式。
在默认情况下,LabVIEW会根据前面板中的控制对象和显示对象的数目确定联接器的端子连接模式。
因为前面板中有两个对象,所以联接器有两个端子,如右图所示。
用鼠标右键单击联接器窗口,在快捷菜单中选择Rotate90Degrees(旋转90度),注意联接器窗口的变化,如右图所示。
9.端子连接到X和X^6:
a.点击联接器左部端子。
光标自动变成连线工具,同时端子变成黑色。
b.单击X控件对象。
一个移动的虚线框把它包围起来,选中的端子的颜色变为与控制/显示对象的数据类型一致的颜色。
如果单击前面板中的任何空白区域以后,虚线消失,选中的端子变暗,这表示您已经成功地把显示对象和上部端子连接起来。
如果端子是白色,则表示没有连接成功。
c.重复步骤a和b,把右部的端子和X^6连接起来。
c.用鼠标右键单击联接器,在快捷菜单中选择ShowIcon.
10.选择File?
Save,保存该VI,保存名为X^6。
这样这个VI就完成了,并也可以作为子VI被其他的VI调用。
子VI的图标在主VI的流程图中代表它。
11.调用子VI。
新建一个NewVI
12.在前面板中放置一个Numbercontrol控件和一个NumberIndicator控件,并把标签分别改为X和X^6,如下图
13.后面板操作。
在Functions>>AllFunctions>>SelectaVI,选中并打开刚才保存的VI,并连接好线如下图:
14.运行该程序
练习二结束
使用三种图表模式
目的:
查看VI分别在三种模式下执行时图表的显示。
练习三:
建立前面板及流程图如下
步骤:
1.在前面板放置chart(Controls>>AllControls>>Graph>>Waveformchart)控件
2.在后面板放置Sine函数(Functions>>AllFunctions>>Numberic>>
Trigonometric>>sine)及WaitUntilNextmsMultiple函数(Functions>>AllFunctions>>Time&Dialog>>WaitUntilNextmsMultiple)并在左端子建立常数如100。
最后放置while循环
该程序中利用一个while循环产生连续的sin(i)函数值,并及时地在chart图表上显示出来,现在前面板上的chart是一个strip,这是一个坐标式显示器,与纸带式图表记录器相似。
每接受一个新数据,新数据就将显示在右侧,而原有数据移动到左侧
3.用鼠标选中chart,点击右键,可在快速菜单中选择Advanced?
UpdateMode子菜单。
可以选择更换其他两种更新模式。
示波器模式是一个返回式的显示器,与示波器类似。
每接受一个新数据时,它就把新数据绘制在原有数据的右侧。
当数据曲线到达显示区的右边缘时,VI会删除全部图形,从左边缘重新开始绘制曲线。
示波器模式显然要快于条状图模式,因为它不会因为滚动产生溢出。
扫描模式更接近于示波器模式,但是当数据曲线到达显示区的右边时,不会变成空白,而是会出现一个移动的垂线,标记新数据的开始,并当VI添加新数据时穿过整个显示区。
练习三结束。
第二讲程序结构
循环结构
While循环
While循环可以反复执行循环体的程序,直至到达某个边界条件。
它类似于普通编程语言中的Do循环和Repeat-Until循环。
While循环的框图是一个大小可变的方框,用于执行框中的程序,直到条件端子接收到的布尔值为FALSE。
该循环有如下特点:
计数从0开始(i=0)。
先执行循环体,而后i+1,如果循环只执行一次,那么循环输出值i=0。
循环至少要运行一次。
图4-1 While循环示意图
由于在练习一中已讲过While循环的应用,大家可以自己做下面的练习,其前面板和流程图如下图所示:
2.1.1.1移位寄存器(ShiftRegister)
移位寄存器可以将数据从一个循环周期传递到另外一个周期。
在程序设计中,经常要用到它.创建一个移位寄存器的方法是,用鼠标右键单击循环的左边或者右边,在快捷菜单中选择AddShiftRegister。
如右图所示。
移位寄存器在流程图上用在循环边框上相应的一对端子来表示。
右边的端子中存储了一个周期完成后的数据,这些数据在这个周期完成之后将被转移到左边的端子,赋给下一个周期。
移位寄存器可以转移各种类型的数据--数值、布尔数、数组、字符串等等。
它会自动适应与它连接的第一个对象的数据类型。
下图表示了它的工作过程.
图2-3 ShiftRegister的工作过程
可以令移位寄存器记忆前面的多个周期的数值。
这个功能对于计算数据均值非常有用。
还可以创建其他的端子访问先前的周期的数据,方法是用鼠标右键单击左边或者右边的端子,在快捷菜单中选择AddElement。
例如,如果某个移位寄存器左边的端口含有三个元素,那么就可以访问前三个周期的数据。
练习四使用移位寄存器
目的:
创建一个可以在图表中显示运行平均数的VI。
前面板
1.打开一个新的前面板,按照下图所示创建对象。
2.把波形图表的坐标范围改为到。
3.在添加开关之后,用鼠标右键单击它,在快捷菜单中选择MechanicalAction?
LatchWhenPressed,再选择Operate?
MakeC