labview混合编程学习

article/2025/7/6 6:29:52

由于开发需要,上位机需要采用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的附加功能按钮
在这里插入图片描述
在里面搜索mingw-w64
在这里插入图片描述
安装时需要注册账号。
装完后mex -setup确认编译器设置完成。
在这里插入图片描述

如果是别的编译器作为默认编译器,可以按照matlab提示切换mingw,当然,也可以用别的c++编译器。
在这里插入图片描述
另外,由于本次要生成的是com组件,以win10开发为例,还需要安装windows 10 sdk
去微软的官网下载(地址)
下载后得到一个在线安装包,安装操作执行即可。

python

在网上搜索python3.6的独立安装包,为了兼容性考虑,安装了32bit的版本(后面不带amd64)
在这里插入图片描述
然后安装即可。需要注意的是如果没有勾选add python to path,安装位置必须记住,后面需要根据安装路径在系统环境变量path里加入它:
在这里插入图片描述
在这里插入图片描述
需要注意的是,anaconda的虚拟环境并不能成功与labview配合,所以这里只能安装python的官方版本。以后单独开发时,可以用virtualenv创建虚拟环境,然后在里面开发完后,在转入安装的全局python。

混合编程示例

Matlab混合编程

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

MatLab生成COM组件

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

点击“应用程序”->“应用程序编译器”。
如果你找不到application compiler,说明你安装matlab时没勾选matlab compiler
在这里插入图片描述
然后在DEPLOYMENT窗口中,依次点击“NEW”->“Liabrary Compiler Porject”->“Generic COM component”-> 添加需要的.m文件->“Package”。
如果你找不到type里面看不到Generic COM component这些,只有一个excel add-in的话,很可能是因为你安装matlab时没装matlab compiler SDK
**加粗样式**

等待打包完成,MatLab会自动跳转到生成的文件夹,在for_testing文件夹下可看到生成的.dll文件。
在这里插入图片描述

LabVIEW中调用COM组件

LabVIEW后面板,函数面板中依次点击“Connectivity”->“ActiveX”,将“自动打开”和“调用节点”函数拖入后面板。
在这里插入图片描述
在“自动打开”函数上右击,浏览到MatLab生成的.dll文件。

在这里插入图片描述
在这里插入图片描述
已自动定位到类库,选择库中的对象,确定。
在这里插入图片描述
连接调用节点的引线,调用节点的方法中选择需要的函数(本例中是test函数)。
在这里插入图片描述
给函数的输入变量和输出变量赋值,可以看到变量的名称与我们在MatLab中建立的函数的变量名称完全一致,但多了一个变量nargout,这个变量是指输出变量的数量,一般为1就好。
前面板输入参数,运行
在这里插入图片描述

Python混合编程

python编写

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

调用python

2018版本开始,labview自带了python接口。
在这里插入图片描述
在这里插入图片描述
首先是“打开Python会话”控件,设置python版本
在这里插入图片描述
然后是连接“Python节点”控件,设置文件路径和选择函数名
在这里插入图片描述
同时设置函数返回类型
在这里插入图片描述
同理设置ass函数的节点配置,最后连接“关闭Python会话”
完成后的连接:
在这里插入图片描述
回到前面板,点击白色按钮可以运行,此时会报错,因为没有选择python文件路径。
在这里插入图片描述
设置选择后运行
在这里插入图片描述


http://chatgpt.dhexx.cn/article/mCee1tRk.shtml

相关文章

了解LabVIEW编程

LabVIEW通其他编程语言和软件一样,安装容易,容易使用。 LabVIEW是一种程序开发环境,由美国国家仪器(NI)公司研制开发,类似于C和BASIC开发环境,但是LabVIEW与其他计算机语言的显著区别是:其他计算机语言都是采用基于文…

LabVIEW编程规范

LabVIEW编程规范 编写LabVIEW程序应该遵循哪些规范,使得编写的程序在运行效率、可读性和可维护性方面得到显著提高? 和本文编程语言类似,在LabVIEW中设计程序框图时也应该养成良好的编程习惯,使得设计出的图形化程序外观美观、便…

LabVIEW编程入门笔记

CSDN话题挑战赛第2期 参赛话题:学习笔记 学习之路,长路漫漫,写学习笔记的过程就是把知识讲给自己听的过程。这个过程中,我们去记录思考的过程,便于日后复习,梳理自己的思路。学习之乐,独乐乐&a…

LabVIEW学习入门(二)

一、Labview编程特点 基本无需code,是图形编程,选择部件,然后将其连接起来并行性运行,而非顺序执行基于数据流运行 二、Labview编程特点举例说明 实现顺序执行可借助“程序框图”页的"Programming"中的"Structu…

LabVIEW编程基础:事件结构框架编程

LabVIEW又称为G语言,简单易学、形象直观,采用图形化的编程方式,是专为测试、测量和控制应用而设计的系统工程软件。 前面几篇文章依次讲解了LabVIEW中顺序顺序结构、条件结构及循环结构的编程方法,下面再讲一种与软件界面响应有关…

LabVIEW编程基础:条件结构编程

目录 一、条件结构框架特点 二、示例1:布尔型的条件输入 三、示例1运行效果 四、示例2:数值型的条件输入 五、示例3:枚举型的条件输入 六、示例3:运行效果 七、示例4:字符串型的条件输入 八、示例4&#xff1a…

啊这!终于不用敲代码了?Labview牛逼!带你轻松入门Labview~

文章目录 一、Labview的三大特征1、图形编程2、并行性运行3、基于数据流 二、Labview编程小tips1、快捷键!2、善于利用Labview中的“即使帮助”3、运行之后某个控件或函数部分闪了?!——出错了!4、我喜欢有代码洁癖的程序员&#…

noip201506 Message 信息传递

试题描述: 有 n 个同学(编号为 1 到 n )正在玩一个信息传递的游戏。在游戏里每人都有一个固定的信息传递对象,其中,编号为 i 的同学的信息传递对象是编号为 T_i 的同学。游戏开始时,每人都只知道自己的生日…

Codevs 4511 信息传递

题目描述 Description 有个同学(编号为 1 到)正在玩一个信息传递的游戏。在游戏里每人都有一个固定的信息传递对象,其中,编号为的同学的信息传递对象是编号为的同学。游戏开始时,每人都只知道自己的生日。之后每一轮中…

消息的传递

我们的郭嘉大大在曹操这过得逍遥自在,但是有一天曹操给了他一个任务,在建邺城内有 N 个袁绍的奸细,将他们从 1 到 N 进行编号,同时他们之间存在一种传递关系,即若C{i,j}1,则奸细 i 能将消息直接传递给奸细 …

简单知识——跨页面信息传递

背景 一个简单的数据查询功能,列表页面有“查看详情”按钮,跳转详情页面时列表的一条记录信息需要传递到详情页面;而详情页面有“返回”按钮,返回的同时也需要将原列表的查询条件回显。 跳转方式直接是 window.location.href&am…

信息传递的多样化的挑战

信息传递的障碍,是造成竞争被动的重要原因。因此,要使有用的信息得以正确传递,必须克服这种传递障碍。 方法之一是减少组织机构层次和信息传递的环节,尽量做到信息的直接贯通。 方法之二是采取双向传递方式。传统的传递往往是高一…

java实现信息传递

在过去,我们无数次实现了代码的本机运行,一行行的代码在我们的屏幕上飞舞,最终形成种种不同的结果,但是,这些都止于自己的计算机上,在这个万物互联的世界里,通信,是不可缺少的一环&a…

【PyG入门学习】三:信息传递机制

1.理论基础 将普通的卷积过程推广到非规则数据领域一般是通过邻域聚合或者信息传递机制。 x i ( k − 1 ) ∈ R F x^{(k-1)}_i∈R^F xi(k−1)​∈RF表示在第k-1层节点i的节点特征, e j , i ∈ R D e_{j,i}∈R^D ej,i​∈RD表示从节点j到节点i的边的特征&#xff08…

[易飞]录入信息传递设置信息

通常我们在查询相关单据单身中会有附带上一个单别的关联单据,比如采购发票单身有进货单单别、单号。系统默认做了超连接。 可有些时候我想查看这个品号信息的参数呢?是否可以自定义呢? 今天是礼拜一,打开某聊天群:就显…

100种思维模型之信息传递思维模型-028

人与人之间存有 认知偏差和理解偏差 ,信息在传递过程中会 衰减、失真以及再加工 ! 信息传递思维模型 ,一个有助于 提高信息传递质量 的思维模型。下面从三个方面进行介绍, 何谓信息传递思维模型、信息传递思模型生活中的运…

沟通管理--关于信息的有效传递和维护

沟通管理作为项目管理核心知识领域之一,在项目管理和团队协作中的作用毋庸置疑。沟通管理涉及的范围很广,本文从沟通的重要性和模型出发,主要从信息传递和信息维护这两个方面对沟通管理进行阐述。 一. 关于沟通 下面这张图描绘了西方文化中…

HC官方资料介绍

中国区市场招商联系方式:13867974424

HC-SR04驱动记录

文章目录 1、工作原理2、读取数据方式3、驱动记录 1、工作原理 常用的HC-SR04模块如下所示: 引脚说明: 引脚说明VCC电源,常用5vTrig控制端Echo接收端GND地 使用说明: 控制端发送一个10us的高电平脉冲,之后再接收口…

【STM32篇】驱动HC_SR04超声波测距模块

CH_SR04 一、简介 1.产品特点 HC_SR04超声波测距模块可提供2cm-400cm的非接触式测距感测功能,测距精度高达3mm;模块包括超声波发射器,接收器与控制电路。 基本工作原理: (1)采用IO口TRIG触发测距&#xff0…