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.

Fast-Schlauchbeutelmaschine: Mit den Lenze Standard-Software-Bausteinen lässt sich eine modulare Maschinensteuerung ziemlich einfach entwickeln. Das Zusammenfügen der einzelnen Bausteine erfolgt mit dem Applikation- Template.

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.

Anzeige

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.

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 61131im 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

Ident- und Kommunikationstechnik

Einfacher verbinden

Die Gateways der Produktfamilie „Anybus X-gateway“ von HMS Industrial Networks verbinden zwei industrielle Netzwerke – egal, ob Feldbus oder Industrial Ethernet. Mit Blick auf zukünftige Automatisierungsanforderungen hat HMS die X-gateways jetzt...

mehr...
Anzeige
Anzeige

Highlight der Woche

FMB 2018: Innovationen für Maschinenbau und Produktion
Vom 7. bis 9. November 2018
finden Sie auf der 14. FMB – Zuliefermesse Maschinenbau in Bad Salzuflen die neusten Technologien, Produktinnovationen und Automatisierungslösungen in den zentralen Bereichen Konstruktion, Fertigung und Montage. Hier treffen Sie Branchenpartner und Entscheider mitten im Spitzencluster für intelligente technische Systeme.

Zum Highlight der Woche...

Schwerpunkt Automatica

Keine Kenntnisse

Adept kommt mit der neuen ePLC-Produktreihe, die komplett von allen speicherprogrammierbaren Steuerungen der Simatic S7-300-Baureihe von Siemens aus gesteuert und programmiert wird. Der Programmierer braucht zur Inbetriebnahme keinerlei...

mehr...

Schwerpunkt SPS/IPC/Drives

Picking Booster

Schunk will Inbetriebnahme pneumatischer Pick&Place-Einheiten zum Kinderspiel machen: In der Ventilsteuereinheit VCU sind bereits alle gängigen Ablaufprogramme für die Einheit PPU-P 10 sowie für die daran angeschlossenen Greif- und Drehmodule...

mehr...

Schwerpunkt Motek

Software-Highlights

Mit der kostenlosen Software Adept e-VT (e-Vario Teacher) stellt Adept zur diesjährigen Motek eine komplett neu entwickelte Programmier-Software für die e-Vario Scara-Roboter vor. Der Roboter wird direkt über eine übersichtliche und tabellarisch...

mehr...