LabVIEW调用库函数节点技术

发布时间:2018-06-29 20:49:51   来源:文档文库   
字号:

LabVIEW调用库函数节点技术

LabVIEW提供了调用库函数节点(Call Library Function node,简称CLF),利用CLF,可以在LabVIEW中实现DLLAPI函数的调用。在LabVIEW中使用CLF需要了解动态链接库里被调用的函数名称、功能及其输入输出参数,下面将详细介绍在LabVIEW 8.6下利用CLF调用6050运动控制卡基于C语言编写的驱动程序[41]。首先在框图程序中创建一个空的CLFCLF位于函数模板互连接口库与可执行程序子模板”,如图1-1所示,下面给出其详细的配置过程:

1-1 CLF节点图标

(1)双击CLF图标弹出配置对话框,如图1-2所示,首先指定6050控制卡动态链接库的库名或路径点击其右边的文件夹图标,打开一个文件对话框,找到6050运动控制卡的动态链接库文件“dfjzh6050dll.dll所在位置

(2) LabVIEW装载了DLL文件后会自动检测其所包含的函数,但不能检测函数中的参数及其数据类型,因此接下来的要参照DLL明文件“dfjzh6050dll.h及控制卡使用手册选择所要配置的函数名,设置函数参数

(3)在调用规范中有“stdcall(WINAPI)”和“C”两个选项,它们的区别是,若调用函数为Windows标准共享库函数则选择“stdcall(WINAPI)”选项,若调用函数为VC环境下编译的库函数则选择“C”选项,本文选择“C”选项。

(4)在“线程”选项中选择“在UI线程中运行”。

至此完成了所有配置选项,在CLF配置图最下方可以看到函数原型。下面阐述配置CLF过程中需注意的个问题:

1-2 CLF节点配置图

Figure1-2 CLF Node Setting Chart

(1) LabVIEW线程调用方式

节点配置中,有两种线程调用方式,“在UI线程中运行”和“在任意线程中运行”。“在UI线程中运行”表示在用户接口线程中调用,DLL的执行期将等到用户接口线程在此即LabVIEW环境下的VI应用程序执行DLL的导出函数调用时才开始;“在任意线程中运行”表示允许多个线程同时调用这个DLL。当DLL仅由一个线程调用,两种调用方式都可选择,若出现多个线程调用情况不确定DLL是否为线程安全,选“在UI线程中运行”。

(2)函数参数的配置

对于所调用的DLL库函数的参数类型,如果在配置框中找不到匹配的,可以在类型下拉列表中选择“匹配至类型”,在数据格式下拉列表中选择“按值处理”,表示将编程时指定的LabVIEW数据类型与该参数数据类型自动匹配。下表5-1常见的LabVIEW32位系统C语言数据类型对照表[42]

1-1 两种变量类型的对应关系

Table1-1 Correspondence between the two Types of Variables

VC++数据类型

LabVIEW对应的数据类型

备注

简单基本类型

Char

Int8

对于这些基本类型的指针的指针类型变量,应在Parameters栏中的“Pass”传递类型中选择“Pointer to value(通过指针传递)而不是“Value(值传递)

Unsigned char

Uint 8

Short int

Int 16

Int

Int 32

Long

Int 32

Unsigned long

Uint 32

Float

Float 32,4 B single

Double

Float 64,8 B double

数值数组类型

一维数值型数组

具体设置:TypeDataType对应数组的基类型,Dimensions对应数组的维数,Format Data Pointer

二维数据值型数据

指向数组的指针

没有对应类型

如果不使用LabVIEW本身提供率,而单纯使用VC++,则不能在LabVIEW中正确使用

指向指针的数组

没有对应类型

字符串

Char *

string

具体设置:Typestringstring FormatC string pointer

Char[n]

Char[][]

有对应类型

如果不使用LabVIEW本身提供率,而单纯使用VC++,则不能在LabVIEW中正确使用

Char**

结构体

sPeople tmp

没有对应类型

设结构体名称为:sPople,且结构体内变量定义不能使用LabVIEW中不支持的类型。在进行连线时,要根据结构内变量来定义Cluster

sPeople* tmp

可以使用Adapt to Type

具体设置:TypeAdapt to Type,Data FormatHandles by value

本文来源:https://www.2haoxitong.net/k/doc/7dfe1bd0f705cc175527095b.html

《LabVIEW调用库函数节点技术.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档

文档为doc格式