Ein Ausdruck ist eine Konstruktion, die nach ihrer Auswertung einen Wert zurückgibt. Dieser Wert wird in Anweisungen verwendet.
Ausdrücke bestehen aus Operatoren, Operanden und/oder Zuweisungen. Ein Operand kann eine Konstante, eine Variable, ein Funktionsaufruf oder ein anderer Ausdruck sein.
Beispiele
33 |
(* Konstante *) |
ivar |
(* Variable *) |
fct(a,b,c) |
(* Funktionsaufruf *) |
a AND b |
(* Ausdruck *) |
(x*y) / z |
(* Ausdruck *) |
real_var2 := int_var; |
(* Zuweisung, siehe unten *) |
Die Bewertung eines Ausdrucks erfolgt durch die Verarbeitung der Operatoren gemäß bestimmten Regeln. Der Operator mit der höchsten Reihenfolge an Operationen wird zuerst verarbeitet, danach der Operator mit der nächsten operativen Ebene usw., bis alle Operatoren verarbeitet wurden.
Unten finden Sie eine Tabelle der ST-Operatoren in der Reihenfolge ihrer ordinalen operativen Ebene:
Betrieb |
Symbol |
Operative Ebene |
---|---|---|
in Klammern |
(Ausdruck) |
höchste Reihenfolge |
Funktionsaufruf |
Funktionsname (Parameterliste) |
.............. |
Potenzierung |
EXPT |
............. |
Negieren |
– |
............ |
Erstellen von Komplementen |
NOT |
........... |
Multiplikation |
* |
.......... |
Division |
/ |
......... |
Modulo |
MOD |
........ |
Addition |
+ |
....... |
Subtraktion |
– |
...... |
Vergleich |
<,>,<=,>= |
..... |
entspricht |
= |
.... |
entspricht nicht |
<> |
... |
boolesches UND |
AND |
.. |
boolesches XOR |
XOR |
. |
boolesches ODER |
OR |
niedrigste Reihenfolge |
Als Erweiterung zum IEC 61131-3-Standard (ExST) können Zuweisungen als ein Ausdruck verwendet werden.
Beispiele:
|
|
---|---|
int_var1 := int_var2 := int_var3 + 9; |
(* int_var1 und int_var2 entsprechen beide dem WErt von int_var3 + 9*) |
real_var1 := real_var2 := int_var; |
(* korrekte Zuweisungen, real_var1 und real_var2 erhalten den Wert von int_var *) |
int_var := real_var1 := int_var; |
(* eine Meldung wird angezeigt, weil der Typ nicht übereinstimmt: real-int *) |
IF b := (i = 1) THEN |
(*Ausdruck der innerhalb einer IF-Bedingungsanweisung verwendet wird: Zuerst wird b TRUE oder FALSE zugewiesen, abhängig davon, ob i 1 entspricht oder nicht, dann wird der Ergebniswert von b ausgewertet.*) |