实验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,运行) (Pause/Continue,暂停/继续)
(Text Settings,字体设置)
(Distrbute Objects,分布方式) ②框图程序工具栏
(Highlight Execution,高亮执行) (Start Single Stepping)
(Start Single Stepping,单步执行) (Step Out)
(Abort Execution,终止运行) (Run Continuously,继续运行) (Align Objects,排列方式) (Reorder,重叠方式)
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(乘法)函数,放入框图程序窗口。
②在此函数图标的左端输入端口上单击右键,从弹出的对话框中选择Creat?Control,创建一个与它相连的控制器。
③重复上面的步骤,创建第二个控制器同乘法函数的连接。
④在功能模板中选择Numeric下的Subtract(减法)函数,放入框图程序窗口。 ⑤在此函数左端相应输入端口上单击右键,从弹出的对话框中选择Creat?Constant,创建一个常数。
⑥在此减法(Subtract)函数右端输出端口上单击右键,从弹出的对话框中选择Creat?Indicator,创建指示器。 ⑦用连线工具连线。
实验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.移位寄存器和反馈节点
2.1移位寄存器(Shift Register)
移位寄存器可以将数据从一个循环周期传递到另外一个周期。在程序设计中,经常要用到它.创建一个移位寄存器的方法是,用鼠标右键单击循环的左边或者右边,在快捷菜单中选择 Add Shift Register。如右图所示。
移位寄存器在流程图上用在循环边框上相应的一对端子来表示。右边的端子中存储了一个周期完成后的数据,这些数据在这个周期完成之后将被转移到左边的端子,赋给下一个周期。移位寄存器可以转移各种类型的数据--数值、布尔数、数组、字符串等等。它会自动
适应与它连接的第一个对象的数据类型。下图表示了它的工作过程.
图2-3 Shift Register的工作过程
2.2反馈节点(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
3.1 Case结构含有两个或者更多的子程序(Case),执行那一个取决于与选择端子或者选择对象的外部接口相连接的某个整数、布尔数、字符串或者标识的值。必须选择一个默认的Case以处理超出范围的数值,或者直接列出所有可能的输入数值。Case结构见下图,各个子程序占有各自的流程框,在其上沿中央有相应的子程序标识:Ture、False或1、2、3…。按钮用来改变当前显示的子程序(各子程序是重叠放在屏幕同一位置上的)。 按钮 条件端子 子程序标识 2-6 使用 Case结构
目的:创建一个VI以检查一个数值是否为正数。如果它是正的,VI就计算它的平方根,反之则显示出错。
打开一个新的前面板,并按照下图所示创建对象。控制对象用于输入数值,显示对象用于显示该数值的平方根。 流程图
3.2.照下图创建流程图。
图2-7 练习2-4的面板和流程图
1.从Functions?Structures中选择一个 Case结构,并放置在在流程图中。Case 结构是一个可以改变大小的方框。先来做Ture的情况,照流程图上半部分构造。
(Functions?Comparison)——如果输入数值大于或者等于0就会返回一个TRUE值。Square Root 函数(Functions?Numeric)——返回输入数值的平方根。 连好线
2.点击Case框的选择按钮,转入False情况编程
数值常数(Functions?Numeric)——这里用于显示错误的代数值-999.00。 One Button Dialog函数(Functions?Time & Dialog)——在这里它用于显示一个对话框,内容是Error...。
3.字符串常数 (Functions?String)——用Edit Text Tools在对话框中输入字符串。
4.该VI在TRUE或者FALSE情况下都会执行。如果输入的数值大于等于0,VI会执行TRUE Case,返回该数的平方根,否则将会输出-999.00,并显示一个对话框,内容为Error...。
5.返回前面板,运行该VI。修改标签为Number的数字式控制对象的数值,分别 尝试一个正数和负数。注意,当把数字式控制对象的值改为负数时,LabVIEW会显示Case结构的FALSE Case中设置的出错信息。
保存该 VI 到LabVIEW\\Activity 目录中的Square Root.vi。 4.顺序结构(Sequence Structure) 4.1 在代码式的传统编程语言中,默认的情况是,程序语句按照排列顺序执行,但LabVIEW中不同,它是一种图形化的数据流式编程语言。在图2-7左图中,假设有A、B、C、D4个节点,其数据流向如右图所示。按照数据流式语言的约
ABC图2-8 顺序结构的说明
定,任何一个节点只有在所有的输入数据有效时才会执行,所以图中,当且仅当A、B、C3个节点执行完,使得D节点的3个输入数据都到达D节点后,D节点才执行。但是你要注意,这里并没有规定A、B、C3个节点的执行顺序。在LabVIEW中这种情况下,A、B、C的执行顺序是不确定的,如果你需要对它们规定一个确定的顺序,那就需要使用。
图2-8中的右边是顺序结构的图标,它看上去像是电影胶片。它可以按一定顺序执行多个子程序。首先执行0帧中的程序,然后执行1帧中的程序,逐个执行下去。与Case结构类似,这多帧程序在流程图中占有同一个位置。 4.2 使用顺序结构
目的:创建一个 VI,计算生成等于某个给定值的随机数所需要的时间。 打开一个新的前面板,并按照下图所示创建对象。
图2-9 前面板
我们约定数据是0到100范围的整数。当前值用于显示当前产生的随机数。“执行次数”用于显示达到指定值循环执行的次数。匹配时间用来显示达到指定值所用的时间。 流程图
图2-10 流程图(共3帧)
D