虚拟仪器奥尔斯实验箱使用说明书.pdf
虚拟仪器实验指导教材 前 言 首先,非常感谢您购买我们的 OURS-ELVIS 实验教学平台。为了让您更方便地使用此 款实验教学平台,我们编写了一本基于该款实验平台的实验指导书,愿本书能成为您在学习 虚拟仪器系统旅程中的一个好旅伴、好助手。 本书的适用对象 本实验教材非常适用于对 LabVIEW 编程及虚拟仪器系统感兴趣的初学者,包括大专、 本科以及研究生,可以将其作为基础教学课本。同时也适合对 LabVIEW 编程及虚拟仪器系 统开发有一定基础的中级开发工程师使用,他们都能从本书中找到有价值的实用及参考资 料。 本书的章节分布 本书一共分六个章节,从虚拟仪器的基本概念入手,逐一介绍了虚拟仪器的特点及应用、 虚拟仪器结构框架、OURS-ELVIS 实验平台、LabVIEW 开发环境以及虚拟仪器平台上的实 验,实验由 LabVIEW 的基本编程知识入手,再将 LabVIEW 的编程知识实践于我们这款实 验箱上,让大家在这个过程中对 LabVIEW 编程有更深入的了解,最后再将 LabVIEW 升华 至虚拟仪器的应用中。章节分别是: 虚拟仪器概述 虚拟仪器开发环境 LabVIEW 基础实验 虚拟仪器应用实验 虚拟仪器综合实验 虚拟仪器高级实验 本书的特点 本书主要有两个特点: 考虑到初学者对 LabVIEW 图形化编程的陌生,为了使大家能快速进入 LabVIEW 编程的大门,我们准备了一系列由浅入深的编程实验,将常用的 LabVIEW 编程知 识呈现给大家,另外每个实验都配有相应实验程序及练习。 由于本书的实验操作部分的讲解所占比重较大,而在做实验的过程中,有很多问题 是您必须关注到的,为此,我们在每个实验指导部分的前面都有实验原理及说明, 请您务必认真阅读,它对您肯定会起到很大的帮助。 本书的创作队伍 本实验指导书的作者都是计算机专业领域以及电子专业领域的高级工程师,他们不但 具有高深的专业知识,同时也拥有丰富的实践经验,所介绍的内容都是在工作中得到千锤百 炼,具有一定的权威性。有我们的层层把关,我们相信最终奉献给您的将是一本精品书籍。 当然,由于时间的紧促,加之水平有限,书中错误在所难免,望读者您能给予批评指 正,我们将衷心感谢。 最后,再次感谢您购买我们的 OURS-ELVIS 实验教学平台,祝您使用愉快! 编者 2008 年 9 月 1 日 I 虚拟仪器实验指导教材 II 虚拟仪器实验指导教材 目 录 第一章 虚拟仪器概述 .............................................................................................................1 1.1 仪器与测量技术发展状况................................................................................................1 1.2 虚拟仪器的概念................................................................................................................2 1.3 虚拟仪器的特点及应用领域............................................................................................4 1.3.1 虚拟仪器的特点 ...................................................................................................4 1.3.2 虚拟仪器应用领域 ...............................................................................................8 1.4 虚拟仪器系统的组成及分类..........................................................................................10 1.4.1 虚拟仪器系统的组成 .........................................................................................10 1.4.2 虚拟仪器的分类 .................................................................................................13 第二章 虚拟仪器开发环境 ..................................................................................................15 2.1 OURS-ELVIS 实验平台概述...........................................................................................15 2.2 虚拟仪器的软件开发平台..............................................................................................21 2.3 LabVIEW 简介及安装 .....................................................................................................26 2.3.1 LabVIEW 的历史..............................................................................................26 2.3.2 LabVIEW 的特点..............................................................................................26 2.3.3 计算机性能要求 .................................................................................................27 2.3.4 安装 LabVIEW 8.5 专业开发版 .....................................................................27 2.3.5 LabVIEW 编程环境..........................................................................................32 第三章 LabVIEW 基础实验 ..............................................................................................37 实验一 数值与布尔变量,数据操作......................................................................................37 实验二 字符串.......................................................................................................................45 实验三 数组与簇...................................................................................................................57 实验四 循环与程序结构.......................................................................................................76 实验五 波形控件...................................................................................................................91 实验六 控件操作进阶.........................................................................................................102 实验七 子 VI .......................................................................................................................110 实验八 文件操作.................................................................................................................120 实验九 网络编程.................................................................................................................135 实验十 定时结构与同步技术.............................................................................................142 第四章 虚拟仪器应用实验 ................................................................................................164 实验十一 与实验箱建立连接.............................................................................................164 实验十二 控制实验箱产生信号.........................................................................................170 实验十三 读写 IO ...............................................................................................................175 实验十四 DA 输出..............................................................................................................182 实验十五 测量电压.............................................................................................................187 实验十六 读取实验箱 AD 采集的数据 .............................................................................194 第五章 虚拟仪器综合实验 ................................................................................................200 实验十七 通过 ComManagerTCP 程序与实验箱通信......................................................200 实验十八 虚拟可变电源.....................................................................................................220 实验十九 虚拟万用表.........................................................................................................229 实验二十 虚拟信号发生器.................................................................................................237 实验二十一 虚拟 IO 控制...................................................................................................244 III 虚拟仪器实验指导教材 实验二十二 交通灯和拨码开关.........................................................................................249 实验二十三 虚拟传感器.....................................................................................................255 实验二十四 虚拟示波器.....................................................................................................261 第六章 虚拟仪器高级实验 ................................................................................................266 实验二十五 虚拟动态信号分析仪.....................................................................................266 实验二十六 232 串口通信..................................................................................................272 实验二十七 485 串口通信..................................................................................................281 实验二十八 CAN 通信 .......................................................................................................287 实验二十九 Audio 实验......................................................................................................293 实验三十 虚拟逻辑分析仪.................................................................................................301 实验三十一 虚拟频率计.....................................................................................................305 实验三十二 虚拟计数器.....................................................................................................309 实验三十三 虚拟脉冲发生器.............................................................................................314 实验三十四 虚拟任意波形发生器.....................................................................................320 附录 .............................................................................................................................................327 虚拟仪器使用说明 ..................................................................................................................328 常见问题 ....................................................................................................................................333 IV 虚拟仪器实验指导教材 第一章 虚拟仪器概述 虚拟仪器(Virtual Instrument,简称 VI)是计算机技术与仪器技术深层次结合产生的全 新概念的仪器,是对传统仪器概念的重大突破,是仪器领域内的一次革命。虚拟仪器是继第 一代仪器——模拟式仪表、第二代仪器——分立元件式仪表、第三代仪器——数字式仪器、 第四代仪器——智能化仪器之后的新一代仪器。如今,虚拟仪器系统广泛地应用在通讯、自 动化、半导体、航空、电子、电力、生化制药和工业生产等各种领域。 1.1 仪器与测量技术发展状况 测量仪器经历了由模拟仪器、带微处理器的智能仪器到全部可编程的虚拟仪器的发展历 程,其中每次飞跃都是以计算机技术的进步为动力。由于计算机技术特别是计算机总线标准 的发展直接导致了测量仪器的飞速发展。20 世纪 70 年代,随着微处理器的广泛应用,出现 了以微处理器为核心的智能仪器( Intelligent Instrument);1978 年,带 GPIB 总线的专用测 量仪器研制成功。80 年代以来,基于个人计算机总线的插卡式仪器出现并得到快速发展, 这 种仪器称为个人仪器(Personal Instrument)或 PC 仪器(PCI),亦称 PC 卡式仪器(Personal Computer Card Instrument,简称 PCCI)。PCCI 充分利用 PC 的软硬件资源,使仪器设计 灵活快捷。仪器的软硬件随着 PC 的发展而快速发展,代表性产品分别是 ISA、EISA 和 PCI 总线卡式仪器。为了克服插卡仪器需要打开机箱、携带不方便(如流行的笔记本电脑无法使 用) 等缺点,人们还研制开发了外接式专用 PC 仪器,主要基于 RS232/RS485 串行总线 和并行端口(打印口)。为了克服 PCCI 机箱内噪声水平高、扩展能力不足、电源功率小等缺 点,1987 年出现了一种专用于测量仪器领域高性能的 VXI 卡式仪器(VME bus Extension for Instrumentation) ,这种仪器具有稳定的电源、强有力的冷却能力和严格的 RF/EMI 屏蔽。 VXI 卡式仪器具有标准开放、结构紧凑、数据吞吐能力强、定时和同步精度高、模块可重复 利用、众多仪器厂家支持等优点,是大型高精度测试系统的发展主流。1997 年,为克服 PCI 总线仪器性能上的某些不足,并且要降低 VXI 总线仪器的成本,出现了 PXI 总线仪器。1999 年,为了克服 PC 插卡式仪器不能热拔插及外接式专用 PC 仪器的吞吐率受总线速度限制等 缺点,出现了高性能串行 USB 总线 PC 仪器。 大致说来,基于计算机的科学仪器发展至今可以分为 3 个阶段,而这 3 个阶段又可以 说是同步进行的。 第 1 阶段 利用计算机增强传统仪器的功能。由于 GPIB 总线标准的确立,计算机和外 界通信成为可能,只需要把传统仪器通过 GPIB 和 RS-232 同计算机连接起来,用户就可以 用计算机控制仪器。随着计算机系统性能价格比的不断上升,用计算机控制测控仪器已成为 一种趋势。这一阶段虚拟仪器的发展几乎是直线前进。 第 2 阶段 开放式仪器的构成。仪器硬件上出现了两大技术进步:一是插入式计算机数 据处理卡(plug-in PC-DAQ );二是 VXI 仪器总线标准的确立。这些新的技术使仪器的构成 得以开放,消除了第 1 阶段内在的由用户定义和供应商定义仪器功能的区别。 第 3 阶段 虚拟仪器(VI:Virtual Instrumentation)框架得到了广泛认同和采用。软件领 域面向对象技术把用户构建虚拟仪器需要的东西封装起来。许多行业标准在硬件和软件领域 产生,几个虚拟仪器平台已经得到认可,并逐渐成为虚拟仪器行业的标准工具。发展到这一 阶段,人们已认识到虚拟仪器软件框架才是数据采集和仪器控制系统实现自动化的关键。 1 虚拟仪器实验指导教材 1.2 虚拟仪器的概念 虚拟仪器的概念最早是美国国家仪器公司(National Instruments,后简称NI公司)于 1986年提出,并在此后的20多年时间内始终用虚拟仪器的概念引领测试测量行业发展趋势。 虚拟仪器是在智能仪器后发展起来的新一代仪器。 虚拟仪器的特点是仪器控制面板由计算机软件界面代替,由计算机控制仪器硬件。在虚 拟仪器概念提出后的20年间,虚拟仪器的内涵也不断地扩充。起初,NI公司曾经提出的一 个口号就是“软件就是仪器”。现在来看,这个提法由于过于强调软件,也因此给了许多人错 觉,认为虚拟仪器就是软件而没有硬件。 什么是虚拟仪器? 所谓虚拟仪器,就是在以通用计算机为核心的硬件平台上,由用户设计定义、具有虚拟 前面板、测试功能由测试软件完成、实现各种仪器功能的一种计算机仪器系统。 虚拟仪器技术就是利用高性能的模块化硬件,结合高效灵活的软件来完成各种测试、测 量和自动化的应用。灵活高效的软件能帮助您创建完全自定义的用户界面,模块化的硬件能 方便地提供全方位的系统集成,标准的软硬件平台能满足对同步和定时应用的需求。 因此,虚拟仪器将现有的计算机主流技术 ■ 高效灵活易用的软件 ■ 高性能模块化硬件 ■ 用于集成的软硬件平台 三者结合在一起,建立起功能强大又灵活易变的基于计算机的测试测量与控制系统来替 代传统仪器(价格昂贵,功能单一)的功能。这种方式不但让您享用到普通PC机不断发展 的性能,还可体会到完全自定义的测量和自动化系统功能的灵活性,最终构建起满足特定需 求的系统。 ⒈ 高效灵活的软件 软件是虚拟仪器技术中最重要的部分。使用正确的软件工具并通过设计或调用特定的程 序模块,可以高效地创建自己的应用以及友好的人机交互界面。好的软件不仅能轻松方便地 完成与各种软硬件的连接,更能提供强大的后续数据处理能力,设置数据处理、转换、存储 的方式,并将结果显示给用户。 有了功能强大的软件,您就可以在仪器中创建智能性和决策功能,从而发挥虚拟仪器技 术在测试测量应用中的强大优势。 ⒉ 模块化的I/O硬件 面对如今日益复杂的测试测量应用,我们需要提供全方位的软硬件的解决方案。无论是 PCI,PXI,PCMCIA,USB或者是1394总线,都能有相应的模块化的硬件产品,产品种类 从数据采集、信号调理、声音和振动测量、视觉、运动、仪器控制、分布式I/O到CAN接口 等工业通讯,应有尽有。高性能的硬件产品结合灵活的开发软件,可以为负责测试和设计工 作的创建完全自定义的测量系统,满足各种独特的应用要求。 2 虚拟仪器实验指导教材 图 1.1 ⒊ 用于集成的软硬件平台 NI首先提出的专为测试任务设计的PXI硬件平台,已经成为当今测试、测量和自动化应 用的标准平台,它的开放式构架、灵活性和PC技术的成本优势为测量和自动化行业带来了 一场翻天覆地的改革。PXI系统联盟现已吸引了68家厂商,联盟属下的产品数量也已激增至 近千种。 PXI作为一种专为工业数据采集与自动化应用量身定制的模块化仪器平台,内建有高端 的定时和触发总线,再配以各类模块化的I/O硬件和相应的测试测量开发软件,您就可以建 立完全自定义的测试测量解决方案。无论是面对简单的数据采集应用,还是高端的混合信号 同步采集,借助PXI高性能的硬件平台,您都能应付自如,这就是虚拟仪器技术带给您的无 可比拟的优势。 下面的框图 1.2 反映了常见的虚拟仪器方案: 被 测 对 象 信 号 调 理 数 据 采 集 卡 数 据 处 理 图 1.2 3 虚拟仪器面板 虚拟仪器实验指导教材 1.3 虚拟仪器的特点及应用领域 虚拟仪器实际上是一个按照仪器需求组织的数据采集系统。虚拟仪器的研究中涉及的基 础理论主要有计算机数据采集和数字信号处理。目前在这一领域内,使用较为广泛的计算机 语言是美国 NI(国家仪器)公司的 LabVIEW。 虚拟仪器的起源可以追朔到 20 世纪 70 年代,那时计算机测控系统在国防、航天等领 域已经有了相当的发展。PC 机出现以后,仪器的计算机化成为可能,甚至在 Microsoft 公 司的 Windows 诞生之前,NI 公司已经在 Macintosh 计算机上推出了 LabVIEW2.0 以前 的版本,对虚拟仪器和 LabVIEW 长期、系统、有效的研究开发使得该公司成为业界公认的 权威。 1.3.1 虚拟仪器的特点 虚拟仪器的主要特点有: 尽可能采用了通用的硬件,各种仪器的差异主要是软件。 可充分发挥计算机的能力,有强大的数据处理功能,可以创造出功能更强的仪 器。 用户可以根据自己的需要定义和制造各种仪器。 研制周期较传统仪器大为缩短。 虚拟仪器开放、灵活,可与计算机同步发展,可与网络及其它周边设备互联。 同时,虚拟仪器技术的四大优势: ⒈ 性能高 虚拟仪器技术是在 PC 技术的基础上发展起来的,所以完全“继承”了以现成即用的 PC 技术为主导的最新商业技术的优点,包括功能超卓的处理器和文件 I/O,使您在数据高速导 入磁盘的同时就能实时地进行复杂的分析。随着数据传输到硬驱功能地不断加强,以及与 PC 总线的结合,高速数据记录已经较少依赖大容量的本地内存,就能以高达每秒 100MB 的速度将数据导入磁盘。 图 1.3 4 虚拟仪器实验指导教材 此外,不断发展的因特网和越来越快的计算机网络使得虚拟仪器技术展现其更强大的优 势,使数据分享进入了一个全新的阶段,将因特网和虚拟仪器技术相结合,就能够轻松地发 布测量结果到世界上的任何地方。 ⒉ 扩展性强 虚拟仪器现有软硬件工具使得工程师和科学家们不再圈囿于当前的技术中。得益于软件 的灵活性,只需更新您的计算机或测量硬件,就能以最少的硬件投资和极少的、甚至无需软 件上的升级即可改进您的整个系统。在利用最新科技的时候,您可以把它们集成到现有的测 量设备,最终以较少的成本加速产品上市的时间。 ⒊ 开发时间少 在驱动和应用两个层面上,高效的软件构架能与计算机、仪器仪表和通讯方面的最新技 术结合在一起。虚拟仪器这一软件构架的初衷就是为了方便用户的操作,同时还提供了灵活 性和强大的功能,使您轻松地配置、创建、发布、维护和修改高性能、低成本的测量和控制 解决方案。 ⒋ 无缝集成 虚拟仪器技术从本质上说是一个集成的软硬件概念。随着测试系统在功能上不断地趋于 复杂,工程师们通常需要集成多个测量设备来满足完整的测试需求,而连接和集成这些不同 设备总是要耗费大量的时间,不是轻易可以完成的。 虚拟仪器软件平台为所有的 I/O 设备提供了标准的接口,例如数据采集、视觉、运动和 分布式 I/O 等等,帮助用户轻松地将多个测量设备集成到单个系统,减少了任务的复杂性。 为了获得最高的性能﹑简单的开发过程和系统层面上的协调,这些不同的设备必须保持 其独立性,同时还要紧密地集成在一起。虚拟仪器的发展可以快速创建测试系统,并随着要 求的改变轻松地完成对系统的修改。这些都得益于这一集成式的构架带来的好处,测试系统 更具竞争性,可以更高效地设计和测量高质量的产品,并将它们更快速地投入市场。 图 1.4 虚拟仪器与传统仪器的区别,如表 1~1 所示: 5 虚拟仪器实验指导教材 表 1~1 ⒈ 灵活性 虚拟仪器概念的提出是针对于传统仪器而言的,它们之间的最大区别是由虚拟仪器提供 的是完成测量或控制任务所需的所有软件和硬件设备,而功能是由用户定义。而传统仪器则 功能固定且由厂商定义,把所有软件和测量电路封装在一起利用仪器前面板为用户提供一组 有限的功能。而虚拟仪器则非常灵活,使用高效且功能强大的软件来自定义采集、分析、存 储、共享和显示功能。 图 1.5 每一个虚拟仪器系统都由两部分组成——软件和硬件。对于当前的测量任务,虚拟仪器 系统的价格可能与具有相似功能的传统仪器相差无几,也可能比它少很多倍。但由于虚拟仪 器在测量任务需要改变时具有更大的灵活性,因而随着时间的流逝,节省的成本也不断累计。 虚拟仪器的灵活性体现在: ⑴不同的设备实现同一应用 一个测试项目(一个直流(DC)电压和温度测量应用)根据不同的应用场合可以采用 不同的设备,却可以采用相同的程序代码。若是实验室验证,就可以应用台式计算机上PCI 总线,使用LabVIEW和DAQ设备开发一个应用程序。若要应用于生产线,则可以采用PXI系 统上配置应用程序。若是需要具有便携性,就可以选择USB总线的DAQ产品来完成任务。 6 虚拟仪器实验指导教材 图 1.6 在许多设备上使用同样的应用程序之时升级硬件十分轻松 ⑵一个设备实现不同应用 假设有两个不同的应用,一个是利用DAQ设备和积分编码器来测量电机位置的项目;另 外一个是监视和记录这个电机的功率。即使这两个任务完全不同,也可以重复利用同一块 DAQ 设备。所需要做的就是使用虚拟仪器软件开发出新的应用程序。此外,如果需要的话, 项目既可以与一个单一的应用程序结合也可以运行在一个单一的DAQ设备。 图 1.7 通过为许多应用程序重复使用硬件减少成本 ⒉ 仪器概念的转变 图 1.8 7 虚拟仪器实验指导教材 ⒊ 硬件性能 虚拟仪器的重要概念就是驱使实际虚拟仪器软件和硬件设备加速的策略。虚拟仪器技术 致力于适应或使用诸如Microsoft、Intel、Analog Devices、Xilinx以及其他公司的高投入技术。 例如,使用Microsoft在操作系统(OS)和开发工具方面的巨大投资。在硬件方面,应用基 于Analog Devices在A/D转换器方面的投资。 虚拟仪器系统是基于软件的,所以只要是可以数字化的东西,就可以对它进行测量。因 此,测量硬件可在通过两根坐标轴进行评估,即分辨率(位)和频率。参考下图1.9所示, 可以看出虚拟仪器硬件测量性能与传统仪器的比较。虚拟仪器的目标就是将曲线在频率和分 辨率上延伸并且在曲线内进行不断推陈出新。 图 1.9 虚拟仪器与传统仪器硬件性能的比较 ⒋ 兼容性 虚拟仪器和传统仪器要并存一段时间,一些测试系统必然要将两者结合使用。虚拟仪器 和传统仪器之间的兼容性问题成为关注的焦点。 虚拟仪器可与传统仪器完全兼容,无一例外。虚拟仪器软件通常提供了与常用普通仪器 总线(如GPIB、串行总线和以太网)相连接的函数库。 除了提供库之外,200多家仪器厂商也为NI仪器驱动库提供了4000余种仪器驱动。仪器 驱动提供了一套高层且可读的函数以及仪器接口。每一个仪器驱动都专为仪器某一特定的模 型而设计,从而为它独特的性能提供接口。 1.3.2 虚拟仪器应用领域 虚拟仪器的应用领域: 航天航空 军工 核工业 铁路交通 电子测量、通信测试 机械工程、振动分析、声学分析 故障诊断 电力工程、建筑工程、地质勘探 生物医疗 教学及科研 …… 虚拟仪器在工业自动化、测试和测量领域的应用,见下表1~2: 8 虚拟仪器实验指导教材 表 1~2 基于LabVIEW的典型虚拟仪器测试系统,见表1~3: 表 1~3 9 虚拟仪器实验指导教材 1.4 虚拟仪器系统的组成及分类 1.4.1 虚拟仪器系统的组成 虚拟仪器系统是由计算机、应用软件和仪器硬件三大要素构成的,计算机与仪器硬件又 称为VI的通用仪器硬件平台,软件技术是虚拟仪器的核心技术。 虚拟仪器系统的组成,如下图1.10所示: 图 1.10 虚拟仪器系统类型及组成-1 图 1.11 虚拟仪器系统类型及组成-2 10 虚拟仪器实验指导教材 图 1.12 ⒈ 虚拟仪器的硬件构成 图 1.13 虚拟仪器通用结构示意图 如上图 1.13 所示,虚拟仪器的硬件构成有多种方案,通常采用以下几种: (1)基于数据采集的虚拟仪器系统 这种方式借助于插入计算机内的数据采集卡与专用的软件如 LabVIEW(或 LabWindows /CVI)相结合,通过 A/D 变换将模拟、数字信号采集到计算机进行分析、处理、显示等, 并可通过 D/A 转换实现反馈控制,根据需要还可加入信号调理和实时 DSP 等硬件模块。 (2)基于通用接口总线 GPIB 的仪器系统 GPIB(General Purpose Interface Bus)仪器系统的构成是迈向虚拟仪器的第一步, 即利用 GPIB 接口卡将若干 GPIB 仪器连接起来,用计算机增强传统仪器的功能,组织大型柔 性自动测试系统。它技术易于升级,维护方便,仪器功能和面板自定义,开发和使用容易, 可高效灵活地完成各种不同规模的测试测量任务。利用 GPIB 技术,可由计算机实现对仪器 的操作和控制,替代传统的人工操作方式,排除人为因素造成的测试测量误差。同时,由于 可预先编制好测试程序,实现自动测试,提高了测试效率。 (3)利用 VXI 总线仪器实现虚拟仪器系统 VXI(VME Extension for Instruments)总线为虚拟仪器系统提供了一个更为广阔的发 展空间。VXI 总线是一种高速计算机总线——VME(Versa Module Euro card)总线在仪器 11 虚拟仪器实验指导教材 领域的扩展。由于其标准开放、传输速率高、数据吞吐能力强、定时和同步精确、模块化设 计、结构紧凑、使用方便灵活,已越来越受到重视。它便于组织大规模、集成化系统,是仪 器发展的一个方向。 (4)基于串行口或其它工业标准总线的系统 将某些串行口仪器和工业控制模块连接起来,组成实时监控系统。将带有 RS-232 总线 接口的仪器作为 I/O 接口设备,通过 RS-232 串口总线与 PC 计算机组成虚拟仪器系统,这 仍然是目前虚拟仪器的构成方式之一。当今,PC 计算机已更多地采用了 USB 总线和 IEEE1394 总线。 ⒉ 虚拟仪器的软件体系构成 构成一个虚拟仪器系统,基本硬件确定以后,就可通过不同的软件实现不同的功能。软 件是虚拟仪器系统的关键,没有一个优秀的控制分析软件,就很难构成一台理想的虚拟仪器 系统。根据 VPP(VXI Plug&Play)系统规范的定义,虚拟仪器系统的软件结构应包含三个 部分,如下图 1.14 所示: 图 1.14 虚拟仪器软件体系构成 (1)I/O 接口软件 I/O 接口软件存在于仪器(即 I/O 接口设备)与仪器驱动程序之间,是一个完成对仪 器寄存器单元进行直接存取数据操作,并为仪器与仪器驱动程序提供信息传递的底层软件, 是实现开放的、统一的虚拟仪器系统的基础与核心。在 VPP 系统规范中,详细规范了虚拟仪 器的 I/O 接口软件的特点、组成、内部结构与实现规范,并将符合 VPP 规范的虚拟仪器 I /O 接口软件定义为 VISA 软件。 (2)仪器驱动程序 每个仪器模块均有自己的仪器驱动程序。仪器驱动程序的实质是为用户提供了用于仪器 操作的较抽象的操作函数集。对于应用程序来说,它对仪器的操作是通过仪器驱动程序来实 现的;仪器驱动程序对于仪器的操作与管理,又是通过 I/O 软件所提供的统一基础与格式 的函数库(VISA)的调用来实现的。对于应用程序设计人员来说,一旦有了仪器驱动程序, 在不是十分了解仪器内部操作过程的情况下,也可以进行虚拟仪器系统的设计工作。虚拟仪 器驱动程序是连接上层应用程序与底层 I/O 接口软件的纽带和桥梁。 (3)应用软件开发环境 应用软件开发环境的选择,因开发人员喜好的不同而不同,但最终都必须提供给用户一 个界面友好、功能强大的应用程序。在目前,虚拟仪器系统应用软件开发环境主要包括两种: ①基于传统的文本语言式的平台。主要是 NI 公司的 LabWindows/CVI、Microsoft 公司 的 Visual C++、Visual Basic、Borland 公司的 Delphi 等。 ②基于图形化编程环境的平台。如 HP 公司的 HPVEE、NI 公司的 LabVIEW 等。图形化软 件开发平台的提出,可以大大减轻系统开发人员的负担,使其将主要精力集中投入到系统设 计中,而不再是具体软件细节的推敲上。 12 虚拟仪器实验指导教材 1.4.2 虚拟仪器的分类 虚拟仪器的发展随着计算机的发展和采用总线方式的不同,大致可分为七种类型: 第一类:PC总线——插卡型虚拟仪器 这种方式借助于插入计算机内的板卡(数据采集卡、图像采集卡等)与专用的软件,如 LabVIEW™、LabWindows/CVI、通用编程工具 Visual C++和 Visual Basic 等等相结合,它可 以充分利用 PC 机或工控机内的总线、机箱、电源及软件的便利。 但是该类虚拟仪器受普通 PC 机机箱结构和总线类型限制,并且有电源功率不足,还有 机箱内部的噪声电平较高,插槽数目较少,插槽尺寸小,机箱内无屏蔽等缺点。该类虚拟仪 器曾有 ISA、PCI 和 PCMCIA 总线等,但目前 ISA 总线的虚拟仪器已经基本淘汰,PCMCIA 结 构连接强度太弱的限制影响了它的工程应用,而 PCI 总线的虚拟仪器广为应用。 第二类:并行口式虚拟仪器 该类型的虚拟仪器是一系列可连接到计算机并行口的测试装置。它们把仪器硬件集成在 一个采集盒内,仪器软件装在计算机上,通常可以完成各种测量测试仪器的功能,可以组成 数字存储示波器、频谱分析仪、逻辑分析仪、任意波形发生器、频率计、数字万用表、功率 计、程控稳压电源、数据记录仪、数据采集器。它们的最大好处是可以与笔记本计算机相连, 方便野外作业,又可与台式 PC 机相连,实现台式和便携式两用,非常灵活。由于其价格低 廉、用途广泛,适合于研发部门和各种教学实验室应用。 第三类:GPIB总线方式的虚拟仪器 GPIB(General Purpose Interface Bus)技术是 IEEE488 标准的虚拟仪器早期的发展 阶段。GPIB 也称 HPIB 或 IEEE488 总线,最初是由 HP 公司开发的仪器总线。该类虚拟仪器 可以说是虚拟仪器早期的发展阶段,也是虚拟仪器与传统仪器结合的典型例子。它的出现使 电子测量从独立的单台手工操作向大规模自动测试系统发展。典型的 GPIB 测试系统由一台 PC 机、一块 GPIB 接口卡和若干台 GPIB 总线仪器通过 GPIB 电缆连接而成。一块 GPIB 接口 可联接 14 台仪器,电缆长度可达 40 米。 利用 GPIB 技术实现计算机对仪器的操作和控制,替代传统的人工操作方式,可以很多 方便地把多台仪器组合起来,形成自动测量系统。GPIB 测量系统的结构和命令简单,主要 应用于控制高性能专用台式仪器,适合于精确度要求高的,但不要求对计算机高速传输状况 时应用。 第四类:VXI总线方式虚拟仪器 VXI( VME Extension for Instruments )总线是一种高速计算机总线 VME 总线在 VI 领域的扩展。它具有稳定的电源,强有力的冷却能力和严格的 RFI/EMI 屏蔽。由于它的标准 开放、结构紧凑、数据吞吐能力强、定时和同步精确、模块可重复利用、众多仪器厂家支持 的优点,很快得到广泛的应用。经过十多年的发展,VXI 系统的组建和使用越来越方便,尤 其是组建大、中规模自动测量系统以及对速度、精度要求高的场合,有其他仪器无法比拟的 优势。然而,组建 VXI 总线要求有机箱、零槽管理器及嵌入式控制器,造价比较高。目前这 种类型也有逐渐退出市场的趋势。 第五类:PXI总线方式虚拟仪器 PXI(PCI Extension for Instruments)总线方式是在 PCI 总线内核技术基础上增加了 成熟的技术规范和要求形成的,包括多板同步触发总线的技术,增加了用于相邻模块的高速 通讯的局域总线。PXI 具有高度可扩展性和多个扩展槽,通过使用 PCI—PCI 桥接器,可扩 展到 256 个扩展槽。对于多机箱系统,现在则可利用 MXI 接口进行连接,将 PCI 总线扩展到 200 米远,而台式机 PCI 系统只有 3~4 个扩展槽。台式 PC 的性能价格比和 PCI 总线面向仪 器领域的扩展优势结合起来,将形成未来的虚拟仪器平台。 13 虚拟仪器实验指导教材 第六类:外挂型串行总线虚拟仪器 这类虚拟仪器是利用 RS-232 总线、USB 和 1394 总线等目前 PC 机提供的一些标准总线, 可以解决基于 PCI 总线的虚拟仪器在插卡时都需要打开机箱等操作不便, 以及 PCI 插槽有限。 同时,测试信号直接进入计算机,各种现场的被测信号对计算机的安全造成很大的威胁。而 且,计算机内部的强电磁干扰对被测信号也会造成很大的影响,故外挂式虚拟仪器系统成为 廉价型虚拟仪器测试系统的主流。 RS-232 主要是用于前面提到过的仪器控制。目前应用较多的是近年来得到广泛支持的 USB,但 USB 也只限于用在较简单的测试系统中。用虚拟仪器组建自动测试系统,更有前途 的是采用 IEEE1394 串行总线,因为这种高速串行总线能够以 200 或 400Mb/s 的速率传送数 据,显然会成为虚拟仪器发展最比较有前途的总线。 这类虚拟仪器可把采集信号的硬件集成在一个采集盒里或一个探头上,软件装在 PC 机 上。它们的优点是既可以与笔记本计算机相连,方便野外作业,又可与台式机相连,实现台 式和便携式两用。特别是由于传输速度快、可以热插拔、联机使用方便的特点,很有发展前 途,将成为未来虚拟仪器市场的主流平台。 第七类:网络化虚拟仪器 现场总线、工业以太网和 Internet,为了共享测试系统资源,提供了支持。工业现场 总线是一个网络通讯标准,它使得不同厂家的产品通过通讯总线使用共同的协议进行通讯。 现在,各种现场总线在不同行业均有一定应用;工业以太网也有望进入工业现场,应用前景 广阔;Internet 已经深入各行各业乃至千家万户,可以通过 Web 浏览器对测试过程进行观 测,通过 Internet 操作仪器设备,这样就能够方便地将虚拟仪器组成计算机网络。利用网 络技术将分散在不同地理位置不同功能的测试设备联系在一起,使昂贵的硬件设备、软件在 网络上得以共享,减少了设备重复投资。现在,有关 MCN(Measurement and Control Networks) 方面的标准已经取得了一定进展。 14 虚拟仪器实验指导教材 第二章 虚拟仪器开发环境 通过阅读前面第一章有关虚拟仪器以及与其相关的基础知识之后,本章将介绍一个由计 算机、应用软件是 NI LabVIEW、仪器硬件是 OURS-ELVIS 实验平台三部分构成的虚拟仪器 系统,并详细地说明了 OURS-ELVIS 实验平台和 NI LabVIEW 软件。这个虚拟仪器系统 属于前面所讲到虚拟仪器分类中的网络化虚拟仪器,硬件构成方案采用了基于数据采集的虚 拟仪器系统。下面是对 OURS-ELVIS 实验平台和 NI LabVIEW 软件两部分作比较详细的 说明。 2.1 OURS-ELVIS 实验平台概述 OURS-ELVIS(虚拟仪器技术教学与实验系统,Educational Laboratory Virtual Instrumentation System,简称 OURS-ELVIS) ,是一款基于 NI LabVIEW 图形化开发 环境的专用于虚拟仪器设计与原型教学的系统。这款设备提供多种虚拟仪器样例,支持高精 度的数据采集,提供丰富的传感器扩展,并且提供可调电源输出和多种参考的信号源输出, 通过 100M 以太网或 USB2.0 接口,与计算机进行高性能的数据交换。结合 LabVIEW 软 件,可满足高可靠、高性能的信号测量需求,实现功能强大的网络化虚拟仪器设备。该系统 可以实现虚拟可调电源、虚拟万用表、虚拟信号发生器、虚拟示波器、虚拟脉冲发生器、虚 拟频率计、虚拟计数器、虚拟逻辑分析仪和虚拟任意波形发生器等十余种实验常用仪器功能 的虚拟仪器套件。另外,还提供丰富的虚拟设备,如 GPIO 控制,交通灯,直流电机等控 制。同时,在设备端提供完备的人机交互功能,支持真彩色 TFT 液晶屏显示,支持触摸屏 操作,交互清晰友好。本系统也提供了丰富的扩展功能,从而非常适合学校和各类科研院所 作为数据采集的教学系统或评估平台。 该款实验平台适合于测量仪器、 电路、信号处理、 控制设计、 通讯、 机械电子、物 理等各个领域。 OURS-ELVIS 硬件组成与系统结构 OURS-ELVIS 实验平台包括实验箱和传感器模块,实物图如下图 2.1、图 2.2 所示: 15 虚拟仪器实验指导教材 图 2.1 图 2.2 支持的智能传感器类型 主要参数如下表 2~1 所示: 表 2~1 序号 组成 1 虚拟可调电源 性能指标 (1) 通道数:2 通道 16 虚拟仪器实验指导教材 (2) 信号幅度:0 ~ +12V,0 ~ -12V (3) 输出电流:500mA/ch (最大) (4) 提供内部限流保护 2 虚拟信号发生器 DDS (1) (2) (3) (4) (5) 通道数:2 通道 输出波形:正弦波,三角波,方波,TTL 信号带宽:1Hz ~ 1MHz 信号幅度:-10V ~ +10V 信号可调:幅度可调,直流偏置可调 (1) 通道数:4 通道 (2) 测量信号类型:电压,电流,电阻,电容,二极管 3 虚拟万用表 测量基本功能、量程和精度: 1. 直流电压:400.0mV, 4.000V, 40.00V 2. 交流电压:4.000V, 40.00V 3. 直流电流:400.0uA,4000uA, 40mA,400mA, 4A 4. 交流电流:400.0uA,4000uA, 40mA,400mA, 4A 5. 电阻:400.0Ω, 4.000KΩ, 40.00 KΩ, 400.0 KΩ, 4.000MΩ 6. 电容:40nF,400nF,4μF,40μF 7. 频率:10Hz~10MHz 8. 占空比:1% ~ 99% 9. 二极管测试:支持 10. 通断蜂鸣:支持 11. 自动量程:支持 虚拟示波器 (1) (2) (3) (4) (5) 通道数:2 通道 外部触发:1 通道 数据采样速率:100 MS/s (采样率动态可变) 信号输入范围:-10V ~ +10V 耦合方式:直流/交流电压信号 虚拟脉冲发生器 (1) (2) (3) (4) (5) 通道数:1 通道 输出脉冲:正脉冲,脉宽可调 信号带宽:1Hz ~ 990KHz 信号幅度:0 或 5V 脉宽可调精度:1% 6 虚拟标准信号源 (1) 通道数:2 通道 (2) 5V 直流标准源:DC 5V 0.1% (3) 1KHz 信号源幅度: TTL 输出 7 虚拟数字频率计 8 虚拟计数器 9 虚拟逻辑分析仪 4 5 (1) 通道数:1 通道 (2) (1) (2) (3) (4) 信号带宽:1Hz ~ 15MHz 通道数:1 通道 计数类型:数字脉冲 计数位数:31bits 计数深度 支持同步预置数 (1) 通道数:8 通道 (2) 输入信号的频率:100K 17 虚拟仪器实验指导教材 10 虚拟任意波形 发生器 (1) (2) (3) (4) 通道数:1 通道 信号频率:0 ~ 100K 信号幅度:0 ~ 5V 每周期点数:100 点 11 虚拟 IO 控制 电机控制(扩展) (1) 直流电机控制:分为低速、中速、高速三档控制, 转速有反馈。 (2) 步进电机控制:正向步进、反向步进,按照指定要 求步进。 12 交通灯和拨码开关 (1) 输出 IO:12 路 LED 指示(4 路口红绿灯控制) (2) 输入 IO:8 路拨码开关 智能虚拟传感器 (扩展) (1) 支持多种模拟传感器扩展 (2) 支持数字传感器扩展,支持 UART 接口 (3) 为外部传感器提供电源 i. 智能电位器模块 供电电压: DC 3.3V 信号输出范围: 0 ~ 3.3V AD 采样精度: 10 bits ii. 智能温度传感器模块 供电电压: DC 5.0V 信号输出范围: +2℃ ~ +150℃ AD 采样精度: 10 bits iii. 智能光电传感器模块 供电电压: DC 5.0V 信号输出范围: 0 ~ 3000 lx AD 采样精度: 10 bits iv. 智能压力传感器模块 供电电压: DC 5.0V 信号输出范围: 0 ~ 1500 g AD 采样精度: 10 bits v. 智能霍尔传感器模块 供电电压: DC 5.0V 信号输出范围: -800 ~ 800 Gauss AD 采样精度: 10 bits vi. 智能磁阻传感器模块 供电电压: DC 5.0V 信号输出范围: -6 ~ 6 Gauss AD 采样精度: 10 bits vii. 智能湿度传感器模块 供电电压: DC 5.0V 信号输出范围: 0 ~ 100 %RH AD 采样精度: 10 bits viii. 智能加速度传感器模块 供电电压: DC 5.0V 信号输出范围: -2G ~ +2G 13 18 虚拟仪器实验指导教材 AD 采样精度: 14 人机界面 15 面包板扩展 其它功能 16 8 bits LCD:TFT 4.3 寸真彩液晶屏 触摸屏:四线电阻式 台湾进口面包板 (1) 2 通道 16bits DA 输出,高精度信号源 (2) 1 通道 16bits AD 输入,高精度数据采集 (3) 100M 网络 × 1 (4) USB HOST × 1 (5) USB Device × 1 (6) CAN 总线 × 1,电源隔离,信号光电隔离 (7) 音频输入输出 (8) 8 路数字输入,8 路数字输出 (9) RS485 × 1 (10) RS232 × 1 系统结构,是在 OURS 网络数据采集卡和 LabVIEW 编程的基础上集成了实验常用仪器 功能的虚拟仪器套件,如图 2.3 所示。 图 2.3 OURS-ELVIS 系统结构图 实验箱内嵌高性能网络数据采集仪,无需计算机采集卡,便可实现实验箱与计 算机高速数据传输; 实验箱包含电子类实验室常用仪器仪表模块,包括数字可调直流电源模块、DDS 信号源模块,万用表模块、常用的传感器模块和常用的控制模块,可以完成 20 种基本实验; 19 虚拟仪器实验指导教材 优异的扩展性,系统提供可选的多种扩展板,如运算电路单元扩展板、心电信 号采集扩展板等,提供各个专业的单元模块,方便教学;系统提供标准的面包 板,方便学生临时的功能扩展; 包括 LabVIEW 源代码(用于 Windows),实验资源完全开放,可以在 LabVIEW 中自定义; 基于实验平台,可开发包括示波器、数字万用表、信号发生器、频率计、计数 器、函数发生器、逻辑分析仪等各种虚拟仪器。 网络数据采集控制单元 OURS-ELVIS 提供基于以太网的数据采集功能,内嵌高端的网络处理器,对外部的模拟 信号进行采集,并转化为数字信号通过以太网传输给计算机;同时把计算机输出的数字信号 转变为模拟信号输出。网络数据采集单元配置见表 2~2 所示: 网络数据采集单元配置 模拟输入 2 通道 16 位模拟输入,100 MS/s (采样率动 态可变) 标配 模拟输出 2 通道 16bits DA 输出 标配 数字 I/O 8 路数字输入,8 路数字输出 标配 通信接口 100M 以太网 标配 显示部分 4.3 寸真彩液晶屏显示,触摸屏控制,可方便 实现各个功能切换,或者在没有连接计算机的时 候,可以实现简单的数据采集和显示 表 2~2 20 虚拟仪器实验指导教材 2.2 虚拟仪器的软件开发平台 目前,各种虚拟仪器开发工具和平台种类比较多,但总体上说,虚拟仪器应用程序的开 发环境主要有两类:一类是基于通用编程软件进行编写的软件开发环境。常用的有属于传统 文本式的开发语言 C/C++、可视化编程工具 Visual Studio 中的 Visual BASIC、VC++ 和 Visual Studio.net 及相应的软件包、JAVA、MATLAB 等, 以及 Borland 公司的 Delphi、 C++Builder、JBuilder 等,用这类平台开发虚拟仪器的也被称为中间开发平台。用户需 要利用虚拟仪器中间开发平台经过二次开发,将外部硬件通过驱动程序连接到计算机上,根 据需要开发相应的数据分析或仪器控制功能。由于 C/C++对开发人员的编程能力和对仪 器硬件的掌握要求很高, 因此使用的人已越来越少。也有用到 Sybase 公司的 PowerBuilder 进行开发的,但由于用到的情况不多,不十分典型。另一类是基于图形化语言的软件开发环 境。常用的有 NI 公司的 LabVIEW 和 Lab Windows/CVI、Agilent 公司的 VEE 和 HPTIG 平台软件等。 几种虚拟仪器常用开发环境 1. 基于通用编程软件的开发环境 (1)Visual Basic Visual Basic 在界面设计、文件操作、多媒体应用、数据访问、Internet 应用等方面 都提供了强大的工具,集成化开发环境和软件调试环境方便,具有易学、易用、功能强大等 优点。然而,对于虚拟仪器开发而言,VB 在数据处理和图形显示方面却不如 LabVIEW。 在使用 VB 开发工业测量与控制系统应用软件时,常常要对待测量信号进行实时采集、显示, 以及实时处理等,而在这方面 VB 并不擅长。因此,对此类应用程序的开发,最为理想的解 决方案是,将 VB 的图形用户界面开发及其他方面的优势和 LabVIEW 在数据采集、显示与 处理方面的优势结合起来,互相取长补短,从而开发出功能更加强大的测控软件系统。除此 之外,也有用 VB 和 MATLAB 混合编程开发虚拟仪器的。MATLAB 与 VB 的结合主要有两 种方式:其一是在 VB 中引入 MATRIXVB,使得 VB 可以调用 MATLAB 函数;其二是将在 MATLAB 中编写的文件编译成 VB 可以调用的 DLL 文件。通过混合编程,利用 VB 和 MATRIXVB,快速、简洁地生成虚拟仪器,而通过调用 MATLAB 的打印、文字、图形处理 等函数可以获得更多的操作功能。 (2)VC VC 是一种通用且功能强大的编辑语言,有着无可比拟的优势,现已成为主流开发平台。 作为一种流行的可视化面向对象编程软件,用其进行虚拟仪器的软件编程,对于诸多熟悉 VC 的程序员来说,是一个方便快捷的实现途径。但就虚拟仪器开发而言,由于其自带的界 面控件不是十分丰富,在许多测控软件要求用户界面具有和真实仪器相似外观的情况下,用 VC 实现常需要成千上万条代码,也常会产生效率太低的情况。好在有着极为丰富的界面控 件的 LabVIEW 中的很多控件可供其他程序共享,而在 VC 中也可以添加外部的控件,因 而可实现在 VC 环境下使用 LabVIEW 控件进行编程。VC 在虚拟仪器开发方面,常常和其 他开发工具进行混合编程来提高编程效率,减轻工作量,缩短程序开发周期,提高经济效益。 (3)Visual Studio.NET Visual Studio.NET 和.NET 开发框架紧密结合,是构建互联网应用的优秀工具。但目 前很少有单独利用 Visual Studio.NET 来开发虚拟仪器的,通常需要借助第三方的软件包, 才能将 Visual Studio.NET 的优势充分发挥出来。目前基于该平台的软件包主要有安捷伦 (Angilent)T&M 软件包和 NI 公司的 Measurement Studio for Visual Studio.NET 等。 21 虚拟仪器实验指导教材 (4)C++ Builder 通常开发系统底层的东西,需要极好的兼容性和稳定性时,选 Visual C++。而为企业 开发数据库、信息管理系统等高层应用,且有比较紧的期限限制时,选 C++ Builder 比较 好。对于虚拟仪器开发而言,C++ Builder 的情况与 VC 基本相似,除了可以单独进行开 发之外,很多时候也可采用混合编程的方法进行开发。当将其与 LabWindows/CVI 的仪 器控制、数据采集结合起来时,可实现良好的仪器控制和外围开发能力。在混和编程过程中, C++ Builder 调用 LabWindows/CVI 的动态链接库,有显式链接和隐式链接两种。其中 隐式链接通过动态链接库的 import library file(.1ib 文件)实现,.1ib 文件在 LabWindows /CVI 生成动态链接库时产生,显式链接则通过 C++Builder 的 Loadlibrary()函数来实 现。 (5)JAVA Java 语言具有良好的跨平台性,程序的执行与本地操作系统无关。利用动态数据交换 (DDE)技术与 JAVA Applet 技术相结合可实现高速实时的 Web 虚拟仪器。用 Applet 技术 实现的浏览器运行的客户端,可以让在用户不安装任何附加软件的情况下浏览到生动逼真的 远程虚拟仪器界面。JAVA 语言的下标检查机制和自动内存管理机制也为其增加了较强的稳 定性和安全性,这一点对于构建网上虚拟仪器系统来说是非常关键的。由于 Java 的运行需 要本地 Java 虚拟机的支持,因此其对硬件的控制能力较差。通常解决这个问题的方法是使 用其它的语言来开发直接操作硬件的部分,然后采用动态数据交换完成二者之间的快速通 信,这样即可以充分发挥 Java Applet 的丰富的网页绘图特性,又可弥补其不足,通过利 用具有高效的硬件控制能力的开发工具,共同协作完成 Web 虚拟仪器的解决方案。 (6)MATLAB 目前,MATLAB 已经成为线性代数、数值分析、数理统计、优化方法、自动控制、数 字信号处理、动态系统仿真等高级课程的基本教学工具。但对于虚拟仪器开发来说,MATLAB 还是有不足之处的,例如界面开发能力较差,并且数据输入、网络通信、硬件控制等方面都 比较繁琐。因此,很少有用 MATLAB 单独开发虚拟仪器的,通常都将其作为一种辅助工具, 和其它语言结合起来,通过混合编程进行虚拟仪器的开发。这里以 MATLAB 分别与 VC++ 和 LabVIEW 相结合进行的混合编程为例。MATLAB 与 VC++混合编程的具体方式有多种, 根据 MATLAB 是否运行可大致分为两类:MATLAB 在后台运行和可以脱离 MATLAB 环境 运行。通常是 MATLAB 引擎采用客户机/服务器的计算方式,通过 Windows 的 Active X 通道和 MATLAB 接口。VC 的程序作为前端客户机,通过调用 MATLAB 引擎在后台与 MATLAB 服务器建立连接,实现动态通信。也有通过 MATLAB Add—in 实现 MATLAB 与 VC 的混合编程的。而 MATLAB 与 LabVIEW 混合编程,即可弥补 LabVIEW 的不适于进 行大量数据处理,不能完全提供用户所需要的驱动子程序,对底层操作(如:访问物理地址) 不易实现等不足,又可充分利用 LabVIEW 作为图形化虚拟仪器编程软件的优势。 2. 基于图形化语言的软件开发环境 (1)LabVIEW 美国 NI 公司推出的 LabVIEW 语言是一种优秀的面向对象的图形化编程语言。 LabVIEW(Laboratory Virtual Instrument Engineering Workbench)是实验室虚拟仪 器集成环境的简称,是一个开放型的开发环境,使用图标代替文本代码创建应用程序,拥有 大量与其它应用程序通信的 VI 库。作为基于数据流的编译型图形编程环境,它把语言编程 简化成用简单或图标提示的方法选择功能(图形),并用线条把各种图形连接起来的简单图形 编程方式,使得不熟悉编程的工程技术人员都可以按照测试要求和任务快速“画”出自己的程 序,“画”出仪器面板,减轻科研和工程技术人员的工作量,提高工作效率。LabVIEW 主要 用于开发数据检测、数据测量采集系统、工业自动控制系统和数据分析系统等领域,是虚拟 22 虚拟仪器实验指导教材 仪器系统的主要开发工具之一。 对于大多数的编程任务,LabVIEW 通常能产生高效的代码,但其也存在不足,如不适 于进行大量数据处理,不能完全提供用户所需要的驱动子程序,对底层操作(如,访问物理 地址)不易实现等情况,因此常需要借助其他语言或利用其它软件开发环境(如 Visual C++、MATLAB 等)来开发满足特殊功能的动态链接库(dynamic link library,简称 DLL) 文件来解决这类问题。LabVIEW 几乎可以调用任何语言(如 Visual C++,C++ Builder, Visual Basic 等)编写生成的动态链接库,从而完成一些特殊的功能。调用时主要有以下几 个特点: (1)可以用 C 或 stdcall 两种方式调用 DLL; (2)可以使用整数或浮点数的任意维数组; (3)不需要关心用巨大模式(HUGE)、近(NEAR)或远(FAR)指针; (4)LabVIEW 字符串能通过 C 字符指针传递给 DLL; (5)可以用空(void)、整型(integer)和浮点型(float)指针作为返回值。 通过配置 LabVIEW 提供的调用库函数节点——CLF(Call Library Function)节点来 调用 DLL 文件中的具体函数来实现需要的功能时,必须知道以下信息: (1)函数返回的数据类型; (2)函数调用的方式; (3)函数的参数及类型; (4)DLL 文件的位置等。 此外,LabVIEW 还可通过 ActiveX 自动化技术与 MATLAB 进行混合编程,将 LabVIEW 与 MATLAB 有机结合,达到利用 MATLAB 优化算法库的目的。在混合编程中, 通常用 LabVIEW 设计用户图形界面,负责数据采集和网络通信;MATLAB 在后台提供大 型算法供 LabVIEW 调用。LabVIEW 提供了 MATLAB Script 节点,使用 ActiveX 技术 执行该节点,启动一个 MATLAB 进程。这样就可以很方便地在自己的 LabVIEW 应用程序 中使用 MATLAB ,包括执行 MATLAB 命令、使用功能丰富的各种工具箱,如神经网络工 具箱(Neural Network Toolbox)、优化工具箱(Optimization Toolbox)等。采用虚拟仪 器技术,通过 LabVIEW 构建测试仪器开发效率高、可维护性强、测试精度、稳定性和可靠 性能够得到充分保证;但如果能同时利用 MATLAB 功能强大的算法库,可开发出更具智能 化的虚拟仪器,将会在诸如故障诊断、专家系统、复杂过程控制等方面大有用武之地。图 2.4 描述了一个用 LabVIEW 结合其它开发语言开发虚拟仪器的过程。图 2.5 描述了基于 LabVIEW 的通用开发流程。 23 虚拟仪器实验指导教材 图 2.4 用 LabVIEW 结合其它开发语言 图 2.5 基于 LabVIEW 的通用开发流程 开 发 虚 拟 仪 器 的 过 程 在 虚 拟 仪 器 网 络 化 技 术 方 面 , LabVIEW 可 利 用 Internet Developers Toolkit 来实现各种网络通信功能,如:发送包含测控信息的电子邮件,将文 件或数据传送到 FTP 服务器,利用浏览器浏览虚拟仪虚拟仪器,编写 CGI 程序实现服务器 端操作等。此开发工具包功能强大,能实现大部分的网络功能,对开发者的计算机网络知识 和计算机网络开发功底也有相当的要求。为了降低开发难度, NI 公司还提供了 NI LabVIEW Remote Panels 技术,可以通过简单的配置利用 IE 控制 LabVIEW VIs。 (2)Lab Windows/CVI Lab Windows/CVI 是 NI 公司推出的面向仪器与测控过程的 C、C++交互式开发, 在 Windows 环境下的标准 ANSIC 开发环境。该平台不仅提供了对虚拟仪器的支持,还具 有各种测试、通信、控制和数值分析的能力,具有图形建模简单、控制功能强大、实时性强、 24 虚拟仪器实验指导教材 编程容易等优点。LabWindows/CVI 在 C 语言的基础上综合了标准化软件开发平台和图 形化软件开发平台的优点,为熟悉 C 语言的开发人员提供了一个功能强大的软件开发环境, 常常用于组建大型测试系统或复杂的虚拟仪器。但是在 LabWindows/CVI 环境中进行系 统的测试功能开发时,对于系统整体平台的开发却存在着一些制约:提供的仿 Windows 界面设计功能比较单调,没有提供直接和通用数据库的接口,对数据库的操作和打印等实现 起 来 比 较 复杂 等 。 如 果系 统 要 求 提供 内 容 丰 富、 功 能 完 备的 服 务 功 能, 则 不 宜 使用 Labwindows/CVI 作为整个系统平台的主开发工具。在虚拟仪器网络化技术方面,NI 公 司提供了 LabWindows Internet Developers Toolkit,其基本情况和 LabVIEW Internet Developers Toolkit 有异曲同工之妙。 (3)Agilent VEE Agilent Visual Engineering Environment(Agilent VEE)是安捷伦公司(Agilent Technologies)推出的用于虚拟仪器开发的具有仪表优化控制特性的图形语言。只需将各种 功能对象(指组成试验系统的仪表和操作、运算过程)从相应的菜单中挑选出来,然后用鼠标 将代表对象的图标按流程连接起来,就可以产生程序,不必使用键盘,而程序也只是一张数 据流程图,比传统的代码方式更便于使用和理解。不必有丰富的编程知识,只需了解测试的 目标和顺序,然后用线把它们连接起来,程序就可完成。Agilent VEE 丰富的功能使其成为 用于测量和控制程序的工具,可提供高效、直观的图形编程环境,支持用户快速进行最佳测 试。在航空和国防、无线和家电行业,可以大大简化与测试开发相关的工作,包括:连接、 测量、分析和演示。此外,Agilent VEE 还提供了大量的网络开发工具,如 TCP/IP,ActiveX 功能等。由于安捷伦公司的强项在于成套的自动化测试仪器,因此,其网络功能侧重于测试 仪器设备的远程调用。当然,VEE 也存在许多不足之处,首先不能生成可执行程序,必须 在开发环境下执行,否则需要安装 VEE 运行库(VEE Pro Run Time),在这个环境下才可 以执行 VEE 的运行版本。另外还存在诸如系统执行效率较低,多任务调度能力差,用户自 定义函数功能弱,仪器驱动局限性大等缺点。 25 虚拟仪器实验指导教材 2.3 LabVIEW 简介及安装 LabVIEW 是一种图形化的编程语言,它广泛地被工业界、学术界和研究实验室所接受, 视为一个标准的数据采集和仪器控制软件。LabVIEW 集成了与满足 GPIB、VXI、RS-232 和 RS-485 协议的硬件及数据采集卡通讯的全部功能。它还内置了便于应用 TCP/IP、 ActiveX 等软件标准的库函数,这是一个功能强大且灵活的软件,利用它可以方便地建立自 己的虚拟仪器,其图形化的界面使得编程及使用过程都生动有趣。据独立的市场调查分析, LabVIEW 是科学家和工程师们进行测试系统及检测仪器应用开发的首选工具。 2.3.1 LabVIEW 的历史 20 世纪 70 年代末期:在美国应用研究实验室(Applied Research Laboratory) 产生 VI 概念的雏形 1986 年:发布 Macintosh 平台下的 LabVIEW 1.0 1988 年:发布 Macintosh 平台下的 LabVIEW 2.0 1990 年:虚拟仪器面板和结构化数据流图获两项美国专利 1994 年:发布 LabVIEW 3.0 带有附加工具包 1996 年:发布 LabVIEW 4.0 增加自定义界面和 Application Builder 发布 LabVIEW 5.0 支持多线程 2000 年:发布 LabVIEW 6i 集成因特网功能 2001 年:发布 LabVIEW 6.1 实现远程控制和增加事件结构等重要功能 2003 年:发布 LabVIEWTM 7 Express 增加了 Express VI 2004 年:发布 LabVIEWTM 7.1 Express 增加了许多全新的功能 2005 年:发布 LabVIEWTM 8.0 增加了 Express VI 2006 年 8 月:发布 LabVIEWTM 8.2 有了第一个中文版的开发环境 2007 年 8 月:发布 LabVIEWTM 8.5 2.3.2 LabVIEW 的特点 下面列表给出了 LabVIEW 的特点: 用于常用测量与自动化应用程序的交互式 Express VI,应用程序模板与设计模式 以创建常用应用; 内置的编译器可加快执行速度,支持条件断点和自定义探针,自动错误处理; 内置的 GPIB、VXI、串口和插入式 DAQ 板的库函数,利用 NI DAQ 7.0 和 DAQ Assistant 完成数据采集任务与自动代码; 650 多种 SCPI 仪器驱动程序,利用仪器 I/O Assistant 完成交互式仪器控制与代码 生成; 内容丰富的高级分析库,可进行信号处理、统计、曲线拟合以及复杂的分析工作; 直观明了的前面板用户界面和流程图式的编程风格,GUI 对象的属性设置页面; 利用 ActiveX、DDE 以及 TCP/IP 进行网络连接和进程通讯,缓冲 Data Socket,用 Email 传送 VI 数; 适用于 Windows NT/9x/3.1、Mac OS X、HP-UX、Sun 以及 Concurrent 实时计算 机; 3D 图形控件,增加了模块化和可视化的灵活性; 可缩放的前面板,用户可以移植他们的程序而无需手动改变控件的大小; 26 虚拟仪器实验指导教材 增强了报告的生成,可以快速地建立和打印格式化报表; 增强图形,包括 Smith 和极坐标图,可以以定制图形和动画; 基于 Web 的应用程序开发,便捷连接 .NET Web 服务,基于网络的帮助工具及更 强的搜索工具; 与 MathWorks 的 MATLAB 及 NI 的 HiQ 的无缝地集成; 带有声音与振动、信号处理、DSP 等附加工具包; LabVIEW 运行于 FPGA*上和 LabVIEW 运行于 Palm OS 与 Pocket PC PDA 上; 对齐网格(Alignment Grid),子面板(Sub Panel)和树形控件,反馈节点和平序结构, 自动走线,动态及用户自定义事件; 2.3.3 计算机性能要求 LabVIEW 8.5 可以安装在Windows Vista/XP/2000、Mac OS和Linux等不同的操作系 统上,不同的操作系统对安装LabVIEW 8.5 时要求的系统资源也不同,本书只对常用的 Windows操作系统下所需要安装资源作以说明,其他系统可参考LabVIEW 8.5 发布说明。 处理器: 至少需要 Pentium III 或 Celeron866 MHz 或同等处理器,建议使用 Pentium 4/M 或同等处理器 内存配置: 至少需要 256 MB 的随机内存,建议使用 1 GB 以上随机内存 硬盘空间: 至少留出 1.2 GB 的磁盘空间用于 LabVIEW 完整安装 屏幕分辨率: 1024 × 768 像素 2.3.4 安装 LabVIEW 8.5 专业开发版 安装之前,最好关闭所有自动病毒检测程序, 因为病毒检测程序会影响软件的安装。 (1)运行配套光盘(Labview8.5 安装程序)上的 setup.exe,出现初始化界面如图 2.6、 图 2.7 所示: 图 2.6 27 虚拟仪器实验指导教材 图 2.7 (2)点击下一步,弹出如图 2.8 所示的用户信息输入对话框界面:选择通过序列号安 装 NI LabVIEW 8.5.1,其中序列号是购买软件时NI公司授予合法用户的标识(光盘附带)。 图 2.8 (3)点击下一步按钮进入安装目录对话框。图 2.9 中默认的安装路径为C盘,可以单 28 虚拟仪器实验指导教材 击浏览按钮选择其他安装路径。 图 2.9 (4)点击下一步按钮进入安装组件选择对话框,如下图 2.10 所示,左击“NI 设备驱 动”选择不安装设备驱动 CD。 图 2.10 29 虚拟仪器实验指导教材 图 2.11 (5)点击下一步按钮进入许可协议对话框,如下图 2.12 所示。选择我接受该许可协议 后出现如图 2.14 所示的安装进度对话框。 图 2.12 30 虚拟仪器实验指导教材 图 2.13 图 2.14 31 虚拟仪器实验指导教材 (6)安装完成后弹出如下图 2.15 所示界面,点击下一步按钮,需要重新启动计算机, 如图 2.16 所示。 图 2.15 图 2.16 2.3.5 LabVIEW 编程环境 用 LabVIEW 编写程序与其他 Windows 环境下的可视化开发环境一样,程序的界面和代 码是分离的。在 LabVIEW 中,通过使用系统提供的工具选板、工具条和菜单来创建程序的 前面板和程序框图。LabVIEW 包括 3 个工具选板:控件(Controls)选板、函数(Functions) 选板、工具(Tools)选板,还包括启动窗口、上下文帮助窗口、工程管理窗口和导航窗口。 (1)启动界面 选 择 开 始 — > 所 有 程 序 — > National Instruments LabVIEW 8.5.1 选 项 启 动 LabVIEW。启动完成后进入如图 2.17 所示的启动窗口。 32 虚拟仪器实验指导教材 图 2.17 图中左边新建栏中的 VI 选项用于创建一个新的空白 VI 程序;项目选项可以创建一个 新的工程项目;基于模板的 VI 按类型列出 LabVIEW 自身提供的 VI 模板,用户可以以这些 模板为基础,建立自己的程序;更多选项和基于模板的 VI 选项的功能类似。打开栏中列出 了最近打开的工程项目和 VI 程序列表,通过浏览选项可以选择其他的项目和 VI 程序。图 中 右 边 主 要 列 出 了 LabVIEW 的 帮 助 信 息 , 通 过 选 择 这 些 信 息 用 户 可 以 更 好 地 学 习 LabVIEW。 (2)工程管理窗口(Project Explorer) 在 LabVIEW 中使用工程来管理 LabVIEW 文件和非 LabVIEW 文件、创建可执行文件、 下载文件到目标等。使用 Project Explorer 窗口来创建和编辑工程,LabVIEW 中工程项目文 件是以.lvproj 为后缀的。在 LabVIEW 的启动界面中选择文件 | 新建项目选项或在新建一栏 中选择项目选项后,创建一个新的工程,就会弹出项目浏览器窗口,如图 2.18 所示。 33 虚拟仪器实验指导教材 图 2.18 (3)前面板(Front Panel)和程序框图(Block Diagram) 在LabVIEW中开发的程序都被称为VI(虚拟仪器),其扩展名默认为.vi。所有的VI都 包括前面板(Front Panel)、程序框图(Block Diagram)以及图标(Icon)3部分,如图 2.19所示。 图 2.19 前面板是图形用户界面。该界面上有交互式的输入和输出两类控件,分别称为输入控件 34 虚拟仪器实验指导教材 (Controls)和显示控件(Indicators)。输入控件包括开关、旋钮、按钮和其他各种输入 设备;显示控件包括图形(Graph和Chart)、LED和其他显示输出对象。 程序框图是实现VI逻辑功能的图形化源代码。框图中的编程元素除了包括与前面板上的 控件对应的连线端子(Terminal)外,还有函数、子VI、常量、结构和连线等。 如果将VI与标准仪器相比较,那么前面板就相当于仪器面板,而框图相当于仪器箱内的 功能部件。 (4)运行和调试 VI 程序编写完成后,必须经过运行和调试来观察是否能产生预期的运行结果,从而查找出 程序中存在的潜在错误。LabVIEW提供了许多工具来帮助用户完成程序的调试,下面对它 们进行简单介绍。 ① 运行VI LabVIEW中有两种方法运行程序,即运行和连续运行。 运行VI 单击前面板或程序框图工具栏中的运行按钮 运行按钮变为 ,就可以运行VI一次,当VI正在运行时, 状态。 连续运行VI 当单击工具栏中的连续运行按钮 ,可以连续运行程序,这时按钮变为 状态,在 这种状态下再单击此按钮就可以停止连续运行。 停止VI运行 当程序运行时,停止按钮由编辑时的状态 变为可用状态 ,单击此按钮可强行停 止程序的运行。如果调试程序时,使程序无意中进入死循环或无法退出时,这个按钮可以强 行结束程序运行。 暂停VI运行 工具栏中的暂停按钮 用来暂停程序的运行。单击一次暂停程序,再次单击恢复程序 的运行。 ② 调试VI 使用LabVIEW编译环境中提供的调试手段可以使用户清楚地观察程序的运行,从而查 找错误、修改和优化程序。 采用单步运行VI功能 单步执行VI则是在程序框图中按照程序节点的逻辑关系,沿连线逐个节点来执行程序。 单击工具栏上的单步执行按钮 时,按单步步入方式执行VI,单击一步执行一步,遇 到循环结构或子VI时,跳入循环或子VI内部继续单步执行。 单击工具栏上的单步跳过按钮 时,按单步跳过方式执行VI,也是单击一步执行一步, 但在这种方式下把循环结构或子VI作为一个节点来执行,不再跳入其内部。 单击工具栏上的单步跳出按钮 时,可跳出单步执行VI的状态,且暂停运行程序。 高度显示程序运行过程 35 虚拟仪器实验指导教材 在程序执行前或正在执行时,单击工具栏上的高亮执行按钮 ,程序就可以在高亮方 式下运行,这时可以逼真地显示数据的流动过程。再次单击此按钮,程序又恢复正常运行。 注意,使用高亮执行方式,将明显降低程序的执行速度。 查找VI不可执行的原因 如果在一个VI程序中存在错误时,VI是不能运行的。这时,工具栏中的运行按钮由 为断裂状态 变 ,如果单击此按钮就会弹出错误列表对话框,如图2.20所示。 图 2.20 这个对话框中列出了目前VI中存在的所有错误,如果直接双击其中的错误行,则可定位 到程序框图中相应的错误处,这可以大大提高查找错误的效率。 36 虚拟仪器实验指导教材 第三章 LabVIEW 基础实验 实验一 数值与布尔变量,数据操作 1.1 实验目的 通过这个实验,初步了解 LabVIEW 编程中对数值型和布尔型变量的操作。 1.2 实验内容 “计算一元二次方程的两根”:通过 LabVIEW 中的数值变量和基本的加减乘除平方等 运算的组合,实现计算方程的根。通过这个程序,可对 LabVIEW 中的数据流编程及基本的 编程操作有大致的理解。 “模拟两开关控制一个灯”:运用了若干逻辑运算符来模拟生活中的电灯控制,这个程 序涉及了布尔控制变量、布尔显示变量以及对布尔变量的运算。 “数值型变量的范围及显示方式”:这个程序演示了 LabVIEW 中各种不同精度的数值 型变量以及数值型变量的不同显示方式。 1.3 实验原理及说明 作为一种通用编程语言,LabVIEW 与其他文本编程语言一样,数据操作是最基本的操 作。LabVIEW 支持几乎所有常用的数据类型和数据运算,同时还拥有其特殊的一些数据类 型。LabVIEW 中常用的数据类型包括:数字型、布尔型、枚举型、时间和日期类型、Variant 数据类型、局部变量和全局变量,基本的数据运算包括:算术运算、关系运算、逻辑运算以 及表达式节点。LabVIEW 中接线端以不同的图标和颜色来表示不同的数据类型。 数字型是基本的数据类型,主要包括浮点型、整型和复数型 3 种类型。LabVIEW 的数 据类型隐含在前面板的输入控件和显示控件中。数值控件主要位于控件选板的数值子选板 中,如下图 1-1 所示。 图 1-1 37 虚拟仪器实验指导教材 任何数据类型都具有相应的常数,常数在程序运行过程中是不可改变的。LabVIEW 中 的常数只能在程序框图中使用,它在函数选板的数值子选板中,如图 1-2 所示。任何时候都 可以右击控件或对象,选择“转换为常量”选项将控件转换为常数。 图 1-2 图 1-3 LabVIEW 中控件所代表的数据类型在编程时可以根据不同需要来改变。在前面板或程 序框图中右击控件或对象,从右键快捷菜单中选择表示法选项打开如上图 1-3 所示的选板, 从中可以选择该控件所代表的数据类型。 布尔型比较简单,只有 1 和 0,或真(True)和假(False)两种状态,也叫逻辑型。布 尔型主要包含在控制选板的布尔子选板中。和数字型类似,布尔常数存在于函数选板的布尔 子选板中。布尔控件和布尔常数如图 1-4 所示。 38 虚拟仪器实验指导教材 图 1-4 布尔型输入控件的一个重要属性叫做机械动作(Mechanical Action),使用该属性可以 模拟真实开关的动作特性。右击布尔型输入控件,选择机械动作选项就打开如图 1-5 所示的 子菜单。 图 1-5 在布尔输入控件属性对话框的操作标签中也可以设置机械动作,而且还有详细的说明和 动作效果预览。 LabVIEW 中提供了丰富的数据运算功能,除了基本的数据运算符外,还有许多功能强 大的函数节点,并且还支持通过一些简单的文本脚本进行数据运算。与文本语言编程不同的 是,在 LabVIEW 图形化编程中,运算是按照从左到右沿数据流的方向顺序执行。 1.4 实验设备 一台安装 LabVIEW 的 PC 机。 1.5 实验步骤 39 虚拟仪器实验指导教材 该实验设备软件开发平台 LabVIEW 8.5 的安装过程详见第二章的 2.3.4 小节。 选 择 开 始 — > 所 有 程 序 — > National Instruments LabVIEW 8.5.1 选 项 启 动 LabVIEW,进入如图 1-6 所示的启动窗口。点击 VI 选项创建一个新的空白 VI 程序,如图 1-7 所示。 图 1-6 图 1-7 1.计算一元二次方程的两根 40 虚拟仪器实验指导教材 (1)在前面板上放置三个浮点型输入控件 ,两个浮点型显示控件 ,此时前面 板如下图 1-8 所示: 图 1-8 (2)在程序框图的函数选板中找到下图 1-9 中所需的运算符,按一元二次方程求根公 式将上面三个浮点型输入控制对象与这些运算符连接起来: 图 1-9 (3)确认程序无误后,给这三个输入控制对象输入合适的数据并运行程序,点击运行 按钮 ,可看到如图 1-10 所示结果: 图 1-10 2. 模拟两开关控制一个灯 41 虚拟仪器实验指导教材 接下来用程序模拟一个常见的电灯控制模型,通过两个开关控制一个灯的亮灭。示例中 用到了 while 循环,这部分内容到后面才讲到,所以例程中给出了一个带 while 循环的模板, 文件名为“2-模拟两开关控制一个灯 1.vi”,大家可以在这个程序里做实验,至于 while 循环 可以先不理会。 (1)在前面板上放置两个布尔类型的输入控件 以及一个布尔类型的显示控件 ,如下图 1-11 所示: 图 1-11 (2)接着设计程序框图,实现这个逻辑的函数为 F A B A B 。在程序框图的函 数选板中找到下图 1-12 中所需的运算符,按照这个逻辑将上面控制对象与这些运算符连接 起来: 图 1-12 (3)确认程序无误后,运行程序,点击运行按钮 42 ,可看到如图 1-13 所示结果: 虚拟仪器实验指导教材 图 1-13 3.数值型变量的范围及显示方式 下面演示了数值型控件的各种不同的表示法,没什么可操作性,仅供大家参考。 程序的前面板如图 1-14 所示: 图 1-14 程序的程序框图如图 1-15 所示: 43 虚拟仪器实验指导教材 图 1-15 思考题 1.写一个 VI 判断两个数的大小,如图所示:当 A>B 时,指示灯亮 2.写一个温度监测器,如图所示,当温度超过报警上限,而且开启报警时,报警灯点亮。 温度值可以由随即数发生器产生。 44 虚拟仪器实验指导教材 实验二 字符串 2.1 实验目的 通过这个实验,熟悉 LabVIEW 中字符串的表示方法以及基本的一些字符串操作。 2.2 实验内容 “创建字符串控制对象和显示对象”:演示了如何创建字符串常量,控制变量及显示变 量等操作,通过这个程序熟悉 LabVIEW 中最基本的字符串概念。 “字符串基本操作”:涉及了对字符串求长度,取子串等操作,还演示了如何将两个子 串连接接成一个串。 “字符串与数值变量的相互转换”:包括常用的几种字符串转数值以及数值转字符串等 方法,主要涉及字符串面板里的“字符串/数值 转换”子面板函数。 “组合字符串”:通过“Format Into String”函数的使用,说明了如何格式化一个字符串 的输出。 2.3 实验原理及说明 字符串在 LabVIEW 编程中会频繁的用到,因此 LabVIEW 封装了功能丰富的字符串函 数用于字符串的处理,用户不需要再像 C 语言中一样为字符串的操作编写繁琐的程序。 字符串相关控件在前面板中的位置如图 2-1 所示,包括输入控件、显示控件和组合框。 图 2-1 45 虚拟仪器实验指导教材 另外,文件路径是 LabVIEW 中一种特殊的数据类型,方便用于文件的操作。 字符串相关的函数都在函数选板的“编程|字符串”子选板下,如下图 2-2 所示。这些 VI 函数基本覆盖了字符串处理所需要的各种功能。 图 2-2 这些函数以及各种字符串常量的详细说明请参考 LabVIEW 程序设计相关教程。 2.4 实验设备 一台安装 LabVIEW 的 PC 机。 2.5 实验步骤 选 择 开 始 — > 所 有 程 序 — > National Instruments LabVIEW 8.5.1 选 项 启 动 LabVIEW,进入如图 2-3 所示的启动窗口。点击 VI 选项创建一个新的空白 VI 程序,如图 2-4 所示。 46 虚拟仪器实验指导教材 图 2-3 图 2-4 1. 创建字符串控制对象和显示对象 (1)在前面板上放置四个字符串输入控件 面板如下图 2-5 所示: 47 ,两个字符串显示控件 ,此时前 虚拟仪器实验指导教材 图 2-5 (2)在程序框图中,将上面控制对象按下图 2-6 所示连接起来: 图 2-6 (3)确认程序无误后,运行程序,可看到如图 2-7 所示结果: 48 虚拟仪器实验指导教材 图 2-7 2. 字符串基本操作 (1)在前面板上放置两个浮点型输入控件 串输入控件 ,两个字符串显示控件 ,两个浮点型显示控件 ,此时前面板如下图 2-8 所示: 49 ,六个字符 虚拟仪器实验指导教材 图 2-8 (2)在程序框图的函数选板中找到下图 2-9 中所需的运算符,按下图所示将上面控制 对象与这些运算符连接起来: 50 虚拟仪器实验指导教材 图 2-9 (3)确认程序无误后,运行程序,可看到如图 2-10 所示结果: 51 虚拟仪器实验指导教材 图 2-10 3. 字符串与数值变量的相互转换 (1)在前面板上放置数值输入控件 字符串显示控件 ,数值显示控件 ,此时前面板如下图 2-11 所示: 52 ,字符串输入控件 , 虚拟仪器实验指导教材 图 2-11 (2)在程序框图的函数选板中找到下图 2-12 中所需的运算符,按下图所示将上面控制 对象与这些运算符连接起来: 53 虚拟仪器实验指导教材 图 2-12 (3)确认程序无误后,运行程序,可看到如图 2-13 所示结果: 图 2-13 54 虚拟仪器实验指导教材 4. 组合字符串 (1)在前面板上放置数值输入控件 此时前面板如下图 2-14 所示: ,字符串输入控件 ,字符串显示控件 , 图 2-14 (2)在程序框图的函数选板中找到下图 2-15 中所需的运算符,按下图所示将上面控制 对象与这些运算符连接起来: 图 2-15 (3)确认程序无误后,运行程序,可看到如图 2-16 所示结果: 图 2-16 55 虚拟仪器实验指导教材 思考题 1. 为实验一的思考题 2 连续温度采集监测添加报警信息,如下图所示,当报警发生时 输出报警信息,例如“温度超限!当前温度 78.23℃”,正常情况下输出空字符串。 2. 对字符串进行加密,规则是每个字母后移 5 位,例如 A 变为 F,b 变为 g,x 变为 c, y 变为 d… 56 虚拟仪器实验指导教材 实验三 数组与簇 3.1 实验目的 熟悉 LabVIEW 中各种数组的表示及数组操作,理解簇的概念。 3.2 实验内容 “创建数组”:说明了如何创建数组控制对象,数组显示对象,数组常量,以及各种数 据类型的数组,还包括了一维数组和二维数组的表示。 “数组与 For 循环实现自动索引”:演示了如何用数组来初始化 For 循环的计数以及如 何用 For 循环来初始化一个数组,两个例子说明了数组自动索引的应用。 “基本数组操作示例”:演示了数组的各种操作。 “LabVIEW 中的多态化” :说明了 LabVIEW 中对两种不同的数据类型进行运算符的操 作。 “簇”:对簇的捆绑及解包操作有个初步的了解。 “簇的序”:使大家理解簇元素的序这一概念。 3.3 实验原理及说明 和 C 语言等文本编程语言一样,LabVIEW 的数组也是同类型元素的集合。不同的是, LabVIEW 中的数组可以根据元素的多少动态改变大小,从而节省空间。 在前面板上创建数组控件时,首先需要放置一个数组的壳在前面板上,然后将数组元素 类型控件放在壳中即可。数组壳在控件选板和函数选板中的位置如图 3-1 所示: 图 3-1 簇是 LabVIEW 中比较独特的一个概念,但实际上它就对应于 C 语言等文本编程语言中 的结构体变量。它能包含任意数目任意类型的元素,包括数组和簇。 簇控件在控件选板和函数选板中的位置如图 3-2 所示,其中的错误输入输出控件其实也 57 虚拟仪器实验指导教材 是一种已经定义好的簇。 图 3-2 簇控件的使用方法与数组控件的方法类似,先是将簇“壳”放置在前面板上,然后再将 簇的元素控件一个个地放置在“壳”中,最后将元素按需要的顺序索引。对于事先已经放置 在前面板上的元素控件也可以直接拖动到簇“壳”中去,簇中的元素控件必须统一为输入控 件或显示控件。 3.4 实验设备 一台安装 LabVIEW 的 PC 机。 3.5 实验步骤 选 择 开 始 — > 所 有 程 序 — > National Instruments LabVIEW 8.5.1 选 项 启 动 LabVIEW,进入如图 3-3 所示的启动窗口。点击 VI 选项创建一个新的空白 VI 程序,如图 3-4 所示。 58 虚拟仪器实验指导教材 图 3-3 图 3-4 1. 创建数组 (1)在前面板上放置数组控件 串输入控件 ,数值输入控件 ,此时前面板如下图 3-5 所示: 59 ,数值显示控件 ,字符 虚拟仪器实验指导教材 图 3-5 (2)在程序框图中,按下图 3-6 所示将上面控制对象连接起来: 图 3-6 (3)确认程序无误后,运行程序,可看到如图 3-7 所示结果: 60 虚拟仪器实验指导教材 图 3-7 2. 数组与 For 循环实现自动索引 (1)在前面板上放置数组控件 ,数值显示控件 ,此时前面板如下图 3-8 所示: 图 3-8 (2)在程序框图的函数选板中找到下图 3-9 中所需的运算符,按下图所示将上面控制 61 虚拟仪器实验指导教材 对象与这些运算符连接起来: 图 3-9 (3)确认程序无误后,运行程序,可看到如图 3-10 所示结果: 图 3-10 3. 基本数组操作示例 62 虚拟仪器实验指导教材 (1)在前面板上放置数组控件 ,数值显示控件 时前面板如下图 3-11 所示: 63 ,字符串显示控件 ,此 虚拟仪器实验指导教材 图 3-11 (2)在程序框图的函数选板中找到下图 3-12 中所需的运算符,按下图所示将上面控制 对象与这些运算符连接起来: 64 虚拟仪器实验指导教材 65 虚拟仪器实验指导教材 图 3-12 (3)确认程序无误后,运行程序,可看到如图 3-13 所示结果。由于程序中的输入数据 是随机产生的,每次运行的结果是不相同的。 66 虚拟仪器实验指导教材 图 3-13 4. LabVIEW 中的多态化 67 虚拟仪器实验指导教材 (1)在前面板上放置数组控件 ,数值显示控件 ,此时前面板如下图 3-14 所 示: 图 3-14 (2)在程序框图的函数选板中找到下图 3-15 中所需的运算符,按下图所示将上面控制 对象与这些运算符连接起来: 图 3-15 (3)确认程序无误后,运行程序,可看到如图 3-16 所示结果: 68 虚拟仪器实验指导教材 图 3-16 5. 簇 (1)在前面板上放置簇控件 符串输入控件 所示: ,字符串显示控件 ,数值输入控件 ,布尔控件 69 ,数值显示控件 ,字 ,此时前面板如下图 3-17 虚拟仪器实验指导教材 图 3-17 (2)在程序框图的函数选板中找到下图 3-18 中所需的运算符,按下图所示将上面控制 对象与这些运算符连接起来: 70 虚拟仪器实验指导教材 图 3-18 (3)确认程序无误后,运行程序,可看到如图 3-19 所示结果: 71 虚拟仪器实验指导教材 图 3-19 6. 簇的序 (1)在前面板上放置簇控件 如下图 3-20 所示: ,数值显示控件 72 ,布尔控件 ,此时前面板 虚拟仪器实验指导教材 图 3-20 (2)在程序框图的函数选板中找到下图 3-21 中所需的运算符,按下图所示将上面控制 对象与这些运算符连接起来: 图 3-21 (3)确认程序无误后,运行程序,可看到如图 3-22 所示结果: 73 虚拟仪器实验指导教材 图 3-22 思考题 1.产生一个 3×3 的整数随机数数组,随机数要在 0 到 100 之间,然后找出数组的鞍点, 即该位置上的元素在该行上最大,在该列上最小,也可能没有鞍点。如下图所示: 2.利用簇模拟汽车控制,如图所示,控制面板可以对显示面板中的参量进行控制。油门 控制转速,转速=油门*100,档位控制时速,时速=档位*40,油量随 VI 运行时间减少。 74 虚拟仪器实验指导教材 75 虚拟仪器实验指导教材 实验四 循环与程序结构 4.1 实验目的 这一节的练习可以让大家对 LabVIEW 中程序设计中的各种循环,条件判断等语句有个 大体的了解,这些结构都是 LabVIEW 编程中常用的,熟悉它们并能在编程中灵活运用能起 到事半功倍的效果。 4.2 实验内容 “While 循环的基本结构” :演示了两种不同的 while 循环使用。 “while 循环中实现累加的两种方法” :说明了移位寄存器和 while 循环的连用,同时也 说明了反馈结点的使用方法。 “While 并行循环演示”:说明了两不同的 while 循环以不同的延时并行执行时的效果。 “For 循环的基本结构”:演示 for 循环的基本结构,给出了三种不同的初始化 For 循环 次数的方法。 “统计满足条件随机数的个数”:一个简单的 For 循环应用例子,同时也说明了移位寄 存器和 For 循环连用的方法。 “Case 结构的两种用法” :说明在 C 语言中 If else 和 switch case 两种结构在 LabVIEW 里的表示法。 “公式节点_数学公式”:说明公式结构中用数学公式来计算的方法。 “公式节点_语法”:在公式结点中用 C 语言来编写算法来计算结果。 “事件结构的使用”:演示了事件结构的基本用法,说明在事件结构中变量参数 newval 的使用。 “顺序结构的两种形式” :演示了顺序结构的两种效果相同样式不同的表示方法。 4.3 实验原理及说明 除了 goto 语句,所有 C 语言中的程序结构都能在 LabVIEW 中找到对应的实现方法。 此外,LabVIEW 中还有一些独特的程序结构,如事件结构、使能结构、公式节点和数学脚 本节点等,因此通过 LabVIEW 可以非常方便快速地实现任何复杂的程序结构。 由于 LabVIEW 是图形化编程语言,它的代码以图形的形式表现,因此无论是循环结构、 Case 结构还是公式节点,它们都表现为一个方框包围起来的图形代码,类似于 C 语言中的 两个花括号{}。 程序结构控件在函数选板中的位置如图 4-1 所示: 76 虚拟仪器实验指导教材 图 4-1 4.4 实验设备 一台安装 LabVIEW 的 PC 机。 4.5 实验步骤 选 择 开 始 — > 所 有 程 序 — > National Instruments LabVIEW 8.5.1 选 项 启 动 LabVIEW,进入如图 4-2 所示的启动窗口。点击 VI 选项创建一个新的空白 VI 程序,如图 4-3 所示。 图 4-2 77 虚拟仪器实验指导教材 图 4-3 1. While 循环的基本结构 (1)在前面板上放置如下图的控件,如图 4-4 所示: 图 4-4 (2)在程序框图的函数选板中找到下图 4-5 中所需的运算符,按下图所示将上面控制 对象与这些运算符连接起来: 78 虚拟仪器实验指导教材 图 4-5 (3)确认程序无误后,运行程序,然后点击 STOP 按钮停止计时,可看到如图 4-6 所 示结果: 图 4-6 2. while 循环中实现累加的两种方法 (1)在前面板上放置如下图的控件,如图 4-7 所示: 图 4-7 (2)在程序框图的函数选板中找到下图 4-8 中所需的运算符,按下图所示将上面控制 79 虚拟仪器实验指导教材 对象与这些运算符连接起来: 图 4-8 (3)确认程序无误后,运行程序,可看到如图 4-9 所示结果: 图 4-9 3. While 并行循环演示 (1)在前面板上放置如下图的控件,如图 4-10 所示: 图 4-10 (2)在程序框图的函数选板中找到下图 4-11 中所需的运算符,按下图所示将上面控制 对象与这些运算符连接起来: 80 虚拟仪器实验指导教材 图 4-11 (3)确认程序无误后,运行程序,可看到如图 4-12 所示结果: 图 4-12 4. For 循环的基本结构 (1)在前面板上放置如下图的控件,如图 4-13 所示: 图 4-13 81 虚拟仪器实验指导教材 (2)在程序框图的函数选板中找到下图 4-14 中所需的运算符,按下图所示将上面控制 对象与这些运算符连接起来: 图 4-14 (3)确认程序无误后,运行程序,可看到如图 4-15 所示结果: 图 4-15 5. 统计满足条件随机数的个数 (1)在前面板上放置如下图的控件,如图 4-16 所示: 图 4-16 (2)在程序框图的函数选板中找到下图 4-17 中所需的运算符,按下图所示将上面控制 82 虚拟仪器实验指导教材 对象与这些运算符连接起来: 图 4-17 (3)确认程序无误后,运行程序,可看到如图 4-18 所示结果: 图 4-18 6. Case 结构的两种用法 (1)在前面板上放置如下图的控件,如图 4-19 所示: 图 4-19 (2)在程序框图的函数选板中找到下图 4-20 中所需的运算符,按下图所示将上面控制 对象与这些运算符连接起来: 83 虚拟仪器实验指导教材 图 4-20 (3)确认程序无误后,运行程序,可看到如图 4-21 所示结果: 图 4-21 7. 公式节点_数学公式 84 虚拟仪器实验指导教材 (1)在前面板上放置如下图的控件,如图 4-22 所示: 图 4-22 (2)在程序框图的函数选板中找到下图 4-23 中所需的运算符,按下图所示将上面控制 对象与这些运算符连接起来: 图 4-23 (3)确认程序无误后,运行程序,可看到如图 4-24 所示结果: 图 4-24 8. 公式节点_语法 (1)在前面板上放置如下图的控件,如图 4-25 所示: 85 虚拟仪器实验指导教材 图 4-25 (2)在程序框图的函数选板中找到下图 4-26 中所需的运算符,按下图所示将上面控制 对象与这些运算符连接起来: 图 4-26 (3)确认程序无误后,运行程序,可看到如图 4-27 所示结果: 86 虚拟仪器实验指导教材 图 4-27 9. 事件结构的使用 (1)在前面板上放置如下图的控件,如图 4-28 所示: 图 4-28 (2)在程序框图的函数选板中找到下图 4-29 中所需的运算符,按下图所示将上面控制 对象与这些运算符连接起来: 87 虚拟仪器实验指导教材 图 4-29 (3)确认程序无误后,运行程序,可看到如图 4-30 所示结果: 图 4-30 10. 顺序结构的两种形式 (1)在前面板上放置如下图的控件,如图 4-31 所示: 图 4-31 88 虚拟仪器实验指导教材 (2)在程序框图的函数选板中找到下图 4-32 中所需的运算符,按下图所示将上面控制 对象与这些运算符连接起来: 图 4-32 (3)确认程序无误后,运行程序,可看到如图 4-33 所示结果: 图 4-33 思考题 1.利用顺序结构和循环结构写一个跑马灯,如下图所示,5 个灯从左到右不停的轮流点 亮,闪烁间隔由滑动条调节。 89 虚拟仪器实验指导教材 2.给出一百分制成绩,要求输出等级 A,B,C,D,E。90 分以上为 A,80~89 为 B,70~79 为 C,60~69 为 D,60 分以下为 E。 90 虚拟仪器实验指导教材 实验五 波形控件 5.1 实验目的 波形控件是 LabVIEW 里比较常用的一个控件,用来绘制各种信号的曲线图,在显示信 号的时域频域、功能谱、相位谱等曲线时非常有用。学习和掌握了波形控件的应用将在编程 中能起到事半功倍的效果。 5.2 实验内容 “Chart 图表”:演示了各种不同的数据类型送入 Chart Graph 控件时的绘制效果,从这 个例程可以了解 chart 图表控件对数据的绘制原理。 “Waveform Graph 波形图”:演示了和 Chart 图表类似的波形控件在不同数据输入的情 况下不同的显示效果,可以参考前一个例程来比效 Chart 图表和 Waveform Graph 的不同之 处。 “XY Graph 示例”:演示如何在 XY Graph 控件中分别显示一条曲线和两条曲线的方法。 “一个简单的虚拟示波器”:用 LabVIEW 内置的信号生成函数仿真的数据来作为波形 控件的输入就成了一个简单的虚拟示波器。 5.3 实验原理及说明 LabVIEW 很大的一个优势就是它提供了丰富的数据图形化显示控件,而且使用起来极 其方便。 波形控件在控件选板和函数选板中的位置如图 5-1 所示: 图 5-1 这些波形控件按显示方式主要分为两大类:一种是图表(Chart),另一种是波形图 (Graph)。图表可以将新的数据添加到曲线的尾端,从而反映实时数据的变化趋势。而波形 图在画图之前会自动清空当前图形,然后把输入的数据画成曲线。 91 虚拟仪器实验指导教材 5.4 实验设备 一台安装 LabVIEW 的 PC 机。 5.5 实验步骤 选 择 开 始 — > 所 有 程 序 — > National Instruments LabVIEW 8.5.1 选 项 启 动 LabVIEW,进入如图 5-2 所示的启动窗口。点击 VI 选项创建一个新的空白 VI 程序,如图 5-3 所示。 图 5-2 图 5-3 92 虚拟仪器实验指导教材 1. Chart 图表 (1)在前面板上放置如下图的控件,如图 5-4 所示: 图 5-4 (2)在程序框图的函数选板中找到下图 5-5 中所需的运算符,按下图所示将上面控制 对象与这些运算符连接起来: 93 虚拟仪器实验指导教材 图 5-5 (3)确认程序无误后,运行程序,可看到如图 5-6 所示结果: 图 5-6 94 虚拟仪器实验指导教材 2. Waveform Graph 波形图 (1)在前面板上放置如下图的控件,如图 5-7 所示: 图 5-7 (2)在程序框图的函数选板中找到下图 5-8 中所需的运算符,按下图所示将上面控制 对象与这些运算符连接起来: 95 虚拟仪器实验指导教材 图 5-8 (3)确认程序无误后,运行程序,可看到如图 5-9 所示结果: 图 5-9 96 虚拟仪器实验指导教材 3. XY Graph 示例 (1)在前面板上放置如下图的控件,如图 5-10 所示: 图 5-10 (2)在程序框图的函数选板中找到下图 5-11 中所需的运算符,按下图所示将上面控制 对象与这些运算符连接起来: 97 虚拟仪器实验指导教材 图 5-11 (3)确认程序无误后,运行程序,可看到如图 5-12 所示结果: 图 5-12 98 虚拟仪器实验指导教材 4. 一个简单的虚拟示波器 (1)在前面板上放置如下图的控件,如图 5-13 所示: 图 5-13 (2)在程序框图的函数选板中找到下图 5-14 中所需的运算符,按下图所示将上面控制 对象与这些运算符连接起来: 图 5-14 (3)确认程序无误后,运行程序,可看到如图 5-15 所示结果: 99 虚拟仪器实验指导教材 图 5-15 思考题 1.利用随机数发生器仿真一个 0 到 5V 的采样信号,每 200ms 采一个点,利用实时趋势 曲线实时显示采样结果。 2.利用随机数发生器仿真一个 0 到 5V 的采样信号,每 200ms 采一个点,共采集 50 个 点,采集完后一次性显示在 Waveform Graph 上。 100 虚拟仪器实验指导教材 101 虚拟仪器实验指导教材 实验六 控件操作进阶 6.1 实验目的 了解 LabVIEW 中对变量独特的处理方式,局部变量,全局变量,属性节点都体现了这 一点。 6.2 实验内容 “使用局部变量”:此例程建立了一个局部变量,用来在两个并行的循环间传递数据。 “局部变量应用实例:互锁开关”:这也是一个用局部变量来实现的一个常用功能,当 需要一组控制按钮在任何时刻只能有一个为真时可以用此方法来实现。 “利用属性节点改变控件的外观”:利用控件的属性节点实现在运行过程中通过其它控 件来改变其大小、显隐等属性。这是个综合的实例,运用到了 while 循环、事件结构及顺序 结构等。 “全局变量的使用 1,2” :包含三个文件,一个用来保存全局变量,另外两个分别用来向 全局变量里读写数据。此例程简单演示了如何在两个程序间通过全局变量来传递数据。 6.3 实验原理及说明 由于 LabVIEW 图形化编程的特点,在有些情况下要在同一个 VI 的不同位置或在不同 的 VI 中访问同一个控件,这时就需要用到局部变量或全局变量。局部变量只能用于同一个 VI 的程序框图,而全局变量可以用于同一台计算机中的多个 VI。 局部变量只是在同一程序内部使用,每个局部变量都对应前面板上的一个控件,一个控 件可以创建多个局部变量。局部变量位于函数选板的“编程|结构”子选板中,如图 6-1 所示: 图 6-1 局部变量 图 6-2 全局变量 LabVIEW 中的全局变量是以独立的 VI 文件形式存在的,这个 VI 文件只有前面板,没 有程序框图,不能进行编程。一个全局变量的 VI 文件中可以包含多个不同数据类型的全局 102 虚拟仪器实验指导教材 变量。与局部变量一样,全局变量也位于函数选板的“编程|结构”子选板中,如上图 6-2 所示。 属性节点可以用来通过编程设置或获取控件的属性。创建属性节点有两种方法,一种是 在程序框图中直接右击控件图标,选择“创建|属性节点”选项,在弹出的下一级菜单中就 可以看到该控件相关的所有属性,选择想设置或获取的属性,就会在程序框图中创建该属性 节点;另一种办法是在函数选板中选择“编程|应用程序控制|属性节点”选项,如图 6-3 所 示,右击该属性节点选择“链接到”就能与当前 VI 中的任何一个控件关联,关联后就可以 选择该控件的任何属性。 图 6-3 6.4 实验设备 一台安装 LabVIEW 的 PC 机。 6.5 实验步骤 选 择 开 始 — > 所 有 程 序 — > National Instruments LabVIEW 8.5.1 选 项 启 动 LabVIEW,进入如图 6-4 所示的启动窗口。点击 VI 选项创建一个新的空白 VI 程序,如图 6-5 所示。 图 6-4 103 虚拟仪器实验指导教材 图 6-5 1. 使用局部变量 (1)在前面板上放置如下图的控件,如图 6-6 所示: 图 6-6 (2)在程序框图的函数选板中找到下图 6-7 中所需的运算符,按下图所示将上面控制 对象与这些运算符连接起来: 104 虚拟仪器实验指导教材 图 6-7 (3)确认程序无误后,运行程序,可看到如图 6-8 所示结果: 图 6-8 2. 局部变量应用实例:互锁开关 (1)在前面板上放置如下图的控件,如图 6-9 所示: 图 6-9 105 虚拟仪器实验指导教材 (2)在程序框图的函数选板中找到下图 6-10 中所需的运算符,按下图所示将上面控制 对象与这些运算符连接起来: 图 6-10 (3)确认程序无误后,运行程序,可看到如图 6-11 所示结果: 图 6-11 3. 利用属性节点改变控件的外观 (1)在前面板上放置如下图的控件,如图 6-12 所示: 图 6-12 106 虚拟仪器实验指导教材 (2)在程序框图的函数选板中找到下图 6-13 中所需的运算符,按下图所示将上面控制 对象与这些运算符连接起来: 图 6-13 (3)确认程序无误后,运行程序,可看到如图 6-14 所示结果: 图 6-14 107 虚拟仪器实验指导教材 4. 全局变量的使用 1,2 (1)在前面板上放置如下图的控件,如图 6-15 所示: 图 6-15 (2)在程序框图的函数选板中找到下图 6-16 中所需的运算符,按下图所示将上面控制 对象与这些运算符连接起来: 图 6-16 (3)确认程序无误后,运行程序,可看到如图 6-17 所示结果: 108 虚拟仪器实验指导教材 图 6-17 思考题 1.利用局部变量写一个计数器,每当 VI 运行一次计数器就加一。当 VI 关闭后重新打开 时,计数器清零。 109 虚拟仪器实验指导教材 实验七 子 VI 7.1 实验目的 子 VI 就如同 C 语言中的函数,有输入参数和输出值,通过这个实验可以学习到子 VI 的创建,子 VI 的图标设计,多态子 VI 以及可重入子 VI 的设计方法。 7.2 实验内容 “调用子 VI”:通过调用四个子 VI 来实现相同的效果:取两数的最大值。第一二个子 VI 的区别在于图标的不同,通过第二个子 VI,可以学习到如何制作不规则形状的子 VI; 通过第三第四个子 VI 可以学到多态子 VI 的设计方法。 “显示子 VI 前面板举例” :演示了如何在程序运行过程中将子 VI 的前面板显示出来。 “可重入子 VI 举例”:通过改变子 VI 的可重入属性可以达到不同的效果,例程演示了 可重入子 VI 的原理。 7.3 实验原理及说明 LabVIEW 中的子 VI(SubVI)类似于文本编程语言中的函数,通过子 VI,我们可以把 程序分割为一个个小的模块来实现。 其实任何 VI 本身就可以作为子 VI 被其它 VI 调用,只是需要在普通 VI 的基础上多进 行两步简单的操作而已:定义连接端子和图标。 第一步:新建一个空白的 VI,编写其程序框图。 第二步:编辑 VI 图标。 右击 VI 右上角的图标 ,选择编辑图标选项或直接双击该 图标,打开 VI 图标编辑器,对 VI 图标进行编辑,如图 7-1 所示。编辑完 256 色图标后,选 中 16 色或黑白图标,再单击复制于:256 色按钮就可以将 256 色编辑结果复制过去。对于 VI 图标编辑完成后,单击 OK 按钮即可。这时该 VI 右上角的图标会自动更新为所编辑的结 果。 图 7-1 110 虚拟仪器实验指导教材 编辑子 VI 的图标是为了方便在主 VI 的程序框图中辨别子 VI 的功能,因此编辑子 VI 图标的原则是尽量通过该图标就能表明该子 VI 的用途。 第三步:建立连接端子。右击 VI 前面板右上角图标,选择显示连线板显示 VI 的连接 端子。初始情况下,连接端子是没有与任何控件连接的,即所有的端子都是空白的 ,每 一个小方格代表一个端子。 第四步:保存该 VI,将该 VI 当作子 VI 调用。 可重入(Reentrant)子 VI: 在缺省情况下,如果有两处程序框图都调用同一个子 VI,那么这两处程序框图则不能 并行运行。即如果当该子 VI 正在被调用执行时,其它调用就必须等待直到当前调用执行完 毕。而在很多情况下,用户都希望不同的调用应该是相互独立的,这时就需要把子 VI 设为 可重入子 VI。 在子 VI 的主菜单中选择“文件|VI 属性”选项,在 VI 属性对话框中进入“执行”页面, 如图 7-2 所示。选中重入执行复选框后,该子 VI 便是可重入子 VI 了。 图 7-2 7.4 实验设备 一台安装 LabVIEW 的 PC 机。 7.5 实验步骤 选 择 开 始 — > 所 有 程 序 — > National Instruments LabVIEW 8.5.1 选 项 启 动 LabVIEW,进入如图 7-3 所示的启动窗口。点击 VI 选项创建一个新的空白 VI 程序,如图 7-4 所示。 111 虚拟仪器实验指导教材 图 7-3 图 7-4 1. 调用子 VI (1)在前面板上放置如下图的控件,如图 7-5 所示: 112 虚拟仪器实验指导教材 图 7-5 普通子 VI-标量 自定义图标子 VI-标量 113 虚拟仪器实验指导教材 普通子 VI-数组 (2)在程序框图的函数选板中找到下图 7-6 中所需的运算符,按下图所示将上面控制 对象与这些运算符连接起来: 图 7-6 114 虚拟仪器实验指导教材 普通子 VI-标量 自定义图标子 VI-标量 普通子 VI-数组 (3)确认程序无误后,运行程序,可看到如图 7-7 所示结果: 115 虚拟仪器实验指导教材 图 7-7 2. 显示子 VI 前面板举例 (1)在前面板上放置如下图的控件,如图 7-8 所示: 子 VI 前面板 (2)在程序框图的函数选板中找到下图 7-9 中所需的运算符,按下图所示将上面控制 对象与这些运算符连接起来: 图 7-8 116 虚拟仪器实验指导教材 子 VI 程序框图 (3)确认程序无误后,运行程序,可看到如图 7-10 所示结果: 图 7-9 图 7-10 3. 可重入子 VI 举例 (1)在前面板上放置如下图的控件,如图 7-11 所示: 子 VI 前面板 图 7-11 117 虚拟仪器实验指导教材 (2)在程序框图的函数选板中找到下图 7-12 中所需的运算符,按下图所示将上面控制 对象与这些运算符连接起来: 图 7-12 子 VI 程序框图 (3)确认程序无误后,运行程序,可看到如图 7-13 所示结果: 图 7-13 118 虚拟仪器实验指导教材 思考题 1. 写一个子 VI 计算输入双精度数组所有元素的平均值,并在上层 VI 调用它。 2. 在实验一思考题 2 的基础上,利用子 VI 实现一个温度报警对话框,每当报警发生时 就弹出该对话框,如下图所示,点击“知道了”按钮退出对话框。 119 虚拟仪器实验指导教材 实验八 文件操作 8.1 实验目的 文件操作是数据采集里的一个重要操作,LabVIEW 提供了丰富的文件操作函数。本实 验汇集了 LabVIEW 中常用的几组文件操作函数,通过对它们的学习,了解和掌握文件操作 在编程中的应用。 8.2 实验内容 “文本文件读写”:实现了普通文本文件的读写,还包括添加至文件末,格式化写入读 取等操作。 “读写文本格式的波形信号”:演示了如何通过 Express VI 将仿真出来的信号以文本的 形式写入到文件中,然后再将数据从文本中读取出,并显示于波形控件中。 “TDMS 文件读写”:TDM 是 NI 现在主推的一个数据存储逻辑模型,利用其分层存储 的思想,可以很方便地存储波形等数据。这个例程完整演示了写入,读取,清除 TDMS 文 件等操作。 “二进制波形文件读写”:二进制存储数据的特点是文件小,存储速度快,但其缺点也 很明显,存储的数据都是二进制格式的,不能方便地用文本工具打开浏览。这个例程演示了 如何将两条波形存储至二进制格式的文件中,再将两条波形读取出来并绘制。 “操作 Excel 格式文档”:LabVIEW 可以很方便的操作 Excel 格式的表格,本例程演示 了将二维数据写入一个 Excel 文档然后再将数据从 Excel 文档中读取出来的过程。 8.3 实验原理及说明 对于一个完整的测试系统或数据采集系统,经常需要将硬件的配置信息写入配置文件或 将采集到的数据以一定格式存储在文件中保存。LabVIEW 提供了强大的文件 I/O 函数用以 满足不同的文件操作需求,同时提供了多种文件类型,包括文本文件(Text Files) 、表单文 件(Spreadsheet Files)、二进制文件(Binary Files)、数据记录文件(Datalog Files)、XML 文件、配置文件(Configuration Files)、波形(Waveform)文件、基于文本的测量文件(LVM 文件)、数据存储文件(TDM 文件)和 TDM Streaming 文件(TDMS 文件) 。 1. 文本文件 它将字符串以 ASCII 编码格式存储在文件中,譬如 txt 文件和 Excel 文件。这种文件类 型最常见,可以在各种操作系统下由多种应用程序打开,因此这种文件类型的通用性最强。 2. 表单文件 这实际上也是一种文本文件,只不过它的输入数据格式可以是一维或二维数组。它将数 据数组转换为 ASCII 码存放在电子表格文件中,因此用它存储数据数组非常方便。 3. 二进制文件 这是最有效率的一种文件存储格式,它占用的硬盘空间最少而且读写速度最快。它将二 进制数据,譬如 32 位整数以确定的空间存储 4 个字节来存储,因此不会损失精度,并且可 以随意地在文件指定位置读写数据。 4. 波形文件 专门用于存储波形数据类型,它将波形数据以一定的格式存储在二进制文件或表单文件 中。 5. 数据存储文件(TDM 文件) 120 虚拟仪器实验指导教材 它将动态类型数据存储为二进制文件,同时可以为每一个信号都添加一些有用的信息, 如信号名称和单位等。在查询时可以通过这些附加信息来查询所需要的数据。它被用来在 NI 各种软件之间交换数据,如 DIAdem。 6. TDM Streaming 文件(TDMS 文件) 它是对 TDM 文件的改进。与 TDM 文件相比,它读写速度更快,使用更简单方便,因 此非常适合用来存储数量庞大的测试数据。 文件操作函数位于函数选板的“编程|文件 I/O”子选板下,如图 8-1 所示。 图 8-1 一般来说,对于写文件操作,首先需要打开已有文件或在指定路径新建一个文件。无论 是打开函数还是新建函数都会返回一个该文件的引用。引用是一种特殊的数据类型,它包含 了文件所有应该有的信息,如地址、类型、当前指针位置等。此后所有该文件的操作都以它 的引用作为输入;对文件完成操作后需要关闭文件,即释放引用。 8.4 实验设备 一台安装 LabVIEW 的 PC 机。 8.5 实验步骤 选 择 开 始 — > 所 有 程 序 — > National Instruments LabVIEW 8.5.1 选 项 启 动 LabVIEW,进入如图 8-2 所示的启动窗口。点击 VI 选项创建一个新的空白 VI 程序,如图 8-3 所示。 121 虚拟仪器实验指导教材 图 8-2 图 8-3 1. 文本文件读写 (1)在前面板上放置如下图的控件,如图 8-4 所示: 122 虚拟仪器实验指导教材 图 8-4 (2)在程序框图的函数选板中找到下图 8-5 中所需的运算符,按下图所示将上面控制 对象与这些运算符连接起来: 123 虚拟仪器实验指导教材 124 虚拟仪器实验指导教材 图 8-5 (3)确认程序无误后,运行程序,可看到如图 8-6 所示结果: 图 8-6 2. 读写文本格式的波形信号 (1)在前面板上放置如下图的控件,如图 8-7 所示: 125 虚拟仪器实验指导教材 图 8-7 (2)在程序框图的函数选板中找到下图 8-8 中所需的运算符,按下图所示将上面控制 对象与这些运算符连接起来: 图 8-8 (3)确认程序无误后,运行程序,可看到如图 8-9 所示结果: 126 虚拟仪器实验指导教材 图 8-9 3. TDMS 文件读写 (1)在前面板上放置如下图的控件,如图 8-10 所示: 图 8-10 (2)在程序框图的函数选板中找到下图 8-11 中所需的运算符,按下图所示将上面控制 对象与这些运算符连接起来: 127 虚拟仪器实验指导教材 128 虚拟仪器实验指导教材 图 8-11 (3)确认程序无误后,运行程序,可看到如图 8-12 所示结果: 图 8-12 4. 二进制波形文件读写 (1)在前面板上放置如下图的控件,如图 8-13 所示: 129 虚拟仪器实验指导教材 图 8-13 (2)在程序框图的函数选板中找到下图 8-14 中所需的运算符,按下图所示将上面控制 对象与这些运算符连接起来: 130 虚拟仪器实验指导教材 图 8-14 (3)确认程序无误后,运行程序,可看到如图 8-15 所示结果: 131 虚拟仪器实验指导教材 图 8-15 5. 操作 Excel 格式文档 (1)在前面板上放置如下图的控件,如图 8-16 所示: 图 8-16 (2)在程序框图的函数选板中找到下图 8-17 中所需的运算符,按下图所示将上面控制 对象与这些运算符连接起来: 132 虚拟仪器实验指导教材 图 8-17 (3)确认程序无误后,运行程序,可看到如图 8-18 所示结果: 图 8-18 思考题 1. 有一个测量程序,采集两路信号,每 1s 采集一次,要求每采集一次,就将采集结果 写入文本文件尾部,即使重新运行程序,仍能保证数据添加到文件尾部,而不会覆盖原有数 据。格式为 a 保留 4 位小数,b 为整数,如下图所示。 2. 将上题的采集数据,采集完毕后写入表单文件,如下图所示: 133 虚拟仪器实验指导教材 3. 将下图所示的控件数据写入二进制文件,并用另一个 VI 将其读出查看。 134 虚拟仪器实验指导教材 实验九 网络编程 9.1 实验目的 网络编程在与实验箱通信时占据很重要的位置,网络通信的好坏直接影响 LabVIEW 与 实验箱交互的效果。这个实验主要涉及了 TCP 及 UDP 通信,大家在做完这个实验后可以尝 试编写一个基于 TCP 协议的局域网聊天程序,以加深对 TCP 编程的理解。 9.2 实验内容 “例程 1,2” :TCP 编程的一个简单应用,包括服务端程序和客户端程序。服务端监听 指定端口的连接信息,客户端通过指定端口连接服务端,连接成功后服务端将波形数据发送 到客户端,客户端解析后将数据送入波形控件显示。 “程序 3-5” :一个多点播送的例子,包括一个服务端及两个客户端。 9.3 实验原理及说明 通过 LabVIEW 可以不需要了解任何网络协议就能编写复杂的分布式引用程序,如 DataSocket 技术、VI 服务器和 Web 服务器技术等。但如果需要 LabVIEW 与其他编程语言 编写的程序进行网络通信,则需要使用更基本更流行的网络协议,如 TCP 与 UDP。由于这 些协议更加基础,因此针对它们的编程要更加复杂,幸好 LabVIEW 为用户提供了封装好的 VI 函数,大大简化了 TCP 和 UDP 编程。 1. TCP TCP(Transmission Control Protocol,传输控制协议)是一个面向连接的协议,允许从 一台计算机发出的字节流无差错地发往互联网上的其他计算机。 LabVIEW 中用于 TCP 编程的 VI 函数位于函数选板的“数据通信|协议|TCP”子选板下, 如图 9-1 所示。 图 9-1 TCP 编程 VI 函数 图 9-2 UDP 编程 VI 函数 135 虚拟仪器实验指导教材 2. UDP UDP(User Datagram Protocol,用户数据报协议)提供尽量传递的无连接数据报服务, 这意味着 UDP 无法保证任何数据报的传递或验证数据报的顺序。某些程序使用 UDP 来代替 TCP,以便在 TCP/IP 主机之间快速、轻量、但不可靠地传输数据。 由于是非连接的协议,因此 LabVIEW 中的 UDP 编程比 TCP 编程要简单得多。UDP 编 程的 VI 函数位于函数选板的“数据通信|协议|UDP”子选板,如上图 9-2 所示。 9.4 实验设备 一台安装 LabVIEW 的 PC 机。 9.5 实验步骤 选 择 开 始 — > 所 有 程 序 — > National Instruments LabVIEW 8.5.1 选 项 启 动 LabVIEW,进入如图 9-3 所示的启动窗口。点击 VI 选项创建一个新的空白 VI 程序,如图 9-4 所示。 图 9-3 图 9-4 136 虚拟仪器实验指导教材 1. 一个简单的 TCP 编程应用 (1)一个简单的 TCP 服务端 ① 在前面板上放置如下图的控件,如图 9-5 所示: 图 9-5 ② 在程序框图的函数选板中找到下图 9-6 中所需的运算符,按下图所示将上面控制对 象与这些运算符连接起来: 图 9-6 ③ 确认程序无误后,运行程序,可看到如图 9-7 所示结果: 137 虚拟仪器实验指导教材 图 9-7 (2)一个简单的 TCP 客户端 ① 在前面板上放置如下图的控件,如图 9-8 所示: 图 9-8 ② 在程序框图的函数选板中找到下图 9-9 中所需的运算符,按下图所示将上面控制对 象与这些运算符连接起来: 138 虚拟仪器实验指导教材 图 9-9 ③ 确认程序无误后,运行程序,可看到如图 9-10 所示结果: 图 9-10 2. 多点播送举例 (1)多点播送举例_UDP 服务端 ① 在前面板上放置如下图的控件,如图 9-11 所示: 图 9-11 139 虚拟仪器实验指导教材 ② 在程序框图的函数选板中找到下图 9-12 中所需的运算符,按下图所示将上面控制对 象与这些运算符连接起来: 图 9-12 (2)多点播送举例_UDP 客户端(客户端 1 和客户端 2 程序一样) ① 在前面板上放置如下图的控件,如图 9-13 所示: 图 9-13 ② 在程序框图的函数选板中找到下图 9-14 中所需的运算符,按下图所示将上面控制对 象与这些运算符连接起来: 图 9-14 ③ 确认程序无误后,运行程序,可看到如图 9-15 所示结果: 140 虚拟仪器实验指导教材 图 9-15 思考题 1. 编写一个基于 TCP 协议的局域网聊天程序。 141 虚拟仪器实验指导教材 实验十 定时结构与同步技术 10.1 实验目的 定时结构和同步技术是 LabVIEW 里一个重要的组成部分,在控制程序流程中起到非常 重要的作用,所以非常有必要熟悉和掌握这部分的内容。 10.2 实验内容 这个实验涉及了几种常见的定时和同步技术,包括事件、通知、信号量等。 10.3 实验原理及说明 在自动化测试测量系统中,“时间”是最基本的参数之一,因此精确的时间控制非常重 要,这正是 LabVIEW 中的定时结构的主要目的之一。对于包含多个循环或多个 VI 的测试 测量系统,各循环或各 VI 之间的同步控制在很多情况下则非常必要,这也正是 LabVIEW 引入同步技术的原因。 定时结构的目的在于增强对循环和顺序结构的精确控制,因此它的实现形式是在基本的 循环结构和顺序结构上增加了一些输入输出参数,通过这些参数用户可以设定循环的时钟 源、循环周期、相位和优先级等各种参数。 定时结构及其相关 VI 函数位于函数选板的“编程|结构|定时结构”子选板下,如图 10-1 所示。 图 10-1 该子选板包含定时循环和定时顺序结构两种定时结构以及一些用于定时结构控制的 VI 函数。 同步技术用于多个并行任务或 VI 之间的同步或通信。LabVIEW 包含的同步技术有通知 (Notification)、队列(Queue)、信号量(Semaphore)、集合点(Rendezvous)和事件发生 142 虚拟仪器实验指导教材 (Occurrences)。对应的 VI 函数位于函数选板的“编程|同步”子选板下,如图 10-2 所示。 图 10-2 1. 通知技术(Notification) 通过通知器操作函数可以实现一段程序框图在收到来自于其他程序框图或 VI 的通知消 息前保持等待状态。而通知消息可以是任何类型的数据,因此通过通知器可以实现不同程序 框图或 VI 之间的数据传递。这类似于全局变量或局部变量,不同的是,对于变量,用户需 要通过一个循环不断地查询变量的值,而对于通知器,在没有通知消息产生时,程序框图处 于等待状态。这避免了无休止的循环检测和检测周期过快或过慢导致的数据重复或丢失,减 少了计算机资源的浪费。 2. 队列技术(Queue) 队列结构是一种先进先出(FIFO)的结构。通过队列结构可以保证有序的数据传递, 避免竞争或冲突。 3. 信号量技术(Semaphore) 信号量技术用于限制同时访问一个被保护的共享资源的任务数目,Semaphore 的含义为 信号灯、旗语。 一般来说,当一个共享资源对访问它的任务数目有限制时,就需要利用信息量技术来控 制任务的数目,避免冲突。 4. 事件发生技术(Occurrence) 事件发生技术用来在 While 循环或 VI 之间传递触发事件,利用事件可以避免轮询带来 的系统资源浪费。 5. 用户事件(User Event) 用户的各种操作引发事件或者通过编程产生事件时,如果需要传递事件数据或希望一个 循环还能用来响应其他事件时,就需要利用到用户事件。 用户事件的相关函数位于函数选板的“编程|对话框与用户界面|事件”子选板下,如图 10-3 所示。 143 虚拟仪器实验指导教材 图 10-3 10.4 实验设备 一台安装 LabVIEW 的 PC 机。 10.5 实验步骤 选 择 开 始 — > 所 有 程 序 — > National Instruments LabVIEW 8.5.1 选 项 启 动 LabVIEW,进入如图 10-4 所示的启动窗口。点击 VI 选项创建一个新的空白 VI 程序,如图 10-5 所示。 图 10-4 144 虚拟仪器实验指导教材 图 10-5 1. 定时结构(Timed Structure) (1)简单定时循环举例 ① 在前面板上放置如下图的控件,如图 10-6 所示: 图 10-6 ② 在程序框图的函数选板中找到下图 10-7 中所需的运算符,按下图所示将上面控制对 象与这些运算符连接起来: 图 10-7 ③ 确认程序无误后,运行程序,可看到如图 10-8 所示结果: 145 虚拟仪器实验指导教材 图 10-8 (2)理解定时循环 ① 在前面板上放置如下图的控件,如图 10-9 所示: 图 10-9 ② 在程序框图的函数选板中找到下图 10-10 中所需的运算符,按下图所示将上面控制 对象与这些运算符连接起来: 146 虚拟仪器实验指导教材 图 10-10 ③ 确认程序无误后,运行程序,可看到如图 10-11 所示结果: 图 10-11 2. 队列(Queue)技术 147 虚拟仪器实验指导教材 下面实验程序都包含了两个子 VI:DAQ 和数据分析。 DAQ 程序: 该程序的前面板与程序框图如下图 10-12、图 10-13 所示。 图 10-12 图 10-13 148 虚拟仪器实验指导教材 数据分析程序: 该程序的前面板与程序框图如下图 10-14、图 10-15 所示。 图 10-14 图 10-15 (1)基于队列的数据采集系统 ① 在前面板上放置如下图的控件,如图 10-16 所示: 149 虚拟仪器实验指导教材 图 10-16 ② 在程序框图的函数选板中找到下图 10-17 中所需的运算符,按下图所示将上面控制 对象与这些运算符连接起来: 图 10-17 ③ 确认程序无误后,运行程序,可看到如图 10-18 所示结果: 图 10-18 (2)基于数据流的数据采集系统举例 150 虚拟仪器实验指导教材 ① 在前面板上放置如下图的控件,如图 10-19 所示: 图 10-19 ② 在程序框图的函数选板中找到下图 10-20 中所需的运算符,按下图所示将上面控制 对象与这些运算符连接起来: 图 10-20 ③ 确认程序无误后,运行程序,可看到如图 10-21 所示结果: 图 10-21 3. 事件发生(Occurrence)技术 (1)在前面板上放置如下图的控件,如图 10-22 所示: 151 虚拟仪器实验指导教材 图 10-22 (2)在程序框图的函数选板中找到下图 10-23 中所需的运算符,按下图所示将上面控 制对象与这些运算符连接起来: 图 10-23 (3)确认程序无误后,运行程序,可看到如图 10-24 所示结果: 图 10-24 4. 通知(Notification)技术 (1)利用 Notifier 停止多个循环 ① 在前面板上放置如下图的控件,如图 10-25 所示: 152 虚拟仪器实验指导教材 图 10-25 ② 在程序框图的函数选板中找到下图 10-26 中所需的运算符,按下图所示将上面控制 对象与这些运算符连接起来: 图 10-26 ③ 确认程序无误后,运行程序,可看到如图 10-27 所示结果: 153 虚拟仪器实验指导教材 图 10-27 (2)利用 Notifier 向多个循环发送数据举例 ① 在前面板上放置如下图的控件,如图 10-28 所示: 图 10-28 154 虚拟仪器实验指导教材 ② 在程序框图的函数选板中找到下图 10-29 中所需的运算符,按下图所示将上面控制 对象与这些运算符连接起来: 图 10-29 ③ 确认程序无误后,运行程序,可看到如图 10-30 所示结果: 图 10-30 (3)利用 Notifier 向多个子 VI 发送数据举例 ① 在前面板上放置如下图的控件,如图 10-31 所示,Receiver 1、Receiver 2 和 Receiver 3 三个子 VI 程序类似,如图 10-32 所示 : 155 虚拟仪器实验指导教材 图 10-31 图 10-32 子 VI 前面板 ② 在程序框图的函数选板中找到下图 10-33 中所需的运算符,按下图所示将上面控制 对象与这些运算符连接起来: 156 虚拟仪器实验指导教材 图 10-33 图 10-34 子 VI 程序框图 ③ 确认程序无误后,运行程序,可看到如图 10-35 所示结果: 157 虚拟仪器实验指导教材 图 10-35 5. 信号量(Semaphore)技术 (1)利用信号量限制任务数量_多 VI 举例 ① 在前面板上放置如下图的控件,如图 10-36、图 10-37 所示: 主 VI 的前面板(信号量) : 图 10-36 子 VI 的前面板(Task1、Task2 和 Task3): 图 10-37 ② 在程序框图的函数选板中找到下图 10-38、图 10-39、图 10-40、图 10-41 中所需的 运算符,按下图所示将上面控制对象与这些运算符连接起来: 主 VI 的程序框图(信号量): 158 虚拟仪器实验指导教材 图 10-38 子 VI 的程序框图(Task1): 图 10-39 子 VI 的程序框图(Task2): 图 10-40 子 VI 的程序框图(Task3): 159 虚拟仪器实验指导教材 图 10-41 ③ 确认程序无误后,运行程序,可看到如图 10-42 所示结果: 图 10-42 (2)利用信号量限制任务数量_多循环举例 ① 在前面板上放置如下图的控件,如图 10-43 所示: 160 虚拟仪器实验指导教材 图 10-43 ② 在程序框图的函数选板中找到下图 10-44 中所需的运算符,按下图所示将上面控制 对象与这些运算符连接起来: 图 10-44 161 虚拟仪器实验指导教材 ③ 确认程序无误后,运行程序,可看到如图 10-45 所示结果: 图 10-45 6. 用户事件(User Event) (1)在前面板上放置如下图的控件,如图 10-46 所示: 图 10-46 (2)在程序框图的函数选板中找到下图 10-47 中所需的运算符,按下图所示将上面控 制对象与这些运算符连接起来: 162 虚拟仪器实验指导教材 图 10-47 (3)确认程序无误后,运行程序,可看到如图 10-48 所示结果: 图 10-48 思考题 1. 用队列技术模拟一个水箱注水系统,进入水箱的水流速度可以调整,当超过警戒水 位时报警,警戒水位也可以调节。 163 虚拟仪器实验指导教材 第四章 虚拟仪器应用实验 实验十一 与实验箱建立连接 11.1 实验目的 从这部分开始所涉及的实验都需要与实验箱的配合才能完成,所以第一步得先打通与实 验箱的网络连接这条经脉。这个实验主要是熟悉 PC 与实验箱的通信方法,实现两者间建立 连接的功能。今后所有与实验箱通信的程序基本上都包含这部分。 11.2 实验内容 建立一个 TCP 网路连接服务,实验箱为服务端。连接好实验箱后,PC 端运行 VI 程序, 填写好 IP 地址,点击 Connect 按钮以实现两者间网络连接的功能。同时,可以先使用 HerculesSetup 工具在本机上进行连接测试。完成这个实验,后续的所有程序都可以用本 实验的程序作为模板。 通信规则说明 1. PC 与实验箱之间采用 TCP 协议通信,PC 作为客户端,实验箱为服务端; 2. 通信端口为 1500; 3. 数据包的大小不固定; 4. 短数据包的格式:分模块段、长度段、命令段、数据段四个部分,每个部分的字节 长度见下表 11~1: 表 11~1 长度 模块段 长度段 命令段 数据段 3 字节 不定 8 字节 不定 非必要 多个数据(协议中用 x1,x2,…表示)用半角逗号分隔开,非必要 说明 11.3 实验设备 一套 OURS-ELVIS 实验箱、一台安装 LabVIEW 的 PC 机。 11.4 实验步骤 (1)硬件连接 ① 将电源线分别连接 OURS-ELVIS 实验箱与电源插座。 ② 用一根交叉网线将宿主 PC 机的网口与 OURS-ELVIS 实验箱的网口相连。 (2)设计前面板 在前面板放置一个圆形指示灯控件,标为 ConnectIndicator;一个字符串输入控件, 标为 RemoteAddress,用来输入服务端 IP 地址;一个 TCP 网路连接引用句柄控件,标为 connection ID,并隐藏显示控件;三个布尔按钮控件,分别标为:Connect、DisConnect、 STOP。如图 11-1 所示: 164 虚拟仪器实验指导教材 图 11-1 (3)初始化部分 几乎所有程序都需要有一个初始化的工作,这部分的程序如下 11-2: 图 11-2 (4)停止程序 停止程序通过用户点击 STOP 控件来终止 VI 程序的运行,如图 11-3: 图 11-3 (5)网络通信处理 这部分由一个简单的事件结构构成,根据“事件”值的不同处理不同的事务。当用户点 击 Connect 事件且连接 IP 无错误时,ConnectIndicator 指示灯变为绿色,如图 11-4: 165 虚拟仪器实验指导教材 图 11-4 当服务端连接失败时,ConnectIndicator 指示灯变为墨绿色,如图 11-5: 图 11-5 当用户点击 DisConnect 事件时,ConnectIndicator 指示灯变为墨绿色,如图 11-6: 图 11-6 (6)本机调试 各部分程序完成后就可以先在本机调试运行。将光盘 Tools 目录下 HerculesSetup 工具打开用来调试网络通信的状态,软件运行界面如图 11-7: 166 虚拟仪器实验指导教材 图 11-7 选择 HerculesSetup 工具中的 TCP Server 选项卡,端口设置为 1500,点击 Listen 按钮。填写好本机 IP(比如,本机 IP:192.168.0.37),运行 VI 程序,然后点击 Connect 按钮,如果程序编写无误,可以看到 HerculesSetup 和 VI 界面有所变化,如图 11-8、图 11-9 所示: 图 11-8 167 虚拟仪器实验指导教材 图 11-9 (7)连机调试 打开实验箱电源,等待系统启动,启动界面如下图 11-10 所示。同时从图中可以得出, 实验箱 IP 为 192.168.0.197。 图 11-10 选择系统设置,可在“系统设置页”进行本机 IP 查看与设置,然后保存 IP 设置并重 启,以确保 PC 机与实验箱在同一个网段。如下图 11-11: 图 11-11 168 虚拟仪器实验指导教材 在 PC 端填写好实验箱 IP(即 192.168.0.197),运行 VI 程序,然后点击 Connect 按钮,连接成功后,实验箱界面和 VI 界面应有相应变化。如图 11-12、图 11-13 所示: 图 11-12 图 11-13 11.5 课后习题 本实验练习了如何建立 PC 机与设备端的网络连接,在了解这一过程的基础之上要求进 一步地完善连接程序,具体要求如下: 1.要求 VI 程序一运行就处于连接设备状态下。 169 虚拟仪器实验指导教材 实验十二 控制实验箱产生信号 12.1 实验目的 熟悉网络编程和对字符串的处理。 12.2 实验内容 用 LabVIEW 编写程序控制实验箱产生波形信号,可以改变信号的频率和波形。 通信规则说明 1.激活信号发生器模块,如图 12-1 所示: 图 12-1 2.控制实验箱产生相应的信号,如图 12-2 所示: 图 12-2 3.关闭信号发生器模块,如图 12-3 所示: 图 12-3 12.3 实验设备 一套 OURS-ELVIS 实验箱、一台安装 LabVIEW 的 PC 机。 12.4 实验步骤 (1)硬件连接 按照实验十一的步骤,连接宿主 PC 机和一台 OURS-ELVIS 实验箱。 (2)设计前面板 在前面板放置如下图 12-4 的控件对象。 170 虚拟仪器实验指导教材 图 12-4 (3)网络连接程序块 网络连接程序块包括了初始化和网络通信处理两个部分,这部分的程序如下图 12-5 所 示: 图 12-5 (4)停止程序 停止程序通过用户点击 STOP 控件来终止 VI 程序的运行,如图 12-6: 171 虚拟仪器实验指导教材 图 12-6 (5)控制信号产生程序块 这部分由一个简单的事件结构构成,根据事件选择的不同处理不同的事务。 当选择是 ACTIVE 激活信号发生器模块时,程序处理“Active”事务,如图 12-7: 图 12-7 当选择是 Generate 发送控制指令,产生信号时,程序处理“Generate”事务,如 图 12-8: 图 12-8 当选择是 DACTIVE 关闭信号发生器模块时,程序处理“DeActive”事务,如图 12-9: 图 12-9 (6)连机调试 172 虚拟仪器实验指导教材 打开实验箱电源,等待系统启动,启动界面如下图 12-10 所示。同时从图中可以得出, 实验箱 IP 为 192.168.0.197。 图 12-10 选择系统设置,可在“系统设置页”进行本机 IP 查看与设置,然后保存 IP 设置并重 启,以确保 PC 机与实验箱在同一个网段。如下图 12-11: 图 12-11 在 PC 端填写好实验箱 IP(即 192.168.0.197),运行 VI 程序,然后点击 Connect 按钮,连接成功后,面板状态应有相应变化。如下图 12-12 所示: 图 12-12 173 虚拟仪器实验指导教材 点击 ACTIVE,激活信号发生器模块,在“信号频率”中设置频率值,如 5000,选择 信号类型(0 为正弦波、1 为三角波、2 为矩形波),然后点击 Generate,就可以用示波器在 实验箱的 DDS 端口观察到相应的波形。 12.5 课后习题 本实验练习了如何通过 PC 机控制实验箱做一些事情。在这个实验过程中,实验箱变成 了一个信号发生器,产生用户所指定的波形信号。 示例程序只提供发送固定频率和固定波形的功能,所以要求设计一个简易并且功能完善 的信号发生器,能够更方便地产生不同频率不同波形的信号,界面如图 12-13 所示: 图 12-13 174 虚拟仪器实验指导教材 实验十三 读写 IO 13.1 实验目的 学习和了解在 OURS-ELVIS 实验平台上实现一个读写 IO 的过程。 13.2 实验内容 这个实验实现用 LabVIEW 控制实验箱上的 IO 口,原理和控制实验箱产生信号实验类 似,也是由激活,控制,关闭三个过程组成,只是在协议细节上和命令的解析上有所不同。 通信规则说明 1.激活 IO 控制模块,如图 13-1 所示: 图 13-1 2.控制 LED 显示状态,如图 13-2 所示: 图 13-2 3.读取拨码开关状态,如图 13-3 所示: 图 13-3 4.关闭 IO 控制模块,如图 13-4 所示: 图 13-4 13.3 实验设备 一套 OURS-ELVIS 实验箱、一台安装 LabVIEW 的 PC 机。 13.4 实验步骤 (1)硬件连接 按照实验十一的步骤,连接宿主 PC 机和一台 OURS-ELVIS 实验箱。 175 虚拟仪器实验指导教材 (2)设计前面板 在前面板放置如下图 13-5 的控件对象。 图 13-5 (3)网络连接程序块 网络连接程序块包括了初始化和网络通信处理两个部分,这部分的程序如下图 13-6 所 示: 图 13-6 (4)停止程序 停止程序通过用户点击 STOP 控件来终止 VI 程序的运行,如图 13-7: 176 虚拟仪器实验指导教材 图 13-7 (5)读写 IO 程序块 这部分由读 IO 和写 IO 两个部分构成。 1)写 IO 由一个简单的事件结构构成,根据事件选择的不同处理不同的事务。 当选择是 ACTIVE 激活 IO 模块时,程序处理“Active”事务,如图 13-8: 图 13-8 当选择是 LED 写 IO 时,程序处理“LED”事务,如图 13-9: 图 13-9 当选择是 DACTIVE 关闭 IO 模块时,程序处理“DeActive”事务,如图 13-10: 177 虚拟仪器实验指导教材 图 13-10 2)读 IO 程序,如图 13-11 所示: 图 13-11 (6)连机调试 打开实验箱电源,等待系统启动,启动界面如下图 13-12 所示。同时从图中可以得出, 实验箱 IP 为 192.168.0.197。 图 13-12 选择系统设置,可在“系统设置页”进行本机 IP 查看与设置,然后保存 IP 设置并重 启,以确保 PC 机与实验箱在同一个网段。如下图 13-13: 178 虚拟仪器实验指导教材 图 13-13 在 PC 端填写好实验箱 IP(即 192.168.0.197),运行 VI 程序,然后点击 Connect 按钮,连接成功后,面板状态应有相应变化。如下图 13-14 所示: 图 13-14 1)点击 ACTIVE 激活 IO 模块,出现下图 13-15 所示界面。拨动实验箱右下侧的拨码 开关,在“4.读取拨码开关状态”的对话框中会出现相应的变化。 179 虚拟仪器实验指导教材 图 13-15 2)在“LED”中写入一个 12 位十六进制数,比如 FFF,如图 13-16 所示,然后点击 LED 按钮,实验箱右侧的 12 个 LED 灯全部熄灭。 在“LED”中写入不同的十六进制数, 12 个 LED 灯会出现相应的变化。 180 虚拟仪器实验指导教材 图 13-16 13.5 课后习题 本实验练习了基本的 IO 读写,写是控制实验箱上交通灯组的亮灭,读是获取拨码开关 的状态。 要求设计一个程序能够通过拨码开关来控制交通灯,从高位到低位一共 8 个 LED 灯。 181 虚拟仪器实验指导教材 实验十四 DA 输出 14.1 实验目的 学习和了解在 OURS-ELVIS 实验平台上实现一个 DA 输出的过程。 14.2 实验内容 DA 输出实验和 IO 控制中的输出部分类似,只是在实验箱硬件上处理不同, 在 LabVIEW 端发送 16bits 的数据到实验箱,再由实验箱进行数模转换输出。 通信规则说明 1.激活 DA 模块,如图 14-1 所示: 图 14-1 2.控制 DA 输出,如图 14-2 所示: 图 14-2 3.关闭 DA 模块,如图 14-3 所示: 图 14-3 14.3 实验设备 一套 OURS-ELVIS 实验箱、一台安装 LabVIEW 的 PC 机。 14.4 实验步骤 (1)硬件连接 按照实验十一的步骤,连接宿主 PC 机和一台 OURS-ELVIS 实验箱。 (2)设计前面板 在前面板放置如下图 14-4 的控件对象。 182 虚拟仪器实验指导教材 图 14-4 (3)网络连接程序块 网络连接程序块包括了初始化和网络通信处理两个部分,这部分的程序如下图 14-5 所 示: 图 14-5 (4)停止程序 停止程序通过用户点击 STOP 控件来终止 VI 程序的运行,如图 14-6: 183 虚拟仪器实验指导教材 图 14-6 (5)DA 输出程序块 这部分由一个简单的事件结构构成,根据事件选择的不同处理不同的事务。 当选择是 ACTIVE 激活 DA 模块时,程序处理“Active”事务,如图 14-7: 图 14-7 当选择是 OUT 控制 DA 输出时,程序处理“DAOut”事务,如图 14-8: 图 14-8 当选择是 DACTIVE 关闭 DA 模块时,程序处理“DeActive”事务,如图 14-9: 184 虚拟仪器实验指导教材 图 14-9 (6)连机调试 打开实验箱电源,等待系统启动,启动界面如下图 14-10 所示。同时从图中可以得出, 实验箱 IP 为 192.168.0.197。 图 14-10 选择系统设置,可在“系统设置页”进行本机 IP 查看与设置,然后保存 IP 设置并重 启,以确保 PC 机与实验箱在同一个网段。如下图 14-11: 图 14-11 在 PC 端填写好实验箱 IP(即 192.168.0.197),运行 VI 程序,然后点击 Connect 按钮,连接成功后,面板状态应有相应变化。如下图 14-12 所示: 185 虚拟仪器实验指导教材 图 14-12 点击 ACTIVE 激活 DA 模块,在“DA1”、 “DA2”中分别写入一个 16bit 数,如图 14-13 所示,然后点击 OUT,就可以用万用表在实验箱上的 HTP7、HTP8 输出端口测量到相应的 值。 图 14-13 14.5 课后习题 本实验练习了基本的 DA 输出控制, 要求设计一个程序能够每隔 1S 产生一个 DA 输出。 186 虚拟仪器实验指导教材 实验十五 测量电压 15.1 实验目的 学习和了解在 OURS-ELVIS 实验平台上实现一个简单的采集电压过程。 15.2 实验内容 本实验实现了一个简单的采集电压的功能。利用实验箱上的万用表模块,通过给实验箱 发送采集电压的命令,从而在 PC 端接收到来自实验箱的电压值。发送采集电压的命令只需 要发送一次,实验箱就会不停的给 PC 端发送电压值,以保持测量值的实时更新。 通信规则说明 1.激活万用表模块,如图 15-1 所示: 图 15-1 2.控制万用表的量程切换,如图 15-2 所示: 图 15-2 3.测量信息发送及数据段的详细意义说明,如图 15-3、15-4 所示: 图 15-3 图 15-4 4.关闭万用表模块,如图 15-5 所示: 187 虚拟仪器实验指导教材 图 15-5 15.3 实验设备 一套 OURS-ELVIS 实验箱、一台安装 LabVIEW 的 PC 机。 15.4 实验步骤 (1)硬件连接 按照实验十一的步骤,连接宿主 PC 机和一台 OURS-ELVIS 实验箱。 (2)设计前面板 在前面板放置如下图 15-6 的控件对象。 图 15-6 (3)网络连接程序块 网络连接程序块包括了初始化和网络通信处理两个部分,这部分的程序如下图 15-7: 188 虚拟仪器实验指导教材 图 15-7 (4)停止程序 停止程序通过用户点击 STOP 控件来终止 VI 程序的运行,如图 15-8: 图 15-8 (5)采集电压程序块 这部分由万用表模块准备和电压采集两个部分构成。 1)万用表模块准备程序由一个简单的事件结构构成,根据事件选择的不同处理不同的 事务。 当选择是 ACTIVE 激活万用表模块时,程序处理“Active”事务,如图 15-9: 图 15-9 当选择是 SetVoltage 切换到电压量程时,程序处理“Voltage”事务,如图 15-10: 189 虚拟仪器实验指导教材 图 15-10 当选择是 DACTIVE 关闭万用表模块时,程序处理“DeActive”事务,如图 15-11: 图 15-11 2)电压采集程序,如图 15-12 所示: 图 15-12 (6)连机调试 打开实验箱电源,等待系统启动,启动界面如下图 15-13 所示。同时从图中可以得出, 实验箱 IP 为 192.168.0.197。 190 虚拟仪器实验指导教材 图 15-13 选择系统设置,可在“系统设置页”进行本机 IP 查看与设置,然后保存 IP 设置并重 启,以确保 PC 机与实验箱在同一个网段。如下图 15-14: 图 15-14 在 PC 端填写好实验箱 IP(即 192.168.0.197),运行 VI 程序,然后点击 Connect 按钮,连接成功后,面板状态应有相应变化。如下图 15-15 所示: 191 虚拟仪器实验指导教材 图 15-15 点击 ACTIVE 激活万用表,然后点击 SetVoltage,出现下图 15-16 所示界面。 图 15-16 192 虚拟仪器实验指导教材 在实验箱上的 DMM 电压输入端口用探针测量电压值,如 5V,面板状态出现相应变化, 如下图 15-17 所示: 图 15-17 15.5 课后习题 本实验练习了利用实验箱上的万用表模块测量外部电压,并将测量值回显在 PC 端的屏 幕上。 在所给例子的基础上,要求设计一个测量电阻的程序,并且参考网络通信协议将单位解 析出来。网络通信协议相关部分说明,如下图 15-18 所示: 图 15-18 193 虚拟仪器实验指导教材 实验十六 读取实验箱 AD 采集的数据 16.1 实验目的 学习和了解在 OURS-ELVIS 实验平台上实现读取实验箱 AD 采集数据的过程。 16.2 实验内容 这个实验比前几个操作起来稍微复杂些,因为有大数据量的传输,而且在数据包的格式 上有所不一样。格式说明及解析见“通信协议说明.html”文档。数据接收和前面实验类似, 只是变一下接收的数据包大小,难点在数据的解析上,因为传过来的是二进制的数据,需要 经过一系列的转换,最后得到需要的浮点值。 通信规则说明 1.激活 AD 采样模块,如图 16-1 所示: 图 16-1 2.控制 AD 采样模块参数及采样频率说明,如图 16-2、16-3 所示: 图 16-2 图 16-3 3.采样数据说明,如图 16-4 所示: 194 虚拟仪器实验指导教材 图 16-4 4.关闭 AD 采样模块,如图 16-5 所示: 图 16-5 16.3 实验设备 一套 OURS-ELVIS 实验箱、一台安装 LabVIEW 的 PC 机。 16.4 实验步骤 (1)硬件连接 按照实验十一的步骤,连接宿主 PC 机和一台 OURS-ELVIS 实验箱。 (2)设计前面板 在前面板放置如下图 16-6 的控件对象。 图 16-6 195 虚拟仪器实验指导教材 (3)网络连接程序块 网络连接程序块包括了初始化和网络通信处理两个部分,这部分的程序如下图 16-7 所 示: 图 16-7 (4)停止程序 停止程序通过用户点击 STOP 控件来终止 VI 程序的运行,如图 16-8: 图 16-8 (5)读取 AD 采集数据程序块 这部分由 AD 采样模块准备和数据采样两个部分构成。 1)AD 采样模块准备程序由一个简单的事件结构构成,根据事件选择的不同处理不同 的事务。 当选择是 ACTIVE 激活 AD 采样模块时,程序处理“Active”事务,如图 16-9: 图 16-9 当选择是 Config 发送采样参数时,程序处理“Config”事务,如图 16-10: 196 虚拟仪器实验指导教材 图 16-10 当选择是 DACTIVE 关闭 AD 采样模块时,程序处理“DeActive”事务,如图 16-11: 图 16-11 2)数据采样,如图 16-12 所示: 图 16-12 (6)连机调试 打开实验箱电源,等待系统启动,启动界面如下图 16-13 所示。同时从图中可以得出, 实验箱 IP 为 192.168.0.197。 图 16-13 197 虚拟仪器实验指导教材 选择系统设置,可在“系统设置页”进行本机 IP 查看与设置,然后保存 IP 设置并重 启,以确保 PC 机与实验箱在同一个网段。如下图 16-14: 图 16-14 在 PC 端填写好实验箱 IP(即 192.168.0.197),运行 VI 程序,然后点击 Connect 按钮,连接成功后,面板状态应有相应变化。如下图 16-15 所示: 图 16-15 198 虚拟仪器实验指导教材 点击 ACTIVE 激活 AD 模块,在“采样频率代号”中选择采样频率,关于采样频率代 号与采样频率的具体关系可参看网络通信协议文档,然后点击 Config 发送采样参数配置。 同时,在实验箱上的 CHA 或 CHB 端口输入信号,比如 1K 正弦波信号,出现下图 16-16 所示界面。 图 16-16 16.5 课后习题 本实验练习了如何控制实验箱的 AD 模块进行采样,并将采样的数据读取到 PC 端进行 显示。 示例中获取的数据为原始的数据流,并没有转换为真实电压值,要求在所给例子的基础 上设计一个程序,将这一功能实现。 199 虚拟仪器实验指导教材 第五章 虚拟仪器综合实验 实验十七 通过 ComManagerTCP 程序与实验箱通信 17.1 实验目的 在前面的实验里,用户需要为每个实验添加网络通信部分的程序。因此在这一章里将通 信部分(以 ComManagerTCP 程序或 ComManagerUSB 程序方式)从各个应用程序中 抽取出来,从而简化各程序在设计时的复杂度。通信方式除前面实验用到的网络通信外,在 这里增加了通过 USB 进行通信的方式,两者在通信接口上有所不同,但数据的发送与接收 的实现基本一致,故本书将以网络通信(即 ComManagerTCP 程序)的实现为主,USB 通信方式(即 ComManagerUSB 程序)只作使用上的介绍。 通过这个实验,可以学习到全局变量及队列等知识点的应用。另外,这个实验通过演示 了采集电压的过程验证 ComManagerTCP 程序与实验箱通信,这可以和实验十五的测量电 压程序作比较,找出它们的异同之处。 17.2 实验内容 编 写 一 个 与 实 验 箱 进 行 通 信 的 ComManagerTCP 程 序 , 并 编 写 一 个 通 过 ComManagerTCP 来获取测量电压程序来检测通信状况。 17.3 实验原理及说明 首先说明一下 ComManagerTCP 这个程序所扮演的角色。设计 ComManagerTCP 程序的目的主要是管理所有的网络通信,包括连接、接收、发送、检测等功能,而其它的程 序则通过通知及功能性全局变量与 ComManagerTCP 程序通信,从而获取实验箱发送来的 数据。 下面这张结构图 17-1 说明了 ComManagerTCP(或 ComManagerUSB)这个程序 与实验箱以及各个子程序之间千丝万缕的关系: 图 17-1 200 虚拟仪器实验指导教材 从图中可以了解到,ComManagerTCP(或 ComManagerUSB)程序与各子程序之 间主要是通过通知以及功能性全局变量来实现通信,当然还有用到了普通全局变量来传递网 络连接的状态。 先看 ComManagerTCP 这个程序,从功能上说主要分接收、发送、检测三部分。通过 TCP 协议接收到实验箱发来的数据根据包头将有效数据通知到对应的子模块,而对比较大 的数据先是写入到一个功能性全局变量中,再通知相应的模块取出进行处理。再来看右边各 个子模块,子模块有两种属性:被动显示和主动控制,一个子模块至少有其中一种属性。 所谓被动显示是指这个模块需要接收来自实验箱的数据并将处理后的结果显示在屏幕 上;主动控制是指这个模块能控制实验箱上的硬件,让实验箱对应的硬件输出或状态改变。 带被动显示属性的模块都会有一个线程(循环)用来监听通知事件,监听来自 ComManagerTCP 程序的数据;带主动控制属性的模块有一个产生通知的功能,先将需要 发送的数据包加入发送队列,然后通知 ComManagerTCP 程序通过 TCP 协议发送出去。 下面详细说明一下这个程序所完成的功能,用户可以对照原程序上标注的程序块序号。 初始化:第(0)部分是程序的初始化部分,主要完成对一些控制的赋初值。 网络连接:由(1)、 (2)、 (3)、 (4)四个部分组成一个状态机,负责网络通信连接, 包括连接、检测以及连接成功和连接断开后的一些状态设置。 1) Connect:第(1)部分是网络连接部分,作为客户端,需要制定连接 IP 地址和端 口号,同时还需设置了连接超时时间为 1 秒,连接成功后状态更换为 Success; 2) Success:对应程序中(2)部分,这里一方面是设置连接指示灯为 TRUE 状态,另 一方面向外面广播,把这个状态发送到其他的子程序; 3) Check:对应程序中第(3)部分,为检测阶段,每隔一秒通过 Windows 的 Ping 命 令来判断网络的通断状态; 4) LostConnect:在程序中对应第(4)部分。 连接 IP 设置:在程序中对应第(5)部分,主要通过调用一个子 VI 来实现。 数据接收:由(6)、 (7)、 (8) 、 (9)这四个部分完成网络通信中的接收功能。在(6) 中,设置了阻塞模式接收数据,接收数据包的前 5 个字节,包括了模块名和包长度。这 两个段在程序块(7)中的子 VI 完成,解析出包长度后进入(8)接收剩下的数据,最 后送入(9)进行数据分检,主要分成了三类: 一类是比较短的数据包,通过通知的形式发送到对应的子程序中进行处理; 另外两类是音频和 AD 采样的数据,这两种数据的包都比较大,采用了功能性全局 变量来存储。 数据发送:对应程序中(10)部分,完成网络通信中的发送功能,通过一个发送队 列来存储要发送的数据包,开始先取得队列中数据包的数目,然后将这些数据包出队列 通过 TCP 协议发送出去。 程序控制:主要处理用户界面操作。(11)、(12) 、(13)实现了鼠标拖动窗口的非 标题栏移动的功能;(14)、(15)是停止程序运行,两者区别在于一个只停止但不关闭 前面板,一个不仅停止而且关闭前面板,而真正处理停止和关闭的操作在第(17)部分。 第(14) 、 (15)部分只是触发了一个用户事件,而这个用户事件的处理在第(17)部分; 第(16)部分实现了前面板最小化的功能。 同时,根据实验十五——测量电压实验,要完成一个采集电压的过程需要发送三个命令 给实验箱:激活、选择量程、关闭。所不同的是原来是直接通过 TCP 协议的发送、接收函 数来传递命令包,而现在是通过 ComManagerTCP 程序,发送命令时只需要将命令加入到 发送队列里,获取命令时只需要等待 ComManagerTCP 程序接收到数据的通知就可以了。 201 虚拟仪器实验指导教材 17.4 实验设备 一套 OURS-ELVIS 实验箱、一台安装 LabVIEW 的 PC 机。 17.5 实验步骤 (1)硬件连接 按照实验十一的步骤,连接宿主 PC 机和一台 OURS-ELVIS 实验箱。 (2)设计前面板,如图 17-2、图 17-3 所示。测量电压程序的布局和实验十五测量电 压程序的类似。 图 17-2 ComManagerTCP 程序前面板 图 17-3 测量电压程序前面板 202 虚拟仪器实验指导教材 (3)编写程序框图 ① ComManagerTCP 程序的程序框图 初始化部分,如图 17-4 所示: 图 17-4 网络通信程序块包括网络连接部分、接收数据、发送数据三个部分。 1)网络连接部分,由一个简单的状态机构成,根据网络通信状态的不同处理不同的事 务。 当网络通信状态为 Connect 时,程序处理“Connect”事务,如图 17-5 所示: 图 17-5 当网络通信状态为 Success 时,程序处理“Success”事务,如图 17-6 所示: 图 17-6 当网络通信状态为 Check 时,程序处理“Check”事务,如图 17-7 所示: 203 虚拟仪器实验指导教材 图 17-7 当网络通信状态为 LostConnect 时,程序处理“LostConnect”事务,如图 17-8 所示: 图 17-8 2)接收数据,如图 17-9 所示: 图 17-9 3)发送数据,如图 17-10 所示: 204 虚拟仪器实验指导教材 图 17-10 连接 IP 设置,如图 17-11 所示: 图 17-11 程序控制,由一个简单的事件结构构成,根据事件选择的不同处理不同的事务。 当鼠标按下时,程序处理“Pane”事务,如图 17-12: 图 17-12 当鼠标移动时,程序处理“鼠标移动”事务,如图 17-13: 205 虚拟仪器实验指导教材 图 17-13 当鼠标释放时,程序处理“鼠标释放”事务,如图 17-14: 图 17-14 当选择是 Stop 停止程序时,程序处理“Stop”事务,如图 17-15: 图 17-15 206 虚拟仪器实验指导教材 当选择是 Close 关闭程序时,程序处理“Close”事务,如图 17-16: 图 17-16 当选择是 Minimize 最小化程序时,程序处理“Minimize”事务,如图 17-17: 图 17-17 用户事件的处理,如图 17-18: 图 17-18 ② 测量电压程序的程序框图 编写几个按钮的事件响应程序,功能很简单,实现一个入队列的操作。这里只给出 207 虚拟仪器实验指导教材 ACTIVE 按钮激活万用表模块的响应程序,如图 17-19 所示: 图 17-19 电压采集程序,如图 17-20: 图 17-20 (4)连机调试 打开实验箱电源,等待系统启动,启动界面如下图 17-21 所示。同时从图中可以得出, 实验箱 IP 为 192.168.0.197。 图 17-21 选择系统设置,可在“系统设置页”进行本机 IP 查看与设置,然后保存 IP 设置并重 启,以确保 PC 机与实验箱在同一个网段。如下图 17-22: 208 虚拟仪器实验指导教材 图 17-22 在 PC 端运行 VI 程序: 1)通过 ComManagerTCP 程序进行通信 ① 打开 ComManager 文件夹,找到并运行 ComManagerTCP.vi 程序,如下图 17-23 所示。 图 17-23 点击 图 17-24 按钮,弹出如图 17-24 所示界面,填写好实验箱 IP(即 192.168.0.197), 然后点击 OK。当连接成功后,VI 界面和实验箱界面应有相应变化,如图 17-25、图 17-26 所示: 图 17-25 图 17-26 209 虚拟仪器实验指导教材 ② 打 开 “ 17- 通 过 ComManager 程 序 与 实 验 箱 通 信 ” 文 件 夹 , 找 到 并 运 行 通 过 ComManager 来获取测量电压.vi 程序,面板界面如下图 17-27 所示: 图 17-27 点击 ACTIVE 激活万用表,然后点击 SetVoltage,在实验箱上的 DMM 电压输入端口 用探针测量电压值,如 5V,面板状态出现相应变化,如图 17-28 所示: 图 17-28 210 虚拟仪器实验指导教材 2)通过 ComManagerUSB 程序进行通信 硬件连接: 将电源线分别连接 OURS-ELVIS 实验箱与电源插座。 用一根 USB 延长线将 PC 机的 USB 口与 OURS-ELVIS 实验箱的 USB Device 相连。 ① 在以 ComManagerUSB 程序进行通信前,需要安装 NI-VISA 驱动,具体安装过 程如下: 将光盘“\Tools”文件夹下 visa441full.rar 文件拷贝出来解压后,打开 visa441full 文件 夹,找到 setup.exe 并双击打开,出现如下图 17-29 所示界面: 图 17-29 图 17-30 211 虚拟仪器实验指导教材 点击 Next,进入安装路径选择对话框,如图 17-31 所示: 图 17-31 选择默认路径,点击 Next,进入下一个页面,如图 17-32 所示: 图 17-32 默认选择,点击 Next,进入软件许可协议页面,如图 17-33 所示: 212 虚拟仪器实验指导教材 图 17-33 选择“I accept the License Agreement(s)”,点击 Next,进行 NI-VISA 的安装,如图 17-34 所示: 图 17-34 点击 Finish 完成 NI-VISA 的安装,并重新启动计算机。如图 17-35、图 17-36 所示: 213 虚拟仪器实验指导教材 图 17-35 图 17-36 以上安装完成后,点击“开始菜单\程序\National Instruments\VISA\Driver Wizard” 运 行 Driver Wizard 程序,运行后会出现如下图 17-37 所示对话框: 图 17-37 214 虚拟仪器实验指导教材 Hardware Bus 类型选择 USB,如下图 17-38 所示: 图 17-38 点击 Next,进入下一个对话框,如图 17-39 所示: 图 17-39 在 这 里 我 们 需 要 填 写 设 备 的 VID 和 PID , OURS-ELVIS 实 验 箱 的 设 备 信 息 为 215 虚拟仪器实验指导教材 USB0::0x045E::0x00CE,填写结果如下图 17-40 所示,Manufacturer Name 和 Model Name 可随意填写。与此同时,需要打开实验箱电源,等待系统启动。 图 17-40 点击 Next,进入下一个页面,如图 17-41 所示: 图 17-41 216 虚拟仪器实验指导教材 接下来按默认选择即可,点击 Next,进入下图 17-42 所示页面: 图 17-42 点击 Finish,完成驱动的安装。 为了验证驱动是否安装成功,点击“开始\所有程序\National Instruments\Measurement & Automation”打开 NI 设备管理程序,如果驱动安装成功,可看到左侧列表有对应的设备信 息,如图 17-43 所示: 图 17-43 同时,在 Windows 的设备管理器里也可以看到相应的设备,如下图 17-44 所示: 217 虚拟仪器实验指导教材 图 17-44 至此,驱动安装过程结束,可以进行下一步的操作。如果在安装过程中出现问题,可参 考本书最后“常见问题”部分的解答。 ② 打开 ComManager 文件夹,找到并运行 ComManagerUSB.vi 程序,如下图 17-45 所示。 图 17-45 点击 图 17-46 按钮,弹出如图 17-46 所示界面,在 VISANameIn 对话框中输入该实验箱的 设 备 信 息 , 设 备 信 息 可 在 上 图 17-43 中 进 行 查 看 ( 实 验 箱 的 设 备 信 息 默 认 为 USB0::0x045E::0x00CE::NI-VISA-0::RAW),然后点击 OK。当连接成功后,VI 界面应有相 应变化,如图 17-47 所示: 218 虚拟仪器实验指导教材 图 17-47 然后运行通过 ComManager 来获取测量电压.vi,这个与在通过 ComManagerTCP 程序 进行通信下的操作完全一致,这里不做过多介绍。 注意:如果想拔下 USB 延长线再插上,正确操作是:先停止 ComManagerUSB.vi 程序的运行后,拔下 USB 延长线使实验箱系统正常进入连接断开状态,然后再插上 USB 延长线等待建立连接,此时可能需要比较长的时间,请耐心等待。如果等待时间太长,建议 重新启动实验箱再进行连接操作。 219 虚拟仪器实验指导教材 实验十八 虚拟可变电源 18.1 实验目的 从这个实验开始,将采取另外一种实验模式,在每个实验文件夹下有一个以“Exp+实 验序号”命名的 VI 程序,这个程序是未完成的,只实现了一些基本的程序模块,核心功能 需要用户自己来完成,在程序未完成部分用序号标明。另外,在文件夹下还提供了完整的程 序供参考,并且提供了一些可能用到的子 VI 供大家调用,子 VI 的功能在每个实验里都有 说明。 18.2 实验内容 编写一个 VI 程序来控制实验箱上可变电压模块的输出电压大小。 18.3 实验原理及说明 实验箱上提供可变电源模块,可以产生 0V 到正负 12V 的直流电压值,可以通过 LabVIEW 设计程序来控制这个电压模块的输出电压大小。实验箱需要知道两个参数才能输 出用户所需要的极性和电压值,详细协议见通信协议说明.html。和 DDS 程序类似,只要 将控件调节的值打包为协议说明的数据包发送给实验箱就可以。 下表 18~1 给出了本实验可能会用到子 VI: 表 18~1 路径 \Comm\SetProStatus.vi 图标 功能 设置模块的一些状态信息,如程序活动状态信息 ActiveStatus \Comm\ListenData.vi 监听来自 ComManager 程序的通知,ComManager 一旦接 收到有效数据就通知此处并将接收到的数据包传送过来 \18-虚拟可变电源 \DataProcess\POWDecoder.vi \Comm\DecodeStr.vi 对包含电压值的命令串进行解析,最终得到数值型的电压 值 将标准命令串中的各个段(包括模块名,命令段,数据段) 分解出来 \18-虚拟可变电源 将要设置的电压值及命令段捆绑成实验箱能识别的命令串 \DataProcess\POWEncoder.vi 格式 \Comm\PackDataAndSend.vi 将模块段,命令段,数据段组合成实验箱能识别的数据包 格式 \Comm\ProduceCharString.vi 产生一个由所给字符(串)和数量参数决定的连续字符串, 子 VI 作用是将命令打包成规定的数据格式 \Comm\LEDShow.vi 此 VI 对输入的浮点数进行转换,最后得到驱动 RingLED 的数组 另外,在以后所有的实验程序中,将会包括用户界面控制程序块,且功能和实现基本一 致,故在此统一对其做一个详细说明,后面的实验中将不做说明。 用户界面控制程序块,主要完成一些通用的人机交互功能,具体功能有: 1.鼠标拖动窗口移动,因为标题栏在程序运行时被隐藏起来,需要响应鼠标拖动面板 时移动窗体的消息; 220 虚拟仪器实验指导教材 2.处理面板最小化消息; 3.面板被关闭时的一些操作。 功能 1 的具体实现程序,如图 18-1、18-2、18-3 所示: 图 18-1 图 18-2 图 18-3 功能 2 的具体实现程序,如图 18-4 所示: 221 虚拟仪器实验指导教材 图 18-4 功能 3 的具体实现程序,如图 18-5、18-6、18-7 所示: 图 18-5 图 18-6 222 虚拟仪器实验指导教材 图 18-7 18.4 实验设备 一套 OURS-ELVIS 实验箱、一台安装 LabVIEW 的 PC 机。 18.5 实验步骤 (1)硬件连接 按照实验十一的步骤,连接宿主 PC 机和一台 OURS-ELVIS 实验箱。 (2)设计前面板,如图 18-8 所示。 图 18-8 223 虚拟仪器实验指导教材 (3)编写程序框图 1)程序初始化 这部分完成对各控件的初始化工作,程序框图如下图 18-9 所示: 图 18-9 2)数据接收 监听来自 ComManager 程序的通知,ComManager 一旦接收到有效数据就通知此处对数 据进行处理,接收到的数据为反馈电压值,并且将这个数据回显在前面板上。其中,对应(1) 处的程序未完成,用户根据所需要的功能自己来设计,如图 18-10 所示: 图 18-10 224 虚拟仪器实验指导教材 3)监控运行程序块 响应用户操作。利用 LCD 按钮让实验箱液晶屏切换到可变电源界面,对应的程序如图 18-11 所示;通过两个旋钮改变电源电压的大小,如图 18-12、图 18-13 所示; 图 18-11 图 18-12 图 18-13 225 虚拟仪器实验指导教材 发送数据并更新界面显示,如图 18-14 所示; 图 18-14 4)用户界面控制程序块 这部分主要完成一些通用的人机交互功能,详细说明见实验原理及说明,其程序如图 18-15 所示: 图 18-15 (4)连机调试 完成 VI 程序后,按照实验十七的步骤,在 PC 端运行该 VI 程序,并与参考程序的运行 结果作比较,看是否功能完整。 参考程序运行结果: 在 PC 端运行参考程序“\18-虚拟可变电源\Power Supplies.vi”,连接成功后,面板状态 应有相应变化。如图 18-16 所示: 226 虚拟仪器实验指导教材 图 18-16 点击 LCD,实验箱液晶屏切换到可变电源界面,如图 18-17 所示。 图 18-17 旋转前面板上的两个旋钮,面板和实验箱液晶屏出现相应的变化,如图 18-18、图 18-19 所示,并且在实验箱上的 HTP1、HTP2 用万用表可以测量到相应的电压值。 227 虚拟仪器实验指导教材 图 18-18 图 18-19 228 虚拟仪器实验指导教材 实验十九 虚拟万用表 19.1 实验目的 掌握 LabVIEW 软件的编程方法,了解万用表的基本原理。 19.2 实验内容 编写一个 VI 程序来虚拟万用表,完成虚拟万用表接收数据和发送数据功能,以及对 RANGE、REL、SELECT 等 5 个按钮的事件响应。 19.3 实验原理及说明 这个程序模拟了平时用的数字万用表的功能。在 PC 端通过发送测量参数信息给实验箱, 实验箱接收到测量参数命令切换到相应的档位,把测量结果传送给 PC,传送过来的不仅有 测量值,数据段里还包含了所有可能会显示的单位,单位的选择由实验箱上相应的硬件来决 定,而不是由 PC 端的程序来改变这个单位,详细协议见通信协议说明.html。 下表 19~1 给出了本实验可能会用到子 VI: 表 19~1 路径 \Comm\SetProStatus.vi 图标 功能 设置模块的一些状态信息,如程序活动状态信息 ActiveStatus \Comm\ListenData.vi 监听来自 ComManager 程序的通知,ComManager 一旦接 收到有效数据就通知此处并将接收到的数据包传送过来 \19-虚拟万用表 \DataProcess\ DMMDecoder.vi \19-虚拟万用表 \DataProcess\UnitChoose.vi \Comm\DecodeStr.vi 对万用表数据包的各段解析, 并将数据段中的测量值及单 位通过另一个 VI 解析,最终得到测量值及单位 对万用表命令包的数据段进行解析,得到测量值及对应的 单位 将标准命令串中的各个段(包括模块名,命令段,数据段) 分解出来 \19-虚拟万用表 将万用表命令打包成实验箱能识别的数据格式 \DataProcess\ DMMEncoder.vi \Comm\PackDataAndSend.vi 将模块段,命令段,数据段组合成实验箱能识别的数据包 格式 \Comm\ProduceCharString.vi 产生一个由所给字符(串)和数量参数决定的连续字符串, 子 VI 作用是将命令打包成规定的数据格式 \Comm\LEDShow.vi 此 VI 对输入的浮点数进行转换,最后得到驱动 RingLED 的数组 \Comm\MessageBox.vi 显示提示信息对话框,并返回一个值,OK 或者 Cancel 19.4 实验设备 一套 OURS-ELVIS 实验箱、一台安装 LabVIEW 的 PC 机。 19.5 实验步骤 229 虚拟仪器实验指导教材 (1)硬件连接 按照实验十一的步骤,连接宿主 PC 机和一台 OURS-ELVIS 实验箱。 (2)设计前面板,如图 19-1 所示。 图 19-1 (3)编写程序框图 1)程序初始化 这部分完成对各控件的初始化工作,程序框图如下图 19-2 所示: 230 虚拟仪器实验指导教材 图 19-2 2)数据接收 监听来自 ComManager 程序的通知,ComManager 一旦接收到有效数据就通知此处对数 据进行处理。接收过来的数据包括单位和测量值,需要将这两部分内容解析出来,注意单位 的处理。其中,对应(1)处的程序未完成,用户根据所需要的功能自己来设计,如图 19-3 所示: 231 虚拟仪器实验指导教材 图 19-3 3)监控运行程序块 响应用户操作,包括了对实验箱上万用表模块的各种控制指令,如档位的选择,状态的 变化等。 利用 LCD 按钮让实验箱液晶屏切换到万用表界面,对应的程序如图 19-4 所示: 图 19-4 量程切换事件响应程序,这个功能对应第(2)部分,程序未完成,需要用户自己来设 计完成。注意在切换档位时要提示表笔是否正确就位,否则可能酿成大错,万用表模块被烧 掉。如图 19-5 所示: 图 19-5 232 虚拟仪器实验指导教材 Hz、REL、Hold 、Select 等五个功能键的事件响应程序,对应程序如图 19-6 所示。 图 19-6 4)用户界面控制程序块 这部分主要完成一些通用的人机交互功能,详细说明见实验十八的实验原理及说明,其 程序如图 19-7 所示: 图 19-7 (4)连机调试 按照实验十七的步骤,在 PC 端运行该 VI 程序,并与参考程序的运行结果作比较,看 是否功能完整。 参考程序运行结果: 在 PC 端运行参考程序“\19-虚拟万用表\Digital Multimeter.vi”,连接成功后,面板状态 应有相应变化。如图 19-8 所示: 233 虚拟仪器实验指导教材 图 19-8 点击 LCD,实验箱液晶屏切换到万用表界面,如图 19-9 所示。 图 19-9 旋转前面板上的旋钮,选择测量档位,如欧姆档,出现如图 19-10 所示界面,然后点 击 OK。在实验箱上的 DMM 输入端口用探针测量电阻值,如 1KΩ,面板和实验箱液晶屏 出现相应的变化,如图 19-11、图 19-12 所示。 234 虚拟仪器实验指导教材 图 19-10 235 虚拟仪器实验指导教材 图 19-11 图 19-12 236 虚拟仪器实验指导教材 实验二十 虚拟信号发生器 20.1 实验目的 本实验通过控制 PC 机端 LabVIEW 环境下的虚拟信号发生器,在实验箱上产生相应频 率和波形的信号。信号发生器可以产生正弦波、方波、三角波三种波形,频率可从 1-1MHz 范围调节,步进值可以自己设定。 20.2 实验内容 编写一个 VI 程序来模拟信号发生器。 20.3 实验原理及说明 信号发生器(以下简称 DDS)产生信号需要设置两个参数:频率和波形。在协议文档里 关于 DDS 的协议有详细说明,我们要做的就是要使频率和波形人为可变,然后再将两个参 数合并起来打包成协议中说明的格式发送到实验箱,这样我们的目的就达到了。 20.4 实验设备 一套 OURS-ELVIS 实验箱、一台安装 LabVIEW 的 PC 机。 20.5 实验步骤 (1)硬件连接 按照实验十一的步骤,连接宿主 PC 机和一台 OURS-ELVIS 实验箱。 (2)设计前面板,如图 20-1 所示。 图 20-1 237 虚拟仪器实验指导教材 (3)编写程序框图 1)程序初始化 这部分完成对各控件的初始化工作,程序框图如下图 20-2 所示: 图 20-2 2)监控运行程序块 响应用户操作,包括了对实验箱上 DDS 模块的各种控制指令,如波形的选择,频率的 设置等。 利用 LCD 按钮让实验箱液晶屏切换到信号发生器界面,对应的程序如图 20-3 所示。 238 虚拟仪器实验指导教材 图 20-3 预设频率值事件响应程序,用来设置信号的预设频率值,这个功能对应(1)部分, 程序未完成,需要用户自己来设计完成。如图 20-4 所示: 图 20-4 RemoteChannged 事件响应程序,对应(2)部分,程序未完成,需要用户自己来设计 完成。如图 20-5 所示: 图 20-5 239 虚拟仪器实验指导教材 波形设置程序,这部分完成信号类型改变时的事件响应,包括正弦波、方波和三角波, 对应程序如下图 20-6 所示。 图 20-6 频率调节程序,采用了软键盘方式来调节频率值,对应程序如下图 20-7 所示。 图 20-7 3)数据接收 监听来自 ComManager 程序的通知,ComManager 一旦接收到有效数据就通知此 处对数据进行处理,如图 20-8 所示: 图 20-8 240 虚拟仪器实验指导教材 4)用户界面控制程序块 这部分主要完成一些通用的人机交互功能,详细说明见实验十八的实验原理及说明,其 程序如图 20-9 所示: 图 20-9 (4)连机调试 按照实验十七的步骤,在 PC 端运行该 VI 程序,并与参考程序的运行结果作比较,看 是否功能完整。 参考程序运行结果: 在 PC 端运行参考程序“\20-虚拟信号发生器\Signal Generator.vi”,连接成功后,面板状 态应有相应变化。如图 20-10 所示: 241 虚拟仪器实验指导教材 图 20-10 点击 LCD,实验箱液晶屏切换到信号发生器界面,如图 20-11 所示。 图 20-11 通过软键盘或预设键值来设置信号的频率,如 5079HZ。通过波形功能键选择信号波形, 如三角波,这时面板和实验箱液晶屏出现相应的变化,如图 20-12、图 20-13 所示。同时, 用示波器可以在实验箱的 DDS 输出端口观察到相应的波形。 242 虚拟仪器实验指导教材 图 20-12 图 20-13 243 虚拟仪器实验指导教材 实验二十一 虚拟 IO 控制 21.1 实验目的 本实验在 PC 端通过 LabVIEW 来实现控制实验箱上 I/O 口的输出以及 I/O 信号输入, 将输入的 I/O 信号显示在 PC 屏幕上。 21.2 实验内容 编写一个 VI 程序来模拟 IO 控制。 21.3 实验原理及说明 实验箱上有两个 8 位的输入输出口,分别对应欧式扩展口的 DI0-DI7 和 DO0-DO7, 用一个 2 字节的十六进制整数来表示。 21.4 实验设备 一套 OURS-ELVIS 实验箱、一台安装 LabVIEW 的 PC 机。 21.5 实验步骤 (1)硬件连接 按照实验十一的步骤,连接宿主 PC 机和一台 OURS-ELVIS 实验箱。 (2)设计前面板,如图 21-1 所示。 图 21-1 (3)编写程序框图 244 虚拟仪器实验指导教材 1)程序初始化 这部分完成对各控件的初始化工作,程序框图如下图 21-2 所示: 图 21-2 2)输入处理程序 监听来自 ComManager 程序的通知,ComManager 一旦接收到有效数据就通知此处对数 据进行处理,并且将这个数据回显在前面板上,对应(1)部分,程序未完成,需要用户自 己来设计完成。如图 21-3 所示: 图 21-3 245 虚拟仪器实验指导教材 3)LCD 界面切换 实现实验箱液晶屏切换到 IO 控制界面,对应程序如图 21-4 所示: 图 21-4 4)输出处理程序 这部分完成由 PC 端向实验箱发送数据的功能,这个功能对应(2)部分,程序未完成, 需要用户自己来设计完成。如图 21-5 所示: 图 21-5 5)用户界面控制程序块 这部分主要完成一些通用的人机交互功能,详细说明见实验十八的实验原理及说明,其 程序如图 21-6 所示: 图 21-6 246 虚拟仪器实验指导教材 (4)连机调试 按照实验十七的步骤,在 PC 端运行该 VI 程序,并与参考程序的运行结果作比较,看 是否功能完整。 参考程序运行结果: 在 PC 端运行参考程序“\21-虚拟 IO 控制\IO Control.vi”,连接成功后,面板状态应有 相应变化。如图 21-7 所示: 图 21-7 点击 LCD,实验箱液晶屏切换到 IO 控制界面,如图 21-8 所示。 图 21-8 点击前面板 OUTPUT 中的 LED 控件,如图 21-9 所示,实验箱液晶屏出现下图 21-10 所示界面,同时在实验箱上的 DO0-DO7 用万用表可以测量到相应的值。 247 虚拟仪器实验指导教材 图 21-9 图 21-10 248 虚拟仪器实验指导教材 实验二十二 交通灯和拨码开关 22.1 实验目的 本实验在 PC 端通过 LabVIEW 来实现控制实验箱上 I/O 口的输出(控制 LED 亮灭)以 及 I/O 信号输入(拨码开关),将输入的 I/O 信号显示在 PC 屏幕上。 22.2 实验内容 编写一个 VI 程序来模拟 IO 控制。 22.3 实验原理及说明 实验箱上有两个输入输出口,分别对应一个 8 口拨码开关和 12 个 LED。 22.4 实验设备 一套 OURS-ELVIS 实验箱、一台安装 LabVIEW 的 PC 机。 22.5 实验步骤 (1)硬件连接 按照实验十一的步骤,连接宿主 PC 机和一台 OURS-ELVIS 实验箱。 (2)设计前面板,如图 22-1 所示。 图 22-1 249 虚拟仪器实验指导教材 (3)编写程序框图 1)程序初始化 这部分完成对各控件的初始化工作,程序框图如下图 22-2 所示: 图 22-2 2)输入处理程序 监听来自 ComManager 程序的通知,ComManager 一旦接收到有效数据就通知此处对数 据进行处理,并且将这个数据回显在前面板上,对应(1)部分,程序未完成,需要用户自 己来设计完成。如图 22-3 所示: 图 22-3 250 虚拟仪器实验指导教材 3)LCD 界面切换 实现实验箱液晶屏切换到交通灯和拨码开关界面,对应程序如图 22-4 所示: 图 22-4 4)输出处理程序 这部分完成由 PC 端向实验箱发送数据来控制实验箱上 LED 亮灭,对应程序如图 22-5 所示: 图 22-5 5)用户界面控制程序块 这部分主要完成一些通用的人机交互功能,详细说明见实验十八的实验原理及说明,其 程序如图 22-6 所示: 图 22-6 251 虚拟仪器实验指导教材 (4)连机调试 按照实验十七的步骤,在 PC 端运行该 VI 程序,并与参考程序的运行结果作比较,看 是否功能完整。 参考程序运行结果: 在 PC 端运行参考程序“\ 22-交通灯和拨码开关\ Switch and Led.vi”,连接成功后,面板 状态应有相应变化。如图 22-7 所示: 图 22-7 点击 LCD,实验箱液晶屏切换到交通灯和拨码开关界面,如图 22-8 所示。 图 22-8 252 虚拟仪器实验指导教材 前面板上面三排模拟实验箱上 LED,用鼠标点击来控制其亮灭,并且在实验箱上也可 以看到发光二极管对应的状态变化。如图 22-9、图 22-10 所示。 图 22-9 图 22-10 前面板下面两排模拟了实验箱上的拨码开关,拨动实验箱上的拨码开关,可以看到 PC 屏幕和实验箱液晶屏上相应开关的状态变化。如图 22-11、图 22-12 所示: 253 虚拟仪器实验指导教材 图 22-11 图 22-12 254 虚拟仪器实验指导教材 实验二十三 虚拟传感器 23.1 实验目的 熟悉 LabVIEW 软件的编程方法,了解传感器的基本原理。 23.2 实验内容 编写一个 VI 程序来形象化地表现传感器的测量结果。 23.3 实验原理及说明 实验箱上提供了两个传感器的插槽,当某个传感器就位时,实验箱会自动识别出是什么 传感器,并把传感器的 ID 和测量值发到 PC 端,PC 端除了将传感器的测量值显示出来之外, 还需要形象地把传感器测量值的变化给表现出来,表现的形式多种多样,凭借 LabVIEW 强 大的图形编程能力,可采用绘图函数,调用 Flash 影片、gif 动画等不同的方法来实现。 23.4 实验设备 一套 OURS-ELVIS 实验箱、传感器模块、一台安装 LabVIEW 的 PC 机。 23.5 实验步骤 (1)硬件连接 按照实验十一的步骤,连接宿主 PC 机和一台 OURS-ELVIS 实验箱。 (2)设计前面板,如图 23-1 所示。 图 23-1 255 虚拟仪器实验指导教材 (3)编写程序框图 1)程序初始化 这部分完成对各控件的初始化工作,程序框图如下图 23-2 所示: 图 23-2 2)传感器离线判断循环 这两个循环的作用是判断传感器是否被拔出,判断的依据是从实验箱最后一次发送传感 器数据过来开始计时,如果在 2 秒钟内没有继续收到传感器数据包,则认为传感器已经被 拔出,从而更新界面显示,如果继续收到则计时归零。程序框图如下图 23-3 所示: 256 虚拟仪器实验指导教材 图 23-3 3)数据接收 这部分完成处理接收到的数据,并实时更新传感器状态,在传感器类型发生更换时触发 用户事件。如下图 23-4、图 23-5 所示: 图 23-4 257 虚拟仪器实验指导教材 图 23-5 4)用户事件响应程序 完成传感器类型发生更换时触发的用户事件响应程序,分别对应(1)(2)部分,程序 未完成,需要用户自己来设计完成。如图 23-6、图 23-7 所示: 这里主要完成以下几个功能: 1.更新传感器名称显示; 2.当传感器从有变无时的状态变化; 3.当传感器从无变有时的状态变化,这里要对加速度和其它传感器分别进行处理。 图 23-6 258 虚拟仪器实验指导教材 图 23-7 5)用户界面控制程序块 这部分主要完成一些通用的人机交互功能,详细说明见实验十八的实验原理及说明,其 程序如图 23-8 所示: 图 23-8 (4)连机调试 按照实验十七的步骤,在 PC 端运行该 VI 程序,并与参考程序的运行结果作比较,看 是否功能完整。 参考程序运行结果: 在 PC 端运行参考程序“\23-虚拟传感器\ Sensor.vi”,连接成功后,面板状态应有相应 变化。如图 23-9 所示: 259 虚拟仪器实验指导教材 图 23-9 在实验箱两个传感器插槽中插入传感器,比如温度传感器和电位传感器,在前面板可观 察到相应的变化,如图 23-10 所示。 图 23-10 260 虚拟仪器实验指导教材 实验二十四 虚拟示波器 24.1 实验目的 掌握 LabVIEW 软件的编程方法,了解示波器的基本原理,重点放在信号处理部分。 24.2 实验内容 本实验模拟现实中的示波器功能,用 LabVIEW 编写一个示波器程序。 24.3 实验原理及说明 实验箱上的 A/D 器件将采集到的电压信号转换为数字信号,通过网络发送到 PC 端, 在 LabVIEW 中再将接收到的数据在波形控件中显示出来就构成了一个简单的虚拟示波器。 示波器的实现算是所有虚拟仪器中比较复杂的一个,因为示波器处理的是大量的实时数 据,不仅要考虑到网络传输的瓶颈还要考虑到 PC 端数据处理的性能问题,处理得不好,示 波器的实时性就得不到充分体现。 24.4 实验设备 一套 OURS-ELVIS 实验箱、一台安装 LabVIEW 的 PC 机。 24.5 实验步骤 (1)硬件连接 按照实验十一的步骤,连接宿主 PC 机和一台 OURS-ELVIS 实验箱。 (2)设计前面板,如图 24-1 所示。 图 24-1 261 虚拟仪器实验指导教材 (3)编写程序框图 1)通知 wait 通知 wait,一方面作示波延时用,另一方面监听新的数据,如果有新的数据到来,便 将上次未绘制完的数据丢弃,用新的数据来绘制。 绘制示波器界面,程序框图如图 24-2 所示: 图 24-2 监听新的数据,对应(1)部分,程序未完成,需要用户自己来设计完成。程序框图如 图 24-3 所示: 图 24-3 2)监控运行程序块 响应用户操作,这部分由一个简单的事件结构构成,根据事件选择的不同处理不同的事 务。 示波器采样频率设置并发送到实验箱,程序框图如图 24-4、24-5 所示: 262 虚拟仪器实验指导教材 图 24-4 图 24-5 调整示波器的波形粗细,对应(2)、 (3)部分,程序未完成,需要用户自己来设计完成, 程序框图如图 24-6、图 24-7 所示: 图 24-6 263 虚拟仪器实验指导教材 图 24-7 完成 Y Scale 调整时的事件响应程序,对应(4)部分,程序未完成,需要用户自己来 设计完成。程序框图如图 24-8 所示: 图 24-8 3)同步采样频率 实现和其他 AD 应用程序的采样频率同步,程序框图如图 24-9 所示: 图 24-9 264 虚拟仪器实验指导教材 (4)连机调试 按照实验十七的步骤,在 PC 端运行 VI 程序,连接成功后,面板状态应有相应变化。 如图 24-10 所示: 图 24-10 在实验箱的示波器信号输入端口(CHA)输入信号,比如正弦波:5000Hz,在前面板 可观察到如下图 24-11 所示的界面。 图 24-11 265 虚拟仪器实验指导教材 第六章 虚拟仪器高级实验 实验二十五 虚拟动态信号分析仪 25.1 实验目的 从这部分开始,实验程序的规模比较大,所以对这部分实验的要求有所改变。首先是读 懂整个程序,理解与 ComManager 程序交互过程,描述各部分实现的功能,在理解程序的基 础上,完善程序的功能。 25.2 实验内容 本实验模拟现实中的动态信号分析仪功能,用 LabVIEW 编写一个动态信号分析仪程 序。 25.3 实验原理及说明 时域波形的原理和示波器基本是一致的,所不同的是这个实验还包括了数字信号处理的 内容,实现了时域和频域的对比显示。 25.4 实验设备 一套 OURS-ELVIS 实验箱、一台安装 LabVIEW 的 PC 机。 25.5 实验步骤 (1)硬件连接 按照实验十一的步骤,连接宿主 PC 机和一台 OURS-ELVIS 实验箱。 (2)设计前面板,如图 25-1 所示。 266 虚拟仪器实验指导教材 图 25-1 (3)编写程序框图 1)通知 wait 通知 wait,一方面作示波延时用,另一方面监听新的数据,如果有新的数据到来,便 将上次未绘制完的数据丢弃,用新的数据来绘制。程序框图如图 25-2、图 25-3 所示: 图 25-2 267 虚拟仪器实验指导教材 图 25-3 2)监控运行程序块 响应用户操作,这部分由一个简单的事件结构构成,根据事件选择的不同处理不同的事 务。 动态信号分析仪采样频率设置并发送到实验箱,程序框图如图 25-4、25-5 所示: 图 25-4 268 虚拟仪器实验指导教材 图 25-5 调整动态信号分析仪的 X Scale 坐标,程序框图如图 25-6 所示: 图 25-6 波形外观的控制。当触发开关打开时,波形会以给定的电平触发,最后在波形控件里看 到的就是一个平稳的波形。程序框图如图 25-7 所示: 269 虚拟仪器实验指导教材 图 25-7 3)同步采样频率 实现和其他 AD 应用程序的采样频率同步,程序框图如图 25-8 所示: 图 25-8 (4)连机调试 按照实验十七的步骤,在 PC 端运行 VI 程序,连接成功后,面板状态应有相应变化。 如图 25-9 所示: 270 虚拟仪器实验指导教材 图 25-9 在实验箱的示波器信号输入端口(CHA)输入信号,比如正弦波:5000Hz,在前面板 可观察到如下图 25-10 所示的界面。 图 25-10 271 虚拟仪器实验指导教材 实验二十六 232 串口通信 26.1 实验目的 了解和掌握 RS232 串口的通信原理。 26.2 实验内容 通过 LabVIEW 控制实验箱上 RS232 串口进行通信,包括接收和发送。 26.3 实验原理及说明 硬件连接方式如下图 26-1 所示,首先 PC 机上的 LabVIEW 通过网线给实验箱发送命 令用于设置 RS232 串口的波特率,之后双方互相发送数据命令包,实验箱 232 串口数据 可以通过和 PC 相连的串口线传输,在 PC 端的超级终端中实现数据的交互。 图 26-1 26.4 实验设备 一套 OURS-ELVIS 实验箱、一台安装 LabVIEW 的 PC 机。 26.5 实验步骤 (1)硬件连接 ① 将电源线分别连接 OURS-ELVIS 实验箱与电源插座。 272 虚拟仪器实验指导教材 ② 用一根交叉网线将宿主 PC 机的网口与 OURS-ELVIS 实验箱的网口(NET)相连。 ③ 用一根串口线将宿主 PC 机的串口与 OURS-ELVIS 实验箱的 RS232 口(实验箱左 上方第二个 RS232 口)相连。 (2)设计前面板,如图 26-2 所示。 图 26-2 (3)编写程序框图 1)程序初始化 这部分完成对各控件的初始化工作,程序框图如下图 26-3 所示: 273 虚拟仪器实验指导教材 图 26-3 2)监控运行程序 响应用户的操作。这部分由事件结构组成,根据用户操作的不同执行不同的事件。 设置并发送 RS232 通信的波特率,程序框图如下图 26-4 所示: 图 26-4 发送数据,程序框图如下图 26-5 所示: 274 虚拟仪器实验指导教材 图 26-5 3)数据接收和处理 这部分完成接收和处理数据,并回显在前面板上。下图 26-6 为数据接收和处理的程序 框图: 图 26-6 (4)连机调试 按照实验十七的步骤,在 PC 端运行 VI 程序,连接成功后,面板状态和实验箱 LCD 液 晶屏上应有相应变化。如图 26-7、图 26-8 所示: 图 26-7 275 虚拟仪器实验指导教材 图 26-8 在 PC 端新建并打开一个超级终端,方法如下: 选择【开始】【程序】【附件】【通讯】【超级终端】启动一个超级终端窗口, 如图26-9,请您按照图中设置的选项设置各对话框中的内容。 图 26-9 276 虚拟仪器实验指导教材 图 26-10 在下图26-11所示的对话框中选择如下配置: 每秒位数:115200 数据位:8 奇偶校验:无 停止位:1 数据流控制:无 图 26-11 然后点击 确定 按钮。 超级终端打开之后,在前面板上选择通信波特率:115200,可观察到如下图 26-12、 图 26-13 所示的界面,保证超级终端和实验箱的通信波特率一致。 277 虚拟仪器实验指导教材 图 26-12 图 26-13 在前面板上的输入对话框写入数据,点击Send按钮,可观察到如下图26-14、图26-15 所示的界面。 278 虚拟仪器实验指导教材 图 26-14 图 26-15 在超级终端中写入数据,可观察到如下图 26-16、图 26-17 所示的界面。 279 虚拟仪器实验指导教材 图 26-16 图 26-17 280 虚拟仪器实验指导教材 实验二十七 485 串口通信 27.1 实验目的 了解和掌握 RS485 串口的通信原理。 27.2 实验内容 通过 LabVIEW 控制实验箱上 RS485 串口进行通信,包括接收和发送。 27.3 实验原理及说明 为了更好的看到实验效果,本实验需要两台 OURS-ELVIS 实验箱和两台 PC 机的配合, 连接方式见下图 27-1 所示。两台 PC 机都运行相同的 VI 程序,两端互相发送和接收数据, 注意波特率的设置要一致。 图 27-1 27.4 实验设备 两套 OURS-ELVIS 实验箱、两台安装 LabVIEW 的 PC 机、四根导线。 27.5 实验步骤 (1)硬件连接 ① 将电源线分别连接 OURS-ELVIS 实验箱与电源插座。 281 虚拟仪器实验指导教材 ② 用一根交叉网线将宿主 PC 机的网口与 OURS-ELVIS 实验箱的网口(NET)相连。 ③ 用四根导线将两台 OURS-ELVIS 实验箱的 RS485 端口相连,一端的 A 口相连另 一台实验箱的 Y 口,一端的 B 口相连另一台实验箱的 Z 口。 (2)设计前面板,如图 27-2 所示。 图 27-2 (3)编写程序框图 1)程序初始化 这部分完成对各控件的初始化工作,程序框图如下图 27-3 所示: 282 虚拟仪器实验指导教材 图 27-3 2)监控运行程序 响应用户的操作。这部分由事件结构组成,根据用户操作的不同执行不同的事件。 设置并发送 RS485 通信的波特率,程序框图如下图 27-4 所示: 图 27-4 发送数据,程序框图如下图 27-5 所示: 283 虚拟仪器实验指导教材 图 27-5 3)数据接收和处理 这部分完成接收和处理数据,并回显 485 串口输入的数据。下图 27-6 为数据接收和 处理的程序框图: 图 27-6 (4)连机调试 按照实验十七的步骤,在 PC 端运行 VI 程序,连接成功后,面板状态和实验箱 LCD 液 晶屏上应有相应变化,如图 27-7、图 27-8 所示: 图 27-7 284 虚拟仪器实验指导教材 图 27-8 选择通信波特率,保证两台实验箱的通信波特率一致,在前面板上的输入对话框写入数 据,点击 Send 按钮,可观察到如下图 27-9、图 27-10 所示的界面。 图 27-9 285 虚拟仪器实验指导教材 图 27-10 286 虚拟仪器实验指导教材 实验二十八 CAN 通信 28.1 实验目的 了解和掌握 CAN 总线的通信原理。 28.2 实验内容 通过 LabVIEW 控制实验箱上 CAN 总线进行通信,包括接收和发送。 28.3 实验原理及说明 和 RS485 实验的做法一样,需要两台 PC 机和两台虚拟仪器实验箱的配合,具体连接 如下图 28-1 所示: 图 28-1 28.4 实验设备 两套 OURS-ELVIS 实验箱、两台安装 LabVIEW 的 PC 机、两根导线。 28.5 实验步骤 (1)硬件连接 ① 将电源线分别连接 OURS-ELVIS 实验箱与电源插座。 ② 用一根交叉网线将宿主 PC 机的网口与 OURS-ELVIS 实验箱的网口(NET)相连。 287 虚拟仪器实验指导教材 ③ 用两根导线将两台 OURS-ELVIS 实验箱的 CAN 总线端口相连(位于实验箱的左下 方靠右被标识 H、L 的绿色 CAN 端口),且两端导线分别是左口对左口,右口对右口。 (2)设计前面板,如图 28-2 所示。 图 28-2 (3)编写程序框图 1)程序初始化 这部分完成对各控件的初始化工作,程序框图如下图 28-3 所示: 288 虚拟仪器实验指导教材 图 28-3 2)监控运行程序 响应用户的操作。这部分由事件结构组成,根据用户操作的不同执行不同的事件。 设置并发送 CAN 总线通信的波特率,程序框图如下图 28-4 所示: 图 28-4 发送数据,程序框图如下图 28-5 所示: 289 虚拟仪器实验指导教材 图 28-5 3)数据接收和处理 这部分完成接收和处理数据,并回显 CAN 输入的数据。下图 28-6 为数据接收和处理 的程序框图: 图 28-6 (4)连机调试 按照实验十七的步骤,在 PC 端运行 VI 程序,连接成功后,面板状态和实验箱 LCD 液 晶屏上应有相应变化,如图 28-7、图 28-8 所示: 图 28-7 290 虚拟仪器实验指导教材 图 28-8 选择通信波特率,保证两台实验箱的通信波特率一致,在前面板上的输入对话框写入数 据,点击 Send 按钮,可观察到如下图 28-9、图 28-10 所示的界面。 图 28-9 291 虚拟仪器实验指导教材 图 28-10 292 虚拟仪器实验指导教材 实验二十九 Audio 实验 29.1 实验目的 了解音频文件回放和录音的过程,掌握二进制文件的读写。 29.2 实验内容 通过 LabVIEW 给实验箱发送音频文件数据,并且在实验箱端进行回放。 通过 LabVIEW 给实验箱发送录音开始和结束命令,将实验箱传送过来的音频文件存储 并播放。 29.3 实验原理及说明 本实验分为两部分,第一部分是音频回放。回放在实验箱端,回放的音频数据来自 PC 机 端,LabVIEW 需要将音频文件(wav 格式) 以二进制的格式读取并通过网络发到实验箱,实 验箱再经过一定的处理将音频进行回放;第二部分是录音程序。LabVIEW 依次发送开始录 音和结束录音命令,实验箱将录制的音频数据传给 LabVIEW,LabVIEW 首先将音频存储成 Wav 文件,再利用 LabVIEW 自带的音频节点函数来播放音频文件。这个实验主要涉及了二 进制文件的读写这个知识点。 29.4 实验设备 一套 OURS-ELVIS 实验箱、一台安装 LabVIEW 的 PC 机。 29.5 实验步骤 (1)硬件连接 按照实验十一的步骤,连接宿主 PC 机和一台 OURS-ELVIS 实验箱。 (2)设计前面板,如图 29-1 所示。 图 29-1 293 虚拟仪器实验指导教材 (3)编写程序框图 1)程序初始化 这部分完成对各控件的初始化工作,程序框图如下图 29-2 所示: 图 29-2 2)监控运行程序 响应用户的操作。这部分由事件结构组成,根据用户操作的不同执行不同的事件。 完成打开音频文件按钮功能,程序框图如下图 29-3 所示: 294 虚拟仪器实验指导教材 图 29-3 完成传输音频文件功能,程序框图如下图 29-4 所示: 图 29-4 开始录音,程序框图如下图 29-5 所示: 295 虚拟仪器实验指导教材 图 29-5 录音完毕并发送到 PC 端,程序框图如下图 29-6 所示: 图 29-6 播放录音音频,程序框图如下图 29-7 所示: 296 虚拟仪器实验指导教材 图 29-7 在实验箱上远程播放音频,程序框图如下图 29-8 所示: 图 29-8 在实验箱上远程停止音频播放,程序框图如下图 29-9 所示: 图 29-9 3)数据接收 数据接收,程序框图如下图 29-10: 297 虚拟仪器实验指导教材 图 29-10 (4)连机调试 按照实验十七的步骤,在 PC 端运行 VI 程序,连接成功后,面板状态应有相应变化。 如图 29-11 所示: 图 29-11 点击前面板上的 Open 按钮,弹出如下图 29-12 所示的界面,选择音频文件的路径, 然后点击确定,出现如图 29-13 所示界面。 图 29-12 298 虚拟仪器实验指导教材 图 29-13 点击前面板上的 Transfer 按钮,完成传输音频文件,实验箱 LCD 液晶屏出现如图 29-14、 图 29-15 所示的界面。同时,在实验箱上的音频接口插入耳机,当音频文件接收完成后,可 以听到所选音频文件的播放,还可以点击 RemotePlay 按钮和 RemoteStop 按钮进行音频的 播放和停止。 图 29-14 图 29-15 299 虚拟仪器实验指导教材 在实验箱上的音频接口插入耳机,点击前面板上的 Record 按钮,开始录音,录音完毕 后,音频文件自动传输到 PC 端,如图 29-16 所示。再次将耳机插入 PC 端的音频接口,点 击 Play 按钮,可以听到所录音频文件的播放。 图 29-16 300 虚拟仪器实验指导教材 实验三十 虚拟逻辑分析仪 30.1 实验目的 熟悉 LabVIEW 软件的编程方法,了解和掌握逻辑分析仪的基本原理。 30.2 实验内容 本实验模拟现实中的逻辑分析仪功能,用 LabVIEW 编写一个逻辑分析仪程序。 30.3 实验原理及说明 逻辑分析仪是利用时钟从测试设备上采集和显示数字信号的仪器,最主要作用在于时序 判定。 本实验实现虚拟逻辑分析仪,首先 PC 发出逻辑分析仪信号记录开始信息,实验箱开始 以一定的采样率对 8 个通道进行采样,等每个通道采样到 100 个点后便上传到 PC 端,PC 端通过 LV 编写实现数据解码,并将逻辑时序绘制出来。虚拟逻辑分析仪的采样时钟可以采 用内部时钟,也可以采用外部时钟,当采用外部时钟时,要求第一通道(DI0)连接外部时 钟信号,所有输入信号同步在此时钟上。 30.4 实验设备 一套 OURS-ELVIS 实验箱、一台安装 LabVIEW 的 PC 机。 30.5 实验步骤 (1)硬件连接 按照实验十一的步骤,连接宿主 PC 机和一台 OURS-ELVIS 实验箱。 (2)设计前面板,如图 30-1 所示。 图 30-1 301 虚拟仪器实验指导教材 (3)编写程序框图 1)监控运行程序 响应用户的操作。这部分由事件结构组成,根据用户操作的不同执行不同的事件。 将接收到的数据转换为数字波形类型然后根据波形选择数组取出相应的波形显示,程序 框图如图 30-2 所示: 图 30-2 选择内部或外部时钟,程序框图如图 30-3 所示: 图 30-3 发送采样命令到设备端,程序框图如图 30-4 所示: 图 30-4 302 虚拟仪器实验指导教材 显示选择的波形,并修改波形的名称,程序框图如图 30-5 所示: 图 30-5 2)数据接收 数据接收,程序框图如图 30-6 所示: 图 30-6 (4)连机调试 按照实验十七的步骤,在 PC 端运行 VI 程序,连接成功后,面板状态应有相应变化。 如图 30-7 所示: 图 30-7 选择内部时钟,点击前面板 Sample 按钮进行采样,在前面板可观察到如下图 30-8 所 示的界面。 303 虚拟仪器实验指导教材 图 30-8 同样,选择外部时钟时,在实验箱的 DI0-DI7 口输入测试信号,可将输入信号的逻辑时 序绘制出来。 (要求第一通道(DI0)连接外部时钟信号,所有输入信号同步在此时钟上。) 304 虚拟仪器实验指导教材 实验三十一 虚拟频率计 31.1 实验目的 熟悉 LabVIEW 软件的编程方法,了解和掌握频率计的基本原理。 31.2 实验内容 用 LabVIEW 编写一个 VI 程序来模拟频率计。 31.3 实验原理及说明 实验箱上的频率计模块能测量 1Hz-1MHz 的外部信号,实验箱将测量到的频率发送到 PC 端,再通过 LV 编程实现频率的回显。 31.4 实验设备 一套 OURS-ELVIS 实验箱、一台安装 LabVIEW 的 PC 机。 31.5 实验步骤 (1)硬件连接 按照实验十一的步骤,连接宿主 PC 机和一台 OURS-ELVIS 实验箱。 (2)设计前面板,如图 31-1 所示。 图 31-1 (3)编写程序框图 1)程序初始化 这部分完成对各控件的初始化工作,程序框图如下图 31-2 所示: 305 虚拟仪器实验指导教材 图 31-2 2)输入处理程序 监听来自 ComManager 程序的通知,ComManager 一旦接收到有效数据就通知此处对数 据进行处理,并且将这个数据回显在前面板上,程序框图如图 31-3 所示: 图 31-3 3)LCD 界面切换 实现实验箱液晶屏切换到频率计界面,对应程序如图 31-4 所示: 306 虚拟仪器实验指导教材 图 31-4 (4)连机调试 按照实验十七的步骤,在 PC 端运行 VI 程序,连接成功后,面板状态应有相应变化。 如图 31-5 所示: 图 31-5 点击 LCD,实验箱液晶屏切换到频率计界面,如图 31-6 所示。 图 31-6 在实验箱的频率计输入端口(FRQ)输入信号,比如 1KHz,方波,在前面板和实验箱 液晶屏上可观察到如下图 31-7、图 31-8 所示的界面。 307 虚拟仪器实验指导教材 图 31-7 图 31-8 308 虚拟仪器实验指导教材 实验三十二 虚拟计数器 32.1 实验目的 熟悉 LabVIEW 软件的编程方法,了解和掌握计数器的基本原理。 32.2 实验内容 用 LabVIEW 编写一个 VI 程序来模拟计数器。 32.3 实验原理及说明 虚拟计数器和频率计原理类似,也只是一个回显的过程,只是在 PC 端可以给实验箱上 的计数器模块设置初值,并且可以随时停止计数。 32.4 实验设备 一套 OURS-ELVIS 实验箱、一台安装 LabVIEW 的 PC 机。 32.5 实验步骤 (1)硬件连接 按照实验十一的步骤,连接宿主 PC 机和一台 OURS-ELVIS 实验箱。 (2)设计前面板,如图 32-1 所示。 图 32-1 (3)编写程序框图 309 虚拟仪器实验指导教材 1)程序初始化 这部分完成对各控件的初始化工作,程序框图如下图 32-2 所示: 图 32-2 2)监控运行程序 响应用户的操作。这部分由事件结构组成,根据用户操作的不同执行不同的事件。 LCD 切换,实现实验箱液晶屏切换到计数器界面,程序框图如下图 32-3 所示: 图 32-3 设置计数器初值,程序框图如下图 32-4 所示: 310 虚拟仪器实验指导教材 图 32-4 开始计数,程序框图如下图 32-5 所示: 图 32-5 停止计数,程序框图如下图 32-6 所示: 图 32-6 3)输入处理程序 监听来自 ComManager 程序的通知,ComManager 一旦接收到有效数据就通知此处对数 据进行处理,并且将这个数据回显在前面板上,程序框图如下图 32-7: 311 虚拟仪器实验指导教材 图 32-7 (4)连机调试 按照实验十七的步骤,在 PC 端运行 VI 程序,连接成功后,面板状态应有相应变化。 如图 32-8 所示: 图 32-8 点击 LCD Display,实验箱液晶屏切换到计数器界面,如图 32-9 所示。 图 32-9 在实验箱的计数器输入端口(CTR)输入信号,比如 1KHz,方波,点击 Start 按钮, 在前面板和实验箱液晶屏上可观察到如下图 32-10、图 32-11 所示的界面。 312 虚拟仪器实验指导教材 图 32-10 图 32-11 313 虚拟仪器实验指导教材 实验三十三 虚拟脉冲发生器 33.1 实验目的 熟悉 LabVIEW 软件的编程方法,了解和掌握脉冲发生器的基本原理。 33.2 实验内容 用 LabVIEW 编写一个 VI 程序来模拟脉冲发生器。 33.3 实验原理及说明 脉冲发生器产生 TTL 输出,上脉冲幅度为 5V,在 PC 端能控制脉冲的宽度和频率,频 率为 1-100K,脉宽可调精度为 1%。 33.4 实验设备 一套 OURS-ELVIS 实验箱、一台安装 LabVIEW 的 PC 机。 33.5 实验步骤 (1)硬件连接 按照实验十一的步骤,连接宿主 PC 机和一台 OURS-ELVIS 实验箱。 (2)设计前面板,如图 33-1 所示。 图 33-1 314 虚拟仪器实验指导教材 (3)编写程序框图 1)程序初始化 这部分完成对各控件的初始化工作,程序框图如下图 33-2 所示: 图 33-2 2)监控运行程序 响应用户的操作。这部分由事件结构组成,根据用户操作的不同执行不同的事件。 LCD 切换,实现实验箱液晶屏切换到脉冲发生器界面,程序框图如下图 33-3 所示: 图 33-3 315 虚拟仪器实验指导教材 将脉冲发生器的参数发送到设备端,程序框图如下图 33-4 所示: 图 33-4 脉冲宽度调节程序,采用了旋钮方式来调节脉宽值,程序框图如下图 33-5 所示: 图 33-5 频率调节程序,采用了软键盘方式来调节频率值,程序框图如下图 33-6 所示: 图 33-6 预设脉冲发生器的初始值,程序框图如下图 33-7 所示: 316 虚拟仪器实验指导教材 图 33-7 (4)连机调试 按照实验十七的步骤,在 PC 端运行 VI 程序,连接成功后,面板状态应有相应变化。 如图 33-8 所示: 图 33-8 点击 LCD,实验箱液晶屏切换到脉冲发生器界面,如图 33-9 所示。 317 虚拟仪器实验指导教材 图 33-9 通过软键盘或预设键值设置脉冲信号的频率,旋转旋钮调节信号的脉冲宽度,比如 5000Hz,脉宽:52%,然后点击 SetPulse 按钮,在前面板和实验箱液晶屏上可观察到如下 图 33-10、图 33-11 所示的界面。同时,用示波器可以在实验箱的 PULSE 输出端口观察 到相应的波形。 图 33-10 318 虚拟仪器实验指导教材 图 33-11 319 虚拟仪器实验指导教材 实验三十四 虚拟任意波形发生器 34.1 实验目的 熟悉 LabVIEW 软件的编程方法,了解和掌握任意波形发生器的基本原理。 34.2 实验内容 用 LabVIEW 编写一个 VI 程序来模拟任意波形发生器。 34.3 实验原理及说明 任意波形发生器利用了实验箱上的 DA 模块,此 DA 模块能以一定频率输出任意的波形, 频率范围在 1-100Khz,波形在 PC 端通过鼠标绘制产生,同时也可以选择预设好的四种基 本波形(正弦、三角、矩形、锯齿),一个周期绘制 100 个点。由于鼠标绘制快慢问题,所 以不可能每次都恰好绘制 100 个点,如果不够需要采用线性插值的方法产生 100 个点。 34.4 实验设备 一套 OURS-ELVIS 实验箱、一台安装 LabVIEW 的 PC 机。 34.5 实验步骤 (1)硬件连接 按照实验十一的步骤,连接宿主 PC 机和一台 OURS-ELVIS 实验箱。 (2)设计前面板,如图 34-1 所示。 图 23-1 320 虚拟仪器实验指导教材 (3)编写程序框图 1)程序初始化 这部分完成对各控件的初始化工作,程序框图如下图 34-2 所示: 图 34-2 2)监控运行程序 响应用户的操作。这部分由事件结构组成,根据用户操作的不同执行不同的事件。 改变波形绘制时样点的形状,程序框图如下图 34-3 所示: 321 虚拟仪器实验指导教材 图 34-3 软键盘频率输入处理程序,采用了软键盘方式来调节频率值,程序框图如下图 34-4 所 示: 图 34-4 在波形绘制区域鼠标按下时事件,记录开始绘制时鼠标的屏幕逻辑坐标,以及映射到波 形区域时的坐标值,程序框图如下图 34-5 所示: 322 虚拟仪器实验指导教材 图 34-5 记录鼠标移动时屏幕逻辑坐标映射后的坐标,以及和上一次鼠标的逻辑横坐标之差,程 序框图如下图 34-6 所示: 图 34-6 鼠标抬起后表示此次绘制完毕,根据记录下来的鼠标移动间隔进行线性插值,得到 100 个样点的波形,程序框图如下图 34-7 所示: 323 虚拟仪器实验指导教材 图 34-7 将插值后或者预设好的波形数据发送到实验箱,程序框图如下图 34-8 所示: 图 34-8 绘制预设好的波形,一共四种基本信号(正弦、三角、矩形、锯齿),程序框图如下图 34-9 所示: 324 虚拟仪器实验指导教材 图 34-9 (4)连机调试 按照实验十七的步骤,在 PC 端运行 VI 程序,连接成功后,面板状态应有相应变化。 如图 34-10 所示: 图 34-10 通过软键盘设置信号的频率,在右侧绘图面板上绘制信号波形或选择预设信号波形,如 图 34-11 所示,然后点击 Generate 按钮产生信号,就可以用示波器在实验箱的 DA 输出端 口观察到相应的波形。 325 虚拟仪器实验指导教材 图 34-11 326 虚拟仪器实验指导教材 附录 常用术语 SubVI 子 VI LLBs VI 库 Objects 对象 Panel 前面板 Block Diagram 框图程序 Control 控制 Indicator 指示 Control 和 Indicator 前面板对象或控件 Palette 模板 Functions Palette 功能模板 Controls Palette 控件模板 Tools Palette 工具模板 Terminal 端口 Wires 数据连线 Bad Wires 错误数据连线 Node 节点 Attribute Node Property Node 属性节点 Frame 框架 Channel 框架通道 Index 索引 Shift Register 移位寄存器 Chart 实时趋势图 Graph 事后记录图 Functions 功能 Structures 结构 Cluster 簇 Bundle 打包 Unbundle 解包 RefNum 枚举,标志号 Local Variable 本地变量 Global Variable 全局变量 Constant 常量 Disable Indexing 无索引 Enable Indexing 有索引 Read Local 本地读 rite Local 本地写 Read Global 全局读 Write Global 全局写 Legend 图例 Cursor 光标 Bounds 边界范围 Data Acqisition(DAQ) 数据采集 Label 标签 327 虚拟仪器实验指导教材 虚拟仪器使用说明 一、虚拟仪器界面介绍 说明: 虚拟可调电源:HTP1 (红色端口),正电压输出端口;HTP2(绿色端口) ,负电压输出 端口;HTP3,HTP4(黑色端口)接地端口。 虚拟信号发生器:DDS(j22),信号输出端口;当产生方波时,也可由 TTL(j46)端口 输出。 DDS 信号源调节旋钮:AMP 幅值调节旋钮;OFFSET 偏移调节旋钮。 虚拟示波器:CHA(j29)、CHB(j30),两路示波器测试信号输入端口;TRG(j31), 外部触发信号输入端口。 动态信号分析仪:CHA(j29),测试信号输入端口。 任意信号发生器:DA(j32),任意信号输出端口。 计数器:CTR(j49),测试信号输入端口。 频率计:FRQ(j48),测试信号输入端口。 脉冲发生器:PULSE (j45),脉冲信号输出端口。 DDM 数字万用表:CON1 电流输入接口,CON2 电流输入接口,CON3 接地,CON4 电压输入接口。 下面端口仅供扩展及测试使用,不是虚拟仪器的主要功能,在实验指导书中将不做详 细介绍。 标准信号源:1KHz(j47),1KHz 标准方波信号输出端口。 AD 输入端口:HTP 5、HTP6(差分 AD),输入范围 0~10v。 328 虚拟仪器实验指导教材 DA 输出端口:HTP7(DA1 的输出)、HTP8(DA2 的输出),输出范围:0~3.3v,输出 电流 20m A。 可调信号源旋钮(Vadj_1,Vadj_2):分别对应于 VI 扩展口的 A1、A2,在试验箱复位 键上方有两个 LED 指示;A1,0~-5v 负可调电源输出端;A2,0~5V 正可调电源输出端。 二、VI 扩展口说明 NET 说明 VAin+ 16 bits AD 信号正向输入端 VAin- 16 bits AD 信号负向输入端 VAout1 16 bits DA(DAC8532)A 通道输出端 VAout2 16 bits DA(DAC8532)B 通道输出端 DO0-DO7 扩展 IO 输出,高电平:2.4v~3.3v,低电平:0~0.4v DI0-DI7 扩展 IO 输入,输出最大驱动电流 15m A 高电平:2v~3.3v,低电平:0~0.8v R1K.1-R1K.2 1K 标准电阻两端 VREF+5V 5V 电压(用于内部电路测试) Vo+ 0~12V 可调正电源输出端(12V 时用于电机扩展模块的供电) Vo- 0~-12V 可调负电源输出端(需要时也可作为扩展板电源供电) +5V 正 5V 电压 -5V 负 5V 电压 A2 0~5V 正可调电源输出端(可用于外电路供电) A1 0~-5v 负可调电源输出端(可用于外电路供电) SW0-SW7 拨码开关的电压输出(拨码开关拨上拨下分别输出高低电平) L11-L0 LED 引脚电压输出(LED 亮输出高电平,LED 灭输出低电平) 三、主要参数如下表 1~1 所示: 表 1~1 序号 组成 性能指标 329 虚拟仪器实验指导教材 1 2 虚拟可调电源 (5) (6) (7) (8) 通道数:2 通道 信号幅度:0 ~ +12V,0 ~ -12V 输出电流:500mA/ch (最大) 提供内部限流保护 虚拟信号发生器 DDS (6) 通道数:2 通道 (7) 输出波形:正弦波,三角波,方波,TTL (8) 信号带宽:1Hz ~ 1MHz (9) 信号幅度:-10V ~ +10V (10) 信号可调:幅度可调,直流偏置可调 虚拟万用表 (DMM) (3) 通道数:4 通道 (4) 测量信号类型:电压,电流,电阻,电容,二极管 测量基本功能、量程和精度: 12. 直流电压:400.0mV, 4.000V, 40.00V 13. 交流电压:4.000V, 40.00V 14. 直流电流:400.0uA,4000uA, 40mA,400mA, 4A 15. 交流电流:400.0uA,4000uA, 40mA,400mA, 4A 16. 电阻:400.0Ω, 4.000KΩ, 40.00 KΩ, 400.0 KΩ, 4.000MΩ 17. 电容:40nF,400nF,4μF,40μF 18. 频率:10Hz~10MHz 19. 占空比:1% ~ 99% 20. 二极管测试:支持 21. 通断蜂鸣:支持 22. 自动量程:支持 虚拟示波器 (TRG/CHA/CHB) (6) 通道数:2 通道 (7) 外部触发:1 通道 (8) 数据采样速率:100 MS/s (采样率动态可变) (9) 信号输入范围:-10V ~ +10V (10) 耦合方式:直流/交流电压信号 虚拟脉冲发生器 (PULSE) (6) 通道数:1 通道 (7) 输出脉冲:正脉冲,脉宽可调 (8) 信号带宽:1Hz ~ 990KHz (9) 信号幅度:0 或 5V (10) 脉宽可调精度:1% 6 虚拟标准信号源 (4) 通道数:2 通道 (5) 5V 直流标准源:DC 5V 0.1% (6) 1KHz 信号源幅度: TTL 输出 7 虚拟数字频率计 (FRQ) 8 虚拟计数器 (CTR) 9 虚拟逻辑分析仪 3 4 5 (3) 通道数:1 通道 (4) (5) (6) (7) (8) 信号带宽:1Hz ~ 15MHz 通道数:1 通道 计数类型:数字脉冲 计数位数:31bits 计数深度 支持同步预置数 (3) 通道数:8 通道 (4) 输入信号的频率:100K 330 虚拟仪器实验指导教材 10 虚拟任意波形 发生器 (DA) (5) (6) (7) (8) 通道数:1 通道 信号频率:0 ~ 100K 信号幅度:0 ~ 5V 每周期点数:100 点 11 虚拟 IO 控制 电机控制(扩展) (3) 直流电机控制:分为低速、中速、高速三档控制, 转速有反馈。 (4) 步进电机控制:正向步进、反向步进,按照指定要 求步进。 12 交通灯和拨码开关 (3) 输出 IO:12 路 LED 指示(4 路口红绿灯控制) (4) 输入 IO:8 路拨码开关 智能虚拟传感器 (4) 支持多种模拟传感器扩展 (5) 支持数字传感器扩展,支持 UART 接口 (6) 为外部传感器提供电源 i. 智能电位器模块 供电电压: DC 3.3V 信号输出范围: 0 ~ 3.3V AD 采样精度: 10 bits ii. 智能温度传感器模块 供电电压: DC 5.0V 信号输出范围: +2℃ ~ +150℃ AD 采样精度: 10 bits iii. 智能光电传感器模块 供电电压: DC 5.0V 信号输出范围: 0 ~ 3000 lx AD 采样精度: 10 bits iv. 智能压力传感器模块 供电电压: DC 5.0V 信号输出范围: 0 ~ 1500 g AD 采样精度: 10 bits v. 智能霍尔传感器模块 供电电压: DC 5.0V 信号输出范围: -800 ~ 800 Gauss AD 采样精度: 10 bits vi. 智能磁阻传感器模块 供电电压: DC 5.0V 信号输出范围: -6 ~ 6 Gauss AD 采样精度: 10 bits vii. 智能湿度传感器模块 供电电压: DC 5.0V 信号输出范围: 0 ~ 100 %RH AD 采样精度: 10 bits viii. 智能加速度传感器模块 供电电压: DC 5.0V 信号输出范围: -2G ~ +2G 13 331 虚拟仪器实验指导教材 AD 采样精度: 14 人机界面 15 面包板扩展 16 其它功能 8 bits LCD:TFT 4.3 寸真彩液晶屏 触摸屏:四线电阻式 台湾进口面包板 (11) 2 通道 16bits DA 输出,高精度信号源 (12) 1 通道 16bits AD 输入,高精度数据采集 (13) 100M 网络 × 1 (14) USB HOST × 1 (15) USB Device × 1 (16) CAN 总线 × 1,电源隔离,信号光电隔离 (17) 音频输入输出 (18) 8 路数字输入,8 路数字输出 (19) RS485 × 1 (20) RS232 × 1 332 虚拟仪器实验指导教材 常见问题 1. 驱动安装过程失败 可以在设备管理器里找到安装出问题的驱动,先卸载后再重新安装,记得在安装过程中 务必要给实验箱上电。 2. 在设备通电情况下连接不上 这种情况下一般先关掉设备电源再重开就可以解决。 333