Operatoren in ST

Operatoren führen Operationen aus und stellen Funktionalitäten zur Verfügung, wie z.B. Addition. Mit Operatoren verknüpfen Sie die Operanden zu Ausdrücken.

Mögliche Operatoren

Nr.

Beschreibung der Operation:

Symbol

Beispiele

Rangfolge

1

Klammerung:

(Ausdruck)

A + (B / C)

(A + B) / C

A / (B + C)

12 (Höchste)

2

Aufruf einer Funktion oder Aufruf einer Methode, sofern ein Ergebniswert deklariert ist:

Bezeichner (Parameterliste)

ABS(A)

ADD(X,Y)

11

3

Dereferenzierung

^

Details: siehe unter "Deklaration von Referenz-Variablen (inkl. Zuweisungen darauf)"

R^

10

4

Negation:

–A

9

5

Unäres Plus:

+

+B

9

6

Komplement:

NOT

NOT C

9

7

Potenzierung:

**

A ** B

B ** B

8

8

Multiplikation:

*

A * B

7

9

Division:

/

A / B

A / B / D

7

10

Modulo:

MOD

A MOD B

7

11

Addition:

+

A + B

A + B + C

6

12

Subtraktion:

A – B

A – B – C

6

13

Vergleiche:

<, >, <=, >=

A < B

5

14

Gleichheit:

=

A = B

A = B & B = C

4

15

Ungleichheit:

<>

A <> B

4

16a

Boolesches UND:

&

A & B

A & B & C

3

16b

Boolesches UND:

AND

A AND B

3

17

Boolesches Exklusiv ODER:

XOR

A XOR B

2

18

Boolesches ODER:

OR

A OR B

1 (niedrigste)

Hinweise:

  • Operatoren können →überladen sein.

  • Auf die Datentypen STRING und CHAR können lediglich Vergleichsoperatoren (=, <>, <, >, <=, >=) angewandt werden.

  • Für deklarierte Variablen, die auf einem →Interface basiert, und NULL kann lediglich der Gleichheit-Operator = und der Ungleichheit-Operator <> angewandt werden.

    Vergleich von Variablen basierend auf einem Interface bzw. von einer mit NULL
    interface_variable_1 = interface_variable_2
    interface_variable_1 = NULL
    NULL = interface_variable_2
  • Die Operatoren liefern die gleichen Ergebnisse wie die entsprechenden IEC-Bausteine, sofern sie mit gleichen Daten arbeiten.
    Beispiel: Der Ausdruck x+y für die Addition hat ein identisches Verhalten zu diesem Aufruf des ADD-Bausteins: ADD(x,y)

  • Im Fehlerfall (z.B. bei einer Division durch 0) wird der Wert 0 als Ergebnis geliefert. Der Ausgang ENO der umfassenden →POE wird nicht auf den Wert FALSE (bzw. einer Entsprechung) gesetzt.

  • Beachten Sie die korrekte Kombination der →Literale/→Variablen für Multiplikation, Division, Addition und Subtraktion, sofern die Operation für Literale/Variablen vom Datentyp TIME durchgeführt werden soll. Andere Kombinationen werden als fehlerhaft markiert.

    Operation: Symbol

    Datentyp für Operand und Ergebnis

    Beispiel

    Die Operation liefert das gleiche Ergebnis wie dieser Baustein:

    Multiplikation: *

    • 1. Operand: Datentyp TIME

    • alle folgenden Operanden: Datentyp zum →allgemeinen Datentyp ANY_NUM zugehörig

    • Ergebnis: Datentyp TIME

    T#1m40s * 2 * 5

    MUL_TIME-Baustein, wobei:
    1. Operand = IN1, alle folgenden Operanden wie IN2 behandelt werden, Ergebnis = Ergebniswert

    Division: /

    • 1. Operand: Datentyp TIME

    • 2. Operand: Datentyp zu ANY_NUM zugehörig

    • Ergebnis: Datentyp TIME

    T#1m40s / 2

    DIV_TIME-Baustein, wobei:
    1. Operand = IN1, 2. Operand = IN2, Ergebnis = Ergebniswert

    Der Operator / rechnet mit der Genauigkeit, die für den 2. Operanden angegeben ist. Das bedeutet: Falls der 2. Operand ein REAL-Wert ist, rechnet logi.CAD 3 intern auch mit einem REAL-Wert. Vergleiche: DIV_TIME verwendet LREAL für die interne Berechnung.

    Addition: +

    • 1. Operand: Datentyp TIME

    • alle folgenden Operanden: Datentyp TIME

    • Ergebnis: Datentyp TIME

    T#3s + T#4s + T#1s

    ADD_TIME-Baustein, wobei:
    1. Operand = IN1, alle folgenden Operanden wie IN2 behandelt werden, Ergebnis = Ergebniswert

    Subtraktion: -

    • 1. Operand: Datentyp TIME

    • 2. Operand: Datentyp TIME

    • Ergebnis: Datentyp TIME

    T#4s - T#3s

    SUB_TIME-Baustein, wobei:
    1. Operand = IN1, 2. Operand = IN2, Ergebnis = Ergebniswert