Allgemein

IEC 61131: Das Ende vom Anfang einer agilen Ära der Automatisierung!?

IEC 61131 im Wandel der Zeit

Die IEC 61131 Norm, einst Pionier und Enabler in der industriellen Automatisierung, steht heute mehr denn je an einem Wendepunkt. In der Branche der Automatisierungstechnik ergeben sich neue Herausforderungen. Die Grenzen der IEC 61131 treten zunehmend in den Vordergrund, angesichts des rasanten Voranschreitens künstlicher Intelligenz, Cloud-Technologien, des Industrial Internet of Things (IIoT) und agiler Methoden in der Softwareentwicklung.

Die IEC 61131 wurde ursprünglich entwickelt, um einheitliche Standards für die Programmierung von PLCs (Programmable Logic Controllers) zu setzen und bot gleichzeitig eine solide Grundlage für die Automatisierung komplexer industrieller Prozesse. Sie löste das Problem der Fragmentierung und Inkompatibilität in Automatisierungssystemen, indem sie eine gemeinsame Sprache und Methodik für verschiedene Systeme und Anwendungen bereitstellte.

Zu ihrer Entstehungszeit in den frühen 90er Jahren war die Hauptaufgabe der IEC 61131, eine standardisierte, zuverlässige und vorhersehbare Umgebung für die Automatisierungstechnik zu schaffen. Diese Zuverlässigkeit und Vorhersehbarkeit sind zwar immer noch wichtig, doch die technologische Landschaft hat sich zwischenzeitlich erheblich gewandelt. Die heutigen Herausforderungen liegen weniger in der Schaffung einer einheitlichen Grundlage, sondern vielmehr in der Integration neuer, flexibler Technologien und Methoden, die über die Grenzen der traditionellen Automatisierung hinausgehen.

Heute birgt die IEC 61131 Herausforderungen wie starre Strukturen und begrenzte Flexibilität, die durch ihre ursprünglichen Stärken hervorgerufen werden. Dies steht im Kontrast zu den Anforderungen moderner Softwareentwicklung, die Modularität, Skalierbarkeit und eine nahtlose Integration mit Cloud-Diensten und IIoT-Komponenten verlangen. Die Norm, einst ein Symbol für Fortschritt und Effizienz, riskiert nun, zum Hemmschuh für Innovation und Anpassungsfähigkeit in einer sich schnell verändernden technologischen Welt zu werden.

Dieser Artikel beleuchtet diese Herausforderungen und zeigt auf, wie moderne Software-Praktiken die IEC 61131 ergänzen und weiterentwickeln können, um die Automatisierungstechnik zukunftsfähig zu machen.

Skalierbarkeit durch Modularität: Grenzen der IEC 61131-3

Die IEC 61131-3, ein zentraler Bestandteil der IEC 61131-Norm, spezifiziert die Programmiersprachen und Strukturen für die Programmierung von programmierbaren Logikcontrollern (PLCs). Sie umfasst Sprachen wie Ladder Logic, Structured Text und Function Block Diagrams, die alle auf die Bedürfnisse der industriellen Steuerungstechnik zugeschnitten sind.

IEC 61131-3 konzentriert sich darauf, eine standardisierte und zuverlässige Methodik für die Entwicklung von Steuerungssoftware zu bieten. Diese Spezialisierung ermöglicht zwar eine effiziente und zielgerichtete Programmierung für Automatisierungsaufgaben, legt jedoch gleichzeitig die Grenzen in Bezug auf Modularität und Skalierbarkeit fest.

Die Modularität innerhalb der IEC 61131-3 ist primär auf Steuerungsaufgaben ausgerichtet. Dies bedeutet, dass die erstellten Module oft eng mit spezifischen Steuerungsprozessen und -systemen verbunden sind. Ihre Verwendung in anderen Kontexten oder in einer breiteren Softwarearchitektur ist daher limitiert. Ebenso limitiert ist der Einsatz bei Serienprodukten, bei denen die Software heute eine Teilinstanz steuert und im nächsten Projekt mehrere Instanzen. Ohne Softwareanpassungen in der IEC wäre dieser Use Case nur sehr schwer umsetzbar. Diese Ausrichtung steht im Kontrast zu modernen Softwareentwicklungsprinzipien, die eine weitreichende Modularität und Skalierbarkeit von Code über verschiedene Projekte und Systeme hinweg bevorzugen.

Ein weiteres Kernproblem ist die enge Hardwarebindung der IEC 61131-3. Die erstellten Programme sind oft stark an spezifische PLC-Hardware und deren Eigenschaften gekoppelt. Dies begrenzt ihre Übertragbarkeit auf andere Plattformen oder ihre Integration in moderne IT-Infrastrukturen, die zunehmend auf Flexibilität und Hardwareunabhängigkeit setzen.

In der heutigen schnelllebigen Technologiewelt ist Flexibilität ein Schlüsselwort. Softwarelösungen, die unabhängig von spezifischer Hardware funktionieren und sich nahtlos in verschiedene Systemumgebungen integrieren lassen, sind gefragt. Hier bieten hardwareunabhängige Softwarelösungen eine Alternative. Sie ermöglichen die Wiederverwendung und Modularität über die Grenzen der spezifischen Steuerungstechnik hinaus und eröffnen neue Möglichkeiten in der Automatisierungstechnik. Diese Flexibilität ist entscheidend, um die Automatisierungstechnik für die Herausforderungen von morgen zu rüsten und innovative Lösungen zu ermöglichen, die über traditionelle Steuerungsaufgaben hinausgehen.

Sprachvielfalt und Flexibilität

Die Programmiersprachen der IEC 61131 wie Ladder Logic, Structured Text und Function Block Diagrams, sind speziell für die Steuerungstechnik und Automatisierungsaufgaben konzipiert. Diese Spezialisierung begrenzt jedoch ihre Flexibilität und Anpassungsfähigkeit, besonders wenn es um komplexere oder unkonventionelle Programmieraufgaben geht.

Vorteile moderner Programmiersprachen

Moderne Programmiersprachen wie C++, Python oder JavaScript bieten eine breitere Palette an Möglichkeiten und eine größere Ausdruckskraft. Zum Beispiel:

  • Komplexe Datenverarbeitung: In IEC 61131 Sprachen kann die Verarbeitung komplexer Datenstrukturen oder Algorithmen umständlich sein. C++ hingegen bietet erweiterte Funktionen für die Verarbeitung komplexer Datenstrukturen, wie dynamische Speicherverwaltung und Objektorientierung, was eine effizientere und flexiblere Datenhandhabung ermöglicht.
  • Kontinuierliche Weiterentwicklung: Während sich die IEC 61131 in den letzten zehn Jahren nicht weiterentwickelt hat, begegnen wir in anderen Hochsprachen einem Prozess der kontinuierlichen Weiterentwicklung. [Siehe C++11, C++14, C++17, C++20, C++23 oder EcmaScript4-6]
  • Lebendes Ecosystem: Jede Programmiersprache lebt von ihren Nutzern und den Projekten, die sie mit der Sprache umsetzen. Während Beckhoff und Co. eine gute Sammlung an hilfreichen Softwarebibliotheken anbieten, verblassen diese Anbieter dennoch gegen die schier unendliche Zahl an Bibliotheken und Tools, die für Sprachen wie C/C++ größtenteils sogar kostenlos zur Verfügung stehen.

Flexibilität moderner Sprachen

Neben der erweiterten Ausdruckskraft bieten moderne Programmiersprachen auch eine höhere Flexibilität in Bezug auf Schnittstellen und die Verfügbarkeit von Tools. Sie unterstützen eine Vielzahl von Bibliotheken und Frameworks, die die Entwicklung beschleunigen und vereinfachen. Außerdem erleichtern sie die Einbindung von Datenbanken, Cloud-Dienste oder IoT-Geräten, was mit IEC 61131 Sprachen oft nicht direkt möglich ist.

Die Integration moderner Programmiersprachen in Automatisierungssysteme ermöglicht es Unternehmen, die Kluft zwischen traditioneller Steuerungstechnik und den aktuellen Anforderungen zu überbrücken. Durch diese Modernisierung können Unternehmen ihre Effizienz erhöhen, Anpassungsfähigkeit steigern und eine nahtlose Integration in bestehende und zukünftige IT-Infrastrukturen erreichen. Die Zusammenarbeit mit Software-Startups bietet dabei einen Weg, um Innovationspartner zu schaffen und den Änderungsprozess zu unterstützen.

Testbarkeit und Wartbarkeit

Die langfristige Zuverlässigkeit und Wartbarkeit von Software sind entscheidend für deren Lebensdauer und Qualität. In diesem Kontext stellt die IEC 61131 spezifische Herausforderungen, die die Implementierung moderner Test- und Wartungsstrategien erschweren.

IEC 61131Moderne Softwareentwicklung
Eingeschränkte Testmöglichkeiten: Die Programmiersprachen und Umgebungen der IEC 61131-3 sind nicht primär für Testautomatisierung konzipiert. Dies erschwert die Implementierung von Unit-Tests oder Integrationstests, die in modernen Softwareentwicklungsprozessen üblich sind.Weitreichende Testmöglichkeiten: Moderne Softwareentwicklungsumgebungen bieten umfassende Testfunktionen. Sie sind für die Integration von Unit- und Integrationstests optimiert, was für die Qualitätssicherung unerlässlich ist. Diese fortschrittlichen Testmethoden geben nicht nur Sicherheit bei Änderungen am Code. Sie ermöglichen es, Softwarefehler frühzeitig zu erkennen und zu beheben, wodurch die Stabilität und Zuverlässigkeit von Anwendungen signifikant verbessert wird.
Fehlende Integration in CI/CD-Pipelines: Continuous Integration und Continuous Deployment (CI/CD) sind Schlüsselkomponenten in der modernen Softwareentwicklung. Die IEC 61131 bietet keine native Unterstützung für solche Prozesse, was die kontinuierliche Entwicklung und Auslieferung von Softwareupdates komplizierter macht.CI/CD-Integration: Die Implementierung von CI/CD-Pipelines ermöglicht schnelle Iterationen und stetige Verbesserungen der Software, wodurch die Reaktionsfähigkeit auf Veränderungen und Anforderungen erhöht wird.
Aufwändige Inbetriebnahme: Durch ständiges Implementieren an der Maschine anstatt vorbereitete Entwicklung mit einer Simulation.
Schwierige Wartung: Aufgrund der engen Kopplung von Software an spezifische Hardware und der begrenzten Modularität kann die Wartung und Anpassung von IEC 61131-basierten Systemen zeitaufwändig und komplex sein.
Einfache Wartung und Updates: Durch die Verwendung moderner, modularer und hardwareunabhängiger Softwarearchitekturen wird die Wartung und Aktualisierung von Systemen vereinfacht. Die Wartung kann remote erfolgen und durch Simulation getestet werden.

Testautomatisierung und Wartbarkeit von Software gelten bereits seit vielen Jahren als Grundvoraussetzung einer gesunden Code Basis. Die Integration von automatisierten Tests und verbesserte Wartungsmethoden ermöglichen es kontinuierlich den Zustand des Systems zu erfassen, was letztlich auch zu robusteren und zuverlässigen Automatisierungssystemen führt. 

Integration und Benutzerfreundlichkeit

Die Herausforderung, Systeme, die auf der IEC 61131-Norm basieren, mit modernen IT-Technologien zu integrieren, ist teilweise beträchtlich. Dies liegt sowohl an technischen als auch an benutzerorientierten Aspekten.

Integrationsschwierigkeiten

Die Schwierigkeiten bei der Integration von IEC 61131-Systemen in moderne IT-Landschaften ergeben sich aus mehreren Gründen:

  • Spezialisierte Kommunikationsprotokolle: IEC 61131-Systeme nutzen oft spezialisierte, für die Automatisierungstechnik entwickelte Kommunikationsprotokolle, die nicht nahtlos mit allgemeinen IT-Protokollen und -Standards kompatibel sind. Dies erschwert die direkte Integration mit Systemen, die auf gängigen Internet- und Netzwerkprotokollen basieren.
  • Begrenzte Schnittstellen: Viele IEC 61131-basierte Systeme bieten begrenzte Schnittstellen für die Anbindung an externe Software oder Dienste. Moderne IT-Systeme benötigen flexible und erweiterbare Schnittstellen, um mit Hilfe von APIs, Bibliotheken und Frameworks für schnelle Entwicklungszyklen und ein hohes Maß an Interoperabilität zu sorgen.  

Überall  IDEs

Über die Sinnhaftigkeit einer guten Entwicklungsumgebung braucht man sich nicht streiten, sie hilft und vereinfacht bei der Entwicklung von Software. Sie sollte aber keine Notwendigkeit sein. Schon gar nicht sollte die IDE das einzige Tool in einem Fundus von Anwendungen sein, die beim Erstellen Ihrer Software behilflich ist. Compiler, Parser, Preprocessors, Linter und so weiter sind viele einzelne Teilprogramme, auf die eine IDE zurückgreift und anwendet. Außerhalb der IDE können diese Anwendungen frei in Skripten genutzt werden, um mehr aus der Anwendung zu holen, als Ihre Erfinder ursprünglich im Sinn hatten. Nicht aber bei der Umsetzung der IEC61131. Hier gibt es eine IDE, keine Teilprogramme, kein Spielraum und auch kein Spielfeld, um sich auszutoben. Alles was einem zur Verfügung steht ist die IDE.

Ebenfalls spiegelt diese Aufteilung von Aufgaben im Entwicklungsprozess, die hier den einzelnen Anwendung zufallen, die Offenheit der Sprachlichen Spezifikation zu. Nehmen wir zum Beispiel C++: Schreiben Sie ein Programm, können Sie den GNU Compiler oder aber den Clang Compiler als freie Varianten nutzen. Microsoft bietet mit Microsoft Visual C++ einen kommerziellen Compiler an. Egal welchen Compiler sie nutzen, Ihre Anwendung wird übersetzt. Nicht so die Anwendungen der IEC61131. Eine Anwendung aus TwinCAT bekommen Sie nicht in die TiAPortal IDE und umgekehrt. Was bringt Ihnen also einen Standardisierung, wenn diese nicht angewendet wird?

Der Weg nach vorn

Die IEC 61131 hat zweifellos die industrielle Automatisierung maßgeblich geprägt, doch in der rasant fortschreitenden technologischen Welt werden ihre Grenzen immer deutlicher. Welche Implikationen hat es, wenn man die Norm nicht mehr anwendet? Auf was muss man sich vorbereiten, was folgt an Herausforderungen, wenn die Möglichkeiten der modernen Softwareentwicklung den bestehenden Entwicklungsprozess ersetzen sollen?

Mögliche Nachteile einer Abkehr von der Norm

  • Mehr Verantwortung des Entwicklers: Während die IEC sich um Belange wie die Speicherverwaltung und grob gesagt um den determinismus ihrer Anwendung kümmert, fällt diese Aufgabe von nun an in Ihre Hände. Speicherverwaltung und Berechenbarkeit der Anwendung setzen mehr Wissen um die Hintergründe des Betriebssystems und der Zielhardware voraus.
  • Mehr Entwicklungsaufwand: Softwaretests, Integrationstests sowie Simulationen sind im wesentlichen Zusatzaufgaben, die zwar die Qualität ihrer Software erhöhen. Sie sind aber vor allem auch ein Mehraufwand, der im harten Preiskampf zwischen Anbietern immer eine Rolle spielt.
  • Schulungs- und Umschulungsbedarf: Die Einführung neuer Technologien und Methoden erfordert oft zusätzliche Schulungen für das Entwicklungsteam, was zu anfänglichen Kosten und Zeitaufwand führen kann.

Der Wechsel zu modernen Softwaremethoden

Der Übergang von der IEC 61131 zu modernen Softwaremethoden kann durch folgende Schritte erleichtert werden:

  • Evaluierung der bestehenden Systeme: Eine gründliche Bewertung der bestehenden IEC 61131-basierten Systeme ist entscheidend, um zu verstehen, wo und wie moderne Softwarepraktiken implementiert werden können.
  • Einführung moderner Programmiersprachen: Die Integration moderner Programmiersprachen in bestehende Systeme kann schrittweise erfolgen. Dabei wird zunächst der Teil der Systeme, der am meisten von erweiterten Funktionen profitieren würde, auf moderne Sprachen umgestellt.
  • Nutzung von Schnittstellen und APIs: Die Entwicklung oder Integration von Schnittstellen und APIs, die eine reibungslose Kommunikation zwischen dem bestehenden IEC 61131-System und neuen Softwarekomponenten ermöglichen, ist ein wesentlicher Schritt.
  • Planung und Strategieentwicklung: Zunächst muss eine klare Strategie für den Übergang entwickelt werden, die sowohl die technischen als auch die geschäftlichen Aspekte berücksichtigt.
  • Partnerschaften mit Software-Startups: Die Zusammenarbeit mit Software-Startups, die sich auf moderne Softwarelösungen spezialisiert haben, kann den Übergang erleichtern. Sie bringen frische Perspektiven und Expertise in moderne Technologien mit.
  • Schrittweise Integration: Der Prozess sollte schrittweise erfolgen, um die Risiken zu minimieren und die Kontinuität der Betriebsabläufe zu gewährleisten.

In einer Welt, die sich rasant entwickelt, ist es Zeit, die Fesseln der IEC 61131 zu sprengen und mutig den Weg für innovative Software-Praktiken zu ebnen, die unsere Automatisierungstechnik in das nächste Zeitalter führen. Unternehmen, die ihre Systeme zukunftsfähig machen, eröffnen sich durch die Integration moderner Software-Praktiken riesige Möglichkeiten.