Industrielle Software
64-Bit-Windows in Echtzeit
Industrielle, bildgebende und medizinische Systeme der nächsten Generation benötigen hochwertige Grafiken und umfangreiche Benutzeroberflächen mit harter Echtzeit-Leistung, Priorisierung und Präzision – verbunden in einem Gesamtsystem. Heutige Industrie-PCs unter 64-Bit-Windows können diese präzise Echtzeit-Leistung auf Software-definierten Peripheriegeräten liefern.
Die komplett neue Implementierung des RTX64 von Intervalzero verwandelt Windows in ein voll funktionsfähiges Echtzeit-Betriebssystem, das ausschließlich auf x64-Mehrkern-Hardware läuft. Dadurch bietet es – je nach tatsächlich vorhandenem physischen RAM-Speicher – Zugriff auf bis zu 128 GByte des nicht ausgelagerten Arbeitsspeichers. Insgesamt stellen die 512 GByte des physischen Speichers von 64-Bit-Windows die Begrenzung auf 4 GByte physischen Speicher von 32-Bit-Windows weit in den Schatten. Die große Menge direkt verfügbaren Speichers eröffnet Wege zu bisher nicht erhältlichen Anwendungen.
Vor allem bietet RTX64 eine einheitliche Hardware-Umgebung aus Handelsware in Form von x64-Multikern-Geräten. Das ermöglicht eine einheitliche Software-Umgebung, die Windows mit seinen reichhaltigen Nutzerschnittstellen, verfügbaren Anwendungen und Entwicklungsumgebung einbringen kann. Windows ist damit nahtlos in eine vollfunktionsfähige, symmetrische Echtzeit-Multiprozess-Umgebung (SMP) RTX64 eingebunden, die auf 1 bis 63 Kerne skaliert. Anwendungen kompilieren auf einer Code-Basis ohne auf usätzliche FPGAs oder DSPs zum Ausführen von Logik angewiesen zu sein, die auf anderem Code basiert, der wiederum separat kompiliert und mit der Hauptanwendung gebunden werden muss. Ein Satz Hardware, eine Betriebssystemumgebung, ein Satz von Tools und eine Codebasis arbeiten eng zusammen und kommunizieren und produzieren skalierbare Hochleistungs-Anwendungen bei verkürzter Produkteinführungszeit.
Vereinheitlichte Architektur
Befreit aus der Isolierung des Echtzeit-Systems und von anderen Funktionen wie der Benutzeroberfläche, können OEMs innovativere Lösungen mit weniger Risiko und Betriebskosten erstellen und probieren.
Betrachten wir beispielsweise die Benutzeroberfläche: Heutige, fortschrittliche Anwendungen – und deren Anwender – verlangen funktionsreiche, interaktive, tast-aktivierte grafische Benutzeroberflächen. Weiterentwickelte eingebettete Systeme reichen weit über die kryptisch bedienbaren Systeme von früher hinaus.
Außerdem wird es zunehmend wichtiger, basierend auf dieser Oberfläche eine prägende Anwendererfahrung zu bieten.
Die Architektur der RTX64 mit Mehrkern-x64: Leistung und Skalierung einer herkömmlichen eingebetteten Umgebung, die auf DSPs, FPGAs und Microcontrollern beruht, kann übertroffen werden.
© IntervalzeroBei Verwendung des RTX64 können Entwicklungsteams ihre eigene UI mit selbstgewählten Windows-basierten Tools schaffen und sicher sein, dass die Objekte in der Benutzeroberfläche direkt mit den RTX64-APIs kommunizieren und Befehle und Daten mit der eingebetteten Anwendung austauschen können. Alle Änderungen am UI oder der eingebetteten Funktionalität lassen sich zwischen beiden nachverfolgen und aktualisieren. Derselbe nahtlose Zugang zu Netzwerken, Datenbanken und Speicher kann für harte Echtzeit-Anwendungen unter RTX64 bereitgestellt werden, weil es Windows in keiner Weise verändert, sondern eine Echtzeit-Erweiterung für Windows darstellt. Seine Kommunika-tion mit Windows hängt nicht von Mechanismen wie Remote Procedure Calls, Virtualisierung oder Hypervisoren ab, die mit anderen Implementierungen verschiedener Betriebssysteme verbunden sind. Das Hinzufügen eines zweiten Schedulers und einer RTOS-Infrastruktur ermöglicht die Ausführung von UI-Funktionen in Windows, während Echtzeitfunktionen auf dem RTX-Scheduler ausgeführt werden. Jede Aufgabe, jeweils an den richtigen Scheduler über-geben, liefert das beste Gesamtergebnis.
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.
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.
© IntervalzeroRTX64 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 Benutzeroberflä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.
SMP für mehr Leistung und Skalierbarkeit
Freilich gibt es bei der Nutzung von Mehrkern-Prozessoren verschiedene Denkrichtungen. Diese lassen sich in asymmetrisches Multiprocessing (AMP) oder Virtualisierung und symmetrisches Multiprocessing (SMP) unterteilen. Hat AMP das Ziel Isolierung, setzt SMP auf Integration.
Ethercat bietet Gateways zur Integration vorhandener Feldbus-Komponenten wie CANopen oder Profibus. Es wird unter RTX64 in der Software ausgeführt, jedoch ohne die Notwendigkeit für spezialisierte, an den Systembus angeschlossene Ethercat-Karten.
© IntervalzeroRTX64 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 eine gemeinsam genutzte Ressource verwendet. Es erfordert nur eine Kopie der gesamten Betriebssystem-Umgebung, einschließlich Echtzeit-Subsystem mit einem Echtzeit-Scheduler, der Zugriff auf alle dem Subsystem zugewiesenen Kerne hat. Im Unterschied zu AMP kann der Code einmal geschrieben und dann später skaliert werden, wenn Funktionen hinzugefügt werden, indem Threads statisch neu zugewiesen oder Kerne und neue Partitionen hinzugefügt werden. Da alle Kerne und damit alle Threads direkten Zugriff auf die freigegebenen Daten haben und alle Ressourcen für alle Echtzeit-Prozesse sichtbar sind, werden keine zusätzlichen Kopien oder komplizierte prozessübergreifende Kommunikationsschemen oder Remote Procedure Calls benötigt. Die Möglichkeit, eine erweiterte Betriebssystem-Umgebung quer über eine homogene Hardware-Plattform zu nutzen, verringert die wichtigste Hardware-Entscheidung des OEM auf die Fragen: „Habe ich ausreichend viele Kerne, um die gewünschten Aufgaben zu erfüllen?” oder: „Wie viele zusätzliche Kerne brauche ich, um diese Anwendung auf die erforderliche Funktionalität zu skalieren?”
Keine Schnittstellenbrücken zwischen ungleichen Hardware-Elementen wie FPGAs und DSPs müssen hergestellt und auch kein Code an Teile mit höherer Leistung und gleichzeitig unterschiedlichen Programmieranforderungen angepasst werden. Es müssen nicht mehr verschiedene Hardware-Spezialisten zusammenarbeiten, um ein Produkt zu schaffen oder zu verbessern. Das Team definiert die Leistung in Gestalt einer einzigen Programmiersprache wie C++.
Das bringt den zusätzlichen Vorteil, dass man für das gesamte Projekt nur einen Satz von Entwicklungswerkzeugen hat, wie Microsoft Visual Studio. Windows dient als Entwicklungsum-gebung für das gesamte System – Windows-Funktionen wie auch für die Echtzeit-Codierung in der gleichen Umgebung. Auch andere Windows-basierte Werkzeuge können eingebracht werden, etwa für Anforderungsanalysen, Versionskontrolle oder statische Analyse, um nur einige zu erwähnen. Der Benutzermodus des Echtzeit-Subsystems umfasst auch eine RTX64-Server-Konsole, die mit dem RTSS verbunden ist. Das Echtzeit-Team kann ebenso bevorzugte Echtzeit-Debugger, -Profiler und -Analyzer nutzen, um das Echtzeit-Subsystem genau anzupassen. Und sie alle können sich untereinander in den gleichen Begriffen austauschen und gegenseitig beraten. Niemand muss Verilog lernen oder eine DSP-Programmiersprache.
Konnektivität – Internet und Echtzeit
Mit dem Aufstieg des Internet der Dinge ist Konnektivität unverzichtbar geworden, um Geräte mit lokalen Netzen, mit Servern und schließlich mit der Cloud zu verbinden. Windows stellt die Internet-Konnektivität bereit, die angepasst werden kann, um Daten und Befehle mit Echtzeit-Prozessen auszutauschen. Außerdem ist mit Windows auch eine Remote-Nutzeroberfläche gegeben, um von nahezu überall mit den Systemen zusammenzuwirken. Die Windows-Internet-Verbindung gewährleistet allerdings keine Echtzeit.
Führen dieselben Systeme Windows und RTX64-Echtzeit-Erweiterungsumgebung aus, wird es möglich, eine Echtzeit-Ethernet-Konnektivität in Form von Ethercat hinzuzufügen, wie ein Ethernet-basiertes Fieldbus-System für die Steuerungsautomationstechnik (CAT), Ethercat bietet auch Gateways zum Integrieren vorhandener Fieldbus-Komponenten wie CANopen oder Profibus. Ethercat wird unter RTX64 in der Software ausgeführt, ohne die Notwendigkeit für spezielle, an den Systembus angeschlossene Ethercat-Karten. Ethercat wird auf einem oder mehreren Prozessor-Kernen ausgeführt und kommuniziert direkt mit dem NIC (Network Interface Chip), der im System verwendet wird. Das einzelne Gerät kann während der Ethercat-Konfigura-tion ausgewählt werden.
Ethercat ist eine attraktive Alternative zu häufig komplexen und teuren Verdrahtungsschemata die mit industriellen Steuer- und Regelsystemen einhergehen. Ein einzelnes Kabel kann mehrere Steuerkanäle führen, zusammen mit Sicherheitssignalen mit einem SIL3-Zertifikat. Außerdem können der Ethercat-Funktionalität mehrere Kerne zugewiesen werden für eine wahrlich umfangreiche Steuerungskonnektivität, und alles ohne die Kosten und den Energiebedarf zusätzlicher Spezial-Hardware.
Aufwandsminderung für OEMs
Intervalzero hat mit RTX64 den Weg zu Windows-basierten Echtzeit-Systemen mit hochwertiger Bildverarbeitung, Visualisierung und funktionsreichen Benutzeroberflächen bereitet. Dadurch wird Entwicklern die Möglichkeit gegeben wird, Funktionen von Hardware- in Software-Komponenten zu übernehmen, indem die Leistung zugrundeliegender Multikern-Verarbeitungs-Hardware nutzbar gemacht wird. Das Software-Team benötigt kein spezialisiertes Fachwissen über die Hardware wie bei DSP und FPGA. Der Code ist auf einer einheitlichten Basis vorhanden und kann als solcher verwaltet werden.
RTX64 integriert sich nahtlos ins Microsoft Visual Studio Integrated Development Environment und entfaltet sich zu einem integrierten Windows-System. Es erweitert Windows, liefert harte Echtzeit-Präzision mit begrenzter Latenz – und das mit Multikern-Prozessoren als skalierbare native SMP-aktivierte Lösung.
Autor: Bernhard Hartmann ist Sales Manager von Intervalzero.













