编辑:
2014-10-10
由于 VB 支持 DDE 客户端功能, 而 MATLAB 则提供了 DDE 服务功能, 因此利用 VB 与 MATLAB 的动态数据交换能力, 可以实现在 VB 程序宁调用MATLAB 的目的。应用程序间彼此通信要先建立一个DDE 会话, 对会话进行初始化的应用程序称为客户端(Client), 对 Client 端做出响应的应用程序称为服务器server)。图 1 描述了 Matlab 作为服务器时与其他应用程序的通信机制。
借助 DDE 时应用程序通信机制其中, DDE 功能函数既可以由应用程序提供, 也可以由 Matlab 引擎库提供。VB应用程序首先通过确定服务器名和主题建立与 MATLAB 的 DDE 会话, 服务器名和主题唯一地确定了这次会话, 在会话期间 VB 应用程序作为客户端, MATLAB 作为服务器端, 客户端与服务端可以就确定的项目(Item)交换数据。在 VB 应用程序中需指明的 MATLAB 的服务器名为 MATLAB 有些文献上称 Matlab 或 MatLab, 实际上是错误的)。MATLAB有 System和 Engine 两个主题, 在 System 主题下可以列出 MATLAB所提供的详细的 DDE 功能, 而在 Engine 主题下可以充分实现 MATLAB的服务功能。
利用 VB 具有的 DDE 客户端功能, 使用 MATLAB的 Englue 主题支持的三种操作, VB 应用程序可以向MATLAB 传送可执行的命令、从 MATLAB 工作空间中读取数据、向 MATLAB 中传送数据。在 Engine 主题下含 有 四 个 项 目 : EngEvalstring、EngstringResult、En-gflgureResull、<”矩阵名”>。当以 EngEval-string 作为项目时, VB 应用程序可以向 MATLAB 传送一条可执行的命令。当以 EngstringResult 作为项目时, VB 应用程序可以以文本方式返回 MATLAB 命令行执行后的字符结果; 当以 EngFigureResult 作为项目时, VB 应用程序可以以文本方式和图元文件方式返回 MATLAB 命令行执行后的图形结果; 当以<" 矩阵名">作为项目时, VB应用程序可以从 MATLAB 工作空间取回数据给矩阵赋值, 证可以向 MATLABI 作空间中的矩阵传送数据。MATLAB 命令执行后的图形结果可以以元文件(metafile)的格式存放在 Windows 剪贴板中。但是只有在以 EngFigureResult 作为项目的对象目请求(LinkRe-quest)成功的情况下, MATLAB 命令执行后的图形结果才会自动以元文件(metafile)的格式存放在 Windows 剪贴板中。
3 结束语比较上述四种方法,可以看到: 引入 Matrix VB 相对简单, 不需要额外调用其他函数和文件; 通过 DLL 动态链接库,将 MATLAB 的函数转换为 VB 中可以调用动态链接库,操作简单,调用方便;通过 DDE 动态数据交换 VB应用程序作为主程序,完成数据的定时采样、友好用户界开发等工作,而 MATLAB 作为后台应用程序,完成复杂控制算法及数据处理等任务, 这种结构使得控制系统软件和控制算法的开发可以分开进行,同时,两者又很容易结合;通过的应用软件中嵌入上述软件的功能,从而大大简化软件开发过程同时提供给使用者更为专业、可靠的软件界面且能让 Webmaster 及软件开发者很方便、快速地在 Intranet 和 Intranet 网络环境里运用。可以预见,该方法将广泛应用在未来的工业控制软件的开发上。
本文就是由精品学习网为您提供的matlab与vb混合编程技术研究,希望供您参考。
标签:VB论文
精品学习网(51edu.com)在建设过程中引用了互联网上的一些信息资源并对有明确来源的信息注明了出处,版权归原作者及原网站所有,如果您对本站信息资源版权的归属问题存有异议,请您致信qinquan#51edu.com(将#换成@),我们会立即做出答复并及时解决。如果您认为本站有侵犯您权益的行为,请通知我们,我们一定根据实际情况及时处理。