Speicherprogrammierbare Steuerungen sind das Herzstück der industriellen Automatisierung und ermöglichen die präzise Steuerung und Regelung von Maschinen und Prozessen. Sie bieten Flexibilität, Zuverlässigkeit und Effizienz in zahlreichen Anwendungen. Detaillierte Informationen und Antworten auf häufig gestellte Fragen erhalten Sie in unserem FAQ-Text.
Nahezu in jeder prozesstechnischen Anlage wird die Automatisierung elektrischer und mechanischer Systeme umgesetzt. Das bedeutet beispielsweise, dass eine automatische Ansteuerung von Komponenten aufgrund von Schalterstellungen oder nach Ablauf einer bestimmten Zeit erfolgt. Manchmal werden lediglich einfache binäre Verknüpfungen benötigt; oftmals sind es aber komplexe Ablaufsteuerungen. Für die Automatisierung kommen üblicherweise speicherprogrammierbare Steuerungen (SPSen) zum Einsatz.
Eine speicherprogrammierbare Steuerung / SPS kann man sich wie einen kleinen Computer vorstellen, der Ausgaben anhand von Eingaben und Operationen tätigt. Eine SPS besteht minimal aus einer Zentraleinheit (CPU) und aus Ein-/Ausgangsmodulen (E/A-Module). In der Regel sind die E/A-Module über einen Systembus mit der Zentraleinheit verbunden und werden über diese mit Spannung versorgt.
Zentraleinheit JUMO variTRON 500 mit SPS-Funktionalität, Ein-/Ausgangsmodulen und Webpanel (dahinter)
SPSen sind in verschiedenen Ausführungen erhältlich, die sich in ihrer Funktionalität und Anwendung unterscheiden:
Diese Steuerungen sind in einem einzigen Gehäuse integriert und enthalten alle notwendigen Komponenten wie CPU, Ein-/Ausgänge und Kommunikationsschnittstellen. Sie sind ideal für kleinere Anwendungen mit minimalem Platzbedarf.
Diese Systeme bestehen aus einer zentralen CPU und separaten Ein-/Ausgangsmodulen, die je nach Bedarf hinzugefügt oder entfernt werden können. Sie bieten Flexibilität und Erweiterbarkeit für komplexere Anwendungen. Hierzu zählen auch die Automatisierungssysteme der JUMO variTRON-Familie, selbst wenn sie über einen viel größeren Funktionsumfang als handelsübliche SPSen verfügen.
Diese Steuerungen wurden speziell für sicherheitskritische Anwendungen entwickelt und erfüllen strenge Sicherheitsstandards. Sie werden in Bereichen eingesetzt, in denen der Schutz von Menschen und Anlagen oberste Priorität hat.
Die Signale von Schaltern und Sensoren, etc. gelangen über Eingangsmodule zur Zentraleinheit und stehen so in der SPS zur Verfügung. Beispiele für die Signale aus der Anlage sind der jeweilige Status von Endschaltern, Thermostaten, Durchflusswächtern und Niveauschaltern oder die entsprechenden Messwerte von Temperatur-, Druck- oder Feuchtesensoren. Die SPS verknüpft die Signale und bildet ein Ergebnis, welches den Ausgangsmodulen zur Verfügung gestellt wird. So werden beispielsweise Relais zur Aktivierung von Magnetventilen und Motoren angesteuert. Die Funktionalität einer SPS ist also in der Zentraleinheit realisiert, sie ist sozusagen die Schaltzentrale.
Vor Einführung der SPSen wurden Steuerungen durch die Verschaltung von Relais und Zeitrelais realisiert. Eine solche Steuerung erforderte einen hohen Materialeinsatz und die Funktion konnte nur durch Verschaltungsänderungen modifiziert werden. Außerdem waren die Systeme störanfällig und die Fehlersuche aufwändig. Die Aufgabe der ersten speicherprogrammierbaren Steuerungen war es, diese Relaisnetzwerke zu ersetzen.
Alle Eingangssignale werden durch ein SPS-Programm zyklisch abgearbeitet und im Programm verknüpft. Für die SPS-Programmierung stehen Entwicklungsumgebungen wie z. B. CODESYS zur Verfügung, d. h. die Programme werden in CODESYS entwickelt und danach in die SPS übertragen.
Eine SPS zu programmieren, ist in unterschiedlichen, in der Norm IEC 61131-3 definierten Programmiersprachen möglich. Der Programmierer ist also in der Lage, die Programmiersprache zu wählen, die am besten für die jeweilige Anforderung geeignet ist. Nachfolgend ein Überblick über die wichtigsten SPS-Programmiersprachen:
Für den Ersatz von Relaisnetzwerken ist die seit den 1960er-Jahren bestehende Programmiersprache KOP (Kontaktplan) geeignet. Sie ist die älteste der bekannten Programmiersprachen und nähert sich in ihrer Programmdarstellung elektrischen Schaltkreisen an.
Man stelle sich eine sehr einfache Anwendung vor, in der durch ein Eingangsmodul der Zustand eines Grenzwertschalters in einem Tank und der von 2 Tastern erfasst wird. Die jeweiligen Zustände stehen im SPS-Programm durch Variablen mit den Namen „GrenzstandUnterschritten“, „TasterLinks“ und „TasterRechts“ zur Verfügung. Über das Relais eines Ausgangsmoduls wird eine Pumpe angesteuert, sie wird im Programm über den Namen „PumpeEin“ angesprochen. Die Pumpe soll nur angesteuert werden, wenn sowohl die beiden Taster (aus Sicherheitsgründen beide) betätigt sind und der Grenzstand unterschritten ist. Das einfache Programm in der Programmiersprache KOP stellt sich in CODESYS wie folgt dar:
Beispielprogramm in Kontaktplan
Man erkennt eine ähnliche Struktur wie die eines Stromlaufplanes, bestehend aus Schaltern/Tastern und Relais. Nach Erstellung des Programms wird dieses in die SPS übertragen und geprüft. Danach ist die Entwicklungsumgebung CODESYS nicht mehr notwendig.
Schon sehr früh standen in KOP Zeitglieder zur Verfügung, die ein verzögertes Ein-/Ausschalten ermöglichen oder ihren Ausgang nach Ansteuerung für eine bestimmte Zeit aktivieren. So existiert beispielsweise ein Funktionsbaustein mit der Bezeichnung TON, der sein Ausgangssignal erst aktiviert, wenn sein Eingang für eine Mindestzeit angesteuert wird. Soll die Pumpe beispielsweise dann angesteuert werden, wenn die Taster für eine Mindestzeit von 5 Sekunden aktiviert sind, muss das kleine Programm wie folgt modifiziert werden:
Modifiziertes Beispielprogramm in Kontaktplan
Zu den Standardfunktionsbausteinen gehören weiterhin RS-FlipFlops, Zähler, Zeitglieder (wie Ein- und Ausschaltverzögerung) und Flankenerkennungen. Auch mathematische Operatoren zählen zur programmatischen Standardausstattung.
Eine sehr ähnliche Sprache ist das netzwerkorientierte FUP (Funktionsplan). In dieser Sprache gestaltet sich das kleine Programm folgendermaßen:
Beispielprogramm in Funktionsplan
CFC (continuous function chart) ist eine Weiterentwicklung von FUP und erlaubt die freie Positionierung von Elementen. Ansonsten ist CFC in der Darstellung sehr ähnlich. Die Programmiersprache ist sehr verbreitet und in dieser sieht das Programm wie folgt aus:
Beispielprogramm in Continuous Function Chart
Eine heute relativ selten verwendete Sprache ist Anweisungsliste (AWL), die der Programmiersprache Assembler sehr ähnlich ist. Jede Anweisung in AWL basiert primär auf dem Laden von Werten in einen Akkumulator, was durch die LD-Anweisung erfolgt. Anschließend wird die entsprechende Operation mit dem ersten Parameter aus dem Akkumulator ausgeführt. Das Ergebnis dieser Operation wird wieder in den Akkumulator geschrieben. Das kleine Programm gestaltet sich in AWL wie folgt:
Beispielprogramm in Anweisungsliste
Eine weitere Programmiersprache ist ST-Code (Strukturierter Text). ST-Code ist eine textbasierte Programmiersprache, die es ermöglicht, komplexe Steuerungsaufgaben zu lösen. Sie ähnelt in ihrer Syntax der Programmiersprache Pascal und ermöglicht die Verwendung von Variablen, Funktionen, Schleifen und bedingten Anweisungen. ST-Code eignet sich besonders gut für die Programmierung von komplexen Abläufen und mathematischen Berechnungen und ermöglicht eine strukturierte und übersichtliche Programmierung, was die Wartung und Weiterentwicklung von Steuerungsprogrammen erleichtert. Für das Beispielprogramm in ST-Code sind nur 2 Zeilen notwendig.
Beispielprogramm in Strukturierter Text
Mit der Sprache Sequential Function Chart können Ablaufsteuerungen hervorragend realisiert werden. Man stelle sich eine thermische Behandlungsanlage vor, in die das zu behandelnde Gut über einen Bandförderer eingefahren wird. Die ersten 3 Schritte sind die folgenden:
In Programmen in Ablaufsprache existieren Schritte (z. B. Erhitzen und Einfahren), die durch Weiterschaltbedingungen bzw. Transitionen miteinander verbunden sind. Die ersten 3 Schritte (+ Grundstellung) des für die Beispielanwendung notwendigen Programms sehen in Ablaufsprache wie folgt aus:
Verkettung von Abläufen in Sequential Function Chart
Für jeden Schritt können Programme definiert werden, deren Abarbeitung aber nur dann erfolgt, wenn der entsprechende Schritt aktiv ist. Die Abarbeitung beginnt mit dem Schritt „Grundstellung“, für ihn ist kein Programm hinterlegt und so erfolgt keine Aktivität.
Für alle weiteren Schritte sind eigene Programme (z. B. in Kontaktplan) definiert. Wird aus der Grundstellung heraus der Starttaster betätigt wird der Schritt „Erhitzer“ aktiv und durch das hinterlegte Programm der Wärmeerzeuger aktiviert. Der Schritt bleibt so lange aktiv, bis die Erhitzertemperatur 200 °C beträgt und der Schritt „Einfahren“ aktiv wird. Durch das Programm im Schritt „Einfahren“ wird die entsprechende Ansteuerung für den Tür- und den Bandmotor realisiert.
Entsprechend werden weitere Schritte mit Transitionen angehängt. Mit der letzten Transition wird wieder der Schritt „Grundstellung“ aktiv.
Zu den Kernfunktion einer speicherprogrammierbaren Steuerung zählt die Automatisierung von Prozessen, wofür die Programmierung in einer der genannten Programmiersprachen notwendig ist. Heutige SPSen sind jedoch Automatisierungsallrounder und bieten noch viel mehr: