Programmierung von Steuerungen Was wird aus der IEC 61131-3?

Es vergeht kein Jahr, in dem nicht neue Programmiersprachen auftauchen – doch welche hält das Zukunftspotenzial, das sie verspricht?

Bild: iStock, Artur Szczybylo
05.04.2019

Seit mehr als 40 Jahren läuft sie schon, die vielbesprochene Digitalisierung. Doch scheint diese allgegenwärtige Transformation in der letzten Dekade geradezu exponentiell beschleunigt zu haben. Zumindest in der Consumer-Welt besteht kein Zweifel – alles wird digitaler … und muss daher von irgendwem programmiert worden sein. Was hat sich dabei verändert und was davon wirkt in die Automatisierungstechnik?

Mit den neuen Anwendungen und Geschäftsmodellen tauchen jedes Jahr hunderte neue, digitale Produkte auf. Viele davon heute noch als Gadgets belächelt, haben einige doch das Zeug, in ein paar Jahren disruptiv zu wirken. Und alle sind sie programmiert – ausnahmslos. Angesichts dieser unglaublichen Markttransformation lohnt sich ein Blick auf das (Software-)Handwerk dahinter.

Alles fließt! Alles?

„Es vergeht kein Jahr, in dem nicht neue Programmiersprachen auftauchen“, erklärt Gerold Kerbleder, Productmanager Programmiersysteme bei Bachmann Electronic. „Und zumindest jedes zweite oder dritte Jahr sind welche dabei, denen „ultimative Zukunftsrelevanz“ attestiert wird. Schon die Namen klingen wie Verheißungen: Go, Ruby, Elixir, Kotlin …“ Man könnte annehmen, dass die verwendete Technologie mit jeder Welle der Digitalisierung komplett erneuert wird? „Weit gefehlt! Es hält sich, was gut zur Lösung einer Aufgabe geeignet ist“, so Kerbleder weiter, „und natürlich das, was die Leute schon beherrschen.“

Gutes hält sich

Im monatlich von Tiobe aktualisierten Index der wichtigsten Programmiersprachen haben seit Jahren die Klassiker wie C, C++ und Java die Nase vorn (Letztere wieder verstärkt, wegen vieler Android-Apps). Danach kommen C# und JavaScript (alles, was im Web/Browser passiert). Das gute alte „C“ ist sogar als „Fastest Growing Language 2018“ neben der Sprache Kotlin co-nominiert. Es sind also die bewährten Technologien, die hinter den neuen Lifestyle-Gadgets, den disruptiven Geschäftsmodellen und dem IoT stehen.

Und wie sieht es in der industriellen Automation aus? „Nicht viel anders: Der Klassiker IEC 61131-3 hat mit rund 80 Prozent Durchdringung die Nase konstant weit vorn. Als Nummer 2 folgt C und dahinter C++ sowie modellbasierte Entwicklung mit Matlab/Simulink auf Platz 3 und 4 in unserer Anwendungsstatistik“, meint Kerbleder. Ganze 83 Prozent der Befragten, in der aktuellen Rothhöft-Marktstudie SPS-Systeme 2018, sehen auch in Zukunft die IEC 61131-Sprachen als die zentrale Umsetzungstechnologie.

Warum IEC 61131-3?

Die klaren Vorteile, die der IEC 61131-3 zum Durchbruch verhalfen und diese an der Spitze halten, sind einfach zusammenzufassen: „Ganz vorne steht die Sicherheit – es gilt vor allem, potenzielle Fehler von vornherein zu verhindern. Mit statisch alloziertem Speicher, weitgehendem Verzicht auf Pointer-Arithmetik und überwiegend streng zyklischer Bearbeitung wird Robustheit von der ersten Zeile an gefördert“, sagt Kerbleder, „und an zweiter Stelle kommt die Effektivität der 61131-Sprachen: Sie sind genau dafür geschaffen worden, dass auch Ingenieure ohne abgeschlossenem Informatikstudium sehr schnell, robust und vor allem nachvollziehbar, die an sie gestellten Aufgaben umsetzen können.“

Drittens muss natürlich eine Sprache für SPS und Embedded Automation dafür geeignet sein, harte Echtzeit zu gewährleisten. Da sind Interpretersprachen schon ganz allgemein mit Vorsicht zu betrachten, solche mit Garbage-Collection wie C# oder Java aber natürlich ganz besonders.

Der mit Abstand größte Anteil an Quellcode in der Automatisierung entsteht nach wie vor in Structured Text (ST), einer prozeduralen Hochsprache, die ein wenig an Pascal erinnert. Und dann sind da noch die grafischen Sprachen FBD, CFC und SFC: Sie werden dort eingesetzt, wo neben Berufssoftwerkern auch andere Personengruppen einen Quellcode lesen und verstehen können müssen, also beispielsweise Inbetriebsetzer, Servicetechniker, Verfahrensspezialisten oder Safety-Auditoren. Der Nutzungsanteil ist kleiner als jener von ST, aber über die Jahre konstant.

Worauf kommt es an?

Was heute viel mehr über Effizienz und Erfolg entscheidet als die reine Sprachsyntax, ist die Professionalität der umgebenden Software-Infrastruktur. „Und da hat sich viel getan“, so Kerbleder. „Alleine die Effizienz eines modernen Editors, der einem alle Symbole, Strukturen, verfügbare Funktionen und Optionen kontextabhängig, quasi am Präsentierteller hinhält, unterstützt den Entwickler immens. Statt mühsamer Fehlersuche bewerben die vom „Validator” vorgeschlagenen „QuickFixes” fertige Lösungen für alle Tipp- und Programmiermängel – nur einen Mausklick entfernt“.

Wichtig ist, dass die Engineering-Kette die wahren Errungenschaften der allgemeinen IT und Informatik unterstützt: „Wir bieten heute schon für alle Sprachen einen hochwertigen Anschluss an Repository-Systeme wie SVN oder GIT. Das braucht man nicht nur für Versionsverwaltung. Ganz generell wäre die Kooperation größerer Entwicklerteams ohne diese Technologie nicht denkbar“, erklärt Kerbleder, und weiter: „Auch „Continuous Delivery“ mit „Daily Builds” und „Test Driven Development”, sind in Zukunft auch für die SPS-Welt notwendig! Diese Technologien sind bei uns schon in der Software angekommen, auch für die IEC 61131-3. Inklusive Multi-Threading und MultiCore“.

Klartext!

Will man die Sprachdiskussion von der Nutzenseite betrachten, so lässt sich festhalten: Gut funktioniert, was gut zur Aufgabe passt. Mit dem Spektrum von IEC 61131-3 über C/C++ bis Simulink hat man den Werkzeugkasten für alle Aufgaben, die in der Industrieautomation wirklich relevant sind – samt Industrie 4.0, IoT und Cloud. Man tut sich nichts Gutes, wenn in jedem Projekt nochmal eine andere Technologie dazu kommt. Was neben der Sprache noch viel stärker zählt, ist die Effizienz der Toolchain und die Infrastruktur am Zielsystem.

Bildergalerie

  • Mit der grafischen Programmiersprache CFC lassen sich Aufgabenstellungen komfortabel lösen. Kontextsensitive Informationen werden direkt im Funktionsblockdiagramm angezeigt – für Entwickler eine große Erleichterung.

    Mit der grafischen Programmiersprache CFC lassen sich Aufgabenstellungen komfortabel lösen. Kontextsensitive Informationen werden direkt im Funktionsblockdiagramm angezeigt – für Entwickler eine große Erleichterung.

    Bild: Bachmann

Firmen zu diesem Artikel
Verwandte Artikel