Mit dem Programm-Editor PAS Multi als Strukturierungshilfe lassen sich einfache Funktionsbausteine mit Softwarebausteinen, die zum Beispiel in PAS STL geschrieben sind, kombinieren.

Mit dem Programm-Editor PAS Multi als Strukturierungshilfe lassen sich einfache Funktionsbausteine mit Softwarebausteinen, die zum Beispiel in PAS STL geschrieben sind, kombinieren.Wogi – Fotolia.com, Pilz

Die Softwarelandschaft in der Automation ist traditionell von spezialisierten Werkzeugen geprägt. Typische Beispiele sind Tools für die elektrische und mechanische Konstruktion, Standard- sowie Sicherheitsautomatisierung oder für den Visualisierungspart einer Applikation. Diese Tools ermöglichen eine effektive Abarbeitung von Einzelaufgaben in den jeweiligen Fachgebieten, jedoch wurden bei dieser arbeitsteiligen Herangehensweise die Schnittstellen zwischen den Aufgabengebieten vernachlässigt. Die Konsequenz: Der Blick auf das Gesamtsystem ist der immer weiter fortschreitenden Spezialisierung zum Opfer gefallen.

Für mehr Übersichtlichkeit und Kosteneinsparung sorgt der Trend, Standard und Sicherheit in einer Steuerungsarchitektur zusammenzuführen. Das Problem: Auf Seiten der Software ist die Verbindung der beiden Welten schwierig: Entwickler müssen zwischen einfachen Funktionsbausteinen für Sicherheit und mächtigen Programm-Editoren für die SPS-Steuerung wechseln. Den Anforderungen an leistungsfähige und zugleich anwenderfreundliche Automatisierungslösungen werden solche getrennten Strukturen nicht gerecht.

Programmierung von SPS und Sicherheit – das sagen die Normen

In der Norm EN/IEC 61131-3 sind die Programmiersprachen für Speicherprogrammierbare Steuerungen standardisiert, ST (Strukturierter Text) und AWL beziehungsweise IL (Anweisungsliste, Instruction List) sind die Geläufigsten. Allerdings nimmt die Norm keinen Bezug auf sicherheitsbezogene Steuerungen. Stattdessen verweist die Norm auf die Einhaltung des Entwicklungs- und Validierungsprozesses entsprechend dem wissenschaftlichen Niveau der EN/IEC 61508. Dahinter verbirgt sich ein enormer Aufwand, den jeder Maschinenbauer scheut.

Aber es gibt einen sicheren Weg, diesen komplexen Prozess zu vermeiden und trotzdem flexible Programmiersprachen nutzen zu können: die Einstufung als LVL (Limited Variability Language). Die Anforderungen an die Erstellung von sicherheitsbezogener Anwendersoftware lässt sich nach EN/IEC 62061 und EN ISO 13849-1 nur mit Programmiersprachen erfüllen, die als LVL eingestuft sind. LVL besitzen einen eingeschränkten Sprachumfang und eine übersichtliche Ausdrucksweise. So genannte Full Variability Languages (FVL) bieten demgegenüber alle Möglichkeiten der Programmierung.

Jedoch gibt es in den Normen keinerlei Hinweise darauf, nach welchen Kriterien eine Einstufung als LVL oder FVL erfolgen muss. Lösungsvorgaben wie die Aufzählung von Programmiersprachen sind für den Anwender nicht zielführend. Und wie sollten Programmiersprachen eingestuft werden, die sich nicht explizit als LVL oder FVL kategorisieren lassen. Außerdem ist nicht geklärt, von welchem Funktionsumfang bei der Einstufung als FVL ausgegangen wurde, etwa bei der Anweisungsliste, die explizit unter FVL geführt wird. So unterscheidet sich beispielsweise die Ausdrucksmächtigkeit der Funktionsbaustein-Sprache im Vergleich zur Anweisungsliste nicht – lediglich die grafische Darstellung sorgt für eine übersichtlichere Programmstruktur.

Mit dem Automatisierungssystem PSS 4000 lassen sich Automatisierungslösungen für Standard und Sicherheit umsetzen. Zentrales Bindeglied ist die Software-Plattform PAS 4000.

Mit dem Automatisierungssystem PSS 4000 lassen sich Automatisierungslösungen für Standard und Sicherheit umsetzen. Zentrales Bindeglied ist die Software-Plattform PAS 4000.Pilz

Weniger Funktionen, mehr Sicherheit

Für ein Zusammenwachsen von Standard und Sicherheit ist es also wünschenswert, SPS-Sprachen nach EN/IEC 61131-3 auch für die Programmierung von Sicherheitsaufgaben einsetzen zu können. Die Herausforderung besteht darin, die bislang als FVL-klassifizierte Programmiersprache in eine LVL-Sprache zu überführen, wie es die Firma Pilz bei ihrem Automatisierungssystem PSS 4000 realisiert. Deren zentrales Element ist die Software-Plattform PAS 4000 (Pilz Automation Suite), die verschiedene Editoren und Bausteine zur Verfügung stellt, die gleichermaßen für automatisierungs- wie auch sicherheitstechnische Aufgabenstellungen verwendbar sind.

Konstrukteuren steht die bausteinorientierte Sprache PAS-Multi zur Verfügung, eine umfangreiche Bibliothek an zertifizierten Softwarebausteinen, beispielsweise zur Positionserfassung oder allgemeine Funktionen wie Not-Halt. Anwender können diese Module mit selbst erstellten Funktionsbausteinen ergänzen und kombinieren.

Für Programmierer stehen ebenso Editoren für Anweisungsliste (PAS IL) und Strukturierten Text (PAS STL) zur Verfügung. Dazu wurden diese EN/IEC 61131-3-Sprachen erstmals im Umfeld der industriellen Automatisierung auch als LVL eingestuft. Erreicht wurde dies durch Maßnahmen, die sowohl den Sprachumfang als auch die Fehlermöglichkeiten einschränken. Dazu zählen etwa die Unterstützung und Führung des Programmierers, die unter anderem zur strikten typisierten Verwendung von Konstanten zwingt. Systembedingte Anpassungen einer FS-SPS (Fehlersichere SPS) und Einschränkungen beim Sprachumfang schließen die Programmierung besonders risikoreicher Sprachkonstrukte aus, wie sie der vollständige EN/IEC-61131-3-Befehlssatz bereithält. Fehler wie eine Division durch Null werden zu jeder Zeit von dem Laufzeitsystem der FS-SPS erkannt und führen zum definierten Anhalten der Task beziehungsweise zu einem definierten Zustand des Systems. Sicherheitsgerichtete und nicht ­sicherheitsgerichtete Teile der Applikation sind klar gekennzeichnet und rückwirkungsfrei voneinander getrennt. Ebenso sorgt das System für Datenkonsistenz und überwacht alle Speicherzugriffe.

Diese Maßnahmen erlauben es, EN/IEC-1131-3-Sprachen als LVL einzustufen. Dies bestätigt der TÜV Süd in einem Letter of Conformity für die Editoren PAS STL und PAS IL im Automatisierungssystem PSS 4000: „Die Einschränkungen durch die Programmierumgebung PAS4000 und die Sicherheitssteuerung PSS 4000 führen dazu, dass der Sprachumfang für die Applikationserstellung als Limited Variable Language (LVL) im Sinne der EN 61508-4:2011, EN 62061:2005 und EN 13849-1:2008 betrachtet werden kann.“

Der Anwender erhält damit einheitliche Editoren, die für automatisierungs- wie auch sicherheitstechnische Aufgabenstellungen verwendbar sind. Er kann in einem Projekt vorkonfigurierte Funktionsbausteine mit in EN/IEC-61131-3-konformen Editoren frei programmiertem Quellcode kombinieren. Dies ist ein wesentlicher Schritt hin zur Verschmelzung von Standard und Sicherheit in einer Steuerungsarchitektur und wird den gestiegenen Anforderungen an die Gestaltungsmöglichkeiten in der Programmierung von Sicherheitssteuerungen gerecht.

Das Automatisierungssystem stellt einheitliche Editoren und Konfigurationstools für automatisierungs- und sicherheitstechnische Aufgabenstellungen zur Verfügung.

Das Automatisierungssystem stellt einheitliche Editoren und Konfigurationstools für automatisierungs- und sicherheitstechnische Aufgabenstellungen zur Verfügung.Pilz

Einsatzgebiete sind anspruchsvolle Automatisierungsaufgaben für verteilte Maschinen und Anlagen, sowie auch ­Maschinensteuerungen mit besonderen Anforderungen an die Sicherheit. Beispielsweise sorgt die FS-SPS PSS 4000 in Kombination mit einer mitfahrenden Schutzeinrichtung für ein dynamisches Schutzfeld-Muting. Bei Gefahr für den Werker wird positions- und geschwindigkeitsabhängig automatisch eine sichere Bremsrampe aktiviert. Auch in Applikationen außerhalb der Industrie macht der Einsatz eines sicheren Automatisierungssystems Sinn: Zusammen mit Motion-Control-Komponenten überwacht die Steuerung im Bereich der Bühnentechnik sicher Gleichlauf, Geschwindigkeit und Beschleunigung sowie die Position von Winden für die Bewegung von Kulissen. An Europas größter Hebebrücke ist das Automatisierungssystem nicht nur für die Überwachung von Geschwindigkeit, Seilspannung, Neigung und Gleichlauf der Brückenplattform verantwortlich, sondern automatisiert sicher auch die Bedienungswinde für Gewichtsausgleich (Not-Aus, Zutrittskontrolle), den Besucherstegs (Not-Aus, Zutrittskontrolle) sowie die der Schrankensteuerung für Straßenbahn- und Autoverkehr.

Mehr Freiheit, mehr Validierungsaufwand

Die Einstufung einer SPS-üblichen Hochsprache in LVL ermöglicht es, dass der beschriebene Entwicklungsprozess beziehungsweise die in den entsprechenden Sektornormen aufgeführten Abläufe angewendet werden dürfen. Der Maschinenbauer kann also die gewohnten Entwicklungsprozesse für sein sicherheitsgerichtetes Applikationsprogramm beibehalten. Die Entwicklung als solches vereinfacht sich dadurch aber nicht: Mit der gewonnen Freiheit bei der Erstellung des Applikationsprogramms entsteht mehr Validierungsaufwand als bei der schlichten Parametrierung von Sicherheitsbausteinen. Ein Leitfaden für die Anwendung der Maschinenrichtline zur Erstellung der Applikationssoftware wäre hier sicherlich hilfreich, um dem Anlagenkonstrukteur mehr Sicherheit bei der Umsetzung zu geben.

Technik im Detail

IEC 61131-3 entdeckt funktionale Sicherheit

Die EN/IEC 61131-3 definiert die Möglichkeiten und Mittel der Programmiersprachen für Speicherprogrammierbare Steuerungen (SPS), nimmt jedoch keinen Bezug auf sicherheitsbezogene Steuerungen – bislang jedenfalls. Im Oktober 2012 ist in der Normenreihe zu Speicherprogrammierbaren Steuerungen ein Entwurf zur Funktionalen Sicherheit (Teil 6) erschienen. Dieser enthält die Anforderungen an eine sicherheitsbezogene speicherprogrammierbare Steuerung (FS-SPS). Dabei geht es um die Umsetzung beziehungsweise die Anwendung der Sicherheitsgrundnorm EN/IEC 61508 auf die SPS-Technik.

Der Nutzen dieses Normenteils wird durchaus kontrovers diskutiert, da die verfügbaren FS-Steuerungen bereits nach der Grundnorm EN/IEC 61508 entwickelt wurden. Die Bestimmungen aus den Anwendungsnormen wie EN/IEC 62061 sowie der EN ISO 13849 1 erlauben, sicherheitsbezogene Software im Maschinensektor für alle Performance Level (PL) beziehungsweise Safety Integrity Level (SIL) zu entwickeln. Die Software übernimmt damit eine hohe Verantwortung und bestimmt zu einem wesentlichen Teil die Qualität der zu realisierenden Sicherheitsfunktion. Daher ist es wichtig, verständliche sowie test- und wartbare Software zu erstellen.

Normativ gibt es für die Programmierung einer FS-SPS keine Einschränkungen hinsichtlich der einsetzbaren Mittel. Jedoch erhöht sich mit steigender Komplexität auch der Aufwand für die Nachweisführung und den Test eines Anwenderprogramms. Eine Reduzierung der Komplexität bedeutet in der Programmierung momentan meist eine eingeschränkte Funktionalität. Gängige Anwender-Tools für Sicherheitssteuerungen bieten vordefinierte und bereits zertifizierte Funktionsblöcke an, die parametriert und verschaltet werden können. Eine anspruchsvolle Programmierung ist in der Regel jedoch nicht möglich.