《虚拟仪器技术》遵循认知规律和开发能力逐步递进生成的基本原则,基于LabVIEW图形化软件开发平台和myDAQ便携式数据采集模块,从虚拟仪器技术基本概念介绍开始,全面阐述了虚拟仪器软件开发基础及进阶技术、数据采集技术基本原理以及基于myDAQ的虚拟仪器操作与实践技术。在此基础上,按照虚拟仪器技术进化发展历程,分别介绍了单机版虚拟仪器、网络化虚拟仪器、智能化虚拟仪器开发技术。无论是单机版、网络化还是智能化虚拟仪器的开发技术,均提供了多种不同技术实现途径下可操作的设计范例,便于读者快速、深入、全面掌握虚拟仪器技术。《虚拟仪器技术》可作为普通高校本科及高职院校电子信息类、自动化类、机电类专业学生虚拟仪器技术、电子测量技术等课程以及课程设计、毕业设计等实践环节的参考教材,也可用于测试测量工作相关工程技术人员的学习与参考。
前言
众所周知,任何产品在其生命周期的原型设计、功能验证、生产使用等任何一个环节,都存在依托先进仪器仪表进行相关测试与测量的工作。基于先进仪器仪表的测试与测量工作,可以获取并积累生产过程、科学研究中的相关数据,进而推动基于采集数据的分析、处理、控制等工作的进一步开展。因此,仪器仪表以及测试技术与各个学科都是紧密相连的,它的发展对各个学科领域都有着重要影响。从某种程度上讲,没有仪器仪表就没有科学。在这一背景之下,是否精通仪器仪表的操作使用,是否有设计开发和技术创新的经验,对于各个学科的工程技术人员来讲,都具有无与伦比的重要性。
自从20世纪80年代以来,虚拟仪器技术经历了不断的创新发展和技术进步,从早期单一的仪器仪表控制开发技术已经逐步进化为工业界普遍使用的通用开发技术。无论是Space X的航天飞船还是机器人、自动驾驶、5G乃至6G为代表的未来通信技术等,虚拟仪器技术都在为加速工程师和科学家的工程技术创新做出卓越贡献,并在航天、兵器、环境、安全等多个领域得到高度认可和广泛应用。虚拟仪器技术不仅仅是一种系统设计开发的平台和方法,更是一把打开工程技术创新大门的金钥匙。
依托NI公司图形化编程工具LabVIEW以及素有口袋实验室美称的myDAQ先进工具,实现了基于模型的案例式、形象化和直观化变革,其理念与我国宋朝时期“传心岂如会目,著辞不若案形”的针灸教育改革具有惊人的相似。在技术体系日益庞大、技术实现日益复杂的时代背景下,LabVIEW提供的“会目、案形”式的技术开发手段,使得学习者不再被烦琐的开发语言和硬件平台所牵绊,而是将注意力聚焦于复杂系统解决方案的创新设计。这一变化极大地加速了现代复杂测试系统设计与开发进程。
随着网络通信技术以及物联网(Internet of Things,IoT)、人工智能(Artificial Intelligence,AI)等新兴电子信息技术的快速发展,以软件就是仪器为根本特征的虚拟仪器技术,也迎来了新一轮腾飞的重大机遇——仅需进一步扩展虚拟仪器系统的软件功能,有机融入AI、IoT等新兴技术,就能将传统虚拟仪器系统改造为网络化、智能化虚拟仪器系统,实现虚拟仪器技术系统的技术升级改造,满足日益庞大和复杂的测试系统快速开发相关需求。
虚拟仪器技术融入网络通信技术(含物联网通信技术),可以将被测对象纳入互联网或物联网系统之中,甚至是物联网与互联网的混合系统之中,实现网络内终端设备之间的资源共享,使得工程技术人员可以在任何地点、任何时间获取感兴趣的测试数据,能够将传统单机版本的虚拟仪器技术系统快速更新改造为现代网络化虚拟仪器系统,实现远程数据采集、远程控制、远程故障检测、报警等新兴测试领域技术功能。
虚拟仪器技术融入人工智能技术,则具备无与伦比的数据优势——现代人工智能技术依赖大量、可信的数据进行学习、训练,而虚拟仪器系统恰恰可以提供高精度、高可靠性数据,可以为人工智能技术应用提供坚实的数据基础。两者融合可以将传统单机版本的虚拟仪器技术系统快速更新改造为现代智能化虚拟仪器系统。智能化虚拟仪器系统可以进一步优化测试与测量过程,进而发展出更加高效、准确的数据采集、数据处理、数据分析和自动控制相关技术应用,进一步增强基于测量数据的智能化决策分析与实时控制,极大地促进虚拟仪器系统的技术升级和创新。
但是,目前虚拟仪器技术开发相关书籍多数聚焦程序设计语言LabVIEW基本开发方法介绍,仅有少数书籍涉及软硬件协同设计的系统级开发技术,尚未发现从虚拟仪器技术进化角度,全景式展开虚拟仪器技术操作使用、设计开发以及网络化、智能化改造相关的书籍。在当前融合创新为显著特征的时代背景下,如何帮助读者快速把握虚拟仪器技术发展的规律,从源头上理解虚拟仪器技术基本原理和不同阶段关键性开发技术,增长知识,开阔眼界,促进虚拟仪器技术的创新与进步,成为一项重要的研究课题。
本书遵循认知规律和开发能力逐步递进生成的基本原则,将虚拟仪器基本原理、开发平台、程序设计方法、单机版、网络化及智能化虚拟仪器系统开发所需的知识和技能分为前后衔接的8章内容。其中第1章为虚拟仪器技术概述,包括虚拟仪器技术的产生、发展、组成以及设计开发所需要进行的主要工作; 第2~3章聚焦LabVIEW程序设计,介绍LabVIEW程序设计基础以及常用的高级开发技术; 第4章简要介绍数据采集技术的基本概念,LabVIEW中数据采集重要术语、函数节点以及硬件测试方法; 第5章以myDAQ和ELVISmx驱动相关工具软件为基础,介绍虚拟仪器技术实践操作技术; 第6章主要介绍单机版本的虚拟仪器开发技术,以实用案例的形式给出了模拟量测量与输出控制、数字量测量与输出控制、脉冲量测量与输出控制、声音信号的测量与输出、图像信号的采集与机器视觉等单机版虚拟仪器关键技术的设计与实现; 第7章介绍网络化虚拟仪器开发技术,以实用案例的形式给出了远程前面板、Web发布、WebService、UDP广播以及物联网云平台等网络化虚拟仪器的设计与实现完整方法; 第8章主要介绍智能化虚拟仪器开发技术,同样也以实用案例的形式给出了基于AML工具包、百度AI开放平台、Python、MATLAB等不同技术方案的智能化虚拟仪器设计与实现的完整方法。读者可以循序渐进逐步掌握不同技术架构的虚拟仪器开发技术,也可以精读部分章节重点突破关键技术。
本书第1~2章由张彩丽编写,第3~4章由刘晋东编写,第5~7章由杨帆编写,第8章由陈晓屹编写,全书由杨帆统稿。本书编写过程中,苏鑫鑫、张紫怡、贾樱子、赵斯萌、吕鑫睿、尚馨悦、穆宇晶、孟繁喆、杨鑫等同学参与了部分范例的软硬件设计和测试相关工作,并对书稿进行了初步的校对。
本书编写过程中得到了陕西成和电子、北京曾益慧创科技有限公司的鼓励和大力支持,在此表示衷心感谢!此外,本书得到了2023年度陕西高等教育教学改革研究项目(编号: 23BZ023)、陕西省科技厅社会发展项目(编号: 2016SF?418)的支持。
为了便于读者使用,本书提供全部范例的程序代码、关键技术的微课视频、智能化虚拟仪器建模训练数据集以及电子课件。本书内容涉及知识面比较宽泛,限于篇幅,部分内容可能存在以点带面、不够深入的问题,也难免会出现一些错误与疏漏,不当之处,恳请读者批评指正。
作者于西安
2025年7月
目录
第1章虚拟仪器技术概述
1.1虚拟仪器概述
1.1.1仪器仪表技术的发展进化
1.1.2虚拟仪器技术的基本内涵
1.1.3虚拟仪器系统的基本结构
1.1.4虚拟仪器开发的主要工作
1.2虚拟仪器软件开发平台
1.2.1基于通用软件平台开发
1.2.2基于专用软件平台开发
1.3虚拟仪器开发数据采集板卡
1.3.1NI数据采集板卡
1.3.2NI myDAQ简介
1.3.3NI myDAQ硬件结构
1.3.4NI myDAQ接口说明
思考与拓展
第2章虚拟仪器编程基础
2.1LabVIEW开发环境简介
2.1.1LabVIEW的起源与发展
2.1.2LabVIEW的开发优势
2.1.3LabVIEW操作环境
2.1.4LabVIEW程序运行与调试
2.1.5LabVIEW帮助系统
2.2基本数据类型
2.2.1数值类型
2.2.2布尔类型
2.2.3字符串类型
2.3复合数据类型
2.3.1数组类型
2.3.2簇数据类型
2.3.3波形数据类型
2.3.4动态数据类型
2.4基本程序结构
2.4.1顺序结构
2.4.2循环结构
2.4.3条件结构
2.4.4事件结构
2.5变量节点
2.5.1局部变量
2.5.2全局变量
2.5.3共享变量
2.6特殊节点
2.6.1属性节点
2.6.2功能节点
2.6.3公式节点
2.6.4MathScrip节点
思考与拓展
第3章虚拟仪器编程进阶
3.1信息显示技术
3.1.1常用的显示技术
3.1.2波形图的应用
3.1.3波形图表的应用
3.1.4XY图的应用
3.2子VI的封装和调用
3.2.1子VI设计的一般步骤
3.2.2子VI的调用
3.2.3多态子VI的设计
3.3文件操作
3.3.1文件I/O的基本概念
3.3.2文件操作的主要函数节点
3.3.3文件操作的应用
3.4联合编程
3.4.1基于DLL的联合编程技术
3.4.2基于MATLAB的联合编程技术
3.4.3基于Python的联合编程技术
3.5设计模式
3.5.1轮询设计模式
3.5.2事件响应设计模式
3.5.3状态机设计模式
3.5.4主从式设计模式
3.5.5生产者/消费者设计模式
思考与拓展
第4章数据采集技术基础
4.1数据采集技术概论
4.1.1数据采集基本概念
4.1.2采集信号的分类
4.1.3模拟信号的接入方式
4.1.4数据采集系统的基本组成
4.1.5数据采集主要关注的技术指标
4.2LabVIEW数据采集技术重要术语
4.2.1数据采集中的任务
4.2.2物理通道和虚拟通道
4.2.3模拟输入与输出通道
4.2.4数字输入与输出通道
4.2.5计数器输入与输出通道
4.3LabVIEW数据采集相关函数节点
4.3.1DAQmx VI
4.3.2ExpressVI“DAQ助手”
4.4数据采集卡的基本功能测试
4.4.1启动NI MAX
4.4.2数据采集功能测试
4.4.3创建数据采集仿真设备
思考与拓展
第5章虚拟仪器操作实践
5.1常用电子测量仪器及其主要技术指标
5.1.1常用的电子测量仪器及其功能
5.1.2电子测量仪器主要关注技术指标
5.2基于myDAQ的虚拟仪器操作基础
5.2.1DAQmx与ELVISmx驱动安装
5.2.2ELVISmx虚拟仪器启动界面
5.2.3基于myDAQ与ELVISmx驱动的虚拟仪器
5.3主要测试测量技术实践
5.3.1虚拟数字万用表操作实践
5.3.2虚拟信号发生器与示波器操作实践
5.3.3虚拟数字输入操作实践
思考与拓展
第6章单机虚拟仪器开发
6.1基于myDAQ的模拟量测量
6.1.1模拟量单点采集
6.1.2模拟量连续采集
6.2基于myDAQ的模拟量输出
6.2.1模拟量单点输出
6.2.2模拟量连续输出
6.3基于myDAQ的数字量采集与输出
6.3.1数字量采集
6.3.2数字量输出
6.4基于myDAQ的脉冲量测量与输出
6.4.1脉冲信号的测量
6.4.2脉冲信号的输出
6.5声音信号采集和处理
6.5.1基于集成声卡的信号采集
6.5.2基于myDAQ的声音信号采集
6.6声音信号处理与输出
6.6.1基于集成声卡的声音信号输出
6.6.2基于myDAQ的声音信号输出
6.7图像信号采集与机器视觉
6.7.1图像信号的连续采集
6.7.2图像采集与机器视觉
思考与拓展
第7章网络虚拟仪器开发
7.1网络虚拟仪器的概念内涵
7.1.1网络化虚拟仪器的需求
7.1.2网络化虚拟仪器的特点
7.1.3虚拟仪器网络化改造主要方案
7.1.4虚拟仪器接入网络的方法
7.1.5LabVIEW中网络通信函数
7.2基于远程前面板的网络仪器开发
7.2.1远程前面板的基本内涵
7.2.2基于远程前面板的网络测量系统设计
7.2.3基于远程前面板的网络测量系统功能测试
7.3基于Web发布的网络仪器开发
7.3.1Web发布的基本内涵
7.3.2基于Web发布的网络测量系统设计
7.3.3基于Web发布的网络测量系统功能测试
7.4基于WebService的网络仪器开发
7.4.1WebService的基本内涵
7.4.2基于WebService的远程测量系统设计
7.4.3基于WebService的远程测量系统功能测试
7.5基于UDP广播的网络仪器开发
7.5.1UDP广播通信
7.5.2采集数据的局域网UDP广播发送系统设计
7.5.3采集数据的局域网UDP广播发送功能测试
7.6基于物联网云平台的网络仪器系统开发
7.6.1物联网云平台简介
7.6.2采集数据的物联网云平台发布系统设计
7.6.3采集数据的物联网云平台发布功能测试
思考与拓展
第8章智能虚拟仪器开发
8.1智能虚拟仪器的概念内涵
8.1.1智能虚拟仪器的需求
8.1.2智能虚拟仪器的本质
8.1.3测试数据智能化处理
8.2基于机器学习工具包的智能虚拟仪器系统开发
8.2.1机器学习工具包AML简介
8.2.2异常分析算法简介
8.2.3基于AML的设备运行状态异常检测系统设计
8.3基于百度AI开放平台的智能虚拟仪器系统开发
8.3.1百度AI开发平台简介
8.3.2图像分割AI建模和部署
8.3.3基于百度AI的图像采集与分割系统设计
8.4基于Python联合编程的智能虚拟仪器系统开发
8.4.1朴素贝叶斯算法简介
8.4.2基于Python的朴素贝叶斯状态识别算法实现
8.4.3基于LabVIEW & Python的风机状态识别系统设计
8.5基于MATLAB联合编程的智能虚拟仪器系统开发
8.5.1KNN分类算法简介
8.5.2基于MATLAB的KNN分类算法实现
8.5.3基于LabVIEW & MATLAB的鸢尾花类型识别系统设计
思考与拓展
参考文献