由于开发需要,上位机需要采用labview设计,但是之前研究算法主要靠matlab或者python,因此考虑采用labview混合编程的方式。
目前,界面设计采用Labview,而算法部分采用Matlab或者python,即采用混合编程的方式设计电池检测系统的上位机软件,要求开发的电脑上同时安装以上软件。
目前的开发环境的版本:
LabVIEW 2019 32bit中文版
MatLab R2018b以上版本
python 32bit
安装32bit的labview2019,按照一般网上教程正常安装即可。不过目前发现labview似乎只能装入c盘,想调整到别的盘比较麻烦,所以有个大c盘很重要。
Matlab安装与配置 Matlab按照一般网上教程正常安装即可。
按住完成后,需要额外安装Mingw编译器组件这里也有很多方法,安装mingv之后,只需配置下环境变量。
如果不想配置环境变量之类的,有个简单的方法:
找到matlab的附加功能按钮
在里面搜索mingw-w64
安装时需要注册账号。
装完后mex -setup确认编译器设置完成。
如果是别的编译器作为默认编译器,可以按照matlab提示切换mingw,当然,也可以用别的c++编译器。
另外,由于本次要生成的是com组件,以win10开发为例,还需要安装windows 10 sdk
去微软的官网下载(地址)
下载后得到一个在线安装包,安装操作执行即可。
在网上搜索python3.6的独立安装包,为了兼容性考虑,安装了32bit的版本(后面不带amd64)
然后安装即可。需要注意的是安装位置必须是设置为C:Python3.6
需要注意的是,anaconda的虚拟环境并不能成功与labview配合,所以这里只能安装python的官方版本。以后单独开发时,可以用virtualenv创建虚拟环境,然后在里面开发完后,在转入安装的全局python。
这里参照学习的是《LabVIEW调用MatLab程序进行混合编程的实用方法》
MatLab生成COM组件 MatLab中新建脚本文件,写入函数。这里简单的写一个求平方的函数作为例子。
点击“应用程序”->“应用程序编译器”。
然后在DEPLOYMENT窗口中,依次点击“NEW”->“Liabrary Compiler Porject”->“Generic COM component”-> 添加需要的.m文件->“Package”。
等待打包完成,MatLab会自动跳转到生成的文件夹,在for_testing文件夹下可看到生成的.dll文件。
LabVIEW后面板,函数面板中依次点击“Connectivity”->“ActiveX”,将“自动打开”和“调用节点”函数拖入后面板。
在“自动打开”函数上右击,浏览到MatLab生成的.dll文件。
已自动定位到类库,选择库中的对象,确定。
连接调用节点的引线,调用节点的方法中选择需要的函数(本例中是test函数)。
给函数的输入变量和输出变量赋值,可以看到变量的名称与我们在MatLab中建立的函数的变量名称完全一致,但多了一个变量nargout,这个变量是指输出变量的数量,一般为1就好。
前面板输入参数,运行
python的编写按照常规编写即可。使用任意编辑器,按照python语法构建一个函数,这里以一个加法函数为例。
2018版本开始,labview自带了python接口。
首先是“打开Python会话”控件,设置python版本
然后是连接“Python节点”控件,设置文件路径和选择函数名
同时设置函数返回类型
同理设置ass函数的节点配置,最后连接“关闭Python会话”
完成后的连接:
回到前面板,点击白色按钮可以运行,此时会报错,因为没有选择python文件路径。
设置选择后运行