Systematische Wiederverwendung und hohe Qualität von Steuerungssoftware sind für Unternehmen im Maschinen- und Anlagenbau wesentliche Voraussetzungen, um langfristig wettbewerbsfähig zu sein. Aufgrund des langen Lebenszyklus automatisierter Produktionssysteme (aPS) von bis zu mehreren Jahrzehnten ändern sich die Anforderungen an diese Systeme während ihrer Betriebsphase. Die Änderungen werden zu großen Teilen bevorzugt durch Anpassungen in der Software realisiert, da diese im Vergleich zu mechanischen und elektrischen Komponenten kurzfristig leichter angepasst werden kann. Aufgrund des hohen Zeit- und Kostendrucks in der Entwicklung sowie mangelnder Infrastruktur wird Software jedoch oftmals durch unstrukturierte Funktionserweiterungen weiterentwickelt, was langfristig zu einem unbeherrschbaren Wachstum der Software mit hoher Variantenvielfalt führt. In der Informatik gibt es bereits eine Vielzahl verschiedener Ansätze, um modulare Software von hoher Qualität zu erstellen. Diese sind jedoch auf Steuerungssoftware (gemäß IEC 61131-3) aufgrund der Randbedingungen in aPS nur bedingt übertragbar, z. B. aufgrund von Einflüssen aus anderen Disziplinen (z.B. Elektrotechnik und Mechanik) oder der Forderung nach Anpassbarkeit während und nach der Inbetriebnahme durch Techniker ohne Softwarehintergrund. Obwohl es auch für das Software Engineering im Maschinen- und Anlagenbau immer mehr Forschungsansätze gibt, um Softwarequalität, Wiederverwendung, und dadurch die Effizienz insgesamt zu verbessern [1-3], werden solche Ansätze in der Industrie bisher wenig genutzt, da beispielsweise der initiale Aufwand für die Einführung neuer Ansätze als zu groß eingeschätzt wird. Zudem ist für Praktiker oft unklar, welchen Nutzen derartige Ansätze und Mechanismen in der industriellen Praxis bieten können. Zur Verdeutlichung des Nutzens beleuchtet dieser Beitrag exemplarisch drei Use Cases, in denen die Anwendung von Codeanalyse-Mechanismen auf konkrete industrielle Problemstellungen beschrieben wird.
Use Case 1 -- Qualitätssicherung bei Integration von zugeliefertem Code: Werden Teile einer Anlage oder Maschine von extern zugekauft, muss i d. R. Fremdcode in bereits bestehende Steuerungscodestrukturen eingebunden werden. Um sicherzustellen, dass der Code einerseits funktionsfähig ist und andererseits grundlegende Anforderungen hinsichtlich festgelegter Qualitätskriterien erfüllt, können Mittel der statischen Codeanalyse eingesetzt werden. Code von zweifelhafter Qualität kann so frühzeitig erkannt und Gegenmaßnahmen eingeleitet werden.
Use Case 2 -- Strukturelle Refaktorisierung: Der Steuerungsode eines Maschinenbauprojekts soll strukturell refaktorisiert werden, d. h. die Abhängigkeiten zwischen Teilen des Automatisierungssystems unter Einbezug der Automatisierungshardware explizit gemacht und wo möglich reduziert werden, um Teillösungen wiederzuverwenden. Hierfür stehen verschiedene Analysemöglichkeiten zur Verfügung, um die Struktur und Abhängigkeiten zu dokumentieren und Strukturdefizite abzuleiten, wie z.B. indirekten Datenaustausch zwischen Softwareteilen. Aus den identifizierten Schwachstellen lassen sich in weiteren Schritten Vorschläge zur Verbesserung der Code-Struktur herleiten, um zum Beispiel die geplante Wiederverwendung von Teillösungen oder deren Variantenmanagement zu erleichtern.
Use Case 3 -- Integration von Code auf der Baustelle: Während der Inbetriebnahmephase sind Anpassungen der Automatisierung an Prozessabläufe, Ansteuerungen und Kommunikation mit anderen Automatisierungsgeräten, SCADA oder MES üblich. Codeanalyse kann helfen, die Auswirkungen einer Veränderung im Steuerungscode greifbar zu machen. Dies ermöglicht u. a. eine Abwägung, ob ein Eingriff im laufenden Betrieb oder erst während eines Anlagenstillstands gemacht werden kann.
Neben einer detaillierten Beschreibung der zugrundeliegenden Szenarien werden für die Use Cases konzeptionelle Lösungsansätze mit prototypischer Tool-Unterstützung für die Softwareentwicklung vorgestellt. Der Nutzen von Refaktorisierung für die Entwicklung von IEC 61131-3 Steuerungscode wird dadurch verständlich -- von der Programmierung im Büro bis hin zur Inbetriebnahme einer Anlage/Maschine auf der Baustelle. Die Anwendung der geplanten Ergebnisse führt somit für Unternehmen im Maschinen- und Anlagenbau langfristig zu einem Wettbewerbsvorteil.
«
Systematische Wiederverwendung und hohe Qualität von Steuerungssoftware sind für Unternehmen im Maschinen- und Anlagenbau wesentliche Voraussetzungen, um langfristig wettbewerbsfähig zu sein. Aufgrund des langen Lebenszyklus automatisierter Produktionssysteme (aPS) von bis zu mehreren Jahrzehnten ändern sich die Anforderungen an diese Systeme während ihrer Betriebsphase. Die Änderungen werden zu großen Teilen bevorzugt durch Anpassungen in der Software realisiert, da diese im Vergleich zu mecha...
»