Invocación de funciones Python en LabVIEW mediante nodos

Configuración del entorno

Para este ejemplo se utiliza LabVIEW 2022 (versión de 64 bits en inglés) junto con Python 3.6.8 (versión de 64 bits).

Nodos de Python

Descripción general

Los nodos de Python permiten invocar directamente funciones de Python dentro de LabVIEW. Son funciones extensibles que muestran tipos de datos en las entradas y salidas conectadas. Se pueden configurar para definir la sesión de Python, la ruta del módulo y el nombre de la función objetivo.

  • Entrada de manejador de sesión: Indica una referencia a la sesión de Python. Varios nodos pueden compartir una misma sesión.
  • Ruta del módulo: Ubicación del archivo .py que cnotiene la función a ejecutar.
  • Nombre de la función: Identificador de la función Python que se desea llamar.
  • Entrada de error: Señala condiciones de error previas a la ejecución. Ofrece funcionalidad estándar de entrada de errores.
  • Tipo de retorno: Define el tipo de datos del valor de retorno. Debe conectarse al tipo de retorno para especificar el tipo esperado. Si la función no retorna valores, no se requiere conexión.
  • Parámetros de entrada: Argumentos para la función Python. Los terminales izquierdos permiten pasar valores, mientras que los derechos leen los valores después de la invocación.
  • Salida de maneajdor de sesión: Proporciona la referencia a la sesión de Python utilizada.
  • Salida de error: Contiene información de errores. Ofrece funcionalidad estándar de salida de errores.
  • Valor de retorno: Resultado devuelto por la función Python.

Estructura básica de uso

  1. Ingresar la cadena de versión de Python ("3.6", "3.7", "3.8" o "3.9").
  2. Abrir una sesión de Python con la versión especificada, lo que genera un proceso host para ejecutar código Python.
  3. Proporcionar la ruta completa al archivo .py.
  4. Especificar el nombre de la función dentro del archivo .py que se desea invocar.
  5. Cerrar la sesión de Python para finalizar el proceso creado.

Detalles del nodo

Tipos de datos admitidos

El nodo de Python es compatible con múltiples tipos de datos, tales como:

  • Valores numéricos
  • Arreglos (incluyendo multidimensionales)
  • Cadenas de texto
  • Clusters
  • Valores booleanos

Convenciones de conversión

  • Enteros, cadenas y booleanos se transforman a sus equivalentes en Python.
  • Los arreglos se convierten en listas o arreglos de NumPy:
    • Por defecto, se crean listas. Para generar arreglos NumPy, se debe usar la opción contextual en el parámetro de entrada.
    • Solo arreglos numéricos pueden convertirse a formato NumPy.
  • Los clusters se transforman en tuplas o NamedTuples:
    • Inicialmente se producen tuplas. Para utilizar NamedTuples y acceder por nombre, se selecciona la opción correspondiente en el menú contextual.

Ejemplo de aplicación: Manejo de estructuras de datos complejas

En ejemplos convencionales de LabVIEW, los retornos del nodo de Python suelen ser sencillos. A continuación se muestran técnicas para trabajar con estructuras de datos más elaboradas.

Método 1: Arreglos de LabVIEW con arreglos NumPy de Python

import numpy as np

def generar_arreglo_np(valor1, valor2, valor3):
    return np.array([[valor1, valor2, valor3]])

Método 2: Arreglos de LabVIEW con listas de Python

datos = [False, True, False]

def obtener_lista():
    resultado = datos
    return resultado

Método 3: Clusters de LabVIEW con diccionarios de Python mediante JSON

import json

diccionario = {
    "Texto": "Prueba",
    "Número": 3,
    "Otro número": 5
}

def convertir_a_json():
    return json.dumps(diccionario)

Etiquetas: LabVIEW Python NumPy json Python nodes

Publicado el 5-31 05:29