Programmierung von Sicherheitsfunktionen
Normgerecht mit Unterstützung von 'Softema'
Die Normen DIN EN ISO 13849-1 und DIN EN 62061 definieren unter anderem Anforderungen an die Software-Entwicklung von Sicherheitsfunktionen. Vielen ist die Umsetzung dieser neuen Anforderungen im Detail aber unklar. Das kommende Tool 'Softema' soll hier unterstützen.
Eine Safety-Entwicklung nach den Normen DIN EN ISO 13849-1 und DIN EN 62061 soll helfen, gefährliche systematische Fehler in der Anwendungssoftware für eine Maschine zu vermeiden. Das Problem dabei: Naturgemäß ist die Darstellung der Anforderungen in einer Norm sehr allgemein gehalten. Erschwerend hinzu kommt, dass es bislang kaum publizierte Realisierungsbeispiele gab. Aus dieser Situation heraus wurden von der Deutschen Gesetzlichen Unfallversicherung (DGUV) – auf Initiative des Institutes für Arbeitsschutz (IFA) und der Berufsgenossenschaften – diverse Projekte gefördert.
Eines davon ist das Projekt FP0319 „Normgerechte Entwicklung und Dokumentation von sicherheitsbezogener Anwendersoftware im Maschinenbau“. In dessen Rahmen wurden von Prof. Norbert Becker und seinen Mitarbeitern der Hochschule Bonn-Rhein-Sieg mehrere konkrete Vorgehensweisen für die Umsetzung der in den neuen Normen enthaltenen Anforderungen an die Software-Entwicklung von Sicherheitsfunktionen für Maschinen erarbeitet und anhand von industriellen Beispielen evaluiert und dokumentiert.
Konkret wurde im Verlauf des Projektes eine matrixbasierte Form der Spezifikation und Dokumentation von Sicherheitssoftware entwickelt – die sogenannte IFA-Matrixmethode. Bei der Vorstellungen in der Industrie stieß diese auf viel mehr Akzeptanz als die alternativ betrachteten Methoden ‚Beschreibung der Anwendungssoftware als Zustandsautomat‘ beziehungsweise ,Spezifikation über Checklisten‘. Dies mag unter anderem daran liegen, dass viele Unternehmen die Sicherheitssoftware bereits in Form von Tabellen dokumentieren und spezifizieren.

Stärkere Zusammenarbeit zwischen China und Deutschland
Bei einem Treffen der Deutsch-Chinesischen Kommission Normung (DCKN) in Xiamen, China, haben Vertreter von VDE|DKE mit China eine stärkere Zusammenarbeit vereinbart – vor allem bei der Digitalisierung. Ein Konsortium soll Firmen den Weg zur Digitalen Fabrik ebnen.
Die IFA-Matrixmethode
Die wesentlichen Charakteristika der Matrixmethode sind:
- Zulässige Vereinfachung und Zerlegung des V-Modells der DIN EN ISO 13849-1 in zwei kleine V-Modelle: Das eine V-Modell dient der Software-Entwicklung von Sicherheitsfunktionen, das andere der Entwicklung von projektspezifischen Funktionsbausteinen (Modulen).
- Definition von Dokumenten zur Abarbeitung der V-Modelle.
- Strukturierung der Software in eine Vorverarbeitungsebene, eine zu spezifizierende Ansteuerlogik und eine Nachverarbeitungsebene.
- Dadurch kann die Ansteuerlogik durch eine C&E-Tabelle (Cause & Effect, deutsch: Ursache & Wirkung) spezifiziert werden.
- Die Testabdeckung lässt sich durch zusätzliche Testzeilen in der C&E-Tabelle vervollständigen.
- Integration von Prüffeldern in die Dokumente.
- Die spezifikationsgerechte Qualität der Software wird durch die Prüfschritte Verifikation, Code Review und Software-Validierung überwacht.
Von Projektbeginn an war beabsichtigt, die Ergebnisse des Forschungsprojektes später in einem IFA-Report (IFA-Report 2/2016; www.dguv.de/webcode/d1023063) zu diesem Thema aufzubereiten und zu veröffentlichen. Neben der Darstellung der eigentlichen Entwicklungsmethode erhält die Zielgruppe damit weitere notwendige Informationen und Interpretationen zu normativen Anforderungen an Anwendungssoftware. Dabei werden auch die Änderungen der Normenreihe DIN EN ISO 13849, Teil 1 und Teil 2, in Bezug auf Anwendungssoftware betrachtet – also zum Beispiel die Themen ‚Validierung von Software‘ und ‚Einsatz von Standardkomponenten‘. Der IFA-Report 2/2016 ergänzt somit den bekannten IFA-Report 2/2017 (Funktionale Sicherheit von Maschinensteuerungen; vorher BGIA-Report 2/2008), der sich mehr auf die Zuverlässigkeit der Steuerungshardware und der Berechnung ihrer Ausfallwahrscheinlichkeiten konzentriert.
Das IFA-Tool Softema
Zur effizienten und qualitätsgesicherten Umsetzung der IFA-Matrixmethode entwickelte das IFA schließlich ein Softwaretool mit dem Namen Softema. Dieses Tool verwaltet die für die IFA-Matrixmethode notwendigen Tabellen und darüber hinaus die für das Projektmanagement notwendigen Informationen wie Projektbeschreibung, Benutzerverwaltung, Änderungsprotokolle oder auch das Dokumentenmanagement. Zudem lassen sich mit Softema die zum Download angebotenen Beispiele für die IFA-Matrixmethode betrachten. Nicht zuletzt können mittels der Software eigene Projekte neu erstellt und bearbeitet werden.
Softema kann jeweils eine Projektdatei für die Spezifikation und Dokumentation eines Anwendungsprogrammes öffnen und bearbeiten. Allerdings lässt sich die Software mehrfach ausführen, um verschiedene Projekte und Anwendungsprogramme parallel bearbeiten zu können. Die entsprechenden Projektdateien verwenden den Dateityp ‚Microsoft Excel-Arbeitsmappe‘ (*.xlsx) und können somit wahlweise mit Softema oder mit Microsoft Excel direkt bearbeitet werden. In letzterem Fall sind alle Tabellen frei editierbar, unter Softema sind die Inhalte durch die Benutzerverwaltung geschützt.
Folgende Funktionen werden zunächst von Softema unterstützt:
- Tabellen, Spalten und Zeilen können in der Projektdatei benutzungsspezifisch ergänzt und angepasst werden.
- Automatische Aktualisierung von Tabellen bei Modifikation von Eingabedaten.
- Formale Verifikation von Tabellen auf fehlende, widersprüchliche oder doppelte Einträge.
- Verwaltung der Mitarbeitenden im Projekt.
- Rollenbasierte Benutzungsberechtigungen.
- Unterstützung bei der Verifikation, Validierung und Prüfung.
- Unterstützung bei Modifikationen.
- Spezifische Editoren für die verschiedenen Zelleninhalte.
- Verwaltung von Dokumenten und Änderungen.
- Undo/Redo-Funktionen, Suchen/Ersetzen-Funktionen.
- Spezifische Druckfunktionen und -reports.
Der Projektierungsablauf
Der typische Projektierungsablauf mit Softema ist wie folgt: Für ein neues Projekt öffnet man eine leere, aber schon vorformatierte Projektvorlage. Nach Ausfüllen der Projektbeschreibung (Tabelle ‚Projekt‘) sind in der Tabelle ‚A1 Sicherheitsfunktionen‘ (siehe Bild 2) die Sicherheitsfunktionen mit ihren Eigenschaften wie PLr, Betriebsart, Priorität usw. einzutragen. In Tabelle ‚A2.4 IO-Liste‘ werden die Eingangs- und Ausgangssignale eingetragen beziehungsweise importiert, jeweils mit Variablennamen und Hardware/Netzwerk-Adressen. In sämtliche Tabellen lassen sich auch externe Inhalte über die Zwischenablage kopieren und einfügen.
Der Katalog fehlervermeidender Maßnahmen und die Programmierregeln können in Tabelle ‚A3 Maßnahmen‘ ausgewählt und angepasst werden. Anhand der Sicherheitsfunktionen, der Peripheriehardware und der I/O-Liste ergibt sich die Liste der erforderlichen Funktionsbausteine für Vorverarbeitungs- und Nachverarbeitungsebene. Diese können in Tabelle ‚B3 Modularchitektur‘ verwaltet werden. Mit diesen Vorbereitungen kann schließlich die Tabelle ‚B4 Matrix C+E‘ ausgefüllt werden (siehe Bild 3). Dies erfolgt mit den Schaltflächen zur automatischen Aktualisierung für I/O-Signale und Sicherheitsfunktionen.
Die eigentliche Software-Spezifikation erfolgt ebenfalls in der Tabelle ‚B4 Matrix C+E‘ durch Eintragen der logischen Verknüpfung der Signale für die Schaltvorgänge auf die Ausgangssignale (rechter Bereich im Bild 3). Letzteres ist für die Codierung der Ansteuerlogik nötig. Ein spezialisierter Editor hilft bei dieser Verknüpfung. Spätestens zu diesem Zeitpunkt sollten alle verfügbaren Funktionen zur formalen Verifikation der genannten Tabellen genutzt worden sein, um Auslassungen, Dubletten und Widersprüche aufdecken und korrigieren zu können.
Nach der Verifikation aller Eingangsdokumente und der oben beschriebenen Spezifikation kann die Codierung des Programms erfolgen. Der Code wird ebenfalls verifiziert. Dieser Vorgang wird in verschiedenen Tabellen im Detail und zusammenfassend auch in Tabelle ‚C1 Codereview‘ dokumentiert. Danach wird das Programm validiert, was ebenfalls in verschiedenen Tabellen einzeln dokumentiert und in Tabelle ‚D1 Validierung‘ (siehe Bild 4) zusammengefasst wird. Personen, die anschließend das Projekt prüfen, können ihre Tätigkeit ebenfalls dokumentieren und kommentieren.
Bei Modifikationen der Sicherheitsfunktionen oder der I/O-Signale werden die Änderungen aus diesen Tabellen wiederum in der Spezifikationstabelle automatisch aktualisiert und vom Benutzer überarbeitet.
Zusammenfassend lässt sich festhalten: Mit dem beschriebenen Tool Softema kann die Spezifikation, Validierung und Dokumentation der Anwendungssoftware von Sicherheitsfunktionen normgerecht unterstützt werden. Die Vorgehensweise ist herstellerunabhängig und auch unabhängig von der Programmiersprache und vom Performance Level. Bei Einhaltung der beispielhaft aufgezeigten Vorgehensweise kann davon ausgegangen werden, dass die für den Entwicklungsprozess relevanten Anforderungen der DIN EN ISO 13849-1 bezüglich der sicherheitsbezogenen Anwendungssoftware erfüllt sind. Neben dieser Vorgehensweise gibt es sicher auch andere Methoden, mit denen die Anforderungen ebenfalls gleichwertig zu erfüllen sind.
Seit kurzem steht Softema als Betaversion auf Anfrage beim IFA ([email protected]) zur Verfügung. Die erste Freigabeversion des Freeware-Tools ist für Mitte 2019 geplant.
Autor:
Dr. Michael Huelke leitet das Referat „Neue Technologien, Mensch und Technik“ am IFA.














