描述
开 本: 16开纸 张: 胶版纸包 装: 平装-胶订是否套装: 否国际标准书号ISBN: 9787121325434
LabVIEW工程师15年经验总结
全程配套700多个VI案例文件
3大完整工程实践一线项目
配套PPT电子课件
第1章 打开LabVIEW编程之门 2
1.1 从VI开始 2
1.1.1 创建VI 3
1.1.2 控件属性设置与快捷菜单 6
1.1.3 创建控件、常量、局部变量、引用、属性节点和方法节点 8
1.1.4 创建自定义控件 10
1.2 编辑前面板和程序框图 12
1.2.1 选择、移动和删除对象 12
1.2.2 使用布局工具 13
1.3 VI及其属性对话框 17
1.3.1 VI的层次结构 17
1.3.2 调用子VI 19
1.3.3 VI的属性设置 19
1.4 基本控件及其使用方法 23
1.4.1 基本数值控件 24
1.4.2 基本布尔控件 30
1.4.3 控件的通用编辑方法 33
1.4.4 字符串和路径控件 35
1.4.5 下拉列表与枚举控件 38
1.4.6 数组控件及其属性设置 39
1.4.7 簇控件 40
1.4.8 时间标识控件与波形数据控件 42
1.5 小结 44
第2章 LabVIEW基本函数 45
2.1 必须了解的一些基本算术运算函数 45
2.1.1 基本运算函数 45
2.1.2 标量之间的基本运算 46
2.1.3 标量与数组的运算 46
2.1.4 数组与数组的运算 46
2.1.5 数组的函数 47
2.1.6 标量与簇的基本运算 55
2.1.7 簇与簇的运算 56
2.1.8 簇的函数 56
2.2 必须了解的位运算函数和逻辑运算函数 59
2.2.1 常用逻辑运算函数 59
2.2.2 位运算 59
2.2.3 深入理解复合运算函数 60
2.3 必须了解的关系运算函数和比较函数 61
2.3.1 比较模式 61
2.3.2 通用关系运算函数 62
2.3.3 “比较0”关系运算函数 63
2.3.4 复杂关系运算函数 63
2.3.5 字符关系运算函数 66
2.3.6 表达式节点与公式快速VI 67
2.4 小结 68
第3章 LabVIEW的程序运行结构 69
3.1 两种不同的循环结构 69
3.1.1 For循环的组成和特点 69
3.1.2 For循环与数组 71
3.1.3 For循环与移位寄存器 73
3.1.4 For循环中的continue和break 74
3.1.5 While循环,不仅仅是循环 75
3.1.6 While循环与定时 76
3.1.7 反馈节点 81
3.2 定时结构 82
3.2.1 定时循环的基本组成要素和配置对话框 83
3.2.2 定时顺序结构 85
3.3 独特的条件结构 85
3.3.1 条件结构的基本结构 86
3.3.2 布尔型输入 86
3.3.3 错误簇输入 86
3.3.4 数值型输入 87
3.3.5 枚举型输入 88
3.3.6 下拉列表输入 88
3.3.7 字符串和组合框输入 88
3.3.8 输入、输出隧道 89
3.3.9 多重If-Else的处理方法 89
3.4 不和谐的顺序结构 90
3.4.1 多线程运行次序 90
3.4.2 两种不同的顺序结构 90
3.4.3 隧道与顺序局部变量 92
3.4.4 顺序结构的替代 92
3.4.5 顺序结构的典型应用 93
3.5 程序框图禁用结构 93
3.6 局部变量、内置全局变量和功能(LV2型)全局变量 94
3.6.1 局部变量 94
3.6.2 内置全局变量 96
3.6.3 功能(LV2型)全局变量 97
3.7 事件结构 99
3.7.1 事件结构的基本构成和创建方法 99
3.7.2 事件的分类及其特点 100
3.7.3 事件结构之间的数据传送与共享 103
3.7.4 事件发生的次序、事件过滤和转发 103
3.7.5 正确地使用事件结构 105
3.8 小结 106
第4章 LabVIEW的数据结构及内存优化 107
4.1 常用数据类型转换函数 107
4.1.1 “强制类型转换”函数 107
4.1.2 “平化至字符串”函数与“从字符串还原”函数 108
4.1.3 变体数据 109
4.1.4 变体数据数据类型解析 109
4.2 整数的类型转换及内存映射 110
4.2.1 布尔型数据与字符串和数值的相互转换 110
4.2.2 U8类型数据与字符串之间的相互转换 111
4.2.3 整数与整数类型的相互转换 111
4.3 其他标量数据类型的类型转换及内存映射 112
4.3.1 定点数、浮点数的类型转换与内存映射 112
4.3.2 复数的类型转换及内存映射 115
4.3.3 时间标识的类型转换与内存映射 115
4.4 复合数据类型 115
4.4.1 标量数组的内存映射 116
4.4.2 字符串、路径和字符串数组的内存映射 117
4.4.3 LabVIEW使用的编码 118
4.5 簇的内存映射 118
4.5.1 标量组成的簇 119
4.5.2 包含数组和字符串的簇 119
4.6 类型描述符 120
4.6.1 类型描述符的基本构成要素 120
4.6.2 常用类型描述符列表 120
4.6.3 常见数据类型的类型描述符结构 121
4.7 OpenG中有关类型描述符的函数 122
4.7.1 类型描述符函数 123
4.7.2 利用类型描述符处理枚举型数据 124
4.7.3 利用类型描述符处理簇 124
4.8 几种常用的内存分析工具和方法 124
4.8.1 内存的重要性 125
4.8.2 内存和性能查看工具 126
4.8.3 VI使用的内存 127
4.8.4 优化内存的一般注意事项 128
4.8.5 数组与内存优化 129
4.8.6 在循环中避免不必要的计算、读/写控件或者变量 132
4.9 影响VI运行速度的因素 133
4.9.1 硬件输入/输出 133
4.9.2 屏幕显示 134
4.10 小结 134
第5章 字符串与文件存储 135
5.1 字符串 135
5.1.1 几种常用的字符串常量 135
5.1.2 几种常用的字符串函数 136
5.1.3 “匹配模式”和“匹配正则表达式”函数 137
5.1.4 字符串与数值的相互转换 140
5.1.5 功能强大的“格式化字符串”函数和“扫描字符串”函数 141
5.1.6 数组与电子表格字符串 144
5.1.7 附加字符串函数 144
5.2 文件存储 145
5.2.1 文本文件与二进制文件的区别 145
5.2.2 文件常量和通用目录、文件函数 146
5.2.3 构造路径的方法 147
5.2.4 文本文件的读写 150
5.2.5 数据记录文件的读写 154
5.2.6 读/写二进制文件 155
5.2.7 INI文件的读写 157
5.2.8 XML文件的读写 159
5.2.9 注册表的读写 160
5.2.10 TDM文件 162
5.2.11 TDMS文件 164
5.3 小结 167
第2部分 高级篇
第6章 LabVIEW对象的解析 169
6.1 LabVIEW控件对象的层次继承结构 169
6.1.1 布尔控件的层次继承结构 169
6.1.2 通用类的属性 170
6.1.3 图形对象类 172
6.2 图形对象类的子类 173
6.2.1 前面板类 173
6.2.2 窗格类和分隔栏类 174
6.2.3 LabVIEW的坐标映射 175
6.2.4 修饰类 177
6.3 控件类 179
6.3.1 控件类的常用属性 179
6.3.2 控件类的常用方法 181
6.3.3 数值控件类 182
6.4 常用控件的专有属性 183
6.4.1 布尔控件的专有属性 183
6.4.2 枚举控件和下拉列表控件的专有属性 184
6.4.3 字符串控件、路径控件和组合框控件的专有属性 185
6.4.4 数组控件的属性和方法 187
6.4.5 簇的属性及方法 189
6.5 引用句柄 189
6.6 VI的属性 191
6.6.1 获取VI的引用 192
6.6.2 常用VI属性 192
6.7 常用VI方法 195
6.7.1 获取前面板、程序框图和VI图标的图像 195
6.7.2 打印控制 196
6.7.3 默认值方法 196
6.8 动态调用VI 197
6.8.1 静态调用和动态调用的比较 197
6.8.2 通过“引用节点调用”函数动态调用VI 197
6.8.3 一般类型VI的动态调用 199
6.8.4 创建闪屏 201
6.8.5 创建后台运行程序 202
6.8.6 创建向导程序 202
6.8.7 动态调用VI之间的数据交换 203
6.9 应用程序的属性和方法 204
6.9.1 获取应用程序的引用句柄 205
6.9.2 应用程序的常用属性 205
6.10 小结 206
第7章 高级控件的运用 207
7.1 列表框 207
7.1.1 列表框的创建及显示风格 207
7.1.2 列表框的常用属性、方法与事件 207
7.1.3 列表框的应用举例 208
7.2 多列列表框 211
7.2.1 显示多列项目并排序 212
7.2.2 多列列表框的特效制作 214
7.3 表格 214
7.3.1 表格的常用属性和方法 215
7.3.2 表格的应用举例 218
7.4 树形控件 222
7.4.1 树形控件的创建与静态编辑 222
7.4.2 树形控件的常用属性、方法和事件 224
7.4.3 树形控件高级应用举例 225
7.5 波形图表 227
7.5.1 波形图表的组成要件 227
7.5.2 波形图表的输入类型 229
7.5.3 波形图表专用属性 229
7.5.4 波形图表应用举例 231
7.6 波形图 232
7.6.1 波形图控件的创建和组成要件 233
7.6.2 波形图控件的输入类型 233
7.6.3 波形图控件的专用属性 236
7.6.4 波形图控件的高级应用举例 238
7.7 XY图 240
7.7.1 XY图的输入数据类型 241
7.7.2 XY图的高级应用 243
7.8 强度图表和强度图 245
7.9 数字数据、数字波形数据与数字波形图 246
7.9.1 数字数据 246
7.9.2 数字波形数据和数字波形图 246
7.10 图片控件 247
7.10.1 利用图片控件显示图片 247
7.10.2 常用绘图操作函数 249
7.10.3 图片控件的高级应用 251
7.11 小结 253
第8章 文本式编程与外部程序接口 254
8.1 公式节点 254
8.1.1 公式节点的数据类型、语法与控制结构 254
8.1.2 公式节点的应用举例 256
8.2 调用库函数 257
8.2.1 DLL与API函数 257
8.2.2 如何调用DLL函数 259
8.2.3 常用API函数的调用 265
8.2.4 LabVIEW调用DLL的局限性 267
8.3 CIN 270
8.3.1 CIN创建的一般过程 271
8.3.2 CIN的数据类型和常用函数 273
8.3.3 CIN与内存管理器 277
8.3.4 CIN的运行过程和数据共享 280
8.4 系统命令 283
8.5 剪贴板 284
8.6 DDE库 285
8.6.1 DDE概述 286
8.6.2 LabVIEW中DDE的常用方法 286
8.7 ActiveX控件与ActiveX文档 288
8.7.1 ActiveX的基本概念 288
8.7.2 ActiveX控件的调用过程 289
8.7.3 ActiveX应用实例 289
8.7.4 ActiveX自动化服务器 291
8.8 .NET技术 292
8.8.1 .NET控件 292
8.
前 言
计算机的出现,彻底改变了人们的工作和生活方式。如今计算机已经无处不在,进入了每个人的生活之中。在工程技术人员看来,计算机不仅仅是人们常见的PC,也包括各种微处理器。从这个角度看,我们无时无刻不在使用计算机,例如,电视、洗衣机、自动提款机等都依赖计算机来实现各种便捷的功能。
相同的计算机可以完成不同的工作,在于它们使用不同的程序,而程序是由计算机编程语言创建的。短短几十年中,出现了众多的编程语言,这些编程语言的共同特点是采用文本方式创建程序。文本方式编程对编程人员要求很高,这使得计算机编程只能是少数人才可以从事的职业。
美国国家仪器公司(National Instruments, NI)的创新软件产品LabVIEW,允许用图形方式编程,摒弃了晦涩难懂的文本代码,使得计算机编程不再是少数人的专利。LabVIEW的早版本诞生于1986年,几乎和Windows的早版本同步,这注定了LabVIEW是多平台的编程语言,适合于不同的操作系统。
20世纪80年代初,NI公司是GPIB总线设备的主要供货商,丰富的硬件经验和强大的软件开发需求,促使NI公司的工程师们决心寻找一种代替传统编程语言的开发工具,这导致了1986年LabVIEW的横空出世。LabVIEW是由测试工程师开发的专用编程语言,因此,LabVIEW具有鲜明的行业特点,早主要用于测试测量领域。NI公司独创了虚拟仪器的理念,提出了“软件就是仪器”的理念,并逐步成为业界的标准。
随着LabVIEW的不断发展,几乎每隔一两年,都要推出新的版本。LabVIEW的应用范围已经覆盖了工业自动化、测试测量、嵌入式应用、运动控制、图像处理、计算机仿真、FPGA等众多领域。以LabVIEW为核心,采用不同的专用工具包和统一的图形编程方式,可以实现不同技术领域的需求。
由于LabVIEW版本升级过快,导致许多函数、VI的名称与图标发生了变化。使用LabVIEW新版本的读者,会发现本书第1版中程序框图的函数、VI与新版LabVIEW对应不上,而且LabVIEW每次更新都增加了很多新功能。鉴于此,我们编写了本书的第2版。第2版在2016新版LabVIEW的基础上,重新编写了绝大部分程序框图,同时也针对新功能,增加了对应的内容。尤其是对第10章,重写了大部分内容,增加了许多流行的框架结构的介绍。除了LabVIEW本身的框架外,也介绍了几种流行的第三方常用框架结构。
本书要点
本书作者多年使用LabVIEW作为主要的编程语言,因此特别关注LabVIEW在工业领域的具体运用以及LabVIEW的实用编程技术。本书共17章,分为入门篇、高级篇、工程应用篇。
第1~5章为入门篇,介绍了LabVIEW的基本概念、基本函数的用法和常用的运行结构,详尽地分析了LabVIEW的基本数据结构和文件存储方式。
第6~11章为高级篇,介绍了应用程序、VI和控件的引用、属性和方法,以及各类高级控件的运用方法。第8章介绍了LabVIEW的文本编程方式及DLL、C语言接口,第9章详细介绍了基于MATLAB语法的MathScript编程技术,第10章介绍了LabVIEW基于组件的编程方法。
第12~17章为工程应用篇,具体而细致地讲解了在做实际工程开发时所用到的LabVIEW编程技术。本篇结合LabVIEW的常用工具包,具体分析了计算机串口、并口、网络通信方面的编程技术,以及数据记录和监控工具包、数据库连接工具包、报表生成工具包、状态图工具包、FPGA工具包等的应用。第13、第14章详细介绍了数据采集的基本原理和常用编程方法,其中重点介绍了LabVIEW在实时系统下的运用。第15章讲解了 LabVIEW实时系统的开发案例。第16章讲解了LabVIEW数据采集系统开发案例。第17章讲解了FPGA的开发案例,以及如何利用LabVIEW图形编程方式,提高开发效率。
本书读者
本书可作为高等院校通信、测量技术、自动控制等相关课程的教材和教学参考书,也可作为相关工程技术人员设计开发仪器或自动测试系统的技术手册。
本书特色
本书内容非常丰富,在每个章节都安排了大量的示例,针对具体编程实践中遇到的问题,提出了多种解决方法。在兼顾基础知识的前提下,深入讨论了LabVIEW的高级编程方法和编程技巧。
本书的宗旨是作为实用工具书,侧重于来自工程实践的一线案例。笔者在写作过程中,与众多的LabVIEW爱好者进行了充分的沟通与交流,总结了编程过程中经常遇到的问题,并作为本书的重要内容。
本书使用了大量篇幅讲解NI公司各种专用工具包的运用,这部分内容具有一定的深度和实用价值,特别适合于具有一定基础的编程人员学习运用。在基础篇中,虽然也介绍了许多LabVIEW的基础知识,但还是侧重于具体应用,其中大量的例程可以直接在具体项目中使用。
在高级篇中,重点介绍了LabVIEW常用的编程模式,以及状态图工具包的运用,同时介绍了新增的面向对象的编程方法。
补遗说明
本书写作时主要使用8.6版本,但是书中介绍的具体内容并不限于特定的版本,因此无版本限制。本书案例文件和相关课件在网址read.zhiliaobang.com可以下载,方便读者提高学习效率,也方便教师教学。此外,对于比较重要的内容,为了让读者印象深刻,我们以“学习笔记”的体例呈现出来。
致谢与分工
本书由陈树学、刘萱两位工程师编写,我们有多年的LabVIEW实际开发经验,经过浓缩和总结才成此书。在编写本书的过程中得到张国强老师的大力支持,他为我们提供了开发硬件,使得写作能在真实的开发环境中进行,应该说没有他的热心帮助完成本书是难以想象的事情。本书也离不开成都道然科技有限责任公司的专业策划支持。因为本书作者为工程技术人员,对于写作并不擅长,书中错漏之处在所难免,敬请批评指正。能够为LabVIEW在国内的推广使用做一点力所能及的贡献,能够对广大的LabVIEW爱好者有所帮助,是我们的愿望。如果你有任何意见或者建议欢迎联系:[email protected]。
评论
还没有评论。