Labview调用C语言、Matlab脚本节点以及库函数节点的方法

合集下载

用LABVIEW调用C语言的方法

用LABVIEW调用C语言的方法
用 labview 调用 c 语言其实是一件挺简单的是, 下面我们通过一个求两个数的相 加来一步步的介绍怎样来调用 C 语言, 只要大家按照步骤一步一步的来一定会功 的,加油! LabVIEW 中使用 CIN 节点调用 C 语言 CIN (Code Interface Node) 节点是 LabVIEW 中用来调用 C/C++代码的功 能节点。它与动态链接库的不同之处在于,它能够将代码集成在 VI 中作为单独 的一个 VI 发布,而不需要多余的文件。另外,它提供了函数入口,它可以根据 用户提供的输入输出自动生成函数入口代码, 从而使用户专心关注代码功能而不 用为函数声明、定义等语句费心。因此 CIN 节点与 DLL 在不同的场合有不同的 优势,但是 CIN 节点的使用比调用 DLL 要复杂得多。 由于 LabVIEW 中数据的存储格式遵循了 C 语言中数据的存储格式,并且二 者完全相同,所以用户可以向 CIN 传递任意复合的数据结构。另外,CIN 比图 形化语言可获得更高的执行效率。 注意:对于完全相同的代码,CIN 和 DLL 的执行效率是完全一样的。 如果要使用 CIN 节点,你必须安装了 C 编译器。在 Windows 下,CIN 支持 以下编译器: Microsoft Visual C++ Symantec C CIN 节点必须调用.lsb 文件。.lsb 文件是通过外部编译器与 CINTools 工具结 合将 C 代码编译生成的。 下面我们通过一个两数相加的实例来看如何在 LabVIEW 中实现 CIN 节点调 用,本例所用外部编译器为 Microsoft Visual C++ 6.0。 例 18.6 利用 CIN 节点实现加法运算 第一步:在程序框图放置一个空 CIN 节点; CIN 节点位于程序框图的互连接口->库与可执行程序->代码借口节点。 第二步:创建 CIN 节点的输入输出端口; 初始情况下,CIN 只有一对端口:一个输入端口和一个输出端口。向下拉大 节点边框或右击节点端口选择增加参数,可以为节点增加输入输出端口。CIN 节 点的端口都是成对出现的,因为 CIN 节点端口传递的是指针,所以该参数既可 以作为输入又可以作为输出。 如果不需要输入, 则可以右击该输入端口选择仅可 输出,这时候该对端口的左侧端口变为灰色,表明这对端口仅用作输出。 本例实现的功能为 c=a+b,因此需要两个输入端口:a,b;一个输出端口 c。 设置好端口后,在前面板窗口创建两个数值输入控件(分别命名为 a 和 b) 和一个数值显示控件(命名为 c)。分别将 a,b 与输入端口连接,c 与输出端口 连接,如图 18.9 所示。可以看到,端口会自动根据输入参量的类型与之匹配。 虽然控件与端口已经连接,但是此时的 CIN 节点并不具备任何功能,因为它 还没有装载.lsb 文件。因此此时 VI 是不可运行的,即运行按钮处于断开状态。 下面的任务就是创建.c 源文件,并编译为.lsb 文件,最后加载到节点上。 第三步:创建.c 源文件

LabVIEW调用库函数节点技术

LabVIEW调用库函数节点技术

LabVIEW调用库函数节点技术LabVIEW提供了调用库函数节点(Call Library Function node,简称CLF),利用CLF,可以在LabVIEW中实现DLL和API函数的调用。

在LabVIEW中使用CLF 需要了解动态链接库里被调用的函数名称、功能及其输入输出参数等,下面将详细介绍在LabVIEW 8.6下利用CLF调用6050运动控制卡基于C语言编写的驱动程序[41]。

首先在框图程序中创建一个空的CLF,CLF位于“函数模板→互连接口→库与可执行程序子模板”,如图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。

LabVIEW与MATLAB联合编程

LabVIEW与MATLAB联合编程

LabVIEW与MATLAB联合编程
LabVIEW与MATLAB的联合编程⼀般可以通过2种⽅式进⾏:
1. 公式节点[Formula Node]
2. MATLAB脚本节点[MATLAB script node]
1. 公式节点[Formula Node]
位置:函数选板->数学->脚本与公式->公式节点
在程序框图上计算数学公式和类似于C语⾔的表达式。

可在公式中使⽤下列内置函数:abs、acos、acosh、asin、asinh、atan、atan2、atanh、ceil、cos、cosh、cot、csc、exp、expm1、floor、getexp、getman、int、intrz、ln、lnp1、log、log2、max、min、mod、pow、rand、rem、sec、sign、sin、sinc、sinh、sizeOfDim、sqrt、tan和tanh。

2. MATLAB脚本节点[MATLAB script node]【推荐√】
位置:函数选板->数学->脚本与公式->脚本节点-> MATLAB脚本节点
调⽤MATLAB®软件脚本服务器执⾏脚本。

这意味着我们可以采⽤MATLAB语⾔进⾏编程。

下⾯⽤⼀个例⼦展⽰如何使⽤MATLAB脚本节点:
我们需要产⽣⼀个正弦信号,程序框图如下所⽰
结果前⾯板所⽰
注意:在退出LabVIEW前,请不要⾃⾏关闭MATLAB窗⼝。

labview matlab script 用法

labview matlab script 用法

labview matlab script 用法
LABVIEW可以通过调用MATLAB Script节点来调用MATLAB脚本。

具体步骤如下:
1. 在LabVIEW中打开一个VI。

2. 在Block Diagram中右键单击空白区域,选择Functions»Programming»MATLAB Script。

3. 在弹出的对话框中,选择“Script”选项卡,然后输入要调用的MATLAB脚本的文件路径和文件名。

4. 在“Inputs”选项卡中,可以设置输入参数。

5. 在“Outputs”选项卡中,可以设置输出参数。

6. 单击“OK”按钮,将MATLAB Script节点添加到Block Diagram中。

7. 连接输入和输出参数。

8. 运行VI,LabVIEW将调用MATLAB脚本并返回结果。

在使用LABVIEW和MATLAB Script时,还需要注意路径设置和函数声明问题。

如果在脚本文件中有使用相对路径或pwd函数,需要进行修改。

一般可通过如下步骤进行修改:
1. 通过MATLAB Script中添加输入端子,并将数据类型设置为路径,再通过LabVIEW 的路径控件将LabVIEW当前工作目录传递给MATLAB Script。

2. 通过addpath函数将传递进来的文件夹路径添加至当前MATLAB会话的顶层。

3. 通过fullfile函数建立以当前工作目录为基础的完整文件路径。

在MATLAB Script中不能直接进行函数定义,需要将函数定义部分内容迁移至m文件中。

LABVIEW中调用C的方法和CIN节点的配置

LABVIEW中调用C的方法和CIN节点的配置

LABVIEW中调用C的方法和CIN节点的配置LABVIEW中调用C的方法和CIN节点的配置CIN概述CIN是一个位于LabVIEW框图程序窗口的带有输入输出端口的图标。

用户可将需调用的外部代码编译成LabVIEW所能识别的格式后与此结点相连,当此结点执行时,LabVIEW将自动调用与此结点相连的外部代码,并向CIN传递特定数据结构。

使用CIN技术,用户可向CIN 传递任意复合的数据结构,并且通常情况下,使用CIN可获得较高的程序效率,因为LabVIEW中数据的存储格式遵循了C语言中数据的存储格式,二者完全相同。

CIN源代码对编译器有严格的限制,且因LabVIEW用于不同的操作系统平台而异。

LabVIEW支持Windows95,WindowsNT, HP-UX等多种操作系统平台。

LABVIEW中通过与C语言的接口图标来调用C,LABVIEW与C 语言的接口图标是CIN节点。

可在help中搜索cin即可得到该节点CIN的设计方法确定CIN节点的输入、输出个数和参数类型。

CIN输入(输出)口参数的数据类型由连接在输入(输出)口上的控件的数据类型决定。

(1)生成C源代码编辑格式文件。

(2)在C源代码编辑格式文件的规定位置添加C源代码。

(3)编辑*.C文件源代码,生成可执行文件。

(4)装载编译好的可执行文件,这样就基本上形成了一个具备一定功能的CIN图标。

3应用例子通信系统中,CRC编码是非常常用的一种编码方式。

在LABVIEW 中实现比较复杂和困难。

因此,采用C语言编写CRC校验码,在LABVIEW中利用CIN节点进行调用。

3.1生成C源代码编辑格式文件(*.c文件)的代码框架生成C源代码编辑格式文件(*.c文件)的代码框架的步骤如下所述。

首先,从CIN图标的快捷菜单中选择Create.c File项,弹出一个文件存储对话框,键入文件名(本例中文件名设为“crc.c”),则生成C语言代码框,然后打开。

在LabVIEW中调用MATLAB的一种方法_张志平

在LabVIEW中调用MATLAB的一种方法_张志平

文章编号:100622475(2004)0520094202收稿日期:2003209202作者简介:张志平(19732),男,河北饶阳人,华东交通大学机电工程学院硕士研究生,研究方向:设备状态监测与故障诊断;刘正平(19632),男,湖南桃江人,副教授,硕士,研究方向:机电设备状态监测与故障诊断。

在LabVIEW 中调用MAT LAB 的一种方法张志平,刘正平(华东交通大学机电工程学院,江西南昌 330013)摘要:LabVIEW 和M AT LAB 是目前工程技术领域中比较流行的两种软件,功能强大但又各自存在着不足,本文介绍了在LabVIEW 中通过M AT LAB Script 节点调用M AT LAB 应用程序的方法及注意事项,从而实现扬长避短,更好发挥各自的长处,例程运行的结果证明这种调用可以很好地实现,并且,这种调用的实现为开发一些大型的系统提供了有力的工具。

关键词:LabVIEW 语言;M AT LAB 语言中图分类号:TP31 文献标识码:AA Method of C alling MAT LAB in LabVIEWZH ANG Zhi 2ping ,LI U Zheng 2ping(School of Mechanical and E lectronical Engineering of East China Jiaotong University ,Nanchang 330013,China )Abstract :LabVIEW language and M AT LAB language are m ost popular tw o kinds of s oftware in engineering technique fields today ,al 2though their functions are very strong ,there are s ome disadvantages.This paper introduces how to call M AT LAB in LabVIEW with M AT 2LAB Script and s ome should be noticed things ,s o ,it can fully exert their advantages.The result proves calling M AT LAB in LabVIEW can be com pleted per fectly ,furtherm ore ,it provides power ful tool to design s ome larger systems.K ey w ords :LabVIEW language ;M AT LAB language0 引 言LabVIEW 和MAT LAB 语言是各自领域中较有代表性的两种软件。

Labview中调用matlab的两种方法

Labview中调用matlab的两种方法

Labview中调用matlab的两种方法鉴于LabVIEW和MATLAB的优点,本文介绍了通过ActiveX技术,在LabVIEW(Ver6.1)中调用和操作MATLAB(Ver6.5)的方法,实现LabVIEW和MATLAB的混合编程,充分发挥两者的优势。

先说一下两种方法的优缺点:2.3 两种调用方法的比较(1)MATLAB Script节点具有多输入、多输出的特点,一次处理的信息量要以很大。

MATLAB脚本可以先在MATLAB下调试。

无误后再导入到MATLABSeript节点中。

MATLAB Script节点对输入、输出数据的类型有明确的要求。

只有LabVIEW中的数据类型与MATLAB中的数据型相匹配,才能进行数据传输。

使用MATLAB Script节点的方法,快捷方便,但不利于较大的应用程序开发。

当需要使用时,可将其模块化,采用主程序动态加载。

(2)使用ActiveX函数模的方法,具有对MATLAB更强的控制能力。

如随时打开和关闭MATLAB,隐藏在务栏中的MATLAB图标,与MATLAB进行字符数组传输,这些都是MATLAB Script节点都不具有的。

使用ActiveX函数模板时,经常会遇到数据类型的转换,尤其是变体(Variant)与其他类型的转换。

当高用大型算法时,必须明确输入、输出数据的具体类型,而且要尽量减少数据传输量和启动MATLAB自动化服务器的次数ActiveX函数模板,适于较大的应用程序开发。

在LabVIEW顺序结构中,不提供使用。

原因是顺序结构妨碍了作为LabVIEW优点之一的程序并行运行机制,而且MATLAB自动化服务器启动也需要一定时间,这会使整个程序不能及时处理其它的用户操作。

总之,两种调用方法其自身的优势和不足。

在开发一个大的复杂应用程序时,综合不同的应用要求,合理选择可以显著提高开发效率。

采用虚拟仪器技术,通过LabVIEW构建测试仪器开发效率高、可维护性强、测试精度、稳定性和可靠性能够得到充保证;具有很高的性价比,节省投资,但于设备更新和功能扩充。

Labview调用VC

Labview调用VC

Labview调用VC对初学者来说来个比较详细的包含步骤例子是难得的,我来个简单的小例子,希望对您有用,呵呵!!!1。

建立动态连接库的C 代码调用1.1 建立函数原形1)后面框图程序中,调用CLF 节点;2)配置一个函数原形,设置调用规程为C,其它不变,确定,退出;3)右键CLF 节点,create C file,保存名字为code.cpp,以供VC++编译使用;1.2 编辑源代码文件1)将所需要的labview 头文件复制到code.cpp 所在目录中,包括:extcode.h platdefines.h fundtype.h;2) 打开code.cpp,添加关键词extern c 、_declspec(dllexport)并包装;然后输入函数的功能代码,如果1 个dll 里面需要多个函数,则需要声明多个函数的原形。

2。

VC++中编译产生dll1)建立project ,fileànew-> win32 Dyna,mic Link Library,输入工程名,选择an empty dll project;2)添加code.cpp 到source file,添加extcode.h platdefines.h fundtype.h 到head files 里面;3)设置dll 参数projectàsettingsàc/C++中设置参数:category: code generation ;根据函数要求可以选择1Byte4 Byte 8Byte,采用默认就可以;multithread;其余默认可以;自己也可以微调;4)BuildàBuild code.dll;5)Ok。

【精品】用LabVIEW的节点实现MATLAB脚本运算

【精品】用LabVIEW的节点实现MATLAB脚本运算

用LabVIEW的节点实现MATLAB脚本运算已有416次阅读2011-2—2623:41|个人分类:LabVIEW文章|LabVIEW是LaboratoryVirtualInstrumentEngineeringWorkbench(实验室虚拟仪器集成环境)的简称,是由美国国家仪器公司(NationalInstruments,NI)推出的一个功能强大而又灵活的仪器和分析软件应用开发工具。

LabVIEW程序称为虚拟仪器或简称为VI,每个VI都由前面板和框图程序以及图标/连接端口三部分组成。

LabVIEW不同于基于文本的编程语言(Fortran和C),它是一种图形编程语言——通常称为G编程语言,其编程过程就是通过图形符号描述程序的行为。

LabVIEW使用的是科学家和工程师们所熟悉的术语,还使用了易于识别的构造G语言的图形符号。

即使具有很少编程经验的人也能学会使用LabVIEW,并能够发现和了解一些有用的基本编程原则。

LabVIEW是工程人员开发虚拟仪器常用的一种软件工具。

它有以下特点:(1)图形化的编程方式,设计者无需写任何文本格式的代码,是真正的工程师的语言;(2)提供丰富的数据采集、分析及存储的库函数;(3)既提供了传统的程序调试手段,如设置断点,单步运行,同时提供独到的高亮执行工具,使程序动画式运行,利于设计者观察到程序运行的细节,使程序的调试和开发更为便捷;(4)32bit的编译器编译成32bit的编译程序,保证用户数据采集,测试和测量方案的高速执行;(5)囊括了PCI、GPIB、PXI、VXI、RS232/485在内的各种仪器通信总线标准的所有功能函数,使得不懂得总线标准的开发者也能够驱动不同总线标准的接口设备与仪器;(6)提供大量与外部代码或软件进行连接的机制,诸如DLL(动态连接库)、DDE(共享库),ActiveX等;(7)强大的Internet功能,支持常用的网络协议,方便网络、远程测控仪器的开发。

基于DLL的LabVIEW与VC、Matlab混合编程

基于DLL的LabVIEW与VC、Matlab混合编程

操作 , 不擅 长于 完成大 量数据 处理 的任 务 。而 Vs a i l u C + 方便 、高 效 地 与系统 及 底层 硬 件 直接 交换 数 +可
据 , t b提 供 了 多 种 功 能 强 大 的 工 具 箱 ,在 信 号 和 Mal a
②在 D L 目中添加输出函数 L项
D L是包含若 干个 函数的库 文件 , L 应用 程序在 使

ห้องสมุดไป่ตู้
lm d
l = , =



_
、、
马 芳 。 张红 民 , 王 月 浩 , 马 金 超
( 江 大 学 计 算 机 科 学 学 院 ,荆 州 4 4 2 ) 长 3 0 3
摘 要 :针 对在 NI 司推 出 的 L b E 开 发 环 境 下 访 问底 层 硬 件 和 数 据 处 理 能 力 方 面 的 不 足 , 用 了 公 aVIW 采
维普资讯
实 践 s经 验


。~
i i {: 】il 一 — —~ —~ ~ I i : —— — ~~ ~ h; ! ——— : i 1l j : —— ~ ~ ~ 厶 匿 考… 槲 絮 / 一/
一一~一 一一 一 一 一 一~…— — ~ ・ —— :
利 用 V sa C + 供 的 向导功 能 可 以很 容 易地 i l +提 u
建 立 一 个 不 完 成 任 何 实 质 任 务 的 D L, 要 的 任 务 是 L 主 如 何 给 D L添 加 功 能 。 L
开 发 数 据 检 测 、 据 测 量 采 集 系 统 、 业 自动 控 制 系 数 工 统 和数 据 分 析 系 统 等 领 域 , 虚 拟 仪 器 系 统 的 主 要 开 是

labview调用matlab函数

labview调用matlab函数

labview调用matlab函数的实现一、用matlab生成dll1 、mcc编译环境设置在桌面上右键单击“我的电脑”图标出现以下菜单,单击“属性”菜单项,出现“系统特性”对话框,单击“高级”选项卡,如下图所示在上图中,单击“环境变量”按钮,出现“环境变量”对话框,添加系统变量matlab 值为F:\Matlab\R2012b 即matlab2012 的安装路径,如下图所示在环境变量path 中添加f:\MATLAB\R2012b\bin\win32:f:\MATLAB\R2012b\runtime\win32;如下图所示按“确定”完成设置后,重启计算机或注销当前用户,即可应用新设置。

2 、Matlab2012 编译器设置(1) mex 命令设置(a) 运行Matlab ,在Matlab 的命令窗口(Command Window) 键入“ mex -setup ”命令后,按回车键,安装Matlab 编译器;(b) 命令窗口出现如下提示:Welcome to mex -setup. This utility will help you set upa default compiler. For a list of supported compilers, see/support/compilers/R2012b/win32.htmlPlease choose your compiler for building MEX-files:Would you like mex to locate installed compilers [y]/n?此时键入”y” ,按回车;(c) 命令窗口出现如下提示:Select a compiler:[1] Lcc-win32 C 2.4.1 in F:\Matlab\R2012b\sys\lcc[2] Microsoft Visual C++ 2005 SP1 in D:\Program Files\Microsoft Visual Studio 8[0] None此时键入” 2” ,按回车;选择Microsoft Visual C++ 2005的编译器(d) 命令窗口出现如下提示:Please verify your choices:Compiler: Microsoft Visual C++ 2005 SP1Location: D:\Program Files\Microsoft Visual Studio 8Are these correct [y]/n?此时键入”y” ,按回车;确认选择Microsoft Visual C++ 2005 的编译器(2) mbuild 命令设置(a) 运行Matlab ,在Matlab 的命令窗口(Command Window) 键入“ mbuild -setup ”命令后,按回车键,安装Matlab 编译器;(b) 命令窗口出现如下提示:Welcome to mbuild -setup. This utility will help you set upa default compiler. For a list of supported compilers, see/support/compilers/R2012b/win32.htmlPlease choose your compiler for building shared libraries or COM components:Would you like mbuild to locate installed compilers [y]/n?此时键入”y” ,按回车;(c) 命令窗口出现如下提示:Select a compiler:[1] Lcc-win32 C 2.4.1 in F:\Matlab\R2012b\sys\lcc[2] Microsoft Visual C++ 2005 SP1 in D:\Program Files\Microsoft Visual Studio 8[0] NoneCompiler:此时键入” 2” ,按回车;选择Microsoft Visual C++ 2005 的编译器(d) 命令窗口出现如下提示:Please verify your choices:Compiler: Microsoft Visual C++ 2005 SP1Location: D:\Program Files\Microsoft Visual Studio 8Are these correct [y]/n?此时键入”y” ,按回车,确认选择Microsoft Visual C++ 2005 的编译器,编译器设置完成。

在LabVIEW中使用MATLAB脚本节点

在LabVIEW中使用MATLAB脚本节点

1 LabVIEW和MATLAB简介1.1 LabVIEWLabVIEW是Laboratory Virtual InstrumentEngineering Workbench (实验室虚拟仪器工程平台)的简称,是由美国NI公司(NationalInstruments, 国家仪器公司)创立的一个功能强大而又灵活的仪器和分析软件应用开发工具,在实验测量、工业自动化和数据分析领域起着重要作用。

它是工程人员开发虚拟仪器常用的一种软件工具。

它有以下特点:(1)具有图形化的编程方式,基于G语言来开发,设计无需写任何文本格式的代码,是真正的工程师的语言;(2)提供丰富的数据采集、分析及存储的库函数;(3)提供传统的程序调试手段,如设置断点、单步运行,同时提供独具特色的执行工具,使程序动画式运行,利于设计者观察到程序运行的细节,使程序的调试和开发更为便捷;(4)32位的编译器生成32位的编译程序,保证用户数据采集、测试和测量方案的高速执行;(5)囊括了PCI、GPIB、PXI、VXI、RS-232/485、USB等各种仪器通信总线标准的所有功能函数,使得不懂得总线标准的开发者也能够驱动不同总线标准的接口设备与仪器;(6)提供大量与外部代码或软件进行连接的机制,诸如DLL、DDE、ActiveX等;(7)具有强大的Internet功能,支持常用的网络会议,方便网络、远程测控仪器的开发。

1.2 MATLABMATLAB 是英文MATrix LABoratory(矩阵实验室)的缩写,是由美国Math Works 公司开发的一种功能强、效率高、简单易学的数学软件。

它在科技应用软件中备受瞩目。

因为它有可靠的数值计算和符号计算功能、强大的绘图功能、简单易学的语言体系以及为数众多的应用工具箱。

把LabVIEW软件平台与 MATLAB 相结合使用,无疑将使虚拟仪器的数据处理功能更加强大。

2 调用MATLAB脚本节点的实现2.1 调用过程实现的技术依托LabVIEW使用ActiveX技术来实现MATLAB脚本节点。

LabVIEW与Matlab接口的方法

LabVIEW与Matlab接口的方法

仪器技术相互结合、 渗透的产物。在虚拟仪器系统中, 数 据的分析处理、 控制、 结果输出和用户界面等功能都由软 件完成, 硬件仅仅是为了解决信号的输入输出, 因此, 软 件是整个仪器系统的核心, 从某种意义上可以说: “软件 即仪器” 。虚拟仪器系统的软件设计可以采用通用的可 视化编程语言, 如 $./0"* 1
在前面板中输入任意积分上下限和初始条件, 运 行后均可得到相应的结果。图 / 是按本文例子中的给 定条件运行的结果, 从中可以看出两种计算方法的区 别。
.-
万方数据
/01*’22 3451635&17 &725046’7535&17,%89: !-,78: ), 6#;: ,!,,.
图/ 前面板
)
结论
在 1&)2345 环境中调用 %&’(&) 语言简单可行, 并
能够扩展 1&)2345 功能。该两种语言混合编程, 一方 面可应用 1&)2345 强大的 A 语言的编程方法, 提高开 发数据采集、 工业控制等虚拟系统的效率; 另一方面可 利用 %&’(&) 能够进行复杂数值计 算的 优势大 大增强 特 别 适 合 大 型 复 杂 测 控 系 统 的 开 发。 1&)2345 功效, 以上例子的 23 程序在 1&)2345 B#= 和 %&’(&)B #C 语言 以及中文 59D+*EF GH 环境中运行通过。
"
#$%&’() 的功能及特点
!"#$%&’ 是 9% 公司推出的一种虚拟仪器软件开
发平台, 自 BC+D 年正式推出, 经过短短不到 BE 年的时 间, 已经发展到以最新板本 !"#$%&’D FB 为核心, 包括 控制与仿真、 高级数字信号处理、 统计过程控制、 模糊 控制和 G%5 控制等众多 附加 软 件 包, 运 行 于 ’.;?:@/ 9H A C+、 !.;0I、 ("4.;):/8、 J0; 和 KG L MN 等多种平台的 工业标准软件开发环境。 通信、 汽车、 半导体和 !"#$%&’ 在包括航空航天、 生物医学等众多领域内得到了广泛的应用。其最大的 特色是采用编译型图形化编程语言— — — O 语言 ( O<"78> , 即用户设计好程序的大体框架后, 如同 G<: P<"==.;P) 画流程图一般, 只需将系统提供的各种图形化功能模 块连接起来, 就可得到所需的应用软件。 !"#$%&’ 中 的程序称为 $%( Q.<)0"* .;/)<0=6;)/) , 每个 $% 都由前面 板和框图程序以及图标 A 连接端口三部分组成。 除了具备其它编程语言所提供 的 常规 函 数 功能 外, !"#$%&’ 内部还集成了大量的生成图形界面的模 板, 如各种表头、 旋钮、 开关、 图表等; 丰富 !&5 指示灯、 各种滤 实用的数值分析、 信号处理功能, 如 RRH 变换、

Labview调用库函数节点方法(共11页)

Labview调用库函数节点方法(共11页)

Labview调用(diàoyòng)库函数节点(调用DLL)相对于CIN来讲,NI更推荐用户使用DLL来共享基于文本编程语言开发的代码。

除了共享和重复利用代码,开发人员还能利用DLL封装软件的功能模块,以便这些模块能被不同开发工具利用。

在labview中,使用DLL一般(yībān)有以下几种途径:(1)使用自己(zìjǐ)开发DLL中的函数。

(2)调用操作系统或硬件驱动供应商提供的API。

对于前一种方法来说,又可以通过以下几步实现:(a)在labview中定义DLL原型;(b)生成.C或.C++文件,完成实现函数功能的代码并为函数添加DLL导出声明;(c)通过外部IDE(如VC++)创建DLL项目并编译生成.dll文件。

下面的内容将具体讲解:配置Call library function node (CFN)无论在labview中使用自己开发的DLL,或者硬件驱动供应商(操作系统)提供的API,都可以通过配置CFN来完成。

如下图在CFN图标的右键菜单选择“配置”,打开配置对话框,通过该对话框,可以指定动态库存放路径、调用函数(hánshù)名以及传递给函数的参数类型和函数返回值的类型。

在配置完成后,CFN节点会根据用户的配置自动更新其显示。

通过browse按钮或者直接(zhíjiē)在library name or path输入框中指定调用函数多在.dll文件的路径。

通过browse按钮下的控件用户可以指定多个线程同时调用DLL。

默认情况下,labview以run in UI Thread方式调用DLL,调用的函数将直接在用户线程中运行。

另外(lìnɡ wài)一种方式是递归方式reentrant,在这种情况下可以允许多个线程同时调用DLL中的函数。

但要确保正常调用,必须使dll 中的代码线程安全。

在“Function Name”输入框中指定要调用函数的函数名。

利用Labview调用Matlab脚本节点

利用Labview调用Matlab脚本节点

利用Labview调用Matlab脚本节点利用Labview调用Matlab脚本节点Matlab脚本节点的介绍Matlab脚本节点位于函数面板的“数学→脚本与公式→脚本节点→Matlab脚本节点”。

由于Matlab脚本节点中的脚本完全是Matlab 中的M文件,运行Matla 脚本节点时会启动Matlab,并在Matlab 中执行脚本内容,其支持的函数由Matlab 来提供。

Matlab脚本节点可以通过增加输入输出端子来实现LabVIEW和Matlab脚本节点交互数据。

方法为:右击节点边框,选择Add Input 或者AddOutput选项;可以手动输入M文件,也可以导入或者导出M文件。

方法为:右击节点边框,选择Import或者Export选项。

利用LabVIEW调用Matlab实例在实例中,我们将完成两个实验:一个简单的加法运算,x,y为输入的两个加数,z为输出的求和值;一个三维曲面的显示,通过改变三维曲面数值,可以展示曲面的不同形状。

程序前面板如下图(1)利用matlab节点实现简单运算①函数面板的“数学→脚本与公式→脚本节点”,将Matlab脚本节点放置在合适的位置。

②单击工具选板上的,在Matlab Script Node中单击即可以编辑M脚本。

③在Matlab Script Node中输入如下语句:z=x+y;④在Matlab Script Node框图左侧上单击鼠标右键,选择“添加输入”,在出现的方框中输入x;重复操作,在方框中输入y。

注意:在Matlab Script Node中有几个输入变量,则需要添加几个输入。

⑤在Matlab Script Node框图右侧上单击鼠标右键,选择“添加输出”,在出现的方框中输入z。

注意:此时只有一个输出变量,故只添加一个输出变量。

⑥在前面板中选择“控件→新式→数值”,选择数值输入控件,将其放在前面板的合适位置。

重复上述操作,将第二个数值控件放在前面板的合适位置。

LabVIEW中的MATLAB和Python集成

LabVIEW中的MATLAB和Python集成

LabVIEW中的MATLAB和Python集成MATLAB和Python是两种广泛使用的科学计算和数据分析工具。

它们各自具有独特的特性和优势,而LabVIEW作为一种图形化编程语言和开发环境,具备了强大的数据采集、处理和可视化功能。

为了充分发挥各自的优势,将MATLAB和Python集成到LabVIEW中,可以提供更加全面且高效的解决方案。

一、MATLAB集成在LabVIEW中,通过MATLAB Script节点和MATLAB矩阵和数组等工具包,可以直接调用MATLAB函数和脚本。

MATLAB Script节点允许将MATLAB代码嵌入到LabVIEW图形化程序中,并通过输入和输出引脚实现与LabVIEW程序的数据交互。

使用MATLAB集成的优势主要有以下几点:1. 强大的数值计算和算法库:MATLAB拥有丰富的数学函数和算法库,可以方便地进行数据分析、信号处理、图像处理等工作。

将MATLAB集成到LabVIEW中,可以直接调用这些函数和工具,充分利用MATLAB在科学计算领域的强大优势。

2. 简洁的语法和高效的编程环境:MATLAB具有简洁易懂的语法和强大的交互式编程环境,可以快速实现原型设计和算法验证。

在LabVIEW中,通过MATLAB Script节点,可以直接编写MATLAB代码,并结合LabVIEW的数据采集和控制功能,实现对实验数据的实时处理和分析。

3. 丰富的工具箱和应用程序:MATLAB提供了大量的工具箱和应用程序,包括信号处理、图像处理、控制系统设计等领域,可用于各种科学计算和工程应用。

集成MATLAB到LabVIEW中,可以直接使用这些工具箱和应用程序,加快开发速度并提高系统性能。

二、Python集成与MATLAB类似,LabVIEW也提供了对Python的集成支持。

通过Python节点和Python模块,可以在LabVIEW中调用和执行Python脚本,并实现与LabVIEW程序的数据交互。

LabVIEW调用库函数节点

LabVIEW调用库函数节点

LabVIEW调⽤库函数节点⼀、dll⽂件的创建dll⽂件的创建,我使⽤的是VS 2017,以此为例介绍:1、新建⼀个dll项⽬,选择Visual c++》Windows 桌⾯》动态链接库(DLL)然后会得到如下图所⽰的Dll.cpp⽂件会得到⼀个空的头⽂件⽂件其中#pragma once 代表这个头⽂件只被编译⼀次,与1 #ifndef _DELL1_H2#define _DELL1_H3456#endif作⽤类似。

2、编写程序在头⽂件写声明,值得注意的是,这⾥需要使⽤__declspec(dllexport)关键字修饰,表⽰这个函数是输出的函数可以在外部使⽤,这⾥的 extern “C” 表⽰的是⽤c的编译器来编译这个函数,这⾥的C是⼤写的要注意,这样编译出来的函数名就是我们希望的,否则就会产⽣不⼀样函数名。

extern"C" __declspec(dllexport) UINT8 choose(double *a, UINT8 *b);去源⽂件Dll1.cpp定义函数体,别忘记在开头把Dll1.h头⽂件包括进来。

1 #include "stdafx.h"2 #include "Dll1.h"34double abs(double a)5 {6return a > 0 ? a : -a;7 }8910extern"C" __declspec(dllexport) UINT8 choose( double *a,UINT8 *b)11 {12double T = *a;13double To = *(a + 1);14double Tb = *(a + 2);15double Tt = *(a + 2);16if (Tb < T | Tt < T)17 {18if (abs(Tb - Tt) < 3)19 {20 *b = 1;21 *(b + 1) = 1;22 }23else24 {25 *b = 0;26 *(b + 1) = 0;2728 }29 }30else31 {32 *b = 0;33 *(b + 1) = 0;3435 }3637return1;38 }⽣成dll,在“⽣成”》⽣成解决⽅案,如果没报错的话就能⽣成dll⽂件,实际⽣成的时候,如果之前这个dll⽂件已经zailabview 使⽤了,那么⽣成的时候可能会报错(即使是复制出去的dll)关闭labview重新尝试。

用labview调用c语言的方法

用labview调用c语言的方法

用labview调用c语言其实是一件挺简单的是,下面我们通过一个求两个数的相加来一步步的介绍怎样来调用C语言,只要大家按照步骤一步一步的来一定会功的,加油!LabVIEW中使用CIN节点调用C语言CIN(Code Interface Node)节点是LabVIEW中用来调用C/C++代码的功能节点。

它与动态链接库的不同之处在于,它能够将代码集成在VI中作为单独的一个VI发布,而不需要多余的文件。

另外,它提供了函数入口,它可以根据用户提供的输入输出自动生成函数入口代码,从而使用户专心关注代码功能而不用为函数声明、定义等语句费心。

因此CIN节点与DLL在不同的场合有不同的优势,但是CIN节点的使用比调用DLL要复杂得多。

由于LabVIEW中数据的存储格式遵循了C语言中数据的存储格式,并且二者完全相同,所以用户可以向CIN传递任意复合的数据结构。

另外,CIN比图形化语言可获得更高的执行效率。

注意:对于完全相同的代码,CIN和DLL的执行效率是完全一样的。

如果要使用CIN节点,你必须安装了C编译器。

在Windows下,CIN支持以下编译器:▪Microsoft Visual C++▪Symantec CCIN节点必须调用.lsb文件。

.lsb文件是通过外部编译器与CINTools工具结合将C代码编译生成的。

下面我们通过一个两数相加的实例来看如何在LabVIEW中实现CIN节点调用,本例所用外部编译器为Microsoft Visual C++ 6.0。

例18.6 利用CIN节点实现加法运算第一步:在程序框图放置一个空CIN节点;CIN节点位于程序框图的互连接口->库与可执行程序->代码借口节点。

第二步:创建CIN节点的输入输出端口;初始情况下,CIN只有一对端口:一个输入端口和一个输出端口。

向下拉大节点边框或右击节点端口选择增加参数,可以为节点增加输入输出端口。

CIN节点的端口都是成对出现的,因为CIN节点端口传递的是指针,所以该参数既可以作为输入又可以作为输出。

一种LabvIEW调用MATLAB的方法

一种LabvIEW调用MATLAB的方法

一种LabvIEW调用MATLAB的方法
赵玲;苏维均
【期刊名称】《北京工商大学学报(自然科学版)》
【年(卷),期】2009(27)2
【摘要】LabVIEw和MATLAB是目前工程技术领域中比较流行的两种软件,功能强大但又各自存在着不足,介绍了在LabVIEW中通过MATLAB Script节点调用MATLAB应用程序的方法及注意事项,可以互相弥补不足,更好地发挥各自长处.在输油管道泄漏检测系统例程中运行的结果证明,这种调用可以有效地实现,并完成其算法功能.这种调用的实现为快速开发具有复杂算法、功能强大的智能化虚拟仪器提供了有力的工具.
【总页数】4页(P73-75,80)
【作者】赵玲;苏维均
【作者单位】北京工商大学,计算机与信息工程学院,北京,100048;北京工商大学,计算机与信息工程学院,北京,100048
【正文语种】中文
【中图分类】TP319
【相关文献】
1.基于LabVIEW的测控系统调用MATLAB的方法研究 [J], 唐超;李世平;孙浚清;张弦
2.一种Java调用Matlab的方法简介 [J], 蔡云鹭
3.在LabVIEW中调用库函数的一种方法 [J], 王丽敏;杨翠娥;王工艺
bVIEW中调用MATLAB进行信号处理方法研究 [J], 吴小红
5.Visual C++调用Matlab神经网络工具箱的一种实现方法 [J], 王坤
因版权原因,仅展示原文概要,查看原文内容请购买。

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

Labview调用C语言、Matlab脚本节点以及库函数节点的方法Labview调用C语言的方法CIN(Code InterfaceNode)节点是LabVIEW中用来调用C/C++代码的功能节点。

它与动态链接库的不同之处在于,它能够将代码集成在VI中作为单独的一个VI发布,而不需要多余的文件。

另外,它提供了函数入口,它可以根据用户提供的输入输出自动生成函数入口代码,从而使用户专心关注代码功能而不用为函数声明、定义等语句费心。

因此CIN节点与DLL在不同的场合有不同的优势,但是CIN节点的使用比调用DLL要复杂得多。

由于LabVIEW中数据的存储格式遵循了C语言中数据的存储格式,并且二者完全相同,所以用户可以向CIN传递任意复合的数据结构。

另外,CIN比图形化语言可获得更高的执行效率。

注意:对于完全相同的代码,CIN和DLL的执行效率是完全一样的。

如果要使用CIN节点,你必须安装了C编译器。

在Windows下,CIN支持以下编译器:Microsoft Visual C++Symantec CCIN节点必须调用.lsb文件。

.lsb文件是通过外部编译器与CINTools工具结合将C代码编译生成的。

下面我们通过一个Step byStep的实例来看如何在LabVIEW中实现CIN节点调用,本例所用外部编译器为MicrosoftVisual C++6.0。

第一步:在程序框图放置一个空CIN节点;CIN节点位于FunctionsPalette的Connectivity->Libraries& Executables->Code InterfaceNode。

第二步:创建CIN节点的输入输出端口;初始情况下,CIN只有一对端口:一个输入端口和一个输出端口。

向下拉大节点边框或右击节点端口选择AddParameter,可以为节点增加输入输出端口。

CIN 节点的端口都是成对出现的,因为CIN节点端口传递的是指针,所以该参数既可以作为输入又可以作为输出。

如果不需要输入,则可以右击该输入端口选择OutputOnly,这时候该对端口的左侧端口变为灰色,表明这对端口仅用作输出。

本例实现的功能为c=a+b,因此需要两个输入端口:a,b;一个输出端口c。

设置好端口后,在前面板窗口创建两个NumericControl(分别命名为a和b)和一个NumericIndicator(命名为c)。

分别将a,b与输入端口连接,c与输出端口连接,如图3所示。

可以看到,端口会自动根据输入参量的类型与之匹配。

图2设置CIN节点端口图3CIN节点端口与控件连接虽然控件与端口已经连接,但是此时的CIN节点并不具备任何功能,因为它还没有装载.lsb文件。

因此此时VI是不可运行的,即Run按钮处于Broken状态。

下面的任务就是创建.c源文件,并编译为.lsb文件,最后加载到节点上。

第三步:创建.c源文件右击CIN节点选择Create.cFile...,在弹出的对话框中保存文件,这里文件名命名为CINExample_add.c。

打开该文件可以看到LabVIEW已经自动添加了一些代码用于包含库以及函数声明等,内容如下:#i nclude"extcode.h"MgErrCINRun(float64*a,float64*b,float64*c);MgErrCINRun(float64*a,float64*b,float64*c){return noErr;}用户可以在“”处添加函数所需的C代码。

头文件“extcode.h”是LabVIEW自带的一个头文件,位于bVIEW8.2cintools目录下。

它定义了CIN和外部程序所用到的基本数据类型和许多函数等。

其中定义的某些常量和数据类型可能会与系统头文件相冲突,因此在使用系统头文件并进行系统调用时,需要将cintools目录下的hosttype.h文件也包含进来。

#include“hosttype.h”必须紧跟着#i nclude“extcode.h”语句,然后才能用#i nclude语句包含系统头文件。

当CIN节点执行时,LabVIEW将调用CINRun函数。

CINRun函数将CIN节点的输入输出作为参数看待。

此外,还可以添加一些其它的后台例行程序(Routines):CINLoad,CINSave,CINUnload,CINAbort,CINInit,CINDispose和CINProperties。

它们分别在不同的时刻执行。

例如CINLoad在第一次载入VI 时执行。

缺省情况下是不执行任何内容的,如果你需要在VI载入时执行某段程序,则可以把该段程序添加在CINLoad例程中。

编写CINLoad例程的代码如下:CIN MgErrCINLoad(RsrcFile reserved){Unused(reserved);returnnoErr;}通常情况下,我们只需要编写CINRun函数。

本例中,只需要将.c源文件中的CINRun函数改写如下:MgErrCINRun(float64*a,float64*b,float64*c){*c=*a+*b;return noErr;}改写后保存该文件就完成了.c源文件的编写,下面我们通过Visual C++6.0集成开发环境来编译该源文件。

第四步:编译.c源文件为.lsb文件1.打开VC++6.0,在主窗口菜单中选择File->New...,在弹出的对话框选择Win32Dynamic-Link Library,设置ProjectName为CINExample_add,并在Location栏设置该Project所在路径,如图4所示。

点击OK按钮后,在接下来的对话框中选择Finish按钮,在接着弹出的信息提示对话框中点击OK,就成功创建了一个空的DLLProject。

图4VC中创建新DLLProject对话框2.将前面创建的CINExample_add.c源文件与bVIEW8.2cintools目录下的cin.obj,labview.lib,lvsb.lib,lvsbmain.def添加到Project中。

添加方法是在VC++主菜单中选择Project->AddTo Project->Files...。

3.选择Project->Settings...,在弹出对话框的Settingsfor栏中选择AllConfigurations,然后选择C/C++tab页,选择Category栏为Preprocessor,将bVIEW8.2cintools目录添加到Additional includedirectories中,如图5所示。

图5将cintools目录添加到搜索目录中4.仍然在上面的对话框中选择Category为CodeGeneration,设置Struct member alignment为1byte。

设置Use run-time library为MultithreadedDLL。

5.选择Custom Buildtab页,在Commands栏中输入:”cintools所在目录lvsbutil”$(TargetName)–d“$(WkspDir)$(OutDir)”,在Outputs栏中输入:”$(OutDir)$(TargetName).lsb”,如图6所示。

这一步就是利用LabVIEW 的CINTools工具包中的lvsbutil工具将VC++生成的DLL文件转换为CIN节点能够使用的.lsb文件。

图6设置CustomBuild为lvsbutil6.点击OK按钮完成配置后,点击VC++工具栏中的Build按钮,编译工程。

编译过程中,VC++首先创建一个DLL文件,然后调用lvsbutil工具将这个DLL 文件转换为.lsb文件。

编译完成后,打开工程目录下的Debug文件夹,我们可以看到新生成的.lsb文件:CINExample_add.lsb。

下面就可以将该文件加载到CIN节点中了。

第五步:加载.lsb文件到CIN节点回到LabVIEW程序中,右击第二步中创建的CIN节点,选择LoadCodeResource...,在弹出的文件选择对话框中双击选择刚才创建好的CINExample_add.lsb文件,这就完成了.lsb文件的加载过程。

这时候VI窗口工具栏中的Run按钮也变为可执行状态。

运行VI可以得到预期结果,如图7所示。

图7利用CIN节点进行加法运算到此为止,我们就完成了一个CIN节点的创建过程。

其实LabVIEW提供了大量的外部函数供CIN节点调用,这些函数涵盖了从底层字节操作到数据排序、内存管理等各个方面。

这些函数都在一个称为Managers的库中管理。

在C代码中通过调用这些函数可以方便的实现非常强大的功能。

限于篇幅,这里就不详细介绍了,有兴趣的读者可以参考NI公司的UsingExternal Code in LabVIEW.pdf 文档(点此进入下载)。

在bVIEW8.2examplescins目录下也可以看到LabVIEW提供的不少CIN节点实例。

利用Labview调用Matlab脚本节点Matlab脚本节点的介绍Matlab脚本节点位于函数面板的“数学→脚本与公式→脚本节点→Matlab脚本节点”。

由于Matlab脚本节点中的脚本完全是Matlab中的M文件,运行Matla 脚本节点时会启动Matlab,并在Matlab中执行脚本内容,其支持的函数由Matlab 来提供。

Matlab脚本节点可以通过增加输入输出端子来实现LabVIEW和Matlab脚本节点交互数据。

方法为:右击节点边框,选择Add Input或者AddOutput选项;可以手动输入M文件,也可以导入或者导出M文件。

方法为:右击节点边框,选择Import或者Export选项。

利用LabVIEW调用Matlab实例在实例中,我们将完成两个实验:一个简单的加法运算,x,y为输入的两个加数,z为输出的求和值;一个三维曲面的显示,通过改变三维曲面数值,可以展示曲面的不同形状。

程序前面板如下图(1)利用matlab节点实现简单运算①函数面板的“数学→脚本与公式→脚本节点”,将Matlab脚本节点放置在合适的位置。

②单击工具选板上的,在Matlab Script Node中单击即可以编辑M脚本。

③在Matlab Script Node中输入如下语句:z=x+y;④在Matlab Script Node框图左侧上单击鼠标右键,选择“添加输入”,在出现的方框中输入x;重复操作,在方框中输入y。

注意:在Matlab Script Node中有几个输入变量,则需要添加几个输入。

⑤在Matlab Script Node框图右侧上单击鼠标右键,选择“添加输出”,在出现的方框中输入z。

相关文档
最新文档