LabVIEW虚拟仪器设计教程第6章-变量、数组课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《LabVIEW虚拟仪器设计教程第6章-变量、数组课件.ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- LabVIEW 虚拟仪器 设计 教程 变量 数组 课件
- 资源描述:
-
1、第第6 6章章 变量、数组、簇和矩阵变量、数组、簇和矩阵 6.1 变变 量量6.1.1 局部变量局部变量当无法访问某前面板对象或需要在程序框图节点之间传递数据时,可创建局部当无法访问某前面板对象或需要在程序框图节点之间传递数据时,可创建局部变量。局部变量仅仅出现在程序框图上,而不在前面板上。通过局部变量可对前面变量。局部变量仅仅出现在程序框图上,而不在前面板上。通过局部变量可对前面板上的输入控件或显示控件进行数据读写。板上的输入控件或显示控件进行数据读写。将将“函数函数”选板上的局部变量节点放选板上的局部变量节点放置在程序框图上,通过建立局部变量置在程序框图上,通过建立局部变量与输入控件或显示
2、控件相关联建立局与输入控件或显示控件相关联建立局部变量。部变量。创建了一个局部变量后,就可从变量读写数据了。默认状态下,新变量将接收创建了一个局部变量后,就可从变量读写数据了。默认状态下,新变量将接收数据,变量就像一个显示控件,是一个写入局部变量。将新数据写入该局部变量,数据,变量就像一个显示控件,是一个写入局部变量。将新数据写入该局部变量,与之相关联的前面板输入控件或显示控件将由于新数据的写入而更新。与之相关联的前面板输入控件或显示控件将由于新数据的写入而更新。写入局部变量写入局部变量读取局部变量读取局部变量变量可配置为数据源、读取局部变量。右键单击变量,从快捷菜单中选择变量可配置为数据源、
3、读取局部变量。右键单击变量,从快捷菜单中选择“转转换为读取换为读取”,便可将该变量配置为一个输入控件。节点执行时,便可将该变量配置为一个输入控件。节点执行时,VI将读取相关前面将读取相关前面板输入控件或显示控件中的数据。板输入控件或显示控件中的数据。如需使变量从程序框图接收数据而不是提供数据,可右键单击该变量并从快捷如需使变量从程序框图接收数据而不是提供数据,可右键单击该变量并从快捷菜单中选择菜单中选择“转换为写入转换为写入”。该实例通过典型的并行循环结构,使用布尔开关局部变量读取开关的值,可该实例通过典型的并行循环结构,使用布尔开关局部变量读取开关的值,可同时停止两个循环。由于布尔控件的同时
4、停止两个循环。由于布尔控件的“单击时触发单击时触发”机械动作与局部变量不兼容,机械动作与局部变量不兼容,因此通过另一个局部写入变量将开关值重置为因此通过另一个局部写入变量将开关值重置为“开开”,仿真,仿真“单击时触发单击时触发”机械机械动作。动作。 利用局部变量实现一个布尔开关同时控制两个利用局部变量实现一个布尔开关同时控制两个WhileWhile循环循环6.1.2 全局变量全局变量 全局变量可在同时运行的多个全局变量可在同时运行的多个VI之间访问和传递数据。全局变量是内置的之间访问和传递数据。全局变量是内置的LabVIEW对象。创建全局变量时,对象。创建全局变量时,LabVIEW将自动创建一
5、个有前面板但无程序框将自动创建一个有前面板但无程序框图的特殊全局图的特殊全局VI。向该全局。向该全局VI的前面板添加控件可定义其中所含全局变量的数据类的前面板添加控件可定义其中所含全局变量的数据类型及变量数目。该前面板实际便成为一个可供多个型及变量数目。该前面板实际便成为一个可供多个VI进行数据访问的容器。进行数据访问的容器。 。在程序框图在程序框图“函数选板函数选板”中点击中点击“选择选择VI”选项,在弹出的选项,在弹出的“选择需打开的选择需打开的VI”对话框中选择打开保存全局变量的对话框中选择打开保存全局变量的VI,则在鼠标指针将浮着一个全局变量节点,将,则在鼠标指针将浮着一个全局变量节点
6、,将其放置到程序框图中即实现副本的创建。放置到程序框图上的全局变量节点默认和其放置到程序框图中即实现副本的创建。放置到程序框图上的全局变量节点默认和全局变量前面板中的一个自带标签对象关联,可以通过重新建立关联关系改变节点全局变量前面板中的一个自带标签对象关联,可以通过重新建立关联关系改变节点与对象之间的关系。与对象之间的关系。全局变量前面板对象全局变量前面板对象 第一个第一个VIVI的程序框图的程序框图 第二个第二个VIVI的程序框图及前面板的程序框图及前面板 1.1. 将第一个将第一个VIVI连续产生的随机数传递到第二个连续产生的随机数传递到第二个VIVI中并在波形图表中显示中并在波形图表中
7、显示2.2. 第二个第二个VIVI的停止按钮同时控制两个的停止按钮同时控制两个VIVI的运行的运行6.1.3 局部变量和全局变量使用注意事项局部变量和全局变量使用注意事项如需对一个局部或全局变量进行初始化,应在如需对一个局部或全局变量进行初始化,应在VIVI运行前确认变量包含的是已知运行前确认变量包含的是已知的数据值,否则变量可能含有导致的数据值,否则变量可能含有导致VIVI发生错误行为的数据。如变量的初始值基于一发生错误行为的数据。如变量的初始值基于一个计算结果,则应确保个计算结果,则应确保LabVIEWLabVIEW在读取该变量前先将初始值写入变量。在读取该变量前先将初始值写入变量。两段或
8、两段以上代码并行改变一个共享资源的值时,就发生了竞争状态。发生两段或两段以上代码并行改变一个共享资源的值时,就发生了竞争状态。发生竞争时竞争时VIVI的运行结果取决于共享变量先执行哪个动作,竞争状态会引起不可预见性。的运行结果取决于共享变量先执行哪个动作,竞争状态会引起不可预见性。当有多于一个操作对同样数据的值进行更新时可能导致竞争状态,因此在使用局部当有多于一个操作对同样数据的值进行更新时可能导致竞争状态,因此在使用局部变量和全局变量时应变量和全局变量时应避免竞争状态。避免竞争状态。 使用局部变量和全局变量通常会使用更多的内存,最终导致执行速度更慢,因使用局部变量和全局变量通常会使用更多的内
9、存,最终导致执行速度更慢,因此需要考虑该问题。此需要考虑该问题。6.2 数数 组组数组是相同类型元素的集合,由元素和维度组成。元素是组成数组的数据,维数组是相同类型元素的集合,由元素和维度组成。元素是组成数组的数据,维度是数组的长度、高度或深度。数组可以是一维或多维的,在内存允许的情况下每度是数组的长度、高度或深度。数组可以是一维或多维的,在内存允许的情况下每一维度可有多达一维度可有多达2 23131-1-1个元素。对一组相似的数据进行操作并重复计算时,可考虑使个元素。对一组相似的数据进行操作并重复计算时,可考虑使用数组。用数组。6.2.1 数组的创建数组的创建 1前面板数组对象的创建前面板数
10、组对象的创建(1 1)创建一个数组框架)创建一个数组框架 (2 2)将一个数据对象或元素拖曳到该数组框架中)将一个数据对象或元素拖曳到该数组框架中放入数组框架中的数据对象或元素可以是数值、布尔、字符放入数组框架中的数据对象或元素可以是数值、布尔、字符串、路径、引用句柄、簇输入控件或显示控件,因此数组根串、路径、引用句柄、簇输入控件或显示控件,因此数组根据元素的数据类型创建对应数据类型的数组。当放入的对象据元素的数据类型创建对应数据类型的数组。当放入的对象为输入控件时,所创建的数组将为数组输入控件,当放入显为输入控件时,所创建的数组将为数组输入控件,当放入显示控件时,所创建的数组将为数组显示控件
11、。示控件时,所创建的数组将为数组显示控件。2数组对象的组成及配置操作数组对象的组成及配置操作 数组由索引区和元素区两部分构成的。默认数组只显示一个元素,该元素的索引值在数组索引区域中显示,单击索引区域的增量/减量按钮可以浏览数组元素,即元素区域显示的元素随着索引值变化。数组索引区的显示值始终为元素区左上角元素的索引值。为数组空元素赋值时,比当前元素的索引值小的所有空元素都自动被赋予该元素数据类型的默认值。 利用已赋值元素的快捷菜单“数据操作” “当前值设置为默认值”选项可以为数组元素设置默认值。3程序框图数组常量的创建程序框图数组常量的创建将函数选板中的将函数选板中的“数组常量数组常量”放置到
12、程序框图中创建一个数组常量框架。将放置到程序框图中创建一个数组常量框架。将“常量常量”(如数值常量、布尔常量、字符串常量等)拖入数组常量框架中,即完成(如数值常量、布尔常量、字符串常量等)拖入数组常量框架中,即完成一个数组常量的创建。数组常量的相关配置操作与前面介绍的前面板中的数组对象一个数组常量的创建。数组常量的相关配置操作与前面介绍的前面板中的数组对象相同。利用数组常量的索引区和边框上快捷菜单相同。利用数组常量的索引区和边框上快捷菜单“转换为输入控件转换为输入控件”和和“转换为显转换为显示控件示控件”选项可分别把数组常量变为前面板上的输入控件和显示控件。选项可分别把数组常量变为前面板上的输
13、入控件和显示控件。4二维数组及多维数组的创建二维数组及多维数组的创建 (1 1)通过数组索引区或边框的快捷菜单)通过数组索引区或边框的快捷菜单“添加维度添加维度”选项增加数组的维数,相选项增加数组的维数,相反反“删除维度删除维度”可减小数组的维度可减小数组的维度. .(2 2)在鼠标指针处于)在鼠标指针处于“自动选择工具自动选择工具”状态时,移动鼠标指针到数组索引区,状态时,移动鼠标指针到数组索引区,此时索引区外围将显示出尺寸控制点,用鼠标在垂直方向拖动尺寸控制点,可以改变此时索引区外围将显示出尺寸控制点,用鼠标在垂直方向拖动尺寸控制点,可以改变数组的维数。数组的维数。 6.2.2 数组的算术
14、运算数组的算术运算LabVIEW一个非常大的优势在于它可以根据输入数据的类型判断算子的运算方一个非常大的优势在于它可以根据输入数据的类型判断算子的运算方法,即自动地实现多态。比如在法,即自动地实现多态。比如在LabVIEW中可以直接将两个数组相加,中可以直接将两个数组相加,LabVIEW会自动根据数组大小、数据类型决定相应的运算方法。会自动根据数组大小、数据类型决定相应的运算方法。对于加减乘除,数组之间的运算满足下面的规则。对于加减乘除,数组之间的运算满足下面的规则。(1)如果进行运算的两个数组大小完全一样,则将两个数组中索引相同的元素)如果进行运算的两个数组大小完全一样,则将两个数组中索引相
15、同的元素进行运算形成一个新的数组。进行运算形成一个新的数组。(2)若大小不一样,则忽略较大数组多出来的部分。)若大小不一样,则忽略较大数组多出来的部分。(3)如果一个数组和一个数值进行运算,则数组的每个元素都和该数值进行运)如果一个数组和一个数值进行运算,则数组的每个元素都和该数值进行运算从而输出一个新的数组。算从而输出一个新的数组。6.2.3 数组函数及操作数组函数及操作 该函数返回输入数组每个维度中元素的个数。该函数返回输入数组每个维度中元素的个数。 求一维数组大小:一维数组元素的个数。求三维数组大小:返回一个含三个元素的数组,指明数组的页、行、列的数量。该函数的功能是返回该函数的功能是返
16、回“n维数组维数组”在索引位置的元素或子数组。在索引位置的元素或子数组。 求一维数组索引为0和2的元素。求二维数组行索引为0列索引为2的元素及行索引为1的子数组。该函数的功能是从索引中指定的位置开始替换数组中的某个元素或子数组。该函数的功能是从索引中指定的位置开始替换数组中的某个元素或子数组。 将一维数组索引为1的元素替换为“0” 。 将二维数组列索引为0的元素全部替换为“0”。 替换3维数组行索引为1的前四个元素,其中三维数组为345,输入的“新元素/子数组”为24,因此只能替换第0页和第1页中行索引为1的前四个元素。 通过该函数实现在索引指定位置插入元素或子数组,将数组连接到该函数时,通过
17、该函数实现在索引指定位置插入元素或子数组,将数组连接到该函数时,函数将自动调整大小以显示数组各个维度的索引。函数将自动调整大小以显示数组各个维度的索引。 一维数组中索引值为1处插入一个元素“0”。在二维数组列索引为1处插入一列数据。原数组为345的三维数组,插入24的二维数组,插入位置的行索引为1。二维数组的两行分别插入到三维数组的第0和1页中行索引为1的位置,第3页行索引的位置也插入了一行,由于插入的二维数组只有两行,故第3页插入的行的元素全部为默认值“0”。另外插入的二维数组每行只有4个元素,而原数组每行有5个元素,因此插入的行的最后一个元素也是默认值“0”。 该函数从输入的该函数从输入的
展开阅读全文