ST-Anweisung IF

Die IF-Anweisung verwenden Sie, um eine Bedingung zu prüfen und bei erfüllter Bedingung die nachfolgenden Anweisungen auszuführen.

Eine Bedingung wird als Ausdruck codiert, der einen booleschen Wert zurückliefert. Wenn der Ausdruck TRUE liefert, ist die Bedingung erfüllt und die zugehörigen Anweisungen nach THEN werden ausgeführt. Wenn der Ausdruck FALSE liefert, werden die folgenden Bedingungen, die mit ELSIF gekennzeichnet sind, ausgewertet. Wenn eine ELSIF-Bedingungen TRUE liefert, werden die Anweisungen nach dem zugehörigen THEN ausgeführt. Wenn alle Bedingungen FALSE sind, werden die Anweisungen nach ELSE ausgeführt.

Es wird also höchstens ein Zweig der IF-Anweisung ausgeführt. Die ELSIF-Zweige und der ELSE-Zweig sind optional.

Syntax

IF <condition> THEN
    <statements>
(ELSIF <condition> THEN
    <statements>)*
(ELSE
    <statements>)?
END_IF;

// ( ... )* None, once or several times
// ( ... )? Optional

Beispiel:

PROGRAM MAIN
VAR
    nTemp       : INT;
    bHeatingOn  : BOOL;
    bOpenWindow : BOOL;
END_VAR
IF nTemp < 17 THEN
    bHeatingOn  := TRUE;
ELSIF nTemp > 25 THEN
    bOpenWindow := TRUE;
ELSE
    bHeatingOn  := FALSE;
    bOpenWindow := FALSE;
END_IF;

Zur Laufzeit wird das Programm folgendermaßen durchlaufen:

Wenn die Auswertung des Ausdrucks nTemp < 17 = TRUE ergibt, wird die nachfolgende Anweisung ausgeführt und die Heizung eingeschaltet. Wenn die Auswertung des Ausdrucks nTemp < 17 = FALSE ergibt, wird die nachfolgenden ELSIF-Bedingung nTemp > 25 ausgewertet. Wenn diese wahr ist, wird die Anweisung unter ELSIF ausgeführt und das Fenster geöffnet. Wenn alle Bedingungen FALSE sind, werden die Anweisungen unter ELSE ausgeführt. Die Heizung wird ausgeschaltet und das Fenster wird geschlossen.

Siehe auch: