Suchen

Höhere Softwarequalität in Automatisierungsanwendungen

| Autor / Redakteur: Birgit Vogel-Heuser und Suhyun Cha* / Sebastian Gerstl

Steigende Anforderungen in der Fertigungsautomatisierung erfordern komplexere Steuerungssoftware und kürzere Entwicklungszyklen. Um zukünftig ihre Korrektheit und Zuverlässigkeit sicherstellen zu können, ist eine Anpassung der Qualitätssicherung erforderlich. Die Verifizierung, ein geeignetes Verfahren, wird bisher aufgrund hoher Kosten und Aufwand in der Industrie wenig eingesetzt. Am Lehrstuhl AIS der TU München hat man hierfür nun einen pragmatischen und zugleich zuverlässigen Weg gefunden.

Firmen zum Thema

Teil 4 von 4 zur Optimierung von Automatisierungsanwendungen: Entwickler der TU München haben einen pragmatischen Weg gefunden, wie sich die Qualität von Software für automatisierungstechnische Produktionssysteme kostengünstig hoch halten lässt.
Teil 4 von 4 zur Optimierung von Automatisierungsanwendungen: Entwickler der TU München haben einen pragmatischen Weg gefunden, wie sich die Qualität von Software für automatisierungstechnische Produktionssysteme kostengünstig hoch halten lässt.
(Bild: TU München)

Steuerungssoftware für automatisierungstechnische Produktionssysteme (aPS) unterliegt über die Jahre oft kleinen Änderungen. Gleichzeitig gehört die Zuverlässigkeit zu den wichtigsten Anforderungen. Doch wie überprüft man diese, wenn man Änderungen einfügen muss? Ist der Rest der Software unverändert und wurde die Änderung überhaupt korrekt durchgeführt? Schließlich müssen sämtliche Sicherheitsbelange, wie Maschinengefahren oder Unfälle mit Bedienern oder Wartungspersonal, selbst bei einer neuen Version einer Steuerungssoftware berücksichtigt werden.

Von einer weiteren Problematik berichtet Dr. Matthias Bengel, Vice President R+D Software von teamtechnik: „Im Bereich der Medizintechnik müssen Maschinen und Anlagen vor Produktionsbeginn zertifiziert werden, da Fehlfunktionen oder Ausfälle im Produktionssystem für Lebensmittel oder pharmazeutische Produkte Schäden bei den Kunden des Produkts verursachen können.“ Selbst kleine Softwareänderungen nach der Zertifizierung erfordern eine erneute Qualifizierung, um zu gewährleisten, dass die Anlagensoftware weiterhin verlässlich arbeitet. „Diese Re-Qualifizierung bedeutet oftmals einen zusätzlichen Zeitaufwand von mehreren Wochen“, so die Erfahrung von Dr. Bengel.

Bildergalerie

Formale Verifizierung: In der Industriepraxis wenig genutzt

Die formale Verifizierung erbringt den Nachweis der Richtigkeit einer Implementierung. Sie erlaubt zudem eine einfache aber vollständige erneute Validierung.

Gegen ihren Einsatz spricht, dass hierfür – nach genereller Meinung – Expertenwissen erforderlich ist. Weiter gibt es keine geeigneten Spezifikationssprachen für die Automatisierungsdomäne, die sowohl nachvollziehbar als auch ausreichend aussagekräftig sind. Meist steht noch nicht einmal eine informelle Beschreibung der Anforderungen zur Verfügung. Besonders die Erstellung eines formalen Modells gilt in der Regel als nicht praktikabel. Darum ist die formale Verifizierung bei Ingenieuren in der Praxis nicht sonderlich beliebt.

Aktuell wird in der Industriepraxis die Softwarequalität in der Regel über eine dynamische Validierung durch manuelle schrittweise Prüfung oder automatisch generierte Testfälle überprüft. Allerdings hat diese Vorgehensweise Schwächen. Bei einem Testfall wird nur eine bestimmte Situation geprüft, da sich nicht alle Eventualitäten checken lassen. Aufgrund von Zeitdruck validieren Entwickler selten die Auswirkungen auf das Gesamtsystem. Daraus folgt, dass bestimmte Szenarien ungetestet bleiben. Die Korrektheit der Software kann daher nicht voll nachgewiesen werden, seltene Fehlfunktionen bleiben meist unentdeckt.

Am Lehrstuhl für Automatisierung und Informationssysteme (AIS) wurde nun eine Methode entwickelt, um die Verifizierung praxistauglicher zu gestalten. Dabei wird ein Evolutionsprozess mit Verifizierung eingeführt. Prinzipiell gilt es hierbei, drei Aufgaben für den Einsatz in der Praxis zu lösen:

  • Zunächst müssen die Änderungen zwischen dem ursprünglichen und dem neuen Programm erkannt und verständlich dargestellt werden.
  • Auch die Visualisierung muss nutzerfreundlicher werden. Fehler müssen klar zu erkennen sein und eine zeitliche Zuordnung erhalten.
  • Außerdem soll ein Tool erstellt werden, das in der Lage ist, die Unterschiede gemäß IEC61131-3 zu verifizieren und welches später in die normale Automatisierungslandschaft integriert werden kann.

Erzeugung generalisierter Test-Tabellen

Einen großen Part bei der Entwicklung der Methode nahm das Erkennen und die Weiterverarbeitung von Software-Fehlern ein, vor allem unter dem Aspekt der Nutzerfreundlichkeit. Im Maschinen- und Anlagenbau behilft man sich beim Testen von Automatisierungsanwendungen meist mit dem Einsatz von Test-Tabellen. Jede dieser Tabellen besteht aus einer Sequenz von Sensoreingängen (Eingabewerte) mit ihren erwarteten Software-Ausgabewerten (berechnet von der zu testenden SPS-Software).

Bild 2: Workflow zur Überprüfung des unveränderten Verhaltens zwischen neuer und alter Version. Hierfür wird die neue Version spezifiziert und zusätzlich verifiziert.
Bild 2: Workflow zur Überprüfung des unveränderten Verhaltens zwischen neuer und alter Version. Hierfür wird die neue Version spezifiziert und zusätzlich verifiziert.
(Bild: TU München)

Jede Eingangs- und Ausgangs-Variable hat eine eigene Spalte in der Tabelle und jeder Schritt im Protokoll wird durch eine Zeile in der Tabelle dargestellt. Dadurch lässt sich das System mit dem beschriebenen Testfall vergleichen. Das Problem ist, dass diese Test-Tabellen keinen konkreten Fall repräsentieren und nicht besonders flexibel sind. Erfordern zum Beispiel einige Prozesse flexible Zyklen, etwa wenn sie keine spezifischen Werte enthalten sondern einen Bereich umfassen, ist eine nachträgliche Änderung sehr umständlich, da in den Zellen feste Werte nötig sind.

Generalisierte Testtabellen (Generalized Test Tables -GTTs) beruhen auf den oben erwähnten konkreten Testtabellen, werden allerdings etwas offener gestaltet. So verwenden sie allgemeine Werte, nutzen Verweise und die Zeitspanne wird erweitert. Diese GTTs sind zudem besser verständlich und dadurch auch aussagekräftiger. Darüber hinaus können sie Abweichungen zur neuen Software beschreiben, so dass der neu implementierte Code über die Verifizierung validiert werden kann.

Evolutionsprozess mit Verifizierung

Diese generalisierten Testtabellen sind also quasi die Grundlage für den nächsten Schritt: die Verifizierung einer Softwareversion. Generell greift man am AIS dabei auf einen Trick zurück. Da der Aufwand für ein formales Modell sehr hoch ist, geht man beim AIS davon aus, dass die bestehende Software eigentlich richtig ist. Damit wird im Rahmen der Verifizierung zwischen zwei Software-Versionen überprüft, ob das Verhalten der alten, also der existierenden Software, von den Änderungen unbeeinflusst ist, also in der neuen Software identisch ist. Es wird somit nur das Delta, also der Unterschied zwischen dem vorhanden Softwarecode und dem neuen, geprüft und verifiziert. Dadurch lässt sich das Verfahren auch in industriellen Umgebungen anwenden, da die Fehlerbehebung nur in einem kleinen Bereich der Software stattfindet.

Durch die Bereitstellung dieses automatisch generierten Teilmodells und dank der verständlicheren Spezifikationssprache (GTT) können Entwickler die Unterschiede zwischen den Versionen besser in einer formalen Sprache beschreiben. Dies erleichtert die Überprüfung. So lässt sich die Softwarequalität selbst bei vielen Änderungen über einen langen Zeitraum hochhalten.

Fazit: Weniger Aufwand und Kosten bei Re-Qualifizierung

Die Verifizierung ist noch keine etablierte Validierungsmethode für automatisierte Produktionssysteme. Aber: „Die Anwendung von Regressionsverifikation zur schnellen und gezielte Analyse geänderter Softwareteile und deren Auswirkungen würde den langwierigen Re-Qualifizierungsschritt in unserer Branche verkürzen und somit kostengünstiger machen“, meint Dr. Bengel. „Es muss sichergestellt sein, dass nur beabsichtigte Verhaltensänderungen der Software durch die getätigte Änderung hervorgerufen werden und keine unbeabsichtigte Funktionalität oder Verhaltensänderung eingebracht wurde.“ Verfahren wie das Testen in Kombination mit Regressionsverifikation durch ein vollständiges Prüfen von Änderungen und ihren Auswirkungen trügen dazu bei, Anlagensoftware zuverlässiger und sicherer zu machen, und der Aufwand und die Kosten der Re-Qualifizierung ließe sich senken.

Zudem rückt diese Technologie im Industrie-4.0-Umfeld in den Vordergrund. In Zukunft gibt es mehr flexible Systeme, die aber gleichzeitig immer enger zusammenarbeiten. Die dafür nötige Software erfordert nicht nur die strikte Einhaltung von Regeln, sondern muss auch entsprechend robust sein und qualitativ hochwertig bleiben.

Der Ansatz der TU München verwendet eine Modellprüfung, welche systematisch die jeweiligen gewünschten Verhaltenseigenschaften aller Zustände des Systemmodells testet. Durch die Ausführung der Verifikation stellen diese Methoden sicher, dass die Software-Korrektheit in Bezug auf die Spezifikation stimmt, ohne das System tatsächlich auszuführen. Vor allem die Verwendung von generalisierten Testtabellen zeigt, dass dies ein pragmatischer, auch im industriellen Umfeld gangbarer Weg ist.

Ebenfalls aus der Reihe „Optimierung von Automatisierungsanwendungen“ der TU München:

* Prof. Dr.-Ing. Birgit Vogel-Heuser leitet als Ordinaria den Lehrstuhl für Automatisierung und Informationssysteme der Technischen Universität München.

* Suhyun Cha, M.Sc. ist wissenschaftliche Mitarbeiterin am Lehrstuhl für Automatisierung und Informationssysteme der Technischen Universität München.

(ID:46305574)