Speicherprogrammierbare Steuerung
Eine Speicherprogrammierbare Steuerung (SPS, engl. PLC programmable_logic_controller (en)) ist eine einem Computer ähnliche elektronische Baugruppe, die für Steuerungs- und Regelungsaufgaben in der Automatisierungstechnik eingesetzt wird.
Aufbau
Die klassische SPS besitzt eine feste interne Verdrahtung, unabhängig von der jeweiligen Steuerungsaufgabe. Die Anpassung an die zu steuernde Maschine oder Anlage erfolgt durch ein Programm, das den gewünschten Ablauf festlegt. Im Gegensatz hierzu gibt es verbindungsprogrammierte Steuerungen, die jedoch bei jeder Änderung im Steuerungsablauf Hardware-seitig umgebaut werden müssen.
Viele moderne SPSen sind allerdings klassische Computersysteme (Microcontroller, PC-basiert) mit einer Basissoftware. Die Basissoftware besteht aus einem Echtzeitbetriebssystem und SPS-spezifischen "Bausteinen", die SPS-Funktionen wie Addierer und sonstiger Verknüpfungsglieder nachbilden. Üblicherweise gehört auch noch Software zur Kommunikation mit einem Programmiergerät dazu.
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, englisch Input/Output, angeschlossenen Geräte) sind mit der SPS verdrahtet.
Im Unterschied zu 'herkömmlichen' Computern arbeitet die SPS zyklisch: Sie liest die Werte aller Eingänge am Anfang eines Zyklus ein, 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.
Zustandsänderungen der an den Eingängen angeschlossenen Sensoren die sich während des Zyklusdurchlaufs ereignen, werden nicht erkannt. Abhängig von deren Werten werden die an ihren Ausgängen angeschlossenen Aktoren gemäß eingebautem Programm angesteuert. Dies geschieht einmal am Ende des Zyklus.
Eingänge können digitale oder analoge Signale sein, aber auch komplexere Dinge wie z.B. eine serielle Schnittstelle. Beispiele für Sensoren sind: Drucksensoren, Temperaturfühler, Endschalter, Grenztaster, Drehzahlgeber etc..
Ausgänge steuern Motoren, Relais, Pneumatikventile, Hydraulikventile etc., werden aber auch zum digitalen Signalaustausch mit anderen Steuerungen genutzt. Viele weitere Schnittstellen zu diversen technischen Einrichtungen existieren.
Die Steuerung verfügt mindestens über Und/Oder-Funktionen, Zähler, Merker und Timer. Weitere Möglichkeiten hängen von der verwendeten Sprache ab. Die Programmierung von Timern für die Steuerung zeitlicher Abläufe ist eine häufige Tätigkeit in der SPS-Programmierung.
Moderne Steuerungen verfügen auch über Multitasking-Möglichkeiten. Die besondere Schwierigkeit dabei ist, dass das Zeitverhalten reproduzierbar sein muss (Echtzeitverhalten); d.h. das selbe Ereignis an den Eingängen muss zu einem vorhersagbaren Zeitpunkt zum entsprechenden Zustand an den Ausgängen führen. Das ist auch der Grund, warum sich ein normaler PC mit einem Standard-Betriebssystem nicht besonders für Steuerungsaufgaben eignet - das Betriebssystem reagiert auf verschiedenste Ereignisse (z.B. Mausbewegung, Tastatureingabe, ...) und verzögert dadurch ein eventuell parallel ablaufendes Steuerungsprogramm. Es gibt inzwischen Ansätze, auch PCs für Steuerungsaufgaben tauglich zu machen. Die Idee dabei ist, einem besonderen Programm (Kernel) die Zeitsteuerung zu übertragen; dieses wiederum teilt dem Betriebssystem und dem SPS-Betriebssystem Rechenzeit zu. Es ist aber auch jederzeit in der Lage, dem Betriebssystem die Kontrolle über den PC zu entziehen. Diese Aufgabe ist nicht ganz trivial. Ein PC hat selten die für Steuerungsaufgaben erforderlichen Schnittstellen, diese müssen über Erweiterungskarten (meist am PCI-Bus) nachgerüstet werden. Da ein PC-Betriebssystem mitunter auch abstürzt, ein solcher Absturz aber fatale Folgen für den gesteuerten Prozess haben kann, müssen Vor- und Nachteile des Einsatzes eines PCs für Steuerungsaufgaben gut überlegt werden.
Der Einsatz speicherprogrammierbarer Steuerungen (Begriff im industriellen Sinn verwendet) bedeutet nicht zwingend, dass regelungstechnisch gesehen nur gesteuert wird, sie können durchaus Regelungsfunktionen übernehmen, d.h. Teile von Rückkopplungskreisen sein.
Programmiersprachen
Speicherprogrammierbare Steuerungen werden meist mit speziellen Programmiersprachen, die oft grafisch sind, programmiert. Früher waren Syntax und Umfang der Programmiersprache meist herstellerspezifisch. Heute hat sich ein genormter Standard nach IEC/EN etabliert.
Nach IEC 61131-3 (International Electrotechnical Commission), zwischenzeitlich übernommen in die Norm DIN EN 61131, sind fünf Sprachen spezifiziert:
- IL (Instruction List), im deutschen Sprachgebrauch AWL (Anweisungsliste)
- ST (Structured Text), (strukturierter Text, angelehnt an Hochsprachen)
- LD (Ladder Diagram), im deutschen Sprachgebrauch KOP (Kontaktplan)
- FBD (Function Block Diagram), im deutschen Sprachgebrauch FUP (Funktionsplan).
- SFC (Sequential Function Chart), im deutschen Sprachgebrauch AS (Ablaufsprache), eine Art Zustandsdiagramm
Die ersten beiden Sprachen (IL und ST) sind textbasiert, die anderen drei Sprachen (LD, FBD und SFC) grafisch. In allen Sprachen können Funktionen und Funktionsblöcke verwendet werden, die in einer der Sprachen geschrieben wurde, oder vom SPS-Hersteller in Form von Software-Bibliotheken ohne Quelltext zur Verfügung gestellt werden.
Viele Programmierumgebungen bieten jedoch die Möglichkeit, weitere Sprachen, wie z.B. "C" zu verwenden.
Zu beachten ist auch, dass zwar die Hersteller diese "genormten" Sprachen unterstützen. Es gibt jedoch meist herstellerspezifischen Anpassungen oder Erweiterungen, die die versprochene Portabilität der Programme einschränken. Bei den Funktionen und Funktionsbausteinen aus den 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.
SPS-Modelle
- ABB 07KT51 und 07KT97 , Advant
- Allen Bradley (Rockwell Automation) (ControlLogix, CompactLogix, RS Logix, GuardPLC)
- Beck IPC GmbH Internetfähige Steuerungen und Embedded-Controller
- Beckhoff SPS auf PC Basis
- BoschRexroth StandAlone- und NC-intgrierte SPSen ISP200, L40 u.a.
- Bernecker&Rainer (Systeme 2003, 2005 und 2010)
- Eckelmann
- ELAU AG PacDrive MAx-4 sowie C200, C400, C600 und P600
- Festo
- Foxboro
- GE Fanuc 90-70, 90-30, VersaMax
- HIMA A1, H41, H51
- Honeywell FSC
- KEBA Kemro K2
- Matsushita FP-Serie FP0/FP-Sigma/FP-M/FP1/FP2/FP10SH
- Mitsubishi MELSEC F1, F2, FX1N, FX2N, AxN, AxS, QnA, QnAS, System Q
- Modicon
- Moeller PS4, PS416, X-System
- Phoenix Contact RFC450/430 ETH, ILC 350 ETH, ILC 200-Serie, S-MAX
- SAMSON, TROVIS 5171
- SAIA-Burgess, PCDx
- Siemens SIMATIC S5 und S7
- Telemecanique
- VIPA Art of Automation
- CoDeSys
- MULTIPROG
Siehe auch
Weblinks
- Das deutschsprachige Wiki der Gebäudeautomation und MSR-Technik
- [1] SPS : Intelligente Steuerrelais