Modulbauweise auch für Maschinensoftware

Struktur für Spaghetti-Code

Die entscheidenden Alleinstellungsmerkmale von Maschinen und Anlagen werden in immer mehr Fällen erst mit Hilfe der Software realisiert. Entsprechend rückt die Effizienz der Softwareentwicklung in den Fokus der Hersteller. Durch eine Modularisierung der Software und die Verwendung von vorgefertigten Templates und Funktionsbausteinen lassen sich Applikationen schneller und sicherer erstellen.

Mit Lenze-Fast sollen Maschinenbauer Engineering-Zeit sparen, die sie in die Weiterentwicklung der Besonderheiten ihrer Maschine investieren können.

Während die mechanische und elektronische Modularisierung von Maschinen und Anlagen in Deutschland weit vorangeschritten ist, liegt die Software nicht selten als wenig strukturierter und schwer verständlicher "Spaghetti-Code" vor. Steht die Neuentwicklung einer Maschine an, versuchen Entwickler möglichst große Teile dieses Codes zu kopieren, um den Programmieraufwand zu reduzieren. Bei kleinen und übersichtlichen Projekten hat sich dieses Vorgehen bewährt. Anders verhält es sich allerdings, wenn die Software über die Jahre gewachsen ist und zehn- oder sogar hunderttausende Codezeilen umfasst. Hier wirkt sich das schlichte Kopieren von Code nachteilig auf Qualität und Wartungsfreundlichkeit der Software und nicht zuletzt auf die Produktivität der Entwickler aus. So besteht die Gefahr, Fehler oder nicht (mehr) genutzte Code aus alten Projekten mit in das neue Projekt zu übernehmen. Selbst wenn der ursprüngliche Code fehlerfrei ist, behindert die beschränkte Verständlichkeit des Spaghetti-Codes die Wartung und Erweiterung oder Modifikation der Applikation. Darüber hinaus können Programmweiterentwicklungen neue, unerwartete Fehler in bereits geprüften Programmteilen auslösen. Jeder Programmerweiterung wird so zum Risiko und kann zeitaufwändige Tests der kompletten Maschine nach sich ziehen und so das geplante Time-to-Market gefährden. Nicht zuletzt lassen sich solche Projekte schlecht team- oder unternehmensübergreifend auf mehrere Programmierer verteilen und abstimmen. Kostspielige Mehrfachentwicklungen sind die Folge.
Die mechanische Konstruktion zeigt, dass und vor allem wie es anders geht: Hier hat es sich längst etabliert, die Maschine aus Modulen mit definierter mechanischer Schnittstelle aufzubauen. Die so gekapselten Funktionsmodule bilden einen (zentral verwalteten) Baukasten, aus dem sich Konstrukteure bedienen, um neue Maschinenlösungen schnell und effizient aus erprobten Modulen zusammenzustellen. Dadurch sinkt der Aufwand für den Bau und Test einer Maschine. Die Konstrukteure können sich ganz auf die Entwicklung neuer Funktionen und Alleinstellungsmerkmale konzentrieren, die gegebenenfalls den bestehenden Baukasten erweitern. Zudem kann eine umfangreichere Entwicklungsaufgabe wegen der (vorab) klar definierten Schnittstellen der Module leichter auf mehrere Konstrukteure verteilt werden. Dadurch lassen sich Entwicklungs- und Testaufgaben parallel durchführen und damit das Time-to-Market weiter verkürzen.
Allerdings übersteigt die Umsetzung und der Aufbau eines umfassenden modularen Softwarefunktionsbaukastens in Eigenregie oft die Möglichkeiten der Maschinen- und Anlagenbauer. So beschäftigen 90 Prozent der Anlagenbauer, die die Konsumgüterindustrie mit Produktionsmitteln beliefern, 30 bis 70 Mitarbeiter, von denen sich im Durchschnitt gerade einmal 1,6 mit der Automation von Anlagen beschäftigen. Ein solcher Mitarbeiterstab würde Jahre für die Entwicklung eines Baukasten benötigen, bevor das Unternehmen damit spürbare Wettbewerbsvorteile in punkto Time-to-Market realisieren könnte. Lenze als System- und Technologiepartner des Maschinenbaus hat daher schon vor Jahren damit begonnen, Anwender in Form von Engineering-Dienstleistungen und die Bereitstellung von vorgefertigten Standardfunktionsbausteinen, wie Wickler oder fliegende Säge, für intelligente Antriebe zu unterstützten. Nun hat das Unternehmen die Funktionsbausteine auch für Controller-basierte Automatisierungslösungen portiert und gleichzeitig um branchenspezifische Funktionsbausteine für die Konsumgüterindustrie wie "No gap - no Seal" erweitert. Weitere komplexe Funktionsbausteine für Knickarm-Roboter mit drei Grundachsen sollen bald folgen.
Je nach Anwendungsfall und Anforderungsprofil kann der Entwickler damit Funktionsbausteine unterschiedlichen Abstraktionsgrads nutzen und Software für einzelne Maschinen oder komplette Anlagen - wie die Mechanik - zu großen Teilen auf Basis von getesteten und in vielen Anwendungen erprobten Standardfunktionen aufbauen. Mit zunehmender Verbreitung modularer Software und entsprechenden Entwicklungsmethoden ist zudem zu erwarten, dass - wie in der Elektronik oder Softwarebranche heute schon in vielen Bereichen zu beobachten - auch Drittfirmen Funktionsbausteine und zugehörige Testvektoren zur Validierung entwickeln und anbieten.

Anzeige

Templates für kundenspezifische Funktionsbausteine

Damit Anwender auch kundenspezifische Funktionsbausteine, auch unter Zuhilfenahme von einfacheren Standardfunktionsblöcken, schnell erstellen und in das restliche Projekt einbinden können, bietet sich der Einsatz von Templates an. Sie bieten vorgefertigte Softwarestrukturen wie Fehlerbehandlungsroutinen, Schnittstellen, Datenbanken und Zustandsmaschinen. Wie bei einer Word-Vorlage kann sich der Anwender daher auch hier ganz auf die Erstellung der eigentlichen Funktionen beziehungsweise Inhalte konzentrieren. Objektorientierte Programmiersprachen unterstützen die Modularisierung von Software optimal, da die Grundidee dieser Sprachen die Kapselung von Funktionen und Daten in "Objekten" ist. Methoden wie die Vererbung erlauben es, schnell neue Objekte auf Basis bestehender Objekte zu erzeugen und so neue Funktionalitäten und Varianten besonders effizient zu realisieren. Ein weiterer Vorteil der objektorientierten Sprachen liegt im Vergleich zu den "Spezialsprachen" der IEC 61131 im wesentlich größeren Verbreitungsgrad in Ausbildung und Unternehmen. Offene und leistungsfähige Programmierumgebungen wie L-force Engineer von Lenze unterstützen daher nicht nur die Programmierung in objektorientierten Hochsprachen, sondern erlauben auch die Kombination von C-Code-ähnlichen Strukturierten Text oder zum Beispiel in KOP erstellten Code und vorgefertigten Funktionsbausteinen in einem Projekt.

Malte Schlüter/bw

Anzeige

Das könnte Sie auch interessieren

Anzeige

Förderanlagen

Der Baukasten der Förderer

Modulsystem beschleunigt Konstruktion und Bau von Förderstrecken. Eine modulare Plattform soll die Antwort auf die Herausforderungen geben, die sich an heutige und zukünftige Materialflusslösungen stellen, meint Hersteller Interroll.

mehr...

Etikettier-SPS

Module machen Tempo

Schneller liefern dank modular aufgebauter Etikettierlösungen Stolpe und Barg hat sich spezialisiert auf Maschinenbaulösungen zum Etikettieren und Verpacken. Es gehört zu den Paradebeispielen, warum es gerade für kleine mittelständische Unternehmen...

mehr...

Förder- und Lagersysteme

Aus einer Hand

Als Generalunternehmer und Hersteller von Förder- und Lagertechnik plant, realisiert und betreut TGW Intralogistik-Lösungen für führende Kunden weltweit aus einer Hand. Die TGW-Gruppe hat ihren Sitz in Wels, Österreich, und bietet umfassenden...

mehr...
Anzeige
Anzeige
Anzeige

Motoren

Flacher Außenläufer mit hoher Drehzahl

Nanotec hat mit dem DF20 einen flachen Außenläufermotor mit nur 20 Millimeter Durchmesser im Programm. Er wird mit zwei Wicklungen für zwölf und 24 Volt angeboten und ist mit digitalen Hall-Sensoren für eine einfache Ansteuerung ausgestattet.

mehr...
Anzeige
Anzeige
Anzeige