ActiveX技术总结
LabVIEW可以调用MA TLAB ActiveX接口提供的8个方法和1个属性:
(1)Execute:Execute方法调用MA TLAB执行一个合法的MA TLAB命令,并将结果以字符串的形式输出。其输入参数Name为字符串类型变量,表示一个合法的MA TLAB命令。
(2)GetFullMatrix(Name,Workspace,*pr,*pi):使用GetFullMatrix方法,LabVIEW从指定的MA TLAB工作空间中获取一维或二维数组。Name为数组名,Workspace标识包含数组的工作空间,其默认值是“base”。Pr包含了所提取数组的实部,Pi包含了所提取数组的虚部,它们在LabVIEW中为变体(V ariant)数据类型。
(3)PutFullMatrix(Name,Workspace,*pr,*pi);此方法向指定的MA TLAB工作空间中设置一维或二维数组。如果传递的数据为实数型,pi也必须传送,不过其内容可以为空。
(4)GetCharArray(Name,Workspace):此方法从指定的MA TLAB工作空间中获取字符数组。
(5)PutCharArray(Name,Workspace,charArray):此方法向指定的工作空间中的变量写入一个字符数组。
(6)MinimizeCommandWindow():此方法使MA TLAB窗口最小化。
(7)MaximizeCommandWindow():此方法使MA TLAB窗口最大化。
(8)void Quit():用于MA TLAB退出。
(9)属性Visible:当Visible为1时,MA TLAB窗口显示在桌面上;当Visible为0时,隐含MA TLAB窗口。
举例说明:LabVIEW程序中有二维数组A、B,通过MA TLAB计算表达式B=A.*3(即A 的每个元素均乘字符串转数组matlab
以3),得到的结果保存在LabVIEW的数组B中,并显示在前面板上。其MA TLAB Window为枚举量,值为Lnvisible或Visible,目的是用于控制任务上是否出现MA TLAB图标。数组A为控制量,用于输入二维数组数据。数组B为指示量,用于显示经MA TLAB计算后返回的结果。
框图程序见图2。
此程序较完整地
描述了调用MA TLAB过程的总体框架,至于复杂的算法可以在MA TLAB中实现。
首先必须引用自动化对象。为此在LabVIEW的Controls>>ActiveX>>Automation Refnum模板中选择自动化引用(Automation Refnum)控制量,将其放置在前面板上,设置控件的Visible 属性为False,从对象列表中选择Matlab Application Type Library V ersion1.0(类似名称)。这样MA TLAB的引用就添加到程序中,其对应的图标为MLApp.DIMLApp。
为了简化访问自动化服务器的过程,LabVIEW在其函数>>互连接口>>ActiveX模板中提供了一组与ActiveX操作相关的子VI,其中Automation Open.vi打开引用,启动MA TLAB自动化服务器,并将引用传递给其它节点,如属性节点(Property Node)、调用方法节点(Invoke Node)。
程序中LabVIEW调用PutFullMatrix方法,将二维组A通过参数pr传到MA TLAB的“base”工作空间。虽然A
为双精度浮点型数组,pr和pi的数据类型为变体(V ariant),数据类型不同,但LabVIEW会自动将输入数据的类型转换为变化,以满足输入要求。程序中A为实数数组,无虚部,所以给pi赋空值。接着LabVIEW调用MLApp.DIMLApp提供的Execute 方法,向MA TLAB传送一条命令“B=A.*3”,于是MA TLAB将数组A的每个元素与3相乘,计算后的结果保存在数组B中。、
再调用GetFullMatrix方法,从“base”工作空间中获取数组B的实部。这里必须使用V ariant to Data.vi,将变体类型的输出转化为LabVIEW中的二维数组。最后用Quit方法退出MA TLAB,Automation Close.vi随即断开引用。
运行程序,可以看到MA TLAB一经启动,任何标上底图标例立即消失,计算结果返回到LabVIEW的前面板上。这里仅介绍了ActiveX函数模板的基本使用以及调用MA TLAB过程的总体框架,读者可以根据需要进行扩充。
注意:运行时,a数组的全部元素都要赋值,由灰变为白
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论