LabVIEW与MATLAB联合编程之使用dll库文件连接

LabVIEW与MATLAB联合编程之使用dll库文件连接

最近做东西的时候用到了在LabVIEW里面调用MATLAB的分类模型,辗转多篇文章终于搞定,特此记录,以供参考。

编程环境:Windows11MATLAB2020aLabVIEW2019VisualStudio2022,全是64位。

我这里重点记录了安装编译器的过程,打包与LABVIEW调用dll的过程都有参考的链接。

一、MATLAB程序打包至dll

MATLAB程序打包主要分为安装编译器与打包两部分。

1 MATLAB安装编译器

从matlab程序到dll文件需要使用编译器,在此之前最好先安装有VisualStudio,有些c++的库也会有用,没有的话打包出来的文件有可能会有问题,之后最主要参考的就是这篇【MATLAB】如何安装配置MinGW-w64 C/C++编译器,这里再把我的过程详细记录一下。

1、打开MATLAB,选择“附加功能”里的“获取附加功能”:
在这里插入图片描述
获取附加功能
2、在附加功能资源管理器的搜索栏里面搜索MinGW
在这里插入图片描述
3、选择最上面的这一个:
在这里插入图片描述
4、根据自己MATLAB的版本选择进入对应的链接
在这里插入图片描述
5、点击downloads
在这里插入图片描述
6、页面往下拉,找到Sources这部分,点击SourceForge链接:
在这里插入图片描述
7、进去之后点一下这里,进去上一层目录:
在这里插入图片描述
8、根据自己的需求选择合适的版本,这里我选择的是x86_64-posix-seh,其中x86_64是指64位系统,posix同样是应用于64位,seh相比于sjij性能更强,但稳定性不如:
在这里插入图片描述
9、解压完成后把解压完成的文件直接放到C盘的根目录下面:
在这里插入图片描述
10、右键桌面上的计算机,选择属性-高级系统设置-高级-环境变量
在这里插入图片描述
在这里插入图片描述
11、点击新建,然后把MW_MINGW64_LOG作为变量名,C:\mingw64\bin作为变量值,点击确定
在这里插入图片描述

在这里插入图片描述

12、找到系统变量里面的Path,点击编辑
在这里插入图片描述
13、点击新建,将C:\mingw64\bin加进去,之后一直点确定保存退出就行了:
在这里插入图片描述
14、打开MATLAB2020a,在命令行窗口输入:

setenv('MW_MINGW64_LOC', 'C:\mingw64');

在这里插入图片描述
15、在输入mex -setup测试一下,没问题就完成了编译器的配置,如果重新打开MATLAB发现输入mex -setup的时候又显示找不到了,就重新执行第14步:
在这里插入图片描述

2 程序打包

编译器安装好之后,需要对MATLAB代码进行调整,需要注意的是代码里面不能有类对象,就是像A.feature,在LabVIEW里面属于无法识别的变量。

打包的过程可以参考这篇LabVIEW与MATLAB混合编程—com组件的使用,讲的非常的详细,只是安装编译器的过程我这里已经装好了,和这篇文章里的不一样,我试了那篇文章里的方法,在MATLAB里面输入mex -setup之后还是显示没有安装,没办法,我就查到了上面安装编译器的方法。

二、LabVIEW调用dll

同样参考这篇LabVIEW与MATLAB混合编程—com组件的使用,但我实操过程中有一些坑记录一下:

(1)这里调用的dll是用MATLAB打包的COM类型的,和.NET类型的不同,所以这点要注意!

(2)有的时候LABVIEW会卡住,导致导入dll文件的时候老是识别不出来,只要彻底关掉LABVIEW之后重新试一次就行了。

(3)参考的那篇文章最后提供的例程里面,要完全把Invoke Node节点的输出的个数、数据类型给设定好,连好,不然会报错。

(4)在另一台电脑上使用的时候同样需要搭建一模一样的编程环境,安装MATLAB和VisualStudio,当然也有完整打包的方式,需要的话自己再额外查资料。

FIG. MATLAB函数
在这里插入图片描述

FIG. LABVIEW程序面板
在这里插入图片描述

FIG. LABVIEW前面板
在这里插入图片描述

最后祝大家都能成功实现!

  • 28
    点赞
  • 64
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值