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可在\vi.lib\platform\dde.llb下找到。
二
基于动态链接库(DLL)技术
动态连接库是基于Windows程序设计的一个重要组成部分