本地变量(local variable)和全局变量(global variable)

上传人:wt****50 文档编号:49494959 上传时间:2018-07-29 格式:PPTX 页数:34 大小:137.67KB
返回 下载 相关 举报
本地变量(local variable)和全局变量(global variable)_第1页
第1页 / 共34页
本地变量(local variable)和全局变量(global variable)_第2页
第2页 / 共34页
本地变量(local variable)和全局变量(global variable)_第3页
第3页 / 共34页
本地变量(local variable)和全局变量(global variable)_第4页
第4页 / 共34页
本地变量(local variable)和全局变量(global variable)_第5页
第5页 / 共34页
点击查看更多>>
资源描述

《本地变量(local variable)和全局变量(global variable)》由会员分享,可在线阅读,更多相关《本地变量(local variable)和全局变量(global variable)(34页珍藏版)》请在金锄头文库上搜索。

1、第五章 变量、数组、簇 与波形数据 本地变量(Local Variable)和全局变量(Global Variable)是Labview为改善图形化编程灵活性 局限而专门设计的两个特殊节点,主要解决 数据和对象在同一VI程序中的复用和在不同 VI程序中的共享问题。 数组、簇和波形数据是Labview中三类比较复 杂的数据类型。5.1本地变量 本地变量相当于传统编程语言中的局部 变量,可以在同一个程序内部使用,但 由于Labview的特殊性,本地变量与局部 变量又有所不同。 Labview中的前面板上的每一个控制或指示在框 图程序上都有一个对应的端口,控制通过这个 端口将数据送给框图程序,框图程

2、序也可以通 过这个端口为指示赋值。但是这个端口是唯一 的,一个控制或指只有一个端口。而用户在编 程过程中经常需要在同一个VI框图程序中的不 同位置多次为指示赋值,或多次从控制中去取 出数据,或者是为控制赋值,从指示中取出数 据。显然,这时仅用一个端口是无法实现这些 操作的,这就不同于传统编程语言,如定义一 个变量a,在程序的任何地方需要这个变量时, 写一个a就可以解决问题。本地变量的引入,巧 妙的解决了这个问题。5.1.1本地变量的创建5.1.2本地变量的使用使用本地变量可以在框图程序的不同位置访问 前面板对象。前面板对象的本地变量相当于其 端口的一个拷贝,它的值与该端口同步,也就 是说,两者

3、所包含的数据是相同的。 例题5.1 用一个布尔开关同时控制两个 While循环。 例题5.2 利用本地变量给一个控制赋值。 (说明本地变量的Read、Write属性)5.1.3本地变量的特点 1.一个本地变量就是其相应前面板对象的 一个数据拷贝,要占用一定的内存。 2.Labview是一种并行处理语言,只要节 点的输入有效,节点就会执行。当程序 中有很多个本地变量时,就要特别注意 这一点,因为这种并行执行可能造成意 想不到的错误。 3.本地变量只能在同一个VI中使用,不能 在不同的VI之间使用。若需要在不同的 VI间进行数据传递,则要使用全局变 量。 4.当布尔控件的Mechanical Ac

4、tion属性处 于Latch When Pressed、Latch When Released和Latch Until Released状态是, 不能创建和使用该布尔控件的本地变量 ,否则,Labview会报错。5.2全局变量 全局变量是Labview中的一个对象,通过 全局变量,可以在不同的VI之间进行数 据的传递。Labview中的全局变量与传统 编程语言中的全局变量类似,但也有独 特之处。5.2.1全局变量的创建 例题 利用全局变量在VI之间传递数据。 (说明全局变量的Read、Write属性)5.2.1全局变量的使用5.2.3全局变量的特点 1.Labview中的全局变量比较灵活,它以

5、 独立文件的形式存在,并且在一个全局变 量中可以包含多个对象,拥有多个数据类 型。 2.全局变量与SubVI的不同之处在于它不 是一个真正的Vis,不能进行编程,只能 用于简单的数据存储与数据传递。但全局 变量的速度是其他大多数数据类型的10 倍。 3.全局变量在不同的VI之间进行数据交换 只是Labview中VI之间数据交换的方式之 一,通过DDE(动态数据交换)也可以 进行数据交换。 注意:在一般情况下,不能利用全局变 量在两个VI之间传递实时数据。其原因 是,通常情况下两个VI对全局变量的读 写速度不能保证严格一致。可能造成数 据的丢失或重复读取的错误。若需要在 两个VI之间传递实时数据

6、,可以使用 DataSocket技术或Labview同步控制技 术。5.3 数组 数组是同类型元素的集合。一个数组可以是 一维或者多维,如果必要,每维最多可有231 1个元素。可以通过数组索引访问其中的每 个元素。索引的范围是0到n 1,其中n是数 组中元素的个数。如图显示的是由数值构成 的一维数组。注意第一个元素的索引号为0, 第二个是1,依此类推。数组的元素可以是数 据、字符串等,但所有元素的数据类型必须 一致。数组示意图5.3.1 数组的组成与创建一般说来,创建一个数组有两件事要做 ,首先要建一个数组的“壳”(shell) ,然后在这个壳中置入数组元素(数或 字符串等)。 5.3.2 数

7、组的使用LabVIEW提供了很多用于操作数组的功 能函数,位于FunctionsArray中。其 中包括Build Array、Initialize Array、 Replace Array Element、Search 1D Array、Sort 1D Array、 Reverse 1D Array和 Multiply Array Elements等 等。1.数组大小(Array Size) 返回输 入数组中的元素个数 2.索引数组(Index Array)用于访 问数组中的某个元素 例题讲解 3.数组替换(Replace Array Subset) 替 换输入数组中的一个元素(注意:新的

8、数据类型必须与输入数组的数据类型一 致) 例题讲解 4.插入数组元素(Insert Into Array) 在 数组中指定的位置插入元素。 例题讲解 5.初始化数组(Initialize Array)用 于创建所有元素值都相等的数组,元素 输入端子决定每个元素的数据类型和数 值,维长度输入端子决定数组的长度, 6.从数组中删除指定的元素(Delete From Array) 7.建立一个新数组(Build Array) 8.从输入数组中取出指定的元素(Array Subset) 9.将一个一维数组的最后n个元素移至数 组的最前面(Rotate 1D Array)5.3.3数组的特点 Labvi

9、ew中的数组与其他编程语言相比比 较灵活,任何一种数据类型的数据(数 组本身除外)都可以组成数组。5.4 簇 簇是Labview中一个比较特别的数据类型 ,它可以将几种不同的数据类型集中到 一个单元中形成一个整体。(数组中的 元素的数据类型必须相同)5.4.1簇的组成与创建 除了数字型、布尔型、字符串型等不同 的数据类型,有时候还需要将不同的数 据类型组合成一个有机的整体。这些不 同的数据项都与某一个对象相联系,如 果将这些数据项定义为相互独立的简单 变量,是很难反映它们之间的内在联系 的,应当把这些数据项组成一个组合项 ,这样它们就组合成一个有机的整体, Labview中的簇就是这种数据结构

10、。 比如一个学生的学号、姓名、性别、年 龄、成绩和家庭地址等数据项。创建簇控制和显示 在前面板上放置一个簇壳(Cluster shell)就 创建了一个簇。然后你可以将前面板上的任 何对象放在簇中。例如数组,你也可以直接 从Control 工具板上直接拖取对象堆放到簇 中。一个簇中的对象必须全部是Control,或 全是Indicator,不能在同一个簇中组合 Control与Indicator,因为簇本身的属性必须 是其中之一。一个簇将是Control或Indicator ,取决于其内的第一个对象的状态。如果需 要可以使用工具重置簇的大小。 如果要求簇严格地符合簇内对象的大小 ,可在簇的边界

11、上弹出快速菜单选择自 动定义大小(Autosizing) 簇的序(Order) 簇的元素有一个序,它与簇内元素的位 置无关。簇内第一个元素的序为0,第二 个是1,等等。如果你删除了一个元素, 序号将自动调整。如果你想将一个簇与 另一个簇连接,这两个簇的序和类型必 须同一。 5.4.2簇的使用 用户在使用一个簇时,主要是访问簇中 的各个元素,或者用不同类型但相互关 联的数据组成一个簇。 1.解包(Unbundle):用该节点可以获得 簇中元素的值(注意:节点将按照簇中 元素的序Order从上到下一次输出簇中各 个元素的值)。 2.打包(Bundle):把相互关联的不同数 据类型的数据组成一个簇,或者给簇中 的某一个元素赋值。 3.按名称解包(Unbundle By Name):该 节点可以得到由元素名称指定簇中相应 元素的值。 按名称打包(Bundle By Name):它是 Unbundle By Name的逆过程,可将相互 关联的不同数据类型的数组组成一个簇 ,或者给簇中的某一个元素赋值。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 科普知识

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号