Skip to main content

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 70. Beispiel
PROGRAM PLC_PRG
VAR
        iTemp: INT;
        xHeatingOn: BOOL;
        xOpenWindow: BOOL;
END_VAR

IF iTemp < 17 THEN
        xHeatingOn := TRUE;
ELSIF iTemp > 25 THEN
        xOpenWindow := TRUE;
ELSE xHeatingOn := FALSE;
END_IF;

Zur Laufzeit wird das Programm folgendermaßen durchlaufen:

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