1. 概述
LabVIEW调用Matlab脚本通常有两种方式,使用公式节点或者COM组件。
2. Matlab公式节点方式
推荐指数:⭐⭐⭐
是否需要安装matlab完全版:需要
使用公式节点是最常用的调用matlab节点的方式,对于代码相对简单,没有子函数的matlab脚本比较适用。
2.1 使用说明
按照如下路径找到 MATLAB script 程序面板控件,放置在程序面板框图中。在matlab脚本控件中填写代码,直接填写函数体内容,不用包含函数名称。
2.1 优缺点说明
优点:
操作简单,直接使用labview自带的控件进行文本编程。
缺点:
语法与matlab不是完全兼容,对于复杂的函数,排查语法问题很难; 不能调用包含嵌套函数的脚本需要安装matlab完全体,对电脑配置要求较高;运行时会自动出现matlab命令行窗口。
2.3 官方范例
按照如下官方文档中提供的路径,打开其中一个范例程序。
如下所示,打开了范例程序,程序功能为调用了一个matlab脚本,生成了一个二位数组,并用强度图显示出来。可以看到,matlab脚本控件中直接就是函数体,没有函数名称声明等信息,还添加了一个输出数组M。
此外,使用此种方法调用matlab时,会自动调起MATLAB Command Window。如下所示。
3. COM组件方式
推荐指数:⭐⭐⭐⭐⭐
是否需要安装matlab完全版:不需要,安装matlab引擎即可
将matlab脚本封装成dll进行调用,是很实用的方式,无论是简单还是复杂代码,嵌套了多少子函数,都是可以适用的,也是我个人比较推荐的。
3.1 使用说明
3.1.1 在matlab中生成dll
首先用maltab打开一个m文件脚本,如下所示
点击工具栏切换到APP页面,点击右侧显示更多。
找到如下“Application Compiler” ,点击打开
在弹出的页面点击新建,选择"Library Compiler Project"
在弹出的页面中点击选择"Generic COM Component"
选择要封装的matlab脚本
点击"Package",选择打包文件夹路径
等待打包完成
打开"for_testing"文件夹,找以函数命名的dll文件,就是最终生成好的dll。
3.1.2 注册dll
管理员权限打开cmd窗口,输入如下
regsvr32 + dll文件路径
实际如下图所示
输入完成后,回车运行,提示成功就可以了,如下图所示
3.1.3 程序调用dll
新建vi,找到自动化打开句柄,添加到程序面板
右键自动化句柄,选择ActiveX类,浏览找到刚才注册的 "sintest"
选择之后,如下图勾选,选择Class1,点击OK
右键选择添加调用节点,如下图所示
选择sintest函数
给参数赋值,并且增加关闭句柄,在句柄关闭前,增加了一个延时,这样是可以在调用脚本运行后观察到matlab生成的figure,验证调用成功的效果,figure不会立刻消失,在延时之后会消失。
点击运行效果如下,可以看到生成了预期的figure图像,并将波形的数据存储到了txt中,说明脚本调用成功了。
如下是存储的txt中的数据
3.2 优缺点说明
优点:
不用关心matlab语法,直接提供单独的mat文件进行封装即可;可以调用包含嵌套函数的脚本,不过目前还没尝试过调用跨脚本文件的函数;不用安装matlab完全体,只需要安装运行引擎即可,对电脑配置要求较低;
缺点:
调用dll进行句柄初始化时需要花费一定的时间,跟电脑配置和脚本复杂程度有关,不过一般只需要初始化一次即可,后面反复调用都不会再花费时间