Was ist ein SPS-Scanzyklus? Wie SPSen Programme ausführen
Jede SPS durchläuft vom Einschalten an denselben grundlegenden Ablauf: Eingänge lesen, Logik ausführen, Ausgänge schreiben, wiederholen. Dieser als Scan-Zyklus bezeichnete Ablauf bestimmt, wie schnell eine SPS auf Ereignisse in der Praxis reagiert und setzt die Leistungsgrenze für jeden gesteuerten Prozess.
Das Verständnis der Scanzyklus-Mechanik hilft Programmierern, Code zu optimieren, Reaktionsprobleme zu beheben und die richtige CPU für anspruchsvolle Anwendungen auszuwählen. Dieser Leitfaden erklärt genau, wie der Scanzyklus funktioniert und welche Faktoren ihn beeinflussen.
Die SPS-CPU führt ihr Programm in einer kontinuierlichen, sequenziellen Schleife aus. Jede vollständige Iteration besteht aus vier verschiedenen Phasen.
Die CPU erfasst den aktuellen Zustand aller Eingabemodule und speichert diese Werte in einem dedizierten Speicherbereich, der als Eingabebildtabelle bezeichnet wird. Dies geschieht zu Beginn jedes Scanzyklus.
Bei digitalen Eingängen liest die CPU einen einfachen Wert von 1 (EIN) oder 0 (AUS). Bei analogen Eingängen wandelt die CPU das reale Signal (4–20 mA, 0–10 V oder Temperatursensordaten) in einen digitalen Wert um und speichert ihn im Speicher.
Diese Phase ist schnell – typischerweise 1 bis 10 Millisekunden für den gesamten Eingabescan, abhängig von der Anzahl der Eingabemodule und deren Konfiguration.
Mit den aktuellen Eingabedaten im Speicher führt die CPU das Benutzerprogramm Befehl für Befehl aus. Jeder Befehl wird anhand der aktuellen Werte der Eingabebildtabelle ausgewertet, und die Ergebnisse werden in die Ausgabebildtabelle geschrieben.
Hier werden Kontaktplanlogik, Funktionsbausteine oder strukturierte Textanweisungen ausgeführt. Die CPU liest aus der Eingabebildtabelle, führt logische oder arithmetische Operationen durch und speichert die Ergebnisse in der Ausgabebildtabelle – aber entscheidend ist, dass sie noch nicht in die physischen Ausgabemodule schreibt.
Das Schreiben in den Speicher ist um Größenordnungen schneller als die Kommunikation mit physischen E/A-Modulen. Durch das Verzögern physischer Ausgabeschreibvorgänge bis zum Abschluss des Scans wird sichergestellt, dass sich alle Ausgänge gleichzeitig ändern, wodurch instabile Zwischenzustände vermieden werden.
Der Programmscan ist typischerweise die längste Phase. Die Scanzeit skaliert mit der Programmgröße, der Komplexität und der Anzahl der Anweisungen.
Nach Abschluss des Programmscans schreibt die CPU die Werte aus der Ausgabebildtabelle gleichzeitig an die physikalischen Ausgabemodule. Digitale Ausgänge werden ein- oder ausgeschaltet. Analoge Ausgänge wenden ihre berechneten Werte auf den Prozess an.
Dieser koordinierte Schreibvorgang gewährleistet, dass die Ausgaben eine konsistente Momentaufnahme der Logikauswertung widerspiegeln – es gibt keine Ausgabeänderungen während des Programmablaufs. Der Ausgabescan dauert in der Regel 1 bis 5 Millisekunden, abhängig von der Anzahl der Ausgabemodule.
Die letzte Phase umfasst alle übrigen Aufgaben, die die CPU zwischen den Zyklen erledigen muss:
· Kommunikation mit HMI-Panels und anderen Netzwerkgeräten
· Verarbeitung zeitbasierter Anweisungen (Timer, Echtzeituhr)
· Aktualisierung der Diagnose- und Fehlerregister
· Bearbeitung von Kommunikationsanfragen von anderen SPS- oder SCADA-Systemen
Die Dauer der Aufräumarbeiten variiert je nach Kommunikationslast. Eine SPS mit mehreren HMI-Verbindungen und umfangreichem Netzwerk-Messaging kann hier viel Zeit in Anspruch nehmen.

Die Abtastzeit ist die Gesamtdauer aller vier Phasen eines vollständigen Zyklus. Sie wird in Millisekunden gemessen und bestimmt direkt, wie schnell eine SPS auf Eingangsänderungen reagieren kann.
Typische Werte:
· Kleines Programm (100-500 Anweisungen): 1-5 ms
· Mittelgroßes Programm (1.000–5.000 Anweisungen): 5–20 ms
· Großes Programm (über 10.000 Anweisungen): 20-100 ms
Das Verhältnis zwischen Scanzeit und Maschinengeschwindigkeit ist entscheidend. Eine Verpackungsmaschine, die 100 Verpackungen pro Minute verarbeitet, hat 600 Millisekunden pro Zyklus. Beträgt die Scanzeit der SPS 50 ms, stehen der Maschine noch 550 ms Reaktionszeit zur Verfügung – erreicht die Scanzeit jedoch 500 ms, reagiert die Maschine nicht mehr.
Für Hochgeschwindigkeitsanwendungen in den Bereichen Verpackung, Abfüllung oder Bewegungssteuerung sind häufig Scanzeiten unter 2 ms erforderlich.
Eine häufig gestellte Frage: Warum schreibt die CPU in eine Speichertabelle und nicht direkt auf die Ausgänge?
Der Ansatz mit der Bildtabelle löst drei Probleme. Erstens gewährleistet er atomare Ausgabeaktualisierungen – jede Ausgabe in einem Scan spiegelt dieselbe logische Auswertung wider. Zweitens ermöglicht er es Programmanweisungen, ihre eigenen Ausgabezustände zu lesen, ohne eine Rückkopplungsschleife zu erzeugen. Drittens reduziert er den I/O-Kommunikationsaufwand durch die Bündelung von Schreibvorgängen drastisch.
Ohne Image-Tabellen könnte ein einzelner Scan der Kontaktplanlogik Dutzende einzelner Ausgabeschreibvorgänge an verschiedenen Stellen während der Ausführung auslösen, was zu einem instabilen Maschinenverhalten führen würde.
Bei der Standardausführung eines Scanzyklus wird jede Anweisung in jedem Scanvorgang ausgewertet, unabhängig davon, ob sich die Bedingungen geändert haben. Für die meisten Anwendungen ist dies akzeptabel, verschwendet jedoch CPU-Zeit durch die Auswertung ruhender Logik.
Die meisten modernen SPSen unterstützen interruptgesteuerte oder periodische Aufgabenausführung, um zeitkritische Ereignisse zu verarbeiten, ohne den Hauptscan zu unterbrechen.
Zeitgesteuerte Interrupts (TDIs): Führen eine spezifische Routine in einem präzisen Intervall aus, unabhängig vom Hauptscan. Werden für Hochgeschwindigkeitszählungen, Encoderverarbeitung oder PID-Regelung in festen Intervallen verwendet.
Ereignisgesteuerte Interrupts: Sie werden ausgeführt, wenn eine bestimmte Bedingung eintritt – beispielsweise eine Flankenänderung am Eingang, ein Kommunikationsereignis oder ein Fehlerzustand. Kritische Sicherheitsreaktionen nutzen häufig Interrupts, um die Reaktionszeit unabhängig von der Position des Hauptscans zu gewährleisten.
Bei Siemens S7-1500 kann zeitkritische Logik in zyklischen Interrupt-Organisationsblöcken (OBs) mit konfigurierbaren Prioritäten ausgeführt werden. Allen Bradley ControlLogix verwendet periodische und ereignisbasierte Tasks mit konfigurierbaren Raten.
Messung der Scanzeit: Die meisten Programmierumgebungen zeigen die Scanzeit in Echtzeit an. In Studio 5000 finden Sie Ausführungsstatistiken unter „Controller-Eigenschaften > Allgemein“. Im TIA Portal stellen Sie Scanzeitdaten im Menü „Online > Diagnose“ bereit.
Reduzierung der Scanzeit:
· Verschieben Sie Kommunikationsanweisungen (MSG-Funktionen) aus dem Hauptprogrammablauf in periodische Aufgaben.
· Komplexe Ausdrücke vereinfachen – verschachtelte Arithmetik nach Möglichkeit durch vorab berechnete Werte ersetzen.
· Verwenden Sie nach Möglichkeit direkte Verweise anstelle kopierter Tags.
· Reduzieren Sie die Anzahl der Nachrichten in EtherNet/IP- oder PROFINET-Netzwerken
· Ziehen Sie eine schnellere CPU in Betracht, falls die Scanzeit trotz Optimierung die Anwendungsanforderungen überschreitet.
Die Netzwerkkommunikation ist die häufigste Ursache für unerwartete Erhöhungen der Scanzeit. Jede HMI-Abfrage, jeder SCADA-Lesevorgang und jede SPS-zu-SPS-Nachricht beansprucht während der Wartungsphase CPU-Zeit.
Wenn eine SPS mit vielen Geräten kommunizieren muss, kann die Kommunikationslast schneller ansteigen, als die CPU bewältigen kann, was zu einer allmählichen Erhöhung der Abtastzeiten führt, bis ein Schwellenwert überschritten wird und sich das Maschinenverhalten verschlechtert.
Bewährte Vorgehensweise: Trennen Sie zeitkritische Steuerung und Netzwerkkommunikation auf separate Netzwerksegmente oder CPUs. Verwenden Sie eine CPU für die Maschinensteuerung, eine andere für die Datenerfassung und Berichterstellung.
Der SPS-Scanzyklus ist das Herzstück jedes industriellen Steuerungssystems. Das Verständnis seiner vier Phasen – Eingänge lesen, Programm ausführen, Ausgänge schreiben und Systemwartung – bietet Programmierern die Grundlage für effizientes Programmieren und die Behebung von Reaktionsproblemen.
Die Scanzeit ist nicht nur eine Spezifikationszahl. Sie definiert den Echtzeitcharakter Ihrer Maschine. In den meisten Anwendungen ist eine Scanzeit von 10–20 ms für den Bediener nicht wahrnehmbar. Bei Hochgeschwindigkeitsanlagen entscheidet jedoch bereits eine Scanzeit von 1 ms oder weniger über akzeptable Leistung oder einen Totalausfall.
Kennen Sie Ihre Prozessanforderungen. Messen Sie die tatsächliche Scanzeit im Betrieb – nicht nur bei der Inbetriebnahme – und entwerfen Sie Ihre Steuerungsarchitektur so, dass diese Leistung über den gesamten Lebenszyklus der Maschine hinweg erhalten bleibt.

F: Bedeutet eine schnellere CPU immer eine kürzere Scanzeit?
A: Nicht immer. Die Scanzeit hängt von der Programmkomplexität, der Netzwerklast und der E/A-Konfiguration ab. Eine schnellere CPU ist hilfreich, aber die Eliminierung unnötiger Anweisungen und die Optimierung der Kommunikation bringen in den meisten Anwendungen größere Verbesserungen.
F: Was passiert, wenn sich der Zustand eines Eingangs während des Programmablaufs ändert?
A: Die CPU erkennt die Änderung erst beim nächsten Scan. Ändert sich ein Eingang während der Ausführung und wird er vor dem nächsten Eingangsscan wieder zurückgesetzt, kann die SPS das Ereignis möglicherweise nicht erkennen. Verwenden Sie für Ereignisse, die schneller als die Scanzeit ablaufen, interruptgesteuerte Eingangsverarbeitung.
F: Wie wirkt sich die Online-Bearbeitung auf die Scanzeit aus?
A: Wenn Sie Programmänderungen vornehmen, während die SPS läuft (Online-Bearbeitung), kann die CPU den Scanvorgang kurzzeitig unterbrechen oder zusätzlichen Aufwand betreiben, um den neuen Code zu synchronisieren. Umfangreiche Online-Änderungen können die Scanzeit vorübergehend um das 2- bis 5-Fache des Normalwerts verlängern.
F: Muss ich mir bei langsamen Prozessen wie der Wasseraufbereitung Gedanken über die Scanzeit machen?
A: Bei Prozessen, die sich innerhalb von Sekunden oder Minuten ändern, sind Abtastzeiten von 100 ms irrelevant. Sicherheitsrelevante Eingaben und Alarme sollten jedoch unabhängig von der Prozessgeschwindigkeit stets mit minimaler Verzögerung verarbeitet werden. Verwenden Sie Interrupts für alle Eingaben, die eine schnellere Reaktion als die normale Abtastzeit erfordern.
F: Kann die Scanzeit während des Betriebs variieren?
A: Ja. Die Scanzeit ist proportional zur Programmkomplexität und Kommunikationslast. Eine Maschine im Leerlauf kann schneller scannen als dieselbe Maschine unter Volllast mit aktiver HMI-Interaktion und Rezeptänderungen.
· [Siemens PLCs](https://www.tztechio.com/siemens) — S7-1500, S7-1200
· [Allen Bradley PLCs](https://www.tztechio.com/allen-bradley) — ControlLogix, CompactLogix
· [Mitsubishi PLCs](https://www.tztechio.com/mitsubishi) — MELSEC iQ-R
Darüber hinaus möchten wir mit Ihrer Erlaubnis Cookies platzieren, um Ihren Besuch und die Interaktion mit slOC persönlicher zu gestalten. Hierzu verwenden wir Analyse- und Werbecookies. Mit diesen Cookies können wir und Dritte Ihr Internetverhalten innerhalb und außerhalb von super-instrument.com verfolgen und erfassen. Dabei passen wir und Dritte super-instrument.com und Werbung an Ihre Interessen an. Indem Sie auf „Akzeptieren“ klicken, stimmen Sie dem zu. Wenn Sie dies ablehnen, verwenden wir nur die notwendigen Cookies und Sie erhalten leider keine personalisierten Inhalte. Bitte besuchen Sie unsere Cookie-Richtlinie für weitere Informationen oder um Ihre Einwilligung in Zukunft zu ändern.
Accept and continue Decline cookies