Safety-Programmierung

Christoph Berger, Carina Schlicker und Wolfgang Zeller | Günter Herkommer,

Der Weg zur sicheren Software

Durch die stetige Weiterentwicklung zertifizierter Safety-Funktionen – zum Beispiel durch die PLCopen – ergeben sich neue und flexible Möglichkeiten bei der Entwicklung sicherer Produk­tionsmaschinen. Jedoch stehen nicht für alle erforderlichen Anwendungsfälle standardisierte Lösungen in Form von Bibliotheken bereit.

© Hochschule Augsburg

Moderne Produktionsabläufe sind heute gekennzeichnet durch einen zunehmenden Automatisierungsgrad bei einer gleichzeitig stärkeren Integration des Bedieners in den Prozess. Diese Schritte münden in neue Betriebsarten, in denen eine schnellere Störungsbehebung möglich ist und eine Prozessbeobachtung ohne trennende Schutzeinrichtung zu niedrigeren Ausschussraten führt.

Einen europaweiten Rahmen zur Realisierung sicherheitstechnischer Maßnahmen an Maschinen und Anlagen bilden die Maschinenrichtlinie und harmonisierte Normen. Für die Bestimmung der technischen Schutzmaßnahmen geben die Normen EN ISO 13849-1 mit dem erforderlichen Performance Level (PLr) von a bis e und EN 62061 mittels der Safety Integrity Levels (SIL) 1–3 Methoden zur Klassifizierung einer Gefahrensituation vor. Neu ist, dass auch die Ausfallwahrscheinlichkeit und die Fehlerdiagnose der Komponenten quantitativ betrachtet werden. Bei der Wahl ist allerdings zu berücksichtigen, dass die Norm EN ISO 13849-1 auf  elektrische, elektronische und programmierbar elektronische (E/E/PE), mechanische, pneumatische sowie hydraulische Systeme angewendet werden kann, wogegen sich die EN 62061 auf E/E/PE-Systeme beschränkt.

Anzeige

Bild 1. Bevor mit der Umsetzung eines Safety-Konzeptes begonnen werden kann, gilt es eine Risikobeurteilung nach EN ISO 12100 vorzunehmen. Die Abbildung zeigt die Drei-Stufen-Methode zur Risikominderung.

© Hochschule Augsburg

Der erforderliche SIL oder PLr kann als Sollwert für die Umsetzung jeder Sicherheitsfunktion angesehen werden. Mit dem steigenden Gefahrenpotenzial durch die hohe Bewegungsdynamik an modernen Maschinen und der engen Mensch-Maschinen-Interaktion – zum Beispiel beim Rüsten und Einrichten – geht häufig ein PLr von „c“ oder höher einher. Auf diesen Sollwert wird mit unterschiedlichen Kategorien in Form von ein- oder zweikanaligen Strukturen (Kat.) und mit Maßnahmen gegen Fehler gemeinsamer Ursache (CCF) reagiert.

Die normativen Anforderungen bei einem PLr ≥ „c“ hinsichtlich der Zuverlässigkeit (MTTF) und des Diagnosedeckungsgrades (DC) sind mit elektromechanischen Betriebsmitteln aus wirtschaftlichen oder technischen Gründen oftmals nicht zu realisieren. Weitaus größere Möglichkeiten bei der Gestaltung von sicherheitsrelevanten Systemen eröffnen sich mit Sicherheitsbauteilen, Sicherheitssteuerungen und antriebsintegrierten Sicherheitsfunktionen.

Für die Verarbeitung sicherheitsrelevanter Informationen ergeben sich drei alternative Realisierungsmöglichkeiten von Sicherheitssystemen, die sich in Flexibilität und Leistungsfähigkeit unterscheiden.

Kompakte Sicherheitsrelais bieten eine vergleichbar geringe Flexibilität. Je nach Sicherheitsapplikation, wie etwa Not-Halt, Zweihandtaster oder Zeitüberwachung, muss ein separates Modul verwendet werden. Der Vorteil liegt in der robusten und einfachen Integration ohne Programmieraufwand. Eine höhere Flexibilität besitzen sichere konfigurierbare Steuerungssysteme, die sich zur Realisierung mehrerer Sicherheitsfunktionen an einer Maschine oder Anlage eignen. Mit einem zumeist modularen Aufbau lassen sich diese an die Maschinen- und Anlagengröße anpassen. In der Entwicklungsumgebung können sichere Software-Funktionen, wie Drehzahl- oder Stillstandwächter, sichere Analogeingangsmodule oder o.g. Funktionen, konfiguriert werden. Der größte Freiheitsgrad ergibt sich mit einer Sicherheitssteuerung (SI-SPS). Dabei ist es auch möglich, betriebs- und sicherheitstechnische Applikationen in einem Steuerungssystem abzubilden. Die Umsetzung sicherheitsrelevanter Programme erfolgt meistens mit zertifizierten Bibliotheken.

Bild 2. Antriebsintegrierte Sicherheitsfunktionen ST0 (a), SS1 (b) und SLS (c). Im rot markierten Bereich wird dem Motor keine Energie zugeführt. Bei einer Überschreitung der Geschwindigkeit (v) erfolgt eine sofortige Stillsetzung.

© Hochschule Augsburg

Das generelle Merkmal aller drei Varianten ist die hohe Widerstandsfähigkeit gegen Fehler. Die Verarbeitung des sicherheitsrelevanten Programms erfolgt in einem Sicherheitssystem mit den zusätzlichen Maßnahmen zweikanaliger Hardware-Aufbau von zum Beispiel CPU, Arbeitsspeicher und Spannungsversorgung, zeitliche und logische Überwachung von Programmabläufen, Kreuzvergleich von Eingangssignalen, Zwischenergebnissen und Ausgangswerten, Eigentests der CPUs, Festwert- und Arbeitsspeicher, Erkennung von statischen Ausfällen und Kurzschlüssen.

Nach der Erfassung und Verarbeitung folgt die sicherheitstechnische Überwachung und Freigabe der Erzeugung von Bewegung, beispielsweise mittels elektrischer Antriebstechnik. Mit den antriebsintegrierten Sicherheitsfunktionen, wie etwa sicher abgeschaltetes Moment (STO), sicherer Betriebshalt (SS1) oder sicher begrenzte Geschwindigkeit (SLS), ergeben sich zuverlässige Möglichkeiten für die Überwachung und Reaktion im Fehlerfall.
In Bild 2 ist das zeitliche Verhalten des Eingangssignales zur Aktivierung (Zeitpunkt t1) der genannten Funktionen und der Geschwindigkeit der bewegten Maschinenkomponente grafisch dargestellt.

Der Weg zur sicheren Software

Zur Umsetzung der sicheren Software-Lösungen ergeben sich aus normativen und funktionalen Anforderungen unterschiedliche Ansätze. Die erste Möglichkeit ist der Einsatz sicherer Funktionsbausteine. Bei dieser Art der Entwicklung sind die sicheren Funktionen in einer Steuerung beziehungsweise Entwicklungsumgebung in Form von Bibliotheken vorgegeben, die von einer benannten Stelle überprüft wurden. Bereits während der Parametrierung der jeweiligen Funktionen werden die Eingaben auf Plausibilität und Korrektheit geprüft. Die gestalterische Freiheit ergibt sich durch die Verknüpfung der Ausgänge der jeweiligen Funktionen mit logischen Operationen.

Bild 3. Vergleich zwischen externer und interner Sicherheitstechnik für die Realisierung des Stillsetzens eines elektrischen Motors nach DIN EN 60204-1, Stopp-Kategorie 0.

© Hochschule Augsburg

Durch eine stetige Weiterentwicklung zertifizierter Sicherheitsfunktionen, etwa durch die PLCopen, tun sich neue und flexible Möglichkeiten innerhalb der Entwicklung auf. Die Schwerpunkte bei dieser Methode sind die Einbindung von Betriebsmitteln wie Sicherheitsschalter, Zustimmungstaster, Ventile oder Betriebsartenwahlschalter. Allerdings existieren bis dato nicht für alle relevanten  Anwendungsfälle bei Produktionsmaschinen standardisierte Lösungen in Form von Bibliotheken. Speziell bei Sicherheitsfunktionen, die digitale Werte zur Berechnung benötigen, bestehen noch Defizite. Die Grenzen zeigen sich zum Beispiel bei der Überwachung einer durchmesserabhängigen Oberflächengeschwindigkeit bei der Materialabrollung. Diese und weitere Aufgabenbereiche sind mit den aktuellen sicheren Bibliotheken nicht zufriedenstellend abbildbar.

Bild 4. Ausschnitt aus der Programmierung für die Betriebsart „Erweiterter manueller Eingriff“ mit Sicherheitsfunktionen und zusätzlichen logischen Verknüpfungen.

© Hochschule Augsburg

So zeigt Bild 4 einen Teil der Umsetzung der Betriebsart „Einrichten mit manuellem Eingriff“ mit proprietären Funktionen und logischen Verknüpfungen. In dieser Betriebsart kann der Bediener einzelne Maschinenbewegungen bei geöffneter Schutztüre mit eingeschränkter Leistungsfähigkeit zulassen, solange er den Zustimmungstaster gedrückt hält. Die Voraussetzung hierfür ist, dass die gefahrbringenden Bewegungen während dieser Betriebsart reduziert und mit der antriebsintegrierten Sicherheitsfunktion „Sicher begrenzte Geschwindigkeit“ (SLS) überwacht werden.

Standardisierte Sicherheitsfunktionen hingegen haben den Vorteil, dass neben der Einsparung zusätzlicher logischer Verknüpfungen die Funktion inklusive Diagnose bereits umfangreich dokumentiert vorliegt. So könnte die neue Sicherheitsfunktion für den „erweiterten manuellen Eingriff“ den Namen „SF_ExtManualOperation“ tragen. Durch die Funktion „SF_ExtManualOperation“ in Verbindung mit „SF_EnableSwitch“ und „SF_GuardMonitoring“ der PLCopen lässt sich eine äquivalente Funktionalität zum Programm in Bild 4 realisieren. Teil der Dokumentation standardisierter Sicherheitsfunktionen sind neben einer textuellen Beschreibung auch Zeit- und Zustandsdiagramme (Bild 5).

Bild 5. Umsetzung der Betriebsart „Erweiterter manueller Eingriff“ in Form eines vereinfachten Zustandsdiagramms (links) und der Sicherheitsfunktionsbaustein „SF_ExtManualOperation“ (rechts).

© Hochschule Augsburg

Modellbasierte Ansätze bieten als zweite Möglichkeit einen höheren Freiheitsgrad und sind im Bereich sicherheitsrelevanter Steuerungs-Software in verschiedenen technischen Branchen – etwa in der Luftfahrt oder in Kraftfahrzeugen – seit Längerem im Einsatz. Mit Hilfe von Software-Modellen können Entwickler ihre Entwürfe bereits deutlich früher ausführen, prüfen und Änderungen vornehmen. DIN EN 61508 empfiehlt zum Entwurf sicherer programmierbarer Systeme explizit den Einsatz formaler Methoden wie die modellbasierte Entwicklung.

So kann das Modell zum Beispiel als UML-Statechart-Objekt erstellt oder mittels Simulink beziehungsweise State­flow von Mathworks simuliert werden. Mit der im Jahr 2010 vom TÜV Süd zertifizierten Toolbox „Simulink PLC Coder“ wird dann das Modell in die SPS-Programmiersprache Strukturierter Text (ST) umgewandelt.

Bild 6. Darstellung des Zustandsdiagramms (links) und generierter Programmcode (rechts) in strukturiertem Text.

© Hochschule Augsburg

In Bild 6 sind die Struktur des Zustandsdiagramms und der generierte Code zu sehen. Die Zustände aus dem Diagramm spiegeln sich im generierten Code in einer IEC-61131-3-konformen CASE-Verzweigung wider. Die jeweiligen Prioritäten der Transitionen werden in IF-THEN-ELSE-Anweisungen umgesetzt.

Die Integration des Programmcodes Strukturierter Text in eine Sicherheitssteuerung ist hierbei aber noch nicht in allen am Markt vertretenen SI-Steuerungen möglich. Und nur sehr wenige Entwicklungsumgebungen besitzen eine Schnittstelle für das Importieren von sicherheitsrelevantem ST-Programmcode. Dieser Aspekt ist für das industrielle Umfeld aktuell ein Hemmnis. Des Weiteren können spätere Änderungen im generierten Programm nicht automatisch in das Modell zurück übernommen werden.

Neben der Nutzung von Entwicklungsumgebungen mit grafischen Programmiersprachen wie etwa Funktionsbausteinsprachen (FBS) ist es auch möglich, SPS-Programmiersprachen mit eingeschränktem Sprachumfang als dritte Alternative zu verwenden. Trotz der Einschränkung im Sprachumfang können logische Befehlsstrukturen wie IF-THEN-ELSE, FOR-Schleifen, CASE-Anweisungen verwendet und mit Zahlen des Datentyps „Integer“ gerechnet werden. So ergibt sich ein hoher Freiheitsgrad bei der Gestaltung der Software. Innerhalb der Entwicklung müssen Programmierrichtlinien gelten, um generelle Fehler aufgrund mangelnder Lesbarkeit oder bei der Dokumentation des Programmcodes zu minimieren.

Die Software-Dokumentation muss in einer Ausführlichkeit erfolgen, so dass diese stets nachvollziehbar ist.

Der Aufbau der Funktionen soll modular mit sinnvollen und logischen Einheiten erfolgen. Im Weiteren ist darauf zu achten, dass die Anzahl der Programmzeilen gering und übersichtlich bleibt.
Jede Funktion ist mit einem Kommentarbereich zu versehen, mit u.a. Funktionsname, Kurzbeschreibung, Versionsnummer, Beschreibung der Parameter und Bearbeiter.
Grundsätzlich ist auf eine defensive Programmierung, einen einfachen Aufbau von Schleifen, die Beachtung des Wertebereichs von Variablen und auf aussagekräftige Variablennamen zu achten.
Nach der Erstellung der Funktionen muss noch ein Funktionsnachweis erbracht werden. Dabei ist die Validierung der sicheren Software-Funktionen durchaus anspruchsvoll. Die Funktionen müssen hinsichtlich der Spezifikation auf Funktionalität, die Reaktion auf Fehler und Defekte von Bauteilen geprüft werden.

Mit Coding Conventions zu mehr Freiheit

Die Überwindung der angesprochenen Defizite im beschränkten Umfang sicherer standardisierter Funktionsbausteine, aber auch im Bereich des flexiblen Einsatzes sicherheitsrelevanter Steuerungen sind Gegenstand des Forschungsprojektes „Flexible Automation und Kooperative Robotik“ der Zukunftsinitiative „Aufbruch Bayern“ am Technologietransferzentrum Donau-Ries in Nördlingen und der Hochschule Augsburg.

„Sichere“ Programmiersprachen: Empfehlung der Programmiersprachen zur Programmierung sicherheitsrelevanter Steuerungen nach DIN EN 61508-7. ++ besonders empfohlen, + empfohlen, o keine Empfehlung, – ausdrücklich nicht empfohlen.

© Hochschule Augsburg

Programmierrichtlinien haben in der Entwicklung sicherheitsrelevanter Software bereits heute ihren festen Platz. Die Übertragung positiver Aspekte aus dem Bereich der Sicherheit auf die Steuerungs-Software für Maschinen und Anlagen, aber auch die praxisgerechte Ausgestaltung dieser Programmierrichtlinien sind ein Arbeitsschwerpunkt dieses Forschungsprojekts. Die Gründung der Arbeitsgruppe „Coding Conventions“ durch die PLCopen im Jahr 2013 unterstreicht die große Bedeutung der Software-Qualität und -Wiederverwendbarkeit in Verbindung mit einem effizienten Entwicklungsprozess im Maschinen- und Anlagenbau.

Durch die aktive Zusammenarbeit mit der PLCopen auch bei der Standardisierung von Funktionsbausteinen werden die Erfahrungen aus der Praxis in zukünftige Standardisierungstätigkeiten einfließen. Mit der Realisierung von unterschiedlichen Projekten lassen sich Konzepte erarbeiten, die den gesamten Software-Lebenszyklus unter normativen und funktionalen Anforderungen betrachten. Diese Arbeiten stehen im Einklang mit dem V-Modell der DIN EN 61508-3 und helfen bei der praxisgerechten Umsetzung der Sicherheitstechnik in Maschinen und Anlagen.

Autoren: Christoph Berger ist wissenschaftlicher Mitarbeiter und MAPR-Student an der Hochschule Augsburg, Carina Schlicker ist wissenschaftliche Mitarbeiterin und MAPR-Studentin an der Hochschule Augsburg und Prof. Dr.-Ing. Wolfgang Zeller ist Professor für Automatisierungstechnik an der Hochschule Augsburg und leitet das Labor Industrial Control Safety and Motion.

  • Xing Icon
  • LinkedIn Icon
Anzeige
Anzeige

Das könnte Sie auch interessieren

Anzeige

ISW / Silistra

Wandelbare Produktionssysteme

Traditionelle Sicherheitslösungen stoßen in dynamischen Produktions-umgebungen an ihre Grenzen, das heißt, es bedarf neuer, adaptiver Sicherheitsfunktionen. Wie kann das Projekt ‚SafeFloat‘ hier helfen?

mehr...
Anzeige
Anzeige

Wireless Safety

Sicher bedienen via Funk - (wie) geht das?

Viele Maschinenbauer möchten Tablets zusätzlich zur existierenden Maschinenbedienung verwenden. Nachgefragte Features wie WLAN, Kamera, Multitouch und vieles mehr sind hier zwar gegeben – sind allerdings Sicherheitsfunktionen gefordert, stoßen diese...

mehr...
Anzeige

EN ISO 13849

Validierung stiefmütterlich behandelt

Bei der Einbindung sicherheitsgerichteter Steuerungsfunktionen in Maschinen ist die EN ISO 13849 maßgeblich. Dabei wird allerdings der die Validierung betreffende Teil der Norm in der Praxis oftmals vernachlässigt – ein großes Manko.

mehr...
Anzeige
Anzeige
Anzeige

Safety

Der intelligente Sicherheitsschalter

Auf I4.0-Niveau kommunizierende Sicherheitsmodule und Sicherheitsschalter vereinfachen die Fehlersuche. Aber auch für die vorausschauende Instandhaltung sowie den Manipulationsschutz birgt die Kommunikationsfähigkeit interessantes Potenzial.

mehr...

Funktionale Sicherheit

Sicherer Halt im Schleifring

Sicherheitsrelevante Daten über Schleifringe zu übertragen ist nicht trivial. Motion-Control-Experten von Kollmorgen haben dafür gemeinsam mit dem Schleifringhersteller Stemmann-Technik eine TÜV-zertifizierte Safety-Lösung samt UL-Zulassung...

mehr...
Jetzt Newsletter abonnieren