LabVIEW平台下调用DLL实现PC_104数据采集
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
台 下 非 NI 数 据 采 集 卡 的 使 用 方 法 成 为 必 须 解 决 的 研 究 问 题 。 便的独立修改和测试, 模块化更强。
本 文 ADT700[3]数 据采 集 卡 为例 , 介 绍 在 LabVIEW 中 通 过 调用
3.2 数据采集卡 DLL 文件的建立
DLL 技术实现 PC/104 数据采集卡的数据采集。
昂 贵 , 一 般 用 户 难 以 接 受 。 对 于 非 NI 公 司 的 数 据 采 集 卡 , 管 被 多 少 个 程 序 设 计 , 内 存 中 都 只 有 一 个 DLL 的 副 本 , 因 此 提
LabVIEW 并没有提供相应的设备驱动程序。因此, LabVIEW 平 高了内存的使用率和程序运行速度, 而且各个 DLL 文 件 可以 方
创 新
公司 在 其 产品 LabVIEW 中 首 先提 出 的 创 新 概 念 。 随 着 现 代 测 转换状态可以用程序查询, 也可以用中断方式通过 CPU 读取转
试技术与仪器技术的发展, 虚拟仪器概念已经发展成设计复杂 换结果。
测试系统和测试仪器的主要方法和 手 段 , 同时 , LabVIEW 也 已 经成 为 测 试和 测 量 领域 的 通 用编 程 软 件。在 承 担 的“激 光 干 扰
Call Library Function 节点, 将选择好的 Call Library Function 节
程需要两个参数, hDevice 为 ADT700 设备句柄, Channel 为当前
采集的通道 号 。该 例程 返 回 当前 通 道 的 AD 值 , 该 值 是一 个 16
位整型数, 由高字节 MSB 和低字节 LSB 组成。BaseAddress 为
采 集 卡 寄 存 器 的 基 地 址 , ReadIOPort 为 读 取 IO 端 口 函 数 , 其 参
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.
程 分 别 0 ̄+10V、+/- 5V、+/- 10V 双 极 性 或 单 极 性 输 入 量 程 。 具 了内 核 模 式与 用 户 模式 分 离 的保 护 机 制, 不 允 许 直接 访 问 硬 件
袁魏华: 讲 师
端口, 通过该文件获得端口控制权。
《P LC 技术应用 200 例》
邮局订阅号: 82-946 360 元 / 年 - 57 -
在 Windows 32 操 作 系 统 环 境 下, 可 以 使 用 VC++6.0 建 立
2 PC/104 数据采集 卡 ADT700 简介
DLL 文 件 , VC++ 中 可 以 建 立 两 种 DLL: 使 用 MFC(Microsoft Function Class)的 DLL 和不使用 MFC 的 DLL。每种 DLL 都有它
(解放军炮兵学院信息工程教研室) 袁 魏 华 韩 裕 生 张 伟 伟 李 小 明
YUAN Wei-hua HAN Yu-s heng ZHANG Wei-wei LI Xiao-ming
摘要: LabVIEW 是 一 个 高 效 的 图 形 化 软 件 开 发 环 境 , 在 数 据 采 集 和 测 试 测 量 中 应 用 广 泛 。 但 在 PC- 104 硬 件 平 台 下 使 用
extensively. Because NI (National Instruments) company doesn’t support driver for other company’s card, there is an obstacle in
技 programming by labVIEW in PC/104 system. By analyzed the mechanism of Dynamic Link Library (DLL), this paper introduced the
(2)DLL 使用的调用规程。在 LabVIEW 中, 可采用 C 和 stdcall
缺省值两种调用, win32 API 使用缺省的标准调用 stdcall 规程。
(3)传 递 给 函 数 的 参 数 、数 据 类 型 以 及 参 数 的 传 递 顺 序 。
确 定 以 上 信 息 后 , 在 Fucntion- >Advanced 子 菜 单 中 选 择
{
新
unsigned int v;
v = _inp(addr); // 读取 addr 端口地址处数据
return v;
}
代 码 编 译 后 , 生 成 ADT700.dll、ADT700.lib 等 几 个 文 件 ,
ADT700.dll 就 是 生 成 的 驱 动 程 序 动 态 链 接 库 文 件 , ADT700.lib
您的论文得到两院院士关注 文章编号:1008- 0570(2008)04- 2- 0057- 02
嵌入式计算机应用
La b VIEW平台下调用 DLL 实现 PC/104 数据采集
Us in g DLL fo r PC- 104 Da ta Acq u irin g in La b VIEW Pla tfo rm
要 例 程, 这 些 函 数由 DLL 内 部 的函 数 调 用, 不 能 被 DLL 外 部 的
应用程序调用。
ADT700.cpp 包含 了 操作 ADT700 的 大 量例 程 , 以 完成 一 次
数 据 采 集 为 例 , 调 用 的 关 键 例 程 名 为 ADT700_ReadData, 该 例
编程功能和信号处理能力, 取得了良好效果。
文件, 但它属于 Windows 可执行文件。DLL 由可执行模块组成,
LabVIEW 是 一 种 基 于 G 语 言 的 虚 拟 仪 器 软 件 开 发 工 具 , 为进 程 提供 数 据 、代码 和 资 源。与 编 译 时使 用 的 静态 链 接 库 不
用 , 可 通 过本 身 所 提供 的 调 用库 函 数(Call Library Function)来实
现。在调用 DLL 之前, 须知道以下信息:
(1) 函 数 返 回 的 数 据 类 型 。 在 LabVIEW 中 , 函 数 可 返 回
void, integer 或 floating point 类型的数据。
为静态链接库文件。
3.3 LabVIEW 中对 DLL 的调用
在 LabVIEW 中 , 利 用 库 函 数 节 点 [4](call library Function
node, 简 称 节点)可 以 较容 易 地 实 现 对 DLL 的 调 用 , 从 而 提 高 了
程 序开 发 效 率, 增 加 应 用 软 件 的 功 能 。LabVIEW 对 DLL 的 调
术
Key wor ds: LabVIEW; Dynamic Link Libr ar y; PC/104; data acquir ing
1 概述
虚拟仪器技 术 VI(virtual instruments)是 National Instruments
有×1, 2, 4, 8 倍可编程增益。外部模拟信号经过调度和放大后送 入 模 数 转 换 器 进 行 转 换 。模 数 转 换 器 的 启 动 方 式 可 以 选 用 程 序 启动方式或者定时器自动触发, 也可用外部触发方式启动。其
ADT700 数据采集卡是一 个基 于 PC/104 的 扩展 板 , 通 过其 自己的 AppWizard。这里采用不使用 MFC 的 DLL 建立方式。以
PC104 总 线 可将 其 与 PC/104 嵌入 式 系 统构 成 一 个高 性 能 的 数 ADT700 数据采集卡为例, 建立后程序代码主要包括以下文件:
TA_MSB);
技
LSB = ReadIOPort (hDevice,BaseAddress + Channel + DA-
TA_LSB);
术
return((MSB & 0xff ) * 256 + LSB);
创
} unsigned int ReadIOPort(HANDLE hDevice,unsigned int addr)
嵌入式计算机应用
中 文 核 心 期 刊 《 微 计 算 机 信 息 》( 嵌 入 式 与 S OC )2008 年 第 24 卷 第 4-2 期
(2)ADT700.h— ——ADT700 驱动程序头文件。
(3)ADT700.cpp— ——ADT700 数 据采 集 卡 的驱 动 程 序代 码 主
文件 , 该 文 件 中 定 义 了 操 作 ADT700 完 成 数 据 采 集 和 输 出 的 主
据 采 集与 控 制 系统 。该 卡 可实 现 16 路 单端 或 8 路 差分 模 拟 信
(1)WinIO.dll— ——在 Windows32 操 作 系 统 环 境 下 操 作 硬 件
号输 入 , 具有 12 位 数 字分 辨 率 , 最大 A/D 采 样 率为 100KHz, 量 端 口地 址 所 需要 的 链 接库 文 件 , 由于 Windows32 操 作 系统 采 用
具有强大的数据采集分析处理功能, 它提供了大量的数据采集 同的是, 动态链接库独立于激活它们的可执行文件, 调用的地
节 点 , 但 这些 节 点 只支 持 NI 公 司提 供 的 数据 采 集 卡, 并 且 价 格 址 转换 是 在 加载 时 解 决的 。与 静 态连 接 库 相比 , 动 态 连接 库 不
接口 的 数据 采 集 卡的 数 据 采集 , 对 激 光干 扰 受 测设 备 输 出的 模 块 , 是 Microsoft Windows 系 统 操 作 系 统 的 重 要 组 成 部 分 , 是 一
拟 信号 进 行 实时 采 集 测试 , 充 分 利 用 了 LabVIEW 优 越 的 图 形 种 特 殊 的 且 现 在 广 为 应 用 的 函 数 库 。 动 态 链 接 库 虽 不 是 EXE
数分别为设备句柄和端口地址。代码如下:
ຫໍສະໝຸດ Baidu
#include <winioctl.h>
#include <windows.h>
int ADT700_ReadData(HANDLE hDevice, char Channel)
{
int MSB, LSB;
MSB = ReadIOPort (hDevice,BaseAddress + Channel + DA-
法。试验表明系统效果良好运行稳定, 满足要求。
关键词: 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 总线
动态链接库是一种在运行时连接的可执行代码和数据模
LabVIEW 实 现 数 据 采 集 , 由 于 NI 公 司 没 有 提 供 相 应 的 设 备 驱 动 程 序 , 对 程 序 设 计 造 成 障 碍 。 在 分 析 动 态 链 接 库 调 用 机 制 的
基 础 上 , 论 述 LabVIEW 平 台 下 调 用 DLL 实 现 PC/104 数 据 采 集 的 关 键 技 术 。 给 出 了 使 用 ADT700 数 据 采 集 卡 的 具 体 实 现 方