描述
开 本: 16开纸 张: 胶版纸包 装: 平装-胶订是否套装: 否国际标准书号ISBN: 9787302524946丛书名: 全国普通高等院校电子信息规划教材
本书可作为高等院校虚拟仪器等相关课程的教材或教学参考书,也可作为相关工程技术人员的参考用书。
第1章虚拟仪器基础1
1.1虚拟仪器技术概述1
1.1.1虚拟仪器的概念1
1.1.2虚拟仪器的特点2
1.2虚拟仪器的构成及分类3
1.2.1虚拟仪器的构成3
1.2.2虚拟仪器的分类4
1.3虚拟仪器的软件开发环境6
1.3.1虚拟仪器开发软件6
1.3.2G语言6
思考题与习题7第2章开启LabVIEW编程之门8
2.1LabVIEW概述8
2.1.1LabVIEW简介 8
2.1.2LabVIEW的优势9
2.1.3LabVIEW的应用9
2.2LabVIEW编程环境10
2.2.1LabVIEW 2017的基本开发平台11
2.2.2LabVIEW的操作选板13
2.2.3LabVIEW 2017的菜单和工具栏17
2.3LabVIEW帮助系统24
2.4LabVIEW的初步操作26
2.4.1新建一个VI26
2.4.2前面板设计26
2.4.3框图程序设计——添加节点26
2.4.4框图程序设计——连线26[1][2]2.4.5运行程序27
2.4.6程序的保存与载入27
2.5子VI的创建与调用27
2.5.1子VI创建27
2.5.2子VI的调用32
2.6VI的调试方法32
2.7上机操作实例34
思考题和习题37第3章数据类型和操作38
3.1LabVIEW的基本数据类型38
3.1.1数值型38
3.1.2布尔型42
3.1.3字符串与路径44
3.2数据运算48
3.2.1数值运算48
3.2.2比较运算49
3.2.3布尔运算50
3.2.4字符串运算51
3.3数组55
3.3.1数组数据的组成55
3.3.2数组的创建55
3.3.3数组数据的使用57
3.4簇63
3.4.1簇的创建64
3.4.2簇操作函数65
3.5波形数据68
3.5.1波形数据的组成69
3.5.2波形数据的创建72
3.6不同数据函数的综合应用74
思考题和习题75第4章LabVIEW的程序结构76
4.1循环结构76
4.1.1For循环76
4.1.2While循环78
4.1.3循环结构的循环隧道与自动索引79
4.1.4移位寄存器和反馈节点82
4.2条件结构85
4.3顺序结构87
4.4事件结构90
4.4.1事件结构的构成91
4.4.2事件结构的设置92
4.4.3通知事件和过滤事件93
4.4.4事件结构的应用举例94
4.5公式节点96
4.6LabVIEW中变量的数值传递97
4.6.1局部变量97
4.6.2全局变量99
思考题和习题102第5章数据的图形显示103
5.1波形显示103
5.1.1波形图104
5.1.2波形图表109
5.2XY图和Express XY图112
5.2.1XY图112
5.2.2Express XY图114
5.3强度图形114
5.3.1强度图114
5.3.2强度图表简介115
5.4三维图形116
5.4.1三维曲面图形116
5.4.2三维参数图形117
5.4.3三维线条图形118
5.5数字波形图119
思考题和习题120第6章文件I/O122
6.1文件的类型122
6.1.1文本文件类型122
6.1.2二进制文件类型123
6.1.3数据记录文件124
6.2文件操作124
6.2.1文件的基本操作124
6.2.2文件I/O选板125
6.3常用文件类型的使用127
6.3.1文本文件127
6.3.2电子表格文件128
6.3.3XML文件130
6.3.4Windows配置文件131
6.3.5基于文本的测量文件133
6.4二进制文件的写入与读取133
6.4.1二进制文件134
6.4.2数据存储文件135
6.4.3高速数据流文件137
6.4.4波形文件140
6.5数据记录文件142
6.6压缩文件145
6.6.1压缩函数145
6.6.2文件压缩146
6.7高级文件I/O函数147
思考题和习题148第7章数据采集149
7.1数据采集基础149
7.1.1奈奎斯特采样定理149
7.1.2信号类型150
7.1.3信号的参考点与测量系统151
7.1.4数据采集系统构成153
7.2数据采集卡的选用与配置153
7.2.1选用数据采集卡的基本原则153
7.2.2数据采集卡的配置155
7.3NIDAQmx简介159
7.3.1NIDAQmx数据采集VI160
7.3.2DAQ助手的使用161
7.4DAQmx应用实例165
7.4.1模拟信号输入165
7.4.2模拟信号输出168
7.4.3数字I/O170
7.4.4计数器172
思考题和习题175第8章数字信号处理176
8.1信号产生176
8.1.1数字信号的产生与数字化频率的概念176
8.1.2信号生成177
8.1.3波形生成180
8.2波形调理和波形测量185
8.2.1波形调理186
8.2.2波形测量188
8.3信号的时域分析192
8.3.1相关分析192
8.3.2卷积194
8.3.3缩放和映射196
8.4信号的频域分析197
8.5窗函数202
8.6数字滤波器204
8.7逐点分析库207
思考题和习题208第9章虚拟仪器通信技术210
9.1TCP通信210
9.1.1TCP简介210
9.1.2TCP函数节点211
9.1.3TCP编程实例214
9.2UDP通信216
9.2.1UDP函数节点216
9.2.2UDP编程实例218
9.3DataSocket通信技术219
9.3.1DataSocket技术简介219
9.3.2DataSocket节点221
9.3.3DataSocket编程实例224
9.4串行通信227
9.4.1串行通信概述227
9.4.2LabVIEW串行通信节点229
9.4.3串行通信编程实例232
思考题和习题233第10章LabVIEW常用编程技巧234
10.1VI属性设置234
10.1.1“常规”属性页234
10.1.2“内存使用”属性页235
10.1.3“说明信息”属性页236
10.1.4“修订历史”属性页237
10.1.5“编辑器选项”属性页238
10.1.6“保护”属性页238
10.1.7“窗口外观”属性页239
10.1.8“窗口大小”属性页240
10.1.9“窗口运行时位置”属性页241
10.1.10“执行”属性页242
10.1.11“打印选项”属性页244
10.2人机交互界面设计245
10.2.1对话框的设计245
10.2.2错误处理247
10.2.3用户菜单设计249
10.2.4用户界面的设计254
10.3LabVIEW应用程序的制作256
10.3.1独立可执行程序256
10.3.2安装程序261第11章应用实例267
11.1虚拟仪器的设计原则267
11.1.1虚拟仪器设计的基本原则267
11.1.2硬件设计的基本原则268
11.1.3软件设计的基本原则268
11.2虚拟仪器的设计步骤 269
11.3虚拟仪器设计实例270
11.3.1基于声卡的数据采集与分析系统270
11.3.2虚拟血压仪的设计277参考文献282
随着电子技术、计算机技术、数字信号处理技术与现代测量技术的发展,虚拟仪器技术应运而生。虚拟仪器(virtual instrument)是基于计算机的仪器,其实质是充分利用计算机的资源实现和扩展传统仪器的功能。虚拟仪器代表了未来仪器技术的发展方向,在工业、交通、军事、科研、教学等领域得到广泛应用。
LabVIEW(Laboratory Virtual Instrument Engineering Workbench)是美国NI公司推出的一款高效率的图形化虚拟仪器开发平台,也是目前应用最广泛、发展最快、功能最强的图形化软件开发环境,被视为一款标准的数据采集和仪器控制软件。LabVIEW是一种真正意义上的图形化编程语言,它采用工程技术人员熟悉的术语和图形化符号代替文本编程语言,编程简单,形象生动,易于理解和掌握;设计者可以利用它像搭积木一样轻松组建一个测量系统或数据采集系统;LabVIEW针对数据采集、仪器控制、信号分析与处理等任务,提供了许多函数节点,用户直接调用即可,极大提高了开发效率。
虚拟仪器技术及LabVIEW在我国也得到了迅速的推广,在测控/测量、故障诊断、生产过程控制、自动化等领域得到较为普遍的应用。因此,虚拟仪器技术已经成为电子、通信、自动化及测控技术等专业学生修学的一门专业应用型课程。我们从课程教学要求、学生实践能力培养、与工程应用接轨的目的出发,结合新版LabVIEW软件,按照循序渐进、重在实践、旨在创新的原则,通过理论与实例相结合的方式编写本教材。教材语言生动精练、内容详尽,并且包含了大量实用的实例及常用编程技巧,以便于读者更加快速地掌握LabVIEW的编程方法。
本书具有以下几个显著特点:
(1) 内容全面,结构完整,从LabVIEW基础讲起,引导读者快速入门,然后通过理论与实例相结合的方式,深入浅出地介绍了利用LabVIEW进行虚拟仪器程序设计的方法和技巧,最后以综合实例进行详细讲解,使理论与应用有机融合。
(2) 理论通俗易懂,实例丰富实用,实践操作性强,教材既有理论知识的阐述与应用实例的讲解,又有很强的实训练习环节,以达到融会贯通的效果。
(3) 软件与硬件知识兼顾,具有实用性、技术性等特点,有利于测试系统集成能力的培养。[1][2](4) 具有前沿性、新颖性等特点,采用新版LabVIEW软件结合最新应用实例编写。
(5) 提供实例教学视频,通过扫描书中的二维码可以随时随地在线观看;提供书中程序的源代码,可有效帮助读者轻松掌握书中的内容,同时配有电子教案,可有效满足教学需要。程序代码与课件下载地址为http://www.tup.tsinghua.edu.cn或http://www.nbueecs.cn。
在本书的编写过程中,得到许多老师、同学和同事的关心和帮助,在此谨表谢意。特别感谢简家文教授、林卫星教授、王健博士和钱利波博士对编写工作提出的宝贵意见和建议,感谢学生杨秀提供的帮助。本书由浙江省普通高校“十三五”新形态教材项目、宁波大学教材建设项目提供资助。
本书在编写过程中参阅了许多文献,尤其是参考文献中所列书籍与论文,受益匪浅,在此向相关作者致以衷心的感谢。
由于编者水平有限,书中难免有疏漏和不足之处,敬请广大读者批评指正。读者可通过电子邮件[email protected]与我们交流。
胡乾苗于宁波大学2018年12月
数据的图形显示
本章学习目标
熟练掌握波形图、波形图表的组件和功能,以及有关属性的设置和使用方法
掌握XY 图和Express XY 图的功能和使用方法
熟悉数字波形图的功能和使用方法
熟悉三维图形控件的使用方法数据的图形显示具有直观明了的特点,能够增强数据的表达能力,许多实际仪器都提供了图形显示功能,如示波器、频谱分析仪等。图形显示是虚拟仪器面板设计的重要内容。LabVIEW提供了丰富的图形显示功能,根据数据显示和更新方式的不同,LabVIEW的图形显示控件分为图形(也称事后记录图)和图表(也称实时趋势图)两类。
图表显示是将数据源(如采集到的数据)在某一坐标系中实时、逐点地显示出来,它可以反映出被测量的变化趋势,如传统的示波器显示一个实时变化的波形或曲线,也可以同时显示若干个数据点。图形则是对已采集数据进行事后处理,它先将被采集数据存放在数组中,然后根据需要组织成相应的图形显示出来。它的缺点是不能实时显示,但是它的表现形式要丰富得多。例如,采集一个波形数据后,经过处理可以显示其频谱图。
本章首先介绍波形图、波形图表的功能及使用方法,然后介绍XY 图、强度图及强度图表的使用方法,最后介绍数字波形图和三维图形控件的使用。
5.1波形显示
波形显示包括波形图和波形图表两种方式,在前面板“控件”→“新式”→“图形”,“经典”→“经典图形”和“银色”→“图形”及Express→“图形显示控件”等子选板中均包含了各种各样的图形图表控件,如图51所示。〖1〗〖2〗图51图形图表控件
5.1.1波形图
波形图用于对已采集数据进行事后显示处理,它根据实际要求将数据组织成所需的图形一次显示出来。其基本的显示模式是按等时间间隔显示数据点,而且每一时刻对应一个数据点。
在前面板的波形图上右击,选中快捷菜单的“显示项”后,将弹出“显示项”子菜单,如图52所示。可以根据需要选择波形图的显示项,如图53所示为带有“显示项”子菜单所有选项的波形图。
图52波形图的右键快捷菜单
下面介绍波形图上各个显示项的功能和使用方法。
1. 图例
波形图的图例可以定义图中曲线的各种参数。单击图例曲线将弹出图例快捷菜图53波形图的完整显示项
单,如图54所示。可以在该快捷菜单中设置曲线的类型、线条颜色、线条宽度、数据点样式等内容。在“常用曲线”中,可以选择平滑曲线、数据点方格等。图54图例快捷菜单及常用曲线
在图例的快捷菜单中,“平滑”可以使曲线变得更光滑;“直方图”可以设置显示直方图的方式;“填充基线”用来设置曲线的填充参考基线,包括0、负无穷大和无穷大几种;“插值”提供绘制曲线的6种插值方式;“点样式”用来设置曲线数据点的样式,有圆点、方格和星号等样式。
在图例上拖动其边缘,可以增加或减少图例。双击图例名称,可以改变图例的曲线名称。
2. 标尺图例
标尺图例用于设置X坐标和Y坐标的相关选项,其中各个选项名称如图55所示。在“坐标名称”中可以更改两个坐标轴的名称;打开自动缩放功能,波形图会根据输入数据的大小自动调整刻度范围,使曲线完整地显示在波形图上;“一次性自动缩放”可以对当前曲线的刻度进行一次性的缩放,单击“锁定自动缩放”按钮后,“一次性锁定自动缩放”也处于按下状态;单击刻度格式按钮,在弹出的刻度格式子菜单中可以设置坐标刻度的格式、精度、映射模式和网格颜色等,如图56所示。
图55标尺图例图
图56刻度格式菜单
3. 游标图例
游标图例如图57所示。游标用于读取波形曲线上任意点的精确值,游标所在点的坐标值显示在游标图例中。通过图57游标图例
游标图例,可以在波形图上添加游标: 在游标图例中右击,选择“创建游标”子菜单下的游标模式便可以添加游标。当选中某个游标后,还可以通过单击游标移动器上的4个小菱形来移动游标。游标包含以下3种模式。
(1) 自由: 与曲线无关,游标可在整个绘图区域内自由移动。
(2) 单曲线: 仅将游标置于与其关联的曲线上,游标可在关联的曲线上移动。
(3) 多曲线: 将游标置于绘图区域内的特定数据点上。多曲线游标可显示与游标相关的所有曲线在指定X值处的值,可置于绘图区域内的任意曲线上,该模式只对混合信号图形有效。
4. 图形工具选板
选板中的控制工具用来选择鼠标的操作模式从而实现对波形缩放、平移等操作。图形工具选板上有3个按钮,按下第一个带有十字光标的按钮,表示处于通常情况下的操作模式,此时可以移动波形图上的游标。第二个有放大镜标志的按钮用于对波形进行缩放,单击它将弹出表示6种缩放格式的6个选项,如图58所示。按下手形标志的第三个按钮时,可以在图形显示区随意地拖动图形。
图58“图形工具”选板及缩放工具选项
5. X滚动条
X滚动条用于滚动显示图形,拖动滚动条可以查看当前未显示的数据曲线。
波形图示例.mp4波形图除了具备以上各个功能外,还可以实现同时显示多条数据曲线,对曲线进行注释等功能。在波形图的属性对话框中可以完成对波形的一些常用设置。
使用波形图时,要注意输入的数据类型。波形图的数据输入类型有一维数组、二维数组、簇、簇数组、波形数据等。
下面通过一个范例介绍波形图能够接收的数据类型,程序框图如图59所示。
图59不同数据类型的波形图程序框图
程序首先利用For循环分别产生0~2π均匀分布的100个正弦信号数据点和100个余弦信号数据点,然后将这些点输出到For循环数据隧道上,并通过不同的方式将它们作为波形图的输入,使波形图接收不同的数据类型。波形图可以显示一条或多条曲线。当绘制一条曲线时,波形图的输入数据类型可以为以下两种。
(1) 一维数组,其对应的输出波形图是(Y) 单曲线,如图510(a)所示。曲线从时刻0开始,在时刻100结束,数据点时间间隔为1。
(2) 簇数组,其对应的输出波形是(X0=10,dX=2,Y)单曲线1,如图510(d)所示。程序利用捆绑函数将100个正弦数据点和X0、dX捆绑成一个簇,作为波形图的输入。该波形图从时刻10开始,时间间隔为2,以100个数据点绘制正弦曲线。
当绘制多曲线时,波形图的输入数据可以为以下5种类型。
(1) 二维数组,其对应的输出波形是(Y)多曲线1,如图510(b)所示。程序将100个正弦数据点与100个余弦数据点组成一个二维数组,作为波形图的输入。波形图上绘制的两条曲线均从时刻0开始,数据点时间间隔为1。
(2) 簇数组,其对应的输出波形是(Y)多曲线2,如图510(c)所示。程序将100个正弦数据点与100个余弦数据点分别捆绑成簇,再将两个簇组成一个簇数组作为波形图的输入。两条曲线均从时刻0开始,数据点时间间隔为1。
(3) 含有多个元素的簇组成的簇数组,其对应的输出波形是(X0=10,dX=2,Y)多曲线1,如图510(e)所示。程序利用捆绑函数将100个正弦数据点、100个余弦数据点和X0、dX分别捆绑成两个簇,再将两个簇组成一个簇数组作为波形图的输入。两条曲线均从时刻10开始,时间间隔为2。
(4) 簇类型输入,其对应的输出波形是(X0=10,dX=2,Y)多曲线2,如图510(f)所示。程序将二维数组和X0、dX组成一个簇,作为波形图的输入,从时刻10开始,时间间隔为2。
(5) 元素中含有簇数组的簇类型,其对应的输出波形是(X0=10,dX=2,Y)多曲线3,如图510(g)所示。两条曲线共用最外层簇提供的起始时刻10和数据点,时间间隔为2。
图510不同数据类型输入时所对应的波形图
除了上述几种输入数据类型外,波形图还可以接收波形数据作为输入。例如,利用“信号处理”→“波形生成”子选板上的正弦波形VI产生一个正弦信号,将其直接接入波形图上就能显示正弦波形,如图511所示。
图511波形数据作为输入的波形图
用波形图显示二维数组数据时,数组中的一行即一条曲线。如果想把二维数组中的每一列数据生成一条曲线,就需要转置数组,可利用波形图快捷菜单中的“转置数组”项。图512所示给出了转置前后的显示结果,程序先产生10行3列的随机数,直接接到波形图时,显示的10条3个点的曲线,选择波形图的右键快捷菜单上的“转置数组”项后,波形成3条10个数据点的曲线显示在波形图中,与先将For循环输出的二维数组转置后的数组作为输入的显示结果相同。
图512选择“转置数组”项的示例
【实训练习】
(1) 用波形图显示用随机函数产生的50个随机数。
(2) 设计一个显示正弦波信号的VI。要求正弦波信号由“正弦信号”VI(Sina Pattern.vi)产生,共50个采样点,t0=0,dt=2ms,图形显示能够反映出实际的采样时间及采样得到的信号。
(3) 分别用随机数产生两组数据并同时显示在波形图上,其中一组数据为60点,X0=0,dX=2,另一组数据为40点,X0=10, dX=3。
实训练习(2).mp4
实训练习(3).mp4
5.1.2波形图表
波形图一次性显示接收到的所有数据点,当新数据到达时,先把已有数据曲线完全清除,然后根据新数据重新绘制整条曲线。而波形图表可以逐点接收数据并显示,即可以实时绘制数据曲线。波形图表在接收到新数据时保留了部分历史数据,保留的数据长度可以自行指定(由波形图表快捷菜单的“图表历史长度”选项设定,默认为1024个数据点,也是显示缓存区的最大长度)。波形图表接收的新数据点续接在历史数据的后面,实现了实时数据记录。
波形图表及显示项子菜单如图513所示,各个显示项的功能和属性与波形图类似,具体可以参阅5.1.1节介绍过的相关内容。不同的是,波形图表的快捷菜单“显示项”中没有“游标图例”,却多了一个功能: “数字显示”,如图513所示。当波形图表接收数据时,数字显示框能实时显示当前接收到的数据值。
图513波形图表及“显示项”子菜单
当波形图表接收的数据超过绘图区时,波形图表有3种刷新模式可供使用: 带状图表、示波器图表和扫描图。在波形图表的快捷菜单中的“高级”→“刷新模式”子菜单下可以对3种刷新模式进行切换。
带状图表是波形图表刷新的默认模式,波形从左到右绘制,到达右边界时,旧数据开始从波形图表左边界移出,新数据接续在旧数据之后显示;在示波器图表模式下,波形从左到右绘制,到达右边界后整个波形图表被清空,然后重新从左到右绘制波形;在扫描图模式下,从左到右绘制波形,到右边界后,波形重新开始从左到右绘制,原有波形并不马上清空,而是在最新数据点上的清除线随新数据向右移动,逐渐擦除旧波形,如图514所示。
图514波形图表的3种刷新模式
下面通过一个简单的例子来说明波形图表与波形图的不同使用方法。如图515所示,用波形图表和波形图分别显示20个随机数产生的曲线。观察程序框图,两个波形图表分别处于不同的位置,一个波形图表在For循环内,另一个波形图表与波形图位于For循环外面,程序运行时,循环内的波形图表每接收到一个点就显示一个,而在循环外的波形图表与波形图是在50个数据都产生后,一次性显示出整个数据曲线。
图515波形图表与波形图的比较
由上面的例子也可以看出,波形图表在绘制单曲线时,可以接受的数据格式有两种,分别是标量数据和数组。标量数据和数组被接在旧数据的后面显示出来。输入标量数据时,曲线每次向前推进一个点;输入数组时,曲线推进的点数等于数组的长度。
绘制多条曲线时,波形图表可以接受的数据格式也有两种。第一种是每条曲线的一个新数据点(数值类型)打包成簇,然后输入到波形图表中,这时波形图表的所有曲线同时推进一个点;第二种是每条曲线的一个数据点打包成簇,若干个这样的簇作为元素构成数组,再把数组送入到波形图表中,数组中的元素决定了绘制波形图表时每次更新数据的长度。如图516所示。该示例共绘制两条曲线,“波形图表(单点)”每秒为每条曲线更新1个点,“波形图表(4点)”每秒钟内为每条曲线更新4个点。
图516使用波形图表绘制多曲线示例
在绘制多条曲线时,波形图表的默认状态是把这些曲线绘制在同一个坐标系中。选择波形图表快捷菜单中的“分格显示曲线”项,可以把多条曲线绘制在各自不同的坐标系中,这些坐标系从上到下排列。此时,该选项变成“层叠显示曲线”,用于在同一坐标系中显示多条曲线,图517所示为两种显示方式的对比情况。
图517波形图表的层叠/分格显示方式
【实训练习】
实训练习(2).mp4
(1) 在一个波形图表中用红、绿、蓝3种颜色表示范围0~1、0~5、0~10的3个随机数构成的3条曲线。要求分别用层叠和分格两种方式显示。
(2) 创建一个VI,使用扫描刷新模式将两条随机曲线显示在波形图表中。两条曲线中一条为随机数曲线,另一条曲线是每个数据点为第一条曲线对应点前5个数据值的平均值。
5.2XY图和Express XY图〖*4/5〗5.2.1XY图波形图和波形图表只适用于显示均匀波形数据,其横坐标默认为采样序号,纵坐标为测量数值。这在实际应用中有一定的局限性。例如,对于Y值随X值变化的曲线,如圆曲线x2 y2=1,就无法使用波形图和波形图表。因此,LabVIEW专门设计了XY图,用于显示多值函数,曲线形式由用户输入的X、Y坐标决定,可显示任何均匀采样或非均匀采样的点的集合。XY图也是波形图的一种,它需要同时输入相互关联的X轴和Y轴的数据,并不要求X坐标等间距。
XY图窗口及属性对话框与波形图类似,如图518所示。
图518XY图
与波形图一样,XY图也是一次性完成波形的显示刷新。但XY图控件接收多种数据类型,从而把数据在显示为图形前进行类型转换的工作量减到最小。
1. 单曲线
用XY图绘制单条曲线常采用以下两种方法,如图519所示。
图519使用XY图绘制单条曲线
(1) X数组和Y数组打包生成的簇。绘制曲线时,把相同索引的X和Y数组元素值作为一个点,按索引顺序连接所有的点生成曲线图。使用这种方式来组织数据要确保两个数组的数据长度相同,否则以长度较短的数组为准,长度较长的数组多出的部分将无法
评论
还没有评论。