A A A
| Sitemap | Kontakt | Impressum | Datenschutz
ETZ Logo VDE Verlag Logo

Komponentenorientierte Applikationsentwicklung

01  Statt einer monolithischen Applikation autonome Komponenten, die über eine gemeinsame Schnittstelle kommunizieren

01  Statt einer monolithischen Applikation autonome Komponenten, die über eine gemeinsame Schnittstelle kommunizieren

02  Links: Grundlegender Ablauf der Applikationserstellung, rechts: die Bausteine des Component-Manager im Engineering-Tool

02  Links: Grundlegender Ablauf der Applikationserstellung, rechts: die Bausteine des Component-Manager im Engineering-Tool

Beim Engineering einer Maschine gilt es, durch die sinnvolle Entkopplung der zu automatisierenden Teilsysteme die Komplexität des Gesamtsystems zu reduzieren. Gleichzeitig ist es wichtig, die meist zu berücksichtigende Variantenvielfalt geschickt in der Softwarestruktur abzubilden. Durch die Komponentenorientierung in seinem Engineering-Tool unterstützt Bachmann Entwickler in ihrer Arbeit und darin, Zeit und Kosten zu sparen.

Reale Maschinen oder Anlagen bestehen aus einer Vielzahl von Teilsystemen, die sich nach unterschiedlichen Kriterien gliedern lassen. Eine mögliche Strukturierung könnte wie folgt geschehen:
∙ nach ihrer räumlichen Zuordnung (Schaltschrank x, ­Verteilerkasten y usw.),
∙ nach der Zugehörigkeit zu einem bestimmten Gewerk, zum Beispiel Mechanik, Elektrotechnik, Verfahrenstechnik oder Automatisierung,
∙ nach den Grundfunktionen der Automatisierungslösung, wie Sensorik, Aktorik oder Bearbeitung oder
∙ nach der Funktion bezogen auf den technischen Prozess, beispielsweise Zuführen, Vorbehandeln oder Bearbeiten.
Die Gliederung in Teilsysteme ist dabei in mehrerlei Hinsicht sinnvoll und notwendig. So lassen sich die einzelnen Teilsysteme logisch voneinander entkoppeln, der Entwickler kann die Komplexität des Gesamtsystems außer Acht lassen und sich auf die reduzierte Komplexität des Teilsystems und dessen Schnittstelle konzentrieren.

Konsequente Gliederung reduziert Aufwand
Im Weiteren lassen sich solche Teilsysteme auch in (Produkt-)Module im Sinne von Liefervarianten, Zusatzoptionen oder frei kombinierbaren Grundfunktionen gliedern. Diese Module können in unterschiedlichen Grundtypen von Maschinen wiederkehrend vorkommen, sodass eine Vereinheitlichung auf ein einzelnes (Produkt-)Modul wünschenswert wäre: Als „mechatronische Komponente“ beschreibt dieses einen abgrenzbaren Systemteil, mit einer definierten Funktion basierend auf den Leistungen aller Gewerke, also Mechanik, Elektrik, Verfahrenstechnik, Automatisierung usw., und den Arbeitsergebnissen aller Disziplinen, wie mechanischer Aufbau, Verkabelung, Schaltschrank, IO-Module, Programmierung, Elektrodokumentation, Betriebsanleitung und Serviceanleitung. Der Begriff der „mechatronischen Komponente“ ist jedoch umfassender zu verstehen. So fallen darunter auch Teilsysteme, die noch in Variationen vorkommen. Der Vorteil ist: Eine konsequente Gliederung in Teilfunktionen schafft eine sauberere Architektur und ermöglicht es, investierte Aufwände, zum ­Beispiel Entwicklung, Test, Dokumentation und Prozesserfahrung, so gut wie möglich wiederzuverwenden – im Idealfall vollständig ohne Veränderung.

Klassische Automatisierungslösungen versus Softwaremodule
In klassischen Automatisierungslösungen verschwindet diese Zerlegung in autonome Teilsysteme spätestens bei der Programmierung. Vielfach wird versucht, in einem einzelnen Hauptprogramm mit der Ausgliederung von Funktionalitäten in Bibliotheken alle Varianten abzudecken. Jede Änderung oder Erweiterung um eine Variante führt dabei jedoch unwiderruflich zu einer komplett veränderten und neu kompilierten Software und damit zu vielen Varianten des Hauptprogramms im Feld. Infolge dessen wird die Verifikation und Wartung aller bisherigen Varianten zunehmend zeitaufwendig und risikobehaftet. Außerdem gelingt es in der Regel nicht mehr, die Variationen ausreichend und übergreifend zu dokumentieren – mitunter ist dies reduziert auf Kommentare des Programmierers im Quellcode. Dadurch geht jedoch die Gesamtprozesssicht verloren.
Ein autonomes Softwaremodul hingegen kapselt seine Implementierungsdetails: Es wird vollständig durch seine definierten Schnittstellen und Eigenschaften beschrieben. Über die Schnittstellen erfolgt der Austausch von Daten bzw. Signalen zwischen den verschiedenen Modulen. Autonome Softwaremodule werden einzeln kompiliert, versioniert und getestet. Ihre Funktionen und Parameter werden über eine geeignete Konfigurationsschnittstelle zum Instanzierungszeitpunkt festgelegt und möglicherweise zur Laufzeit verändert. Solche autonomen Module können dann untereinander oder zum IO-System verschaltet werden, um die Gesamtfunktion eines automatisierungstechnischen ­Systems zu erstellen.

Komponentenorientierung
Für die Automatisierung lässt sich der zweistufige Prozess nun wie folgt beschreiben (Bild 1): Im ersten Schritt werden die Softwaremodule mit unterschiedlichen Eigenschaften, aber definierter Schnittstelle erstellt. Im zweiten erfolgt ihre Verschaltung und erst dadurch die eigentliche Applikationserstellung. Auf diese Weise wird eine an die ­automatisierungstechnische Problemstellung angepasste Vorgehensweise im Engineering von Maschinen und Anlagen möglich: Diese „mechatronischen Komponenten“ können in unterschied­lichen Programmiersprachen erstellt oder auch zugekauft, und in jedem Fall leicht wiederverwendet werden. So sind die eigentliche Realisierung der Funktionalität und ihre Anwendung in der Automatisierungslösung vollständig von­einander entkoppelt. Auf diese Weise können Systeme modular aufgebaut werden, sodass kundenspezifische Unterschiede, wie andere Modulkombinationen oder zusätzliche Module, ohne Modifikation und damit Test der Bestandssoftware erstellt und gewartet werden können.

Die Abbildung im Engineering-Tool
Eine „mechatronische Komponente“ abstrahiert ihren internen Aufbau und ist über ihre Schnittstellen (Signalaustausch, Konfiguration usw.) vollständig definiert. Mit dem Komponenten-Designer bietet Bachmann in seinem Engineering-Tool Solution Center (Bild 2) die Möglichkeit, diese Definitionen programmiersprachenunabhängig durchzuführen. Die entstehende Datei beschreibt die Komponente vollständig und stellt sämtliche zur Programmierung notwendigen Informationen, Dokumente und Beschreibungen zur Verfügung. Der Entwickler kann dabei wählen, in welcher Programmiersprache ein entsprechendes Temp­late zur Verfügung gestellt werden soll. Zurzeit stehen Vorlagen für den C/C++-Developer zur Verfügung.
Mit dem überarbeiten und vollständig in das Solution-Center integrierten PLC-Developer wird es nun möglich, Komponenten nach IEC 61131-3 zu erstellen. Dies verbindet moderne Unterstützung bei der Code-Erstellung, gewohnte Funktionalitäten im Debugging, wie die Anzeige aller Variablen im Code, Stepping oder Online-Change, mit der Stabilität und den Möglichkeiten der M1-Steuerungsplattform von Bachmann.
Ziel der Komponentenorientierung ist es, die Gesamtfunktion des automatisierungstechnischen Systems, die ­Applikation, durch das Verschalten autonomer Softwaremodule zu erstellen. Hierfür steht im Solution Center der ­Application-Developer zur Verfügung. Dort können die zuvor erstellten Komponenten aus einer Bibliothek entnommen, grafisch verschaltet und anschließend auf einer Steuerung installiert werden. Die Verschaltung ist sowohl ­zwischen Komponenten, die mit dem Komponenten-Designer erstellt wurden, als auch zu schon vorhandenen Modulen, SVI-Variablen oder zur IO-Ebene möglich. Eine Applika­tion wird dabei als eine zusätzliche Gliederungsebene im Engineering-Tool abgebildet und zeigt so den logischen Zusammenhang zwischen den Komponenten auf. Der Status der Gesamtapplikation wird im Solution Center visualisiert. Ebenso können die zwischen den Komponenten ausgetauschten Variablen mit dem Software-Oszilloskop Scope angezeigt werden.

Klare Vorteile
Modularisierung bringt viele Vorteile. Seit Jahren unterstützt Bachmann in seinem Engineering-Tool dieses Vorgehen in der Erstellung der Automatisierungsapplikation. Mit dem Komponenten-Designer und Application-Developer gelingt es nun, diese Funktionalität schnell und einfach zu nutzen und so das volle Potenzial des M1-Automatisierungssystems noch besser auszuschöpfen. (ih)

Dipl.-Ing. (FH) Georg Scharf ist im Product ­Management Tools & Runtime bei der Bachmann Electronic GmbH in Feldkirch/Österreich tätig. georg.scharf@bachmann.info

Dipl.-Ing. (FH) Georg Scharf ist im Product ­Management Tools & Runtime bei der Bachmann Electronic GmbH in Feldkirch/Österreich tätig. georg.scharf@bachmann.info