Obwohl es so aussieht, als ob jedes SPS-Modell seinen eigenen, eigenwilligen Standard für die Programmierung hat, gibt es einen internationalen Standard für die Steuerungsprogrammierung, an den sich die meisten SPS-Hersteller zumindest zu halten versuchen. Dies ist der Standard IEC 61131-3, der als Standard gelten wird.
Man sollte sich damit trösten, dass trotz der Unterschiede in den Details der SPS-Programmierung von einem Hersteller zum anderen und von einem Modell zum anderen die Grundprinzipien weitgehend gleich sind.
Zwischen verschiedenen allgemeinen Programmiersprachen (z. B. C/C++, BASIC, FORTRAN, Pascal, Java, Ada usw.) bestehen viel größere Unterschiede als zwischen den von verschiedenen SPS unterstützten Programmiersprachen, und diese Tatsache hindert Computerprogrammierer nicht daran, „mehrsprachig“ zu sein.
Ich habe persönlich Programme für über ein halbes Dutzend verschiedener Hersteller von SPS (Allen-Bradley, Siemens, Square D, Koyo, Fanuc, Moore Products APACS und QUADLOG sowie Modicon) geschrieben und/oder analysiert, mit mehreren SPS-Modellen innerhalb der meisten dieser Marken, und ich kann Ihnen sagen, dass die Unterschiede in den Programmierkonventionen weitgehend unbedeutend sind.
Nachdem man gelernt hat, wie man ein SPS-Modell programmiert, ist es ziemlich einfach, sich an die Programmierung anderer Marken und Modelle von SPS anzupassen.
SPS-Programmiersprachen
Die Norm IEC 61131-3 spezifiziert fünf verschiedene Formen von Programmiersprachen für Industriesteuerungen:
- Kontaktplan (LD)
- Strukturierter Text (ST)
- Anweisungsliste (IL)
- Funktionsblockdiagramm (FBD)
- Sequenzielles Funktionsdiagramm (SFC)
Nicht alle speicherprogrammierbaren Steuerungen unterstützen alle fünf Sprachtypen, aber fast alle unterstützen den Kontaktplan (LD), auf den sich dieses Buch hauptsächlich konzentrieren wird.
Die Programmiersprachen für viele Industriegeräte sind konstruktionsbedingt begrenzt.
Ein Grund dafür ist die Einfachheit: Jede Programmiersprache, deren Struktur so einfach ist, dass sie von jemandem ohne formale Programmierkenntnisse verstanden werden kann, ist in ihren Fähigkeiten begrenzt.
Ein weiterer Grund für Programmierbeschränkungen ist die Sicherheit: Je flexibler und unbegrenzter eine Programmiersprache ist, desto größer ist das Potenzial, beim Programmieren unbeabsichtigt komplizierte „Laufzeitfehler“ zu verursachen.
Der ISA-Sicherheitsstandard Nr. 84 klassifiziert industrielle Programmiersprachen entweder als feste Programmiersprachen (FPL), Sprachen mit begrenzter Variabilität (LVL) oder Sprachen mit voller Variabilität (FVL).
Sowohl die Programmierung mit Kontaktplan als auch mit Funktionsblockdiagrammen gilt als Sprache mit „begrenzter Variabilität“, während die Anweisungsliste (und traditionelle Computerprogrammiersprachen wie C/C++, FORTRAN, BASIC usw.) als Sprachen mit „voller Variabilität“ mit dem damit verbundenen Potenzial für komplexe Fehler gilt.