在LabVIEW中驱动数据采集卡的三种方法

2011-12-30 10:46:10来源: 互联网

  一、引言

  近年来,面向仪器的软件开发平台,如美国NI公司LabVIEW的成熟和商业化,使用者在配有专用或通用插卡式硬件和软件开发平台的个人计算机上,可按自己的需求,设计和组建各种测试分析仪器和测控系统。由于LabVIEW提供的是一种适应工程技术人员思维习惯的图形化编程语言,图形界面丰富,内含大量分析处理子程序,使用十分方便,个人仪器发展到了使用者也能设计,开发的新阶段。

  鉴于是工程技术人员自己编制,调用软件来开发仪器功能,软件成了仪器的关键。故人们也称这类个人仪器为虚拟仪器,称这种主要由使用者自己设计,制造仪器的技术为虚拟仪器技术(Virtual Instrumentation Technology)。使用虚拟仪器技术,开发周期短、仪器成本低、界面友好、使用方便、可靠性高, 可赋于检测仪初步智能,能共享PC机丰富的软硬件资源,是当前仪器业发展的一个重要方面。

  虚拟仪器的典型形式是在台式微机系统主板扩展槽中插入各类数据采集插卡,与微机外被测信号或仪器相连,组成测试与控制系统。但NI公司出售的,直接支持LabVIEW的插卡价格十分昂贵,严重限制着人们用LabVIEW来开发各种虚拟仪器系统。在LabVIEW中如何驱动其它低价位的数据采集插卡,成为了国内许多使用者面临的关键问题。

  二、三种在LabVIEW中使用国产数据采集插卡的方法

  笔者将近年来工程应用中总结出的三种在LabVIEW中驱动通用数据采集插卡的方法介绍如下。介绍中,以某市售8通道12位A/D插卡为例。设插卡基地址为base=0x100,在C语言中,选择信号通道ch的指令是 _outp(base,ch),启动A/D的指令是_inp(base),采样量化后的12位二进制数的高4位存于base+2中,低8位存于base+3中。

  1、直接用LabVIEW的 In Port , Out Port图标编程

  LabVIEW的Functions模板内Adevanced Memory中的In Port 、Out Port 图标,与_inp、_outp功能相同,因此可用它们画程序方框图, 设计该A/D插卡的驱动程序。N个通道扫描,各采集n点数据的LabVIEW程序方框图如图1所示。图中用LabVIEW的计时图标控制扫描速率。

N个通道扫描

图1 N个通道扫描,各采集n点数据的程序方框图

  显然,若采样速率要求较低,这不失为最方便、直观的方法,而且可随画随改。

  2、用LabVIEW的CIN图标生成A/D插卡驱动程序的子VI

  LabVIEW的Functions模板内Adevanced 中有一个CIN(Code InteRFace Node)图标,用来在LabVIEW程序方框图中直接调其它编程语言(如VC)写的代码。现以生成一个对指定的通道采集n点数据的LabVIEW子VI为例,其主要步骤为:

CIN图标

图2 CIN图标

  (1)在LabVIEW下,点出CIN图标,拖大并联接入两个控件和一个显件,如图2所示。其中控件用于选择模拟信号输入通道和选择数据采集点数,数组显件显示所采集的数据。

  (2)在CIN图标上单击鼠标右键弹出菜单,选Create .c file.,产生并存入一个×××.C程序框架。

  (3)在VC++5.0下完成×××.C程序框架的数据采集部分的编写,编译该×××.C程序(示例见附1),生成×××.obj代码。在coustom build方式下用nmake / f ×××.lvm 指令将×××.lvm接口程序(示例见附2)编译成×××.lsb代码。

  (4)在LabVIEW的CIN图标下装载×××.lsb。运行成功后将该CIN作成子VI,存入某个文件夹。

  在以后的LabVIEW应用程序框图中,该子VI图标即可作此A/D插卡驱动图标使用。

  若A/D插卡上有晶振作基准时钟,有可编程计数/定时器,附录1示例的C语言程序还可加入定时采集语句,以实现在子VI中选择采样速率。图3是调用按上述步骤生成的子VI编程所采集的方波信号及其自功率谱。

采集的方波信号及其自功率谱

图3 采集的方波信号及其自功率谱

  用CIN结点生成A/D插卡驱动程序的子VI的方法可较充分发挥A/D的高转换速度,获得高的采样速率。但编程较烦杂,不能由LabVIEW直接修改。

  3、用LabVIEW的Call Library Functions图标,动态链接数据采集插卡的 .DLL库函数

  许多数据采集插卡附有.DLL库函数形式的驱动程序,用户可使用某种DLL链接库的编程工具,如VC、VB,编写应用程序来调用它。LabVIEW也提供了一个动态链接库函数的图标Call Library Function,放在Functions模板内的Adevanced子模板中。在example/dll目录中有使用该图标的例子,可参照它们完成对数据采集插卡的.DLL库函数的调用。 三、两个测试系统实例

  1、滚动轴承振动虚拟检测仪

  该滚动轴承振动虚拟检测仪是为检测低噪声轴承强调的“异音”而开发的。目前国内滚动轴承出厂振动分类检测的行业标准和检测仪器(如S0910型) 都只能检测振动加速度的均方根值,远不能适应低噪声轴承的要求。

  我们在LabVIEW下,用PC机加国产12位A/D插卡,开发出的虚拟检测仪,采样速率最高达80KHz。按每2秒检测一个轴承的迫节,以加速度均方值的分贝值,峰值因子,峭度,超某幅值峰数四个参数来综合评定轴承振动级别。PC机14″的CRT,对检验员有极佳的可视性,检测确定的轴承等级由软指示灯闪烁显示,在面板上十分醒目,便于检验后归类。每个轴承的检验结果自动写入当班统计文件中,供生产和质检部门使用。检测程序读入各类设置文件便可适应不同类型轴承或不同的检测分类标准。

  2、空调散热器试验测温系统

  为对某空调散热器进行散热性能试验,开发出多点热电偶测温的虚拟仪器系统。

  硬件选用一国产有A/D及DIO的PC机插卡,外串接三块前端信号处理板。每块前端信号处理板提供一个冷端补偿电路,并可接16路热电偶。每块前端板的冷端补偿电压和热电偶电势各占用插卡的一个模拟输入通道,由插卡的发出的4位数字输出选择各热电偶电势输入。

  由于温度采集速率甚低,直接用LabVIEW的 In Port , Out Port 图标编程完全可满足要求。编程中调用了LabVIEW中Functions模板内Data Acquisition Signal ConditioningConvert Thermcouple Reading图标,稍作修改,生成了各类标准热电偶温度转换为电压,电压转换为温度的新的子VI。编程十分简便,且能用于各类标准热电偶测温。

  作者简介:

  熊焕庭,男,广东省五邑大学机电工程系教授,长期从事机电测试、控制,动态信号分析等方面的应用研究和教学工作。

  附1 ×××.C源程序
/* CIN source file */
#include "c:labviewcintoolsextcode.h"
#include "conio.h"
typedef struct {
int32 dimSize;
float32 arg1[1];
} TD1;
typedef TD1 **TD1Hdl;
CIN MgErr CINRun(int32 *n, TD1Hdl xarray, int32 *ch);
CIN MgErr CINRun(int32 *n, TD1Hdl xarray, int32 *ch)
{ /* ENTER YOUR CODE HERE */
int base,i, ns,c;
uInt8 h,l;
float *xarrayElmtp;
ns=*n;/* 采样点数 */
c=*ch;/* 模入通道号*/
SetCINArraySize((UHandle)xarray,1,ns);
(*xarray)->dimSize=ns;
xarrayElmtp=(*xarray)->arg1;
base=0x100; /* 数据采集插卡基地址*/
_outp(base,c); /* 选择模入通道*/
for (i=0;i{
_outp(base+1,0); /* 启动 A/D*/ do {;}
while ((_inp(0x101)&0x01)!=0);
h=_inp(base+2);
l=_inp(base+3)&0xf0;
*xarrayElmtp=(h*16+l/16)/409.6-5.0;
xarrayElmtp++;
}
return noErr;
}

  附2 ×××.lvm接口程序
IDE=VC
name= ×××
type=CIN
cintoolsdir=c:labviewcintools
! include <$(cintoolsdir)ntlvsb.mak>

关键字:LabVIEW  驱动数据采集卡

编辑:什么鱼 引用地址:http://www.eeworld.com.cn/Test_and_measurement/2011/1230/article_4318.html
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。
论坛活动 E手掌握
微信扫一扫加关注
论坛活动 E手掌握
芯片资讯 锐利解读
微信扫一扫加关注
芯片资讯 锐利解读
推荐阅读
全部
LabVIEW
驱动数据采集卡

小广播

独家专题更多

富士通铁电随机存储器FRAM主题展馆
富士通铁电随机存储器FRAM主题展馆
馆内包含了 纵览FRAM、独立FRAM存储器专区、FRAM内置LSI专区三大部分内容。 
走,跟Molex一起去看《中国电子消费品趋势》!
走,跟Molex一起去看《中国电子消费品趋势》!
 
带你走进LED王国——Microchip LED应用专题
带你走进LED王国——Microchip LED应用专题
 
电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2016 EEWORLD.com.cn, Inc. All rights reserved