




已阅读5页,还剩83页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
LabVIEW实践教程测控工程实践LabVIEW教学教程黑龙江科技学院电气与信息工程学院测控技术与仪器教研室第一讲 LabVIEW概述第一节 虚拟仪器(VI)的概念使用LabVIEW开发平台编制的程序称为虚拟仪器程序,简称为VI。LabVIEW(Laboratory Virtual instrument Engineering Workbench)是一种图形化的编程语言,它广泛地被工业界、学术界和研究实验室所接受,视为一个标准的数据采集和仪器控制软件。LabVIEW集成了与满足GPIB、VXI、RS-232和RS-485协议的硬件及数据采集卡通讯的全部功能。它还内置了便于应用TCP/IP、ActiveX等软件标准的库函数。这是一个功能强大且灵活的软件。利用它可以方便地建立自己的虚拟仪器,其图形化的界面使得编程及使用过程都生动有趣。图形化的程序语言,又称为“”语言。使用这种语言编程时,基本上不写程序代码,取而代之的是流程图或流程图。它尽可能利用了技术人员、科学家、工程师所熟悉的术语、图标和概念,因此,LabVIEW是一个面向最终用户的工具。它可以增强你构建自己的科学和工程系统的能力,提供了实现仪器编程和数据采集系统的便捷途径。使用它进行原理研究、设计、测试并实现仪器系统时,可以大大提高工作效率。利用LabVIEW,可产生独立运行的可执行文件,它是一个真正的位编译器。像许多重要的软件一样,LabVIEW提供了Windows、UNIX、Linux、Macintosh的多种版本。所有的LabVIEW应用程序,即虚拟仪器(VI),它包括前面板(front panel)、程序框图(block diagram)以及图标/连结器(icon/connector)三部分。控制对象(输入)显示对象(输出)图随机信号发生器前面板前面板是图形用户界面,也就是VI的虚拟仪器面板,这一界面上有用户输入和显示输出两类对象,具体表现有开关、旋钮、图形以及其他控制(control)和显示对象(indicator)。图1所示是一个随机信号发生和显示的简单VI是它的前面板,上面有一个显示对象,以曲线的方式显示了所产生的一系列随机数。还有一个控制对象开关,可以启动和停止工作。显然,并非简单地画两个控件就可以运行,在前面板后还有一个与之配套的程序框图。程序框图提供VI的图形化源程序。在程序框图中对VI编程,以控制和操纵定义在前面板上的输入和输出功能。程序框图中包括前面板上的控件的连线端子,还有一些前面板上没有,但编程必须有的东西,例如函数、结构和连线等。图是与图对应的程序框图。我们可以看到程序框图中包括了前面板上的开关和随机数显示器的连线端子,还有一个随机数发生器的函数及程序的循环结构。随机数发生器通过连线将产生的随机信号送到显示控件,为了使它持续工作下去,设置了一个While Loop循环,由开关控制这一循环的结束。函数:随机数发生器结构:循环与前面板控件对应的连线端子与前面板控件对应的连线端子图随机信号发生器程序框图如果将VI与标准仪器相比较,那么前面板上的东西就是仪器面板上的东西,而程序框图上的东西相当于仪器箱内的东西。在许多情况下,使用VI可以仿真标准仪器,不仅在屏幕上出现一个惟妙惟肖的标准仪器面板,而且其功能也与标准仪器相差无几。图标/连接器VI具有层次化和结构化的特征。一个VI可以作为子程序,这里称为子VI(subVI),被其他VI调用。图标与连接器在这里相当于图形化的参数,详细情况稍后介绍。第二节 LabVIEW8.2开发环境启动LabVIEW8.2程序初始化界面如下图所示:点击新建VI,即可打开一个新的Labview程序前面板:工具条 :标签 :数值控件 :标尺:图标 :旋钮 :图例 :XY图前面板工具条:运行按钮:连续运行按钮:中断运行按钮。当编码出错使VI不能编译或运行时,中断运行按钮将替换运行按钮:异常终止执行按钮:暂停/继续按钮:对齐对象按钮。用于将变量对象设置成较好的对齐方式:分布对象按钮。用于对两个及其以上的对象设置最佳分布方式:调整对象大小按钮。用于将若干个前面板对象调整到同一大小程序框图:数值输入控件 :旋钮控件 :数值常量 :乘:For循环结构 :数据连线 :捆绑函数 :XY图控件:子VI程序框图工具条:加亮执行按钮。当程序执行时,在框图代码上能够看都数据流,这对于调试和校验程序的正确运行是非常有用的。在加亮执行模式下,按钮转变成一个点亮的灯泡:保存连线值按钮。:单步进入按钮。允许进入节点,一旦进入节点,就可在节点内部单步执行。 :单步跳过按钮。单步跳过节点,但不执行时不进入节点内部但有效地执行节点。:单步跳出按钮。允许跳出节点,通过跳出节点可完成该节点的单步执行并跳转到下一个节点。:文本设置按钮。:层叠顺序。下拉菜单:由于Labview8.2采用了中文的界面,每个下拉菜单的功能根据字面意思就很容易理解。选项板l 工具选项板:上图所示便是工具选项板,各按钮的功能如下:自动选择工具:操作工具 :定位/调整大小/选择工具:编辑文本工具 :连线工具 :对象快捷菜单工具 :滚动窗口 :设置/清除断点工具 :探针工具 :颜色复制工具:着色工具l 控件选项板:和下拉菜单一样,Labview8.2采用了中文的界面,各个控件的功能一目了然,某些常用的控件的功能我们会在下面的章节中做详细的介绍。l 功能选项板和下拉菜单一样,Labview8.2采用了中文的界面,各个控件的功能一目了然,某些常用的控件的功能我们会在下面的章节中做详细的介绍第三节 LabVIEW的操作模板LabVIEW具有多个图形化的操作模板,用于创建和运行程序。这些操作模板可以随意在屏幕上移动,并可以放置在屏幕的任意位置。操纵模板共有三类,为工具(Tools)模板、控制(Controls)模板和功能(Functions)模板。工具模板(Tools Palette)工具模板为编程者提供了各种用于创建、修改和调试VI程序的工具。如果该模板没有出现,则可以在Windows菜单下选择Show Tools Palette命令以显示该模板。当从模板内选择了任一种工具后,鼠标箭头就会变成该工具相应的形状。当从Windows菜单下选择了Show Help Window功能后,把工具模板内选定的任一种工具光标放在框图程序的子程序(Sub VI)或图标上,就会显示相应的帮助信息。工具图标有如下几种:操作工具:使用该工具来操作前面板的控制和显示。使用它向数字或字符串控制中键入值时,工具会变成标签工具的形状。选择工具:用于选择、移动或改变对象的大小。当它用于改变对象的连框大小时,会变成相应形状。标签工具:用于输入标签文本或者创建自由标签。当创建自由标签时它会变成相应形状。连线工具:用于在框图程序上连接对象。如果联机帮助的窗口被打开时,把该工具放在任一条连线上,就会显示相应的数据类型。对象弹出菜单工具:用左鼠标键可以弹出对象的弹出式菜单。漫游工具:使用该工具就可以不需要使用滚动条而在窗口中漫游。断点工具:使用该工具在VI的框图对象上设置断点。探针工具:可以在框图程序内的数据流线上设置探针。程序调试员可以通过控针窗口来观察该数据流线上的数据变化状况。颜色提取工具:使用该工具来提取颜色用于编辑其他的对象。颜色工具:用来给对象定义颜色。它也显示出对象的前景色和背景色。与上述工具模板不同,控制和功能模板只显示顶层子模板的图标。在这些顶层子模板中包含许多不同的控制或功能子模板。通过这些控制或功能子模板可以找到创建程序所需的面板对象和框图对象。用鼠标点击顶层子模板图标就可以展开对应的控制或功能子模板,只需按下控制或功能子模板左上角的大头针就可以把对这个子模板变成浮动板留在屏幕上。控制模板(Controls Palette)用控制模板可以给前面板添加输入控制和输出显示。每个图标代表一个子模板。如果控制模板不显示,可以用Windows菜单的Show Controls Palette功能打开它,也可以在前面板的空白处,点击鼠标右键,以弹出控制模板。注:只有当打开前面板窗口时才能调用控制模板。控制模板如左图所示,它包括如图所示的几个子模板。数值子模板:包含数值的控制和显示。布尔值子模块:逻辑数值的控制和显示。字符串子模板:字符串和表格的控制和显示。列表和环(Ring)子模板:菜单环和列表栏的控制和显示。数组和群子模板:复合型数据类型的控制和显示。图形子模板:显示数据结果的趋势图和曲线图。路径和参考名(Refnum)子模板:文件路径和各种标识的控制和显示。控件容器库子模板:用于操作OLE、ActiveX等功能。对话框子模板:用于输入对话框的显示控制。修饰子模板:用于给前面板进行装饰的各种图形对象。用户自定义的控制和显示。调用存储在文件中的控制和显示的接口。功能模板(Functions Palette)功能模板是创建程序框图的工具。该模板上的每一个顶层图标都表示一个子模板。若功能模板不出现,则可以用窗口菜单下的显示程序框图功能打开它,也可以在程序框图窗口的空白处点击鼠标右键以弹出功能模板。注:只有打开了程序框图窗口,才能出现功能模板。功能模板如下图所示。结构子模板:包括程序控制结构命令,例如循环控制等,以及全局变量和局部变量。数值运算子模板:包括各种常用的数值运算符,如+、-等;以及各种常见的数值运算式,如+1运算;还包括数制转换、三角函数、对数、复数等运算,以及各种数值常数。布尔逻辑子模板:包括各种逻辑运算符以及布尔常数。字符串运算子模板:包含各种字符串操作函数、数值与字符串之间的转换函数,以及字符(串)常数等。数组子模板:包括数组运算函数、数组转换函数,以及常数数组等。群子模板。包括群的处理函数,以及群常数等。这里的群相当于C语言中的结构。比较子模板:包括各种比较运算函数,如大于、小于、等于。时间和对话框子模板:包括对话框窗口、时间和出错处理函数等。文件输入/输出子模板:包括处理文件输入/输出的程序和函数。仪器控制子模板:包括GPIB(488、488.2)、串行、VXI仪器控制的程序和函数,以及VISA的操作功能函数。仪器驱动程序库:用于装入各种仪器驱动程序。数据采集子模板:包括数据采集硬件的驱动程序,以及信号调理所需的各种功能模块。信号处理子模板:包括信号发生、时域及频域分析功能模块。数学模型子模块:包括统计、曲线拟合、公式框节点等功能模块,以及数值微分、积分等数值计算工具模块。图形与声音子模块:包括3D、OpenGL、声音播放等功能模块。通讯子模板:包括TCP、DDE、ActiveX和OLE等功能的处理模块。应用程序控制子模块:包括动态调用VI、标准可执行程序的功能函数。底层接口子模块:包括调用动态连接库和CIN节点等功能的处理模块。文档生成子模板。示教课程子模板:包括LabVIEW示教程序。用户自定义的子VI模板。 “选择VI子程序”子模板:包括一个对话框,可以选择一个VI程序作为子程序(SUB VI)插入当前程序中。第二讲 创建VI程序请记住,VI程序具有三个要素:前面板、程序框图和图标/连接器。一、前面板使用输入控制和输出显示来构成前面板。控制是用户输入数据到程序的接口,而显示是输出程序产生的数据接口。控制和显示有许多种类,可以从控制模板的各个子模板中选取。位于前面板控件选板上的输入控件和显示控件可用于创建前面板。控件的种类有:数值控件(如滑动杆和旋钮)、图形、图表、布尔控件(如按钮和开关)、字符串、路径、数组、簇、列表框、树形控件、表格、下拉列表控件、枚举控件和容器控件等等。控件样式:前面板控件有新式、经典和系统三种样式。1.1 数值显示框、滑动杆、滚动条、旋钮位于数值和经典数值选板上的数值对象可用于创建滑动杆、滚动条、旋钮、转盘和数值显示框。该选板上还有颜色盒和颜色梯度,用于设置颜色值;以及时间标识,用于设置时间和日期值。数值对象用于输入和显示数值。对于数值对象,可设置表示法、数据范围和格式与精度。数值对象只接收特定的数值字符。1、数值型控件数值控件是输入和显示数值数据的最简单方式。这些前面板对象可在水平方向上调整大小,以显示更多位数。使用下列方法改变数值控件的值: 用操作工具或标签工具单击数字显示框,然后通过键盘输入数字。 用操作工具单击数值控件的递增或递减箭头。 使用操作工具或标签工具将光标放置于需改变的数字右边,然后在键盘上按向上或向下箭头键。两种最常用的前面板对象是数字控制和数字显示。若想要在数字控制中输入或修改数值,你只需要用操作工具(见工具模板)点击控制部件和增减按钮,或者用操作工具或标签工具双击数值栏进行输入数值修改。从控件模板中找到数值型控件子模板(控件数值),用鼠标单击模板中相应的控件放置在前面板上,这时控件的标签处于编辑状态,可以修改标签的名字,同时在后面板上已经自动放置了和前面板上相对应的图标当前面板上放置了很多对象时,可以通过双击该对象找到和它对应的在后面板上的图标,或者在控件上单击右键,选择“查找接线端”。2、滑动杆控件滑动杆控件是带有刻度的数值对象。滑动杆控件包括垂直和水平滑动杆、液罐和温度计。可使用下列方法改变滑动杆控件的值: 使用操作工具单击或拖曳滑块至新的位置。 与数值控件中的操作类似,在数字显示框中输入新数据。 3、滚动条控件与滑动杆控件相似,滚动条控件是用于滚动数据的数值对象。滚动条控件有水平和垂直滚动条两种。使用操作工具单击或拖曳滑块至一个新的位置,单击递增和递减箭头,或单击滑块和箭头之间的空间都可以改变滚动条的值。4、旋转型控件旋转型控件包括旋钮、转盘、量表和仪表。旋转型对象的操作与滑动杆控件相似,都是带有刻度的数值对象。可使用下列方法改变旋转型控件的值: 用操作工具单击或拖曳指针至一个新的位置。 与数值控件中的操作类似,在数字显示框中输入新数据。图1 数值型控件前面板1.2图形型控件在Labview中图形控件主要用于图形对象的显示,这些控件可以用来显示曲线、曲面以及波形等对外。Labview中提供了丰富的图形控件,如波形表、波形图、XY图、Express XY图、密度图、强度图、三维曲面图等等。图形控件的操作方式和数值控件相似,从控件模板中选取相应控件放置在前面板上适当的位置即可。这时在后面板上已经出现了其对应的图标,将要显示的、产生相应图形的数据按照一定的格式和图标相连接就可以显示图形了。图2 图形型控件前面板1.3 Express VIsExpress Vis将一些常用的功能封装、集成,使得用户使用起来非常方便。如Expressge表格、Express XY图等等。1.4对象的属性及操作放置于前面板上的每一个控件都有很多属性,其中一些属性与控件的显示方式及显示效果有关,可以通过在控件上单击鼠标右键更改其属性。不同的控件有一些共同的属性,每种控件根据其类型与功能也有其特有的属性, 这些都要在使用中慢慢地熟悉。前面板上有以下几种常见的属性:标签:标识了对象的类型,是前面板和程序框图对象的标识。标题:前面板对象也可以有标题,默认为对象的标签。标题可代替标签为VI添加中文描述,而且不影响VI。标题与标签不同之处在于标题不会影响对象的名称,还可作为进一步描述对象的标签。标题仅在前面板上出现。二、程序框图程序框图是由节点、端点、图框和连线四种元素构成的。图3 数值型控件程序框图图2 图形型控件程序框图节点类似于文本语言程序的语句、函数或者子程序。LabVIEW有二种节点类型-函数节点和子VI节点。两者的区别在于:函数节点是LabVIEW以编译好了的机器代码供用户使用的,而子VI节点是以图形语言形式提供给用户的。用户可以访问和修改任一子VI节点的代码,但无法对函数节点进行修改。上面的框图程序所示的VI程序有两个功能函数节点,一个函数使两个数值相加,另一个函数使两数相减。端点是只有一路输入/输出,且方向固定的节点。LabVIEW有三类端点-前面板对象端点、全局与局部变量端点和常量端点。对象端点是数据在框图程序部分和前面板之间传输的接口。一般来说,一个VI的前面板上的对象(控制或显示)都在框图中有一个对象端点与之一一对应。当在前面板创建或删除面板对象时,可以自动创建或删除相应的对象端点。控制对象对应的端点在框图中是用粗框框住的,如例子中的A和B端点。它们只能在VI程序框图中作为数据流源点。显示对象对应的端点在框图中是用细框框住的。如例子中的A+B和A-B端点。它们只能在VI程序框图中作为数据流终点。常量端点永远只能在VI程序框图中作为数据流源点。图框是LabVIEW实现程序结构控制命令的图形表示。如循环控制、条件分支控制和顺序控制等,编程人员可以使用它们控制VI程序的执行方式。代码接口节点(CIN)是框图程序与用户提供的C语言文本程序的接口。连线是端口间的数据通道。它们类似于普通程序中的变量。数据是单向流动的,从源端口向一个或多个目的端口流动。不同的线型代表不同的数据类型。在彩显上,每种数据类型还以不同的颜色予以强调。下面是一些常用数据类型所对应的线型和颜色:整 形 数兰色浮点数 橙色逻辑量 绿色字符串 粉色文件路径 青色当需要连接两个端点时,在第一个端点上点击连线工具(从工具模板栏调用),然后移动到另一个端点,再点击第二个端点。端点的先后次序不影响数据流动的方向。快速提示:接线头是为了帮助正确连接端口的连线。当把连线工具放到端口上,接线头就会弹出。接线头还有一个黄色小标识框,显示该端口的名字。当把连线工具放在端点上时,该端点区域将会闪烁,表示连线将会接通该端点。当把连线工具从一个端口接到另一个端口时,不需要按住鼠标键。当需要连线转弯时,点击一次鼠标键,即可以正交垂直方向地弯曲连线,按空格键可以改变转角的方向。创建第一个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. 连线完成后,单击运行按钮,便可在前面板上看到运行的结果。三、子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的数量。使用“编辑图标”可以定制该图标。如图:选择编辑图标后,便可打开图标编辑器。编辑器如图:各个控件的作用如图:一个像素一个像素地绘制和擦除绘制直线。使用限制绘制水平,垂直和对角线从图标象素选取前景色用前景色填充封闭区域使用前景色绘制矩形框。双击该工具,可以用前景色给图标加边框使用前景色绘制框并用背景色填充。双击该工具,可以用前景色给图标加边框并用背景色填充。选择图标区域,用于移动,复制,删除,或执行其他操作。双击次此工具并在键盘上按键将立刻删除整个图标。在图标中输入文本。双击该工具可以选择不同字体。在图标中通常采用小字体。显示当前前景色和背景色。分别单击前景和背景将进入彩色选项板,从中可以选择新的颜色。编辑好图标以后,就可以看到自己编辑的图标,如图:2.连接器:连接器是与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文件图标略有不同。第三讲 程序调试技术一、 运行VI运行VI将执行为该VI所设计的操作。工具栏上的运行按钮为白色实心箭头时表示VI可以运行。如下图所示:白色实心箭头也表示为该VI创建连线板后可将其作为子VI使用。 单击运行或连续运行按钮或程序框图工具栏上的单步执行按钮,VI便开始运行。VI运行时,运行按钮变为黑色箭头,表明该VI正在运行。如下图所示。 VI在运行时无法对其进行编辑。单击运行按钮,VI只运行一次,并在完成其数据流后停止。单击连续运行按钮,VI将连续运行直到手动停止VI的运行为止。如下图所示。单击单步执行按钮,VI将以步进方式运行。中止运行按钮令VI在当前循环完成前立即停止运行。二、找出语法错误如果一个VI程序存在语法错误,则在面板工具条上的运行按钮将会变成一个折断的箭头,表示VI程序不能被执行。这时这个按钮被称作错误列表。创建或编辑VI时,如VI存在错误,运行按钮显示为断开。如下图所示。如已完成程序框图的连线而该按钮仍显示为断开,则表示VI是断开的且不能运行。 查找VI断开的原因 警告并不妨碍VI运行。警告仅帮助用户避免VI中的潜在问题。而错误会使VI断开。VI在运行前须排除任何错误。 单击断开的运行按钮或选择查看错误列表可查找VI断开的原因。错误列表列出了所有的错误。错误项列出了内存中所有含有错误的项的名称,如VI和项目库。如两个或多个项具有相同的名称,则错误项部分会显示每一项的特定应用程序实例。错误和警告列出了在错误项中选中的VI错误和警告信息。详细信息描述了错误信息,有时还会建议如何纠正错误。单击帮助按钮,可显示LabVIEW帮助中对错误的详细描述和纠正错误步骤的相关主题。单击显示错误按钮或双击错误描述,可高亮显示程序框图或前面板中包含错误的区域。 如VI中含有警告且错误列表窗口中的显示警告复选框被选中,工具栏将包含警告按钮。如下图所示。 选择工具选项,然后从类别列表中选择调试,再选中默认在错误列表对话框中显示警告复选框,可将LabVIEW配置成总是在错误列表窗口中显示警告。在错误列表窗口打开时也可进行上述修改,并可立即查看修改结果。 VI断开的常见原因下表列出了编辑VI时导致VI断开的常见原因: 数据类型不匹配或存在未连接的接线端,会导致程序框图含有断线。 必需连接的程序框图接线端没有连线。 子VI处于断开状态或在程序框图上放置子VI图标后编辑了该子VI的连线板。 三、设置程序高亮执行在LabVIEW的工具条上有一个画着灯泡的按钮,这个按钮叫做“高亮执行”按钮。点击这个按钮使该按钮图标变成高亮形式,再点击运行按钮,VI程序就以较慢的速度运行,没有被执行的代码灰色显示,执行后的代码高亮显示,并显示数据流线上的数据值。这样,你就可以在根据数据的流动状态跟踪程序的执行。单击高亮显示执行过程按钮可查看程序框图的动态执行过程。如下图所示。高亮显示执行过程通过沿连线移动的圆点显示数据在程序框图上从一个节点移动到另一个节点的过程。使用高亮显示执行的同时,结合单步执行,可查看VI中的数据从一个节点移动到另一个节点的全过程。 注:高亮显示执行过程会导致VI的运行速度大幅降低。如错误输出簇报告错误,则在错误输出输出端旁将出现错误值,且错误值外围有一个红色边框。如没有错误发生,则错误输出输出端旁将出现确定按钮,其边框为绿色。四、断点与单步执行为了查找程序中的逻辑错误,你也许希望程序框图一个节点一个节点地执行。使用断点工具可以在程序的某一地点中止程序执行,用探针或者单步方式查看数据。使用断点工具时,点击你希望设置或者清除断点的地方。断点的显示对于节点或者图框表示为红框,对于连线表示为红点。当VI程序运行到断点被设置处,程序被暂停在将要执行的节点,以闪烁表示。按下单步执行按钮,闪烁的节点被执行,下一个将要执行的节点变为闪烁,指示它将被执行。你也可以点击暂停按钮,这样程序将连续执行直到下一个断点。断点:断点工具可在程序框图上的VI、节点或连线上放置一个断点,程序运行到该处时暂停执行。如下图所示。在连线上设置断点后,数据流经该连线后程序将暂停执行。在程序框图上放置一个断点,使程序框图在所有节点执行后暂停执行。VI暂停于某个断点时,程序框图将出现在最前方,同时一个选取框将高亮显示含有断点的节点或连线。光标移动到断点上时,“断点”工具光标的黑色区域变为白色。程序执行到一个断点时,VI将暂停执行,同时暂停按钮显示为红色。可采取以下措施: 用单步执行按钮单步执行程序。 在连线上添加探针查看中间数据。 改变前面板控件的值。 单击暂停按钮可继续运行到下一个断点处或直到VI运行结束。 LabVIEW将断点与VI一起保存,但断点只在VI运行时有效。选择操作断点然后单击查找按钮可查看所有断点。可逐个或在VI层次结构中删除断点。单步执行单步执行VI可查看VI运行时程序框图上VI的每个执行步骤。单步执行按钮仅在单步执行模式下影响VI或子VI的运行。如下图所示。单击程序框图工具栏上的单步步过或单步步入按钮可进入单步执行模式。将鼠标移动到单步步过、单步步入或单步步出按钮上可看到一个提示框,该提示框描述了单击该按钮后的下一步执行情况。可单步执行子VI,也可正常运行子VI。如单步执行VI同时高亮显示执行过程,则执行符号将出现在当前运行的子VI的图标上。如下图所示。五、探针你可以用探针工具来查看当框图程序流经某一根连接线时的数据值。从Tools工具模板选择探针工具,再用鼠标左建点击你希望放置探针的连接线。这时显示器上会出现一个探针显示窗口。该窗口总是被显示在前面板窗口或框图窗口的上面。在框图中使用选择工具或连线工具,在连线上点击鼠标右键,在连线的弹出式菜单中选择“探针”命令,同样可以为该连线加上一个探针。探针工具探针工具用于检查VI运行时连线上的值。如下图所示。如果程序框图较复杂且包含一系列每步执行都可能返回错误值的操作,则可使用探针工具。利用探针并结合高亮显示执行过程、单步执行和断点,可确认数据是否有误并找出错误数据。如数据存在,则探针会在单步执行期间或在断点暂停时立即更新。当执行过程由于单步执行或断点而在某一节点处暂停,可用探针探测刚才执行的连线,查看流经该连线的数值。 练习3-1目的:创建一个VI程序,练习前面板和程序框图中的各种编辑技术。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练习:编写并调试“数字滤波器”程序 将两个频率分别为1Hz和30Hz,幅值为1V的正弦波叠加,在波形图1中显示,对此叠加波形进行低通滤波,滤波后的信号在波形图2中显示。第四讲 程序结构-循环结构4.1 While 循环While循环是一种结构,它重复执行代码片段直到满足某种条件为止。它可比作传统语言中的Do Loop或RepeatUntil循环。它位于编程结构While循环。每个While循环都有一个条件端子和一个重复端子。如图:重复端子用于记录和输出已执行的循环的次数,条件端子输入的是一个布尔变量:真或假,While循环将一直执行到连接条件端子上的布尔值变成真或假为止,取决于条件端子设置为“真(T)时停止”还是“真(T)时继续”。在条件端子上单击右键即可进行更改。如图:该循环有如下特点:l 计数从0开始(i=0)。l 先执行循环体,而后i+1,如果循环只执行一次,那么循环输出值i=0。l 循环至少要运行一次。 下面举个简单的例子:利用While循环产生随机数,当产生的随机数大于0.8时,循环停止。 步骤如下:1. 打开前面板,新建两个数值显示控件,一个为循环次数,一个显示最后产生的那个大于0.8的随机数。如图:2 切换到程序框图,放置一个While循环,如图:3. 放置随机数函数到While循环内,并连线,如图:4. 放置比较函数,将循环次数与重复端子连线,如图:5 运行,即可在前面板上看到结果,如图:在程序框图中,在数值显示控件上单击右键,可更改数值的类型,如图:各种数值的类型都可以看见,我就不再赘述。 在While循环的边框上单击右键,可添加位移寄存器,如图:有关位移寄存器的用法,我们将会在下面讲到,这里暂不做介绍。 注意:While循环的条件端子一定要有连线,否则程序无法运行!如图:4.2 For循环For循环用于将某段程序执行指定次数。For循环位于函数编程结构For循环,如图:从图中可以看到,For循环有两个端子: 计数端子:要执行循环的次数,可用于For循环内部的循环计数 重复端子:已执行循环的次数,可用于For循环内部的重复计数 应用举例:产生10个随机数,并把最后一个显示出来。步骤如下:1 放置一个数值显示控件到前面板,并改名为随机数。2 放置For循环到程序框图,如图:3放置随机数函数到程序框图,并连线4计数端子上单击右键,选择创建常量,并输入10,如图:5运行程序,便可在前面板上看到结果。6因为程序的运行的速度非常快,我们无法一个一个地看清所产生的10个随机数,我们可以在程序框图中添加时间延迟控件。它位于函数编程定时时间延迟,如图:7 放置它到程序框图上,选择延迟的时间,即两次循环之间的时间间隔。如图:8 将时间设置为1.000,点击确定即可,再运行程序就可从前面板上看到所产生的随机数了。4.3 移位寄存器移位寄存器用于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
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 利用轴对称设计图案
- 2025至2030中国在线音乐行业发展研究与产业战略规划分析评估报告
- 2025至2030中国围巾行业消费动态及竞争格局研究报告
- 2025至2030中国厌氧胶和厌氧密封胶行业市场深度研究及发展前景投资可行性分析报告
- 中科大环境工程综合实验课件04活性污泥中微生物分离纯化与培养
- 甘肃省2024行测真题和答案
- 财务公司内部保密及竞业禁止合同
- 采煤队安全生产责任与承包管理合同
- 休闲饮品店品牌区域独家代理合同
- 三门峡市县事业单位招聘联考考试真题2024
- 护理事业十五五发展规划(2026-2030)
- 人教版(2024)七年级下册英语全册教案(8个单元整体教学设计)
- 10kV小区供配电设计、采购、施工EPC投标技术方案技术标
- 上半年我国经济形势分析与公司应对策略
- 07劳动力及资源配备计划
- 精馏-化工分离工程课件
- 医院健康体检表完整
- 二年级上册数学课件-2.1 乘法、除法一(乘法引入) ▏沪教版 (共16张PPT)
- 无人机驾驶员国家职业技能标准(2021年版)(word精排版)
- 中国教育学会会员申请表
- 新冀人版小学科学三年级下册全册教案(2022年春修订)
评论
0/150
提交评论