S5-AWL-Code lesen und verstehen: Praxisleitfaden
Lernen Sie Siemens S5 AWL-Code von Grund auf zu lesen. Akkumulator-Modell, Bitverknüpfungen, Laden/Transferieren, Timer, Zähler, Sprünge und Datenbausteine mit echten Codebeispielen und zeilenweiser Erklärung.
S5-AWL-Code lesen und verstehen: Praxisleitfaden
S5 AWL (Anweisungsliste) ist eine maschinennahe Textsprache, in der jede Zeile eine Anweisung ist, die auf einem Einzelbit-Ergebnis (VKE) oder den 16-Bit-Akkumulatoren arbeitet. Um AWL-Code zu lesen, müssen Sie drei Dinge verstehen: wie das VKE Bitverknüpfungen verkettet, wie die zwei Akkumulatoren Wort-/Ganzzahl-Operationen verarbeiten, und wie Sprünge den Programmfluss steuern.
AWL ist die häufigste Programmiersprache in S5-Altanlagen. Selbst wenn das Programm ursprünglich in KOP (Kontaktplan) oder FUP (Funktionsplan) geschrieben wurde, ist das gespeicherte Format oft AWL.
Die zwei Kernkonzepte
Konzept 1: Das VKE (Verknüpfungsergebnis)
Das VKE ist ein einzelnes Bit, das das Ergebnis aller Bitverknüpfungen hält. Stellen Sie es sich als eine laufende WAHR/FALSCH-Antwort vor, die mit jeder Bit-Anweisung aktualisiert wird.
U E 0.0 // VKE = Zustand von E 0.0 (WAHR wenn Eingang EIN)
U E 0.1 // VKE = bisheriges VKE UND E 0.1
UN M 10.0 // VKE = bisheriges VKE UND NICHT M 10.0
= A 4.0 // VKE an Ausgang A 4.0 schreiben
Gelesen: "WENN E 0.0 UND E 0.1 UND NICHT M 10.0, DANN A 4.0 = EIN."
VKE-Regeln:
U(UND) — VKE = VKE UND OperandO(ODER) — VKE = VKE ODER OperandUN(UND NICHT) — VKE = VKE UND NICHT OperandON(ODER NICHT) — VKE = VKE ODER NICHT Operand=(Zuweisung) — VKE auf Operand schreiben, dann VKE zurücksetzenS(Setzen) — Wenn VKE = WAHR, Operand auf WAHR setzen (Selbsthaltung)R(Rücksetzen) — Wenn VKE = WAHR, Operand auf FALSCH setzen
Konzept 2: Die Akkumulatoren (AKKU1 und AKKU2)
Die S5-CPU hat zwei 16-Bit-Register. Alle Wort-Operationen (Laden, Transferieren, Rechnen, Vergleichen) nutzen diese zwei Register.
L MW 10 // MW10 in AKKU1 laden (bisheriger AKKU1 rutscht nach AKKU2)
L MW 12 // MW12 in AKKU1 laden (MW10 ist jetzt in AKKU2)
+F // AKKU1 = AKKU2 + AKKU1 = MW10 + MW12
T MW 20 // AKKU1 nach MW20 transferieren
Kernregel: Jedes L schiebt den bisherigen AKKU1-Inhalt nach AKKU2 und lädt den neuen Wert in AKKU1. So kommen zwei Operanden in die zwei Akkumulatoren für Rechnung oder Vergleich.
Bitlogik lesen: Die Selbsthaltung
Das häufigste Muster in jedem S5-Programm:
U E 0.0 // Starttaster gedrückt?
S M 10.0 // Ja → Merker setzen (einrasten)
U E 0.1 // Stopptaster gedrückt?
R M 10.0 // Ja → Merker rücksetzen (ausrasten)
U M 10.0 // Merker gesetzt?
= A 4.0 // Ja → Motor-Ausgang einschalten
Klartext: "Starttaster (E 0.0) drücken schaltet den Motor (A 4.0) ein. Er bleibt an, bis der Stopptaster (E 0.1) gedrückt wird." Das ist das SPS-Äquivalent einer Relais-Selbsthalteschaltung.
Timer-Anweisungen lesen
U E 0.0 // Startbedingung
L KT 030.2 // Timer-Wert laden: 30 × 1s = 30 Sekunden
SD T 1 // Einschaltverzögerung T1 starten
U T 1 // Timer 1 abgelaufen?
= A 4.0 // Ja → Ausgang einschalten
So liest man KT 030.2: Die Zahl vor dem Punkt (030) ist der Wert. Die Zahl nach dem Punkt (2) ist die Zeitbasis. Zeitbasen: 0 = 10ms, 1 = 100ms, 2 = 1s, 3 = 10s. Also KT 030.2 = 30 × 1s = 30 Sekunden.
Timer-Typen:
SI— Impuls: Ausgang EIN während LaufzeitSE— Verlängerter Impuls: wie SI, startet aber bei Retrigger neuSD— Einschaltverzögerung: Ausgang EIN nach Ablauf, WENN Eingang noch EINSS— Speichernde Einschaltverzögerung: wie SD, Ausgang bleibt bis ResetSA— Ausschaltverzögerung: Ausgang sofort EIN, bleibt für Zeitdauer nach Eingang AUS
Nutzen Sie unseren S5-Timer-Rechner zum Entschlüsseln jedes KT-Werts.
Sprungbefehle lesen
U E 0.0 // Eingang prüfen
SPB M001 // WENN WAHR → zu Marke M001 springen
L KF +0 // (wird ausgeführt wenn E 0.0 FALSCH)
T MW 20 // MW20 = 0
SPA DONE // Über den WAHR-Zweig springen
M001: L KF +100 // (wird ausgeführt wenn E 0.0 WAHR)
T MW 20 // MW20 = 100
DONE: NOP 0 // Programm weiter
Sprungarten:
SPA— Unbedingter Sprung (springt immer)SPB— Sprung wenn VKE = 1 (Sprung wenn wahr)SPBN— Sprung wenn VKE = 0 (Sprung wenn nicht wahr)
Lesetipp: SPBN SKIP gefolgt von Code und dann SKIP: NOP 0 bedeutet: "Führe den Code zwischen SPBN und SKIP nur aus wenn die Bedingung WAHR ist."
Datenbaustein-Zugriff lesen
A DB 10 // Datenbaustein 10 aufschlagen
L DW 5 // Datenwort 5 aus DB10 laden
T MW 20 // In MW20 speichern
A DB (Aufschlagen) öffnet einen Datenbaustein. Er bleibt offen bis ein anderer A DB oder C DB kommt. Alle folgenden DW-Zugriffe beziehen sich auf den aktuell geöffneten DB.
Häufige Falle: Wenn Sie L DW 5 ohne vorhergehendes A DB im selben Netzwerk sehen, schauen Sie rückwärts — der DB wurde früher geöffnet, möglicherweise in einem vorherigen Netzwerk.
Konstantenformate lesen
| Format | Bedeutung | Beispiel | Wert |
|---|---|---|---|
| KF | Festkomma-Integer | KF +100 | Ganzzahl 100 |
| KH | Hexadezimal | KH 00FF | Hex 00FF = 255 |
| KM | Bitmuster (16 Bit) | KM 1111 0000 1111 0000 | Binäre Maske |
| KC | Zeichen (2 Zeichen) | KC AB | ASCII "AB" |
| KT | Zeitwert | KT 030.2 | 30 Sekunden |
| KZ | Zählwert | KZ 100 | Zählerstand 100 |
| KY | Zwei Bytes | KY 10,20 | Byte1=10, Byte2=20 |
Praxisbeispiel: Ein komplettes Netzwerk lesen
U E 1.0 // Näherungssensor: Teil vorhanden
FP M 20.0 // Steigende Flanke erkennen (Teil gerade angekommen)
SPB M010 // WENN Flanke erkannt → zu M010 springen
SPA M020 // SONST → zu M020 springen
M010: L Z 1 // Zähler Z1 laden
L KF +1 // Konstante 1 laden
+F // Addieren: Zähler + 1
T MW 100 // Neuen Zählerstand speichern
L MW 100 // Zählerstand neu laden
L KZ 050 // Sollwert 50 laden (Charge voll)
!=F // Vergleich: Zählerstand == 50?
S M 30.0 // Ja → "Charge fertig"-Merker setzen
M020: NOP 0 // Weiter
Klartext: "Jedes Mal wenn ein neues Teil ankommt (steigende Flanke an E 1.0), Zähler in MW 100 um 1 erhöhen. Bei 50 Teilen den Charge-Fertig-Merker M 30.0 setzen."
Kurzreferenz: Häufigste S5-Anweisungen
| Anweisung | Was sie tut |
|---|---|
| U / UN | UND / UND NICHT (Bitverknüpfung) |
| O / ON | ODER / ODER NICHT (Bitverknüpfung) |
| S / R | Setzen / Rücksetzen (Selbsthaltung) |
| = | VKE auf Operand zuweisen |
| L / T | In AKKU1 laden / AKKU1 an Adresse transferieren |
| +F / -F | Ganzzahl addieren / subtrahieren |
| !=F / >F / <F | Vergleich gleich / größer / kleiner |
| SPB / SPBN | Sprung wenn wahr / wenn nicht wahr |
| SPA | Unbedingter Sprung |
| SD / SA / SI / SE / SS | Timer-Typen |
| ZV / ZR | Vorwärts / Rückwärts zählen |
| A DB | Datenbaustein aufschlagen |
| BE | Bausteinende |
PLCcheck Pro erklärt jeden AWL-Code verständlich. Laden Sie Ihr S5-Programm hoch und erhalten Sie eine vollständige Zeile-für-Zeile-Erklärung. Jetzt testen →
Häufig gestellte Fragen
Was bedeutet VKE in AWL?
VKE = Verknüpfungsergebnis. Ein einzelnes Bit, das das laufende Ergebnis aller Bitverknüpfungen (U, O, UN, ON) hält. Es ist das AWL-Äquivalent zur "Stromschiene" im Kontaktplan.
Warum hat AWL zwei Akkumulatoren?
Weil Rechen- und Vergleichsoperationen zwei Operanden brauchen. Das erste L lädt einen Wert in AKKU1. Das zweite L schiebt den ersten Wert nach AKKU2 und lädt den neuen in AKKU1. Jetzt stehen beide Operanden für +F, !=F usw. bereit.
Was ist der Unterschied zwischen SPB und SPBN?
SPB (Sprung bedingt) springt WENN das VKE WAHR ist (=1). SPBN (Sprung bedingt NICHT) springt WENN das VKE FALSCH ist (=0).
Woher weiß ich, welcher Datenbaustein geöffnet ist?
Schauen Sie im Code rückwärts nach der letzten A DB- oder C DB-Anweisung. Der DB bleibt offen bis ein anderer geöffnet wird.
Gepflegt von PLCcheck.ai. Letztes Update: März 2026. Keine Verbindung zu Siemens AG.
Verwandte Artikel
Undokumentierte SPS-Anlage übernehmen: Erste Schritte
Praxisleitfaden für Techniker, die ein unbekanntes SPS-System übernehmen. Die Erste-Woche-Checkliste: Hardware-Bestandsaufnahme, Programmsicherung, Risikobewertung, Ersatzteile und Wissensaufbau von Null.
14 Min. Lesezeit
plc-documentationSPS-Programm dokumentieren ohne Originalunterlagen
Praxisleitfaden: Schritt-für-Schritt-Methode zur Dokumentation eines undokumentierten SPS-Programms. Bausteinverzeichnis, E/A-Verfolgung, Querverweisanalyse, Symboltabelle erstellen und brauchbare Dokumentation aus rohem Code erzeugen.
15 Min. Lesezeit
migration-guideDer Siemens S5/S7-Konverter: Was er kann und was nicht
Ehrliche Bewertung des Siemens STEP 7 S5→S7-Konvertierungswerkzeugs. Was es automatisch konvertiert, was es nicht schafft, typische Fehler und wie Sie die verbleibenden 20–40% manueller Arbeit bewältigen.
12 Min. Lesezeit
SPS-Code mit KI analysieren
PLCcheck Pro erklärt, dokumentiert, optimiert und migriert SPS-Code — automatisch.
PLCcheck Pro testen →Nicht verbunden mit Siemens AG. S5, S7, STEP 5, STEP 7 und TIA Portal sind Marken der Siemens AG.