第1章 虚拟仪器概述 1
1.1 虚拟仪器的基本概念 1
1.2 虚拟仪器的体系结构 6
1.2.1 虚拟仪器的硬件 8
1.2.2 虚拟仪器的软件 8
1.2.3 网络化虚拟仪器 11
1.3 图形化虚拟仪器开发平台现状 12
1.3.1 LabVIEW 12
1.3.2 HP VEE 13
1.3.3 Prograph 14
1.3.4 V语言 15
1.3.5 VIPERS 16
1.3.6 Show and Tell 17
1.3.7 VPF 17
1.3.8 MAVIS 18
1.3.9 Khoros 19
1.3.10 VPP 20
1.4 虚拟仪器面临的挑战 21
思考与练习 22
第2章 构架虚拟仪器软件平台 23
2.1 G语言要素抽象 24
2.1.1 现实中的硬件 24
2.1.2 用户界面 25
2.1.3 电路图 26
2.1.4 前后面板交互 28
2.1.5 图形语言要素 28
2.1.6 函数节点功能实现 30
2.2 G语言结构模型 30
2.2.1 根树 31
2.2.2 G语言特性 31
2.2.3 层图 32
2.2.4 兄弟层图 33
2.2.5 应用 35
2.2.6 兄弟AOV网 36
2.3.1 正交线段 39
2.3 正交三叉树 39
2.3.2 定点和交点 40
2.3.3 段线 43
2.3.4 正交线路图 43
2.3.5 正交三叉树的连线 44
2.4 G语言运行机制 45
2.4.1 可视化元素V 46
2.4.2 消息及消息存放场所M 47
2.4.3 规则R 49
2.4.4 模型的运行流程 50
2.4.5 消息执行统计 53
2.5 内存管理 54
2.5.1 数据的存储特征 55
2.5.2 内存地址描述模型 56
2.5.3 内存数据描述模型 58
2.5.4 分配算法 58
2.5.5 访问算法 60
2.5.6 回收算法 62
2.5.7 算法对G语言特定功能的支持 62
2.5.8 G语言中运行效果比较 63
2.6 扩展模型 64
2.6.1 外部功能动态加载 65
2.6.2 外部脚本解析 67
2.7 网络构架设计 73
2.7.1 虚拟实验室 74
2.7.2 网络化及服务型仪器 76
2.7.3 分布式多层系统结构 78
2.7.4 LabScene网络协议 82
2.7.5 LabScene网络模型实现 90
2.8 通用类框架 97
2.8.1 基于事件的窗口驱动模型 97
2.8.2 类信息及其运行期识别能力 99
2.8.3 类体系的建立 100
2.8.4 动态创建能力 102
2.8.5 持久化能力 102
2.8.6 消息驱动模型 105
2.9.1 LabScene基础类包 106
2.9 LabScene类框架 106
2.9.2 G语言基本要素的相关类 108
2.9.3 三个最主要的节点类 110
2.9.4 网络构架类 114
2.10 设计模式的应用 118
2.10.1 Command模式 118
2.10.2 Singleton模式 121
2.10.3 Dispatcher模式 122
2.10.4 Builder模式 123
2.10.5 Factory模式 124
2.10.6 Observer模式 126
2.10.7 State模式 128
2.11.1 基本用户控件 130
2.11 用户界面接口框架 130
2.11.2 数组和簇 134
2.12 图形代码框架 135
2.12.1 功能节点及容器节点 136
2.12.2 输入输出管脚 137
2.12.3 连接关系 140
2.12.4 模块化设计 142
2.12.5 图形编辑功能 142
小结 145
思考与练习 145
3.1.1 数字型 147
3.1 基本数据类型及其操作 147
第3章 G语言在LabScene中的实现 147
3.1.2 布尔型 157
3.1.3 字符串 161
3.2 变量、数组与簇 172
3.2.1 本地变量 172
3.2.2 数组 175
3.2.3 簇 186
3.3 结构与属性控制 189
3.3.1 For循环 190
3.3.2 While循环 193
3.3.3 顺序结构 195
3.3.4 选择结构 196
3.3.5 公式节点 200
3.4 波形显示控件 202
3.4.1 简单事后记录波形控件 202
3.4.2 实时趋势图控件 204
3.4.3 复杂记录示波器 205
3.5 文件操作 206
3.5.1 文件存取 206
3.5.2 文件操作节点 207
3.6 时间及对话框 209
3.6.1 时间控件 210
3.6.2 对话框控件 212
3.7 数学分析 213
3.8 信号产生 214
3.9 控制控件 215
3.10 高级控件 216
3.11 仪器设备 218
3.12 节点的扩展 219
3.13 网络应用 222
3.13.1 LabScene服务器 222
3.13.2 LabScene网络节点 230
3.13.3 LabScene客户端 233
思考与练习 237
4.1.1 PCI局部总线概述 238
4.1 基于PCI总线的数据采集卡开发 238
第4章 虚拟仪器硬件系统设计 238
4.1.2 基于PCI总线数据采集卡总体设计方案 242
4.1.3 PCI总线数据采集卡硬件部分设计 244
4.1.4 PCI总线数据采集卡软件部分设计 256
4.2 基于USB总线的虚拟示波器开发 261
4.2.1 USB总线概述 261
4.2.2 基于USB总线虚拟示波器概述 263
4.2.3 示波器硬件系统设计 264
4.2.4 示波器软件系统设计 277
4.2.5 示波器测试效果 280
4.3 基于USB总线的LCR测试仪开发 281
4.3.2 虚拟LCR测试仪算法实现 282
4.3.1 基于USB总线LCR测试仪的总体设计方案 282
4.3.3 LCR测试仪硬件系统设计 286
4.3.4 系统测试结果 288
4.4 基于USB总线任意波形发生卡的设计 289
4.4.1 USB总线任意波形发生器基本原理 289
4.4.2 USB任意波形发生器总体设计方案 290
4.4.3 任意波形发生器硬件系统开发 290
4.4.4 系统测试结果 294
4.5 基于以太网总线嵌入式Web开发 294
4.5.1 TCP/IP协议栈简介 295
4.5.2 基于以太网总线嵌入式Web总体设计方案 296
4.5.3 以太网络控制器RTL8019AS介绍 297
4.5.4 嵌入式Web硬件系统设计 299
4.5.5 嵌入式Web软件系统设计 302
4.5.6 嵌入式Web调试及测试结果 309
4.6 基于以太网总线网络化虚拟信号发生器的设计 309
4.6.1 DDS技术介绍 310
4.6.2 网络化虚拟信号发生器总体设计方案 312
4.6.3 网络化虚拟信号发生器硬件电路设计 313
4.6.4 测试结果及误差分析 321
4.7 基于IEEE 1451.2网络化智能变送器节点设计 325
4.7.1 IEEE 1451协议族体系架构 326
4.7.2 IEEE 1451.2网络化智能变送器模型 327
4.7.3 网络应用处理器设计 328
4.7.4 智能变送器接口模块设计 333
4.7.5 实验及结果 334
4.8 基于RS232总线虚拟冲击功测试仪的设计 335
4.8.1 冲击功测量原理 335
4.8.2 系统总体设计方案 337
4.8.3 虚拟冲击功测试仪硬件系统设计 337
4.8.4 冲击功测量结果 340
思考与练习 340
第5章 LabScene开发平台的应用 342
5.1 LabScene在虚拟仪器教学实验系统中的应用 342
5.1.1 信号叠加与信号分析 342
5.1.2 最小二乘法求取同频正弦信号的幅值、相位差 344
5.1.3 任意波形发生器的设计 350
5.2 LabScene在虚拟电子测量系统中的应用 356
5.2.1 虚拟数字示波器 356
5.2.2 LCR虚拟测试仪 359
5.3 LabScene在工程实际中的应用 362
5.3.1 在冲击功测试中的应用 362
5.3.2 在地学仪器中的应用 364
5.4 LabScene的网络应用 366
5.4.1 网络化信号发生器 367
5.4.2 基于IEEE 1451的智能化网络传感器节点 372
思考与练习 382
参考文献 383
附录 虚拟实验教学平台介绍 388