LabVIEW820程序设计从入门到精通_第1页
LabVIEW820程序设计从入门到精通_第2页
LabVIEW820程序设计从入门到精通_第3页
LabVIEW820程序设计从入门到精通_第4页
LabVIEW820程序设计从入门到精通_第5页
已阅读5页,还剩420页未读 继续免费阅读

下载本文档

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

文档简介

1、LabVIEW 8.20程序设计从入门到精通随书课件 作者:陈锡辉版权所有,转载请注明出处第第1章章 揭开揭开LabVIEW的面纱的面纱引子 “最初只存在机器语言,计算机的世界里一片黑暗。可是不久,汇编语言问世了,给计算机的世界投下了一缕曙光。后来,Fortran的出现带来了光明。” LabVIEW图形化编程语言的出现终于把人们尤其是工程师和科学家们从繁杂的编程工作中解放出来,使他们能够真正专心于自己所关注的事情。 本章内容 1.1 虚拟仪器的概念 1.2 什么是LabVIEW? 1.3 LabVIEW可以做什么? 1.4 LabVIEW的发展历程 1.5 如何学好LabVIEW1.1 虚拟仪

2、器的概念PROCESSOR BUSConditioningTimingA/DD/ADI/OTI/ODISPLAY AND CONTROL488 PORT PMathMEMORYPROMPROCESSOR BUSConditioningTimingA/DD/ADI/OTI/ODISPLAY AND CONTROL488 PORT PMathMEMORYPROMControl PanelFlowPressure Alarm ConditionsSTOPTemperature传统仪器传统仪器厂商定义功能厂商定义功能虚拟仪器虚拟仪器用户定义功能用户定义功能1.1 虚拟仪器的概念 虚拟仪器系统是由计算机

3、、应用软件计算机、应用软件和仪器硬件和仪器硬件三大要素构成的。计算机与仪器硬件又称为VI的通用仪器硬件通用仪器硬件平台平台。1.1 虚拟仪器的概念 软件技术是虚拟仪器的核心技术。常用的仪器用开发软件有LabVIEW、LabWindows/CVI、VEE等等,其中以LabVIEW应用最为广泛。1.2 什么是LabVIEW? LabVIEW(Laboratory Virtual Instrument Engineering Workbench)是一种用图标代替文本行创建应用程序的图形化编程语言。 传统文本编程语言根据语句和指令的先后顺序决定程序执行顺序,而LabVIEW 则采用数据流编程方式,程序

4、框图中节点之间的数据流向决定了程序的执行顺序。它用图标表示函数,用连线表示数据流向。1.2 什么是LabVIEW? LabVIEW程序被称为VI(Virtual Instrument),即虚拟仪器。 LabVIEW的核心概念就是“软件即是仪器”,即虚拟仪器的概念。 LabVIEW还包含了大量的工具与函数用于数据采集、分析、显示与存储等。 1.3 LabVIEW可以做什么? LabVIEW在测试、测量和自动化等领域具有最大的优势,因为LabVIEW提供了大量的工具与函数用于数据采集、分析、显示和存储。 用户可以在数分钟内完成一套完整的从仪器连接、数据采集到分析、显示和存储的自动化测试测量系统。

5、它被广泛地应用于汽车、通信、航空、半导体、电子设计生产、过程控制和生物医学等各个领域。 1.3 LabVIEW可以做什么? LabVIEW不仅可以用来快速搭建小型自动化测试测量系统,还可以被用来开发大型的分布式数据采集与控制系统。 在美国Lawrence Livermore国家实验室,一个花费2000万美金的极为复杂的飞秒激光切割系统就是基于LabVIEW开发的。 在北京正负电子对撞机二期工程北京谱仪慢控制系统中,大约有30种物理量共7000多点的现场数据点需要实时采集控制和分析记录等。 1.4 LabVIEW的发展历程 1.5 如何学好LabVIEW 1、多学习实例,本书以及LabVIEW都

6、提供了大量的实例。 2、大胆尝试,尝试编写自己的程序。“I hearI forget. I seeI remember. I doI understand.”习题 1. 什么是虚拟仪器?虚拟仪器与传统仪器的区别是什么? 2. 什么是LabVIEW?LabVIEW的主要优势是什么?LabVIEW被应用在了哪些领域?第第2章章 牛刀小试牛刀小试仿真信号采集VI 本章内容建议老师在课堂上进行实际演示。小试身手 写一个类似于左图的正弦波发生器,要求频率和幅度可调第第3章章 开始开始LabVIEW之旅之旅本章内容3.1 安装安装LabVIEW3.2 LabVIEW编程环境编程环境3.2.1 LabVIE

7、W 8.2 启动界面3.2.2 前面板和程序框图3.2.3 控件选板3.2.4 函数选板3.2.5 工具选板3.3 善用善用LabVIEW联机帮助联机帮助3.3.1 实时上下文帮助窗口3.3.2 联机帮助文档3.3.3 范例查找器3.4 编辑前面板编辑前面板3.4.1 输入控件(Controls)和显示控件(Indicator) 3.4.2 控件属性3.5 编辑程序框图编辑程序框图3.5.1 程序框图中的控件对象3.5.2 程序框图节点3.5.3 对象连线3.6 运行运行VI3.7 调试调试VI3.1 安装LabVIEW 性能要求及详细安装过程请参考LabVIEW 8.20程序设计从入门到精通

8、第3.1、3.2节 LabVIEW程序包括前面板(用户界面)和后面板(程序框图) 3种选板: 控件选板(为前面板添加控件) 函数选板(在程序框图中添加函数或数据等) 工具选板(选择各种编辑工具,前面板和后面板都要用到)3.2 LabVIEW编程环境3.2.1 LabVIEW 8.2 启动界面VI程序和工程创建栏新近打开的工程和VI程序列表栏帮助资源列表栏3.2.2 前面板和程序框图 LabVIEW程序被称为VI,扩展名默认为.vi框图窗口前面板窗口图标3.2.3 控件选板3.2.3 控件选板 控件选板控件选板在前面板显示,它包含创建前面板时可用的全部对象。控件选板中的基本常用控件可以以现代现代

9、(modern)、经典经典(classic)和系统系统(system)三种风格显示。 选择主菜单View-Controls Palette选项或右击前面板空白处就可以显示控件选板。 3.2.4 函数选板3.2.4 函数选板 函数选板只能在编辑程序框图时使用,与控件选板的工作方式大体相同。创建框图程序常用的VI和函数对象都包含在该选板中。 选择View-Functions Palette或右击框图面板空白处就可以显示函数选板。3.2.5 工具选板3.2.5 工具选板 在前面板和程序框图中都可以使用工具选板,使用其中不同的工具可以操作、编辑或修饰前面板和程序框图中选定的对象,也可以用来调试程序等。

10、 可以选择View-Tools Palette选项来显示工具选板 3.3 善用LabVIEW联机帮助 LabVIEW为用户提供了非常全面的帮助信息,有效地利用帮助信息是快速掌握LabVIEW的一条捷径。 LabVIEW提供了各种获取帮助信息的方法,包括实时上下文帮助(Show Context Help)、联机帮助、LabVIEW范例查找器(Find Examples)、网络资源(Web Resources)等。 3.3.1 实时上下文帮助窗口单击此处访问更详细的联机帮助更多帮助信息锁定上下文相关帮助显示VI路径3.3.1 实时上下文帮助窗口 选择菜单栏中Help-Show Context He

11、lp选项或按下Ctrl+H,就会弹出Context Help窗口。 当鼠标移到某个对象或函数上时,上下文帮助窗口就会显示相应的帮助信息。3.3.2 联机帮助文档3.3.2 联机帮助文档 当单击Context Help窗口中Detailed help会弹出相应的完整的帮助信息。这是一个Windows标准风格的帮助窗口,包含了LabVIEW全部的帮助信息。 你也可以选择主菜单Help-Search the LabVIEW Help选项打开它。3.3.3 范例查找器 3.3.3 范例查找器 LabVIEW提供了大量的范例,这些范例几乎包含了LabVIEW所有功能的应用实例,并提供了大量的综合应用实例

12、。 在菜单栏中选择Help-Find Examples选项可以打开范例查找器。3.4 编辑前面板 LabVIEW中的前面板是图形化的人机界面,利用控件选项板提供的各种控件可以所见即所得地编辑丰富多彩的人机界面。3.4.1 输入控件(输入控件(Controls)和显示控件()和显示控件(Indicator) 利用输入控件可以输入相应的数据,例如数字、布尔量、字符串和文件路径等。 3.4.1 输入控件(输入控件(Controls)和显示控件()和显示控件(Indicator) 显示控件用来显示数据。显示控件有数字、温度计、LED指示灯、文本、波形图等 。3.4.1 输入控件(输入控件(Contro

13、ls)和显示控件()和显示控件(Indicator) 前面板中的一些控件既可以作为输入控件也可以做作为显示控件。右击控件,选择Change to Indicator或Change to Control可以进行输入控件与显示控件之间的切换。 3.4.2 控件属性控件属性前面板中的每个控件都有自己的属性,如控件的颜色、最大最小值、显示精度和方式等。许多属性都可以根据不同的需要进行编辑。右击前面板任何一个控件选择Properties选项就可以弹出该控件的属性配置窗口。3.5 编辑程序框图编辑程序框图 程序框图是图形化源代码的集合,这种图形化的编程语言也称为G语言。3.5.1 程序框图中的控件对象 程

14、序框图中的控件对象实际上是前面板相应控件的接线端 前面板控件程序框图中对应的接线端3.5.2 程序框图节点程序框图节点LabVIEW中的程序框图节点是指带有输入和输出接线端的对象,类似文本编程语言中的语句、运算符、函数和子程序。LabVIEW中的节点主要包括函数、结构、Express VI、子VI等。3.5.3 对象连线对象连线 3.6 运行运行VI1运行运行VI单击前面板或程序框图工具栏中的运行按钮就可以运行VI一次,当VI正在运行时,运行按钮变为状态。2停止停止VI运行运行当程序运行时,停止按钮由编辑时的状态,变为可用状态,单击此按钮可强行停止程序的运行。如果调试程序时,使程序无意中进入死

15、循环或无法退出时,这个按钮可以强行结束程序运行。3.7 调试VI在程序执行前或正在执行时,单击工具栏上的高亮执行按钮,程序就可以在高亮方式下运行,这时可以逼真地显示数据的流动过程。再次单击此按钮,程序又恢复正常运行。注意注意,使用高亮执行方式,将明显降低程序的执行速度。1高亮显示数据流高亮显示数据流3.7 调试VI2查找查找VI不可执行的原因不可执行的原因 如果在一个VI程序中存在错误时,VI是不能运行的。这时,工具栏中的运行按钮由变为断裂状态,如果单击此按钮就会弹出错误列表对话框。小试身手 1、新建一个VI,进行如下练习: 任意放置几个控件在前面板,改变它们的位置、名称、大小、颜色等等。 在

16、VI前面板和后面板之间进行切换 并排排列前面板和后面板窗口小试身手 2、编写一个VI求三个数的平均值,如右图所示。 要求对三个输入控件等间隔并右对齐,对应的程序框图控件对象也要求如此对齐。 添加注释 分别用普通方式和高亮方式运行程序,体会数据流向。 单步执行一遍第第4章章 数据操作数据操作本章内容 4.1 数据类型数据类型 4.1.1 数字型控件 4.1.2 布尔型控件 4.1.3 枚举类型 4.1.4 时间类型(Time Stamp) 4.1.5 局部变量和全局变量 4.2 数据运算数据运算 4.2.1 算术运算符 4.2.2 关系运算符 4.2.3 逻辑运算符 4.2.4 表达式节点(Ex

17、pression Node)4.1 数据类型数据类型 VI程序框图中接线端以不同的图标和颜色来表示不同的数据类型 输入控件输入控件显示控件显示控件数据类型数据类型默认值默认值32位无符号整数(32-bit unsigned integer numeric)064位无符号整数(64-bit unsigned integer numeric)0位时间标示(bit time stamp)当地时间日期枚举类型(Enumerated type)-布尔(Boolean)FLASE字符串(String)空字符串4.1.1 数字型控件 数字型控件的外观可以五花八门,但是程序框图中的操作却是以其代表的数据类型为

18、准 4.1.2 布尔型控件 布尔控件代表一个布尔值,只能是True或False 它既可以代表按钮输入,也可以当作LED指示灯显示。 4.1.3 枚举类型枚举类型 LabVIEW中的枚举类型和C语言中的枚举类型定义相同。它提供了一个选项列表,其中每一项都包含一个字符串标识和数字标识,数字标识与每一选项在列表中的顺序一一对应。 枚举型控件4.1.3 枚举类型枚举类型从上述的选板中选择枚举类型的输入控件添加到前面板中,然后右击该控件,从快捷菜单中选择Edit Items选项,打开如下图所示的枚举型选项编辑对话框。 4.1.4 时间类型(Time Stamp) 时间类型是LabVIEW中特有的数据类型

19、,用于输入与输出时间和日期 4.1.5 局部变量和全局变量局部变量和全局变量 在很多情况下需要在同一VI的不同位置或在不同的VI中访问同一个控件对象,这时控件对象之间的连线就无法实现。这时候我们就需要用到局部变量或全局变量,通过局部变量或全局变量你可以在程序框图中的多个地方读写同一个控件。 局部变量局部变量 局部变量只能在同一程序内部使用,每个局部变量都对应前面板上的一个控件,一个控件可以创建多个局部变量。 读写局部变量等同于读写相应控件局部变量局部变量局部变量 创建局部变量有两种方法 从函数选板的Structures子选板中选中Local Variable节点 前面板或程序框图中右击需要创建

20、局部变量的控件选择Create-Local Variable选项创建该控件的局部变量 局部变量局部变量 读写局部变量的方法与读写控件对象的方法完全一样全局变量全局变量 通过全局变量可以在不同的VI之间进行数据交换,一个全局变量的VI文件中可以包含多个不同数据类型的全局变量。 LabVIEW中的全局变量是以独立的VI文件形式存在的,这个VI文件只有前面板,没有程序框图,不能进行编程。 注意: 使用局部变量和全局变量时要避免竞争现象。 例如在程序不同的两个地方同时写同一个的对象的局部变量或全局变量,就会产生竞争现象,这时变量的值是无法预期的。 因此我们必须要注意程序的执行顺序,避免竞争现象4.2

21、数据运算数据运算 LabVIEW中提供了丰富的数据运算功能,除了基本的数据运算符外,还有许多功能强大的函数节点,并且还支持通过一些简单的文本脚本进行数据运算。 LabVIEW图形化编程中,运算是按照从左到右沿数据流的方向顺序执行。 4.2.1 算术运算符算术运算符 基本算术运算符包含在函数选板的Numeric子选板中,该子选板中有类型转换类型转换(Conversion)节点)节点、复复数(数(Complex)节点)节点、数数学和科学常数学和科学常数(Math&Scientific Constants)节点)节点等 算术运算符举例算术运算符举例C=A+B=文本编程语言图形化编程语言4.2

22、.2 关系运算符关系运算符 关系运算符也叫比较运算符,包含在函数选板的Comparison子选板中 4.2.3 逻辑运算符逻辑运算符 逻辑运算符又称为布尔运算符,包含在程序框图中函数选板的Boolean子选板中,LabVIEW中逻辑运算符的图标与数字电路中逻辑运算符的图标相似 4.2.4 表达式节点(表达式节点(Expression Node)使用表达式节点可以计算包含一个变量的数学表达式,该节点允许使用除复数外的任何数字类型。在表达式节点中可以使用的函数有abs、acos、acosh、asin、asinh、atan、atanh、ceil、cos、cosh、cot、csc、exp、expml、

23、floor、getexp、getman、int、intrz、ln、lnpl、log、log2、max、min、mod、rand、rem、sec、sign、sin、sinc、sinh、sqrt、tan、tanh。 表达式节点小试身手 1、写一个VI判断两个数的大小,如右图所示:当AB时,指示灯亮小试身手 2. 写一个VI获取当前系统时间,并将其转换为字符串和浮点数。这在实际编程中会经常遇到。小试身手 3. 利用局部变量写一个计数器,每当VI运行一次计数器就加一。当VI关闭后重新打开时,计数器清零。小试身手 4. 写一个温度监测器,如右图所示,当温度超过报警上限,而且开启报警时,报警灯点亮。温度值

24、可以由随即数发生器产生。小试身手 5.给定任意x, 求如下表达式的值xexxycos5第第5章章 程序结构程序结构本章内容 5.1 顺序结构(顺序结构(Sequence Structure) 5.2 For循环循环 5.3 While循环循环 5.4 Case结构结构 5.5 事件结构(事件结构(Event Structure) 5.6 使能结构使能结构 5.7 公式节点(公式节点(Formula Node) 5.8 跟着实例学跟着实例学模拟温度采集监测系统模拟温度采集监测系统5.1 顺序结构(顺序结构(Sequence Structure) 5.1.1 LabVIEW程序的执行顺序 数据流式

25、的编程方法 多段代码同时执行5.1 顺序结构(顺序结构(Sequence Structure) Flat Sequence Structure Stacked Sequence Structure 5.1 顺序结构(顺序结构(Sequence Structure) 在在Flat Sequence Structure的的Frame间传间传递数据递数据5.1 顺序结构(顺序结构(Sequence Structure) 在在Stacked Sequence Structure的的Frame间传递数据间传递数据 5.2 For循环循环 For循环用于将某段程序循环执行指定的次数。可以通过两种方法指定循

26、环次数,一种是直接给定,一种是通过输入数组的大小给定 5.2 For循环循环 输入和输出数组输入和输出数组5.2 For循环循环 5.2.3 移位寄存器移位寄存器(Shift Register)一个累加一个累加10次的次的a+程序程序 通过局部变量实现通过局部变量实现通过移位寄存器实现通过移位寄存器实现 5.2 For循环循环 5.2.4 反馈节点(反馈节点(Feedback Node)通过反馈节点实现通过反馈节点实现a+ 5.3 While循环循环5.3 While循环循环 5.3.2 添加定时器添加定时器5.3 While循环循环 5.3.3 使用移位寄存器和反馈节点使用移位寄存器和反馈节

27、点累加器程序累加器程序 5.4 Case结构If(a%2=0)b=a+2;elseb=a+1;end5.4.1 等价于等价于if.else.语句的语句的Case结构结构5.4 Case结构 5.4.3 等价于等价于switch语句的语句的Case结构结构switch (fruit)case apple: price=9; case banana: price=10; case pear: price=8; default: price=0;5.5 事件结构(Event Structure) 分析该程序可以看出,这个程序在没有用户点击的情况下完全都是在“空转”,浪费了大量的CPU资源,而且当“事

28、件”发生太快时可能会被忽略。因此Labview提供了事件结构来解决这个问题,即仅当“事件”发生时,程序才做相应的响应 基于基于While循环和循环和Case结构的单击计数器结构的单击计数器 5.5 事件结构(Event Structure)5.5 事件结构(Event Structure)5.5 事件结构(Event Structure)基于事件结构的单击计数器基于事件结构的单击计数器 5.5 事件结构(Event Structure) 5.5.2 Filter事件事件 顾名思义,当该事件发生时,用户可以过滤掉顾名思义,当该事件发生时,用户可以过滤掉甚至完全放弃掉该事件将触发的活动。甚至完全放

29、弃掉该事件将触发的活动。 注意:注意: 一般来说,事件只能通过外在用户的动作触发,如单击鼠标,键盘等。如果需要内部数据触发事件(例如当ab条件满足时触发一个事件),就需要通过用户自定义事件的方法实现,这将在本书的21.3节中介绍。5.6 使能结构使能结构 5.6.1 框图使能结构框图使能结构注释程序框图注释程序框图5.7 公式节点(Formula Node) 通过公式节点,用户不仅可以实现复杂的数学公式,还能通过文本编程写一些基本的逻辑语句,如ifelse, case, while循环之类的语句。 y=atgbebbaaasincos535.7 公式节点(Formula Node) 公式节点中

30、可以包含任意数量的公式公式节点中可以包含任意数量的公式 5.7 公式节点(Formula Node) 5.7.2 文本编程语言的实现文本编程语言的实现基于公式节点的基于公式节点的CRC16算法的实现算法的实现 5.8 跟着实例学跟着实例学模拟温度采集监测系统模拟温度采集监测系统小试身手 1. 利用顺序结构和timing面板下的tick count VI,计算for循环1000000次所需的时间。 2. 为第4章习题4添加一个While循环和定时器,实现连续的温度采集监测小试身手 3、利用顺序结构和循环结构写一个跑马灯,如下图所示,5个灯从左到右不停的轮流点亮,闪烁间隔由滑动条调节小试身手 4.

31、 求分数序列 前20项之和。 5. 给出一百分制成绩,要求输出等级A,B,C,D,E。90分以上为A,8089为B,7079为C,6069为D,60分以下为E。,.813,58,35,23,12小试身手 6. 利用事件结构实现在数字输入控件中,每当用户按下一个数字后,累加值就将新数字累加上去。例如按下34时,累加值为7;按下345时,累加值为12小试身手 7. 利用公式节点判断一个数是否是素数,我们可以采用这样的算法:用2sqrt(N),依次去对N求余,只要有一个余数是0,则N就不是素数。 第第6章章 字符串、数组、簇和矩阵字符串、数组、簇和矩阵本章内容 6.1 字符串(字符串(String)

32、 6.2 数组(数组(Array) 6.3 簇(簇(Cluster)LabVIEW中的结构中的结构体变量体变量 6.4 矩阵(矩阵(Matrix)6.1 字符串(字符串(String) 字符串在LabVIEW编程中会频繁的用到,因此LabVIEW封装了功能丰富的字符串函数用于字符串的处理,用户不需要再像C语言中一样为字符串的操作编写繁琐的程序。 字符串控件包括输入控件、显示控件和下拉框。 6.1 字符串(字符串(String)6.1 字符串(字符串(String) 6.1.1 字符串控件字符串控件 字符串输入控件一般被用作文本输入框,而字字符串输入控件一般被用作文本输入框,而字符串显示控件一般

33、被用作文本显示框。符串显示控件一般被用作文本显示框。 6.1 字符串(字符串(String) 6.1.2 表格和树形控件表格和树形控件 表格(Table)和树形控件在Controls Palette的Modern-List & Table面板下。 表格实际上就是一个字符串组成的二维数组。 树形控件以树的形式显示多层内容,Windows的资源管理器就是用树形控件来显示文件目录的。 6.1 字符串(字符串(String) 6.1.2 表格和树形控件举例表格和树形控件举例6.1 字符串(字符串(String) 6.1.3 字符串函数字符串函数6.1 字符串(字符串(String) 6.1.3

34、 字符串函数举例字符串函数举例 基本字符串函数示例基本字符串函数示例 6.1 字符串(字符串(String) 6.1.3 字符串函数举例字符串函数举例数据数组数据数组/电子表格字符串转换函数示例电子表格字符串转换函数示例 6.2 数组(数组(Array) 6.2.1 数组控件数组控件数组控件 6.2 数组(数组(Array) 6.2.1 数组控件数组控件6.2 数组(数组(Array) 6.2.2 数组之间的算术运算数组之间的算术运算 LabVIEW一个非常大的优势就是它可以根据输一个非常大的优势就是它可以根据输入数据的类型判断算子的运算方法,即自动实入数据的类型判断算子的运算方法,即自动实现

35、多态现多态 对于加减乘除,数组之间的运算满足下面的规对于加减乘除,数组之间的运算满足下面的规则:则: a) 如果进行运算的两个数组大小完全一样,则将如果进行运算的两个数组大小完全一样,则将两个数组中索引相同的元素进行运算形成一个新的两个数组中索引相同的元素进行运算形成一个新的数组。数组。 b) 若大小不一样,则忽略较大数组多出来的部分。若大小不一样,则忽略较大数组多出来的部分。 c) 如果一个数组和一个数值进行运算,则数组的如果一个数组和一个数值进行运算,则数组的每个元素都和该数值进行运算从而输出一个新的数每个元素都和该数值进行运算从而输出一个新的数组。组。 6.2 数组(数组(Array)

36、6.2.3 数组函数数组函数6.2 数组(数组(Array) 6.2.3 数组函数举例数组函数举例用用Array Size 函数获得三维数组大小示例函数获得三维数组大小示例 6.3 簇(簇(Cluster)LabVIEW中的结构体变量中的结构体变量 簇是簇是LabVIEW中比较独特的一个概念,但中比较独特的一个概念,但实际上它就对应于实际上它就对应于C语言等文本编程语言中语言等文本编程语言中的结构体变量。的结构体变量。 6.3 簇(簇(Cluster)LabVIEW中的结构体变量中的结构体变量 6.3.1 簇的创建簇的创建通过簇控件实现的温度显示器通过簇控件实现的温度显示器 6.3 簇(簇(C

37、luster)LabVIEW中的结构体变量中的结构体变量 改变簇内部元素控件的索引改变簇内部元素控件的索引 6.3 簇(簇(Cluster)LabVIEW中的结构体变量中的结构体变量 6.3.2 簇操作函数簇操作函数6.3 簇(簇(Cluster)LabVIEW中的结构体变量中的结构体变量1、解包函数(、解包函数(Unbundle) 该函数将簇解开从而获得簇中各个元素的值。缺省情况下,它会根据输入的簇自动调整输出端子的数目和数据类型,并按照簇内部元素索引的顺序排列。6.3 簇(簇(Cluster)LabVIEW中的结构体变量中的结构体变量 2、打包函数(、打包函数(Bundle) 该函数用来为

38、Cluster中各元素赋值。6.3 簇(簇(Cluster)LabVIEW中的结构体变量中的结构体变量3、按元素名称解包函数(、按元素名称解包函数(Unbundle By Name) 普通的解包函数解包后只有将鼠标移到输出端子上才能看到输出元素的名称,程序的可读性不高。该函数可以根据名称有选择的输出簇内部元素。其中元素名称就是指元素的Label。6.3 簇(簇(Cluster)LabVIEW中的结构体变量中的结构体变量4、按元素名称打包函数(、按元素名称打包函数(Unbundle By Name) 该函数通过簇内部元素名称来给簇内部元素赋值。参考簇是必须的,该函数通过参考簇来获得元素名称。6.

39、3 簇(簇(Cluster)LabVIEW中的结构体变量中的结构体变量 簇操作函数使用示例簇操作函数使用示例 6.3 簇(簇(Cluster)LabVIEW中的结构体变量中的结构体变量 6.3.3 error in 和和error out簇簇 LabVIEW利用error in 和error out这两个预定义簇来作为传递错误信息的载体。 6.3 簇(簇(Cluster)LabVIEW中的结构体变量中的结构体变量 6.3.3 error in 和和error out簇簇 对于系统错误,code都有预先的定义,可以通过选择Help-Explain Error打开错误解释框来查找该错误代码的更详细

40、的解释。 6.4 矩阵(矩阵(Matrix) LabVIEW 8之前的版本中只能通过二维数组来实现矩阵的操作。但是数组的运算方法和矩阵的运算方法有很大不同,譬如两个数组相乘是直接将相同索引的数组元素相乘,而矩阵的相乘必须按照线性代数中规定的方法相乘,因此用数组实现矩阵运算是非常麻烦的。LabVIEW 8最新加入了对矩阵的支持,从而使矩阵的运算变得非常简单。6.4 矩阵(矩阵(Matrix) 矩阵乘法举例6.4 矩阵(矩阵(Matrix) LabVIEW 8还提供了丰富的线性代数运算函数,它们位于Functions Palette的mathematics - liner algebra面板下 小

41、试身手 1. 为第5章的习题2连续温度采集监测添加报警信息,如下图所示,当报警发生时输出报警信息,例如“温度超限!当前温度78.23”,正常情况下输出空字符串。小试身手 2. 对字符串进行加密,规则是每个字母后移5位,例如A变为F,b变为g,x变为c,y变为d小试身手 3. 产生一个33的整数随机数数组,随机数要在0到100之间,然后找出数组的鞍点,即该位置上的元素在该行上最大,在该列上最小,也可能没有鞍点。如下图所示:小试身手 4. 利用簇模拟汽车控制,如右图所示,控制面板可以对显示面板中的参量进行控制。油门控制转速,转速油门*100,档位控制时速,时速档位*40,油量随VI运行时间减少。第

42、第7章章 图形化显示数据图形化显示数据图表和图形图表和图形引子 LabVIEW很大的一个优势就是它提供了丰富的数据图形化显示控件,而且使用起来极其方便。 本章内容 7.1 波形数据波形数据(Waveform) 7.2 Chart趋势图趋势图 7.3 Graph图表图表 7.4 三维图形(三维图形(3D Graph) 7.5 Picture图形控件图形控件7.1 波形数据波形数据(Waveform) 7.1.1 波形数据控件波形数据控件 为了方便地显示波形,LabVIEW专门预定义了波形数据类型。它实际上就是按照一定格式预定义的簇,在信号采集,处理和分析过程中经常会用到它。 7.1 波形数据波形

43、数据(Waveform) 波形数据控件携带的数据包含了时间波形的基本信息,因此可以直接作为Chart和Graph的输入。横坐标代表时间,纵坐标代表Y值 7.1 波形数据波形数据(Waveform) 7.1.2 波形数据操作函数波形数据操作函数 虽然波形数据是一种预定义格式的簇,但是必须用专用的波形数据操作函数才能对它进行操作,其中某些操作函数与簇的操作函数非常类似。 波形数据的操作函数位于Functions Palette的Programming-Waveform子模板下 7.1 波形数据波形数据(Waveform) 波形数据操作函数举例波形数据操作函数举例7.2 Chart趋势图趋势图 Ch

44、art可以将新测得的数据添加到曲线的尾端,从而反映实时数据的变化趋势,它主要用来显示实时曲线。 7.2 Chart趋势图趋势图 7.2.1 波形趋势图(波形趋势图(Waveform Chart) 对于标量数据,对于标量数据,Chart图表直接将数据添加在图表直接将数据添加在曲线的尾端。曲线的尾端。 7.2 Chart趋势图趋势图 对于一维数组数据,它会一次性把一维数组的数据添加在曲线末端,即曲线每次向前推进的点数为数组数据的点数。 7.2 Chart趋势图趋势图 若要显示多条标量曲线,只需要用簇的Bundle函数将它们绑定在一起作为输入即可。 7.2 Chart趋势图趋势图 对于二维数组,缺省

45、情况下是每一列的数据当作一条一维数组曲线。 7.2 Chart趋势图趋势图 技巧:技巧: 若想将曲线截图,可以通过右击曲线选择Data Operations-Copy Data将曲线图复制到剪切板上。7.2 Chart趋势图趋势图 7.2.2 定制定制Chart显示样式显示样式 分栏显示多条曲线。分栏显示多条曲线。 右击Chart选择Stack Plots 7.2 Chart趋势图趋势图 7.2.2 定制定制Chart显示样式显示样式 设置更新模式设置更新模式 右击Chart选择Advanced-Update Mode可以设置曲线的更新模式。 Strip Chart模式:曲线填满显示区后曲线通

46、过左移来更新曲线。 Scope Chart模式:曲线填满显示区后直接清空显示区重新开始从左向右增长曲线 在Sweep Chart模式:通过一条指示红线从左向右刷新数据 7.2 Chart趋势图趋势图 7.2.3 带时间轴的实时曲线带时间轴的实时曲线7.3 Graph图表图表 Graph和Chart的区别在于Graph是一次性将现有数据绘图,在绘图之前先自动清空图表,而不会将新数据添加到曲线的尾端。 根据显示方法,Graph又分为波形图、XY曲线图、强度图、数字时序图和三维图。 7.3 Graph图表图表 7.3.1 定制定制Graph属性属性 7.3 Graph图表图表 右击Graph控件可以

47、看到该控件有很多属性可以设置。选择Visible Items可以看到关于该控件的很多辅助选项。选择这些选项可以使它们都可见,如下图所示。 7.3 Graph图表图表Waveform Graph 7.3.2 Waveform Graph Waveform Graph可以有多种数据输入类型:一维数组,二维数组,簇,簇数组,波形数据。它在Controls Palette中的位置为Modern-Graph-Waveform Graph。7.3 Graph图表图表Waveform Graph1、一维数组作为输入、一维数组作为输入 当输入数据为一维数组时,当输入数据为一维数组时,Waveform Grap

48、h直接将一维数组画成一条曲线,纵坐标直接将一维数组画成一条曲线,纵坐标为数组元素的值,横坐标为数组索引。为数组元素的值,横坐标为数组索引。 7.3 Graph图表图表Waveform Graph2、二维数组作为输入、二维数组作为输入 当输入数组为二维数组时,缺省情况下每一行的数据对应一条曲线,即曲线的数目和行数相同。 7.3 Graph图表图表Waveform Graph3、簇作为输入、簇作为输入 簇作为输入时需要指定三个元素:起始位置x0、数据点间隔dx和数组数据。 7.3 Graph图表图表Waveform Graph4、簇数组作为输入、簇数组作为输入 一维簇数组也可以直接作为Graph的

49、输入,此时相当于x0为0,dx为1 7.3 Graph图表图表Waveform Graph5、波形数据作为输入、波形数据作为输入 由于波形数据所携带的数据横轴为时间,因此需要将Waveform Graph的横轴设为时间轴。 7.3 Graph图表图表XY Graph 7.3.3 XY Graph 当我们需要画的曲线是由当我们需要画的曲线是由(x, y)坐标决定的时候,坐标决定的时候,我们就需要采用我们就需要采用XY Graph。 其实其实Waveform Graph在一定意义上也是在一定意义上也是XY Graph,但是它的,但是它的X轴必须是等间距的,而且轴必须是等间距的,而且不可控制。不可控

50、制。 7.3 Graph图表图表XY Graph 1、XY两个一维数组绑定为簇作为输入两个一维数组绑定为簇作为输入 这是最简的一种情形,Bundle函数的输入的第一个数组为X Array,第二个数组为Y Array。绑定为簇后可以直接输入,也可以将多个簇Build为一维数组输入实现多条曲线。 7.3 Graph图表图表XY Graph2、坐标点簇数组作为输入、坐标点簇数组作为输入该方式将各个点的坐标绑定为簇然后作为簇数组输入,和直接该方式将各个点的坐标绑定为簇然后作为簇数组输入,和直接将将XY数组绑定为簇输入效果一样。但是后者不一定需要数组绑定为簇输入效果一样。但是后者不一定需要XY数组数组的

51、大小一致,它会自动将大的数组裁剪。的大小一致,它会自动将大的数组裁剪。 7.3 Graph图表图表XY Graph3、时间作为、时间作为X轴轴利用利用XY Graph实现实现历史曲线历史曲线 7.3 Graph图表图表XY Graph4、Express XY Graph Express XY Graph采用了LabVIEW的Express技术,将Express XY Graph放置在前面板上的同时,在程序框图中会自动添加一个VI,它的XY轴数据为动态数据类型。 7.3 Graph图表图表 7.3.4 亮度图亮度图(Intensity Graph & Chart)7.3 Graph图表图

52、表 7.3.5 数字波形图数字波形图(Digital Waveform Graph)7.4 三维图形(三维图形(3D Graph)1、三维曲面图(、三维曲面图(3D Surface Graph) 将该控件放置在前面板上的同时,在背面板也会同时出现一个ActiveX控件和一个VI函数3D Surface.vi。 7.4 三维图形(三维图形(3D Graph)2、三维参量曲面图(、三维参量曲面图(3D Parametric Graph) 它需要它需要3个轴的数据均为二维数组,分别决定个轴的数据均为二维数组,分别决定了相对于了相对于x平面、平面、y平面和平面和z平面的曲面。平面的曲面。 7.4 三维

53、图形(三维图形(3D Graph)3、三维曲线图(、三维曲线图(3D Curve Graph) 7.5 Picture图形控件图形控件 向Picture控件导入图片7.5 Picture图形控件图形控件 利用Picture控件画图 小试身手 1. 请说出Chart、Waveform Graph、XY Graph之间的主要区别。小试身手 2. 利用随机数发生器仿真一个0到5V的采样信号,每200ms采一个点,利用实时趋势曲线实时显示采样结果。小试身手 3. 在习题2的基础上再增加1路电压信号采集,此路电压信号的范围为5到10V。小试身手 4.利用随机数发生器仿真一个0到5V的采样信号,每200m

54、s采一个点,共采集50个点,采集完后一次性显示在Waveform Graph上。小试身手 5. 在习题4的基础上再增加1路电压信号采集,此路电压信号的范围为5到10V,采样间隔是50ms,共采100个点。采样完成后,将两路采样信号显示在同一个Waveform Graph中。小试身手 6. 将习题5中的X轴改为时间轴显示,要求时间轴能真实的反映采样时间。分析为什么与习题5的显示结果截然不同?小试身手 7. 利用Signal Processing-Signal Generation-Sine Pattern.vi(如右上图所示)产生两条正弦曲线,将两条曲线分别作为XY Graph的XY输入。通过改

55、变其中一条曲线的频率和相位来研究李萨如图形。第第8章章 Express VI快速搭快速搭建专业测试系统建专业测试系统引子 自LabVIEW 7开始,LabVIEW提供了Express技术,用以快捷简便地搭建专业的测试系统。在此后的版本中,Express技术得到了不断的加强。它将各种基本函数进一步打包为更加智能,功能更加丰富的函数;并对其中某些函数提供配置对话框,通过配置框可以对函数进行详细的配置。因此,通过Express VI我们可以用很少的步骤实现功能完善的测试系统。对于复杂的系统,利用Express VI也能起到极大的简化作用。本章内容 8.1 初识初识Express技术技术 8.2 动态

56、数据类型动态数据类型 8.3 Express VIs简介简介 8.4 跟着实例学跟着实例学基于基于Express VI的声音的声音信号采集系统信号采集系统8.1 初识初识Express技术技术 Express技术包含前面板控件和程序框图VI函数 8.1 初识初识Express技术技术 基于配置的编程方式仿真信号发生器Express VI 参数配置对话框8.1 初识初识Express技术技术 利用利用Express VI搭建的信号滤波器搭建的信号滤波器8.2 动态数据类型动态数据类型 针对Express VI的灵活性,LabVIEW提供了动态数据类型动态数据类型(Dynamic Data Typ

57、e, DDT)来携带Express VI的输入与输出信号。 动态数据类型能够携带单点,单通道(一维数组)或多通道(二维数组)的数据或波形数据类型的数据。此外,它还包含了一些信号的属性信息,譬如信号的名称、采集日期时间等。 8.2 动态数据类型动态数据类型 由于动态数据类型能够包含单个或多个信号,因此还可以将多个DDT数据合并或者将合并后的DDT数据再拆开。这可以通过Express-Signal Manipulation面板下的Merge Signals和Split Signals函数实现。 8.3 Express VIs简介简介 8.3.1 信号输入(信号输入(Input) Express V

58、Is 信号输入信号输入Express VIs在Express-Input面板下,主要用来从仪器采集信号或产生仿真信号;通过这些函数,信号可以来源于仪器,也可以来源于文件或者由计算机仿真产生。 8.3 Express VIs简介简介8.3 Express VIs简介简介 8.3.2 信号分析(信号分析(Signal Analysis)Express VIs 信号分析信号分析Express VIs在Express-Signal Analysis面板下。该面板下包含了最常用的信号分析函数,例如谱测量、失真度测量、曲线拟合、滤波器和直方图等。8.3 Express VIs简介简介 8.3.3 输出(输

59、出(Output)Express VIs Output Express VIs在Express-Output面板下,用于将信号数据存入文件,产生报表或向仪器输出真实信号等8.3 Express VIs简介简介8.3 Express VIs简介简介 8.3.4 信号操作(信号操作(Signal Manipulation)Express VIs 信号操作信号操作Express VIs在Express-Signal Manipulation面板下。主要用于对信号数据进行各种操作,譬如信号合并、类型转换、信号连接、抽样信号、触发信号和选择信号等;8.3 Express VIs简介简介 8.3.5 算术

60、与比较(算术与比较(Arithmetic & Comparison)Express VIs 算术与比较算术与比较Express VIs在Express-Arithmetic & Comparison面板下,它包含一些基本的数学函数和比较操作符,以及数字和字符串等。8.3 Express VIs简介简介 8.3.6 执行控制执行控制Express VIs 执行控制执行控制Express VIs在Express-Execution Control面板下,包含了一些基本的程序结构以及时间函数,譬如While结构,Case结构,时间延时和消逝时间等。 8.4 跟着实例学跟着实例学基于基于Express VI的声音信号采集

温馨提示

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

评论

0/150

提交评论