SPS-Programmierung in der Ausbildung – Diagnosemeldungen im Programm ergänzen
Einleitung
SPS-Programmierung in der Ausbildung – Diagnosemeldungen im Programm ergänzen zeigt Dir an einem konkreten Ausbildungsfall, wie Du eine SPS so erweiterst, dass Störungen nicht nur „irgendwie auftreten“, sondern mit Fehlercode, Ursache und definierter Rücksetzung nachvollziehbar diagnostiziert werden können.
Der Kurs arbeitet zuerst mit einer virtuellen Anlage. Du beobachtest Signalverläufe, erzeugst Fehler gezielt in der Simulation, wertest Diagnoseinformationen aus und prüfst die Rücksetzlogik. Eine reale Maschine wird in diesem Kurs nicht automatisch angesteuert.
Sicherheitsregel: Maschinenabläufe zuerst simulieren. Keine Schutzeinrichtung umgehen, überbrücken oder unwirksam machen. Reale Arbeiten nur unter geeigneter Fachaufsicht, nach betrieblicher Freigabe und entsprechend der Gefährdungsbeurteilung sowie der geltenden Betriebs- und Sicherheitsvorgaben.
Lernziele
Nach dem Kurs kannst Du eine einfache Diagnosefunktion für einen SPS-gesteuerten Ablauf planen, programmieren und testen. Du kannst einen Fehlercode einer klaren Fehlerbedingung zuordnen, zwischen Symptom und möglicher Ursache unterscheiden, eine sichere Rücksetzung festlegen und mit Signalverläufen begründen, warum eine Meldung gesetzt oder gelöscht wird.
Du lernst außerdem, Prozessdiagnosen im Anwenderprogramm von der Systemdiagnose der Steuerung zu unterscheiden.
Ausbildungsbezug
Der Kurs passt besonders zur Ausbildung in der Automatisierungstechnik. In der Elektronikerausbildungsverordnung für die Fachrichtung Automatisierungs- und Systemtechnik gehören unter anderem das Programmieren von Automatisierungssystemen, das Anwenden von Diagnosesystemen, das Prüfen von Signalen und die systematische Fehlersuche an automatisierten Anlagen zu den Ausbildungsinhalten.
Kurze Lerneinheiten
Lerneinheit 1: Was ist eine Diagnosemeldung?
Eine Diagnosemeldung beschreibt einen erkannten, technisch definierten Zustand. Für die Ausbildung ist eine einfache Struktur hilfreich:
| Bestandteil | Leitfrage | Beispiel |
|---|---|---|
| Fehlercode | Welche Störung wurde erkannt? | 101 |
| Meldung | Was ist passiert? | Werkstück erreicht Endsensor nicht |
| Ursache | Welche Ursache ist wahrscheinlich? | Blockade, Sensorfehler oder fehlender Antrieb |
| Rücksetzbedingung | Wann darf die Meldung gelöscht werden? | Fehlerbedingung beseitigt und Reset ausgelöst |
Merke: Ein Fehlercode ist nicht automatisch die Ursache. Er kennzeichnet zunächst eine erkannte Fehlerbedingung.
Lerneinheit 2: Ausbildungsfall – Förderbandstation
Du programmierst eine virtuelle Förderbandstation. Ein Werkstück wird am Eingang erkannt und soll innerhalb von vier Sekunden den Endsensor erreichen.
Virtuelle Signale:
| Signal | Bedeutung |
|---|---|
| Start | Startanforderung |
| Sensor_Einlauf | Werkstück ist am Einlauf |
| Sensor_Ende | Werkstück hat das Bandende erreicht |
| Motor_Ein | virtueller Motorbefehl |
| Sicherheit_OK | simulierte Freigabebedingung |
| Reset | Quittier- beziehungsweise Rücksetzbefehl |
| Stoerung | gespeicherte Diagnosemeldung |
| Fehlercode | numerischer Diagnosecode |

Lerneinheit 3: Signalverlauf lesen
Normaler Ablauf:
Zeit 0 1 2 3 4 5 s Start 0 1 0 0 0 0 Sensor_Einlauf 0 1 0 0 0 0 Motor_Ein 0 1 1 1 0 0 Sensor_Ende 0 0 0 1 1 1 Stoerung 0 0 0 0 0 0
Fehlerfall:
Zeit 0 1 2 3 4 5 s Start 0 1 0 0 0 0 Sensor_Einlauf 0 1 0 0 0 0 Motor_Ein 0 1 1 1 0 0 Sensor_Ende 0 0 0 0 0 0 Timeout 0 0 0 0 1 1 Stoerung 0 0 0 0 1 1
Aus dem Verlauf folgt: Der SPS-Code kann einen Timeout verwenden. Bleibt der erwartete Endsensor nach Ablauf der überwachten Zeit aus, wird Fehlercode 101 gesetzt.
Lerneinheit 4: Diagnose im Anwenderprogramm ergänzen
Das folgende Muster ist herstellerneutral gedacht. Bezeichnungen müssen an Dein SPS-System angepasst werden.
Fehlerbedingung :=
Ablauf_Aktiv
AND Transportzeit_Abgelaufen
AND NOT Sensor_Ende;
IF Fehlerbedingung THEN
Stoerung := TRUE;
Fehlercode := 101;
END_IF;
IF Reset_Flanke
AND NOT Fehlerbedingung
AND Sicherheit_OK THEN
Stoerung := FALSE;
Fehlercode := 0;
END_IF;
Wichtig: Die Rücksetzung löscht hier nur die gespeicherte Diagnose. Sie startet den Maschinenablauf nicht automatisch neu. Ein neuer Start muss getrennt und bewusst ausgelöst werden.

Lerneinheit 5: Fehlercodes sinnvoll planen
Eine kleine Fehlercodetabelle hält Programm, Visualisierung und Fehlersuche zusammen.
| Code | Fehlerbedingung | Mögliche Ursache | Rücksetzbedingung |
|---|---|---|---|
| 0 | kein Fehler | - | - |
| 101 | Endsensor fehlt nach Transportzeit | Blockade, Sensor oder Antrieb | Fehlerbedingung weg und Reset |
| 102 | Start trotz fehlender Freigabe | Freigabekette nicht erfüllt | Freigabe vorhanden und Reset |
| 103 | widersprüchliche Sensorsignale | Sensorlage, Verdrahtung oder Simulation | Signalzustand plausibel und Reset |
Gute Diagnosemeldungen sind eindeutig, reproduzierbar und mit einer prüfbaren Bedingung verknüpft. „Maschine kaputt“ ist keine gute Diagnosemeldung.

Lerneinheit 6: Rücksetzung statt blindem Quittieren
Eine Diagnose darf nicht verschwinden, nur weil jemand einen Reset-Taster betätigt. Prüfe zuerst, ob die Fehlerbedingung nicht mehr aktiv ist. Bei realen Anlagen müssen zusätzlich das Sicherheitskonzept, die Betriebsanweisung und die Freigabebedingungen berücksichtigt werden.
Für den Ausbildungsfall gilt:
- Ursache beseitigen oder in der Simulation zurücknehmen: Sensorzustände und Ablauf müssen wieder plausibel sein.
- Reset auslösen: Die gespeicherte Meldung wird gelöscht.
- Separat neu starten: Die Anlage läuft erst nach einer neuen Startanforderung wieder an.
Lerneinheit 7: Prozessdiagnose und Systemdiagnose unterscheiden
Prozessdiagnose entsteht aus Deinen eigenen Programmregeln, zum Beispiel „Sensor_Ende fehlt nach vier Sekunden“.
Systemdiagnose wird von Steuerung oder Peripherie bereitgestellt, zum Beispiel bei Baugruppenfehlern, CPU-Zustandswechseln oder anderen diagnostizierbaren Systemereignissen. Bei SIMATIC S7-1200 enthält der Diagnosepuffer zeitlich geordnete Diagnoseereignisse. Das ist etwas anderes als Dein selbst programmierter Fehlercode 101.

Lerneinheit 8: Erst simulieren, dann bewerten
Mit einer SPS-Simulation kannst Du Programmzustände beobachten und Eingänge gezielt verändern, ohne eine reale Maschine zu bewegen. Geeignete Simulationswerkzeuge erlauben unter anderem das Beobachten von Variablen, das Ändern simulierter Eingänge und das Ausführen vorbereiteter Signalfolgen.
Teste mindestens diese vier Fälle:
| Testfall | Simulation | Erwartung |
|---|---|---|
| Normalfahrt | Endsensor kommt rechtzeitig | kein Fehler |
| Timeout | Endsensor bleibt aus | Fehler 101 |
| Rücksetzen zu früh | Reset bei noch aktiver Fehlerbedingung | Fehler bleibt aktiv |
| Saubere Rücksetzung | Fehlerbedingung weg, Sicherheit_OK, Reset | Fehler wird gelöscht, kein automatischer Neustart |

Konkreter Ausbildungsauftrag
Du erhältst ein vorhandenes SPS-Programm für die virtuelle Förderbandstation. Die Anlage fährt grundsätzlich, besitzt aber noch keine verständliche Störmeldung.
Dein Auftrag:
- Ergänze eine Zeitüberwachung zwischen Sensor_Einlauf und Sensor_Ende.
- Setze bei Zeitüberschreitung Fehlercode 101.
- Speichere die Störung, damit ein kurzes Signalproblem nicht unbemerkt bleibt.
- Erlaube die Rücksetzung nur, wenn die Fehlerbedingung nicht mehr ansteht.
- Verhindere, dass eine Rücksetzung automatisch einen neuen Start auslöst.
- Dokumentiere mit einem Signalverlauf, warum der Fehler gesetzt und wieder gelöscht wird.
Gestufte Hilfen
Hilfe 1 – Orientierung: Suche im Signalverlauf das Signal, das innerhalb der Transportzeit erwartet wird.
Hilfe 2 – Logik: Bilde eine Fehlerbedingung aus „Ablauf aktiv“, „Zeit abgelaufen“ und „Endsensor fehlt“.
Hilfe 3 – Diagnose: Trenne das aktuelle Fehlerereignis von der gespeicherten Störung. Die Speicherung bleibt aktiv, bis eine zulässige Rücksetzung erfolgt.
Hilfe 4 – Sicherheit: Eine Rücksetzung soll keine Bewegung auslösen. Der neue Start bleibt eine eigene Bedienhandlung.
Basis-, Anwendungs- und Transferaufgaben
Basis
- Fehlercode lesen: Fehlercode 101 steht an. Nenne die direkt erkannte Fehlerbedingung. Begründetes Feedback: Richtig ist „Endsensor nicht innerhalb der Transportzeit erkannt“. „Motor defekt“ wäre nur eine mögliche Ursache und deshalb als direkte Aussage zu weitgehend.
- Signalspur prüfen: Im Normalverlauf wird Sensor_Ende bei Sekunde 3 aktiv. Begründe, warum kein Timeout-Fehler gesetzt werden darf. Begründetes Feedback: Die erwartete Rückmeldung kommt vor Ablauf der überwachten Zeit; die Fehlerbedingung wird deshalb nicht wahr.
Anwendung
- Rücksetzung testen: Simuliere Fehler 101 und betätige Reset, während Sensor_Ende weiterhin fehlt. Begründetes Feedback: Die Störung muss gespeichert bleiben, weil die Fehlerursache beziehungsweise Fehlerbedingung noch nicht beseitigt ist.
- Ursache eingrenzen: Motor_Ein ist aktiv, aber Sensor_Ende bleibt aus. Formuliere drei prüfbare Hypothesen. Begründetes Feedback: Gute Hypothesen beziehen sich auf Prozess, Sensorik und Antrieb, ohne aus einem einzigen Signal vorschnell eine Ursache zu behaupten.
Transfer
- Diagnosekonzept übertragen: Übertrage das Muster auf einen Pneumatikzylinder mit den Signalen Zylinder_Ausfahren und Endlage_Vorne. Begründetes Feedback: Entscheidend ist die gleiche Struktur aus Sollaktion, erwarteter Rückmeldung, Zeitüberwachung, Fehlercode und kontrollierter Rücksetzung.
- Meldesystem erweitern: Plane einen zweiten Fehlercode für widersprüchliche Endlagensignale. Begründetes Feedback: Ein eigener Code ist sinnvoll, weil die Fehlerbedingung technisch anders ist und deshalb eine andere Fehlersuche erfordert.
Interaktive Steuerungs- und Diagnoseaufgaben
Virtuelle Anlage: Entscheide den nächsten Prüfschritt
| Beobachtung | Sinnvoller nächster Prüfschritt |
|---|---|
| Motor_Ein = 0 trotz Start | Freigabebedingungen und Programmlogik prüfen |
| Motor_Ein = 1, Sensor_Ende bleibt 0 | Prozessbewegung und Sensorsignal getrennt prüfen |
| Fehler 101 bleibt nach Reset aktiv | prüfen, ob Fehlerbedingung noch ansteht |
| Fehler 101 ist weg, Anlage startet sofort | Rücksetz- und Startlogik voneinander trennen |
Signalverlaufsaufgabe
Ordne im Fehlerfall die Ereignisse logisch:
- Startanforderung wird erkannt.
- Motorbefehl wird gesetzt.
- Endsensor bleibt aus.
- Transportzeit läuft ab.
- Fehlercode 101 wird gespeichert.
- Nach beseitigter Fehlerbedingung wird quittiert.
- Ein neuer Start erfolgt nur durch eine neue Startanforderung.
Interaktive Aufgaben
Quiz: Teste Dein Wissen
Wofür steht der Fehlercode in einer Diagnosefunktion? (Für eine eindeutig definierte Fehlerbedingung) (!Immer für die bereits bewiesene Bauteilursache) (!Für die Zykluszeit der SPS) (!Für die Adresse des Motors)
Wann wird im Ausbildungsfall Fehlercode 101 gesetzt? (Wenn der Endsensor nach Ablauf der Transportzeit fehlt) (!Sobald der Starttaster gedrückt wird) (!Wenn der Endsensor rechtzeitig aktiv wird) (!Bei jedem Rücksetzbefehl)
Was ist der wichtigste Unterschied zwischen Fehlerbedingung und Ursache? (Die Fehlerbedingung ist erkannt, die Ursache muss gegebenenfalls noch eingegrenzt werden) (!Beide Begriffe bedeuten immer dasselbe) (!Die Ursache ist immer ein SPS-Ausgang) (!Die Fehlerbedingung ist nur eine Textmeldung ohne Logik)
Was soll beim Reset einer gespeicherten Störung geprüft werden? (Ob die Fehlerbedingung nicht mehr aktiv ist) (!Ob der Motor bereits wieder läuft) (!Ob die SPS ausgeschaltet wurde) (!Ob ein neuer Werkstücktransport begonnen hat)
Was soll eine Rücksetzung im Kurs nicht automatisch auslösen? (Einen neuen Maschinenstart) (!Das Löschen des Fehlercodes) (!Die Prüfung der Fehlerbedingung) (!Das Ende der Störspeicherung)
Wozu dient ein Timeout in der Prozessdiagnose? (Zur Überwachung, ob eine erwartete Rückmeldung rechtzeitig eintrifft) (!Zur Änderung der Netzadresse) (!Zur Sicherung des Programms auf einem USB-Stick) (!Zur Umwandlung eines Analogeingangs)
Welche Aussage beschreibt eine Prozessdiagnose? (Sie wird aus Bedingungen des Anwenderprogramms gebildet) (!Sie entsteht nur durch einen CPU-Hardwaredefekt) (!Sie ersetzt jede Sicherheitsfunktion) (!Sie benötigt grundsätzlich keine Eingangssignale)
Warum wird die Anlage zuerst simuliert? (Fehlerfälle können ohne reale Maschinenbewegung kontrolliert geprüft werden) (!Weil reale Sicherheitsregeln in der Simulation entfallen) (!Weil Simulation jede reale Prüfung ersetzt) (!Weil Schutzfunktionen in der Simulation abgeschaltet werden sollen)
Welche Beobachtung spricht für eine noch aktive Fehlerbedingung? (Fehler 101 bleibt trotz Reset gesetzt, während Sensor_Ende weiterhin fehlt) (!Sensor_Ende kommt rechtzeitig und Fehlercode bleibt 0) (!Die virtuelle SPS befindet sich im RUN) (!Der Starttaster ist nicht gedrückt)
Was gehört zu einer guten Diagnosemeldung? (Eindeutiger Fehlercode, klare Bedingung und definierte Rücksetzung) (!Nur ein allgemeiner Text wie Maschine kaputt) (!Automatischer Wiederanlauf nach jedem Reset) (!Umgehung der Freigabebedingungen)
Memory
| Fehlercode | eindeutige Kennnummer einer Diagnose |
| Ursache | technischer Auslöser einer Störung |
| Rücksetzung | kontrolliertes Löschen einer gespeicherten Störung |
| Timeout | überwachte Zeitüberschreitung |
| Verriegelung | verhindert einen unzulässigen Ablauf |
| Diagnosepuffer | Speicher für Systemdiagnoseereignisse |
| Simulation | Test ohne reale Maschinenbewegung |
| Signalverlauf | zeitliche Darstellung von Zuständen |
Drag and Drop
| Ordne die richtigen Begriffe zu. | Thema |
|---|---|
| Fehlercode 101 | Transportzeit überschritten |
| Sensor_Ende | erwartete Rückmeldung |
| Timeout | Zeitüberwachung |
| Reset | kontrollierte Rücksetzung |
| Simulation | virtueller Test |
...
Kreuzworträtsel
| Timeout | Welche Überwachung meldet das Ausbleiben einer erwarteten Rückmeldung nach einer festgelegten Zeit? |
| Sensorik | Welcher Bereich liefert der SPS Informationen über den Prozesszustand? |
| Diagnose | Wie heißt die systematische Erkennung und Auswertung von Fehlerzuständen? |
| Quittierung | Wie heißt das bewusste Bestätigen einer Meldung? |
| Simulation | Wie heißt der Test eines SPS-Programms ohne reale Maschinenbewegung? |
| Verriegelung | Wie heißt eine Logik, die unzulässige Zustände verhindert? |
LearningApps
Lückentext
Offene Aufgaben
Leicht
- Fehlercode: Entwirf für drei einfache Störungen einer virtuellen Förderanlage eindeutige Fehlercodes und kurze Meldetexte.
- Signalverlauf: Zeichne einen normalen und einen fehlerhaften Verlauf für Start, Motor_Ein und Sensor_Ende.
- Diagnosemeldung: Formuliere eine gute und eine schlechte Störmeldung und begründe den Unterschied.
- Simulation: Erstelle eine Testtabelle mit Normalfall, Timeout und Rücksetzung.
Standard
- SPS-Programmierung: Ergänze in einer Simulation eine gespeicherte Störung mit Fehlercode und Rücksetzbedingung.
- Fehlersuche: Entwickle einen Prüfplan, der zwischen Sensorfehler, Prozessblockade und fehlendem Motorbefehl unterscheidet.
- Visualisierung: Skizziere eine HMI-Diagnoseansicht mit Fehlercode, Meldetext, Status und Rücksetzfreigabe.
- Dokumentation: Erstelle für Fehlercode 101 eine kompakte Wartungsnotiz mit Bedingung, möglichen Ursachen und Prüfschritten.
Schwer
- Automatisierungstechnik: Übertrage das Diagnosemuster auf eine virtuelle Station mit zwei Aktoren und gegenseitigen Verriegelungen.
- Testfall: Entwickle Grenzfälle für kurze Sensorsignale, verspätete Rückmeldungen und wiederholtes Quittieren.
- Fehlermanagement: Entwirf Prioritäten für Warnung, Störung und Abschaltmeldung, ohne Sicherheitsfunktionen durch normale SPS-Logik zu ersetzen.
- Transfer: Führe unter Fachaufsicht ein Fachgespräch über die Frage, welche Teile des Simulationsmodells vor einer realen Inbetriebnahme zusätzlich geprüft und freigegeben werden müssen.


Lernkontrolle
- Diagnosestrategie: Ein Motorbefehl ist aktiv, die erwartete Rückmeldung fehlt. Entwickle eine Prüfreihenfolge und begründe, warum Du nicht sofort den Motor als Ursache festlegst.
- Rücksetzkonzept: Beurteile eine Programmierung, bei der Reset gleichzeitig die Störung löscht und den Motor startet. Beschreibe die Risiken und verbessere das Konzept.
- Signaldiagnose: Vergleiche zwei Signalverläufe und entscheide, welcher Verlauf einen Timeout rechtfertigt. Begründe anhand der Zeitbeziehungen.
- Fehlercode: Entwirf ein kleines Codeschema für Transportfehler, Sensorwidersprüche und fehlende Freigaben. Begründe die Trennung der Fehlerarten.
- Simulation: Plane einen Test, mit dem Du nachweist, dass eine Diagnose korrekt gespeichert wird und erst nach beseitigter Fehlerbedingung rücksetzbar ist.
- Systemdiagnose: Erkläre an einem Beispiel, wann Du zuerst eine Prozessmeldung im Anwenderprogramm und wann zusätzlich Systemdiagnoseinformationen der SPS untersuchen würdest.
Lernnachweis
Für einen Lernnachweis solltest Du zeigen können, dass Du:
- einen Signalverlauf fachlich liest und eine Fehlerbedingung daraus ableitest,
- einen eindeutigen Fehlercode mit einer klaren Diagnosebedingung verknüpfst,
- Symptom, erkannte Fehlerbedingung und mögliche Ursache unterscheidest,
- eine gespeicherte Störung mit nachvollziehbarer Rücksetzlogik programmierst,
- einen automatischen Wiederanlauf durch die Diagnose-Rücksetzung vermeidest,
- mindestens einen Normalfall und mehrere Fehlerfälle in einer virtuellen Anlage testest,
- Deine Testergebnisse dokumentierst und begründest,
- Prozessdiagnose und Systemdiagnose unterscheidest,
- Grenzen einer Simulation benennst,
- bei realen Arbeiten Fachaufsicht, betriebliche Freigabe und Schutzmaßnahmen beachtest.
Geprüfte fachliche Quellen und Medienrechte
Fachliche Quellen, geprüft am 7. Oktober 2026:
- Elektronikerausbildungsverordnung 2021: Ausbildungsinhalte zu Automatisierungssystemen, Diagnose, Fehlersuche und Funktionsanalyse.
- Siemens SIMATIC S7-1200 System Manual, V4.7, 12/2024: unter anderem Diagnosepuffer und Systemdiagnose.
- Siemens S7-PLCSIM Online-Hilfe, V20, 11/2024: Simulation von SPS-Programmen und dokumentierte Einschränkungen.
- Wikipedia: Speicherprogrammierbare Steuerung: Grundlagen zu SPS, Ein-/Ausgängen, Programmierung und Diagnose.
Wichtiger Quellenhinweis: Herstellerhandbücher beschreiben konkrete Systeme und Versionen. Prüfe bei realen Projekten immer die Dokumentation der tatsächlich eingesetzten CPU, Softwareversion, Peripherie und Maschine.
Verwendete Wikimedia-Commons-Medien:
– Urheber UlrichAAB, CC BY-SA 3.0 und GFDL laut Dateiseite.
– Urheber Palatinatian, CC BY 3.0 laut Dateiseite.
– Urheber Grixlkraxl, CC BY-SA 3.0 und GFDL laut Dateiseite.
– Urheber Alxcor, CC BY-SA 4.0 laut Dateiseite.
– Urheber Mithilrkadam, CC BY-SA 4.0 laut Dateiseite.
– Urheber DoNothing, CC BY-SA 4.0 laut Dateiseite.
– CC BY-SA 3.0 und GFDL laut Dateiseite.
YouTube-Medien: Die eingebetteten Videos wurden als tatsächlich vorhandene Lernmedien geprüft. Die Urheber- und Nutzungsrechte verbleiben bei den jeweiligen Kanälen; durch die Einbettung wird keine freie OER-Lizenz behauptet. Die Videos stammen von sps4you, Automation Avenue und AUTOMATION TOOLS. Kein Sofatutor-Medium wurde verwendet.
OERs zum Thema
Verknüpfte Lernbereiche
aiMOOC-Projekte
Schulfach+


aiMOOCs


aiMOOC Projekte


MOOCwiki · Deutsch
Nach dem Lernen ist vor dem Lernen
Entdecke direkt den nächsten Lernkurs. Weitere Inhalte erscheinen, wenn Du weiter nach unten scrollst.
Zur MOOCwiki-HauptseiteMediathek
Mediathek wird aus dem Wiki geladen ...
Keine passenden Inhalte gefunden. Bitte ändere Suche oder Filter.
NEWSLernweltNOAH fragen