动态链接库在LabVIEW中的高级应用.docx
《动态链接库在LabVIEW中的高级应用.docx》由会员分享,可在线阅读,更多相关《动态链接库在LabVIEW中的高级应用.docx(9页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、动态链接库在LabVIEW中的高级应用ronggang导语:LabVIEW中的提供了调用分享库函数的接口,但是一些现成的函数库却由于接口参数类型不同而不能在LabVIEW中使用。利用重新编写动态链接库的方法可以建立旧函数库与LabVIEW联络的通道,进步现有资源的利用率摘要:LabVIEW中的提供了调用分享库函数的接口,但是一些现成的函数库却由于接口参数类型不同而不能在LabVIEW中使用。利用重新编写动态链接库的方法可以建立旧函数库与LabVIEW联络的通道,进步现有资源的利用率。本文以SDK2000图像收集卡为例,介绍详细的实现经过。关键字:LabVIEW;动态链接库;CLF节点1.引言实
2、验室虚拟仪器工作平台是美国国家仪器公司研制的一种通用程序开发系统,以其强大的数据收集、数据处理、数据分析和仪器控制功能在当代测控领域中得到了广泛的应用。NI公司在推出LabVIEW语言同时,也推出了一系列的数据收集卡,但实际应用中往往会用到第三方厂家消费DAQ卡,在这种情况下就需要使用LabVIEW提供的外部程序接口。LabVIEW的“调用函数库节点CLF节点提供了调用标准函数和用户自定义函数的通用方法,对于LabVIEW不支持的硬件设备大局部采用这种方法进展驱动。但是CLF节点也存在缺乏,使用中碰到最多的问题是参数类型不匹配。使用重写动态链接库的方法,一方面可以兼容旧函数库的参数类型,另一方
3、发面可以获得LabVIEW提供的高级函数库应用。以下以SDK2000图像收集卡为例,介绍重写函数库的根本原理和程序编写经过。2.实现方案及方案论证SDK2000图像收集卡提供的VisualC+IDE程序开发包包含了外部程序调用的分享函数库,但是有些函数不能直接用CLF节点进展调用。主要有两个原因:库函数的参数类型与LabVIEW不兼容;图形化语言对于一些底层操纵不易实现。SDK2000图像收集卡提供的库函数含有LabVIEW不支持的数据类型,并且很多函数涉及到一些底层操纵,如文件读取和内存治理。为了正确调用函数并返回有效数据,解决这两个问题是关键。LabVIEW仅提供最根本的数据类型,固然可以
4、在CLF节点参数设置中选择“AdapttoType,但只可以传递LabVIEW内部使用的参数类型而已,而分享库函数使用上百种非标准数据类型。参数类型不匹配可分为两种情况:非标准数据类型定义。很多程序和函数用到一些非标准的类型定义,例如它们经常用char、short和long的类型定义代替WindowsAPI使用的BYTE、WORD和DWORD。这种情况下要正确调用这些程序和函数,必须找到这些参数在LabVIEW中同等的数据类型。以构造或类作为参数。一些程序和函数使用构造或类作为参数,但是LabVIEW并不可以识别这些参数的数据构造。为了正确调用这些库函数,LabVIEW提供了两种解决方法:使用
5、CIN节点或重写函数库对这些函数进展重新封装,使这些函数的输入输出参数可以符合LabVIEW的标准。SDK2000提供的分享函数库使用了很多LabVIEW不支持的参数类型,如RECT、VIDEOSTREAMINFO等。为了正确调用这些函数,必须用CIN节点或重写函数库的方法对这些函数进展重新封装。相对而言,重新编写动态链接库方法比使用CIN节点更为常用。由于CIN代码直接嵌入到VI程序代码里,对于编程器的限制比拟高,所以一般不采用CIN节点。重新编写动态链接库的另一个原因,是为了获得LabVIEW提供的高级函数库应用。LabVIEW提供了在代码开发环境下的高级函数库,这些函数是针对于LabVI
6、EW使用的数据类型,如下面所介绍的NumericArrayResize函数。NumericArrayResize函数用于动态改变数组的大小,不过只合适于LabVIEW使用的数组构造。LabVIEW高级函数库还包含了一些底层操纵,如文件读写与内存分配等等,不存在参数类型不同和底层操纵困难的问题。3.软件编程由于需要重写的函数比拟多,这里仅以重写保存DIB图像数据函数为例,讲明重写函数库的编写经过。新函数GetDib对原函数DSStream_GetCurrentDib进展了封装,其作用是向原函数传递有效参数并返回LabVIEW能识别的数据。使用的编程环境为VisualC+6.0。第一步:分析目的函
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 动态 链接 LabVIEW 中的 高级 应用
限制150内