Modifikatoren und Operatoren in AWL

Modifikatoren
Modifikator Kombiniert mit Operator Beschreibung
C JMP, CAL, RET Die Anweisung wird nur ausgeführt, wenn das Ergebnis des vorhergehenden Ausdrucks TRUE ist.
N JMPC, CALC, RETC Die Anweisung wird nur ausgeführt, wenn das Ergebnis des vorhergehenden Ausdrucks FALSE ist.
N ansonsten Negation des Operanden (nicht des Akkus).
Operatoren mit den möglichen Modifikatoren
Operator N Bedeutung Beispiel
LD N Lädt den (negierten) Wert des Operanden in den Akkumulator. LD ivar
ST N Speichert den (negierten) Inhalt des Akkumulators in den Operanden. ST iErg
S   Setzt den Operanden (Typ BOOL) auf TRUE, wenn der Inhalt des Akkumulators TRUE ist. S bVar1
R   Setzt den Operanden (Typ BOOL) auf FALSE, wenn der Inhalt des Akkumulators TRUE ist. R bVar1
AND N,( Bitweises AND des Akkumulatorwerts und des (negierten) Operanden AND bVar2
OR N,( Bitweises OR des Akkumulatorwerts und des (negierten) Operanden OR xVar
XOR N,( Bitweises, exklusives OR des Akkumulatorwerts und des (negierten) Operanden XOR N,(bVar1,bVar2)
NOT   Bitweise Negation des Akkumulatorwerts  
ADD ( Addition des Akkumulatorwerts und des Operanden; Ergebnis wird in den Akkumulator geschrieben. ADD ivar1
SUB ( Subtraktion des Operanden vom Akkumulator-Wert; Ergebnis wird in den Akkumulator geschrieben. SUB iVar2
MUL ( Multiplikation von Akkumulatorwert und Operand; Ergebnis wird in den Akkumulator geschrieben. MUL ivar2
DIV ( Division des Akkumulatorwerts durch den Operanden; Ergebnis wird in den Akkumulator geschrieben. DIV 44
GT ( Prüft, ob der Akkumulatorwert größer als der Operandenwert ist; Ergebnis (BOOL) wird in den Akkumulator geschrieben; > GT 23
GE ( Prüft, ob der Akkumulatorwert größer oder gleich dem Operandenwert ist; Ergebnis (BOOL) wird in den Akkumulator geschrieben. GE iVar2
EQ ( Prüft, ob der Akkumulatorwert gleich dem Operandenwert ist; Ergebnis (BOOL) wird in den Akkumulator geschrieben. EQ iVar2
NE ( Prüft, ob der Akkumulatorwert ungleich dem Operandenwert ist; Ergebnis (BOOL) wird in den Akkumulator geschrieben. NE iVar1
LE ( Prüft, ob der Akkumulatorwert kleiner oder gleich dem Operandenwert ist; Ergebnis (BOOL) wird in den Akkumulator geschrieben. LE 5
LT ( Prüfen, ob der Akkumulator-Wert kleiner als der Operandenwert ist; Ergebnis (BOOL) wird in den Akkumulator geschrieben. LT cVar1
JMP CN Unbedingter (bedingter) Sprung zur angegebenen Sprungmarke JMPN next
CAL CN (Bedingter) Aufruf eines Programms oder Funktionsbausteins (wenn der Akkumulator-Wert TRUE ist) CAL prog1
RET   Verlassen des Bausteins und Rückkehr zum aufrufenden Baustein RET
RET C Wenn der Akkumulatorwert TRUE ist: Verlassen des Bausteins und Rückkehr zum aufrufenden Baustein. RETC
RET CN Wenn der Akkumulatorwert FALSE ist: Verlassen des Bausteins und Rückkehr zum aufrufenden Baustein. RETCN
)   Auswerten der zurückgestellten Operation  

Beispiel

Anwendung Beschreibung Beispiele
Mehrere Operanden für 1 Operator

Möglichkeiten

  • Sie geben die Operanden in aufeinander folgenden Zeilen, getrennt durch Komma in der 2. Spalte ein.
  • Sie wiederholen den Operator in aufeinander folgenden Zeilen.

Variante 1:

Variante 2:

Komplexe Operanden Für einen komplexen Operanden geben Sie in der ersten Spalte die öffnende Klammer ( an. Die schließende Klammer geben Sie in der ersten Spaltein einer separaten Zeile im Anschluss an die Operandeneinträge der folgenden Zeilen ein.

Ein String wird jeden Zyklus um ein Zeichen rotiert:

Funktionsbaustein-Aufruf, Programmaufruf

Spalte 1: Operator CAL oder CALC

Spalte 2: Name der Funktionsbausteins-Instanz oder des Programms und öffnende Klammer (. Wenn keine Parameter folgen, wird hier die schließende Klammer ) eingegeben.

darauf folgende Zeilen:

Spalte 1: Parametername gefolgt von := für Eingabeparamer oder => für Ausgabeparameter

Spalte 2: Parameterwert gefolgt von Komma , wenn weitere Parameter folgen. Nach dem letzten Parameter, wird die schließende Klammer ) eingegeben.

Als Einschränkung bezüglich des IEC-Standards können hier komplexe Ausdrücke nicht verwendet werden. Solche Konstrukte müssen Sie dem Funktionsbaustein oder dem Programm noch vor dem Aufruf zuweisen.

Funktionsaufruf

Zeile 1: Spalte 1: LD

Spalte 2: Eingabevariable

Zeile 2: Spalte 1: Funktionsname Spalte2: weitere Eingabeparameter durch Komma getrennt.

CODESYS schreibt den Rückgabewert in den Akkumulator.

Zeile 3: Spalte 1: ST Spalte 2: Variable, in die der Rückgabewert geschrieben wird

Aktionsaufruf

Wie Funktionsbaustein- oder Programmaufruf.

Der Aktionsname wird an den FB-Instanz- oder Programmnamen angehängt.

Sprung

Spalte 1: Operator JMP oder JMPC.

Spalte 2: Name der Sprungmarke des Ziel-Netzwerks.

Bei einem unbedingten Sprung muss die voraus gehenden Anweisungsfolge mit einem der folgenden Kommandos enden: ST,STN, S, R, CAL, RET, JMP

Bei einem bedingten Sprung hängt die Ausführung des Sprungs vom geladenen Wert ab.

Siehe auch