第三章 数组、簇和波形

合集下载

Labview 第三章 数据类型:数组、簇和波形

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数组控制对象、常数对象和显示对象通过把数组与数值、布尔数、字符串或者簇组合在一起,可以在前面板和流程图中创建任何一种控制对象、常数对象和显示对象。

03-labview数组、簇与、曲线图与结构体

03-labview数组、簇与、曲线图与结构体

function “Tick Count (ms)”
函数 “Tick Count (ms)”的功能:输出毫 秒计数器的当前值 2^32-1(ms)=1193.04647083…小时
Sequence Structures
In the Execution Control subpalette of Functions palette Executes diagrams sequentially Right-click to add new frame
子框架名称(case selector label)
Case Structure
True The value is valid. Square Root
输入通道(input tunnel)
输出通道(output tunnel)
Case Structure
对于流入selector terminal的所有可能值,均要 有相应的处理子框架 当某个子框架建立了输入通道后,也即给所有 的子框架建立了一个输入通道,其它的子框架 均可从该输入通道中获得数据。 给某个子框架建立了输出通道后,也即对所有 的子框架建立了一个输出通道,必须要在其它 的全部子框架中对输出通道进行赋值
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

数据结构(C语言版)_第3章 串与数组

数据结构(C语言版)_第3章 串与数组
typedef struct lnode {
char data; struct lnode *next;
}lstring;
3.3.3 串的存储结构——链式存储结构
当结点大小>1时,可以采用块链结构。
#define CHUNKSIZE 100
/*可由用户定义块的大小*/
typedef struct Chunk
第三章 串与数组
本章要点
➢字符串的基本概念与基本运算 ➢字符串的存储和基本运算的实现 ➢数组的概念和基本运算 ➢数组的存储结构 ➢特殊矩阵的压缩存储及运算 ➢广义表的概念及相关术语 ➢广义表的存储形式
3.1 “文学研究助手”案例导入
“文学研究助手”引例:请从下面的英文文章里,统计其中 good出现的次数和位置,并查找单词the所在的行号,该行中出 现的次数以及在该行中的相应位置。
3.4.1 数组的定义
数组是n个具有相同类型的数据元素构成的有限序列,数组 中的数据是按顺序存储在一块地址连续的存储单元中。
数组中的每一个数据通常称为数组元素,数组元素用下标 区分,其中下标的个数由数组的维数决定。
若线性表中的数据元素为非结构的简单元素,则称为一维 数组,又称为向量;若一维数组中的数据元素又是一维数组结 构,则称为二维数组;依次类推,若二维数组中的元素又是一 个一维数组结构,则称作三维数组。
3.3.4 串的基本操作的实现算法
第二种顺序存储方式下几种基本操作的算法
算法1:串连接操作 算法2:串比较操作 算法3:取子串操作 算法4:串插入操作 算法5:串删除操作 算法6:串置换函数 算法7:子串定位操作
3.3.5 串的应用
【例3-1】设计一个算法求串s中出现的第1个最长重复子串 及其位置。

基于labview的数组、簇和波形

基于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程序设计》章节思考与练习题含答案(大学期末复习资料)

《虚拟仪器与LabVIEW程序设计》章节思考与练习题含答案(大学期末复习资料)

第1章虚拟仪器概述1.测试测量仪器发展至今经过了那些阶段?答:经历了4个阶段,即:第一代模拟式仪器(或指针式仪器)、第二代数字式仪器、第三代智能仪器、第四代虚拟仪器。

2.什么是虚拟仪器,它有哪些特点?答:虚拟仪器是指在以计算机为核心的硬件平台上,其功能由用户设计和定义,具有虚拟仪器面板,其测试功能由测试软件实现的一种计算机仪器系统。

特点:虚拟含义主要有两点:1、仪器面板是虚拟的,通过调用控件选板中的控件实现3.简述虚拟仪器的系统组成?答:虚拟仪器系统由硬件平台和软件平台两大部分完成:硬件平台:计算机、I/O接口设备;软件平台:4.简述虚拟仪器的软件层次结构?答:测试管理层:用户及仪器设备等管理。

应用程序开发层:用户根据仪器功能需求开发设计的虚拟仪器程序。

仪器驱动层:完成对特定仪器的控制和通信的程序集合。

I/O总线驱动层:完成对仪器寄存器进行直接存储数据操作,并为仪器设备与仪器驱动程序提供信息传递的底层软件。

第2章一个简单VI的设计1.输入两个数,求两个数的和差运算,并显示结果。

2.程序运行中,用旋钮控件改变图形曲线的颜色。

建立波形图表的属性节点,改为可写,并指定为曲线Plot的颜色Color属性。

第3章几种常用的程序结构1.创建一个VI产生100个随机数,求其最小值和平均值。

2.创建一个VI,每秒显示一个0到1之间的随机数。

同时,计算并显示产生的最后四个随机数的平均值。

只有产生4个数以后才显示平均值,否则显示0。

每次随机数大于0.5时,使用Beep.vi产生蜂鸣声。

3.求X的立方和(使用For和While循环)。

4.编程求1000内的“完数”。

“完数”指一个数恰好等于它本身的因子之和。

例如28=14+7+4+2+1。

5.创建一个VI ,实现加、减、乘、除四种运算方式。

6.编写一个程序测试输入以下字符所用的时间:LabVIEW is a graphical programming language.7.使用公式节点创建VI ,完成下面公式计算,并将结果显示在同一个屏幕上。

lABVIEW关于数据类型的编辑:数组、簇和波形

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数组控制对象、常数对象和显示对象通过把数组与数值、布尔数、字符串或者簇组合在一起,可以在前面板和流程图中创建任何一种控制对象、常数对象和显示对象。

虚拟仪器第3章-构建程序框图要点

虚拟仪器第3章-构建程序框图要点
尽量避免程序框图扩展到屏幕显示范围以外。 如果程序中某些部分能在其它程序中重用,或者是某
些部分能划分为一个逻辑上的单元,就创建一个子VI。 整齐清晰的排列连线,以免造成读程序的困难。 按住<Ctrl>键用选择工具在程序框图中划出一块面积,
可以解决部分程序框图过于拥挤的问题。 为了节省程序框图空间,不必为函数和子VI显示标签,
包括算术运算符、数值类型转换函数、三角函数、对数函数、 数值 复数函数、数值常数、数据操作函数、与信号调理有关的量值
转换VI等。
文件I/O
包括对各种格式文件读写的函数和VI,对文件及路径进行操作 的各种函数和VI。
布尔 包括逻辑运算符、布尔型常数、布尔量与数值的转换函数等。
3-2 函数选板
图标
名称 字符串
第3章 构建程序框图
程序框图里的对象 函数选板 基本数据类型 程序的层次结构 Express VI 多态 程序框图设计原则 修复程序创建中的错误 程序调试
唐山学院测控中心 (C) 2008
3-1 程序框图里的对象
3-1-1 节点 3-1-2 接线端 3-1-3 常量 3-1-4 连线
3-1-1 节点
函数 函数是完成LabVIEW程序功能的最基本成员,它相当于文
本编程语言对较少。
子VI 用于另一个VI中的VI叫子VI,这实际就是供其它程序调用
的子程序。
Express VI Express VI是一类特殊子VI,可以通过对话框配

3-4 程序的层次结构
3-4-1 层次结构窗口
帮助我们了解软件 层次结构的一个图形工 具是LabVIEW的层次结 构窗口,层次结构窗口 通过显示VI的调用与被 调用来表达VI的从属关 系。

虚拟仪器 LABVIEW 第3章3-1

虚拟仪器  LABVIEW  第3章3-1

第2页
《虚拟仪器设计》
在同一硬件平台上,调用不同的测试软件就可构 成不同功能的虚拟仪器。例如:
对采集的数据通过测试软件进行标定,并在时间轴上 把对应的数据点显示出来,就构成了一台数字示波器; 对采集的数据利用软件进行FFT变换,并把各频率分 量幅值在频率轴上显示出来,则构成一台频谱分析仪 等。 通过信号分析与处理可求取信号的各种特征值,如峰 值、真有效值、均值、均方值、方差、标准差及频谱 函数、相关函数、概率密度函数等,可构成各种测试 仪器。
信号名称
图3-9 Simulate Signal.vi的参数设定对话框
第23页
《虚拟仪器设计》
(1)信号特性
首先选择周期信号类型和能够附加噪声信号的类型, 分别见图3-10和图3-11,然后设定信号的频率、幅值、 初始相角和直流偏置,噪声的均值、标准偏差等。
第24页
《虚拟仪器设计》
(2)采样时间特性和时间戳 采样时间特性选择:
《虚拟仪器设计》
虚拟仪器测试功能软件的主要内容
① 时域分析:测量时采集到的信号是一个时域波形。 ② 频域分析:测量时直接采集到的信号是时域波形,由 于时域分析的局限性,所以往往把问题转换到频域来处 理。基本方法是FFT。 ③ 相关分析:信号的相关分析是时(延)域中进行的一 种信号分析处理方法。 ④ 幅值域分析:信号的幅值域分析首先是对随机信号进 行统计分析,可以求得信号的均值、均方值、方差、概 率密度函数等。
在测试工程应用中还有这样一种情形:测量的信号是若 干个正弦信号或余弦信号的叠加,每个正弦信号或余弦 信号具有不同的频率、幅值和相位。
仿真信号发生器Simulate Signal.vi不能产生多个周期信 号叠加的波形,如果要实现这一功能,需要在每个单一 周期信号产生以后再进行叠加运算。

(完整版)《LabVEW编程及虚拟仪器设计》课程说明

(完整版)《LabVEW编程及虚拟仪器设计》课程说明

《LabVIEW编程及虚拟仪器设计》课程说明一、概要课程编号:80220142开设学期:春季对象:全校研究生人数:30二、课程内容虚拟仪器是当前仪器与测量发展的一个重要方向,它为各学科提供了一个通用的测量及仪器的设计研究环境,同时它也是学生多门理论课程融合、理论与实践结合的一个很好的环节。

LabVIEW是当前用于数据采集、信号处理和虚拟仪器开发的一个标准工具。

本课程将介绍虚拟仪器的概况,LabVIEW语言、数据采集和虚拟仪器设计。

课程2/3的时间用来在教师指导下完成一到两个虚拟仪器或数据采集系统的设计。

学生所完成的设计成果及技术文档是评定成绩的主要依据。

鼓励学生在设计过程中的创造性工作。

该课程的教学在虚拟仪器实验室进行,每个实验组都配备NI公司的数据采集卡、LabVIEW开发环境及必要的外部设备。

学生可以带自选的设计选题参加。

课程面向全校各系学生开设。

选修该课的学生应当有计算机、数据采集、电工电子和信号处理以及各自研究方向有关测试技术的的基本知识。

三、教学大纲第一章虚拟仪器及LabVIEW入门1.1虚拟仪器概述1.2LabVIEW是什么?1.3LabVIEW的运行机制1.4LabVIEW的初步操作1.5图表(Chart)入门第二章程序结构2.1循环结构2.2分支结构:Case2.3顺序结构和公式节点第三章数据类型:数组、簇和波形(Waveform)3.1数组和簇3.2数组的创建及自动索引3.3数组功能函数3.4什么是多态化(Polymorphism)?3.5簇3.6波形(Waveform)类型第四章图形显示4.1概述4.2Graph控件4.3Chart的独有控件4.4XY图形控件(XY Graph)4.5强度图形控件(Intensity Graph)4.6数字波形图控件(Digital Waveform Graph)4.73D图形显示控件(3D Graph)第五章字符串和文件I/O5.1字符串5.2文件的输入/输出(I/O)5.3数据记录文件(datalog file)第六章数据采集6.1概述6.2模入(Analog Input)6.3模出(Analog Output)6.4采样注意事项6.5附:PCI-MIO-16E-4数据采集卡简介第七章信号分析与处理7.1概述7.2信号的产生7.3标准频率7.4数字信号处理第八章LabVIEW程序设计技巧8.1局部变量8.2全局变量8.3属性节点8.4程序流控制8.5触发与同步第九章数字IO和计数器9.1基本知识9.2数字I/O简介9.3计数器第十章测量专题四、上课及实验地点:西主楼1-301五、实验室环境共17组,每组提供:计算机一台,其中配有NI公司MIO-16E-4采集卡一块,LabVIEW等语言。

LabVIEW虚拟仪器技术第3章-基本数据类型

LabVIEW虚拟仪器技术第3章-基本数据类型
布尔量只有两种状态,要么真,要么假。
布尔控件
布尔串控件,位于 “控件”选板->“新式”>“布尔”中。
布尔函数
对布尔量实施操 作的函数称为布尔函 数,位于“函数”选 板->“编程”->“布 尔”中。
按钮与开关
布尔输入控件分为按钮型布尔控件和开关型 布尔控件。它们都是布尔输入控件,但物理意义 有所区别。
单位标签可以在快捷菜单->显示项->单位标 签从而显示,可自由输入物理单位符号,如时间 “h”,“s”,长度“m”等。也可于单位标签上 右键->创建单位字符串进行单位选择。
LabVIEW程序可实现不同单位的自动转换, 还可以通过运算自动处理组合单位。
数值控件的基数与单位标签
数值控件的属性
在快捷菜单上选择“属性”项,即可打开属 性对话框。属性对话框由许多属性页组成,涵盖 了大量的控件属性设置信息。
我们利用控件选板所提供的各种输入控件 和显示控件就可以达到”所见即所得”的效果。
从LabVIEW数据流编程的角度看,任何数 据都必须是有源的,这个源就是输入控件或常 量。常量可以理解为特殊的输入控件。而数据 最终流向的目的地就是显示控件。
从控件本身的角度看,LabVIEW只是推荐 了控件的使用方法,而并没有绝对区分控件必 须是输入控件还是显示控件,两者之间可以相 互转化。
线型与数据类型
LabVIEW中,不同的线型代表不同的数据类型。
在LabVIEW中,数值控件的数据类型是可以 改变的。当我们使用数值控件时,需注意正确使 用数据类型,避免程序发生错误。
编写求平均数程序: 程序能否运行? 程序能否实现功能?
Result为蓝色控件,其数据类型为整型数据, 程序计算结果会被强制转换为整形数。程序能运 行,但无法正确结果。

LABVIEW编程基础 第3章 LabVIEW的数据类型

LABVIEW编程基础 第3章 LabVIEW的数据类型
在字符串控件中最常用的是字符串输入和字符串显示 两个控件。 默认情况下创建的字符串输入与显示控件是单行的, 长度固定。
字符串控件在默认情况下为正常显示状态显 示字符的一般形式,在字符串中可以直接输入回 车或空格键,系统自动根据键盘动作为字符串创 建隐藏的‘\’形式的转义控制字符。
图3-59
字符串输入与显示控件
字符串是LabVIEW中一种基本的数据类型。 路径也是一种特殊的字符串,专门用于对文件路 径的处理。 字符串型与路径子选板中共有三种对象供用户选 择:字符串输入/显示、组合框和文件路径输入/显示。
1.字符串控件
字符串控件用于输入和显示各种字符串。 右键单击字符串控件弹出的快捷菜单中,关于 定义字符串的显示方式有四种。
(2)索引数组
图3-17
索引数组函数接线端子
图3-18
使用索引数组函数索引数组中的元素和指定列或行或元素
(3)替换数组子集
图3-19
替换数组子集函数接线端子
图3-20
替换数组子集函数的使用
(4)数组插入
图3-21
数组插入函数接线端子
图3-22
数值插入函数的使用
(5)删除数组元素
图3-23
删除数组元素函数接线端子
第三章 LabVIEW的数据类型
陕西理工大学 物理与电信工程学院
1 CONTENTS
数据类型 数据运算选板 数组型数据
目 录
2 3 4
簇型数据 字符串型数据
5
1 CONTENTS
数据类型
数据运算选板
目 录
2 3 4
数组型数据
簇型数据
5
字符串型数据
3.1 数据类型

3.1.1 数值型控件

labview课件第3章

labview课件第3章

18.Interleave 1D Arrays
将输入的一维数组进行插接。首先将所有一维数组的
第0个元素按顺序放在输出数组中;再将所有一维数组的第 1个元素按顺序放在输出数组中,依次类推。如果输入数组
的长度不同,则以最小长度为准对其他数组进行截取。
【例3.16】 将3个不同长度的一维数组插接。
19.Decimate 1D Array
【例3.12】 将一维数组分成两部分。
13.Sort 1D Array 将输入的一维数组按照升序排列。
【例3.13】 将一维数组按照升序和降序分别排列。
14.Array Max & Min
返回输入任意维数组的最大值和最小值,以及它们在数组
中的位置。当数组中有多个元素同为最大值或同为最小值时, 只输出第一个值所在的位置。
3.1 数组 3.2 簇 3.3 波形 习题3
3.1 数
3.1.1 数组的创建 成,数据类型隐含在数据中。

在LabVIEW中,数组由数据类型、数据索引和数据3部分组
数组控件
数组的创建:
第一步,从Controls模板中创建数组框架;
第二步,定义数组类型:
•第一种方法:直接将面板上已有的控制
【例3.20】 将不同数据类型的元素组成一个新簇;替换
簇中的某些元素。
3、按元素名称解包函数(Unbundle By Name)
普通的解包函数解包后只有将鼠标移到输出端子上才
能看到输出元素的名称,程序的可读性不高。该函数 可以根据名称有选择的输出簇内部元素。其中元素名
称就是指元素的Label。
实现的功能与Interleave 1D Arrays节点相反。
【例3.17】 将一个一维数组分解成多个一维数组。

虚拟仪器技术 第3章

虚拟仪器技术 第3章

第3章 数组、簇和波形
图3-8 Array子模板
第3章 数组、簇和波形
1.Array Size . Array Size节点的图标如图3-9所示,节点的输入array为一 个任意维数的数组,输出size(s)返回各维的长度。若输入一维 数组,则输出为一个整数值;若输入多维数组,则输出为一个 一维数组,每个元素对应输入数组中每一维的长度。 【例3.1】 求一维数组、二维数组和三维数组的长度。 VI的前面板和程序框图如图3-10所示。
第3章 数组、簇和波形
数组、 第3章 数组、簇和波形
3.1 数组 3.2 簇 3.3 波形 习题3 习题
第3章 数组、簇和波形
数组、簇和波形是LabVIEW中三类比较复杂的数据类型。 数组是一种由同一类型数据元素组成的大小可变的集合,与其 他编程语言中的数组概念相同。簇是由混合类型数据元素组成 的大小固定的集合,相当于C语言中的结构数据类型。波形数 据是LabVIEW为数据采集和处理提供的一种专门的数据结构。 灵活运用这三种数据类型可极大地提高编程效率,简化程序代 码。
第3章 数组、簇和波形
图3-13 例3.2的前面板和程序框图
第3章 数组、簇和波形
图3-14 Replace Array Subset节点的图标
第3章 数组、簇和波形
【例3.3】 替换二维数组中的某一列元素。 VI的前面板和程序框图如图3-15所示。 4.Insert Into Array . Insert Into Array节点的图标如图3-16所示,n-dim array是任 意类型的n维数组,接入数组后会自动生成n个索引端口,完成 的功能是在index指定的位置插入n or n-1 dim array的内容。注 意,对每组n个索引端口只能连接一个。 【例3.4】 在二维数组中插入一行元素。 VI的前面板和程序框图如图3-17所示。

LabView实验教程

LabView实验教程

LabVIEW是实验室虚拟仪器集成环境(Laboratory Virtual Instrument Engineering Workbench)的简称,是美国国家仪器公司(NATIONAL INSTRUMENTS,简称NI)的创新软件产品,也是目前应用最广、发展最快、功能最强的图形化软件集成开发环境。

LabVIEW是一种图形化编程语言,又称G语言。

其编写的程序称为虚拟仪器VI(Virtual Instrument),以.VI后缀。

LabVIEW模板:◆ 工具模板(Tools Palette)◆ 控件模板(Controls Palette)◆ 功能模板(Functions Palette)VI的组成:◆ 前面板(Panel)控制(Control),指示(Indicator),修饰(Decoration)。

将前面板中的控制和指示统称为前面板对象或控件。

◆ 框图程序(Diagram Programme)节点(Node),数据连线(Wire)节点有:功能函数(Functions),结构(Structures),代码接口节点(CIN),子VI(SubVI)。

数据端口有:控制端口和指示端口,节点端口。

LabVIEW编程又称为“数据流编程”。

◆ 图标/连接端口(Icon/Terminal)把VI作为一个SubVI在其它VI中调用。

常用术语:SubVI 子VI Chart 实时趋势图LLBs VI库Graph 事后记录图Objects 对象Functions 功能Panel 前面板Structures 结构Block Diagram 框图程序Cluster 簇Control 控制Bundle 打包Indicator 指示Unbundle 解包Control和Indicator 前面板对象或控件RefNum 枚举,标志号Palette 模板Local Variable 本地变量Functions Palette 功能模板Global Variable 全局变量Controls Palette 控件模板Constant 常量Tools Palette 工具模板Disable Indexing 无索引Terminal 端口Enable Indexing 有索引Wires 数据连线Read Local 本地读Bad Wires 错误数据连线Write Local 本地写Node 节点Read Global 全局读Attribute Node Write Global 全局写Property Node 属性节点Legend 图例Frame 框架Cursor 光标Channel 框架通道Bounds 边界范围Index 索引Data Acqisition(DAQ) 数据采集Shift Register 移位寄存器Label 标签运行VI1.运行VI(Run)2.连续运行VI(Run Continuously)3.停止运行VI(Abort Execution)4.暂停运行VI(Pause)调试VI1.单步执行单步(入),单步(跳),单步(出)2.设置端点3.设置探针4.显示数据流动画数据类型:基本数据类型:数字型(Numeric),布尔型(Boolean),字符串型(String)构造数据类型:数组(Array),簇(Cluster)其它数据类型:枚举(RefNum),空类型数组(Array):索引号从0开始一维数组(1D,列或向量),二维数组(2D,矩阵)组成:数据类型,数据索引(Index),数据创建:1.控制模板->Array & Cluster子模板2.根据需要将相应数据类型的前面板对象放入数组框架中使用:1. Array Size返回输入数组的长度2. Index Array返回输入数组由输入索引指定的元素3. Replace Array Element替换输入数组的一个元素4. Array Subset从输入数组取出指定的元素5. Reshape Array改变输入数组的维数6. Initialize Array初始化数组7. Build Array建立一个新数组8. Rotate 1D Array将输入数组的最后n个元素移至数组的最前面9. Sort 1D Array将数组按升序排列10.Reverse 1D Array将输入的1D数组前后颠倒,输入数组可以是任何类型的数组11.Transpose 2D Array转置输入的二维数组,也叫矩阵转置12.Search 1D Array搜索指定元素在一维数组中的位置13.Array Max & Min返回输入数组中的最大值和最小值14.Split 1D Array将输入的一维数组在指定的元素处截断,分成2个一维数组15.Interpolate 1D Array线性插值16.Threshold 1D Array一维数组阀值,是线性插值的逆过程17.Interleave 1D Arrays将从输入端口输入的一维数组插入到输出的一维数组中18.Decimate 1D Array将输入的一维数组分成数个一维数组,是Interleave 1D Arrays的逆过程簇(Cluster):类似于Pascal语言的record和C语言的struct组成:不同的数据类型创建:控制面板—>Array & Cluster子面板;向框架添加所需的元素;根据需要更改簇和簇中元素的名称使用:1.Unbundle解包。

虚拟仪器实验指导书课案

虚拟仪器实验指导书课案

虚拟仪器技术实验指导书二○一零年九月目录实验一储液罐状态监控仿真系统 (1)实验二集合成员数据类型的使用 (4)实验三结构和属性的使用 (6)实验四数据的图形显示 (9)实验五信号的分析与处理 (10)实验六初始化前面板控件 (12)实验七数据的记录和回放 (15)实验八曲线拟合 (26)实验一储液罐状态监控仿真系统一、实验(上机)目的1、熟悉LabVIEW程序的组成;2、熟悉、掌握前面板设计和框图程序设计的基本方法;3、了解如何创建子VI;二、实验(上机)内容设计一个储液罐状态监控仿真系统。

要求如下1、监测一个储液罐的实际液位、温度、进口压力、出口压力(各个参数由给定值加扰动组成);2、用曲线图显示被测量液位随时间的变化情况;3、液位超标时用指示器报警;4、手动和自动两种方式调节储液罐的液位高度;5、用调节步长按钮决定自动调节的快慢程度;三、实验(上机)步骤前面板设计1、启动LabVIEW,打开一个空白的VI;2、从控件模版中的各个子模版找出图1-1所示的各个控件;其中压力表为数值子模版中的量表3、修改各个控件外形,并合理排列各个控件;同时修改控件的属性,使其符合系统的要求同时保证前面板的美观;程序框图设计1、在程序框图窗口中观察显示件和控制件的图表的异同;2、利用随机数生成函数模拟温度及压力的扰动;3、双指针压力表的输入为一个由两个数值型数据捆绑成的簇;4、用选择函数来切换自动与手动调节,调节步长控件用于自动调节;5、用While循环结构控制仿真的停止;参考程序框图如图1-2.子VI设计(将该VI设计成一个子VI)1、点击前面板右上角的图标/连接器如图1-3红色方框所示。

图1-1 系统前面板图1-2 仿真系统程序框图2、编辑自己喜欢的图标;3、从图标/连接器的快捷菜单中切换图标/连接器至连接器状态。

编辑连接器,输入为调节步长、自动控制按钮及设定高度,输出为温度压力及实际液位。

4、保存刚才建立的VI,以”学号+姓名”为文件名称,如090220101王华5、新建一个VI,在程序框图中调用刚刚的VI,观察其特点。

东大虚拟仪器第三次实验报告数组簇与曲线图形

东大虚拟仪器第三次实验报告数组簇与曲线图形

东南大学生物科学与医学工程学院虚拟仪器实验报告第三次实验实验名称:数组簇和曲线图形专业:生物医学工程姓名:学号:同组人员:学号:实验室:实验时间:评定成绩:审阅教师:目录一、实验题目 (3)二、实验目的 (3)三、实验内容 (3)1.1实验方案 (3)1.2程序框图设计 (3)1.3程序前面板设计 (4)1.4调试过程 (5)1.5结果分析 (5)1.6使用说明 (7)2.1实验方案 (7)2.2程序框图设计 (7)2.3程序前面板设计 (9)2.4调试过程 (10)2.5结果分析 (10)2.6使用说明 (11)四、心得体会 (11)五、参考文献 (11)一、实验题目1.在波形Graph显件上用两种不同颜色显示一条正弦曲线和一条余弦曲线,每条曲线长度为128个点,其中正弦曲线的x0 =0,△x=1;余弦曲线的x=2,△x=5。

并利用属性节点通过前面板控件改变每条曲线的颜色。

2.设计一个VI,将一个一维数组(含有正数和负数的混合数组)分成两个只含正数(包含0的数)和负数的一维数组。

并分别计算两个数组中各自有多少个元素,同时显示出各自数组中最大、最小值。

二、实验目的1.学习如何创建和初始化数组。

2.建立自动索引概念。

3.学习使用波形Graph显示多条曲线的方法,学习改变Graph上曲线的颜色等属性的方法。

三、实验内容1.在波形Graph显件上用两种不同颜色显示一条正弦曲线和一条余弦曲线,每条曲线长度为128个点,其中正弦曲线的x0 =0,△x=1;余弦曲线的x=2,△x=5。

并利用属性节点通过前面板控件改变每条曲线的颜色。

1.1实验方案使用for循环以及产生正弦和余弦,并使一个周期为128个点;利用簇函数设置正余弦函数的x0和△x,接入到波形图上产生波形;设置属性节点,可改变曲线颜色。

1.2程序框图设计⑴首先运用for循环,设置循环次数为128,产生曲线横轴的128个点。

⑵利用将一个周期2π分成128份,并与i(每次循环i自动加1)相乘后形成x轴的取样点。

簇和数组

簇和数组

簇和数组簇是一种类似数组的数据结构,用于分组数据。

簇和数组有着重要的差别,其中一个重要差别是,簇可以包含不同的数据类型,而数组仅可以包含相同的数据类型。

例如,一个数组可以包含10个数字指示器,一个簇却可以包含一个数字控件,一个开关和一个字符串控件。

尽管簇和数组的元素都是有序存放的,但访问簇的元素最好是通过释放的方法同时访问其中部分或全部元素,而不是通过索引一次访问一个元素。

簇和数组的另一个差别是簇具有固定的大小。

簇通常用于将出现在框图上的有关数据元素分组管理。

因为簇在框图中仅用唯一的连线表示,所以对于减少连线混乱和子VI需要的连接器端子个数,使用簇有着积极的效果。

可以将簇看做是一捆连线,线缆中每一个连线表示簇的不同元素。

在框图上,只有当簇具有相同类型,相同元素数量和相同元素顺序时,才可以将簇的子端连接。

多态性应用于簇时,只需要簇具有同样顺序,同样数量的元素。

下面来向大家介绍簇的创建簇的创建框位于前面板中的控件→新式→数组,矩阵和簇→簇,如图:然后就可以往簇的框中添加各种类型的控件了,例如现在要建立一个学生的记录信息,包括学生的姓名,学号,性别和年龄.这就需要在簇外壳里依次放入两个字符串输入控件,一个数字控件和一个布尔控件.如图:与数组的创建类似,簇也可以从程序框图中创建,先在程序框图上放置一个簇外壳,然后就可以在簇外壳里放置各种数据类型常数。

如图:簇内对象的大小是可以调整的,右击簇边界,在弹出的快捷菜单中可以选择各种调节操作,如图:选择调整为匹配大小,即可缩小簇的边框,如图为调整后的结果:簇结构中的元素排列是按照它们放置的先后来排序的,它与簇内元素的位置无关。

放入簇内的第一个元素序号为0,第二个元素序号是1,依次向下排列。

如果删除了一个元素,序号将重新自动调整。

簇的排序很重要,它直接影响着后面将要介绍的“捆绑”以及“接触捆绑”函数的端口顺序,如果你想将一个簇与另一个簇连接,这两个簇的序和类型必须相同。

第6讲——数组和簇

第6讲——数组和簇
(1)放置数组框架: )放置数组框架:
前面板
程序框图
5
数组框架的组成: 数组框架的组成:
前面板中
书:P129图7-2 图 程序框图中
索引区域
都由索引区域和元素区域组成。 都由索引区域和元素区域组成。
元素区域
索引区域:显示需要显示的数组元素的索引值。 索引区域:显示需要显示的数组元素的索引值。 元素区域:显示索引所定义的元素值。 元素区域:显示索引所定义的元素值。
1.数值常数数组 数值常数数组
15
16
2.布尔常数数组 布尔常数数组
17
6.1.2 6.1.2 利用循环的自动索引功能创建数组
什么是自动索引? 什么是自动索引? For循环和 循环和While循环结构都可以在它们的边界上自 循环和 循环结构都可以在它们的边界上自 动索引数组或积聚数组,这一汇集数据的能力称为 动索引数组或积聚数组,这一汇集数据的能力称为 自动索引。 自动索引。 利用For循环创建一维数组。 循环创建一维数组。 例6.1.1 利用 循环创建一维数组
图所示是一个含4个控件的簇。 图所示是一个含4个控件的簇。
43
6.2.1 簇的创建
类似于数组的创建。首先建立簇框架,然后向其中添 类似于数组的创建。首先建立簇框架, 加对象作为簇元素。 加对象作为簇元素。
在前面板中添加簇
在程序框图中添加簇常量
44
(a) 混合簇输入控件 (b) 混合簇显示控件 (c)数值型簇输入控件 (c)数值型簇输入控件
上次课内容复习
事件结构:对用户的操作做出响应和处理。其组织方式是把 事件结构:对用户的操作做出响应和处理。 多个子框图堆叠在一起,根据所发生的事件的不同, 多个子框图堆叠在一起,根据所发生的事件的不同,每次只 有一个子框图得到执行。事件结构必须放在While循环中,否 循环中, 有一个子框图得到执行。事件结构必须放在 循环中 则没有意义。 则没有意义。 定时结构:定时结构的定时精度高于“等待(ms)”函数和“等 函数和“ 定时结构:定时结构的定时精度高于“等待 函数和 待下一个整数倍毫秒”函数。 待下一个整数倍毫秒”函数。在定时要求比较高的情况下使 用。 禁用结构:分程序框图禁用结构和条件禁用结构。条件禁用 禁用结构:分程序框图禁用结构和条件禁用结构。 分支的选择由外部环境变量加以控制。 分支的选择由外部环境变量加以控制。而外部环境变量只有 项目”中才能使用。 在“项目”中才能使用。 局部变量和全局变量:其功能基本类似,作用范围不同。 局部变量和全局变量:其功能基本类似,作用范围不同。局 部变量只在所在VI中有效 而全局变量在多个VI中有效 中有效, 中有效。 部变量只在所在 中有效,而全局变量在多个 中有效。使 用局部/全局变量 全局变量, 可以在不太好连线的地方传递数据; 用局部 全局变量,①可以在不太好连线的地方传递数据;② 可以实现对输入控件的写操作和输出控件的读操作。 可以实现对输入控件的写操作和输出控件的读操作。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第三章数据类型:数组、簇和波形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数组控制对象、常数对象和显示对象通过把数组与数值、布尔数、字符串或者簇组合在一起,可以在前面板和流程图中创建任何一种控制对象、常数对象和显示对象。

数组元素不能是数组、图表或者图形。

如果您想查看一些数组的例子,请查看Examples\General\arrays.llb中的例子。

3.2.3自动索引For循环和While循环可以自动地在数组的上下限范围内编索引和进行累计。

这些功能称为自动索引。

在启动自动索引功能以后,当把某个外部节点的任何一维元素连接到循环边框的某个输入通道时,该数组的各个元素就将按顺序一个一个地输入到循环中。

循环会对一维数组中的标量元素,或者二维数组中的一维数组等编制索引。

在输出通道也要执行同样的工作――数组元素按顺序进入一维数组,一维数组进入二维数组,依此类推。

在默认情况下,对于每个连接到For循环的数组都会执行自动索引功能。

可以禁止这个功能的执行,方法是用鼠标右键单击通道(输入数组进入循环的位置),在快捷菜单中选择DisableIndexing。

练习3-1创建一个自动索引的数组目的:使用 For 循环的自动索引功能创建数组,并用一个图形(Graph)显示该数组。

前面板图3-2练习3-1的面板1.打开一个新的前面板。

2.选择Controls»Array & Cluster,在前面板中放置一个数组。

设置它的标签为Waveform Array。

3.选择Controls»Numeric,在数组框中插入一个数字式显示对象。

如右图所示。

它用于显示数组的内容。

4. 选择Controls»Graph ,在前面板中放置一个波形图。

设置它的标签为Waveform Graph 。

5. 隐藏图例和模板。

6. 用鼠标右键单击图形,并在快捷菜单中取消选中 YScale»Autoscale Y ,禁止自动坐标功能。

7. 使用文本工具,把Y 轴的范围改为-0.5到1.5。

流程图8. 按照下图创建流程图。

图3-2 练习3-1的流程图● 由Functions»Select a VI…寻找LabVIEW\activity 目录下的Generate WaveformVI ,它的作用是返回波形中的某一点。

这个VI需要输入一个索引,我们将循环周期连接到这个输入。

● 注意Generate Waveform VI 连出来的连线在循环边界变成一个数组时会变粗,正是在这个边界处形成了一维数组。

● For 循环会自动累计边界内的数组。

这种功能叫做自动索引。

在这个例子中,连接到循环计数输入的数值常数令For循环创建了一个由100个元素组成的数组。

● Bundle 函数( Functions» Cluster )——将图块中的各个组件组合成一个簇,在正确连接以前需要改变该函数的图标的大小。

将移位工具放在图标的左下角。

变形工具会变成如左图所示,拖曳鼠标直到出现第三个输入端子。

● 数值常数( Functions»Numeric)——三个数值常数用于设置For 循环执行的周期数N=100,初始X=0和delta X=1。

9. 从前面板执行该VI 。

该VI 将把自动索引后的波形图数组显示在波形图中。

10. 把 X 的delta 值改为0.5,X 的初始值改为20。

再次执行该VI 。

注意,波形图现在同样显示100个点,而每个点的初始值为20,X 的delta 值为0.5(见X 轴)。

11. 只需在显示器中输入元素的索引号就可以查看波形数组中的任何元素。

如果输入的数比数组的元素个数大,那么显示Waveform Graph Waveform Array器将变暗,表示您没有为该元素设置索引。

如果需要一次查看多个元素,可以通过改变数组显示对象的大小来实现。

把定位工具放置在数组框的右下角。

工具将变成右图所示的变形工具。

当工具变形时,用鼠标拖曳数组的右边或者下边。

数组现在就可以按照元素索引的上升顺序显示多个素,以某个与指定索引对应的元素开始,如下图所示。

图3-3练习3-1中多个数组元素的同时观察在前面的流程图中,您为波形图指定了初始的X值和deltaX值。

默认的X初始值是0,delta X 值是1。

这样,也可以把波形数组直接连接到波形图端子,而无需指定初始的X值和delta X值,如图3-4所示。

图3-4练习3-1使用默认X及Delta X时简化后的流程图12.按上图删除 Bundle功能函数和它所连接的常数对象。

方法是用移位工具选择该功能函数和连接的常数对象,按下<Delete>。

再选择Edit»Remove Bad Wire s。

按照上图完成流程图的连线。

13.执行该VI。

注意初始的X值是0,delta X值是1。

多图区图形可以创建含有多条曲线的图形,方法是创建一个数组,用它来汇集传给单图区图形的类型的数据元素。

图3-5 练习3-1多图区图形的流程图14. 按照上图创建流程图。

● 正弦函数(Functions»Numeric»Trig onometric )——在这里,它用于在For 循环中创建一个由数据点组成的数组,表示一个正弦波周期。

● Pi 常数(Functions»Numeric»AdditionalNumeric Constants )● Build Array (Functions»Arra y )——在这里,它用于创建合适的数据结构(一个二维数组),在波形图中绘制两条曲线。

用移位工具拖曳边角可以增大该函数的面积,创建两个输入端子。

15. 返回前面板,执行该 VI 。

注意同一个波形中的两个图区。

默认情况下,它们的X 初始值都是0,delta X 初始值都是1。

下图是该程序的运行结果(前面板未改动)。

16. 把该VI 保存为LabVIEW\Activity 目录中的GraphWaveform Arrays.vi 。

17. 可以修改图形中的某个图区的外观。

方法是,用鼠标右键单击这个图形,再从弹出菜单选择对应的图例。

Array图3-6 练习3-1多图区图形的面板显示练习 3-1 结束。

在上面这个例子中,由于计算端子连接了一个值为100的常数对象,所以 For 循环将执行100次。

下面这个例子显示了另外一种控制循环执行次数的方法。

更详细的例子建议调阅Examples》Fundamentals 》Graphsand Charts》Graph Examples》Waveform Graph例子。

练习3-2对输入数组使用自动索引功能目的:打开并执行一个VI,它将在一个For循环中使用自动索引功能处理一个数组。

1.选择File»Open…,打开Examples\General\arrays.llb中的Separate Array ValuesVI 。

2.打开流程图。

下面的示意图显示的是在TRUE和FALSE时的情况。

图3-7练习3-2的流程图注意,Input Array引出的连线与For循环外的粗线不同,表示这是一个数组,而循环内部的细线则表示这是一个数组元素。

数组元素在每个循环期间将自动编号。

用自动索引功能设置 For 循环的计数器注意,计数器端子还没有连线。

当您对某个进入For循环的数组使用自动索引功能时,循环就将根据数组的大小执行相应的次数,这样就无需连接某个值到计数器的端口。

如果对一个以上的数组使用自动索引功能,或者在使用自动索引功能之外还需要设置计数器时,实际的循环次数将是其中最小的数。

3.执行该VI。

在输入的八个数中,可以看到4个属于正数数组,另外4个属于负数数组。

4.从流程图中将一个值为5的常数对象连接到For 循环的计数器端子。

执行该 VI。

可以看到尽管输入数组仍然有八个元素,但是3个位于正数数组,另外2个位于负数数组。

这说明,如果设置了N并开启了自动索引功能,那么实际循环的次数将取较小的数。

5.关闭该VI,不要保存任何修改。

注:练习3-2的算法说明下面是一段伪代码,解释上面的算法,假定输入数组为A(已赋值),B(正数)、C(负数)。

Sbr 、Scr分别是与B数组、C数组对应的右寄存器数组,Sbl 、Scl分别是与B数组、C数组对应的左寄存器数组,size运算为测数组实际大小,ins运算为将一个数插入数组中最左边的空位。

练习3-2结束。

3.3数组功能函数LabVIEW提供了很多用于操作数组的功能函数,位于Functions»Array中。

其中包括Replace Array Element,、Search 1DArray、Sort 1D Array、Reverse 1D Array和Multiply ArrayElements等等。

创建数组——Build Array函数(Functions»Array),用于根据标量值或者其他的数组创建一个数组。

相关文档
最新文档