Saltar navegación

Documentación de FlexPro 2025

Python

Python es un lenguaje intérprete de código abierto y fácil de aprender para el que existen numerosas bibliotecas sobre temas como inteligencia artificial, estadística, numérica y mucho más. La introducción al lenguaje de programación Python no es objeto de esta documentación. Puede encontrarla, por ejemplo, en https://www.python.org/doc/.

Python puede ampliarse de forma muy flexible, lo que permite una integración elegante en FlexPro. La conocida biblioteca NumPy de Python proporciona los tipos de datos de matriz necesarios para procesar los datos de medición. Son la base para el intercambio de datos con FlexPro, razón por la cual NumPy también se instala cuando se instala FlexPro. Puede encontrar información sobre NumPy en https://numpy.org/doc/stable/.

El módulo flexpro

Cuando se inicializa Python en FlexPro, se registra el módulo flexpro de Python, que es la interfaz para FlexPro.

Las clases de Python flexpro.DataObject y flexpro.Object representan objetos de datos FlexPro y otros objetos FlexPro para que pueda acceder a sus propiedades. Los objetos de estas clases se crean mediante la función flexpro.object(), a la que se pasan como argumento la ruta y el nombre en la base de datos del objeto al que se quiere acceder.

o = flexpro.object(r'\Data\Dataset1') crea un DataObject que representa el conjunto de datos "\Data\Dataset1".

La variable this ya está inicializada en todas las fórmulas Python y contiene el DataObject que representa la propia fórmula Python.

this.name devuelve el nombre de la fórmula Python en forma de cadena.

this.data = np.linspace(0, 10, 100) devuelve una serie lineal de datos como resultado de la fórmula.

Nota  En FPScript, cada instrucción devuelve un resultado que se asigna automáticamente a la fórmula como resultado. Este no es el caso en Python, y debe usar una asignación explícita this.data = ... Esto también se aplica a los resultados intermedios que desee ver como resultado de la fórmula en la ventana de inspección durante la búsqueda de errores con el depurador.

Los datos FlexPro difieren de los datos Python o NumPy en que pueden tener unidades y estructuras de datos compuestas con componentes Y, X y Z. Las listas también están disponibles en Python, pero no admiten elementos de lista con nombre. Por lo tanto, el módulo flexpro proporciona el tipo flexpro.Data, que puede representar datos FlexPro con todas las propiedades.

Puede crear un objeto flexpro.Data con datos FlexPro simples o compuestos utilizando el constructor flexpro.Data().

flexpro.Data(80.3, "dB") crea un valor escalar en coma flotante con la unidad "dB".

Este ejemplo crea una señal senoidal con componentes Y y X con unidades y la devuelve como resultado de la fórmula:

x = np.linspace(0, 10, 100)
y = np.sin(x)
this.data = flexpro.Data(y, "V", x, "s")

Si desea omitir las unidades, por ejemplo porque ya las ha introducido en el cuadro de diálogo de propiedades de la fórmula, debe nombrar los argumentos:

this.data = flexpro.Data(value_y = y, value_x = x)

Puede crear una lista FlexPro con dos elementos de lista con nombre de la siguiente manera, por ejemplo:

list = flexpro.named_list("Signal1", s1, "Signal2", s2)

Estas listas también permiten adjuntos:

list += flexpro.named_list("Signal3", s3)

Puede crear listas sin nombres de elemento con el operador de Python [ ... ] o con la función flexpro.list(). Este último es algo más eficiente porque no es necesaria la conversión al formato de datos FlexPro cuando se transfiere a FlexPro.

La propiedad data de la clase flexpro.DataObject devuelve los datos del objeto de datos como objeto flexpro.Data.

data = flexpro.object(r'\Data Set').data

Si desea acceder directamente a los datos, utilice la función call:

data = flexpro.call(r'\Data Set')

Se llama a una función FPScript o Python pasando los argumentos a call:

data = flexpro.call(r'\MyFunction', flexpro.call(r'\Data Set'), flexpro.Data(5, 'V'))

La clase flexPro.Data tiene las propiedades value y unit. value proporciona los datos numéricos como tipo de datos de matriz de Python o NumPy y unit proporciona la unidad en forma de cadena.

flexpro.Data(1.3, "V").value devuelve 1.3 como número en coma flotante.

flexpro.Data(1.3, "V").unit devuelve "V" como cadena.

Para una estructura de datos compuesta, seleccione primero el componente:

signal = flexpro.call(r'\Data\Signal1')

signal.y devuelve un objeto flexpro.Data que representa el componente Y con unidad.

signal.y.value devuelve los datos del componente Y como matriz de NumPy.

signal.y.unit devuelve "V" como cadena.

Si dispone de una lista, seleccione primero el elemento:

list["Señal1"] devuelve un objeto flexpro.Data que representa los datos del elemento de lista "Señal1".

Para las listas sin nombre o con nombres ambiguos, debe utilizar un índice numérico:

list[0]

FlexPro adjunta la información de cabecera de este objeto de datos a un objeto flexpro.Data originado a partir de un objeto de datos. Estas son esencialmente las propiedades que puede especificar en la pestaña General del objeto de datos.

Puede tener acceso de lectura y escritura a estas propiedades:

data = flexpro.call(r'\Signal')

data.unit_y devuelve la unidad Y del objeto de datos del que procede el valor, es decir, de "Señal".

data.comments_x = "tiempo"        Asigna un comentario X a los datos. Sin embargo, el acceso de escritura no es al objeto de datos "Señal" del que procede data, sino a una copia local de este atributo asignada al objeto de datos.

Véase también

Funciones Python

Propiedades de Python