基于虚拟仪器开发软件平台如何实现普通数据采集卡的设计

发布者:第二眼帅哥最新更新时间:2023-06-09 来源: elecfans关键字:虚拟仪器  数据采集卡 手机看文章 扫描二维码
随时随地手机看文章

  引 言

虚拟仪器技术是20世纪90年代发展起来的一种新技术,融计算机和总线技术微电子技术、测量技术于一身,它是对传统仪器的重大突破,是计算机技术与仪器技术相结合的产物。它利用计算机系统的强大功能,结合相应的硬件,大大突破传统仪器在数据处理、显示和存储以及系统维护和扩展等方面的限制。虚拟仪器的众多优点使其得到了广泛的应用,然而当今著名的虚拟仪器开发软件(如LabVIEW等)只能支持NI公司生产的数据采集卡,而不能直接驱动普通的数据采集卡。本文重点研究了在虚拟仪器开发软件平台LabVIEW下使用普通数据采集卡的方法。


1 虚拟仪器开发平台LabVIEW与数据采集卡的连接

LabVIEW是美国NI公司推出的一种基于G语言(Graphics Language),即图形化编程语言的虚拟仪器软件开发工具,具有强大的数据采集功能,通常只支持NI公司的数据采集卡,而这些卡的价格比较昂贵。因此,为了能在LabVIEW平台上驱动普通的数据采集卡,用户必须通过LabVIEW所提供的调用库函数节点(call Library Function Node,CLFN)及代码接口节点(Code Interface Node,CIN)等功能,将功能强大、编程灵活、而且已有很多现成程序模块的C语言同Lab-VIEW中编程直观方便的图形化G语言结合起来,从而实现用普通的数据采集卡来采集数据的功能,使LabVIEW在对硬件的支持上有了一个质的飞跃。


在LabVIEW中利用CLFN节点可以较容易地实现访问动态链接库(DLL),而且在购买数据采集卡的时,厂商一般会给用户提供动态链接库。所以研究在LabVIEW平台下调用动态链接库驱动普通的数据采集卡来实现数据采集更具有普遍性。


2 基于动态链接库的普通数据采集卡的驱动

2.1 动态链接库概述

动态链接是一种应用程序在运行时与库文件连接起来的技术。动态链接库(DLL)是一个可以多方共享的程序模块,提供函数供Windows应用程序或其他的动态链接函数库直接或间接调用,只有在别的模块中调用了它的某个函数以后才发生作用。它是在应用程序运行时被装入和链接的,而不是把库代码复制到应用程序中,只是在程序中记录了函数的入口点和接口。动态链接库独立于编程语言,因此LabVIEW可以调用用大多数语言(如Visual C++,C++ Builder等)编写生成的动态链接库。在调用DLL的函数时,必须知道以下4个信息:函数返回的数据类型,函数调用的方式,函数的参数及类型,DLL库文件的位置等。


2.2 LabVIEW对DLL的调用

通过对Call Library Function Node的配置可以实现DLL的调用,关键要了解被调用的函数名称、功能及其输入/输出参数。配置节点的目的在于指定DLL模块中与LabVIEW数据交换的相应驱动函数。调用Call Library Function模块,双击此模块,在弹出CLF对话框中进行节点配置,CLF函数配置对话框见图1。第一个参数“库名或路径”,填入需要调用的动态链接库文件的名字和路径。第二个参数“函数名”,是链接库中要调用的函数名称。当在库名或路径栏中设定了DLL的路径后,在函数名下拉框中就可以看到该动态链接库所包含的所有函数名。第三个参数“调用规范”,此栏中可以设置该动态链接库是标准WINAPI调用还是普通的C调用。一般来说,都采用C调用,但是对于API调用则必须选择stdeall(WINAPI),最后一个需要注意的参数选项是线程安全选择,此栏中可以选择DLL是否可以被重入调用,默认情况是在UI线程中运行,即该动态链接库只能在User Interrace Thread下运行。如果动态链接库中被调用的函数返回时间很长,那么就会导致LabVIEW不能执行UI线程中的其他任务,因此界面反应可能会很慢,甚至停止。这时候最好把它设为重入,若设置为重人,则该动态链接库可以由多个线程同时调用,但前提是必须保证该DLL能被多个线程同时安全调用。

基于虚拟仪器开发软件平台如何实现普通数据采集卡的设计

在参数配置菜单下设置函数的返回值类型和输入参数。对话框右侧对应每一个参数的参数名称、类型、数据类型、参数传递方式。其中,需要注意的是数据类型选项,在不同的编译平台下,数据类型的定义名称是不一样的。为了将数据类型一一对应,在LabVIEW中必须对数据类型名称定义进行转换。


3 普通数据采集卡在LabVIEW平台下的应用实例

以北京优采公司的UA301A型A/D数据采集卡为例,该采集卡在LabVIEW平台下不能直接被驱动。该采集卡提供了一个动态链接库ua300a.dll,此动态链接库中提供了许多简洁高效的采集和控制函数,支持UA301A采集器的各种功能。


UA301A为12位的A/D卡,系统中采用的是双极性输入信号和双极性原码的编码方法。转换的结果为二进制数,转换后得到0~4 095的数字量。为了直观表示被测物理量,需将转换后的数字量变换为具有实际工程意义的数值。当单极性信号输入时,模拟电压值V与数字量D的对应关系可描述为:V=D/4 095×10;当输入信号为双极性时,两者的对应关系为:V=(D-2 048)/4 095×10。这个转换过程在驱动设计中可采用Case结构来完成,把选择输入信号为单极性还是双极性作为这个Case结构的布尔值输入。数据采集驱动程序框图如图2所示。


图2中4个CLF节点分别用来调用OpenUA300,minitz,readdataz,CloseUA300这四个函数。

对于LabVIEW与DLL函数之间传递数组类型数据,无论采用何种数组格式进行传递,都需要在Lab-VIEW中为数组预先分配空间,也就是给该数组开辟缓存,不然会导致程序崩溃。该程序在采集数据前预先为其初始化一个二维数组空间,为了使采集到的数据在数组中的位置始终对应于采样的每一通道,初始化数组空间时设置每通道采样点数为行,采集通道数为列,这样数据从采集卡FIFO存入缓存时,每一列对应每一通道的数据,省去了后续通过循环索引出各通道数据的繁琐。


为了实现数据的连续采集,系统应保持在循环状态,设计中采用WhiIe循环来实现这一功能,但是Lab-VIEW在执行While循环时,如果用户没有给它设定循环时间间隔,则它将以CPU的极限速度运行。这样可能会导致整个LabVIEW程序看上去像死机一样,所以需要给While循环加上一个指定的时间间隔。在采集前首先设置采样通道、采样频率、采样点数、增益和数据传输方式等参数,该接口驱动的前面板见图3。

4 结 语

由此可以看出,在LabVIEW中调用动态链接库函数,来驱动普通数据采集卡的技术,显示出了Lab-VIEW强大的外部程序接口能力。应用此方法设计数据采集系统一方面可充分利用LabVIEW的界面友好、图形显示和虚拟仪器强大的开发功能等优点;另一方面又能大大降低系统的开发成本,可以使LabVIEW在对硬件的支持上有一个质的飞跃。通过LabVIEW的外部程序接口CLF节点访问动态链接库来调用Windows标准库函数,使得LabVIEW支持的数据采集板卡范围突破了限制,同时也为Lab-VIEW访问底层函数提供了一种新的思路。


关键字:虚拟仪器  数据采集卡 引用地址:基于虚拟仪器开发软件平台如何实现普通数据采集卡的设计

上一篇:采用LabView虚拟仪器创建扫频正弦函数实现多种应用
下一篇:基于FPGA芯片EP1c3T144和开发平台实现虚拟仪器接口设计

推荐阅读最新更新时间:2024-11-04 12:33

Labview编辑和调试虚拟仪器
编辑技术 在前一章的末节,我们一起写了一个最简单的Labview程序,下面我们将仔细讨论前面板和程序框图中的各种编辑技术 1.创建:在上一章中我们介绍了最常用的创建方法,就是用鼠标选择,然后放置到框图或前面板中,在这里我们为大家介绍另外一种常用的方法。如图:放置一个随机数函数到程序框图,位于函数 编程-数值-随机数。 然后在上面单击右键,选择创建-显示控件,如图 则可看到有一数值控件与其相连,前面版上也出现了一个数值控件。如图: 2.选择对象:在前面板和程序框图中,使用定位工具来选择对象,它也可以用来移动和调整对象的大小,如图: 当对象被选中时,就会出现环绕的虚线轮廓 当要选择多个对象时,按住 shift 键并同时
[测试测量]
Labview编辑和调试<font color='red'>虚拟仪器</font>
基于SIM900A的无线数据采集卡设计与实现
0 引言 数据采集技术主要指从传感器输出的微弱信号,经信号调理、数模转换到存储、记录这一过程所涉及的技术。当前被广泛应用的数据采集卡大部分以电缆或插槽连接,受到插槽数不足、安装不便、传输距离等众多因素的限制。伴随着无线通信技术的发展,使用简单、分布灵活的无线数据采集卡慢慢涌现出来,成为数据采集卡新的重要发展方向。目前,无线数据采集卡的实现多以zigbee,nRF905,WI_FI等无线通讯技术为主。而SIM900A芯片在众多项目中的成功实践,为实现数据采集卡的无线通讯提供了新的思路。因此,设计这种低功耗的基于SIM90 0A的无线数据采集卡,以满足用户越来越多的新要求。 1 无线数据采集卡整体设计方案 无线数据采集卡主要
[单片机]
基于SIM900A的无线<font color='red'>数据采集卡</font>设计与实现
采用虚拟仪器对传感器静态特性进行测试和分析研究
传感器的工作特性通过其静、动态特性直接反映出来,静态特性是表示传感器在被测输入量的各个值处于稳定状态时的输入—输出关系,更能突出反映传感器的各项指标,传感器静态特性主要指线性度、迟后性、重复性和静态误差。以往对传感器静态特性的测试、分析需要多种仪器来共同完成,且输入、输出信号的测量、记录、特性指标的计算都需人工完成,工作量大、效率低、可靠性差。基于虚拟仪器的传感器特性分析数据处理能力强,效率高,灵活性及一致性好,显示内容丰富,打印输出方便,具有极高性价比,已被广泛地应用。 传感器静态特性的测量及计算 由计算机系统构成虚拟测试仪器,完成对传感器静态特性的分析,实现了快速、准确、灵活、可靠的目的。 对于一个传感器特性循环试验,
[测试测量]
采用<font color='red'>虚拟仪器</font>对传感器静态特性进行测试和分析研究
高速数据采集卡的虚拟示波器开发设计
虚拟仪器以通用计算机作为系统 控制器 ,各种复杂测试功能、数据分析和结果显示都完全由计算机软件完成,在很多方面较传统仪器有无法比拟的优点。 本文在带有PCI总线接口的CS82G高速数据采集卡和Visual C++编程工具的基础上开发的快速虚拟示波器试验系统,集成了波形采集、数据分析、输出、显示等多种功能。同时,为保证数据采集和波形显示的实时性,设计中还采用了多线程技术。 图1 CS 82G采集卡系统框图 图2 软件系统总体流程图 虚拟示波器的系统组成 系统组成 本虚拟示波器系统主要由数据采集卡、计算机和专用的软件组成。 其中数据采集卡完成对输入测量信号的调理采集、缓存,并通过计算机PCI总线送入内存;计算机在应用程序控制下,对
[测试测量]
高速<font color='red'>数据采集卡</font>的虚拟示波器开发设计
基于虚拟仪器的开关磁阻电机监控系统设计方案
开关磁阻电机(SRM)的结构和工作原理比较简单,容错性能好,且在低速时只需较小电流便可获取较大转矩,高速时恒功率区范围较宽,可以用在煤矿、纺织、化工、电动汽车等工作环境较恶劣的场所。但由于SRM定子、转子的双凸极结构、绕组电流的非正弦特性以及铁心磁通密度的深度饱和,使得SRM的平稳控制比较难以实现,尤其是在降低其运行时的噪声方面。目前常见的SRM 控制系统往往侧重于电机性能的单一方面,不能很好地实现多种参数的综合调节。如果控制系统可以实时反映SRM在运行状态时的各项重要参数,并且进行统筹分析,将使得工作效率大大提高。虚拟仪器的数据处理能力强大,操作界面友好,同时其开发周期短,体积小,受到越来越广泛的关注。 本文中的数据是采用美国N
[电源管理]
基于<font color='red'>虚拟仪器</font>的开关磁阻电机监控系统设计方案
基于遗传算法和虚拟仪器的前馈速度伺服系统设计与整定
    摘要: 介绍了一种在虚拟仪器控制下进行在线参数优化的有馈速度伺服控制系统。为实现前馈控制系数在线整定,引入了遗传算法。通过实际测试验证了该设计方法和技术的有效性。     关键词: 伺服系统 虚拟仪器 遗传算法 在线整定 在机电控制系统中,为实现快速的跟踪,常采用前馈补偿。然而在对象模型未知时,前馈控制系数难以事先确定,因此,该前馈系统虽然理论结果理想,但实用价值不高。 近年来,遗传算法(GA)作为一强有力的优化手段受到广泛关注。它是模拟自然界遗传变和物竞天择的机理所构成的随机搜索算法。正如Thomas等人指出的,其穿梭出特点是:采用纯数值计算方法和随机进行策略,无需梯度信息,对模型的表述要求低,处
[传感技术]
USB接口的高速数据采集卡的设计与实现
摘要:讨论了基于USB接口的高速数据采集卡的实现。该系统采用TI公司的TUSB3210芯片作为USB通信及主控芯片,完全符合USB1.1协议,是一种新型的数据采集卡。 关键词:USB A/D FIFO 固件 现代工业生产和科学研究对数据采集的要求日益提高,在瞬态信号测量、图像处理等一些高速、高精度的测量中,需要进行高速数据采集。现在通用的高速数据采集卡一般多是PCI卡或ISA卡,存在以下缺点:安装麻烦;价格昂贵;受计算机插槽数量、地址、中断资源限制,可扩展性差;在一些电磁干扰性强的测试现场,无法专门对其做电磁屏蔽,导致采集的数据失真。 通用串行总线USB是1995年康柏、微软、IBM、DEC等公司为解决传统总线不足而推广的一
[应用]
基于LabVIEW的通用数据采集卡的驱动
基于LabVIEW的通用数据采集卡的驱动 介绍一种通过LabVIEW提供的Call Library Function Node实现对动态链接库(DLL)调用的方法,完成对通用数据采集卡的驱动,实现LabVIEW与通用数据采集卡的结合。?   关键词:LabVIEW;驱动;数据采集 Baoding 071003, China)   LabVIEW驱动通用数据采集插卡的方法有三种。   其一,直接用LabVIEW的Function模板内Advanced子模板的Port I/O图标编程,通过手动对基地址的设置,直接从特定的地址内存中读取数据。若采样速度要求不高,它是很方便直观的方法;其二,利用LabVIEW的Funct
[模拟电子]
基于LabVIEW的通用<font color='red'>数据采集卡</font>的驱动
小广播
最新测试测量文章
换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved