Entwicklung eines Codegenerators für SOFTEMA

Projekt-Nr. IFA 5155

Status:

abgeschlossen 09/2022

Zielsetzung:

Sicherheitsfunktionen an Maschinen werden heute immer öfter von Maschinenherstellern auf Sicherheitssteuerungen programmiert. Deren hohe Zuverlässigkeit hängt u. a. von hochwertig entwickelten und geprüften Programmen ab. Daher wurde in den vergangenen Jahren im Institut für Arbeitsschutz der Deutschen Gesetzlichen Unfallversicherung (IFA) das Softwaretool SOFTEMA zur Unterstützung der Anwendungsprogrammierung von Sicherheitssteuerungen entwickelt. Eine wesentliche Funktion von SOFTEMA ist, dass man die logischen Verknüpfungen von Schutzeinrichtungen an einer Maschine und den (die Gefahren abschaltenden) Steuerungsteilen in einer Matrix spezifiziert. Auf Basis dieser Spezifikationsmatrix können die Sicherheitsfunktionen nach der Programmierung auch systematisch getestet werden. Dabei erfolgt aber ein Medienbruch zwischen Spezifikation und Programmcode, da die Programmierenden diese logischen Verknüpfungen dann manuell aus der Matrix in den Editor für das Sicherheitsprogramm übertragen müssen. Dieser Schritt ist fehleranfällig, aufwändig und motiviert daher nicht unbedingt zur Anwendung von SOFTEMA. Bei den üblichen, wiederholten Modifikationen des Sicherheitsprogramms kann dies auch dazu führen, dass Spezifikation und Testplan aus Zeitgründen nicht mehr aktualisiert werden.

Aus dieser Spezifikationsmatrix aller logischen Verknüpfungen kann allerdings durch einen Algorithmus ein Programmbaustein in den üblichen Steuerungssprachen erzeugt und in den Programmcode eingefügt werden. Das IFA wird daher SOFTEMA um solch einen automatischen Codegenerator ergänzen. Derartige Codegeneratoren sind in anderen Industriebereichen (z. B. Bahntechnik, Prozesstechnik) schon länger üblich. Der generierte Code wird dann in Dateien mit einem international standardisierten, herstellerübergreifenden Format gespeichert und kann in die Programmeditoren der Steuerungen importiert werden. Eine Änderung der Spezifikation könnte dann ohne großen Aufwand und ohne potenzielle menschliche Fehler in das Sicherheitsprogramm übertragen werden.

Aktivitäten/Methoden:

In einem ersten Schritt wurden die Anforderungen an den Codegenerator mit den verschiedenen Nutzergruppen abgestimmt und dokumentiert und dabei auch Änderungen für SOFTEMA selbst ermittelt, z. B. bei dessen Schnittstellen zum Codegenerator. Dann wurden die notwendigen Softwarekomponenten ausgewählt. Gemäß den Anforderungen wurde die Software des Codegenerators in angemessenen Schritten kodiert und getestet. Es wurde gleichzeitig eine Testumgebung entwickelt. Wegen der geforderten hohen Zuverlässigkeit wurde bei der Entwicklung auf Diversität und Redundanz der Generatorsoftware geachtet. Neben diesen technischen Maßnahmen wurden auch organisatorische Maßnahmen zur Fehlervermeidung getroffen. Die Prototypen wurden im Rahmen von internen und externen Pilotprojekten erprobt. Verbesserungsvorschläge und zusätzliche hilfreiche Funktionen wurden, falls zeitlich möglich, noch für eine erste Freigabeversion realisiert. Gleichzeitig wurde eine Anwendungsdokumentation für den Codegenerator erstellt.

Ergebnisse:

Der entwickeltet SOFTEMA-Codegenerator ermöglicht die Generierung von Programmcode aus der "CE-MATRIX"-Tabelle in unterschiedlichen Darstellungen wie Funktionsbausteindiagramm (FBD) oder Strukturierter Text (ST-Code). Der SOFTEMA-Codegenerator ist ein selbstständiges Programm und greift in keiner Form auf Programmcode von SOFTEMA zurück. Die Implementierung des SOFTEMA-Codegenerators erfolgte vollständig eigenständig.

Um den SOFTEMA-Codegenerator verwenden zu können, wird empfohlen, die Projektdatei mit SOFTEMA zu bearbeiten. Damit wird sichergestellt, dass die formale Form eingehalten wird.

Der aus der Matrix generierte Code wird in einem international standardisierten, herstellerübergreifenden Format (PLCopen) gespeichert und kann aus diesem Grund in diverse Entwicklungsumgebungen von Sicherheitssteuerungen importiert werden. Der direkte Import erhöht die Akzeptanz von SOFTEMA, da die doppelte Arbeit, den Code manuell aus der CE-Matrix zu übertragen, entfällt. Dadurch werden Übertragungsfehler, die andernfalls auftreten könnten, ausgeschlossen. Zusätzlich wurde eine Benutzerdokumentation für den SOFTEMA-Codegenerator erstellt, die den Einstieg in dieses Programm erleichtert.

Zur kontinuierlichen Verbesserung des Programms werden weitere Maßnahmen zur Qualitätssicherung ergriffen und die Validierung der Methode soll zusätzlich von einem externen Institut durchgeführt werden. Dies ist von großer Bedeutung, da nach IEC 61508-3 die Maßnahmen, die der Anwender zur Validierung der Applikation treffen muss, in hohem Maße von der Qualität des verwendeten Offline-Tools abhängt.

Stand:

22.08.2023

Projekt

Gefördert durch:
  • Deutsche Gesetzliche Unfallversicherung e. V. (DGUV)
Projektdurchführung:
  • Institut für Arbeitsschutz der Deutschen Gesetzlichen Unfallversicherung (IFA)
Branche(n):

-branchenübergreifend-

Gefährdungsart(en):

Mechanische Gefährdungen, Elektrische Gefährdungen, Gefährdungsübergreifende Fragestellungen

Schlagworte:

Maschinensicherheit, Sicherheitstechnik

Weitere Schlagworte zum Projekt:

Sicherheitssteuerungen, Software, Programmierung, Codegenerator

Kontakt

Weitere Informationen

  • Lungfiel, A.; Bohlscheid, A.: Entwicklung sicherheitsbezogener Anwendungssoftware mit dem SOFTEMA-Codegenerator (Vortrag), 28. Fachgespräch „Maschinen- und Gerätesicherheit“ (IFA), Sankt Augustin, 30.11. & 01.12. 2022
  • Lungfiel, A.; Bohlscheid, A.: Einführung in SOFTEMA – Die Matrixmethode des IFA (Vortrag), Seminar - Elektrische Ausrüstung und Steuerung von Druck- und Papierverarbeitungsmaschinen (BG-ETEM) – Bernried, 29.06.2022
  • Bohlscheid, A.: Der neue Software-Assistent SOFTEMA Nr. 0431, Ausgabe 06/2022, 2 S. In: Aus der Arbeit des IFA. Hrsg.: Deutsche Gesetzliche Unfallversicherung (DGUV), Berlin - Loseblatt-Ausgabe
  • Bohlscheid, A.; Lungfiel, A.: SOFTEMA-Kochbuch 3: Anwendungsdokumentation zum SOFTEMA-Codegenerator (Alpha–Version 0.0.1) – September 2022