Ü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 |