# Speicherprogrammierbare Steuerung

Eine speicherprogrammierbare Steuerung (SPS; englisch: programmable logic controller, PLC) ist ein Gerät, das zur Steuerung oder Regelung einer Maschine oder Anlage eingesetzt und auf digitaler Basis programmiert wird. Sie löst die „festverdrahtete“ verbindungsprogrammierte Steuerung in den meisten Bereichen ab.

## Geschichte

Richard E. Morley (Modicon) und Odo J. Struger (Allen-Bradley) können als die Väter der SPS bezeichnet werden. Morley stellte 1969 eine Modicon 084 als solid-state sequential logic solver (Halbleiter-basierendes sequentielles Logiksystem) vor.
Struger war unter anderem maßgeblich an der Formulierung der zugehörigen Instituts-Standards in den USA beteiligt.
Morley wehrte sich gegen die Bezeichnung „Computer“. Er sah hierdurch die Akzeptanz bei den bisher tätigen Steuerungsfachleuten gefährdet. Daher wurde das Ladder Diagram entwickelt, das einem Stromlaufplan ähnelt. Danach gab es eine Eins-zu-eins-Umsetzung von Öffnern, Schließern, Parallel- und Serienverschaltung auf das neue Konzept.

## Funktion

Eine speicherprogrammierbare Steuerung hat im einfachsten Fall Eingänge, Ausgänge, ein Betriebssystem (Firmware) und eine Schnittstelle, über die das Anwenderprogramm geladen werden kann. Das Anwenderprogramm legt fest, wie die Ausgänge in Abhängigkeit von den Eingängen geschaltet werden sollen.
Das Betriebssystem stellt sicher, dass dem Anwenderprogramm immer der aktuelle Zustand der Geber zur Verfügung steht. Anhand dieser Informationen kann das Anwenderprogramm die Ausgänge so schalten, dass die Maschine oder die Anlage in der gewünschten Weise funktioniert.
Die Anbindung der SPS an die Maschine bzw. Anlage erfolgt mit Sensoren und Aktoren. Hinzu kommen Statusanzeigen. Die Sensoren sind an die Eingänge der SPS geschaltet und vermitteln der SPS das Geschehen in der Maschine oder Anlage. Beispiele für Sensoren sind z. B. Taster, Lichtschranken, Inkrementalgeber, Endschalter, oder auch Temperaturfühler, Füllstandssensoren etc. Die Aktoren sind an den Ausgängen der SPS angeschlossen und bieten die Möglichkeit, die Maschine oder Anlage zu steuern. Beispiele für Aktoren sind Schütze zum Einschalten von Elektromotoren, elektrische Ventile für Hydraulik oder Druckluft, aber auch Module für Antriebssteuerungen (Motion Control, Drehzahlsteuerung mit kontrollierter Beschleunigung oder Verzögerung, Schrittmotorsteuerungen).
Eine SPS kann in sehr verschiedener Weise realisiert sein, z. B. als Einzelgerät („Baugruppe“), als PC-Einsteckkarte, als Softwareemulation etc. Weit verbreitet sind modulare Lösungen, bei denen die SPS aus einzelnen Steckmodulen (ebenfalls als Baugruppen bezeichnet) zusammengesetzt wird. Das Thema Antriebssteuerung (Motion Control, Drehzahlsteuerung mit kontrollierter Beschleunigung oder Verzögerung) wird zunehmend mit der SPS verbunden.
Einzelgeräte bieten Vorteile bei der Miniaturisierung und sind für kleinere Automatisierungsaufgaben preiswerter. Ein modularer Aufbau bietet die typischen Vorteile eines Baukastensystems: Hohe Flexibilität, Erweiterbarkeit und in größeren Anlagen Kostenersparnis durch die Verwendung vieler gleicher Module, die in großen Stückzahlen hergestellt werden können.
Auf vielen Gebieten hat die SPS die zuvor festverdrahtete Anordnung von Relais abgelöst (Verbindungsprogrammierte Steuerung). Preiswerte Baugruppen, Standardisierung der Steuerungsaufgabe und hohe Flexibilität sind kennzeichnend für das SPS-Konzept.
Derzeitige SPS-Baugruppen übernehmen neben der Kernaufgabe (Steuerung und Regelung) zunehmend auch weitere Aufgaben: Visualisierung (Gestaltung der Schnittstelle Mensch-Maschine), Alarmierung und Aufzeichnung aller Betriebsmeldungen (Data-Logging).
Ebenfalls erfolgt zunehmend die Verbindung der Sensoren und Aktoren mit der SPS über einen Feldbus und nicht mehr diskret. Hierdurch verringert sich der Verdrahtungsaufwand. Seit einiger Zeit werden auch nicht nur Sensoren und Aktoren, sondern Teile der SPS wie Eingangs- und Ausgangsbaugruppen über einen Bus und (Bus-)Interfacemodule an eine Zentralstation angebunden (dezentrale Peripherie). Die Bussysteme werden in modernen Anlagen von Netzwerken (Profinet) abgelöst oder durch diese ergänzt. Gegenüber Bussystemen sind Netzwerke (Ethernet) flexibler und schneller.
Schließlich erfolgen auch zunehmend Anbindungen an die Verwaltungsrechner von Firmen (vertikale Integration). So stehen z. B. immer aktuelle Daten über Fertigungsstände, Lagerbestände etc. zur Verfügung („vernetzte Fabrik“).
So wird der Unterschied zwischen einer modernen SPS und einem Prozessleitsystem immer kleiner. Die technische Weiterentwicklung verläuft ähnlich rasant wie in der Computertechnik generell.

## Die verschiedenen Konzepte
### Unterschiede nach Verarbeitungsablauf
#### Zyklusorientierte SPS

    Zyklusorientierte SPS-Geräte arbeiten streng nach dem EVA-Prinzip (Eingabe, Verarbeitung, Ausgabe). Der Ablauf erfolgt in wiederkehrenden Zyklen:
   * Initialisierung: Nach der Feststellung der Betriebsbereitschaft werden die Eingänge abgefragt und das Prozessabbild der Eingänge aktualisiert.
   * Anwenderprogramm: Dieses verarbeitet die Eingangswerte und erstellt das Prozessabbild der Ausgänge. Es erlaubt bedingte Aufrufe und Verzweigungen, was unterschiedliche Laufzeiten zur Folge haben kann.
   * Ausgabe: Das Betriebssystem überträgt das Ausgangsabbild an die Peripherie. Die Zykluszeit beträgt typischerweise 1 bis 10 Millisekunden. Bei leistungsstarken Modellen oder kleinen Programmen sind auch Zeiten bis 100 µs möglich. Einige Modelle bieten die Möglichkeit eines festen oder asynchronen Zyklus.

#### Zyklische SPS mit Unterbrechungsverarbeitung

    Für Sonderfälle gibt es spezielle Eingangskarten, die beim Statuswechsel eines angeschlossenen Sensors an das Betriebssystem einen Alarm (Interrupt) melden. Dieses unterbricht das laufende Programm und ruft ein extra für diese Situation angepasstes Anwenderprogrammmodul (engl. Interrupt Service Routine) auf und setzt danach das unterbrochene Programm fort. So können zeitkritische Aufgaben, die mit der Zykluszeit in Konflikt stehen, bewältigt werden.

#### Ereignisgesteuerte SPS

    Eine weitere Gruppe arbeitet ereignisgesteuert. Die meisten dieser Systeme sind zugleich auch objektorientiert. Das Betriebssystem listet alle „Ereignisse“ – Statuswechsel eines Sensors – auf und arbeitet in dieser Reihenfolge die entsprechenden Anwenderprogrammteile ab. Alle Sensoren werden dabei berücksichtigt und kein Sensor wird „verschlafen“. Vorteile hat dieses Konzept im Vergleich zu den zyklusorientierten Systemen in der Regel durch die zusätzliche Objektorientierung, welche für die gleichzeitige Visualisierung genutzt werden kann.

### Unterschiede nach Modularität
#### Modulare SPS

Die Steuerung besteht aus einzelnen Komponenten, die jeweils eine andere Aufgabe erfüllen. Das einfachste Beispiel wäre eine SPS, die aus einer zentralen Rechenbaugruppe (mit dem Hauptprozessor) und mindestens einer Eingabe und einer Ausgabebaugruppe besteht. Diese Systeme lassen sich durch das Hinzufügen von Baugruppen erweitern, wenn etwa mehr Eingänge oder Ausgänge gewünscht sind. Mit spezialisierten Modulen, z. B. einem Modul mit einer seriellen Schnittstelle, lassen sich auch Komponenten wie z. B. Wetterstationen integrieren. Verarbeitung analoger Eingangssignale, komplexe Regelungsmodule und zahlreiche weitere Module können ergänzt werden.

#### Kompakt-SPS

Kompaktsteuerungen sind nicht oder nur eingeschränkt erweiterbar, jedoch entsprechend preiswerter und platzsparend. Sie bieten ansonsten dieselben Grundfunktionen wie modulare SPS.

#### Chip / Eingebettete -SPS

Steuerungen für kleine Maschinen mit einem geringen oder mittleren Volumen. Beispielhaft sind hier PLCs, welche PLC-Sprachen wie Kontaktplan, Flow-Chart oder Grafcet ausführen können. Sie ähneln herkömmlichen SPS. Entwickler haben jedoch aufgrund ihrer geringen Größe die Möglichkeit, sie wie einen Mikrocontroller in kundenspezifische Leiterplatten einzubauen, ohne dabei Programmierkenntnisse voraussetzen zu müssen, da die Programmiersprache einfach zu verwenden, zu ändern und zu warten ist. Sie liegen zwischen der klassischen SPS / Mikro-SPS und den Mikrocontrollern.

### Sonderformen

Für den Einsatz in mobilen Arbeitsmaschinen und deren hohen Ansprüchen sind seit 1980 Sonderformen auf dem Markt. „Mobile Automation“: Diese Kompakt-SPS haben aufgrund der großen Umgebungseinflüsse ein geschlossenes Metall-Gehäuse. Ein weiteres Merkmal ist die Fähigkeit, direkt hydraulische Ventile proportional anzusteuern. Einsatzfelder sind: Baumaschinen, Kräne, Hebebühnen und Kommunalfahrzeuge.

## Weitere Typen und Eigenschaften einer SPS

Einige Beispiele für verschiedene Baugruppen eines modularen Systems:
* Zentralbaugruppe (Sitz des Hauptprozessors)
* Anschaltungen: Baugruppen zum Anbinden eines Feldbus-Systems
* Busmodule (Schraub- oder Crimpklemmen, Alarmierung)
* Digitale Eingangskarte (meist Potentialtrennung mittels Optokoppler)
* Digitale Ausgangskarte (offener Kollektor oder Relais)
* Analoge Eingangskarte
* Analoge Ausgangskarte
Im Gegensatz dazu gibt es auch integral aufgebaute Steuerungen, d. h. SPS-Systeme, die aus einer einzigen Komplett-Einheit bestehen. Es gibt auch Mischformen.
Eigensicherer oder nicht eigensicherer Aufbau: Eigensichere Anlagen sind elektrisch so ausgelegt, dass auch im Fehlerfall kein Funke entstehen kann, der ein zündfähiges Gemisch zur Explosion bringen könnte. Ein Merkmal solcher Geräte ist die Begrenzung von Ein- und Ausgangsströmen (0 bzw. 4–20 mA). Ein Anwendungsgebiet für eigensichere Geräte sind z. B. Chemieanlagen.
Als Soft-SPS werden Softwarepakete bezeichnet, die auf einem PC lauffähig sind. In der Praxis werden häufig industrietaugliche PC-Ausführungen gewählt, obwohl dies auch mit handelsüblichen Personal Computern möglich ist. Die Peripherieanbindung (Sensoren und Aktoren) erfolgt entweder seriell über Bussysteme oder mit inzwischen handelsüblichen Ein- und Ausgangskarten. Diese Systeme arbeiten ohne einen speziellen Bitprozessor und erreichen deshalb gelegentlich noch nicht die notwendige Geschwindigkeit. Sie sind daher nur für nicht-zeitkritische Anwendungen geeignet. Als Slot-SPS wird eine Einbaukarte für den PC bezeichnet. Auf dieser befinden sich in der Regel ein Bitprozessor und das SPS-Betriebssystem.
Ein weiteres Konzept ist Grundlage für die hochverfügbaren und die sicherheitsgerichteten Geräte. Neben der Ausfallgefahr durch hohe Temperaturen gibt es andere Gründe für den möglichen Ausfall einer Baugruppe. Diese kann man durch den Begriff „Alterung“ zusammenfassen. Dazu gehört auch das Thema Korrosion. Abhängig von der (finanziellen) Schadenshöhe, die durch einen Stillstand der Anlage im Fehlerfall verursacht wird, können mehrere SPS-Baugruppen einsetzen. Diese arbeiten gleichzeitig an derselben Steuerungsaufgabe (miteinander synchronisiert). Dies ist ein redundantes, mehrkanaliges System. Im Konfliktfall wird eine Alarmmeldung erzeugt und die Anlage läuft weiter. So wird Zeit gewonnen, um die schadhafte Baugruppe auszutauschen. In dem (statistisch) unwahrscheinlichen Fall, dass das Schwestersystem ebenfalls ausfällt, steht die Anlage.
Sicherheitsgerichtete Geräte sind ähnlich aufgebaut. Allerdings führt hier der Konfliktfall dazu, dass die Anlage so schnell wie möglich in den „sicheren“ Zustand gebracht wird. Die damit einhergehende Schadenshöhe ist belanglos. Sicherheitsgerichtete Geräte werden z. T. auch als sicherheitsgerichtete speicherprogrammierbare Steuerungen bezeichnet und folglich mit SSPS abgekürzt. Diese Steuerungen werden auch Sicherheits-SPS genannt.
Die Möglichkeiten zur Erstellung des Anwenderprogramms sind ebenfalls unterscheidbar. Neben den hierfür vorhandenen Normen ergibt sich die Art und Weise der Programmdarstellung: grafisch oder (nur) als Anweisungsliste. Grafisch unterstützte Darstellungen können einem Stromlaufplan (Kontaktplan) oder einem Logikplan (Funktionsplan) ähneln. Der Kontaktplan kann von den meisten Elektrikern verstanden werden, selbst wenn diese mit Computern oder mit SPS-Geräten noch nicht vertraut sind. Dies hat die Einführung der SPS in die technische Welt erheblich beschleunigt.
Eine Kaufentscheidung berücksichtigt häufig die Wiederverwendbarkeit bereits bewährter Anwendersoftware. Neue Konzepte verlangen häufig auch ein zusätzliches Training beim Fachpersonal.

## Grenzen der Einsatzfähigkeit

Seit die SPS auch analoge Signale (über DA/AD-Umsetzer) verarbeiten kann, wird sie auch auf dem Gebiet der Regelungstechnik häufig eingesetzt. Für nahezu jede Regelungsaufgabe gibt es standardisierte Lösungen (z. B. als Funktionsbausteine). Insofern entspricht die Bezeichnung „Steuerung“ nicht mehr den strengen Definitionen von Steuerungen und Regelungen (engl. open and closed loop control).
Eine technische Grenze sind die explosionsgefährdeten Bereiche. Hier arbeitet man entweder mit pneumatischen Signalen oder mit eigensicheren Stromkreisen. Man kann eine handelsübliche SPS den Vorschriften entsprechend druckfest kapseln. Dementsprechend ist sie während des Betriebs nicht zugänglich. Ferner muss eine Lösung für die Anbindung der Sensoren und Aktoren gefunden werden (z. B. druckfeste Schottverschraubungen). Generell lässt sich sagen: In explosionsgefährdeten Bereichen wird eine SPS selten eingesetzt. Inzwischen gibt es Ein- und Ausgangskarten, an die eigensichere Stromkreise angeschlossen werden können. Außerdem gibt es eigensichere Datenbusse. Die SPS selbst befindet sich dann in einem Schaltraum außerhalb des gefährdeten Bereichs.
Wenig sinnvoll ist auch der Einsatz einer SPS bei Steuerungsaufgaben mit sehr wenigen Ein- und Ausgängen. Beispiel: Stern-Dreieckanlauf eines Motors. Hier gibt es spezielle (auch elektronische) Bausteine.
Weiterhin gibt es Maschinen, die sehr zeitkritische Aufgaben zu bewältigen haben. Solche Maschinen haben in der Regel sehr seltene und hoch spezialisierte Sensoren. Beispiel: die Erkennung eines Fadenbruchs in einer Hochleistungswebmaschine. Der Einsatz einer SPS würde hier teure Feldversuche voraussetzen.
Die SPS hat enorme Vorteile bezogen auf die Flexibilität. Genau deswegen ist sie für „manipulationssichere“ Steuerungen wenig geeignet. Dies hat nichts mit Sicherheit im Sinne von Gefahrenvermeidung für Mensch und Umwelt zu tun, wohl aber mit dem Fernhalten von nicht autorisierten Personen. Beispiele: Erkennung der Zugangsberechtigung, Automaten mit Geldverkehr.
Im Juli 2010 wurde der erste Computerwurm entdeckt (mit dem Namen Stuxnet), der sich speziell gegen Industriesysteme richtet und diese nicht nur ausspionieren, sondern auch deren Funktionsweise manipulieren kann.

### SPS und Sicherheit

Als Steuerungen noch mit einer Ansammlung von Relais und Schützen erstellt wurden, war das Thema Sicherheit leichter zu berücksichtigen als mit dem neuen Konzept einer SPS. Die Eins-zu-eins-Umsetzung der in der Schaltung (Verriegelung) niedergelegten Logik auf das SPS-Konzept musste zwangsläufig mit einzelnen vorher sicheren Schaltkreisen in Konflikt kommen. Hinzu kam die mangelnde Erfahrung.
Beispiel: Erst wenn das Schutzgitter geschlossen ist, darf sich der Stempel bewegen. Damit im Fehlerfall nichts passiert, wurden beide Schließer des Endlagenschalters in Reihe geschaltet und mit der Freigabe des Stempels verknüpft – Berücksichtigung des Ruhestromprinzips und des möglichen Festschweißens eines Kontaktes.
Mittels getakteter Signale können Querschlüsse erkannt werden.
Bald lautete eine Regel: „Mit der SPS darf keine sicherheitsgerichtete Schaltung erstellt werden“. Der Blick von Berufsgenossenschaften und anderen Institutionen wurde nun auf dieses Problem gelenkt. Insgesamt begann eine neue Diskussion zum Thema Sicherheit in technischen Anlagen.
Sicherheit wurde definiert mit einer Risikoabschätzung der Gefahr für Mensch und Umwelt. Zusammen mit den Herstellern wurden Konzepte erarbeitet, wie auch mit einer SPS die notwendige und vorgeschriebene Sicherheit erreicht werden kann. Ein wesentlicher Kernpunkt war: Die Anwenderprogramme in einer sicherheitsgerichteten SPS sind prüfpflichtig. Jeder Änderungswunsch muss erst neu geprüft werden. Beim Übertragen einer neuen Anwenderprogrammversion ist die Anlage stillzusetzen. Das sind erhebliche Einschränkungen der bei der SPS sonst so vorteilhaften Flexibilität. Die Prüfung ist auch mit erheblichen Kosten verbunden.
Bei der Risikoabschätzung geht es um zwei Themenkreise.
* Wie hoch ist das Risiko und um welche Art von Risiko handelt es sich (materieller Schaden, Personenschäden, Umweltschäden)? Hierbei wird nur die Maschine oder Anlage betrachtet. Die technische Ausführung der Verriegelung ist ohne Belang. Abhängig von der Beantwortung dieser Fragen (in einer Norm festgelegt) ergeben sich Anforderungen an die Steuerung.
* Welche Fehler sind in einer SPS möglich oder denkbar? Hierbei geht man soweit, eine nicht gewollte Änderung im Programmspeicher anzunehmen (Diffusion im Halbleiterkristall). Der zufällig dort gespeicherte Befehl könnte statt „Ausschalten“ nun „Einschalten“ bedeuten. Man kann annehmen, dass ein solcher Extremfehler nicht gleichzeitig im Schwestersystem passiert. In einer sicherheitsgerichteten SPS arbeiten deshalb zwei Prozessoren das gleiche Programm ab und kontrollieren sich gegenseitig. Im Übrigen waren diese mehrkanaligen Systeme schon zur Erhöhung der Zuverlässigkeit entwickelt worden.
Alle sicherheitsgerichteten SPS-Ausführungen haben zum Ziel, im Zweifel die Anlage möglichst schnell in einen sicheren Zustand zu versetzen. Dieses Ziel steht zwangsläufig in Konflikt mit dem Wunsch nach einer Erhöhung der Verfügbarkeit der Anlage (= Zuverlässigkeit).

### Vor-/Nachteile von SPS gegenüber VPS (Verbindungsprogrammierte Steuerung)
#### Vorteile

* flexibler
* kleiner
* zuverlässiger
* oft langfristig kostengünstiger
* mit anderen IT-Anlagen vernetzbar
* schnelle Fehleranalyse
* Fernwartbarkeit
* Steuerungslogik oft auch über das Internet veränderbar
* geringerer Stromverbrauch
* in der Regel geringerer Aufwand bei Umverdrahtung bzw. Funktionswechsel gegenüber der VPS
* für komplexere Aufgaben besser zu gebrauchen

#### Nachteile

* zusätzliche Infrastruktur notwendig (Programmiergeräte bzw. Software, Datensicherung etc.)
* höher qualifiziertes Personal notwendig
* aufwendiges Sicherheitskonzept zur Absicherung undefinierter möglicher Anlagenzustände
* teilweise zusätzliches oder eigenes unabhängiges hardwarebasiertes Sicherheitskonzept erforderlich
* Fehlersuche nur mit Programmiergerät
* Anfälliger bei Störungen in der Stromversorgung
* Bei kleinen Anlagen hohe Hardwarekosten
Auf Grund der Gefahr von Manipulationen (siehe Stuxnet-Wurm) geht man bei der Entwicklung neuer Systeme nun wieder andere Wege. Sofern es die Architektur eines Systems zulässt, verlagert man dazu das Betriebssystem und das Programm in einen Festwertspeicher (ROM). Damit können diese empfindlichen Bereiche künftig nicht mehr überschrieben oder manipuliert werden.

## Aufbau und Programmierung

Die klassische SPS hat eine Prozessor-Architektur, die im Wesentlichen für die Bit-, Byte-, Wort- oder Doppelwort-Verknüpfung optimiert ist. Siemens-Steuerungen werden beispielsweise Byte-weise adressiert, Omron-Steuerungen adressieren dagegen 16 Bit. Die unterschiedliche Adressierung ist dann besonders zu beachten, wenn unterschiedliche Steuerungen über Feldbus, z. B. Profibus, miteinander verknüpft werden. Unter Umständen müssen Oktetts innerhalb eines Worts paarweise getauscht werden, um die richtige Information abzubilden (siehe Byte-Reihenfolge). Die Anpassung der Bit-, Byte- bzw. Wort-Verarbeitung an die zu steuernde Maschine oder Anlage erfolgt durch ein Programm, das den gewünschten Ablauf festlegt und im Speicher abgelegt wird.
Üblicherweise wird bei der SPS auch Software zur Kommunikation des Programmiergerätes mit der Steuerung mitgeliefert. Die Programmierung geschieht über dieses Programmiergerät, zum Beispiel eine Anwendung unter Microsoft Windows oder Linux auf einem PC oder ein zugeschnittenes System. Die hier bereitgestellte, so genannte „Konfiguration“ wird beim Programmieren auf die Steuerung geladen. Sie bleibt dort solange im Speicher, bis sie vom Benutzer gelöscht oder überschrieben wird.
Moderne SPSen sind klassische Mikrocontroller mit eigener CPU und einer Basis-Software, die ebenfalls die wortweise Verknüpfung von E/A-Signalen erlaubt. Die Basis-Software besteht aus einem Echtzeitbetriebssystem und SPS-spezifischen „Bausteinen“, die SPS-Funktionen wie Zeitfunktionen und Schnittstellen zu Erweiterungsboards realisieren. Neuere Systeme gehen hier noch einen Schritt weiter. Diese vereinen die Annehmlichkeiten und Vorzüge von SPS, IPC zu PAC-Systemen (engl. programmable automation controller) und ermöglichen durch ihre einfache Programmierweise neben erhöhtem Anwenderkomfort eine bessere und schnellere Anbindung an ihrem Einsatzort.
In den letzten Jahren wurden auf Druck der Anwender die Steuerungen in Hinsicht auf minimalen Platzbedarf im Schaltschrank optimiert. Für diese miniaturisierten Steuerungskomponenten wird von manchen Firmen der Begriff der Busklemme verwendet, wobei es für diesen Begriff keine eindeutige Definition gibt. Eine Busklemme ist eine intelligente Reihenklemme, welche die unterschiedlichsten analogen und digitalen Eingangs- und Ausgangssignale verarbeiten kann. Sie wird so einfach und kompakt wie eine konventionelle Reihenklemme untergebracht und verdrahtet, verfügt aber, im Gegensatz zur Reihenklemme, über eine intelligente Elektronik.
Der Kopf dieser elektronischen Reihenklemme ist der Buskoppler. Er verfügt in der Regel über eine Schnittstelle für einen Feldbus. Buskoppler mit eigener Intelligenz werden als Busklemmen-Controller bezeichnet. Sie verfügen oftmals bereits über SPS-Funktionalität.

### Programmiersprachen

    Übersicht der Sprachen in: IEC 61131/EN 61131
Speicherprogrammierbare Steuerungen werden meist mit speziellen (oft grafischen) Programmiersprachen programmiert. Als Reaktion auf die Forderung der amerikanischen Automobilindustrie wurde eine elektronische Steuerung mit einer Bildschirmdarstellung entwickelt, die an die Darstellung in der elektrischen Steuerungstechnik angelehnt ist. Diese Darstellung/Sprache (Ladder Diagram) war die erste grafisch unterstützte Programmierung elektronischer Steuerungen. Mehrere Firmen (Texas Instruments, Modicon, ISSC, Allen-Bradley (später Rockwell)) haben diese Sprache in den 1970er Jahren in ihren Systemen weiterentwickelt. Erster deutscher Hersteller war 1975 die Firma Klaschka mit den SECON-Steuerungen. Bereits Anfang der 1980er Jahre boten diese Steuerungen Bit-, Byte- und Wortverarbeitung sowohl für die E/A-Ebene als auch für die Merker-Ebene sowie Sonderfunktionen wie Sequenzer (Schrittschaltwerke), Analogwertverarbeitung, PID-Regler und grafische Bedienschnittstellen.
Neben speziell angepassten Hochsprachen, welche die Programmierung von hochkomplexen Abläufen in der Automatisierung erlauben, hat sich heute ein genormter Standard etabliert: In DIN EN 61131-3 (Näheres siehe dort) sind fünf Programmiersprachen spezifiziert.

### Operanden

Jede Programmiersprache befasst sich mit Operanden, die miteinander verknüpft oder verändert werden.
Bezogen auf die SPS lauten die wesentlichen Operanden:

#### Eingang

    (engl. input) Ist mit dem zugehörigen Geber in der Anlage verbunden.

#### Ausgang

    (engl. output) Ist mit dem zugehörigen Stellglied in der Anlage verbunden.

#### Variable

    Darin ist ein „Zwischenergebnis“ festgelegt, dessen jeweilige Bedeutung vom Programmierer festgelegt wird. Wird der Variablen jedoch kein Wert zugeordnet, gilt diese als "undefiniert"

#### Funktionsblock

    (engl. functionblock) Von einem Funktionsblock (FB) können mehrere Instanzen erstellt werden. Die Instanz eines Funktionsblocks kann im Programm aufgerufen werden.

#### Funktion

    (engl. function) Beim Aufruf einer Funktion werden alle internen Variablen neu initialisiert. Dies hat den Vorteil, dass ein Funktionsaufruf mit gleichen Werten der Eingangsvariablen, das gleiche Ergebnis liefert.

#### Programm

    (engl. programm) Die Variablen eines Programms werden nur beim ersten Aufruf initialisiert. Ein Aufruf eines Programms mit identischen Eingangsvariablen kann deshalb zu verschiedenen Ergebnissen führen.
Merker, Zähler und Zeitglieder können bei Bedarf remanent ausgelegt sein, der Wert bleibt bei Spannungsausfall erhalten. Eine Pufferbatterie oder ein spezieller Kondensator versorgt den zugehörigen Speicherbereich für den Fall, dass die angeschlossene Netzenergie ausfällt, oder die Zustände werden in einem Eeprom gespeichert. Ebenso können interne Zustände auch so gesichert werden, dass sie auch bei Programmänderungen oder nach einem Kaltstart erhalten bleiben. Der Programmierer muss von Fall zu Fall entscheiden, ob die so gesicherte Information für das Wiederanfahren der Anlage nach einem Neustart hilfreich ist, insbesondere, weil in besonderen Fällen auch unerwünschte oder gefährliche Folgen möglich sind.

### Kompatibilität und Interoperabilität

Viele Hersteller unterstützen diese „genormten“ Sprachen. Dennoch ist die versprochene Portabilität der Anwenderprogramme eingeschränkt, weil es oft herstellerspezifische Anpassungen oder Erweiterungen gibt. Bei den Bestandteilen der Software-Bibliotheken sind die Unterschiede besonders groß. Außerdem unterstützt nicht jeder Hersteller Schnittstellen, über welche die Programme in einem auch für andere Hersteller verarbeitbaren Format ausgegeben oder eingelesen werden können. Es ist nur theoretisch möglich, ein Programm zu schreiben und dieses auf Steuerungen unterschiedlicher Hersteller ohne Änderungen ablaufen zu lassen – praktisch scheitert das meist an den Eigenheiten der verschiedenen Fabrikate.
Mit Ansätzen zur Überbrückung dieser Schwierigkeiten beschäftigen sich z. B. folgende Gremien/Organisationen:
* TC6 XML Workgroup der PLCopen In den Dokumenten dieses Arbeitskreises wird ein XML Format festgelegt, in dem man der IEC 61131 genügende Projekte ablegen soll. Damit wird der Austausch von Projektdaten zwischen verschiedenen Werkzeugen möglich.
* SRCI Working group der Profibus & Profinet International Organisation Die Arbeitsgruppe hat eine Liste an Funktionen (SRCI) entwickelt, mittels derer man in kompatiblen SPS kompatible Roboter steuern kann.
Interoperabilität einer SPS ist ihre Fähigkeit, mit Steuerungen verschiedener Hersteller in einem Gesamtsystem zusammenzuarbeiten. Dies wird in der Regel durch mehrere herstellerunabhängige Standards sichergestellt. Dazu gehören zum Beispiel Vereinbarungen über den Zugriff auf symbolische Informationen und den Austausch von Variablen über Feldbusse und Netzwerke.

## Arbeitsweise

Wie jeder andere Computer arbeitet die SPS nach dem EVA-Prinzip, sie besitzt also einen Eingabe-, einen Verarbeitungs- und einen Ausgabeteil. Die E/A-Geräte (die an die Eingänge/Ausgänge, engl. Input/Output, angeschlossenen Geräte) sind mit der SPS verdrahtet. Das Peripherieabbild der Eingänge wird am Anfang eines Zyklus eingelesen, dann erfolgt die Verarbeitung des Programms und die Übergabe der Ausgänge in das Peripherieabbild der Ausgänge. Bei früheren Speicherprogrammierbaren Steuerungen wurde das Peripherieabbild der Eingänge auf Merker gespiegelt und diese im Programm abgefragt, weil die Abfragezeit auf Eingänge deutlich höher lag.
Die SPS arbeitet zyklisch: Sie liest die Werte aller Eingänge am Anfang eines Zyklus ein (man spricht in diesem Zusammenhang auch vom „Einlesen des Prozessabbildes“) – sollte sich ein Befehl wiederholen, dann gilt die letzte Anweisung (Dominant Setzen oder Rücksetzen) – führt dann die gespeicherten Programme (auch Bausteine oder Netzwerke genannt) aus und setzt am Ende die Ausgänge. Dann startet der Zyklus von Neuem – ein Programmende gibt es nicht. Ereignisorientierte Verarbeitung wird meistens nur durch sogenannte High-End-Steuerungen unterstützt.

### SPS-Zustände

Zustandsänderungen, die sich an den Eingängen angeschlossenen Sensoren während des Zyklusdurchlaufs ereignen, werden nur erkannt, wenn sie mit speziellen Befehlen unmittelbar vor der Bearbeitung geladen werden. Abhängig von deren Werten werden die an ihren Ausgängen angeschlossenen Aktoren gemäß eingebautem Programm angesteuert. Dies geschieht einmal am Ende des Zyklus.
In den meisten SPS-Konzepten unterscheidet die SPS zwischen den Betriebszuständen
* STOP,
* RUN.
Diese sind nicht mit den für die SPS bestehenden Möglichkeiten AUS und AN der globalen Stromversorgung zu verwechseln.
| System-Neustart | Komplette System-Diagnose (System-Eigentest) System-Initialisierung (ggf. Daten-Transfer) | Komplette System-Diagnose (System-Eigentest) System-Initialisierung (ggf. Daten-Transfer) |
| Zyklus | System-Teil: | kurzer System-Test ggf. Daten-Transfer Lesen der Eingänge |
| Zyklus | Anwender-Teil: | Abarbeitung des Anwenderprogramms nach dem EVA-Prinzip (Eingabe, Verarbeitung, Ausgabe) |
| Zyklus | System-Teil: | Schreiben der Ausgänge |
Sobald auf STOP geschaltet ist, ruft das Systemprogramm das Anwenderprogramm nicht mehr auf. Ferner werden die Prozessabbilder nicht mehr aktualisiert. Die restliche zyklische Bearbeitung bleibt. Dazu gehört auch die Aktualisierung der Anwenderprogrammbausteinliste. Alle Ausgänge werden abgeschaltet, wobei das Prozessabbild erhalten bleibt.
Nach dem Starten der SPS beginnt wieder die gesamte zyklische Bearbeitung und die Betriebsart wechselt in RUN. Nur die erste Abarbeitung des Anwenderprogramms kann das Prozessabbild der Ausgänge verändern. Ein Teil des Prozessabbildes kann danach den Zustand vor dem Neustart beibehalten. Häufig ist ein solches Verhalten unerwünscht. Dann ist ein RESET vor dem Neustart erforderlich, wodurch das Prozessabbild der Ausgänge gelöscht wird.

## Verwandte Themen

* Industrial Ethernet – Ethernetkommunikation in der Steuerungs- und Regeltechnik