虚拟仪器技术及其在数据采集中的应用

2006-04-27 22:08:46

字体变小 字体变大
虚拟仪器技术及其在数据采集中的应用

 摘 要:介绍了虚拟仪器的构成及其特点,分析了如何从软件和硬件方面构造具体的虚拟仪器;提出了一种虚拟仪器技术在数据采集中新的应用方法,该方法利用虚拟仪器制作数据采集器,分别从硬件设计、软件设计两个角度阐述了数据采集器的具体制作方法。实际应用证明是 行之可靠的,可供技术人员在组建基于虚拟仪器技术的数据采集器时参考使 用。
  关键词:虚拟仪器;数据采集;VXI总线;软件技术
Virtual Instrument and Its Application in Data Acquisit ion
LI Tiejun1,LI Xuewu1,GAO Yupeng2
(1.Xi′an Natural Gas Company,Xi′an,710068,China;
2.Missile College,Air Force University of Engineering,Xianyang,713800,China)
  AbstractThe structure and the characteristic of virtual instrument are introduced,and t he design of a virtual instrument from software and hardware is analyzedA new application method based on virtual instrument technology is proposed to constr uct data acquisition system,and this method is discussed from hardware and soft ware design in this paperAfter the application of this method,it′s validity is verified
  Keywords
virtual instrument;data acquisition;VXI Bus;softwar e technology
  虚拟仪器是以一种全新的理念来设计和发展的仪器,他是90年代发展起来的一项新技术,主要用于自动测试、过程控制、仪器设计和数据分析等领域,其基本思想是在仪器设计或测试系统中尽可能用软件代替硬件,即“软件就是仪器”,他是在通用计算机平台上,根据用户需求来定义和设计仪器的测试功能,其实质是充分利用计算机的最新技术来实现和扩展传统仪器的功能。
1虚拟仪器的特点和构成
1.1虚拟仪器的特点

  与传统仪器相比,虚拟仪器具有高效、开放、易用灵活、功能强大、性价比高、可操作性 好等明显优点,具体表现为:
  智能化程度高,处理能力强 虚拟仪器的处理能力和智能化程度主要取决于仪器软件水平。用户完全可以根据实际应用需求,将先进的信号处理算法、人工智能技术和专家系统应用于仪器设计与集成,从而将智能仪器水平提高到一个新的层次。
  复用性强,系统费用低 应用虚拟仪器思想,用相同的基本硬件可构造多种不同功能的测试分析仪器,如同一个高 速数字采样器,可设计出数字示波器、逻辑分析仪、计数器等多种仪器。这样形成的测试仪 器系统功能更灵活、更高效、更开放、系统费用更低。通过与计算机网络连接,还可实现虚 拟仪器的分布式共享,更好地发挥仪器的使用价值。
  可操作性强,易用灵活 虚拟仪器面板可由用户定义,针对不同应用可以设计不同的操作显示界面。使用计算机的 多媒体处理能力可以使仪器操作变得更加直观、简便、易于理解,测量结果可以直接进入数 据库系统或通过网络发送。测量完后还可打印、显示所需的报表或曲线,这些都使得仪器的 可操作性大大提高而且易用、灵活。
1
.2虚拟仪器的构成
  虚拟仪器的构建主要从硬件电路的设计、软件开发与设计2个方面考虑。
  硬件电路的设计主要根据用户所面对的任务决定,其中接口设计可选用的接口总线标准包 括GP IB总线、VXI总线等。推荐选用VXI总线。因为他具有通用性强、可扩充性好、传输速 率高、抗干扰能力强以及良好的开放性能等优点,因此自1987被首次推出后迅速得到各大仪 器生产厂家的认可,目前VXI模块化仪器被认为是虚拟仪器的最理想平台,是仪器硬件的发 展方向。由于VXI虚拟仪器的硬件平台的基本组成是一些通用模块和专用接口。因此硬件电 路的设计一般可以选择用现有的各种不同的功能模块来搭建。通用模块包括:信号调 理和高速数据采集;信号输出与控制;数据实时处理。这3部分概括了数字化仪 器的基本组成。将具有一种或多种功能的通用模块组建起来,就能构成任何一种虚拟仪器。 例如使用高速数据采集模块和高速实时数据处理模块就能构成1台示波器、1台数字化仪或 1台频谱分析仪;使用信号输出与控制模块和实时数据处理模块就能构成1台函数发生器、 1台信号源或1台控制器。专用接口是针对特定用途仪器需要的设计,也包括一些现场总线 接口和各类传感器接口。系统的主要硬件包括控制器、主机箱和仪器模块。常用的控制方案 有GPIB总线控制方式的硬件方案、MXI总线控制方式的硬件方案、嵌入式计算机控制方式的 硬件方案3种。VXI仪器模块又称为器件(devices)。VXI有4种器件:寄存器基器件、消 息基器件、存储器器件和扩展器件。存储器器件不过是专用寄存器基器件,用来保存和传输 大量数据。扩展器目前是备用件,为今后新型器件提供发展通道。将VXI仪器制作成寄存器 基器件,还是消息基器件是首先要做出的决策。寄存器基器件的通信情况极像VME总线器件 ,是在低层用二进制信息编制程序。他的明显优点在于速度寄存器基器件完全是在 直接 硬件控制这一层次上进行通信的。这种高速通信可以使测试系统吞吐量大大提高。因此,寄 存器基器件适用于虚拟仪器中信号/输出部分的模块(如开关、多路复用器、数/模转换输出 卡、模/数转换输入卡、信号调理等)。消息基器件与寄存器基器件不同,他在高层次上用A SCII字符进行通信,与这种器件十分相似是独立HPIB仪器。消息基器件用一组意义 明确的 “字串行协议”相互进行通信,这种异步协议定义了在器件之间传送命令和数据所需的挂钩 要求。消息基器件必须有CPU(或DSP)进行管理与控制。因此,消息基器件适用于虚拟仪器 中数字信号处理部分的模块。
  软件的开发与设计包括3部分:VXI总线接口软件、仪器驱动软件和应用软件(软面板) 。软件结构如图1所示。
  VXI 总线接口软件由零槽控制器提供,包括资源管理器、资源编辑程序、交互式控制程序和 编程函数库等。该软件在编程语言和VXI总线之间建立连接,提供对VXI背板总线的控制和支 持,是实现VXI系统集成的基础。
  仪器驱动程序是完成对某一特定仪器的控制与通信的软件程序,也即模块的驱动软件,他 的设计必须符合VPP的2个规范,即VPP3.1《仪器驱动程序结构和模型》和VPP3.2《仪器 驱动程序设计规范》。
  “软面板”设计就是设计具有可变性、多层性、自助性、人性化的面板,这个面板应不 仅同传统仪器面板一样具有显示器、LED、指针式表头、旋钮、滑动条、开关按钮、报警装 置等功能部件,而且应还具有多个连贯操作面板、在线帮助功能等。
2虚拟仪器在数据采集中的应用
  利用虚拟仪器制作数据采集器可以按照硬件设计、软件设计两个步骤来完成。
2.1硬件设计
  
硬件设计要完成以下内容:
  (1)模/数转换及数据存储
  设置具有通用性的数据自动采集系统,一般应满足能对多路信号尽可能同步地进行采集, 为了使所采集到的数据不但能够在数据采集器上进行存储,而且还能及时地在采集过程中 将数据传送到上位机,选用存储量比较适中的先进先出存储器,这样既能满足少量数据存储 的需要,又能在需要实时传送数据时,在A/D转换的同时进行数据传送,不丢失任何数据。
  (2)VXI总线接口
  VXI总线数据采集器通常可以利用两种VXI总线通用接口消息基接口和寄存器基接口。消 息基接口的作用是通过总线传送命令,从而控制仪器硬件的操作。通用寄存器基接口是由寄存器简单的读写来控制仪器硬件的操作。利用消息基接口进行设计,具体消息基接口的框图见图2。
  (3) 采样通道控制
  为了满足几种典型系统通道控制的要求,使通道的数量足够多,通道的选取比较灵活,可以利用寄存器电路、可预置计数器电路以及一些其他逻辑电路的配合,将采样通道设计成最多64路、最少2路可以任意选择,而且可以从任意一路开始采样,也可以到任意一路结束采样,只要截止通道号大于起始通道号就可以了。整个控制在虚拟仪器软面板上进行操作,通过消息基接口将命令写在这部分的控制寄存器中,从而设置计数器的初值以及采样的通道总数。
  (4)定时采样控制
  由于不同的自动测试系统对采样时间间隔的要求不同,以及同一系统在不同的试验中 需要的采样时间间隔也不尽相同,故可以采用程控的方式将采样时间间隔设置在2 μs~13. 0 ms之间任意选择,可以增加或减少的最小单位是2 μs。所有这些选择设置可以在虚拟仪器软面板上进行。
  (5)采样点数控制
  根据不同测试系统的需求,将采样点数设计成可在一个比较大的范围中任意选择,该选择同样是在软面板上进行。
  (6)采样方式控制
  总结各种自动测试系统的采样方式不外乎软件触发采样和硬件 触发采样。在硬件触发采样中又包括同步整周期采样和非同步整周期采样,这2种采样又可 以是定时进行的或等转速差进行的。所有这些采样方式,对于数据采集器来说都可以在软面 板上进行选择。
2.2软件设计

  软件是虚拟仪器的关键,为使VI系统结构清晰简洁,一般可采用组件化设计思想,将各部分彼此独立的软件单元分别制成标准的组件,然后按照系统的总体要求组成完整的应用系统,一个标准的组件化的虚拟仪器软件系统,如图3所示。
  应用软件为用户提供了建立虚拟仪器和扩展其功能的必要工具,以及利用PC机、工作站的 强大功能。同时VPP联盟提出了建立虚拟仪器标准结构库(VISA)的建议,为虚拟仪器的研 制与开发提供了标准。这也进一步使由通用的VXI数据采集模块、CPU/DSP模块来构成虚拟仪 器成为可能。
  基于虚拟仪器的数据采集器的软件包括系统管理软件、应用程序、仪器驱动软件和I/O接 口 软件。以往这4部分需要用户自己组织或开发,往往很困难,但现在NI公司提供了所有这 四部分软件,使应用开发比以往容易得多。
  下面简单介绍以NI公司的Lab Windows/CVI为开发环境,来进行VXI虚拟仪器的驱动程序开 发的方法。
  第一步:生成仪器模块的用户接口资源文件(UIR)。用户接口资源、文件是仪器模块 开 发者利用Lab Windows/CVI的用户界面编辑器为仪器模块设计的一个图形用户界面(GUI)。 一个Lab Windows/CVI的GUI由面板、命令按钮、图标、下拉菜单、曲线、旋钮、指示表以及 许多其他控制项和说明项构成。
  第二步:Lab Windows/CVI事件驱动编程。应用程序开发环境Lab Windows/CVI中设计一个 用户接口,实际上是在用户计算机屏幕上定义一个面板,他由各种控制项(如命令按钮、菜 单、曲线等)构成。用户选中这些控制项就可以产生一系列用户接口事件(events)。例如 ,当用户单击一个命令按钮,这个按钮产生一个用户接口事件,并传递给开发者编写的C语 言驱动程序。这是运用了Windows编程的事件驱动机制。Lab Windows/CVI中使用不同类型的 控制项,在界面编辑器中将显示不同类型的信息,并产生不同操作的接口事件。在Lab Wind ows/CVI的开发平台中,对事件驱动进行C程序编程时可采用2种基本的方法:回调函数法和 事件循环处理法。
  回调函数法是开发者为每一个用户界面的控制项写一个独立的用户界面的控制函数 ,当选中某个控制项,就调用相应的函数进行事件处理。在循环处理法中,只处理GUI控制 项所产生的COMMIT事件。通过Get User Event函数过滤,将所有的COMMIT事件区分开,识别 出是由哪个控制项所产生的事件,并执行相应的处理。
  第三步:应用函数/VI集与应用程序软件包编写。应用函数/VI集需针对具体仪器模块 功能进行编程,应用程序软件包只是一些功能强大、需要完善的数据处理能力的模块才需要 提供,如波形分析仪模块、DSP模块等。
  图4是基于虚拟仪器的系统测试流程。
3 结语
  本文探讨了虚拟仪器的基本组成,以及实际的虚拟仪器软硬件设计的一般方法,这些方法经过实际设计工作运用证明是可靠的,可供系统工程技术人员在组建具体的基于VXI总线的虚拟仪器数据采集、测试时参考使用。
参考文献
[1]赵勇.虚拟仪器软件平台和发展趋势[J].国外电子测量技术,2002,(1)
[2]陈光禹.VXI总线测试平台[M].北京:电子科技大学出版社,1996
[3]孙昕,张忠亭,薛长斌.集成VXI总线自动测试系统的方法[J].测控技术,1996,15(4)
[4]张毅刚,彭喜元,姜宁达,等.自动测试系统[M].哈尔滨:哈尔滨工业大学出版社,2001
[5]汪红.基于组件的虚拟仪器软件系统[J].微型计算机信息,2001,( 1):76-77
书名:《LabVIEW虚拟仪器从入门到测控应用130例》(电子工业出版社.李江全.任玲.廖结安.温宝琴) PDF格式扫描版,全书分为13章,共486页。2013年4月出版。 内容简介 本书从实际应用出发,通过130个典型实例系统地介绍了LabVIEW语言的程序设计方法及其测控应用技术,入门基础篇包括第0~10章,主要内容有LabVIEW基础、数值型数据、布尔型数据、字符串数据、数组数据、簇数据、数据类型转换、程序结构、变量与节点、图形显示和文件I/O;测控应用篇包括第11~13章,主要内容有PC通信与单片机测控、远程YO模块与PLC测控及LabVIEW数据采集。提供的实例由实例说明、设计任务和任务实现等部分组成,并有详细的操作步骤。 注:原书没有书签。为了方便阅读,本人在上传前添加了完整详细的书签。 目 录 入门基础篇 第0章 LabVIEW基础 0.1 LabVIEW概述 0.2 LabVIEW的编程环境 0.3 LabVIEW的基本概念 0.4 前面板对象设计基础 0.5 数据类型及其运算 0.6 VI调试方法 第1章 数值型数据 实例基础 数值型数据概述 实例1 数值输入与显示 实例2 时间标识输入与显示 实例3 滑动杆输出 实例4 旋钮与转盘输出 实例5 滚动条与刻度条 实例6 数值算术运算 实例7 数值常量 第2章 布尔型数据 实例基础 布尔型数据概述 实例8 开关与指示灯 实例9 数值比较 实例10 数值逻辑运算 实例11 真常量与假常量 实例12 确定按钮 实例13 停止按钮 实例14 单选按钮 实例15 按钮的快捷键设置 第3章 字符串数据 实例基础 字符串数据概述 实例16 计算字符串的长度 实例17 连接字符串 实例18 截取字符串 实例19 字符串大小写转换 实例20 替换子字符串 实例21 搜索替换字符串 实例22 格式化日期/时间字符串 实例23 格式化写入字符串 实例24 搜索/拆分字符串 实例25 选行并添加至字符串 实例26 匹配字符串 实例27 匹配真/假字符串 实例28 组合框 第4章 数组数据 实例基础 数组数据概述 实例29 初始化数组 实例30 创建数组 实例31 计算数组大小 实例32 求数组最大值与最小值 实例33 删除数组元素 实例34 数组索引 实例35 替换数组子集 实例36 提取子数组 实例37 数组插入 实例38 拆分一维数组 实例39 一维数组排序 实例40 搜索一维数组 实例41 二维数组转置 实例42 数组元素算术运算 第5章 簇数据 实例基础 簇数据概述 实例43 捆绑 实例44 解除捆绑 实例45 按名称捆绑 实例46 按名称解除捆绑 实例47 创建簇数组 实例48 索引与捆绑簇数组 第6章 数据类型转换 实例基础 数据类型转换概述 实例49 字符串至路径转换 实例50 路径至字符串转换 实例51 数值至字符串转换 实例52 字符串至数值转换 实例53 字节数组至字符串转换 实例54 字符串至字节数组转换 实例55 数组至簇转换 实例56 簇至数组转换 实例57 布尔数组至数值转换 实例58 数值至布尔数组转换 实例59 布尔值至0,1转换 第7章 程序结构 实例60 For循环结构 实例61 While循环结构 实例62 条件结构 实例63 层叠式顺序结构 实例64 平铺式顺序结构 实例65 定时循环结构 实例66 定时顺序结构 实例67 事件结构 实例68 禁用结构 第8章 变量与节点 实例69 局部变量 实例70 全局变量 实例71 公式节点 实例72 反馈节点 实例73 表达式节点 实例74 属性节点 实例75 子程序设计 实例76 菜单设计 第9章 图形显示 实例77 波形图表 实例78 波形图 实例79 XY图 实例80 强度图 第10章 文件I/O 实例基础 文件I/O概述 实例81 写入文本文件 实例82 读取文本文件 实例83 写入二进制文件 实例84 读取二进制文件 实例85 写入波形至文件 实例86 从文件读取波形 实例87 写入电子表格文件 实例88 读取电子表格文件 测控应用篇 第11章 PC通信与单片机测控 实例89 PC与PC串口通信 实例90 PC双串口互通信 实例91 PC与单个单片机串口通信 实例92 PC与多个单片机串口通信 实例93 单片机模拟电压采集 实例94 单片机模拟电压输出 实例95 单片机开关信号输入 实例96 单片机开关信号输出 实例97 单片机温度测控 实例98 单台智能仪器温度检测 实例99 多台智能仪器温度检测 实例100 短信接收与发送 实例101 网络温度监测 第12章 远程I/O模块与PLC测控 实例102 远程I/O模块模拟电压采集 实例103 远程I/O模块模拟电压输出 实例104 远程I/O模块数字信号输入 实例105 远程I/O模块数字信号输出 实例106 远程I/O模块温度测控 实例107 三菱PLC模拟电压采集 实例108 三菱PLC模拟电压输出 实例109 三菱PLC开关信号输入 实例110 三菱PLC开关信号输出 实例111 三菱PLC温度测控 实例112 西门子PLC模拟电压采集 实例113 西门子PLC模拟电压输出 实例114 西门子PLC开关信号输入 实例115 西门子PLC开关信号输出 实例116 西门子PLC温度测控 第13章 LabVIEW数据采集 实例117 PCI-6023E数据采集卡模拟电压采集 实例118 PCI-6023E数据采集卡数字信号输入 实例119 PCI-6023E数据采集卡数字信号输出 实例120 PCI-6023E数据采集卡温度测控 实例121 PCI-1710HG数据采集卡模拟电压采集 实例122 PCI-1710HG数据采集卡模拟电压输出 实例123 PCI-1710HG数据采集卡数字信号输入 实例124 PCI-1710HG数据采集卡数字信号输出 实例125 PCI-1710HG数据采集卡脉冲信号输出 实例126 PCI-1710HG数据采集卡温度测控 实例127 声卡的双声道模拟输入 实例128 声卡的双声道模拟输出 实例129 声音信号的采集与存储 实例130 声音信号的功率谱分析 参考文献
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值