Arbeiten im AWL-Editor

Überblick

Der AW-Anweisungslisten-Editor ist eine Tabelleneditor. Die Netzwerkstruktur von FBD- bzw. KOP-Programmen ist auch in einem AWL-Programm vorhanden. Im Grunde reicht in einem AWL-Programm ein Netzwerk, aber angesichts eines möglichen Wechsels zwischen FBD, KOP und AWL können auch AWL-Programme mithilfe von Netzwerken strukturiert werden.

Aktivieren Sie die AWL-Implementierungssprache für EcoStruxure Machine Expert im Dialogfeld Tools > Optionen Kategorie FUP-, LD (KOP)- und AWL-Editor, Registerkarte AWL.

Quickinfo (Tooltip)

Quickinfos enthalten Informationen zu Variablen bzw. Bausteinparametern.

Weitere Informationen finden Sie unter Arbeiten in der FBD- und KOP-Editoransicht.

Einfügen und Anordnen von Elementen

oDie Befehle für das Arbeiten im Editor befinden sich im Menü FUP, KOP, AWL. Im Kontextmenü stehen darüber hinaus häufig verwendete Befehle zur Auswahl.

oProgrammiereinheiten, bei denen es sich um Elemente handelt, werden an der aktuellen Cursorposition über die Einfügen-Befehle im Menü FUP, KOP, AWL eingefügt.

oSie können ein Netzwerk-Element aus der Toolbox auf den Nach-oben- oder Nach-unten-Pfeil auf der linken Seite des Editors ziehen. Daraufhin wird über oder unter dem vorhandenen Element ein neues Netzwerk erstellt.

oSie können Elemente mithilfe der Befehle zum Ausschneiden, Kopieren, Einfügen und Löschen aus dem Menü Bearbeiten anordnen.

oÜber den Link finden Sie außerdem weitere Informationen zur Programmiersprache AWL (Anweisungsliste, Instruction List (IL)).

oOperatoren mit EN-/ENO-Funktion können nur im FDB- und im KOP-Editor eingefügt werden.

In diesem Kapitel wird erläutert, wie der Tabelleneditor strukturiert ist, wie Sie im Editor navigieren können und wie komplexe Operanden, Aufrufe und Sprünge eingesetzt werden.

Struktur des AWL-Tabelleneditors

AWL-Tabelleneditor

G-SE-0025751.1.gif-high.gif

 

 

Die einzelnen Programmzeilen werden in Tabellenzeilen geschrieben. Die Zeilen wiederum sind durch Tabellenspalten in Felder strukturiert.

Spalte

Inhalt

Beschreibung

1

Operator

Dieses Feld enthält den AWL-Operator (KOP, ST, CAL, AND, OR usw.) bzw. einen Funktionsnamen.

Bei einem Funktionsblockaufruf werden die entsprechenden Parameter ebenfalls hier angegeben. Geben Sie das Präfix-Feld := oder => ein.

Weitere Informationen finden Sie unter Modifizierer und Operatoren in AWL.

2

Operand

Dieses Feld enthält exakt einen Operanden bzw. eine Sprungmarke. Falls mehrere Operanden benötigt werden (mehrere/erweiterbare Operatoren UND A, B, C bzw. Funktionsaufrufe mit mehreren Parametern), schreiben Sie diese in die folgenden Zeilen, und lassen Sie das Feld für den Operator leer. Fügen Sie in diesem Fall ein Komma zum Trennen der Parameter hinzu.

Fügen Sie bei Funktionsblöcken, Programm- oder Aktionsaufrufen die entsprechenden öffnenden und/oder schließenden Klammern hinzu.

3

Adresse

Dieses Feld enthält die Adresse des Operanden gemäß der Definition in der Deklaration. Sie können dieses Feld nicht bearbeiten. Mit der Option Symboladresse anzeigen können Sie es aktivieren bzw. deaktivieren.

4

Symbolkommentar

Dieses Feld enthält den Kommentar gemäß der Definition in der Deklaration. Sie können dieses Feld nicht bearbeiten. Mit der Option Symboladresse anzeigen können Sie es aktivieren bzw. deaktivieren.

5

Operandenkommentar

Dieses Feld enthält den Kommentar für die aktuelle Zeile. Das Feld kann bearbeitet werden. Es lässt sich über die Option Operandenkommentar anzeigen aktivieren bzw. deaktivieren.

Navigieren in der Tabelle

oPfeiltasten NACH OBEN und NACH UNTEN: Hiermit bewegen Sie sich ein Feld nach oben bzw. unten.

oTABULATOR: Hiermit bewegen Sie sich innerhalb einer Zeile ein Feld nach rechts.

oUMSCHALT + TABULATOR: Hiermit bewegen Sie sich innerhalb einer Zeile ein Feld nach links.

oLEERTASTE: Hiermit wird das aktuell ausgewählte Feld zur Bearbeitung geöffnet. Alternativ wird ein weiterer Mausklick im Feld ausgeführt. Falls verfügbar, steht die Eingabehilfe über die Schaltfläche ... zur Verfügung. Sie können ein aktuell geöffnetes Bearbeitungsfeld schließen, indem Sie die aktuellen Einträge mit der EINGABETASTE bestätigen oder den Vorgang mit ESC abbrechen.

oSTRG + EINGABE: Hiermit wird eine neue Zeile unterhalb der aktuellen Zeile eingefügt.

oENTF: Hiermit wird die aktuelle Zeile (d. h. die Zeile, in der ein Feld ausgewählt ist) gelöscht.

oAusschneiden, Kopieren, Einfügen: Wenn Sie eine oder mehrere Zeilen kopieren möchten, wählen Sie mindestens ein Feld in der Zeile/den Zeilen aus, und führen Sie den Befehl Kopieren aus. Wenn Sie eine Zeile ausschneiden möchten, verwenden Sie den Befehl Ausschneiden. Mit dem Befehl Einfügen werden die zuvor ausgeschnittenen bzw. kopierten Zeilen über der Zeile, in der zurzeit ein Feld ausgewählt ist, eingefügt. Falls kein Feld ausgewählt ist, werden die Zeilen am Ende des Netzwerks eingefügt.

oMit STRG + POS 1 springen Sie an den Anfang des Dokuments. Gleichzeitig wird das erste Netzwerk markiert.

oMit STRG + ENDE springen Sie ans Ende des Dokuments. Gleichzeitig wird das letzte Netzwerk markiert.

oMit BILD AUFWÄRTS blättern Sie 1 Bildschirm nach oben. Das oberste Rechteck wird markiert.

oMit BILD ABWÄRTS blättern Sie 1 Bildschirm nach unten. Das oberste Rechteck wird markiert.

Mehrere Operanden (erweiterbare Operatoren)

Falls der gleiche Operator mit mehreren Operanden verwendet wird, sind zwei Arten der Programmierung möglich:

oDie Operanden werden in aufeinanderfolgenden Zeilen und durch Kommas getrennt eingegeben. Beispiel:

LD       7
ADD      2,
         4,
         7
ST       iVar

oDie Anweisung wird in aufeinanderfolgenden Zeilen wiederholt. Beispiel:

LD       7
ADD      2
ADD      4
ADD      7
ST       iVar

Komplexe Operanden

Falls ein komplexer Operand verwendet werden soll, geben Sie zuerst eine öffnende Klammer ein, und geben die einzelnen Operandenkomponenten in den folgenden Zeilen ein. Geben Sie darunter (in einer separaten Zeile) die schließende Klammer ein.

Beispiel: Drehen einer Zeichenfolge um 1 Zeichen bei jedem Zyklus.

Entsprechender ST-Code:

stRotate := CONCAT(RIGHT(stRotate, (LEN(stRotate) - 1)), (LEFT(stRotate, 1)));

LD        stRotate
RIGHT(    stRotate
LEN
SUB       1
)
CONCAT(   stRotate
LEFT      1
)
ST        stRotate

Funktionsaufrufe

Geben Sie den Funktionsnamen in das Feld für den Operator ein. Geben Sie den (ersten) Eingangsparameter als Operand in einer vorangehenden KOP-Operation ein. Falls weitere Parameter eingegeben werden müssen, geben Sie den nächsten in die gleiche Zeile wie den Funktionsnamen ein. Sie können weitere Parameter durch Kommata voneinander getrennt in diese Zeile oder in aufeinanderfolgende Zeilen eingeben.

Der Rückgabewert der Funktion wird im Akku gespeichert. Es gilt die folgende Beschränkung im Hinblick auf den IEC-Standard.

HINWEIS: Ein Funktionsaufruf mit mehreren Rückgabewerten ist nicht möglich. Es kann nur ein Rückgabewert für eine nachfolgende Operation verwendet werden.

Beispiel: Die Funktion GeomAverage mit 3 Eingangsparametern wird aufgerufen. Der erste Parameter wird von X7 aus einer vorherigen Operation übernommen. Der zweite, 25, wird zusammen mit dem Funktionsnamen angegeben. Der dritte wird von der Variable tvar entweder in der gleichen oder der nachfolgenden Zeile bereitgestellt. Der Rückgabewert wird der Variable Ave zugewiesen.

Entsprechender ST-Code:

Ave := GeomAverage(X7, 25, tvar);

Funktionsaufruf in AWL:

LD             X7
GeomAverage    25
               tvar
ST             Ave

Funktionsblockaufrufe und Programmaufrufe

Verwenden Sie den Operator CAL- bzw. CALC. Geben Sie den Namen der Funktionsblockinstanz bzw. des Programms, gefolgt von einer öffnenden Klammer, in das Feld für den Operanden (zweite Spalte) ein. Geben Sie die einzelnen Eingangsparameter in eine der folgenden Zeilen ein:

Feld für Operator: Parametername

Feld für Präfix

o:= für Eingangsparameter

o=> für Ausgangsparameter

Feld für Operanden: Aktueller Parameter

Feld für Suffix:

o, falls weitere Parameter folgen

) nach dem letzten Parameter

o() bei Aufrufen ohne Parameter

Beispiel: Aufruf von POUToCAll mit 2 Eingangs- und 2 Ausgangsparametern.

Entsprechender ST-Code:

POUToCall(Counter := iCounter, iDecrement:=2, bError=>bErr, wError=>wResult);

Programmaufruf in AWL mit Eingangs- und Ausgangsparametern:

G-SE-0025752.2.gif-high.gif

 

 

Es müssen nicht sämtliche Parameter eines Funktionsblocks bzw. Programms verwendet werden.

HINWEIS: Komplexe Ausdrücke können nicht verwendet werden. Diese müssen dem Eingang des Funktionsblocks bzw. Programms vor der Aufrufanweisung zugewiesen werden.

Aktionsaufruf

Damit eine Instanz bzw. ein Programm wie ein Funktionsblock bzw. ein Programmaufruf ausgeführt werden kann, muss der Aktionsname an den Namen der Instanz/des Programms angehängt werden.

Beispiel: Aktionsaufruf ResetAction.

Entsprechender ST-Code:

Inst.ResetAction();

Aktionsaufruf in AWL:

CAL      Inst.ResetAction()

Methodenaufruf

Damit eine Instanz wie ein Funktionsaufruf ausgeführt werden kann, muss der Instanzname mit angehängtem Aktionsnamen in die erste Spalte (Operator) eingegeben werden.

Beispiel: Methodenaufruf Home.

Entsprechender ST-Code:

Z := IHome.Home(TRUE, TRUE, TRUE);

Methodenaufruf in AWL:

LD             TRUE
IHome.Home     TRUE
               TRUE
ST             Z

Sprung

Ein Sprung wird durch die Eingabe von JMP in der ersten Spalte (Operator) und einer Marke in der zweiten Spalte (Operand) programmiert. Die Marke muss im Zielnetzwerk im Feld Marke definiert werden.

Die Anweisungsliste, die dem unbedingten Sprung vorausgeht, muss auf einen der folgenden Befehle enden: ST, STN, S, R, CAL, RET oder erneut JMP.

Dies ist bei einem bedingten Sprung nicht der Fall. Die Ausführung des Sprungs hängt vom geladenen Wert ab.

Beispiel: Anweisung für einen bedingten Sprung: Falls bCallRestAction TRUE ist, springt das Programm zum Netzwerk Cont.

Anweisung für einen bedingten Sprung in AWL:

LDN        bCallResetAction
JMPC       Cont