CVI简介
随着电子技术、计算机技术的高速发展及其在电子测量技术与仪器领域的应用,新的测试理论、测试方法、测试领域以及仪器结构不断出现,电子测量仪器的功能和作用也发生了质的变化,仪器与计算机技术的深层次结合产生了全新的仪器结构概念——虚拟仪器。它的出现使测试仪器与计算机之间的界限消失,从此开始了测量仪器的新时代。虚拟仪器强调软件的作用,提出了“软件就是仪器”的概念。 1、 虚拟仪器技术
随着计算机技术、大规模集成电路技术和通信技术的飞速发展,仪器技术领域发生了巨大的变化,美国国家仪器公司(National Instruments,简称NI)于20世纪80年代中期首先提出基于计算机技术的虚拟仪器的概念,把虚拟测试技术带入新的发展时期,随后研制和推出了基于多种总线系统的虚拟仪器。经过十几年的发展,虚拟仪器技术将高速发展的计算机技术、电子技术、通信技术和测试技术结合起来,开创了个人计算机仪器时代,是测量仪器工业发展的一个里程碑。 1.1虚拟仪器概念 1.虚拟仪器概念 所谓虚拟仪器,就是在以个人计算机为核心的硬件平台上,由用户设计定义、具有虚拟面板、测试功能由测试软件实现的一种计算机仪器系统。操作者用鼠标或键盘操作虚拟面板, 就如同使用一台专用测量仪器,虚拟仪器的出现使测量仪器与个人计算机的界限模糊了。 虚拟仪器的实质是利用计算机显示器的显示功能来模拟传统仪器的控制面板,以多种形式表达输出检测结果,利用计算机强大的软件功能实现数据信号的运算、分析和处理,利用I/O 接口设备完成信号的采集、测量和处理,从而完成各种测试功能的一种计算机仪器系统。“虚拟”主要包含以下两方面的含义。
1) 新能源强的面板
虚拟仪器面板上的各种“控件”与传统仪器面板上的各种“器件”所完成的功能是相同的。如由各种开关按键显示器等实现仪器电源的“通”、“断”,被测信号“输入通道”、“放大倍数”等参数设置,测量结果“数值显示”、“波形显示”等。
传统仪器面板上的器件都是实物,而且都通过手动和触摸完成操作的,而虚拟仪器面板控件是外形与实物相似的图表,“通”、“断”、“放大”等对应着相应的软件程序,这些软件已经设计好了,用户只需选用代表该种软件程序的图形控件即可,用计算机的鼠标对其进行操作。因此,设计虚拟面板的过程就是在面板设计窗口中摆放所需的控件,然后编写相应的程序。
2) 由软件编程来实现的虚拟仪器测量功能
在以PC为核心的硬件平台支持下,虚拟仪器不仅可以通过软件编程设计来实现仪器的测试功能,而且可以通过不同测试功能的软件模块的组合来实现多种测试功能。因此在硬件平台确定后就有了“软件就是仪器”的说法,这也体现了测试技术与计算机计算的深层次结合。 2.虚拟仪器的特点
虚拟仪器测试系统由三大功能模块组成:信号的采集与控制、信号的分析与处理、结果的显示与输出,即由完成数据采集功能的硬件部分和完成信号分析处理功能的软件部分组成。 硬件部分一般为各种形式的数据采集设备,将采集到的各种形式的信号转换成电信号后输入到计算机内。计算机通过软件实现从计算机的各类接口中读取数据,完成信号分析处理,并将处理结果显示出来。
虚拟仪器是在计算机的基础上完成各种测试分析功能的一种计算机化仪器系统。它将计算机资源和插卡式仪器硬件,以及用于数据采集、信号分析、图形用户界面的应用软件有效地结
合起来进行数据的分析测试。与传统仪器相比,虚拟仪器有以下几个特点。 (1) 功能由用户自己定义。
(2) 面向应用的系统结构,可方便地与网络外设、应用程序等连接; (3) 展开图形操作界面、计算机完成读数、分析处理。 (4) 数据可编辑、存储、打印。
(5) 价格低廉(是传统仪器价格的五至十分之一)。 (6) 基于计算机技术开放的功能模块可构成多种仪器。 (7) 技术更新快(周期为1~2年)。
(8) 基于人机体系的结构,大大节省开放维护费用。 (9) 个人可以拥有一个实验室。
虚拟仪器系统已成为仪器领域的一个基本方案,是技术进步的必然结果。虚拟仪器技术先进,十分符合国际上流行的“硬件软件化”的发展趋势,被人们广泛的称为“软件仪器”。由于虚拟仪器以计算机为基础,随着计算机的高速发展,虚拟仪器可以方便的向智能化、网络化方向发展。虚拟仪器的技术优势使得其应用广泛,尤其是在科研、开发、测量、检测、测控等领域更是不可多得的好工具,必将对科学技术的发展和国防、工业、农业的生产产生巨大的影响。 1.2虚拟仪器的设计及应用
1.虚拟仪器的构成
虚拟仪器有通用仪器硬件平台(简称硬件平台)和应用软件两大部分构成 1) 通用仪器硬件平台
虚拟仪器的硬件平台有两部分构成 (1) 计算机
一般为一台PC或者工作站,它是硬件平台的核心。
(2) I/O接口设备
I/O接口设备主要完成被测输入信号的采集、放大、模/数转换。根据采用的不同总线机器相应的I/O接口硬件设备,如利用PC总线的数据采集卡/板(DAQ)、GPIB总线仪器模块、VXI总线仪器模块、PXI总线仪器模块、串口总线仪器等,虚拟仪器的构成方式主要有5种类型。
①PC-DAQ系统:它是以数据采集版、信号调理电路及计算机为仪器硬件平台组成的插卡式虚拟仪器系统。这种系统采用PCI或ISA计算机本身的总线,故将数据采集卡/板(DAQ)插入计算机的空槽中即可。
②GPIB系统:它是以GPIB标准总线仪器模块与计算机为仪器硬件平台组成的虚拟仪器测试系统。
③VXI系统:它是以VXI标准总线仪器模块与计算机为仪器硬件平台组成的虚拟仪器测试系统。
④PXI系统:它是以PXI标准总线仪器模块与计算机为仪器硬件平台组成的虚拟仪器测试系统。
⑤串口系统:它是以Serial标准总线仪器模块与计算机为仪器硬件平台组成的虚拟仪器测试系统。
无论上述哪种虚拟仪器系统,都是通过应用软件将仪器硬件与通用计算机相结合的,其中,PC-DAQ系统三构成虚拟仪器的最基本的方式。
2) 软件结构
虚拟仪器软件有两大部分组成。 ⑴应用程序
应用程序包含以下两方面:
①实现虚拟面板功能的前面板软件程序; ②定义测试功能的流程图程序软件。 ⑵I/O接口仪器驱动程序
I/O接口仪器驱动程序完成特定外部硬件设备的扩展、驱动与通信。
开发虚拟仪器必须有合适的软件工具,目前的虚拟仪器软件开发工具如下两类: ①文本式编程语言,如Visual C++、Visual BASIC、LabWindows/CVI; Visual C++是Microsoft公司推出的开发Win32环境程序,面向对象的可视化集成编程系统。它不但具有程序框架自动生成、灵活方便的类管理、代码编写和界面设计集成交互操作、可开发多种程序等优点,而且通过简单的设置就可使其生产的程序框架支持数据库接口、OLE2,WinSock网络、3D控制界面。它拥有“语法高亮”,IntelliSense(自动编译功能)已经高级除错功能而著称。比如,它允许用户进行远程调试,单步执行等。还有允许用户在调试期间重新编译被修改的代码,而不必重新启动正在调试的程序。其编译及建置系统一预编译头文件、最小重建功能及累加连接著称。这些特征明显缩短程式编辑、编译及连接的时间花费,在大型软件计划上尤其显著。
Visual BASIC是一种由微软公司开发的包含协助开发环境的事件驱动编程语言。从任何标准来说,VB都是世界上使用人数最多的语言——不仅是盛赞VB的开发者还是抱怨VB的开发者的数量。它源自于BASIC编程语言。VB拥有图形用户界面(GUI)和快速应用程序开发(RAD)系统,可以轻易地使用DAO、RDO、ADO连接数据库,或者轻松的创建ActiveX控件。程序员可以轻松地使用VB提供的组件,快速建立一个应用程序。 ②图形化编程语言,如LabVIEW、HPVEE等。 2.虚拟仪器的内部功能
虚拟仪器的内部功能可划分为:输入信号的测量、数据分析处理及结果显示三大部分。 ⑴输入信号的测量
该功能是将模拟信号转变为数字信号输入到计算机中。 ⑵数据分析处理功能
虚拟仪器充分利用了计算机的存储、运算功能,并通过软件实现对输入信号数据的分析处理。处理内容包括进行数字信号处理、数字滤波、统计处理、数值计算与分析等。虚拟仪器比传统仪器,已经以微处理机为核心的智能仪器有更大的数据分析处理能力。 ⑶测量结果的显示
虚拟仪器充分利用计算机资源,如内存、显示器等,对测量结果数据的显示与输出有多种方式,这也是传统仪器所不能及的。例如,虚拟仪器可以实现:通过总线网络实现数据传输;通过磁盘,光盘复制输出;通过文件存于硬盘内存中;计算机屏幕显示或图形用户接口。
3.虚拟仪器的设计与应用 虚拟仪器的核心是软件,其设计主要由硬件板卡驱动模块、信号分析模块和仪器表头显示模块等软件组成。 硬件板卡驱动模块通常由硬件板卡制造商提供,直接在其提供的DLL或ActiveX基础上开发就可以了。目前PC-DAQ数据采集卡、GPIB总线仪器卡、RS232串行接口仪器卡、FieldBus现场总线模块卡等许多仪器板卡的驱动程序接口都已标准化,为减小因硬件设备驱动程序不兼容而带来的问题,国际上成立了可互换虚拟仪器驱动程序设计协会,并制订了相应软件接口标准。 信号分析模块的功能主要是完成各种数学运算,在工程测试中常用的分析模块包括信号的时域波形和参数计算,信号的相关分析、信号的频谱分析、信号滤波分析等有软
件编程实现。 仪器表头显示模块主要包括波形图、旋钮、仪表头、按钮、温度计、棒图等仪表显示常用的软件仪表盘显示模块。 虚拟仪器系统可以广泛地应用在通信、自动化、半导体、航空、电子、电力、生化制药和工业生产等各种领域。 2、 LabWindows/CVI简介
虚拟仪器软件开发工具LabWindows/CVI是NI公司开发的Measurement Studio软件组中的一员。它是32位的面向计算机测控领域的虚拟仪器软件开发平台,可以在多操作系统下运行。LabWindows/CVI是以ANSI C为核心的交互式虚拟仪器开发环境,它将功能强大的C语言与测控技术有机结合,具有灵活的交互式编程方法、丰富的库函数,为开发人员建立检测系统、自动测试环境、数据采集系统、过程检测系统等提高了理想的软件开发环境,是实验虚拟仪器及网络化仪器的快速途径。 2.1LabWindows/CVI特点 LabWindows/CVI作为一个优秀的软件开发平台,和其他虚拟仪器开发工具相比,具有如下特点。
1. 交互式程序开发
LabWindows/CVI将源代码编程、32位ANSI C编译、链接、调试以及标准ANSI C库等集成在一个交互式开发平台中,采用简单直观图形用户界面设计,利用函数面板输入函数的参数,采用事件驱动和回调函数方式的编程技术,有效地提高了工程设计的效率和可靠性。 2. 功能强大的函数库
如接口函数库、信号处理函数库、Windows SDK等,利用这些库函数可以方便地实现复杂的数据采集和仪器控制系统的开发。同时LabWindows/CVI附加了各种功能的软件开发包,如数据库软件包、Internet软件包、小波分析软件包等,大大增强了LabWindows/CVI的性能。 3. 灵活的程序调试手段
LabWindows/CVI提供了单步执行、断点执行、过程跟踪、参数检查、运行时内存检查等多种调试程序。 4. 高效编程环境
LabWindows/CVI以其面向虚拟仪器的交互式开发环境满足了用户对软件不断变化的要求,在产品设计中,可以快速创建、配置并显示测量。LabWindows/CVI可以自动生成代码、编译和链接,省去了手工编写,更有利于系统的开发。 5. 开放式的框架结构
在LabWindows/CVI环境中可以结婚使用标准的ANSI C源文件、obj文件、生动链接库(DLL)。也可以将软件中的仪器驱动库与其他标准C编译器结合使用,无需更改开发工具。同时,可以在不同的工作小组直接共享函数模块和虚拟仪器程序。 6. 集成式的开发环境
LabWindows/CVI是集成式的开发环境,可用于创建基于DAQ、GPIB、PXI、VXI、串口和以太网的虚拟仪器系统。这一开发方式结合了交互式、简单易用的开发方式与ANSI C代码的强大的编写功能和灵活性。LabWindows/CVI中的交互式开发工具和函数库可以方便地四下自动化测试系统]实验室研发、数据采集监视项目、验证测试和控制系统的设计。
2.2LabWindows/CVI的应用范围
LabWindows/CVI只要应用于各种测试、控制、故障分析及信息处理软件的开发中,与NI公司开发的另一个虚拟仪器开发工具LabVIEW相比,其更适合中、大型复杂测试软件的开发。基于LabWindows/CVI设计的虚拟仪器在无损检测、电力仪表系统、温控系统、凌晨控制系统、故障诊断和医疗等领域中发挥着重要作用。LabWindows/CVI已经成为测控领域最受欢迎的开发平台之一,并且已得到广泛的应用。
数据采集
数据采集基础 1. 基本概念
在测量和工业实时控制中,经常要对一些物理量进行测量,或者将其采集下来进行处理。数据采集就是将被测对象的各种参量(如压力、温度、湿度、转矩等)通过传感器(如光电、压力、温度传感器等)转换成电信号,再敬信号调理、采样、量化、编码和传输等步骤,最后送到计算机中进行存储、分析和处理的过程,数据采集不仅是计算机测控系统中的一个重要过程,也是相同取得原始数据的重要手段。
在虚拟仪器系统中,数据采集通常有计算机控制数据采集卡来完成。数据采集卡一般由以下几部分组成。
(1) 多路转换器:当输入信号为多路信号,而模/数转换器只有一个时,多
路转换器用来选通不同的信号,分时进行模/数转换。
(2) 放大器:对输入信号在采样和模/数转换前进行放大处理,使得输入信
号满足模/数转换器的要求。
(3) 采样保持器:采样/保持器使得信号在整个模/书转换期间保持相对稳定,
从而保证转换的精度。
(4) 模/数转换器:用于将输入的模拟信号进行量化,转换成数字信号。 以上部分主要完成模拟输入功能。另外,数据采集卡还包含模拟输出、数字量输入/输出、定时器以及简单的信号调理功能。数据采集卡中最关键的两个部件是模/数转换器。模/数转换器(A/D转换器)的功能是将模拟信号转换成数字信号。数/模转换器(D/A转换器)的功能是将数字信号转换为模拟信号。
2. A/D转换器
(1) A/D转换器三将模拟量转换成数字量的器件。A/D转换通常分四步进行
采样保持量化编码
前两步在采样/保持电路中完成,后两步在A/D转换过程中同时实现。 (2) A/D转换器的重要性能指标有以下几个。 ①分辨率: 3. D/A转换器