SPS-Diagnose und Online-Funktionen
Eine SPS arbeitet im Verborgenen. Sie liest Eingänge ein, rechnet ein Programm durch und schaltet Ausgänge — tausende Male pro Sekunde, ohne dass man von außen etwas davon sieht. Solange alles läuft, ist das kein Problem. Erst wenn eine Anlage stehenbleibt, ein Zylinder nicht ausfährt oder ein Ausgang stur auf Null bleibt, stellt sich die Frage: Was passiert da drin eigentlich?
Genau hier setzen die Online-Funktionen und die Diagnose an. Sie machen die Black Box durchsichtig. Über eine Online-Verbindung kann man dem Programm live bei der Arbeit zusehen, einzelne Signale mitlesen, Werte gezielt vorgeben und nachlesen, welche Fehler die Steuerung selbst registriert hat. Wer diese Werkzeuge beherrscht, findet Störungen in Minuten — statt stundenlang im Schaltschrank zu raten.
Vorwissen
- Was ist eine SPS? Aufbau und Funktion
- Zyklischer Programmablauf (EVA-Prinzip)
- Adressierung von E/A und Merkern
Lernziele
Nach diesem Beitrag kannst du:
- den Unterschied zwischen Offline- und Online-Betrieb erklären und sagen, was eine Online-Verbindung überträgt
- die Status-LEDs einer CPU und der E/A-Module richtig deuten und damit eine schnelle Vor-Ort-Diagnose machen
- die Betriebszustände STOP, ANLAUF und RUN unterscheiden und die Übergänge beschreiben
- variablen online beobachten und den sicherheitskritischen Unterschied zwischen Steuern und Forcen erklären
- den Diagnosepuffer auslesen, einen Fehler bis zur Programmstelle zurückverfolgen und die Zykluszeit online beurteilen
1. Online vs. Offline – der Unterschied
Beim Arbeiten mit einer SPS gibt es zwei grundlegend verschiedene Situationen. Im Offline-Betrieb sitzt man am Programmiergerät — meist ein Laptop mit der Programmiersoftware — und bearbeitet das Projekt, ohne dass eine Verbindung zur Steuerung besteht. Man schreibt Code, ändert Netzwerke, legt Variablen an. Die SPS bekommt davon nichts mit; das Projekt liegt nur auf dem PC.
Im Online-Betrieb besteht eine aktive Verbindung zwischen Programmiergerät und laufender Steuerung. Jetzt sieht man nicht mehr nur den gespeicherten Programmtext, sondern das, was die CPU in diesem Moment tatsächlich tut. Diese Verbindung nennt man Online-Verbindung, und sie ist die Grundlage für so gut wie jede Diagnose.
Sobald man online geht, vergleicht die Software automatisch zwei Dinge: das Projekt auf dem PC und das Programm in der CPU. Stimmen beide überein, ist alles konsistent. Weichen sie ab — etwa weil jemand das Programm auf dem PC geändert, aber nicht in die CPU geladen hat — wird das angezeigt. Dieser Konsistenzvergleich ist wichtiger, als er klingt: Wer eine Störung an einem Programmstand sucht, der gar nicht in der Anlage läuft, sucht am falschen Ort.
Was man online sieht, hängt davon ab, in welchem Betriebszustand sich die CPU befindet und welche Signale gerade anliegen. Genau das schauen wir uns in den nächsten Kapiteln Schritt für Schritt an — beginnend mit dem, was man ganz ohne Laptop schon vor der Anlage erkennt.
Ein Techniker geht mit dem Laptop online und die Software meldet eine Abweichung zwischen Projekt and CPU. Was bedeutet das für die anschließende Fehlersuche?
- a) Der Programmstand im Laptop entspricht nicht dem in der Anlage laufenden Programm
- b) Die CPU ist defekt und muss getauscht werden
- c) Die Online-Verbindung ist unzulässig und muss getrennt werden
- d) Die Anlage befindet sich zwingend im STOP
Richtig: a)
Eine Abweichung im Konsistenzvergleich heißt, dass PC-Projekt und CPU-Programm nicht identisch sind. Sucht man dann im PC-Stand nach einem Fehler, untersucht man möglicherweise Code, der gar nicht läuft. Die CPU muss deshalb weder defekt sein (a) noch im STOP stehen (d), und die Verbindung ist völlig zulässig (c) — gerade sie deckt die Abweichung ja erst auf.
Worin liegt der entscheidende Unterschied des Online-Betriebs gegenüber dem Offline-Betrieb?
- a) Online lässt sich das Programm schneller schreiben
- b) Online ist die einzige Möglichkeit, Variablen anzulegen
- c) Online sieht man die tatsächlichen Zustände und Werte der laufenden CPU in Echtzeit
- d) Offline besteht eine ständige Verbindung zur CPU
Richtig: c)
Der Kern des Online-Betriebs ist der Echtzeit-Einblick in die laufende Steuerung — anliegende Signale, aktuelle Werte, Betriebszustand. Das Schreiben und Strukturieren von Code (a, b) macht man typischerweise offline. Antwort d verdreht die Definition: Gerade offline besteht keine Verbindung.
2. Status-LEDs und Hardware-Diagnose
Wer zu einer gestörten Anlage gerufen wird, braucht für den ersten Eindruck noch keinen Laptop. Die SPS und ihre Module zeigen über Leuchtdioden bereits eine Menge an. Diese Status-LEDs sind die schnellste Form der Diagnose — ein Blick in den Schaltschrank, und man weiß oft schon, in welche Richtung es geht.
An der CPU selbst finden sich meist mehrere Anzeigen. Eine LED signalisiert den Betriebszustand (läuft das Programm oder steht es?). Eine Sammelfehler-Anzeige — je nach Hersteller mit ERROR oder SF (Sammelfehler) beschriftet — leuchtet auf, sobald irgendwo ein Fehler ansteht, ohne ihn schon genau zu benennen. Eine Wartungsanzeige (oft MAINT) weist auf einen Zustand hin, der zwar noch kein Ausfall ist, aber Aufmerksamkeit verlangt.
Die folgende Übersicht zeigt typische LED-Bedeutungen. Beschriftungen und Farben unterscheiden sich je nach Fabrikat, das Prinzip ist aber überall gleich:
| LED (typisch) | Zustand | Bedeutung |
|---|---|---|
| RUN | grün, leuchtet | Programm läuft, zyklische Abarbeitung |
| STOP | gelb, leuchtet | CPU im STOP, keine Programmbearbeitung |
| ERROR / SF | rot, leuchtet | Sammelfehler steht an — irgendwo ein Fehler |
| MAINT | gelb | Wartung erforderlich, noch kein Ausfall |
| Busfehler | rot | Störung in der Modul- oder Feldbuskommunikation |
| Kanal-LED am Modul | grün | Eingang/Ausgang am jeweiligen Kanal aktiv |
Besonders aufschlussreich sind die Kanalstatus-LEDs an den Ein- und Ausgabebaugruppen. Jeder Kanal hat in der Regel eine eigene LED, die anzeigt, ob das Signal logisch „1″ ist. Bei einem Eingang heißt das: Sensor oder Schalter liefert ein Signal. Bei einem Ausgang: Die SPS hat den Ausgang gesetzt. Damit lässt sich eine Wirkungskette prüfen, ohne ein einziges Mal zu messen — leuchtet die Eingangs-LED, wenn man den Sensor betätigt? Leuchtet die Ausgangs-LED, wenn das Programm schalten sollte?
Eine eigene Busfehler-LED zeigt Störungen in der Kommunikation an — etwa wenn ein dezentrales E/A-Modul nicht mehr erreichbar ist oder eine Leitung zum Feldbus unterbrochen wurde. Auch der Modul- oder Steckplatzstatus wird angezeigt: Fällt eine Baugruppe aus oder steckt sie nicht richtig, meldet das die Steuerung über eine entsprechende Anzeige.
Wie man eine solche Beobachtung anschließend systematisch weiterverfolgt — etwa mit Methodik und Signalverlauf im Stromlaufplan — gehört in den eigenen Beitrag zur Fehlersuche in Steuerungen. Hier geht es nur um die Werkzeuge, die die SPS selbst bietet.
An einer Pneumatik-Station betätigt ein Techniker den Endlagensensor von Hand. Die zugehörige Kanal-LED am Eingangsmodul bleibt dunkel. Was lässt sich daraus zuerst schließen?
- a) Das SPS-Programm enthält einen Logikfehler
- b) Der Ausgang zum Ventil ist defekt
- c) Das Eingangssignal erreicht das Modul nicht — Sensor oder Verdrahtung prüfen
- d) Die CPU befindet sich im STOP
Richtig: c)
Die Kanal-LED am Eingang zeigt den logischen Zustand des Eingangssignals an. Bleibt sie beim Betätigen dunkel, kommt das Signal physisch nicht am Modul an — die Ursache liegt also vor der SPS, bei Sensor oder Verdrahtung. Ein Logikfehler (a) oder ein Ausgangsdefekt (b) wären erst später zu prüfen. Im STOP (d) würden die Kanal-LEDs der Eingänge übrigens weiterhin den physischen Signalzustand anzeigen.
Die Sammelfehler-LED (SF/ERROR) an der CPU leuchtet rot. Welche Aussage ist korrekt?
- a) Sie nennt genau, welcher Baustein den Fehler verursacht
- b) Sie bedeutet immer einen Hardwaredefekt der CPU
- c) Sie erlischt erst nach einem Tausch der CPU
- d) Sie zeigt nur an, dass ein Fehler ansteht; die Ursache muss weiter ermittelt werden
Richtig: d)
Die Sammelfehler-Anzeige bündelt verschiedene Fehlerquellen in einer einzigen Meldung — sie signalisiert, dass etwas nicht stimmt, ohne die genaue Ursache zu nennen (daher falsch: a). Die Ursache reicht von Peripherie- über Programmfehler bis zu Hardwareproblemen, ein CPU-Defekt ist nur eine Möglichkeit (b). Sie erlischt, sobald die Fehlerursache behoben ist — ein CPU-Tausch ist dafür nicht nötig (c).
3. Betriebszustände der CPU (STOP, ANLAUF, RUN)
Die Status-LEDs zeigen unter anderem an, in welchem Betriebszustand sich die CPU gerade befindet. Diese Zustände bestimmen, was die Steuerung tut — und was sie nicht tut. Drei sind grundlegend.
Im STOP bearbeitet die CPU kein Anwenderprogramm. Sie hält die Verbindung zur Programmiersoftware aufrecht und lässt sich laden oder diagnostizieren, aber die Ausgänge werden nicht vom Programm gesteuert — sie gehen in einen sicheren Zustand, üblicherweise abgeschaltet. Dieser Zustand wird gezielt zum Laden eines neuen Programms genutzt, oder die CPU geht von selbst in STOP, wenn ein schwerer Fehler auftritt.
Beim Übergang von STOP nach RUN durchläuft die CPU einmalig den ANLAUF (auch STARTUP genannt). Hier werden Anlaufroutinen abgearbeitet: Variablen bekommen ihre Startwerte, ein eventuell vorhandener Anlauf-Organisationsbaustein wird ausgeführt, die Peripherie wird initialisiert. Der Anlauf läuft genau einmal und geht dann in den zyklischen Betrieb über.
Im RUN arbeitet die CPU das Anwenderprogramm zyklisch ab — also der bekannte EVA-Ablauf: Eingänge lesen, Programm verarbeiten, Ausgänge schreiben, immer wieder. Das ist der Normalbetrieb, in dem die Anlage produziert.
STOP –(Anlauf anstoßen)–> ANLAUF –(einmalig durchlaufen)–> RUN
RUN –(Stopp-Befehl oder schwerer Fehler)–> STOP
Den Betriebszustand kann man auf zwei Wegen erkennen: über die LEDs an der CPU (siehe vorheriges Kapitel) und online im Programmiertool, das den aktuellen Zustand klar anzeigt. Online lässt sich die CPU auch gezielt umschalten — etwa von RUN nach STOP, bevor man ein geändertes Programm lädt. Geht eine CPU unerwartet in STOP, ist das fast immer das Zeichen eines schweren Fehlers, dessen Ursache man im Diagnosepuffer findet (Kapitel 5).
Während der Inbetriebnahme schaltet ein Techniker die CPU von STOP auf RUN. Welche Aussage zum nun einsetzenden ANLAUF ist korrekt?
- a) Der ANLAUF wird einmalig durchlaufen und initialisiert die Steuerung, bevor RUN beginnt
- b) Im ANLAUF werden die Ausgänge dauerhaft gesperrt
- c) Der ANLAUF wird in jedem Zyklus erneut durchlaufen
- d) Der ANLAUF ersetzt den RUN-Betrieb vollständig
Richtig: a)
Der ANLAUF ist ein einmaliger Übergangszustand: Startwerte setzen, Anlauf-OB ausführen, Peripherie initialisieren — danach geht es in den zyklischen RUN. Er läuft nicht in jedem Zyklus (c) und ersetzt RUN nicht (d). Eine dauerhafte Ausgangssperre (b) gehört zum STOP, nicht zum ANLAUF.
Eine Anlage steht. Im Schaltschrank leuchtet die STOP-LED der CPU. Ein Mitarbeiter sagt: „Dann ist die Steuerung ja stromlos und sicher.“ Wie ist das zu bewerten?
- a) Richtig, im STOP ist die CPU spannungsfrei
- b) Falsch, die CPU ist versorgt und erreichbar, führt nur kein Programm aus
- c) Richtig, im STOP lassen sich keine Befehle mehr an die CPU senden
- d) Falsch, im STOP läuft das Programm normal weiter
Richtig: b)
STOP bedeutet ausschließlich, dass das Anwenderprogramm nicht abgearbeitet wird. Die CPU is voll versorgt, kommuniziert und nimmt Befehle entgegen (daher falsch: a, c). Sie führt aber gerade kein Programm aus, also läuft es auch nicht weiter (d). Die Steuerung als „stromlos und sicher“ zu betrachten ist gefährlich, weil ein Umschalten auf RUN die Anlage sofort wieder in Bewegung setzen kann.
4. Variablen beobachten und steuern
Die LEDs zeigen den groben Zustand. Will man genau wissen, welchen Wert eine bestimmte Variable trägt oder wie ein Signal durch die Logik läuft, braucht es die Online-Funktionen direkt im Programm.
Beim Beobachten liest man die aktuellen Signalzustände und Werte live im Programmcode mit. In der Kontaktplandarstellung wird etwa der Stromfluss eingefärbt — man sieht auf einen Blick, welche Kontakte geschlossen sind und wo der „Stromfluss“ durch das Netzwerk hängenbleibt. Bei Zahlenwerten, etwa einem Zähler- oder Analogwert, wird der aktuelle Wert direkt eingeblendet. Das Beobachten verändert nichts; es zeigt nur an.
Oft will man mehrere Variablen gleichzeitig im Auge behalten, die im Programm weit auseinanderliegen. Dafür gibt es die Beobachtungstabelle (auch Watch-Tabelle genannt). Man stellt sich darin die interessanten Variablen frei zusammen — Eingänge, Ausgänge, Merker, Bausteinparameter — und beobachtet ihre Werte gebündelt an einer Stelle. Für die Diagnose ist das das wohl meistgenutzte Werkzeug.
In derselben Tabelle lassen sich Werte auch vorgeben. Dabei sind zwei Funktionen streng zu unterscheiden:
Beim Steuern gibt man einer Variablen einen Wert vor. Dieser Wert wird aber vom laufenden Anwenderprogramm im nächsten Zyklus wieder überschrieben, sobald die Programmlogik die Variable neu berechnet. Steuern eignet sich also, um kurz einen Zustand anzustoßen oder einen Eingang testweise zu setzen, ohne die Logik dauerhaft auszuhebeln.
Beim Forcen (auch Zwingen) ist das anders. Ein geforcter Wert wird fest erzwungen — das Anwenderprogramm kann ihn nicht mehr überschreiben. Forcen wirkt direkt bis auf die Peripherieebene und hält den Wert, bis das Forcen aktiv wieder aufgehoben wird. Damit lässt sich ein Signal hart auf einen Zustand klemmen, unabhängig von Programm und tatsächlicher Verdrahtung.
Genau das macht das Forcen heikel. Es umgeht die Programmlogik — und damit potenziell auch Verriegelungen und Sicherheitsabfragen, die im Programm hinterlegt sind. Ein geforcter Ausgang schaltet, egal was die Sicherheitslogik eigentlich vorsieht.
Ein Techniker setzt einen Eingangsmerker per „Steuern“ auf 1, doch im nächsten Moment steht er wieder auf 0. Was ist die Ursache?
- a) Die Beobachtungstabelle ist fehlerhaft konfiguriert
- b) Der Merker ist defekt
- c) Das Anwenderprogramm hat den Wert im nächsten Zyklus überschrieben
- d) Die Online-Verbindung wurde getrennt
Richtig: c)
Beim Steuern wird ein Wert vorgegeben, aber nicht erzwungen — die Programmlogik berechnet die Variable im nächsten Zyklus neu und überschreibt den vorgegebenen Wert. Genau das ist der Unterschied zum Forcen. Es liegt also kein Konfigurations- (a) oder Verbindungsproblem (d) vor, und ein Merker als reine Speicheradresse kann nicht „defekt“ sein (b).
Bei der Übernahme einer Anlage leuchtet die FORCE-LED an der CPU. Welche Reaktion ist fachlich korrekt?
- a) Ignorieren, die LED hat keine sicherheitsrelevante Bedeutung
- b) Sofort die Versorgung der CPU trennen
- c) Die LED durch einen Neustart der CPU löschen
- d) Klären, welche Signale warum geforct sind, da die Anlage von der Programmlogik abweicht
Richtig: d)
Eine aktive FORCE-LED bedeutet, dass mindestens ein Signal erzwungen wird und die Anlage damit nicht der programmierten Logik folgt — möglicherweise sind Verriegelungen außer Kraft. Korrekt ist, den Force-Zustand zu klären und kontrolliert aufzulösen (d). Ignorieren ist gefährlich (a), ein hartes Trennen der Versorgung (b) kann unkontrollierte Zustände auslösen, und ein Neustart zur reinen „LED-Löschung“ (c) verkennt die Ursache.
Worin liegt der sicherheitstechnisch entscheidende Unterschied zwischen Steuern und Forcen?
- a) Forcen erzwingt den Wert dauerhaft und kann dabei Verriegelungen im Programm übergehen
- b) Steuern wirkt nur auf Ausgänge, Forcen nur auf Eingänge
- c) Steuern ist generell verboten, Forcen erlaubt
- d) Beide unterscheiden sich nur in der Bediengeschwindigkeit
Richtig: a)
Der sicherheitskritische Punkt ist, dass ein geforcter Wert fest erzwungen wird und vom Programm nicht mehr korrigiert werden kann — dadurch lassen sich auch Verriegelungen und Sicherheitsabfragen übergehen. Die Wirkung ist nicht auf eine Signalrichtung beschränkt (b), beide Funktionen haben ihre Berechtigung (c), und der Unterschied ist nicht die Geschwindigkeit (d), sondern die Beständigkeit des Eingriffs.
5. Diagnosepuffer und Fehlerorganisationsbausteine
Manche Fehler treten nur sporadisch auf oder liegen schon zurück, wenn man vor der Anlage steht. Hier hilft der Diagnosepuffer — ein chronologisches Ereignisprotokoll, das die CPU selbst führt.
Im Diagnosepuffer hält die Steuerung wichtige Ereignisse mit Zeitstempel fest: Übergänge zwischen RUN und STOP, erkannte Hardware- und Peripheriefehler, Programmfehler, Kommunikationsstörungen. Jeder Eintrag trägt einen Klartext und einen Zeitpunkt. Online ausgelesen, ergibt sich daraus eine Art Logbuch: Wann ist die CPU in STOP gegangen, und welches Ereignis ging unmittelbar voraus? Oft steht die Fehlerursache damit schon im Klartext da.
Der entscheidende Handgriff folgt erst danach. Aus einem Fehlereintrag heraus lässt sich in der Programmiersoftware direkt zur betroffenen Programmstelle springen — die Funktion heißt je nach System „Gehe zu Fehlerstelle“ oder „Baustein öffnen“. Damit landet man unmittelbar im fehlerhaften Netzwerk, im richtigen Baustein, an der richtigen Stelle. Ohne diese Verknüpfung bleibt der Diagnosepuffer eine bloße Textanzeige; mit ihr wird er zum Wegweiser direkt in den Code.
Was passiert nun bei einem Fehler im Programmablauf? Dafür gibt es Fehler-Organisationsbausteine (Fehler-OBs). Tritt ein bestimmter Fehler auf — etwa ein Zugriff auf eine nicht vorhandene Peripherieadresse oder ein Programmierfehler — und ist der passende Fehler-OB im Programm vorhanden, ruft die CPU diesen auf. Im Fehler-OB kann der Programmierer festlegen, wie reagiert wird: kontrolliert weiterlaufen, einen Ersatzwert setzen, eine Meldung absetzen.
Fehlt der passende Fehler-OB dagegen, reagiert die CPU mit der Standardreaktion — und die heißt bei schweren Fehlern: Übergang in den STOP. Die Anlage steht dann, was sicherheitstechnisch gewollt ist, aber den Betrieb unterbricht. Grob unterscheidet man dabei Programmfehler (Fehler in der Programmlogik, etwa unzulässige Adressierung) von Hardware- und Peripheriefehlern (ausgefallenes Modul, gestörte Kommunikation); für die verschiedenen Fehlerklassen gibt es jeweils eigene Reaktionsmechanismen, bis hin zum Diagnosealarm, mit dem ein Modul der CPU einen Fehler aktiv meldet.
| Diagnosepuffer-Eintrag (Beispielfelder) | Inhalt |
|---|---|
| Zeitstempel | Datum und Uhrzeit des Ereignisses |
| Ereignistext | Klartext, z. B. „Übergang RUN → STOP“ |
| Fehlerklasse | Programm-, Peripherie-, Kommunikationsfehler |
| Bezug | betroffener Baustein / Modul / Adresse |
Die Werkzeuge der SPS — Diagnosepuffer, Fehlerstelle anspringen, Fehler-OBs — zeigen, was und wo etwas schiefgeht. Wie man daraus eine systematische Suchstrategie aufbaut, etwa den Signalverlauf im Stromlaufplan verfolgt oder die Fehlersuche taktisch eingrenzt, ist Thema des eigenen Beitrags zur Fehlersuche in Steuerungen. Hier bleibt der Fokus auf den bordeigenen Diagnosefunktionen.
Eine CPU ist unerwartet in STOP gegangen. Welches Werkzeug liefert die schnellste Auskunft über die Ursache?
- a) Die Beobachtungstabelle
- b) Der Diagnosepuffer mit seinem zeitgestempelten Ereignisprotokoll
- c) Das Forcen einzelner Ausgänge
- d) Der Konsistenzvergleich der Programmstände
Richtig: b)
Der Diagnosepuffer protokolliert Ereignisse wie den Übergang in STOP samt vorausgehender Fehlermeldung und Zeitstempel — damit findet man die Ursache am schnellsten. Die Beobachtungstabelle (a) zeigt aktuelle Werte, nicht die Vorgeschichte. Forcen (c) verändert Zustände und hilft hier nicht. Der Konsistenzvergleich (d) prüft nur Programmstände, nicht das Fehlerereignis.
In einem Programm ist für einen auftretenden Peripheriezugriffsfehler kein passender Fehler-OB hinterlegt. Wie reagiert die CPU bei einem schweren Fehler typischerweise?
- a) Sie ignoriert den Fehler und läuft unverändert weiter
- b) Sie löscht den fehlerhaften Baustein automatisch
- c) Sie wechselt mit der Standardreaktion in den STOP
- d) Sie schaltet selbsttätig auf einen Ersatz-Baustein um
Richtig: c)
Ohne passenden Fehler-OB greift die Standardreaktion, die bei schweren Fehlern den Übergang in STOP bedeutet — die Anlage steht, der Fehler wird nicht stillschweigend übergangen (a). Eine definierte Reaktion wie Ersatzwert oder Weiterlauf wäre nur mit einem programmierten Fehler-OB möglich. Bausteine werden weder gelöscht (b) noch automatisch ersetzt (d).
Ein Fehlereintrag im Diagnosepuffer verweist auf einen bestimmten Baustein. Welche Funktion bringt den Techniker am direktesten zur Fehlerursache im Code?
- a) Die CPU auf STOP schalten
- b) Den Diagnosepuffer löschen
- c) Alle Variablen in eine Beobachtungstabelle aufnehmen
- d) „Gehe zu Fehlerstelle“ / „Baustein öffnen“ aus dem Diagnosepuffer heraus
Richtig: d)
Aus dem Fehlereintrag heraus führt die Funktion „Gehe zu Fehlerstelle“ bzw. „Baustein öffnen“ unmittelbar zum betroffenen Netzwerk im Code — das ist der direkteste Weg. Ein STOP (a) ändert nichts an der Lokalisierung, das Löschen des Puffers (b) vernichtet die Information, und eine vollständige Beobachtungstabelle (c) ist umständlicher als der gezielte Sprung.
6. Zykluszeit und Online-Auslastung beobachten
Eine SPS arbeitet ihr Programm zyklisch ab; die Dauer eines Durchlaufs ist die Zykluszeit. Im Normalbetrieb ist sie unauffällig — interessant wird sie bei der Diagnose von Performance-Problemen und scheinbar „hängenden“ Steuerungen. Online lässt sich die Zykluszeit direkt ablesen, meist als aktueller Wert sowie als minimale und maximale Zeit seit dem Anlauf.
Damit eine fehlerhafte oder zu lang gewordene Bearbeitung die Anlage nicht unkontrolliert blockiert, überwacht die CPU die Zykluszeit mit einem Watchdog — einer Zykluszeitüberwachung mit fest eingestellter Maximalzeit. Überschreitet ein Zyklus diese Grenze (etwa durch eine Endlosschleife oder eine sehr aufwendige Berechnung), löst der Watchdog aus und die CPU reagiert mit einer Fehlerreaktion, im Regelfall dem Übergang in STOP.
Wie viel Reserve zwischen tatsächlicher und maximal erlaubter Zykluszeit bleibt, sagt einiges über die Gesundheit des Programms aus:
Reserve = t_watchdog – t_zyklus_max
- Reserve … verbleibende Zeitreserve in ms
- t_watchdog … eingestellte Watchdog-Zeit in ms
- t_zyklus_max … gemessene maximale Zykluszeit in ms
Die prozentuale Auslastung der Überwachungszeit macht das anschaulich:
Auslastung = (t_zyklus_max / t_watchdog) * 100
- Auslastung … Ausnutzung der Watchdog-Zeit in %
- t_zyklus_max … gemessene maximale Zykluszeit in ms
- t_watchdog … eingestellte Watchdog-Zeit in ms
Liegt die Auslastung dauerhaft hoch, ist Vorsicht geboten: Schon eine zusätzliche Last kann den Watchdog auslösen. Neben der Zykluszeit lässt sich online auch die Speicherauslastung beobachten — wie viel Arbeits- und Ladespeicher das Programm belegt. Auch das gehört zur Beurteilung, ob eine Steuerung noch Reserven hat oder an ihre Grenzen kommt.
Gelöstes Beispiel
An einer CPU ist die Watchdog-Zeit auf 200 ms eingestellt. Online wird eine maximale Zykluszeit von 60 ms abgelesen. Wie groß ist die Zeitreserve, und wie hoch ist die Auslastung der Überwachungszeit?
Gegeben: t_watchdog = 200 ms, t_zyklus_max = 60 ms
Gesucht: Reserve in ms und Auslastung in %
Lösungsweg:
- Schritt 1 — Reserve:
Reserve = t_watchdog − t_zyklus_max = 200 ms − 60 ms = 140 ms - Schritt 2 — Auslastung:
Auslastung = (t_zyklus_max / t_watchdog) · 100 = (60 / 200) · 100 = 30 %
Ergebnis: Reserve = 140 ms, Auslastung = 30 %. Die Steuerung hat reichlich Reserve.
Übungen
Eine CPU zeigt online eine maximale Zykluszeit von 25 ms bei einer Watchdog-Zeit von 100 ms. Wie groß ist die Reserve?
Reserve = 100 ms − 25 ms = 75 ms.
Die Watchdog-Zeit beträgt 150 ms, die maximale Zykluszeit 30 ms. Wie hoch ist die Auslastung?
Auslastung = (30 / 150) · 100 = 20 %.
Eine Steuerung läuft mit einer maximalen Zykluszeit von 90 ms bei 120 ms Watchdog-Zeit. Beurteile Reserve und Auslastung.
Reserve = 120 − 90 = 30 ms; Auslastung = (90 / 120) · 100 = 75 %. Die Reserve ist knapp, Vorsicht bei zusätzlicher Last.
Nach einer Programmerweiterung steigt die maximale Zykluszeit von 40 ms auf 95 ms. Die Watchdog-Zeit liegt bei 100 ms. Wie verändert sich die Auslastung, und was bedeutet das?
vorher (40 / 100) · 100 = 40 %, nachher (95 / 100) · 100 = 95 %. Die Auslastung steigt von 40 % auf 95 % — die Steuerung ist nun am Limit, ein Watchdog-Auslösen droht.
Eine CPU soll so eingestellt werden, dass bei einer gemessenen maximalen Zykluszeit von 70 ms die Auslastung höchstens 50 % beträgt. Welche Watchdog-Zeit ist mindestens nötig?
Aus Auslastung = (t_zyklus_max / t_watchdog) · 100 ≤ 50 folgt t_watchdog ≥ t_zyklus_max / 0,5 = 70 / 0,5 = 140 ms. Die Watchdog-Zeit muss mindestens 140 ms betragen.
Eine CPU geht reproduzierbar in STOP, sobald ein selten genutzter Programmteil aktiv wird. Der Diagnosepuffer meldet einen Watchdog-Fehler. Was ist die wahrscheinlichste Ursache?
- a) Ein defektes Eingangsmodul
- b) Die Online-Verbindung ist instabil
- c) Dieser Programmteil verlängert die Zykluszeit über die Watchdog-Grenze hinaus
- d) Der Diagnosepuffer ist voll
Richtig: c)
Ein Watchdog-Fehler bedeutet, dass ein Zyklus die eingestellte Maximalzeit überschritten hat. Tritt er genau dann auf, wenn ein bestimmter, aufwendiger Programmteil läuft, verlängert dieser offenbar die Zykluszeit über die Grenze. Ein Modulfehler (a) oder eine instabile Verbindung (b) würden andere Meldungen erzeugen, und ein voller Diagnosepuffer (d) löst keinen Watchdog aus.
Bei einer Watchdog-Zeit von 100 ms wird online eine maximale Zykluszeit von 92 ms abgelesen. Wie ist die Situation zu bewerten?
- a) Unkritisch, es ist genug Reserve vorhanden
- b) Die Auslastung liegt bei 92 % — die Steuerung ist am Limit, geringe zusätzliche Last kann den Watchdog auslösen
- c) Die CPU befindet sich bereits im STOP
- d) Die Watchdog-Zeit muss zwingend halbiert werden
Richtig: b)
Die Auslastung beträgt (92 / 100) · 100 = 92 %, die Reserve nur 8 ms — das ist sehr knapp, schon eine kleine Mehrlast kann zum Watchdog-Auslösen führen (daher nicht unkritisch: a). Im STOP (c) wäre keine laufende Zykluszeit messbar. Eine Halbierung der Watchdog-Zeit (d) würde die Situation verschärfen, nicht entschärfen — sinnvoll wäre eher, den Programmteil zu optimieren oder die Überwachungszeit anzuheben.
Wozu dient der Watchdog in einer SPS?
- a) Er sichert das Programm gegen unbefugten Zugriff
- b) Er protokolliert alle Variablenänderungen
- c) Er steuert die Reihenfolge der Fehler-OBs
- d) Er überwacht die maximale Zykluszeit und löst bei Überschreitung eine Fehlerreaktion aus
Richtig: d)
Der Watchdog ist eine Zeitüberwachung: Überschreitet ein Zyklus die eingestellte Maximalzeit, löst er aus und die CPU geht im Regelfall in STOP — so kann eine hängende Bearbeitung die Anlage nicht unkontrolliert blockieren. Zugriffsschutz (a), Protokollierung (b) und die Verwaltung von Fehler-OBs (c) sind andere Funktionen.
Abschlusstest
Aufgabe 1: An einer CPU ist die Watchdog-Zeit auf 250 ms eingestellt. Online wird eine maximale Zykluszeit von 80 ms abgelesen. Bestimme Reserve und Auslastung.
Gegeben: t_watchdog = 250 ms; t_zyklus_max = 80 ms
Gesucht: Reserve in ms, Auslastung in %
Lösungsweg:
Reserve = 250 − 80 = 170 ms; Auslastung = (80 / 250) · 100 = 32 %
Ergebnis: Reserve = 170 ms, Auslastung = 32 % — komfortable Reserve.
Aufgabe 2: Nach einer Erweiterung steigt die maximale Zykluszeit von 55 ms auf 110 ms. Die Watchdog-Zeit beträgt 130 ms. Berechne die Auslastung vor und nach der Erweiterung und beurteile.
Gegeben: t_zyklus_max,alt = 55 ms; t_zyklus_max,neu = 110 ms; t_watchdog = 130 ms
Gesucht: Auslastung vorher und nachher in %
Lösungsweg:
vorher (55 / 130) · 100 ≈ 42,3 %; nachher (110 / 130) · 100 ≈ 84,6 %
Ergebnis: Die Auslastung steigt von rund 42 % auf rund 85 % — die Steuerung ist nun nahe an der Grenze, eine höhere Watchdog-Zeit oder Programmoptimierung ist angeraten.
Ein Techniker geht online und die Software meldet, dass das Projekt im PC nicht mit dem Programm in der CPU übereinstimmt. Welche Konsequenz hat das für die Fehlersuche?
- a) Man könnte Code untersuchen, der gar nicht in der Anlage läuft — zuerst Stände abgleichen
- b) Die Fehlersuche kann unverändert im PC-Stand erfolgen
- c) Die CPU muss neu gestartet werden
- d) Die Online-Verbindung ist dadurch ungültig
Richtig: a)
Bei abweichenden Ständen besteht die Gefahr, im PC einen anderen Programmstand zu analysieren als den real laufenden. Deshalb muss man zuerst abgleichen, welcher Stand in der Anlage aktiv ist (a). Unverändert weitersuchen (b) führt in die Irre; ein Neustart (c) löst das Problem nicht, und die Verbindung bleibt gültig (d).
Welche Aussage zur Kanalstatus-LED an einem Eingangsmodul trifft zu?
- a) Sie zeigt an, ob der zugehörige Baustein fehlerfrei ist
- b) Sie zeigt den logischen Zustand des Eingangssignals an
- c) Sie leuchtet nur im STOP der CPU
- d) Sie signalisiert ausschließlich Busfehler
Richtig: b)
Die Kanalstatus-LED zeigt, ob am jeweiligen Kanal ein Signal logisch „1″ anliegt — also den Signalzustand des Eingangs (b). Mit der Fehlerfreiheit von Bausteinen (a) hat sie nichts zu tun, sie ist nicht an den STOP gebunden (c), und Busfehler werden über eine eigene Anzeige signalisiert (d).
In welchem Betriebszustand werden die Anlaufroutinen einer CPU genau einmal abgearbeitet?
- a) STOP
- b) RUN
- c) ANLAUF
- d) In jedem Zyklus erneut
Richtig: c)
Der ANLAUF ist der einmalige Übergangszustand von STOP nach RUN, in dem Startwerte gesetzt und die Peripherie initialisiert werden. Im STOP (a) läuft kein Programm, im RUN (b) erfolgt die zyklische Abarbeitung, und „in jedem Zyklus“ (d) widerspricht dem einmaligen Charakter des Anlaufs.
Eine CPU im STOP wird von einem Mitarbeiter als „stromlos und sicher“ bezeichnet. Wie bewertest du das?
- a) Korrekt, im STOP ist die CPU spannungsfrei
- b) Korrekt, weil im STOP keine Gefahr besteht
- c) Falsch, weil im STOP das Programm normal weiterläuft
- d) Falsch — die CPU ist versorgt und erreichbar, ein Umschalten auf RUN kann die Anlage sofort starten
Richtig: d)
STOP bedeutet nur, dass kein Anwenderprogramm abgearbeitet wird; die CPU ist voll versorgt und bedienbar (daher falsch: a, b). Ein Umschalten auf RUN kann die Anlage unmittelbar in Bewegung setzen — daher ist „sicher“ irreführend. Das Programm läuft im STOP gerade nicht weiter (c).
Ein Techniker gibt einer Variablen per „Steuern“ einen Wert vor, doch dieser hält nicht. Was ist der Grund?
- a) Das Anwenderprogramm überschreibt den vorgegebenen Wert im nächsten Zyklus
- b) Der Wert wurde geforct und kann nicht überschrieben werden
- c) Die Variable ist schreibgeschützt
- d) Die CPU ist im ANLAUF
Richtig: a)
Beim Steuern wird der Wert nur vorgegeben, nicht erzwungen — die Programmlogik berechnet ihn im nächsten Zyklus neu. Genau darin liegt der Unterschied zum Forcen (b beschreibt das Gegenteil). Ein Schreibschutz (c) oder der ANLAUF (d) sind nicht die Ursache.
Warum gilt eine leuchtende FORCE-LED an einer Anlage als Warnsignal?
- a) Sie zeigt einen Hardwaredefekt der CPU
- b) Mindestens ein Signal wird erzwungen, die Anlage weicht von der Programmlogik ab — auch Verriegelungen können übergangen sein
- c) Sie bedeutet, dass die Zykluszeit wurde überschritten
- d) Sie signalisiert eine getrennte Online-Verbindung
Richtig: b)
Eine aktive FORCE-LED bedeutet, dass Werte erzwungen werden und die Anlage damit nicht der programmierten Logik folgt — Sicherheitsverriegelungen können dabei außer Kraft sein (b). Mit Hardwaredefekt (a), Zykluszeit (c) oder Verbindungsstatus (d) hat die Anzeige nichts zu tun.
Welches Werkzeug verbindet einen Fehlereintrag im Diagnosepuffer am direktesten mit der Ursache im Programmcode?
- a) Die Speicherauslastungsanzeige
- b) Der Watchdog
- c) Die Funktion „Gehe zu Fehlerstelle“ / „Baustein öffnen“
- d) Die Stern-Dreieck-Umschaltung
Richtig: c)
Aus einem Diagnosepuffer-Eintrag heraus führt „Gehe zu Fehlerstelle“ bzw. „Baustein öffnen“ direkt zum betroffenen Netzwerk (c). Die Speicheranzeige (a) und der Watchdog (b) betreffen Auslastung und Zeitüberwachung, nicht die Codenavigation; die Stern-Dreieck-Umschaltung (d) gehört zur Motoransteuerung.
Für einen auftretenden Programmierfehler ist kein passender Fehler-OB hinterlegt. Was folgt bei einem schweren Fehler?
- a) Der Fehler wird ohne Folge ignoriert
- b) Die CPU lädt automatisch ein Backup
- c) Der Diagnosepuffer wird gelöscht
- d) Die CPU geht mit der Standardreaktion in STOP
Richtig: d)
Ohne programmierten Fehler-OB greift die Standardreaktion, die bei schweren Fehlern den Übergang in STOP bedeutet (d). Der Fehler wird also nicht ignoriert (a); ein automatisches Backup (b) oder ein Löschen des Puffers (c) finden nicht statt.
Eine Anlage geht sporadisch in STOP. Der Diagnosepuffer zeigt einen Watchdog-Eintrag, die maximale Zykluszeit liegt online knapp unter der Watchdog-Grenze. Was ist die plausibelste Maßnahme?
- a) Den betroffenen Programmteil optimieren oder die Überwachungszeit anpassen
- b) Die CPU-Hardware tauschen
- c) Alle Eingänge forcen
- d) Die Online-Verbindung dauerhaft trennen
Richtig: a)
Wenn die Zykluszeit am Limit ist und der Watchdog auslöst, liegt die Ursache im Zeitverhalten des Programms, nicht zwingend in der Hardware (b). Sinnvoll ist, den zeitkritischen Programmteil zu optimieren oder die Watchdog-Zeit anzupassen (a). Forcen (c) und ein Trennen der Verbindung (d) lösen das Zeitproblem nicht.
Was ist der sicherheitstechnisch wesentliche Unterschied zwischen Beobachten und Forcen?
- a) Beobachten verändert Werte, Forcen nur anzeigend
- b) Beobachten zeigt nur an und verändert nichts, Forcen erzwingt Werte und kann Verriegelungen übergehen
- c) Beide erzwingen Werte gleichermaßen
- d) Forcen ist auf Eingänge beschränkt, Beobachten auf Ausgänge
Richtig: b)
Beobachten ist rein anzeigend und greift nicht ein, während Forcen Werte fest erzwingt und dabei Programmlogik und Verriegelungen übergehen kann (b). Antwort a verdreht die beiden, c ist falsch, weil Beobachten nichts erzwingt, und d trifft die tatsächliche Wirkungsweise nicht.
Welche Information liefert der Diagnosepuffer, die eine reine Beobachtungstabelle nicht bietet?
- a) Den aktuellen Wert einer einzelnen Variablen
- b) Den Stromfluss im Kontaktplan
- c) Eine chronologische, zeitgestempelte Historie der Ereignisse inklusive zurückliegender Fehler
- d) Die Verdrahtung der Eingangsmodule
Richtig: c)
Der Diagnosepuffer ist ein zeitgestempeltes Ereignisprotokoll und zeigt damit auch vergangene Ereignisse wie frühere STOP-Übergänge (c). Aktuelle Einzelwerte (a) und der Stromfluss (b) gehören zur Online-Beobachtung im Code, und die Verdrahtung (d) ist gar keine SPS-interne Information.
Ein Eingangssignal kommt laut Kanal-LED am Modul an, der zugehörige Ausgang schaltet aber nicht. Die CPU ist im RUN, keine Fehler-LED leuchtet. Wo setzt die weitere Diagnose sinnvoll an?
- a) An der Spannungsversorgung des Eingangsmoduls
- b) Am Watchdog
- c) Am Diagnosepuffer, da dort zwingend ein Eintrag stehen muss
- d) In der Programmlogik — per Online-Beobachtung den Signalweg vom Eingang zum Ausgang verfolgen
Richtig: d)
Eingang kommt an, kein Fehler steht an, CPU läuft — also liegt die Unterbrechung wahrscheinlich in der Verarbeitungslogik. Per Online-Beobachtung verfolgt man den Signalweg im Programm (d). Die Eingangsversorgung (a) ist durch die leuchtende Eingangs-LED bereits bestätigt, der Watchdog (b) ist hier ohne Bezug, und ein Logikfehler ohne Fehlerreaktion erzeugt nicht zwingend einen Diagnosepuffer-Eintrag (c).
Glossar
- Online-Verbindung
- Aktive Verbindung zwischen Programmiergerät und laufender SPS, die das Beobachten und Beeinflussen der Steuerung in Echtzeit ermöglicht.
- Konsistenzvergleich
- Automatischer Abgleich zwischen dem Projekt auf dem PC und dem in der CPU laufenden Programm; deckt Abweichungen der Programmstände auf.
- Status-LED
- Leuchtdiode an CPU oder Modul, die Betriebszustand, Sammelfehler, Kanal- oder Buszustand anzeigt und eine schnelle Vor-Ort-Diagnose erlaubt.
- Sammelfehler-Anzeige
- LED (oft ERROR oder SF), die anzeigt, dass irgendein Fehler ansteht, ohne die genaue Ursache zu benennen.
- Kanalstatus-LED
- LED an einem Ein- oder Ausgabemodul, die den logischen Zustand des jeweiligen Kanals (Signal „1″ oder „0″) anzeigt.
- STOP
- Betriebszustand, in dem die CPU kein Anwenderprogramm abarbeitet und die Ausgänge in einen sicheren Zustand gehen; die CPU bleibt versorgt und erreichbar.
- RUN
- Betriebszustand, in dem die CPU das Anwenderprogramm zyklisch abarbeitet (Normalbetrieb).
- ANLAUF
- Einmaliger Übergangszustand von STOP nach RUN, in dem Startwerte gesetzt und die Peripherie initialisiert werden.
- Beobachten
- Online-Funktion, die aktuelle Signalzustände und Werte im Programm anzeigt, ohne sie zu verändern.
- Beobachtungstabelle
- Frei zusammenstellbare Liste von Variablen, deren Werte gebündelt online beobachtet und teils vorgegeben werden können.
- Steuern
- Vorgeben eines Variablenwerts, der vom Anwenderprogramm im nächsten Zyklus wieder überschrieben werden kann.
- Forcen
- Festes Erzwingen eines Variablenwerts, den das Anwenderprogramm nicht überschreiben kann; wirkt bis zur Peripherie und kann Verriegelungen übergehen.
- FORCE-LED
- Anzeige an der CPU, die ein aktives Forcen signalisiert und damit als Warnsignal auf eine von der Programmlogik abweichende Anlage hinweist.
- Diagnosepuffer
- Chronologisches Ereignisprotokoll der CPU mit Zeitstempeln und Klartextmeldungen zu Betriebszustandswechseln und Fehlern.
- Fehler-Organisationsbaustein (Fehler-OB)
- Baustein, der bei einem bestimmten Fehler aufgerufen wird und eine definierte Reaktion erlaubt; fehlt er, greift die Standardreaktion.
- Diagnosealarm
- Aktive Fehlermeldung eines Moduls an die CPU bei einem erkannten Hardware- oder Peripheriefehler.
- Zykluszeit
- Dauer eines vollständigen Programmdurchlaufs der SPS; online als aktueller, minimaler und maximaler Wert ablesbar.
- Watchdog
- Zykluszeitüberwachung mit fest eingestellter Maximalzeit; wird sie überschritten, löst die CPU eine Fehlerreaktion aus, im Regelfall den Übergang in STOP.
