IF-Anweisung in ST

Syntax
IF ... THEN
  ...
ELSIF ... THEN
  ...
ELSE
  ...
END_IF;
Bedeutung

Mit der IF-Anweisung bestimmen Sie, dass eine Gruppe von Anweisungen nur dann ausgeführt wird, falls der damit verknüpfte Boolesche →Ausdruck mit Wert TRUE (oder einer Entsprechung) ausgewertet wird. Wird die Bedingung mit Wert FALSE (oder einer Entsprechung) ausgewertet, wird entweder keine Anweisung ausgeführt oder jene Gruppe von Anweisungen ausgeführt, die dem Schlüsselwort ELSE folgt (oder dem Schlüsselwort ELSIF, falls der damit verknüpfte Boolesche Ausdruck mit Wert TRUE (oder einer Entsprechung) ausgewertet wird).

Teil der IF-Anweisung

Erläuterung

IF condition-A THEN
   statement-A1;
   ... 
   statement-An;  
  • Falls die Bedingung condition-A = TRUE, setzt die Ausführung mit dem Anweisungsblock hinter THEN (von IF) fort.
    Der Anweisungsblock des IF-Teils kann beliebig viele Anweisungen enthalten. Nach der letzten Anweisung setzt die Ausführung hinter END_IF fort. 
  • Falls die Bedingung condition-A = FALSE, setzt die Ausführung bei ELSIF fort. Ist kein ELSIF vorhanden, setzt die Ausführung bei ELSE fort. Fehlt auch ELSE, setzt die Ausführung hinter END_IF fort.
ELSIF condition-B THEN
   statement-B1;
   ... 
   statement-Bn;  
  • Falls die Bedingung condition-B = TRUE, setzt die Ausführung mit dem Anweisungsblock hinter THEN (von ELSIF) fort.
    Der Anweisungsblock des ELSIF-Teils kann beliebig viele Anweisungen enthalten. Nach der letzten Anweisung setzt die Ausführung hinter END_IF fort. 
  • Falls die Bedingung condition-B = FALSE, setzt die Ausführung beim nächsten ELSIF fort. Ist kein weiteres ELSIF vorhanden, setzt die Ausführung bei ELSE fort. Fehlt auch ELSE, setzt die Ausführung hinter END_IF fort.

Sie dürfen den ELSIF-Teil entfallen lassen oder beliebig oft wiederholen.

ELSE
statement-C1;
... 
statement-Cn;  

Falls alle vorigen Bedingungen = FALSE waren, setzt die Ausführung mit dem Anweisungsblock hinter ELSE fort.
Der Anweisungsblock des ELSE-Teils kann beliebig viele Anweisungen enthalten. Nach der letzten Anweisung setzt die Ausführung hinter END_IF fort.

Sie dürfen den ELSE-Teil entfallen lassen.

END_IF;
Damit wird die IF-Anweisung beendet.
Beispiel
FUNCTION_BLOCK ExampleIfDocumentation
 VAR
   up : BOOL;
   count : INT;
 END_VAR
 
 IF up THEN     /* Falls 'up' = 'TRUE', wird hochgezählt. */
   count := count + 1;
 ELSE
   count := count - 1;
 END_IF;
END_FUNCTION_BLOCK