LabVIEW与Matlab的无缝集成_王禹林
- 格式:pdf
- 大小:761.67 KB
- 文档页数:5
LabVIEW与PLC通信实现LabVIEW与工业自动化设备的集成实验室虚拟仪器工作环境(LabVIEW)是一种广泛应用于工程领域的集成开发环境。
它提供了一套强大的工具和函数库,用于开发、调试和控制各种自动化系统。
而工业自动化设备控制的核心组件之一是可编程逻辑控制器(PLC)。
本文将探讨如何利用LabVIEW与PLC进行通信,实现LabVIEW与工业自动化设备的集成。
首先,LabVIEW与PLC通信的基本原理是通过采用适当的通信协议,实现两者之间的数据交换。
常见的通信协议包括Modbus、Profibus、CAN等。
具体选择哪种协议取决于PLC的型号和通信需求。
其次,实现LabVIEW与PLC通信的步骤如下:1. 设定通信参数:首先,需要在LabVIEW中设置与PLC通信的参数,包括通信端口、波特率、校验位等。
这些参数需要与PLC的设置保持一致,以确保通信的正常进行。
2. 建立通信连接:LabVIEW提供了各种通信协议的工具包,可以简化通信连接的建立。
通过配置通信端口和地址,LabVIEW可以与PLC建立连接,并获取或发送数据。
3. 读取PLC数据:一旦建立了通信连接,就可以使用LabVIEW的读取函数来获取PLC中存储的各种数据。
这些数据可以用于监测PLC的状态,或作为LabVIEW控制算法的输入。
4. 控制PLC操作:除了读取数据,LabVIEW还可以通过写入函数来控制PLC的操作。
通过向PLC发送指令,LabVIEW可以实现对PLC的远程控制,例如开关某个设备、改变参数设置等。
5. 设定时序与触发机制:为了实现LabVIEW与PLC的同步操作,需要设定适当的时序和触发机制。
LabVIEW提供了定时器和触发器等工具,可以根据需要来设定数据采集或控制操作的时间间隔和条件。
除了以上的基本步骤,还可以结合LabVIEW的图形化编程特点,进行数据处理和界面设计。
LabVIEW可以对PLC传感器采集的数据进行实时分析和处理,通过图表、曲线等形式直观地展示数据。
MATLAB与外部软件集成中常见问题与解决方法在科学和工程领域,MATLAB(Matrix Laboratory)是一种常用的高级计算软件,被广泛用于数学建模、数据分析和可视化等方面。
虽然MATLAB自身已经拥有强大的功能,但有时需要集成外部软件以满足更复杂的需求。
这篇文章将讨论在MATLAB与外部软件集成过程中常见的问题,并提供解决方法。
1. 软件版本兼容性问题在集成外部软件时,最常见的问题是软件版本不兼容。
MATLAB本身每年都会推出新版,而其他软件可能也在不断更新。
因此,当使用较旧版本的MATLAB 时,与新版外部软件的兼容性可能会出现问题。
解决方法:- 首先,确保使用最新版本的MATLAB。
MATLAB和外部软件供应商通常会为用户提供最新版本,以解决之前版本的兼容性问题。
- 如果无法升级MATLAB,可以尝试通过更新外部软件来解决。
大多数外部软件供应商也会提供与较旧MATLAB版本的兼容性。
- 如果以上方法不起作用,可以考虑使用兼容性更好的外部软件,或者寻求其他集成方案,例如自行编写代码以替代外部软件。
2. 接口调用问题集成外部软件的关键是正确调用其接口,以实现数据传递和功能调用。
在这一过程中,可能会遇到一些问题。
解决方法:- 首先,要仔细阅读外部软件的文档,以了解正确的接口调用方式。
文档通常会提供示例代码和详细说明,帮助用户正确地调用接口。
- 如果继续遇到问题,可以在MATLAB官方论坛或外部软件的支持平台上寻求帮助。
在这些社区中,有许多经验丰富的用户和开发人员,可以提供有关接口调用问题的解决方案。
- 此外,还可以使用调试工具,例如MATLAB的调试器。
调试器可以帮助用户找到接口调用中的错误,并提供详细的错误信息。
3. 数据格式转换问题MATLAB和外部软件可能使用不同的数据格式来表示和处理数据。
在集成过程中,可能需要将数据从一种格式转换为另一种格式。
解决方法:- 首先,需要了解MATLAB和外部软件支持的数据格式。
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节点端口传递的是指针,所以该参数既可以作为输入又可以作为输出。
如何在LabVIEW中进行自动化测试集成LabVIEW是一款强大的图形化编程环境,可以用于各种编程任务,包括自动化测试集成。
本文将介绍如何在LabVIEW中进行自动化测试集成,并提供相关的操作步骤和技巧。
I. 简介自动化测试集成是指利用计算机程序对待测系统进行自动化测试的过程。
LabVIEW提供了丰富的工具和功能,可以方便地进行自动化测试集成。
II. 准备工作在开始使用LabVIEW进行自动化测试集成之前,需要准备以下几项工作:1. 安装LabVIEW软件并激活许可证。
2. 确保待测系统已连接到计算机,并且具备适配LabVIEW的接口。
3. 提前了解待测系统的测试需求和相关文档。
III. 创建测试程序1. 打开LabVIEW软件并创建一个新的VI(Virtual Instrument)文件。
2. 根据测试需求,选择适当的控件和函数,并将其拖放到VI面板上。
3. 根据需要,配置控件的属性和参数。
IV. 数据采集与分析1. 在VI面板上添加适当的数据采集控件,如示波器、函数发生器等。
2. 设置数据采集控件的参数,并通过连接线将其与测试程序的输入和输出终端相连。
3. 运行测试程序,并对采集到的数据进行分析和处理。
V. 结果显示与输出1. 在VI面板上添加适当的结果显示控件,如LED指示灯、数字显示等。
2. 将测试程序的输出与结果显示控件相连。
3. 运行测试程序,并观察结果显示控件的输出。
VI. 自动化控制与调度1. 在VI面板上添加适当的自动化控制控件,如定时器、触发器等。
2. 设置自动化控制控件的参数,配置测试程序的自动化调度。
3. 运行测试程序,并观察自动化控制控件的效果。
VII. 脚本编写与执行1. 在LabVIEW中,可以使用G语言编写脚本,用于批量执行测试程序。
2. 根据需要,编写脚本并保存为相应的文件。
3. 执行脚本,批量运行测试程序,并自动化生成测试报告。
VIII. 调试与优化1. 在运行测试程序之前,可以使用LabVIEW提供的调试工具对其进行调试。
LabVIEW与Matlab混合编程的实现
梁晓刚;张永昌;翟弘泰
【期刊名称】《电脑开发与应用》
【年(卷),期】2009(022)009
【摘要】针对LabVIEW在数值分析和处理方面的不足,提出了实现LabVIEW与Matlab混合编程的几种方法.通过LabVIEW专有程序接口调用Matlab,LabVIEW 设计用户图像界面,负责数据采集;Matlab在后台提供大型算法供LabVIEW调用,其程序的调用方法,可使用MatlabScript节点或ActiveX函数模板.
【总页数】2页(P71-72)
【作者】梁晓刚;张永昌;翟弘泰
【作者单位】北方自动控制技术研究所,太原,030006;北方自动控制技术研究所,太原,030006;北方自动控制技术研究所,太原,030006
【正文语种】中文
【中图分类】TP391
【相关文献】
1.Matlab和LabVIEW混合编程的实现 [J], 李霄燕;杨俊宇;赵佳
bVIEW与MATLAB混合编程的实现 [J], 张晖;郑炜
3.基于LabVIEW与MATLAB混合编程实现频谱细化分析 [J], 苏宝定;王奉涛;王亮
4.基于DLL技术和COM组件技术实现LabVIEW和MATLAB混合编程 [J], 宋广
东;王昌;王金玉;路璐;魏玉宾
bview和Matlab混合编程方法的研究与实现 [J], 柴敬安;廖克俭;潘德辉;李淼因版权原因,仅展示原文概要,查看原文内容请购买。
LabVIEW与Matlab接口的方法The Method of Interfacing Between LabVIEW and Matlab陈金平(新疆大学,乌鲁木齐 830008)0 引言虚拟仪器技术是计算机技术、现代测控技术和电子仪器技术相互结合、渗透的产物。
在虚拟仪器系统中,数据的分析处理、控制、结果输出和用户界面等功能都由软件完成,硬件仅仅是为了解决信号的输入输出,因此,软件是整个仪器系统的核心,从某种意义上可以说:“软件即仪器”。
虚拟仪器系统的软件设计可以采用通用的可视化编程语言,如Visual C++、Visual Basic、Delphi等,但更为方便高效的还是专用的虚拟仪器软件开发平台,如美国国家仪器公司(National Instruments,NI)的Lab2 VIEW、LabW indows/C VI,惠普公司的VEE等,而其中首推NI公司的图形化编程语言LabVIEW。
1 LabVIEW的功能及特点LabVIEW是NI公司推出的一种虚拟仪器软件开发平台,自1986年正式推出,经过短短不到15年的时间,已经发展到以最新板本LabVIEW611为核心,包括控制与仿真、高级数字信号处理、统计过程控制、模糊控制和PID控制等众多附加软件包,运行于W indows NT/98、Linux、M acintosh、Sun和HP-UX等多种平台的工业标准软件开发环境。
LabVIEW在包括航空航天、通信、汽车、半导体和生物医学等众多领域内得到了广泛的应用。
其最大的特色是采用编译型图形化编程语言———G语言(G raph2 Pro gramm ing),即用户设计好程序的大体框架后,如同画流程图一般,只需将系统提供的各种图形化功能模块连接起来,就可得到所需的应用软件。
LabVIEW中的程序称为VI(virtual instruments),每个VI都由前面板和框图程序以及图标/连接端口三部分组成。
用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功能,支持常用的网络协议,方便网络、远程测控仪器的开发。
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 的编译器,编译器设置完成。
收稿日期:2005-07-01;修订日期:2005-09-07 基金项目:国家自然科学基金重大、面上资助项目(50390063;50305019);上海市科委国际合作项目(045007027) 作者简介:王禹林(1981-),男,江苏南京人,博士研究生,主要研究方向:虚拟仪器、先进电子制造、机器视觉; 熊振华(1974-),男,江西南昌人,副教授,主要研究方向:先进电子制造、计算机集成优化; 丁汉(1963-),男,安徽安庆人,教授,主要研究方向:先进电子制造、机器人学.文章编号:1001-9081(2006)03-0695-04Lab V I E W 与Matlab 的无缝集成王禹林,熊振华,丁 汉(上海交通大学机械与动力工程学院,上海200030)(wyl_sjtu@sjtu .edu .cn )摘 要:结合实例详细介绍了LabV I E W 与Matlab 无缝集成的三种常用方法,即COM 组件法、中间文件传递参数法和VC ++参数类型转化法。
利用这些方法可将两种软件取长补短,且便于软件的发布。
关键词:LabV I E W ;Matlab;COM;DLL;接口技术;无缝集成中图分类号:TP311 文献标识码:ASeam less i n tegra ti on between LabV I E W and M a tl abWANG Yu 2lin,X I O NG Zhen 2hua,D I N G Han(School of M echanical Engineering,Shanghai J iaotong U niversity,Shanghai 200030,China )Abstract:Three methods were intr oduced with a typ ical exa mp le t o show how t o integrate Lab V I E W and Matlab seam lessly,which were COM object method,trans m itting para meter method with te mporary file and the method of encap sulating the well devel oped algorith m t o the dyna m ic link library (DLL )and transfor m ing the para meter type thr ough using VC ++.These methods hel ped t o release the s oft w are easily .Key words:Lab V I E W ;Matlab;C OM;DLL;interface technol ogy;sea m less integrati on0 引言在工程领域中,Lab V I E W 和Matlab 是倍受程序开发人员青睐的两种语言。
Lab V I E W 对于一些需要进行大量数据运算处理的复杂应用以及某些复杂的控制算法显得有些力不从心。
而Matlab 不能实现端口操作和实时控制,在界面方面也稍逊一筹。
在实际工程应用中将二者结合起来取长补短,具有非常实用的价值。
Lab V I E W 已提供了M atlab Scri p t 节点来调用Matlab 语言开发的算法,这实际上就是通过ActiveX 控件与M atlab Server 进行通信。
用该方法实现它们的混合编程简单实用,但是不能脱离Matlab 的环境,而只是将它在后台执行,因此十分不利于独立应用程序的开发,为了实现Lab V I E W 和Matlab 的无缝集成,本文以“基于蒙特卡洛法模拟求解可靠度”为例详细介绍了如下三种方法,即C OM 组件法、中间文件传递法,以及VC ++参数类型转化法。
其中文献[1]已介绍了C OM 组件法,本文将对这种方法进行深入探讨和补充,并与另两种方法进行比较。
(上述各方法所用的编程环境为Matlab 6.5,Lab V I E W 7.1,VC ++6.0)1 无缝集成的三种方法不管使用上述哪种方法,均要先进行M atlab 编译环境的设置。
因为无论是用Matlab C OM Builder 把M 文件编译成COM 组件,还是用M atlab Comp lier 把M 文件编译成DLL 文件,都需借助外部的编译器。
要设置外部编译器,可在M atlab 中调用mbuild 2setup 和mex 2setup 命令。
这里选择M icr os oftV isual Studi o 6.0。
1.1 COM 组件法Lab V I E W 5.0及以上的版本都提供了对C O M 的支持。
Matlab C O M Builder 是Matlab 6.5新包含的产品,帮助用户将用M 语言开发的算法自动快速地转变为独立的C O M 组件对象,以供其他支持C O M 的编程语言调用,实现Matlab 和其他编程语言的整合。
通过C O M 组件,可以同其他用户共享已经开发的算法,并且可以免费地随同C O M 应用程序发布Matlab 算法。
设已编写好myp r oject .m 函数如下(已简化):functi on num =myp r oject (x,y,tuhao,i,A,B ,C,D )s =nor m rnd (A,B,i,1);cdfp l ot (s );num =0;该函数有8个输入参数和1个输出参数,参数类型包括整型和浮点型,函数中使用了M atlab 数学库和图形库中的函数(如nor m rnd ()和cdfp l ot ()),生成了数据量非常大的(由参数i 控制,比如10000)符合某种数学分布的两组随机数组,然后对数据进行了分析处理并绘图显示结果,具有典型性。
然后即可用Matlab Builder f or COM 创建COM 组件。
过程非常简单,只需4个步骤,即创建工程、管理M 文件和M EX文件、编译生成组件、打包和发布组件[2],说明如下:1)在Component name 中输入要生成的C OM 组件的名字myp r oject 。
2)在Comp iler Code in 里面推荐选择C,因为C 代码性能较好,C ++代码可读性好,而最后不需要看中间的代码。
3)因为要使用Matlab 的图形库,所以选中U se Handle Graphics library 。
4)把myp r oject .m 加入要对其进行操作的类中,即为该类添加了一个简单的方法。
第26卷第3期2006年3月计算机应用Computer App licati onsVol .26No .3Mar .20065)编译完毕后在distrib 文件夹中将生成相应的myp r oject_1_0.dll 文件并自动注册到系统中。
6)将C OM 组件打包并发布后在distrib 文件夹下生成一个自解压文件myp r oject .exe,运行它可实现必要的动态链接库的安装和COM 组件的注册。
需要注意的是打包时输入的文件夹目录不能包含中文,否则将注册失败。
注册好后亦不能改变其存放路径或删除,否则将找不到注册组件。
为了在没有安装Matlab 的目标机上能够使用Matlab Comp iler 生成的组件,需要一同发布MCR (Matlab Component Runti m e ),可通过MCR I nstaller .exe 进行安装。
7)Matlab7增强了M atlab Comp iler 模块功能,简化了COM 组件的开发过程,6.5版本中的Matlab COM Builder 很多设置项都不再出现。
接下来需在Lab V I E W 中调用上面生成的COM 对象。
图1描述了调用过程[1],这里仅作以下说明:1)首先必须引用C OM 对象,为此在进入循环前调用“Aut omati on Open ”函数生成Refnu m,按右键点击“Select ActiveX class ”的B r owse,在列表中选择myp r oject 1.0Type L ibrary Versi on 1.0,这样myp r oject_1_0.dll 的引用就添加到Lab V I E W 程序中,其对应的图标为myp r oject 。
同时生成的Refnu m能够传递给模板中的其他相关函数节点,实现具体的COM 对象操作。
2)Lab V I E W 程序中调用C OM 对象的myp r oject 方法,当方法有输出变量时,第1个变量总是nargout,它的数据类型为Long 。
这个输入参数传递Matlab nargout 参数给编译函数,并且指定要求有多少个输出变量。
没有输出变量的方法不传递nargout 变量。
这里因为有一个输出变量nu m,故给nargout 变量赋值为1。
3)虽然输入参数分别为整型和浮点型,而myp r oject 中与其对应的数据类型为变体型,数据类型不同,但Lab V I E W 会自动将输入数据的类型转换为变体型,以满足COM 对象的输入要求。
然而当C OM 对象的输出为变体型数据时,必须清楚C OM 对象所返回数据的类型,如果选择了错误的数据类型,Lab V I E W 将反馈错误信息。
通过Variant t o Data 节点可以将变体型数据转换为Lab V I E W 能处理和显示的数据类型。
要使用该节点,只要连接需要转换的变体型数据,并标识转换后的数据类型即可。
由于调用myp r oject_1_0.dll 返回的是一个整型变量,所以把整数1连接到Variant t o Data 节点的Type 输入端口和myp r oject 方法的nu m 参数的输入端口(这里并不是赋值,而是指定数据类型)。
4)当退出循环后用Cl ose Aut omati on 函数关闭Refnu m 。
图1 LabV I E W 调用COM 对象程序图 最后的工作就是将Lab V I E W 程序以及所调用的C OM 组件打包,使其能够脱离Lab V I E W 和M atlab 的环境下运行[3],这里作以下说明:1)打包时有时需在App licati on Settings 标签中选中Enable ActiveX 选项(比如使用M atlab Scri p t 节点时),否则执行程序将没有响应。
2)运行Lab V I E W 生成的程序时,必须确保已安装Lab V I E W runti m e engine (25M ),当用高版本的Lab V I E W 生成的可执行程序,在装有低版本的Lab V I E W 的计算机上运行,也需先安装Lab V I E W runti m e engine 。