Generador de función (Function Generator, FGEN)
Esta información corresponde a los controladores
CompactLogix
5370, ControlLogix
5570, Compact GuardLogix
5370, GuardLogix
5570, Compact GuardLogix
5380, CompactLogix
5380, ControlLogix
5580, GuardLogix
5580 y ControlLogix 5590.La instrucción Generador de función (Function Generator, FGEN) convierte una entrada basándose en una función lineal por piezas.
Idiomas disponibles
Diagrama de lógica de escalera

Bloque de funciones

Texto estructurado
FGEN(FGEN_tag,X1,Y1,X2,Y2);
Operandos
Diagrama de lógica de escalera
Operando | Tipo | Formato | Descripción |
|---|---|---|---|
FGEN tag | FUNCTION_ GENERATOR | estructura | Estructura FGEN |
In | REAL | etiqueta / inmediato | La entrada de la señal analógica a la instrucción. Válido = cualquier punto flotante |
X1 | REAL | matriz | Matriz del eje X, tabla uno. Combine con la matriz del eje Y, tabla uno, para definir los puntos de la primera curva lineal por piezas. Válido = cualquier punto flotante |
Y1 | REAL | matriz | Matriz del eje Y, tabla uno. Combine con la matriz del eje X, tabla uno, para definir los puntos de la primera curva lineal por piezas. Válido = cualquier punto flotante |
X2 | REAL | matriz | (opcional) Matriz del eje X, tabla dos. Combine con la matriz del eje Y, tabla dos, para definir los puntos de la segunda curva lineal por piezas. Válido = cualquier punto flotante |
Y2 | REAL | matriz | (opcional) Matriz del eje Y, tabla dos. Combine con la matriz del eje X, tabla dos, para definir los puntos de la segunda curva lineal por piezas. Válido = cualquier punto flotante |
Bloque de funciones
Operando | Tipo | Formato | Descripción |
|---|---|---|---|
FGEN tag | FUNCTION_ GENERATOR | estructura | Estructura FGEN |
X1 | REAL | matriz | Matriz del eje X, tabla uno. Combine con la matriz del eje Y, tabla uno, para definir los puntos de la primera curva lineal por piezas. Válido = cualquier punto flotante |
Y1 | REAL | matriz | Matriz del eje Y, tabla uno. Combine con la matriz del eje X, tabla uno, para definir los puntos de la primera curva lineal por piezas. Válido = cualquier punto flotante |
X2 | REAL | matriz | (opcional) Matriz del eje X, tabla dos. Combine con la matriz del eje Y, tabla dos, para definir los puntos de la segunda curva lineal por piezas. Válido = cualquier punto flotante |
Y2 | REAL | matriz | (opcional) Matriz del eje Y, tabla dos. Combine con la matriz del eje X, tabla dos, para definir los puntos de la segunda curva lineal por piezas. Válido = cualquier punto flotante |
Texto estructurado
Operando | Tipo | Formato | Descripción |
|---|---|---|---|
FGEN tag | FUNCTION_ GENERATOR | estructura | Estructura FGEN |
X1 | REAL | matriz | Matriz del eje X, tabla uno. Combine con la matriz del eje Y, tabla uno, para definir los puntos de la primera curva lineal por piezas. Válido = cualquier punto flotante |
Y1 | REAL | matriz | Matriz del eje Y, tabla uno. Combine con la matriz del eje X, tabla uno, para definir los puntos de la primera curva lineal por piezas. Válido = cualquier punto flotante |
X2 | REAL | matriz | (opcional) Matriz del eje X, tabla dos. Combine con la matriz del eje Y, tabla dos, para definir los puntos de la segunda curva lineal por piezas. Válido = cualquier punto flotante |
Y2 | REAL | matriz | (opcional) Matriz del eje Y, tabla dos. Combine con la matriz del eje X, tabla dos, para definir los puntos de la segunda curva lineal por piezas. Válido = cualquier punto flotante |
Consulte
Sintaxis de texto estructurado
para obtener más información sobre la sintaxis de las expresiones dentro de texto estructurado.Estructura de FUNCTION_GENERATOR
Parámetro de entrada | Tipo de datos | Descripción |
|---|---|---|
EnableIn | BOOL | Habilita la entrada. Si no está en falso, la instrucción no se ejecuta y las salidas no se actualizan. El valor predeterminado es verdadero. |
In | REAL | La entrada de la señal analógica a la instrucción. Válido = cualquier punto flotante Valor predeterminado = 0,0 |
XY1Size | DINT | Número de puntos de la curva lineal por piezas que usar de la tabla uno. Si el valor es inferior a uno y se borra Select, la instrucción establece el bit correspondiente en Status y no se modifica la salida. Válido = de 1 a (el menor de los tamaños de las matrices X1 e Y1) Valor predeterminado = 1 |
XY2Size | DINT | Número de puntos de la curva lineal por piezas que usar de la tabla dos. Si el valor es inferior a uno y se establece Select, la instrucción establece el bit correspondiente en Status y no se modifica la salida. Válido = de 0 a (el menor de los tamaños de las matrices X2 e Y2) Valor predeterminado = 0 |
Select | BOOL | Esta entrada determina qué tabla usar. Cuando se borra, la instrucción utiliza la tabla uno; cuando se establece, la instrucción utiliza la tabla dos. Está borrado de forma predeterminada. |
Parámetro de salida | Tipo de datos | Descripción |
|---|---|---|
EnableOut | BOOL | Indica si la instrucción está habilitada. Se establece en falso si se produce un desbordamiento. |
Out | REAL | Salida de la instrucción. |
Status | DINT | Estado del bloque de funciones. |
InstructFault (Status.0) | BOOL | La instrucción generó un fallo. |
XY1SizeInv (Status.1) | BOOL | El tamaño de la tabla 1 no es válido o no es compatible con el tamaño de la matriz. |
XY2SizeInv (Status.2) | BOOL | El tamaño de la tabla 2 no es válido o no es compatible con el tamaño de la matriz. |
XisOutofOrder (Status.3) | BOOL | Los parámetros X no están ordenados. |
Descripción
La siguiente ilustración muestra cómo la instrucción FGEN convierte una curva de doce segmentos.

Los parámetros del eje X deben seguir la relación:
X[1] < X[2] < X[3] < ... < X[XY<n>Size],
donde XY<n>Size > 1 y es un número de puntos en la curva lineal por piezas y donde n es 1 o 2 para la tabla seleccionada. Debe crear elementos del eje X ordenados en las matrices X.
La entrada Select determina qué tabla usar para la instrucción. Cuando la instrucción se está ejecutando en una tabla, puede modificar los valores de la otra tabla. Cambie el estado de Select para ejecutar con la otra tabla.
Antes de calcular Out, se escanean los parámetros del eje X. Si no se ordenan en orden ascendente, se establece el bit correspondiente en Status y Out permanece inalterado. Asimismo, si XY1Size o XY2Size no es válido, la instrucción establece el bit correspondiente en Status y deja Out inalterado.
La instrucción usa este algoritmo para calcular Out basándose en In:
- Cuando In
X[1], se establece Out = Y[1] - Cuando In > X[XY<n>Size], se establece Out = Y[XY<n>Size]
- Cuando X[n] < In
X[n+1], se calcula Out = ((Y[n+1]-Yn)/ (X[n+1]-Xn))*(In-Xn)+Yn
Afecta a las marcas de estado matemáticas
No
Fallo mayor/menor
No es específico para esta instrucción. Consulte Atributos comunes para ver los fallos relacionados con el operando.
Ejecución
Diagrama de lógica de escalera
Condición | Acción de bloque de funciones |
|---|---|
Pre-escaneado | La condición de salida de renglón se borra a falsa. |
La condición de entrada de renglón es falsa | Establecer la condición de salida de renglón a condición de entrada de renglón. |
La condición de entrada de renglón es verdadera | Establecer la condición de salida de renglón a condición de entrada de renglón. |
Post-escaneado | La condición de salida de renglón se borra a falsa. |
Diagrama de bloque de funciones
Condición | Acción de bloque de funciones |
|---|---|
Pre-escaneado | Los bits EnableIn y EnableOut se establecen en falso. |
EnableIn es falso | Los bits EnableIn y EnableOut se establecen en falso. |
EnableIn es verdadero | Los bits EnableIn y EnableOut se establecen en verdaderos. Ejecutar el algoritmo FGEN. |
Primera ejecución de instrucción | N/A |
Primer escaneado de instrucción | Establezca el Out interno en 0,0 Ejecutar el algoritmo FGEN. |
Post-escaneado | Los bits EnableIn y EnableOut se establecen en falso. |
Texto estructurado
Condición/estado | Acción realizada |
|---|---|
Pre-escaneado | Los bits EnableIn y EnableOut se establecen en falso. |
Ejecución normal | Los bits EnableIn y EnableOut se establecen en verdaderos. Ejecutar el algoritmo FGEN. |
Post-escaneado | Los bits EnableIn y EnableOut se establecen en falso. |
Ejemplos
Ejemplo 1
En este ejemplo, la instrucción FGEN caracteriza una señal de flujo que se totaliza a continuación mediante el uso de una instrucción TOT. Las matrices FGEN_01X1 y FGEN_01Y1 son matrices de tipo REAL de 10 elementos cada una para admitir una curva de hasta 9 segmentos. Puede usar matrices de cualquier tamaño para admitir una curva del número de segmentos que quiera.
Bloque de funciones

Diagrama de lógica de escalera

Ejemplo 2
Este ejemplo pasa parámetros opcionales a la instrucción FGEN.
Bloque de funciones

Diagrama de lógica de escalera

Entregue su opinión