LabVIEW和Matlab混合编程综述.doc

  1. 1、本文档共2页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
LabVIEW和Matlab混合编程综述.doc

LabVIEW和Matlab混合编程综述 2006-10-28 22:02 这篇文章主要是针对LabVIEW早期版本的(8.0以前)写的,在8.0以及随后的8.2版本中LabVIEW自身已经能很好地将Matlab集成进来。但它依然不能独立于Matlab,如果要开发独立于Matlab的应用时,基于DLL和COM组件的方法依然有他们不可替代的优势。 LabVIEW作为易学易用的图形化编程语言,在虚拟仪器设计和测控软件开发方面已是事实上的工业标准。Matlab提供强大矩阵运算和图像处理能力,在工程计算领域有着广泛的应用,其优势是其他软件无法比拟的。因此,关于将两者结合起来混合编程的思想也广泛被人们所讨论。目前,应用程序之间通信的技术主要有下面几种:动态数据交换(DDE)、动态链接库(DLL)、组件对象模型(COM)、以及基于COM的ActiveX技术。LabVIEW和Matlab都支持这些接口技术,这也就为两者进行数据通信提供了可能。也正是从不同的接口技术出发,人们提出了不同的混合编程方法,下面对这些方法进行简单的介绍和比较,以供开发者参考。 ? 一.??????????? 基于动态数据交换(DDE)技术 动态数据交换是Windows操作系统中一种基于消息的协议,用于在Windows平台上的两个正在运行的应用程序之间动态交换数据,其中提供数据服务的程序称为服务器程序(DDE Server),请求数据和服务的程序称为客户程序(DDE Client).LabVIEW提供了DDE通信VI,利用这些VI可以创建DDE Server或DDE Client,完成接收/发送数据、请求/提供服务等功能。LabVIEW调用Matlab功能时,需将服务名(service name)指定为”Matlab”,主题名(Topic Name)指定为”Engine”,同时在运行VI之前先启动Matlab或者Matlab计算引擎(在内存中均为Matlab.exe),否则无法通信。DDE VIs可在LabVIEW\vi.lib\platform\dde.llb下找到。 ? 二.??????????? 基于动态链接库(DLL)技术 动态连接库是基于Windows程序设计的一个重要组成部分,它由一系列封装好的可执行代码组成,其内部函数能被其他程序所共享。LabVIEW通过CLF(Call Library Function Node)实现对DLL的调用。另一方面,Matlab编译器能将函数文件编译C/C++代码,这些代码又能被C/C++编译器(如Microsoft Visual C++ 6.0)编译成DLL文件,只要接口(输入输出参数)安排正确,就可以将Matlab编写的算法集成到LabVIEW应用程序中,且脱离了Matlab运行环境,执行效率高。另外,Math works公司为Microsoft Visual C++ 6.0提供了一个插件,可以轻松完成上述工作,当然接口还需开发人员自己安排。CLF在函数面板的“Advanced”子模板下。 三.??????????? 基于组件对象模型(COM)技术 组件对象模型的核心就是二进制接口规范,此规范独立于编程语言和操作系统。从6.5版本开始,Matlab提供了COM生成器。COM生成器提供了实现Matlab独立应用的一种新途径。它能把Matlab开发的算法做成组件,这些组件作为独立的COM对象,可直接被Visual Basic,Visual C++或其他支持COM的语言所引用[1]。LabVIEW5.0及以上版本支持COM。它通过自动化标识(automation refnum)获取一个已安装在系统中的COM组件的引用,然后借助ActiveX功能子模板中的VI完成对组件的控制和调用工作。利用COM技术的LabVIEW和Matlab无缝集成的应用程序运行效率高,占有系统资源少,而且非常利于用户应用软件的发布。[2]?????????????????????????????????????????????????????????????????????????????????????????????? 四.??????????? 基于ActiveX自动化技术 ActiveX的自动化(automation)是ActiveX最重要的功能之一,是一个程序借助其方法和属性控制另一程序的能力,它包括自动化服务器和自动化控制器。Matlab支持ActiveX自动化技术。Matlab自动化服务器提供一系列方法和属性,借此可以实现在其他应用程序中执行Matlab命令和控制Matlab。LabVIEW5.0及以后的版本提供对ActiveX自动化的支持。在LabVIEW中基于ActiveX实现和Matlab混合编程的方法又有两种,第一种使用Matla

文档评论(0)

seym + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档