第6章 labview 字符串、数组、簇和矩阵
(完整word版)LabVIEW编程基础(中)
LabVIEW的基本控件与基本函数LabVIEW基本控件:数值、布尔、字符串与路径、数组与簇、图形、枚举1、数值:数值输入控件与数值显示控件(数值输入控件有增量/减量按钮;输入为白色背景,输出为灰色背景)默认数据类型为:双精度,橙色。
2、布尔:值默认为False,图标为绿色。
布尔控件的机械动作属性单击时转换:按下按钮时改变状态,再次单击后恢复原状态。
与VI是否读取控件无关。
(可赋值恢复)类似开关按钮释放时转换:按下按钮时保持当前状态,直到释放按钮,再次单击后恢复原状态。
与VI是否读取控件无关。
(可赋值恢复)类似开关按钮保持转换直到释放:按下按钮时改变状态,直到释放按钮,,再次单击后恢复原状态。
与VI 是否读取控件无关。
(可赋值恢复)。
类似开关按钮单击时触发:按下按钮时改变状态,LabVIEW再次读取控件值后返回原状态。
释放时触发::按下按钮时保持当前状态,释放时改变状态,LabVIEW再次读取控件值后返回原状态。
保持触发直到释放:按下按钮时改变状态,直到释放按钮,LabVIEW再次读取控件值后返回原状态。
3、字符串与路径:(字符串输入控件与字符串显示控件),粉色。
4种显示方式(正常显示、’\’代码显示、密码显示、十六进制显示)4、数组:依据加入的控件类型同样分为输入控件与显示控件LabVIEW的数组以索引号0表示数组的首个数据。
增加数组维度的方法:(1)索引框的快捷菜单中->增加维度(2)直接向下拖动索引框(3)属性对话框->外观选项卡->维数组中的元素为同类型的控件,可以是各种类型的控件,但不能是数组的数组。
数组的多态性:5、簇:依据加入的控件类型同样分为输入控件与显示控件簇本身的属性:重新排序簇中控件、自动调整大小(无、调整为匹配大小、水平排列、垂直排列)使用簇结构时,尽可能的使用:严格自定义类型。
错误簇:状态(布尔)、代码(数值输入)、源(字符串输入)6、波形图表(Chart)与波形图(Graph):波形图表有一个“先入先出的缓冲区(默认为1024个数据)”,所以特别适合实时显示数据。
基于labview的数组、簇和波形
图形Graph一次性绘制预先产生的数据数组,不能将新数据追加到以前产生的数据上
波形chart和波形Graph的使用
Chart和Graph使用总结
波形Chart:单点以及多点波形Chart的框图程序 单曲线波形Graph
参考的例程
Charts.vi Waveform Graph.vi
XY Graph使用
图形是以曲线来显示数据
01
常用的二维图形控件有波形Chart和波形Graph和XY Graph
02
可显示单条曲线和显示多条曲线。
03
图形控件有很多特性,可以设置和修改,改变曲线显示的格式。
04
图形显示
图形Chart可以交互式绘制曲线,常用于循环中,可以保存并显示已采集到的数据,当新数据到来时可以追加显示。
数组、簇和波形
01
单击此处添加文本具体内容,简明扼要地阐述你的观点
LabVIEW的数据类型
数据类型选择和转换:
数值型控件对象的数据类型或格式和精度指定:右击对象,在弹出菜单上选择“Represeutation”或”Format @ Precision” 不同数据类型连接时,有的可以自动转换,有的不行 可使用转换函数强制转换 转换函数在函数面板数值运算Numeric中conversion子模板中
例:10元素的一维数组
思考?
波形可以存储在数组中,波形上一点构成数组中的一个元素。
波形如何存储?
在前面板创建
在后面板创建
通过函数或VIS动态生成
数组的创建
在前面板创建数组:
第一步创建数组壳: 从控制模板的Array&Cluster子模板中选择Array控制器,放在前面板上,即建立了一个空的数组壳(Array Shell) 第二步建立数据对象: 把一个数据对象拖入数组壳,或者从控制模板中添加一个数据对象到数组壳中,这样就可以创建一个数组 离索引显示最近的元素对应该索引显示里索引值关联的元素 索引显示
LABVIEW第6章字符串数组簇和矩阵
PPT文档演模板
LABVIEW第6章字符串数组簇和矩阵
6.3 簇(Cluster) ——LabVIEW中的结构体变量
n 簇操作函数使用示例
PPT文档演模板
LABVIEW第6章字符串数组簇和矩阵
6.3 簇(Cluster) ——LabVIEW中的结构体变量
PPT文档演模板
LABVIEW第6章字符串数组簇和矩阵
小试身手
n 3. 产生一个3×3的整数随机数数组,随机数要 在0到100之间,然后找出数组的鞍点,即该位 置上的元素在该行上最大,在该列上最小,也 可能没有鞍点。如下图所示:
PPT文档演模板
LABVIEW第6章字符串数组簇和矩阵
演讲完毕,谢谢听讲!
n 6.3.3 error in 和error out簇
n LabVIEW利用error in 和error out这两个预定义簇来 作为传递错误信息的载体。
PPT文档演模板
LABVIEW第6章字符串数组簇和矩阵
6.3 簇(Cluster) ——LabVIEW中的结构体变量
n 6.3.3 error in 和error out簇
n 6.1.3 字符串函数举例
•
PPT文档演模板
•基本字符串函数示例
LABVIEW第6章字符串数组簇和矩阵
6.1 字符串(String)
n 6.1.3 字符串函数举例
PPT文档演模板
•数据数组/电子表格字符串转换函数示例
LABVIEW第6章字符串数组簇和矩阵
6.2 数组(Array)
n 6.2.1 数组控件
n 普通的解包函数解包后只有将鼠标移到输出端子 上才能看到输出元素的名称,程序的可读性不高。 该函数可以根据名称有选择的输出簇内部元素。 其中元素名称就是指元素的Label。
LABVIEW第6章字符串、数组、簇和矩阵
小试身手
2. 对字符串进行加密,规则是每个字母后移5 位,例如A变为F,b变为g,x变为c,y变为d…
31
小试身手
3. 产生一个3×3的整数随机数数组,随机数要 在0到100之间,然后找出数组的鞍点,即该位 置上的元素在该行上最大,在该列上最小,也 可能没有鞍点。如下图所示:
32
小试身手
14、他乡生白发,旧国见青山。。2021年3月6日星期六上午11时6分13秒11:06:1321.3.6
15、比不了得就不比,得不到的就不要。。。2021年3月上午11时6分21.3.611:06March 6, 2021
16、行动出成果,工作出财富。。2021年3月6日星期六11时6分13秒11:06:136 March 2021
11、越是没有本领的就越加自命不凡。21.3.611:06:1311:06Mar-216-Mar-21
MOMODA POWERPOINT 12、越是无能的人,越喜欢挑剔别人的错儿。11:06:1311:06:1311:06Saturday, March 06, 2021
13、知人者智,自知者明。胜人者有力,自胜者强。21.3.621.3.611:06:1311:06:13March 6, 2021
字符串控件包括输入控件、显示控件和下拉框。
3
6.1 字符串(String)
4
6.1 字符串(String)
6.1.1 字符串控件
字符串输入控件一般被用作文本输入框,而字符串 显示控件一般被用作文本显示框。
5
6.1 字符串(String)
6.1.2 表格和树形控件
表格(Table)和树形控件在Controls Palette的 Modern->List & Table…面板下。
lABVIEW关于数据类型的编辑:数组、簇和波形
数据类型:数组、簇和波形.1概述数组是同类型元素的集合。
一个数组可以是一维或者多维,如果必要,每维最多可有231-1个元素。
可以通过数组索引访问其中的每个元素。
索引的范围是0到n – 1,其中n是数组中元素的个数。
图3-1所显示的是由数值构成的一维数组。
注意第一个元素的索引号为0,第二个是1,依此类推。
数组的元素可以是数据、字符串等,但所有元素的数据类型必须一致。
图3-1数组示意图簇(Cluster)是另一种数据类型,它的元素可以是不同类型的数据。
它类似于C语言中的stuct。
使用簇可以把分布在流程图中各个位置的数据元素组合起来,这样可以减少连线的拥挤程度。
减少子VI的连接端子的数量。
波形(Waveform)可以理解为一种簇的变形,它不能算是一种有普遍意义的数据类型,但非常实用。
3.2数组的创建及自动索引3.2.1创建数组一般说来,创建一个数组有两件事要做,首先要建一个数组的“壳”(shell),然后在这个壳中置入数组元素(如果需要用一个数组作为程序的数据源,可以选择Functions»Array»Array Constant,将它放置在流程图中。
然后再在数组框中放置数值常量、布尔数还是字符串常量。
下图显示了在数组框放入字符串常量数组的例子。
左边是一个数组壳,中间的图上已经置入了字符串元素,右边的图反映了数组的第0个元素为:”ABC”,后两个元素均为空。
图3-1数组的创建在前面板中创建数组的方法是,从Controls模板中选择Array & Cluster,把数组放置在前面板中,然后选择一个对象(例如数值常量)插入到数组框中。
这样就创建了一个数值数组。
也可以直接在前面板中创建数组和相应的控制对象,然它们复制或者拖曳到流程图中,创建对应的常数。
还有很多在流程图中创建和初始化数组的方法,有些功能函数也可以生成数组。
3.2.2数组控制对象、常数对象和显示对象通过把数组与数值、布尔数、字符串或者簇组合在一起,可以在前面板和流程图中创建任何一种控制对象、常数对象和显示对象。
LabVIEW编程与项目开发实用教程 第6章 LabVIEW高级编程
图6-4 公式节点输入/输出端子对应,左图正确/右图错误
6.1.2 公式
在函数数学公式与脚本选板中公式节点 ,见图6-5。
当把公式节点放置到程序框图上时,系统会自动弹出“配置公式”对 话框,见图6-6。在对话框中输入公式后,若对话框右上方的方块显示为 绿色时,则表明系统识别了输入的函数。当出现错误或非法公式时,对 话框右上方的方块显示为灰色,表明系统不识别。
图 6-1 公式节点选板
图 6-5 脚本与公式选板
与创建循环的方法类似,用户从结构选板中选择公式节点,用鼠标 在程序框图上任意位置拖放任意大小的公式节点。公式节点是一个大小 可变的方框,利用它可直接在程序框图中输入数学公式,如图6-3所示。
在程序框图上输入数学公式或类似于C语言的表达式,可以使用的函 数如下:abs、acos、acosh、asin、asinh、atan、atan2、atanh、ceil、cos 、cosh、cot、csc、exp、expm1、floor、getexp、getman、int、intrz、ln、 lnp1、log、log2、max、min、mod、pow、rand、rem、sec、sign、sin、 sinc、sinh、sqrt、tan和tanh等。
LabVIEW通过对象标签将局部变量和 前面板对象相关联,因此必须用描述性 的自带标签对前面板控件和显示件进行 标注,如图6-11中对象标签“字符串”、 “数值”等。
2.局部变量使用方法
(1)使用局部变量可对前面板控件进行 读/写。 局部变量有读和写两种属性。当一个局部 变量为读属性时,说明可以从该局部变量 中读取数据。相反,当其为写属性时则可 以给该变量赋值。右键单击从弹出菜单上 选 转换为写入 或 转换为读取。
1.全局变量创建
03-labview数组、簇与、曲线图与结构体
Bundle By Name
Cluster Functions
Unbundle
Unbundle By Name
Unbundled cluster in the diagram
Error Cluster
Conditional Terminal
Loops
While Loops
Have Iteration Terminal Always Run at least Once Run According to Conditional Terminal
Case Structure
Case Structure
选择端口(selector terminal)
有一个或多个子框架( subdiagrams/ cases), 每次执行结构体时会且仅会执行其 中的一个框架. 进入选择端口(selector terminal)的值决定了 执行哪个子框架。选择端口可接收boolean, string, numeric, enumerated 或ring型数据。 Right-click 结构体边框可添加或减少子框架、 改变子框架的顺序 。 用Labeling tool 可修改每个 case selector label 及该子框架执行的条件
改?
3. build Array函数的运行结果有何特点?
思考题
文件夹”02-ArrayClusterStructureChartGraph“
1.
2. 3. 4.
5.
6. 7. 8.
一个三维3*4*5数组(3页4行5列)与一个二维4*3数组连至Build Array函 数的两个输入端口,其输出端口的数组大小是多少?Build Array函数的各 输入端口可接收不同维数的数组,允许的最大维数差值是多少?(参看例 程01与02) △ 在例程03中,能否将“Cluster 2”端口与”Cluster”端口相连?为什么? △ 在例程04-1中,将”millisecond delay” 的值改为5000,然后运行VI。请问: 在按下stop按钮后,VI为何不能马上结束运行? △ 在例程05中,如果将框图程序中左侧的”random number (0-1)”函数用一个 一维数组常量或控制型数组端口来替换,最外层For Loop输出端口中获得 的数组是多少维? △ 参看例程09-1,09-2与10,了解LabVIEW中Waveform Chart, Waveform Graph, XY Graph三种控件可接收 的数据类型及其区别。在它们中选择适 当的一种画出函数x^2+y^2=4的图形。 在例程13中,为什么不出现想要的运行结果? △ 看例程16-1, 16-2, 16-3, 16-4,进一步理解数据流(dataflow)的概念。 参看例程18-1与18-2, 体会Formula Node的优点。
LabVIEW(十):数组和簇
LabVIEW(⼗):数组和簇★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★⼀、数组1、创建数组(1)、前⾯板右键>“数组、矩阵与簇”>数组。
(2)、前⾯板右键>(选择要添加的数组数据类型,⽐如创建数值数组)数值>将“数值输⼊控件”拖⼊数组中。
(3)、选中数组右键>表⽰法>”DBL(双精度)”或“I32(长整型)”等,根据需要修改。
2、查看数组⼤⼩:(前⽂已有赘述)选中索引框右键>⾼级>显⽰最后元素3、改变数组的维度选中索引框>“添加维度”或“删除维度”4、数组的初始化将数组的“数值输⼊控件”往下拖拉以显⽰更多元素,在输⼊控件中填⼊数值。
初始化完毕。
5、“数组⼤⼩”函数:返回数组每个维度中元素的个数程序框图右键>数组>数组⼤⼩>为“数组⼤⼩”创建显⽰控件>连接需要获得数组⼤⼩的数组。
6、“创建数组”函数:连接多个数组或向N维数组添加元素。
(1)、程序框图右键>数组>创建数组(2)、将“创建数组”向上/下拖动可显⽰更多输⼊端。
也即:选中“创建数组”右键>”添加输⼊”或”删除输⼊”。
(3)、可输⼊单个“数值输⼊控件”(在前⾯板中添加),也可以输⼊数组。
7、添加的数组:“创建数组”创建的显⽰控件。
(1)、选中“创建数组”右键>(勾选)连接输⼊:两个N维的数组连接之后仍是N维数组。
(2)、选中“创建数组”右键>(未勾选)连接输⼊:两个N维的数组连接之后是2N维数组。
8、“数组插⼊”函数:在n维数组中索引指定的位置插⼊元素或⼦数组。
(1)、程序框图右键>数组>数组插⼊。
(2)、将“数组插⼊”向上/下拖动可显⽰更多输⼊端。
但不像创建数组那样有快捷菜单。
(3)、要添加索引的位置:“数组插⼊”右键>创建>常量。
可省略此项,省略该项则添加到数组末尾。
LabVIEW前面板控件介绍
前面板控件位于前面板控件选板上的输入控件和显示控件可用于创建前面板。
控件的种类有:数值控件(如滑动杆和旋钮)、图形、图表、布尔控件(如按钮和开关)、字符串、路径、数组、簇、列表框、树形控件、表格、下拉列表控件、枚举控件和容器控件等等。
控件样式前面板控件有新式、经典和系统三种样式。
选择文件»VI属性,从类别列表中选择编辑器选项改变控件的样式。
然后右键单击接线端,从快捷菜单中选择创建»输入控件或创建»显示控件,创建出的控件的样式就会产生相应的改变。
选择工具»选项,从类别列表中选择前面板,可改变控件样式。
此后,如通过右键单击接线端再从快捷菜单中选择创建»输入控件或创建»显示控件而创建控件时,新建控件的样式就会产生相应的改变。
注:不能自定义对话框旋转控件、滑动杆控件、进度条或滚动条的外观,因为这些控件使用的是平台专用的绘制函数,不支持自定义。
也不能使用属性节点和调用节点自定义这些控件的外观。
新式及经典控件许多前面板对象具有高彩外观。
为了获取对象的最佳外观,显示器最低应设置为16色位。
位于新式面板上的控件也有相应的低彩对象。
经典选板上的控件适于创建在256色和16色显示器上显示的VI。
系统控件位于系统选板上的系统控件可用在用户创建的对话框中。
系统控件专为在对话框中使用而特别设计,包括下拉列表和旋转控件、数值滑动杆、进度条、滚动条、列表框、表格、字符串和路径控件、选项卡控件、树形控件、按钮、复选框、单选按钮和自动匹配父对象背景色的不透明标签。
这些控件仅在外观上与前面板控件不同,颜色与系统设置的颜色一致。
系统控件的外观取决于VI运行的平台,因此在VI中创建的控件外观应与所有LabVIEW平台兼容。
在不同的平台上运行VI时,系统控件将改变其颜色和外观,与该平台的标准对话框控件相匹配。
在LabVIEW的不同选板中可找到相似的控件。
例如,系统选板上的取消按钮与布尔选板上的取消按钮相似。
LabVIEW课件-[5_数组、簇、波形数据]
将数组变为簇(或者簇变为数组)很方便,其操 作如下图:
例如,前面板上有一个多按钮的簇,你希望颠倒这些按钮
值的序。好了,Reverse 1D Array功能正好可用,但是它 仅可用于数组。这没关系,你可以使用功能Cluster to Array将簇转换为数组,使用Reverse 1D Array切换开关的 值,最后再利用Array to Claster 变换回簇。
String Tsinghua
23
簇
流程图
练习
24
用名称捆绑与分解簇
有时你并不需要汇集或分解整个簇,而仅仅需要对其中某些
元素操作。这时你可以用名称来捆绑与分解簇。
在Cluster 工具模板中除了Bundle Unbundle 功能外,还提
供有Bundle By Name和Unbundle By Name功能 。
都相等的数组
初始化一维数组
初始化三维数组:如果所有的维长度输入都是0,该函
数会创建一个具有指定数据类型和维数的空数组
8
数组功能函数
数组大小,Array Size函数:返回输入数
组中的元素个数
9
数组功能函数
数组子集(Array Subset):选取
数组或者矩阵的某个部分 。
该函数可以返回从某个指针开始的部分数组,并包括了 长度元素。下图显示了一些数组子集的例子,注意,数 组索引从0开始。
6
数组功能函数 利用流程图中的Fra bibliotek数对象的值创建和初
始化数组的两种方法 (Build Array?)
左侧的方法是,将5个字符串常数放入一个一维字符串
LabVIEW中的数据结构
只要将簇框添加到前面板(如下图所示)上,再将数据对象或元素(可以是布尔、枚举、数组、数值、字符串、 路径以及簇控件)拖拽至框内,即可在前面板上创建簇输入控件或显示控件。 另外,通过拖拽鼠标游标,可以改变簇框的尺寸。
图 9. 创建簇输入控件 图 10 中的示例是一个含有三个输入控件的簇: 一个字符串、一个布尔开关和一个数值控件。
组装簇
“捆绑”函数可以将独立的元素组装成簇,或者改变现有簇中的个别元素值,而无需更新所有元素的值。 使用位 置调整工具可重新设定捆绑函数的大小,或者可在元素输入端上点击右键后选择快捷菜单中的“添加输入”。
图 11. 在程序框图中组装一个簇
修改簇
若要连接簇的输入,则只需连接需要修改的元素。以图 12 为例,其中有三个控件。
数组输出
当自动索引一个数组的输出隧道时,每一次循环输出一个新元素到数组。因此,自动索引输出数组的大小等于 循环的次数。 此时,连接输出隧道和数组显示控件的连线将变粗,表明它将输出一个数组,且输出隧道中将包含一个方框。
图 7. 自动索引输出 在循环隧道上点击右键,并在快捷菜单中的选择“启用索引”或“禁用索引”,即可启用或关闭自动索引功能。 While 循环的自动索引功能默认是关闭的。 举例来说,若要隧道仅输出最后一次循环的值,则需要停用自动索引。
(1)索引框 | (2)元素框 图 1. 数值数组控件
创建数组输入控件和显示控件
如图 2 所示,在前面板上添加一个数组框,然后将数据对象或元素(如数值或字符串控件)拖入其中,即可 添加输入控件或显示控件的数组。
图 2. 将数值控件拖入数组框内 如试图将一个无效的输入或显示控件拖入数组框中,则无法实现该操作。 在程序框图中使用数组之前,必须在数组框中插入对象。否则数组的接线端将为空,不会产生任何相关的数据 类型。
LabVIEW虚拟仪器设计教程第6章 变量、数组、簇和矩阵
写入局部变量
读取局部变量
局部变量应用举例
利用局部变量实现一个布尔开关同时控制两个While循环
该实例通过典型的并行循环结构,使用布尔开关局部变量读取开关的值,可 同时停止两个循环。由于布尔控件的“单击时触发”机械动作与局部变量不兼容, 因此通过另一个局部写入变量将开关值重臵为“开”,仿真“单击时触发”机械 动作。
全局变量应用举例 1. 将第一个VI连续产生的随机数传递到第二个VI中并在波形图表中显示 2. 第二个VI的停止按钮同时控制两个VI的运行
全局变量前面板对象
第一个VI的程序框图
第二个VI的程序框图及前面板
6.1.3 局部变量和全局变量使用注意事项
(1)局部变量和全局变量的初始化 如需对一个局部或全局变量进行初始化,应在VI运行前确认变量包含的是已知 的数据值,否则变量可能含有导致VI发生错误行为的数据。如变量的初始值基于一 个计算结果,则应确保LabVIEW在读取该变量前先将初始值写入变量。 (2)竞争状态 两段或两段以上代码并行改变一个共享资源的值时,就发生了竞争状态。发生 竞争时VI的运行结果取决于共享变量先执行哪个动作,竞争状态会引起不可预见性。 当有多于一个操作对同样数据的值进行更新时可能导致竞争状态,因此在使用局部 变量和全局变量时应避免竞争状态。 (3)使用局部变量和全局变量时应考虑内存 使用局部变量和全局变量通常会使用更多的内存,最终导致执行速度更慢,因 此需要考虑该问题。
6.2 数 组
数组是相同类型元素的集合,由元素和维度组成。元素是组成数组的数据,维 度是数组的长度、高度或深度。数组可以是一维或多维的,在内存允许的情况下每 一维度可有多达231-1个元素。对一组相似的数据进行操作并重复计算时,可考虑 使用数组。
数组和簇
6.必须按照簇顺序访问簇中元素的是下面那个 VI
A 解除捆绑
B 按名称解除捆绑
5
4.如果有两个一维数组,维度分别是 4,8,将其以索引的方式输入 For 循环,For 循环的计 数端为 5,那么 For 循环实际循环次数是多少
5.判断: 簇不可以进行数值运算()
簇元素的顺序和该元素的放置位置有关()
使用簇可以解决子 VI 所需的连线板接线端数目() 簇元素类似文本编程语言中的结构体()
图2.2B修改错误簇常量
可以使用按名称捆绑来实现对簇的修改。与捆绑基于簇顺序不同,按名称捆 绑是以自身标签为引用,输入的个数不需要与输出簇中的个数匹配。比如图2.2B 中只想修改错误簇中的代码一项,就可以使用如图2.3方式。
3
LabVIEW 初级教程 数 组 和 簇
图2.3 按名称捆绑修改簇 分解簇:
LabVIEW 初级教程
数
组
练习:
和
1. 下列哪些数据类型可以作为数组的元素:
簇
A. 数值 B 布尔 C 路径 D 字符串 E 波形 F 簇
2. 对于一维数组[1,2,3,4,5,6,7],如果该数组前的索引号是 3,那么显示的第一个
元素是
A.1 B. 3 C. 4 D. 7
3.如果有两个一维数组,维度分别是 4,8,将其以索引的方式输入 For 循环,For 循环的计 数端没有连线,那么 For 循环实际循环次数是多少
如果对连接到For 循环输入接线端的数组启用自动索引, LabVIEW 会将计数接线
端设置为数组的大小,因此您无需再连接计数接线端。 因为For 循环一次可以处理数组
中的一个元素,所以,在默认情况下, LabVIEW 对连接到For 循环的每个数组均启用自
labview 数组、簇和图形
第三章 数据类型:数组、簇和波形3.1 概述数组是同类型元素的集合。
一个数组可以是一维或者多维,如果必要,每维最多可有231-1个元素。
可以通过数组索引访问其中的每个元素。
索引的范围是0到n – 1,其中n是数组中元素的个数。
图3-1所显示的是由数值构成的一维数组。
注意第一个元素的索引号为0,第二个是1,依此类推。
数组的元素可以是数据、字符串等,但所有元素的数据类型必须一致。
图3-1 数组示意图簇(Cluster)是另一种数据类型,它的元素可以是不同类型的数据。
它类似于C语言中的stuct。
使用簇可以把分布在流程图中各个位置的数据元素组合起来,这样可以减少连线的拥挤程度。
减少子VI的连接端子的数量。
波形(Waveform)可以理解为一种簇的变形,它不能算是一种有普遍意义的数据类型,但非常实用。
3.2 数组的创建及自动索引3.2.1 创建数组一般说来,创建一个数组有两件事要做,首先要建一个数组的“壳”(shell),然后在这个壳中置入数组元素(数或字符串等)。
如果需要用一个数组作为程序的数据源,可以选择Functions»Array»Array Constant,将它放置在流程图中。
然后再在数组框中放置数值常量、布尔数还是字符串常量。
下图显示了在数组框放入字符串常量数组的例子。
左边是一个数组壳,中间的图上已经置入了字符串元素,右边的图反映了数组的第0个元素为:”ABC”,后两个元素均为空。
图3-1 数组的创建在前面板中创建数组的方法是,从Controls模板中选择Array & Cluster,把数组放置在前面板中,然后选择一个对象(例如数值常量)插入到数组框中。
这样就创建了一个数值数组。
也可以直接在前面板中创建数组和相应的控制对象,然后将它们复制或者拖曳到流程图中,创建对应的常数。
还有很多在流程图中创建和初始化数组的方法,有些功能函数也可以生成数组。
3.2.2 数组控制对象、常数对象和显示对象通过把数组与数值、布尔数、字符串或者簇组合在一起,可以在前面板和流程图中创建任何一种控制对象、常数对象和显示对象。
11.用字符串_数组_和簇将数据分组
用字符串、数组和簇将数据分组字符串、数组和簇对可将数据分组。
字符串将ASCII 字符序列归为一组。
数组将相同类型的数据元素归为一组。
簇将不同类型的数据元素归为一组。
矩阵数据类型使数学建模更为简单。
矩阵可按行或列对数学运算中的实数或复数标量数据分组,如线性代数运算。
关于使用字符串组合数据的范例,见labview\examples\general 目录。
查找相关范例关于使用数组和簇组合数据的范例,见labview\examples\general 目录。
查找相关范例概念通过本书学习LabVIEW 的概念。
关于使用LabVIEW 的分步指导见详解。
用字符串将数据分组字符串是一组可显示或不可显示的ASCII 字符。
字符串提供了一个独立于操作平台的信息和数据格式。
常用的字符串操作包括:●创建简单的文本信息。
●发送文本命令至仪器,以ASCII 或二进制字符串的形式返回数据,然后转换为数值,从而控制仪器。
●将数值数据存储到磁盘。
如需将数值数据保存到ASCII 文件中,须在数值数据写入磁盘文件前将其转换为字符串。
●用对话框指示或提示用户。
在前面板上,字符串以表格、文本输入框和标签的形式出现。
LabVIEW 提供了用于对字符串进行操作的内置VI 和函数,可对字符串进行格式化、解析字符串等编辑操作。
关于ASCII 码和转换函数的详细信息,见ASCII 码部分。
前面板上的字符串 字符串输入控件和显示控件可作为文本输入框和标签。
字符串显示类型右键单击前面板上的字符串输入控件或显示控件,从下表所示的显示类型中选择。
该表还提供了每个显示类型的范例。
表格表格控件用于在前面板上创建表格。
行与列交叉形成单元格,表格的每个单元格都是一个字符串。
因此,表格表示一个二维字符串数组。
下图显示了一个表格及其组成部分。
(Windows) 如需查看相关主题,单击本窗口上方工具栏左侧的定位按钮。
LabVIEW 帮助的目录栏中将高亮显示该主题,以便查看相关内容。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
a) 如果进行运算的两个数组大小完全一样,则将两个数组中索 引相同的元素进行运算形成一个新的数组。 b) 若大小不一样,则忽略较大数组多出来的部分。 c) 如果一个数组和一个数值进行运算,则数组的每个元素都和 该数值进行运算从而输出一个新的数组。
13
6.2 数组(Array)
6.2.3 数组函数
6.3.1 簇的创建
通过簇控件实现的温度显示器
17
6.3 簇(Cluster) ——LabVIEW中的结构体变量
改变簇内部元素控件的索引
18
6.3 簇(Cluster) ——LabVIEW中的结构体变量
6.3.2 簇操作函数
19
6.3 簇(Cluster) ——LabVIEW中的结构体变量
第6章 字符串、数组、簇和矩阵
1
本章内容
6.1 字符串(String) 6.2 数组(Array) 6.3 簇(Cluster)——LabVIEW中的结构体 变量 6.4 矩阵(Matrix)
2
6.1 字符串(String)
字符串在LabVIEW编程中会频繁的用到,因此 LabVIEW封装了功能丰富的字符串函数用于字 符串的处理,用户不需要再像C语言中一样为 字符串的操作编写繁琐的程序。
30
小试身手
2. 对字符串进行加密,规则是每个字母后移5 位,例如A变为F,b变为g,x变为c,y变为d…
31
小试身手
3. 产生一个3×3的整数随机数数组,随机数要 在0到100之间,然后找出数组的鞍点,即该位 置上的元素在该行上最大,在该列上最小,也 可能没有鞍点。如下图所示:
32
小试身手
27
6.4 矩阵(Matrix)
矩阵乘法举例
28
6.4 矩阵(Matrix)
LabVIEW 8还提供了丰 富的线性代数运算函 数,它们位于 Functions Palette的 mathematics -> liner algebra…面板 下
29
小试身手
1. 为第5章的习题2连续温度采集监测添加报警 信息,如下图所示,当报警发生时输出报警信 息,例如“温度超限!当前温度78.23℃”,正常 情况下输出空字符串。
10
6.2 数组(Array)
6.2.1 数组控件
数组控件
11
6.2 数组(Array)
6.2.1 数组控件
12
6.2 数组(Array)
6.2.2 数组之间的算术运算
LabVIEW一个非常大的优势就是它可以根据输入 数据的类型判断算子的运算方法,即自动实现多态
对于加减乘除,数组之间的运算满足下面的规则:
6
6.1 字符串(String)
6.1.2 表格和树形控件举例
7
6.1 字符串(String)
6.1.3 字符串函数
8
6.1 字符串(String)
6.1.3 字符串函数举例
基本字符串函数示例
9
6.1 字符串(String)
6.1.3 字符串函数举例
数据数组/电子表格字符串转换函数示例
1、解包函数(Unbundle)
该函数将簇解开从而获得簇中各个元素的值。缺 省情况下,它会根据输入的簇自动调整输出端子 的数目和数据类型,并按照簇内部元素索引的顺 序排列。
20
6.3 簇(Cluster) ——LabVIEW中的结构体变量
2、打包函数(Bundle)
该函数用来为Cluster中各元素赋值。
4. 利用簇模拟汽车控 制,如右图所示,控制 面板可以对显示面板中 的参量进行控制。油门 控制转速,转速=油门 *100,档位控制时速, 时速=档位*40,油量 随VI运行时间减少。
33
24
6.3 簇(Cluster) ——LabVIEW中的结构体变量
6.3.3 error in 和error out簇
LabVIEW利用error in 和error out这两个预定义簇 来作为传递错误信息的载体。
25
6.3 簇(Cluster) ——LabVIEW中的结构体变量
6.3.3 error in 和error out簇
14
6.2 数组(Array)
6.2.3 数组函数举例
用Array Size 函数获得三维数组大小示例
15
6.3 簇(Cluster) ——LabVIEW中的结构体变量
簇是LabVIEW中比较独特的一个概念,但实 际上它就对应于C语言等文本编程语言中的结 构体变量。
16
6.3 簇(Cluster) ——LabVIEW中的结构体变量
21
6.3 簇(Cluster) ——LabVIEW中的结构体变量
3、按元素名称解包函数(Unbundle By Name)
普通的解包函数解包后只有将鼠标移到输出端子 上才能看到输出元素的名称,程序的可读性不高。 该函数可以根据名称有选择的输出簇内部元素。 其中元素名称就是指元素的Label。
字符串控件包括输入控件、显示控件和下拉框。
3
6.1 字符串(String)
4
6.1 字符串(String)
6.1.1 字符串控件
字符串输入控件一般被用作文本输入框,而字符串 显示控件一般被用作文本显示框。
5
Hale Waihona Puke 6.1 字符串(String)
6.1.2 表格和树形控件
表格(Table)和树形控件在Controls Palette的 Modern->List & Table…面板下。 表格实际上就是一个字符串组成的二维数组。 树形控件以树的形式显示多层内容,Windows的资 源管理器就是用树形控件来显示文件目录的。
对于系统错误,code都有预先的定义,可以通过选 择Help->Explain Error…打开错误解释框来查找 该错误代码的更详细的解释。
26
6.4 矩阵(Matrix)
LabVIEW 8之前的版本中只能通过二维数组来 实现矩阵的操作。但是数组的运算方法和矩阵 的运算方法有很大不同,譬如两个数组相乘是 直接将相同索引的数组元素相乘,而矩阵的相 乘必须按照线性代数中规定的方法相乘,因此 用数组实现矩阵运算是非常麻烦的。LabVIEW 8最新加入了对矩阵的支持,从而使矩阵的运 算变得非常简单。
22
6.3 簇(Cluster) ——LabVIEW中的结构体变量
4、按元素名称打包函数(Unbundle By Name)
该函数通过簇内部元素名称来给簇内部元素赋值。 参考簇是必须的,该函数通过参考簇来获得元素 名称。
23
6.3 簇(Cluster) ——LabVIEW中的结构体变量
簇操作函数使用示例