由于开发需要,上位机需要采用labview设计,但是之前研究算法主要靠matlab或者python,因此考虑采用labview混合编程的方式。
目前,界面设计采用Labview,而算法部分采用Matlab或者python,即采用混合编程的方式设计电池检测系统的上位机软件,要求开发的电脑上同时安装以上软件。
目前的开发环境的版本:
LabVIEW 2019 32bit中文版
MatLab R2018b以上版本
python 32bit

软件安装与配置

labview安装

安装32bit的labview2019,按照一般网上教程正常安装即可。不过目前发现labview似乎只能装入c盘,想调整到别的盘比较麻烦,所以有个大c盘很重要。

Matlab安装与配置

Matlab按照一般网上教程正常安装即可。

按住完成后,需要额外安装Mingw编译器组件这里也有很多方法,安装mingv之后,只需配置下环境变量。

如果不想配置环境变量之类的,有个简单的方法:

找到matlab的附加功能按钮

Labview中是否有任何设置来更改Python的解释器 labview如何调用python_编译器


在里面搜索mingw-w64

Labview中是否有任何设置来更改Python的解释器 labview如何调用python_编译器_02


安装时需要注册账号。

装完后mex -setup确认编译器设置完成。

Labview中是否有任何设置来更改Python的解释器 labview如何调用python_labview_03

如果是别的编译器作为默认编译器,可以按照matlab提示切换mingw,当然,也可以用别的c++编译器。

Labview中是否有任何设置来更改Python的解释器 labview如何调用python_混合编程_04


另外,由于本次要生成的是com组件,以win10开发为例,还需要安装windows 10 sdk

去微软的官网下载(地址

下载后得到一个在线安装包,安装操作执行即可。

python

在网上搜索python3.6的独立安装包,为了兼容性考虑,安装了32bit的版本(后面不带amd64)

Labview中是否有任何设置来更改Python的解释器 labview如何调用python_混合编程_05


然后安装即可。需要注意的是如果没有勾选add python to path,安装位置必须记住,后面需要根据安装路径在系统环境变量path里加入它:

Labview中是否有任何设置来更改Python的解释器 labview如何调用python_labview_06


Labview中是否有任何设置来更改Python的解释器 labview如何调用python_matlab_07


需要注意的是,anaconda的虚拟环境并不能成功与labview配合,所以这里只能安装python的官方版本。以后单独开发时,可以用virtualenv创建虚拟环境,然后在里面开发完后,在转入安装的全局python。

混合编程示例

Matlab混合编程

这里参照学习的是《LabVIEW调用MatLab程序进行混合编程的实用方法

MatLab生成COM组件

MatLab中新建脚本文件,写入函数。这里简单的写一个求平方的函数作为例子。

Labview中是否有任何设置来更改Python的解释器 labview如何调用python_labview_08

点击“应用程序”->“应用程序编译器”。

如果你找不到application compiler,说明你安装matlab时没勾选matlab compiler

Labview中是否有任何设置来更改Python的解释器 labview如何调用python_混合编程_09


然后在DEPLOYMENT窗口中,依次点击“NEW”->“Liabrary Compiler Porject”->“Generic COM component”-> 添加需要的.m文件->“Package”。

如果你找不到type里面看不到Generic COM component这些,只有一个excel add-in的话,很可能是因为你安装matlab时没装matlab compiler SDK

Labview中是否有任何设置来更改Python的解释器 labview如何调用python_python_10

等待打包完成,MatLab会自动跳转到生成的文件夹,在for_testing文件夹下可看到生成的.dll文件。

Labview中是否有任何设置来更改Python的解释器 labview如何调用python_python_11

LabVIEW中调用COM组件

LabVIEW后面板,函数面板中依次点击“Connectivity”->“ActiveX”,将“自动打开”和“调用节点”函数拖入后面板。

Labview中是否有任何设置来更改Python的解释器 labview如何调用python_python_12


在“自动打开”函数上右击,浏览到MatLab生成的.dll文件。

Labview中是否有任何设置来更改Python的解释器 labview如何调用python_labview_13


Labview中是否有任何设置来更改Python的解释器 labview如何调用python_labview_14


已自动定位到类库,选择库中的对象,确定。

Labview中是否有任何设置来更改Python的解释器 labview如何调用python_labview_15


连接调用节点的引线,调用节点的方法中选择需要的函数(本例中是test函数)。

Labview中是否有任何设置来更改Python的解释器 labview如何调用python_matlab_16


给函数的输入变量和输出变量赋值,可以看到变量的名称与我们在MatLab中建立的函数的变量名称完全一致,但多了一个变量nargout,这个变量是指输出变量的数量,一般为1就好。

前面板输入参数,运行

Labview中是否有任何设置来更改Python的解释器 labview如何调用python_编译器_17

Python混合编程

python编写

python的编写按照常规编写即可。使用任意编辑器,按照python语法构建一个函数,这里以一个加法函数为例。

Labview中是否有任何设置来更改Python的解释器 labview如何调用python_matlab_18

调用python

2018版本开始,labview自带了python接口。

Labview中是否有任何设置来更改Python的解释器 labview如何调用python_混合编程_19


Labview中是否有任何设置来更改Python的解释器 labview如何调用python_python_20


首先是“打开Python会话”控件,设置python版本

Labview中是否有任何设置来更改Python的解释器 labview如何调用python_matlab_21


然后是连接“Python节点”控件,设置文件路径和选择函数名

Labview中是否有任何设置来更改Python的解释器 labview如何调用python_混合编程_22


同时设置函数返回类型

Labview中是否有任何设置来更改Python的解释器 labview如何调用python_matlab_23


同理设置ass函数的节点配置,最后连接“关闭Python会话”

完成后的连接:

Labview中是否有任何设置来更改Python的解释器 labview如何调用python_matlab_24


回到前面板,点击白色按钮可以运行,此时会报错,因为没有选择python文件路径。

Labview中是否有任何设置来更改Python的解释器 labview如何调用python_matlab_25


设置选择后运行

Labview中是否有任何设置来更改Python的解释器 labview如何调用python_matlab_26