如何将Matlab的程序嵌入到Labview中去,也就是如何利用Matlab编程,用Labview开发界面?
如何将Matlab的程序嵌入到Labview中去,也就是如何利用Matlab编程,用Labview开发界面?说具体点还可以再加分!...
如何将Matlab的程序嵌入到Labview中去,也就是如何利用Matlab编程,用Labview开发界面?
说具体点还可以再加分! 展开
说具体点还可以再加分! 展开
4个回答
展开全部
用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混合编程的方法又有两种,第一种使用Matlab脚本节点,第二种使用ActiveX函数模板。两种方法的基本过程都相同――先打开Matlab自动化服务器,然后执行Matlab命令,最后关闭自动化服务器。LabVIEW中与ActiveX有关函数模板在函数面板中“communication”子面板下的”ActiveX”面板中。
五. 其他方法
还有一种将DLL和Matlab计算引擎(基于COM技术)结合起来的方法。这种方法把调用Matlab计算引擎的C代码编译成DLL供LabVIEW调用。Matlab计算引擎采用了客户机/服务器的模式,在windows上通过ActiveX通道与Matlab进行连接,因此这种方法与基于ActiveX自动化技术的方法有些类似。在进行混合编程时,先打开Matlab计算引擎,然后执行Matlab命令,最后关闭Matlab计算引擎。所不同的是使用ActiveX自动化技术传递数据均为变体,数据类型由应用程序和Matlab服务器自动匹配,而通过DLL调用Matlab计算引擎的方法即可传递变体类型数据也可传递标准C类型数据,数据类型之间的转换在DLL中完成,因此需开发人员额外编程。除了上述混合编程方法外,NI公司和Math works公司合作推出一个工具包――SIT(Simulation Interface Toolkit),用来实现LabVIEW和Simulink交互式编程。有了这一工具包,设计工程师们可以建立自定义的用户界面,以便交互式地验证Simulink模型,并轻松地将这些模型配置到实时硬件进行控制原型设计和硬件在环(hardware-in-the-loop)测试,最终节省产品上市时间。但如其名,它仅用于和Simulink通信,且为附加软件需额外购买。
一、基于动态数据交换(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混合编程的方法又有两种,第一种使用Matlab脚本节点,第二种使用ActiveX函数模板。两种方法的基本过程都相同――先打开Matlab自动化服务器,然后执行Matlab命令,最后关闭自动化服务器。LabVIEW中与ActiveX有关函数模板在函数面板中“communication”子面板下的”ActiveX”面板中。
五. 其他方法
还有一种将DLL和Matlab计算引擎(基于COM技术)结合起来的方法。这种方法把调用Matlab计算引擎的C代码编译成DLL供LabVIEW调用。Matlab计算引擎采用了客户机/服务器的模式,在windows上通过ActiveX通道与Matlab进行连接,因此这种方法与基于ActiveX自动化技术的方法有些类似。在进行混合编程时,先打开Matlab计算引擎,然后执行Matlab命令,最后关闭Matlab计算引擎。所不同的是使用ActiveX自动化技术传递数据均为变体,数据类型由应用程序和Matlab服务器自动匹配,而通过DLL调用Matlab计算引擎的方法即可传递变体类型数据也可传递标准C类型数据,数据类型之间的转换在DLL中完成,因此需开发人员额外编程。除了上述混合编程方法外,NI公司和Math works公司合作推出一个工具包――SIT(Simulation Interface Toolkit),用来实现LabVIEW和Simulink交互式编程。有了这一工具包,设计工程师们可以建立自定义的用户界面,以便交互式地验证Simulink模型,并轻松地将这些模型配置到实时硬件进行控制原型设计和硬件在环(hardware-in-the-loop)测试,最终节省产品上市时间。但如其名,它仅用于和Simulink通信,且为附加软件需额外购买。
展开全部
我认为labview更好,工作中用得很多,并且不是很难学,而matlab虽然数据处理能力强,但前者的前途更广,我是两门都学了后发现还是前者更好:)最好你是再学一门关于信号处理的课程哦!
"图形化编程语言简称G语言。它是继C语言之后的新一代高级语言。也许你已经有这样的经验:用C语言编程,编程者不仅要熟悉指令的用法,而且需用语句写成一段文档——告诉计算机怎么做。在这类编程环境中设计程序,让我们体验抽象美的同时,有些人会感到枯燥。G语言从根本上改变了传统的编程环境。用“图标”代替了“文本指令”。在可视化的程序设计中,编程者只需调用“图标(对象)”,随后通过“连线”规定数据的流向。编程工作仿佛在画程序框图,整个过程变得直观、简便而有趣。
LabVIEW是G语言的主流产品。它的译名为实验虚拟仪器工程平台。它不仅具备C语言的基本功能,而且还提供强大的函数、仪器驱动等高级软件库。因此特别适合于测控领域开发应用软件。
现在你可能已理解:图形化编程不是计算机图形学。它既不研究几何图形的编程算法,也不涉及照片图象的处理技术。
尽管DOS操作系统的命令也可实现文件的复制等操作,但是现在这样操作的人已经很少了。因为已习惯在Windows图形窗口环境中使用快捷命令。至于在Word中的文档复制那就更简便了,只需点击工具栏上相关图标。同样道理,今天欧美许多高校非计算机专业的学生选修G语言并用它开发应用软件的人数已经超过C等文本语言。据报道一般编程者用G语言开发软件的工作效率比C等文本语言提高4—10倍。
近年来我国高校G语言教学实践正在迅速展开,中文书籍不断出版。在学习编程开发工具方面有更多的选择。
"图形化编程语言简称G语言。它是继C语言之后的新一代高级语言。也许你已经有这样的经验:用C语言编程,编程者不仅要熟悉指令的用法,而且需用语句写成一段文档——告诉计算机怎么做。在这类编程环境中设计程序,让我们体验抽象美的同时,有些人会感到枯燥。G语言从根本上改变了传统的编程环境。用“图标”代替了“文本指令”。在可视化的程序设计中,编程者只需调用“图标(对象)”,随后通过“连线”规定数据的流向。编程工作仿佛在画程序框图,整个过程变得直观、简便而有趣。
LabVIEW是G语言的主流产品。它的译名为实验虚拟仪器工程平台。它不仅具备C语言的基本功能,而且还提供强大的函数、仪器驱动等高级软件库。因此特别适合于测控领域开发应用软件。
现在你可能已理解:图形化编程不是计算机图形学。它既不研究几何图形的编程算法,也不涉及照片图象的处理技术。
尽管DOS操作系统的命令也可实现文件的复制等操作,但是现在这样操作的人已经很少了。因为已习惯在Windows图形窗口环境中使用快捷命令。至于在Word中的文档复制那就更简便了,只需点击工具栏上相关图标。同样道理,今天欧美许多高校非计算机专业的学生选修G语言并用它开发应用软件的人数已经超过C等文本语言。据报道一般编程者用G语言开发软件的工作效率比C等文本语言提高4—10倍。
近年来我国高校G语言教学实践正在迅速展开,中文书籍不断出版。在学习编程开发工具方面有更多的选择。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
把matlab编译成动态链接库,用labview调用;
或者在labview界面里用matlab公式节点调用matlab编程;
或者在labview界面里用matlab公式节点调用matlab编程;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
先在matlab中编好.m文件,问候在labview中使用公式节点中的脚本公式
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询