IF: Ejecución condicional (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
IF: Ejecución condicional

Descripción

La instrucción "Ejecución condicional" permite ramificar el flujo del programa en función de una condición. La condición es una expresión con un valor booleano (TRUE o FALSE). Como condición se pueden indicar expresiones lógicas o expresiones de comparación.

Al ejecutar la instrucción, se evalúan las expresiones indicadas. Si el valor de una expresión es TRUE, la condición se considera cumplida; en el caso de FALSE se considera que la condición no se cumple.

Parámetros

Dependiendo del tipo de ramificación se pueden programar las siguientes formas de la instrucción:

  • Ramificación con IF:

    IF <condición> THEN <instrucciones>

    END_IF;

Si se cumple la condición, se ejecutan las instrucciones que están programadas después de THEN. Si la condición no se cumple, el procesamiento del programa continúa con la siguiente instrucción después de END_IF.

  • Ramificación con IF y ELSE:

    IF <condición> THEN <instrucciones1>

    ELSE <Instrucciones0>

    END_IF;

Si se cumple la condición, se ejecutan las instrucciones que están programadas después de THEN. Si no se cumple la condición, se ejecutan las instrucciones que están programadas después de ELSE. Después, el procesamiento del programa continúa con la siguiente instrucción después de END_IF.

  • Ramificación con IF, ELSIF y ELSE:

    IF <condición1> THEN <instrucciones1>

    IF <condición2> THEN <instrucciones2>

    ELSE <Instrucciones0>

    END_IF;

Si se cumple la primera condición (<condición1>), se ejecutan las instrucciones (<instrucciones1>) después de THEN. Después de ejecutar las instrucciones, el procesamiento del programa continúa después de END_IF.

Si no se cumple la primera condición, se comprueba la segunda (<condición2>). Si se cumple la segunda condición (<condición2>), se ejecutan las instrucciones (<instrucciones2>) después de THEN. Después de ejecutar las instrucciones, el procesamiento del programa continúa después de END_IF.

Si no se cumple ninguna condición, se ejecutan las instrucciones (<instrucciones0>) después de ELSE y, a continuación, continúa el procesamiento del programa después de END_IF.

En una instrucción IF se pueden anidar tantas combinaciones de ELSIF y THEN como se desee. La programación de una rama ELSE es opcional.

La sintaxis de la instrucción IF se compone de las siguientes partes:

Parámetro

Tipo de datos

Área de memoria

Descripción

<Condición>

BOOL

I, Q, M, D, L

Expresión que se evalúa.

<Instrucciones>

-

-

Instrucciones que se ejecutan si se cumple la condición. Una excepción son las instrucciones que están programadas después de ELSE. Estas se ejecutan si no se cumple ninguna condición dentro del bucle.

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.

IF "Tag_1" = 1

THEN "Tag_Value" := 10;

ELSIF "Tag_2" = 1

THEN "Tag_Value" := 20;

ELSIF "Tag_3" = 1

THEN "Tag_Value" := 30;

ELSE "Tag_Value" := 0;

END_IF;

La tabla siguiente muestra el funcionamiento de la instrucción con valores de operandos concretos:

Operando

Valor

Tag_1

1

0

0

0

Tag_2

0

1

0

0

Tag_3

0

0

1

0

Tag_Value

10

20

30

0