收藏 分享(赏)

LabVIEW实验指导书.doc

上传人:tangtianxu1 文档编号:2961469 上传时间:2018-09-30 格式:DOC 页数:54 大小:2.08MB
下载 相关 举报
LabVIEW实验指导书.doc_第1页
第1页 / 共54页
LabVIEW实验指导书.doc_第2页
第2页 / 共54页
LabVIEW实验指导书.doc_第3页
第3页 / 共54页
LabVIEW实验指导书.doc_第4页
第4页 / 共54页
LabVIEW实验指导书.doc_第5页
第5页 / 共54页
点击查看更多>>
资源描述

1、1实验 1 LabVIEW 入门1 实验目的(1)初步学会使用 LabVIEW; (2)掌握创建自己的 VI。2 实验任务(1( 建立一个测量温度和容积的 VI;(2) 为 VI 创建图标和联接器;(3) 使用 LabvIEW 图表模式。3 实验步骤练习:建立一个测量温度和容积的 VI,其中须调用一个仿真测量温度和容积的传感器子VI。步骤如下: 选择 FileNew,打开一个新的前面板窗口。 从 ControlsNumeric 中选择 Tank 放到前面板中。 在标签文本框中输入“容积” ,然后在前面板中的其他任何位置单击一下。 把容器显示对象的显示范围设置为 0.0 到 1000.0。a.

2、使用文本编辑工具(Text Edit Tool),双击容器坐标的 10.0 标度,使它高亮显示。b. 在坐标中输入 1000,再在前面板中的其他任何地方单击一下。 这时 0.0 到1000.0 之间的增量将被自动显示。 在容器旁配数据显示。 将鼠标移到容器上,点右键,在出现的快速菜单中选 Visible ItermsDigital Display即可。从 ControlsNumeric 中选择一个温度计,将它放到前面板中。设置其标签为“温度”,显示范围为 0 到 100,同时配数字显示。可得到如下的前面板图。2图1 练习的前面板图 WindowsShow Diagram 打开流程图窗口。从功能

3、模板中选择对象,将它们放到流程图上组成下图(其中的标注是后加的)。图2 练习的流程图该流程图中新增的对象有两个乘法器、两个数值常数、一个随机数发生器、一个进程监视器,温度和容积对象是由前棉板的设置自动带出来的。a. 乘法器和随机数发生器由 FunctionsNumeric 中拖出,尽管数值常数也可以这样得到,但是建议使用 c 中的方法更好些。b. 进程监视器(Process Monitor)不是一个函数,而是以子 VI 的方式提供的,它存放在 LabVIEWActivity 目录中,调用它的方法是在 FunctionsSelect a VI 下打开 Process Monitor,然后在流程图

4、上点击一下,就可以出现它的图标。注意:LabVIEW 目录一般在 Program FilesNational Instruments目录下。用连线工具 将各对象按规定连接。a 中的遗留问题创建数值常数对象的另一 种方法是在连线时一起完成。具体方法是:用连线工具在某个功能函数或 VI 的连线端子上单击鼠标右键,再从弹出的菜单中选择 Create Constant,就可以创建一个具有正确的数据格式的数值常数对象。选择 FileSave, 把该 VI 保存为 LabVIEWActivity 目录中的 Temp & Vol.vi。在前面板中,单击 Run(运行)按钮,运行该 VI。注意电压和温度的数值

5、都显示在前面板中。选择 FileClose,关闭该 VI 。练习 - 结束练习 - 为 VI 创建图标和联接器打开 LabVIEWActivity 目录中的 Temp & Vol.vi,这是练习做的程序。 在前面板中,用鼠标右键单击窗口右上角的图标,在快捷菜单中选择 Edit Icon.,也可以双击图标激活图标编辑器。注意只能在前面板中编辑图标和联接器。删除默认图标。使用 Select Tool(矩形框) ,单击并拖动想要删除的部分,按下。也可以通过双击工具框中的阴影矩形删除图标。用 Pencil Tool (铅笔工具)绘制一个温度计。随机数发生器乘法函数数值常数进程监视器3用 Text To

6、ol(文本工具)创建文本。得到图标将如下图所示。图3 编辑后的图标编辑器窗口单击 OK,关闭编辑器。新创建的图标就显示在屏幕右上角的图标窗口中。用鼠标右键单击前面板中的图标窗口,在快捷菜单中选择 Show Connector,设置联接器端子连接模式。在默认情况下,LabVIEW 会根据前面板中的控制对象和显示对象的数目确定联接器的端子连接模式。因为前面板中有两个对象,所以联接器有两个端子,如左图所示。用鼠标右键单击联接器窗口,在快捷菜单中选择 Rotate 90 Degrees(旋转 90 度) ,注意联接器窗口的变化,如左图所示。8将端子连接到温度计和电压计: a. 点击联接器上部端子。光标

7、自动变成连线工具,同时端子变成黑色。b. 单击温度显示对象。一个移动的虚线框把它包围起来,选中的端子的颜色变为与控制/显示对象的数据类型一致的颜色。如果单击前面板中的任何空白区域以后,虚线消失,选中的端子变暗,这表示您已经成功地把显示对象和上部端子连接起来。如果端子是白色,则表示没有连接成功。c. 重复步骤 a 和 b,把底部的端子和容积计连接起来。d. 用鼠标右键单击联接器,在快捷菜单中选择Show Icon.9选择 FileSave ,保存该 VI。这样这个 VI 就完成了,并也可以作为子 VI 被其他的 VI 调用。子 VI 的图标在主 VI 的流程图中代表它。VI 的联接器(含有两个端

8、子)输出温度和容积。练习 - 结束练习 1-3 使用三种图表模式 目的:查看 VI 分别在三种模式下执行时图表的显示。1建立前面板及流程图如下4该程序中利用一个循环产生连续的 sin(i)函数值,并及时地在 chart 图表上显示出来,现在前面板上的 chart 是一个 strip,这是一个坐标式显示器,与纸带式图表记录器相似。每接受一个新数据,新数据就将显示在右侧,而原有数据移动到左侧图4 图表的例子2用鼠标选中 chart,点击右键,可在快速菜单中选择 AdvancedUpdate Mode 子菜单。可以选择更换其他两种更新模式。示波器模式是一个返回式的显示器,与示波器类似。每接受一个新数

9、据时,它就把新数据绘制在原有数据的右侧。当数据曲线到达显示区的右边缘时,VI 会删除全部图形,从左边缘重新开始绘制曲线。示波器模式显然要快于条状图模式,因为它不会因为滚动产生溢出。 扫描模式更接近于示波器模式,但是当数据曲线到达显示区的右边时,不会变成空白,而是会出现一个移动的垂线,标记新数据的开始,并当 VI 添加新数据时穿过整个显示区。练习 1-3 结束。4 实验报告写出以上三个练习的中的步骤要点,附上运行时的前后面版图形。5实验 2 程序结构1 实验目的(1)学会使用 LabVIEW 中的 While 循环;(2)学会使用 LabVIEW 中的移位寄存器;(3)学会使用 LabVIEW

10、中的 For 循环;(4)学会使用 LabVIEW 中的 CASE 结构;(5)学会使用 LabVIEW 中的顺序结构;(6)学会使用 LabVIEW 中的公式节点。2 实验任务(1)建立一个 While 循环的 VI;(2)建立一个移位寄存器的 VI;(3)建立一个 For 循环的 VI;(4)建立一个 CASE 结构的 VI;(5)建立一个顺序结构的 VI;(6)建立一个有公式节点的 VI。3 实验步骤练习 使用 While 循环和图表 目的:用 While 循环和图表获得数据,并实时显示。创建一个可以产生并在图表中显示随机数的 VI。 前面板有一个控制旋钮可在 0 到 10秒之间调节循环

11、时间,还有一个开关可以中止 VI 的运行。学习怎样改变开关的动作属性,以便不用每次运行 VI 时都要打开开关。操作步骤如下:前面板图1 练习的前面板 选择 FileNew,打开一个新的前面板。6 选择 ControlsBoolean,在前面板中放置一个开关。设置开关的标签为控制开关。 使用标签工具创建 ON 和 OFF 的标签,放置于开关旁。 选中 ControlsGraph,在前面板中放置一个波形图(是 chart,而不是 graph)。设置它的标签为随机信号。这个图表用于实时显示随机数。 把图表的纵坐标改为 0.0 到 1.0。方法是用标签工具把最大值从 10.0 改为1.0。 选择 Co

12、ntrolsNumeric,在前面板中放置一个旋钮。设置旋钮的标签为循环延时。这个旋钮用于控制 While 循环的循环时间。流程图 开流程图,按照下图创建流程图。图 练习的流程图a) 从 FunctionsStructures 中选择 While 循环,把它放置在流程图中。将其拖至适当大小,将相关对象移到循环圈内。b) 从 Functions Numeric 中选择随机数(0-1)功能函数放到循环内。c) 在循环中设置 Wait Until Next ms Multiple 函数 (FunctionsTime & Dialog),该函数的时间单位是毫秒,按目前面板旋钮的标度,可将每次执行时间延

13、迟 0 到 10 毫秒。d) 照上面所示的流程图连线,把随机数功能函数和随机信号图表输入端子连接起来,并把启动开关和 While 循环的条件端子连接。 返回前面板,调用操作工具后单击垂直开关将它打开。 把该 VI 保存为 LabVIEWActivity 目录中的 Random Signal.vi。 执行该 VI。While 循环的执行次数是不确定的,只要设置的条件为真,循环程序就会持续运行。在这个例子中,只要开关打开(TRUE),框图程序就会一直产生随机数,并将其在图表中显示。 单击垂直开关,中止该 VI。关闭开关这个动作会给循环条件端子发送一个FALSE 值,从而中止循环。 用鼠标右键单击图

14、表,选择 Data OperationsClear Chart,清除显示缓存,重新设置图表。练习 结束附注与说明布尔开关的机械动作:布尔开关有 6 种机械动作属性可供选择。在前面板上用鼠标右键单击开关,在快捷菜7单中选择 Mechanical Action 就可以看到这些可选的动作。LabVIEW 还提供了一个范例示范这些动作,它是位于 ExamplesGeneralControlsbooleans.llb 的 Mechanical Action of Booleans.vi。练习 使用移位寄存器 目的:创建一个可以在图表中显示运行平均数的VI。前面板1. 打开一个新的前面板,按照下图所示创建

15、对象。2. 把波形图表的坐标范围改为 0.0 到 2.0。3. 在添加竖直坐标之后,用鼠标右键单击它,在快捷菜单中选择 Mechanical ActionLatch When Pressed,再选择 OperateMake Current Values Default,把 ON 状态设置为默认状态。图3 练习的前面板1. 按下图创建流程图。图 练习的流程图2. 在流程图中添加 While 循环(FunctionsStructures ),创建移位寄存器。a. 用鼠标右键单击 While 循环的左边或者右边,在快捷菜单中选择 Add Shift Register。b. 用鼠标右键单击寄存器的左端

16、子,在快捷菜单中选择 Add Element,添加一个寄存器。用同样的方法创建第三个元素。83. Random Number (01)函数(FunctionsNumeric)产生 0 到 1 之间的某个随机数。4. Compound Arithmetic 函数(FunctionsNumeric)在本练习中,它将返回两个周期产生的随机数的和。如果要加入其他的输入,只需用右键单击某个输入,从快捷菜单中选择 Add Input。5. 除法函数(FunctionsNumeric)在本练习中,它用于返回最近四个随机数的平均值。6. 数值常数(FunctionsNumeric)在 While 循环的每个周

17、期,Random Number (01)函数将产生一个随机数。VI 就将把这个数加入到存储在寄存器中的最近三个数值中。Random Number (01)再将结果除以 4,就能得到这些数的平均值(当前数加上以前的三个数) 。然后再将这个平均值显示在波形图中。7. Wait Until Next ms Multiple 函数 (FunctionsTime & Dialog)它将确保循环的每个周期不会比毫秒输入快。在本练习中,毫秒输入的值是 500 毫秒。如果用鼠标右键单击图标,从快捷菜单中选择 VisibleLabel,就可以看到 Wait Until Next ms Multiple 的标签。

18、8. 用鼠标右键单击 Wait Until Next ms Multiple 功能函数的输入端子,在快捷菜单中选择Create Constant。出现一个数值常数,并自动与功能函数连接。9. 将 Constant 设置为 500。这样连接到函数的数值常数设置了 500 毫秒的等待时间。因此循环每半秒执行一次。注意,VI 用一个随机数作为移位寄存器的初始值。如果没有设置移位寄存器端子的初始值,它就含有一个默认的数值,或者上次运行结束时的数值,因此开始得到的平均数没有任何意义。10. 执行该 VI,观察过程。11. 把该 VI 保存为 LabVIEWActivity 目录下的 Random Ave

19、rage.vi。练习 结束。附注:移位寄存器的初值:上面的练习中对移位寄存器设置了初值0.5。如果不设这个初值,默认的初值是。在这个例子中,一开始的计算结果是不对的,只有到循环完次后移位寄存器中的过去值才填满,即第次循环执行后可以得到正确的结果。练习 2-3 使用 For 循环目的:用 For 循环和移位寄存器计算一组随机数的最大值。打开一个新的前面板,按照下图创建对象。a. 将一个数字显示对象放在前面板,设置它的标签为“最大值”。b.将一个波形图表放在前面板,设置它的标签为“随机数”。将图表的纵坐标范围改为 0.0 到 1.0。c.在图表的快捷菜单中选择 Visible ItemsScrol

20、lbar 和 Digital Display,并隐藏Plot Legend。d.用移位工具修改滚动栏的大小。9图5 练习3 的面板和流程图按照上图画流程图。在流程图中放置一个 For 循环(FunctionsStructures)。在 For 循环的边框处单击鼠标右键,在快捷菜单中选择 Add Shift Register。将下列对象添加到流程图。 Random Number (01)函数(FunctionsNumeric)产生 0 到 1 之间的某个随机数。 数值常数(FunctionsNumeric)在这个练习中需要将移位寄存器的初始值设成 0。 Max&Min 函数(FunctionsC

21、omparison)输入两个数值,再将它们的最大值输出到右上角,最小值输出到右下角。这里只需要最大值,只用连接最大值输出。 数值常数(FunctionsNumeric)For 循环需要知道需要执行的次数。本练习中是 100 次。按照上图连接各个端子。运行该 VI。将该 VI 保存为 LabVIEWActivity 目录下的 Calculate Max.vi。练习 2-3 结束。练习 - 使用 Case 结构 目的:创建一个VI以检查一个数值是否为正数。如果它是正的,VI就计算它的平方根,反之则显示出错。前面板1. 打开一个新的前面板,并按照下图所示创建对象。控制对象用于输入数值,显示对象用于显

22、示该数值的平方根。流程图照下图创建流程图。10图 练习的面板和流程图3. 从 FunctionsStructures 中选择一个 Case 结构,并放置在在流程图中。Case 结构是一个可以改变大小的方框。先来做 Ture 的情况,照流程图上半部分构造。a Greater Or Equal To 0? 函数(FunctionsComparison)如果输入数值大于或者等于 0 就会返回一个 TRUE 值。b Square Root 函数(FunctionsNumeric)返回输入数值的平方根。c 连好线d 点击 Case 框的选择按钮,转入 False 情况编程e 数值常数(Functions

23、Numeric)这里用于显示错误的代数值-999.00。f One Button Dialog 函数(FunctionsTime & Dialog)在这里它用于显示一个对话框,内容是 Error.。 g 字符串常数 (FunctionsString)用 Edit Text Tools 在对话框中输入字符串。h 该 VI 在 TRUE 或者 FALSE 情况下都会执行。如果输入的数值大于等于 0,VI 会执行TRUE Case,返回该数的平方根,否则将会输出999.00,并显示一个对话框,内容为Error.。4. 返回前面板,运行该 VI。修改标签为 Number 的数字式控制对象的数值,分别尝

24、试一个正数和负数。注意,当把数字式控制对象的值改为负数时,LabVIEW 会显示 Case结构的 FALSE Case 中设置的出错信息。5. 保存该 VI 到 LabVIEWActivity 目录中的 Square Root.vi。练习 - 结束。练习 - 使用顺序结构 目的:创建一个 VI,计算生成等于某个给定值的随机数所需要的时间。前面板1. 打开一个新的前面板,并按照下图所示创建对象。图 练习的前面板我们约定数据是到 100 范围的整数。当前值用于显示当前产生的随机数。 “执行次数”11用于显示达到指定值循环执行的次数。匹配时间用来显示达到指定值所用的时间。流程图图7 练习的流程图(共

25、帧)i. 在流程图中放置顺序结构(FunctionsStructures)。ii. 用鼠标右键单击帧的边框,在快捷菜单中选择 Add Frame After,创建一个新帧。重复这个步骤,再创建一个帧。共桢。iii. 选中第桢,设置读取初始时间(子)程序.iv. 第 0 帧的下边框上含有一个小方框,其中有一个箭头。这个方框叫做顺序局部变量,可以在同一个顺序结构中的各个帧之间传递数据。用鼠标右键单击第 0 帧的底部边框,选择 Add Sequence Local,创建顺序局部变量。顺序局部变量显示为一个空的方块。当您将某个功能函数与顺序局部变量相连时,方块中的箭头就会自动显示。v. Tick Co

26、unt (ms) 函数(FunctionsTime & Dialog)返回启动到现在的时间(以毫秒为单位)。在这里例子里需要使用两个这个函数。另一个在第帧中。vi. 按图连好线。转入第帧。该帧是匹配计算,内含一个循环结构。该图中使用的12新函数有:Round to Nearest 函数(FunctionsNumeric)在该例中,它用于取 0 到100 之间的随机数到距离最近的整数。Not Equal?函数(Functions Comparison)在该例中,它将随机数和前面板中设置的数相比较,如果两者不相等会返回 TRUE 值,否则返回 FALSE。Increment 函数(Function

27、sNumeric)在该例中,它将 While 循环的计数器加 1。vii. 按图连好线。转入第帧在第 0 帧中,Tick Count (ms)功能函数将以毫秒为单位表示当前时间。这个数值被连到顺序局部变量,这样它就可以被后续的帧使用。在第 1 帧中,只要函数返回的值与指定值不等,VI 就会持续执行 While 循环。在第 2 帧中,Tick Count (ms)功能函数以毫秒为单位返回新的时间。VI 从中减去原来的时间(由第 0 帧通过顺序局部变量提供)就可以计算出花费的时间。viii. 返回前面板,在 Number to Match 控制对象中输入一个数值,执行该 VI。ix. 把该 VI

28、保存为 LabVIEWActivity 目录下 Time to Match.vi。练习 2-5 结束。练习 2-6 使用公式节点 目的:创建一个VI,它用公式节点计算下列等式:y1 = x 3 x 2 + 5y2 = m* x + bx 的范围是从 0 到 10。可以对这两个公式使用同一个公式节点,并在同一个图表中显示结果。前面板图9 练习的面板 打开一个新的前面板,按照上图(该图中包含运行结果)创建前面板中的对象。波形图显示对象用于显示等式的图形。该 VI 使用两个数字式控制对象来输入 m 和 b 的值。流程图13 按照下图创建流程图。图9 练习的流程图在创建某个输入或者输出端子时,必须给它

29、指定一个变量名。这个变量名必须与公式节点中使用的变量名完全相符。公式节点中,在边框上单击鼠标右键,在快捷菜单中选择 Add Input,可以创建三个输入端子。在快捷菜单中选择 Add Output,创建输出端子。x 的范围是从 0 到 10(包括 10),就必须连接 11 到计数端子。Build Array (FunctionsArray)在这个例子中,它用于将两个数据构成数组形式提供给一个多曲线的图形中。通过用变形工具拖拉边角就可以创建两个输入端子。 返回前面板,尝试给 m 和 b 赋以不同的值再执行该 VI。 把该 VI 保存为 LabVIEW/Activity 目录下的 Equation

30、s.vi。练习 2-6 结束。4 实验报告写出以上 6 个练习的中的步骤要点,附上运行时的前后面版图形。14实验 3 数据类型:数组、簇1 实验目的(1)学会使用 LabVIEW 中的索引数组;(2)学会使用 LabVIEW 中的簇;2 实验任务(1)建立一个能数组索引的 VI;(2)建立一个使用的 VI;3 实验步骤练习 创建一个自动索引的数组目的:使用 For 循环的自动索引功能创建数组,并用一个图形(Graph)显示该数组。图1 练习的面板前面板:1.打开一个新的前面板。2.选择 ControlsArray & Cluster,在前面板中放置一个数组。设置它的标签为 Waveform A

31、rray。3.选择 ControlsNumeric,在数组框中插入一个数字式显示对象。如右图所示。它用于显示数组的内容。4.选择 ControlsGraph,在前面板中放置一个波形图。设置它的标签为 Waveform Graph。5.隐藏图例和模板。6.用鼠标右键单击图形,并在快捷菜单中取消选中 Y ScaleAutoscale Y,禁止自动坐标功能。7.使用文本工具,把 Y 轴的范围改为-0.5 到 1.5。流程图1. 按照下图创建流程图。15图 练习的流程图2. 由 FunctionsSelect a VI寻找 LabVIEWactivity 目录下的Generate Waveform V

32、I ,它的作用是返回波形中的某一点。这个VI 需要输入一个索引,我们将循环周期连接到这个输入。3. 注意 Generate Waveform VI 连出来的连线在循环边界变成一个数组时会变粗,正是在这个边界处形成了一维数组。 4. For 循环会自动累计边界内的数组。这种功能叫做自动索引。在这个例子中,连接到循环计数输入的数值常数令 For 循环创建了一个由 100 个元素组成的数组。5. Bundle 函数( Functions Cluster)将图块中的各个组件组合成一个簇,在正确连接以前需要改变该函数的图标的大小。将移位工具放在图标的左下角。变形工具会变成如左图所示,拖曳鼠标直到出现第三

33、个输入端子。6. 数值常数( FunctionsNumeric)三个数值常数用于设置 For 循环执行的周期数 N=100,初始 X=0 和 delta X=1。7. 从前面板执行该 VI。该 VI 将把自动索引后的波形图数组显示在波形图中。8. 把 X 的 delta 值改为 0.5,X 的初始值改为 20。再次执行该 VI。注意,波形图现在同样显示 100 个点,而每个点的初始值为 20,X 的 delta 值为 0.5(见 X 轴)。9. 只需在显示器中输入元素的索引号就可以查看波形数组中的任何元素。如果输入的数比数组的元素个数大,那么显示器将变暗,表示您没有为该元素设置索引。如果需要一

34、次查看多个元素,可以通过改变数组显示对象的大小来实现。 把定位工具放置在数组框的右下角。工具将变成右图所示的变形工具。当工具变形时,用鼠标拖曳数组的右边或者下边。数组现在就可以按照元素索引的上升顺序显示多个素,以某个与指定索引对应的元素开始,如下图所示。图 练习中多个数组元素的同时观察在前面的流程图中,您为波形图指定了初始的 X 值和 delta X 值。默认的 X 初始值是 0,delta X 值是 1。这样,也可以把波形数组直接连接到波形图端子, 而无需指定初始的 X 值和 delta X 值,如图所示。16图 练习使用默认 X 及 Delta X 时简化后的流程图10 按上图删除 Bun

35、dle 功能函数和它所连接的常数对象。方法是用移位工具选择该功能函数和连接的常数对象,按下。再选择 EditRemove Bad Wires。按照上图完成流程图的连线。11 执行该 VI。注意初始的 X 值是,delta X 值是 1。 多图区图形可以创建含有多条曲线的图形,方法是创建一个数组,用它来汇集传给单图区图形的类型的数据元素。图 练习多图区图形的流程图12 按照上图创建流程图。* 正弦函数(FunctionsNumericTrigonometric)在这里,它用于在 For 循环中创建一个由数据点组成的数组,表示一个正弦波周期。* Pi 常数(FunctionsNumericAddi

36、tional Numeric Constants)* Build Array (FunctionsArray )在这里,它用于创建合适的数据结构(一个二维数组),在波形图中绘制两条曲线。用移位工具拖曳边角可以增大该函数的面积,创建两个输入端子。13 返回前面板,执行该 VI。注意同一个波形中的两个图区。默认情况下,它们的 X 初始值都是 0,delta X 初始值都是 1。下图是该程序的运行结果(前面板未改动)。14 把该 VI 保存为 LabVIEWActivity 目录中的 Graph Waveform Arrays.vi。15 可以修改图形中的某个图区的外观。方法是,用鼠标右键单击这个图

37、形,再从弹出菜单选择对应的图例。17图 练习多图区图形的面板显示练习 结束。练习 对输入数组使用自动索引功能目的:打开并执行一个 VI,它将在一个 For 循环中使用自动索引功能处理一个数组。1.选择 FileOpen,打开 ExamplesGeneralarrays.llb 中的 Separate Array Values VI 。2.打开流程图。下面的示意图显示的是在 TRUE 和 FALSE 时的情况。图 练习的流程图注意,Input Array 引出的连线与 For 循环外的粗线不同,表示这是一个数组,而循环内部的细线则表示这是一个数组元素。 数组元素在每个循环期间将自动编号。3. 用

38、自动索引功能设置 For 循环的计数器注意,计数器端子还没有连线。当您对某个进入 For 循环的数组使用自动索引功能时,循环就将根据数组的大小执行相应的次数,这样就无需连接某个值到计数器的端口。如果对一个以上的数组使用自动索引功能,或者在使用自动索引功能之外还需要设置计数器时,18实际的循环次数将是其中最小的数。4.执行该 VI。在输入的八个数中,可以看到 4 个属于正数数组,另外 4 个属于负数数组。5.从流程图中将一个值为 5 的常数对象连接到 For 循环的计数器端子。执行该 VI。可以看到尽管输入数组仍然有八个元素,但是 3 个位于正数数组,另外 2 个位于负数数组。这说明,如果设置了

39、 N 并开启了自动索引功能,那么实际循环的次数将取较小的数。6.关闭该 VI,不要保存任何修改。注:练习 的算法说明下面是一段伪代码,解释上面的算法,假定输入数组为 A(已赋值),B(正数)、C(负数)。Sbr 、Scr 分别是与 B 数组、C 数组对应的右寄存器数组,Sbl 、Scl 分别是与 B 数组、C 数组对应的左寄存器数组,size 运算为测数组实际大小,ins 运算为将一个数插入数组中最左边的空位。B=0 初始化C=0K=size(A(.) 测A数组大小For i=0 to k-1p=A(i) 取第I个元素值if p=0 thenIns p,Sbr 将p值插入右寄存器Else In

40、s p,Scrend ifSbl=Sbr 右寄存器值送给左寄存器Scl=ScrNext iB=Sbr 右寄存器值送到正数组C=ScrPrint B 显示Print CEnd练习 结束。练习 使用创建数组功能函数目的:使用创建数组函数,把一些元素和输出组织成一个更大的数组 。19图 练习的面板和框图1.按照图创建一个前面板。2.从 ControlsNumeric 模板中选择一个数字控制对象放置在前面板中,设置它的标签为 scalar 1。3.复制并粘贴该数字显示对象,创建两个新的对象,并分别设置它们的标签为scalar 2 和 scalar 3。4.创建一个数字控制对象的数组,设置它的标签为 a

41、rray 1。复制并粘贴它,创建一个新的数组,设置它的标签为 array 2。5.在 array 1、scalar 1、 scalar 2、scalar 3、array 2 中输入数值 1 到 9。6.创建流程图。选择 FunctionsArray,在流程图中放置一个 Build Array 功能函数。用定位工具增大函数额面积,以容纳 5 个输入。7.把数组和标量与 Build Array 连接起来。创建输出的一维数组,它由 array 1、scalar 1、 scalar 2、array 2、scalar 3 中的元素所组成,如图所示。8.执行该 VI。可以看到 array 1、scalar

42、 1、 scalar 2、scalar 3、array 2 中的数值出现在同一个一维数组中。9.保存该 VI 为 LabVIEWActivity 目录下的 Build Array.vi。练习 结束。练习 簇目的:学习创建簇、分解簇,再捆绑簇并且在另一个簇中显示其内容。20图 练习的面板和框图打开前面板,创建一个簇壳(Array & Cluster palette) ,标签改为 Input Cluster,拖曳至适当大小。在这个簇壳中放置一个数字 Control,两个布尔开关,和一个串 Control。仿照以上步骤,创建 Output Cluster 如上。注意将各 Control 改为相应的

43、indicator。用快速菜单查看两个簇的序是否一致,若有差别,改之。在前面板上设置一个STOP按钮。注意其缺省值为 FALSE,不要改变它的状态。建立如上面所示的流程图。注意在STOP按钮与循环条件端子之间接入了一个 NOT函数,因为按钮缺省值为 FALSE,经 NOT 函数后变为 TRUE,这就意味着当按钮状态不变时,循环继续执行,相反一旦按钮动作,则循环终止。返回前面板并运行 VI。在输入簇中输入不同的值观察输出。关闭并保存程序。Cluster Exercise.vi练习 结束4 实验报告写出以上 4 个练习的中的步骤要点,附上运行时的前后面版图形。21实验 4 图形显示1 实验目的(1

44、)掌握 Chart 和 Graph 的特征;(2)学会利用 XY Graph 构成利萨育图形。2 实验任务建立一个利萨育图形的 VI。3 实验步骤练习 Chart 和 Graph 的比较目的:创建一个 VI,用 Chart 和 Graph 分别显示 40 个随机数产生的曲线,比较程序的差别。前面板及流程图如下图1 Chart 和 Graph 的比较显示的运行结果是一样的。但实现方法和过程不同。在流程图中可以看出,Chart 产生在循环内,每得到一个数据点,就立刻显示一个。而 Graph 在循环之外,40 个数都产生之后,跳出循环,然后一次显示出整个数据曲线。从运行过程可以清楚地看到这一点。值得

45、注意的还有 For 循环执行 40 次,产生的 40 个数据存储在一个数组中,这个数组创建于 For 循环的边界上(使用自动索引功能) 。在 For 循环结束之后,该数组就将被传送到外面的 Graph。仔细看流程图,穿过循环边界的连线在内、外两侧粗细不同,内侧表示浮点数,外侧表示数组。22练习 结束XY 图形控件(XY Graph )波形图(Waveform Graph)有一个特征,其 X 是测量点序号、时间间隔等, Y 是测量数据值。但是它并不适合描述一般的 Y 值随 X 值变化曲线。适合于这种情况的控件是 XY Graph。我们通过一个构成利萨育图形的例子来看一下它的使用。我们知道如果控制

46、 XY 方向的两个数组分别按正弦规律变化(假设其幅值、频率都相同) ,如果它们的相位相同,则利萨育图形是一条 45 度的斜线,当它们之间相位差 90 度时为圆,其他相位差是椭圆。练习 利用 XY Graph 构成利萨育图形。图2 利用 XY Graph 构成利萨育图形面板和框图如图所示。面板上除了一个 XY Graph 外,还有一个相位差输入控件。在框图中使用了两个 Sine Waveform.vi,第一个所有输入参数(包括频率、幅值、相位等)都使用缺省值,所以其初始相位为。第二个将其初始相位作为一个控件引到面板上。它们的输出是包括 t0、dt 和 Y 值的簇,但是对于 XY Graph 只需

47、要其中的 Y 数组,因此使用波形函数中的 Get Waveform Components 函数分别提取出各自的 Y 数组,然后再将他们捆绑在一起,连接到 XY Graph 就可以了。当相位置为 45 度时,运行程序,得到如图所示的椭圆。练习 结束4 实验报告写出以上 2 个练习的中的步骤要点,附上运行时的前后面版图形。23实验 5 字符串和文件 I/O1 实验目的(1)学会使用 LabVIEW 中的字符串;(2)学会使用 LabVIEW 中的文件存储、读取。2 实验任务(1)建立一个使用字符串的 VI;(2)建立一个使用的文件存储、读取 VI;3 实验步骤练习 5 组合字符串目的:使用一些字符

48、串功能函数将一个数值转换成字符串,并把该字符串和其他一些字符串连接起来组成一个新的输出字符串。前面板 打开一个新的前面板,按照下图向其中添加对象。其中的两个字符串控制对象和数值控制对象可以合并成一个输出字符串并显示在字符串显示器中。数值显示器显示出字符串的长度。本练习中输出字符串是一个 GPIB(IEEE 488)命令字符串,它可用来与和串口仪器(RS-232 或者 RS-422)进行通信。流程图24 Format Into String 函数(FunctionsString)在本练习中,它用于对数值和字符串进行格式化,使它们成为一个输出字符串。用变形工具可以添加三个加和输入。 String Length 函数(FunctionsString)在本练习中,它用于返回一个字符串的字节数 执行该 VI。注意,Format Into String 功能函数将两个字符串控制对象和数

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 高等教育 > 专业基础教材

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报