Die Auswertung des Ausdrucks erfolgt durch die Verarbeitung der Operatoren nach bestimmten Bindungsregeln. Der Operator mit der stärksten Bindung wird zuerst bearbeitet, dann der Operator mit der nächststärkeren Bindung usw., bis alle Operatoren abgearbeitet sind.
Operatoren mit gleicher Bindungsstärke werden von links nach rechts abgearbeitet.
Betrieb |
Formel-zeichen |
Bindungsstärke |
---|---|---|
In Klammern setzen |
(Ausdruck) |
Stärkste Bindung |
Funktionsaufruf |
Funktionsname (Parameterliste) |
|
Potenzierung |
EXPT |
|
Negieren Aufbau von Ergänzungen |
- NICHT |
|
Multiplizieren Dividieren Modulo |
* / MOD |
|
Addieren Subtrahieren |
+ - |
|
Vergleichen Sie |
<,>,<=,>= |
|
Gleich Nicht gleich |
= <> |
|
Boolesches UND |
UND |
|
Boolesches XOR |
XOR |
|
Boolesches ODER |
OR |
Schwächste Bindung |
Art der Anweisung |
Beispiel |
---|---|
Zuweisung |
A:=B; CV := CV + 1; C:=SIN(X); |
Aufruf eines Funktionsbausteins und Verwendung des FB-Ausgangs |
CMD_TMR(IN := %IX5, PT := 300); A:=CMD_TMR.Q |
RETURN |
RÜCKKEHR; |
IF |
D:=B*B; IF D<0.0 THEN C:=A; ELSIF D=0.0 DANN C:=B; ELSE C:=D; END_IF; |
CASE |
FALL INT1 VON 1: BOOL1 := TRUE; 2: BOOL2 := TRUE; ELSE BOOL1 := FALSE; BOOL2 := FALSE; END_CASE; |
FOR |
J:=101; FOR I:=1 BIS 100 BY 2 DO WENN ARR[I] = 70 DANN J:=I; EXIT; END_IF; END_FOR; |
WHILE |
J:=1; WHILE J<= 100 AND ARR[J] <> 70 DO J:=J+2; END_WHILE; |
REPEAT |
J:=-1; REPEAT J:=J+2; UNTIL J= 101 OR ARR[J] = 70 END_REPEAT; |
EXIT |
EXIT; |
Leere Anweisung |
; |