Startseite » Steuerungstechnik/IPC/SPS »

Steuerungstechnik

LxWin von Acontis basiert auf RT-Linux und -Hypervisor
Mit Linux wird Windows echtzeitfähig

Immer mehr Anwendungen insbesondere in den Märkten für industrielle Automatisierung, Datenerfassung und IIoT erfordern ein deterministisches Echtzeitverhalten. Da jedoch Windows keine deterministische Echtzeit unterstützt, sind sogenannte Windows-Echtzeiterweiterungen erforderlich. Damit können Entwickler eine Lösung erstellen, die die umfassende Windows-Funktionalität nutzt und gleichzeitig harte Echtzeitanforderungen erfüllt.

Der Unterschied zwischen einem regulären Betriebssystem (OS) und einem Real-Time-Betriebssystem (RTOS) für Embedded-Systeme ist die Echtzeitfähigkeit. Betriebssysteme wie Windows bieten in der Regel keine deterministische Echtzeitantwort und geben auch keine Garantien dafür, wann eine Aufgabe abgearbeitet ist. Ein RTOS unterscheidet sich dadurch, dass es eine harte Echtzeitantwort und eine schnelle, deterministische Reaktion auf externe Ereignisse liefert. Während die Bearbeitung eines Dokuments auf einem PC zeitunkritisch ist, erfordert die Bedienung einer Präzisionsmotorsteuerung Echtzeitfähigkeit.

RTOS wählen die dringendste Aufgabe bzw. den Programmschritt aus, der als nächstes ausgeführt werden soll. Um ein reaktionsschnelles System bereitzustellen, verwenden die meisten RTOS einen präemptiven Planungsalgorithmus. Dabei erhält jede Aufgabe einen individuellen Prioritätswert. Je schneller eine Antwort erforderlich ist, desto höher ist die zugewiesene Prioritätsstufe.

Windows führt Anforderungen an das Betriebssystem so aus, dass eine maximale durchschnittliche Rechenleistung und eine schnelle interaktive Benutzerantwort erzielt werden. Dabei ist jedoch keine Reaktionszeitgarantie gegeben. Das Gleiche gilt sowohl für die Windows-Anwendungen, auch wenn Threads mit der Echtzeitpriorität von Windows ausgeführt werden, sowie für Windows-Treiber, da die zugrunde liegenden Windows-Betriebssystemmechanismen für beide gleich sind.

Anforderungen an Echtzeitverhalten

Um eine deterministische Echtzeitfähigkeit zu gewährleisten, muss das Laufzeitsystem, das für die Ausführung der Echtzeitoperationen verantwortlich ist, völlig unabhängig von Windows sein. Es muss eine Vielzahl von Funktionalitäten bieten, um die heute typischen Echtzeitanforderungen zu erfüllen, wie:

  • Speicherverwaltung (Heap und Stack)
  • Multithreading: deterministischer Echtzeit-Scheduler
  • Multi-Processing: Ausführen mehrerer unabhängiger Anwendungsinstanzen
  • Schutz zwischen der Anwendungsschicht und dem zugrunde liegenden Kernlaufzeitsystem
  • Thread-/Prozesssynchronisierung und Kommunikationsfunktionen
  • Multi-Core-Unterstützung (symmetrisches Multiprocessing)

Da dies die typischen Funktionen eines Echtzeitbetriebssystems sind, ist ein zusätzliches Betriebssystem für das Echtzeitverhalten in Windows erforderlich. Folglich kann ein Laufzeitsystem, das zumindest einige der oben genannten Funktionen bereitstellt, auch als Echtzeitbetriebssystem (RTOS) bezeichnet werden, und dieses RTOS muss völlig unabhängig von Windows sein, wo immer Echtzeitanforderungen bestehen.

Isolation und Echtzeit-Konservierung der Windows-Echtzeiterweiterung

Die Isolierung ist eine wichtige Voraussetzung, um einen zuverlässigen und sicheren Betrieb von Echtzeitanwendungen neben Windows zu erreichen. Neben der Isolierung des Laufzeitsystems der ausgeführten Echtzeitanwendungen muss auch das Laufzeitsystem von Windows isoliert und geschützt werden. Dabei sollten Speicherverwaltungs- und Virtualisierungstechnologien zum Einsatz kommen, um so eine maximale Trennung zu erreichen.

Obwohl das in einer Windows-Echtzeiterweiterung verwendete Laufzeitsystem ein Echtzeitbetriebssystem ist, gibt es eine Vielzahl von Aspekten, die berücksichtigt werden müssen, um diese Features beizubehalten, wenn sie neben Windows auf einer modernen PC-Architektur ausgeführt werden. Der Zugriff auf gemeinsam genutzte Hardwareressourcen wie Cache und RAM ist einer der kritischsten Aspekte. Systemverwaltungs-Interrupts (SMIs) können ebenfalls zu inakzeptablen Verzögerungen führen. Die Verwendung einer Cache-Zuweisungstechnologie hilft, Probleme mit gemeinsam genutztem Cache zu überwinden, während die Virtualisierung zur Bewältigung von SMIs verwendet werden kann. Darüber hinaus sollte eine Windows-Echtzeiterweiterung auch Tools zur Analyse der Echtzeitreaktion einer bestimmten Hardware bereitstellen.

C/C++-Laufzeitbibliothek

Die C/C++-Laufzeitbibliothek ist ein Satz von Low-Level-Routinen, die vom Compiler verwendet werden, um einige der Verhaltensweisen des Laufzeitsystems aufzurufen, indem Aufrufe der Laufzeitbibliothek in kompilierte ausführbare Binärdateien eingefügt werden. Das C/C++-Laufzeitsystem implementiert das Ausführungsmodell sowie integrierte Funktionen und andere grundlegende Verhaltensweisen der Programmiersprache C/C++. Neben der grundlegenden C/C++-Sprachunterstützung gehen die heutigen Anforderungen darüber hinaus und suchen nach übergeordneten Bibliotheken wie STL oder Boost.

Entwicklungsumgebung

Die Aufgabe der Entwicklungsumgebung besteht darin, verschiedene Komponenten von Softwareanwendungen für die Entwicklung der Anwendung bereitzustellen. Eine integrierte Entwicklungsumgebung (IDE) ist ein Tool, das alle erforderlichen Anwendungen wie Compiler, Linker und Debugger in einer einzigen grafischen Umgebung integriert. Unter Windows ist die Microsoft Visual Studio IDE zum De-Facto-Standard für die Anwendungsentwicklung geworden, und daher muss eine Windows-Echtzeiterweiterung in der Lage sein, diese IDE auch für Echtzeitanwendungen zu nutzen.

Um den größtmöglichen Nutzen aus einem RTOS zu ziehen, sollte die Windows-Echtzeiterweiterung ein bewährtes RTOS verwenden, es sollte viele Funktionen beinhalten, mit der erforderlichen Dokumentation ausgestattet und flexibel in der Anwendung sein. Lässt sich eine Echtzeitanwendung eigenständig auf einem PC ohne Windows oder sogar auf einem ARM-basierten Embedded-System ausführen, bietet dies ein Höchstmaß an Flexibilität.

Was bietet LxWin

In der Regel implementieren Windows-Echtzeiterweiterungen ein proprietäres RTOS parallel zu Windows oder in Windows eingebettet. In diesen Lösungen muss jede Echtzeit-Anwendung in diesem proprietären RTOS ausgeführt werden. Darin kann eine besondere Herausforderung für Entwickler liegen, da sie eine proprietäre Umgebung für die Entwicklung ihrer Echtzeitanwendungen nutzen müssen. Sie müssen sich dabei auch auf die Funktionen verlassen, die vom Anbieter dieses RTOS implementiert wurden. Oft sind zusätzliche, zeitaufwendige Programmierarbeiten notwendig.

Mit LxWin bietet Acontis eine Echtzeiterweiterung, die auf einem stärker getrennten Ansatz für die Echtzeitanwendungen und den Nicht-Echtzeit-Teil beruht. Anstatt ein proprietäres RTOS zu verwenden, bettet LxWin einen harten Linux-Echtzeit-Kernel auf einem Echtzeit-Hypervisor ein. Dieser Hypervisor ist der Schlüssel und sorgt für eine optimale Isolierung von Windows.

RT-Linux ist das beliebteste RTOS

LxWin basiert auf Open-Source-Linux und ist damit kein proprietäres RTOS. Linux hat sich in den letzten Jahren zum weit verbreiteten Betriebssystem für industrielle Echtzeitanwendungen entwickelt. Damit stehen den Entwicklern alle gängigen Tools und Pakete der Open-Source-Community zur Verfügung.

Acontis ist Linux-Spezialist für industrielle Anwendungen innerhalb der verbreiteten Betriebssysteme. Zu den Tools gehören die Ethercat-Master-Software EC-Master, die eine große Zahl verschiedener Betriebssysteme unterstützt. Sie muss in der Regel in einem Echtzeitbetriebssystem ausgeführt werden, um die optimale Leistung zu erzielen. Linux wird dabei von einer wachsenden Zahl von EC-Master-Kunden eingesetzt. Der Trend zeigt sich in einem breiten Industriemarkt, der heute weit über Ethercat-Anwendungen hinausgeht. Führende Unternehmen des Maschinen- und Anlagenbaus, der Robotik sowie der Steuerungstechnik ersetzen ältere Echtzeitbetriebssysteme durch echtzeitfähiges Linux.

Das Laufzeitsystem von RT-Linux

RT-Linux bietet alle Funktionalitäten, um die heutigen Echtzeitanforderungen zu erfüllen. Abhängig von den konkreten Anforderungen einer Applikation kann es skaliert werden, sodass es nur die für die Anwendung erforderlichen Komponenten beinhaltet. Linux kommt nicht nur in Servern zum Einsatz, es lässt sich auch in kompakten Embedded Systemen nutzen, die nur wenig Rechenleistung und Speicher aufweisen. RT-Linux verfügt dabei über eine sichere und zuverlässige Isolierung zwischen den Echtzeitanwendungen und dem Linux-Kernel. Darüber hinaus sind Windows und RT-Linux mithilfe von MMU-Mechanismen sicher isoliert, wobei bei der Aktivierung der Intel Virtualization Technology eine optimale Isolation erreicht werden kann.

C/C++-Laufzeitbibliothek, Treiber und Software

Linux selbst ist nicht nur ein Echtzeit-Kernel, sondern bringt viele weitere Eigenschaften mit sich. Funktionen wie Sockets, eine vollständige POSIX-API, Benutzerraum-/Kernel-Space-Isolation, Multitasking und Multiprocessing sind verfügbar. Für fast jede heute verfügbare Hardware ist ein Linux-Treiber verfügbar. Schließlich gibt es für Linux eine Fülle von Softwarebibliotheken, Protokollstapeln und Middleware wie C++-STL, Boost, Corba, OPC-UA, DDS, AVB/TSN, Ethercat, Profinet, Software-basierte SPS, Motion-Control-Bibliotheken, CNC-Lösungen und viele mehr. Schließlich können Anwender, die ein Ethercat-Netzwerk in Echtzeit simulieren müssen, die Acontis-EthercatT-Simulatorsoftware EC-Simulator unter Windows unter Verwendung von LxWin ausführen.

Entwicklungsumgebung

Der Kernbestandteil für die Entwicklung und das Debuggen von Echtzeitanwendungen ist die Unterstützung von Microsoft Visual Studio. Projekt-Assistenten helfen den Entwicklern, Echtzeitanwendungen auf einfache und logische Weise zu erstellen, so einfach wie das Erstellen von Windows-Anwendungsprojekten. Auch das Debuggen erfolgt auf die gleiche Weise wie das Debuggen regulärer Windows-Anwendungen.

Linux ist heute auch für die Intel-x86-Architektur (32-Bit sowie 64-Bit) verfügbar. Anwendungen, die für die PC-Plattform geschrieben wurden, können aber problemlos auf die ARM-Architektur portiert werden. Anwender von Windows Embedded Compact bzw. Windows CE müssen aber auf Alternativen umsteigen, da Microsoft keinen Support mehr bietet. Der beliebteste Migrationspfad ist daher RT-Linux. Sollen Windows-Funktionen weiterhin genutzt werden, bietet sich der Einsatz von LxWin.

Erstellung eines Linux-Kernels in Echtzeit

Es gibt aber einige Herausforderungen bei der Verwendung von Linux für Echtzeitanwendungen. Eine der schwierigsten Aufgaben ist die Konfiguration des Linux-Kernels für das Echtzeitverhalten. Bis der Linux-Hauptkernel vollständig als Echtzeit-Kernel realisiert ist, müssen Entwickler den Kernel patchen und ihn speziell konfigurieren, um Echtzeit zu erreichen. Dies wird oft als RT-PREEMPT-Patch bezeichnet, kann aber viele Patches beinhalten, und nicht alle funktionieren perfekt.

Mit LxWin müssen sich Entwickler jedoch überhaupt nicht um die Konfiguration und den Build des Linux-Kernels kümmern. Der Linux-Kernel, der mit LxWin geliefert wird, ist bereits entsprechend gepatcht, konfiguriert und als Hard-Echtzeit-Kernel mit deterministischem Verhalten getestet. Dadurch können extrem kurze Zykluszeiten von bis zu 50 Mikrosekunden erreicht werden. (ge)

Die Funktionen der Windows-Echtzeiterweiterung LxWin:

  • Verfügbar für Windows 7 und höhere Windows-Versionen (32 Bit und 64 Bit)
  • Schnelle Reaktionszeit innerhalb von Mikrosekunden und volle Unabhängigkeit von Windows, wenn Windows abstürzt, funktioniert der Echtzeitteil weiter!
  • Optimierte Nutzung von Multi-Core-Systemen (skalierbar von einem bis zu mehreren CPU-Kernen für den Echtzeitteil)
  • Intuitive und beliebte Echtzeit-API (Prozesse, Threads, Ereignisse, Sockets, POSIX-Unterstützung, …)
  • Unterstützung der Microsoft Development Tools (Visual Studio)
  • Komfortable Debugging-Umgebung für den Echtzeitteil mit den Microsoft-Tools werden Echtzeitanwendungen wie eine normale Windows-Anwendung entwickelt und debuggt

www.acontis.com

Kontakt:
acontis technologies GmbH
88212 Ravensburg
Tel. +49 751 5 60 30 30
rtsupport@acontis.com


Video

LiDAR-Sensoren für die 360-Grad-Rundumsicht...

Aktuelle Ausgabe
Titelbild elektro AUTOMATION 3
Ausgabe
3.2022
LESEN
ABO
Newsletter

Jetzt unseren Newsletter abonnieren

Webinare & Webcasts

Technisches Wissen aus erster Hand

Whitepaper

Hier finden Sie aktuelle Whitepaper

Videos

Hier finden Sie alle aktuellen Videos

Automation Award
Anzeige

Industrie.de Infoservice
Vielen Dank für Ihre Bestellung!
Sie erhalten in Kürze eine Bestätigung per E-Mail.
Von Ihnen ausgesucht:
Weitere Informationen gewünscht?
Einfach neue Dokumente auswählen
und zuletzt Adresse eingeben.
Wie funktioniert der Industrie.de Infoservice?
Zur Hilfeseite »
Ihre Adresse:














Die Konradin Verlag Robert Kohlhammer GmbH erhebt, verarbeitet und nutzt die Daten, die der Nutzer bei der Registrierung zum Industrie.de Infoservice freiwillig zur Verfügung stellt, zum Zwecke der Erfüllung dieses Nutzungsverhältnisses. Der Nutzer erhält damit Zugang zu den Dokumenten des Industrie.de Infoservice.
AGB
datenschutz-online@konradin.de