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

BeispieleRangfolge
1

 Klammerung:

(Ausdruck)

A + (B / C)

(A + B) / C

A / (B + C)

12 (Höchste)
2

Aufruf einer Funktion, 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 C9
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 B7
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 B3
17

Boolesches Exklusiv ODER:

XOR

A XOR B2
18

Boolesches ODER:

OR

A OR B1 (niedrigste)

Hinweise:

  • Operatoren können →überladen sein.
  • Auf die Datentypen STRING und CHAR können lediglich Vergleichsoperatoren (=, <>, <, >, <=, >=) angewandt werden.
  • 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-BausteinsADD(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: SymbolDatentyp für Operand und ErgebnisBeispielDie 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 * 5MUL_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#1sADD_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