Das Beste aus beiden Welten Sicherheit und Standard unter einer Oberfläche programmieren

Das Gebot der Rückwirkungsfreiheit bedeutete in der Vergangenheit strikt getrennte Architekturen für Standard-Maschinensteuerung und Sicherheitsfunktionen. Aus Gründen der Übersichtlichkeit und Kosteneinsparung geht der Trend heute dazu, Standard und Sicherheit in einer Steuerungsarchitektur zusammenzuführen. Gerade beim Einsatz von dezentraler Peripherie setzen sich solche gemischten Aufbauten durch, um beispielsweise den Verkabelungsaufwand zu minimieren. Schwierig ist die Verbindung der beiden Welten bislang auf Seiten der Software: Entwickler müssen bislang zwischen einfachen Funktionsbausteinen für Sicherheit und mächtigen Programm-Editoren für die SPS-Steuerung wechseln. Sichere Programmierung mit Funktionsbausteinen Für die Programmierung von Sicherheitsapplikationen stehen heute die Sicherheitsfunktionen in so genannten zertifizierten Anwendungsbausteinen bereit. Akkreditierte Stellen wie BG oder TÜV haben diese vorab sicherheitstechnisch geprüft. Mithilfe sicherer Anwendungsbausteine und Logikverknüpfung der Bausteine untereinander erstellt der Maschinen- oder Anlagenbauer die geforderte sicherheitsgerichtete Applikation, die er früher umständlich und zeitaufwändig über die Verdrahtung von Schützen und Schaltgeräte realisiert hätte. Grafische Linien am Bildschirm zwischen den vorgefertigten Anwendungsbausteinen ersetzen Kontakte und Drähte. Die Erstellung eines elektrischen Schaltplanes mit der Abbildung der Logikfunktionalitäten entfällt. Um sicherzustellen, dass Programme übersichtlich und verständlich bleiben, hat man bei den meisten Systemen den Befehlssatz und/oder die Anzahl der verfügbaren Editoren begrenzt. Eine anspruchsvolle Programmierung wie man sie aus der Standard-SPS-Maschinensteuerung kennt, ist in der Regel jedoch nicht möglich. SPS-Programmierung mit Hochsprachen Dort kommen standardisierte Programmiersprachen nach EN/IEC61131-3 zum Einsatz. Die Norm EN/IEC61131-3 ist ein internationaler Standard für Programmiersprachen von speicherprogrammierbaren Steuerungen. Zu den geläufigsten Sprachen gehören ST (Strukturierter Text) und AWL bzw. IL (Anweisungsliste, Instruction List). Jedoch nimmt die Norm keinen Bezug auf sicherheitsbezogene Steuerungen. Für ein Zusammenwachsen von Standard und Sicherheit ist es also wünschenswert, SPS-Sprachen nach EN/IEC61131-3 auch für die Programmierung von Sicherheitsaufgaben einsetzen zu können. PSS 4000: Verschmelzung von Standard und Sicherheit Die Verschmelzung von Standard und Sicherheit steht im Mittelpunkt des Automatisierungssystem PSS 4000 von Pilz. Damit lassen sich Automatisierungslösungen für Standard und Sicherheit umsetzen, die für den Anwender einfach zu handhaben sind. Der Programmierer bzw. Anwender erhält die Freiheit, die Konfiguration mit Funktionsbausteinen oder Programmierung mit Quellcode in EN/IEC61131-3 konformen Editoren zu kombinieren. Zentrales Element hierfür ist die Software-Plattform PAS4000 mit verschiedenen Editoren und Bausteinen. Mit der Software-Plattform PAS4000 bekommt der Anwender einheitliche Editoren, die für automatisierungs- wie auch sicherheitstechnische Aufgabenstellungen verwendbar sind. Eine Programmierumgebung für alle Aufgaben: Konfigurieren und … Für Konstrukteure steht die einfache, bausteinorientierte Sprache PASmulti zur Verfügung. In PASmulti steht zudem eine umfangreiche Bibliothek an bereits zertifizierten Softwarebausteinen zur Verfügung, beispielsweise zur Positionserfassung oder für allgemeine Funktionen wie Not-Halt, die der Anwender um selbst erstellte Softwarebausteine ergänzen kann. Die Bausteine der Software-Plattform PAS4000 vereinfachen die Erstellung von Automatisierungsprogrammen maßgeblich. So können Projekte auch funktional gegliedert und strukturiert werden. Des Weiteren lassen sich Änderungen im Softwarebaustein zentral dokumentieren und verwalten. Damit ist eine hohe Wiederverwendbarkeit gegeben und so können letztendlich Kosten gespart werden. Der Anwender muss für PASmulti keine Programmiersprache beherrschen. … Programmieren nach EN/IEC61131-3 Für \’echte\‘ Programmierer stehen in PAS4000 aber auch die Editoren PAS IL für Anweisungsliste und PAS STL für Strukturierten Text zur Verfügung. Die Besonderheit ist, dass diese EN/IEC61131-3-Sprachen erstmals im Umfeld der industriellen Automatisierung auch als LVL (s. Kasten) eingestuft werden: Dank systembedingten Abwandlungen und Einschränkungen sowie Toolunterstützung bei der Eingabe stuft der TÜV Süd die in PAS4000 angebotenen EN/IEC61131-3-Sprachen als LVL ein. Dadurch können die Anforderungen an die Erstellung von sicherheitsbezogener Anwendersoftware (SRASW) der Anwendungsnormen wie EN/IEC62061 und EN ISO13849-1 erfüllt werden. Der Programmierer kann so seine gewohnte Programmiersprache weiter nutzen und sich der Ausdrucksweise und Funktionen dieser Programmiersprachen bedienen, um seine Applikationssoftware zu erstellen. Und er muss dabei nicht seinen kompletten Entwicklungs- und Validierungsprozess auf das wissenschaftliche Niveau der EN/IEC61508 anheben. Mischen möglich Die identische Programmierumgebung des grafischen Programm-Editors und der Editoren nach EN/IEC61131-3 erlauben eine einfache Handhabung. So können etwa Softwarebausteine, die durch den Anwender in PAS IL (Anweisungsliste) individuell für Standard- oder sicherheitsgerichtete Funktionen geschrieben werden, ohne Weiteres auf PASmulti übertragen werden. Es lassen sich so komplexe Projekte mit Softwareteilen aus verschiedenen Editoren übersichtlich strukturieren. Dabei können die Applikationen auf dieselbe Datenbasis zugreifen, was eine zentrale Sicht auf ein verteiltes System ermöglicht. Kasten: Sicher oder nicht sicher: Die Klassifizierung entscheidet Für die Sicherheit von Applikationssoftware (SRASW) gelten im Maschinen- und Anlagenbau die Anwendernormen EN/IEC62061 sowie die EN ISO13849-1. Diese unterscheidet in FVL- (Full Variability Language) und LVL- (Limited Variability Languages) Sprachen. Als FVL klassifizierte Programmiersprachen bieten alle Möglichkeiten der Programmierung. Aufgrund ihres großen Funktions- und Befehlsumfangs zählen IL und ST neben Hochsprachen wie C bzw. C++ üblicherweise zu den FVL-Sprachen. LVL-Sprachen dagegen besitzen einen eingeschränkten Sprachumfang und eine übersichtliche Ausdrucksweise. Diese Sprachen beschränken sich meist auf die Möglichkeit, vordefinierte Bibliotheksfunktionen zu parametrieren und kombinieren, um die Sicherheitsanforderungen im Programm umzusetzen. Dabei unterscheidet sich beispielsweise die Ausdrucksmächtigkeit einer Bausteinsprache (FBD, Function Block Diagram) überhaupt nicht zu IL, lediglich die grafische Repräsentation gibt dem Anwender eine übersichtlichere Darstellung. Die Anforderungen an die Erstellung von sicherheitsbezogener Anwendersoftware ist nach EN/IEC62061 und EN ISO13849-1 nur mit Programmiersprachen erfüllbar, die als LVL eingestuft sein. Bei Verwendung einer FVL-Sprache wird auf den wesentlich aufwändigeren Entwicklungs- und Validierungsprozess nach der Sicherheitsgrundnorm EN/IEC61508 verwiesen. Um das freie Konfigurieren von Funktionsbausteinen mit der Programmierung in EN/IEC-61131-3-konformen Editoren zu kombinieren, besteht die Herausforderung darin, eine bislang als FVL-klassifizierte Programmiersprache in eine LVL-Sprache zu überführen.