入门篇 2
第1章LabVIEW概述 2
1.1 LabVIEW与G语言 2
1.2 LabVIEW与虚拟仪器 3
1.3 LabVIEW的发展历程 5
1.4 LabVIEW2011新特性 5
1.5思考与练习 7
第2章 开始LabVIEW编程 8
2.1 LabVIEW安装 8
2.2启动LabVIEW 12
2.3基本概念 14
2.3.1 VI 14
2.3.2前面板 14
2.3.3程序框图 16
2.4 LabVIEW操作面板 17
2.4.1工具选板 17
2.4.2控件选板 18
2.4.3函数选板 20
2.5 LabVIEW菜单栏及工具栏 20
2.5.1 LabVIEW菜单栏 20
2.5.2 LabVIEW工具栏 22
2.6 VI的创建与编辑 22
2.6.1 VI的创建 22
2.6.2 VI的编辑 23
2.7 VI的运行与调试 25
2.8 LabVIEW常用快捷键 25
2.9 LabVIEW帮助 26
2.9.1即时上下文帮助 26
2.9.2查找范例 26
2.9.3在线帮助 27
2.10综合实例:创建一个“Hello World”程序 27
2.11思考与练习 29
基础篇 32
第3章LabVIEW中的数据类型 32
3.1基本数据类型 32
3.1.1数字型 34
3.1.2布尔型 35
3.1.3字符串型与路径 36
3.1.4枚举型 37
3.1.5簇 38
3.1.6数组 38
3.1.7波形数据 39
3.1.8时间标识 39
3.1.9变体 39
3.2数据类型之间的转换 40
3.2.1不同数字类型之间的转换 40
3.2.2数字/字符串转换 41
3.2.3字符串/数组/路径转换 43
3.2.4布尔值/数字值转换 44
3.2.5数字与时间标识的转换 45
3.3数据运算与操作 45
3.3.1基本数学运算与操作 45
3.3.2字符串运算与操作 47
3.3.3布尔运算与操作 48
3.3.4比较运算 49
3.3.5数组与矩阵操作 51
3.3.6簇操作 55
3.3.7波形数据操作 57
3.4综合实例:模拟温度监测 57
3.5思考与练习 58
第4章LabVIEW中的程序结构 59
4.1循环结构 59
4.1.1 For循环 60
4.1.2 While循环 63
4.2顺序结构 64
4.2.1平铺式顺序结构 64
4.2.2层叠式顺序结构 66
4.3定时结构 67
4.3.1定时循环 67
4.3.2定时顺序 69
4.3.3定时VI 69
4.4条件结构 70
45事件结构 72
4.6公式节点 76
4.7反馈节点 78
4.8变量 78
4.8.1局部变量 78
4.8.2全局变量 80
4.8.3共享变量 82
4.9禁用结构 83
4.9.1程序框图禁用结构 83
4.9.2条件禁用结构 83
4.10综合实例 84
4.10.1综合实例1:数组求和 84
4.10.2综合实例2:动态窗口管理 84
4.11思考与练习 87
第5章LabVIEW中的数据表达与显示 88
5.1数值型数据的表达与显示 88
5.1.1数值输入与显示控件 89
5.1.2滑动杆控件 91
5.1.3进度条控件 92
5.1.4旋钮类控件 92
5.1.5其他个性控件 92
5.2布尔型数据的表达与显示 93
5.3字符型数据的表达与显示 95
5.4用二维图形表达与显示数据 97
5.4.1波形图表与波形图 98
5.4.2 XY图和ExpressXY图 106
5.4.3强度图表与强度图 107
5.4.4数字波形图和混合波形图 107
5.5用三维图形表达与显示数据 109
5.5.1三维曲面图 110
5.5.2三维参数图 111
5.5.3三维曲线图 112
5.6其他图形显示控件 112
5.6.1极坐标图 113
5.6.2最小—最大曲线显示控件 113
5.7综合实例:绘制李萨如图形 114
5.8思考与练习 115
第6章LabVIEW中的文件I/O 116
6.1文件I/O基本概念介绍 116
6.2常用文件 117
6.2.1二进制文件(.dat) 117
6.2.2文本文件(.txt) 120
6.2.3电子表格文件(.xls) 123
6.3 LabVIEW的特殊文件 125
6.3.1波形文件(Waveform Files) 125
6.3.2 XML文件 126
6.3.3数据存储文件(TDM) 127
6.3.4高速数据流文件(TDMS) 128
6.3.5测量文件(LVM) 130
6.4其他文件 131
6.4.1音频文件(.wav) 131
6.4.2压缩文件(.zip) 132
6.4.3配置文件(.ini) 133
6.5文件工具 133
6.5.1路径、目录操作 133
6.5.2获取文件、目录的信息 134
6.5.3文件位置与大小设置 135
6.5.4文件操作 136
6.6综合实例 137
6.6.1综合实例1:文件循环写入 137
6.6.2综合实例2:文件循环保存 137
6.6.3综合实例3:读取Excel文件 138
6.7思考与练习 139
应用篇 142
第7章 数学分析 142
7.1初等与特殊函数 142
7.2线性代数 143
7.3微积分 145
7.4概率与统计 147
7.5最优化 148
7.6微分方程 149
7.7几何 150
7.8多项式 151
7.9曲线拟合 152
7.10插值 153
7.11脚本与公式 155
7.12综合实例:水箱问题 156
7.13思考与练习 157
第8章 信号处理 158
8.1信号发生 158
8.1.1基本函数发生器 159
8.1.2多频信号发生器 161
8.1.3噪声信号发生器 162
8.1.4用公式节点产生信号 163
8.1.5用Express VI产生信号 163
8.2时域分析 164
8.2.1基本平均值与均方差测量 165
8.2.2过渡态测量 166
8.2.3提取信号单频信息 169
8.2.4相关 170
8.2.5谐波失真分析 171
8.3频域分析 172
8.3.1傅里叶变换 173
8.3.2拉普拉斯变换 174
8.3.3功率谱分析 175
8.4信号调理 176
8.4.1滤波器 176
8.4.2窗函数 178
8.4.3波形调理 179
8.5波形监测 183
8.5.1边界检测 183
8.5.2波峰波谷检测 184
8.5.3触发与门限 185
8.6逐点分析 188
8.7综合实例:声音回波特性分析 189
8.8思考与练习 190
第9章 外部程序接口 191
9.1 DLL与API调用 191
9.1.1 DLL调用 191
9.1.2参数类型的配置 193
9.1.3 Windows API调用 194
9.2可执行文件的调用 197
9.3 ActiveX调用 198
9.3.1 ActiveX自动化 198
9.3.2 ActiveX容器 200
9.3.3 ActiveX事件 201
9.3.4 LabVIEW作为服务器端 203
9.4 LabVIEW与MATLAB混合编程 205
9.5综合实例:用LabVIEW与MATLAB混合编程实现小波去噪 205
9.6思考与练习 207
第10章 多线程技术 208
10.1多线程基本概念 208
10.2多线程带来的问题 210
10.3 LabVIEW中的多线程 211
10.3.1 LabVIEW的执行系统 211
10.3.2运行队列 213
10.3.3 LabVIEW多线程中的DLL 214
10.3.4定制线程配置 215
10.3.5 LabVIEW对多核CPU的支持 218
10.4生产者/消费者模式 219
10.4.1生产者/消费者的优势 219
10.4.2生产者/消费者基本组成结构 219
10.4.3多消费者循环 223
10.4.4基于队列状态机的生产者/消费者结构 224
10.5综合实例:多线程计时器 226
10.6思考与练习 226
第11章 数据采集与仪器控制 227
11.1数据采集 227
11.1.1数据采集系统基本组成 227
11.1.2 NI数据采集硬件产品及其应用领域 229
11.1.3硬件选型重要参数 230
11.1.4配置管理软件MAX 231
11.1.5 NI-DAQ应用举例 235
11.2仪器控制 239
11.2.1常用总线介绍 239
11.2.2仪器驱动程序 242
11.2.3 LabVIEW仪器控制 242
11.2.4 LabVIEW与第三方硬件的连接 249
11.3综合实例:“NI PCI-MIO-16E-1”采集卡使用 249
11.4思考与练习 253
第12章 通信 254
12.1串行通信 254
12.1.1串口介绍 254
12.1.2串口接线定义与连接方式 255
12.1.3 LabVIEW中的串口编程 258
12.2网络通信 262
12.2.1 TCP协议通信 262
12.2.2 UDP协议通信 267
12.3 DataSocket通信 269
12.3.1 DataSocket技术 269
12.3.2 DataSocket逻辑构成 270
12.3.3 DataSocket编程 271
12.4远程面板 273
12.4.1配置LabVIEW WebServer 274
12.4.2在LabVIEW环境中操作Remote Panels 276
12.5综合实例:基于TCP协议的DSP调试软件 277
12.6思考与练习 280
第13章 界面设计与美化 281
13.1界面设计的一般原则与常用界面风格 281
13.1.1界面设计的一般原则 281
13.1.2常用界面风格 282
13.2菜单设计 284
13.3属性节点与调用节点 285
13.4子VI调用与重载 287
13.4.1子VI的创建与调用 287
13.4.2多面板程序设计 289
13.4.3动态载入界面 290
13.5界面美化 293
13.5.1使用布局工具排列对象 293
13.5.2添加背景图片 293
13.5.3自定义控件 294
13.5.4动画 296
13.5.5利用控件选板与工具选板 297
13.5.6 VI属性设置 299
13.6 综合实例:用属性节点控制Tab控件 300
13.7思考与练习 302
第14章 代码优化 303
14.1代码优化的必要性 303
14.2 VI性能分析工具 303
14.2.1性能和内存分析工具 304
14.2.2显示缓冲区分工具 306
14.2.3 VI统计工具 307
14.2.4查找可并行的循环工具 308
14.3 VI内存使用 309
14.3.1虚拟内存 309
14.3.2 VI组件内存管理 310
14.3.3数据流编程和数据缓冲区 311
14.3.4条件输入控件和数据缓冲区 312
14.3.5前面板的内存问题 312
14.4高效使用内存的规则 312
14.5常用代码优化方法与技巧 313
14.5.1及时释放内存 313
14.5.2输出重复使用输入缓冲区 314
14.5.3使用一致的数据类型 314
14.5.4避免频繁调整数组大小 315
14.5.5开发高效的数据结构 317
14.5.6使用元素同址操作结构 319
14.5.7防止内存泄漏 321
14.5.8动态调用子VI 321
14.6思考与练习 322
第15章 项目管理与报表生成 323
15.1项目管理 323
15.1.1项目浏览器 323
15.1.2源代码管理工具 324
15.1.3 LLB管理器 325
15.2报表生成 326
15.2.1报表生成VI介绍 326
15.2.2简易报表生成 328
15.2.3高级报表生成 330
15.2.4报表生成工具包 331
15.3综合实例:报表生成 335
15.4思考与练习 336
第16章 应用程序发布 337
16.1 LabVIEW程序生成规范 337
16.2发布应用程序前的准备 338
16.3创建源代码发布 339
16.4创建独立应用程序(EXE) 344
16.5创建安装程序(SETUP) 351
16.6创建共享库(DLL) 357
16.7思考与练习 360
第17章 工程应用实例介绍 362
17.1基于声卡的信号采集与分析软件 362
17.2 DSO25216驱动开发 368
17.3管道漏点检测与定位 374
17.4多通道数据采集软件 382
17.5基于串口通信的上位机控制软件 385
疑难问题解答 390
第18章LabVIEW应用技巧集萃及常见疑难解答 390
18.1 LabVIEW应用技巧集萃 390
18.2常见疑难问题及解答 396
18.2.1数据读取与文件操作方面的问题 396
18.2.2仪器控制与驱动方面的问题 397
18.2.3界面与显示方面的问题 398
18.2.4程序运行与应用程序发布方面的问题 400
18.2.5其他问题 401