labVIEW学习文件_第1页
labVIEW学习文件_第2页
labVIEW学习文件_第3页
labVIEW学习文件_第4页
labVIEW学习文件_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

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

文档简介

1、程序框图对象程序框图对象包括接线端和节点。 将各个对象用连线连接便 创建了程序框图。 接线端的颜色和符号表示相应输入控件或显示 控件的数据类型。 常量是程序框图上向程序框图提供固定数据值 的接线端。程序框图接线端前面板上的对象在程序框图中显示为接线端。 双击程序框图 上的一个接线端, 则前面板上相应的输入控件或显示控件将高亮 显示。接线端是前面板和程序框图之间交换信息的输入输出端口。输入到前面板输入控件的数据值经由输入控件接线端进入程序 框图。运行时, 输出数据值经由显示控件接线端流出程序框图而 重新进入前面板,最终在前面板显示控件中显示。LabVIEWLabVIEW中使用的接线端包括输入控件

2、和显示控件接线端、 节点接线端、 常量及用于各种结构的接线端。 连线则把接线端连 接起来,使数据在接线端间传递。右键单击一个程序框图对象, 从快捷菜单中选择 显示项? ?接线端 可查看接线端。再次右键单击 该对象,从快捷菜单中选择 显示项? ?接线端 可隐藏接线端。该快 捷菜单项对于可扩展 VIVI 和函数不可用。浮点数据的符号数值如数据未定义或数据是非预期数据, 会影响后续操作。浮点 数据操作返回以下两种符号值用以表明错误的计算或无意义的 结果:? NaNNaN(非法数字)表示无效操作所产生的浮点值,如对负数取平方根。? InfInf (无穷)表示超出某数据类型值域的浮点数值。精选文库2例如

3、,1 1被0 0除时产生InfInf。LabVIEWLabVIEW可返回+lnf+lnf或-Inf-Inf。LabVIEWLabVIEW不检查整数的上溢或下溢条件。浮点数的上溢和下溢符合IEEEIEEE 754754浮点数算术标准。浮点运算能可靠地传送 NaNNaN和InfInf。而整数和定点数不支持 符号数值。将+lnf+lnf转换为整数或定点数时,其值变为该数据类 型的最大值。例如,将+lnf+lnf转换为1616位有符号整数的结果为32,76732,767( 1616位有符号整数能表示的最大值)。LabVIEWLabVIEW将-Inf-Inf 转换为该数据类型的最小值。将NaNNaN显式

4、或隐式转换为整数或定点数时,其值将变为目标 数据类型的最大值。在将数据转换为整数或定点数据类型前,可先用探针工具查 看中间浮点数值是否有效。将比较函数 非法数字/ /路径/ /句柄?连精选文库3接到有效性可疑的数据上,通过程序检查数据是否为NaNNaN也可使用判定范围并强制转换 函数将值保持在指定的范围内。常量常量是程序框图上向程序框图提供固定数据的接线端。通用 常量即有固定值的常量,如pi(pi( n ) )和Inf(Inf( X) )。用户定义常量是在VIVI运行前由用户定义和编辑的常量。右键单击一个常量并从快捷菜单中选择显示项?标签可为该 常量加标签。操作工具或标签工具可对通用常量的标签

5、进行编 辑,设置其预定义值。常量一般位于所在选板的底部或顶部。通用常量通用常量可进行数学运算及对字符串或路径的格式化。LabVIEWLabVIEW有以下类型的通用常量:?通用数值常量-高精度和常用数学及物理值的集合,如自然对数的底(e)(e)和光速。通用数字常量位于 数学与 科学常量选板上。?通用字符串常量一常用的无法显示字符的集合,如换行和回车。通用字符串常量位于 字符串选板上。精选文库4?通用文件常量-常用文件路径值的集合,如非法路径、非法引用句柄和默认目录。通用文件常量位于文件常 量选板上。用户定义常量按类型排列常量的 函数选板,包括布尔、数值、下拉列表、 枚举型、颜色盒、字符串、数组、

6、簇和路径等常量。右键单击VIVI或函数的输入端,从快捷菜单中选择 创建?常量 可创建一个用户定义常量。VIVI运行时不能修改用户定义的常量。也可通过将一个前面板控件拖曳到程序框图的方式创建常量。将前面板控件拖放至程序框图时,LabVIEWLabVIEW将创建一个包含 该控件值的常量。但前面板控件仍留在前面板上。 改变该控件的 值并不影响该常量的值,反之亦然。用操作工具或标签工具单击常量可编辑常量的值。如自动选 择工具已启用,则双击该常量可切换到标签工具,从而编辑常量 菜单值。精选文库5?子VIVI 用于另一个VIVI程序框图上的VIVI,相当于子程?ExpressExpress VIVI -用

7、于常见测量任务的子VIVI,在配置对话?结构执行控制元素,如ForFor循环、WhileWhile循环、条件常量折叠LabVIEWLabVIEW通过常量折叠来提高 VIVI的执行速度。启用常量折 叠,LabVIEWLabVIEW将在第一次运行 VIVI时计算常量的值,而不是每次 运行时计算一次。程序框图节点节点是程序框图上的对象,带有输入输出端,在VIVI运行时 进行运算。节点相当于文本编程语言中的语句、运算符、函数和 子程序。LabVIEWLabVIEW有以下类型的节点:?函数一内置的执行元素,相当于操作符、函数或语句。序。框中配置ExpressExpress VIVI。结构、平铺式和层叠式

8、顺序结构、定时结构和事件结构。?公式节点和表达式节点_公式节点是可以直接向程序框图输入方程的结构,其大小可以调节。表达式节点是用 于计算含有单变量表达式或方程的结构。?属性节点和调用节点 -属性节点是用于设置或寻找类的属性的结构。调用节点是设置对象执行方式的结构。?通过引用调用节厂一用于调用动态加载的 VIVI的结构。?调用库函数节点 一调用大多数标准共享库或 DLLDLL的结构。精选文库6返回页首多态VIVI和函数多态VIVI和函数会根据输入数据类型的不同而自动调整数据 类型。与某些VIVI和函数一样,绝大多数的LabVIEWLabVIEW结构为多态。函数多态的程度各不相同:可以是全部或部分

9、输入多态, 也 可以是完全没有多态输入。有的函数输入可接收数值或布尔值, 有的函数输入可接收数值或字符串, 一些函数的输入不仅接收标 量数值,还接收数值数组、数值簇或数值簇数组等。还有一些函 数输入仅接收一维数组,即使其数组元素可以是任意数据类型。另外,有的函数输入可接收所有数据类型,包括复数值。数据基本类型1 1数值型:数值型数据是一种标量值, 包括浮点数、定点数、 复数、整数等数值类型。不同数据类型的差别在于存储数据使用 的位数和表示范围。注意,定点型数据类型可以根据用户的需要 自己制定范围和精度以及是否带符号。默认情况下创建的数值型变量的数据类型为双精度浮点数。2 2布尔型:布尔型即逻辑

10、值,其取值只能是真或假。要改变布尔型常亮的值可以直接单击对应的框图端子,即可以在真常量 和假常量之间互换。3 3字符串型:支持对字符串数据的存储和修改功能。字符串 的显示方式有(1)(1) 代码显示:不可见字符换行、空格等将nn s s方式显示,常用于调试或发送通信命令时的显示。(2)(2)密码显示:所有字符均已 * * 显示。精选文库7(3)(3)十六进制显示:以十六进制方式显示字符的 ACSIIACSII码,用于仪器的调试与通信。4 4文件路径型:是在字符串基础上的一种派生类型,专门用 于存储和处理文件的路径。复合数据类型复合数据类型是在基本数据类型的基础上的进一步拓展,用于多个相同或不同

11、的基本数据类型组成数组、簇、矩阵鞥复合 结构。1 1 数组:支持一维或多维数组,统一数组中的所有元素必须隶属于同一基本数据类型。2 2簇:簇的功能和C C语言当中的structstruct结构体相似,可以将若干种不同数据类型的数据集合在一起,作为一个整体进行处理。以簇作为连接单元,可以使连线数量和子VIVI的接口数量 大大减少。注意:簇作为一个整体,只能为输入控件和显示控件, 所以变量被拖入簇中成为簇元素后,都统一变成的输如控件和显精选文库8都是用来强制程序流程步步书序执行。 顺序结构中含有一个或示控件。程序流程控制程序流程控制结构包括顺序结构、选择结构、循环结构、事件结构等。1 1 顺序结构

12、:主要分为平铺式书序结构和层叠式顺序结构,者多个帧,每一帧中的程序同时执行,自行完以后才进入下一帧 继续执行。注意,顺序结构中的数据流只能是从前面的帧向后面 的帧流动,反之则不行。对于平铺式顺序结构可以直接通过连线 实现,而对于层叠式顺序结构则需要通过书序局部变量实现从前 帧到后帧的数据传递。2 2 条件结构:相当于C C语言中的ififelseelse语句,可以根据 不同的执行条件执行不同的程序块。 条件结构可以由多个分支组 成,对应于不同的条件。3 3 循环结构:循环结构主要分为forfor循环结构和whilewhile循 环结构两种,分别和C C语言中的forfor语句和dodowhil

13、ewhile语句相似, 都可以用来控制特定的程序块自动重复执行若干次。(1)(1)ForFor循环有规定的循环次数,可连接至一个整数以指定循环次数,循环执行规定的次数以后推出循环。ForFor循环具有 条件连线的特性,右键单击forfor循环边框,从菜单中选择“条件精选文库9跳出forfor循环提供了方便,这就相当于C C语言中的breakbreak语句。型决定了移位寄存器中所存储数据的类型,不仅可以连接至数值接线端”就可以为forfor循环添加一个条件接线端,当满足改逻辑条件时或者所有循环执行完毕时, 都可以推出循环,这就为中途(2)(2) WhileWhile循环没有规定的循环次数,却总有

14、一个条件接线端。WhileWhile循环运行时先重复循环中的内容一次,达到条件接 线端的条件推出循环,所以whilewhile循环总是至少执行一次,相当 于C C语言中的dodowhilewhile循环语句。(3)(3)在循环结构中最重要的是移位寄存器,所谓的移位寄存器是用来存储和传递上一步或多不循环的数据。每一步循环结束以后右端子便将接收到的数据传给左端子,下一步循环时左端 子给出的数据便是上一步循环中右端子接收的数据。左端子的初始值可以在外部循环外连接,初始值的数据类型标量,也可以连接至数值型数组, 或者是其他数据类型的标量 或数组。循环结构内外部的数据交换是可以通过两种方式进行: 自动索

15、引和直接通道。当循环结构的呢外部数据通过连线进行交 换时,必会在循环边框中产生一个节点, 分别对应于自动索引通 道和直接通道。当数据从外部进入循环结构时使用自动索引可以是每一步循环中读取其中一个低一维的数据,即每次读取的数据比循环外部的输入数据类型维数少一维。输入数据若是标量则始 终读入该标量值;若输入为数组,则从前至后一次读个元素。但 是使用直接通道,表示整个数据直接进入循环,其值和维数不变。但数据从内部六出循环结构时, 使用自动索引可以使每步单步循 环中得到的数据自动排列成为一个数组, 最后得到的数组比循环 中数据类型的维数多一维。使用直接通道是表示数据直接从循环 内部传至外部,其值和维数

16、不变。4 4事件结构:用来响应各种用户信息、系统消息的处理结 构。如果单独使用一个事件结构,则只能响应一次事件。为保证精选文库10持续响应多次事件,常将事件结构嵌套在whilewhile循环中使用。使用事件设置,可以达到用户在前面板的操作和程序始终处于查询状态。使用事件结构编程的黄金原则:1 1、应该将事件结构放在whilewhile循环内,不要将事件结构放在whilewhile循环之外;2 2、不要在事件结构内部循环处理事件;3 3、记得为事件结构添加一个独 立处理停止按钮的分支。事件结构其中左上角哥为事件超时连接器,用于连接已个数值指定的等待 事件的毫秒数,默认值为-1-1,为无限等待。超

17、过设定的等待时间 没有发生事件,程序产生一个超时事件。精选文库11时同事件数据节点,用于访问事件的数据值。可以缩放事件该函数集包括创建自定义事件、产生自定义事件、取消自定义事用户事件-L -o* Jliooohlioooh 0 0c c口 】7-n3 1数据节点显示苏哥事件数据项。H H冏迢时十L标签选择器,表明那些事件引起当前子程序框图的执行。5 5用户自定义事件:用户事件允许应用程序的不同部分之间进行 异步通信,用户自定义事件需要的函数如图所示SI.=ft5f=SI.=ft5f=iPif件、销毁自定义事件和注册自定义事件。着題岀s的事祥LabVIEWLabVIEW 支持静态和动态的事件注册

18、模式。其中动态事件1我的事阵用户自定义事件程序框图精选文库12不仅可以注册,还可以修改。只有用户事件界面才能进行静态事件注册,允许制定的VIVI则程序框图上的事件结构的没一个分支 具体该处理该 VIVI在前面板上的那些事件,但是首要的必须选择事件源,这个事件源可以是程序、VIVI或者是某个控件。下图为 使用静态事件注册方式,在前面板上控制一个布尔型控件。恻开关:值改变卄动态事件注册:动态时间注册通过将时间猪儿侧与VIVI服务器相结合,允许在程序运行时使用应用程序、VIVI和控件引用来制定 希望产生事件的对象。动态事件可以让事件仅在应用程序中的某个部分发生,或是在应用程序运行时改变产生事件的VI

19、VI或控件。处理动态事件的步骤主要有以下 4 4个: 1 1、获取要处理事件的对象的 VIVI服务器引用。2 2、将VIVI服务器引用连接至“注册事件”函数以注册对象的事 件。3 3、将事件结构放在 whilewhile循环中,等待处理对象事件至出现终 止条件为止。4 4、通过取消注册人事件函数停止事件的发生。精选文库131.1.状态机状态机具有三个基本要素:状态、事件、动作。状态机本身并不会改变状态,当前状态也并不会传递任何外部代码给状态机,而仅仅 是传递发生的事件。2.2.枚举枚举型变量主要有控制型、显示型和常量型三种形式。 通过在编 辑项即可通过在“在后面添加项”、在前面添加项”添加需要

20、添加的 枚举类型。枚举值实质上属于数值型,但是二者的显示方式和存储方 式不同,并且可以相互转换。枚举值的类型转换类型主要分为隐式类 型转换(强制转换类型)和显式类型转换。隐式类型转换类型是由系 统自动完成的,可以将枚举类型空间直接和数值型控件相连, 此时相 当于完成了类型转换。显式类型转换需要添加相应的转换代码。测试流程型状态机:是为了能过在程序运行中改变状态顺序执行 的状态序列的执行顺序,采用移位寄存器代替循环索引控制状态机的 执行。移位寄存器的高度灵活性可以使程序员可以按照实际情况设定 状态序列的实际执行顺序。顺序型状态机有一个缺点就是不便于阅读 和修改程序,CaseCase结构的子框图列

21、表中显示的是数值,不具有任何实精选文库14a a测试流程状态机计时一状态0 0b b测试流程状态机计时一状态1 1际意义。L L r r r.ir.i r r C C 1 1 I I r r V V V V V V V V llll p pI北茯取初娼时阖尹ActionActionH 运行需要计时模块-卄精选文库15TimeTimec c测试流程状态机计时一状态2 23.3.消息队列处理模式3.13.1消息队列消息队列可以看作是一段存储空间,是用来暂存各种消息。之所以 称之为队列,是由其消息处理机制决定的,按照FIFFIFQFirstFirst InIn FirstFirst OutOut)

22、的思想,需要使用消息队列处理各种消息。程序初始化时首先创建消 息队列缓冲器,程序可以根据发生的事件将相应的消息投入到消息队 列之中,消息处理机构会实时探测消息队列中的消息并按照消息处理 机制进行处理,当消息被接收后程序执行相应的代码, 并将该消息从 消息队列中删除;当接收到消息 ExitExit时,应用程序停止运行,并释放 队列空间。必须注意的是,消息队列的销毁非常重要,因为他关系到 整个应用程序的稳定性和高效性。而且消息源将消息投入到消息队列 中和消息的探测是同时进行的,我们可以充分利用并行程序运行机制 处理消息循环。建立消息队列最常用的是使用队列函数和数组。 在队列函数里面 我们最常用的队

23、列引用、元素如队列、元素出队列和释放队列应用,分别用于产生队列、经元素加入队列、将元素一处队列以及释放队列 空间。在这里还有一些其他模式,前面介绍的模式都具有很强的扩展 性,在流程设计中能够满足大多数应用的需要,还有一些模式,在这 里简单的提一下,具体内容有需要的可以自己学习。(1)(1)主从线程模式,通常应用于具有两个或多个同时发生的并;n;n II;II;- -二.=1=1 -2=2= -_=_= - - - -._=_= 精选文库16具有不同运行速率的程序中。需要注意的是有人将两个动作放在同一 个whilewhile循环中,这是可以的,可以完成程序并行运行的要求,但是 无法满足时间的要求

24、。所以在设计程序的时候建议可以在多个循环中 放置不同的动作,这样二者互不影响数据通信采用全局变量或者共享 变量的形式。(2)(2)生产消费者模式,所谓的生产消费者模式借助队列技术使用一部分顺冲区作为数据存储的中间部分, 已解决在像主从模式的数 据通信过程中利用全局变量、局部变量、或共享变量实现时变量会占据大量的空间的问题。这种模式仍然采用两个简单的whilewhile循环, 是数据通信采用队列结构,一方面将采集的数据传送给队列空间, 一方面从队列空间中速出数据,二者是相互独立而又密切联系的。样生产消费模式不仅仅局限于 whilewhile循环。(3)(3)后台服务模式,这种程序一般不需要用户的

25、干涉而在计算机后台运行,即不需要显示应用程序显示前面板。主要是利用laVIEWlaVIEW的VIVI属性和方法接口实现,通过这些接口可以很方便的控制VIVI的一 些固有属性和运行状态。除了上述的三种模式以外还有应用程序启动模式和代理模式等,这些模式同学们在学习过程中要是需要可以百度或是其他方面的资 料进行了解和学习。精选文库17LabVIEW多线程多线程的应用主要是为了让 CPUCPU得到充分的使用。这里有线程 和进程两个基本的概念,简单的说,简称就是正在运行的应用程序,在计算机中处于运行状态的一个程序就是一个进程,抽象的讲,进 程是一些所欲全的集合,这个进程当中包括地址空间和动态分配的内 存、文件、线程等其他模块。进程是表达程序对各种资源的所有权, 线程才是程序的最小执行单位。所谓的线程就是程序执行的路径,是 操作系统分配CPU

温馨提示

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

评论

0/150

提交评论