For循环将把它的框图中的程序执行指定的次数,For循环 具有下面这两个端子: N:计数端子(输入端子)一—用于指定循环执行的次数。 I:周期端子(输出端子)一一含有循环已经执行的次数 上图显示了一可以产生100个随机数并将数据显示在一个 图表上的For循环。在该例中,i的初值是0,终值是99。 练习2-3使用For循环 目的:用For循环和移位寄存器计算一组随机数的最大值。 1.打开一个新的前面板,按照下图创建对象 a.将一个数字显示对象放在前面板,设置它的标签为“最 大值”。 b.将一个波形图表放在前面板,设置它的标签为“随机 数”。将图表的纵坐标范围改为0.0到1.0。 C.在图表的快捷菜单中选择 Visible items>Scrollbar 和 Digital Display,并隐藏 Plot Legend d.用移位工具修改滚动 随机数 0.6 爱0 0.2 0.0 随机数 HI DBL 最大值 ADBL
100 图表 For 循环将把它的框图中的程序执行指定的次数,For 循环 具有下面这两个端子: N: 计数端子(输入端子)——用于指定循环执行的次数。 I: 周期端子(输出端子)——含有循环已经执行的次数。 上图显示了一可以产生 100 个随机数并将数据显示在一个 图表上的 For 循环。在该例中,i 的初值是 0,终值是 99。 练习 2-3 使用 For 循环 目的:用 For 循环和移位寄存器计算一组随机数的最大值。 1.打开一个新的前面板,按照下图创建对象。 a. 将一个数字显示对象放在前面板,设置它的标签为“最 大值”。 b. 将一个波形图表放在前面板,设置它的标签为“随机 数”。将图表的纵坐标范围改为 0.0 到 1.0。 c. 在图表的快捷菜单中选择 Visible Items»Scrollbar 和 Digital Display,并隐藏 Plot Legend。 d. 用移位工具修改滚动栏的大小。 100 0 随机数 最大值
图2-5练习2-3的面板和流程图 2.按照上图画流程图 在流程图中放置一个For循环 Functions>Structures) 4.在For循环的边框处单击鼠标右键,在快捷菜单中选择 Add Shift Register 5.将下列对象添加到流程图。 a Random Number(0-1)函数( Functions》 Numeric) 产生0到1之间的某个随机数 b数值常数( Functions>Numeric)一在这个练习中需 要将移位寄存器的初始值设成0 cMax&Min函数( Functions>Comparison 输入两个 数值,再将它们的最大值输出到右上角,最小值输出到右下角。 这里只需要最大值,只用连接最大值输出。 d数值常数( Functions》 Numeric)—For循环需要知 道需要执行的次数。本练习中是100次。 6.按照上图连接各个端子。 行该 8.将该Ⅵ保存为 LabVIEW \Activity目录下的 Calculate Max.vi。 练习2-3结束。 分支结构: Case结构含有两个或者更多的子程序(Case),执行那一个 取决于与选择端子或者选择对象的外部接口相连接的某个整数 布尔数、字符串或者标识的值。必须选择一个默认的Case以处 理超出范围的数值,或者直接列出所有可能的输入数值。Case 结构见下图,各个子程序占有各自的流程框,在其上沿中央有相 应的子程序标识:Ture、 False或1、2、3…。按钮用来改变 当前显示的子程序(各子程序是重叠放在屏幕同一位置上的) 按钮 条件端子 子程序标识 练习2-4使用Case结构
图2-5 练习2-3 的面板和流程图 2.按照上图画流程图。 3.在流程图中放置一个 For 循 环 (Functions»Structures)。 4.在 For 循环的边框处单击鼠标右键,在快捷菜单中选择 Add Shift Register。 5.将下列对象添加到流程图。 a Random Number (0–1)函数(Functions»Numeric)— —产生 0 到 1 之间的某个随机数。 b 数值常数(Functions»Numeric)——在这个练习中需 要将移位寄存器的初始值设成 0。 c Max&Min 函数(Functions»Comparison)——输入两个 数值,再将它们的最大值输出到右上角,最小值输出到右下角。 这里只需要最大值,只用连接最大值输出。 d 数值常数(Functions»Numeric)——For 循环需要知 道需要执行的次数。本练习中是 100 次。 6.按照上图连接各个端子。 7.运行该 VI。 8.将该 VI 保存为 LabVIEW\Activity 目录下的 Calculate Max.vi。 练习 2-3 结束。 2.2 分支结构:Case Case 结构含有两个或者更多的子程序(Case),执行那一个 取决于与选择端子或者选择对象的外部接口相连接的某个整数、 布尔数、字符串或者标识的值。必须选择一个默认的 Case 以处 理超出范围的数值,或者直接列出所有可能的输入数值。Case 结构见下图,各个子程序占有各自的流程框,在其上沿中央有相 应的子程序标识:Ture、False 或1、2、3…。按钮用来改变 当前显示的子程序(各子程序是重叠放在屏幕同一位置上的)。 False 练习 2-4 使用 Case 结构 子程序标识 按钮 条件端子
目的:创建一个Ⅵ以检查一个数值是否为正数。如果它是正的,Ⅵ就计算它的平方根,反之 则显示出错 前面板 1.打开一个新的前面板,并按照下图所示创建对象。控 制对象用于输入数值,显示对象用于显示该数值的平方根。 流程图 2.照下图创建流程图。 Number 2.00 画DBL DBL E False 5 图2-6练习2-4的面板和流程图 3.从 Functions>Structures中选择一个Case结构,并 放置在在流程图中。Case结构是一个可以改变大小的方框。先 来做Ture的情况,照流程图上半部分构造。 a Greater Or Equal To 0? EK*( Functions>Comparison) 如果输入数值大于或者等于0就会返回一个TRE值。 b Square root函数( Functions> Numeric)—返回输 入数值的平方根。 连好线 d点击Case框的选择按钮,转入 False情况编程 e数值常数( Functions>Numeric)—这里用于显示错 误的代数值-999.00。 le Button Dialog函数( Function Dialog)—一在这里它用于显示一个对话框,内容是 g字符串常数( Functions>String)-一用 Edit Text
目的:创建一个VI以检查一个数值是否为正数。如果它是正的,VI就计算它的平方根,反之 则显示出错。 前面板 1. 打开一个新的前面板,并按照下图所示创建对象。控 制对象用于输入数值,显示对象用于显示该数值的平方根。 流程图 2.照下图创建流程图。 2.00 Number 1.41 SQRT Number SQRT True Number SQRT -999.00 Errot... False 图2-6 练习2-4的面板和流程图 3. 从 Functions»Structures 中选择一个 Case 结构,并 放置在在流程图中。Case 结构是一个可以改变大小的方框。先 来做 Ture 的情况,照流程图上半部分构造。 a Greater Or Equal To 0? 函数(Functions»Comparison) ——如果输入数值大于或者等于 0 就会返回一个 TRUE 值。 b Square Root 函数(Functions»Numeric)——返回输 入数值的平方根。 c 连好线 d 点击 Case 框的选择按钮,转入 False 情况编程 e 数值常数(Functions»Numeric)——这里用于显示错 误的代数值-999.00。 f One Button Dialog 函数(Functions»Time & Dialog)——在这里它用于显示一个对话框,内容是 Error...。 g 字符串常数 (Functions»String)——用 Edit Text
Tools在对话框中输入字符串 h该Ⅵ在TRUE或者 FALSE情况下都会执行。如果输入 的数值大于等于0,Ⅵ会执行 TRUE Case,返回该数的平方根 否则将会输出一999.00,并显示一个对话框,内容为 Error... 4.返回前面板,运行该ⅥI。修改标签为 Number的数字式 控制对象的数值,分别尝试一个正数和负数。注意,当把数字式 控制对象的值改为负数时, Labview会显示Case结构的 FALSE Case中设置的出错信息。 5.保存该Ⅵ到 LabVIEW\Activity目录中的Squ Root. vi VI的算法 本练习中的流程图功能相当于代码式编程语言中的下列伪 代码 if (Number >=0 then Square Root Value= SQRT (Number) Square root value =-999. 00 Display message e end if 练习2-4结束。 2.3顺序结构和公式节点 2.3.1顺序结构( Sequence Structure) 在代码式的传统编程语言中,默认的情况是,程序语句按照排列顺序执行,但 LabvieW 中不同,它是一种图形化的数据流式编程语言。在图2-7左图中,假设有A、B、C、D4 个节点,其数据流向如右图所示。按照数据流式语言的约定,任何一个节点只有在所有 A B D 口口口口口 图2-7顺序结构的说明 的输入数据有效时才会执行,所以图中,当且仅当A、B、C3个节点执行完,使得D节点的 3个输入数据都到达D节点后,D节点才执行。但是你要注意,这里并没有规定A、B、C3 个节点的执行顺序。在LabⅥIEW中这种情况下,A、B、C的执行顺序是不确定的,如果你需 要对它们规定一个确定的顺序,那就需要使用本节介绍的“顺序结构 图2-7中的右边是顺序结构的图标,它看上去像是电影胶片。它可以按一定顺序执行 多个子程序。首先执行0帧中的程序,然后执行1帧中的程序,逐个执行下去。与Case结
A D C B Tools 在对话框中输入字符串。 h 该 VI 在 TRUE 或者 FALSE 情况下都会执行。如果输入 的数值大于等于 0,VI 会执行 TRUE Case,返回该数的平方根, 否则将会输出-999.00,并显示一个对话框,内容为 Error...。 4. 返回前面板,运行该 VI。修改标签为 Number 的数字式 控制对象的数值,分别尝试一个正数和负数。注意,当把数字式 控制对象的值改为负数时,LabVIEW 会显示 Case 结构的 FALSE Case 中设置的出错信息。 5. 保存该 VI 到 LabVIEW\Activity 目录中的 Square Root.vi。 VI 的算法 本练习中的流程图功能相当于代码式编程语言中的下列伪 代码: if (Number >= 0) then Square Root Value = SQRT(Number) else Square Root Value = -999.00 Display Message "Error.. " end if 练习 2-4 结束。 2.3 顺序结构和公式节点 2.3.1 顺序结构(Sequence Structure) 在代码式的传统编程语言中,默认的情况是,程序语句按照排列顺序执行,但 LabVIEW 中不同,它是一种图形化的数据流式编程语言。在图2-7左图中,假设有 A、B、C、D4 个节点,其数据流向如右图所示。按照数据流式语言的约定,任何一个节点只有在所有 图2-7 顺序结构的说明 的输入数据有效时才会执行,所以图中,当且仅当 A、B、C3个节点执行完,使得 D 节点的 3个输入数据都到达 D 节点后,D 节点才执行。但是你要注意,这里并没有规定 A、B、C3 个节点的执行顺序。在 LabVIEW 中这种情况下,A、B、C 的执行顺序是不确定的,如果你需 要对它们规定一个确定的顺序,那就需要使用本节介绍的“顺序结构”。 图2-7中的右边是顺序结构的图标,它看上去像是电影胶片。它可以按一定顺序执行 多个子程序。首先执行 0 帧中的程序,然后执行 1 帧中的程序,逐个执行下去。与 Case 结
构类似,这多帧程序在流程图中占有同一个位置。 练习2-5使用顺序结构 目的:创建一个Ⅵ,计算生成等于某个给定值的随机数所需要的时间。 前面板 打开一个新的前面板,并按照下图所示创建对象 给定数据 50 当前值 执行次数匹配时间(秒) 图2-8练习2-5的前面板 我们约定数据是0到100范围的整数。当前值用于显示当前产生的随机数。“执行次数” 用于显示达到指定值循环执行的次数。匹配时间用来显示达到指定值所用的时间。 流程图 口■■■■口 严四四四02 4配计 ■■ 因行次数 定数据 DBL 口■m■■■■■■■■■■■■■■■■■■■■■■■■■■
构类似,这多帧程序在流程图中占有同一个位置。 练习 2-5 使用顺序结构 目的:创建一个 VI,计算生成等于某个给定值的随机数所需要的时间。 前面板 1. 打开一个新的前面板,并按照下图所示创建对象。 50 给定数据 50 当前值 6 执行次数 0.00 匹配时间(秒) 图2-8 练习2-5的前面板 我们约定数据是0到 100 范围的整数。当前值用于显示当前产生的随机数。“执行次数” 用于显示达到指定值循环执行的次数。匹配时间用来显示达到指定值所用的时间。 流程图 读取初始时间 0 [0..2] 100.00 给定数据 当前值 执行次数 匹配计算 1 [0..2]