Übersicht IEC Operatoren

Die folgende Tabelle zeigt die Operatoren in ST und AWL mit den verfügbaren Modifikatoren in AWL.

Die Spalte 'wo?' gibt an, in welcher Bibliothek der Operator enthalten ist bzw. ob er als IEC-Operator im Programmiersystem integriert ist.

Beachten Sie für die Spalte 'Operator AWL': Es wird nur die Zeile dargestellt, in der der Operator verwendet wird. Vorausgesetzt wird ein in der vorangehenden Zeile erfolgtes Laden des (ersten) benötigten Operanden (z.b. LD in).

Die Spalte 'Mod.AWL' zeigt die möglichen Modifikatoren in AWL:

C

Die Anweisung wird nur ausgeführt, wenn das Ergebnis des vorhergehenden Ausdrucks TRUE ist

N

bei JMPC, CALC, RETC: Die Anweisung wird nur ausgeführt, wenn das Ergebnis des vorhergehenden Ausdrucks FALSE ist

N

sonst: Negation des Operanden (nicht des Akku)

(

Klammerung begrenzt Operator, erst nach Erreichen der abschließenden Klammer wird die der Klammer vorangestellte Operation ausgeführt

Die detaillierte Beschreibung zur Anwendung entnehmen Sie bitte den entsprechenden Anhängen zu den integrierten IEC-Operatoren bzw. den Bibliotheken.

Operator ST

Operator AWL

Mod. AWL

Bedeutung

'

 

 

Stringbegrenzung (z.B. 'string')

[..]

 

 

Array: Darstellung des Array-Bereiches (z.B. Array[0..3] OF INT)

:

 

 

Trennzeichen zwischen Operand und Typ bei der Deklaration (z.B. var1 : INT;)

;

 

 

Abschluss Anweisung (z.B. a:=var1;)

^

 

 

Dereferenziere Pointer (z.B. pointer1^)

 

LD var1

N

Lade Wert von var1 in Akku

:=

ST var1

N

Speichere aktuelles Ergebnis an die Operandenstelle var1

 

S boolvar

 

Setze den Bool-Operanden boolvar genau dann auf TRUE, wenn das aktuelle Ergebnis TRUE ist

 

R boolvar

 

Setze den Bool-Operand genau dann auf FALSE, wenn das aktuelle Ergebnis TRUE ist

 

JMP marke

CN

Springe zur Marke

<Programmname>

CAL prog1

CN

Rufe Programm prog1 auf

<Instanzname>

CAL inst1

CN

Rufe FB Instanz inst1 auf

<Fktname>(vx,vy,..)

<Fktname> vx,vy,..

CN

Rufe Funktion auf und übergebe Parameter vx, vy

RETURN

RET

CN

Verlasse den Baustein und kehre ggf. zurück zum Aufrufer

 

(

 

Wert, der der Klammer folgt, wird als Operand gesehen, vorherige Operation wird zurückgestellt, bis Klammer geschlossen wird

 

)

 

Werte zurückgestellte Operation aus

AND

AND

N, (

Bitweises AND

OR

OR

N, (

Bitweises OR

XOR

XOR

N, (

Bitweises exklusives OR

NOT

NOT

 

Bitweises NOT

+

ADD

(

Addition

-

SUB

(

Subtraktion

*

MUL

(

Multiplikation

/

DIV

(

Division

>

GT

(

größer

>=

GE

(

größer/gleich

=

EQ

(

gleich

<

LT

(

kleiner

<>

NE

(

nicht gleich

<=

LE

(

kleiner/gleich

MOD(in)

MOD

 

Modulo Division

INDEXOF(in)

INDEXOF

 

interner Index eines Bausteins in1; [INT]

SIZEOF(in)

SIZEOF

 

benötigte Byte-Anzahl für geg. Datentyp von in

SHL(in,K)

SHL

 

bitweises Links-Shift eines Operanden um K

SHR(in,K)

SHR

 

bitweises Rechts-Shift eines Operanden um K

ROL(in,K)

ROL

 

bitweise Links-Rotation eines Operanden um K

ROR(in,K)

ROR

 

bitweise Rechts-Rotation eines Operanden um K

SEL(G,in0,in1)

SEL

 

binäre Selektion zw. 2 Operanden in0 (G ist FALSE) und in1 (G ist TRUE)

MAX(in0,in1)

MAX

 

liefert von zwei Werten den größten

MIN(in0,in1)

MIN

 

liefert von zwei Werten den kleinsten

LIMIT(Min,in,Max)

LIMIT

 

Limitierung des Wertebereichs (in wird bei Überschreitung auf Min bzw. Max zurückgesetzt)

MUX(K, in0,.. in_n)

MUX

 

Auswahl des K-ten Wertes aus einer Anzahl von Werten (in0 bis In_n)

ADR(in)

ADR

 

Adresse des Operanden in [DWORD]

BOOL_TO_<type>(in)

BOOL_TO_<type>

 

Typkonvertierung des booleschen Operanden in anderen elementaren Typ

<type>_TO_BOOL(in)

<type>_TO_BOOL

 

Typkonvertierung des Operanden nach BOOL

INT_TO_<type>(in)

INT_TO_<type>

 

Typkonvertierung des INT-Operanden in anderen elementaren Typ

REAL_TO_<type>(in)

REAL_TO_<type>

 

Typkonvertierung des REAL-Operanden in anderen elementaren Typ

LREAL_TO_<type>(in)

LREAL_TO_<type>

 

Typkonvertierung des LREAL-Operanden in anderen elementaren Typ

TIME_TO_<type>(in)

TIME_TO_<type>

 

Typkonvertierung des TIME-Operanden in anderen elementaren Typ

TOD_TO_<type>(in)

TOD_TO_<type>

 

Typkonvertierung des TOD-Operanden in anderen elementaren Typ

DATE_TO_<type>(in)

DATE_TO_<type>

 

Typkonvertierung des DATE-Operanden in anderen elementaren Typ

DT_TO_<type>(in)

DT_TO_<type>

 

Typkonvertierung des DT-Operanden in anderen elementaren Typ

STRING_TO_<type>(in)

STRING_TO_<type>

 

Typkonvertierung des STRING Operanden in anderen elementaren Typ

TRUNC(in)

TRUNC

 

Konvertierung von REAL nach INT

ABS(in)

ABS

 

Absolutwert des Operanden

SQRT(in)

SQRT

 

Quadratwurzel des Operanden

LN(in)

LN

 

natürlicher Logarithmus des Operanden

LOG(in)

LOG

 

Logarithmus des Operanden zur Basis 10

EXP(in)

EXP

 

Exponentialfunktion des Operanden

SIN(in)

SIN

 

Sinus des Operanden

COS(IN)

COS

 

Cosinus des Operanden

TAN(in)

TAN

 

Tangens des Operanden

ASIN(in)

ASIN

 

Arcussinus des Operanden

ACOS(in)

ACOS

 

Arcuscosinus des Operanden

ATAN(in)

ATAN

 

Arcustangens des Operanden

EXPT(in,expt)

EXPT expt

 

Potenzierung des Operanden um expt

LEN(in)

LEN

 

String-Länge des Operanden

LEFT(str, size)

LEFT

 

linker Anfangsstring (Größe size) von String str

RIGHT(str, size)

RIGHT

 

rechter Anfangsstring (Größe size) von String str

MID(str, len, pos)

MID

 

Teilstring der Größe len aus String str

CONCAT(str1, str2)

CONCAT

 

Aneinanderhängen zweier Strings

INSERT(str1, str2, pos)

INSERT

 

Einfügen String str1 in String str2 an Position pos

DELETE(str1, len, pos)

DELETE

 

Lösche Teilstring mit Länge len, beginnend an Position pos von str1

REPLACE(str1, str2, len, pos)

REPLACE

 

Ersetze Teilstring von Länge len, beginnend an Position pos von str1 durch str2

FIND(str1, str2)

FIND

 

Suchen eines Teilstrings str2 in str1

SR

SR

 

Bistabiler FB wird dominant gesetzt

RS

RS

 

Bistabiler FB wird zurückgesetzt

SEMA

SEMA

 

FB: Software-Semaphor

R_TRIG

R_TRIG

 

FB: ansteigende Flanke wird erkannt

F_TRIG

F_TRIG

 

FB: fallende Flanke wird erkannt

CTU

CTU

 

FB: Aufwärtszähler

CTD

CTD

 

FB: Abwärtszähler

CTUD

CTUD

 

FB: Auf- und Abwärtszähler

TP

TP

 

FB: Pulsgeber

TON

TON

 

FB: Einschaltverzögerung

TOF

TOF

 

FB: Ausschaltverzögerung