LabVIEW适合开发设备采集和控制程序,虽然也提供了大量的数学运算函数,但与MatLab的功能不可同日而语。如果需要在LabVIEW中调用MatLab程序,有几种方法:1.MatLab脚本节点 2.DLL 3.COM。MatLab脚本节点最容易实现,但前提是目标机器上必须安装MatLab,如果是简单的就用MatLab里的几条语句,不值得这样做;DLL是利用编译器将MatLab程序封装成函数库,但MatLab编译器直接封装出来的DLL在LabVIEW中基本不可用,因为MatLab封装出来的DLL是基于mxArray数据类型的,LabVIEW没有或找不到与之对应的数据类型(用DLL一个可行的办法是实用VC/VC++进行二次封装,但费时费力);COM也是MatLab能够封装成的一种形式,而且是基于对象的,可以在LabVIEW中成功调用。本文主要介绍利用COM实现LabVIEW和MatLab混合编程。
工具/原料
1
LabVIEW 2012及更新版本
2
MatLab R2015a及更新版本
MatLab生成COM组件
1
MatLab中新建脚本文件,写入函数。这里简单的写一个求平方的函数作为例子。
2
点击“应用程序”->'应用程序编译器'。
3
在DEPLOYMENT窗口中,依次点击“NEW”->“Liabrary Porject”->“Generic COM component”-> 添加需要的.m文件->“Package”。
4
等待打包完成,MatLab会自动跳转到生成的文件夹,在for_testing文件夹下可看到生成的.dll文件。
LabVIEW中调用COM组件
1
LabVIEW后面板,函数面板中依次点击“Connectivity”->“ActiveX”,将“自动打开”和“调用节点”函数拖入后面板。
2
在“自动打开”函数上右击,浏览到MatLab生成的.dll文件。
3
已自动定位到类库,选择库中的对象,确定。
4
连接调用节点的引线,调用节点的方法中选择需要的函数(本例中是test函数)。
5
给函数的输入变量和输出变量赋值,可以看到变量的名称与我们在MatLab中建立的函数的变量名称完全一致,但多了一个变量nargout,这个变量是指输出变量的数量,一般为1就好。
6
前面板输入参数,运行,结果完全正确。
7
最后说非常重要的一点:如果要使用数组作为变量进行计算,必须使用二维数组!即使是一维数组也要转化成二维数组!这是MatLab本身的数据类型所决定的。