LabVIEW 与 MATLAB 混合编程
摘要:结合实例详细介绍了 LabVIEW 通过 ActvieX 自动化技术与 MATLAB
进行混合编程,达到了利用 MATLAB 优化算法库的目的。将 LabVIEW 与 MATLAB 有机结
合,是一条开发智能虚拟仪器的有效途径。'; mso-hansi-font-family: 'Times New
Roman'"> 关键词:LabVIEW 语言 MATLAB ActiveX 自动化 虚拟仪器
LabVIEW 建立在易于使用的图形数据流编程语言——G 语言上,大大简化了过程控
制和测试软件的开发。MATLAB 以其强大的科学计算功能、大量稳定可靠的算法库,已
在为数学计算工具方面事实上的标准。但才者各有欠缺,利用混合编程可以相互补
充。
MATLAB 是 MathWorks 公司开发的“演算纸”式的程序设计语言。它提供了强大的
矩阵运算和图形处理功能,编程效率高,几乎在所有的工程计算领域都提供了准确、
高效的工具箱。但 MATLAB 也有不足之处,例如界面开发能力较差,并且数据输入、网
络通信、硬件控制等方面都比较繁琐。
美国 NI 公司推出的 LabVIEW 语言是一种非常优秀的面向对象的图形化编程语言。
LabVIEW 是实验室虚拟仪器集成环境(Laboratory Virtual Instrument Engineering
Workbench)的简称,是一个开放型的开发环境,使用图标代替文本代码创建应用程
序,拥有大量与其它应用程序通信的 VI 库。例如 LabVIEW 使用自动化 ActiveX、DDE
和 SQL,可与其它 Windows 应用程序集成;使用 DataSocket 技术、Web Server、
TCP/IP 和 UDP 网络 Vis,与远程应用程序通信。在对硬件的支持方面,LabVIEW 集成
了与 GPIB、VXI、PXI、RS-232/485、PLC 和插入式数字采集设备等进行数据通信的全
部功能。在 LabVIEW 下开发的程序称为虚拟仪器 VI(Virtual Instrument),因为其
外形和操作可以模拟实际的仪器。在对各种算法的支持方面,LabVIEW 的工具箱非常
有限,这就限制了大型应用程序的快速开发。
鉴于 LabVIEW 和 MATLAB 的优点,本文介绍了通过 ActiveX 技术,在
LabVIEW(Ver6.1)中调用和操作 MATLAB(Ver6.5)的方法,实现 LabVIEW 和 MATLAB 的
混合编程,充分发挥两者的优势。
图 1
1 基本原理
ActiveX 自动化是基于组件对象模型 COM(Component Object Model)的技术,允
许应用程序或组件控制另一个应用程序或组件的运行,它包括自动化服务器和自动化
控制器。MATLAB 支持 ActiveX 自动化技术。通过使用 MATLAB 自动化服务器功能,可
以在其它应用程序中执行 MATLAB 命令,并与 MATLAB 的工作空间进行数据交换。因此
可以借助这一特性,把 LabVIEW 与 MATLAB 结合,充分利用 MATLAB 提供的大量高效可
靠的算法和 LabVIEW 的图形化编程能力,混合开发出功能强大的应用软件。
2 应用举例