Zum Inhalt springen

„Anweisungsliste“ – Versionsunterschied

aus Wikipedia, der freien Enzyklopädie
[ungesichtete Version][gesichtete Version]
Inhalt gelöscht Inhalt hinzugefügt
Keine Bearbeitungszusammenfassung
Änderung 246039368 von Domi1907 rückgängig gemacht; Vertan
Markierung: Rückgängigmachung
 
(78 dazwischenliegende Versionen von 58 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
Die '''Anweisungsliste''', meist kurz '''AWL''' genannt, ist eine der in [[IEC]] 61131-3 standardisierten Methoden zur Programmierung von [[Speicherprogrammierbare Steuerung|speicherprogrammierbaren Steuerungen]] (SPS).
Die '''Anweisungsliste''', meist kurz '''AWL''' oder '''IL''' (Instruction List) genannt, ist eine der in [[IEC 61131-3]] standardisierten Methoden zur Programmierung von [[Speicherprogrammierbare Steuerung|Speicherprogrammierbaren Steuerungen]] (SPS).
Viele SPS-Hersteller bezeichnen die von ihnen verwendete Sprache auch dann als AWL, wenn sie sich nicht exakt an die IEC 61131-3 hält, so dass sich bestehende AWL-Programme kaum auf Steuerungen anderer Hersteller übertragen lassen.


AWL ist in der aktuellen IEC 61131-3 von 2014-06 als ‚deprecated‘ (veraltet) gekennzeichnet. In vielen Programmierumgebungen ist sie noch enthalten, muss aber meist erst manuell aktiviert werden.
Viele SPS-Hersteller bezeichnen die von ihnen verwendete Sprache auch dann als AWL, wenn sie sich nicht exakt an die IEC 61131-3 hält, sodass sich bestehende AWL-Programme kaum auf Steuerungen anderer Hersteller übertragen lassen.


AWL dient hauptsächlich zur logischen Verknüpfung von Steuerungseingängen und -ausgängen.
AWL dient hauptsächlich zur logischen Verknüpfung von Steuerungseingängen und -ausgängen. Typischerweise wird ein (digitaler) Eingang in das Arbeitsregister (auch Akkumulator genannt) geladen (load digital input 0, „LD %IX0.0“), mit anderen Eingängen, Konstanten oder Speicherwerten verknüpft ([[Disjunktion|exklusiv-oder]] speicher bit 3, „XOR %MX0.3“) und auf einen Ausgang geschrieben (store digital output 1, „ST %QX0.1“).


Ihre Hauptmerkmale sind, dass Operatoren nur einen Operanden besitzen und dass die Sprache [[Stapelspeicher|stack]]orientiert ist. Die [[Syntax]] der Sprache ist an die [[Assemblersprache]] angelehnt und bietet nur sehr umständliche Strukturierungsmöglichkeiten durch Sprungbefehle. Vorteile ergeben sich aber, wenn aufgrund einer Speicherknappheit der eingesetzten CPU der Programmcode klein gehalten werden soll.
Die Hauptmerkmale von AWL sind, dass Operatoren nur einen Operanden besitzen und die [[Syntax]] der Sprache an die [[Assemblersprache]] angelehnt ist. Somit bietet sie nur sehr umständliche Strukturierungsmöglichkeiten durch Sprungbefehle. Vorteile ergeben sich aber, wenn aufgrund einer Speicherknappheit der eingesetzten CPU der Programmcode kleingehalten werden soll. Auf älteren Steuerungen sind AWL-Programme noch relativ häufig anzutreffen. AWL-Programme sind aber im Vergleich zu Programmen in höheren Sprachen insbesondere bei größeren Projekten sehr unübersichtlich und schlecht wartbar. Heute werden daher für die Programmierung von Steuerungen normalerweise die höheren Sprachen der IEC 61131-3, insbesondere [[Structured Text|Strukturierter Text (ST)]] oder [[Ablaufsprache]], [[Continuous Function Chart]] oder vielfach auch [[C (Programmiersprache)|C]] eingesetzt.

Für komplexere Aufgaben werden daher heute meist Höhere Sprachen wie "[[C (Programmiersprache)|C]]", [[Structured Text|strukturierter Text (SCL)]] oder eine [[Ablaufsprache]] (z. B. Graph 7) eingesetzt.

Für einfache Verknüpfungen werden graphische Sprachen wie [[Kontaktplan]] oder [[Funktionsplan]] verwendet, da sich die Abläufe besser [[Visualisierung|visualisieren]] lassen. In der SPS-Programmierung wird die AWL meist nur von Fortgeschrittenen oder Profis angewandt, da es einige Erfahrung erfordert, komplexe Programmabläufe ohne Visualisierung zu verstehen.

== Beispiele ==


== AWL-Beispielprogramme ==
Beispiel 1: Und-Verknüpfung zweier binärer Eingänge auf einen Ausgang
Beispiel 1: Und-Verknüpfung zweier binärer Eingänge auf einen Ausgang
LD INPUT1
LD INPUT1
AND INPUT2
AND INPUT2
ST OUTPUT1
ST OUTPUT


Beispiel 2: Addition zweier [[Integer]]-Werte
Beispiel 2: Addition zweier [[Integer (Datentyp)|Integer]]-Werte
LD WERT1
LD WERT1
ADD 100
ADD WERT2
ST WERT2
ST OUTPUT


Beispiel 3: RS-[[Flipflop]] (rücksetzdominant)
Beispiel 3: RS-[[Flipflop]] (rücksetzdominant)
Zeile 29: Zeile 25:
R AUSGANG
R AUSGANG


Beispiel 4: Flankenerkennung. Eine positive Flanke am Input erscheint als Impuls am Output
Im Vergleich dazu die Beispiele für Siemens S7, deutsche [[Mnemonik]]:
LD Input
U "Input1"
ANDN Flk_Merker
U "Input2"
ST Output
= "Output1"
LD Input

ST Flk_Merker
L "Wert1"
L 100
+I
T "Wert2"

U "setzen"
S "Speicher"
U "ruecksetzen"
R "Speicher"


[[Kategorie:Speicherprogrammierbare Steuerung]]
[[Kategorie:Programmiersprache]]


== Literatur ==
[[Kategorie:Automatisierungstechnik]]
* Hans-Joachim Adam, Mathias Adam: SPS-Programmierung in Anweisungsliste nach IEC61131-3 – Eine systematische und handlungsorientierte Einführung in die strukturierte Programmierung. 5. Auflage, Springer Vieweg Verlag. ISBN 978-3-662-46715-2
* Heinrich Lepers: SPS-Programmierung nach IEC 61131-3. 4. Auflage. Franzis Verlag. Haar 2011, ISBN 978-3-645-65092-2
* 3S – Smart Software Solutions GmbH : Handbuch für SPS Programmierung mit CoDeSys 2.3: https://www.wago.com/wagoweb/documentation/759/ger_manu/333/m07590333_00000000_1de.pdf (abgerufen am 29. April 2017)

Aktuelle Version vom 19. Juni 2024, 13:00 Uhr

Die Anweisungsliste, meist kurz AWL oder IL (Instruction List) genannt, ist eine der in IEC 61131-3 standardisierten Methoden zur Programmierung von Speicherprogrammierbaren Steuerungen (SPS). Viele SPS-Hersteller bezeichnen die von ihnen verwendete Sprache auch dann als AWL, wenn sie sich nicht exakt an die IEC 61131-3 hält, so dass sich bestehende AWL-Programme kaum auf Steuerungen anderer Hersteller übertragen lassen.

AWL ist in der aktuellen IEC 61131-3 von 2014-06 als ‚deprecated‘ (veraltet) gekennzeichnet. In vielen Programmierumgebungen ist sie noch enthalten, muss aber meist erst manuell aktiviert werden.

AWL dient hauptsächlich zur logischen Verknüpfung von Steuerungseingängen und -ausgängen. Typischerweise wird ein (digitaler) Eingang in das Arbeitsregister (auch Akkumulator genannt) geladen (load digital input 0, „LD %IX0.0“), mit anderen Eingängen, Konstanten oder Speicherwerten verknüpft (exklusiv-oder speicher bit 3, „XOR %MX0.3“) und auf einen Ausgang geschrieben (store digital output 1, „ST %QX0.1“).

Die Hauptmerkmale von AWL sind, dass Operatoren nur einen Operanden besitzen und die Syntax der Sprache an die Assemblersprache angelehnt ist. Somit bietet sie nur sehr umständliche Strukturierungsmöglichkeiten durch Sprungbefehle. Vorteile ergeben sich aber, wenn aufgrund einer Speicherknappheit der eingesetzten CPU der Programmcode kleingehalten werden soll. Auf älteren Steuerungen sind AWL-Programme noch relativ häufig anzutreffen. AWL-Programme sind aber im Vergleich zu Programmen in höheren Sprachen insbesondere bei größeren Projekten sehr unübersichtlich und schlecht wartbar. Heute werden daher für die Programmierung von Steuerungen normalerweise die höheren Sprachen der IEC 61131-3, insbesondere Strukturierter Text (ST) oder Ablaufsprache, Continuous Function Chart oder vielfach auch C eingesetzt.

AWL-Beispielprogramme

[Bearbeiten | Quelltext bearbeiten]

Beispiel 1: Und-Verknüpfung zweier binärer Eingänge auf einen Ausgang

LD  INPUT1
AND INPUT2
ST  OUTPUT

Beispiel 2: Addition zweier Integer-Werte

LD  WERT1
ADD WERT2
ST  OUTPUT

Beispiel 3: RS-Flipflop (rücksetzdominant)

LD  S-INPUT
S   AUSGANG
LD  R-INPUT
R   AUSGANG

Beispiel 4: Flankenerkennung. Eine positive Flanke am Input erscheint als Impuls am Output

LD   Input
ANDN Flk_Merker
ST   Output
LD   Input
ST   Flk_Merker