《LabVIEW编程及虚拟仪器设计(第三讲)》由会员分享,可在线阅读,更多相关《LabVIEW编程及虚拟仪器设计(第三讲)(40页珍藏版)》请在金锄头文库上搜索。
1、LabVIEW编程及虚拟编程及虚拟仪器设计仪器设计第三讲第三讲:数据类型及其操作函数数据类型及其操作函数上节课内容回顾(上节课内容回顾(1)一、一、循环结构循环结构二、条件结构二、条件结构三、顺序结构三、顺序结构四、公式节点四、公式节点五、事件结构五、事件结构While循环循环For循环循环循环结构内外的数据交换循环结构内外的数据交换自动索引自动索引移位寄存器移位寄存器注注意意:(1)While循循环环是是先先执执行行、后后判判断断;而而For循循环环的的循循环环次次数数则则是是事事先先定定,且且具具体体操作为先判断、后执行(操作为先判断、后执行(0就不执行)。就不执行)。(2)循环前读入一次
2、,循环完才输出。循环前读入一次,循环完才输出。(3)对对For循环,在循环计数端子空置、有输入数组条件下,循环次数由循环,在循环计数端子空置、有输入数组条件下,循环次数由数组元素个数确定;若接入多个数组且均处在自动索引状态,同时循环计数组元素个数确定;若接入多个数组且均处在自动索引状态,同时循环计数端子也接入有一正整型常量,则循环次数取这些输入中的最小值。数端子也接入有一正整型常量,则循环次数取这些输入中的最小值。 (4)While循环的执行次数,仅受循环体内给条件端子置入的具体循环条循环的执行次数,仅受循环体内给条件端子置入的具体循环条件制约件制约 。上节课内容回顾上节课内容回顾 (2)一、
3、循环结构一、循环结构二、二、条件结构条件结构三、顺序结构三、顺序结构四、公式节点四、公式节点五、事件结构五、事件结构要么在选择器标签中列出所有要么在选择器标签中列出所有可能的情况;要么必须给出一可能的情况;要么必须给出一种默认情况。种默认情况。 进进行行条条件件结结构构内内外外的的数数据据交交换换时时,会会在在其其边边框框上上生生成成隧隧道道。输输入入隧隧道道在在每每个个分分支支中中都都可可使使用用;而而输输出出隧隧道道必必须须从从每每个个分分支支都都得得到明确的(输入)值,否则程序无法运行。到明确的(输入)值,否则程序无法运行。 (只是(只是 6,Default 6,Default 分支的显
4、示)分支的显示)上节课内容回顾(上节课内容回顾(3)一、循环结构一、循环结构二、条件结构二、条件结构三、三、顺序结构顺序结构四、公式节点四、公式节点五、事件结构五、事件结构 输入数据在顺序结构运输入数据在顺序结构运行前读入,各帧均可用;输行前读入,各帧均可用;输出数据在顺序结构执行完才出数据在顺序结构执行完才输出,只跟最后一帧有关输出,只跟最后一帧有关。 层叠式顺序结构中可设立局部变量,层叠式顺序结构中可设立局部变量,用于在不同帧之间实现数据传递。平铺式用于在不同帧之间实现数据传递。平铺式顺序结构无需局部变量,数据传递直接经顺序结构无需局部变量,数据传递直接经隧道实现。平铺式与层叠式顺序结构实
5、现隧道实现。平铺式与层叠式顺序结构实现功能相同,只是表现形式不同。功能相同,只是表现形式不同。 当公式节点中的代码很多,一屏显示不下当公式节点中的代码很多,一屏显示不下时,可在代码区域弹出快捷菜单,选择时,可在代码区域弹出快捷菜单,选择“显显示项示项” - “滚动条滚动条”,从而实现滚动浏览。,从而实现滚动浏览。一、循环结构一、循环结构二、分支结构二、分支结构三、顺序结构三、顺序结构四、四、公式节点公式节点五、事件结构五、事件结构 各输入、输出端子的名称各输入、输出端子的名称必须与公式节点中的变量名称必须与公式节点中的变量名称完全相同。各输入端子间、各完全相同。各输入端子间、各输出端子间不允许
6、重名,但输输出端子间不允许重名,但输入端子与输出端子可重名。入端子与输出端子可重名。输入端子输入端子输出端子输出端子滚动条滚动条中间变量也中间变量也必须在边框必须在边框上定义,但上定义,但可以不与外可以不与外部连接。部连接。 上节课内容回顾(上节课内容回顾(4)本节课内容本节课内容一、数组一、数组二、簇二、簇三、波形三、波形 除整数、浮点数、布尔数和字除整数、浮点数、布尔数和字符串等基本数据类型以及相应的运符串等基本数据类型以及相应的运算、操作外,算、操作外,LabVIEW中中还提供有还提供有几种复合数据,包括几种复合数据,包括数组数组、簇簇和和波波形形,以及对它们进行操作的函数。,以及对它们
7、进行操作的函数。灵活使用这些复合类型的数据及相灵活使用这些复合类型的数据及相应的操作函数,可简化程序代码,应的操作函数,可简化程序代码,方便虚拟仪器即方便虚拟仪器即VIVI的编程。的编程。一、数组(一、数组(1)1.1.数组的创建(数组的创建(1 1) 1 1)创建数组框架()创建数组框架(输入、显示、常量输入、显示、常量););2 2)向数组框架中添加)向数组框架中添加“元素元素”,以确定数组元素的数据类型;,以确定数组元素的数据类型;3 3)以拖动方式操作,可确定数组的可视大小;)以拖动方式操作,可确定数组的可视大小;4 4)给数组赋值(指定具体元素)。)给数组赋值(指定具体元素)。 数组
8、数组是相同类型元素的是相同类型元素的集合。在集合。在LabVIEW中,数组中,数组可以随意改变长度。可以随意改变长度。 数组输入控件数组输入控件和和数组常量数组常量可作可作为为数据源数据源;数组显示控件数组显示控件则作为数则作为数据流动的目标容器。据流动的目标容器。 到达到达数组输入控件框架数组输入控件框架亦即亦即数数组显示控件框架组显示控件框架的路径为的路径为:(前):(前)控件选板控件选板-新式新式-数组、矩阵与簇数组、矩阵与簇-数组数组;而而数组常量框架(后面板)数组常量框架(后面板),经,经函数选板函数选板 - - 编程编程 - -数组数组 - - 数组常量数组常量找到找到。 一、数组
9、一、数组(2)1.1.数组的创建数组的创建 (2)b b)向框架的元素区域向框架的元素区域 中添加数据类型中添加数据类型 “ “元素元素”(不论不论输入输入 、显示、显示还是还是常量常量) a a)建框架)建框架c c)调整元素的可)调整元素的可 视大小和个数视大小和个数改改变变元元素素大小大小同同 时时显显 示示多多 个个元素元素注意:注意:只有确定了所建数组的只有确定了所建数组的性质,才能进行调整数组元素可性质,才能进行调整数组元素可视个数的操作。视个数的操作。一、数组(一、数组(3)1.1.数组的创建(数组的创建(3 3) d d)赋值;改变数组元素的默认值)赋值;改变数组元素的默认值
10、默认值的设置方式默认值的设置方式:在第:在第0 0号(即首个)元素上弹出快捷号(即首个)元素上弹出快捷菜单,选择菜单,选择“数据操作数据操作” -“” -“当前值设置为默认值当前值设置为默认值”。显示4个元素表格形式的空整型数组输入控件在第0号元素上把当前值1指定为默认值为第0号元素指定整型值1索引索引(坐标、下标坐标、下标)从)从0开始开始一、数组(一、数组(4)2.2.数组的快捷操作(这数组的快捷操作(这里,以里,以数组常量数组常量索引索引区的快捷菜单为例)区的快捷菜单为例) 在在数组常量数组常量的索引区和边的索引区和边框上右击鼠标,弹出框上右击鼠标,弹出快捷菜单快捷菜单一、数组(一、数组
11、(5)3. 数组的行、列、页数组的行、列、页注意:注意:一般来说,任何类型数据的一般来说,任何类型数据的输入、输入、显示显示控件和常量,均可用来定义数组的元控件和常量,均可用来定义数组的元素类型。但是,数组、素类型。但是,数组、子面板子面板控件控件(控件控件-新式新式-容器容器-子面板子面板)、选项卡选项卡控件控件(控件控件-新式新式-容器容器-选项卡控件选项卡控件)、ActiveX控件、控件、波形图表波形图表、XY 图等图等不能不能作为数组的元素。作为数组的元素。 页索引页索引行索引行索引列索引列索引注意:索引区域显示的值,永远是元素区域所显示的左上角元素的索引值(即注意:索引区域显示的值,
12、永远是元素区域所显示的左上角元素的索引值(即元素下标;从第元素下标;从第0 0页、页、0 0行、行、0 0列记起)列记起) 。以数组常以数组常 量为例量为例以数组显示以数组显示控件为例控件为例一、数组(一、数组(6)4. 数组操作函数数组操作函数 (1)数组大小)数组大小 其输入其输入“数组数组”,可是,可是任意维的数组;输出任意维的数组;输出“大小大小”,提供,提供该数组该数组各维的长度。如果各维的长度。如果输入输入“数组数组” 是一是一维的,维的,输出输出“大小大小” 便给出便给出一个整数值;若输入一个整数值;若输入“数组数组”是是多维的,则多维的,则输出输出“大大小小” 提供的(也称返回
13、的)就是提供的(也称返回的)就是1个一维的整型数组,其每个分个一维的整型数组,其每个分量对应输入量对应输入数组数组中相应维的长度。中相应维的长度。 路径:函数选板路径:函数选板-编程编程-数组数组子选板子选板 这里,对应前页这里,对应前页中的上例(中的上例(2页、页、3行、行、4列)。点击该函数列)。点击该函数图标的右端,可直接图标的右端,可直接生成数组显示器。生成数组显示器。一、数组(一、数组(7)4. 数组操作函数数组操作函数 (2)索引数据)索引数据 路径:路径:“函数函数”选板选板-“-“编程编程”-“-“数组数组”子选板子选板 使用该函数,可使用该函数,可获得获得对该数组中感兴趣部分
14、的数据。对该数组中感兴趣部分的数据。 这里只显这里只显示了示了输入输入数组的第数组的第0页;页;获得(显示)了其获得(显示)了其第第0页第页第1行。行。一、数组(一、数组(8) 4. 数组操作函数数组操作函数 (3)替换数组子集)替换数组子集路径:路径:“函数函数”选板选板 - “- “编程编程” - “- “数组数组”子选板子选板 这里这里,输入仍是前述的,输入仍是前述的2页页3行行4列的数组(仅给出了第列的数组(仅给出了第0页);给页);给该该函数只接入了数组函数只接入了数组某行某行的索引值,的索引值,具体为具体为1,即要替换输入数组所有页即要替换输入数组所有页的第的第1 1行(成一个新三
15、维数组)。送行(成一个新三维数组)。送给输入端子给输入端子“新元素新元素/子数组子数组”的的二二维数组维数组是是替换新元素,它的第替换新元素,它的第0行去行去替换原三维数组第替换原三维数组第0 0页的第页的第1 1行;而行;而其第其第1行,去替换原数组第行,去替换原数组第1 1页的第页的第1 1行。行。 显示的仅是显示的仅是结果的第结果的第0页页(索(索引号从引号从0计起)计起)。一、数组(一、数组(9) 4. 数组操作函数数组操作函数 (4)初始化数组)初始化数组路径:路径: “函数函数”选板选板 -“-“编程编程” - “- “数组数组”子选板子选板 功能:功能:创建创建n维数组。每一维的
16、长度,分别由维数组。每一维的长度,分别由“维数大小维数大小 0”“维数大小维数大小n-1”这这n个输入端输入的数值确个输入端输入的数值确定。刚创建成仅定。刚创建成仅一维,拖曳其图标下边框,可增加输入端子数,从而创建多一维,拖曳其图标下边框,可增加输入端子数,从而创建多维数组;且数组刚创建成时,其每个元素的值均与维数组;且数组刚创建成时,其每个元素的值均与“元素元素”端子输入的值端子输入的值相同。相同。一、数组(一、数组(10) 4. 数组操作函数数组操作函数 (5)创建数组)创建数组 路径:路径:“函数函数”选板选板 - “- “编程编程” - “- “数组数组”子选子选板板 功能:功能:将若
17、干个输入数组即将若干个输入数组即“数组数组”与与“元素元素”组合成一个组合成一个数组。该函数图标上弹出的快捷菜单中有数组。该函数图标上弹出的快捷菜单中有“连接输入连接输入”选项选项 ,当,当它被选中时,该函数输出端会提供将所有输入连接在一起的结果,它被选中时,该函数输出端会提供将所有输入连接在一起的结果,此输出数组的维数,与所有输入中的最高维数相同;此输出数组的维数,与所有输入中的最高维数相同;该选项该选项被关被关闭,所有输入的维数必须相同,该函数输出的数组比输入(数组)闭,所有输入的维数必须相同,该函数输出的数组比输入(数组)高一维;若所有输入均为标量,高一维;若所有输入均为标量, “连接输
18、入连接输入”选项被自动关闭,选项被自动关闭,函数输出一维数组,按顺序输出所有输入的参数(作为它的元素)。函数输出一维数组,按顺序输出所有输入的参数(作为它的元素)。 拖曳下边框可增拖曳下边框可增加输入端子。加输入端子。一、数组(一、数组(11) 4. 数组操作函数数组操作函数 (6)数组子集)数组子集 路径:路径:“函数函数”选板选板 - “- “编程编程” - “- “数组数组”子选子选板板 功能:功能:输出(返回)输入的数组中从输出(返回)输入的数组中从“索引索引”参数参数指定的指定的位置开始、由位置开始、由“长度长度”参数指定长度的数组子集。每个参数指定长度的数组子集。每个“索引索引”与
19、与一个一个“长度长度”构成一对;构成一对;“索引索引-长度长度”对的数目与输入参对的数目与输入参数数“索引索引”的的维数相同;输出维数相同;输出“子数组子数组”的维数,也与的维数,也与“数组数组”的维数的维数相同。相同。 求数组的最大值和最小值求数组的最大值和最小值数组的转置数组的转置数组的排序数组的排序数组的移位数组的移位数组的反转数组的反转抽取一维数组抽取一维数组程序见程序见 其它其它.VI其他数组操作函数其他数组操作函数一、数组(一、数组(12) 5. 操作函数的多态化操作函数的多态化 多态化是指一种函数功能,即它可以协调多态化是指一种函数功能,即它可以协调/ /接纳接纳不同格式、不同维
20、数或不同显示模式的输入数据。在不同格式、不同维数或不同显示模式的输入数据。在 LabVIEWLabVIEW中提供的大多数功能函数均是多态化的。中提供的大多数功能函数均是多态化的。 二、簇(二、簇(1)1.1.簇(簇(ClusterCluster)的创)的创 建建 (1)a a)创建簇框架;)创建簇框架;b b)向簇框架中添加元素;)向簇框架中添加元素;c c)拖动确定簇的可视大小。)拖动确定簇的可视大小。 簇可以包含任意数目、任意类簇可以包含任意数目、任意类型的元素。簇不能在运行时添加型的元素。簇不能在运行时添加新元素(而数组的长度在运行时新元素(而数组的长度在运行时可以自由改变)。簇类似于可
21、以自由改变)。簇类似于C C语言语言中的结构(中的结构(structurestructure)。)。 簇输入控件和簇显示簇输入控件和簇显示控件的框架在(前)控件的框架在(前)控件控件选板选板- - 新式新式-数组、矩阵数组、矩阵与簇与簇子选板上;子选板上;而簇常量而簇常量的框架,则在(框图)函的框架,则在(框图)函数选板数选板-编程编程-簇与变体簇与变体子选板上子选板上 。 簇与数组最明显的区别是,簇与数组最明显的区别是,一个簇中的所有元素,不必同一个簇中的所有元素,不必同时为输入控件、显示控件或常时为输入控件、显示控件或常量。但数组则不然。量。但数组则不然。二、簇(二、簇(2)1.1.簇的创
22、建簇的创建 (2)可向其中再放入其他数据类型的可向其中再放入其他数据类型的“输入控件元素输入控件元素”。以构建一个簇控件、仅放入一个数值输入控以构建一个簇控件、仅放入一个数值输入控件的情况为例。件的情况为例。二、簇(二、簇(3)2.2.簇元素的顺序簇元素的顺序 在簇中,元素有一定的排列顺序,该顺序即为创建该簇时在簇中,元素有一定的排列顺序,该顺序即为创建该簇时添加元素的顺序添加元素的顺序。簇元素的排列顺序很重要,是完成很多操作。簇元素的排列顺序很重要,是完成很多操作的依据。的依据。 改变簇中元素的排序:在簇框改变簇中元素的排序:在簇框架上弹出快捷菜单,选择架上弹出快捷菜单,选择“重新排重新排序
23、簇中控件序簇中控件”,即,即打开了簇元素打开了簇元素顺序编辑状态。簇元素上有两个序顺序编辑状态。簇元素上有两个序号,左侧反显的为新序号;右侧加号,左侧反显的为新序号;右侧加灰的是旧序号。单击簇元素之一,灰的是旧序号。单击簇元素之一,将把该元素设置为第将把该元素设置为第0号号元素;对元素;对其他重复此过程,直到改好所有元其他重复此过程,直到改好所有元素的顺序,点击上方工具栏素的顺序,点击上方工具栏OK按按钮,确认所做修改。钮,确认所做修改。 在簇边框上弹出快捷菜单,选在簇边框上弹出快捷菜单,选“自动调整大小自动调整大小”子菜单,可实现子菜单,可实现左图所示的所需操作。左图所示的所需操作。 二、簇
24、(二、簇(4)3.3.簇的操作函数簇的操作函数 (1)捆绑)捆绑 之一之一 “函数函数”选板选板 - “ - “编程编程” - “” - “簇与变体簇与变体”子子选板选板 功能一:功能一: 将所有输入元素将所有输入元素打包成簇。打包成簇。(元素均(元素均是是“常量常量”,但可为不,但可为不同数据类型)同数据类型) 二、簇(二、簇(5)3.3.簇的操作函数簇的操作函数 (1)捆绑)捆绑 之二之二 “函数函数”选板选板 - “ - “编程编程” - “” - “簇与变体簇与变体”子子选板选板 功能二:功能二: 替换成替换成新簇新簇 。二、簇(二、簇(6)3.3.簇的操作函数簇的操作函数 (2 2)
25、解除捆绑)解除捆绑 “函数函数”选板选板 - “ - “编程编程” - “” - “簇与变体簇与变体”子子选板选板 二、簇(二、簇(7)3.3.簇的操作函数簇的操作函数 (3 3)按名称打包)按名称打包 (捆绑)(捆绑) “函数函数”选板选板 - “ - “编程编程” - “” - “簇与变体簇与变体”子选子选板板 功能:功能:按标签替换按标签替换“输输入簇入簇”中的元素;替换中的元素;替换结果从结果从“输出簇输出簇”提供提供出来出来。 故,故,“输入簇输入簇”必须接入,且要求其必须接入,且要求其至少至少1 1个元素有标签。个元素有标签。 添加标签:添加标签:在对象在对象(簇某元素)上弹出快(
26、簇某元素)上弹出快捷菜单,从捷菜单,从“显示项显示项”子菜单选中子菜单选中“标签标签”,可为对象添加标签。可为对象添加标签。二、簇二、簇(8)3.3.簇的操作函数簇的操作函数 (4 4)按名称解除捆绑)按名称解除捆绑 “函数函数”选板选板 - “ - “编程编程” - “” - “簇与变体簇与变体”子子选板选板 功能:功能:把输入簇中把输入簇中的元素按标签解除捆绑。的元素按标签解除捆绑。在函数输出端,只能获在函数输出端,只能获得拥有标签的簇元素。得拥有标签的簇元素。 函数初建时,只有函数初建时,只有一个输出端子;单击其一个输出端子;单击其标签域,可弹出带有标标签域,可弹出带有标签的簇元素的列表
27、;必签的簇元素的列表;必须对其分别建立相应的须对其分别建立相应的显示器。显示器。二、簇(二、簇(9)3.3.簇的操作函数簇的操作函数 (5 5)簇与数组的相互转换)簇与数组的相互转换 “函数函数”选板选板 - “ - “编程编程” - “” - “簇与变体簇与变体”子子选板选板 功能功能:把所有簇元素按把所有簇元素按顺序组合成一维数组经顺序组合成一维数组经“数组数组”端子端子输出。输出。 显然,显然,它它要求簇的所有元素的类要求簇的所有元素的类型要相同。型要相同。 把把“数组数组”端子输入端子输入的数组的数组中的元素,按顺序中的元素,按顺序捆绑成簇,并经捆绑成簇,并经“簇簇”端端子子输出。输出
28、。 三、波形(三、波形(1)1.1.波形的创建波形的创建 (属于输出、显示)(属于输出、显示)1 路径:路径:控件选板控件选板 -“-“新式新式” -“-“I/O ”子选板子选板 波形数据含有波形数据含有4个组成部分:个组成部分:t0为时间标识常量类型,表示波为时间标识常量类型,表示波形数据的时间起点;形数据的时间起点;dt属于双精属于双精度浮点类型,表示波形相邻数据度浮点类型,表示波形相邻数据点间的时间间隔,以秒为单位;点间的时间间隔,以秒为单位;Y是双精度浮点数组,它按时间是双精度浮点数组,它按时间顺序给出整个波形的所有数据点;顺序给出整个波形的所有数据点;“属性属性”具有变体类型,用于携
29、具有变体类型,用于携带任意的属性信息。带任意的属性信息。 三、波形(三、波形(2)1.波形的创建波形的创建 22. (a)时间标识(时间标识(zhi) 时间标识,又称时间戳,是时间标识,又称时间戳,是LabVIEW中记录时间的专用数中记录时间的专用数据类型;据类型;它它属于属于常量常量,获取它的路径,获取它的路径:函数选板函数选板 -编程编程-定时定时 -时时间标识常量间标识常量 。获取时间标识的。获取时间标识的输入控件和显示控件的路径为:输入控件和显示控件的路径为:控控件选板件选板 - 新式新式 - - 数值子选板数值子选板。 在时间标识的在时间标识的常量或输入、显示常量或输入、显示控件上弹
30、出快捷菜控件上弹出快捷菜单,都可以打开上单,都可以打开上图所示对话框,以图所示对话框,以按现行时间进行时按现行时间进行时间的设置间的设置。路径:路径:在时间标识常量(后)和时间标识输在时间标识常量(后)和时间标识输入或显示控件(前)上弹出快捷菜单,经入或显示控件(前)上弹出快捷菜单,经数据数据操作操作子选板子选板 选择选择“设置置时间和日期和日期”。三、波形(三、波形(3)1.波形的创建波形的创建 32. (b) 变体类型变体类型 任何数据类型都可以转化为变体类型,然后再为其添加属任何数据类型都可以转化为变体类型,然后再为其添加属性,并可以在需要时,转换回原来的数据类型。找到性,并可以在需要时
31、,转换回原来的数据类型。找到变体变体类型类型操作函数的路径操作函数的路径:“函数函数”选板选板-“编程编程” - - “簇、类与变体簇、类与变体”- “变体变体”子选板子选板 。 三、波形(三、波形(4)2. 波形操作函数波形操作函数创建波形(创建波形(1) “函数函数”选板选板 - - “编程编程” - “波形波形”子选板子选板 功能:功能:创建波形或修改已有波形。具体地,在默认情况下,创建波形或修改已有波形。具体地,在默认情况下,只有只有“波形波形”和和“波形成分波形成分”即即Y Y输入端子;拖曳该函数图标的输入端子;拖曳该函数图标的上边框,可增加上边框,可增加dtdt、t0t0输入端子;
32、拖曳其图标的下边框,可增输入端子;拖曳其图标的下边框,可增加加attribuatesattribuates(变体类型)输入端子。(变体类型)输入端子。 若若“波形波形”端子无参数接入,该函数就根据其他输入参数端子无参数接入,该函数就根据其他输入参数创建新的波形数据并输出;如果创建新的波形数据并输出;如果“波形波形”端子接入了已有的波端子接入了已有的波形数据,该函数则会据经形数据,该函数则会据经“波形成分波形成分”即即Y端接入的参数修改波端接入的参数修改波形数据,修改后的波形数据从输出端给出(也称返回)。形数据,修改后的波形数据从输出端给出(也称返回)。 三、波形三、波形(5)2. 波形操作函数
33、波形操作函数获取波形成分(获取波形成分(2) “函数函数”选板选板 - - “编程编程” - “波形波形”子选子选板板 功能:功能:将波形数据解包。将波形数据解包。默认情况下,只有默认情况下,只有Y输出端子;拖输出端子;拖曳函数图标上边框,可增加曳函数图标上边框,可增加dt、t0输出端子;拖曳下边框,可增输出端子;拖曳下边框,可增加加attributes(变体类型)输出端子(变体类型)输出端子。点击输出端子,可弹出元点击输出端子,可弹出元素选择快捷菜单。素选择快捷菜单。 三、波形(三、波形(6)2. 波形操作函数设置波形属性(波形操作函数设置波形属性(3) 路径:路径:“函数函数”选板选板-
34、- “编程编程” - “波形波形”子选板子选板 功功 能:能:为输入的波形数据添加为输入的波形数据添加“名称名称”和和“值值”的属性。的属性。实际上,这里的所谓属性,是为波形中的变体类型元素添加的;实际上,这里的所谓属性,是为波形中的变体类型元素添加的;可以认为,该函数中封装了可以认为,该函数中封装了“设置变体属性设置变体属性”函数。函数。 三、波形(三、波形(7)2. 波形操作函数波形操作函数获取波形属性(获取波形属性(4) 路径:路径:“函数函数”选板选板-“-“编程编程”- “”- “波形波形”子选板子选板 功功 能:能:获取波形中名为获取波形中名为“名称名称”的属性。实际上,是为的属性
35、。实际上,是为获得波形数据中获得波形数据中变体类型元素变体类型元素attributes的属性。的属性。 注意:注意:在在“波形波形”子选板上还有很多波形操作函数,且还有子选板上还有很多波形操作函数,且还有实现波形测量和波形发生的子实现波形测量和波形发生的子VI,可以在需要使用时查阅并选,可以在需要使用时查阅并选择。其中一些波形函数较简单,可在框图上双击其函数图标,择。其中一些波形函数较简单,可在框图上双击其函数图标,打开它的对应打开它的对应VI窗口,查看了解其内部的实现细节和原理。窗口,查看了解其内部的实现细节和原理。 三、波形(三、波形(8)3. Waveform使用举例(使用举例(1) 找
36、到它的路径:前面板找到它的路径:前面板“帮助帮助”“查找范例查找范例”“目录目录结构结构”generalwaveformOperations.llbCreate Waveform example.vi 三、波形(三、波形(9)3. Waveform使用举例(使用举例(2)-前页例简介前页例简介 首先,用首先,用FOR循环建立循环建立#points个个0100间的随机数数组;以此数组为间的随机数数组;以此数组为Y数据,数据,以当前时间作时间起点以当前时间作时间起点t0,以,以0.2s为时间间隔为时间间隔dt,建立波形数据。之后,用,建立波形数据。之后,用“连连接字符串接字符串”函数,连接函数,连
37、接channel name字符串控制器、字符串常量字符串控制器、字符串常量“CH:”以及由以及由“格式化写入字符串格式化写入字符串”函数转化而来的函数转化而来的32位带符号整数控制器位带符号整数控制器channel#所代表的所代表的通道号字符串,并以连接后的字符串作属性值,建立名为通道号字符串,并以连接后的字符串作属性值,建立名为Channel named 属性;属性;再以字符串控制器再以字符串控制器channel unit的内容作为属性值,建立名为的内容作为属性值,建立名为channel unit的属性;的属性;最后将波形数据输出(波形最后将波形数据输出(波形+波形数据)。波形数据)。三、波
38、形(三、波形(9)4.4.波形数组波形数组 波形数组是由波形数据作为元素组成的数组。波形数组是由波形数据作为元素组成的数组。例如在数据采集中,常常要从多个数据通道的每个例如在数据采集中,常常要从多个数据通道的每个通道中各采集一个波形。这时,数据采集函数输出通道中各采集一个波形。这时,数据采集函数输出的数据类型,其实就是一个波形数组。获得波形数的数据类型,其实就是一个波形数组。获得波形数组后,使用数组操作函数从该波形数组中提取出相组后,使用数组操作函数从该波形数组中提取出相关的波形元素(波形成分),然后,就可以使用前关的波形元素(波形成分),然后,就可以使用前面介绍的波形函数对波形数据进行处理了
39、。面介绍的波形函数对波形数据进行处理了。 完。完。 路径:路径:“函数函数”选板选板-“编程编程”-“波形波形”-“模拟波形模拟波形”- - “波形波形 生产生产”子选板子选板练习练习1 1:按所给参数,构建一个可以采集并输按所给参数,构建一个可以采集并输 出正弦波形的出正弦波形的VIVI。练习练习2:构建一个:构建一个VI,将包含,将包含10个随机数的一个随机数的一 个数组的元素顺序颠倒过来,再将数个数组的元素顺序颠倒过来,再将数 组最后组最后5个元素移到数组前端,形成个元素移到数组前端,形成 一个新数组。一个新数组。练习练习3:创建一个簇控件,其元素分别为字符:创建一个簇控件,其元素分别为字符 型控件型控件“姓名姓名”,数值型控件,数值型控件“学号学号”, 布尔型控件布尔型控件“注册注册”;从该簇控件中;从该簇控件中提提 取出元素取出元素“注册注册”并显示在前面板上。并显示在前面板上。练习练习4:任意创建一盒波形,将其名称设定为:任意创建一盒波形,将其名称设定为 “采样信号采样信号”,将其值设定为,将其值设定为1到到200的的 数组。数组。