Lösung: Speicherprogrammierbare Steuerungen
Speicherprogrammierbare Steuerungen werden zur Steuerung oder Regelung von Maschinen und Anlagen eingesetzt.
Definition SPS
„[Eine] Speicherprogrammierbare Steuerung (SPS) [ist ein] digital arbeitendes, elektronisches System, entworfen für die Verwendung in einer industriellen Umgebung. Es verwendet einen programmierbaren Speicher zur internen Speicherung von anwenderorientierten Anweisungen, um besondere Funktionen wie Logik, Ablauf, Zeit, Zählen und Arithmetik auszuführen und durch digitale oder analoge Eingänge und Ausgänge verschiedene Typen von Maschinen oder Prozessen zu steuern. Die SPS und auch ihre zugehörigen Peripheriegeräte sind so entworfen, dass sie leicht in ein industrielles System integriert und für alle bestimmungsgemäßen Funktionen verwendet werden können.
ANMERKUNG Die Abkürzung SPS (en: PLC, programmable logic controller) wird [...] für den Begriff
Speicherprogrammierbare Steuerung verwendet, wie es in der Automatisierungsindustrie üblich ist. Die Verwendung im
Englischen von PC als Abkürzung für Programmable Controllers führt zur Verwechslung mit 'Personal Computers'“
EN 61131, Teil 1 (31.08.2021)
Zyklischer Programmablauf einer SPS
Der Programmablauf einer SPS ist i.d.R. zyklusorientiert und arbeiten nach dem EVA-Prinzip (Eingabe-Verarbeitung-Ausgabe).
Eingabe
Zu Beginn des Zyklus werden alle Eingange vom fest installierten Betriebssystem eingelesen (Polling).
Diese Eingabewerte werden erst zu Beginn des nächsten Zyklus aktualisiert. Deshalb darf die Zykluszeit nicht zu groß werden (1-10ms). Während der Programmverarbeitung bleiben diese für diesen Zyklus fest bestehen.
Verarbeitung
Die CPU arbeitet nun Schritt für Schritt alle Befehle des Anwendungsprogramms im Programmspeicher ab.
Ausgabe
Das Ergebniswerte des abgearbeiteten Anwenderprogramms werden nun an die Ausgänge
weitergegen.
Danach beginnt der Zyklus sofort wieder von vorne.

Zyklische Programmbearbeitung (geändert nach https://automatisierung.engineering/s/speicherprogrammierbare_steuerung_894/ 06.09.2021)
Interrupts
Im Gegensatz zum oben beschriebenen Polling der Signaleingänge können bestimmte Eingänge auch für Interrupts freigegeben werden, so dass ein spezielles Ereignis zur Unterbrechung des aktuellen Programms führt und ein alternativer Programmcode sofort aufgerufen wird. Sobald dieser abgearbeitet wurde, kehrt der Ablauf an den Punkt der Unterbrechung zurück und das ursprüngliche Programm läuft weiter. Interrupts sind dann sinnvoll, wenn zeitkritische Aufgaben direkt abgearbeitet werden müssen und nicht erst der Beginn des neuen Zyklus abgearbeitet werden kann.