在LabVIEW中利用DLL实现数据采集
LabVIEW对数据采集卡DLL函数的调用
2004年9月襄樊学院学报 Sept.,2004 第25卷第5期 Journal of Xiangfan University V ol.25 No.5LabVIEW对数据采集卡DLL函数的调用刘传清 (襄樊学院 物理学系,湖北 襄樊 441053) 摘要:首先介绍虚拟仪器及其开发环境LabVIEW6的特点,分析并实现了将LabVIEW与外部代码进行连接的高级技术之一—动态链接库(DLL)机制. 实践表明,此机制高效、易行,是增强LabVIEW与其它Windows应用程序之间的数据共享能力的一条很好的途径. 关键词:虚拟仪器;LabVIEW;动态链接库;DLL 中图分类号:TN311.11 文献标志码:A 文章编号:1009-2854(2004)05-0015-03 0 引言 美国国家仪器NI公司的基于G语言的开发环境LabVIEW的出现,使得虚拟仪器的思想为工业界所接受. 所谓虚拟仪器,就是在通用计算机平台上,用户根据自己的需求定义和设计仪器的测试功能,其实质是将传统仪器硬件和最新计算机软件技术充分结合起来,以模块化软件实现并扩展传统仪器的功能. 与传统仪器相比,虚拟仪器在智能化程度、处理能力、性能价格比、可操作性等方面均具有明显的技术优势.LabVIEW(Laboratory Virtual Instrument Engineering Workbench─实验室虚拟仪器工程平台)是目前国际上首推应用最广的虚拟仪器开发环境之一,主要应用于仪器控制、数据采集、数据分析、数据显示等领域,并适用于Windows 9X/XP/2000/ NT、Macintosh、UNIX等多种不同的操作系统平台. 与传统程序语言不同,LabVIEW采用强大的图形化语言(G语言)编程,面向测试工程师而非专业程序员,编程非常方便,人机交互界面直观友好,具有强大的数据可视化分析和仪器控制能力等特点.使用LabVIEW开发环境,用户可以创建32位的编译程序,从而为常规的数据采集、测试、测量等任务提供了更快的运行速度. LabVIEW是真正的编译器,用户可以创建独立的可执行文件,能够脱离开发环境而单独运行. 对于大多编程任务,LabVIEW通常能产生高效的代码.1 LabVIEW调用外部程序代码的途径之一 —— 动态链接库机制 1.1 动态链接库机制概述 LabVIEW是一个功能强大的虚拟仪器开发环境,它完整地集成了与GPIB、VXI、RS-232、RS-485和内插式数据采集卡等硬件的通讯. LabVIEW还具有内置程序库,提供了大量的连接机制,通过DLLs、共享库、ActiveX等途径实现与外部程序代码或软件系统的连接.LabVIEW提供了4种调用外部程序代码的途径,其中动态链接库(Dynamic Link Library─DLL)机制是从LabVIEW调用标准共享库和用户自定义库函数的通用方法. 具体实现时,是使用LabVIEW功能模板中“Advanced”子模板里的“调用库函数(Call Library Function)”结点.“调用库函数结点”包括大量的数据类型和调用规范,使用它可调用大多数标准共享库和用户自定义库中的函数,包括:Windows9X/XP/2000/NT下的动态链接库(Dynamic LinkLibrary)、Macintosh下的代码段(Code Fragment)、UNIX下的共享库函数(Shared Library Function)等.当用户需要调用的代码已经存在,或者用户比较熟悉Windows中动态链接库、Macintosh中代码段、UNIX中共享库的创建过程时,“调用库函数结点”非常有用,此时使用它也最为合适恰当,因为库使用了收稿日期:2004-04-21基金项目:湖北省教育厅重点项目(2003A006)作者简介:刘传清(1964- )男,湖北鄂州人,襄樊学院物理学系副教授.15刘传清:LabVIEW对数据采集卡DLL函数的调用对几个开发环境都适用的格式标准,故用户可以使用几乎任何开发环境去创建LabVIEW能够调用的库. 1.2动态链接库机制实现步骤在Windows 9X下,利用LabVIEW 6.1 (for Windows 95/98/NT)中的“动态链接库机制”调用一个DLL,此DLL返回机器的名称.1)建立“调用库函数结点”新建LabVIEW程序“hostname.vi”,存至新建目录“d:\temp”下,其前面板如下: 图1 库函数调用前面板图 框图程序如下: 图2 库函数调用程序框图 其中,“Call Library Function”结点是通过选择功能模板中“Advanced”子模板里的“Call Library Function”功能模块而产生的.此LabVIEW程序通过“调用库函数结点”调用一个DLL,此DLL将返回机器的名称,返回结果存至字符串指示量“Machine Name”中,而后将字符串常量“LabVIEW is running on ”与“Machine Name”相拼接,拼接之结果在字符串指示量“Message”中显示.2)配置“调用库函数结点”双击框图程序窗口的“Call Library Function”结点,在弹出的对话框中对此“调用库函数结点”进行配置. 其中:在“Library Name or Path”一项中键入“d:\temp\hostname.dll”(即,指明此结点所链接的DLL文件名,它由C源代码“hostname.c”编译而来);在“Function Name”一项中键入“MachineName”(即,指明与此结点相链接的DLL文件中的函数的名称);参数“return type”的类型选择“Void”;所增加的另一个参数“arg1”的类型选择“String”、字符串格式选择“String Handle”;3)编辑C源文件编辑C源文件“hostname.c”(存至目录“d:\temp”下),其内容如下:/* include extcode.h which contains the prototypes for the LabVIEW functions */#include <extcode.h>#include <stdio.h>#include <windows.h>BOOL WINAPI DllMain (HANDLE hDLL, DWORD dwReason, LPVOID lpReserved) {return TRUE;}/* This functions gets the computer name and returns it to LabVIEW */__declspec (dllexport) void MachineName(void *LVHandle) {char computerName[MAX_COMPUTERNAME_LENGTH+1];int compNameLength = MAX_COMPUTERNAME_LENGTH+1;16第25卷第5期襄樊学院学报 2004年第5期/* Get computer name */GetComputerName(computerName, &compNameLength);/* Size LabVIEW handle to the correct size */DSSetHandleSize(LVHandle, compNameLength + 5);/* Copy the string size to the LabVIEW handle */**(int32 **)LVHandle = compNameLength ;/* Copy the string to the LabVIEW handle */sprintf((*(char **)LVHandle)+4,"%s",computerName);}此程序首先了调用Windows的API函数“GetComputerName”获取机器名;然后调用LabVIEW的函数“DSSetHandleSize”来设置LabVIEW句柄之大小;最后将机器名长度(32位整型)、机器名(字符串型)依次写入句柄中.4)编译C源代码将C源代码“d:\temp\ hostname.c”编译成一个DLL文件“d:\temp\hostname.dll”.可使用VC++ 6.0 (for Windows 95/98/2000/NT),完成此编译工作.5)运行VI运行LabVIEW程序“hostname.vi”,结果如下:图3 前面板运行结果 2 结束语 本文着重阐述并实现了将LabVIEW与外部代码进行连接的高级技术之一─动态链接库机制,并给出了应用实例. 由于在LabVIEW中引入了C语言的强大功能,从而提高了LabVIEW的整体性能.本方法已在LabVIEW 6.1 for Windows 95/98/NT及Visual C++ 6.0 for Windows 9X/XP/2000/NT 环境下实现. 实践证明,此方法高效、易行,是增强LabVIEW与其它Windows应用程序之间的数据共享能力的一条很好的途径.参考文献: [1] LabVIEW User Manual,National Instruments Corporation,1998.[2] G Programming Reference Manual,National Instruments Corporation,1998.LabVIEW Data Acquisition Invoke for DLL FunctionsLIU Chuan-qing(Department of Physics, Xiangfan University, Xiangfan 441053, China)Abstract :This paper introduces virtual instrument and the features of its development environment─LabVIEW,analyzes and realizes the advanced technology-Dynamic Link Library(DLL) ,which is one of the general methods for calling external code from LabVIEW. It has been proved that this method is efficient,practicable and also a good one to enhance LabVIEW’s capacity of sharing data with other applications in Windows.Key words:Virtual instrument; LabVIEW; Dynamic Link Library ; DLL17。
如何利用LabVIEW进行数据采集与处理
如何利用LabVIEW进行数据采集与处理LabVIEW是一种流程图编程语言,专门用于控制、测量和数据采集等应用领域。
它的易用性和功能强大使得许多科研、工业和教育机构都广泛采用LabVIEW进行数据采集与处理。
在本文中,我将介绍如何利用LabVIEW进行数据采集与处理的基本步骤和技巧。
一、准备工作在开始数据采集与处理之前,首先需要进行准备工作。
这包括安装LabVIEW软件、连接传感器或测量设备、配置硬件设备和安装相关驱动程序等。
确保LabVIEW软件和硬件设备都能正常工作。
二、建立数据采集程序1. 打开LabVIEW软件,在工具栏上选择"新建VI",创建一个新的虚拟仪器(VI)。
2. 在Block Diagram窗口中,选择相应的控件和函数,用于实现数据采集的功能。
例如,使用"DAQ Assistant"控件来配置和控制数据采集设备。
3. 配置数据采集设备的参数,如采集通道、采样率、触发方式等。
根据实际需求进行设置。
4. 添加数据处理的功能模块,如滤波、去噪、采样率转换等。
这些模块可以根据数据的特点和需要进行选择和配置。
5. 连接数据采集设备和数据处理模块,确保数据能够流畅地进行采集和处理。
6. 运行程序进行数据采集,可以观察到数据随着时间的推移不断变化。
三、数据可视化与分析1. 在LabVIEW软件中,使用图形化的方式将采集到的数据可视化。
例如,使用波形图、数值显示等控件显示数据结果。
2. 利用LabVIEW提供的分析工具,对采集到的数据进行进一步的统计和分析。
例如,计算均值、标准差、峰值等。
3. 根据需要,将数据结果输出到其他文件格式,如Excel、文本文件等,以便进一步处理和分析。
四、数据存储与导出1. 在LabVIEW中,可以选择将数据存储到内存中或者存储到文件中。
存储到内存中可以方便实时访问和处理,而存储到文件中可以长期保存和共享数据。
2. 使用适当的文件格式和命名方式,将数据存储到本地磁盘或者网络存储设备中。
利用LabVIEW开发完整的数据采集、分析、显示及存储系统
针对多种应用搭建测试系统
实验台综合测试
机器状态监控
车载数据记录
23
应用开发软件
24
中国地区数据采集和仪器控制领域最常用的软件
0% 5% 10% 15% 20% 25% 30%
National Instruments LabVIEW Microsoft - Visual C++ The MathWorks, Inc. MATLAB® Microsoft - Visual Basic National Instruments LabWindows/CVI T&M Programmer’s Toolkit
• STFT, Gabor等谱分析,时变滤波器设计
– 小波分析
• 离散、连续小波变换,特征提取,去噪去趋势
– 时间序列分析
• 相关性与多通道谱分析,ARMA建模,熵,ICA,PCA
– 多达90多个高级信号处理应用范例
Demo
36
更多的LabVIEW工具包
• 滤波器设计工具包
– – – – – IIR, FIR, Special filter设计(陷波、梳状滤波器等) 滤波器特性分析,相频响应等 滤波器结构变换,级联转换,参数均衡 多速率滤波器(MultiRate filter)设计与分析 定点滤波器设计与转换,可自动生成代码并移植 入CRIO中的FPGA模块
声音振动分析工具包
失真度,倍频程分析, 正弦扫 频, 振动级,声级, 频率测量, 过限测试, 瞬态, 时域积分, 加 权或者权重, 瀑布图, …
阶次分析工具包
阶次跟踪, 阶次提取, 在线阶 次分析, 阶次谱图选取, 转速 信号处理, 瀑布图, 轴心轨迹 图/极坐标图, 波特图, …
基于LabVIEW和DLL的USB2850采集卡DAQ系统设计
基 于 L b lW 和 DL a VE L的 U B 8 0采集 卡 D Q 系统 设 计 S 25 A
基于 L b IW 和 D L U B 8 0采集卡 D Q系统设计 a V E L 的 S 25 A
Hi e d Da a Ac i n y t m fUSB 8 0 DAQ r s d o L a d L b E gh Sp e t qur g S s e o i 2 5 Ca d Ba e n DL n a Vl W
,
welas l mont s an c tos W e a i d onr l or b ppl a i s e i t c on r mot y el. Ke wo d L bVl 。 y r s:a EW USB28 0. L, gh pe t cqur g 5 DL Hi —s ed da a a in i
,.
an dic s e ta b e on d s u s s h t as d co plx ewor n t USB2 0 gh—s ee DAQ —Ca d che e te m e n t k co dion, i 85 hi p d r a iv s h da a ac in an t qur g d i
王 丽娜 费 凌
( 西华大学, 四川 成都 6 03 ) 10 9
摘 要
介 绍 了一种 在 L b IW 平 台下 使 用 国产 数 据 采 集 卡 实现 高速 数 据 采 集 的可 行 方 法 。 探 讨 了 U B 8 0高速 采 集 卡 在 a VE S 25
复 杂 网络 应 用环 境 下 , 过 L b IW 调 用板 卡 的 动 态 库 ( L ) 实现 上 层 数 据 的 采 集 与 分析 过 程 的 关键 技 术 。 实例 中设 计 通 a VE D L, 和 实现 了下位 测控 机 进 行 数 据 采 集后 再 通 过 以太 网与 上 住 处 理机 进行 通信 , 同时 上 位 处 理 机进 行 数 据 显 示 和 分 析 , 及 远 以
LabVIEW平台下调用DLL实现PC_104数据采集
YUAN Wei-hua HAN Yu-s heng ZHANG Wei-wei LI Xiao-ming
摘要: LabVIEW 是 一 个 高 效 的 图 形 化 软 件 开 发 环 境 , 在 数 据 采 集 和 测 试 测 量 中 应 用 广 泛 。 但 在 PC- 104 硬 件 平 台 下 使 用
嵌入式计算机应用
中 文 核 心 期 刊 《 微 计 算 机 信 息 》( 嵌 入 式 与 S OC )2008 年 第 24 卷 第 4-2 期
(2)ADT700.h— ——ADT700 驱动程序头文件。
(3)ADT700.cpp— ——ADT700 数 据采 集 卡 的驱 动 程 序代 码 主
文件 , 该 文 件 中 定 义 了 操 作 ADT700 完 成 数 据 采 集 和 输 出 的 主
Call Library Function 节点, 将选择好的 Call Library Function 节
据 采 集与 控 制 系统 。该 卡 可实 现 16 路 单端 或 8 路 差分 模 拟 信
(1)WinIO.dll— ——在 Windows32 操 作 系 统 环 境 下 操 作 硬 件
号输 入 , 具有 12 位 数 字分 辨 率 , 最大 A/D 采 样 率为 100KHz, 量 端 口地 址 所 需要 的 链 接库 文 件 , 由于 Windows32 操 作 系统 采 用
在 Windows 32 操 作 系 统 环 境 下, 可 以 使 用 VC++6.0 建 立
2 PC/104 数据采集 卡 ADT700 简介
DLL 文 件 , VC++ 中 可 以 建 立 两 种 DLL: 使 用 MFC(Microsoft Function Class)的 DLL 和不使用 MFC 的 DLL。每种 DLL 都有它
基于调用DLL的LabVIEW数据采集的实现
万方数据陋的论文得到两院院士关注l数采与监测卡,此卡为12/16位A/D转换分辨率,最高采样频率町达lOOK3.3基于调用DLL的应用实例Hz。
PCI--9111数据采集卡自带了Windows下的驱动程序库本例子通过调用凌华数据采集卡的PCI—Dask.dll实现简单PCI—Dask.d11.库内包含了数据采集用的所有函数,下面就将要的单通道的旋转机械转子不平衡时振动速度信号的监测,主要调用的有关甬数作个简要的说明。
目的在于说明在LabVIEW中调用DLL的具体应用。
在速度传在说明函数之前,有必要对DLL中的数据类型作个介绍。
感器检测的信号输入数据采集卡之前,经过了凋理模块,实行116表示有符号16位整型,对应C语言中的。
holt;U16表示无了放大、隔离和滤波等,最后显示的波形接近转子不平衡时振符号16位整型,对应c语言中的unsignedshort;1"64表示双精动的正弦波形。
度浮点数,对应c语言中的double。
程序设计采用顺序结构,设置i个调用动态链接库节点。
116RegkterCard(U16CanIType.U16card):该函数的第一帧调用e函数进行数据采集卡的初始化,输入_numRgitr_Card功能是初始化数据采集卡,使其做好输入输出操作的准备,返数据采集卡的型号和卡号;第:二帧调用AI—VreadChannel函数回值为数据采集卡的卡号,此卡号数为数据采集卡插在PCI插读取通道的电压,并用波形图表显示I叶J来;第i帧调用Re一槽中的序列号,在下文例子中为0。
CardType和card_num为函lea.se_Card函数释放数据采集卡所占资源,程序结束。
具体各个数的参数,CardType为数据采集卡的型号,凌华公司对不同的节点的配置依照上文介绍的步骤设置好即可。
程序的前面板如型号有对应的代码,在下文例子中,其代码为2l。
在调用其它函图2所示,程序框图如图3所示。
数之前,必须先调用此函数。
在LabVIEW中实现基于DLL的图象采集系统开发
・技术开发与应用・在LabV IEW 中实现基于DLL 的图象采集系统开发祁传琦1 何龙2 刘琼3(112131成都航空职业技术学院 四川 成都 610021) 摘 要:本文利用LabV IEW 与外部代码进行连接的动态链接库机制,实现了在LabV IEW 中对非N I 图象采集卡的操作,完成图象的采集、显示和存储。
程序由LabV IEW 设计软件界面,由VC610开发图象采集DLL ,条理清楚,一目了然,系统软件便于维护和升级换代。
实践证明,该种处理手段不失为一种LabV IEW 与非N I 设备实现通讯的切实可行的好方法。
关键词:虚拟仪器 动态链接库 图象采集 系统 开发 中图分类号:TP31714 文献标识码:A 文章编号:1671-4024(2005)02-41-02 收稿日期:2004-12-14作者简介:祁传琦(1977-),女,回族,河南周口人,工学硕士,助讲,从事机电控制系统的教学研究;何龙(1973-),男,四川遂宁人,讲师,从事数控机电的教学与研究;刘琼(1979-),女,四川自贡人,助讲,从事测控技术及仪器的教学和研究。
一、引言LabV IEw 是N I 公司推出的虚拟仪器开发平台软件。
它采用图形化编程语言—G 语言,以其直观简便的编程方式、众多的源码级的设备驱动程序、多种多样的分析和表达功能支持,为用户快捷地构筑自己在实际生产中所需要的仪器系统创造了基础条件。
LabV IEW 具有开放的环境,能和第三方软件轻松连接[1,2]。
通过LabV IEW 能把现有的应用程序和N ET 组件、ActiveX 、DLL 以及广泛的网络协议相联,也可以在LabV IEW 中创建能在其它软件环境中调用的独立执行程序或者动态链接库。
对于图象采集,N I 公司的IMAQ 产品为图象采集与分析系统提供了完整的解决方案,但其产品价格较高,很多用户使用的并不是N I 公司的图象采集卡甚至是自行研制的专用图象采集卡。
LabVIEW 调用 C-C++ Dll 详解
LabVIEW 调用C/C++ Dll 详解LabVIEW 在配上NI 的采集卡或者别的第三方的硬件,约等于神器(虽然有时候贵了点)。
这样你可以比较集中精力的专注于数据处理了,就不用学习麻烦的Win32 的GUI 编程, 也不用关注和你自己搞的采集板之间的通信了。
对于每一个测控行业的程序来说,基本上都是:初始化-->数据采集-->数据处理-->数据显示-->数据保存-->结束的一个过程。
当然如果是实时的,那么采集,处理,显示就是在一个loop 里面。
当然为了保证实时性,数据处理和数据采集不一定在一个线程里,因为处理的时候把采集给block 住也挺傻的。
LabVIEW 很容易帮你搞定:初始化-->数据采集-->数据处理-->数据显示-->数据保存-->结束但是数据处理部分,是和你的学科紧密相关的,有时候算法会诡异到你很难用VI来实现,那么你就要有C++”target=“_blank”>C++code来搞了。
那么C/C++ 是如何与LabVIEW 交互的呢,本文来较详细的阐述一下,因为准备采用总分总的写作手法...所以先来个概括...1. 把C/C++ code 编译成Dll。
2. 用LabVIEW 的call library node 来调用。
难点在于:如何把LabVIEW 的数据类型和C/C++ 的来对应。
控件x 相当与一个double,当然其类型也是可以选择的(如右图所示)。
boolean 按理说应该是一个bool, 但是传入call library node 的时候,一般要转成unsigned int 型。
cluster 其实就是个struct ,左图的cluster 是:struct tCluster{ double x11; // 类型都可以向右图那样自己配置double x2; int x3;};对于string,这里要着重讲一下,labview 的string 类型里面是包含长度信息的,它不是一个简单的char *它是个LStrHandle 类型:定义咋extcode.h 里面(可以在labview 目录下搜到)typedef struct {int32 cnt;uChar str[1];} LStr, *LStrPtr, **LStrHandle;cnt 就是含有多少个字符,str 这个指针所指的就是数据区的第一个字符。
数据采集卡如何在Labview下使用)
如何在labview下使用研华板卡?(适用于所有 ISA 和PCI 系列模拟量和数字量采集卡)答:研华所有das卡都可以在labview下使用。
Labview驱动是建立在32bitDLL驱动基础之上的,见下图。
所以要安装labview驱动先要安装32bitDLL驱动。
包括devicemanager和对应板卡的DLL 驱动,然后再安装对应的labview驱动。
具体步骤如下:2.3.1.1 安装Device Manager和32bitDLL驱动注意:测试板卡和使用研华驱动编程必须首先安装安装Device Manager和32bitDLL 驱动。
第一步:将启动光盘插入光驱;第二步:安装执行程序将会自动启动安装,这时您会看到下面的安装界面:图2-1注意:如果您的计算机没有启用自动安装,可在光盘文件中点击autorun.exe文件启动安装程第三步: 点击CONTINUE,出现下图界面(见图2-2)首先安装Device Manager。
也可以在光盘中执行\tools\DevMgr.exe直接安装。
图2-2第四步:点击IndividualDriver,然后选择您所安装的板卡的类型和型号,然后按照提示就可一步一步完成驱动程序的安装。
图2-32.3.1.4 labview驱动程序安装使用说明研华提供labview驱动程序。
注意:安装完前面步骤的Device Manager和32bitDLL 驱动后labview驱动程序才可以正常工作。
光盘自动运行点击Installation再点击Advance Options 出现以下界面(见图2-6)。
点击:LavView Drivers来安装labview驱动程序和labview驱动手册和示例程序。
图2-6安装完后labview驱动帮助手册快捷方式为:开始/ 程序/ Advantech Automation/LabView/XXXX.chm。
默认安装下也可以在C:\Program Files\National Instruments\LabVIEW 7.0\help\Advantech 中直接打开labview驱动帮助手册。
在LabVIEW中利用DLL实现数据采集
在LabVIEW中利用DLL实现数据采集
许剑;邹小芳;王建华
【期刊名称】《微计算机信息》
【年(卷),期】2008(24)13
【摘要】随着计算机技术及虚拟仪器技术的迅速发展,虚拟仪器正逐渐成为测试领域的发展方向.本文介绍了在LabVIEW环境下驱动普通数据采集卡的重要方法--动态链接库机制(DLL),并结合具体实例介绍了一种利用LabVIEW提供的Call Li-brary Function (CLF)节点实现对动态链接库(DLL)调用的关键技术及步骤,实现LabV IEW与普通数据采集卡的结合,丰富LabVIEW对硬件的控制能力.并将数据库技术应用于虚拟测试系统中,建立了Access数据库,实现数据的存储和自动管理,从而拓展了虚拟测试系统的功能.
【总页数】3页(P95-96,67)
【作者】许剑;邹小芳;王建华
【作者单位】212003,江苏镇江,江苏科技大学,电子信息学院;212003,江苏镇江,江苏科技大学,电子信息学院;212003,江苏镇江,江苏科技大学,电子信息学院
【正文语种】中文
【中图分类】TP14
【相关文献】
bVIEW中调用DLL实现PC-6313接口卡的数据采集 [J], 黄艳岩;杨孝鹏;陈乐
2.基于DLL的Labview环境多通道数据采集的实现方法 [J], 刘锋华;颜肖龙;余慧杰
3.嵌入式LabVIEW调用DLL实现数据采集 [J], 黄佳钰;邓焱;张锦杰
bVIEW平台下调用DLL实现PC/104数据采集 [J], 袁魏华;韩裕生;张伟伟;李小明
5.基于调用DLL的LabVIEW数据采集的实现 [J], 张亿雄;顾海明
因版权原因,仅展示原文概要,查看原文内容请购买。
LabVIEW下基于DLL的数据采集应用
收稿日期:2002-03-27作者简介:王丹民(1968-),男,内蒙古宁城人,工程师,硕士,主要从事计算机软件开发和设备诊断等方面的科研工作。
控制工程Control Engineering of China May 2002Vol.9,No.32002年5月第9卷第3期文章编号:100523662(2002)0320068203LabVIEW 下基于DLL 的数据采集应用王丹民(设备诊断工程中心,辽宁沈阳 110006)摘 要:介绍一种在LabV IEW 下使用普通数据采集卡实现精确定时数据采集的方法。
该方法使用LabV IEW 与外部代码进行连接的动态连接库机制,实现对数据采集卡的I/O 控制;利用Windows 新的多媒体定时器的定时功能,实现准确到1ms 的定时采样。
经试验验证,在使用1000Hz 的采样频率采集50Hz 的标准锯齿波时,定时误差小于0101%。
实践表明,此机制高效、易行,使LabV IEW 强大的信号处理功能得到了充分的利用。
关 键 词:LabV IEW ;数据采集;动态连接库中图分类号:TP 274 文献标识码:B1 引 言LabV IEW (Laboratory Virtual Instrument Engineering Workbench ─实验室虚拟仪器工程平台)是美国国家仪器公司(N I )的产品,是目前国际上首推应用最广的数据采集和控制开发环境之一,主要应用于仪器控制、数据采集、数据分析、数据显示等领域,并适用于Windows 9x/2000、Windows N T 、Macintosh 、UN IX 等多种不同的操作系统平台。
与传统程序语言不同,LabV IEW 采用强大的图形化语言(G 语言)编程,面向测试工程师而非专业程序员,编程非常方便,人机交互界面直观友好,具有强大的数据可视化分析和仪器控制能力等特点。
使用LabV IEW 开发环境,用户可以创建32位的编译程序,从而为常规的数据采集、测试、测量等任务提供了更快的运行速度。
在LabVIEW中实现数据采集
Easy VIs Intermediate VIs Advanced VIs Utility VIs
Easy Analog Input VIs
这是LabVIEW提供的一组标准的、简单易用的 采集 VI.
:从指定通道获得一个样本.
:从通道组获得一个样本,这些样本返回到一个样本数组.
:由一个通道得到一个波形,这些样本返回到一个waveform 数组.
System
该设置项显示了设备占用的系统资源以及设备的编号。
AI
AO
Accessory
OPC
在完成上述设置后,单击确定,会出现“Test Resources”和“Test Panels”按钮。单击 “Test Resources”出现测试结果对话框。
单击“Test Panels”按钮出现测试面板。
Device—采集卡的设备号. Channel—指定模入通道号的串数组. Buffer size—单位是scan,用于控制采集数据计算 机内存的大小.
AI Start启动带缓冲的模入操作。它控制数据采 集速率,采集点的数目,及使用任何硬件触发 的选择。它的两个重要输入是:
Scan rate (scan/sec)—对每个通道采集的每秒扫描次 数. Number of scans to acquire—对通道列表的扫描次数。
8 differential 12bits 200kS/s guaranteed Bipolar only 512 samples
Analog Output Number of channels Resolution Range
2 16bits +-10V
2 12bits +-10V
LabVIEW数据采集与处理利用LabVIEW实现高效数据处理
LabVIEW数据采集与处理利用LabVIEW实现高效数据处理LabVIEW数据采集与处理LabVIEW(Laboratory Virtual Instrument Engineering Workbench)是一款图形化编程环境,可广泛应用于各种控制、测量和测试领域。
在实验室和工业自动化系统中,数据采集和处理是其中重要的环节之一。
本文将介绍如何利用LabVIEW实现高效的数据采集与处理。
一、数据采集LabVIEW提供了丰富的数据采集工具和函数,使得数据采集过程变得简单和高效。
以下是一个基本的LabVIEW数据采集流程:1. 硬件连接:将传感器、仪器或其他采集设备连接到计算机。
LabVIEW支持各种硬件接口,如PCIe、USB等。
2. 创建VI(Virtual Instrument):在LabVIEW中创建一个VI,即虚拟仪器。
VI由一组图形化程序组成,可以自定义界面和功能。
3. 配置数据采集设备:在VI中使用LabVIEW提供的硬件配置工具,选择合适的采集设备和参数,如采样率、通道数等。
4. 编程采集逻辑:使用LabVIEW的图形化编程语言G语言,编写数据采集逻辑。
可以通过拖拽函数块、连接线等方式完成。
5. 运行VI:运行VI,开始进行数据采集。
LabVIEW将实时地从采集设备读取数据,并通过显示面板或输出文件进行展示。
通过以上步骤,我们可以完成数据的实时采集。
接下来,需要对采集到的数据进行处理和分析。
二、数据处理LabVIEW提供了强大的数据处理功能,可以进行数学运算、滤波、傅里叶变换等操作。
以下是一些常用的数据处理方法:1. 基本运算:LabVIEW提供了丰富的数学函数和运算符,可以进行加减乘除、幂运算、取模、比较等操作。
通过这些操作,我们可以对采集到的数据进行基本的数值分析。
2. 滤波处理:在许多应用中,由于噪声和干扰的存在,需要对数据进行滤波处理。
LabVIEW提供了各种滤波函数和工具,如低通滤波、高通滤波、带通滤波等。
LabVIEW平台下基于DLL的普通数据采集卡的驱动_李伯全
收稿日期:2003-10基金项目:江苏大学高级技术人才科研启动基金项目(02JDG001)作者简介:李伯全(1956 ),男,教授,主要从事智能传感检测与虚拟仪器的教学和科学研究工作。
LabVIEW 平台下基于DLL 的普通数据采集卡的驱动李伯全,潘海彬,罗开玉(江苏大学机械工程学院测控技术与仪器系,江苏镇江212013)摘要:介绍LabVIEW 平台下驱动普通数据采集卡的重要方法 调用DLL,并结合具体实例介绍了在LabVIEW 中调用DLL 的关键技术及步骤,和用此方法开发的一套温度采集系统。
关键词:虚拟仪器;动态连接库;驱动程序;数据采集中图分类号:TP39,TH811 文献标识码:B 文章编号:1006-2394(2004)02-0011-02Normal DAQ Board Driving in LabVIEW Based on DLL TechnologyLI Bo quan,PAN Hai bin,LUO Kai yu(Measuremen t &Control Departmen t,College of Mechanical Engineering,Jiangsu University,Zhenjiang 212013,China)Abstract:This text introduces an i mportant approach of driving normal DAQ board calling DLL ,and introduces the pivotal technology and procedure of calling DLL,and develops a series of temperature acquisition system with this approach.Key words:VI(vi rtual instrument);DLL(dynamic link library);device driver;data acquisiti on1 LabV IEW 与普通数据采集卡的连接方式LabVIEW 是美国NI 公司推出的一种基于G 语言(Graphics Language,图形化编程语言)的虚拟仪器软件开发工具,具有强大的数据采集功能。
嵌入式LabVIEW调用DLL实现数据采集
嵌入式LabVIEW调用DLL实现数据采集
黄佳钰;邓焱;张锦杰
【期刊名称】《微计算机信息》
【年(卷),期】2010(026)011
【摘要】为了实现便携式高精度检波器测试仪的数据采集和信号处理,本文研究了嵌入式系统中开发LabVIEW应用程序的方法.本文以ARM+Windows CE为平台进行了检波器测试仪的软硬件设计,分析了基于24位地震勘探芯片组的数据采集模块的控制方法,开发了实现SPI总线通讯和GPIO控制的驱动程序,以及实现芯片组数据采集流程的接口函数,针对嵌入式LabVIEW应用程序编译和运行环境的跨平台问题,研究并验证了动态连接库的存根调用方法,最终在嵌入式系统中实现了LabVIEW应用程序的数据采集.
【总页数】3页(P26-28)
【作者】黄佳钰;邓焱;张锦杰
【作者单位】100084,北京,清华大学精密仪器与机械学系精密计量测试技术与仪器国家重点实验室;100084,北京,清华大学精密仪器与机械学系精密计量测试技术与仪器国家重点实验室;100084,北京,清华大学精密仪器与机械学系精密计量测试技术与仪器国家重点实验室
【正文语种】中文
【中图分类】TP274
【相关文献】
bVIEW中调用DLL实现PC-6313接口卡的数据采集 [J], 黄艳岩;杨孝鹏;陈乐
bVIEW对数据采集卡DLL函数的调用 [J], 刘传清
3.基于LabVIEW环境下调用DLL实现仪器控制 [J], 侯博;廖醒宇
bVIEW平台下调用DLL实现PC/104数据采集 [J], 袁魏华;韩裕生;张伟伟;李小明
5.基于调用DLL的LabVIEW数据采集的实现 [J], 张亿雄;顾海明
因版权原因,仅展示原文概要,查看原文内容请购买。
如何利用LabVIEW进行数据采集和分析
如何利用LabVIEW进行数据采集和分析LabVIEW是一种强大的可视化编程环境,广泛应用于数据采集和分析领域。
本文将介绍如何利用LabVIEW进行数据采集和分析的步骤和技巧。
一、LabVIEW简介LabVIEW是由美国国家仪器公司(National Instruments)开发的一种图形化编程语言。
其独特之处在于可以通过拖拽和连接图标来编写程序,而无需手写代码。
LabVIEW具有强大的数据采集和分析功能,被广泛应用于科学研究、工程控制、仪器仪表等领域。
二、数据采集1. 硬件设备选择在进行数据采集之前,需要选取合适的硬件设备。
LabVIEW支持多种硬件接口,如USB、Ethernet、GPIB等。
根据实际需求选择合适的硬件设备,并进行连接。
2. 创建数据采集程序打开LabVIEW软件,创建一个新的VI(Virtual Instrument)文件。
VI是LabVIEW的文件格式,用于编写程序和处理数据。
在VI中,可以添加各种图标和函数,用于实现数据采集和其他操作。
3. 配置数据采集参数在VI中,通过添加数据采集模块和设置属性来配置数据采集参数。
可以设置采样率、采样时间、通道数等参数。
根据具体应用需求,进行相应的配置。
4. 开始数据采集配置完成后,通过添加开始按钮或触发条件来启动数据采集过程。
LabVIEW会根据设定的参数,实时采集数据并保存到指定文件或内存中。
三、数据分析1. 数据导入与处理在数据采集完成后,可以导入数据进行进一步的分析。
LabVIEW提供了丰富的数据处理函数和工具,可以对导入的数据进行滤波、平滑、插值等处理操作,以得到更精确的结果。
2. 数据可视化LabVIEW具有强大的数据可视化能力,可以将分析结果以图表、曲线等形式展示。
通过添加图表模块和调整参数,可以实时动态显示数据分析的结果,提高数据处理的直观性和可理解性。
3. 数据分析算法LabVIEW支持多种数据分析算法,如统计分析、信号处理、模式识别等。
在LabVIEW下基于调用DLL的压缩机气缸压力信号的采集
SUN Zhuo - hui1 , XIAO Jian - xin1 , ZHANG Da - hai1 , WANG Long - ting2
tion node CLF call external dynamic link library and code interface node CIN call C source code, intro⁃ duced LabVIEW called dynamic link library technique and process, realized the function of a direct memory access ( DMA) data acquisition module USB20D. It has been proved that the method is sim⁃ ple, high efficiency, LabVIEW powerful graphical programming and data processing function with the non NI data acquisition devices combined with data collection. Key words: virtual instrument; LabVIEW; Dynamic Link Library; data acquisition ㊀ ㊀ 活塞式往复压缩机性能测控系统建立的关键是 气缸压力的高速采集,因而利用 DMA(Direct Memory Access,直接内存访问) 直接传输数据而不通过 CPU 的特 点[1] , 选 用 具 有 DMA 采 集 功 能 的 西 安 泰 达 USB20D 数据采集卡㊂ 数据采集卡为计算机操作系统 和 LabVIEW 所识别㊁操作并达到既定工作效果,是建 立在设备驱动程序的基础上的,因而首先要掌握采集 卡驱动及接口调用方法㊂ LabVIEW 支持 NI 公司的 ㊀ ㊀ ㊀ ㊀ ㊀ ㊀ ㊀ ㊀ ㊀ ㊀ ㊀ ㊀ ㊀ ㊀ ㊀ ㊀ ㊀ ㊀ ㊀ ㊀ ㊀ ㊀ ㊀ ㊀ ㊀ ㊀ ㊀ ㊀ ㊀ ㊀
基于DLL的Labview数据采集系统
收稿日期:2005201213第13卷 第2期2005年6月北京石油化工学院学报Journal of Beijing Instit ute of Pet ro 2chemical TechnologyVol.13 No.2J un.2005基于DLL 的Labview 数据采集系统李学生1 戴 波2(1 北京化工大学,北京100029;2 北京石油化工学院,北京102617)摘要 Labview 是一个高效的图形化程序设计环境,在测试、测量及工业控制中有广泛的应用,但所有的采集卡必须有N I (National Instruments )公司提供的驱动程序,大大的限制了用户的选择。
分析Labview 调用外部代码的方法,介绍Labview 平台下调用DLL 驱动国产数据采集卡的关键技术及其方法,用VC ++编制动态连接库实现采集卡采集数据,并结合实际工程制作DLL 驱动程序。
关键词 虚拟仪器;动态连接库;数据采集卡中图法分类号 TP216 Labview 是美国N I 公司推出的一种基于G 语言的虚拟仪器软件开发工具,具有强大的数据采集功能,它提供了大量的数据采集节点,但这些节点只支持N I 公司提供的数据采集卡,并且价格昂贵。
因此在Labview 平台下驱动国产采集卡必须通过Labview 提供的外部代码接口来实现。
目前国产采集卡的Labview 驱动通常使用CL F (动态链接库)技术来实现,并且都是在标准C 或VC ++的环境下实现的。
用VC ++在Windows 环境中建立Win32的DLL 有2种办法:一种是直接调用Windows 环境提供的Win32A PI 函数编写,使用这种方法,大量的程序必须由用户自己编写;另一种是使用M FC App Wizard (DLL )向导生成DLL 的程序框架,在这里,向导完成了大部分的工作,需要做的只是实现一个能完成与数据库交换数据的导出函数[1]。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
在LabVIEW中利用DLL实现数据采集Realization of Data Acquis ition with DLL in LabVIEW班级学号:0704114-23姓名:杨鹏摘要:随着计算机技术及虚拟仪器技术的迅速发展, 虚拟仪器正逐渐成为测试领域的发展方向。
本文介绍了在LabVIEW 环境下驱动普通数据采集卡的重要方法- - 动态链接库机制(DLL), 并结合具体实例介绍了一种利用LabVIEW 提供的Call LibraryFunction (CLF)节点实现对动态链接库(DLL)调用的关键技术及步骤, 实现LabV IEW 与普通数据采集卡的结合, 丰富LabVIEW 对硬件的控制能力。
并将数据库技术应用于虚拟测试系统中, 建立了Access 数据库, 实现数据的存储和自动管理,从而拓展了虚拟测试系统的功能。
关键词:动态链接库(DLL); 数据采集;1 绪论目前, 电子测试仪器的发展方向正在从简单功能组合向以个人计算机(PC)为核心的通用虚拟测试平台过渡, 从硬件模块向软件包形式过渡。
建立在PC 机和数据采集设备上的虚拟仪器系统, 由于其特有的灵活和强大的功能, 也越来越广泛的应用于实验室研究和工业控制中的测试及测量领域。
从简单的仪器控制, 数据采集到尖端的测试和工业自动化, 从大学实验室到工厂, 从探索研究到技术集成, 人们都可以发现LabVIEW 应用的成果和开发的产品。
LabVIEW采用基于流程图的图形化编程方式, 也被成为G 语言(graphical language)。
G 语言编程和虚拟仪器技术已经成为工业界和学术界关注的热点技术之一。
数据采集是LabVIEW 的核心技术之一, 也是LabVIEW 与其他编程语言相比的优势所在。
使用LabVIEW 的DAQ 技术,可以编写出强大的DAQ 应用软件。
NI 公司生产的系列数据采集卡借助LabVIEW 内部的DAQ 库的驱动,可以在LabVIEW环境下运行。
但由于NI 公司的采集卡价格比较昂贵,但是选择第三方的数据采集卡, 就需要解决LabVIEW 与非NI 数据采集卡的兼容和驱动的问题。
2 LabVIEW 调用外部程序代码的途径之一———动态链接库机制LabVIEW 具有强大的外部接口能力, 可以实现LabVIEW与外部的应用软件, C 语言, Windows API 以及HiQ 等编程语言之间的通信, 在LabVIEW 中可用的外部接口包括:DDE,CIN,DLL,MATLAB Script 以及HiQ Script 等。
合理地使用这些接口,充分利用其他软件的功能, 弥补LabVIEW 自身的不足, 可以编写出功能更加强大的LabVIEW应用软件。
动态链接库(Dynamic Link Libraries,简称DLL)是一个可执行模块, 但不接受任何消息, 所以并不可以直接运行, 只是提供一群函数供Windows 应用程序或其他的动态链接函数库调用。
动态链接库只有在别的模块中调用了它的某个函数以后才发生作用。
由于动态链接库在应用程序运行期间被连接起来的,故称为动态链接库。
动态链接库(DLL)一直是基于Windows 程序设计的一个非常重要的组成部分。
DLL 是一种基于Windows的程序模块, 它可以在运行时刻被装入和连接。
为了实现LabVIEW对普通数据采集卡的支持, 用户可以使用LabVIEW 提供的调用库函数节点CLF (Call Library Function)和代码接口节点CIN(Code Interface)将编程灵活的C 语言和直观方便的LabVIEW程序结合起来。
但是比较调用库函数节点CLF 和代码接口节点CIN 这两种方法, 使用CLF 节点访问动态链接库DLL 更具优势:首先, DLL 是外部模块, 自行开发一个DLL 比使用CIN 节点易于实现且便于维护。
其次, CIN节点需要调用.lsb 格式的文件, 而.lsb 格式文件的创建过程十分复杂, 需要利用Visual C++和CINTools 来创建.lsb 文件。
这样用户在开发虚拟仪器产品的过程中可以充分利用数据采集卡开发商为用户提供的DLL 模块, 可以缩短开发周期。
基于以上因素, 本问所介绍的是利用CLF (Call LibraryFunction)节点直接调用普通数据采集卡已有的DLL 模块。
3 LabVIEW 调用普通数据采集卡自带的DLL 库3.1 数据采集卡介绍许多数据采集卡开发商都提供了DLL库函数的驱动程序,用户可以根据实际应用的需要, 用LabVIEW中的CLF 节点直接调用有关函数, 从而省去编写驱动程序的过程。
在LabVIEW平台下普通数据采集卡使用主要分为三步: ①初始化并打开设备(数据采集卡) ;②启动模拟量数据采集;③对某一通道模拟量数据采集。
本文所采用的是PCI- 9114 型多功能数据采集卡。
该卡具有32 位PCI 总线, 12 位模拟量输入分辨率, 16 路单端或8 路差动模拟量输入,最高110 KHz A/D 采样频率,双极性或单极性输入信号, 三种A/D 触发模式:软件触发、可编程定时器触发与外部触发, 并且自带了Windows 下的驱动程序库PCI_DASK.dll, 库内包含数据采集的所有函数。
下面是驱动程序库PCI_DASK.dll 中的三个关键函数:① Register_Card。
函数Register_Card 功能是打开数据采集卡, 从注册文件或配置文件中得到合适的使设备工作的参数,同时分配内存来储存这些参数, 使设备做好I/O 操作的准备工作, 输入的参数为CardType 和Card_num, 该函数的返回值是板卡标识号, 今后对于这个标识号做的操作就会被解释为对该卡的操作;② AI_ReadChannel。
函数AI_ReadChannel 用来从输入通道中读取采集的模拟量, 输入参数是板卡标识号, 模拟输入通道号和增益代码;③ Release_Card。
函数Release_Card 用来释Register_Card()函数分配的存储参数值以关闭装载的数据采集卡, 输入参数为板卡标识号。
3.2 在LabVIEW中调用动态链接库的步骤在LabVIEW 下对DLL 的调用可通过CLF 调用库函数节点来实现。
具体方法是创建一个VI ,在其图形代码窗口中, 选择ALL Functions→Advanced→Calling Library Function Node ,双击节点在弹出的对话框中或者点击右键选Configure 对其进行配置。
一般需要设置以下几点内容:① DLL 所在的路径。
在对话框Library Name or Path 中输入DLL 路径或单击Browse⋯来查找所要调用的DLL;②被调用的函数原型,包括函数返回类型、函数形参类型及个数等信息。
只要在第一步输入了正确的DLL ,则在FunctionName 中将自动显示该DLL 的所有输出函数。
选择待用的函数后,配置该函数的所有参数,在Function Prototype 中将显示正确的被调用函数原型及所有形参类型;③ DLL 的调用规程。
在LabVIEW中有C 和stdcall 两种调用方式。
对于Windows API 函数应选择stdcall ,否则应选择C;④线程安全选择。
如果编译生成的DLL 是线程安全时(即能同时被其它程序调用) ,则选择Reentrant 选项,否则选Run inUI Thread。
一般选择Run in UI Thread 即可。
同时为其他程序所调用, 则选择Reentrant 选项。
3.3 基于动态链接库的数据采集应用实例下面以调用PCI- 9114 的Register_Card 函数为例, 介绍如何使用CLF 节点, 如图1使用PCI- 9114 采集器的采样功能,必须首先调用函数Register_card 函数对设备进行初始化, Register_card 函数的输入为板卡类型和卡号, 返回值是板卡标识号,然后调用函数AI_ReadChannel 进行数据采集, AI_ReadChannel的输入为Register_card 函数的返回值板卡标识号, 模拟通道号和增益代码, 输出为采集到的数据, 最后调用函数Release_Card释放板卡所占资源。
因此需要分别配置好三个CLF 节点。
图2为数据采集框图程序。
编写数据采集框图程序有几个要点:①连续数据采集。
要实现系统的连续数据采集, 应该使系统保持在循环状态, 所以在设计中使用了While 循环, 点击stop数据采集停止, 并释放板卡占用的资源。
②增益。
增益表示输入信号被处理前放大或缩小的倍数,给信号输入一个增益值, 就可以减小信号的输入范围, 使A/ D转换能尽量的细分输入信号。
设计时增益默认值为0。
③数据存储。
本系统采用了Access 数据库存储采集到的数据, 在设计中使用了LabVIEW数据库访问工具包LabSQL。
上面说到的LabSQL 是一个免费的、多数据库、跨平台的LabVIEW数据库访问工具包。
LabSQL 的优点是易于理解, 操作简单, 不熟悉SQL 语言的用户也可以很容易地使用, 并且它源代码开放。
在使用LabSQL 之前, 首先需要在Windows 操作系统中的ODBC 数据源中创建一个DSN (data source name, 数据源名)。
LabSQL 与数据库之间的连接就是建立在DSN 基础之上的。
本文用到的是LabSQL 添加记录功能。
添加记录的基本步骤如下:第一步:建立与数据库的连接; 第二步:建立与记录集(RecordSet)对象的连接; 第三步:添加记录; 第四步:断开与数据库之间的连接,整个过程如图2 所示。
为了验证系统的性能, 利用函数发生器产生正弦波信号,设置数据采集卡的频率为10Hz, 设置好通道和增益后就可以进行数据采集。
存储到Access 数据库的数据如下图3 所示。
4 结论虽然LabVIEW提供了大量的仪器驱动程序库, 但仍不能满足所有用户尤其是要自行开发仪器的用户的需求, 很多情况用户需自己修改动态链接库, 由于篇幅关系, 不介绍如何修改动态链接库。
本文详细介绍了在LabVIEW 中如何调用动态链接库(DLL)驱动普通数据采集卡PCI9114 完成数据采集任务, 并完成数据存储和管理。
在虚拟仪器系统中, 利用LabVIEW 调用动态连接库函数功能, 既增强了LabVIEW 软件的功能, 又可以开发自己的数据采集和工业控制产品, 提高了系统的开发效率,同时又体现了Labview 强大的数据采集功能, 弥补了其不能驱动国产数据采集卡的不足。
5 结束语现场总线作为工业控制网络技术在纺织行业发挥着越来越重要的作用, 实现了系统的分布式控制, 网络速度快, 可靠性高, 开放性好, 抗干扰能力强, 安装、调试和系统维护方便, 提高了纺织企业的信息化管理水平和生产效率, 降低了生产成本,增强了市场竞争力。