zuruck zur Themenseite

Artikel und Hintergründe zum Thema

Steuerungstechnik

Simon Barner, Jia Huang, Dr. Sebastian Voss | Günter Herkommer,

Sicher steuern mit Multicore-Prozessoren

Multicore-Prozessoren bieten sich in der Automatisierung vor allem zur Integration von Steuerungsprogrammen und somit zur Reduktion der Anzahl von Steuergeräten an. Insbesondere wenn es um sicherheitskritische Anwendungen geht, ist dabei allerdings zu gewährleisten, dass die verschiedenen Anwendungen hinreichend voneinander separiert sind. Die modellbasierte Entwicklung leistet hier wertvolle Unterstützung.

© Fortiss

Neben der Beschleunigung von rechenintensiven Signalverarbeitungsaufgaben bieten Multicore-Prozessoren grundsätzlich das Potenzial, mehrere auf einzelnen Steuergeräten implementierte Anwendungen zu integrieren. Die heute gängigen Prozessorarchitekturen weisen jedoch Eigenschaften auf, die einen Einsatz in sicherheitskritischen Applikationen erschweren oder gar unmöglich machen. Da viele dieser Anwendungen harte Echtzeit-Anforderungen haben, stellt der fehlende zeitliche Determinismus das erste Problem heutiger (Multicore-)Prozessoren dar, dessen Ursache in deren Optimierung auf maximale Leistung liegt. Ein weiteres Problem, das insbesondere für Integrationsanwendungen relevant ist, besteht darin, dass heutige Multicore-Prozessoren über keine geeigneten Separationsmechanismen verfügen, mit denen sich unterschiedliche Anwendungen, die beispielsweise auf verschiedenen Kernen laufen, voneinander abschotten lassen. Dabei sind solche Mechanismen eine Grundvoraussetzung für die kostengünstige Zertifizierung von gemischt kritischen Anwendungen entsprechend der Vorgabe der IEC 61508 für die Entwicklung von elektrischen, elektronischen und programmierbar elektronischen (E/E/PE) Systemen, die mehr als eine sicherheitsrelevante Funktion implementieren.

Die IEC 61850 besagt, dass die höchste Sicherheitsanforderungsstufe dieser Funktionen auf das Gesamtsystem anzuwenden ist; es sei denn, dass nachgewiesen werden kann, dass die Implementierungen dieser Funktionen „ausreichend unabhängig“ sind. Da die Anwendung der höchsten Sicherheitsstufe auf das Gesamtsystem meist weder technisch noch wirtschaftlich in Frage kommt, ist also der Nachweis der hinreichenden Separation unerlässlich. Diese muss in zwei Dimensionen gewährleistet sein:

1. temporal: das heißt die Ausführungszeit verschiedener Funktionen darf sich nicht gegenseitig beeinflussen,
2. räumlich: das heißt Speicher, E/A-Kanäle etc. müssen einer feingranularen Zugriffskontrolle unterliegen.

Da die heute auf dem Markt erhältlichen Multicore-Architekturen aber auf die maximale Leistung bei nicht-sicherheitskritischen Anwendungen ausgelegt sind, kommen hier Techniken wie geteilte Caches oder von mehreren Kernen verwendete E/A zum Einsatz, die genau diese geforderten Eigenschaften beeinträchtigen. Vor diesem Hintergrund wurden in jüngster Zeit Forschungsarbeiten initiiert mit dem Ziel, Multicore-Architekturen zu entwickeln, welche die genannten Mankos eliminieren.

Ein Beispiel für eine solche Architektur ist das MPSoC (Multiprozessor System-on-Chip) aus dem ACROSS-Forschungsprojekt (www.across-project.eu). Es verfügt über eine Reihe von dedizierten Systemkernen, die zum Beispiel Verwaltungsaufgaben oder die Anbindung von E/A und Speicher umsetzen, sowie über frei programmierbare Anwendungskerne. Die geforderte Separation wird durch die ausschließliche Kommunikation über ein zeitgesteuertes Network-on-Chip (NoC) und Trusted Interface Subsysteme (TISS) zur Anbindung der Kerne an das NoC realisiert, die das zur Entwicklungszeit festgelegte zeitliche Verhalten sicherstellen. Verwendet wurden im Rahmen des Forschungsprojektes Altera-NIOS-II-Anwendungskerne, die optional mit Hilfe des PikeOS-Hypervisors in weitere zeitliche und räumliche Parti­tionen unterteilbar sind.

Für sicherheitskritische Systeme ist in diesem Zusammenhang jedoch zu berücksichtigen, dass die Separationsmechanismen nur für die Eindämmung von Design-Fehlern wirksam sind. Die Eindämmung physikalischer Fehler kann hingegen wegen der fehlenden Hardware-Redundanz (zum Beispiel geteilte Spannungsversorgung, fehlende galvanischen Trennung der Kerne) nicht garantiert werden. Die benötigte Redundanz lässt sich jedoch durch die Implementierung von kritischen Funktionen auf unterschiedlichen Multicore-Prozessoren erreichen. Durch die Möglichkeit, wei­tere weniger kritischer Funktionen auf die verbleibenden Kerne zu integrieren, bieten Multicore-Prozessoren auch für Systeme mit sicherheitskritischen Funktionen das Potenzial, die Anzahl der benötigten Steuergeräte zu reduzieren.

Anzeige

Komponenten-basierte Systementwicklung

Alle genannten Separationsmechanismen hängen von der Abbildung der Applikation auf die Plattform ab. Somit stellen sie Systemintegratoren vor die Herausforderung, entsprechende Lösungen aus dem resultierenden Entwurfsraum auszuwählen und eine konsistente Implementierung auf der Ausführungsplattform zu gewährleisten. Im Folgenden wird ein am Fortiss-Institut der TU München entwickelter modellbasierter Entwicklungsansatz vorgestellt, der Applikationen und Plattformen durch geeignete Modelle abstrahiert. Auf deren Basis kann die Verteilung der Anwendung auf die Kerne der Plattform berechnet (Deployment) werden und plattformspezifische Implementierungs-Artefakte können generiert werden.

Bild 1. Perspektive der logischen Architektur der Steuerung einer beispielhaften Sortieranlage in AutoFOCUS 3: Neben der hierarchischen Modellierung von Signalflüssen können weitere Eigenschaften beschrieben werden.

© Fortiss

Integrierte modellbasierte Software-Entwicklung ermöglicht die Beschreibung von Systemen mittels unterschiedlicher Perspektiven – zum Beispiel funktional, logisch, technisch oder auch geometrisch. Die Beschreibung dieser Perspektiven folgt Meta-Modellen und ermöglicht eine Dekomposition des Systems in plattformunabhängige sowie plattformabhängige Komponenten, bis hin zur konkreten technischen Realisierung. Innerhalb einer Perspektive kann sich der Entwickler auf spezifische Aufgaben fokussieren und für die jeweilige Perspektive typische Analysen durchführen. Eine modellbasierte werkzeuggestützte Vorgehensweise, wie sie etwa von AutoFOCUS3 (AF3) – einem Eclipse-basierten CASE-Tool (Computer Aided Software Engineering) zur durchgängigen Modellierung von reaktiven Systemen – unterstützt wird, ermöglicht eine effiziente Systementwicklung. Modell-zu-Modell-Transformationen und Code-Generatoren automatisieren hierbei den Übergang zwischen den verschieden Abstraktionsebenen.

Die plattformunabhängige Modellierung von Applikationen, das heißt des gewünschten Systemverhaltens, lässt sich beispielsweise in der Perspektive der logischen Architektur in AF3 realisieren (siehe Bild 1). Durch eine komponentenbasierte Systemmodellierung wird das Gesamtsystem in Einzelkomponenten zerlegt. Das Verhalten dieser atomaren Komponenten ist mithilfe von Zustandsautomaten spezifizierbar. Neben dem Verhalten können weitere Attribute im Modell hinterlegt werden, wie etwa Timing oder Kritikalität.

Die technische Perspektive ermöglicht die abstrakte Beschreibung der Plattform-Topologie, die zum Beispiel Kerne, Busse und NoCs, Speicher eines MPSoCs oder die Partitionen eines separierenden Betriebssystems umfasst. Beim Deployment der Komponenten einer Anwendung der logischen Architektur werden die hier hinterlegten Informationen über die Separierungsmechanismen, die die Plattform in unterschiedliche Fault-Containment-Region unterteilen, berücksichtigt. Eine Fault-Containment-Region ist dabei als ein Teil des Systems definiert, der durch Separierungsmechanismen so vom Rest abgeschottet ist, dass durch die Bereitstellung von Redundanz Fehler erkannt oder unter gewissen Voraussetzungen sogar behoben (maskiert) werden können.

Berechnung effizienter Systemkonfigurationen

Die zunehmende Systemkomplexität verlangt Methodiken und Techniken, die es erlauben, bereits zu einem frühen Entwicklungszeitpunkt Aussagen über das spätere Systemverhalten zu treffen. Dabei ist für den Systementwurf insbesondere die Betrachtung zeitlicher Systemeigenschaften (Antwortzeiten, Reaktionszeiten oder System-Latenzen) von entscheidendem Interesse. Diese bereits zu einem frühen Entwicklungszeitpunkt zu optimieren, erfordert wiederum effiziente (semi-)automatische Syntheseverfahren zur Berechnung entsprechender Systemkonfigurationen. Systemkonfigurationen beschreiben hierbei Schedules, das heißt die zeitliche Ordnung verschiedener Softwarekomponenten (Tasks) und deren Kommunikation.

Bild 2. Beispielanwendung „Sortierstation”: Die Materialeigenschaft der eingehenden Werkstücke wird mit Hilfe eines Reflex-Lichttasters sowie eines induk­tiven Näherungsschalters bestimmt.

© Fortiss

Die zunehmende Systemkomplexität verlangt Methodiken und Techniken, die es erlauben, bereits zu einem frühen Entwicklungszeitpunkt Aussagen über das spätere Systemverhalten zu treffen. Dabei ist für den Systementwurf insbesondere die Betrachtung zeitlicher Systemeigenschaften (Antwortzeiten, Reaktionszeiten oder System-Latenzen) von entscheidendem Interesse. Diese bereits zu einem frühen Entwicklungszeitpunkt zu optimieren, erfordert wiederum effiziente (semi-)automatische Syntheseverfahren zur Berechnung entsprechender Systemkonfigurationen. Systemkonfigurationen beschreiben hierbei Schedules, das heißt die zeitliche Ordnung verschiedener Softwarekomponenten (Tasks) und deren Kommunikation.

Die beschriebenen Herausforderung stellen ein mehrdimensionales Optimierungsproblem dar, zu dem im Allgemeinen eine Vielzahl von Lösungen exis­tieren, bei denen die verschiedenen Design-Parameter unterschiedlich gewichtet sind. Hierzu können formale Ansätze angewendet werden, die zum Beispiel mit Hilfe von SMT-Solvern (SMT = Satisfiability Modulo Theories) gelöst werden. Durch die Kombination mit geeigneten Meta-Suchverfahren, wie etwa genetischen Algorithmen, können optimierte Lösungen für diese Klasse von Problemen gefunden werden.

Die erläuterten Modelle und Verfahren wurden im ACROSS-Projekt am Fortiss-Institut in einem teilweise auf AF3 basierenden Entwicklungswerkzeug umgesetzt. Das Werkzeug wurde mit Hilfe einer Station aus dem Modular Production System (MPS) von Festo Didactic evaluiert, bei der auf einem Förderband eingehende Werkstücke sortiert werden.

Bild 3. Integriertes Deployment der redundanten Sortieranwendung und der Visualisierung: den drei redundanten Instanzen der Sortierlogik sowie der Visualisierung wurden durch das Entwicklungswerkzeug dedizierte Prozessorkerne zugewiesen.

© Fortiss

Hierzu bestimmen Sensoren am Anfang des Förderbands deren Materialeigenschaft. Auf dieser Basis werden zwei pneumatische Materialweichen angesteuert, die die Werkstücke in die entsprechende Lagerrutsche einsortieren. Gleichzeitig findet eine einfache Visualisierung der Sensor- und Aktordaten statt. Im Rahmen des Projektes wurde das Entwicklungswerkzeug dazu verwendet, die dafür benötigte Steuerung auf dem ACROSS-MPSoC zu implementieren. Dabei diente die logische Architektur der Steuerung als Ausgangsbasis, die aus einer Plausibilitätsprüfung der Sensordaten, der eigentlichen Sortierlogik sowie der Visualisierung besteht. Zusätzlich wurden weitere Annotationen wie Latenzen, Ausführungszeiten der Tasks und Kritikalitätsstufen sowie ein Modell der Zuverlässigkeitsanforderung für die Steuerung erstellt.

Im Beispiel erfolgten die Modellierung einer hohen Kritikalitätsstufe für die Steuerung und eine niedrigere für die Visualisierung. Als Zuverlässigkeitsanforderung wurde die Tolerierung eines Einzelfehlers in einem Kern (fail-operational) sowie die Erkennung eines Doppelfehlers und Anhalten der Anlage (fail-safe) gefordert. Das Werkzeug wurde dann dazu genutzt, eine fehlertolerante Implementierung der (sicherheitskritischen) Sortieranwendung zu berechnen und zusammen mit der (unkritischen) Visualisierung auf dem MPSoC zu integrieren. Dabei wurden drei Replika der Sortierlogik erzeugt, deren Ergebnisse durch einen durch das Werkzeug eingefügten Voter kombiniert werden. Das vom Werkzeug berechnete Deployment weist dabei allen Softwarekomponenten (In­stanzen der Sortierlogik, Visualisierung) jeweils dezidierte Prozessorkerne zu, da diese von der Hardware voneinander abgeschottet sind.

Bild 4. IEC-61131-3-Modell der Sortieranwendung: Die linke Abbildung zeigt das SFC-Modell mit den Zuständen der Steuerung und die rechte Abbildung zeigt exemplarisch die Erkennung der Werkstückfarbe.

© Fortiss

Neben der Unterstützung bei der Auslegung des Systems bietet die Werkzeugunterstützung weitere Vorteile für den Entwickler. Bild 4 zeigt ein IEC-61131-3-Modell der Sortierkomponenten, das in die beschriebene Werkzeugkette importiert wurde. Da hier das Verhalten der Anwendung ebenfalls mit Modellen spezifiziert ist, lässt sich zusammen mit dem Architekturmodell der gesamte Quellcode generieren. Darüber hinaus wird die Konfiguration der auf den frei programmierbaren Prozessorkernen laufenden PikeOS-Instanzen (Partitionierung, Kommunikationskanäle etc.) sowie die Konfiguration des MPSoCs (zeitgesteuerter Schedule, TISS-Konfiguration) generiert und somit automatisch mit dem Design konsistent gehalten.

Alles in allem wurde mit der beschriebenen Werkzeugkette im Rahmen des Forschungsprojektes also die Software für eine fehlertolerante Steuerung der Anlage erzeugt, die zusammen mit einer einfachen Prozessvisualisierung in einer FPGA-Implementierung des ACROSS-MPSoC integriert und getestet wurde. Die zentrale Erkenntnis dabei: Die zunehmende Komplexität von Automatisierungssystemen und insbesondere der zur Verfügung stehenden Ausführungsplattformen wie etwa Multicore-Prozessoren verlangt Methoden und Werkzeuge, die es erlauben, zu einem frühen Entwicklungszeitpunkt Aussagen über das spätere Systemverhalten zu machen. Eine durchgängige modellbasierte Software-Entwicklung schafft diese Möglich­keiten durch unterschiedliche Sichten und integrierte Analyse- und Syntheseverfahren, deren Ergebnisse mit Code- und Konfigurationsgeneratoren konsistent unter Ausnutzung der von der jeweiligen Zielplattform gegebenen Garantien umsetzbar sind.

Autoren: Simon Barner arbeitet als wissen­schaftlicher Mitarbeiter am Fortiss-Institut der TU München, Jia Huang arbeitet als wissen­schaftlicher Mitarbeiter am Fortiss-Institut der TU München, Dr. Sebastian Voss ist am Fortiss-Institut der TU München als Gruppenleiter tätig.

  • Xing Icon
  • LinkedIn Icon
Anzeige
zurück zur Themenseite
Anzeige

Das könnte Sie auch interessieren

Anzeige

Motion Control

Trajektorien online berechnen

Sensorintegration und unmittelbare Reaktionen auf deren Signale spielen in vielen Motion-Anwendungen eine zunehmend wichtige Rolle. Mittels eines neuen Verfahrens zur Online-Trajektorien-Generierung ist es möglich, auf der Ebene der Steuerung...

mehr...

Speicherprogrammierbare Steuerungen

Die Zukunft der SPS

Die Automatisierungsumgebung befindet sich im Wandel, der auch vor der klassischen SPS nicht Halt macht. Damit stellen sich Fragen wie: Gibt es eine Zukunft für die klassische Speicherprogrammierbare Steuerung? Und wenn ja, wie sieht diese aus? –...

mehr...
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Jetzt Newsletter abonnieren