Matlab与+VB、+VC高级语言的接口方法
!"#$"% 是 !"#&’()*+ 公司于 ,-./ 年推出的
一套高性能的数值计算软件 0 它集数值分析、矩
阵运算、信号处理和图形显示于一体,构成了一个
方便、界面友好的用户环境 0 它还包括了 1(($%(2
3工具箱 4 的各类问题的求解工具,可用来求解特
定学科的问题 0 具有可扩展性、易学易用性和高
效性 0 由于 !"#$"%具有如此之多的特点,在欧美
高等院校,!"#$"%已成为应用于线性代数、自动控
制理论、数理统计、数字信号处理、时间序列分析、
动态系统仿真等高级课程的基本教学工具;在研
究单位、...
!"#$"% 是 !"#&’()*+ 公司于 ,-./ 年推出的
一套高性能的数值计算软件 0 它集数值分析、矩
阵运算、信号处理和图形显示于一体,构成了一个
方便、界面友好的用户环境 0 它还包括了 1(($%(2
3工具箱 4 的各类问题的求解工具,可用来求解特
定学科的问题 0 具有可扩展性、易学易用性和高
效性 0 由于 !"#$"%具有如此之多的特点,在欧美
高等院校,!"#$"%已成为应用于线性代数、自动控
制理论、数理统计、数字信号处理、时间序列分析、
动态系统仿真等高级课程的基本教学工具;在研
究单位、工业部门,!"#$"%也被广泛用于研究和解
决各种工程问题 0 然而 !"#$"%自身所存在的某些
缺点限制了它进一步应用的范围 0
3 , 4 !"#$"%是一种解释性语言,因此它的实时
效率是相当差的 0 例如在一个电机控制系统项目
中,采用 !"#$"%语言编写的仿真程序,在工业用
控制机 3奔腾 555 4上需要 /6 789,而同样的算法,用
:语言实现,仅需 ;6多秒 0 由此可见,!"#$"%的
语言执行效率是比较低的 0
3 / 4 !"#$"%程序不能脱离其环境运行,因此它
不能被用于开发商用软件 0
3 ; 4 !"#$"%程序可以被直接看到程序的源代
码,因而不利于算法和数据的保密性 0
3 < 4 不能实现端口操作和实时控制 0
在工程应用中,一般用 =:,=>,: ? ? >@8$AB)
等高级语言编写应用程序,实现交互界面、数据采
集和端口操作等,但这些高级语言在数值处理分
析和算法工具等方面,其效率却又远远低于 !"#C
$"%语言 0 在准确方便地绘制数据图形方面,!"#C
$"%语言更具有无可比拟的优势 0 此外,!"#$"%还
提供功能强大的工具箱 0 因此,如果能够实现
!"#$"%与其他可视化设计语言的交互,提高速度,
美化界面,使程序更符合 ’89A(D+的
,同时又
利用 !"#$"%的强大功能实现优势互补,将获得极
大的效益 0
实现程序混编的目的是把计算过程留给
!"#$"%,而用 : ? ?等可视语言对计算结果进行分
析或者可视化处理 0 !"#$"%和其他语言的接口编
程有多种途径,具体有如下几种 0
, 中间文件传递法
从严格意义上讲,这种方法不能真正认为是
两种语言的混合编程,但由于这种方法在实现起
来是很方便的,不要求一些复杂的编程技巧,因而
对某些课题项目还是很有用的 0 实现的方法是,
用一种自己熟悉的高级语言编写前端用户交互界
面,并搜集必要的参数信息,保存在一个中间文件
中 3如 E")"0 #2# 4,然后利用异步程序调用方式执行
!"#$"%程序 0 在此之前必须用 !"#$"%语言编写好
一个能完成特定任务的 0 7文件 3如 #B+#0 74,该文
件将从 E")"0 #2# 读取所需的参数信息,执行任务
并返回结果 0 同样 !"#$"%程序得到的结果也应保
存在一个文件中,供给前端用户程序使用 0 对该
方法应注意两点:
3 , 4 !"#$"%程序的启动,对于 =>可以使用下
面的语句来调用 7"#$"%程序:
+&B$$(“ F7"#$"%G H %89 H7"#$"%0 B2B I 789878JB I )
摘 要:首先介绍了当前在国内外十分流行的工程设计和系统仿真软件包 !"#$"%的优缺点,然后
展开介绍了 !"#$"%与 =>K =:进行接口的常用的几种方法K 即中间文件传递法、动态连接库 LMM、动
态数据交换 LLN、引擎应用程序、OP#8QBR自动化服务技术和 !"#P(7等方法,最后对其效果进行了
小结 0
关 键 词:!"#$"%软件;接口技术;动态数据交换;OP#8QBR自动化服务;引擎
中图分类号:1S ;,,0 , 文献标识码T O
张学典 ,,赵学玲 /,许家群 ,K 唐任远 ,
(,0 沈阳工业大学 特种电机研究所,辽宁 沈阳 ,,66/;;/0 天津大学 精密仪器学院,天津 ;666U/ )
!"#$"%与 =>、=:高级语言的接口方法
收稿日期:/66, I 6U I 6-
作者简介:张学典 3 ,-U< I 4,男,山东烟台人,沈阳工业大学硕士生 0
第 /;卷第 V期
/ 6 6 , 年 ,/ 月
沈 阳 工 业 大 学 学 报
W(@)9"$ (X Y&B9Z"9[ \98QB)+8#Z (X 1BP&9($([Z
文章编号:,666 I ,V
)*!+*,? @ ,&’/ 最后对
于 A B B和 CD-!-*’语言,由于 )7=67E提供了一
套可供 A 调用的 789 函数集,所以完全可以在
A B B中访问 / )7= 文件 / )7= 文件是 )*!+*, 专
用的数据存储格式 /
在 F&’:DG#系统中,566是一种很特别的可
执行文件,可以被多个 F&’:DG#应用程序同时访
问,具有固定的共享数据段 / 该数据段的数据在
566被 F&’:DG#下载前会一直保留在内存中,因
此可以通过 566实现用户程序与)*!+*,之间的数
据传输和函数调用 /
具体地说,就是利用 )*!+*,的 H1位动态连接
库(566),生成相应的可以被 A B B调用的 566,
用来提供二者之间的基本支撑环境 / 只需在用户
程序中加载该 566,即可实现其数据段的共享 /
然后在用户程序中操作 566数据段的数据,并通
过某种方式在用户程序中使 )*!+*, 执行该 566,
就可实现用户程序对 )*!+*,的调用 / 其形式可以
是混合编程或函数调用,非常方便而高效 /
在 > )*!+*, ? @ " 从 #’?1@(+61 控件中获得当前的 !31-3<
命令字符串并
=’>发送到 !31-3>3(C D #’?1@(+61A #’?1
=’>使 EE&执行字符串命令 A
#’?1@(+61A $9(F&?’G61’ /B,.>>3(C
#’?1@(+61A $9(F!.C’ D 7<$9(FH.(’
=’> 在引擎主题下对控件 #’?1*61+61 和
>31-3<之间的
=’>进行初始化
#’?1*61+61A $9(F!.C’ D 7<$9(FH.(’
#’?1*61+61A $9(F#.+9G D I!"#$"% J &()9(’I
#’?1*61+61A $9(F@1’> D I&()8129()=’/6-1I
#’?1*61+61A $9(F!.C’ D 7<$9(F!3(63-
=’>请求前一个 &()&73-8129()命令执行的结
果赋值给 =’>控件 #’?1*61+61A 1’?1A
#’?1*61+61A $9(F=’K6’/1
#’?1*61+61A $9(F!.C’ D 7<$9(FH.(’
&(C @:
&(C 86<
这种实现方式比较简单,但将增大主程序代
码,影响运行速度,且存在一些主要限制 A 如不能
对图像结果进行处理 A
L 引擎应用程序
!31-3<引擎程序指的是那些通过管道(在 MN
H@O系统中)或者 "G197’O(在 P9(C.Q/系统中)与
独立 !31-3< 进程进行通信的 , R , S S或者 T.2N
123(程序,具体说,引擎应用程序的实质是把 !31N
-3<做为一个引擎,它允许从你自己的 , S S程序
调用这个引擎 A 在运行时,引擎作为一个进程单
独运行,你的 , S S程序也作为一个进程单独运
行,二者可以通过进程间的通信机制进行交互 A
!31-3< 引擎库 ’()9(’A U 包含了若干个控制
!31-3<引擎的函数,如表 ;所示 A
同时,引擎应用程序还可以使用 "5@ 函数,
!31-3<提供了一系列的例程,使得别的程序可以
调用 !31-3<,从而把 !31-3<用作一个计算引擎 A
!31-3<同样提供了一个函数库来启动或者结
束 !31-3<进程、与 !31-3<交换数据以及发送 !31N
-3<命令 A
V "G197’O自动化服务技术
!31-3<在 P9(C.Q/平台上提供了 "G197’O自
动化服务 W"G197’ "61.>319.( 8’27’2 X 的能力,自动
化是一种 "G197’O协议,它允许被称之为‘控制器’
W ,.(12.--’2 X 的程序或部件来控制另一种‘服务器’
W 8’7’2 X 的程序或部件 A 因此,Y%或 Y,程序可以
作为控制器来启动和控制 !31-3 !31$3< "/ *声明对象变量
E9> =’/6-1 "/ 8129()
8’1 !31$3< D ,2’31’*创建一个 !31-3<应用对象
=’/6-1 D !31$3执行 >31-3<命令 /62:并返回结果 A
[ !31G.>\ !31-3<与 , S S的接口
!31U#..-/公司推出的 !31G.>可将 !31-3<的
源代码译成同等功能的 , S S源码,既保持了
!31-3< 的优良算法,又保持了 , S S的高执行效
率 A 它最主要的特点是能够将 ! 语言的文件转
化为 ,语言的代码,并通过 Y9/63- , S S和 %.2N
-3(C , S S将其编译成可执行程序(&O&)或动态
链接库(E$$)A
下面将详细介绍如何使 !31-3<与 , S S接口 A
首先应设置 !31G.>所对应的编译器类型、数
第 [期 张学典等:!31-3<与 Y%、Y,高级语言的接口方法 L]V
万方数据
!"#$%&’($ )$#*+,- .$#/$$" )’#0’. ’", +#*$% *12*30$4$0 5%+2%’)1"2 0’"26’2$-
!"#$% &’()*+,-./ !"#0 &’()1+-23/ &4 5+,)6’-.,7#$% 8(-)9’,-.
:.; <=(-9,-2 4-+>(?@+A9 BC 7(D=-B1B29/ <=(-9,-2 ..EE3F/ G=+-,H 3; 7+,-I+- 4-+>(?@+A9/ 7+,-I+- FEEEJ3/ G=+-, K
7.-#%’(#8 7=( ,*>,-A,2(@ ,-* *+@,*>,-A,2(@ ,LB’A M,A1,L ,?( *(@D?+L(* +- A=( N,N(?; <(>(?,1 +-A(?C,D( O(A=B*@
L(AP((- M,A1,L ,-* BA=(? N?B2?,OO+-2 1,-2’,2(@ @’D= ,@ QR/ QG (AD,?( ,?( N?(@(-A(*/ +-D1’*+-2 M+**1( S+1(@
7?,-@NB?A+-2/ T9-,O+D U+-V U+L?,?9 :TUUK / T9-,O+D T,A, WXD=,-2( :TTWK / W-2+-( #NN1+D,A+B-/ #DA+>( #’)
ABO,A+B- <(?>(? ,-* M,ADBO; C+-,119 ,-,19@+@ ,-* @’22(@A+B-@ ,LB’A A=( BDD,@+B- ,*BNA+-2 A=(@( O(A=B*@ ,?( N’A
CB?P,?*;
9$: /+%,-8 )’#0’.; 1"#$%&’($ #$(*"1<6$; ,:"’)1( ,’#’ $=(*’"2$;’(#14$ ’6#+)’#1+" -$%4$%; $"21"$
据类型 ; 具体接口方法有以下三种方式:
: . K 利用 M#7G0M 生成独立执行的 W&W文
件 ; 虽然在 M,A1,L 环境中也可以由 M 文件生成
执行程序,但此 W&W文件仍不能脱离 M,A1,L的后
台支持,利用 M#7G0M则可以生成不再需要 M,A)
1,L环境支持的 W&W文件 ; 其生成方法相当简便,
直接利用 M#7G0M 菜单 S+1( Y GBON+1( AB (X( Y,
然后选择你要生成的 M 文件 / M#7G0M 便会自
动完成 W&W 文件的编译与链接 ; 编译完以后,
便可以在 TWR4% 目录中找到与 M 文件同名的
W&W 文件 ;
: 3 K 利用 M#7G0M 生成动态连接库(TUU)
文件 ; 这一功能只针对 QG而开发,*11的生成方
法如同生成 W&W 文件的方法,它可以生成针对
QR,WXD(1,T(N=+等的动态连接库文件,使用起来
非常方便 ; 生成 TUU 的过程中同样要生成 GZZ
文件,M,A=ABB1@公司建议用户:如果是用 QG开发
程序,最好直接使用 M#7G0M编译生成的 GZZ文
件,而不是直接使用 TUU文件 ;
: F K 实现在 Q+@’,1 G [ [ \; E环境中直接对 M
文件进行编译 ; 进入 QG [ [ \; E后,点击 7BB1@菜
单,然后点 G’@ABO+](/ 选择 #** ^ +-@ ,-* O,D?B
C+1(@/ 点击 R?BP@(,然后选择插入的文件类型为
; *11 文件 / 在 M#7G0M 的 L+- 目录下找到 O>)
D+*(; *11,点击 0_; 在 QG的工具栏中便会出现一
个新的工具栏/这样就可以直接在 QG环境下编译
M文件了 ;
J 结 论
本文结合实际介绍了 ‘+-*BP@ 应用程序对
M,A1,L的调用的几种接口方法,其中文件传输和
引擎 #DA+>(& #’ABO,A+B- <(?>(?方法应用较多,一
般能较好的满足实验室和科研工作的需要/ 但对
于利用 QG语言开发的大型商业用软件和实时性
要求较高的软件则可考虑 M,ADBO方法 ;
参考文献:
a . b 0 c ",?( % M Z/ 5(--+-2@ $ 8; SB’-*,A+B-@ BC T+@A?+L’A(*
#?A+C+D+,1 d-A(11+2(-D( aM b ; 5B=- ‘+1(9 e
本文档为【Matlab与+VB、+VC高级语言的接口方法】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑,
图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。