1、总目录序第 1 部分:LabVIEW 编程思想第 1 章 虚拟仪器导论1.1 虚拟仪器概述1.1.1 虚拟仪器理念的诞生1.1.2 初期虚拟仪器的理念1.1.3 现代虚拟仪器的理念1.2 虚拟仪器构成1.2.1 传感器1.2.2 数据采集模块1.2.3 商业化计算机平台1.3 虚拟仪器的测量原理1.3.1 传统仪器的基本测量原理1.3.2 虚拟仪器的基本测量原理1.3.3 虚拟仪器改变了传统仪器的测量方式和理念1.4 虚拟仪器的特点1.4.1 虚拟仪器充分利用了商业化计算机的软件资源1.4.2 虚拟仪器充分利用了商业化计算机的硬件资源1.4.3 软件仍然是虚拟仪器的重要组成部分1.4.4 可重
2、复使用的硬件将降低虚拟仪器成本1.4.5 虚拟仪器的测量功能取决于用户需求1.5 虚拟仪器与传统仪器间的关系1.5.1 虚拟仪器会取代传统仪器吗?1.5.2 模拟电子技术仍主导着虚拟仪器的未来1.5.3 数字电子技术使得虚拟仪器设计更加灵活1.5.4 高端测量仪器领域传统仪器仍是主宰者1.6 虚拟仪器技术1.6.1 虚拟仪器技术概述1.6.2 虚拟仪器技术之一虚拟仪器软件开发环境1.6.3 虚拟仪器技术之二虚拟仪器硬件体系架构1.6.4 虚拟仪器技术之三虚拟仪器管理体系架构1.7 本章小结第 2 章 NI LabVIEW2.1 计算机编程语言2.1.1 机器语言2.1.2 汇编语言2.1.3
3、高级语言2.1.4 图形化编程语言2.2 NI LabVIEW 概述2.2.1 关于 NI LabVIEW2.2.2 LabVIEW 图形化编程语言2.2.3 NI LabVIEW 图形化开发环境2.2.4 创建第一个图形化程序2.2.5 图形化语言运行机制数据流2.3 VI图形化程序的基本框架2.3.1 前面板窗口2.3.2 程序框图窗口2.3.3 图标和连线板2.4 VI 属性2.4.1 VI 属性常规2.4.2 VI 属性内存使用2.4.3 VI 属性说明信息2.4.4 VI 属性修订历史和编辑器选项2.4.5 VI 属性保护2.5 子 VI 与 VI 的层次结构2.5.1 创建子 VI
4、2.5.2 创建子 VI 的图标和连线板2.5.3 VI 的属性窗口外观2.5.4 VI 的属性窗口大小和运行时的位置2.5.5 VI 的层次结构2.6 VI 的类型和跨平台特性2.6.1 通用类型 VI2.6.2 严格类型 VI2.6.3 VI 的使用2.6.4 VI 的跨平台2.7 本章小结第 3 章 控件 前面板对象3.1 控件的基本特征3.1.1 控件的外观和样式3.1.2 控件的指向性3.1.3 控件的映射3.1.4 控件的静态属性3.2 控件的基本作用3.2.1 装饰前面板3.2.2 实现人机对话3.2.3 放置数据、承载数据类型3.2.4 控件的数据类型3.3 控件与 LabVI
5、EW 中变量间的关系3.3.1 局部变量3.3.2 全局变量3.3.3 共享变量3.4 控件类型的定义3.4.1 控件3.4.2 自定义类型3.4.3 严格自定义类型3.5 控件的深入探索3.5.1 控件与 VI 服务器类之间的关系3.5.2 控件的创建和销毁3.5.3 利用更加丰富多彩的控件第 4 章 接线端、节点程序框图对象4.1 接线端 控件的映射4.1.1 接线端的作用和表示方式4.1.2 接线端数据类型的标识4.1.3 接线端间的数据通道连线4.2 节点图形化代码4.2.1 函数原子级的图形化代码4.2.2 内置 VI面对任务的函数集合4.2.3 Express VI基于配置的模块化
6、程序4.3 程序框图对象的深入探索4.3.1 图形化语言的抽象机制4.3.2 图形化代码的重用机制4.3.3 图形化语言异常和错误处理4.3.4 图形化语言与硬件的无缝连接第 5 章 控制程序流程5.1 数据流 图形化语言运行机制5.1.1 何谓数据流5.1.2 数据流编程5.1.3 数据流编程的基本特点5.1.4 数据流编程的深入理解5.2 控制程序流程运算符和算术表达式5.2.1 数值运算符5.2.2 关系运算符5.2.3 算术表达式5.2.4 逻辑运算符5.3 控制程序流程定序控制5.3.1 平铺式顺序结构5.3.2 层叠式顺序结构5.3.3 利用公共线程5.4 控制程序流程条件结构5.
7、4.1 基本条件结构的图形化表示方法5.4.2 基本条件结构的数据流运行机制5.4.3 复杂条件结构5.4.4 最简单的条件选择5.5 控制程序流程 循环结构5.5.1 For 循环及它的图形化表示法5.5.2 For 循环的数据流运行机制5.5.3 While 循环及它的图形化表示方法5.5.4 While 循环的数据流运行机制5.5.5 循环中添加移位寄存器5.5.6 反馈节点5.6 控制程序流程 事件结构5.6.1 事件结构及它的图形化表示法5.6.2 事件结构的数据流运行机制第 6 章 应用程序控制 VI 和函数6.1 属性节点和调用(方法)节点6.1.1 创建属性节点和调用节点6.1
8、.2 应用程序(App)的属性和方法6.1.3 VI 的属性和方法6.1.4 对象的属性和方法6.1.5 对象的属性的一些深入探索6.2 引用 操控对象的钥匙6.2.1 引用的基本概念6.2.2 获得引用的方法之一:创建引用6.2.3 获得引用的方法之二:打开与关闭引用6.2.4 引用句柄6.3 应用程序引用6.3.1 打开应用程序的引用6.3.2 获得相关计算机的网络地址6.3.3 获得相关计算机 VI 服务器的设置6.3.4 应用程序引用实例6.4 VI 引用6.4.1 打开 VI 的引用6.4.2 VI 的动态调用6.4.3 动态调用 VI 方法之一通过引用节点调用6.4.4 动态调用
9、VI 方法之二通过调用节点调用6.5 控件的引用6.5.1 控件引用的创建方法6.5.2 控件引用的实际应用6.6 VI 脚本(VI Scripting)6.6.1 启动 VI 脚本6.6.2 使用 VI 脚本新建 VI6.6.3 使用 VI 脚本新建 VI 对象6.6.4 VI 脚本的用途6.6.5 VI 脚本的第三方应用第 7 章 文件处理7.1 文件间路径的关系7.1.1 文件常量与所引导的路径间关系7.1.2 非确定性文件路径的引导7.1.3 路径的简单拆分7.1.4 图形化应用程序与开发环境间的路径关系7.2 文件的读写7.2.1 文件的类型7.2.2 文本文件读写的操作过程7.2.
10、3 二进制文件读写的操作过程7.2.4 波形文件读写的操作过程7.2.5 电子表格文件读写的操作过程7.3 配置文件(.ini 文件)7.3.1 INI 文件及 INI 文件格式7.3.2 LabVIEW 中的 INI 文件函数7.3.3 LabVIEW 中的 INI 文件实例第 8 章 图形化语言的编程范式8.1 编程范式8.1.1 编程8.1.2 编程范式8.1.3 编程范式与编程思想8.2 几种常见的编程范式8.2.1 过程化(命令式)编程8.2.2 事件驱动编程8.2.3 面向对象编程8.3 LabVIEW 图形化语言编程范式之一过程化编程8.3.1 数据流编程思想导致过程化编程8.3
11、.2 图形化语言中过程化编程的主要特点8.4 LabVIEW 图形化语言编程范式之二事件编程8.4.1 轮询与事件8.4.2 图形化语言中事件驱动编程的主要特点8.5 LabVIEW 图形化语言编程范式之三面向对象编程8.5.1 LabVIEW 为什么要引入面向对象的编程范式8.5.2 LabVIEW 中的类和对象8.5.3 LVOOP 中的类和对象8.5.4 创建 LabVIEW 类8.5.5 LabVIEW 面向对象编程实例演示第 9 章 图形化语言的设计模式9.1 设计模式概述9.1.1 设计模式9.1.2 LabVIEW 图形化编程语言中的设计模式9.1.3 LabVIEW 图形化编程
12、语言的程序框架9.1.4 图形化语言设计模式的深入探讨9.2 图形化语言设计模式之一标准状态机9.2.1 状态和状态机9.2.2 标准状态机9.3 图形化语言设计模式之二队列消息处理器9.3.1 队列消息9.3.2 队列消息处理器图形化代码9.4 图形化语言设计模式之三生产者队消费者(事件)9.4.1 生产者消费者结构9.4.2 导出生产者消费者(事件)设计模式9.4.3 生产者消费者设计模式(事件)的图形化代码9.5 图形化语言设计模式之四生产者队消费者(数据)9.5.1 导入生产者消费者(数据)模板9.5.2 生产者消费者(数据)设计模式的图形化代码9.6 图形化语言设计模式之五用户界面事
13、件处理器9.6.1 用户界面事件处理器9.6.2 用户界面事件处理器应用之一鼠标双击事件9.6.3 用户界面事件处理器应用之二用户按键操作9.6.4 用户界面事件处理器应用之三用户菜单操作9.7 图形化语言设计模式之六主从设计模式9.7.1 主从设计模式模板9.7.2 主从设计模式图形化代码9.7.3 主从设计模式用于数据传递的验证第 10 章 在 LabVIEW 中管理项目10.1 项目浏览器(Project Explorer)10.1.1 创建一个新项目10.1.2 保存这个新项目10.2 在项目中添加相关的文件夹10.2.1 创建文档文件夹10.2.2 实现文档文件夹内容自动升级10.2
14、.3 为文档文件夹添加其它的子文件夹10.2.4 创建 LabVIEW 代码文件夹10.3 在项目中添加 VI10.3.1 创建 Top Level VI10.3.2 添加子 VI 及自定义控件10.3.3 添加读取文件的路径 VI10.3.4 添加动态调用的 VI10.4 生成应用程序和应用程序安装包10.4.1 生成应用程序10.4.2 生成应用程序安装包第 2 部分:LabVIEW 高级编程第 11 章 LabVIEW 图形化语言的基本设计准则11.1 应用开发中所必要的工作11.1.1 创建完善的需求文档11.1.2 依据需求文档进行硬件设计 11.1.3 软件开发环境的规范化参考文献
15、及附录附录 A:LabVIEW 版本 25 年来的变迁第 1 部分:LabVIEW 编程思想LabVIEW 是一个划时代的图形化编程系统。确切的讲,LabVIEW 是一种采用图形化编程方法的计算机编程语言。采用图形化的编程方法进行计算机程序设计无疑是这个时代的一个伟大的创举。图形化编程,对于那些非软件专业出身的工程师和科学家无疑是个巨大的帮助。同时他们也会面临一个巨大的挑战,即要求他们逐渐适应图形化编程的方法以及图形化程序数据流运行机制的理念。图形化编程,与我们过去所做过的基于文本的程序设计(汇编、BASIC、C)不仅在形式上有很大的不同,在设计方法和设计理念上也存在着许多不同之处。所以,我们
16、将这部分内容归结为 LabVIEW 编程思想。LabVIEW 的确是上手很快,初学者很容易实现单元测试或分析任务。但是 LabVIEW 毕竟是一种编程语言,学习任何语言都不会是一件很简单、很容易的事。只有全面认真领会它的编程思想,才能够设计出合格满意的计算机程序,达到真正游刃有余的掌控计算机的目的。我们的目的是为那些使用过 LabVIEW 的用户提供学习上的帮助,所以没有对 LabVIEW 开发环境的操作使用做更多的介绍。这部分内容请大家寻找其它相关书籍作为参考。如果期待图形化语言编程技能的提高,LabVIEW 宝典、 我和 LabVIEW都是绝好的参考书籍12。LabVIEW 编程思想是一个
17、新的命题,尽管我们作了许多认真的思考,但错误的认识和观点可能还是会存在,十分期待大家批评指正。这里引用郑辉博士的一段话作为共勉3:“知识之上是思想,思想之上是精神。”一个优秀的程序员,除了要迅速掌握知识、善于领悟思想外,还必须具备务实与研究精神、独立和合作精神、批判与自省精神。 序人生历程如果按中学毕业年代来划分,我属于 70 届的高中毕业生。在小学六年级开学不久,一场史无前例、轰轰列列的无产阶级文化大革命开始了。我的整个初中和高中阶段都是处于大革命的状态下,根本没有学到任何真正的数理化知识。我是有其名无其实的高中毕业生(小学五、六年级文化水平)。1971 年底,我来到当地的一个无线电厂做仪表工。该厂是一个数字仪表的生产厂,主要生产数字式频率计(10MHz )、单积分式数字电压表( 4 位半)、数字式万用表等(3 位半)。七年仪表工的经历,使我接触到了晶体管特性图示仪、示波器、数字万用表、电子数字式频率计等常用仪器;使用过国产的数字集成电路,以及国产的模拟集成运算放大器。了解到多种数字电压表的工作原理,比如斜波比较式、单积分、双积分式、三次积分式、逐次比较式、脉冲调宽式等等。