Kunden Login

UserPasswort

schliessen
Bachmann Specials

schliessen

schliessen
Stichwortsuche

schliessen
09.07.2020 | Neuigkeiten

Die Zukunft der IEC 61131-3

Feldkirch, Österreich - 09. Juli, 2020

Wir schreiben das Jahr 2020. Händeringend wird in den USA nach Entwicklern gesucht, die COBOL beherrschen. Diese Sprache wurde vor über 60 Jahren für betriebswirtschaftliche Problemstellungen ins Leben gerufen. Auch heute noch sind 40 Prozent der Systeme im Finanzwesen in COBOL programmiert, unter anderem auch das Computersystem zur Erfassung der Arbeitslosenversicherung. Zur Wartung dieser Systeme braucht man Entwickler mit diesem Spezialwissen. Auch IEC 61131-3-Programmierer mit dem Wissen und der nötigen Erfahrung zu finden, wird immer schwieriger, obwohl die Programmierung relativ einfach und intuitiv ist.


Application Developer: Einfaches Verknüpfen der Komponenten untereinander, mit Hardware-Signalen und mit Variablen

Mit der Einführung der Norm IEC 61131-3 im Jahr 1994 wurde damals die DIN19239 abgelöst. Sie ist die einzige weltweit gültige Norm, welche Sprachen zur SPS-Programmierung definiert. Die fünf Sprachen haben unterschiedliche Anwendungsziele und kommen einzeln oder in beliebiger Kombination bei der Automatisierung von Maschinen und ganzen Anlagen zum Einsatz. Durch die neue Generation von Engineering-Werkzeugen können nun die ursprünglichen Stärken der Sprachen mit modernsten Entwicklungs-Workflows kombiniert werden. Dies ermöglicht die Umsetzung herausfordernder Applikationen bei hohem Komfort und Sicherheit für den Programmierer.

Höchste Anforderungen an die Applikation

Neben der harten Echtzeitfähigkeit werden bei Applikationen in der Automatisierungstechnik immer kürzere Taktzyklen gefordert, wobei die automatisierten Anlagen oft Jahrzehnte lang ohne Unterbrechung laufen müssen. Die Architektur der IEC 61131-3 zielt voll auf Robustheit ab und die bereitgestellte Syntax der Textbefehle oder Grafikformen ist besonders einfach verständlich. Somit können auch ungelernte Programmierer wie Verfahrenstechniker oder Elektriker in einer für sie geeigneten Sprache eine Automatisierung bewerkstelligen.

Effizienz um jeden Preis

Egal ob Serienmaschine mit Zusatzoptionen oder Einzelanfertigung, die Automatisierer haben damit zu kämpfen, dass die Modularität bei der Hardware vorangetrieben wurde, aber für den schnell gewachsenen Bereich der Software oft noch hinterherhinkt. Dies führt zu einem hohen Druck auf das Engineering, wo ebenfalls gerne auf einen Baukasten mit vorgefertigten Funktionsmodulen zurückgegriffen werden würde, um daraus die Gesamtapplikation zusammenzustellen. Auf Code-Ebene wird das von der IEC 61131-3 von jeher unterstützt. Hierbei erfordert aber jede Änderung an der Logik eine erneute Kompilierung in einem Entwicklungswerkzeug und auch einen kompletten Funktionstest der Applikation. Dies bedeutet eine lange Engineering-Zeit und somit auch hohe Gesamtkosten. Je nach Plattform kann sich der Entwickler bei der Umsetzung einer Applikationsaufgabe zwischen verschiedenen Programmiersprachen entscheiden. Dabei spielen bei der Auswahl neben der Echtzeitfähigkeit, der Performance bei der Ausführung und der Flexibilität oft auch die zur Verfügung stehenden Bibliotheken eine entscheidende Rolle.

Knowhow-Schutz vs. Diagnostizierbarkeit

Dazu kommen neue Anforderungen aus der IT-Welt, die bisher eine untergeordnete Rolle gespielt haben, da Maschinen und Anlagen größtenteils nicht mit einem Internetzugang ausgestattet waren. Heute will der Betreiber zu jeder Zeit und von jedem Ort aus Zugriff auf die Prozessdaten haben sowie alle Zustände überwachen können. Für eine rasche Diagnose musste bisher zumeist der gesamte Quellcode auf dem Automatisierungssystem ablegt werden, nur um im Störfall ein paar Signalpfade nachzuvollziehen. Daraus ergeben sich große Angriffsflächen für den illegalen Zugriff auf die Maschine oder den Verlust wertvollen Know-hows in Form von Applikationslogik.

Modulares Baukastensystem

Mit einem modularen Ansatz lassen sich die vielseitigen Herausforderungen in handhabbare Teilaufgaben zerlegen. Dabei kann eine Basisapplikation um diverse Bausteine ergänzt werden, ohne eine erneute Kompilierung und die damit verbundenen Tests durchführen zu müssen. Die einzelnen Funktionserweiterungen können einer separaten Entwicklung, Produktion und Verifikation unterliegen. Klar definierte Eingangs- und Ausgangsschnittstellen ermöglichen einen unabhängigen Funktionstest und die Integration in eine Gesamtapplikation. Unumstritten ist, dass die IEC 61131-3 mit einer kompletten Laufzeitumgebung, dem zugehörigen Hardware-Prozessabbild und den vorhandenen Bibliotheken den kürzesten Weg zu einer lauffähigen Applikation bietet. Um auch auf die Vorzüge anderer Sprachen nicht verzichten zu müssen, kann man diese als vorkompilierte Bibliothek in eine IEC 61131-3-Applikation einbinden. Komplette Applikationen, welche in unterschiedlichen Sprachen programmiert wurden, können über definierte Variablenservices Daten miteinander austauschen.

Applikationslogik in der Visualisierung

Die Betriebsvisualisierung bietet einen Überblick über die gesamte Maschine. Treten Fehler auf, wird angezeigt, welcher Maschinenteil von der Störung betroffen ist. Wenn die Anlage steht und der Fehlercode zu wenig Informationen für eine Behebung liefert, dann hilft oft ein Blick in die Applikationslogik, um beispielsweise das Fehlen eines Freigabesignals feststellen zu können. Das dafür notwendige Ablegen des gesamten Quellcodes auf der Steuerung bedeutet bekannterweise ein hohes Sicherheitsrisiko. Zeit- und kostenintensive Service-Einsätze ließen sich vermeiden, wenn ausgewählte Applikationsteile und zugehörige Signale als Grafikelemente in die Betriebsvisualisierung eingebettet werden könnten. Gleichzeitig bleibt der technologische Vorsprung durch den Schutz des Know-hows weitestgehend gewahrt.

Komponentenbasiertes Engineering

Das SolutionCenter ist das einzige All-in-One-Engineering-Werkzeug von Bachmann electronic. Darin enthalten ist auch das Component Manager Framework, mit dem ein modularer Aufbau bis auf Applikationsebene möglich ist. Jede Komponente läuft als eigenständige Applikation und kommuniziert mit anderen Komponenten über eine Variablenschnittstelle, welche über eine Beschreibungssprache definiert wird. Die Implementierungssprache kann auch erst im Nachgang in Abstimmung mit der Aufgabe der Komponente festgelegt werden. Somit ist auch die Vergabe der Umsetzung der Komponente an externe Dienstleister einfach möglich. Der Code-Generator übernimmt die Erstellung des sogenannten Boiler-Plate-Codes und der Programmierer kann sich voll und ganz auf die Business-Logik konzentrieren. Aufgrund der definierten Schnittstelle kann das Verhalten der einzelnen Komponenten direkt auf der Steuerung mittels Komponententest-Framework verifiziert werden. Das Verschalten der Komponenten zu einer Gesamtapplikation erfolgt anschließend rein über Konfiguration. Zur Analyse und Diagnose kann man sich mittels Entwicklungswerkzeug auf die laufenden Komponenten verbinden und diese auch gleichzeitig debuggen.

Einsparung bei manuellen Arbeitsschritten

Da das manuelle Ausführen sich wiederholender Engineering-Arbeitsschritte Zeit kostet und Fehler begünstigt, werden diese Abläufe gerne automatisiert. Umfangreiche Bibliotheken stellen Funktionen zur Verfügung, mit welchen Applikationsprogramme aus einer Datenbank generiert und komplette Integrationstests vollautomatisch ausgeführt werden können. Der Start erfolgt entweder per Knopfdruck oder automatisiert auf dem Buildserver. Damit möglichst viele Arbeitsabläufe automatisiert werden können, wurde das Scripting-Framework im SolutionCenter um zahlreiche Bachmann-spezifische Funktionen erweitert.

Voll integrierte Editoren

Bei der Programmierung hat Bachmann auf die volle Integration gesetzt. Im SolutionCenter werden neben den Konfigurations- und Diagnosewerkzeugen auch die Programmier- und Debug-Umgebungen für die verschiedenen Sprachen angeboten. Somit ist es möglich, die Konfigurationen zusammen mit dem Quellcode im Versionskontrollsystem GIT oder SVN zu verwalten. Unabhängig von der Programmiersprache werden dem Programmierer in den Editoren verschiedenste Features geboten, welche das Arbeiten erleichtern und die Effizienz steigern. Dies sind die Syntaxhervorhebung, die kontextsensitive Code-Vervollständigung, die benutzerdefinierten Code-Vorlagen und die Schnellkorrekturen für die Behebung häufig auftretender Probleme. Das umfangreiche Debug-Framework erlaubt dem Anwender, mehrere Applikationen und Bibliotheken parallel auf der gleichen Steuerung zu prüfen.

Generierte Visualisierungen

Mit PLC Insight bringt Bachmann die Überwachung der zentralen Applikationsteile in die Visualisierung. Beim Erstellen der Applikation werden dabei aus ausgewählten, funktionsblockbasierten SPS-Bausteinen der Sprache CFC (Continuous Function Chart) Visualisierungsseiten generiert, welche in eine bestehende Visualisierung eingebettet werden können. Alternativ kann sich der Anwender auch eine komplett eigenständige, web-basierte Visualisierung (M1 webMI pro) erstellen lassen. Der Quellcode wird als Funktionsblockdiagramm inklusive aller für einen Zugriff freigegebenen Variablenwerte dargestellt. Auch neue Sollwerte können direkt über die Visualisierung vorgegeben werden. Um die Zusammenhänge besser verstehen zu können, werden Zusatzinformationen in Form von Tooltips beim Hovern über die Funktions- und Variablenblöcke eingeblendet. Die integrierte Zoom-Funktion hilft, bei großen Programmen den Durchblick zu behalten.

IEC 61131-3 ist nicht wegzudenken

Kaum eine Sprache hält sich am Markt so lange und hat eine derart große Verbreitung wie die IEC 61131-3. Der Markt der Industrieautomation wächst stetig und die großen Automatisierungshersteller setzen weiterhin auf diese Norm. Moderne Editoren verleihen der Programmierung nach IEC 61131-3 einen frischen Touch. Das erleichtert den Umstieg für eingefleischte Programmierer der Sprachen Java, C# oder Python. Zudem wird die Effizienz im Engineering durch die Integration von Prinzipien aus der modernen Software-Entwicklung enorm gesteigert, ohne dabei auf die hohe Zuverlässigkeit einer echtzeitfähigen SPS-Laufzeit verzichten zu müssen. Deshalb kann man davon ausgehen, dass die IEC 61131-3 bei der Programmierung von hochverfügbaren Automatisierungssystemen noch lange zum Einsatz kommen wird. Überdies: Im Vergleich zum Lebenszyklus von COBOL hat die IEC 61131-3 ja noch nicht einmal Halbzeit!

 

Das Bachmann SolutionCenter: https://www.bachmann.info/produkte/engineering-software/solutioncenter/