使用LabVIEW生产dll

合集下载

Labview 自动生成程序及应用程序

Labview 自动生成程序及应用程序

Labview 自动生成程序及应用程序周青教主2011.12.28一自动生成程序的功能 (1)二相关背景 (1)三实际开发应注意以下几点: (1)四相关函数介绍及具体范例 (2)1.相关函数 (2)2.具体范例 (3)2.1 最简单的一段代码如图 3所示: (3)2.2 在While循环里面添加Add函数 (4)2.3在前面板放置RoundButton控件 (4)2.4在前面板放置簇,并在簇里面放置数值控件 (4)2.5生成一个显示随机数的波形图表程序,并自动运行 (5)2.6 将E的程序添加自动整理框图功能 (5)2.7 连线前面板控件与接线端 (5)2.8 前面板接线端样式介绍 (5)3.小结 (5)五自动生成应用程序 (5)六应用示例 (6)1.自动生成一个时钟的应用程序并自动生成相应EXE (6)2.注意 (6)Labview 自动生成程序及应用程序一自动生成程序的功能在使用Labview过程中,我们能接触到各种项目设置、生成向导。

如:创建仪器驱动项目向导,创建Labview实时项目向导等。

使用向导可以减少用户的学习曲线时间,并能快速、准确和动态的生成代码。

Labview VI脚本(VI Scripting)有助于通过编程,生成、编辑并检测Labview代码,便于开发向导程序。

通过LabVIEW 脚本可以实现编程创建、修改并运行LabVIEW 代码。

它包含多种新的VI 服务器类、属性和方法,有助创建、移动并连接对象(包括前面板、程序框图、和图标),有助编辑连线板,有助创建新型动态VI。

二相关背景1.什么是VI Scripting?●VI Scripting 是Labview中功能强大的特性之一,它允许用户通过程序去创建或修改Labview程序●基于VI Server●从Labview8.6开始提供给用户使用2.为什么我们需要VI Scripting?●制作向导——能通过简单的对话框自动生成代码,减少学习曲线并且增加生产率●支持VI检查——能获取VI内容并检查●创建编译器——方便把其它G或C代码转化为G代码3.用VI Scripting,我们能做什么?●理论上,我们应该能做任何Labview编辑器能做的事情●事实上,你能做如下事情等:⏹创建新的VI⏹添加新的对象到前、后面板⏹修改前、后面板上的对象⏹将前面板控件和接线面板相关联三实际开发应注意以下几点:1)利用Labview VI脚本(VI Scripting)创建Labview向导程序,此向导程序用于动态生成VI;2)向导中必须包括选择项以及可设置的配置参数3)编程风格及代码可读性。

关于LabVIEW产生的DLL被C调用的问题

关于LabVIEW产生的DLL被C调用的问题

关于LabVIEW产生的DLL被C调用的问题1 LabVIEW的工作1.1 工程项目从LV8.0开始,想要生成exe、安装程序或DLL就必须首先创建1个工程,然后把所有有关的VI全部添加到工程中,如图1:图1 LV项目为了使目录结构清晰,最好把最后需要输出的VI放置在一起,把子VI放置在一起,如图1中,虚拟目录Top Level Vis用来存放3个输出的VI(可以把它想像成DLL中的函数)、虚拟目录Dynamic Vis存放子VI、虚拟目录Support Files存放支持文件(位图、光标等)。

1.2 VI设置如同在LV中一样,有些VI完全是作为计算模块使用的(调用时不会弹出界面,如图1中的acquire.vi、analyze.vi),而有些是用来显示界面的(调用时弹出对话框,如图1中的present.vi)。

那么如何设置1个输出VI是否显示界面呢?想要产生界面调用的函数,请配置Window Appearance(如图2),然后确保红线圈住的地方必须被选中:图2 VI界面设置1.3 输出配置(Build Specification)右击Build Specification选择New->DLL,弹出DLL输出配置对话框,其有以下对话框需要配置:1.3.1 基本信息(Information)图3∙Build specification name—指定唯一的生成模板名称(出现在项目管理页面中),用以和其他模板相区别∙Target filename—指定输出的DLL名称∙Destination directory—指定生成文件的输出路径∙Build specification description—描述该生成模板的相关信息。

1.3.2 输出源指定(Source Files)图4∙Project Files窗口—显示项目窗口My Computer下列举的项目(如图1),使用图4中的左/右箭头可将My Computer下列举的项目移入/移出Exported VIs和Always Included窗口。

LabVIEW下国产数据采集卡DLL的设计

LabVIEW下国产数据采集卡DLL的设计

文章编号:1008-1658(2003)03-0009-05Lab V I E W 下国产数据采集卡DLL 的设计王少红,徐小力(北京机械工业学院机电系统测控实验室,北京100085)摘要:L ab V I E W 是一个高效的图形化程序设计环境,在测量、测试及工业控制领域已有广泛的应用,但所用数据采集卡必须有N I (N ational I nstru m ents )公司提供的驱动程序,大大限制了用户的选择。

分析L ab V I E W 调用外部程序代码的途径,采用调动态链接库的方法编写L ab V I E W 环境下国产数据采集卡的驱动程序。

实验证明,效果良好,满足测试要求,利用动态链接库调用外部程序代码是增强L ab-V I E W 整体性能的一条有效途径。

关键词:虚拟仪器;数据采集卡;动态链接库DLL中图分类号:TP 274文献标识码:A The desi g n of Dllf or t he dom estic DA O card i n l abV I E WW ANG S hao -hon g ,XU X iao -li(L aborator y o f m easure m ent and C ontro l of m echan ical and E lectrical S y ste m ,B e i j i n g I nstitute o f m ach i ner y ,B e i j i n g 100085,Ch i na )Abstract :V irt ual I nstru m ent develo p m ent p latf or m L ab V I E Wis a hi g h efficienc y g ra p hical p lat-f or m W it h extensi ve a pp lication i n m easuri ng ,testi n g and i ndustries contro l real m.But t he DAG (D ata A c C uisition )card needs t he com p an y o f N I (N ational I nstru m ents )to p rovi de dri ve ,Whichg reatl y li mits t he cho ice o f t he custom ers .C alli n g external code m et hod i n L ab V I E Wis dis-cussed ,and DLL (D y na m io L i nk L i brar y )dri ve f or t he dom estic data ac C uisition card is devel-o p ed.It has been p roved t hat t he m et hod is efficient ,p racticable ,and is a g ood W a y to i m p rove t he overall p erf or m ance o f L ab V I E W.K e y words :virt ual i nstru m ent ;DAG card ;DLL虚拟技术、计算机通讯技术与网络技术是信息技术最重要的组成部分,它们被称为21世纪科学技术中的3大核心技术。

LabVIEW 调用 C-C++ Dll 详解

LabVIEW 调用 C-C++ Dll 详解

LabVIEW 调用C/C++ Dll 详解LabVIEW 在配上NI 的采集卡或者别的第三方的硬件,约等于神器(虽然有时候贵了点)。

这样你可以比较集中精力的专注于数据处理了,就不用学习麻烦的Win32 的GUI 编程, 也不用关注和你自己搞的采集板之间的通信了。

对于每一个测控行业的程序来说,基本上都是:初始化-->数据采集-->数据处理-->数据显示-->数据保存-->结束的一个过程。

当然如果是实时的,那么采集,处理,显示就是在一个loop 里面。

当然为了保证实时性,数据处理和数据采集不一定在一个线程里,因为处理的时候把采集给block 住也挺傻的。

LabVIEW 很容易帮你搞定:初始化-->数据采集-->数据处理-->数据显示-->数据保存-->结束但是数据处理部分,是和你的学科紧密相关的,有时候算法会诡异到你很难用VI来实现,那么你就要有C++”target=“_blank”>C++code来搞了。

那么C/C++ 是如何与LabVIEW 交互的呢,本文来较详细的阐述一下,因为准备采用总分总的写作手法...所以先来个概括...1. 把C/C++ code 编译成Dll。

2. 用LabVIEW 的call library node 来调用。

难点在于:如何把LabVIEW 的数据类型和C/C++ 的来对应。

控件x 相当与一个double,当然其类型也是可以选择的(如右图所示)。

boolean 按理说应该是一个bool, 但是传入call library node 的时候,一般要转成unsigned int 型。

cluster 其实就是个struct ,左图的cluster 是:struct tCluster{ double x11; // 类型都可以向右图那样自己配置double x2; int x3;};对于string,这里要着重讲一下,labview 的string 类型里面是包含长度信息的,它不是一个简单的char *它是个LStrHandle 类型:定义咋extcode.h 里面(可以在labview 目录下搜到)typedef struct {int32 cnt;uChar str[1];} LStr, *LStrPtr, **LStrHandle;cnt 就是含有多少个字符,str 这个指针所指的就是数据区的第一个字符。

LabVIEW 8.6报表工具包生成和调用DLL问题分析及对策

LabVIEW 8.6报表工具包生成和调用DLL问题分析及对策

LabVIEW 8.6报表工具包生成和调用DLL问题分析及对策摘要:针对LabVIEW8.6调用报表工具包生成的DLL过程中出现“NI_Word.lvclass”路径无法找到的问题,做了详细描述和分析,并提供了相应的解决方案。

关键词:LabVIEW 8.6 Word 动态链接库报表工具包面向对象LabVIEW是美国国家仪器(NI)公司推出的专门用于虚拟仪器开发的图形化软件编程平台,吸引了大批开发者追随,NI也根据市场需求每年推出一个新版本。

但新技术的引用不可避免的也带来了新的问题和BUG,尤其是升级后,很多硬件驱动不得不更新。

LabVIEW 8.6版本是NI推出的所有版本中,大部分用户公认比较成熟稳定的版本。

NI 报表工具包从1.1.3开始采用面向对象技术,重新设计,1.1.3和1.1.4版本是专为LabVIEW 8.6而定制使用的,而以前的版本如1.1.1、1.1.2(面向过程技术)在LabVIEW 8.6下与自带的Report函数不兼容。

1 问题描述应用开发环境以及报表工具包版本:LabVIEW 8.6 + Report Generation Toolkit 1.1.3。

在LabVIEW 8.6新建工程项目文件,并按照图1和图2建立相应的VI和文件。

当运行main.vi或Main.exe时,出现下面(图3)报错框。

而单独运行1.vi或1.exe时,却能正常运行。

2 问题分析根据问题报错框描述,问题可能出现在“Get LV Class Default Value.vi”的上一层文件“Word class path.vi”传递出的NI_Word.lvclass 路径,图4为报表工具包自带的“Word class path.vi”程序框。

利用LabVIEW自带诊断和调试工具,可获得“Word class path”显示的文件路径,如表1所示。

(1)当运行main.vi时,由于是“Develo- pment system”环境下,根据路径的分离规则,“NI_Word.lvclass”文件路径应在当前DLL文件的下层目录,并且布尔量选择为False,即“..\1.dll\word\ NI_Word.lvclass”。

LABVIEW的DLL与API调用

LABVIEW的DLL与API调用

LABVIEW的DLL与API调用LABVIEW的DLL与API调用一.实验目的1.熟悉LabVIEW调用动态链接库的过程2.学会编写用LabVIEW调用WINDOWS的API函数二.实验器材1.计算机(带有声卡)2.LABVIEW8.20软件三.实验原理在开发自动测量系统时,经常遇到计算机与仪器的通信问题,涉及仪器控制及数据处理问题,LabVIEW语言在这一领域的应用有着独到的优势。

为了在LabVIEW中能够充分利用其他编程语言的优势,LabVIEW提供了外部程序接口能力,包括动态链接库(DLL)、C语言接口(CIN)、ActiveX和Matlab等。

动态链接库是基于Windows程序设计的一个非常重要的组成部分。

LabVIEW 开发中使用DLL,可以使代码更简洁,内存资源的使用更经济,而且可以便捷地利用仪器厂商或第三方提供的仪器控制子程序加速开发进程。

而windows平台包含有大量的API函数,这些API函数提供了大量在Windows环境下可操作的功能,它们位于Windows系统目录下的多个DLL文件中,因此在LabView中调用API 函数和DLL的方法是一致的。

在LabVIEW中,利用库函数节点可以较容易地实现对DLL的调用,从而提高了程序的开发效率。

使用调用库函数节点,可以调用Windows标准的动态连接库,也可以调用用户自己编制的DLL。

LabView中动态链接库的调用可在程序框图的函数选板中选取“调用库函数节点”来完成,该节点位于:互连接口->库和可执行程序->调用库函数节点。

将选择好的调用库函数节点图标放在程序框图中,然后通过对它的节点图标进行配置,可以指定DLL模块中与LabVIEW数据交换的相应的驱动函数。

在调用DLL时,首先要找到找到头文件(*.h)或者函数原型声明,确定你需要调用的函数,注意函数的参数是否包含了原始数据类型参数比如int,char, double,等等或者是否包含了复杂数据类型比如clusters。

VC调用labview生成的DLL

VC调用labview生成的DLL

VC调用LabVIEW生成的DLL文件刚才介绍了LabVIEW调用DLL文件的方法,使用VC调用LabVIEW生成的DLL 文件也很简单。

还是以之前生成Scale 的DLL文件为例,不同的是采集电压程序使用的是C语言的例程,但和LavVIEW实现的功能相同。

首先将先前生成Scale DLL文件时,路径下所有的文件全部复制粘帖到C语言例程的文件夹下。

打开连续采集程序,点击状态栏的Project——Settings,在Project Settings对话框中加载入Scale.lib的静态链接库。

在程序中键入#include "Scale.h",以便引入该DLL函数。

下面是C程序的代码,功能是有限点采集电压,通过Scale.dll文件实现采样值放大10倍的功能。

加粗部分是因为调用DLL文件所做的改动。

#include <stdio.h>#include "NIDAQmx.h"#include "Scale.h"#define DAQmxErrChk(functionCall)if( DAQmxFailed(error=(functionCall)) ) goto Error; elseint main(void){int32 error=0;TaskHandle taskHandle=0;int32 read;float64 data[1000];char errBuff[2048]={'\0'};int i=0;double x10=0;/*********************************************/// DAQmx Configure Code/*********************************************/DAQmxErrChk (DAQmxCreateTask("",&taskHandle));DAQmxErrChk(DAQmxCreateAIVoltageChan(taskHandle,"Dev1/ai0"/*Config correct device*/,"",DAQmx_Val_Cfg_Default,-10.0,10.0,DAQmx_Val_Volts,NULL));/ /DAQmxErrChk(DAQmxCfgSampClkTiming(taskHandle,"",10000.0,DAQmx_Val_Rising,DAQmx_V al_FiniteSamps,1000));/*********************************************/// DAQmx Start Code/*********************************************/DAQmxErrChk (DAQmxStartTask(taskHandle));/*********************************************/// DAQmx Read Code/*********************************************/DAQmxErrChk(DAQmxReadAnalogF64(taskHandle,1000,10.0,DAQmx_Val_GroupByChannel,dat a,1000,&read,NULL));printf("Acquired %d points\n",read);for(i=0;i<1000;i++){Scale(data[i], &x10);printf("the %d Value is : %f \n",i,x10);}Error:if( DAQmxFailed(error) )DAQmxGetExtendedErrorInfo(errBuff,2048);if( taskHandle!=0 ) {/*********************************************/// DAQmx Stop Code/*********************************************/DAQmxStopTask(taskHandle);DAQmxClearTask(taskHandle);}if( DAQmxFailed(error) )printf("DAQmx Error: %s\n",errBuff);printf("End of program, press Enter key to quit\n");getchar();return 0;}所以,使用LabVIEW不仅可以方便地调用各种编译软件生成的DLL文件,自己也能生成DLL文件供其他编译软件调用。

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

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

在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环境下运行。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

如何使用LabVIEW生产dll文件
在此需要首先说明的是dll的调用就是子函数的调用,所以首先要明白在LabVIEW中子VI 的含义,如果大家知道了什么是子VI那么咱们就开始了。

第一步,建立一个项目,这个比较简单就不附图了。

第二步,在已经建立的项目里面建立一个简单的VI作为子VI,在此一定要将其输入和输出端标出,如图1所示
注意右上角的连接处。

第三步,在程序生产规范里面选择新建——共享库,得到如图2所示的界面
第三步,定义VI原型,在第二步执行之后会出现一个属性对话框选择源文件就可以将需要
生产dll的文件加载进去,同时生产定义VI原型对话框,查看一下是否和你的原VI一致。

第四步,点击生产dll就可以了。

置于如何调用dll网上有很多例子,这里只附图说明一下。

双击调用函数库节点出现下图
选择需要调用的dll的位置以及函数名称,有些dll还需要你自己配置参数,这里需要说明一下这些参数最好都是英文的。

最后在输入输出端连线就可以了。

相关文档
最新文档