Multikernelnutzung

Multikernelnutzung

Windows und Echtzeit-OS in einer Hardware

Bisher bestanden Bilderkennungssysteme oft aus zwei Teilen: Einem System zur Erfassung und Aufbereitung und einem zur Steuerung. Heute wächst der Bedarf nach vereinten und integrierten Umgebungen, um Kosten zu verringern und Systeme leichter konfigurierbar zu machen. Das RTX64 System verbindet Echtzeit-Leistung in einer Multikernel-SMP (Symmetric Multi Processing) Umgebung mit Shared Memory, die gleichzeitig die Parallelität von Bilderfassung/-verarbeitung sowie eine Echtzeit-Steuerung zusammen mit einer Windowsumgebung erlaubt.
Solch ein System, basierend auf RTX64, könnte auf einem Multikernel- PC mit mehreren parallelen Echtzeitkerneln implementiert werden, mit Microsoft Windows als Schnittstelle zum Menschen, Verbindung zu externen Netzwerken (Internet,…) und programmiert über Microsoft Visual Studio. Die Parallelität wird durch die Fähigkeit von Threads, die auf verschiedenen Kerneln laufen und auf Shared Memory zuzugreifen verbessert, was mögliche Bildeinzugsprobleme oder das Problem der Datenduplizierung vermeidet.

Windows als Echtzeit Betriebssystem

RTX64 verwandelt Windows in ein voll funktionelles Echtzeit Betriebssystem, das vollständig auf x64 Multicore-Hardware läuft. Es erlaubt den Zugriff auf bis zu 128Gbytes nicht-paginierten Speicher, abhängig von der tatsächlich abgebildeten physikalischen RAM-Größe. Die 512Gbytes physikalischer Speicher von 64-bit Windows übertrifft bei weitem die 4GByte Limitierung von 32-bit Windows für physikalischen Speicher. Die enorme Menge an verfügbaren Speicher öffnet so die Tür zur Implementierung mächtiger Bildverarbeitungssysteme, die große Mengen an Bilddaten aufnehmen können und allen im System laufenden Kernen gleichermaßen verfügbar sind. Vor allem erlaubt RTX64 eine Hardware Umgebung aus überall erhältlicher Handelsware in Form von Multicore x64-Geräten. Dies ermöglicht eine Software Umgebung, die Windows mit allen Benutzerschnittstellen, Anwendungen und der Entwicklungsumgebung beherbergen kann. Windows ist zudem verbunden mit der echtzeitfähigen SMP (Symmetric Multi Processing) RTX64 Umgebung, die von eins auf bis zu 63 Kernel skaliert werden kann. Somit können Anwendungen auf einer gemeinsamen Code Basis kompiliert werden, ohne FPGAs oder DSPs zum Ausführen der Logik einzusetzen, deren Code sonst seperat kompiliert und mit der Hauptanwendung extra verknüpft werden müsste. RTX64 hat einen Hardware Abstraktionslayer (HAL) der sich vom Windows HAL unterscheidet, aber nebenher arbeitet, und keine Modifikation an Windows erfordert. Beide Systeme operieren Seite an Seite und kommunizieren über existierende Mechanismen. Die RTX64 HAL kann deterministische Echtzeit-Leistung mit Zeittakten bis zu 1µs (abhängig von der Hardware Unterstützung) liefern. Der im Echtzeit Subsystem (RTSS) enthaltene Scheduler, kann Threads auf Kerne zuordnen, um symmetrisches Multiprocessing (SMP) zu erreichen, ohne auf Virtualisierung, oder andere komplexe Interprozess-Kommunikationsmechanismen angewiesen zu sein. Der gesamte Speicherraum ist allen Kernen ohne Speicher Partitionierung verfügbar. Das ist ein großer Vorteil für bildverarbeitungsgesteuerte Anwendungen und hochentwickelte industrielle Steuersysteme, die nicht nur visuelle Daten für den Anwender anzeigen, sondern diese auch in Echtzeit verarbeiten, um Bewegungen von Werkzeugen zu steuern, sowie für die Inspektion von erstellten Teile zur Verfügung stellen. Ein so großer Speicherraum, verfügbar auf einer Hardware Plattform, erlaubt es OEMs Software zu entwickeln, die extrem spezialisierte Funktionen enthält, für die ansonsten weitere Hardware Komponenten benötigt wurden. Die Software kann immer wieder repliziert werden und das Team benötigt kein Wissen über spezialisierte Hardware wie DSPs und FPGAs. Der Code existiert in einer vereinheitlichten Code Basis und kann als solcher verwaltet werden.

Mächtige Visionssysteme

Ein RTX64 System ermöglicht die Implementierung eines mächtigen und vielseitigen Bildverarbeitungssystem, das zum größten Teil in der Software festgelegt ist. Die primäre Entscheidung bei der Hardware würde dann die Auswahl der Kamera sein, sowie der speziellen Vorrichtungen, die gesteuert werden sollen, wie z.B. ein Roboterarm, Schweißgerät, Fräswerkzeug oder ein Luftstoß, um aussortierte Teile von einem Förderband zu stoßen. Angesichts der großen Verarbeitungsmöglichkeiten eines Multicore RTX64 Systems ist das sorgfältige Abwägen der Kamerafeatures gegen die Kosten des neuen Systems ein wichtiger Schritt. Das Erledigen von Aufgaben durch die gesteigerte Leistungsfähigkeit kann die Kosten für die benötigte Kamera erheblich verringern. Aus diesem Grund empfiehlt IntervalZero den Schnittstellen Standard GigE-Vision, der schnelle Bildübertragung mit kostengünstiger Standard Ethernet-Kabeln erlaubt und Verbindungen über eine Länge von bis zu 100m zulässt, bzw. bis zu 5.000m mit Glasfiberkabeln. Da GigE Vision eine Standard-Ethernet Verbindung nutzt, ist es nicht auf spezialisierte Hardware wie z.B. einen Framegrabber angewiesen, um Daten an die Anwendung zu übertragen. Darüber hinaus kann es mit einer eigenen IP-Adresse für jede Kamera auch mehrere Kameras auf demselben Netzwerk unterstützen. Des Weiteren setzt GigE Vision auf GenICam auf und kann daher jede beliebige Kamera einbinden, die über GigE-Vision Ethernet- oder EtherCAT-Kabel mit dem RTX64 System verbunden ist. Es bietet etliche Module, einschließlich eines generischen Steuerprotokolls, Namenskonvention, API und einen Transport Layer, der einfach angepasst werden kann, um verschiedene Kamera-/Anwendungskombinationen aufzunehmen.

Seiten: 1 2Auf einer Seite lesen

Das könnte Sie auch Interessieren