LabVIEW学习教程
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
LabVIEW的发展
• 功能不断增加,效率不断提升 • 不断融合各种最新的技术发展,简化工程师在测控系统中利用 新技术的复杂度
LabVIEW 3.0
多平台
LabVIEW 6i
网络技术 LabVIEW 8.20 20周年纪念版 简体中文版
LabVIEW 2009
LabVIEW 1.0
Macintosh
– 浮点型 – 可以更改数据表达方式
• 决定其占用的存储字节数及数 值表达方式
强制数据类型转换
• 通常,函数返回占用字节数较多的数据类型 • 为提高程序执行效率, 尽量避免自动强制转换
强制转换点
基本数据类型2
• 布尔型
– 注意 : 前面板对应的布 尔控件有六种机械动作 可选 – 可通过范例区别六种机 械动作的不同
Dataflow C / HDL Code Textual Math Simulation Statechart
LabVIEW Desktop
LabVIEW `` Real-Time
LabVIEW FPGA
LabVIEW MPU/MCU
Personal Computers
PXI Systems
CompactRIO
PDA 和 FPGA
LabVIEW 2010
FPGA云编译
LabVIEW的本质是什么?
• 首先是一种编程语言
– 只不过是图形化的而已
• 是一种针对工程师和科学家所设计的开发环境
– 内置许多简化编程复杂度的功能和函数
LabVIEW作为编程语言的优势
基于数据流的自然思维方式,但同时也支持调用文本语言的代码
滤波器Express VI
• 选择滤波器类型
− 低通 − 高通 − 带通 − 带阻 − 平滑
• 选择滤波器规范
− 截止频率 − FIR或IIR − 阶数
• 直观显示效果
− 便于调整参数 达到理想效果
LabVIEW中的数字滤波器函数
数字滤波器设计工具包*
26
LabVIEW中的“分析”Express VI
• Amplitude and Level Measurements Express VI
– 幅值和电平
• Statistics Express VI
– 统计
• Spectral Measurements Express VI
– 频谱测量
• Tone Measurements Express VI
揭开LabVIEW 神秘的面纱
虚拟仪器软件平台LabVIEW
Laboratory Virtual Instrument Engineering Workbench
所谓“平台”,而不是虚拟仪器!
内容提要
LabVIEW概述 LabVIEW基本开发环境介绍 LabVIEW程序设计基础 基于LabVIEW的信号处理
后面板 前面板
前面板
• 相当于界面
– 每个VI都有前面板
• 输入控件
– Control, 相当于输入
• 显示控件
– Indicator, 相当于输出
• 控件选板
程序框图
• 图形化的程序代码
– 决定程序运行行为
• 可能包含元素
– 终端 – 子VI – 函数 – 常数 – 结构 – 连线
• 图形化的程序构件
• DAQ Assistant Express VI
– 数据采集助手
• Instrument I/O Assistant Express VI
– 仪器I/O助手 (用于仪器控制)
• Simulate Signal Express VI • Read from Measurement File Express VI
移动平均
• 移动平均是一种特定的低通滤波器,去除信号中的高 频噪声
– 平均长度越长,截止频率越低 – 低频幅度有一定的衰减
移动平均对信号幅度的影响
• 低频幅度有一定的衰减,衰减程度随平均长度的增加 而增大
低通滤波器设计
• 使用滤波器设计Express VI设计低通滤波器,用于去除 高频噪声 • 可灵活调整滤波器的频响,以去除高频噪声同时又尽 可能保持低频成分的幅度
前面板和程序框图的工具栏
• LabVIEW程序的基本调试
– 查看编译错误 – 单步执行 – 布置探针 – 设置断点
工具选板
• 一般LabVIEW会自动选择当前工具
– 连线、拖拽、文字…
• 利用工具选板可以强制选择工具
– 着色、设置断点…
调试你的LabVIEW代码
• 找出编译错误 • 高亮执行 • 探针 • 设置断点
例: 根据情况选择转移状态
LabVIEW中文件的输入和输出
文本文件
电子表格文件
二进制文件 数据记录文件
波形文件
LabVIEW Measurement File
基于LabVIEW的信号处理
信号处理在各个行业的应用
生物:医电分析 汽车:噪声定位
信号处理 Signal Processing
创建并调用子VI
• 方法二: 在主程序中直接圈出一块程序,通过右键菜 单直接创建子VI
程序架构
• 程序架构的重要性
– 好的程序架构可以简化编程和调试的复杂度 – 便于增加、扩展程序功能 – 代码更清晰,增强程序的可读性 – 就像盖房子,规划和框架设计非常重要
常用的一种LabVIEW程序架构: 状态机
函数选板
程序框图中的连线
• 通过颜色、类型、粗细来表示不同的数据类型
Scalar 1D Array 2D Array DBL Numeric Integer Numeric String
• 不同数据类型之间的连线会产生错误
– Ctrl+B可清楚所有错误连线 – LabVIEW 8.6之后具有整理连线功能
• LabVIEW的帮助系统
上下文实时帮助
LabVIEW帮助
• Ctrl+H
LabVIEW范例查找器
LabVIEW程序设计基础
数据流
• 原则1: 只有当一个节点 (函数或子VI) 的所有输入端的 数据全部准备好才会执行 • 原则2: 一个节点 (函数或子VI) 只有执行完成后才会向 后输出数据
返回执行次数 (从0开始)
隧道 (Tunnel)
Fwk.baidu.comr循环
N=100; i=0; Until i=N: Repeat (code;i=i+1); End;
LabVIEW For Loop
Flowchart
Pseudo Code
For循环
• 可增加条件终止端
While循环和For循环的比较
For Loop While Loop
分支标签
分支选择端
条件结构的输入和输出通道
• 输入通道可以只传递到某些分支 • 但各个分支的输出通道必须赋值
波形图表、波形图、XY图
子VI
当程序中有些部分的内聚度较高 时,可利用子VI使主程序结构更 清晰简洁(类似于文本语言的子 函数)
创建并调用子VI
• 方法一: 定义子VI图标和连线板
– 连线板决定了子VI的参数输入与输出 – 通过图标或函数选板调用子VI
理解数据流
哪个节点先执行?
A) 加法 B) 减法 C) 随机数 D) 除法 E) 正弦
理解数据流 (没有固定答案)
哪个节点先执行?
A) 加法 – 可能 B) 减法 – 不可能 C) 随机数 – 可能 D) 除法 – 可能 E) 正弦 – 不可能
一个简单的VI:采集、分析、表达
LabVIEW中的“采集”Express VI
• While循环 • For循环 • 隧道 • 寄存器 • For循环的条件终止
While循环
Repeat (code); Until Condition met; End;
LabVIEW While Loop
Flowchart
Pseudo Code
While循环
终止条件 (也可以是继续条件)
– 单频测量
• Filter Express VI
– 滤波器
• …
数据“表达”
• 显示控件
– 波形图、波形图标、XY图…
• Express VI
– Write to Measurement File Express VI…
• 其他功能函数
– 数据库、网络通信…
基本数据类型1
• 数值型
– 整型
• 有些数据类型的本质也是整形, 如枚举型
Single-Board RIO
Custom Design
支持连接各种硬件,而且支 持发布到多种Target
LabVIEW基本开发环境介绍
VI —— LabVIEW程序文件的基本单位
• VI (Virtual Instruments的缩写) 由三部分组成
– 前面板、程序框图(后面板)、图标/连线板
通讯:信道消噪
机电:机器监测
能源:管道监测
回顾: 一种典型的虚拟仪器系统
信号
采集
分析
表达
信号处理
为什么需要信号处理
• 功率分析 • 频率测定 • 滤除多余成分 • …
信号 处理 函数 信号 处理 函数
Vrms2
500 Hz 完美的正弦曲线
输入信号
信号 处理 函数
信号处理的系统流程
参数测量 数据采集 预处理 信号分析域变换 建模 交互显示
数组
• LabVIEW中的数组可以是1维 的,也可以是多维的 • 每一维元素从0开始索引
当前显示的第一个元素 所对应的索引
数组元素
数组
• 在LabVIEW的前面板/程序框图中创建数组
• 在程序中对数组进行操作
簇
• 类似与C语言中的结构体
簇
• 创建簇
– 需注意元素顺序
LabVIEW中的循环结构
无 初始化
Output = 4
Output = 8
移位寄存器的堆栈
• 可以“记住”前若干次循环的数据
延时
• 为何需要延时?
– 控制循环执行的频率 – 使处理器有资源处理其他任务 (如界面刷新等)
• LabVIEW中常用的软件定时VI
• 注意: 软件定时的精度通常为1ms左右
条件结构
• 可以有多个分支,可以设置默认分支 • 类似于文本语言的 case 或 if…else if…else 结构
LabVIEW的出现
• 1986年诞生,革命性地简化了仪器控制的复杂度
– 针对测量应用的界面控件 – 符合工程思维方式的数据流编程
LabVIEW的出现推动了测试技术的发展
• 从手工测试迈向自动化测试
– 使仪器和PC得以有效连接 – 有效降低了仪器控制的复杂程度 – 从此以后,软件在测控系统中发挥的作用越来越大
例: 利用For循环自动索引对数组赋值
一维数组
二维数组
移位寄存器
• 通过右键菜单可以对循环添加移位寄存器
– 可以“记住”上一次循环执行后的数据 – 右边的移位寄存器记录的是循环当此执行后的数据 – 左边的移位寄存器记录的是循环上次执行后的数据
移位寄存器的初始化
程序框图 有 初始化 首次执行 Output = 5 再次执行 Output = 5
• 按照约定的次数执行 (除非增加 了条件终止端) • 可以一次也不执行 • 默认情况下,隧道输出的是一 个数组 (需要禁用索引才能输出 值)
• 循环终止执行由终止条件决定 • 至少会执行一次 • 默认情况下,隧道输出的是一 个值 (需要开启索引才能输出数 组)
使用数组作为索引输入
• 可不定义循环次数,循环次数自动设置为数组大小
• 典型用途
– 界面响应: 在程序运行的 不同阶段响应不同的用 户输入 – 状态控制: 控制测控系统 在各种不同状态下的行 为和状态转移
状态机的代码形式
• 由While循环和条件结构组成 • 状态由枚举型变量确定
– 每个状态都会转移到其他状态或本状态
While循环
移位寄存器
条件结构
例: 默认状态及单一状态转移
基本数据类型3
• 字符串
– 前面板控件可现实不同的显示方式
• Normal, ‘\’ Codes, Password 以及 Hex
– 字符串操作函数选板
基本数据类型4
• 枚举型
– 本质上也可以认为是整 型,不过取值范围有限 – 常与条件结构共同使用
枚举型变量作为条件结构的 分支选择依据
某枚举型变量的配置对话框
选择合适的信号处理算法
信号预处理
• 信号预处理的目的
– 降噪、去直流、去漂移等 – 量纲、物理量转换
预处理
参数测量 域变换 建模
• 常用的信号预处理方法包括
– 移动平均 – 滤波 – 积分、微分 – 重采样 – …
信号预处理——降噪
• 信号噪声一般指信号中的高频次要部分 • 常用降噪方法
– 移动平均 – 低通滤波 – 小波降噪
滤波器expressvi滤波器函数数字滤波器设计工具包降噪的挑战移动平均和低通滤波不适用于宽频时变多尺度信号的降噪小波降噪基于小波的降噪方法适合于宽频时变多尺度信号的降噪降噪方法比较移动平均去除成分高频高频有选择地去除高频幅频响应类型低通滤波低通滤波低通并保留高频幅度较大部分非线性过渡带较长与平均长度有关可控与滤波器设计有关与小波类型有关低频衰减较大与平均长度有关可控与滤波器设计有关与小波类型有关优势简单易用性能可控非平稳信号效果好参数测量谐振频率阻尼预处理参数测量域变换建模参数测量的应用生产线自动质量控制系统参数测量例1频谱测量可交互式地对参数进行配置如选择不同的窗函数等需要加窗的原因频谱泄漏频谱泄漏导致频率测量失真因为不连续部分的高频能量会在频谱扩散不连续1个周期频谱泄漏整数周期无泄漏非整数周期泄漏加窗可减少频谱泄漏对频谱分析的影响加窗可加强信号部分减弱其它部分加窗对幅值和相位的效果不同窗函数的影响效果等内容可参考数字信号处理课程或相关参直接在labview前面板显示频响函数参数测量例3正弦参数提取高精度demo域变换角度域预处理参数测量域变换建模信号按时频特征分类长时间持续的窄带信号短时窄带信号选择合适的变换域傅立叶变换小波变换联合时频角度阶次域深海中虎鲸的叫声
LabVIEW 4.0
专业化开发
更高效率,机器人
1990 1993 1997
1998
LabVIEW 5.0
实时技术
2003 2000
2005
LabVIEW 8
2008 2006 2009
LabVIEW 8.6 多核、FPGA、无线
2010
1986
LabVIEW 2.0
编译语言程序
分布式智能
LabVIEW 7 Express