1 / 61

第三讲 LabVIEW 开发环境及程序设计基础

第三讲 LabVIEW 开发环境及程序设计基础. LabVIEW 的出现. 1986 年诞生,革命性地简化了仪器控制的复杂度 针对测量应用的界面控件 符合工程思维方式的数据流编程. LabVIEW 的出现推动了测试技术的发展. 从手工测试迈向自动化测试 使仪器和 PC 得以有效连接 有效降低了仪器控制的复杂程度 从此以后,软件在测控系统中发挥的作用越来越大. LabVIEW 的发展. 功能不断增加,效率不断提升 不断融合各种最新的技术发展,简化工程师在测控系统中利用新技术的复杂度. LabVIEW 6 i 网络技术. LabVIEW 3.0 多平台.

Download Presentation

第三讲 LabVIEW 开发环境及程序设计基础

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 第三讲LabVIEW开发环境及程序设计基础

  2. LabVIEW的出现 • 1986年诞生,革命性地简化了仪器控制的复杂度 • 针对测量应用的界面控件 • 符合工程思维方式的数据流编程

  3. LabVIEW的出现推动了测试技术的发展 • 从手工测试迈向自动化测试 • 使仪器和PC得以有效连接 • 有效降低了仪器控制的复杂程度 • 从此以后,软件在测控系统中发挥的作用越来越大

  4. LabVIEW的发展 • 功能不断增加,效率不断提升 • 不断融合各种最新的技术发展,简化工程师在测控系统中利用新技术的复杂度 LabVIEW 6i 网络技术 LabVIEW 3.0 多平台 LabVIEW 2009 更高效率,机器人 LabVIEW 8.20 20周年纪念版 简体中文版 LabVIEW 4.0 专业化开发 LabVIEW 1.0 Macintosh 1990 2005 2010 1998 2003 2008 1993 1986 1997 2000 2006 2009 LabVIEW 5.0 实时技术 LabVIEW 8 分布式智能 LabVIEW 2.0 编译语言程序 LabVIEW 8.6 多核、FPGA、无线 LabVIEW 7 Express PDA 和 FPGA LabVIEW 2010 FPGA云编译

  5. LabVIEW的本质是什么? • 首先是一种编程语言 • 只不过是图形化的而已 • 是一种针对工程师和科学家所设计的开发环境 • 内置许多简化编程复杂度的功能和函数

  6. PXI Systems LabVIEW作为编程语言的优势 C / HDL Code Dataflow Textual Math Simulation Statechart 基于数据流的自然思维方式,但同时也支持调用文本语言的代码 LabVIEW MPU/MCU LabVIEW FPGA LabVIEW `` Real-Time LabVIEW Desktop Custom Design Personal Computers CompactRIO Single-Board RIO 支持连接各种硬件,而且支持发布到多种Target

  7. 一个简单而典型的LabVIEW应用 采集 分析 表达 第4讲 数据采集与信号调理 第5讲 LabVIEW中的信号处理 第3讲 LabVIEW开发环境及程序设计基础 第6讲 LabVIEW程序设计进阶

  8. LabVIEW基本开发环境介绍

  9. VI —— LabVIEW程序文件的基本单位 • VI (Virtual Instruments的缩写) 由三部分组成 • 前面板、程序框图(后面板)、图标/连线板

  10. 前面板 • 相当于界面 • 每个VI都有前面板 • 输入控件 • Control, 相当于输入 • 显示控件 • Indicator, 相当于输出 • 控件选板

  11. 程序框图 • 图形化的程序代码 • 决定程序运行行为 • 可能包含元素 • 终端 • 子VI • 函数 • 常数 • 结构 • 连线 函数选板

  12. 程序框图中的连线 • 通过颜色、类型、粗细来表示不同的数据类型 • 不同数据类型之间的连线会产生错误 • Ctrl+B可清楚所有错误连线 • LabVIEW 8.6之后具有整理连线功能 DBL Numeric Integer Numeric String Scalar 1D Array 2D Array

  13. 前面板和程序框图的工具栏 • LabVIEW程序的基本调试 • 查看编译错误 • 单步执行 • 布置探针 • 设置断点

  14. 工具选板 • 一般LabVIEW会自动选择当前工具 • 连线、拖拽、文字… • 利用工具选板可以强制选择工具 • 着色、设置断点…

  15. LabVIEW程序设计基础

  16. 数据流 • 原则1: 只有当一个节点 (函数或子VI) 的所有输入端的数据全部准备好才会执行 • 原则2: 一个节点 (函数或子VI) 只有执行完成后才会向后输出数据

  17. 理解数据流 哪个节点先执行? A) 加法 B) 减法 C) 随机数 D) 除法 E) 正弦

  18. 理解数据流 (没有固定答案) 哪个节点先执行? A) 加法 – 可能 B) 减法 – 不可能 C) 随机数 – 可能 D) 除法 – 可能 E) 正弦 – 不可能

  19. 一个简单的VI:采集、分析、表达

  20. LabVIEW中的“采集”Express VI • DAQ Assistant Express VI • 数据采集助手 • Instrument I/O Assistant Express VI • 仪器I/O助手 (用于仪器控制) • Simulate Signal Express VI • Read from Measurement File Express VI

  21. LabVIEW中的“分析”Express VI • Amplitude and Level Measurements Express VI • 幅值和电平 • Statistics Express VI • 统计 • Spectral Measurements Express VI • 频谱测量 • Tone Measurements Express VI • 单频测量 • Filter Express VI • 滤波器 • …

  22. 数据“表达” • 显示控件 • 波形图、波形图标、XY图… • Express VI • Write to Measurement File Express VI… • 其他功能函数 • 数据库、网络通信…

  23. 基本数据类型1 • 数值型 • 整型 • 有些数据类型的本质也是整形,如枚举型 • 浮点型 • 可以更改数据表达方式 • 决定其占用的存储字节数及数值表达方式

  24. 强制数据类型转换 • 通常,函数返回占用字节数较多的数据类型 • 为提高程序执行效率, 尽量避免自动强制转换 强制转换点

  25. 基本数据类型2 • 布尔型 • 注意: 前面板对应的布尔控件有六种机械动作可选 • 可通过范例区别六种机械动作的不同

  26. 基本数据类型3 • 字符串 • 前面板控件可现实不同的显示方式 • Normal, ‘\’ Codes, Password 以及 Hex • 字符串操作函数选板

  27. 基本数据类型4 • 枚举型 • 本质上也可以认为是整型,不过取值范围有限 • 常与条件结构共同使用 枚举型变量作为条件结构的分支选择依据 某枚举型变量的配置对话框

  28. 条件结构 • 可以有多个分支,可以设置默认分支 • 类似于文本语言的 case 或 if…else if…else 结构 分支标签 分支选择端

  29. 条件结构的输入和输出通道 • 输入通道可以只传递到某些分支 • 但各个分支的输出通道必须赋值

  30. 数组 当前显示的第一个元素所对应的索引 • LabVIEW中的数组可以是1维的,也可以是多维的 • 每一维元素从0开始索引 数组元素

  31. 数组 • 在LabVIEW的前面板/程序框图中创建数组 • 在程序中对数组进行操作

  32. • 类似与C语言中的结构体

  33. • 创建簇 • 需注意元素顺序

  34. LabVIEW中的循环结构 • While循环 • For循环 • 隧道 • 寄存器 • For循环的条件终止

  35. While循环 Repeat (code); Until Condition met; End; LabVIEW While Loop Flowchart Pseudo Code

  36. While循环 终止条件 (也可以是继续条件) 返回执行次数 (从0开始) 隧道 (Tunnel)

  37. For循环 N=100; i=0; Until i=N: Repeat (code;i=i+1); End; LabVIEW For Loop Flowchart Pseudo Code

  38. For循环 • 可增加条件终止端

  39. While循环和For循环的比较 • While Loop • 循环终止执行由终止条件决定 • 至少会执行一次 • 默认情况下,隧道输出的是一个值 (需要开启索引才能输出数组) For Loop • 按照约定的次数执行 (除非增加了条件终止端) • 可以一次也不执行 • 默认情况下,隧道输出的是一个数组 (需要禁用索引才能输出值)

  40. 使用数组作为索引输入 • 可不定义循环次数,循环次数自动设置为数组大小

  41. 例: 利用For循环自动索引对数组赋值 一维数组 二维数组

  42. 移位寄存器 • 通过右键菜单可以对循环添加移位寄存器 • 可以“记住”上一次循环执行后的数据 • 右边的移位寄存器记录的是循环当此执行后的数据 • 左边的移位寄存器记录的是循环上次执行后的数据

  43. 移位寄存器的初始化

  44. 移位寄存器的堆栈 • 可以“记住”前若干次循环的数据

  45. 延时 • 为何需要延时? • 控制循环执行的频率 • 使处理器有资源处理其他任务 (如界面刷新等) • LabVIEW中常用的软件定时VI • 注意: 软件定时的精度通常为1ms左右

  46. 波形图表、波形图、XY图

  47. 子VI 当程序中有些部分的内聚度较高时,可利用子VI使主程序结构更清晰简洁(类似于文本语言的子函数)

  48. 创建并调用子VI • 方法一: 定义子VI图标和连线板 • 连线板决定了子VI的参数输入与输出 • 通过图标或函数选板调用子VI

  49. 创建并调用子VI • 方法二: 在主程序中直接圈出一块程序,通过右键菜单直接创建子VI

  50. 程序架构 • 程序架构的重要性 • 好的程序架构可以简化编程和调试的复杂度 • 便于增加、扩展程序功能 • 代码更清晰,增强程序的可读性 • 就像盖房子,规划和框架设计非常重要

More Related