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 | Beispiel |
---|---|---|
Mehrere Operanden für 1 Operator | Möglichkeiten
| 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 Spalte in 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. TwinCAT 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: