LabView上机实验指导书_第1页
LabView上机实验指导书_第2页
LabView上机实验指导书_第3页
LabView上机实验指导书_第4页
LabView上机实验指导书_第5页
已阅读5页,还剩40页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、实验1 labview编程环境与基本操作实验一、 实验目的l 了解labview的编程环境;l 掌握labview的基本操作方法,并编制简单的程序;l 学习建立子程序的过程。二、 实验设备安装有labview8的计算机。三、 labview介绍labview(laboratory virtual instrument engineering workbench,实验室虚拟仪器工作平台)是美国ni(national instrument)公司推出的一种基于g语言(graphics language,图形化编程语言)的虚拟仪器软件开发工具,是目前国际上应用最广的虚拟仪器开发环境之一,主要应用于仪器

2、控制、数据采集、数据分析、数据显示等领域,并适用于windows、macintosh、unix等多种操作系统平台。与传统程序语言不同,labview采用强大的图形化语言(g语言)编程,面向测试工程师而非专业程序员,编程方便,人机交互界面直观、友好。设计者可以象搭积木一样,轻松组建一个测量系统和构造自己的仪器面板,而无需进行任何繁琐的计算机代码的编写。labv1ew软件工具的特点可归纳为: l 图形化的编程方式,设计者无须写任何文本格式的代码,是真正的工程师的语言。 l 提供了丰富的数据采集、分析及存储的库函数。l 提供了传统的程序调试手段,如设置断点、单步运行,同时提供了独到的高亮执行工具,使

3、程序动画式运行,利于设计者观察程序运行的细节,使程序的调试和开发更为便捷。l 32位的编译器编译生成32位的编译程序,保证用户数据采集、测试和测量方案的高速执行。 l 囊括了daq、gpib、pxi、vxi、rs-232/485在内的各种仪器通信总线标准的所有功能函数,让不懂总线标准的开发者也能够驱动不同总线标准接口设备与仪器。l 提供大量与外部代码或软件进行连接的机制,如dll(动态链接库)、dde、activex等。l 强大的internet功能,支持常用网络协议,方便网络、远程测控仪器的开发。1. labview的工作环境 我们先来介绍一下labview的工作界面和文件目录(本书以lab

4、view8为例)。 1) 启动界面 启动labview后,首先出现如图1-1所示的对话框。对话框中各按钮的作用如下: l 【new】创建一个新的vi(virtual instrument)程序。 l 【open】打开一个已有的vi程序(通过浏览器或直接选择列出的最近10次使用的vi程序)。 l 【new to labview】学习labview的入门资料等。l 【upgrading to labview】labview 8的最新特征及功能等。l 【web resources】labview 8的网络资源导向等。l 【example】labview 8的例程等。2) 前面板窗口和框图程序窗口在l

5、abview启动对话框上单击【new】面板中的blank vi,图1-1 labview 8启动界面会出现两个没有标题的新窗口,其中一个为前面板(front pane1)窗口,另一个为框图程序(block diagram)窗口,这是labview提供给用户创建/设计虚拟仪器的工作环境。选择菜单栏的windows菜单,在弹出的快捷菜单中选择tile left and right选项,可将这两个窗口平铺排列,以便在设计程序时前面板与框图程序的相互对应。在labview8中,前面板上还增加了网格,有利于对象的排列,如图1-2所示。 图1-2 labview 8 前面板与框图程序窗口 前面板工具栏图

6、1-3 前面板工具栏前面板窗口和框图程序窗口都有各自的工具栏,工具栏包括用来控制vi的命令按钮和状态指示器。图1-3是前面板窗口的工具栏。下面介绍该工具栏中各按钮的作用: l (run,运行)单击它可以运行vi程序。在这里,读者要注意运行按钮的图案变化;如果运行的vi程序为最上级程序,则该按钮变为;如果运行的vi程序是一个被调用程序(如子程序),则该按钮变为;当程序出错,无法执行下去时,该按钮变为,表示vi程序由于出错而不能运行。如果想了解出错原因,可以单击该按钮,系统将弹出一个帮助窗口,列出所有错误。l (abort execution,终止运行)当vi程序执行时,工具栏上将出现,单击它就会

7、立即停止程序的运行。注意:使用该按钮停止vi程序的运行,是强制性的停止,可能会错过一些有用的信息。通常在设计程序时,可以通过设置按钮来控制vi程序的运行,这样就使得vi程序执行的是完整的、有序的过程。l (pause/continue,暂停/继续)单击该按钮可使vi程序暂停执行,再单击它,则vi程序继续执行。l (run continuous1y,连续运行)单击该按钮,此按钮变为,vi程序连续地重复执行,再次单击一下该按钮可以停止程序的连续运行。l (text settings,字体设置)单击该按钮将弹出一个下拉列表,从中可以设置字体的格式,如字体类型、大小、形状和颜色等。l (align o

8、bjects,排列方式)首先选定需要对齐的对象,然后单击该按钮,将弹出一个下拉列表,该列表可以设置选定对象的对齐方式,如竖直对齐、上边对齐、左边对齐等。l (distribute objects,分布方式)选定需要排列的对象,然后单击该按钮,将弹出一个下拉列表,从中可以设置选定对象的排列方式,如间距、紧缩等。l (reorder,重叠方式)当几个对象重叠肘,可以重新排列每个对象的叠放次序,如前移、后移等。 框图程序工具栏图1-4 框图程序工具栏框图程序窗口的工具栏按钮大多数与前面板工具栏相同,另外还增加了4个调试按钮。 框图程序窗口的工具栏如图1-4所示。 下面介绍4个调试按钮的作用: l (

9、highlight execution,高亮执行)单击该按钮,此按钮转换成为,vi程序以一种缓慢的节奏一步一步地执行,所执行到的节点都以高亮方式显示,这样用户可以清楚地了解到程序的运行过程,也可以很方便地查找错误。当再次单击该按钮时,即可以停止vi程序的这种执行方式,恢复到原来的执行方式。l (retain wire value,返回连线上的数值)单击此按钮,此按钮转换为。此时,当程序运行时,将保存流过数据线的数值。l (start singe stepping,单步执行)单击此按钮,程序将以单步方式运行,如果节点为一个子程序或结构,则进入子程序或结构内部执行单步运行方式。l (start s

10、ingle stepping)也是一种单步执行的按钮,与上面按钮不同的是:以一个节点为执行单位,即单击一次按钮执行一个节点。如果节点为一个子程序或结构,也作为一个执行单位,一次执行完,然后转到下一个节点,而不会进入节点内部执行。闪烁的节点表示该节点等待执行。l (step out)当在一个节点(如子程序或结构)内部执行单步运行方式时,单击该按钮可一次执行完该节点,并直接跳出该节点转到下一个节点。 3)快捷菜单 labv1ew菜单中使用最多的是快捷菜单,几乎所有用来创建虚拟仪器的对象都有可 选择的快捷菜单。在对象上单击右键即可访问快捷菜单。4)下拉式菜单labview窗口上部的菜单栏为下拉式菜单

11、。下拉式菜单包括最普通的选项如open、save、copy、paste以及labview的其他特殊选项。我们将在后面的使用中进行简单介绍。 2labview模板简介labview作为一种图形化的设计语言,主要提供3种图像化的模板来帮助创建vi: 工具模板(tools palette),控制模板(controls palette)和功能模板(functions palette)。前面板窗口和框图程序窗口都提供工具模板,而控制模板只出现在前面板窗口中,功能模板只出现在框图程序窗口中。前面板所需的各种“控件”均由控制模板提供。前面板的设计过程就是利用工具模板中的相应工具,从控制模板中取出所需的“控件

12、”并摆放在前面板窗口中的适当的位置。框图程序设计时所需的各种“功能函数”均由功能模板提供,利用工具模板中的工具, 从功能模板中选出相应的“图标”放置在框图程序窗口中。1) 工具模板(tools palette) 图1-5 工具模板选择windows菜单下的show tools palette选项可显示出工具模板,如图1-5所示。工具模板提供了用来操作、编辑前面板和框图程序上的对象所需的各种工具,可用来创建、修改和调试vi。当从工具模板中选择了某种工具后,鼠标光标就变为该工具的形状,表示可以进行某类操作。下面简单介绍各种工具的作用:l (automatic tool selection,自动工具

13、选择)绿灯亮时,开启工具自动选择功能,此时系统会根据鼠标所指对象的位置,自动变换成相应的操作工具。再单击该图标可关闭此功能。l (operate value,操作工具)可以操作前面板的控制器和指示器。当光标经过文本控制器、字符串控制器或数字控制器时,单击它后,就可以在操作工具所在的位置输入宇符或数字。l (position/size/select,选择工具)用于选择、移动和改变对象的大小。l (edit text,标签工具)用于输入标签文本或者创建自由标签。使用方法:单击标签工具,将所出现的光标移到前面板或框图程序的任意地方,输入注释文字或数字。l (connect wire,连线工具)用于在

14、框图程序上连接对象。l (object shortcut menu,对象快捷菜单工具)可弹出对象的快捷菜单,相当于在其他工具状态下单击右键。l (scroll window,翻滚工具)选中该工具,将它放置在窗口任意位置,使用鼠标拖动,可使窗口中的对象整体平移。而使用窗口滚动条只能单方向移动窗口中的对象。l (set/clear breakpoint,断点工具)使用该工具可以在vi函数和结构内设断点,当程序执行到断点时就暂停执行。l (probe data,探针工具)使用该工具可以在框图程序的连线上设置探针,程序调试时可以通过探针窗口来观察该连线上的数据变化情况。l (get color,颜色提

15、取)使用该工具可以提取对象的颜色,以便用于编辑其他对象。l (set color,颜色工具)使用该工具可以改变对的颜色,包括改变对象的前景色和背景色。2)控制模板(controls paletle) 图1-6 控制模板选择前面板窗口的windows菜单下的show controls palette选项或在前面板窗口上单击右键,可显示出控制模板,如图1-6所示。控制模板只用于前面板,用来创建控制器和指示器。下面简单介绍一些按钮和子模板的作用:l (图钉)把控制模板固定在桌面上。l (search)用于查找前面板控件或框图程序函数。l (options)当控制模板固定桌面上时候出现,用于定制控制面

16、板视图。l (numeric,数字)包括一些数字控制器和指示器。l (boolean,布尔)包括一些布尔值的控制器和指示器。l (string & path,字符串和文件路径)包括一些字符串及文件路径的控制器和指示器。l (array & cluster,数组和簇)包括一些数组型的控制器和指示器。l (list & table,清单和列表)包括一些清单和列表的控制器和指示器。l (graph,图形)提供各种显示数据图形的指示器。l (ring & enum,选项环和枚举)包括一些选项环和枚举型控制器。l (containers,容器)包括分页控件、子面板控件、activex控件容器。l (i/

17、o,输入/输出)包括一些输入/输出操作的控制器。l (refnum,文件标识)包括一些用于文件操作的文件标识控制器和指示器。l (decorations,修饰)包括一些图形对象,用于前面板的修饰。3) 功能模板(functions palette)图1-7 功能模板选择框图程序窗口的windows菜单下的show functions palette选项或在框图程序窗口 单击右键,可显示出功能模板,如图1-7所示。功能模板只用于框图程序窗口,用来创建框图程序。模板中显示的是一些子模板的图标,单击图标即可弹出相应的子模板。功能模板主要包含各种函数(子vi)及控制程序流程的结构。下面简单介绍一些子模

18、板的作用:l (structure,结构)包括一些程序控制结构,如for循环、while循环、case结构等以及全局变量、局部变量。l (numeric,数字)包括一些常用的数值运算符、数值运算式、数值常量以及数制转换、三角函数、对数、复数等运算。l (boolean,布尔)包括各种逻辑和布尔函数。l (string,字符串)包括一些对字符串进行处理的函数。l (array,数组)包括一些数组运算函数、数组转换函数以及常数数组等。l (cluster,簇)包括一些簇处理函数以及簇常数等。l (comparison,比较)提供各种比较运算函数。l (timing)包括一些时间处理函数。l (di

19、alog & user interface,对话框和用户接口)包括一些对话框窗口、用户接口的函数。l (file i/o,文件输入/输出)包括一些对文件输入/输出进行处理的程序和函数。l (waveform,波形)包括一些波形曲线的函数。l (signal processing,信号处理函数)包括一些对波形数据进行分析的函数。l (instrument i/o,仪器输入/输出)提供i/o接口设备驱动程序设计中使用的各种函数,如一些串行、gpib和v1sa仪器控制的输入/输出函数。l (application control,应用程序)包括一些应用程序控制的函数。l (graphics & so

20、und,图形声音)包括一些绘制2d、3d图形以及声音播放功能的函数。l (data communication,数据通信)包括按tcp、udp、dde、ole和apple.events等协议进行通信的功能函数及与通信相关的函数。l (report & generation,报表)包括一些生成报表样式及规格的功能函数。l (select a vi,选择vi程序)用来调入一个vi程序,并把该程序插入到当前vi的流程图中,作为子程序使用。3. labview程序设计的一般过程 一个完整的vi程序由3部分组成:前面板、框图程序和图标/连接口,因此一个vi程序的设计主要包括前面板的设计、框图程序的设计以

21、及程序的调试。用户在使用虚拟仪器时,对仪器的操作和测试结果的观察,都是在前面板中进行的,因此应根据实际中的仪器面板以及该仪器所能实现的功能来设计前面板。前面板主要由输入控制器(control)和输出指示器(indicate)组成。用户可以利用控制模板以及工具模板来添加输入控制器和输出指示器(添加后,会在框图程序窗口中出现对应的控制器和指示器的端口图标),使用控制器可以输入数据到程序中,而指示器则可用来显示程序产生的结果。框图程序相当于程序的源代码,只有创建了框图程序以后,该程序才能真正运行。对框图程序的设计主要是对节点、数据端口和连线的设计。当前面板和框图程序设计好以后,我们还需要对程序进行调

22、试,以排除程序执行过程中可能遇到的错误。程序的调试方法主要有:l 找出错误如果一个vi程序不能执行,运行按钮将会显示为一个折断的箭头。单击该按钮,则会弹出一个列有错误清单的对话框,选择任何一个所列出的错误,单击【show error】按钮就会显示出错的对象或端口。l 设置执行程序高亮在执行前单击高亮按钮,该按钮图标会变成高亮形式。这种执行方式一般用于单步模式,来跟踪框图程序中的数据流动。l vi程序的单步执行为了达到调试程序的目的,用户也许希望框图程序一个节点一个节点地执行。要设置单步执行模式,只需单击单步按钮。这样下一个将要执行的节点就会闪烁,指示它将被执行。用户也可以再次单击单步按钮,这样

23、程序将会变成连续执行方式。l 探针从工具模板中选择探针工具,将探针置于某根连线上,可以用来查看运行过程中数据流在该连线时的数据。l 断点从工具模板中选择断点工具,可以在程序的某处暂停程序执行,用探针或者单步方式查看数据。使用断点工具时,单击希望设置或清除断点的地方,断点的显示对于节点或者框图表示为红框,连线表示为红点。1) 前面板的设计图1-8 通过菜单项改变控制器和指示器的配置使用输入控件器和输出指示器来构成前面板。控制器是用户输入数据到程序的方法, 而指示器显示程序产生的数值。控制器和指示器有许多种类,可以从控制模板的各个子模中选取。两种最常用的数字对象是数字控制器和数字指示器。当在数字控

24、制器中输入或修改数值时,用户只需用操作工具(见工具模板)单击控制器的增减按钮,或者用操作工具或标签工具单击数值栏进行数值的修改。图1-9 前面板图1-10 框图程序绝大多数的控制器和指示器的配置是可以改变的:在控制器或指示器上单击右键,在弹出的快捷菜单中选择相应的选项来改变配置,如图1-8所示。一个vi程序的前面板如图1-9所示。2)框图程序的组成 框图程序由节点、端口和连线组成,如图1-10所示。 节点 节点是程序执行的元素,类似于文本程序中的语句、函数或者子程.序。labview共有 4种节点类型:函数,vi子程序,结构和代码接口(cins)。功能函数是内置节点,用于执行一些基本操作,如加

25、、减、乘、除等数学运算以及文件i/o、字符串格式化等。vi 子程序节点调用其他vi程序来作为子程序使用。结构节点(如for循环控制、while循环控制等)控制程序的执行方式。代码接口节点是框图程序与用c语言编写的用户编码之间的接口。上面的vi程序中有一个功能函数节点,它使两个数值相加。 端口端口是数据在框图程序部分和前面板之间传输的接口,以及数据在框图程序的节点之 间传输的接口。端口类似于文本程序中的参数和常数。端口有两种类型:控制器/指示器端口和节点端口(即函数图标的连线端口)。控制或指示端口用于前面板,当程序运行时,从控制器输入的数据就通过控制器端口传送到框图程序。而当vi程序运行结束后,

26、输出数据就通过指示器端口从框图程序送回到前面板的指示器。当在前面板创建或删除控制器或指示器时,可以自动创建或删除相应的控制器/指示器端口。前述程序的控制程序有两个控制器端口,一个指示器端口,同时在框图程序中,add功能函数在图标下隐含着节点端口。 连线连线是端口间的数据通道,类似于普通程序中的变量。数据是单向流动的,从源端口向一个或多个目的端口流动。不同的线型代表不同的数据类型,每种数据类型还以不同的颜色予以强调。 连线点(hot spot) 连线点是连线的线头部分。当需要连接两个端点时,在第一个端点上单击连线工具(从工具模板调用),然后移动到另一个端点,再单击第二个端点。端点的先后次序不影响

27、数据流动的方向。当把连线工具放在端点上时,该端点区域将会闪烁,表示连线将会接通该端点。当把连线工具从一个端口接到另一个端口时,不需要按住鼠标。当需要连线转弯时,单击一次鼠标,即可以正交垂直方向的弯曲连线,按空格键可以改变转角的方向。 接线头(tip s strip) 接线头是为了帮助端口的连线位置正确。当把连线工具放到端口上,接线头就会弹出。 接线头还有一个黄色小标识框,显示该端口的名字。图1-11 从框图程序窗口创建前面板对象3) 从框图程序窗口创建前面板对象 用任意labview工具,用户都可以用鼠标右键单击任意的labview功能函数或者子程序,然后可以弹出其快捷菜单,如图1-11所示。

28、4)数据流编程 vi程序的运行是“数据流”驱动的。对一个节点而言,只有当它的输入端口上的数据都有效以后,它才能被执行。当节点程序运行完毕后,它把结果数据送给所有的输出端口。“数据流”与常规程序的“控制流”相类似,相当于指令执行的顺序按照程序的编写顺序进行。如图1-12所示,这个vi程序把两个输入数值相乘,再把乘积减去50。在这个程序中, 框图程序从左往右执行,这个执行次序不是由于对象的摆放位置,而是由于相减函数的一个输入量是相乘函数的运算结果,它只有当乘法运算完成并把结果送到减法运算的输入口后才能继续下去。图1-12 数据流举例下面简单介绍这个vi框图程序的创建过程:(1)选择框图程序窗口。在

29、功能模板中选择numeric下的mu1tip1y(乘法)函数,放入框图程序窗口。(2)在此函数图标的左端输入端口上单击右键,从弹出的对话框中选择creat control,创建与它相连的一个控制器。(3)重复上面的步骤,创建第二个控制器同乘法函数的连接。(4)在功能模板中选择numeric下的substract(减法)函数,放入框图程序窗口。(5)在此函数左端相应输入端口上单击右键,从弹出的对话框中选择creat constant,创建一个常数。(6)在此减法(substract)函数右端输出端口上单击右键,从弹出的对话框中选择creat indicator, 创建指示器。图1-13 数据流举

30、例(7)用连线工具连线。(8)选择工具模板中的标签(edit text)工具修改标签并添入数字。(9)创建图标。创建方法如下:l 在前面板窗口或框图程序窗口的右上角的图标框中单击右键,从弹出快捷菜单中选择edit icon (或双击此图标框)。l 双击选择工具,选中默认的图标,按delete键,清除所选图标图案。l 用画图工具画出所需的图标。注意:在用鼠标画线时按住shift键,则可以画出水平 或垂直方向的直线。l 用文本工具写文字,双击文本工具可改变字体及字号。l 当图标创建完成后,单击【ok】按钮以关闭图标编辑。生成的图标将显示在前面板 窗口的右上角。(10)从file菜单中选择save命

31、令来保存此例子,起名为“例子1”。再看另一个程序,框图程序如图1-l3所示,您认为哪一个节点函数将先执行,是乘法、还是除法?这里是一个不定情况,因为所有输入量都是同时到达。如果是这样一种相互间无数据依赖关系的情况,而又必须明确函数执行的先后次序,就必须使用顺序(sequence)结构来明确执行次序(有关于顺序结构我们将在后续内容中介绍)。5)创建子程序 在labview中,每个vi程序都可以将其创建成子程序,以使其他程序调用。创建过程如下(在这里我们将上面vi程序“例子1”,创建成子vi): 图1-14 调用子程序(1)打开vi程序“例子1”。(2)创建接线端口。接线端口是vi程序数据的输入/

32、输出端口,创建过程如下:l 右键单击前面板中右上角的图标,从弹出的快捷菜单中选择show connector选项。此时,前面板窗口右上角的图标由接线端口取代,每个小矩形框代表一个连线的端口,这些端口用来将数据输入到vi程序中或将vi程序的数据输出。 labview将会根据控制器和指示器的数量选择一种接线端口模式。本例中只有3个端口:2个数字控制器(x和y),1个数字指示器(result1)。如有必要,还可在接线端口图标上单击右键,从弹出的快捷菜单中选择patterns选项来改变接线端口的模式。默认状态时,输入端口(控制器端口)在接线端口方框的左边,输出端口(指示器端口)在接线端口方框的右边。l

33、 把接线端口分配给相应的控制器和指示器。l 使用连线工具,在左边的接线端口框内单击鼠标,则端口将会变黑。再单击控制器,一个闪烁的虚线框将包围住该控制器。此时端口的颜色也会根据控制器的类型做相应的变换。现在单击右边的接线端口,使它变黑,再单击相应的指示器,这样就创立了该指示器与相应端口的连接。(3)保存此程序,以后我们就可以对其像子程序一样地调用了。(4)打开一个新的vi,在框图程序中选择functions all functions select a vi.,再选择上面我们保存的vi程序“例子1”。此时,此vi程序将以图标引形式出现。用连线工具可以看到它的连线端口,这样我们可以创建相应的控制器

34、和指示器,如图 1-14所示。四、 作业1熟悉labview的编程环境;2vi中的个模板是什么?简述其各自的功能;3在前面板和框图程序中,如何区分控制器和指示器;4设计一个vi程序,根据所给的x1,y2,x2,y2的值求出直线的斜率。把此程序作为子程序,自己设计一个简单的vi程序调用此子程序。实验2 labview编程结构实验 一、 实验目的l 学习并掌握for循环和while循环以及它们的不同点。l 学习使用移位寄存器(shift register)和反馈节点(feedback node)。l 学习顺序结构(sequence structure)、case结构(case structure)

35、和公式节点 (fomu1a node)的使用。二、 实验设备安装有labv1ew 8的计算机。三、 实验内容1. for循环和while循环 当程序有确定的循环次数时,我们使用for循环。在程序框图中添加for循环(functions all functions structure for loop),如图2-1所示。l (循环次数输入端)for循环必须给定循环次数n(n0,否则循环不执行),此项一般都要有输入。当for循环的输入数据是一个数组时(有关数组将在后续章节中介绍),如果不给定循环次数,则数组的大小将for循环的循环次数。如果同时输入两个数组,循环次数以数组个数最少的决定。l (循环

36、计数)计数范围为0n-1。当具体的循环次数不可知时,我们使用while循环(functions all functions structures while loop),如图2-2所示。图2-1 for循环图2-2 while循环while循环也有一个循环计数,第一次循环时的值为0。另外,while循环还有一个循环条件判断端子。请特别注意,无论加何,都要给while循环结构一个有效的停止条件,否则可能会使程序陷入死循环的状态。例如,希望在一组数据中寻找一个特定的数,找到后停止循环。由于这个特定的数的位置事先是不知道的,我们可以使用while循环来完成以上的操作,但如果我们将循环停止的条件只是定

37、为找到特定的数就停止,那么,当由于各种原因造成的在这样的一组数据中不存在这个特定的数时,while循环将无限运行下去。因此,我们还需要加入其他判断条件,例如我们的循环停止条件可以改为:找到特定的数或者整个数组都找完,则停止。labview 8对while循环还提供了一个快捷的方式:functions execution control while loop,程序框图如图2-3所示,与上面不同的只是自动加了一个停止按钮。2. 移位寄存器和反馈节点在使用循环结构时,经常会遇到下一次循环要用到上一次循环运行结果的情况,这时就需要不断地将每次循环运行的结果存储下来,以传递给下一次循环。移位寄存器(sh

38、ift register)和反馈节点(feedback node)就是用来实现这样的操作的。图2-3 快速while循环在for循环和whi1e循环中都可以添加寄存器和反馈节点,添加方法如下: 1) 移位寄存器(shiift register) 在for循环或while循环的边框上单击右键,在弹出的快捷菜单中选择add shift register,如图2-4(a)和图2-4(b)所示。 (a) 为for循环设置移位寄存器(b) 为while循环设置移位寄存器图2-4 设置移位寄存器2)反馈节点(feedback node) 反馈节点是labview 7 exdress中新增的功能,完成的功能

39、同移位寄存器类似。在for 循环或whi1e循环中,只要将其中的子vi、函数的输入/输出相连接,就会自动出现反馈节点。当然,也可以通过functions execution control feedback node来添加。在反馈节点上单击右键,从弹出的快捷菜单中选择replace with shift register,反馈节点将变成移位寄存器,如图2-5所示。图2-5 将反馈节点变为移位寄存器图2-6 反馈节点和移位寄存器下面我们通过一个简单的例子来看一下移位寄存器和反馈节点是如何工作的。程序框 图如图2-6所示。 这里如果我们不给移位寄存器和反馈节点赋初值(本例中为for循环框左边的两个

40、常数0),下次程序运行时,移位寄存器和反馈节点中的值将以上次运行完的值开始。 3. 顺序结构(sequence structure) (a) flat sequence structure(b) stacked sequence structure图2-7 两种顺序结构在实验1中我们提到,vi程序的运行是“数据流”驱动的,有时候我们必须对这种数据流进行控制,这样就用到了顺序结构。在labview 8中有两种顺序结构:f1at sequence structure和stacked sequence structure,如图2-7(a)和图2-7(b)所示。图2-8 添加帧图2-9 添加seque

41、nce local使用flat sequence structure可以看到整个程序框图,当程序框图所占的空间的大小允许时,可以使用这种顺序结构。在程序框上单击右键,在弹出的快捷菜单中选择add frame after或add frame before,这样可以在本帧后或前再添加一帧,如图2-8所示。使用stacked sequence structure比较节省空间,但是数据在各帧中的传递必须通过 sequence local来实现,并且每次只能显示一帧。可以用类似的方法来添加前一帧或后一帧,在弹出的快捷菜单中选择add sequence local,则在顺序结构中添加sequence lo

42、cal,如图2-9所示。4. case结构(case structure) 图2-10 case结构图2-11 结构举例框图程序case结构(如图2-10所示)的输入端可以连接布尔型和数字型变量。当连接的是布尔型变量时,只有true case和false case两种。当连接的是数字型变量时,case框上面的标识将变成数字0,1,根据输入量的不同,case结构选择运行不同的程序。关于case结构,我们举例如下,程序框图如图2-11所示。默认状态下,case结构只有0和1两项,用右键单击case结构的边框,从弹出的快捷菜单中选择add case after来添加一个case,如图2-12所示。图

43、2-12 添加case前面板如图2-13所示。用来选择需要的操作是加法、减法还是乘法。选择all controls ring & enum menu ring,然后通过工具模板中的选择工具 (position/size/select)改变大小。可以单击右键,从弹出的快捷菜单中选择visible items lable来隐藏标签ring。也可以选择菜单中的properties,在弹出的对话框中改变其属性, 同时添加如图2-14所示的内容。5. 公式节点(formula node) 一些复杂的计算过程我们可以交给公式节点来完成,我们所要做的就是将计算公式输 入公式节点,规定输入值和输出值就可以了。

44、在labview7以前的版本中,公式的输入还是比较麻烦的,需要严格按照规定写公式,而labview7 express开始提供了一种更为简便图2-13 case结构举例前面板图2-14 属性设置的方式,来解决大多数的计算问题(和以前版本相同的公式节点在functions all functions structures formula node中)。我们可以通过labview 8自带的一个例子来看看公式节图2-15 calculation on dynamic data.vi前面板图2-16 calculation on dynamic data.vi框图程序点是如何工作的,同时也感受一下lab

45、view 8的方便快捷。从help菜单下选择find example,在弹出的对话框中选择new example for labview7.0 express vis calculation on dynamic data.vi,打开vi程序。前面板如图2-15所示。框图程序如图2-16所示。simulate signal(functions express signal analysis simulate signal)在框图程序中添加此项后,将自动弹出一个对话框(如图2-17所示),可以对输出波形的属性进行设置。设置完成后单击【ok】按钮,结束设置。以后要更改设置只需用鼠标双击图标就可以了

46、。图2-17 simulate signal 属性设置图2-18 formula属性设置formula(functions express arithmetic & comparison formula)添加此选项,同样会弹出一个对话框,设置参数如图2-18所示。time delay(functions execution control time delay)起延时的作用,添加后会弹出一个对话框,要求输入延迟时间,如图2-19所示。一般来说,为了能够实现分时互用,在循环结构中都要添加延时;也可以在functions all functions time & dialog中选择其他延时函数。图

47、2-19 time delay 设置merge signals(functions signal manipulation merge signals)用来将两个或两个以上的信号合并成单一的信号输出。当一个信号和另一个信号相连时,这个函数将自动出现。四、 作业 1.说明for循环和while循环的区别。 2.用case结构编写一个小程序。 3.用顺序结构编写一个小程序。 4.使用公式节点时,如果输入变量的名称同输出变量的名称相同时,会怎样? 实验3 labvlew图形、数组、簇编程实验 一、 实验目的 l 学习如何创建数组和簇,掌握它们的区别以及相应的操作。l 学习并掌握chart和graph

48、的使用,了解它们的区别。l chart的三种显示模式。 二、 实验设备 装有labview 8的计算机。三、 实验内容 1. 数组 数组是一些具有相同类型的元素组成的集合。数组包含两方面的内容:元素和维数。 数组中的元素可以是数字、布尔、字符、路径、波形和簇等数据类型。建立数组的步骤加下:(1) 从数组和类子模板(controls all controls array & cluster)上选中数组 (array),放置在前面板设计窗口中,此时为一个数组空壳,可以向里面添加(用拖曳的方法)数字、布尔、字符等数据类型的控制器或指示器,来建立相应的数组控制器和指示器。此时可以看到数组上有如下两个显

49、示窗:l 标号显示窗标号从0开始,每单击一饮“增加”键,标号显示值顺序递增。这个标号就是数组元素的序号;对于一个含几个元素的数组,其标号为0n-1。l 元素显示窗用来显示元素的数值。数组中的元素按序号排列。数组元素的查找按行/列标号进行。图3-1 增加数组维数(2) 右键单击标号窗口,弹出一个快捷菜单(如图3-1所示),选择add dimension来增加数组的维数。每单击add dimension选项一次,维数就增加一维。2. 簇簇相当于一个容器,容器中的元素可以是各种不同的数据类型。也就是说,可以在一个簇中放置控制模板上的各种控件,如数字控件、布尔控件、数组控件等,但是不能将输入控件和输出

50、控件同时放入其中。因此,在编辑流程图时,可以减少连线数以及连线的节点数,最终简化流程图。它有多个输入,一个输出。要建立簇,可选择控制模板中数组和类子模板(controls all controls array & cluster)上的cluster,将其调入前面板。向类控件中放入元素,即将控制模板中的相应控件放入其中,俗称把元素“捆绑在一起。图3-2 簇右键单击簇控件的边框,弹出一个快捷菜单,如图3-2所示。快捷菜单中前8项的功能与数字控件相同,后3项说明如下: 图3-3 recorder controls in cluster 设置举例l reorder controls in cluste

51、r用于设置类控件中各元素的排列顺序,这个排列顺序是输出信号的顺序,如图3-3所示。在cluster输出1和c1uster输出2两个簇控件中,元素输出的排列顺序不一样。l 单击该选项后,出现如图3-4所示的快捷菜单,选择相应的选项,可自动调节类控件的边框大小以及排列方式。l properties用来定义类控件的一些属性,如上面提到的“autosizing”,改变标签(label)的名称,是否显示标签(labe1)等内容,以及添入描述信息。这是 labwew 7 express中新增加的属性页面,可以方便地自定义前面板对象。属性页面如图3-5所示,将前面板的属性特征集中到了一些简单的配置对话框中。

52、数组和簇的区别如下:l 可以包含不同的数据类型,而数组仅可以包含相同的数据类型。 l 簇具有固定的大小。图3-5 簇属性设置图3-4 autosizing 设置3. 图形子模板 labview的图形子模板(controls all controls graph)提供完成各种图形显示功能的控件。这里主要介绍图形子模板中3种常用的图形控件:waveform chart,waveform graph和xy graph。1)waveform chart控件 它完成信号的动态显示,即每接收到一个(或一组)数据,就立即显示一个(或一组)数据,但显示的所有数据的总个数或波形的长度是一定的。新数据不断淘汰掉旧

53、数据而得以显示。因此,这种显示方式非常适合描述数据动态变化的规律,适合实时数据的动态观察。它可以输入一维或二维数组,显示一维或二维动态波形。动态显示还有3种模式:strip chart、scope chart和sweep chart,如图3-6所示,默认模式为strip chart(在waveform chart上单击右键,选择advance update mode进行设置)。l strip chart显示模式每接收一个新数据,该数据显示在前一个数据的右侧,当数据曲线到达显示区的右边缘时,原有数据曲线左移。(a) strip chart(b) scope chart(c) sweep char

54、t图3-6 3种显示模式l scope chart显示模式当数据曲线到达显示窗口的右边缘时,曲线被清除,又从左边界开始重新显示曲线。l sweep chart显示模式在新数据开始的地方出现一条竖直线,然后竖直线随着 数据曲线右移。右键单击waveform chart,弹出一个快捷菜单(如图3-7所示),主要功能简介如下: visible items当选择vmible1比ms选项时,弹出子菜单如图3_7所示,未介绍过的选项功能如下: l plot legend当选中此选项后(选项前打钩),waveform chart的右上角出现所示图标,可以用工具模板(tools pa1ette)中的选择工具

55、(position/size/select)扩展该图标至“plot n”,表示在一个坐标图中可以同时显示n+1个图形。右键单击此图标,可弹出下一级快捷菜单,可以对图形线条的颜色、样式、宽度等进行设置。l scale legend选中后出现所示图标,可以用来改变横/纵坐标单位、显示方式、坐标刻度的有效位数、坐标网格的颜色等。l graph display选中后将出现所示图标,以用来对图形进行局部放大、缩小以及图形的整体移动,左边第一项用来返回标准模式。图3-7 visible 子菜单l digital display选中后出现一个数字选择窗口,显示每次收到的一组数据中的最后一个数值。l x sc

56、rollbar选择此选项后,出现图标,可以用工具模板(tools palette)中的操作工具(operate value)移动中间的滚动条,来显示前面或后面的图形。l x scale默认状态为选中,否则隐藏横坐标。l y scale默认状态为选中,否则隐藏纵坐标。 create 图3-8 creat 子菜单选中create,弹出的快捷菜单如图3-8所示,可以用来创立局部变量(local variable) 属性节点(property node)、设置waveform chart的参数(reference)和调用节点(invoke node)。 x scale单击x scale,弹出的快捷菜单如图3-9所示。其中各项功能简介如下:l add marker选中arbitrary时有效。用鼠标单击该选项后,用户可

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论