LEAD_LAG: Algoritmo Lead y Lag (S7-300, S7-400) - STEP 7

SCL (S7-300, S7-400)

ft:publication_title
SCL (S7-300, S7-400)
Product
STEP 7
Version
V20
Publication date
11/2024
Language
es-ES
LEAD_LAG: Algoritmo Lead y Lag

Descripción

La instrucción "Algoritmo Lead y Lag" procesa señales con una variable analógica. El valor de la ganancia en el parámetro GAIN debe ser mayor que cero. El resultado de la instrucción "Algoritmo Lead y Lag" se calcula con la siguiente ecuación:

La instrucción "Algoritmo Lead y Lag" solo devuelve resultados relevantes cuando se ejecuta en ciclos de programa fijos. Deben indicarse las mismas unidades en los parámetros LD_TIME, LG_TIME y SAMPLE_T. Si LG_TIME > 4 + SAMPLE_T, la instrucción se aproxima a la siguiente función:

OUT = GAIN * ((1 + LD_TIME * s) / (1 + LG_TIME * s)) * IN

Si el valor del parámetro GAIN es menor o igual a cero, no se realiza el cálculo y el parámetro ERR_CODE devuelve una información de error.

La instrucción "Algoritmo Lead y Lag" puede utilizarse junto con bucles para la compensación en el control anticipativo. La instrucción comprende dos operaciones. La operación "Lead" desplaza la fase de la salida OUT, anticipándose la salida a la entrada. En cambio, la operación "Lag" desplaza la salida, de manera que la salida sigue a la entrada. Puesto que la operación "Lag" equivale a una integración, puede utilizarse como supresor de perturbaciones o filtro de paso bajo. La operación "Lead" equivale a una acción diferencial, por lo que puede utilizarse como un filtro de paso alto. La combinación de ambas operaciones (Lead y Lag) hace que la fase de salida siga a la entrada a bajas frecuencias y se le anticipe a altas frecuencias. Por este motivo, la instrucción "Algoritmo Lead y Lag" puede utilizarse como si fuera un filtro de paso de banda.

Al insertar la instrucción en el programa, el cuadro de diálogo "Opciones de llamada" se abre automáticamente; en él se puede determinar si los parámetros de bloque de la instrucción se depositan en un bloque de datos propio (instancia individual) o bien como variable local (multiinstancia) en la interfaz del bloque. Si crea un bloque de datos propio, lo encontrará en el árbol del proyecto, en la carpeta "Recursos de programa", en "Bloques de programa > Bloques de sistema". Encontrará más información al respecto en "Consulte también".

Parámetros

La tabla siguiente muestra los parámetros de la instrucción:

Parámetro

Declaración

Tipo de datos

Área de memoria

Descripción

IN

Input

REAL

I, Q, M, D, L, P

Valor de entrada del tiempo de muestreo actual (tiempo de ciclo) que se procesa.

En el parámetro IN también se pueden indicar constantes.

SAMPLE_T

Input

INT

I, Q, M, D, L, P

Tiempo de muestreo

En el parámetro SAMPLE_T también se pueden indicar constantes.

OUT

Output

REAL

I, Q, M, D, L, P

Resultado de la instrucción

ERR_CODE

Output

WORD

I, Q, M, D, L, P

Información de error

LD_TIME

Static

REAL

I, Q, M, D, L, P

Tiempo de anticipación en la misma unidad que el tiempo de muestreo.

LG_TIME

Static

REAL

I, Q, M, D, L, P

Tiempo de seguimiento en la misma unidad que el tiempo de muestreo.

GAIN

Static

REAL

I, Q, M, D, L, P

Ganancia en % / % (relación del cambio en la salida con respecto al cambio en la entrada como estado constante).

PREV_IN

Static

REAL

I, Q, M, D, L, P

Entrada anterior

PREV_OUT

Static

REAL

I, Q, M, D, L, P

Salida anterior

Encontrará más información sobre los tipos de datos válidos en "Consulte también".

Los parámetros estáticos no son visibles al efectuar la llamada de la instrucción en el programa. Estos se almacenan en la instancia de la instrucción.

Parámetro ERR_CODE

La tabla siguiente muestra el significado de los valores del parámetro ERR_CODE:

Código de error*
(W#16#...)

Explicación

0000

Ningún error

0009

El valor del parámetro GAIN es menor o igual a cero.

*En el editor de programas, los códigos de error se pueden representar como valores enteros o hexadecimales. Encontrará más información sobre el cambio de los formatos de visualización en "Consulte también".

Ejemplo

El siguiente ejemplo muestra el funcionamiento de la instrucción:

Nota

Los parámetros estáticos pueden inicializarse en el bloque de datos.

SCL Copia el código de programa siguiente en el portapapeles.

"LEAD_LAG_DB"(IN := "Tag_Input",

              SAMPLE_T := "Tag_Input_SAMPLE_T",

              OUT => "Tag_Output_Result",

              ERR_CODE => "Tag_ErrorCode");

Las tablas siguientes muestran el funcionamiento de la instrucción con valores concretos.

Antes de la ejecución

En este ejemplo se utilizan los siguientes valores para los parámetros de entrada:

Parámetro

Operando

Valor

IN

Tag_Input

2.0

SAMPLE_T

Tag_Input_SAMPLE_T

10

Los siguientes valores se almacenan en el bloque de datos de instancia "LEAD_LAG_DB" de la instrucción:

Parámetro

Dirección

Valor

LD_TIME

DBD12

2.0

LG_TIME

DBD16

2.0

GAIN

DBD20

1.0

PREV_IN

DBD24

6.0

PREV_OUT

DBD28

6.0

Después de la ejecución

Una vez ejecutada la instrucción, los valores siguientes se escriben en los parámetros de salida:

Parámetro

Operando

Valor

OUT

Tag_Output_Result

2.0

Los siguientes valores se guardan en el bloque de datos de instancia "LEAD_LAD_DB" de la instrucción:

Parámetro

Operando

Valor

PREV_IN

DBD24

2.0

PREV_OUT

DBD28

2.0