基于labview的数据采集论文

上传人:无*** 文档编号:152519414 上传时间:2022-09-15 格式:DOC 页数:31 大小:548.50KB
返回 下载 相关 举报
基于labview的数据采集论文_第1页
第1页 / 共31页
基于labview的数据采集论文_第2页
第2页 / 共31页
基于labview的数据采集论文_第3页
第3页 / 共31页
点击查看更多>>
资源描述
基于labview的数据采集 上海交通大学学士学位论文上 海 交 通 大 学自 学 考 试基于labview的数据采集 姓 名:杨 旭 峰指导教师:何黎明专 业:工业自动化基于labview的数据采集摘 要 现代技术的进步,特别是以计算机技术为代表的不断革新的信息技术,正从各个层面上影响并引导着各行各业的技术革新,基于计算机技术的虚拟仪器系统技术也正以不可逆转的力量推动着测量技术,数据采集和分析等技术的发展。本文以双通道虚拟示波器为例,介绍了基于labview8.20这一款优秀的虚拟仪器软件开发平台 和NI DAQ mx, NI USB-6009数据采集卡的数据采集设计过程。它由数据采集DAQ,波形显示,文件保存读取,回显分析等模块构成。实验证明,传统示波器数据采集的功能在labview软件平台上得到了很好的体现。如果对软件模块进行修改扩充,就可方便拓宽传统示波器采集的功能,从而提高了传统示波器的使用灵活性。借助这新一类电子仪器,在未来的工程设计应用领域,工作效率将被大大提高。关键词: Labview,虚拟示波器,数据采集卡,DAQmx目录第一章 绪论41.1 数据采集的意义和任务41.2 虚拟仪器在数据采集中的应用价值41.3 基于labview设计虚拟示波器实现数据采集的原理概述5第二章 虚拟仪器62.1 labview及其作用62.2虚拟仪器技术的概念及特点7第三章 数据采集93.1数据采集卡93.2数据采集卡的驱动软件 NI-DAQ mx10第四章 设计原理134.1 示波器原理简介134.2 虚拟示波器的设计144.2.1数据采集功能实现144.2.2采集波形显示功能164.2.3 时间轴和幅值轴调节功能184.2.4文件的创建,读取和写入功能204.2.5 波形图回显234.2.6 程序的优化25第五章 程序的调试265.1 调试结果265.2 调试问题28第六章 结论29谢辞30附录一图纸31第一章 绪论1.1 数据采集的意义和任务数据采集是计算机与外部物理世界连接的桥梁。数据采集就是将被测对象(外部世界,现场)的各种参量(可以是物理量,也可以是化学量,生物量等)通过各种传感器和变送器做适当的转换后,以及信号调理、采样保持等步骤后,转化成数字信号给处理器进行数据处理,存储记录和显示打印的过程。它是计算机在监测,控制,和管理一个系统的过程中,取得原始数据的重要手段。随着计算机技术的发展和普及以及网络技术的发展,总线吞吐能力的提高,CPU处理能力的增强,数据采集系统的技术水平大大提高。在生产过程中,应用数据采集系统,可以对生产现场的工艺变量进行采集,监控和记录,为提高产品质量,降低成本提供信息和手段。在科学研究领域中,应用数据采集系统可获得大量的动态信息,是研究瞬间物理过程的有力工具。数据采集的任务,就是采集传感器输出的模拟信号并转换成为计算机能识别的数字信号,然后送入计算机,进行相应的计算和处理,得到所需要的结果。一句话,数据采集系统的任务就是获取反映被测对象状态的特征的信息。1.2 虚拟仪器在数据采集中的应用价值 数据采集仪器发展至今,经历了模拟仪器,数字化仪器以及单台仪器,层叠式仪器系统阶段,从20世纪80年代进入了虚拟仪器系统阶段。虚拟仪器是现代通讯技术与计算机技术结合的产物,是当今计算机辅助测试领域的一项重要的技术。虚拟仪器是以计算机为基础,配以相应测试功能的硬件作为信号输入/输出的接口,完成信号的采集,测量与调理,从而完成各种测试功能的一种计算机化仪器系统。虚拟仪器通过软件将计算机硬件资源和仪器硬件资源有机的融合一体,从而把计算机强大的计算机处理能力和仪器的硬件测试,控制能力结合在一起,大大缩小了仪器硬件成本和体积,并通过软件实现对数据的显示,存储以及分析处理。软件此时就成为了虚拟仪器的关键。 “软件就是仪器”,这就是对虚拟仪器最好的定义。Labview是一个功能强大的仿真工具,常用于外部数据源获取数据,并拥有众多能实现相关功能的专用VI。随后再为计算机连接上数据采集卡,一台计算机就基本集中了传统仪器的所有模块。下图很好的描述了虚拟仪器数据采集过程。 图1-1 虚拟仪器数据采集过程框图1.3 基于labview设计虚拟示波器实现数据采集的原理概述为了展现labview处理数据采集任务的功能,labview项目中设计了虚拟示波器配合数据采集卡实现了一般示波器的功能。囊括了两路模拟信号的采集,显示以及回显功能。采集和显示功能主要包括有选择性地显示采集来的两路模拟信号,并即时将采集来的数据写入指定的文件。在采样的过程中,实现采样率可以调节。采样到的波形显示时,可以对时间轴,幅值轴的刻度进行调节。回显功能包括了对指定文件的读取。参照示波器的功能,实现了两种图形:波形图和XY图对采集到的波形做分析。并在波形图中提供了多种分屏方式的选择,便于应对各类不同需求的分析。以下的框图非常清晰地描述了虚拟示波器实现的功能。 图1-2 虚拟示波器实现框图第二章 虚拟仪器2.1 labview及其作用1983年,NI的工程师们受到了电子制表软件为金融领域带来巨大便利的启发,也决定着手发明一种同样高效的工具,帮助工程师和科学家们简化测试测量自动化项目的开发过程。于是就有了labview软件的诞生。Labview是Laboratory Virtual Instrument Engineering Workbench的缩写,他是一个使用图形和符号来编写程序的编程环境。在这一点上,它不同于传统的编程语言(C,C+,Java),这些语言使用文本方式编程。然而,labview不仅仅是一种编程语言,它还为工程师设计了一种编程的开发系统和运行系统,编程只是这些工作的一部分。Labview开发环境可以工作在运行Windows,Mac或Linux系统的计算机上。通过使用Labview功能强大的图形编程语言能够成倍的提高生产效率,人们亲切地称这种语言为G语言。使用传统的编程语言需要花费几周甚至几个月才能编写的程序,用labview只需几个小时就可以完成。因为labview 是专门为测量,和数据分析并提交结果而设计的,且Labview 拥有如此功能众多的图形用户界面又易于编程,使得它对仿真,结果显示,通用编程甚至讲授基本编程的概念同样也是很理想的语言。与标准的实验室仪器相比,Labview提供了更大的灵活性,因为它是基于软件的。虽然它不是仪器的生产者,却可以定义仪器的功能。使用计算机,插入式硬件和labview共同组成一个完全可以配置的虚拟仪器以完成用户的任务。使用labview,我们可以根据需要创建所需的任何类型的虚拟仪器,而其成本仅仅是传统仪器的一小部分。当需求变化后,我们可以在瞬时修改虚拟仪器。Labview拥有庞大的函数和子程序库,这些库可以帮助完成编程中的大部分任务,使用户免于被传统编程语言的指针,内存分配,以及其他莫名其妙的编程问题所困扰。Labview包含特定的应用程序库代码,如:数据采集(DAQ),通用功能接口总线(GPIB),串行口仪器控制,数据分析,数据显示,数据存储,Internet通信。分析库包含了大量使用的函数,包括信号的产生,信号处理,滤波器,窗口,统计,回归,线性代数,矩阵运算。Labview图形化的本质使得它理所当然地可以作为一个数据显示软件包,可以以任何用户想要的方式显示输出结果。 虚拟仪器是分层和模块化的程序,可以将其作为上层程序或子程序。使用这种体系的结构,labview进一步提升了模块化编程的概念。2.2虚拟仪器技术的概念及特点虚拟仪器技术就是利用高性能的模块化硬件,结合高效灵活的软件来完成各种测试、测量和自动化的应用。灵活高效的软件能帮助您创建完全自定义的用户界面,模块化的硬件能方便地提供全方位的系统集成,标准的软硬件平台能满足对同步和定时应用的需求。这也正是NI近30年来始终引领测试测量行业发展趋势的原因所在。只有同时拥有高效的软件、模块化I/O硬件和用于集成的软硬件平台这三大组成部分,才能充分发挥虚拟仪器技术性能高、扩展性强、开发时间少,以及出色的集成这四大优势。只有同时拥有高效的软件、模块化I/O硬件和用于集成的软硬件平台这三大组成部分,才能充分发挥虚拟仪器技术性能高、扩展性强、开发时间少,以及出色的集成这四大优势。虚拟仪器和传统仪器一样,由数据采集与控制,数据分析与处理结果显示三部分组成。对于传统仪器,三个部分都由硬件完成。而对于虚拟仪器,后两部分内容,主要由软件来完成。相对而言,虚拟仪器设计的工作量和复杂性都较小。可以用下表总结虚拟仪器与传统仪器的区别。 表1-1 虚拟仪器和传统仪器的对比 数据采集简称DAQ,是实现测量现代世界信号,并把这些信息发送到计算机用于处理分析,储存和其他数据操作的简单过程。 而Labview 能够控制DAQ设备。快速导入磁盘的同时就能实时地进行复杂的分析。此外,当前正蓬勃发展的一些新兴技术(如多核、PCI Express等)也成为推动虚拟仪器技术发展的新动力,使其展现出更强大的优势。下面对虚拟仪器的优点做一个概括: 扩展性强:NI的软硬件工具使得工程师和科学家们不再圈囿于固有的、封闭的技术之中。得益于NI软件的灵活性,只需更新您的计算机或测量硬件,就能以最少的硬件投资和极少、甚至无需软件上的升级即可改进您的整个现有系统。在利用最新科技的时候,您可以把它们集成到现有的测量设备,最终以较少的成本加速产品上市的时间。 性能强:虚拟仪器技术是在PC技术的基础上发展起来的,所以完全继承了以现成即用的PC技术为主导的最新商业技术的优点,包括功能超卓的处理器和文件I/O,使您在数据高速导入磁盘的同时就能实时地进行复杂的分析。此外,不断发展的因特网和越来越快的计算机网络使得虚拟仪器技术展现其更强大的优势。 开发时间少:在驱动和应用两个层面上,NI高效的软件构架能与计算机、仪器仪表和通讯方面的最新技术结合在一起。NI设计这一软件构架的初衷就是为了方便用户的操作,同时还提供了灵活性和强大的功能,使我们轻松地配置、创建、发布、维护和修改高性能、低成本的测量和控制解决方案。 出色的集成:虚拟仪器技术从本质上说是一个集成的软硬件概念。随着产品在功能上不断地趋于复杂,工程师们通常需要集成多个测量设备来满足完整的测试需求,而连接和集成这些不同设备总是要耗费大量的时间。NI的虚拟仪器软件平台为所有的I/O设备提供了标准的接口,帮助我们轻松地将多个测量设备集成到单个系统,减少了任务的复杂性。第三章 数据采集3.1数据采集卡要实现成功的数据采集,必须有一块强大的数据采集卡。一个典型的数据采集卡的功能有模拟输入,模拟输出,数字I/O, 计数器/定时器操作等,这些功能分别由相应的电路模块来实现。模拟输入是数据采集卡最基本,最常用的功能,通过采集卡内的A/D转换电路,一个模拟信号就能转化为数字信号。A/D转换器的性能直接影响着模拟输入的质量。模拟输出通常能为采样系统提供激励,输出信号受数模转换器建立的时间,转换率,分辨率等因素的影响。数字I/O处理的是二值信号,如开/关,通/断,有/无等信号,通常用于获取,设置数据采集系统外设的状态,还可以利用数字I/O与外设进行通信。在数据采集等诸多应用领域中,经常用到定时功能,以实现数据采集。 这次采用的硬件是NI公司,型号为USB-6009,用于14位分辨率、48 kS/s(采样率)多功能数据采集卡,具有的特点是: 扩展性强 8路模拟输入通道、14位分辨率、 12条数字I/O线、 2路模拟输出通道、1个计数器 更高性能的NI USB-6210和NI USB-6211 方便而易于携带的总线供电型设计 获取用于OEM的仅含板卡的套件 可用于Windows、Mac OS X、Linux和Pocket PC的驱动软件 NI-DAQmx驱动软件和NI LabVIEW SignalExpress交互式数据记录软件 图3-1 USB-6009数据采集卡 NI-USB6009具有基本的数据采集功能,适合简单的数据记录,便携式测量。数据采集卡内部只有一个A/D转换器,所以要用多路开关对采集的多路数据进行选择,确保一个时刻只有一路模拟信号送入ADC。A/D转换器是数据采集卡硬件的核心。由于NI USB-6009数据采集卡在固定的或具有很大采样率的A/D下进行工作,数据暂存器AI FIFO按先进先出的队列结构对数据进行存储,以确保数据不丢失。3.2数据采集卡的驱动软件 NI-DAQ mx 所有的计算机通信的设备都需要使用驱动程序。NI公司的所有DAQ设备都带有驱动程序,封装起来就叫做NI-DAQ mx。 图3-2 用户与DAQ设备的概念关系图NI-DAQmx驱动软件不仅仅局限于基本的DAQ驱动,效率更快,性能更优。这是NI公司继续成为虚拟仪器和基于PC的数据采集领域领导者的主要原因之一。 NI-DAQmx驱动软件和额外测量服务软件随附于每台受NI-DAQmx支持的DAQ设备,作用如下: 在数百个多功能DAQ硬件设备上,针对编程模拟输入、模拟输出、数字I/O和计数器,提供统一的编程界面 为NI LabVIEW、NI LabWindowsTM/CVI、Visual Basic、Visual Studio .NET和C/C+提供统一的VI和函数。 提供NI MAX (Measurement & Automation Explorer)、DAQ助手 (DAQ Assistant)和LabVIEW SignalExpress LE软件,节省配置、开发和数据记录的时间。(NI-DAQmx仅可用于Windows)在程序框图中,若选择express中的输入函数,会有一个DAQ assistantVI,帮助用户 向导硬件设置的步骤,它可以使您无需编程即可配置数据采集任务、虚拟通道以及实现缩放操作。用户也可以从NI应用软件中启动DAQ助手,例如LabVIEW、LabWindows/CVI、Measurement Studio、VI Logger或 MAX。但缺点是对与DAQ助手的启动需要一些时间,本设计中放弃了对这一功能的使用。 图3-3 DAQ助手界面在驱动程序安装完毕后,需要对本设计中使用的NI USB-6009进行相应的配置。在MAX的目录中:mysystemDevices and interfacesNI-DAQmx devices就可以看到所有连接到系统的物理和仿真的Nidaqmx 列表。 图3-4 物理设备列表界面在已经安装的NI-DAQmx 设备上单击右键,就能弹出一个菜单,显示关于数据采集卡的一些信息,包括自检(self-test),测试面板(test panels),复位设备(reset devices),创建任务(create task),设备引脚等。虚拟示波器的设计中主要运用的是测试面板。 Test panel 窗口主要用来测试DAQ设备的模拟输入,模拟输出,数字I/O和计算功能。这是一个功能强大的故障处理实用程序,允许用户从NI-DAQmx中直接测试设备的功能。如果设备在测试面板中不能运行,那么也将不能在labview中运行。如果在labview中进行数据采集时遇到问题,也可以使用自检和测试面板来确保设备运行的正常。在最后的调试章节会对硬件设置做进一步分析。另外,通过device pinouts选项,能够显示DAQ设备 NI-USB-6009的引脚。帮助用户熟悉各个端口的分布,便于接线。 图3-5 USB-6009 数据采集卡引脚图第四章 设计原理4.1 示波器原理简介示波器是各类工程实验经常使用电子测量仪器。利用示波器能观察各种不同信号幅度随时间变化的波形曲线。它是利用电子射线的偏转,来显示电信号瞬时值图像(常成为时间波形)的一种仪器。它是能快速把肉眼不能直接看见的电信号的时变规律,以可见的形式,形象的显示出来。目前,示波器在信号测试、信号比较、逻辑分析等领域得到了广泛的应用。在电子实践技术过程中,常常需要同时观察两种(或两种以上)信号随时间变化的过程。并对这些不同的信号进行电参量的测试和比较,为了达到这个目的,人们在应用普通示波器原理的基础上,采用了双踪示波法。应用这种方法制造出来的示波器被称为双踪示波器。4.2 虚拟示波器的设计Labview中的前面板中的控件和指示器可以很好的模拟示波器的面板上的各种旋钮以及屏幕。简单的说前面板就是一个用户界面,由输入,输出控制和显示三部分构成,用户通过它与程序交互。当运行VI时,必须打开前面板,以便向执行程序输入数据。前面板主要是由控件和指示器组成的联合体。控件模拟典型的输入对象,如旋钮、开关。控件可以让用户输入值,向VI框图提供数据。指示器显示由程序产生的输出信息。以下用两个表达式,可以充分理解控件和指示器: 控件=来自用户的输入=数据源 指示器=给用户的输出=数据的目的地或“接收器”两者是不能互换的。4.2.1数据采集功能实现当驱动软件安装完成后,程序框图选项卡中的测量I/O选项就会出现DAQmx的函数。几乎所有的NI-daqmx应用程序都将按照以下的逻辑方式组成。 图4-1 数据采集labview程序通用逻辑框图功能实现步骤如下:创建一个任务(或引用一个MAX DAQmx任务)-启动任务-读或者写,以及根据需要重复-停止任务-清除任务。对于DAQ,第一步要创建一个任务,使用DAQ某些Create Virtual Channel,它创建了一个虚拟通道并将其添加到一个任务中。它也可以用来创建多个虚拟通道,并将它们都添加至一个任务。如果没有指定一个任务,那么这个函数将创建一个任务。这种多态VI的实例对应于通道的I/O类型,例如模拟输入,数字输出或者计数器输出。它创建的虚拟通道函数的输入随每个函数实例的不同而不同。DAQmx start task运行任务。在能够从任务中读写之前,需要启动任务,并将其设置为运行状态。如果不使用这个VI,当DAQmx read VI运行时,测量任务将自动启动。NI-DAQmx所使用的状态模型免去了不需要的重复配置来获得一个更高的效率,并且将性能最大化。这个状态模型包括任务可存在的五个状态。NI-DAQmx启动任务函数所显示的是将一个任务转换至运行的状态。在运行状态,这个任务完成特定的采集或生成。如果没有使用NI-DAQmx启动任务函数,那么在其读取函数执行时,一个任务可以隐式的转换。这个隐式转换也发生在NI-DAQmx启动任务函数未被使用,且NI-DAQmx 写入函数与它指定的自启动输入一起执行的情况下。 DAQmx read从指定任务或虚拟通道读取采样值。这个多态VI的实例指定了返回什么格式的采样值,一次读取一个采样值还是多个采样值,从一个还是多个通道读取。对于有限采样,通过将每通道采样数指定为-1。这个函数就等待采样完所有请求的采样数,然后读取这些采样。对于连续采样,将每通道采样数设定为-1将使得这个函数在执行的时候读取所有现在保存在缓冲中可得的采样。 DAQmx stop停止任务,测量或产生任务完成后,也许想要停止任务就要使用这个VI,也可能过一段时间后再次启动。停止任务并将其返回到将autostart输入设置为true运行DAQmx start task VI和DAQmx stop task VI之前的运行状态。如果不使用start task和stop task,当多次使用DAQmx Read read VI或DAQmx write read VI时,在一个循环中,任务将反复的启动和停止,则降低了应用程序的性能。 DAQmx clear task消除任务,当任务完成后,使用DAQmx clear task来释放任务曾占用的任何资源。在清除任务之前,如果必要的话该VI先停止任务,释放任务占用的任何资源。在清除任务之后,不能再使用任务,除非重新创建任务。因此,如果一个任务还会使用,那么NI-DAQmx结束任务函数就必须用来中止任务,而不是清除它。在循环中使用了DAQmx create task VI或DAQmx create virtual channel VI,那么在完成任务之后,还要在循环中使用这个VI,以避免分配不必要的内存。 图4-2 虚拟示波器DAQ数据采集模块程序结合数据采集卡,就产生了虚拟示波器数据采集的程序框图(上图),它在创建的虚拟通道VI和运行VI之间添加了一个定时函数用于确定系统的采样频率。这个定时函数配置定时以用于硬件定时的数据采集操作。这包括指定操作是否连续或有限,为有限的操作选择用于采样或生成的采样数量,以及在需要时创建一个缓冲区。对于需要采样定时的操作(模拟输入,模拟输出和计数器)NI-DAQmx定时函数定义了采样时钟的源(可以是一个内部或外部的源)和它的速率。采样时钟控制了采样或生成采样的速率。每一个时钟脉冲为每一个包含在任务中的虚拟通道初始化一个采样的采集或生成。 最左侧的矩形下拉框可以选择采样的物理通道。采样时钟上方的下拉框可调采样类型,并可在其左侧的橙色数域内修改采样率。在labview中,函数与函数之间的连线有着不同的颜色,分别表示不同的数据类型,上图的粉色连线,表示传递的数据类型是字符串,而橙色代表传递的是浮点数。另外还有蓝色为整型,绿色为布尔型,簇类型则用棕色或是粉色表示。简单的将颜色和类型对应起来,就是为了避免混淆数据类型。4.2.2采集波形显示功能为了模拟示波器对于采样的来的波形进行及时显示分析的功能,利用labview中提供的丰富的指示器,其中包括波形图表,波形图以及XY图等等,这些指示器都将在接下来的设计中运用到。在显示功能的设计中,需要用到波形图表用于对采样的信号进行显示,这个指示器横坐标显示的时间,纵坐标显示的是幅值。本例设计的是双通道示波器,需要对指示器的属性做一定的设置用于显示两条曲线。具体为外观属性中的曲线显示数为2。在前面板的右上角显示出了两条曲线的图例,用户可以根据需要修改显示曲线的颜色。波形能够接受的数据格式有一维数组,簇数据类型,二维数组等。有了对应的曲线显示,参照对示波器的模拟,就要进一步对两条曲线的显示以及隐藏做设置。前面板使用了布尔开关按钮控制两个通道的显示与否。布尔型数据有两种状态:真或假。Labview为布尔型控件和指示器提供了很多种开关,LED和按钮。在程序框图中利用for循环做对应的设计。这是本例中第一次使用for循环。无论使用任何程序编程,常常需要重复执行同一段代码。Labview提供了两种循环结构while循环和这里使用的for循环,使这项工作变得简单。For循环返回执行指定的次数。而while循环持续执行直到一个指定的条件为真(或为假)。如下图显示for循环的框图,右上角是计数端子,代表需要执行循环的次数。左下角的i,是迭代端子,指示循环已经进行的次数并可对其他VI进行赋值。0表示正在进行第一次迭代,1表示正在进行第二次迭代,以次类推,直到N-1(N表示循环所期望的执行次数)。使用属性节点,可以使编写程序的功能更加强大。通过使用属性节点,允许用户编程控制前面板对象的属性:如颜色,显示,位置,数字显示格式等等。这里的关键是可编程,也就是说,按照框图算法改变前面板对象的属性。设计中为采集波形图表的通道显示设置了actplot, plot.visible两个属性节点,分别表示活动曲线和曲线可见。这样就能使采集来的波形具有随时间推移而移动的属性。属性节点的左右两端分别有小箭头,这是用于修改节点的读写属性,可以通过右击属性节点,对它的读写属性做设置,这个设计中运用的是写入属性,如果错误的运用了读出属性,连接线就会出现小红叉,表示坏线。 图4-3 虚拟示波器的通道选择模块框图而在for循环内,用case结构对前面板的通道开关与图表显示控件做关联。Case是一种强大的结构。它是labview中执行条件语句的方法,就像C语言中if-then-else语句。Case结构可以有两个或更多个框图,但只能有一个在执行,也就是说只能显示一个分支,就像一叠纸牌,只能看见最上面一张。结构右侧带问号的小方块是分支选择器它决定结构顶部的条形框中的条件分支,所以他们两个的数据结构是一致的。通常Case结构的默认条件分支为布尔量。这个设计中case的条件输入为数值,因此要对条件分支做一定的修改。并且要说明的是对一切非布尔量的条件连接时都要做修改。要注意的是,在非布尔输入的条件中,必须对默认的情况有体现,说明的是除了0和1之外输入外,输入其他值时,labview必须知道执行哪一段代码。本例随后还会多次使用case结构,并遇见不同的条件输入。在case结构内部数据与外部数据连接时,通过case框,框上会出现一个小方块,这个小方块称为数据通道,这个case的数据通道在没有数据流通过时为空,所以显示为空心小方块。示波器中,会有波形显示样式的选择功能,labview的指示器也提供三种不同的扫屏方式。分别是strip mode, scope mode, sweep mode。strip chart mode是这些扫屏方式的缺省模式,波形从左向右开始绘制,当最新的点超出显示区的右边界时,整个波形顺序左移。Scope chart mode,当最新的点超出显示区右边界时,整个波形将被清屏刷新,波形显示从左边界从新开始。Sweep chart mode,当最新点超出显示区右边界时,新的点从左边界开始绘制,原有的波形由一条垂直扫描线,从左至右逐渐清除。 图4-4 三种不同的扫屏方式对于这三种扫屏方式,前面板设置了下拉列表控件。程序框图中,运用了指示器提供的属性节点updatemode,,将其于选单控件相连,即完成功能。4.2.3 时间轴和幅值轴调节功能 参照示波器的功能,前后面板又对时间轴和幅值轴控制的旋钮进行了创建。时间轴限定了采样的时间段,旋钮的刻度值直接体现了整条横轴的时间长度,时间调节旋钮提供了9档时间,从0.01秒至5秒。初始的控件只有六档,对其属性修改可以达到设计要求。属性中的标尺设定刻度范围,本例的9档,设为最小值0,最大值8。在数据范围中将刻度的增量设置为1,即将0到8的刻度分为9份。基本满足了旋钮的初始结构要求。随后对每一个刻度的文本值进行设定,这需要对旋钮的属性进行修改,首先确保文本标签的选中(右侧出现小文本标签显示当前旋钮值),随后对属性中的文本标签进行设置,每一刻度显示值即可见。以同样的方式对幅值轴进行设置。完成前面板的操作后,须对程序框图进行设计,以达到旋钮能控制波形图的目的,这里再次用到了case结构,旋钮的输出数据类型是枚举型,就需要主动将数据添加进条件分支框,在case框内在每一个枚举类型下创建一个数值常量,输出给case外的属性节点,作为属性节点的输入条件。这两个case框外的属性节点Xscale.minimum与Xscale.maximum分别控制着横坐标轴的最大最小值,用加法器连接,即对横坐标的最大值,最小值做了标定。最小值加上当前刻度值,即为屏显横坐标的最大值。对于幅值轴,最大值和最小值分别是刻度即增量的正三倍和负三倍,设计原理,如图所示。分别应用了Yscale.max和Yscale.min,Yscale.increment 属性节点,Increment节点即对标尺增量的控制。 图4-5 时间轴和幅值轴的旋钮调节模块框图参照示波器功能,添加了自动显示或是手动显示的功能。创建了两个case结构连接显示模式选择的开关。自动显示模式即运用了两个scalefit的属性节点。这里需要指出的是,连接XYscale.scalefit属性节点的常量。0,1,2 三类常数的写入的意义分别为Do not autoscale, 1-Autoscale once now, 2-Autoscale。这里写入了常数1,需要实现对横纵坐标进行自由调节的目的。4.2.4文件的创建,读取和写入功能 回显分析是针对某一规定时域范围内的波形的分析,因此需要对这段波形进行写入读取,设计中引入了labview提供的TDMS文件格式,用于创建波形文件。TDMS streaming 文件是对labview 8.2对TDM文件的改进,它比TDM文件的读写速度更快,属性定义的接口更简单。TDM文件和TDMS文件可以互相转换。LabVIEW中提供了一种方便的数据保存和读取的格式tdms,并提供了多种相关的操作函数。利用这些函数就可以在线的将采集来的数据保存在指定的TDMS文件中,也可以读取这种类型的文件并显示其中的数据。TDMS文件的逻辑格式遵循TDM三层结构:文件、通道组、通道三层。用户在使用时只需要关心这三层就行了。 TDMS文件格式基本上可以称为NI用在测试测量领域的通用数据文件格式,LabVIEW, CVI/LabWindows, Signal Express, DIAdem中都可以使用,也常看到在Excel, MatLab被中调用。TDMS最核心的内容都在一个dll中,用户如果安装了LabVIEW,就会发现在Program FilesNational InstrumentsSharedTDMS文件夹中有个tdms.dll的文件。其他软件正是通过调用这个dll的API来操作TDMS文件的。在LabVIEW中操作TDMS文件其实相当方便,有专门的TDMS面板,提供了TDMS绝大多数的功能。TDMS分别面向初级、中级、高级的用户。在面板上一共就10个SubVI,无论是什么样的数据类型,都可以用这样同一套SubVI,无需大量额外的编程工作。TDMS从设计之初就确定它必须是二进制的。二进制文件带来两个优点:第一,与一般的文本式文件相比,二进制文件通常比较小;第二,二进制文件读写通常比较快。这两个都是其他二进制文件都具备的优点,因此不再赘述。用户写完TDMS文件之后,会发现硬盘上其实有两个TDMS文件,一个是.tdms,另一个是.tdms_index文件,我们通常把前者称为主文件或者数据文件,而把后者称为头文件或者索引文件。头文件与主文件相比,最大的区别就是把主文件中的raw data都去掉了,只留下属性等信息。这样做,有两个目的,第一,可以使得读文件加快速度,并且支持随机读取文件数据。第二,可以使得某些软件的搜索TDMS文件功能加快。测试测量数据的文件格式,有很多种,文件格式就像我们中午带饭的饭盒一样。其他的数据文件格式就是把饭菜都放在一起,吃起来不方便(速度慢),而且味道都混杂在一起(组织不好);而TDMS文件格式就像是内部有分隔的饭盒,不同的饭菜分开存放,吃起来又方便(速度快)味道又好(组织良好)。 图4-6 TDMS文件创建模块框图程序开始运行时,将在开始指定的路径创建或替换一个数据保存的文件。创建开始时,保存5个数据,包括用户名,时间,采样率,采集允许的最大和最小电压。主要利用的是FILE I/O中的TDM Streaming中的TDMS Open函数。以上的五个数据将会在数据读取的过程中体现出来。数据的写入需要将采集来的数据连入TDMS Write函数的data端口,即实现即时的写入。 图 4-7 TDMS文件读取模块框图在数据的读取的框图设计中,第一次用到了顺序结构框图。按一定的顺序排列程序元素来决定程序执行的顺序,称为控制流。VC,VB和其他编程语言,也继承了控制流,语句按照在出现在程序中的顺序执行。Labview使用顺序结构实现数据流框架中的控制流。顺序结构是一系列顺序执行的有序帧集合。顺序结构顺序执行帧0,然后是帧1,帧2,直到最后一个帧。只有最后一个帧执行完毕,数据才会离开结构。上图所显示程序的 false分支为空。当open file按键按下时,由于所显示的程序在一个while循环中,为了避免多次重复做读取操作,先使得该按键弹起。对于帧零中的open file中设置的绿色矩形框在labview中称为局部变量,局部变量提供一种方法,可以从一个VI实例框图中的多个地方访问前面板对象,而那些地方无法连线到前面板对象端子。局部变量为labview中的内置对象。为open file创建的局部变量也可以被修改读写特性,这个变量用的是写入属性。后面还会用到局部变量的读出属性。第二帧内的结构也就遵循这个流程:TDMS打开-TDMS获取属性-TDMS读取-TDMS关闭,将TDMS关闭函数的报错端口与简单错误处理器相连,之后在发生报错的情况下,系统会弹出对话框,说明报错原因。当open file键按下时,用户会看到一个对话框要求选择打开的文件。对应的是程序框图中设置的对话框VI。选择后,会将读取的数据显示到XY Graph和Waveform Graph中,其中Graph是以时间为X轴,而XY Graph是以第二条曲线的值为Y轴,以第一条曲线的轴为X轴。从波形图抽取入XY图,因为波形的数据结构是一维数组,设置了一维数组抽取函数,使得波形数据流在两张图标上同时实现。4.2.5 波形图回显前一节描述的数据读取的目的就是为了数据回显。系统设计的回显分析包含波形图和XY图两种形式,前者以时间为X轴,后者以一组数据为X轴,另一组数据为Y轴的XY图形。波形图指示器与采集显示使用的波形图表指示器略有不同。回显的目的中,需要对波形进行分析,因此波形图具有栅格化的呈现特性,可以用多种模式对波形进行显示,也可以从任意角度观察波形。采用与波形采样图同样的方法对波形图进行设置,同样使其具有双通道显示的功能。随后为它添加其独有的控件功能。图形工具选板,提供三种不同的工具用于方便分析波形。游标移动工具,可以用来移动所显示图形上的游标。缩放工具,可以用来放大或是缩小图形。平移工具用来显示区域内选中并移动的曲线。对于Waveform Graph,设计为其提供了3种指定时间轴显示范围的模式。包括:按点数分屏,可以指定一屏显示的数据点数;按时间分屏,可以指定一屏显示的时间长度;指定时间范围,可以查看指定的时间范围的数据。主要程序如下图所示。显示选单是选择显示模式的单选框。包括:按点数分屏(dots)、按时间分屏(time)、指定时间(set),这里运用了3个case选框。按点数分屏时,用一屏显示的点数除以采样率算得一屏显示的时间。用Scrollbar的值去乘即可得到当前显示屏的最小值。最大值用最小值去加一屏的时间就可以得到。按时间分屏时,算法类似。指定时间范围时,只需要注意控制最大值不要小于最小值以及最小值不应当小于0这两点即可。其中后一点在前面板设定。 图4-8 波形分屏回显选择模块框图XY图回显,将两个信号分别输入到示波器的通道1和通道2,以通道一信号的值作为坐标轴X的正半轴数值,以通道二为Y正半轴数值,得到的(X,Y)坐标值为显示出来的点。当信号连续输入时,点也连续。XY图即是利萨域图形在从波形图转换为XY图的过程中,需要运用到一个创建XY图的函数,意义是将数据格式化,显示在XY图上。在前面板上放置Express XY图,程序框图上即会出现这个Express VI。在执行过程中,每当该Express VI被调用时清除图中数据,无论是否选择每次调用时清除数据,执行过程中第一次调用这个express VI时,该Express VI将清除图形中的数据。 回显分析中,为波形图,XY图都添加了计算通道均值的功能。Labview提供了采样压缩函数用于将采样的大量数据点压缩为少量数据点。有多种压缩方式可以选择,通道均值便是选择了均值压缩方式。 Express VI是一种特殊的labview函数,当这些函数被选中放入程序面板上时,就会出现向导或配置对话框来定义函数的行为,设计用于帮助用户快速执行测试,测量分析任务。Labview会自动在“幕后”建立labview底层代码。除了以上的功能外,在回显时同样提供曲线的隐藏和显示。和在数据采集时的方法完全相同。 4.2.6 程序的优化程序的内部功能完成后需要进行界面的美化和细节的完善。整个示波器分为数据采集和数据回显两部分。Labview提供了叫做选项卡的指示器,用户可以根据需要,隐藏不希望出现的以及希望当时显示的指示器。也可以采用tab control在两者之间切换。界面上布局也将相近功能的按键和旋钮等放在一个区域,易于用户上手。同时添加了背景,不至于使界面过于单调。同时为每个显示部分完善了中文标签,便于识别。文件的默认保存地址为程序所在文件夹,防止发生无法生成文件导致卡死的情况。在XY Graph回显时隐藏不必要的滚动条和控制框等,使界面更为简洁。通过组织对象可以改进后面板的外观,布局。即通过对象的排列和均匀分布,以及将逻辑上相关的对象分组,决定设计的框图以合理的方式呈现。Labview提供了对象的排列,分布,调整大小,分组,锁定等功能。另外,还可以根据个人的喜好,导入图片,黏贴到labview的前面板,使界面显示得更加细致,个性化。第五章 程序的调试5.1 调试结果虚拟示波器数据采集界面: 图5-1 虚拟示波器数据采集界面操作说明:(1)运行vi文件后即在vi文件所在文件夹生成daq.tdms文件(可更改路径)。(2)模式选择:可选strip mode,scope mode,sweep mode。(3)采样数:为每秒的采样数。(4)自动显示:应用Waveform Chart的Autoscale功能,自动调整图像(适用于规则的波形)。未选择时为手动调整,靠左旋钮调节时间(0.01s-5s),右旋钮调节幅值(10mV-5V)。(5)暂停采样:按下时采样暂停。(6)通道:可选择显示通道,通道1为白色,通道2为红色。虚拟示波器回显分析界面: 图5-2 波形图回显示分析 图5-3 XY图回显分析操作说明:(1)打开文件:打开tdms文件,默认为本地文件夹的daq.tdms。(2)显示模式:切换Waveform与XY Graph显示。(3)以下可按点数、时间分屏,分别在各自的选框中选择合适的数值。(4)指定时间:可指定开始与结束时间,注意开始时间须小于结束时间。(5)均值:显示各个通道的均值。(6)Scroll Bar滚动条:也可由此改变显示的时间区段。5.2 调试问题软件调试是整个系统设计的最后一个环节。要尽量发现运行阶段出现的错误。Labview对于运行不成功的系统会进行自检并给出结果,例如数据流断点,无法寻找到某个函数,数值溢出或是类型不匹配等缺陷。在向生成的tdms文件中写入数据时用数据回显打开此文件时在某些情况下会发生无法读取的错误。可能是在某些条件下对文件进行非法操作后产生的错误或者文件的读写权限有关。更好的解决方法是在打开文件前关闭对文件的写入,比较保险。 图5-4 文件读取报错对话框 同时,对于TDMS文件打开函数中的运行设置,也需要注意对它的选择。其中有open,create or replace, open or create等选项。对运行的操作进行了定义,这个采集任务选择的是open or replace,意义是创建一个.tdms文件,替代原先的.tdms文件。若错选其他,也有可能造成以上的文件权限错误。 在最初的程序调试过程中,经常会遇到断线的情况发生。产生原因有多种。重现频率最高的错误来自对属性节点或是局部变量的读写属性设置发生错误。另外,在DAQ数据采集的各个模块中,若是忽视对初始状态的修改,也会造成断线的产生。在test panel中可以对数据采集卡做一系列的设置,包括通道选择(与labview框图对应)模拟输入输出的上下限,采样的频率,输入的方式。下图中出现的通道选择下拉单中的选项必须与框图中的通道选择做到一致,才能进行正常数据采集。这里选择的是差分输入方式。 图5-5 USB-6009数据采集卡测试面板窗口界面最后,将USB-6009数据采集卡上的模拟输入端口连入信号发生器,即可对信号发生器产生的正弦波,三角波,锯齿波等波形进行采集显示。或是通过labview提供的虚拟信号发生模块,进行模拟采集测试。第六章 结论本文对基于labview的虚拟示波器数据采集系统进行了研究,通过运用NI公司研制开发的labview8.20软件以及数据采集卡NI-USB6009,创建了虚拟示波器人机界面,使用户能方便的通过软硬件协同作战,进行数据采集和分析。通过这个设计过程的研究学习,使我对虚拟仪器的概念有了更深刻的认识,了解了虚拟仪器技术在项目工程中的成功应用。当今的自动化仪器的复杂程度越来越高,其中对软件使用要求也在不断地提高。Labview无疑为自动化仪表的高速型,安全性,交互性提供了一个可行的解决方案。本文就对工业控制中的数据采集环节的labview实现做了一些研究。Labview是虚拟仪器的开发平台,该软件拥有丰富的测量,显示,分析函数。用户也可以根据自己的需要,创造有价值的函数,供系统调用。体现了极大的功能性和灵活性。同时,编程语言是图形化编程语言,在理解上显的更为直观,大大缩短了系统的开发周期。NI公司数据采集卡的多样性,也满足了不同工况对数据采集的使用需求。硬件设置也是数据采集系统成功与否的核心,NI的硬件驱动安装简便,采集卡即插即用,体现了与编程语言一样的简洁性。 数据采集系统的设计,是一次很好的理论结合实际的机会。在设计过程中,也多次用到了在微机控制原理课程中学到的关于采样的理论知识。以往使用示波器的经验也对这次设计提供了一些帮助。更为重要的是,通过对制作虚拟示波器的亲身实践,labview的入门级功能已经基本掌握。但是,对于labview的高级应用,需要在今后的学习实践中进一步探索。掌握图形编程语言必然会对今后的工作起着积极的作用,我从中学到了许多有益的知识。特别是在编程,调试的过程中,运用了软件工程中的思想,使得程序编制,调试的效率都得到了显著的提高。 虚拟示波器虽然功能简洁,也正映衬出了离一个功能完备的虚拟示波器还有一定的差距。例如添加频谱分析模块,以及触发功能模块等。对系统功能完善的追求是无止尽的,也正如探索labview的世界一样。谢辞经过三个多月时间的努力,我终于完成了虚拟示波器数据采集系统的设计。在此,我要由衷地感谢何黎明老师,是他给予了我这次与虚拟仪器接触的机会,这个软件将对我今后的工作实践产生深远的影响。从论文的选题,设计中具体问题的讨论,到论文的撰写,修改和定稿,无不凝结着老师的心血。实践出真知,在毕业设计的过程中,对自学考教材上的理论知识运用也得到了体现,使得我对它们的理解,变得更加深刻。还要感谢交通大学,给了我一个机会完成了我的专升本梦想。感谢自考办的所有老师们,这一路上对我的支持和帮助。回想这几年,你们为我们做了许多的工作,是真正的幕后英雄。自学考的经历将对我的一生产生深远的影响,在攻克一个又一个难关之后所取得的挫折经验或是成功喜悦,都将成为今后战胜更大困难的有力武器。感谢何黎明老师!感谢上海交通大学自学考!参考文献:1 Jeffrey Travis, Jim Kring 著 labview for everyone(第三版)电子工业出版社20082 龙脉工作室 岂兴明 周建兴等 labview8.2中文版 入门与典型实例 20083 龙华伟 顾永刚 编著 Labview 8.2.1与DAQ数据采集 清华大学出版社 20084 韩广兴 示波器的使用方法与技巧 中国电力出版社 20075 DAQ技术白皮书 National Instrument 2009 附录一图纸文件生成及硬件设置部分:数据采集及数据显示部分:31
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!