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.

El objeto flexpro.Data

Los datos de FlexPro difieren de los datos de 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)

Para concatenar listas FlexPro, debe usar la función flexpro.concat() en lugar del operador +, ya que este último añadiría los elementos de la lista uno a uno:

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

De forma similar, para añadir elementos a una lista FlexPro, debeusar la función flexpro.append() en lugar del operador +=:

flexpro.append(list, flexpro.named_list("Signal4", s4))

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 flexpro.call():

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

Se llama a una función FPScript o Python pasando los argumentos a flexpro.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.

Uso de funciones FPScript en Python

El módulo flexpro permite acceder a todas las funciones de FPScript en Python. Los argumentos se convierten a objetos flexpro.Data si no son de este tipo. El resultado se devuelve como un objeto flexpro.Data.

Operaciones Python compatibles

Con los objetos flexpro.Data también puede utilizar numerosas operaciones Python. Es compatible con las operaciones aritméticas, la operación de comparación y algunas funciones de conversión de tipos. Al igual que en FPScript, cuando se calculan objetos flexpro.Data en Python, las unidades también se calculan.

La siguiente tabla ofrece una vista general e indica el operador FPScript equivalente que se utiliza en cada caso.

Operador Python/función

Operador FPScript/función

A + B, A += B

Suma (+)

A - B, A -= B

Resta (-)

-A

Negación (-)

A * B, A *= B

Multiplicación (*)

A / B, A /= B
A // B, A //= B

División (/)

A % B, A %= B

Resto de la división (Mod)

A @ B, A @= B

MatrixMultiplication()

abs(A)

Absolute()

A ** B, pow(A, B. C)

Potenciación (^)

~A

No bit a bit (~)

A | B, A |= B

O bit a bit (|)

A & B, A &= B

Y bit a bit (&)

A ^ B, A ^= B

O exclusivo bit a bit (XOr)

A >> B, A >>= B

Desplazamiento a la derecha bit a bit (>>)

A << B, A <<= B

Desplazamiento a la izquierda bit a bit (<<)

int(A)

Integer64

float(A)

FloatingPoint64

bool(A)

Booleano

A == B

Igual a (==)

A >= B

Mayor o igual (>=)

A > B

Mayor que (>)

A <= B

Menor o igual (<=)

A < B

Menor que (<)

A != B

No igual (<>)

Para los operadores de FPScript que no tienen un operador equivalente en Python, existen funciones correspondientes en el módulo flexpro.

La siguiente tabla muestra los operadores y sus funciones de Python correspondientes:

Operador FPScript

Función Python

Signo (#)

flexpro.sign()

Agrupación

flexpro.bundle()

Serie de datos

flexpro.lin_series()

Lista

flexpro.list(), flexpro.named_list()

Concatenación (:)

flexpro.concat()

Multiplicación (#)

flexpro.mult()

Conversión de datos *)

flexpro.ChangeDataType()

AbsoluteTime

flexpro.absolute_time()

RelativeTime

flexpro.relative_time()

Unit *)

flexpro.ChangeUnit()

Value

flexpro.value()

Número complejo

flexpro.complex()

Complejo conjugado

flexpro.conj()

Índice

flexpro.idx()

ÍndiceDeValores

flexpro.validx()

Indirección

flexpro.call(), flexpro.object()

Elemento de lista

flexpro.listidx()

Anexar

flexpro.append()

Asignación indexada

flexpro.idx_assign(), flexpro.validx_assign()

*) No existe una función de Python para este operador, ya que su funcionalidad está cubierta por la función de FPScript mencionada.

Véase también

Propiedades de Python

 

 

 

 

 

 

 

 

 

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.

El objeto flexpro.Data

Los datos de FlexPro difieren de los datos de 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)

Para concatenar listas FlexPro, debe usar la función flexpro.concat() en lugar del operador +, ya que este último añadiría los elementos de la lista uno a uno:

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

De forma similar, para añadir elementos a una lista FlexPro, debeusar la función flexpro.append() en lugar del operador +=:

flexpro.append(list, flexpro.named_list("Signal4", s4))

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 flexpro.call():

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

Se llama a una función FPScript o Python pasando los argumentos a flexpro.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.

Uso de funciones FPScript en Python

El módulo flexpro permite acceder a todas las funciones de FPScript en Python. Los argumentos se convierten a objetos flexpro.Data si no son de este tipo. El resultado se devuelve como un objeto flexpro.Data.

Operaciones Python compatibles

Con los objetos flexpro.Data también puede utilizar numerosas operaciones Python. Es compatible con las operaciones aritméticas, la operación de comparación y algunas funciones de conversión de tipos. Al igual que en FPScript, cuando se calculan objetos flexpro.Data en Python, las unidades también se calculan.

La siguiente tabla ofrece una vista general e indica el operador FPScript equivalente que se utiliza en cada caso.

Operador Python/función

Operador FPScript/función

A + B, A += B

Suma (+)

A - B, A -= B

Resta (-)

-A

Negación (-)

A * B, A *= B

Multiplicación (*)

A / B, A /= B
A // B, A //= B

División (/)

A % B, A %= B

Resto de la división (Mod)

A @ B, A @= B

MatrixMultiplication()

abs(A)

Absolute()

A ** B, pow(A, B. C)

Potenciación (^)

~A

No bit a bit (~)

A | B, A |= B

O bit a bit (|)

A & B, A &= B

Y bit a bit (&)

A ^ B, A ^= B

O exclusivo bit a bit (XOr)

A >> B, A >>= B

Desplazamiento a la derecha bit a bit (>>)

A << B, A <<= B

Desplazamiento a la izquierda bit a bit (<<)

int(A)

Integer64

float(A)

FloatingPoint64

bool(A)

Booleano

A == B

Igual a (==)

A >= B

Mayor o igual (>=)

A > B

Mayor que (>)

A <= B

Menor o igual (<=)

A < B

Menor que (<)

A != B

No igual (<>)

Para los operadores de FPScript que no tienen un operador equivalente en Python, existen funciones correspondientes en el módulo flexpro.

La siguiente tabla muestra los operadores y sus funciones de Python correspondientes:

Operador FPScript

Función Python

Signo (#)

flexpro.sign()

Agrupación

flexpro.bundle()

Serie de datos

flexpro.lin_series()

Lista

flexpro.list(), flexpro.named_list()

Concatenación (:)

flexpro.concat()

Multiplicación (#)

flexpro.mult()

Conversión de datos *)

flexpro.ChangeDataType()

AbsoluteTime

flexpro.absolute_time()

RelativeTime

flexpro.relative_time()

Unit *)

flexpro.ChangeUnit()

Value

flexpro.value()

Número complejo

flexpro.complex()

Complejo conjugado

flexpro.conj()

Índice

flexpro.idx()

ÍndiceDeValores

flexpro.validx()

Indirección

flexpro.call(), flexpro.object()

Elemento de lista

flexpro.listidx()

Anexar

flexpro.append()

Asignación indexada

flexpro.idx_assign(), flexpro.validx_assign()

*) No existe una función de Python para este operador, ya que su funcionalidad está cubierta por la función de FPScript mencionada.

Véase también

Propiedades de Python