在LabVIEW中利用DLL实现数据采集

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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 对其进行配置。一般需要设置以下几点内容:

相关文档
最新文档