《我和LabVIEW一个NI工程师的十年编程经验 第2版》PDF下载

  • 购买积分:15 如何计算积分?
  • 作  者:阮奇桢编著
  • 出 版 社:北京:北京航空航天大学出版社
  • 出版年份:2012
  • ISBN:9787512408487
  • 页数:468 页
图书介绍:本书是作者在学习和使用LabVIEW过程中的经验总结。书中从浅入深对LabVIEW最常用的功能和LabVIEW学习过程中常见的问题进行了一一介绍。此外,对于LabVIEW帮助文档中没有涉及的内容,如LabVIEW程序设计的原理、原则,如何选取最适合当前情景的编程方法。

第0章 什么是LabVIEW 1

0.1 LabVIEW与文本编程语言的区别 1

0.2 G语言 2

0.3 LabVIEW的应用领域 3

0.4 LabVIEW的发展历史 4

第1章LabVIEW入门 5

1.1 “Hello, World!”程序 5

1.1.1启动界面 5

1.1.2创建一个新VI 6

1.1.3让VI显示“您吃了吗?” 7

1.1.4 LabVIEW程序的运行逻辑 9

1.2如何学习LabVIEW 12

1.2.1学习LabVIEW的3种方式 12

1.2.2自学LabVIEW 13

1.2.3 LabVIEW的帮助文档 14

1.2.4 LabVIEW的范例 16

1.2.5寻求他人帮助 18

1.3编写更复杂的程序 19

1.3.1美化VI 19

1.3.2让VI持续运行 23

1.3.3项目 25

1.3.4使用子VI 26

1.3.5创建子VI 28

1.3.6从程序框图创建子VI 30

1.4设置个性化编程环境 31

1.4.1 LabVIEW的设置选项 31

1.4.2函数和控件选板的设置 32

1.4.3工具选板 34

第2章 数据 35

2.1数值 35

2.1.1数值控件及显示格式 35

2.1.2常量 36

2.1.3表示法 37

2.1.4数值运算的常用函数 38

2.1.5表达式节点 39

2.1.6公式Express VI 39

2.1.7公式节点 40

2.1.8 MathScript脚本节点 43

2.1.9数值的单位 43

2.2其他数据类型 44

2.2.1枚举型 44

2.2.2布尔型 47

2.2.3数组型 47

2.2.4簇 51

2.2.5字符串 52

2.2.6路径 54

2.3数据类型之间的转换 55

2.3.1数值表示法之间的转换 55

2.3.2数值与字符串之间的转换 56

2.3.3数值与布尔类型之间的转换 56

2.3.4路径与其他数据类型之间的转换 56

2.3.5与时间相关的转换 57

2.3.6变体 58

2.3.7数据平化至字符串 62

2.3.8数据平化至XML 62

2.3.9强制转换 64

2.4控件和数据在程序中的使用 66

2.4.1控件与变量的关系 66

2.4.2控件的标签和标题 67

2.4.3控件的默认值 68

2.4.4局部变量 69

2.4.5属性节点 71

2.4.6调用节点 73

2.5应用实例 74

2.5.1字符串公式求值 74

2.5.2字符串转换为布尔数组 74

2.5.3程序运行中改变控件标题 75

2.5.4禁止枚举控件中的某些项 75

2.5.5在字符串中显示多种字体 77

2.5.6为列表框控件添加自定义的图标 77

第3章 基本程序结构 80

3.1顺序结构 80

3.1.1程序执行顺序 80

3.1.2创建顺序结构 81

3.1.3层叠式顺序结构 82

3.1.4平铺式顺序结构 84

3.1.5“无形胜有形”的最高境界 84

3.2条件结构 86

3.2.1布尔类型的条件选择结构 87

3.2.2其他数据类型的条件选择 88

3.2.3合理设置选择条件 88

3.2.4条件结构隧道 89

3.2.5选择函数 90

3.3程序框图禁用结构 91

3.4条件禁用结构 92

3.5 for循环结构 93

3.5.1 for循环 93

3.5.2循环结构隧道 94

3.5.3移位寄存器 97

3.5.4反馈节点 98

3.5.5结束条件 103

3.6 while循环结构 104

3.7事件结构 105

3.7.1事件结构 105

3.7.2按照产生源来区分事件的种类 105

3.7.3编辑事件 107

3.7.4按照发出时间区分事件的种类 108

3.7.5事件结构的使用 110

3.7.6动态事件 112

3.7.7用户自定义的事件 114

3.8定时结构 116

3.8.1定时函数和VI 116

3.8.2使用事件结构定时 119

3.8.3定时循环 120

第4章 常用程序结构模式 121

4.1错误处理机制 121

4.1.1不可预期的错误 121

4.1.2可预期的错误 124

4.1.3自定义错误 124

4.1.4显示错误信息 125

4.1.5调试时显示错误信息 126

4.1.6合并错误 127

4.2可重入VI 128

4.2.1同一VI的并行运行 129

4.2.2可重入VI的副本 130

4.3状态机 131

4.3.1循环条件结构 131

4.3.2单状态传递的状态机 132

4.3.3多状态传递的状态机 133

4.3.4状态机的使用 134

4.3.5状态图工具包 134

4.4全局变量 135

4.4.1全局变量VI 136

4.4.2共享变量 138

4.4.3功能全局变量 139

4.4.4基于功能全局变量的程序功能模块 141

4.5界面程序 143

4.5.1界面程序的程序框图设计 143

4.5.2用户自定义事件的设计 145

4.5.3对耗时代码的处理 147

4.5.4其他注意事项 148

4.5.5回调VI 148

4.5.6同一功能对应多种不同界面的应用程序 150

4.5.7两种实现界面程序方法的对比 156

4.6多态VI 159

4.6.1使用变体作为子VI的参数类型 159

4.6.2多态VI的概念 160

4.6.3编写多态VI 160

4.6.4多态VI的注意事项 162

4.6.5菜单设计的小技巧 163

4.7 Express VI 163

4.7.1什么是Express VI 163

4.7.2子VI在程序框图上的显示方式 164

4.7.3 Express VI工作原理 166

4.7.4 Express VI的优缺点 169

4.7.5开发自己的Express VI 170

4.8传引用 171

4.8.1 LabVIEW自带的传引用数据类型 171

4.8.2全局变量传引用 172

4.8.3队列 172

4.8.4数据记录文件引用句柄 174

4.8.5借助C语言 175

4.8.6数据引用节点 176

4.8.7传引用引起的死锁 179

第5章 调用外部程序 181

5.1动态链接库 181

5.1.1背景知识 181

5.1.2 CLN和CIN节点 182

5.1.3 DLL的加载方式 183

5.1.4函数的设置 184

5.1.5简单数据类型参数的设置 185

5.1.6结构型参数的设置 189

5.1.7返回值的设置 191

5.1.8对C语言中指针的处理 192

5.1.9 LabVIEW提供的C接口函数 193

5.1.10导入共享库工具 194

5.2 ActiveX 196

5.2.1 ActiveX控件 196

5.2.2使用ActiveX控件 196

5.2.3 ActiveX控件的事件 199

5.2.4 ActiveX文档 201

5.2.5 ActiveX自动化 202

5.3.NET 203

5.4.EXE 203

第6章VI服务器 205

6.1概念 205

6.1.1什么是VI服务器 205

6.1.2 VI Scripting 205

6.2运行中改变界面 207

6.2.1属性节点 207

6.2.2 VI的属性 208

6.2.3得到对象的引用 209

6.2.4对象类的层次结构 210

6.2.5类浏览器 211

6.3装载和运行子VI 212

6.3.1静态与动态装载子VI 212

6.3.2动态调用VI 214

6.3.3显示多个子界面窗口 216

6.3.4插件结构 216

6.3.5递归调用 217

6.3.6后台任务 220

6.3.7启动画面 222

6.3.8异步调用 223

6.4动态创建和修改VI 228

6.4.1激活VI脚本授权 228

6.4.2创建VI 230

6.4.3创建新的控件 230

6.4.4创建程序框图 230

6.4.5批量修改VI 232

6.5网络服务 232

6.6 ActiveX接口 233

第7章 测试测量应用程序设计 234

7.1“采集、处理、显示”型程序的结构模型 234

7.1.1程序结构的划分 234

7.1.2普通循环模型 235

7.1.3管道流水线模型 236

7.1.4“生产者一消费者”模型 237

7.2 Express VI 238

7.2.1测试程序相关的Express VI 238

7.2.2应用 239

7.3数据采集 241

7.3.1使用驱动程序 242

7.3.2使用硬件设备的C语言驱动程序 243

7.3.3编写驱动程序 244

7.3.4可互换虚拟仪器驱动程序 244

7.3.5数据采样时钟的设置 246

7.4显示 247

7.4.1波形图表和波形图控件 247

7.4.2波形数据类型 247

7.4.3多曲线显示 249

7.4.4中断的曲线 250

7.4.5大量数据的显示 251

7.4.6高速数据的显示 253

7.4.7强度图 255

7.4.8用鼠标在波形图控件上选取一条曲线 257

7.5存储 259

7.5.1文本文件和二进制数据文件 259

7.5.2文本文件 259

7.5.3二进制数据文件 259

7.5.4数据库 260

7.5.5生成报表 260

第8章 调试 261

8.1集成调试环境 261

8.1.1列出编译错误 261

8.1.2运行时的调试工具 262

8.1.3全局选项 264

8.1.4 VI的属性 264

8.2断点和探针 265

8.2.1断点 265

8.2.2探针 266

8.2.3选取其他控件作为探针 266

8.2.4条件探针 266

8.2.5用户自定义探针 267

8.2.6集成的探针监视窗口 269

8.3其他查找程序错误的工具和方法 271

8.3.1程序框图禁用结构 271

8.3.2使用消息对话框和文件 272

8.4 LabVIEW代码中的常见错误 273

8.4.1数值溢出 273

8.4.2 for循环的隧道 273

8.4.3循环次数 274

8.4.4移位寄存器的初始化 275

8.4.5簇中元素的顺序 275

8.4.6时序错误 276

8.4.7竞争状态 278

8.4.8等待循环中的延时 278

8.5提高程序运行效率 279

8.5.1找到影响程序运行速度的瓶颈 279

8.5.2查看一段代码的运行时间 280

8.6解决程序效率低下的瓶颈 281

8.6.1读/写外设、文件 281

8.6.2界面刷新 283

8.6.3循环内的运算 284

8.6.4调试信息 285

8.6.5多线程和内存的使用 285

8.6.6利用等待用户反馈的时间 286

8.7 DLL调试 286

8.7.1调试LabVIEW调用的DLL 286

8.7.2调试LabVIEW生成的DLL 286

第9章 管理LabVIEW项目 288

9.1项目浏览器 288

9.1.1项目浏览器的功能 288

9.1.2项目中的层次结构 288

9.1.3文件结构 290

9.1.4按照文件的物理结构来查看项目 290

9.1.5源代码管理 291

9.1.6比较和合并VI 293

9.1.7运行环境 294

9.2库 295

9.2.1创建库 295

9.2.2 VI的命名空间 296

9.2.3为库中VI设置权限 297

9.2.4 LLB文件 298

9.3发布产品 299

9.3.1应用程序 299

9.3.2共享库 303

9.3.3源代码 305

9.3.4网络应用 308

9.3.5安装程序 311

9.3.6压缩包 311

9.3.7打包库 313

第10章 界面设计 316

10.1界面设计原理 316

10.1.1一致性 317

10.1.2界面元素的关联 320

10.1.3帮助和反馈信息 322

10.1.4限制 325

10.1.5突出重点 326

10.2界面设计中常用的规范和实现方法 327

10.2.1界面尺寸调整 327

10.2.2应用程序的退出按钮 336

10.2.3菜单 339

10.2.4控件快捷菜单 340

10.2.5使用键盘操作界面 341

10.2.6用户自定义控件 342

10.2.7组合控件 345

10.3界面设计实例 349

10.3.1利用LabVIEW自带控件 350

10.3.2实现运行时改变界面的代码 352

10.3.3装饰和背景图片 354

10.3.4用户自定义控件 357

10.3.5改进界面的实现方法 357

10.3.6使用绘图控件 360

10.3.7界面的特殊效果 364

10.3.8动画 366

第11章 代码风格与优化 369

11.1 LabVIEW的运行机制 369

11.1.1 LabVIEW的编程思想 369

11.1.2 LabVIEW与文本语言的差异 370

11.1.3 LabVIEW是编译型语言还是解释型语言 373

11.1.4数据流驱动的编程语言 376

11.1.5传值和传引用 377

11.1.6 VI中的数据空间 378

11.2内存优化 380

11.2.1 VI在内存中的结构 380

11.2.2内存泄漏 381

11.2.3缓存重用 382

11.2.4子VI参数的缓存重用 386

11.2.5输入/输出参数的排布 388

11.2.6优化数据流结构 390

11.3多线程编程 391

11.3.1自动多线程编程语言 391

11.3.2 LabVIEW的执行系统 392

11.3.3执行系统与线程的关系 393

11.3.4用户界面执行系统 394

11.3.5其他几个执行系统 394

11.3.6 VI的优先级 395

11.3.7动态连接库函数的线程 396

11.3.8 LabVIEW对多核CPU的支持 397

11.4代码编写规范和技巧 400

11.4.1简洁的程序框图 400

11.4.2布局和连线 401

11.4.3注释 403

11.4.4使用自定义数据类型 404

11.4.5连线板 405

11.4.6图标 406

11.4.7 VI分析器 411

第12章 界面的模块划分和XControl 414

12.1复杂界面的模块划分 414

12.1.1界面的模块划分 414

12.1.2选项卡控件 415

12.1.3子面板 417

12.1.4使用XControl划分 420

12.2 XControl 422

12.2.1设计 422

12.2.2创建 423

12.2.3数据功能控件 424

12.2.4状态功能控件 425

12.2.5外观功能VI 425

12.2.6转换状态以保存功能VI 430

12.2.7初始化功能VI 431

12.2.8反初始化功能VI 432

12.2.9属性 432

12.2.10方法 433

12.2.11事件 435

12.2.12棋盘XControl的使用 435

12.2.13实现动画 436

12.2.14得到调用XControl实例的VI的信息 437

12.2.15错误处理 439

12.2.16调试 439

第13章 面向对象的编程 440

13.1基础知识 440

13.1.1程序的模块划分 440

13.1.2类和对象 441

13.1.3面向对象的程序设计 441

13.1.4封装 441

13.1.5继承 442

13.1.6多态 442

13.2 LabVIEW的类 442

13.2.1创建 442

13.2.2属性 443

13.2.3方法 444

13.2.4继承 445

13.2.5多态 445

13.2.6面向对象与数据流 448

13.2.7面向对象思想对LabVIEW程序设计的影响 449

13.3应用实例 449

13.3.1管理一个类的多个对象 449

13.3.2同一段代码处理多种数据类型 453

13.3.3递归 455

13.3.4框架插件程序架构 456

13.3.5使用 LvClass实现链表等数据结构 458

13.4 LVClass的效率 463