Der Weg zum sicheren Funktionsbaustein

Bei der Programmierung von Sicherheitsanwendungen für eine Sicherheitssteuerung sind Software-Sicherheits-Funktionsbausteine von entscheidender Bedeutung. Ein Anwender vertraut auf die korrekte Funktion des Sicherheits-Funktionsbausteins genauso wie er der Bremse seines Autos vertraut. Ein fehlerhafter Funktionsbaustein kann im Extremfall zum Verlust der Sicherheit einer Anlage oder einer Maschine führen. Fehler bei der Entwicklung der Sicherheits-Funktionsbausteine können durch geeignete Methoden und Prozesse gemäß IEC 61508 bis SIL3 vermieden oder erkannt und beherrscht werden. Die Entwicklung von Funktionsbausteinen gemäß IEC 61508 bis SIL3 erfordert deshalb spezielle Methoden und Prozesse. Als Hersteller sicherheitsgerichteter Software setzt KW-Software die Anforderungen der IEC 61508 an das Management der funktionalen Sicherheit (FSM) in einem speziellen Entwicklungsprozess um. Dieser Entwicklungsprozess ist vom TÜV Rheinland zertifiziert und wird jährlich gegen die aktuell geltenden Standards geprüft. Die Anforderungen aus dem FSM erstrecken sich auf den gesamten Produktlebenszyklus, d.h. vom Lastenheft bis zur Außerbetriebnahme bzw. Deinstallation des Produktes. Management der funktionalen Sicherheit (FSM) Die im FSM festgelegten Maßnahmen sind bei KW-Software projektübergreifend in einem entsprechenden Entwicklungshandbuch allgemein definiert. Die Besonderheiten der einzelnen Projekte werden in einen projektspezifischem Sicherheitsplan (QM-Plan) festgehalten. Der Weg von der Anforderung, einen sicheren Funktionsbaustein zu entwickeln, bis zur Zertifizierung durch ein unabhängiges Prüfinstitut gliedert sich in folgende Schritte: 1. Anforderungen werden im Lastenheft beschrieben 2. Beschreibung der Umsetzung und des Designs erfolgt im Pflichtenheft 3. Erstellung des projektspezifischen Sicherheitsplans (QM-Plan) 4. Betrachtung möglicher Fehler und deren Auswirkung in einer Risikoanalyse 5. Festlegung der Validierungs- und Verifikations-Maßnahmen im V&V-Plan 6. Umsetzung des Pflichtenhefts in eine Bausteinspezifikation und Quellcode 7. Validierung und Verifizierung laut V&V-Plan a. Entwicklertest / Übergabe an unabhängigen QS-Mitarbeiter b. Erstellung der Testdokumente – Whitebox Testspezifikation – Blackbox Testspezifikation c. Erstellung der Testprojekte d. Erstellung der Anwenderdokumentation (z.B. Onlinehilfe) e. Review aller Testdokumente f. Review der Anwenderdokumentation g. Testdurchführung: Whitebox-Test (Code Review) und Dokumentierung h. Testdurchführung: Blackbox-Test und Dokumentierung 8. Prüfung und Zertifizierung durch ein unabhängiges Institut z.B. TÜV oder BGIA 9. Archivierung aller Dokumente, Projekte und des Quellcodes für mindestens 30 Jahre Risikoanalyse Nachdem das Lastenheft und das Pflichtenheft vorliegen, erfolgt in der Risikoanalyse die Betrachtung möglicher Fehler und deren Auswirkung (FMEA). Die daraus resultierenden Maßnahmen zur Fehlervermeidung, Fehlererkennung und -beherrschung gehen in den Entwicklungsprozess ein. Aus der Risikoanalyse kann beispielsweise eine erforderliche Prüfung von Eingangsparametern auf erlaubte Grenzwerte abgeleitet werden. Umsetzung Pflichtenheft Mit den Anforderungen aus den Pflichten erfolgt die Erstellung der Bausteinspezifikation. Parallel zur anschließenden Quellcodeumsetzung werden die Validierungs- und Verifizierungs- Dokumente erstellt. Validierung und Verifizierung Im Bereich der Softwareentwicklung nach IEC 61508 ist die Qualitätssicherung ein essentieller Bestandteil und sollte in der Projektplanung einen entsprechend hohen Stellenwert einnehmen. Aus der IEC 61508 sind geeignete Maßnahmen zur Erreichung des SIL3 auszuwählen. Die folgenden V&V-Maßnahmen werden bei KW-Software zur Realisierung sicherheitsgerichteter Funktionsbausteine umgesetzt: – Inspektion der Spezifikation – Funktionstest – Blackbox Test – Statische Analyse – Dynamische Analyse und Test – Erweiterter Funktionstest – Datenaufzeichnung und Analyse – Schnittstellenprüfung – Grenzwertanalyse und Durchführung von Testfällen nach einer Grenzwertanalyse – Fehlererwartung und Durchführung von Testfällen aus der Fehlererwartung – Äquivalenzklassentest mit eingeschränktem Eingangsbereich – Strukturabhängige Tests – Steuerflussanalyse – Datenflussanalyse – Nebenpfadanalyse – Walk-through/ Entwurfsüberprüfungen – Simulation des Prozesses Automatisierter Test Die Anzahl der Testschritte für Sicherheits-Funktionsbausteine kann abhängig von der Anzahl der Eingangsparameter und der Anzahl der möglichen internen Zustände astronomische Dimensionen annehmen. So sind es z.B. beim PLCopen Funktionsbaustein SF_MutingPar (paralleles Muting) mehr als 5.000.000 Testschritte. Es ist schnell einsehbar, dass so ein Test nicht mehr manuell, sondern nur noch automatisiert durchgeführt werden kann. Aus dieser Kenntnis heraus wurde der automatisierte Funktionsbausteintest bei KW-Software entwickelt. Ziel war es, nicht nur die Testdurchführung, sondern auch die Erstellung der Testvorgaben zu automatisieren. Eigens für diese Anforderungen wurde im Unternehmen das Technologie-Paket SafeFBTest entwickelt. SafeFBTest ermöglicht eine automatisierte Testfallgenerierung und eine automatische Testdurchführung. Durch die offenen Schnittstellen ist das Technologiepaket SafeFBTest herstellerunabhängig einsetzbar. Voraussetzung für den Einsatz ist eine Funktionsbaustein-Spezifikation anhand eines Status-Diagramms (z.B.: PLCopen Spezifikation TC5) und eine OPC-Schnittstelle zur sicheren Steuerung. Automatisierte Testfallgenerierung Ein Statusdiagramm besteht aus Zuständen und Zustandsübergängen. Aus dem Statusdiagramm des Funktionsbausteins werden die Rahmenbedingungen für jeden Status unter Berücksichtigung der Priorität der Zustandsübergänge in einer Vorgabe-Tabelle definiert. Mit diesen Vorgaben generiert SafeFBTest automatisch das sogenannte Test-Logbuch. Im Test-Logbuch befinden sich die Testvorgaben und die entsprechenden Sollwerte für jeden Testschritt sowie eine zeitliche Abhängigkeit. Die mit SafeFBTest automatisch generierten Testschritte sind später Grundlage für die automatische Testdurchführung. Automatische Testdurchführung Zur Laufzeit der sicheren Steuerung lädt SafeFBTest die Vorgabewerte aus dem Test-Logbuch und schreibt diese via OPC auf die Eingänge des sicheren Funktionsbausteins, welcher Bestandteil des Programms auf der sicheren Steuerung ist. Um eine SPS-zyklusgenaue Ausführung und Überprüfung sicherzustellen, wurden spezielle Synchronisationsbausteine entwickelt. Wie im Test-Logbuch vorgegeben, werden die Ausgangsdaten von der sicheren Steuerung gelesen und ausgewertet. Die Ist-Werte und das Test-Resultat (bestanden / nicht bestanden) werden automatisch im Logbuch protokolliert. Zertifizierung Zusammen mit den Ergebnissen aus dem Quellcode-Review (WhiteBox-Test) und den zuvor genannten Maßnahmen sind die ausgefüllten Logbücher ein Hauptbestandteil der Zertifizierung. Fazit Das Testverfahren aus dem KW-Software Technologiepaket SafeFBTest wurde vom TÜV Rheinland als geeignetes Verfahren zur Prüfung von Sicherheits-Funktionsbausteinen bis SIL3 bestätigt. Ferner wird dieses Testkonzept nicht nur bei KW-Software, sondern auch bei mehreren Herstellern von Sicherheitssteuerungen eingesetzt. Grundsätzlich kann jeder Hersteller oder Anwender von Sicherheitssteuerungen SafeFBTest einsetzen, um den hohen erforderlichen Aufwand zu minimieren.