Definition und Ablauf:
 Der Programm-Zyklus (oder einfach Zyklus, engl. Scan Cycle) ist der grundlegende Betriebsmodus einer speicherprogrammierbaren Steuerung (SPS). Er beschreibt die kontinuierliche, wiederholende Abarbeitung des Anwenderprogramms durch die SPS-CPU. Die Zeit, die die SPS für einen kompletten Durchlauf dieses Zyklus benötigt, wird als Zykluszeit bezeichnet.
Der Programm-Zyklus ist der Kern der deterministischen Arbeitsweise einer SPS und gewährleistet, dass auf Eingangssignale zuverlässig und innerhalb vorhersagbarer Zeiten reagiert wird.
Phasen eines SPS-Programm-Zyklus (vereinfacht):
- Eingänge einlesen (Input Scan): Die SPS liest den aktuellen Zustand aller physikalischen Digitaleingänge und Analogeingänge ein und kopiert diese Werte in einen internen Speicherbereich, das sogenannte Prozessabbild der Eingänge.
- Programm abarbeiten (Program Scan): Die SPS-CPU führt das im Programmspeicher abgelegte Anwenderprogramm Anweisung für Anweisung aus. Die Logik arbeitet dabei ausschließlich mit den Werten aus dem Prozessabbild der Eingänge und den internen Variablen.
- Ausgänge aktualisieren (Output Scan): Die vom Programm berechneten Zustände der Ausgänge werden in das Prozessabbild der Ausgänge geschrieben und dann auf die physikalischen Digitalausgänge und Analogausgänge übertragen.
- Kommunikations- und Diagnoseaufgaben: Die SPS führt Systemaufgaben wie die Kommunikation mit HMI/SCADA-Systemen, Feldbusteilnehmern oder die Diagnose durch.
Dieser Zyklus wiederholt sich kontinuierlich, solange sich die SPS im RUN-Modus befindet.
Relevanz in der Automatisierung:
 Der Programm-Zyklus ist von entscheidender Bedeutung für die Leistungsfähigkeit und das Verhalten einer SPS:
- Reaktionszeit: Die maximale Reaktionszeit einer SPS auf ein Ereignis ist direkt von ihrer Zykluszeit abhängig.
- Determinismus: Der feste Zyklus sorgt für ein vorhersagbares und deterministisches Verhalten.
- Performance: Eine kürzere Zykluszeit bedeutet eine schnellere Reaktion und höhere Verarbeitungsgeschwindigkeit.
- Programmierpraxis: Programmierer müssen die zyklische Abarbeitung berücksichtigen, um korrekte Logik zu erstellen (z.B. Flankenauswertungen, um Aktionen nur einmal pro Ereignis auszulösen).
- Systemauslegung: Bei der Auswahl einer SPS muss die Zykluszeit den Anforderungen des Prozesses entsprechen.
→ Siehe auch: Zyklus, Zykluszeit, Echtzeitfähigkeit, SPS, Prozessabbild, Task

