Industrial Software Module bringen mehr Effizienz

11.12.2012

Die entscheidenden Alleinstellungsmerkmale im Maschinen- und Anlagenbau werden immer öfter erst via Software realisiert. Die Effizienz rückt in der Software-Entwicklung also in den Fokus. Durch Modularisierung, vorgefertigte Strukturen und Funktionsbausteine steht einer breiten Einführung moderner Methoden an dieser Stelle nichts mehr entgegen.

Während die mechanische und elektronische Modularisierung von Maschinen und Anlagen weit vorangeschritten ist, liegt die Software oft als Spagetti-Code vor - wenig strukturiert und schwer verständlich. Steht eine Neuentwicklung an, versuchten Entwickler bislang, meist große Teile des Codes zu kopieren, um den Programmieraufwand zu reduzieren. Bei übersichtlichen Projekten ist dieses Vorgehen bewährt. Anders verhält es sich allerdings, wenn Software über Jahre wächst und viele tausend Zeilen Code umfasst. Hier wirkt sich schlichtes Kopieren nachteilig aus. So besteht die Gefahr, Fehler oder nicht genutzten Ballast aus alten Projekten mit in das neue Projekt zu übernehmen. Selbst wenn der ursprüngliche Code fehlerfrei ist, behindert die beschränkte Verständlichkeit, Wartung und Modifikation der Applikation. Darüber hinaus können Weiterentwicklungen neue, unerwartete Fehler in bereits geprüften Programmteilen auslösen. Dieses Risiko zieht zeitaufwändige Tests nach sich und geht zu Lasten der Time to Market. Nicht zuletzt lassen sich solche Projekte schlecht auf mehrere Programmierer verteilen.Die mechanische Konstruktion zeigt, wie es besser geht: Hier baut man Maschinen längst aus Modulen mit definierten mechanischen Schnittstelle auf. Diese gekapselten Funktionsmodule bilden einen Baukasten und damit die Grundlage, um neue Lösungen effizient aus bereits erprobten Teilen zusammen zu stellen. Die Konstrukteure können sich ganz auf die Entwicklung neuer Funktionen und Alleinstellungsmerkmale konzentrieren und entsprechend den bestehenden Baukasten erweitern. Zudem kann eine umfangreiche Entwicklung durch klar definierte Schnittstellen gut auf mehrere Konstrukteure verteilt werden. Entwicklungs- und Testaufgaben lassen sich parallel durchführen und so die Time to Market weiter verkürzen.

Bibliotheken vom Lieferanten

Es liegt also nahe, auch in der Software-Entwicklung die Modularisierung voranzutreiben. Allerdings übersteigen die Umsetzung und der Aufbau eines eigenen modularen Software-Funktionsbaukastens oft die Möglichkeiten der Maschinen- und Anlagenbauer. 90 Prozent der Anlagenbauer, die die Konsumgüterindustrie mit Produktionsmitteln beliefern, beschäftigen 30 bis 70 Mitarbeiter, von denen sich durchschnittlich nur ein oder zwei Personen mit der Automatisierung beschäftigen. So würde die Entwicklung eines Baukastens Jahre benötigen, mit dem das Unternehmen spürbare Wettbewerbsvorteile in Punkto Time to Market realisieren könnte. Lenze hat schon vor Jahren begonnen, Anwender mit Engineering-Dienstleistungen und vorgefertigten Funktionsbausteinen für intelligente Antriebe wie Wickler oder fliegende Säge zu unterstützten. Diese Bausteine wurden nun auch für controllerbasierte Automatisierungslösungen portiert und gleichzeitig um branchenspezifische Funktionsbausteine für die Konsumgüterindustrie erweitert. Weitere komplexe Funktionsbausteine, zum Beispiel für Knickarmroboter, sollen bald folgen. Je nach Anwendungsfall und Anforderungsprofil kann der Entwickler also Bausteine unterschiedlichen Abstraktionsgrads nutzen und Software zu großen Teilen auf Basis getesteter und erprobter Standards aufbauen. Mit zunehmender Verbreitung modularer Software und entsprechenden Methoden ist zu erwarten, dass - wie in der Elektronik- oder IT-Branche heute schon gängig - auch Drittfirmen Funktionsbausteine und zugehörige Testvektoren zur Validierung entwickeln und anbieten.

Templates für kundenspezifische Bausteine

Damit Anwender auch kundenspezifische Funktionsbausteine erstellen und einbinden können, bietet sich der Einsatz von Templates an. Sie stellen vorgefertigte Software-Strukturen wie Fehlerbehandlung, Schnittstellen, Datenbanken und Zustandsmaschinen bereit. Wie bei einer Word-Vorlage kann sich der Anwender auch hier ganz auf die Erstellung der eigentlichen Inhalte konzentrieren. Objektorientierte Programmiersprachen unterstützen die Modularisierung von Software optimal, da die Grundidee dieser Sprachen die Kapselung von Funktionen und Daten ist. Methoden wie die Vererbung erlauben es, Objekte auf Basis bereits Bestehender zu erzeugen und so neue Funktionen und Varianten effizient zu realisieren. Ein weiterer Vorteil der objektorientierten Sprachen liegt im großen Verbreitungsgrad. Offene und leistungsfähige Programmierumgebungen wie L-force Engineer von Lenze unterstützen nicht nur die Programmierung in objektorientierten Hochsprachen, sondern erlauben auch die Kombination von strukturiertem Text oder in KOP erstelltem Code und vorgefertigten Funktionsbausteinen in einem Projekt.Knappe finanzielle und personelle Ressourcen führen dazu, dass gerade mittelständische Maschinen- und Anlagenbauer das Software-Engineering optimieren müssen. Die konsequente Modularisierung der Software erlaubt es Programmierern, einmal erstellten und getesteten Code problemlos wieder zu verwenden oder darauf aufbauend neue Funktionen zu entwickeln. Gleichzeitig verbessern sich durch die Modularisierung der Software, die Verständlichkeit und damit auch die Wartungsfreundlichkeit. Weitere Effizienzsteigerungen lassen sich durch die Verwendung von Standardfunktionsbausteinen unterschiedlichen Abstraktionsgrads erreichen, die von Automatisierungs- und Lösungspartnern wie Lenze oder Drittanbietern bereitgestellt und getestet werden. Die so gesparte Entwicklungs- und Testzeit kann der Programmierer auf die Differenzierung des eigenen Produktangebots und seine Kernkompetenz verwenden und damit die Wettbewerbsposition des Unternehmens verbessern.

Firmen zu diesem Artikel
Verwandte Artikel