系统环境

LabVIEW2022 64bit 英文版
Python3.6.8 64bit

Python 节点

简介

Python节点可直接调用Python函数。

Python节点为可扩展函数,可显示已连线的输入端和输出端的数据类型。

可以配置Python节点以指定Python会话、模块路径和函数名称。

labview调用深度学习模型 labview能调用python吗_数据类型

  • 会话句柄输入: 指定对Python会话的引用。一个或多个Python节点可以在单个Python会话中运行。
  • 模块路径: 指定Python模块的路径。该模块包含要调用的Python函数。
  • 函数名称: 指定要调用的Python函数名称。
  • 错误输入: 表明节点运行前的错误情况。 该输入提供标准错误输入功能。
  • 返回类型: 指定返回值的数据类型。 您必须将数据类型连接到返回类型,以指示返回值的预期数据类型。如果Python函数没有返回任何值,请不要连线返回类型
  • 输入参数: 指定Python函数的输入参数。 您可以调整Python节点以添加更多接线端。连线左侧的接线端即可为Python函数传递值。从右侧的接线端开始连线,可读取函数调用后参数的值。
  • 会话句柄输出: 返回对Python会话的引用。
  • 错误输出: 中包含错误信息。 该输出提供标准错误输出功能。
  • 返回值: Python函数的返回值。

基本使用框架

  1. 输入python版本字符串(“3.6”、“3.7”、“3.8”或“3.9”)
  2. 使用指定的python版本打开python会话。这将创建一个执行python代码的python主机进程
  3. 输入.py文件的完整路径
  4. 输入.py文件中需调用的函数名
  5. 关闭python会话。这将终止会话打开时创建的进程

labview调用深度学习模型 labview能调用python吗_Python_02

节点详细信息

支持的数据类型

Python节点支持大量的数据类型。可调用以下数据类型:

  • 数值
  • 数组(包括多维数组)
  • 字符串
  • 布尔

调用规范

  • 将整数、字符串和布尔转换为Python中对应的数据类型
  • 数组转换为列表ListNumPy数组
  • 默认情况下,Python节点将数组转换为列表List 。要将连接到输入参数的数组转换为NumPy数组,可右键单击输入参数并从快捷菜单中选择转换至NumPy数组
  • 只能将数值数组转换为NumPy数组
  • 转换为元组NamedTuple
  • 默认情况下,Python节点将簇整理为Tuple。在 Python 中,只能通过索引和iterator指定Tuple中的项。Python支持命名Tuple,所以也可通过名称来指定Tuple中的项。如果要按名称引用Tuple中的项,则必须将簇整理为Namedtuple。要将输入的簇整理为Namedtuple,可右键单击输入参数并从快捷菜单中选择转换为Namedtuple

应用 - 调用复杂数据结构

在 LabVIWE 中的例程中,有关Python节点的案例返回较单一。这里参考一些博客,介绍几种Python节点调用复杂数据结构的方法。

方法1:使用LabVIEW数组和Python数组

labview调用深度学习模型 labview能调用python吗_数组_03


labview调用深度学习模型 labview能调用python吗_数组_04

import numpy as np

def Add_num(a, b, c):
    return np.array([[a, b, c]])

方法2:使用LabVIEW数组和Python列表

labview调用深度学习模型 labview能调用python吗_数据类型_05

labview调用深度学习模型 labview能调用python吗_数组_06

TestList = [False, True, False]
def return_list():
    x = TestList
    return x

方法3: 使用LabVIEW簇和Python字典

借助JSON字符串完成通信

labview调用深度学习模型 labview能调用python吗_数据类型_07

labview调用深度学习模型 labview能调用python吗_Python_08

import json

TestDict = {
    "String": "Test",
    "Number": 2,
    "Other number": 3
}

def return_dict():
    x = json.dumps(TestDict) 
    return x