LabVIEW与外部程序接口
LABVIEW 互联接口VI
。如错误发生在VI或函数 行之前,VI或函数将
输入 错误输出 运 没 正 运 运 值传递至
。如在VI或函数 行前 有发生错误,VI或函数将 常 行。如在VI或函数 行时发生错
正 运 错误输出 身 状 简易 误,VI或函数将 常 行并在
中设置自 的错误 态。 错误处理器或通用错误处理器VI可用于显示错
浏览 打开范例
相关范例
SimpleTaskMonitor VI: labview\examples\comm\dotnet\SimpleTaskMonitor.llb
表错误明输VI出或函包数含中错出误现信的息。错如误错状误态输。右入键表单明击在错VI或误输函出数运的前行面前板已显发示生控错件误,,从错误快输捷菜出单将包中选含相择同解的释错错误误信可息获。取更否多则关,
于该错误的信息。
状态 叉 勾 警告 无 的值为TRUE( )时表示错误,为FALSE( )时表示 或 错误。
.NET函数
所属选板: 互连接口VI和函数 安装: 基础软件包。本主题的内容可能与您所安装的LabVIEW选板不匹配,LabVIEW选板上显示的对象取决于操作系统、已
获得许可证的产品以及终端。
.NET函数用于创建.NET对象,设置该对象的属性或调用其方法,以及在.NET环境中处理对象事件。也可在前面板上创建一 个.NET控件。创建.NET对象并与之通信需安装.NET Framework 1.1 Service Pack 1或更高版本。
输入 错误输出 运 没 正 运 运 值传递至
。如在VI或函数 行前 有发生错误,VI或函数将 常 行。如在VI或函数 行时发生错
正 运 错误输出 身 状 简易 误,VI或函数将 常 行并在
中设置自 的错误 态。 错误处理器或通用错误处理器VI可用于显示错
第13章 LabVIEW常用外部接口
ActiveX组件包括如下几类。 (1)自动化服务器 (2)自动化控制器 (3)控件 (4)文档 (5)容器
13.4.2 ActiveX控件
ActiveX控件是ActiveX最常用的,它 是存放于ActiveX容器的一个可嵌入的组件。 LabVIEW中ActiveX容器函数位于“控件” 选板下“新式→容器”子选板中,如图1314所示。利用“ActiveX容器”函数,用户 可以调用第三方提供的各种ActiveX控件。
图13-7
CIN节点函数接线端子 图13-8 CIN节点函数接线端子与控件的连接
图13-9
创建DLL工程对话框
图13-10 将cintools路径
DLL工程编译命令
图13-13 CIN节点示例程序框图和运行界面
13.4 ActiveX
13.1 调用库函数
13.1.1 DLL简介
DLL是Dynamic Link Library 的缩写 形式,中文译为动态链接库。它是作为共 享函数库的可执行文件。 可以把动态链接库理解为一个函数库。
DLL在编程中的广泛应用主要缘于它的 一些优点。 (1)使用较少的资源 (2)推广模块式体系结构 (3)简化部署和安装 Windows操作系统中一些作为DLL实 现的文件有:ActiveX 控件(.ocx)文件、 控制面板(.cpl)文件和设备驱动程序 (.drv)文件。
图13-1
“调用库函数节点”函数位置
图13-2
“调用库函数”函数配置属性对话框
13.1.4 调用库函数示例
图13-3
调用库函数示例程序框图
13.2 Matlab接口
13.2.1 Matlab Script节点
Matlab是由数值分析、矩阵分析、信 号处理和图形绘制等组成的一个高性能的 数值计算和图形显示的计算软件环境。为 了结合两者以充分利用LabVIEW和Matlab 各自的优点,LabVIEW通过提供的Matlab Script节点可以导入和编辑Matlab程序。
第07次课 LabVIEW与其它应用程序的通讯
编写C代码
进入VC++开发环境 打开LabVIEW自动产生的C代码文件 在/* ENTER YOUR CODE HERE */处添 加以下代码:*_=*_1+*_2; 编辑完成,关闭文件
9/23/2003
河南科技大学电信学院自动化所
9
编辑后的C代码
35
对话框
9/23/2003
河南科技大学电信学院自动化所
36
举例-得到磁盘的类别
9/23/2003
河南科技大学电信学院自动化所
37
框图
9/23/2003
河南科技大学电信学院自动化所
38
对话框
9/23/2003
河南科技大学电信学院自动化所
39
Winbase.h
#define #define #define #define #define #define #define
9/23/2003
河南科技大学电信学院自动化所
10
编译VC++6.0源程序
在VC++6.0中创建一个空的Win32 Dynamic DLL project 在DLL工程中加入自己编写的实现两数 相加的C代码 在DLL工程中加入CIN对象和函数库: 加入CINTOOLS路径下的cin.obj、 labview.lib、lvsb.lib、lvsbmain.def共4 个文件
河南科技大学电信学院自动化所
6
前面板和后面板
9/23/2003
河南科技大学电信学院自动化所
7
自动产生的C代码如下
/* * CIN source file */ #include "extcode.h" CIN MgErr CINRun(float64 *_1, float64 *_2, float64 *_); CIN MgErr CINRun(float64 *_1, float64 *_2, float64 *_) { /* ENTER YOUR CODE HERE */ return noErr; }
LabVIEW的ActiveX实验
LabVIEW的ActiveX实验一.实验目的1.了解LabVIEW的外部程序接口2.掌握在LabVIEW中调用ActiveX的方法二.实验器材1.计算机一台2.LabVIEW8.20软件一套3.Excel 一套4.PowerPoint 一套三.实验原理LabVIEW作为一种图形化的编程语言,既有独特的优势,也在某些方面略显不足。
为改善自身不足,充分利用其他编程语言的优势,LabVIEW提供了强大的外部程序接口,包括DLL、CIN、ActiveX、Matlab等。
通过DLL,可以方便调用C、VC、VB等编程语言及Windows自带的API函数;通过ActiveX,方便调用外部程序、控件等。
ActiveX作为微软公司推出的一个技术集的统称,可以使用户重用代码,并能将程序连接在仪器实现复杂计算。
它是基于COM(Component Object Model)组件对象模型技术,是OLE(Object Linking and Embedding)技术的扩展。
ActiveX 对象是用于桌面、基于COM的组件。
它可以是可见的,也可以是隐藏的。
通过现成的ActiveX对象,用户可以方便的实现许多强大功能,如操作Excel、PowerPoint 等。
本实验利用LabVIEW调用Excel和PowerPoint提供的ActiveX来操作Excel和PowerPoint。
程序前面板如图所示。
通过两个按钮,分别调用Excel和PowerPoint。
下面说明其创建过程。
1.调用Excel(1)在函数面板→互连接口→ActiveX ,选择“打开自动化”,将其放在程序框图的合适位置。
(2)在“打开自动化”上单击鼠标右键,在弹出的菜单中选择“选择ActiveX 类→浏览”,出现如图所示的对话框,从类型库中选择Microsoft Excel 11.0 Object Library Version 1.5,在对象框中,选择仅显示可创建的对象,然后选择Application (Excel.Application.11),单击“确定”,就可以完成Automation Refnum 控件与Excel Application 的连接。
LabVIEW与外部程序间DLL文件的调用
图20 Parameters页面点击“OK”,将生成的CLN的输入段连接到DAQmx Read.vi,return type 输出连接到波形图表上,即可实现采集值放大10倍的功能。
图21 完成后的程序方法二LabVIEW中还有一种方法可以调用DLL文件,在VI的选项栏,依次选择Tools——Import——Shared Library(.dll),弹出Import Shared Library 对话框。
图22 生成Import Shared Library对话框选择Create VIs for a shared library,点击Next,在Shared Library (.dll) Files中输入Scale.dll文件的路径,Head(.h) File里填写头文件的路径。
图23 选择DLL文件路径和头文件路径点击Next,如果DLL文件中依赖其他的一些DLL文件,需要在Include Paths中填写这些文件的路径。
其他选项可以根据客户需求设置,一般默认即可。
这样一直点击Next到最后,选择Open the generated library,点击Finish。
这样可以生成一个.lvlib格式的库文件,里面包含了Scale.vi,这是将调用该DLL 文件的方法封装好的VI,只留下输入和输出接口,方便运用到LabVIEW的程序中。
直接将Scale.vi拖放到刚才的连续采集中即可完成方法一的功能。
图24 完成的程序VC调用LabVIEW生成的DLL文件刚才介绍了LabVIEW调用DLL文件的方法,使用VC调用LabVIEW生成的DLL 文件也很简单。
还是以之前生成Scale 的DLL文件为例,不同的是采集电压程序使用的是C语言的例程,但和LavVIEW实现的功能相同。
首先将先前生成Scale DLL文件时,路径下所有的文件全部复制粘帖到C语言例程的文件夹下。
打开连续采集程序,点击状态栏的Project——Settings,在Project Settings对话框中加载入Scale.lib的静态链接库。
LabVIEW 外部代码接口技术的研究与应用-文献综述
LabVIEW 外部代码接口技术的研究与应用摘要LabVIEW是一种功能强大的图形化虚拟仪器编程软件,广泛应用于仿真、数据采集、仪器控制、测量分析等嵌入式应用系统的开发。
然而,在需要进行大量数据运算处理和数据采集时,LabVIEW显得有些力不从心。
为此,本文研究了LabVIEW 外部接口技术,提出了LabVIEW与其他软件之间接口的方法,并且通过举例验证了各种方法的可行性,从而有效的解决了问题。
关键词:LabVIEW,虚拟仪器,外部接口,数据运算处理,数据采集中图分类号:TP13 自动控制理论Study And Application of External Code Interface Technology in LabVIEW.Guohua Bai1,Wenxi Wang2(1.Key laboratory of Instrumentation Science & Dynamic Measurement,North University of China 2. Xinyuan High Tech Centre North University of China ,TaiYuan 030051, China )Abstract :LabVIEW is a graphical software with strong virtual instrument function, which has been abroadly applicated in simulation, data acquisition, instrument control, measurement and analysis of the application-embedded system exploitation. However, LabVIEW has not the ability to operate complex mathematic operation and data acquisition.To this point, the LabVIEW external code interface technology is studied and several kinds of method of implementing the interface between LabVIEW and other softwares are put forword in this paper. The feasibility of the whole bag of tricks is verified by giving some examples and the problems are effectively solved.Key Words:LabVIEW,virtual instrument,external interface,mathematic operation,data acquisition引言当前,虚拟仪器技术已广泛应用到各种自动化测试和测量领域,虚拟化已经成为仪器领域的发展方向。
LabVIEW与硬件连接实现与外部设备的通信
LabVIEW与硬件连接实现与外部设备的通信LabVIEW(Laboratory Virtual Instrument Engineering Workbench)是一款由美国国家仪器公司(National Instruments)开发的图形化编程环境软件。
通过使用LabVIEW,工程师和科学家可以快速而方便地设计、控制和调试各种测试、测量和控制系统。
与硬件连接是LabVIEW应用的重要组成部分,使其能够与外部设备进行通信和交互。
本文将探讨LabVIEW与硬件连接的实现,以及与外部设备的通信方法。
一、硬件连接的准备工作在将LabVIEW与外部设备连接之前,我们需要进行一些准备工作,以确保连接的稳定和可靠性。
1. 硬件选型首先,选取适合的硬件设备。
LabVIEW支持与各种类型的硬件设备连接,如传感器、执行器、数据采集卡等。
根据所需的功能和应用场景选择合适的硬件设备,确保其与LabVIEW的兼容性。
2. 连接方式根据硬件设备的要求,选择合适的连接方式。
LabVIEW支持多种连接方式,包括串口、并口、以太网等。
根据实际情况选择连接方式,确保连接的稳定和传输速度的要求。
3. 驱动程序安装在连接硬件设备之前,需要安装相应的驱动程序。
LabVIEW提供了一系列专门用于驱动硬件设备的工具包,如NI-DAQmx、NI-VISA 等。
根据硬件设备的要求,安装相应的驱动程序,以便与LabVIEW进行通信和控制。
二、基于LabVIEW的硬件连接实现LabVIEW提供了丰富的工具和功能,使其能够轻松地与外部设备进行连接和通信。
下面介绍几种常见的基于LabVIEW的硬件连接实现方法。
1. 串口通信串口通信是一种常见的硬件连接方式,适用于与串口设备进行数据传输和控制。
LabVIEW提供了针对串口通信的专门工具,如VISA函数库和串口控制面板。
通过使用这些工具,可以实现LabVIEW与串口设备之间的通信,并进行数据的读取、写入和控制操作。
LabVIEW与外部程序接口
LabVIEW软件和数据采集卡编程开发讲师:于海春LabVIEW与外部程序接口•LabVIEW DAQ与LabVIEW Driver都是利用LabVIEW的外部程序接口以达到第三方软件集成的目的。
•LabVIEW DAQ使用的是dll调用•LabVIEW Driver使用的是Cin节点方式调用•两者的执行效率一致。
动态链接库方式•通过Dll 方式集成第三方程序–可以用C/C++语言实现软件的运算部分,并把这些功能构建在DLL 文件中,然后再使用LabVIEW 编写程序的界面部分,并通过调用编写好的DLL 来调用运算部分的功能。
–LabVIEW 中是通过Call Library Function Node (CLN )节点来完成DLL 文件调用–将节点放置在程序框图中,双击会出现它的配置对话框在Functions Palette 中选中Connectivity →Libraries&Executables工具栏即可找到该节点动态链接库方式•节点配置(1)–Library name or path需给出DLL文件名和路径–动态加载DLL,勾选上Specify path on diagram选项–Function name是需要调用的函数的名称–Thread栏用于设定调用的函数运行的线程–Calling convention用于指明被调用函数的调用约定动态链接库方式•节点配置(2)–DLL和LabVIEW之间传递参数,最常用的三种数据类型是数值、数值型数组和字符串。
–在NI软件的安装路径下打开当前使用版本的LabVIEW文件夹,通过examples\dll\datapassing\CallNativeCode.llb找到简单数据类型在LabVIEW与C之间的对应关系。
动态链接库方式•节点配置(3)–为DLL设置一些回调函数,可以使用这些回调函数在特定的情形下完成初始化、清理资源等工作–Reserve:当一个新的线程开始调用这个DLL时,这个回调函数首先被调用–Unreserve:线程在使用完这个DLL之后,它会调用。
LabVIEW与其他应用程序的接口设计
LabVIEW与其他应用程序的接口设计李景广 王哨军 董坤 汪增宏(第二炮兵工程学院101教研室,西安 710025)摘要:本文以Window XP下的LabVIEW 7.0为应用平台,设计了LabVIEW与其他应用程序的接口,程序中调用了公式节点、C语言代码、MATLAB脚本节点、Window API、ActiveX控件,着重介绍调用方法和过程。
以两个实数的减法为例实现了LabVIEW调用其他程序的方法。
关键词:LabVIEW;CIN;MATLAB;动态链接库DLL;CLFN中图分类号:TP319文献标识码:ADesign of Language Interface Between LabVIEW and Other Frequently Used Program Li Jingguang Wang Shaojun Dong Kun Wang Zenghong(The Second Artillery Engineering College, X i’an 710025)Abstract: In this paper, the interface of language between LabVIEW and other frequently used program,was designed based on LabVIEW 7.0 of Window XP. Called Formule Node,C Language Node ,MATLAB Script,Window API and ActiveX in the process and Emphasized discussing the method of calling, .The subtract of two real was taked for discussing the method of calling.Key words:LabVIEW;CIN;MATLAB;DLL;CLFN虚拟仪器的软件开发平台主要有以下几种:NI公司LabVIEW、LabWindows/CVI;Agilent 公司的VEE及微软的VB、VC等。
LabVIEW与C语言程序的接口设计
LabVIEW与C语言程序的接口设计介绍一种LabVIEW与C接口的设计方法。
利用此接口方法,可以根据实际应用的要求,扩展LabVIEW的功能。
关键词:LabVIEW;CIN;Visual C++1引言LabViEW提供支持VXI总线、GPIB总线、RS 232串行总线接口硬件的驱动程序库,但它对物理内存的操作受到限制,且对硬件操作的实时性不好。
但它提供了CIN(Code Interface Node)节点。
用户可在LabVIEW中确定CIN节点的入口与出口参数个数类型,在C编译环境下,生成.lsb 文件,然后在LabVIEW中对CIN节点选择Load cin object code,最后将该节点封装成一个VI,由主程序调用。
采用CIN节点,也可充分利用Win95支持多线程的功能,提高运行效率,利用主线程*各子线程,有效地避免因硬件通信错误而导致程序被挂起的现象,同时,可充分利用Win95有效的内存管理技术,提高数据处理及运算速度。
CIN为LabVIEW提供了一个与外部代码相链接的节点(Node),常用于同步执行在外部编译的可执行代码,也可用来调用外部子程序。
CIN是LabVIEW块流图中的一个节点,它与一段用传统C语言书写的源代码相连,必须用第三方提供的C(C++)编译器编译并链接该代码成为可执行代码。
目前对于LabVIEW 5.0 for Windows95/NT,支持CIN的第三方编译器有Visual C++、Symantec C和Watcom C/386。
设计CIN的步骤为VI设计、生成.c文件、用户代码设计、编译代码生成.lsb 文件、装载CIN目标代码。
下面以在封装驱动程序时设计的StdCMD.VI为例,说明在LabVIEW 5.0和Visual C++ 5.0环境下CIN的设计方法。
2.1VI设计首先在块流图(Block Diagram)上放置一个CIN VI,然后通过CIN弹出菜单中的Add Parameter增加接线端子(Terminal),通过接线端子来标识CIN的输入和输出。
用Labview基于NI VISA控制USB接口
基于NI-VISA与LabVIEW的USB接口应用设计2008-01-15 嵌入式在线收藏| 打印通用串行总线(USB)作为一种灵活的高速总线接口技术,非常适合作为主机和外设之问的通信接口,但其结构复杂。
本文以一个采集多点温度的实际系统为倒,阐述USB接口应用系统的总体设计思想及其层次结构,在实现方法上避开传统的Windows编程技术,另辟蹊径地给出使用NI-VISA 来驱动USB接口以应用LabVIEW进行应用编程的方法。
USB(Universal Serial Bus)接口是近年来应用在PC领域的新型接口技术。
它基于单一的总线接口技术来满足多种应用领域的需求;它的即插即用、支持热插拔、易于扩展等特性极大地方便了用户的使用,已逐渐成为现代数据传输的发展趋势。
传统的开发USB应用系统的步骤是,先用WindowsDDK(设备驱动程序开发包)或第三方开发工具(如DriverStudio)开发USB驱动程序,然后用Visual C++编写DLL(动态连接库),最后再调有DLL来开发应用程序。
显然,这对Windows编程不熟悉的人来说有一定的难度,何况USB驱动程序的开发难度很大。
本文介绍一种简单、快速开发USB接口应用系统的方法。
它直接在LabVIEW环境下通过NI-VISA开发能驱动用户USB系统的应用程序,完全避开了以前开发USB驱动程序的复杂性,大大缩短了开发周期。
1 NI-VISA简介NI-VISA(Virtual Instrument Software Architec-ture,以下简称为“VISA”)是美国国家仪器NI(National Instrument)公司开发的一种用来与各种仪器总线进行通信的高级应用编程接口。
VISA总线I/O软件是一个综合软件包,不受平台、总线和环境的限制,可用来对USB、GPIB、串口、VXI、PXI和以太网系统进行配置、编程和调试。
VISA是虚拟仪器系统I/O接口软件。
第13章 LabVIEW常用外部接口
13.1.2 API简介 简介
API(Application Programming ( Interface,应用程序编程接口)是一套用 ,应用程序编程接口) 来控制Windows的各个部件(从桌面的外 的各个部件( 来控制 的各个部件 观到为一个新进程分配的内存) 观到为一个新进程分配的内存)的外观和 行为的一套预先定义的Windows函数。 函数。 行为的一套预先定义的 函数
13.1 调是Dynamic Link Library 的缩写 是 形式,中文译为动态链接库。 形式,中文译为动态链接库。它是作为共 享函数库的可执行文件。 享函数库的可执行文件。 可以把动态链接库理解为一个函数库。 可以把动态链接库理解为一个函数库。
DLL在编程中的广泛应用主要缘于它的 在编程中的广泛应用主要缘于它的 一些优点。 一些优点。 (1)使用较少的资源 ) (2)推广模块式体系结构 ) (3)简化部署和安装 ) Windows操作系统中一些作为 操作系统中一些作为DLL实 操作系统中一些作为 实 现的文件有: 控件( 现的文件有:ActiveX 控件(.ocx)文件、 )文件、 控制面板( 控制面板(.cpl)文件和设备驱动程序 ) (.drv)文件。 )文件。
图13-11 代码生成的设置 13-
DLL工程编译命令 图13-12 DLL工程编译命令 13-
CIN节点示例程序框图和运行界面 图13-13 CIN节点示例程序框图和运行界面 13-
13.4 ActiveX
13.4.1 ActiveX简介 简介
OLE(Object Linking and ( Embedding,对象连接与嵌入)是一种面 ,对象连接与嵌入) 向对象的技术。 向对象的技术。 COM(Component Object Modal, ( , 组件对象模型) 组件对象模型)是一种说明如何建立可动 态互变组件的规范。 态互变组件的规范。
LabVIEW与外部程序间DLL文件的调用
LabVIEW与外部程序间DLL文件的调用什么是DLL文件DLL(动态链接库)文件是Dynamic Link Library的缩写形式,是一种允许程序共享执行特殊任务所必需的代码和其他资源的可执行文件。
其多数情况下是带有DLL扩展名的文件,但也可能是EXE或其他扩展名。
Windows提供的DLL文件中包含了允许基于Windows 的程序在Windows环境下操作的许多函数和资源。
动态链接提供了一种方法,使进程可以调用不属于其可执行代码的函数。
这些函数的可执行代码位于一个DLL中,该DLL包含一个或多个已被编译、链接并与使用它们的进程分开存储的函数。
DLL还有助于共享数据和资源,多个应用程序可同时访问内存中单DLL副本的内容。
总之,DLL是一个包含可由多个程序同时使用的代码和数据的库。
动态链接是相对于静态链接而言的。
所谓静态链接是指把要调用的函数或者过程链接到可执行文件中,成为可执行文件的一部分。
换句话说,函数和过程的代码就在程序的exe文件中,该文件包含了运行时所需的全部代码。
当多个程序都调用相同函数时,内存中就会存在这个函数的多个拷贝,这样就浪费了宝贵的内存资源。
而动态链接所调用的函数代码并没有被拷贝到应用程序的可执行文件中去,而是仅仅在其中加入了所调用函数的描述信息(往往是一些重定位信息)。
仅当应用程序被装入内存开始运行时,在Windows的管理下,才在应用程序与相应的DLL之间建立链接关系。
当要执行所调用DLL中的函数时,根据链接产生的重定位信息,Windows才转去执行DLL中相应的函数代码。
由于向运行于Windows操作系统下的程序提供代码、数据或函数,程序可根据DLL文件中的指令打开、启用、查询、禁用和关闭驱动程序。
在Windows操作系统中,DLL对于程序执行是非常重要的, 因为程序在执行的时候, 必须链接到DLL文件, 才能够正确地运行。
而有些DLL文件可以被许多程序共用,因此程序设计人员可以利用DLL文件, 使程序不至于太过巨大。
第9章外部程序接口
MATLAB脚本节点的使用需要用户安装MATLAB程序,节点中的 脚本完全是MATLAB中的M文件,运行MATLAB Script节点时会启动 MATLAB,并在MATLAB中执行脚本内容。
第9章
外部程序接口
2013-11-30
精通LabVIEW虚拟仪器程序设计与案例实现
实例——MATLAB Script节点使用举例
函数→互连接口→ActiveX
第9章
外部程序接口
2013-11-30
精通LabVIEW虚拟仪器程序设计与案例实现
ActiveX自动化
LabVIEW作为客户端,可以访问现有的ActiveX对象来增强 自身的功能, LabVIEW作为客户端操作ActiveX对象的基本步骤 为: 打开自动化 调用属性节点或方法节点访问ActiveX对象的属性或方法 关闭引用
第9章
外部程序接口
2013-11-30
精通LabVIEW虚拟仪器程序设计与案例实现
实例——ActiveX容器调用Windows Media Player ActiveX控件
第9章
外部程序接口
2013-11-30
精通LabVIEW虚拟仪器程序设计与案例实现
ActiveX事件
许多ActiveX控件除了与其关联的属性和方法之外,还定义了一 套事件,当这些事件发生时,就传递给客户或者容器,当一具体的事 件传回时,客户端可以通过执行代码实现任何必要的动来处理事件。 使用ActiveX事件的基本步骤是: 创建ActiveX对象 注册该对象的特定事件 创建该事件发生时调用的回调VI VI退出时注销事件。
第9章
外部程序接口ຫໍສະໝຸດ 2013-11-30精通LabVIEW虚拟仪器程序设计与案例实现
Labview调用DLL时接口类型匹配简介
调用DLL时接口类型匹配简介1、数值类型Data type:选择数值的类型。
Pass:选择采用传值方式还是传引用方式。
2、布尔类型a. 方法一:使用数值类型作为输入输出。
在连接输入的时候将布尔值转换为数值。
在输出的时候使用判断是否等于0来获取布尔值。
b. 方法二:类型中选择“Adapt to Type”(匹配至类型),数据格式选择“Handles by Value”。
在程序中,直接接入布尔数据,接线端会自动变为布尔类型。
3、字符串类型由于需要为字符串分配内存空间,对于字符串输出,需要为其在输入的一端接入初始字符串。
当初始字符串长度不够时,程序会因为内存内存越界而出错。
4、一维数值数组a. 当生成dll的时候采用“Array Data Pointer”时,参数中会自动增加一个“len”的数值参数:在“Length Input”中会默认设置为此参数值,用以表示数组的长度。
在调用此dll时,对于数组类型,在“Array format”中设置为Array Data Pointer。
同时需要将数组的长度值接至len端上:b. 当生成dll的时候采用“Array Handle Pointer”时,这时输入输出对应的是指向句柄的指针,可执行系统级的操作。
程序可以自动获取数组的长度,所以将不会有“len”参数出现。
在调用此dll时,在“Array format”中选择Array Handle Pointer即可。
在程序中不再需要为数组指定长度。
5、二维数值数组当参数为二维数值数组的时候,在LabVIEW下生成dll时类型只能选择为指向句柄的指针。
调用的方法与4.b类似,只需将“Dimensions”设置为2即可:6、不包含数组的簇数据类型设置为“Adapt to Type”,数据格式设置为“Handles by Value”。
将簇直接接入即可。
7、包含数组的簇、调用方法与调用一维数组类似。
a. 当参数类型为句柄时(一般情况下这种dll是不能使用LabVIEW生成的),在调用dll 的时候,类型设置与不含数组的簇一样:由于需要为这种簇分配内存空间,所以需要将簇的输出接入对应的数据:b. 当参数类型为指向句柄的指针时,将数据格式设置为“Pointers to Handles”。
课程-外部程序接口之调用DLL
外部程序接口之调用DLL LabVIEW与外部程序接口:LabVIEW作为一种图形化环境的编程语言,功能已经十分强大。
同时,LabVIEW也是一个软件平台:在LabVIEW环境中,我们可以通过LabVIEW提供的丰富接口来调用其他语言的程序。
这些接口包括DLL,C语言接口,ActiveX,.NET,等。
DLL是一种封装好了的函数库,只要遵守DLL的开发觃范和编程方法,任何编译器生成的DLL 都具有通用性。
并且该函数只有在被调用的时候才会被动态的载入内存,节省的内存的开销。
在LabVIEW中,我们可以通过“调用库函数节点”(Call Library Function Node)我们可以方便的调用C,VC,VB等文本语言编写好的程序以及Windows 自带的大量的API函数。
调用C语言DLL:如何在LabVIEW中调用DLL呢?我们首先来看一个例子,请运行附件中的hostname.vi。
得到如图所示的结果:观察程序框图,我们看到通过调用hostname.dll,我们得到了当前计算机的用户名。
接下来我们看一下该调用是如何实现的。
hostname.dll函数的源代码如下:该函数的源代码可以参见hostname.c文件。
根据函数的定义,我们在“调用函数节点”中,配置相应的参数:1.在函数面板中,选择该DLL的路径和具体的函数名。
注:对于不同的DLL函数,需要选择不同的调用觃范。
这里选择C,表示由调用方(LabVIEW)清除堆栈。
2.在参数面板中,配置该函数的输入输出参数。
根据函数定义,这里配置了输入“参数1”,并且定义数据类型为“字符串”。
3.点击确定,完成调用DLL函数。
4.在程序框图中使用“连接字符串”,在得到的计算机名前添加字符串“LabVIEW is running on”,如图参数配置中的数据类型:在“参数”的配置页面中,我们需要根据函数的定义来为添加的输入输出函数选择合适的数据类型。
LabVIEW的调用函数节点提供了丰富的数据类型以供选择:• Numeric• Array• String• Waveform• Digital Waveform• Digital Data• ActiveX• Adapt to Type• Instance Data Pointer在参数的配置过程中,必须根据函数的定义选择LabVIEW中对应的数据类型,否则调用的过程中程序会报错,甚至程序崩溃。
LabVIEW与其他计算机语言接口技术
虚拟仪器(Virtual Instrument,简称VI),是指使用者在通用计算机平台上,根据需求定义和设计仪器的测试功能,使得使用者在操作这台计算机时,就像是在操作一台自己设计的测试仪器一样。
简单的说,虚拟仪器其本质就是“软件就是仪器”(The software is instrument)。
虚拟仪器的特点:1)在通用硬件平台确定后,由软件取代传统仪器中的硬件来完成仪器的功能;2)仪器的功能是用户根据需要,由软件来定义的,而不是实现由厂家来定义好的;3)仪器性能的改进和功能的扩展只需进行相关软件的设计更新,而不需要买新的仪器;4)研制周期较传统仪器大为缩短;5)虚拟仪器开放、灵活,可与计算机同步发展,可与网络及其它周边设备互联。
LabVIEW软件工具的特点:1)图形化的编程方式,设计者无需写任何文本格式的代码,是真正的工程师的语言;2)提供了丰富的数据采集、分析及存储的库函数;3)既提供了传统的程序调试手段,如设置断点、单步运行,同时提供了独到的高亮执行工具,使程序动画式运行,利于设计者观察程序运行的细节,使程序的调试和开发更为便捷;4)32bit的编译器编译生成32bit的编译程序,保证用户数据采集、测试和测量方案的高速执行;5)囊括了DAQ、GDIB、PXI、VXI、RS-232/485在内的各种仪器通讯总线标准的所有功能函数,使得不懂总线标准的开发者也能够驱动不同总线标准接口设备与仪器;6)提供大量与外部代码或软件进行连接的机制,诸如DLL(动态链接库)、DDE(共享库)、ActiveX等;7)强大的Internet功能,支持常用网络协议,方便网络、远程测控仪器的开发。
一、LabVIEW与C语言接口技术由于LabVIEW所提供的图标功能是有限的,所以,实际系统中仍然有某些功能是LabVIEW无法或难以实现的。
针对这个问题,LabVIEW在“Advanced”子模板上不仅提供了和C语言的接口,还提供了调用Windows动态链接库(DLL)函数以及实现多线程编程之类的高级功能。
LabVIEW 外部代码接口技术的研究与应用
LabVIEW 外部代码接口技术的研究与应用摘要LabVIEW是一种功能强大的图形化虚拟仪器编程软件,广泛应用于仿真、数据采集、仪器控制、测量分析等嵌入式应用系统的开发。
然而,在需要进行大量数据运算处理和数据采集时,LabVIEW显得有些力不从心。
为此,本文研究了LabVIEW 外部接口技术,提出了LabVIEW与其他软件之间接口的方法,并且通过举例验证了各种方法的可行性,从而有效的解决了问题。
关键词:LabVIEW,虚拟仪器,外部接口,数据运算处理,数据采集中图分类号:TP13 自动控制理论Study And Application of External Code Interface Technology in LabVIEW.Guohua Bai1,Wenxi Wang2(1.Key laboratory of Instrumentation Science & Dynamic Measurement,North University of China 2. Xinyuan High Tech Centre North University of China ,TaiYuan 030051, China )Abstract :LabVIEW is a graphical software with strong virtual instrument function, which has been abroadly applicated in simulation, data acquisition, instrument control, measurement and analysis of the application-embedded system exploitation. However, LabVIEW has not the ability to operate complex mathematic operation and data acquisition.To this point, the LabVIEW external code interface technology is studied and several kinds of method of implementing the interface between LabVIEW and other softwares are put forword in this paper. The feasibility of the whole bag of tricks is verified by giving some examples and the problems are effectively solved.Key Words:LabVIEW,virtual instrument,external interface,mathematic operation,data acquisition引言当前,虚拟仪器技术已广泛应用到各种自动化测试和测量领域,虚拟化已经成为仪器领域的发展方向。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
LabVIEW软件和数据采集卡编程开发
讲师:于海春
LabVIEW与外部程序接口
•LabVIEW DAQ与LabVIEW Driver都是利用LabVIEW的外部程序接口以达到第三方软件集成的目的。
•LabVIEW DAQ使用的是dll调用
•LabVIEW Driver使用的是Cin节点方式调用
•两者的执行效率一致。
动态链接库方式
•通过Dll 方式集成第三方程序
–
可以用C/C++语言实现软件的运算部分,并把这些功能构建在DLL 文件中,然后再使用LabVIEW 编写程序的界面部分,并通过调用编写好的DLL 来调用运算部分的功能。
–LabVIEW 中是通过Call Library Function Node (CLN )节点来
完成DLL 文件调用
–将节点放置在程序框图中,双击会出现它的配置对话框
在Functions Palette 中
选中Connectivity →
Libraries&Executables
工具栏即可找到该节
点
动态链接库方式
•节点配置(1)
–Library name or path需
给出DLL文件名和路径
–动态加载DLL,勾选上
Specify path on diagram
选项
–Function name是需要调用的函数的名称
–Thread栏用于设定调用的函数运行的线程
–Calling convention用于指明被调用函数的调用约
定
动态链接库方式
•节点配置(2)
–DLL和LabVIEW之间传递参数,最常用的三种数据类
型是数值、数值型数组和
字符串。
–在NI软件的安装路径下打开当前使用版本的LabVIEW
文件夹,通过
examples\dll\data
passing\Call
NativeCode.llb找到简单
数据类型在LabVIEW与C之
间的对应关系。
动态链接库方式
•节点配置(3)
–为DLL设置一些回调函数,
可以使用这些回调函数在特
定的情形下完成初始化、清
理资源等工作
–Reserve:当一个新的线程
开始调用这个DLL时,这个
回调函数首先被调用
–Unreserve:线程在使用完
这个DLL之后,它会调用。
–Abort:用于VI非正常结束
时被调用。
第四页是错误处理方式,用户可根据需
要选择相应的错误检查级别。
LabVIEW DAQ •LabVIEW DAQ数据采集例程
CIN 节点
•通过代码接口节点(CIN)可从程序框图调用以基于文本的编程语言(如C语言)所编写的代码。
•通过代码接口节点(CIN)可访问以另一种语言编写的算法•通过代码接口节点(CIN)可操作LabVIEW不直接支持的某个特定平台的功能或硬件。
•CIN为可扩展函数,可显示已连线的输入端和输出端的数据类型。
CIN 节点
•按照下列步骤,创建一个CIN。
– 1. 设置CIN的输入和输出端。
– 2. 连接CIN的输入和输出端。
– 3. 创建一个.c文件。
– 4. 编译CIN源代码。
– 5. 加载CIN对象代码。
•在VC中可以利用lvsbutil工具将dll转换成lsb文件
CIN与DLL
•CIN(Code Interface Node)节点是LabVIEW中用来调用C/C++代码的功能节点。
•它与动态链接库的不同之处在于,它能够将代码集成在VI中作为单独的一个VI发布,而不需要多余的文件。
•它提供了函数入口,它可以根据用户提供的输入输出自动生成函数入口代码。
•CIN节点与DLL在不同的场合有不同的优势。
•对于完全相同的代码,CIN和DLL的执行效率是完全一样的。
•CIN节点必须调用.lsb文件,lsb文件是通过外部编译器与CINTools工具结合将C代码编译生成的。
Generated by Foxit PDF Creator © Foxit Software For evaluation only.。