版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、虚拟仪器原理及设计,Test , Measurment and Automate Your world through Virtual Instrumentation.,第二章 虚拟仪器开发环境 LabView,虚拟仪器开发环境概述 LabView基本概念 创建一个简单的应用 LabView帮助系统 LabView前面板设计 LabView中常用快捷键介绍,第二章 LabView内容介绍,虚拟仪器开发环境概述,主要是面向测试工程师,而不是专业程序员的虚拟仪器软件开发环境 应具有如下特性: (1)简单,易于理解和修改(便于维护); (2)具有强大的人机交互界面设计能力,易于实现各种复杂的仪器面板
2、; (3)具有数据可视化分析能力,提供丰富的仪器和总线接口硬件驱动程序。,第二章 LabView虚拟仪器开发环境概述,LabVIEW的宗旨和目标创建适合工程师和科学家使用的编程语言。 LabVIEW编程语言的表达机制图形化编程。LabVIEW编程语言的运行机制数据流。,LabView基本概念,LabVIEW开发环境提供给我们一个图形化程序架构 包含了三个方面的要素:1. 前面板(front panel) 2. 程序框图(block diagram) 3. 图标和连接器 (Icon/Connector) 所有的LabVIEW应用程序称为VI (Virtual Instruments ),第二章
3、LabViewLabView基本概念,LabView基本概念,Panel Toolbar,Icon Pane,Digital Control,Knob Owned Label,Knob Control,Graph Legend,控件选项板,前面板(front panel),第二章 LabViewLabView基本概念,LabView基本概念,第二章 LabViewLabView基本概念,程序框图(block diagram),Wire Data,Graph Terminal,SubVI,For Loop Structure,函数选项板,Multiply Function,Numeric Con
4、stant,Timing Function,LabView基本概念,图标和连接器(Icon/Connector),An icon represents a VI in other block diagrams A connector passes data to and receives data from a “subVI” through terminals,第二章 LabViewLabView基本概念,LabView基本概念,关于VI的其它特性 : 最小的VI 子VI VI的层次结构 VI的跨平台,第二章 LabViewLabView基本概念,LabView基本概念,关于VI的其它特性
5、: 最小的VI,第二章 LabViewLabView基本概念,一个VI在内存中包括四个部分:a. 前面板对象b. 程序框图对象c. 代码d. 数据,LabView基本概念,关于VI的其它特性 : 最小的VI 子VI,第二章 LabViewLabView基本概念,子VI是可供其它VI调用的独立VI,它类似于文本语言中的子程序 子VI和VI的根本区别是:是否准确的定义了连接器(还应包括图标),LabView基本概念,关于VI的其它特性 : 最小的VI 子VI VI的层次结构,第二章 LabViewLabView基本概念,LabView基本概念,关于VI的其它特性 : 最小的VI 子VI VI的层次
6、结构 VI的跨平台,第二章 LabViewLabView基本概念,目前计算机操作系统有三种:Windows、Mac OS、Linux,第一步 中间语言代码: 在各个平台上生成的,NI制定的标准化的(图形化)语言代码 第二步 Run_time运行时: 将VI(中间语言代码)编译转换成各个平台下的可执行代码,这样程序得以运行,LabView基本概念,图形化代码(LabVIEW Graphical Code),第二章 LabViewLabView基本概念,图形化编程语言的源代码是出现在程序框图上,已基本上定义出它的三种表述形式: 1. 端子 (Terminals) 2. 连线 (Wire) 3. 节
7、点 (Nodes),LabView基本概念,图形化代码(LabVIEW Graphical Code),第二章 LabViewLabView基本概念,图形化编程语言的源代码是出现在程序框图上,已基本上定义出它的三种表述形式: 1. 端子 (Terminals),端子是除“修饰控件”外的前面版控件在程序框图中的映射,也是程序框图中传输数据的端口。它类似于文本编程语言中的参数和常量。端子影射的是控件的类型(控制器、指示器)及它们所使用的数据类型。,LabView基本概念,图形化代码(LabVIEW Graphical Code),第二章 LabViewLabView基本概念,图形化编程语言的源代码
8、是出现在程序框图上,已基本上定义出它的三种表述形式: 1. 端子 (Terminals),端子所提供的一些基本信息: 控件和指示器的外观图像(也可以以图标的形式显示) 控件的边框颜色较深,表示它是控件(输入) 控件的边框颜色较浅,表示它是指示控件(输出) 端子的下方显示出了该控件的数据类型(DBL、U8) 端子边框上的小箭头可以看出控件的指向(输入或输出),LabView基本概念,图形化代码(LabVIEW Graphical Code),第二章 LabViewLabView基本概念,图形化编程语言的源代码是出现在程序框图上,已基本上定义出它的三种表述形式: 1. 端子 (Terminals)
9、 2. 连线 (Wire),连线是两个端子间的数据通道或称为数据路径,它有些类似于文本语言中的变量或赋值。事实上,由于数据类型不同的关系,在图形化语言中充分利用线段的形状 、线型、颜色等不同的连线,来表示不同的数据类型。,LabView基本概念,第二章 LabViewLabView基本概念,LabView基本概念,图形化代码(LabVIEW Graphical Code),第二章 LabViewLabView基本概念,图形化编程语言的源代码是出现在程序框图上,已基本上定义出它的三种表述形式: 3. 节点 (Nodes),“节点”的概念意味着数据将从这里流入或流出。节点相当于文本编程语言中的语句
10、、函数和子程序。,共有四种类型: a、内置函数节点 b、内置VI节点 c、Express VI 节点 d、结构节点。,LabView基本概念,LabView中的操作模板 (a)工具模板 (b)控件模板 (c)函数模板,第二章 LabViewLabView基本概念,LabView基本概念,图形化编程基本要点:,第二章 LabViewLabView基本概念,程序框图设计要紧凑,当使用的面积很大时,尽可能的使用LabVIEW开发环境提供的“导航窗”的功能。 可利用LabVIEW开发环境提供的“整理(类适于“格式刷”)”功能(8.6版)。 依照数据流的概念程序框图设计时,图标按数据流的关系从左至右排列
11、。 在程序框图中大量的使用标注,应该是一个很好的习惯,初学者往往忽略这一点。,创建一个简单应用,创建用户界面(UI) 编写程序逻辑,第二章 LabView内容介绍,LabView帮助系统,上下文帮助Show Context Help 在线帮助 随机PDF帮助文档 查找LabVIew例程 网络论坛,第二章 LabViewLabView帮助系统,LabView前面板设计,前面板修饰 程序外观和前面板风格设计 File -VI Properties -Windows Appearance,第二章 LabView内容介绍,LabView中常用快捷键,在前面板和程序框图间切换 Ctrl+E 将前面板与程
12、序框图按左右排布 Ctrl+T 去除所有坏线 Ctrl+B 打开工具面板 shift+右键 打开VI属性对话框 Ctrl+I,第二章 LabView内容介绍,第三章 编辑和调试程序代码,数据流驱动和事件驱动 Labview中的数据 子程序和图标 程序调试和运行,第三章 编辑和调试程序代码内容介绍,数据流驱动与事件驱动,数据流驱动 所谓数据流驱动是指在程序中,框图程序从左到右执行(注:这个次序不是由对象的摆放位置决定的)。一个节点只有当其输入接口的所有数据都有效地到达后,它才把结果送到输出端口。,第三章 编辑和调试程序代码程序菜单设计,数据流驱动与事件驱动,数据流驱动 数据流编程应该是LabVI
13、EW图形化语言的核心编程思想。,第三章 编辑和调试程序代码程序菜单设计,数据流驱动与事件驱动,第三章 编辑和调试程序代码程序菜单设计,数据流驱动与事件驱动,数据流编程的基本原则 依据数据流的编程原则,图形化代码是从左到右来排放的。也就是说,按照从左到右的排放和连接顺序构成了图形化程序,它的程序运行也是按照这个顺序来进行的。例外仅仅发生在反馈节点和移位寄存器以及层叠的顺序结构。,第三章 编辑和调试程序代码程序菜单设计,数据流驱动与事件驱动,数据流编程的基本原则 基于数据流编程的程序代码,彼此不相关的程序段是并发同时执行的。所以说图形化语言天生地具有并行执行能力。这点对于测量和控制程序而言是相当的
14、重要。,第三章 编辑和调试程序代码程序菜单设计,数据流驱动与事件驱动,数据流编程的基本原则 基于数据流编程的程序代码,彼此不相关的程序段是并发同时执行的。所以说图形化语言天生地具有并行执行能力。这点对于测量和控制程序而言是相当的重要。 如果程序框图中存在着多个并行程序,整个程序的执行时间取决于执行时间最长的程序段,第三章 编辑和调试程序代码程序菜单设计,数据流驱动与事件驱动,数据流编程的基本原则 基于数据流编程的程序代码,彼此不相关的程序段是并发同时执行的。所以说图形化语言天生地具有并行执行能力。这点对于测量和控制程序而言是相当的重要。 如果程序框图中存在着多个并行程序,整个程序的执行时间取决
15、于执行时间最长的程序段 内置函数Stop和Exit LabVIEW的特殊性,第三章 编辑和调试程序代码程序菜单设计,数据流驱动与事件驱动,数据流驱动 所谓数据流驱动是指在程序中,框图程序从左到右执行(注:这个次序不是由对象的摆放位置决定的)。一个节点只有当其输入接口的所有数据都有效地到达后,它才把结果送到输出端口。 事件驱动 系统等待并响应用户或其他触发事件的对象发出的消息,从而减轻程序员进行流程控制的负担。,第三章 编辑和调试程序代码程序菜单设计,第三章 编辑和调试程序代码,数据流驱动和事件驱动 Labview中的数据 子程序和图标 程序调试和运行,第三章 编辑和调试程序代码内容介绍,Lab
16、view中的数据,数据放置在何处 LabVIEW的数据容器控件的基本特性 如何获得LabVIEW控件中的值,第三章 编辑和调试程序代码基本数据类型及其转换,Labview中的数据,数据放置在何处 C语言中的数据通常是放置在变量中 LabVIEW图形化语言中的数据放置在控件中(常量除外),第三章 编辑和调试程序代码基本数据类型及其转换,Labview中的数据,数据放置在何处 LabVIEW图形化语言中的数据放置在控件中,第三章 编辑和调试程序代码基本数据类型及其转换,控件,端子,控制量,显示量,Labview中的数据,数据放置在何处 LabVIEW的数据容器控件的基本特性 如何获得LabVIEW
17、控件中的值,第三章 编辑和调试程序代码基本数据类型及其转换,Labview中的数据,LabVIEW的数据容器控件的基本特性 控件具有属性和方法,第三章 编辑和调试程序代码基本数据类型及其转换,控件,端子,控制量,显示量,本质,容器,对象,除了用来存放数据之外,本身还具有众多的属性和方法(包括本地变量和引用)供程序设计时使用(如改变大小、色彩 等) ,Labview中的数据,LabVIEW的数据容器控件的基本特性 控件具有指向性(方向性),第三章 编辑和调试程序代码基本数据类型及其转换,控件,端子,控制量,显示量,指向性(方向性),表示数据的流入、流出方向,Labview中的数据,LabVIEW
18、的数据容器控件的基本特性 控件具有指向性(方向性),第三章 编辑和调试程序代码基本数据类型及其转换,控件,端子,控制量,显示量,指向性(方向性),可以随意将一个对象从控制量转换成为显示量,或者反之,但它最终的确定性是唯一的。也就是说,一个对象不可能同时具备控件和指示控件的功能。,Labview中的数据,LabVIEW的数据容器控件的基本特性 控件具有指向性(方向性),第三章 编辑和调试程序代码基本数据类型及其转换,控件,端子,控制量,显示量,指向性(方向性),Labview中的数据,LabVIEW的数据容器控件的基本特性 控件具有指向性(方向性),第三章 编辑和调试程序代码基本数据类型及其转换
19、,控件,端子,控制量,显示量,指向性(方向性),控件的边框颜色较深,表示它是控制量(输入) 控件的边框颜色较浅,表示它是显示量(输出) 端子边框上的小箭头可以看出控件的指向(输入或输出),Labview中的数据,LabVIEW的数据容器控件的基本特性 控件的数据类型,第三章 编辑和调试程序代码基本数据类型及其转换,控件,端子,控制量,显示量,数据类型,基本数据类型及其转换,第三章 编辑和调试程序代码基本数据类型及其转换,Labview中的数据,第三章 编辑和调试程序代码基本数据类型及其转换,Labview中的数据,LabVIEW的数据容器控件的基本特性 控件的数据类型,第三章 编辑和调试程序代
20、码基本数据类型及其转换,控件,端子,控制量,显示量,数据类型,Labview中的数据,LabVIEW的数据容器控件的基本特性 控件的数据类型,第三章 编辑和调试程序代码基本数据类型及其转换,控件,端子,控制量,显示量,数据类型,数据类型间的强制转换,Labview中的数据,LabVIEW的数据容器控件的基本特性 控件的数据类型,第三章 编辑和调试程序代码基本数据类型及其转换,数据类型,数据类型间的强制转换,1、通知用户这里发生了数据的强制转换 2、提示用户小心丢失“精度”,注:当数据类型不匹配时两变量的数据端口将无法连接,Labview中的数据,LabVIEW的数据容器控件的基本特性 数据的单
21、位,第三章 编辑和调试程序代码基本数据类型及其转换,数据的单位,注:当数据的单位不匹配时两变量的数据端口将无法连接,Labview中的数据,数据放置在何处 LabVIEW的数据容器控件的基本特性 如何获得LabVIEW控件中的值,第三章 编辑和调试程序代码基本数据类型及其转换,Labview中的数据,如何获得LabVIEW控件中的值,第三章 编辑和调试程序代码基本数据类型及其转换,如何实现在C与言中,较为常见的语句: (1) int A,B; A=5; B=A; (2) int i 5 ; i=i + 1 (类似于i=+i),属性和创建本地变量,Labview中的数据,如何获得LabVIEW控
22、件中的值,第三章 编辑和调试程序代码基本数据类型及其转换,(1)利用控件的属性节点,利用控件的属性节点可以读写控件中的数据(利用属性节点的指向性) 使用属性节点内存的使用量比单纯变量的大,内存分配包括了输出型的属性节点的数据和错误簇。这就提示我们,在具体应用时最好将错误簇链接在一起。一是满足了数据流的要求,二是避免开辟更多的存储空间。,Labview中的数据,如何获得LabVIEW控件中的值,第三章 编辑和调试程序代码基本数据类型及其转换,(2)创建控件的局部变量,局部变量既可以向其指向的对象写入数据,也可以从与之联系的对象读数据。前者,局部变量可以看作是与之联系对象的替身,而后者则是对象的一
23、面镜子。,Labview中的数据,如何获得LabVIEW控件中的值,第三章 编辑和调试程序代码基本数据类型及其转换,(2)创建控件的局部变量,通过函数模板新建,Labview中的数据,如何获得LabVIEW控件中的值,第三章 编辑和调试程序代码基本数据类型及其转换,(2)创建控件的局部变量,通过函数模板新建 直接在属性菜单中创建,Labview中的数据,如何获得LabVIEW控件中的值,第三章 编辑和调试程序代码基本数据类型及其转换,(2)创建控件的局部变量,利用控件的本地变量可以读写控件中的数据(利用本地变量的指向性) 使用本地变量实质是对控件重新分配内存,内存分配包括了输出型的本地变量。
24、本地变量会破坏数据流运行机制,Labview中的数据,如何获得LabVIEW控件中的值,第三章 编辑和调试程序代码基本数据类型及其转换,Labview中的数据,如何获得LabVIEW控件中的值,第三章 编辑和调试程序代码基本数据类型及其转换,Labview中的数据,如何获得LabVIEW控件中的值,第三章 编辑和调试程序代码基本数据类型及其转换,子程序和图标,什么是子VI 子程序的创建方法 (1)编写VI (2)绘制图标 (3)创建数据端口(连接器) (4)制作上下文帮助 调用子程序,第三章 编辑和调试程序代码子程序和图标,SubVI from previous slides,子程序和图标,什
25、么是子VI (1)“子程序(函数)” Means of using a VI in the block diagram of a higher-level VI (2)要求具有图标( icon )和连接器(connector),第三章 编辑和调试程序代码子程序和图标,子程序和图标,子程序的创建方法 (1)编写VI Example计算斜率( Calculating Slope ),第三章 编辑和调试程序代码子程序和图标,子程序和图标,子程序的创建方法 (1)编写VI 计算斜率( Calculating Slope ) (2)绘制图标 Right-click in the icon pane (P
26、anel or Diagram) Always create a black and white icon,第三章 编辑和调试程序代码子程序和图标,子程序和图标,子程序的创建方法 (1)编写VI (2)绘制图标 (3)创建数据端口(连接器) Right-click in the icon pane (Panel only),第三章 编辑和调试程序代码子程序和图标,子程序和图标,子程序的创建方法 (1)编写VI (2)绘制图标 (3)创建数据端口(连接器) Click on a terminal or control,第三章 编辑和调试程序代码子程序和图标,子程序和图标,子程序的创建方法 (1)
27、编写VI (2)绘制图标 (3)创建数据端口(连接器) The terminal colors match the data types to which they are connected. Click on the terminal to see its associated front panel object,第三章 编辑和调试程序代码子程序和图标,子程序和图标,子程序的创建方法 (1)编写VI (2)绘制图标 (3)创建数据端口(连接器) (4)制作上下文帮助 VI PropertiesDocumentation,第三章 编辑和调试程序代码子程序和图标,子程序和图标,调用子程序的方
28、法 (1) FunctionsSelect a VI (2) Drag icon onto target diagram,第三章 编辑和调试程序代码子程序和图标,子程序和图标,创建子程序的另一种方法 (1) Enclose area to be converted into a subVI (2) Select Create SubVI from the Edit Menu,第三章 编辑和调试程序代码子程序和图标,程序调试和运行,第三章 程序调试和运行总论,语法错误,使用探针( Probe ),点击断裂的运行按钮 显示错误列表,高亮执行( Execution Highlighting ),设置
29、断点( Breakpoints ),单步执行( Single Stepping ),逻辑错误,程序调试和运行逻辑错误,第三章 程序调试和运行逻辑错误,Execution Highlighting Probe,Right-click on wire to display probe and it shows data as it flows through wire segment,Click on Execution Highlighting button; data flow is animated using bubbles. Values are displayed on wires.,
30、You can also select Probe tool from Tools palette and click on wire,程序调试和运行逻辑错误,第三章 程序调试和运行逻辑错误,Breakpoints Step Into, Over, and Out buttons for Single Stepping,Select Breakpoint tool from Tools palette and click on wire or node where you want execution to pause,Click on Step Into button to enable s
31、ingle stepping Once Single Stepping has begun, the button steps into nodes,Click on Step Over button to enable single stepping or to step over nodes,Click on Step Out button to step out of nodes,第四章 循环和常用控件,While循环( While Loop ) LabVIEW 程序中的线程 布尔控件的机械属性(Mechanical Action of Booleans) Charts控件 循环结构的移
32、位寄存器 For循环( For Loop ),第四章 循环和常用控件内容介绍,while循环结构,第四章 循环和常用控件While循环,Do (Execute diagram inside Loop) While Condition is TRUE,2. Enclose code to be repeated,1. Select While Loop,while循环结构,第四章 循环和常用控件While循环,3. Select the Loop Condition :Right-click on Conditional Terminal to define when the loop stop
33、s,while循环结构,第四章 循环和常用控件While循环,4. Drop or drag additional nodes and then wire,LabVIEW 程序中的线程,LabVIEW 是自动多线程语言 运行一个 VI,LabVIEW 至少会在两个线程内运行它 界面线程(UI Thread): 用于处理界面刷新,用户对控件的操作等等 执行线程:负责 VI 除界面操作之外的其它工作 LabVIEW 是自动多线程的编程语言,只要 VI 的代码可以并行执行,LabVIEW 就会将它们分配在多个执行线程内同时运行,第四章 循环和常用控件多线程,双核 CPU 计算机执行一个计算繁重的任务
34、,双核 CPU 计算机执行两个计算繁重的任务,LabVIEW 程序中的线程,LabVIEW 是自动多线程语言 运行一个 VI,LabVIEW 至少会在两个线程内运行它 界面线程(UI Thread): 用于处理界面刷新,用户对控件的操作等等 执行线程:负责 VI 除界面操作之外的其它工作 LabVIEW 是自动多线程的编程语言,只要 VI 的代码可以并行执行,LabVIEW 就会将它们分配在多个执行线程内同时运行,第四章 循环和常用控件多线程,LabVIEW 程序中的线程,总结 在 LabVIEW 上编写多线程程序非常方便,我们应该充分利用这个优势。一般情况下,编写程序时应当遵循这样的原则:可
35、以同时运行的模块就并排摆放,千万不要用连线,顺序框等方式强制它们依次执行。在并行执行时, LabVIEW 会自动地把它们安排在在不同线程下同时运行,以提高程序的执行速度,节省程序的运行时间。今后多核计算机将成为主流配置,多线程的优势会更为明显。 假如有一个或某几个线程占用了 100% 的 CPU,此时系统对其他线程就会反应迟钝。例如,程序的执行线程占用了100% 的 CPU,那么用户对界面的操作就会迟迟得不到响应,甚至于用户会误认为程序死锁了。所以在程序中要尽量避免出现 100% 占用 CPU 的情况。 目前大多数的计算机还是单核单个 CPU 的,因此要避免任何一个线程试图 100% 占用 C
36、PU 的情况 。此类问题最简单的解决方法就是在循环内加一个延时。,第四章 循环和常用控件多线程,布尔控件的机械属性,第四章 循环和常用控件机械属性,布尔控件的机械属性,第四章 循环和常用控件机械属性,单击时转换每次以操作工具单击控件时,控件值改变。VI读取该控件值的频率与该动作无关。 释放时转换仅当在控件的图片边界内单击一次鼠标后放开鼠标按钮时,控件值改变。VI读取该控件值的频率与该动作无关。 保持转换直到释放单击控件时改变控件值,保留该控件值直到鼠标按钮释放。此时控件将返回至其默认值。与门铃相似。VI读取该控件值的频率与该动作无关。单按钮控件不可选择该动作。,布尔控件的机械属性,第四章 循环
37、和常用控件机械属性,单击时触发单击控件时改变控件值,保留该控件值直到VI读取该控件。此时,即使长按鼠标按钮控件也将返回至其默认值。该动作与断路器相似,适用于停止While循环或令VI在每次用户设置控件时只执行一次。单按钮控件不可选择该动作。 释放时触发仅当在控件的图片边界内单击一次鼠标后放开鼠标按钮时,控件值改变。VI读取该动作一次,则控件返回至其默认值。该动作与对话框按钮和系统按钮的动作相似。单按钮控件不可选择该动作。 保持触发直到释放单击控件时改变控件值,保留该控件值直到VI读取该值一次或用户释放鼠标按钮,取决于二者发生的先后。单按钮控件不可选择该动作。,布尔控件的机械属性,第四章 循环和
38、常用控件机械属性,布尔触发动作与本地变量不兼容 如果布尔控件具有关联的局部变量,则该布尔控件无法使用触发机械动作。,第一个局部变量将读取布尔控件值,触发机械动作会将控件值重新设置为默认值。,布尔控件的机械属性,验证 When Pressed When Released Until Released,第四章 循环和常用控件机械属性,移位寄存器( Shift Registers ),第四章 循环和常用控件移位寄存器,移位寄存器可用于将上一次循环的值传递至下一次循环 Right-click on border and select Add Shift Register Right terminal
39、stores data on completion of iteration Left terminal provides stored data at beginning of next iteration,移位寄存器( Shift Registers ),第四章 循环和常用控件移位寄存器,Additional Shift Register Elements,Latest value is passed to right terminal,移位寄存器-Initializing Shift Registers,第四章 循环和常用控件移位寄存器,RUN 1,RUN 2,Initial Value
40、 = 5,Initialized,Uninitialized,Initial Value = 5,Initial Value = 0,Initial Value = 8,移位寄存器-举例,第四章 循环和常用控件移位寄存器,移位寄存器( Shift Registers ),第四章 循环和常用控件移位寄存器,将移位寄存器替换反馈节点 将移位寄存器替换为隧道,波形图表(charts)控件,第四章 循环和常用控件Chart控件,波形图表是显示一条或多条曲线的特殊数值显示控件,一般用于显示以恒定速率采集到的数据,波形图表(charts)控件,第四章 循环和常用控件Chart控件,外观及常用工具,刷新模式
41、 图形工具 图例,波形图表(charts)控件,第四章 循环和常用控件Chart控件,缓冲区:会保留来源于此前更新的历史数据。右键单击图表,从快捷菜单中选择图表历史长度可配置缓冲区大小 转置数组:默认状态下,将数组中的每一列作为一条曲线。将二维数组数据类型连接到图表,右键单击该图表,从快捷菜单中选择转置数组可将数组中的每一行作为一条曲线。,有用的概念,Charts控件举例,第四章 循环和常用控件 Chart控件, 平均值滤波,移位寄存器应用 Chart属性节点应用 Chart图例工具应用,移位寄存器高级应用,第四章 循环和常用控件 Chart控件,多CPU系统的流水线操作,多CPU系统(又称多
42、核、多处理器或SMP系统)的主要优势在于有多个线程可并行执行。因此,当应用程序仅有一个顺序进程时,便很难发挥多线程处理器系统的优势。使用流水线架构可利用多线程CPU的优势,提高顺序进程的数据吞吐量。流水线可在保持顺序数据流的同时,实现多CPU的并行执行。,移位寄存器高级应用,第四章 循环和常用控件 Chart控件,多CPU系统的流水线操作,移位寄存器高级应用,第四章 循环和常用控件 Chart控件,多CPU系统的流水线操作,移位寄存器高级应用,第四章 循环和常用控件 Chart控件,多CPU系统的流水线操作,注: 为应用程序使用流水线需在不同CPU间进行数据传递,比在一个CPU上将数据传递到下
43、个操作耗时更多。因此,仅当并行进程的时间小于CPU间数据传递的时间时,流水线才可提高VI的执行速度。 可并行执行的流水线级的个数取决于可用CPU的数量。 使用本地或全局变量来实施流水线可能难度较大。本地和全局变量并不等待新数据成为可用的数据,这可能导致输入被跳过以及来自于同一输入的重复的输出。,For循环,第四章 循环和常用控件For循环,计数器总是从零开始计数。第一次循环时,计数接线端返回0。如循环计数超过2147483647或231,计数接线端将在此后的循环中保持在2147483647。,将循环外部的数值连接到总数接线端的左边或顶部,可手动设定循环次数,或者使用自动索引自动设定循环总数。,
44、循环总数,循环次数,For循环,第四章 循环和常用控件For循环,有条件接线端的For循环在满足条件或所有循环结束时停止操作,以先实现的条件为准。,有条件接线端的For循环,循环的自动索引,第四章 循环和常用控件 For循环,启用输入隧道的自动索引后,从第一个元素开始每次均有一个数组元素进入循环。 启用数组输出隧道的自动索引功能时,该输出数组从每次循环中接收一个新元素。,For循环,第四章 循环和常用控件For循环,循环次数的确定,如条件接线端是真(T)时停止,For循环将在收到TRUE值后停止执行子程序框图, 或在循环达到连接到计数接线端 或输入数组的自动索引的次数时停止执行。,For循环,
45、第四章 循环和常用控件For循环,使用自动索引设置For循环总数值,如果将连接到For循环输入接线端的数组启用自动索引,LabVIEW会将总数接线端设置成与数组大小一致,因此用户无需为总数接线端连接数值。 如果有多个隧道启用自动索引,或对计数接线端进行连线,实际的循环次数将取其中较小的值。,第五章 数组和簇,数组基本概念 LabVIEW 程序中数组的创建 基本的数组函数 多态( Polymorphism ) 簇( clusters )基本概念 基本簇函数,第五章 数组和簇内容介绍,数组基本概念,第五章 数组和簇数组基本概念, 将相同类型的数据元素归为一组 数组由元素和维度组成。元素是组成数组的
46、数据。维度是数组的长度、高度或深度。 在内存允许的情况下每一维度可有多达(231)-1个元素 数组第一个元素的索引为0,index 10-element array,2D array,Five-row by seven column array of 35 elements,LabView中数组的创建,第五章 数组和簇LabView中数组的创建,2. Place data object inside shell,Add Dimension for 2D arrays,1. Select the Array Shell from the Controls palette,LabView中数组的创
47、建,第五章 数组和簇LabView中数组的创建,2. Place the data object in the array shell,1. Select Array Constant shell from the Array subpalette,创建数组常数,LabView中数组的创建,第五章 数组和簇LabView中数组的创建,编程创建和使用数组,Auto-Indexing loops accumulate arrays at their boundaries,For Loops auto index by default; While Loops do not,LabView中数组的创
48、建,第五章 数组和簇LabView中数组的创建,编程创建二维数组,Inner loop creates column elements Outer loop stacks them into rows,LabView中数组的创建,第五章 数组和簇LabView中数组的创建,使用函数创建数组,常用数组函数,第五章 数组和簇常用数组函数,Array Size,Initialize Array,Array Subset,常用数组函数数组构建函数,第五章 数组和簇常用数组函数,Appending an element,常用数组函数,第五章 数组和簇常用数组函数,Extracting an Elemen
49、t,Extracting a Row,多态( Polymorphism ),第五章 数组和簇多态, Function inputs can be of different types All LabVIEW arithmetic functions are polymorphic,EX:ResizeImaging (数组、for循环、自动索引、移位寄存器 ),第五章 数组和簇多态,EX:ResizeImaging (数组、for循环、自动索引、移位寄存器 ),第五章 数组和簇多态,簇( Cluster ),第五章 数组和簇簇,Data structure that groups data to
50、gether Data may be of different types Analogous to record in Pascal or struct in C Elements must be either all controls or all indicators Thought of as wires bundled into a cable,簇的创建,第五章 数组和簇簇,1. Select a Cluster shell from the Array & Cluster subpalette,簇的创建创建簇常数,第五章 数组和簇簇,Select a Cluster Constan
51、t shell from the Cluster subpalette Right-click on existing cluster and select CreateConstant,簇的创建簇中元素的顺序,第五章 数组和簇簇,Elements have a logical order (start with 0) To change order, right-click on border and select Reorder Controls in Cluster.,簇的作用Use Clusters to Pass Data to SubVIs,第五章 数组和簇簇,Use cluste
52、rs to pass several values to one terminal Overcomes 28-terminal limit Simplifies wiring,常用簇函数,第五章 数组和簇簇,簇的分解(Unbundle) 按名称 匿名 簇的合成(Bundle) 按名称 匿名,常用簇函数,第五章 数组和簇簇,In the Cluster subpalette of the Functions palette Can also be accessed by right-clicking on the cluster terminal,Bundle,(Terminal labels
53、reflect data type),Bundle By Name,常用簇函数,第五章 数组和簇簇,Unbundle,Unbundle By Name,Unbundled cluster in the diagram,多态( Polymorphism with Clusters ),第五章 数组和簇簇,Polymorphic functions work with clusters Arithmetic functions can perform computations on clusters of numeric data,第六章 顺序、选择和事件结构,顺序结构( Sequence Str
54、uctures ) 选择结构( Case Structures ) 事件结构( Event Structures ),第六章 顺序、选择和事件结构内容介绍,顺序结构(Sequence Structures),第六章 顺序、选择和事件结构顺序结构, In the Structures subpalette of Functions palette Executes diagrams sequentially, Frame 0 (0.x), where x is the total number of frames Stacked like a deck of cards, only one fr
55、ame visible,顺序结构(Sequence Structures),第六章 顺序、选择和事件结构顺序结构,局部变量( Sequence Locals ) Pass data from one frame to future frames Created at the border of the Sequence structure,Sequence local created in Frame 1,Data not available,Data available,选择结构(Case Structures),第六章 顺序、选择和事件结构选择结构, In the Structures s
56、ubpalette of Functions palette Enclose nodes or drag them inside the structure Stacked like a deck of cards, only one case visible,选择结构(Case Structures),第六章 顺序、选择和事件结构选择结构,Note: all possible outputs of the Case structure must be wired,or right-click the tunnel and select Use Default If Unwired to re
57、lax this requirement,选择结构(Case Structures),第六章 顺序、选择和事件结构选择结构,Enum Case Error Case,选择结构(Case Structures),第六章 顺序、选择和事件结构选择结构,枚举型控件与下拉列表控件,选择结构(Case Structures),枚举型控件与下拉列表控件,第六章 顺序、选择和事件结构选择结构,选择结构(Case Structures),枚举型控件与下拉列表控件,第六章 顺序、选择和事件结构选择结构,选择结构(Case Structures),枚举型控件与下拉列表控件,第六章 顺序、选择和事件结构选择结构,选
58、择结构(Case Structures),第六章 顺序、选择和事件结构选择结构,Error Case,错误簇,状态是一个布尔值,错误产生时报告TRUE。 错误代码是一个32位有符号整数,通过数值表示错误。一个非零错误代码和FALSE状态相结合可表示警告但不是错误。 错误源是用于识别错误发生位置的字符串。,一些支持布尔数据的VI、函数和结构也可识别错误簇。例如,将一个错误簇连接到“选择”、“退出LabVIEW”或“停止”函数的布尔输入端。如发生错误,错误簇将把TRUE值传递给该函数。,选择结构(Case Structures),第六章 顺序、选择和事件结构选择结构,错误处理,LabVIEW中的错
59、误处理遵循数据流模式。 可使用错误簇来控制执行顺序。,选择结构(Case Structures),第六章 顺序、选择和事件结构选择结构,错误处理,数据流驱动中的数据依赖关系,无数据依赖关系,有数据依赖关系,选择结构(Case Structures),第六章 顺序、选择和事件结构选择结构,错误处理,数据流驱动中的自然数据依赖关系和人工数据依赖关系,选择结构(Case Structures),第六章 顺序、选择和事件结构选择结构,错误处理,当自然数据依赖关系不存在时,可用流经参数建立人工数据依赖关系。,数据流参数通常为引用句柄或错误簇,它返回的是与相应的输入参数相同的值。当自然的数据依赖关系不存在时,可使用数据流参数来控制执行顺序。把要执行的第一个节点的数据流输出连接到要执行的下一个节点的相应输入,便创建了人工数据依赖关系。,选择结构(Case Structures),第六章 顺序、选择和事件结构选择结构,错误处理,当自然数据依赖关系不存在时,可用流经参数建立人工数据依赖关系。,数据流参数通常为引用句柄或错误簇。,在执
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 电子设备装接工安全专项测试考核试卷含答案
- 雕塑翻制工岗前技能掌握考核试卷含答案
- 墨锭制作工班组评比评优考核试卷含答案
- 残疾人就业辅导员岗前绩效目标考核试卷含答案
- “智阅小帮手”综合辅助数字化应用建设项目采购文件
- 空压机操作工安全技能培训课件
- 2026年保险行业客户档案管理知识测试题
- 2026年环保电价及垃圾焚烧发电电价补贴审核测试题
- 2026年外贸业务竞聘面试题库
- 2026年技术合同认定登记及税收优惠练习题
- 湖北烟草招聘面试全攻略:面试技巧与题目解析
- 桥式起重机安全检查表
- 2025年全国行政执法人员执法资格考试必考题库及答案
- 留样样品管理办法
- GB/T 45711.2-2025皮革撕裂力的测定第2部分:双边撕裂
- 药品进货查验管理制度
- 乡镇医院科研管理制度
- 湖南省三支一扶招聘考试真题2024
- 《GPCR信号转导》课件
- TCFLP0026-2020散装液体化学品罐式车辆装卸安全作业规范
- 大数据知识产权法课件
评论
0/150
提交评论