Sie sind hier: HomeSteuerungsebeneIndustrie-PC

Industrielle Software: 64-Bit-Windows in Echtzeit

Fortsetzung des Artikels von Teil 2.

Neuer Start mit 64 Bit

Der RTX64 wurde von Grund auf neu konzipiert, um die Welt der 64-Bit-Echtzeit-Verarbeitung zu eröffnen. Professionelles Audio und Video, hoch-wertige medizinische Geräte und fortschrittliche industrielle Steuersysteme, die maschinelle Bildverarbeitung und umfangreiche Nutzeroberflächen beinhalten, stellen Anforderungen, die nur fortschrittliche 64-Bit-Systeme erfüllen können, welche die umfassenden Bedieneroberflächen eines Windows einschließen, zusammen mit der hohen Leistungsfähigkeit eines 64-Bit-RTOS.

Echtzeitbetriebssystem Erweiterung RTX64, Intervalzero Bildquelle: © Intervalzero

RTX64 stellt eine Echtzeit-Betriebssystem-Erweiterung für Windows dar und arbeitet mit Windows als einer Betriebssystem-Umgebung, die den SMP-Ansatz zur Behandlung der Multiprozessor-Hardware als einzelne, gemeinsam genutzte Ressource verwendet.

RTX64 bietet eine Architektur, die Vorteil aus fortgeschrittenen Technologien zieht – insbesondere Mehrkern-x64 mit hohen Taktraten, die Leistung und Skalierung einer herkömmlichen eingebetteten Umgebung übertreffen kann, die auf DSPs, FPGAs und Mikrocontrollern beruht. Das wird durch ein Implementieren der Funktionen auf höherer Leistungsebene in einheitlicher Hardware-Umgebung erzielt. Es kann zudem in Verbindung mit Windows erfolgen, das eine funktionsreiche Nutzer-umgebung bietet und den Zugriff auf zahllose Anwendungen ermöglicht, welche Echtzeit-Operationen nutzen können.

Zunächst hat RTX64 einen Hardware Abstraction Layer (HAL), der sich zwar von der Windows HAL unterscheidet, jedoch parallel dazu läuft. Es ist daher von Anfang an keine Modifizierung von Windows erforderlich. Die zwei Systeme laufen nebeneinander und kommunizieren über vorhandene Mechanismen. Die RTX64 HAL kann von 1 bis 63 Kerne skaliert werden, um deterministische Echtzeit-Leistung im Takt von bis zu 1 μs (je nach Hardware-Unterstützung) zu liefern. Der Scheduler, der im RTX64-Echtzeit-Subsystem (RTSS) angesiedelt ist, kann Kernen Threads zuweisen, um symmetrisches Multiprocessing (SMP) zu ermöglichen, ohne auf Virtualisierung oder komplizierte Kommunikation zwischen den einzelnen Prozessen angewiesen zu sein.

Dies ist auch ein Ergebnis des großen Speichers, der allen Kernen ohne Partitionierung verfügbar ist. Bis zu 128 GByte nicht ausgelagerter Speicher und bis zu 512 GByte physischer Speicher können vom gesamten System benutzt werden. Das stellt einen immensen Vorteil für medizinische Anwendungen dar, die immer mehr von der Visualisierung abhängen, wie bei der sich gerade entwickelnden OCT-Technik (Optical Coherence Tomography). Aber auch für chirurgische Roboter, die in Echtzeit arbeiten und von präzisen Wiedergabe- und Verarbeitungsvorgängen für Organ-abbildungen abhängig sind, wie etwa eines schlagenden Herzens. Für fortschrittliche industrielle Steuersysteme ist es unerlässlich, dass dem Anwender visuelle Daten nicht nur angezeigt, sondern dass diese auch in Echtzeit verarbeitet werden, um die Bewegungssteuerung von Werkzeugen zu ermöglichen, wie auch die Inspektion der vom Prozess erzeugten Teile.

Eine solche generische Hochleistungs-Hardware-Plattform mit einem derartigen Speicherraum erlaubt es OEMs, spezielle Software zu entwickeln, die extrem spezialisierte Funktionen ausführen kann, welche sonst spezielle Hardware-Komponenten erfordert hätten. In den von RTX64 ermöglichten Szenarien können Anwendungen dem Nutzer als gewöhnliche Windows-Anwendungen präsentiert werden, während viele der Funktionen hinter der Benutzeroberfläche den Vorteil der RTX64-Echtzeit-Prozesse nutzen. Beispielsweise kann ein Werkzeugmaschinen-Steuerprogramm eine Ansicht des bearbeiteten Teils anzeigen, zusammen mit Bedienelementen und Einstellwerten, auf die der Anwender über einen Touchscreen zugreifen kann. Die Anwendung selbst besteht aus zwei Teilen und das Windows-Programm kann mit dem Echtzeit-Steuerprogramm mittels Echtzeit-APIs auf zwei Ebenen kommunizieren – auf der Kernel- und der Nutzerebene.

Auf der Kernel-Ebene kann ein Windows-Treiber Daten an die RTX64-Seite senden, die möglicherweise den Verfahrweg eines Werkzeugs steuert, gleichzeitig aktuelle Positionsdaten empfangen und diese an die Nutzeroberfläche weitergeben, oder über einen Echtzeit-Kernel (RtkApi) einer Verarbeitung zuführen. Auf der Nutzerebene kann der Anwender Werte oder Positionen von Schaltern usw. auf dem Touchscreen einstellen und diese einem Windows-Prozess kommunizieren. Dieser Prozess nutzt im Gegenzug die Echtzeit-API (RtApi) zur Kommunikation mit dem RTSS. Diese zwei Klassen von API kommunizieren direkt mit dem RTSS, in dem das Echtzeit-Steuerprogramm untergebracht ist.

Mit steigender Nachfrage nach funktionsreichen Benutzeroberflächen für eingebettete und Echtzeit-Systeme sehen sich Entwickler dem Dilemma ­gegenübergestellt, solche Oberflächen mit RTOS-Umgebungen zu verknüpfen, die gewöhnlich nicht zur Unterstützung komplexer Benutzerober­flächen konzipiert wurden. Mit der RTX64-Erweiterung für Windows kann problemlos das Lieblings-Grafik-Tool zum Konzipieren einer Benutzeroberfläche verwendet werden, die anhand der RTX-APIs direkt mit der zugrundeliegenden Echtzeit-Anwendung verknüpft werden kann.