Echtzeit visualisiert

Steuerungstechnik aus der Cloud

In Teil zwei der Artikelserie \'Steuerungstechnik aus der Cloud\' stellen wir uns der Aufgabe, Echtzeit zu virtualisieren. Erfolgt die Maschinensteuerung aus der Cloud heraus, sind verteilte Hardwaresysteme nötig. Die IT hat durch den Einsatz von Pay-per-user-Geschäftsmodellen und Cloud-Anwendungen bereits eine skalierbare Architektur geschaffen, die es nun gilt, auf die Steuerungstechnik zu übertragen.

Die Nutzung der ersten Transistoren und Betriebssysteme Ende der 50er-Jahre sowie die Marktreife von Multiprozessorsystemen in den Achtzigern hat insbesondere für die IT-, aber auch für die Steuerungstechnik-Branche zunehmend an Bedeutung gewonnen. Das rasante Wachstum des Internets in den 90er-Jahren und die steigende Integrationsdichte von Transistoren auf Prozessoren führten zu Entwicklungen wie Multi-Core-CPUs und Virtualisierungslösungen. Insbesondere Letzteres ist für den effizienten und verteilten Betrieb von Rechenzentren und Cloud-Architekturen nicht mehr wegzudenken. Stellt man dieser Entwicklung den Fortschritt in der Automatisierungstechnik gegenüber, erkennt man eine deutliche Diskrepanz von ca. zehn Jahren zwischen der Nutzung von Lösungen in der IT und in der Steuerungstechnik. Während der Markt für Multi-Core-CPUs bisher stark von IT-Lösungen dominiert war, rücken seit 2011 Multi-Core-CPUs auch für die Steuerungstechnik in den Vordergrund. Dort sind aufgrund der meist hardwarenahen Entwicklung sowie der Anforderungen an geringe Zykluszeiten und Echtzeitverhalten bisher keine virtualisierten Lösungen verfügbar. Im Rahmen des Forschungsprojekts pICASSO (Industrielle cloudbasierte Steuerungsplattform für eine Produktion mit cyber-physischen Systemen) haben sich die Projektpartner der Herausforderung gestellt und eine Plattform zur Virtualisierung von Echtzeitbetriebssystemen unter der Einhaltung des Zeitdeterminismus realisiert. Bisher laufen Maschinen im Bereich der Robotik und Automatisierungstechnik auf abgeschlossenen sogenannten monolithischen Steuerungen, deren vorhandene Rechenleistung meist nicht ausgenutzt wird oder bei komplexen Algorithmen um ein Vielfaches nicht ausreichend ist. Der Schwerpunkt des Projekts pICASSO liegt nun auf der Instanziierung und Ausführung von Steuerungen und Mehrwertdiensten auf einer cloudbasierten Steuerungsplattform. Hierfür haben die am Projekt Beteiligten eine Systemarchitektur entworfen, die mithilfe einer Abstraktionsschicht die unmittelbar vorliegende Hardware-Architektur von der Betriebssystemebene löst. Aus der Anforderungsanalyse wird deutlich, dass es nötig ist, einen hybriden Einsatz von Echtzeit- und Nicht-Echtzeitbetriebssystemen auf Windows- und Linux-Basis zu gewährleisten, um verschiedene Steuerungen oder Mehrwertdienste auszuführen. Die Kommunikation zwischen den Instanzen kommt mithilfe einer Intermodulkommunikation auf Basis von OPC UA zustande. Neben der Instanziierung von Steuerungen und Mehrwertdiensten ist die Möglichkeit zur Überwachung der Auslastung (CPU-Last, RAM-Füllstand etc.) und Konfiguration neuer Instanzen erforderlich. Durch eine Lastverteilung ist somit das bedarfsgerechte Verschieben einzelner Module bei erhöhtem Ressourcenanspruch möglich.

Echtzeit für virtuelle Maschinen

Aufgrund der ähnlichen Anforderungen von IT-Systemen und der pICASSO-Plattform an Virtualisierungssysteme liegt die Nutzung des quelloffenen Hypervisor Kernel-based Virtual Machine (KVM) und der Virtualisierung Quick Emulator (QEMU) als Basis für weitere Arbeiten nahe. Neben der breiten Unterstützung verschiedener Betriebssysteme begünstigten insbesondere Funktionen wie Snapshots oder das Durchreichen von PCI-Geräten den Einsatz. Für die Bereitstellung des Echtzeitverhaltens innerhalb eines Linux-Betriebssystems wurde auf den existierenden Linux Preemption Patch zurückgegriffen, der eine zeitdeterministische Umgebung für Linux-Systeme ermöglicht. Die Nachteile von QEMU verhindern allerdings die Ausführung echtzeitkritischer Tasks innerhalb virtueller Maschinen. Sie bestehen im Ausführen der Virtualisierung als Single-Thread-Applikation (alle virtuellen CPUs innerhalb eines Threads) sowie aus einem fehlenden Interrupt-Routing. Diese für das Echtzeitverhalten entscheidenden Eigenschaften erfordern das Anpassen des Virtualisierungssystems. Das Ausnutzen moderner Multicore-CPUs ermöglicht die Auslagerung jeder virtuellen CPU in einen eigenen Thread, der sich wiederum auf separaten nativen CPU-Kernen ausführen lässt. Des Weiteren lassen sich Interrupts direkt zuweisen und verbessern folglich das Echtzeitverhalten innerhalb der virtuellen Umgebung. Zusammenfassend lässt sich sagen, dass das Nutzen von KVM in Kombination mit QEMU und einigen Erweiterungen für die Virtualisierung von Echtzeitbetriebssystemen praktikabel ist, jedoch nicht die erforderlichen Ausführungszeiten garantiert. Beim Messen der Architektur wurden Abweichungen erzielt, die die CPU weitgehend für die Prozesse isolieren, jedoch weiterhin Abweichungen um die 25µs erreichen. Dieser Wert entspricht ca. 50 Prozent der Abweichungen von Prozessen, die auf Nicht-Echtzeitbetriebssystemen laufen, und bedarf daher der Suche nach alternativen Lösungen.

Statische Hardware-Partitionierung mit Jailhouse

Die Mitarbeiter von Siemens stellen sich ähnlichen Herausforderungen zur effizienteren Nutzung von Multicore-Prozessoren für Echtzeit-Anwendungen und entwickelten den Hypervisor Jailhouse zur statischen Partitionierung von Hardware [InfoWorld]. In der Systemarchitektur ist eine strikte Trennung zwischen einzelnen CPUs und Geräten erkennbar. Die Konfiguration und Verwaltung der sogenannten Zellen erfolgt durch den Linux-Kernel innerhalb des initial installierten Betriebssystems. Innerhalb der Zellen ist die Ausführung isolierter Echtzeit-Applikationen von reinen Baremetal-Applikationen bis zu Linux-Betriebssystemen (auf x86 und ARM-Architektur) möglich. Maßgeblich für das Forschungsprojekt pICASSO war die Erweiterung des Jailhouse-Hypervisors zur Unterstützung von ARM-Architekturen und Linux-Gastsystemen sowie die Ausführung der Linux-Distribution Debian, das als Evaluierungssystem für die cloudbasierte Steuerungsplattform spezifiziert ist. Hierzu wurde eine Anforderungsliste an die notwendige und unterstützte Hardware erstellt sowie erforderliche und optionale Umgebungsparameter definiert. Die Validierung der Jailhouse-Architektur für pICASSO erfolgte auf einem Quad-Core-Prozessor mit drei Zellen und der ursprünglichen Installation (Root-Zelle) zur Konfiguration. Mithilfe des Benchmarking-Tools Cyclictest erfolgten parallel ausgeführte Tests zur Messung der Echtzeitabweichungen der Referenzarchitektur. Hierbei ist eine Vierkern-CPU mit einer Root-Zelle und drei Jailhouse-Zellen (A, B, C) mit je einem CPU-Kern konfiguriert. Zum Vergleich erfolgte ebenfalls eine Messung der Abweichungen eines klassischen Echtzeit-Betriebssystems (RTOS). Während die klassische Architektur ohne Hypervisor weiterhin die geringsten Verzögerungen im Aufruf der Echtzeittask aufweist, liegen die Abweichungen der Jailhouse-Zellen bei durchschnittlich zwei weiteren Mikrosekunden. Im Vergleich: Nicht-Echtzeitbetriebssysteme auf der identischen Hardware-Plattform erreichen durchschnittliche Abweichungen um das Vier- bis Fünffache.

Libvirt als Verwaltungsschnittstelle

Die hohe Performanz und das zeitdeterministische Verhalten des Jailhouse-Hypervisors ist neben der hardwarenahen Implementierung auch in der minimalistischen Realisierung von 20.000 Zeilen Code begründet. Dieser Ansatz verhindert jedoch zeitgleich eine Verwaltung der Zellen z.B. durch eine standardisierte Schnittstelle. In der IT ist für die Verwaltung von virtuellen Maschinen die offene Schnittstelle Libvirt [LibVirt] weit verbreitet und unterstützt eine Vielzahl von Hypervisors, um virtuelle Instanzen zu erzeugen, zu konfigurieren und zu überwachen. Durch die breite Anwendbarkeit von Libvirt ist insbesondere in großen Netzwerken die Verwaltung hybrider Strukturen möglich. Die Schnittstelle lässt sich um eine Vielzahl von Funktionen erweitern, um die Auslastung von Ressourcen zu überwachen oder ein grafisches Interface zur Konfiguration zu nutzen. Die Systemarchitektur der cloudbasierten Steuerungsplattform für pICASSO sieht ebenfalls eine hybride Struktur vor, die bestehende Virtualisierungslösungen und Cloud-Infrastrukturen mit der virtualisierten Echtzeitplattform auf Basis von Jailhouse verbindet. Zur Integration von Jailhouse-Zellen wurde der Hypervisor für die Steuerungsplattform um eine Libvirt-Anbindung erweitert. Da die Jailhouse-Zellen nach dem Starten für die Root-Zelle quasi unsichtbar sind, wird auf diesem Weg das Überwachen des Ausführungszustandes möglich. Detaillierte Informationen zum Überwachen (CPU-Last, RAM-Füllstand etc.) sind denkbar, erfordern jedoch weitere Erforschung. Innerhalb der hybriden Struktur lässt sich der Zustand (gestartet oder gestoppt) der Zellen abrufen sowie ändern und somit die Steuerungsplattform im Ganzen betrachten.

Seiten: 1 2Auf einer Seite lesen

ISW Universität Stuttgart
http://www.isw.uni-stuttgart.de

Das könnte Sie auch Interessieren

Weitere Beiträge

Bild: Wago GmbH & Co. KG
Bild: Wago GmbH & Co. KG
I/O-System XTR von Wago

I/O-System XTR von Wago

Vor zehn Jahren hieß es bei Wago das erste Mal: XTR. Die Ausführung für „eXTReme“ Umgebungsbedingungen sollte dem Wago I/O System 750 neue Anwendungen und Branchen erschließen. Das betonte die Titelstory des damaligen SPS-MAGAZINs zur Hannover Messe 2014. Eine Dekade später hat die Redaktion bei Wago nachgehakt, ob dieser Plan aufgegangen ist und in welchen Bereichen das XTR-System heute vor allem zu finden ist.

mehr lesen