LabVIEW开发环境及程序设计基础(LabVIEW基础入门)

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

启发: 一些LabVIEW软件小游戏演示
俗话说“师傅领进门 修行在个人”,程序设计的学习尤 其如此. 希望大家利用好参考书和网络学习资源,学习借 鉴. 但最重要的是多动手尝试,从而深刻领悟图形化编程 之道
作业
• (准备一个题目, 利用目前所掌握的编程技术完成) • 例如:自动抽奖机(用在每年年会上)、学生作业递
第三讲 LabVIEW开发环境及程序设计基础
课程章节
• LabVIEW 简介 • LabVIEW基本开发环境介绍
– 基本单元 – VI – 前面板 & 程序框图
• LabVIEW 程序设计基础
– 基本数据类型 – 数据流 – 基本结构 – 子VI & 延时 – 基本程序架构
LabVIEW的出现
• 1986年诞生,革命性地简化了仪器控制的复杂度
无 初始化
Output = 4 Output = 8
延时
• 为何需要延时?
– 控制循环执行的频率 – 使处理器有资源处理其他任务 (如界面刷新等)
• LabVIEW中常用的软件定时VI
• 注意: 软件定时的精度通常为1ms左右
子VI
当程序中有些部分的内聚度较高 时,可利用子VI使主程序结构更 清晰简洁(类似于文本语言的子 函数)
函数选板
程序框图中的连线
• 通过颜色、类型、粗细来表示不同的数据类型
DBL Numeric Scalar 1D Array 2D Array
Integer Numeric
String
• 不同数据类型之间的连线会产生错误
– Ctrl+B可清楚所有错误连线 – LabVIEW 8.6之后具有整理连线功能
理解数据流 (没有固定答案)
哪个节点先执行?
A) 加法 – 可能 B) 减法 – 不可能 C) 随机数 – 可能 D) 除法 – 可能 E) 正弦 – 不可能
一个简单的VI:采集、分析、表达
LabVIEW中的“采集”Express VI
• DAQ Assistant Express VI
– 数据采集助手
While Loop
•按照约定的次数执行 (除非增加了 条件终止端) •可以一次也不执行 •默认情况下,隧道输出的是一个 数组 (需要禁用索引才能输出值)
•循环终止执行由终止条件决定 •至少会执行一次 •默认情况下,隧道输出的是一个 值 (需要开启索引才能输出数组)
使用数组作为索引输入
• 可不定义循环次数,循环次数自动设置为数组大小
• Express VI
– Write to Measurement File Express VI…
• 其他功能函数
– 数据库、网络通信…
LabVIEW中的结构
• 条件结构 • While循环 • For循环 • 隧道 • 寄存器 • For循环的条件终止
条件结构
• 可以有多个分支,可以设置默认分支 • 类似于文本语言的 case 或 if…else if…else 结构
– 前面板、程序框图(后面板)、图标/连线板
前面板
• 相当于界面
– 每个VI都有前面板
• 输入控件
– Control, 相当于输入
• 显示控件
– Indicator, 相当于输出
• 控件选板
程序框图
• 图形化的程序代码
– 决定程序运行行为
• 可能包含元素
– 终端 – 子VI – 函数 – 常数 – 结构 – 连线
– 就像盖房子,规划和框架设计非常重要
常用的一种LabVIEW程序架构: 状态机
• 典型用途
– 界面响应: 在程序运行的 不同阶段响应不同的用 户输入
– 状态控制: 控制测控系统 在各种不同状态下的行 为和状态转移
举例:可存储示波器
状态机的代码形式
• 由While循环和条件结构组成 • 状态由枚举型变量确定
– 每个状态都会转移到其他状态或本状态
While循环
移位寄存器
条件结构
例: 默认状态及单一状态转移
例: 根据情况选择转移状态
调试你的LabVIEW代码
• 找出编译错误 • 高亮执行 • 探针 • 设置断点
LabVIEW帮助
• Ctrl+H
LabVIEW范例查找器
网络学习资源
• GSDzone.net • NI Developer Zone
LabVIEW程序设计基础
基本数据类型1
• 数值型
– 整型
• 有些数据类型的本质也是整形, 如枚举型
– 浮点型
– 可以更改数据表达方式
• 决定其占用的存储字节数及数 值表达方式
强制数据类型转换
• 通常,函数返回占用字节数较多的数据类型 • 为提高程序执行效率, 尽量避免自动强制转换
强制转换点
基本数据类型2
前面板和程序框图的工具栏
• LabVIEW程序的基本调试
– 查看编译错误 – 单步执行 – 布置探针 – 设置断点
工具选板
• 一般LabVIEW会自动选择当前工具
– 连线、拖拽、文字…
• 利用工具选板可以强制选择工具
– 着色、设置断点…
总结
• 基本单元 - VI • 前面板 – 仪器的交互 • 程序框图 – 仪器的功能 • 工具栏
新技术的复杂度
LabVIEW 1.0
Macintosh
LabVIEW 3.0
多平台
LabVIEW 4.0
专业化开发
LabVIEW 6i
网络技术
LabVIEW 8.20 20周年纪念版 简体中文版
LabVIEW 2009 更高效率,机器人
1990
1998
2003 2005
2008
2010
1986
1993 1997
Custom Design
一个简单而典型的LabVIEW应用
采集
分析
表达
第4讲 数据采集与信号调理
第5讲 LabVIEW中的信号处理
第3讲 LabVIEW开发环境及程 序设计基础
第6讲 LabVIEW程序设计进阶
LabVIEW基本开发环境介绍
VI —— LabVIEW程序文件的基本单位
• VI (Virtual Instruments的缩写) 由三部分组成
– 针对测量应用的界面控件 – 符合工程思维方式的数据流编程
LabVIEW的出现推动了测试技术的发展
• 从手工测试迈向自动化测试
– 使仪器和PC得以有效连接 – 有效降低了仪器控制的复杂程度 – 从此以后,软件在测控系统中发挥的作用越来越大
LabVIEW的发展
• 功能不断增加,效率不断提升 • 不断融合各种最新的技术发展,简化工程师在测控系统中利用
– 常与条件结构共同使用
枚举型变量作为条件结构的 分支选择依据
某枚举型变量的配置对话框
数组
• LabVIEW中的数组可以是1维 的,也可以是多维的
• 每一维元素从0开始索引
当前显示的第一个元素 所对应的索引
数组元素
数组
• 在LabVIEW的前面板/程序框图中创建数组
• 在程序中对数组进行操作

返回执行次数 (从0开始)
隧道 (Tunnel)
For循环
LabVIEW For Loop
Flowchart
N=100; i=0; Until i=N:
Repeat (code;i=i+1); End;
Pseudo Code
For循环
• 可增加条件终止端
While循环和For循环的比较
For Loop
– 幅值和电平
• Statistics Express VI
– 统计
• Spectral Measurements Express VI
– 频谱测量
• Tone Measurements Express VI
– 单频测量
• Filter Express VI
– 滤波器
•…
数据“表达”
• 显示控件
– 波形图、波形图标、XY图…
• 布尔型
– 注意: 前面板对应的布 尔控件有六种机械动作 可选
– 可通过范例区别六种机 械动作的不同
基本数据类型3
• 字符串
– 前面板控件可现实不同的显示方式
• Normal, ‘\’ Codes, Password 以及 Hex
– 字符串操作函数选板
基本数据类型4
• 枚举型
– 本质上也可以认为是整 型,不过取值范围有限
例: 利用For循环自动索引对数组赋值
一维数组
二维数组
移位寄存器
• 通过右键菜单可以对循环添加移位寄存器
– 可以“记住”上一次循环执行后的数据 – 右边的移位寄存器记录的是循环当此执行后的数据 – 左边的移位寄存器记录的是循环上次执行后的数据
移位寄存器的初始化
有 初始化
程序框图
首次执行 再次执行 Output = 5 Output = 5
分支标签
分支选择端
条件结构的输入和输出通道ຫໍສະໝຸດ Baidu
• 输入通道可以只传递到某些分支 • 但各个分支的输出通道必须赋值
While循环
LabVIEW While Loop
Repeat (code); Until Condition met; End;
Flowchart
Pseudo Code
While循环
终止条件 (也可以是继续条件)
• 类似与C语言中的结构体

• 创建簇
– 需注意元素顺序
LabVIEW 执行顺序 - 数据流
• 原则1: 只有当一个节点 (函数或子VI) 的所有输入端的 数据全部准备好才会执行
• 原则2: 一个节点 (函数或子VI) 只有执行完成后才会向 后输出数据
理解数据流
哪个节点先执行?
A) 加法 B) 减法 C) 随机数 D) 除法 E) 正弦
– 只不过是图形化的而已
• 是一种针对工程师和科学家所设计的开发环境
– 内置许多简化编程复杂度的功能和函数 – 不仅仅是纯软件,能够控制并部署到硬件当中
LabVIEW作为编程语言的优势
基于数据流的自然思维方式,但同时也支持调用文本语言的代码
Dataflow
C / HDL Code
Textual Math
2000
2006
2009
LabVIEW 2.0 编译语言程序
LabVIEW 5.0
实时技术
LabVIEW 8
分布式智能
LabVIEW 7 Express
PDA 和 FPGA
LabVIEW 8.6 多核、FPGA、无线
LabVIEW 2010 FPGA云编译
LabVIEW的本质是什么?
• 首先是一种编程语言
• Instrument I/O Assistant Express VI
– 仪器I/O助手 (用于仪器控制)
• Simulate Signal Express VI • Read from Measurement File Express VI
33
LabVIEW中的“分析”Express VI
• Amplitude and Level Measurements Express VI
交情况报告系统(针对某一特定邮箱,自动检索哪些人 交了作业,哪些人迟交作业)…
• 课后推荐自学内容: 文件操作
创建并调用子VI
• 方法一: 定义子VI图标和连线板
– 连线板决定了子VI的参数输入与输出 – 通过图标或函数选板调用子VI
创建并调用子VI
• 方法二: 在主程序中直接圈出一块程序,通过右键菜 单直接创建子VI
程序架构
• 程序架构的重要性
– 好的程序架构可以简化编程和调试的复杂度 – 便于增加、扩展程序功能 – 代码更清晰,增强程序的可读性
Simulation
Statechart
LabVIEW Desktop
LabVIEW
`` Real-Time
LabVIEW FPGA
LabVIEW MPU/MCU
Personal Computers
PXI Systems
CompactRIO Single-Board RIO
支持连接各种硬件,而且支持发布到多种Target
相关文档
最新文档