当前位置:文档之家› LabVIEW实验指导书

LabVIEW实验指导书

LabVIEW实验指导书
LabVIEW实验指导书

L a b V I E W实验指导书集团标准化办公室:[VV986T-J682P28-JP266L8-68PNN]

实验1 LabVIEW编程环境与基本操作实验

一、实验目的

●了解LabVIEW 7 Express的编程环境。

●掌握LabVIEW的基本操作方法,并编制简单的程序。

二、实验设备

安装有LabVIEW 7 Express的计算机

三、实验内容

1、LabVIEW的工作环境

1)启动界面

对话框各按钮作用如下:

【New】——创建一个新的VI(Virtual Instument)程序。【Open】——打开一个已有的VI程序

【Configure】——设置NI的测量和控制工具,如DAQmax的设置【Help】——LabVIEW帮助

2)面板窗口和框图程序窗口

①前面板窗口工具栏:

(Run,运行) (Abort Execution,终止运行) (Pause/Continue,暂停/继续) (Run Continuously,继续运行)(Text Settings,字体设置)(Align Objects,排列方式) (Distrbute Objects,分布方式) (Reorder,重叠方式)

②框图程序工具栏

(Highlight Execution,高亮执行) (Start Single Stepping,单步执行) (Start Single Stepping) (Step Out)

2、LabVIEW模板介绍

1)工具模板(Tools Palette)2)控制模板(Control Palette)

3)功能模板 (Functions Palette)

3、LabVIEW程序设计的一般过程

1)前面板设计

使用输入控件器和输出指示器来构成前面板。控制器是用户输入数据到程序的方法,而指示器显示程序产生的数值。

2)框图程序的组成

框图程序由节点、端口和连线和组成。

前面板框图程序

3)从框图程序创建前面板对象

用任意LabVIEW工具,用户都可以用鼠标右键单击任意的LabVIEW 功能函数或者子程序,然后可以弹出其快捷菜单。

4)数据流编程

VI程序的运行是“数据流”驱动的。对一个节点而言,只有当它的输入端口上的数据都有效以后,它才能被执行。当节点程序运行完毕后,它把结果数据送给所有的输出端口。“数据流”与常规程序的“控制流”相类似,相当于指令执行的顺序按照程序的编写顺序。

如下图,这个VI程序把两个输入数值相乘,再把乘积减去50。

下面简单介绍这个VI框图程序的创建过程:

①选择框图程序窗口。在功能模板中选择Numeric下的Multiply(乘法)函数,放入框图程序窗口。

②在此函数图标的左端输入端口上单击右键,从弹出的对话框中选择CreatControl,创建一个与它相连的控制器。

③重复上面的步骤,创建第二个控制器同乘法函数的连接。

④在功能模板中选择Numeric下的Subtract(减法)函数,放入框图程序窗口。

⑤在此函数左端相应输入端口上单击右键,从弹出的对话框中选择CreatConstant,创建一个常数。

⑥在此减法(Subtract)函数右端输出端口上单击右键,从弹出的对话框中选择CreatIndicator,创建指示器。

⑦用连线工具连线。

实验2 Labview编程结构实验

一.实验目的

学习并掌握For循环和While循环以及它们的不同点。

学习移位寄存器(Shift Register)和反馈节点(Feedback Node)

学习顺序结构(Sequence Structure),Case结构和公式节点(Formula Node) 的使用。

二.实验设备

安装有Labview 7 Express的计算机

三.实验内容

1.For循环和While 循环

当程序有循环次数时,我们使用For循环。在程序框图中添加For循环(Function—All Function---Structures—For Loop)

图2---1 For循环示意图

当具体的循环次数不可知时,我们使用While循环(Function—All Function---Structures—While Loop)

图2---2 While 循环示意图

Labview 7 Express对While循环还提供了一个快捷方式:(Function—Execution---Control—While Loop),与上面不同是自动加了一个停止按纽。

2.移位寄存器和反馈节点

移位寄存器(Shift Register)

移位寄存器可以将数据从一个循环周

期传递到另外一个周期。在程序设计中,

经常要用到它.创建一个移位寄存器的方

法是,用鼠标右键单击循环的左边或者右

边,在快捷菜单中选择Add Shift

Register。如右图所示。

移位寄存器在流程图上用在循环边框上相应的一对端子来表示。右边的端子中存储了一个周期完成后的数据,这些数据在这个周期完成之

后将被转移到左边的端子,赋给下一个周期。移位寄存器可以转移各种类型的数据--数值、布尔数、数组、字符串等等。它会自动适应与它连接的第一个对象的数据类型。下图表示了它的工作过程.

图2-3 Shift Register的工作过程

反馈节点(Feedback Node)

反馈节点是Labview 7 Express新增的功能,完成的功能同移位寄存器类似,在循环While或For循环中,只要将其中的子VI,函数的输入/输出相连接,就会自动出现反馈节点。当然也可以通过(Function—Execution Control—Feedback Node)来添加。在反馈节点上单击右键,从中选择Replace With Shift Register,反馈节点变成移位寄存器如下图所示:

图2-4 为While循环设置移位寄存器

图2-5 为For循环设置移位寄存器

3.分支结构:Case

Case结构含有两个或者更多的子程序(Case),执行那一个取决于与选择端子或者选择对象的外部接口相连接的某个整数、布尔数、字符串或者标识的值。必须选择一个默认的Case以处理超出范围的数值,或者直接列出所有可能的输入数值。Case结构见下图,各个子程序占有各自的流程框,在其上沿中央有相应的子程序标识:Ture、False或1、

2、3…。按钮用来改变当前显示的子程序(各子程序是重叠放在屏幕同一位置上的)。

False

2-6 使用 Case结构

目的:创建一个VI以检查一个数值是否为正数。如果它是正的,VI就计算它的平方根,反之则显示出错。

打开一个新的前面板,并按照下图所示创建对象。控制对象用于输入数值,显示对象用于显示该数值的平方根。

流程图

.照下图创建流程图。

图2-7 练习2-4的面板和流程图

1.从FunctionsStructures中选择一个 Case结构,并放置在在流程图中。Case 结构是一个可以改变大小的方框。先来做Ture的情况,照流程图上半部分构造。

(FunctionsComparison)——如果输入数值大于或者等于0就会返回一个TRUE值。Square Root 函数(FunctionsNumeric)——返回输入数值的平方根。

A

D

B

连好线

2.点击Case 框的选择按钮,转入False 情况编程

数值常数(FunctionsNumeric )——这里用于显示错误的代数值。 One Button Dialog 函数(FunctionsTime & Dialog )——在这

里它用于显示一个对话框,内容是Error...。

3.字符串常数 (FunctionsString)——用Edit Text Tools 在对话框中输入字符串。

4.该VI 在TRUE 或者FALSE 情况下都会执行。如果输入的数值大于等于0,VI 会执行TRUE Case ,返回该数的平方根,否则将会输出-,并显示一个对话框,内容为Error...。

5.返回前面板,运行该VI 。修改标签为Number 的数字式控制对象的数值,分别 尝试一个正数和负数。注意,当把数字式控制对象的值改为负数时,LabVIEW 会显示Case 结构的FALSE Case 中设置的出错信息。 保存该 VI 到LabVIEW\Activity 目录中的Square 。

4.顺序结构(Sequence Structure )

在代码式的传统编程语言中,默认的情况是,程序语句按照排列顺序

执行,但LabVIEW中不同,它是一种图形化的数据流式编程语言。在图2-7左图中,假设有A、B、C、D4个节点,其数据流向如右图所示。按照数据流式语言的约

图2-8 顺序结构的说明

定,任何一个节点只有在所有的输入数据有效时才会执行,所以图中,当且仅当A、B、C3个节点执行完,使得D节点的3个输入数据都到达D 节点后,D节点才执行。但是你要注意,这里并没有规定A、B、C3个节点的执行顺序。在LabVIEW中这种情况下,A、B、C的执行顺序是不确定的,如果你需要对它们规定一个确定的顺序,那就需要使用。

图2-8中的右边是顺序结构的图标,它看上去像是电影胶片。它可以按一定顺序执行多个子程序。首先执行0帧中的程序,然后执行1帧中的程序,逐个执行下去。与Case结构类似,这多帧程序在流程图中占有同一个位置。

使用顺序结构

目的:创建一个 VI,计算生成等于某个给定值的随机数所需要的时间。

打开一个新的前面板,并按照下图所示创建对象。

图2-9 前面板

我们约定数据是0到100范围的整数。当前值用于显示当前产生的随机数。“执行次数”用于显示达到指定值循环执行的次数。匹配时间用来显示达到指定值所用的时间。

流程图

图2-10 流程图(共3帧)

在流程图中放置顺序结构(FunctionsStructures)。

用鼠标右键单击帧的边框,在快捷菜单中选择Add Frame After,创建一个新帧。重复这个步骤,再创建一个帧。共3桢。

选中第0桢,设置读取初始时间(子)程序

第0帧的下边框上含有一个小方框,其中有一个箭头。这个方框叫做顺序局部变量,可以在同一个顺序结构中的各个帧之间传递数据。用鼠标右键单击第0帧的底部边框,选择Add Sequence Local,创建顺序局部变量。顺序局部变量显示为一个空的方块。当您将某个功能函数与顺序局部变量相连时,方块中的箭头就会自动显示。

Count (ms) 函数(FunctionsTime & Dialog)——返回启动到现

在的时间(以毫秒为单位)。在这里例子里需要使用两个这个函

数。另一个在第2帧中。

按图连好线。转入第1帧。该帧是匹配计算,内含一个循环结构。该图

中使用的新函数有:Round to Nearest函数(FunctionsNumeric)——在该例中,它用于取0到100之间的随机数到距离最近的整数。Not Equal函数(Functions Comparison)——在该例中,它将随机数和前面板中设置的数相比较,如果两者不相等会返回TRUE值,否则返回FALSE。Increment函数(FunctionsNumeric)——在该例中,它将While循环的计数器加1。

按图连好线。转入第2帧在第0帧中,Tick Count (ms)功能函数将以毫秒为单位表示当前时间。这个数值被连到顺序局部变量,这样它就可以被后续的帧使用。在第1帧中,只要函数返回的值与指定值不等,VI 就会持续执行While循环。在第2帧中,Tick Count (ms)功能函数以毫秒为单位返回新的时间。VI从中减去原来的时间(由第0帧通过顺序局部变量提供)就可以计算出花费的时间。

返回前面板,在Number to Match控制对象中输入一个数值,执行该VI。

把该VI保存为LabVIEW\Activity目录下Time to 。

5.公式节点(Formula Node)

公式节点是一个大小可变的方框,可以利用它直接在流程图中输入公式。从FunctionsStructures中选择公式节点就可以把它放到流程图中。当某个等式有很多变量或者非常复杂时,这个功能就非常有用。例如等式:y = x2 + x + 1使用公式节点可以表示为:

图2-10公式节点示意图

利用公式节点可以直接输入一个或者多个复杂的公式,而不用创建流程图的很多子程序。使用文本编辑工具来输入公式。创建公式节点的输入和输出端子的方法是,用鼠标右键单击第0帧的底部边框,选择Add Input (Add Output)。再在节点框中输入变量名称。变量名对大小写敏感。然后就可以在框中输入公式。每个公式语句都必须以分号(;)结尾。

公式节点的帮助窗口中列出了可供公式节点使用的操作符、函数和语法规定。一般说来,它与C语言非常相似,大体上一个用C写的独立的程序块都可能用到公式节点中。但是仍然建议不要在一个公式节点中写过于复杂的代码程序。

下面这个例子显示了如何在一个公式节点中执行不同条件时的数据发送。

请阅读下面这段程序代码,如果X为正数,它将算出X的平方根并把该值赋给Y,如果X为负数,程序就给Y赋值-99。

if (x >= 0) then

y = sqrt(x)

else

y = -99

end if

可以用公式节点取代上面这段代码,如下图所示:

注意:公式节点中变量字母X,Y大、小写是有区别的,开方的函数sqrt(X)中函数名称是小写。

目的:创建一个VI,它用公式节点计算下列等式:

y1 = x 3– x 2 + 5

y2 = m* x + b

x的范围是从0到10。可以对这两个公式使用同一个公式节点,并在同一个图表中显示结果。

前面板:

图2-11 练习2-6的面板

1.打开一个新的前面板,按照上图(该图中包含运行结果)创建前面板中的对象。波形图显示对象用于显示等式的图形。该 VI使用两个数字式控制对象来输入m和b的值。

2.按照下图创建流程图。

图2-12 练习2-6的流程图

在创建某个输入或者输出端子时,必须给它指定一个变量名。这个

变量名必须与公式节点中使用的变量名完全相符。

公式节点中,在边框上单击鼠标右键,在快捷菜单中选择Add Input,可以创建三个输入端子。在快捷菜单中选择Add Output,创建输出端子。

的范围是从0到10(包括10),就必须连接11到计数端子。

Array (FunctionsArray)——在这个例子中,它用于将两个

数据构成数组形式提供给一个多曲线的图形中。通过用变形工

具拖拉边角就可以创建两个输入端子。

3.返回前面板,尝试给m和b赋以不同的值再执行该 VI。

4.把该VI保存为LabVIEW/Activity目录下的。

三.作业

1.说明循环和循环的区别

2.用结构编写一个小程序

3.用顺序结构编写一个小程序

4.使用公式节点时,如果输入变量的名称同输出变量的名称相同会怎么样

实验3 LabVIEW图形、数组、簇编程实验

一、实验目的

1.学习如何创建数组和簇,掌握它们的区别以及相应的操作。

2.学习并掌握Chart和Graph的使用,了解他们的区别。

的三种显示模式。

二、实验设备

安装有LabVIEW 7 Express的计算机。

三、实验内容

1.数组

数组是一些具有相同类型的元素组成的集合。数组包含两方面的内容:元素和维数。数组中的元素可以是数字、布尔、字符、路径、波形和簇等数据类型。

建立数组的步骤如下:

从数组和类子模板(Control → All Controls →

Array&Cluster)上选中数组(Array),放置在前面板设计窗口

中,此时为一个数组空壳,可以向里面添加(用拖拽的方法)数

字、布尔、字符等数据类型的控制器或指示器,来建立相应的数

组控制器和指示器。此时可以看到数组上有如下两个显示窗:

标号显示窗——标号从0开始,每单击一次“增加”键,标号显示值顺序递增。

这个标号就是数组元素的序号;对于一个含n个元素的数组,其标号为

0~n-1。

元素显示窗——用来显示元素的数值。数组中的元素按序号排列。

数组元素的查找按行/列标号进行。

右键单击标号窗口,弹出一个快捷菜单(如图3-1所示),选择Add Dimension来增加数组的维数。每单击Add Dimension选项一次,维数就增加一维。

图3-1 增加数组维数

2.簇

簇相当于一个容器,容器中的元素可以是各种不同的数据类型。也就是说,可以在一个簇中放置控制模板上的各种控件,如数字控件、布尔

控件、数组控件等,但是不能将输入控件和输出控件同时放入其中。因此,在编辑流程图时,可以减少连线数以及连线的节点数,最终简化流程图。它有多个输入,一个输出。

要建立簇,可选择控制模板中数组和类子模板(Control→All Control→Array&Cluster)上的Cluster,将其调入前面板。向类控件中放入元素,即将控制模板中的相应控件放入其中,俗称把元素“捆绑”在一起。

右键单击簇控件的边框,弹出一个快捷菜单,如图3-2所示。

图3-2 簇

快捷键菜单中前8项的功能与数字控件相同,后3项说明如下:

Reorder Control In Cluster ——用于设置类控件中各元素的排列

顺序,这个排列顺序是输出信号的顺序,如图3-3所示。

相关主题
文本预览
相关文档 最新文档