LabVIEW调用库函数节点技术
更新时间:2023-12-05 07:30:01 阅读量: 教育文库 文档下载
LabVIEW调用库函数节点技术
LabVIEW提供了调用库函数节点(Call Library Function node,简称CLF),利用CLF,可以在LabVIEW中实现DLL和API函数的调用。在LabVIEW中使用CLF需要了解动态链接库里被调用的函数名称、功能及其输入输出参数等,下面将详细介绍在LabVIEW 8.6下利用CLF调用6050运动控制卡基于C语言编写的驱动程序。首先在框图程序中创建一个空的CLF,CLF位于“函数模板→互连接口→库与可执行程序子模板”,如图1-1所示,下面给出其详细的配置过程:
[41]
图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为常见的LabVIEW和32位系统C语言数据类型对照表
[42]
表1-1 两种变量类型的对应关系
Table1-1 Correspondence between the two Types of Variables
VC++数据类型 简单基本类型 Char Unsigned char Short int Int Long Unsigned long Float LabVIEW对应的数据类型 Int8 Uint 8 Int 16 Int 32 Int 32 Uint 32 Float 32,4 B single 备注 对于这些基本类型的指针的指针类型变量,应在Parameters栏中的“Pass”传递类型中选择“Pointer to value”(通过指针传递)而不是“Value”(值传递) Double 一维数值型数组 Float 64,8 B double Array 具体设置:Type→Array,DataType→对应数组的基类型,Dimensions→对应数组的维数,ArrayFormat→Array Data Pointer 如果不使用LabVIEW本身提供率,而单纯使用VC++,则不能在LabVIEW中正确使用 具体设置:Type→string,string Format→C string pointer 如果不使用LabVIEW本身提供率,而单纯使用VC++,则不能在LabVIEW中正确使用 设结构体名称为:sPople,且结构体内变量定义不能使用LabVIEW中不支持的类型。在进行连线时,要根据结构内变量来定义Cluster 具体设置:Type→Adapt to Type,Data Format→Handles by value 数值数组类型 二维数据值型数据 指向数组的指针 指向指针的数组 Char * Array 没有对应类型 没有对应类型 string 字符串 Char[n] Char[][] Char** 没有对应类型 结构体 sPeople tmp 没有对应类型 sPeople* tmp
可以使用Adapt to Type
正在阅读:
LabVIEW调用库函数节点技术12-05
交大金融英语复习06-11
胖子的爱情02-14
DISCUZ论坛数据库表名集合08-10
初中体育课教案全集03-15
关于完善基层党组织设置形式的调研报告04-10
山东省淄博市2017年中考物理试题(含答案) - 图文09-20
微型党课责任与担当演讲稿06-05
综治工作考核自评报告01-16
- exercise2
- 铅锌矿详查地质设计 - 图文
- 厨余垃圾、餐厨垃圾堆肥系统设计方案
- 陈明珠开题报告
- 化工原理精选例题
- 政府形象宣传册营销案例
- 小学一至三年级语文阅读专项练习题
- 2014.民诉 期末考试 复习题
- 巅峰智业 - 做好顶层设计对建设城市的重要意义
- (三起)冀教版三年级英语上册Unit4 Lesson24练习题及答案
- 2017年实心轮胎现状及发展趋势分析(目录)
- 基于GIS的农用地定级技术研究定稿
- 2017-2022年中国医疗保健市场调查与市场前景预测报告(目录) - 图文
- 作业
- OFDM技术仿真(MATLAB代码) - 图文
- Android工程师笔试题及答案
- 生命密码联合密码
- 空间地上权若干法律问题探究
- 江苏学业水平测试《机械基础》模拟试题
- 选课走班实施方案
- 节点
- 调用
- 函数
- LabVIEW
- 技术
- 中国传统文化经典阅读心得体会
- 贪心算法实验报告
- 40套试卷合集宁夏吴忠中学2019-2020学年英语高一上期末模拟试卷含答案 - 图文
- XX镇人民政府关于开展控辍保学工作的情况汇报
- 2018新收入准则对房地产企业预缴所得税的影响
- xxx科技公司养蜂蜂具项目立项申请书(总投资20050万元)
- 第34讲:水利水电工程施工合同管理(一)(2015年新版)
- 新课程背景下初中物理实验教学评价初探-文档资料
- 平菇生产操作规程 - 精品资料
- 关于公布《南昌大学2008年下半年硕士研究生学位论文盲审抽检名单》的通知 - 图文
- 中国矿业大学简介
- 《有效沟通技巧》(赵永忠)章节作业及期末考试
- 浅谈高职院校就业指导课的教学改革-教育文档
- 配套K122019届高考生物一轮复习 第一单元 细胞的分子组成 随堂真题演练4 遗传信息的携带者 - 核酸 细胞
- 文件管理习题及答案
- JAVA实验4
- 2020版高考地理中图版一轮复习层级快练:人文地理第二章城市的空间结构与城市化作业22含解析
- 2018年民政事业单位上半年工作总结及下半年工作计划范文
- 15、航行计划与航海日志
- 课题结题汇报材料