Safety

Dr. Tobias Frank | Günter Herkommer,

Komplexe Sicherheitsfunktionen einfach realisieren

Maschinen und Anlagen werden immer komplexer – und damit auch die Realisierung der erforderlichen Sicherheitsfunktionen. Wie sich die Programmierung von Sicherheitssteuerungen trotzdem effizient erledigen lässt, zeigt das Beispiel der neuen Version von Safeprog 3.00, der sicheren Programmierumgebung von KW-Software.

© KW-Software

Programmierbare elektronische Systeme spielen eine immer wichtigere Rolle bei der Risikominderung von Maschinen und Anlagen. Ihr Einsatz hat verschiedene Vorteile im Vergleich zu konventionellen Sicherheitsrelais. So lassen sich mehrere Sicherheitsfunktionen auf engstem Raum realisieren. Hinzu kommt, dass die zunehmende Komplexität von Anlagen und Maschinen und somit der zu realisierenden Sicherheitsfunktionen nur sehr schwer mittels Relaistechnik abbildbar ist. Schlussendlich spiegelt sich dieser Trend in der Norm EN ISO 13849-1 wider, welche im Gegensatz zu ihrer Vorgängerver­sion, der EN 954-1, das Thema „programmierbare elektronische Systeme mit Sicherheitsfunktion“ weitreichend behandelt.

In puncto einer bestmöglichen Unterstützung des Anwenders durch eine sicherheitsgerichtete Programmierumgebung lassen sich drei wesentliche Methoden unterscheiden:

  • die Analyse von sicheren Signalpfaden im Programmeditor;
  • der grafische Projektvergleich für die Unterstützung eines Konfigurations- und Änderungsmanagements;
  • der Einsatz von Strukturiertem Text (ST) für Sicherheitsanwendungen konform zu Sektornormen.
Anzeige

Analyse sicherer Signalpfade

Bild 1a:Zweikanalig ausgeführten Applikation mit Not-Halt + Schutztür-Überwachung. Der Not-Halt wird im EmergencyStop-Baustein ausgewertet; die Schutztür im Guard­Monitoring-Baustein. Die sicheren Signalpfade sind gelb hervorgehoben. © KW-Software

Neben sicheren Signalen, die ihren Ursprung in einem sicheren Sensor beziehungsweise einem sicheren Eingangs­gerät haben, verarbeiten Sicherheitssteuerungen ebenso Standard-Signale. Diese stammen von „gewöhnlichen“ Feldkomponenten beziehungsweise stellen Prozesswerte der Standardsteuerung dar. Die gemeinsame Verarbeitung von sicheren Signalen und Standard-Signalen ist notwendig, weil eine Automatisierungsaufgabe oft nur durch eine gesamtheitliche Betrachtung zu lösen ist.

Beim kombinierten Einsatz von sicheren Signalen und Standard-Signalen ist bei der Programmierung darauf zu achten, dass die Standard-Signale keinen Einfluss auf die Sicherheitsfunktion haben. Konkret bedeutet dies, dass die sicherheitsgerichtete Abschaltung einer Maschine nicht von einem Standard-Signal beeinflusst werden darf. Ein Standard-Signal darf ein sicheres Signal nicht überbrücken und somit die sicherheitsrelevante Abschaltung verhindern.

Bild 1b: Mit dem Not-Halt-Gerät und der Schutztür-Überwachung soll ein Ventil (Valve_01) angesteuert werden. Der gesamte Pfad ist sicher, da eine Abschaltung immer durch den Zustand ES_Out und GM_Out gewährleistet ist. © KW-Software

Bildet man diese Maßgabe auf die Verknüpfungslogik ab, so bedeutet dies, dass eine logische UND-Verknüpfung eines sicheren Signals mit einem Standard-Signal verarbeitet werden darf. Eine Verarbeitung einer logischen ODER-Verknüpfung darf jedoch nur stattfinden, wenn das resultierende Signal im weiteren Programmverlauf nicht sicherheitsgerichtet ausgewertet wird. Die Qualität des resultierenden Signals entspricht der eines Standard-Signals.

Bild 1c: Das Standard-Signal Enable_Input überbrückt die sicheren Signale ES_Out und GM_Out. Damit darf der sichere Ausgang Valve_01 nicht angesteuert werden. Der Programm-Editor stellt dies farblich dar (rote Schraffierung). © KW-Software

Plausibilitätsprüfungen zur Einhaltung dieser Programmierregeln wurden in Safe­prog seit jeher beim Compilieren durchgeführt. Seit der Version 3.00 kommen diese Programmierregeln zusätzlich bereits beim Editieren der Programm­logik zur Anwendung. Das Analyse-Ergebnis wird unmittelbar im Programm­editor in Form von sicheren Signalpfaden dargestellt beziehungsweise grafisch hervorgehoben (siehe Bild 1 a-c). Der Anwender erhält damit direkt beim Editieren eine visuelle Rückmeldung vom Programmeditor.

Auf den Punkt gebracht: Die Analyse sicherer Signalpfade unterstützt den Anwender bereits beim Editieren hinsichtlich der Vermeidung potenzieller Fehler.

Grafischer Projektvergleich

Bild 2: Grafischer Projektvergleich, der den Unterschied eines Programm-Arbeitsblattes zwischen zwei Projektständen darstellt. Geänderte Objekte sind blau, neue Objekte grün ... © KW-Software

Das Konfigurationsmanagement spielt im Lebenszyklus einer Anlage beziehungsweise Maschine und ihrer Sicherheitsfunktionen eine zentrale Rolle. Mit dem grafischen Projektvergleich wie er in Safeprog 3.00 realisiert wurde, lassen sich unterschiedliche Versionsstände eines Sicherheitsprogramms miteinander vergleichen und die Unterschiede visuell auf­bereiten. Der Projektvergleich beinhaltet den Vergleich der Projektstruktur, der Variablen-Deklarationen, der Parameter­definition und vor allem der Programmquellen der Funktionsbausteinsprache sowie des Kontaktplans. Beim Vergleich der Programmquellen werden folgende Unterschiede erkannt:

  • neue Objekte,
  • gelöschte Objekte,
  • geänderte Objekte,
  • verschobene Objekte.

... und gelöschte Objekte sind rot markiert. Die beiden Abbildungen zeigen den Vergleich derselben Sicherheitsfunktion in verschiedenen Versionsständen.

© KW-Software

Wichtig in diesem Zusammenhang ist, dass nur solche Unterschiede erkannt werden, die unmittelbaren Einfluss auf die Sicherheitslogik haben. So genannter Whitespace wird dagegen nicht berücksichtigt. Ändert sich die Positionierung der Objekte, ohne dass sich deren Abarbeitungsreihenfolge ändert, so wird diese Änderung als nicht relevant klassifiziert und nicht dargestellt. Der Vergleichsmechanismus agiert direkt auf den Programmquellen (PLCopen XML) und benötigt kein gültiges Com­pilat. Somit lassen sich auch Projekte miteinander vergleichen, welche aufgrund von Programmierfehlern nicht übersetzbar sind oder sich mitten in der Entwicklung befinden.

Der grafische Projektvergleich unterstützt also den Anwender letztlich darin, über alle Lebensphasen einer Sicherheitsanwendung hinweg Modifikationen am Sicherheitsprogramm auf einfache Art und Weise nachvollziehen zu können (Bild 2).

Strukturierter Text

Der Entwicklungsprozess für die Realisierung von Safety-Funktionen mittels programmierbarer Sicherheitssteuerungen ist durch die Anforderung geprägt, möglichst in allen Entwicklungsphasen Fehler zu vermeiden. Die Programmierung der Sicherheitsanwendung erfolgt deshalb in Programmiersprachen mit geringer Komplexität und eingeschränktem Funktionsumfang. Der Fachbegriff für diese Art der Programmiersprache lautet Limited Variability Language (LVL). Frei übersetzt könnte man dies als „Programmiersprache mit eingeschränkten Möglichkeiten“ bezeichnen.

Bild 3: Einfacher Dreisatz x = (c*b)/a – einmal in grafischer Programmierung mittels Funktionsbausteinsprache und einmal in textueller Programmierung mittels Strukturiertem Text umgesetzt. © KW-Software

Aufgrund der reduzierten Freiheitsgrade einer LVL wird die Fehlerwahrscheinlichkeit bei der Programmierung der Sicherheitsfunktion reduziert. Typische Vertreter einer LVL sind Kontaktplan und Funktionsbausteinsprache. Textuelle Programmiersprachen wie Anweisungsliste oder C gelten hingegen als Full Variability Language (FVL). Auf Deutsch: Eine FVL ist eine Programmiersprache mit vollem Funktionsumfang. Kennzeichnend dafür ist die Möglichkeit des nicht strukturierten Programmablaufs (Sprünge) oder der Zeigerarithmetik.

Einfache binäre Verknüpfungen lassen sich sehr leicht mit grafischen Programmiersprachen realisieren. Die zunehmende Komplexität von Sicherheitsfunktionen, speziell in den Bereichen Motion Control oder Prozesstechnik, zeigt jedoch, dass grafische Programmierung nicht immer die beste Wahl ist. Insbesondere bei numerischen Berechnungen ist die Schreibweise höherer Programmiersprachen wie Strukturierter Text (ST) weitaus intuitiver und greifbarer als bei grafischen Programmiersprachen (Bild 3).

Da aber einschlägige Sektornormen, wie die ISO 13849, die IEC 62061 oder die IEC 61511, den Einsatz einer LVL vorschreiben, hat KW-Software den in Safeprog 3.00 unterstützten Sprach- und Funktionsumfang für den Einsatz von Strukturiertem Text in der Sicherheitstechnik entsprechend reduziert. Dies führt dazu, dass ST nun als LVL gemäß einschlägiger Sektornormen gilt.

Die angewendeten Einschränkungen im Sprach- und Funktionsumfang richten sich dabei nach den Vorgaben der „PLCopen – Technical Committee 5 – Safety Software Technical Specification“. Die darin definierten Einschränkungen für grafische Programmiersprachen wurden für ST übernommen. So sind zum Beispiel bedingte Anweisungen oder Sprünge nicht verfügbar. Der Anwender kann damit komplexe Sicherheitsfunktionen auf Basis von ST implementieren und hält sich gleichzeitig im Geltungsbereich einschlägiger Sektornormen auf.

Der Editor zur Eingabe des ST-Quelltextes beinhaltet Autovervollständigung oder die Anzeige von Formalparameternamen von Funktionsbausteinen bereits während der Eingabe. Weiterhin gewährleistet sowohl eine syntaktische als auch semantische Analyse während des Editierens, dass Programmierfehler unmittelbar erkannt und dargestellt werden. Die Code-Erzeugung basiert auf zwei divers redundanten Compilern. Das heißt, der Laufzeit-Code für ein zweikanaliges System wird auf zwei unterschiedlichen Wegen erzeugt und die Compilate beider Pfade unterscheiden sich aufgrund der geplanten Diversität stark voneinander. Der Diagnose-Deckungsgrad erreicht dadurch einen hohen Wert bei einem gleichzeitig geringen Wert für Fehler gemeinsamer Ursache.

Die beiden Compiler erzeugen nativen und somit hoch performanten Laufzeit-Code für das sichere Laufzeitsystem Safeos. Für die Code-Analyse kommen dieselben Regeln zur Anwendung wie bei den grafischen Programmiersprachen. Durch diese Analyse des Daten- und Kontrollflusses wird der Anwender auf eine potenziell fehleranfällige Programmierung aufmerksam gemacht.

Kurzum: Strukturierter Text führt insbesondere bei numerischen Berechnungen zu einem leicht verständlichen und wartbaren Programm.

Autor:
Dr. Tobias Frank ist Manager Safety Software bei KW-Software in Lemgo.

  • Xing Icon
  • LinkedIn Icon
Anzeige
Anzeige

Das könnte Sie auch interessieren

Anzeige

Phoenix Contact

PLCnext wird greifbar

Zur SPS IPC Drives 2016 stellte Phoenix Contact mit PLCnext ein Konzept für die Steuerung von morgen vor. Ein Jahr später wird dieses jetzt im wahrsten Sinne des Wortes greifbar.

mehr...
Anzeige
Anzeige

Drucktechnik

Phoenix Contact übernimmt Epsilon

Die Phoenix-Contact-Unternehmensgruppe hat zum 31. August das baden-württembergische Unternehmen Epsilon, Gesellschaft für technische Informatik, übernommen und will sich damit im Bereich Markierung und Installation verstärken.

mehr...
Anzeige

Phoenix Contact

2-Milliarden-Marke im Visier

Phoenix Contact hat die Zahlen für 2016 bekannt gegeben. Demnach konnte die Blomberger Unternehmensgruppe ihren Umsatz im vergangenen Jahr um 3,2 % steigern. In diesem Jahr soll die 2-Milliarden-Euro-Marke fallen.

mehr...
Anzeige
Anzeige
Anzeige

Phoenix Contact

"Digitalisierung ein Muss!"

Wer zu den Gewinnern des anstehenden Paradigmenwechsels in der Industrie gehören will, muss sich frühzeitig den Herausforderungen der Digitalisierung stellen – so das Credo von Phoenix-Contact-Geschäftsführer Roland Bent anlässlich der SPS IPC...

mehr...
Jetzt Newsletter abonnieren