FOR: Ejecutar en bucle contador (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
FOR: Ejecutar en bucle contador

Descripción

La instrucción "Ejecutar en bucle contador" permite procesar un bucle mientras la variable de contaje se encuentre dentro del rango de valores indicado.

Los bucles también se pueden anidar. Dentro de un bucle se pueden programar otros bucles con otras variables de contaje.

La ejecución actual de un bucle se puede finalizar con la instrucción "Verificar condición de bucle" (CONTINUE). La instrucción "Abandonar el bucle inmediatamente" (EXIT) permite finalizar el procesamiento de todo el bucle. Encontrará más información al respecto en "Consulte también".

Nota

Información sobre el número de ejecuciones y sobre la variable de control

El número de ejecuciones no puede modificarse durante la ejecución del programa.

Por motivos de rendimiento, la variable de control debe declararse en la sección "Temp" de la interfaz del bloque. Del mismo modo, la variable de control no debe modificarse durante le ejecución del programa, ya que de lo contrario la instrucción puede devolver un resultado indefinido en función de la implementación.

Valores límite para instrucciones FOR

Para programar instrucciones FOR "seguras" que no se ejecuten de manera infinita, tenga en cuenta las siguientes reglas y los siguientes valores límite:

FOR <variable de contaje> := <valor inicial> TO <valor final> BY <incremento> DO <instrucciones>;

END_FOR;

Si...

... entonces

Observación

Valor inicial < valor final

Valor final < (PMAX - paso)

La variable de contaje cuenta en sentido positivo

Valor inicial > valor final AND valor de paso < O

Valor final > (NMAX - paso)

La variable de contaje cuenta en sentido negativo

Valores límite

Para los tipos de datos posibles son válidos diferentes valores límite:

Tipo de datos

PMAX

NMAX

Variable de contaje del tipo INT

32767

-32768

Variable de contaje del tipo DINT

2147483647

-2147483648

Parámetro

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

Parámetros

Tipo de datos

Área de memoria

Descripción

<Variable de contaje>

INT, DINT

I, Q, M, D, L

Operando, cuyo valor se evalúa durante el procesamiento del bucle. El tipo de datos de la variable de contaje determina el tipo de datos de los parámetros restantes.

<Valor inicial>

INT, DINT

I, Q, M, D, L

Expresión, cuyo valor se asigna a la variable de contaje al comienzo del procesamiento del bucle.

<Valor final>

INT, DINT

I, Q, M, D, L

Expresión, cuyo valor determina la última ejecución del bucle. Antes de cada ejecución del bucle se comprueba qué valor tiene la variable de contaje:

  • Valor final no alcanzado:
    Se ejecutarán las instrucciones según DO

  • Valor final alcanzado:
    El bucle FOR se ejecuta por última vez

  • Valor final sobrepasado:
    El bucle FOR finaliza

No se puede modificar el valor final durante la ejecución de la instrucción.

<Incremento>

INT, DINT

I, Q, M, D, L

Expresión, en cuyo valor aumenta (incremento positivo) o disminuye (incremento negativo) la variable de contaje después de cada ejecución del bucle. La indicación del incremento es opcional. Si no se ha indicado ningún incremento, el valor de la variable de contaje aumenta en 1 después de cada ejecución del bucle.

No se puede modificar el incremento durante la ejecución de la instrucción.

<Instrucciones>

-

 

Instrucciones que se ejecutan durante cada ejecución del bucle mientras el valor de la variable de control se encuentre en el rango de valores. El rango de valores se especifica mediante los valores inicial y final.

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

Ejemplo

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

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

FOR i := 2 TO 8 BY 2

DO "a_array[i] := "Tag_Value"*"b_array[i]";

END_FOR;

El operando "Tag_Value" se multiplica por los elementos (2, 4, 6, 8) de las variables ARRAY "b_array". El resultado se lee en los elementos (2, 4, 6, 8) de las variables ARRAY "a_array".