编辑: 梦三石 2015-08-08
计算机与现代化2007年第 8期JISUANJ I YU X I ANDA IHUA 总第 144期 文章编号 :

10062 2475 (2007)

082 00932

03 收稿日期 :

20062 082

14 基金项目 :广西自然科学基金资助项目 (0663022) 作者简介 :彭宇宁 (19592) ,女 ,四川成都人 ,广西大学电气工程学院高级工程师 ,研究方向 :过程控制工程 ,网络化控制 ,虑拟 仪器技术.

利用 DLL技术实现 LabV IE W 和MATLAB混合编程 彭宇宁 ,朱后(广西大学电气工程学院 ,广西 南宁 530004) 摘要 :介绍了利用 DLL技术实现 LabV IEW 和MATLAB进行混合编程的基本原理 ,并详细阐述了使用 MATLAB插件和使 用MATLAB引擎两种方法的步骤 ,最后对两种方法进行了比较 ,总结了基于 DLL混合编程的技术特点. 关键词 :动态连接库 ;

LabV IEW;

MATLAB;

混合编程 中图分类号 : TP311.

13 文献标识码 : A Usi ng DLL Techn ique to Realize M ixed Programm i ng with LabVIE W and MATLAB PENG Yu2ning, ZHU Hou ( Institute of Electrical Engineering, Guangxi University, Nanning 530004, China) Abstract: This paper introduces the keystone of using DLL to realize the m ixed programm ing with LabV IEW and MATLAB. A t the same time, the step s of both methods are expatiated: usingMATLAB Add2in and invokingMATLAB engine. In the end of the article, we compare these two methods, and summarize the advantages of m ixed programm ing via DLL. Key words:DLL;

LabV IEW;

MATLAB;

m ixed programm ing

0 引言LabV IE W作为虚拟仪器的开发软件 ,具有功能完整、 应用灵活、 易于理解、 编程简单、 开发效率高等优点 ,已成 为虚拟仪器开发事实上的工业标准. 但其在工程计算、 图 形处理、 先进控制、 系统建模和仿真方面远不及 MAT LAB 功能强大. 而MAT LAB在循环处理、 图形界面开发、 数据 输入、 网络通信、 硬件控制等方面也不如 LabV IE W.因此 实现两者混合编程 ,将两者的优势结合互补不足 ,对于开 发功能更为强大的虚拟仪器具有巨大的推动作用.目前 LabV IE W和MAT LAB的混合编程方法有三种:第一种基 于ActiveX控件技术 ,包括 MAT LAB脚本节点和 ActiveX 函数模板;

第二种基于动态数据交换 (DDE)技术;

第三种 基于组件对象模型 (COM)技术.前面两种方法都不能脱 离MAT LAB环境独立运行 ,第三种方法相对独立且执行 效率较高 ,但不能全面支持 MAT LAB的应用.本文利用 DLL ( 动态连接库 )技术将 LabV IE W、 VC、 MAT LAB混合编 程有机结合起来 ,提出一种新的 LabV IE W和MAT LAB进 行数据交换和控制的方法.

1 基本原理 DLL (Dynam ic2 L ink L ibrary)

2 动态连接库是基于 W indows程序设计的一个重要组成部分 ,它由一系列 封装好的可执行代码组成 ,其内部函数能被其他程序 所共享.DLL的编制与具体的编程语言及编译器无 关 ,只要遵守 DLL的开发规范和编程策略 ,并安排正 确的接口 ,不管用何种编程语言编制的 DLL 都具有 通用性.LabV IEW 通过 CLF ( Call Library Function Node)实现对 DLL的函数 [

1 ] .另一方面 ,MATLAB通过MATLAB编译器和计算引擎为 C语言提供了功能 强大的接口 ,可将与 MATLAB 通讯的 C代码编制成 DLL文件供 LabV IEW 调用 ,实现 LabV IEW 和MAT2 LAB间接数据交换.下面举一个简单的例子 (本例 已在 LabV IEW 7. 1,M icrosoft V isual C ++ 6. 0,MAT2 LAB 6. 5上通过 ) ,介绍利用 DLL 实现 LabV IEW 和MATLAB混合编程的两种途径.

94 计算机与现代化2007年第 8期方法一:使用MATLAB 插件生成的共享库(shared M2 DLL). MATLAB编译器可以将 M 文件编译成 C /C ++ 代码 ,然后利用 C /C ++编译器将其再编译成 DLL供LabV IEW 调用.工作原理如图 1所示. 图1LabV IEW 调用 M文件的原理图 Math Works公司为 Visual Studio开发环境提供了 一个 MAT LAB插件 ,该插件可使在 VC ++工程中插入 M 文件的工作自动化.因此在下面的工作开始之前 ,应先 为VC 6. 0安装这个插件.为了方便理解 ,以求一个阵 列的正弦值的简单例子来说明其具体步骤. (1)编写求一个阵列正弦值的 M 文件 (算法 ) , 此处 M文件应为函数文件. function y = sinwave ( x) y = sin ( x) ;

下载(注:源文件不在本站服务器,都将跳转到源网站下载)
备用下载
发帖评论
相关话题
发布一个新话题