LabVIEW平台下调用DLL实现PC_104数据采集

合集下载

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软件、连接传感器或测量设备、配置硬件设备和安装相关驱动程序等。

确保LabVIEW软件和硬件设备都能正常工作。

二、建立数据采集程序1. 打开LabVIEW软件,在工具栏上选择"新建VI",创建一个新的虚拟仪器(VI)。

2. 在Block Diagram窗口中,选择相应的控件和函数,用于实现数据采集的功能。

例如,使用"DAQ Assistant"控件来配置和控制数据采集设备。

3. 配置数据采集设备的参数,如采集通道、采样率、触发方式等。

根据实际需求进行设置。

4. 添加数据处理的功能模块,如滤波、去噪、采样率转换等。

这些模块可以根据数据的特点和需要进行选择和配置。

5. 连接数据采集设备和数据处理模块,确保数据能够流畅地进行采集和处理。

6. 运行程序进行数据采集,可以观察到数据随着时间的推移不断变化。

三、数据可视化与分析1. 在LabVIEW软件中,使用图形化的方式将采集到的数据可视化。

例如,使用波形图、数值显示等控件显示数据结果。

2. 利用LabVIEW提供的分析工具,对采集到的数据进行进一步的统计和分析。

例如,计算均值、标准差、峰值等。

3. 根据需要,将数据结果输出到其他文件格式,如Excel、文本文件等,以便进一步处理和分析。

四、数据存储与导出1. 在LabVIEW中,可以选择将数据存储到内存中或者存储到文件中。

存储到内存中可以方便实时访问和处理,而存储到文件中可以长期保存和共享数据。

2. 使用适当的文件格式和命名方式,将数据存储到本地磁盘或者网络存储设备中。

在LabVIEW中实现数据采集

在LabVIEW中实现数据采集


AI Read—从被AI Config分配的缓冲读取数据。 它能够控制由缓冲读取的点数,读取数据在缓 冲中的位置,以及是否返回二进制数或标度的 电压数。它的输出是一个2维数组,其中每一 列数据对应于通道列表中的一个通道.


AI Single Scan—返回一个扫描数据.它的电压 数据输出是由通道列表中的每个通道读出的电 压数据。使用这个VI仅与AI Config有关联,不 需要AI Start和AI Read. AI Clear—清除模入操作、计算机中分配的缓 冲、释放所有数据采集卡的资源.

硬件触发和软件触发

硬件触发:
硬件触发:

数字触发

TTL电平:

模拟触发

模拟信号: level, slope
硬件触发的设置
软件触发

当硬件触发条件不易实现时采用。软件触发又 叫做条件取数(conditional retrieval),是通 过控制数据读取来实现的。
软件触发是在数据采集时,对A/D转化的信号 进行比较监测,当满足软件触发的条件时开始 将采集数据读取到数据缓冲区,并在采集结束 后将数据传输到计算机。
在LabVIEW中实现数据采集
数据采集系统的基本结构
数据采集卡
多 路 开 关
放 大 器
采 样 / 保 持 器
A D 转 换 器
数据采集卡
数据采集卡




多路开关:将各路信号轮流切换到放大器的输 入端,实现多参数多路信号的分时采集. 放大器:将前一级多路开关切换进入的待采集 信号放大(或衰减)至采样环节的量程范围内. 采样/保持器:取出待测信号在某一瞬时的值, 并在A/D转换过程中保持信号不变. A/D转换器:将输入的模拟量转化为数字量输出, 并完成信号幅值的量化.

如何利用LabVIEW进行数据采集与分析

如何利用LabVIEW进行数据采集与分析

如何利用LabVIEW进行数据采集与分析数据采集和分析是科学研究和工程实践中至关重要的步骤。

LabVIEW是一种功能强大的图形化编程环境,广泛应用于科学实验、自动化控制、仪器测量等领域。

本文将介绍如何使用LabVIEW进行数据采集和分析,并提供一些实用的技巧和建议。

1. 数据采集数据采集是获取实验数据的过程,在LabVIEW中可以通过使用传感器、仪器等硬件设备来实现。

以下是一些常见的数据采集方法:1.1 传感器接口LabVIEW提供了许多传感器接口模块,可以方便地与各种传感器进行通信。

通过选择合适的传感器接口,您可以轻松地读取传感器的测量值,并将其保存到LabVIEW中进行进一步的分析和处理。

1.2 仪器控制如果您使用仪器进行实验,那么LabVIEW可以帮助您控制这些仪器并读取其输出数据。

LabVIEW提供了丰富的仪器控制工具包,支持各种常见的仪器通信接口,如GPIB、USB、Serial等。

1.3 数据采集卡对于一些需要高速采集的应用,可以使用数据采集卡来实现。

LabVIEW提供了专门的工具包,支持常见的数据采集卡,并提供了丰富的功能和接口,满足不同应用的需求。

2. 数据分析数据采集完成后,接下来需要对数据进行分析和处理。

以下是一些常见的数据分析方法:2.1 数据可视化LabVIEW提供了丰富的数据可视化工具,可以将采集到的数据以图表、图形等形式展示出来。

通过可视化,您可以更直观地了解数据的特征和趋势。

2.2 统计分析LabVIEW内置了众多统计分析函数,可以计算数据的平均值、标准差、最大值、最小值等统计量。

您可以利用这些函数对数据进行统计分析,进一步理解和描述数据的特征。

2.3 信号处理如果您需要对采集到的信号进行滤波、去噪或频谱分析,LabVIEW 提供了一系列的信号处理工具包。

您可以使用这些工具包对信号进行处理,提取有用的信息和特征。

3. 实用技巧和建议为了更好地利用LabVIEW进行数据采集和分析,以下是一些建议和技巧:3.1 模块化设计当您设计LabVIEW程序时,应尽量将其模块化,将不同功能实现的部分组织成不同的子VI(SubVI)。

如何使用LabVIEW进行数据采集和分析

如何使用LabVIEW进行数据采集和分析

如何使用LabVIEW进行数据采集和分析LabVIEW(Laboratory Virtual Instrument Engineering Workbench)是一款由美国国家仪器公司(NI)开发的图形化编程环境和开发平台,主要用于测试、测量和控制领域。

LabVIEW具有直观的用户界面、强大的数据采集和分析功能,被广泛应用于工业自动化、科学研究、仪器仪表等领域。

本文将介绍如何使用LabVIEW进行数据采集和分析的基本步骤。

一、实验准备与硬件连接在使用LabVIEW进行数据采集和分析之前,首先需要准备好实验所需的硬件设备,并将其与计算机连接。

LabVIEW支持多种硬件设备,如传感器、仪器和控制器等。

根据实验需要选择相应的硬件设备,并按照其配套说明书将其正确连接至计算机。

二、创建LabVIEW虚拟仪器LabVIEW以虚拟仪器(Virtual Instrument,简称VI)的形式进行数据采集和分析。

在LabVIEW中,可以通过图形化编程来创建和配置虚拟仪器。

打开LabVIEW软件后,选择新建一个VI,即可开始创建虚拟仪器。

三、配置数据采集设备在LabVIEW中,需要为数据采集设备进行配置,以便准确地采集实验数据。

通过选择合适的数据采集设备和相应的测量通道,并设置采样率、量程等参数,来实现对实验数据的采集。

LabVIEW提供了丰富的数据采集函数和工具箱,使得配置数据采集设备变得更加简单和便捷。

四、编写数据采集程序使用LabVIEW进行数据采集和分析的核心是编写采集程序。

在LabVIEW中,可以通过拖拽、连接各种图形化函数模块,构建数据采集的整个流程。

可以使用LabVIEW提供的控制结构和数据处理函数,对采集的实验数据进行处理和分析。

LabVIEW还支持自定义VI,可以将经常使用的功能模块封装成VI,以便在其他程序中复用。

五、数据可视化和分析通过编写好的数据采集程序,开始实际进行数据采集。

LabVIEW提供了实时查看和记录实验数据的功能,可以将采集到的数据以曲线图、表格等形式进行显示和保存。

使用LabVIEW进行数据采集和处理

使用LabVIEW进行数据采集和处理

使用LabVIEW进行数据采集和处理数据采集和处理在科学研究和工程应用中具有重要的作用。

为了高效地进行数据采集和处理,我们可以使用LabVIEW软件来完成这一任务。

LabVIEW是一款强大的图形化编程环境,能够方便地进行数据采集和处理,并提供了丰富的功能和工具来满足不同的需求。

一、LabVIEW简介LabVIEW是由美国国家仪器公司(National Instruments)开发的一款图形化编程环境。

通过拖拽和连接图标,我们可以构建出一个完整的数据采集和处理系统。

LabVIEW提供了可视化的编程界面,使得数据采集和处理变得简单直观。

同时,LabVIEW还支持多种硬件设备的接口,例如传感器、仪器设备等,能够实现与这些设备的连接和数据交互。

二、LabVIEW的数据采集功能1. 数据采集设备的接口LabVIEW支持多种数据采集设备的接口,如模拟输入模块、数字输入输出模块等。

通过这些接口,我们可以方便地连接和配置不同的采集设备,并进行数据的获取。

2. 数据采集参数的设置在LabVIEW中,我们可以轻松地设置数据采集的参数,比如采样率、采集通道数等。

通过这些参数的设置,我们可以灵活地对数据采集进行控制,以满足不同需求。

3. 实时数据采集LabVIEW支持实时数据采集,可以实时获取数据并进行处理。

这对于一些需要即时反馈的应用场景非常重要,比如实验数据采集、实时监测等。

三、LabVIEW的数据处理功能1. 数据预处理LabVIEW提供了丰富的数据预处理工具,如滤波、平滑、去噪等。

这些功能能够对原始数据进行处理,去除噪声和干扰,提高数据质量。

2. 数据分析与算法LabVIEW支持多种数据分析与算法,如统计分析、曲线拟合、傅里叶变换等。

通过这些功能,我们可以对数据进行深入的分析和处理,提取其中的有价值信息。

3. 可视化显示LabVIEW提供了强大的可视化显示功能,可以将数据以图表、曲线等形式展示出来。

这样我们可以直观地观察数据的变化趋势和规律,进一步理解数据的含义。

LabVIEW下基于DLL的数据采集应用

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调用dll方法+

labview调用dll方法+

0x01,0xC0,0x80,0x41,0x00,0xC1,0x81,0x40,0x00,0xC1,0x81,0x40,0x01,0xC0,0x80,0x41,
0x01,0xC0,0x80,0x41,0x00,0xC1,0x81,0x40,0x00,0xC1,0x81,0x40,0x01,0xC0,0x80,0x41,
0x00,0xC1,0x81,0x40,0x01,0xC0,0x80,0x41,0x01,0xC0,0x80,0x41,0x00,0xC1,0x81,0x40,
0x00,0xC1,0x81,0x40,0x01,0xC0,0x80,0x41,0x01,0xC0,0x80,0x41,0x00,0xC1,0x81,0x40,
unsigned char i;
unsigned char RH = 0xff;
unsigned char RL = 0xff;
unsigned char *buf=(unsigned char *)pbuf;
do
{
i = *buf ^ RL;
buf ++;
RL = RH ^ CRC_TABLE_H[i];
RH = CRC_TABLE_L[i];
}while(--len);
return(RH * 256 + RL);
}
0x00,0xC1,0x81,0x40,0x01,0xC0,0x80,0x41,0x01,0xC0,0x80,0x41,0x00,0xC1,0x81,0x40,
};
/*******************************************************************************
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
(解放军炮兵学院信息工程教研室) 袁 魏 华 韩 裕 生 张 伟 伟 李 小 明
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 都有它
(2)DLL 使用的调用规程。在 LabVIEW 中, 可采用 C 和 stdcall
缺省值两种调用, win32 API 使用缺省的标准调用 stdcall 规程。
(3)传 递 给 函 数 的 参 数 、数 据 类 型 以 及 参 数 的 传 递 顺 序 。
确 定 以 上 信 息 后 , 在 Fucntion- >Advanced 子 菜 单 中 选 择
要 例 程, 这 些 函 数由 DLL 内 部 的函 数 调 用, 不 能 被 DLL 外 部 的
应用程序调用。
ADT700.cpp 包含 了 操作 ADT700 的 大 量例 程 , 以 完成 一 次
数 据 采 集 为 例 , 调 用 的 关 键 例 程 名 为 ADT700_ReadData, 该 例
昂 贵 , 一 般 用 户 难 以 接 受 。 对 于 非 NI 公 司 的 数 据 采 集 卡 , 管 被 多 少 个 程 序 设 计 , 内 存 中 都 只 有 一 个 DLL 的 副 本 , 因 此 提
LabVIEW 并没有提供相应的设备驱动程序。因此, LabVIEW 平 高了内存的使用率和程序运行速度, 而且各个 DLL 文 件 可以 方
程需要两个参数, hDevice 为 ADT700 设备句柄, Channel 为当前
采集的通道 号 。该 例程 返 回 当前 通 道 的 AD 值 , 该 值 是一 个 16
位整型数, 由高字节 MSB 和低字节 LSB 组成。BaseAddress 为
采 集 卡 寄 存 器 的 基 地 址 , ReadIOPort 为 读 取 IO 端 口 函 数 , 其 参
接口 的 数据 采 集 卡的 数 据 采集 , 对 激 光干 扰 受 测设 备 输 出的 模 块 , 是 Microsoft Windows 系 统 操 作 系 统 的 重 要 组 成 部 分 , 是 一
拟 信号 进 行 实时 采 集 测试 , 充 分 利 用 了 LabVIEW 优 越 的 图 形 种 特 殊 的 且 现 在 广 为 应 用 的 函 数 库 。 动 态 链 接 库 虽 不 是 EXE
创 新
公司 在 其 产品 LabVIEW 中 首 先提 出 的 创 新 概 念 。 随 着 现 代 测 转换状态可以用程序查询, 也可以用中断方式通过 CPU 读取转
试技术与仪器技术的发展, 虚拟仪器概念已经发展成设计复杂 换结果。
测试系统和测试仪器的主要方法和 手 段 , 同时 , LabVIEW 也 已 经成 为 测 试和 测 量 领域 的 通 用编 程 软 件。在 承 担 的“激 光 干 扰
程 分 别 0 ̄+10V、+/- 5V、+/- 10V 双 极 性 或 单 极 性 输 入 量 程 。 具 了内 核 模 式与 用 户 模式 分 离 的保 护 机 制, 不 允 许 直接 访 问 硬 件
袁魏华: 讲 师
端口, 通过该文件获得端口控制权。
《P LC 技术应用 200 例》
邮局订阅号: 82-946 360 元 / 年 - 57 -
法。试验表明系统效果良好运行稳定, 满足要求。
关键词: LabVIEW; 动态链接库; PC/104; 数据采集
中图分类号: TN958.97
文献标识码: B
Abstr act: As a high efficiency graphical soft development envirment, LabVIEW is used in data acquiring and testing and measuring
3 利 用 动 态 连 接 库 DLL 采 集 数 据
设 备 综 合测 试 评 定系 统 ”项 目 研 制 中 , 通 过 调 用 Windows 32 动
3.1 动态链接库概述
态连接库 (dynamic link library, 简称 DLL)实现对了 PC/104 总线
动态链接库是一种在运行时连接的可执行代码和数据模
ADT700 数据采集卡是一 个基 于 PC/104 的 扩展 板 , 通 过其 自己的 AppWizard。这里采用不使用 MFC 的 DLL 建立方式。以
PC104 总 线 可将 其 与 PC/104 嵌入 式 系 统构 成 一 个高 性 能 的 数 ADT700 数据采集卡为例, 建立后程序代码主要包括以下文件:
为静态链接库文件。
3.3 LabVIEW 中对 DLL 的调用
在 LabVIEW 中 , 利 用 库 函 数 节 点 [4](call library Function
node, 简 称 节点)可 以 较容 易 地 实 现 对 DLL 的 调 用 , 从 而 提 高 了
程 序开 发 效 率, 增 加 应 用 软 件 的 功 能 。LabVIEW 对 DLL 的 调
key technique of driving PC/104 data acquiring card on LabVIEW platform by using DLL. Given a concretely method of using
ADT700. Test result show the system can work effectively and stably, satisfied the design desire.
具有强大的数据采集分析处理功能, 它提供了大量的数据采集 同的是, 动态链接库独立于激活它们的可执行文件, 调用的地
节 点 , 但 这些 节 点 只支 持 NI 公 司提 供 的 数据 采 集 卡, 并 且 价 格 址 转换 是 在 加载 时 解 决的 。与 静 态连 接 库 相比 , 动 态 连接 库 不
台 下 非 NI 数 据 采 集 卡 的 使 用 方 法 成 为 必 须 解 决 的 研 究 问 题 。 便的独立修改和测试, 模块化更强。
本 文 ADT700[3]数 据采 集 卡 为例 , 介 绍 在 LabVIEW 中 通 过 调用
3.2 数据采集卡 DLL 文件的建立
DLL 技术实现 PC/104 数据采集卡的数据采集。
编程功能和信号处理能力, 取得了良好效果。
文件, 但它属于 Windows 可执行文件。DLL 由可执行模块组成,
LabVIEW 是 一 种 基 于 G 语 言 的 虚 拟 仪 器 软 件 开 发 工 具 , 为进 程 提供 数 据 、代码 和 资 源。与 编 译 时使 用 的 静态 链 接 库 不
TA_MSB);

LSB = ReadIOPort (hDevice,BaseAddress + Channel + DA-
TA_LSB);

return((MSB & 0xff ) * 256 + LSB);

} unsigned int ReadIOPort(HANDLE hDevice,unsigned int addr)
数分别为设备句柄和端口地址。代码如下:
#include <winioctl.h>
#include <windows.h>
int ADT700_ReadData(HANDLE hDevice, char Channel)

int MSB, LSB;
MSB = ReadIOPort (hDevice,BaseAddress + Channel + DA-
用 , 可 通 过本 身 所 提供 的 调 用库 函 数(Call Libra道以下信息:
(1) 函 数 返 回 的 数 据 类 型 。 在 LabVIEW 中 , 函 数 可 返 回
void, integer 或 floating point 类型的数据。


unsigned int v;
v = _inp(addr); // 读取 addr 端口地址处数据
return v;
相关文档
最新文档