Ausdrücke

Überblick

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 *)

Reihenfolge der Operationen

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

Zuweisung als Ausdruck

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
i := i + 1;
END_IF

(*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.*)