LabVIEW的多通道数据采集系统的设计_第1页
LabVIEW的多通道数据采集系统的设计_第2页
LabVIEW的多通道数据采集系统的设计_第3页
LabVIEW的多通道数据采集系统的设计_第4页
LabVIEW的多通道数据采集系统的设计_第5页
已阅读5页,还剩48页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

...wd...LabVIEW的多通道数据采集系统的设计虚拟仪器是将仪器技术、计算机技术、总线技术和软件技术严密的融合在一起,利用计算机强大的数字处理能力实现仪器的大局部功能,打破了传统仪器的框架,形成的一种新的仪器模式。本设计采用NIPCI-6221数据采集卡,运用虚拟仪器及其相关技术于多通道数据采集系统的设计。该系统具有数据同时采集、采集数据实时显示、存储与管理、报警记录等功能,最后使用Web技术实现了采集数据的远程访问。本文首先概述了测控技术和虚拟仪器技术在国内外的开展及以后的开展趋势,探讨了虚拟仪器的总线及其标准、框架构造、LabVIEW开发平台,然后介绍了数据采集的相关理论,给出了数据采集系统的硬件构造图。在分析本系统功能需求的根基上,介绍了程序模块化设计、数据库、Web、多线程等设计中用到的技术,最后一章给出了本设计的前面板图。本设计是虚拟仪器在测控领域的一次成功尝试。实践证明虚拟仪器是一种优秀的解决方案,能够高效的实现各种测控任务。关键字:虚拟仪器;数据采集;MySQL;PHP;LabVIEW目录摘要IAbstractII目录IV第一章绪论11.1引言11.2课题背景11.2.1测控技术的国内外开展现状11.2.2虚拟仪器技术开展趋势31.3本设计所做的工作51.3.1多通道数据采集系统的设计51.3.2远程数据检索的设计6第二章虚拟仪器72.1虚拟仪器技术概述72.1.1虚拟仪器的概念72.1.2虚拟仪器的特点及优势72.1.3虚拟仪器和传统仪器的比较82.1.4虚拟仪器测试系统的组成102.1.5虚拟仪器I/O接口设备112.1.6虚拟仪器的软件构造132.2虚拟仪器的开发软件132.2.1虚拟仪器的开发语言132.2.2图形化虚拟仪器开发平台——LabVIEW142.2.3基于LabVIEW平台的虚拟仪器程序设计15第三章系统设计理论及硬件平台的实现173.1PC机173.2数据采集理论173.2.1数据采集技术概论173.2.2采集系统的一般组成及各局部功能描述193.2.3传感器213.2.4信号调理213.2.5输入信号的类型223.2.6输入信号的连接方式253.2.7测量系统分类253.2.8选择适宜的测量系统273.3数据采集卡的选择293.3.1数据采集卡的主要性能指标303.3.2数据采集卡(DAQ卡)的组成313.3.3NIPCI-6221数据采集卡313.4本设计总体硬件框图32第四章系统软件设计的相关技术334.1程序模块化设计概述334.1.1程序设计的模块化原则334.1.2软件系统的模块化设计原则344.1.3本设计的软件系统模块划分354.2数据库技术364.2.1数据库技术概述364.2.2ADO与数据库的交互技术384.2.3MySQL数据库384.3Web技术394.3.1Web技术概述394.3.2PHP技术414.3.3远程数据访问系统434.4多线程技术434.4.1Windows的多线程机制434.4.2LabVIEW与多线程444.4.3多线程技术在本设计中的应用444.5系统具体应用程序的实现454.5.1数据采集局部程序454.5.2数据保存局部程序454.5.3历史数据查询局部程序464.5.4报警记录局部程序46第五章系统软件的具体实现r485.1登录系统485.2通道参数配置495.3实时数据显示505.4历史数据查询505.5报警记录51第六章总结53致谢54参考文献55附录远程数据检索系统代码57绪论引言测控技术在现代科学技术、工业生产和国防科技等诸多领域中应用十分广泛,它的现代化已被认为是科学技术、国防现代化的重要条件和明显标志。20世纪70年代以来,计算机、微电子等技术迅猛开展,在其推动下,测控仪器与技术不断进步,相继诞生了智能仪器、PC仪器、VXI仪器、虚拟仪器及互换性虚拟仪器等微机化仪器及其自动测控系统,计算机与现代化仪器设备间的界限日渐模糊,测控领域和范围不断拓宽[1]。近年来,以计算机为中心、以网络为核心的网络化测控技术与网络化测控系统得到越来越多的应用,尤其是在航空航天等国防科技领域。网络化的测控系统大体上由两局部组成:测控终端与传输介质,随着个人计算机的高速开展,测控终端的位置越来越多的被个人计算机所占据,其中,软件系统是计算机系统的核心,甚至是整个测控系统的灵魂,应用于测控领域的软件系统称为监控软件。传输介质组成的通信网络主要完成数据的通信与采集,这种数据采集系统是整个测控系统的主体,是完成测控任务的主力。因此,这种“监控软件-数据采集系统〞构架的测控系统构造在很多领域都得到了广泛的应用,并形成了一套完整的理论[1]。课题背景测控技术的国内外开展现状早期的测控系统采用大型仪表集中对各个重要设备的状态进展监控,通过操作盘进展集中式操作;而计算机测控系统是以计算机为主体,加上检测装置、执行机构与被控对象(生产过程)共同构成的整体。系统中的计算机实现生产过程的检测、监视和控制功能。由于通信协议不开放,因此这种测控系统是一个自封闭系统,一般只能完成单一的测控功能,一般通过接口,如RS-232或GPIB接口可与本地计算机或其他仪器设备进展简单互连[1]。随着科学技术的开展,在我国国防、通信、航天、航空、气象、环境监测、制造等领域,要求测控和处理的信息量越来越大、速度越来越快。同时测控对象的空间位置日益分散,测控任务日益复杂,测控系统日益庞大,因此,提出了测控现场化、远程化、网络化的要求。传统的单机仪器己远远不能适应大数量、高质量的信息采集要求,产生了由计算机控制的测控系统,系统内单元通过各种总线互连,进展信息的传输。网络化的测控技术兴起于国外,是在计算机网络技术、通信技术高速开展,以及对大容量分布式测控的大量需求背景下开展起来。主要可分为以下几个阶段。第一阶段:起始于20世纪70年代通用仪器总线(GPIB)的出现,GPIB实现了计算机与测控系统的首次结合,使得测量仪器从独立的手工操作单台仪器开场走向计算机控制的多台仪器的测控系统。此阶段是网络化测控系统的雏形与起始阶段。第二阶段:起始于20世纪80年代VXI标准化仪器总线的出现,VXI系统可以将大型计算机昂贵的外设、VXI设备、通信线路等硬件资源以及大型数据库程序等软件资源纳入网络,使得这些珍贵的资源得以共享。此阶段是网络化测控系统的初步开展阶段。第三阶段:随着技术的开展,现场总线技术的出现带动了现场总线控制系统(FCS)的迅速开展,使得可以在一个工厂范围内通过总线将成千上万个智能传感器/变送器等智能化的仪表组成一个网络化测控仪器系统,此阶段是网络化测控系统的快速开展阶段。第四阶段:在对现代化要求极高的领域,传统的测控系统已经逐渐无法满足用户的要求。许多部门或大型企业迫切要求构建基于Internet或大型局域网的网络化测控系统,即通常所说的分布式测控网络,此阶段是网络化测控系统开展的成熟阶段。虚拟仪器技术开展趋势虚拟仪器是微电子、通信、计算机等现代科学技术高速开展的产物。自从1785年库仑创造静电扭秤,1834年哈里斯提出静电电表构造以来,电测仪表和电子仪器随相关技术的进步、仪器仪表元器件质量的提高和测量理论方法的改良得到飞速开展。有一种较普遍地说法将测量仪器的开展分为五个阶段,如图1.1所示。图1.1测量技术的开展从十九世纪初到二十世纪末,测量仪器经历了模拟仪器、电子仪器、数字仪器、智能仪器等阶段,开展到现在的虚拟仪器。模拟仪器主要有模拟式电压表、电流表等,这些仪表解决了当时对某些量的测量的需求。从二十世纪初到五十年代左右,测量仪器的材料性能得到改善出现了电子管,同时测量理论和方法与电子技术、控制技术相结合,出现了以记录仪和示波器为代表的电子仪表五十年代以后随着晶体管和集成电路的出现以及应用电子技术的开展将数字技术成功地应用到测量仪器。这时电子控制集成电路和计算机技术开场融为一体成为测量仪器的主要特征。七十年代初第一片微处理器问世,微型计算机技术从此开展迅猛,在其影响下测量仪器呈现出新的活力并取得了长足进步。伴随微电子技术、计算机技术、网络技术的迅速开展及在电工电子测量技术领域的应用,测量仪器也不断进步和开展,出现了智能仪器。智能仪器是将微机置于仪器内部,使仪器具有控制、存储、运算、逻辑判断及自动操作等智能特点,并在测量准确度、灵敏度、可靠性、自动化程度、运用能力及解决测量技术问题的深度和广度等方面都有明显的进步。这种内置微处理器的仪器,既能进展自动测试又能完成数据处理,可取代局部的脑力劳动。随着电子技术、微计算机技术的开展,智能仪器的智能水平不断提高。但是在数字化仪器、智能仪器阶段基本上没有摆脱传统仪器那种独立使用、手动操作的模式,难以胜任更复杂、多任务的测量需求。为解决这样的问题,总线式仪器与系统应运而生。人们创造制造出CAMAC、RS-232和GPIB等多种仪器通讯接口总线,用于将多台智能仪器连在一起,以构成更复杂的测试系统。1982年美国西北仪器公司总裁德·伯克提出了微机化仪器的概念,也就是人们现在常提到的卡式仪器。卡式仪器是虚拟仪器的雏形,是将传统独立式仪器的测量电路局部与接口局部集合在一起制成仪器功能卡,将其插入微机的内部插槽或外部插件箱中形成的仪器。PC总线仪器系统是卡式仪器的一种,它是利用PC机内部的总线,把假设干块仪器卡插在PC机内部或外部扩展机箱内而组成的。插卡总线机箱与PC机间的通信,可利用RS-232、GPIB接口总线或以太网电缆等进展。虽然许多厂家通过定义新的仪器总线,不断对卡式仪器进展改良,但其大多是在微机内总线的插槽上进展开发,没有统一标准,且各厂家生产的插卡尺寸大小不一,设备兼容性较差。在这种情况下,用户自然会提出标准化的要求。1987年,美国的惠普和泰克等5家公司在VME总线的根基上,联合提出了一种新型总线系统-VXI(VMEeXtensionForInstrumentation)总线,即由微机总线VME扩展而成的微机化仪器专用总线。1997年美国NI公司推出了一种新的仪器总线标准PXI总线标准。制定PXI标准的目的是为了将PC的性能价格比优势和PCI总线面向仪器领域的必要扩展结合起来,以期形成一种主流的虚拟仪器测试平台。相对VXI仪器,按PXI总线标准制成的PXI仪器具有成本低、便于组成便携式测试系统等优点[2]。这些以PC为核心、由测量功能软件支持,具有虚拟控制面板、必要仪器硬件和通信能力的PC仪器或VXI仪器就是虚拟仪器。虚拟仪器技术的出现,使得用户可以自己定义仪器,灵活地设计仪器系统,满足多种多样的实际需求。随着虚拟仪器软件开发平台及硬件的开展,基于虚拟仪器的仪器系统的开发周期更短,费用更低,测量速度、准确度及可复用性提高,且更便于相应仪器系统的维护和扩展[3]。当今社会正处于一个正在高速开展的状态中,要在有限的时空内实现大量的信息交换,随之而来的是信息密度急剧增大,因而在研究和生产过程中要求数据采集系统对信息的处理速度越来越高,功能越来越强。先进的数据采集系统,不仅希望设备能够单独进展数据采集,还希望他们之间能够互相通信,构成数据采集系统,甚至是测试网络系统,实现信息共享,以便对众多的被测信号进展比照、综合和自动分析、从而得出准确的判断。然而传统的数据采集仪器在此方面受到很大的限制。基于虚拟仪器技术的数据采集系统的提出在一定程度上解决了传统数据采集所面临的问题,虚拟仪器数据采集系统成为当今数据采集系统开展的重要方向。本文正是在虚拟仪器技术的根基上对多通道数据采集系统进展了设计,实现多路信号的采集,并对实验数据进展实时显示、记录、分析处理。虚拟仪器的出现是仪器开展史上的一场革命,代表着仪器开展的最新趋势和新方向,并且是信息技术的重要领域扩大,对科学技术的开展和工业生产将产生不可估量的影响。本设计所做的工作多通道数据采集系统的设计本设计以3个通道进展设计,从传感器来的模拟输入信号,经过信号调理后,输入到NIPCI-6221数据采集卡,然后经过PCI总线送入PC机,由软件进展数据处理,包括数据的平均值滤波,采样波形的实时显示,并以一定的时间间隔插入数据库进展历史数据保存,边采集边保存,然后通过数据库技术实现了历史数据的检索。远程数据检索的设计关于远程数据检索局部,因为数据已保存到数据库里,通过网络很容易进展访问。本设计采用Apache+PHP+MySQL服务器套件来实现了采集数据的远程访问。虚拟仪器虚拟仪器技术概述虚拟仪器的概念虚拟仪器的概念是由美国国家仪器公司〔NationalInstruments〕最先提出的[4][5]。所谓虚拟仪器是基于计算机的软硬件测试平台,它可代替传统的测量仪器,如示波器、逻辑分析仪、信号发生器、频谱分析仪等;可集成于自动控制、工业控制系统之中;可自由构建成专有仪器系统。虚拟仪器是智能仪器之后的新一代测量仪器。虚拟仪器的核心技术思想就是“软件即是仪器〞。该技术把仪器分为计算机、仪器硬件和应用软件三局部。虚拟仪器以通用计算机和配备标准数字接口的测量仪器〔包括GPIB、RS-232等传统仪器以及新型的VXI模块化仪器〕为根基,将仪器硬件连接到各种计算机平台上,直接利用计算机丰富的软硬件资源,将计算机硬件〔处理器、存储器、显示器〕和测量仪器〔频率计、示波器、信号源〕等硬件资源与计算机软件资源〔包括数据的处理、控制、分析和表达、过程通讯以及图形用户界面〕有机的结合起来。虚拟仪器的特点及优势虚拟仪器是基于计算机的功能化硬件模块和计算机软件构成的电子测试仪器,而软件是虚拟仪器的核心[6][7][8],如图2.1所示,其中软件的根基局部是设备驱动软件,而这些标准的仪器驱动软件使得系统的开发与仪器的硬件变化无关。这是虚拟仪器最大的优点之一,有了这一点,仪器的开发和换代时间将大大缩短。虚拟仪器中应用程序将可选硬件〔如GPIB,VXI,RS-232,DAQ板〕和可重复用库函数等软件结合在一起,实现了仪器模块间的通信、定时与触发。源代码库函数为用户构造自己的虚拟仪器〔VI〕系统提供了基本的软件模块。由于VI的模块化、开放性和灵活性,以及软件是关键的特点,当用户的测试要求变化时可以方便地由用户自己来增减硬、软件模块,或重新配置现有系统以满足新的测试要求。这样,当用户从一个工程转向另一个工程时,就能简单地构造出新的VI系统而不丧失己有的硬件和软件资源。图2.1虚拟仪器开发框图虚拟仪器技术的优势在于可由用户定义自己的专用仪器系统,且功能灵活,很容易构建,所以应用面极为广泛。虚拟仪器技术十分符合国际上流行的“硬件软件化〞的开展趋势,因而常被称作“软件仪器〞。它功能强大,可实现示波器、逻辑分析仪、频谱仪、信号发生器等多种普通仪器全部功能,配以专用探头和软件还可检测特定系统的参数,如汽车发动机参数、汽油标号、炉窑温度、血液脉搏波、心电参数等多种数据;它操作灵活,完全图形化界面,风格简约,符合传统设备的使用习惯,用户不经培训即可迅速掌握操作规程。虚拟仪器和传统仪器的比较虚拟仪器具有传统独立仪器无法比较的优势〔如表1-1所示〕。在高速度、高带宽和专业测试领域,独立仪器具有无可替代的优势。在中低档测试领域,虚拟仪器可取代一局部独立仪器的工作,但完成复杂环境下的自动化测试是虚拟仪器的拿手好戏,是传统的独立仪器难以胜任的,甚至不可思议的工作。1〕传统仪器的面板只有一个,上面布置了种类繁多的显示和操作元件。由此导致许多识读和操作错误。虚拟仪器与之不同,它可以通过在几个分面板上的操作来实现比较复杂的功能。这样,在每个分面板上就可以实现功能操作的单纯化和面板布置的简洁化,从而提高操作的正确性和便捷性。同时,虚拟仪器的面板上的显示元件和操作元件的种类与形式不受标准元件和加工工艺的限制,由编程来实现,设计者可以根据用户的要求和操作需要来设计仪器面板。2〕在通用硬件平台确定后,软件取代传统仪器中由硬件完成的仪器功能。3〕仪器的功能是由用户根据需要用软件来定义,不是事先由厂家定义的。4〕仪器性能的改良和功能扩展只需更新相关软件设计,不需购置新仪器。5〕虚拟仪器开放、灵活,与计算机同步开展,与网络及其他周边设备互联。6〕由于其以PC为核心,使得许多数据处理的过程不必像过去那样由测试仪器本身来完成,而是在软件的支持下,利用PC机CPU的强大的数据处理功能来完成,使得基于虚拟仪器的测试系统的测试精度、速度大为提高,实现自动化、智能化、多任务测量。7〕可方便地存贮和交换测试数据,测试结果的表达方式更加丰富多样。8〕虚拟仪器在高性价比的条件下,降低系统开发和维护费用,缩短技术更新周期。表1.1虚拟仪器与传统仪器的比较虚拟仪器传统仪器开发维护费用低开发维护费用高技术更新周期短〔0.5~1年〕技术更新周期短〔5~10年〕软件是关键硬件是关键价格低价格昂贵开放、灵活与计算机同步,可重复用和重配置固定可用网络联络周边各仪器只可连有限的设备自动化、智能化、多功能、远距离传输功能单一,操作不便近年来,随着网络技术的开展,己经形成了网络虚拟仪器。这是一种新型的基于Web技术的虚拟仪器,使得虚拟仪器测试系统成为Internet/Intranet的一局部,实现现场监控和管理。在当前流行的C/S/D网络模式下,利用嵌入式技术〔包括数据库嵌入和网络模块的嵌入〕可以充分利用有效资源,提高测试效率。虚拟仪器测试系统的组成虚拟仪器是基于计算机的仪器。计算机和仪器的密切结合是目前仪器开展的一个重要方向。这种结合基本有两种方式,一种是将计算机装入仪器,其典型的例子就是所谓智能化的仪器。随着计算机功能的日益强大以及其体积的日趋缩小,这类仪器功能也越来越强大,目前已经出现含嵌入式系统的仪器。另一种方式是将仪器装入计算机。以通用的计算机硬件及操作系统为依托,实现各种仪器功能,虚拟仪器主要是指这种方式[9]。虚拟仪器的组成与传统仪器一样,主要由数据采集与控制、数据分析和处理、结果显示三局部组成。如图2.2所示。图2.2虚拟仪器的内部功能的划分对于传统仪器,这三个局部几乎均由硬件完成;对于虚拟仪器,前一局部由硬件构成,后两局部主要由软件实现。与传统仪器相比,虚拟仪器设计日趋模块化、标准化,设计工作量大大减小。通常虚拟仪器测试系统硬件组成局部是由传感器部件、信号调理及信号采集部件〔如外置或内置数据采集卡、图形图像采集卡及摄像机及其用于辅助测量并能与计算机通讯的常规仪器等〕、通用计算机、打印机等构成。系统软件局部通常用专用的虚拟仪器开发语言〔如LabVIEW〕编写而成,并可通过Internet实现网络扩展。虚拟仪器I/O接口设备I/O接口设备主要用来完成被测输入信号的采集、放大、模数转换。可根据实际情况采用不同的I/O接口硬件设备,如数据采集卡/板(DAQ)、GPIB总线仪器、VXI总线仪器、串口仪器、USB等。虚拟仪器的构成主要有五种类型[9],如图2.3所示。图2.3虚拟仪器构成方式1〕DAQ(DataAcquisition)数据采集卡是指基于计算机标准总线(如ISA、PCI、USB等)的内置功能插卡。其中USB是最新技术的数据采集卡,具有精度高,可携性好等优点,它更加充分地利用计算机的资源,大大增加了测试系统的灵活性和扩展性;利用DAQ卡可方便快速地构建虚拟仪器系统。在性能上,随着A/D转换技术,滤波技术和信号调理技术的开展,DAQ卡的采样速率已达1GB/s,精度高达24位,通道数高达64个,并具有数字I/O,模拟I/O和计数器/定时器等通道。各仪器厂家生产了大量的DAQ卡功能模块供用户选择,如示波器、串行数据分析仪、动态信号分析仪、任意波形发生器等。在计算机上挂接多个DAQ功能模块,配合相应的软件,就可以构成一台具有多功能的测试仪器。这种基于计算机的仪器,既具有高档仪器的测量品质,又能满足测量需求的多样性。对我国大多数用户来说,它具有很高的性能价格比,是一种特别适合我国国情的虚拟仪器方案。2〕GPIB(GeneralPurposeInterfaceBus)通用接口总线,是计算机和仪器的标准通信协议。GPIB的硬件规格和软件协议以纳入国际工业标准IEEE-488.1和IEEE-488.2,它是最早的仪器总线,目前多数仪器都配备了遵循IEEE-488的GPIB接口。典型的GPIB测试系统包括一台计算机,一块基于GPIB总线的接口卡和多台GPBI仪器软件及相应的传感模块硬件。每台GPIB仪器有单独的地址,由计算机控制操作。系统中的仪器可以增加、减少或更换,只需对计算机的控制软件作相应的改动。基于GPIB总线构造的接口卡数据传输速率一般低于500kb/s,不适合与对系统速度要求较高的应用。3〕VXI(VMEbuseXtensionforInstrumentation)是VME总线在仪器领域的扩展,上个世纪1993年VXI总线1.4版本被批准为IEEE-1155标准,成为开放式工业标准。仪器专用总线在吸收IEEE-488的成功经历根基上,增加了10MHz时钟线,模拟和数字混合总线,星形总线等高速总线,定时关系严格,兼有计算机总线和仪器总线的优点。4〕PXI(PCIeXtensionForInstrumentation)是CompactPCI总线在仪器领域的扩展,是NI公司于1997年发布的一种新的开放性、模块化仪器总线标准。其核心是CompactPCI构造和MicrosoftWindows软件。PXI是在PCI内核技术上增加了成熟的技术标准和要求形成的。PXI增加了用于多个板卡同步的触发总线和10MHz参考时钟、用于准确定时的星形触发总线,以及用于相邻模块间高速通信的局部总线等,来满足实验和测量用户的要求。PXI兼容CompactPCI机械标准,并增加了空气冷却装置、环境测试〔温度、湿度、振动和冲击实验〕等要求。这样可保证多厂商产品的互操作性和系统的易集成性。5〕串口系统是以Serial标准总线仪器与计算机为仪器精简平台组成的虚拟测试系统[10]。RS-232总线是早期采用的通用串行总线,将带有RS-232标准总线接口的仪器作为I/O接口设备,通过RS-232串口总线与计算机组成虚拟仪器系统目前仍然是虚拟仪器构成方式之一,主要适用于速度较低的测试系统。虚拟仪器的软件构造虚拟仪器技术的核心是软件,其软件基本构造如图2.4所示。用户可以采用各种编程软件来开发自己所需要的应用软件。以美国NI公司的软件产品LabVIEW和LabWindows/CVI为代表的虚拟仪器专用开发平台是当前流行的集成化开发工具。这些软件开发平台提供了强大的仪器软面板设计工具和各种数据处理工具,再加上虚拟仪器硬件厂商提供的各种硬件的驱动程序模块,简化了虚拟仪器的设计工作。随着软件技术的迅速开展,软件开发的模块化、复用化,和各种硬件仪器驱动软件的模块化、标准化,虚拟仪器软件开发将变得更加快速、方便。图2.4虚拟仪器软件构造虚拟仪器的开发软件虚拟仪器的开发语言虚拟仪器系统的开发语言有:标准C,VisualC++,VisualBasic等通用程序开发语言。但直接由这些语言开发虚拟仪器系统,是有相当难度的。除了要花大量时间进展测试系统面板设计外,还要编制大量的设备驱动程序和底层控制程序。这些工作对于那些不熟悉这方面知识的工程设计人员来说,要花费大量时间和精力,这样直接影响了系统开发的周期和性能。除了通用程序开发语言以外,还有一些专用的虚拟仪器开发语言和软件,其中有影响的开发软件有:NI公司的LabVIEW,LabWindows/CVI。LabVIEW采用图形化编程方案,是非常实用的开发软件。LabWindows/CVI是为熟悉C语言的开发人员准备的,是在Windows环境下的标准ANSIC开发环境。除此以外还有HP公司的HP-VEE,HP-TIG开发平台,美国Tektronix公司的Ez-Test,Tek-TNS平台软件,这些都是国际上公认的优秀的虚拟仪器开发软件平台[11]。图形化虚拟仪器开发平台——LabVIEWLabVIEW(LaboratoryVirtualInstrumentEngineering)是一种图形化的编程语言,它广泛地被工业界、学术界和研究实验室所承受,视为一个标准的数据采集和仪器控制软件。LabVIEW集成了与满足GPIB、VXI、RS-232和RS-485协议的硬件及数据采集卡通讯的全部功能。它还内置了便于应用TCP/PI、ActiveX等软件标准的库函数,是一个功能强大且灵活的软件。利用它可以方便地建设自己的虚拟仪器,其图形化的界面使得编程及使用过程都更加形象化。传统的文本式编程是一种顺序的设计思路,设计者必须写出执行的语句。而LabVIEW是基于数据流的工作方式,同时是基于图形化的编程,这使得设计者不必掌握大量的编程语言和程序设计技巧便可设计出虚拟仪器系统[11]。目前,在以PC机为根基的测试和工控软件中,LabVIEW的市场普及率仅次于C++/C语言。LabVIEW具有一系列无与伦比的优点:首先,LabVIEW作为图形化语言编程,采用流程图式的编程,运用的设备图标与科学家、工程师们习惯的大局部图标基本一致,这使得编程过程和思维过程非常相似;同时,LabVIEW提供了丰富的VI库和仪器面板素材库,近600种设备的驱动程序(可扩大)如GPIB设备控制、VXI总线控制、串行口设备控制、以及数据分析、显示和存储;并且LabVIEW还提供了专门用于程序开发的工具箱,使得用户能够设置断点,调试过程中可以使用数据探针和动态执行程序来观察数据的传输过程,更加便于程序的调试。因此,LabVIEW受到越来越多工程师、科学家的普遍青睐。利用LabVIEW,可产生独立运行的可执行文件,它是一个真正的32编译器。像许多通用的软件一样,LabVIEW提供了Windows、UNIX、Linux、MacintoshOS等多种版本[12]。基于LabVIEW平台的虚拟仪器程序设计所有的LabVIEW应用程序,即虚拟仪器(VI),它包括前面板(FrontPanel)、流程图(BlockDiagram)以及图标/连结器(Icon/Connector)三局部。1〕前面板:前面板是图形用户界面,也就是VI的虚拟仪器面板,这一界面上有用户输入和显示输出两类对象,具体表现有开关、旋钮、图形以及其他控制和显示对象。但并非画出两个控件后程序就可以运行,在前面板后还有一个与之对应的流程图。2〕流程图:流程图提供VI的图形化源程序。在流程图中对VI编程,以控制和操纵定义在前面板上的输入和输出功能。流程图中包括前面板上的控件连线端子,还有一些前面板上没有,但编程必须有的东西,例如函数、构造和连线等。如果将VI与传统仪器相比较,那么前面板上的控件对应的就是传统仪器上的按钮、显示屏等控件,而流程图上的连线端子相当于传统仪器箱内的硬件电路。在许多情况下,使用VI可以仿真传统仪器,不仅在屏幕上出现一个惟妙惟肖的标准仪器面板,而且其功能也与传统标准仪器相差无几。这种设计思想的优点表达在两方面:①类似流程图的设计思想,很容易被工程人员承受和掌握,特别是那些没有很多程序设计经历的工程人员。②设计的思路和运行过程清晰而且直观。如通过使用数据探针、高亮执行调试等多种方法,程序以较慢的速度运行,使没有执行的代码显示灰色,执行后的代码会高亮显示,同时在线显示数据流线上的数据值,完全跟踪数据流的运行。这为程序的调试和参数的设定带来诸多的方便。3〕图标/连接设计:这局部的设计突出表达了虚拟仪器模块化程序设计的思想。在设计大型自动检测系统时一步完成一个复杂系统的设计是相当有难度的。而在LabVIEW中提供的图标/连接工具正是为实现模块化设计而准备的。设计者可把一个复杂自动检测系统分为多个子系统,每一个都可完成一定的功能。这样设计的优点表达在如下几方面:①把一个复杂自动检测系统分为多个子系统,程序设计思路清晰,给设计者调试程序带来了诸多的方便。同时也对于将来系统的维护提供了便利。②一个复杂自动检测系统分为多个子系统,每一个子系统都是一个完整的功能模块,这样把测试功能细节化,便于实现软件复用,大大节省软件研发周期,提高系统设计的可靠性。③便于实现“测试集成〞和虚拟仪器库的思想。同时为实现虚拟仪器设计的灵活性提供了前提。系统设计理论及硬件平台的实现PC机虚拟仪器就是用通用计算机强大的数据处理能力代替以往需要硬件电路才能完成的功能,所以数据采集系统软件运行的计算机平台的选择至关重要。考虑到数据采集设备通常运行在工业现场,常常有较强的振动、电源干扰和电磁干扰。为了保证记录仪可靠的运行,设计时选定工业计算机。工业计算机采取了抗干扰措施,有利于计算机平台的可靠运行。另一方面的考虑是工业计算机通常具有很多类型的接口有利于功能进一步扩展的需要。推荐配置:处理器:Intel(R)Core(TM)2DuoCPUE6550@2.33GHz内存:1GB硬盘:160GB显卡:128M数据采集理论该局部主要包括数据采集技术概述,传感器,输入信号的分析、调理以及测量系统的选择,下面分别予以说明。数据采集技术概论在计算机广泛应用的今天,数据采集的重要性是十分显著的。它是计算机与外部物理世界连接的桥梁。各种类型信号采集的难易程度差异很大。实际采集时,噪声也可能带来一些麻烦。数据采集时,有一些基本原理要注意,还有更多的实际的问题要解决。假设现在对一个模拟信号x(t)每隔△t时间采样一次。时间间隔△t被称为采样间隔或者采样周期。它的倒数l/△t被称为采样频率,单位是采样数/每秒。t=0,△t,2△t,3△t……等等,x(t)的数值就被称为采样值。所有x(0),x(△t),x(2△t)都是采样值。这样信号x(t)可以用一组分散的采样值来表示:{x(0),x(△t),x(2△t),x(3△t),…,x(k△t),…}图3.1显示了一个模拟信号和它采样后的采样值。采样间隔是△t,注意,采样点在时域上是离散的。图3.1模拟信号采样图如果对信号x(t)采集N个采样点,那么x(t)就可以用下面这个数列表示:X={x[0],x[l],x[2],x[3],…,x[N-l]}这个数列被称为信号x(t)的数字化显示或者采样显示。这个数列中仅仅用下标变量编制索引,而不含有任何关于采样率(或△t)的信息。所以如果只知道该信号的采样值,并不能知道它的采样率,缺少了时间尺度,也不可能知道信号x(t)的频率。根据采样定理,最低采样频率必须是信号频率的两倍。反过来说,如果给定了采样频率,那么能够正确显示信号而不发生畸变的最大频率叫做恩奎斯特频率,它是采样频率的一半。如果信号中包含频率高于奈奎斯特频率的成分,信号将在直流和恩奎斯特频率之间畸变。图3.2和图3.3显示了一个信号分别用适宜的采样率和过低的采样率进展采样的结果。图3.2适宜采样率采样波形图3.3采样率过低采样波形采样率过低的结果是复原的信号的频率看上去与原始信号不同。这种信号畸变叫做混叠。出现的混频偏差是输入信号的频率和最靠近的采样率整数倍的差的绝对值。为了防止这种情况的发生,通常在信号被采集(A/D)之前,经过一个低通滤波器,将信号中高于奈奎斯特频率的信号成分滤去。理论上设置采样频率为被采集信号最高频率成分的2倍就够了,但实际上工程中选用5-10倍,有时为了较好地复原波形,甚至更高一些。采集系统的一般组成及各局部功能描述图3.4数据采集构造图图3.4表示了数据采集的构造。在数据采集之前,程序将对采集板卡初始化,板卡上和内存中的Buffer是数据采集存储的中间环节。需要注意的两个问题是:是否使用缓冲是否使用外触发启动、停顿或同步一个操作1〕缓冲(Buffers)这里的缓冲指的是PC内存的一个区域(不是数据采集卡上的FIFO缓冲),它用降临时存放数据。例如,你需要采集每秒采集几千个数据,在一秒内显示或图形化所有数据是困难的。但是将采集卡的数据先送到Buffer,你就可以先将它们快速存储起来,稍后再重新找回它们显示或分析。需要注意的是Buffer与采集操作的速度及容量有关。如果你的卡有DMA性能,模拟输入操作就有一个通向计算机内存的高速硬件通道,这就意味着所采集的数据可以直接送到计算机的内存。不使用Buffer意味着对所采集的每一个数据你都必须及时处理(图形化、分析等)。以下情况需要使用BufferI/O:①需要采集或产生许多样本,其速率超过了实际显示、存储到硬件,或实时分析的速度。②需要连续采集或产生AC数据(>10样本/秒),并且要同时分析或显示某些数据。③采样周期必须准确、均匀地通过数据样本。以下情况可以不使用BufferI/O:①数据组短小,例如每秒只从两个通道之一采集一个数据点。②需要缩减存储器的开支。2〕触发(Triggering)触发涉及初始化、终止或同步采集事件的任何方法。触发器通常是一个数字或模拟信号,其状态可确定动作的发生。软件触发最容易,你可以直接用软件,例如使用布尔面板控制去启动/停顿数据采集。硬件触发让板卡上的电路管理触发器,控制了采集事件的时间分配,有很高的准确度。硬件触发可进一步分为外部触发和内部触发。当某一模拟入通道发生一个指定的电压电平时,让卡输出一个数字脉冲,这是内部触发。采集卡等待一个外部仪器发出的数字脉冲到来后初始化采集卡,这是外部触发。许多仪器提供数字输出(常称为“triggerout〞)用于触发特定的装置或仪器,在这里,就是数据采集卡。以下情况使用软件触发:用户需要对所有采集操作有明确的控制,并且事件定时不需要非常准确。以下情况使用硬件触发:①采集事件定时需要非常准确。②用户需要削减软件开支。③采集事件需要与外部装置同步。传感器传感器局部是跟外界沟通的门户,负责把外界的各种物理信息,如光、压力、温度、声音等物理信号变成电信号。因为被测试对象的信号来源已经是变换好了的电信号,所以传感器局部在设计中没有得到具体表达,但是这局部是设计过程中必需要考虑的。信号调理从传感器得到的信号大多要经过调理才能进入数据采集设备,信号调理功能包括放大、隔离、滤波、鼓励、线性化等。由于不同传感器有不同的特性,除了这些通用功能外,还要根据具体传感器的特性和要求来设计特殊的信号调理功能。信号调理的通用功能如下[15][16]:1〕放大微弱信号都要进展放大以提高分辨率和降低噪声,使调理后信号的电压范围和A/D的电压范围相匹配。信号调理模块应尽可能靠近信号源或传感器,使得信号在受到传输信号的环境噪声影响之前已被放大,使信噪比得到改善。2〕隔离隔离是指使用变压器、光或电容耦合等方法在被测系统和测试系统之间传递信号,防止直接的电连接。使用隔离的原因:是从安全的角度考虑;二是隔离可使从数据采集卡读出来的数据不受地电位和输入模式的影响。如果数据采集卡的地与信号地之间有电位差,而又不进展隔离,那么就有可能形成接地回路,引起误差。3〕滤波滤波的目的是从所测量的信号中除去不需要的成分。大多数信号调理模块有低通滤波器,用来滤除噪声。通常还需要抗混叠滤波器,滤除信号中感兴趣的最高频率以上的所有频率的信号。另外,某些高性能的数据采集卡自身带有抗混叠滤波器。4〕鼓励信号调理也能够为某些传感器提供所需的鼓励信号,比方应变传感器、热敏电阻等就需要外界电源或电流鼓励信号。很多信号调理模块都提供电流源和电压源以便给传感器提供鼓励。5〕线性化许多传感器对被测量的响应是非线性的,因而需要对其输出信号进展线性化,以补偿传感器带来的误差。目前,数据采集系统也可以利用软件来解决这一问题。6〕数字信号调理即使传感器直接输出数字信号,有时也有必要进展调理,其作用是将传感器输出的数字信号进展必要的整形或电平调整。大多数数字信号调理模块还提供其他一些电路模块,使得用户可以通过数据采集卡的数字I/O比直接控制电磁阀、电灯、电动机等外部设备。输入信号的类型在进展数据采集前,必须对要采集的信号有所了解,因为不同信号的测量方式和对采集系统的要求是不同的,只有了解被测信号,才能选择适宜的测量方式和采集系统。任意一个信号是随时间而改变的物理量。一般情况下,信号所运载信息是很广泛的,比方:状态(State)、速率(Rate)、电平(Level)、形状(Shape)、频率成分(FrequencyContent)。根据信号运载信息方式的不同,可以将信号分为模拟或数字信号。数字信号又可分为开关信号和脉冲信号。模拟信号则可分为直流、时域、频域信号。1〕数字信号(Digital)第一类数字信号是开关信号(On-Off),如图3.5所示。一个开关信号运载的信息与信号的瞬间状态有关。TTL信号就是一个开关信号,一个TTL信号如果在2.0V到5.0V之间,就定义它为逻辑高电平,如果在0到0.8V之间,就定义为逻辑低电平。图3.5开关信号第二类数字信号是脉冲信号(PulseTrain),如图3.6所示。这种信号包括一系列的状态转换,信息就包含在状态转化发生的数目、转换速率、一个转换间隔或多个转换间隔的时间里。图3.6脉冲信号2〕模拟信号(Analog)模拟直流信号(DC)是静止的或变化非常缓慢的模拟信号,如图3.7所示。图3.7模拟直流信号直流信号最重要的信息是它在给定区间内运载的信息的幅度。常见的直流信号有温度、流速、压力、应变等。采集系统在采集模拟直流信号时,需要有足够的精度以正确测量信号电平。模拟时域信号(TimeDomain)运载的信息不仅有信号的电平,还有电平随时间的变化,如图3.8所示。在测量一个时域信号或者说是波形时,需要关注波形形状的特性,如斜度、峰值等。为了测量一个时域信号,必须有一个准确的时间序列,间隔也要适宜,以保证信号的有用局部被采集到。现实中存在许多不同的时域信号,比方心脏跳动信号、视频信号等,测量它们通常是因为对波形的某些方面的特性感兴趣。图3.8模拟时域信号模拟频域信号(FrequencyDomain)与时域信号类似,但从频域信号中提取的信息是信号的频域内容,而不是波形的形状,也不是随时间变化的特性,如图3.9所示。用于测量一个频域信号的系统必须有必要的分析功能,用于从信号中提取频域信息。为了实现这样的数字信号处理,可以使用应用软件或特殊的DSP硬件来迅速而有效地分析信号。模拟频域信号也很多,比方声音信号、地球物理信号、传输信号等。图3.9模拟频域信号现实中的信号并不是互相排斥的,一个信号可能运载有不只一种信息,可以用几种方式来定义信号并测量它,用不同类型的系统来测量同一个信号,从信号中取出需要的各种信息。输入信号的连接方式一个电压信号可以分为接地和浮动两种类型。测量系统可以分为差分(Differential)、参考地单端(RSE)、无参考地单端(NRSE)三种类型。1〕接地信号接地信号,就是将信号的一端与系统地连接起来,如大地或建筑物的地。因为信号用的是系统地,所以与数据采集卡是共地的。接地最常见的例子是通过墙上的接地引出线,如信号发生器和电源。2〕浮动信号一个不与任何地(如大地或建筑物的地)连接的电压信号称为浮动信号,浮动信号的每个端口都与系统地独立。一些常见的浮动信号的例子有电池、热电偶、变压器和隔离放大器。测量系统分类1〕差分测量系统(DEF)差分测量系统中,信号输入端与一个模拟入通道相连接。具有放大器的数据采集卡可配置成差分测量系统。图3.10描述了一个8通道的差分测量系统,用一个放大器通过模拟多路转换器进展通道间的转换。标有AIGND(模拟输入地)的管脚就是测量系统的地。一个理想的差分测量系统仅能测出(+)和(-)输入端口之间的电位差,完全不会测量到共模电压。然而,实际应用的板卡却限制了差分测量系统抵抗共模电压的能力,数据采集卡的共模电压的范围限制了相对与测量系统地的输入电压的波动范围。共模电压的范围关系到一个数据采集卡的性能,可以用不同的方式来消除共模电压的影响。如果系统共模电压超过允许范围,需要限制信号地与数据采集卡的地之间的浮地电压,以防止测量数据错误。图3.10八通道差分测量系统2〕参考地单端测量系统(RSE)一个RSE测量系统,也叫做接地测量系统,被测信号的一端接模拟输入通道,另一端连接系统地AIGND。图3.11表示了一个16通道的RSE测量系统。图3.11十六通道RSE测量系统3〕无参考地单端测量系统(NRSE)在NRSE测量系统中,信号的一端接模拟输入通道,另一端接一个公用参考端,但这个参考端电压相对于测量系统的地来说是不断变化的。图3.12说明了一个NRSE测量系统,其中AISENSE是测量的公共参考端,AIGND是系统的地。图3.12十六通道NRSE测量系统选择适宜的测量系统两种信号源和三种测量系统一共可以组成如表3.1的六种连接方式:表3.1测量系统连接方式接地信号浮动信号DEF☆☆RSE☆☆NRSE☆☆其中,推荐使用带☆号的方式。从上表可以看出,浮动信号和差分连接方式的系统较好。但实际测量时还要看情况而定。1〕测量接地信号测量接地信号最好采用差分或NRSE测量系统。如果采用RSE测量系统时,将会给测量结果带来较大的误差。图3.13表达了一个用RSE测量系统去测量一个接地信号源的弊端。在本例中,测量电压Vm是测量信号电压Vs和电位差DVg之和,其中DVg是信号地和测量地之间的电位差,这个电位差来自于接地回路电阻,可能会造成数据错误。一个接地回路通常会在测量数据中引入频率为电源频率的交流和偏置直流干扰。一种防止接地回路形成的方法就是在测量信号前使用隔离方法,测量隔离之后的信号。如果信号电压很高并且信号源和数据采集卡之间的连接阻抗很小,就可以采用RSE系统,因为此时接地回路电压相对于信号电压来说很小,信号源电压的测量值受到接地回路的影响可以忽略。图3.13RSE测量系统测量浮动信号2〕测量浮动信号测量浮动信号可以采用DEF、RSE、NRSE方式测量浮动信号。在差分测量系统中,应首先保证相对于测量地的信号的共模电压在测量系统设备允许的范围之内。如果采用差分或NRSE测量系统,放大器输入偏置电流会导致浮动信号电压偏离数据采集卡的有效范围。为了稳住信号电压,需要在每个测量端与测量地之间连接偏置电阻,如图3.14所示。这样就为放大器输入到放大器的地提供了一个直流通路。这些偏置电阻的阻值应该足够大,这样使得信号源可以相对于测量地浮动。对低阻抗信号源来说,10kΩ到100kΩ的电阻比较适宜。如果输入信号是直流,就只需要用一个电阻将(-)端与测量系统的地连接起来。然而如果信号源的阻抗相对较高,从免除干扰的角度而言,这种连接方式会导致系统不平衡。在信号源的阻抗足够高的时候,应该选取两个等值电阻,一个连接信号高电平(+)到地,一个连接信号低电平(-)到地。如果输入信号是交流,就需要两个偏置电阻,以到达放大器的直流偏置通路的要求。图3.14测量浮动信号总的来说,不管测量接地还是浮动信号,差分测量系统是很好的选择,因为它不但防止了接地回路干扰,还防止了环境干扰。相反,RSE系统却允许两种干扰的存在,在所有输入信号都满足以下指标时,可以采用RSE测量方式:输入信号是高电平(一般要超过1V);连线比较短(一般小于5米)并且环境干扰很小或屏蔽良好;所有输入信号都与信号源共地。当有一项不满足要求时,就要考虑使用差分测量方式。值得注意的一点是信号源的阻抗大小。电池、RTD、应变片、热电偶等信号源的阻抗很小,可以将这些信号源直接连接到数据采集卡上或信号调理硬件上。直接将高阻抗的信号源接到插入式板卡上会导致出错。为了更好的测量,输入信号源的阻抗与插入式数据采集卡的阻抗相匹配。数据采集卡的选择数据采集板卡的性能与众多因素相关,要根据具体情况来具体分析。所以在选择数据采集卡构成系统时,首先必须对数据采集卡的性能指标有所了解。数据采集卡的主要性能指标1〕采样频率采样频率的上下,决定了在一定时间内获取原始信号信息的多少,为了能够较好的再现原始信号,不产生波形失真,采样率必须要足够高才行。根据奈奎斯特理论采样频率至少是原信号的两倍,但实际中,一般都需要5~10倍。2〕采样方法采集卡通常都有好几个数据通道,如果所有的数据通道都轮流使用同一个放大器和A/D转换器,要比每个通道单独使用各自的经济的多,但这仅适用于对时间不是很重要的场合。如果采样系统对时间要求严格,则必须同时采集,这就需要每个通道都有自己的放大和A/D转换器。但是处于成本的考虑,现在普遍流行的是各个数据通道公用一套放大器和A/D转换器。3〕分辨率ADC的位数越多,分辨率就越高,可区分的电压就越小。例如,三位的A/D转换把模拟电压范围分成23=8段,每段用二进制代码在000到111之间表示。因而,数字信号不能真实地反映原始信号,因为一局部信息被漏掉了。如果增加到十二位,代码数从8增加到212=4096,这样就可以获得就能获得十分准确的模拟信号数字化表示。4〕电压动态范围电压范围指ADC能扫描到的最高和最低电压。一般最好能够使进入采集卡的电压范围刚好与其符合,以便利用其可靠的分辨率范围。例如,一个12位多功能DAQ卡,其可选的范围从0到10V,或-5到+5V,其可选增益有1,2,5,10,20,50或100。电压取值范围从0到10V,增益为50,则理想分辩电压是:5〕I/O通道数该参数说明了数据采集卡所能够采集的最多的信号路数。数据采集卡(DAQ卡)的组成1〕多路开关。将各路信号轮流切换至放大器的输入端,实现多参数多路信号的分时采集。2〕放大器。将切换进入采集卡的信号放大至需要的量程内。通常中的放大器都是增益可调的,使用者可根据需要来选择不同的增益倍数。3〕采样保持器。把采集到的信号瞬间值,保持在A/D转换的过程中不变化。4〕A/D转换器。将模拟的输入信号转化为数字量输出,完成信号幅值的量化。目前,通常将采样保持器和A/D转换器集成在同一块芯片上。以上四个局部是数据采集卡的重要组成局部,与其他的电路如定时/计数器、总线接口等电路仪器组成DAQ。NIPCI-6221数据采集卡NIPCI-6221是NI公司的M系列多功能数据采集卡,采用的是一个A/D转换器,虽然是多路采集,实际上是分时工作的,所有在多路同时工作时采样率会成倍降低。该板卡的主要性能如下:◆16路模拟信号输入通道,采样率为250kS/s,输入范围为-10V~+10V;◆2路模拟量输出通道,分辨率为16位;◆24路数字I/O,数字触发;◆2个32位定时计数器;◆NI-DAQmx测试软件和硬件配置支持;◆NI-MCal校准支持;◆NIST校准证书和多于70多种的信号调理模块选择。基于以上原因,本设计选择了NIPCI-6221数据采集卡。多通道数据采集系统总体硬件框图整个系统从被测对象开场,通过传感器转换成电信号,经过信号调理模块进展简单的信号出来,比方SCC-RTD01热电阻调理模块、SCC-TD02热电偶调理模块、SCC-SG04全桥应变片调理模块,将信号送至数据采集卡进展采集,然后用软件进展处理。在采集过程中将数据保存到数据库里,实现了历史数据的远程访问。具体框图见图3.15多通道数据采集系统硬件构造图。图3.15多通道数据采集系统硬件构造图系统软件设计的相关技术软件是虚拟仪器的关键。设计一个虚拟仪器系统,在硬件平台确定之后,就可以通过设计不同的软件,实现不同的仪器功能。在设计、实现虚拟仪器的软件系统时,需要考虑众多因素,如硬件需求、计算机硬件、操作系统;软件是否建设在开放的构造上,是否需要编程经历利用此软件程序是否能在不同的计算机平台上移植?将来能否方便的扩展虚拟仪器的功能。由于选用专用的开发软件,必须具有一定的仪器以及数据采集设备配合使用。程序模块化设计概述数据采集系统的性能在很大程度上取决于其应用软件的研究与开发,所以在明确了系统设计目标之后,应该采用好的程序开发方法,如构造化设计方法、模块化思想、多线程以及软件系统的评价标准等等。程序设计的模块化原则模块化构造是所有设计良好的软件系统的基本特点,任何一个大的程序系统,总是由假设干功能相对独立的模块组成。好的软件构造应表达自顶向下的控制方式,模块之间的控制表现为统帅和附属的关系[13]。图4.1模块化构造信息抽象与信息隐含是模块的基本特征。模块(Module)实际上反映了数据(Data)与过程(Process)的抽象。在模块化问题求解时,在最高抽象级可以采用面向问题的环境语言的抽象术语进展描述;而在较低抽象级,则可采用过程性术语。模块化的概念加上逐步求精的方法,就把面向问题的术语和面向实现的术语两者结合起来。模块独立性有两个定性的标准度量:即块内联系(内聚)与块间联系(耦合),如图4.1所示。块间联系是指模块之间的联系,块间联系越小,模块独立性越高。块内联系是指模块内部各局部(语句与语句段)之间的联系。一个模块的块内联系大,模块独立性会提高。好的模块构造,块间联系应尽可能小,块内联系应尽可能大。软件系统的模块化设计原则为使研制出的软件具有良好的可靠性、易维护性、易扩大性及易装卸性,软件设计应遵循标准化的模块化设计原则[13]。1〕自顶向下逐步求精的设计方法软件设计往往在开场时不了解问题的全部细节,只能对问题做出全局性的决策,即设计表征解决问题一般策略的抽象算法。对抽象算法做进一步求精,进入下一层抽象。在求精过程的每一步,抽象概念(语句或数据)都被精细化。2〕根据逻辑功能划分物理模块①模块的分解:消除重复的功能局部,使得模块的块内联系较高,块间联系较低。②模块的合并;③模块的复制。3〕模块的作用范围应处在模块的控制范围之内模块的作用范围是指模块内判定影响的范围。只要某模块中含有依赖于某种判定操作,则该模块就处于该判定的作用范围之内。4〕依据逻辑功能确定模块之间的调用关系模块之间的调用与被调用,决定于模块各自的逻辑功能,因而对模块的扇入扇出并无加以限制的必要。一般来讲,底层模块的扇入较高,顶层模块的扇出较高。5〕模块接口应保持简明降低模块接口的复杂性,是模块设计中必须考虑的问题。保持模块接口的简明,一方面须减少模块间传递的信息量,更重要的是使所传递的必要信息具有明确的逻辑含义。6〕模块应保持单入口性质单入口模块,易于理解。由于副作用的减少,可以降低错误的发生率。模块的出口可以有多个,但均应具有明确的逻辑含义。7〕模块构造增加中间判断层次,提高可扩大性图4.2-a,模块A调用B,以后扩大时还要让A调用C(图4.2-b)。这样在扩展时,除增加C外,尚须修改A,这种修改可能是困难的。图4.2-c,增加了一个中间判断层模块F,以一个开关量Flag决定模块A要调用的模块,这样对A的修改,仅局限于Flag的设置,大大较少了工作量。图4.2模块构造增加判断层次本设计的软件系统模块划分系统程序的主要功能为模块划分的标准,其他包括系统管理,数据采集,数据保存,历史数据的查询等功能。具体构造见图4.3多通道数据采集功能模块图。图4.3多通道数据采集功能模块图数据库技术数据库技术主要研究若何存储、使用和管理数据,是计算机数据管理技术开展的新阶段,也是计算机技术中开展最快、应用最广的技术之一。当前,数据库技术已成为现代计算机信息系统和应用系统开发的核心技术,数据库已成为计算机信息系统和应用系统的组成核心,从某种意义来讲,数据库的建设规模、数据库信息量的大小和使用频度已成为衡量一个国家信息化程度的重要标志。数据库技术概述数据库技术涉及到以下几个最重要的概念:1〕数据库(DataBase)是长期储存于计算机内、有组织的、可共享的数据集合。数据库中的数据按一定的数据模型组织、描述和储存,具有较小的冗余度、较高的数据独立性和易扩展性,并可为一定范围内的各种用户共享。数据库不仅要反映数据本身的内容,而且要反映数据之间的联系。在数据库中用数据模型〔DataModel〕这个工具来抽象、表示和处理现实世界中的数据和信息。2〕数据模型是数据特征的抽象,描述的是数据的共性。数据模型应满足三个方面的要求:一是能比较真实地模拟现实世界;二是容易为人们所理解;三是便于在计算机上实现。一种数据模型要很好地满足这三个方面的要求在目前尚很困难,在数据库系统中针对不同的使用对象和应用目的,采用逐步抽象的方法,在不同层次采用不同的数据模型,一般分为三层,即物理层、逻辑层和概念层。物理层是数据抽象的最低层,用来描述数据物理存储构造和存储方法。逻辑层是数据抽象的中间层,描述数据库数据整体的逻辑构造。概念层是抽象级别的最高层,其目的是按用户的观点来对世界建模。例如实体-联系模型〔Entity-RelationalModel,简称ER模型〕。3〕数据库管理系统〔DBMS,DataBaseManagementSystem〕是操纵和管理数据库的软件系统,它由一组计算机程序构成,管理并控制数据资源的使用。它是数据库系统的核心,主要是实现对共享数据有效的组织、管理和存取,它的基本功能包括以下几个方面:①数据定义功能:对数据库的构造进展描述,包括外模式、模式、内模式的定义;数据库完整性的定义;安全保密定义〔如用户口令、级别、存取权限〕;存取路径〔如索引〕的定义等。②数据操纵功能:DBMS还提供数据操纵语言,用户可以使用DML操纵数据,实现对数据库的基本操作,如检索、插入、删除和修改等。DML有两类:一类是宿主型语言,一类是自立型语言。③数据库的运行管理:数据库在建设、运用和维护时由数据库管理系统统一管理、统一控制,以保证数据的安全性、完整性、多用户对数据的并发使用及发生故障后的系统恢复,从而保证数据库系统的正常运行。④数据组织、存储和管理功能:DBMS要分类组织、存储和管理各种数据,包括数据字典、用户数据、存取路径等。⑤数据库的建设和维护功能:它包括数据库初始数据的输入、转换功能,数据库的转储、恢复功能,数据库的重组织功能和性能监视、分析功能等。⑥其他功能:DBMS与网络中其他软件系统的通信功能、DBMS之间或文件系统的数据转换功能;异构数据库之间的互访和互操作功能等。ADO与数据库的交互技术ADO是独立于开发工具和开发语言的数据访问接口,它提供了程序开发人员、应用程序实时存取各类数据库的能力,可以轻松地完成对各类数据库的查询,存取等操作。ADO又被称为通用数据访问(UDA),其数据源包括数据库,电子邮件,文件,文本,图形等。使用ADO不仅可以读取Access和SQLServer数据库,也可以读取其他与ODBC兼容的数据库。ADO对数据库的操作步骤一般分为如下几步:①创立数据源名(DSN);②创立数据库连接(Connection);③创立数据库对象;④操作数据库;⑤关闭数据库对象和连接。MySQL数据库MySQL是一个小型关系型数据库管理系统,开发者为瑞典MySQLAB公司。目前MySQL被广泛地应用在Internet上的中小型网站中。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库。SQL是一种标准化的语言,它使得存储、更新和存取信息更容易。例如,你能用SQL语言为一个网站检索产品信息及存储顾客信息,同时MYSQL也足够快和灵活以允许你存储记录文件和图像。MYSQL主要目标是快速、强健和易用。MYSQL建设的根基是业已用在高要求的生产环境多年的一套实用例程。尽管MYSQL仍在开发中,但它已经提供一个丰富和极其有用的功能集。MYSQL的主要特点如下:1〕完全多线程,适于多CPU使用。2〕提供C、C++、JAVA(JDBC)、Perl、Python、PHPandTCL的API接口。3〕多平台,包括:Solaris、SunOS、BSDI、SGI、IR-IX、AIX、DEC、UNIX、LinuxFreeBSD、SCOOpenServer、NetBSD、OpenBSD、HPUX、Win9xandNT.(各台支持的功能不尽一样)。4〕数据类型多样,包括:有/无符号1,2,3,4,8字节INT、FLOAT、DOUBLE、CHAR、VARCHAR、TEXT、LOB、DATE、DATETIME、YEAR、SET、ENUM。5〕非常灵活和安全的权限系统,密码加密。6〕为Win9X提供ODBC接口,可通过Access与之相联,另有第三方开发商提供多样的ODBC驱动程序。7〕可处理大型数据(超过5千万个记录),表大小限于OS的文件大小:Linux为2G,Solaris2.5.1为4G,Solaris2.6为1000G。8〕经权威商业内存泄露软件检测无内存泄露。9〕多种语言支持。Web技术Web技术概述Web技术的迅猛开展,使全人类都能共享Web上的各类资源,包括功能强大的计算资源、海量信息的数据库资源、五花八门的多媒体信息资源、门类齐全的软件工具资源等,这些使得任何人能在任何时间、任何地点和任何设备上获得所需要的信息资源。从本质上讲Web技术是各种技术的集成与综合应用,它以TCP/IP协议为根基,使用HTML描述网络的资源,通过超文本〔Hypertext〕、超媒体〔Hypermedia〕技术实现超级链接,无论文本、图形,还是动画、声音都能通过文挡中的链接连接到服务器上的其它文档或其它站点,使客户以用交互方式快速地搜索所需要的资料,通过表单供用户填写并通过服务器应用程序提交给数据库等。自从Web的产生到现在,Web技术已从最初简单的文档的浏览开展到当今复杂电子商务的应用,其间共经历了静态文档、动态交互页面和实时可伸缩的事务处理三个阶段。从静态技术到动态技术,从开发平台到应用模型,从传统Web到语义化Web,Web经历了一次又一次的技术浪潮,也面临更为严峻的技术挑战。Web1.0的主要特点在于用户通过浏览器获取信息,而Web2.0则更注重用户的交互作用,用户既是网站内容的消费者(浏览者),也是网站内容的制造者。主要包括:博客(BLOG)、RSS、百科全书(Wiki)、网摘、社会网络(SNS)、P2P、即时信息(IM)、智能搜索引擎等。Web客户端开发技术有VB、VC、PB等。服务器端开发技术有ASP、JSP/Servlet、JDBC、JavaBean、PHP等。使用这些技术生成动态页面、操纵数据库、建设Web站点。近年来在Web服务端更多Web开发环境支持MVC〔Model-View-Contorller〕设计模型,为开发者提供了全套的开发框架。评估一种Web开发技术优劣的标准只有一个,那就是看这种技术能否在最恰当的时间和最恰当的地点,以最恰当的方式,为最需要信息的人提供最恰当的信息服务。基于Web技术的应用系统,用户直接面对的是客户端浏览器,用户在使用系统时,请求之后的事务逻辑处理和数据的逻辑运算由服务器与数据库系统共同完成,对用户而言是完全透明的,运算后得到的结果再通过浏览器的方式返回给用户。这个过程可分成一些子步骤,每一个子步骤的完成可理解为通过一个单独的应用服务器来处理,这些应用服务器在最终得到用户所需的结论之前,相互之间还会进展一定的数据交流和传递。如图4.4所示。图4.4Web应用构造简图PHP技术PHP(HypertextPreprocessor)是一种用于创立动态Web页面的服务器脚本语言。PHP大量采用C、Java和Perl语言的语法,并参加了一些PHP自己的特征。PHP支持的身份认证,支持Cookie,支持GIF图像创立等。其中,最有代表性的特点在于它强大的数据库支持功能,所有主流与非主流数据库它几乎都支持,这使得编写基于数据库的网页变得非常简单。1〕PHP的特性①易学易用PHP的语法构造借用了C、Perl的优秀局部,有以上语言编程经历的开发人员可快速地掌握PHP并将其投入实际使用。②运行速度快PHP采用HTML内置标记技术,解释程序本身可以作为Web服务器的一个模块运行,有效地提高了运行时的解析速度。经测试说明,在Web站点访问量非常大时,PHP的解析速度相当于传统CGI程序的4倍!③跨多个平台目前PHP可在Windows、UNIX、Linux的Web服务器上正常运行,支持IIS、Apache等通用Web服务器。④强大的数据库支持PHP直接为很多数据库提供内置的链接,包括Oracle、SyBase、PostgreSQL、MySQL、Informix、DBASE、SOLID、Access等,并完全支持ODBC接口,但凡支持ODBC接口的数据库,PHP都可以为其提供有力的支持。⑤先进的扩展功能PHP不但内置了对文件上传、密码认证、Cookies操作、邮件收发、动态GIF生成等功能的支持,还提供了对GZIP文件、PDF、XML的直接支持。⑥完全免费2〕PHP的工作方式①嵌入HTML的方式传统的程序设计语言所编制程序的源代码都要经编译程序编译后生成一个可执行的文件。而PHP脚本是经PHP解释器生成的显式的HTML标识,不必编译成可执行文件。用户可以把程序代码嵌入到HTML中。②PHP运行在服务器端PHP脚本在Web服务器端的运行方式是:当Web服务器接收到一个Web页面请求时,假设请求的是HTML文件,则Web服务器直接把文件提供应浏览器解释执行;假设请求的是以PHP为扩展名的文件,则Web服务器先执行程序php.exe对两个PHP分界符号之间的PHP程序进展分析,然后再根据程序运行时各种不同的条件将PHP程序转换为相应的HTML代码,再把HTML代码提供应客户端的Web浏览器。图4.5PHP在服务器端运行方式远程数据访问系统该局部设计是整个系统的附加设计局部,主要是为了实现数据的远程访问,通过数据库与数据采集系统连接为一体。采集数据的远程访问表达了数据采集的网络化的延伸。该远程访问系统是采用Apache+PHP+MySQL开发套件进展开发的。当然,这局部需要配置服务器,网上很多资料可以参考。主要是利用PHP建设数据库的连接,在本设计中主要实现了用户登录页面,检索条件输入页面,结果返回页面。具体实现代码见附录。多线程技术为了实现多通道数据采集的功能,本设计的软件局部必须实现信号的采集、数据的分析处理、定时存储及实时显示等功能。在用户看来,这些任务是同时进展着的。实际上,信号采集、定时存储和主控模块放在不同的线程中,利用Windows操作系统的多线程机制,使得各个功能模块能够有条不紊的运行。本设计把用户命令输入、信号动态显示和历史数据的查询、分析处理放在主线程中实现,而把信号采集和定时存储功能分别放到两个工作线程中。Windows的多线程机制Windows是一个多任务操作系统,每个运行的程序对应着一个进程,而在一个进程内又可以有几个线程。Windows系统把CPU的运行分成许多小的时间片,按各个进程和进程内线程的优先级进展分配,从而使多个程序能“同时〞运行。在同一进程内的不同线程都在自己的时间片内执行,防止了相互在时间上可能的冲突。LabVIEW与多线程应用多线程技术,可以使得多个独立的任务并发执行,从而极大地提高程序的效率。LabVIEW把线程管理、线程间的通信等复杂操作封装了起来,因此用户可以不用学习复杂的多线程编程就可以编写多线程程序。在LabVIEW中,图形化编程为开发多线程代码带来了很大的好处,因为在数据流的编程环境中,用户可以很容易地“看到〞并行代码,例如两个独立的循环或子VI就代表两段可以并发执行的代码。多线程的优点:1〕更高的CPU利用率2〕更高的系统可靠性3〕提高在多处理器计算机上的执行速度多线程技术在本设计中的应用为了实现采集、显示、查询、报警和系统其他操作的并行执行,在程序中创立了两个工作线程:一个是采样工作线程,专门负责数据采集和存储;一个是数据报警和系统其他功能线程,负责定时把缓冲区中的数据存盘。在用户启动系统工作时,这两个工作线程被创立。但不同的是,采样工作线程是在循环往复的工作着,直到退出程序;而数据存储线程则是在一定的时刻被唤醒,比方在数据缓冲区满、或程序完毕等时候,更多的时候,存储模块是处于挂起的状态。因为信号的采集工作和数据存储工作是长时间甚至常年累月运行着,这也是工业生产的实际情况所决定的。通过采用多线程技术,实现了实时性要求高的数据采集与程序其它功能(如数据显示、读取、存储等)在时间上的相互独立,防止它们在时间上可能产生的冲突,提高了数据采集的稳定性[14]。循环之间的数据传递即线程间的数据传递,可以由局部变量、全局变量、共享变量和队列等方式实现。循环之间的同步即线程之间的同步,这可以由同步技术来实现。如果需要为两个循环设置不同的优先级,可以通过定时循环来实现。系统具体应用程序的实现数据采集程序系统采用的是NIPCI-6221采集卡,由于该卡支持DAQmx驱动程序,所以本设计是直接使用DAQmx-DataAcquisition开发的,在这局部中,主要是采集参数的设置,其中

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论