Für PC-gestützte Automatisierung wünscht man sich Folgendes von einer Windows-Echtzeiterweiterung:
deterministische Ausführung einzelner Aufgaben
koordiniertes Verhalten mehrerer Anwendungen
genaue Zeitstempel
sofortige Reaktion auf externe Ereignisse
geringste Abweichungen (Jitter) bei zyklischer Erfassung von Messwerten
exakte Überwachung von Prozesszuständen in Echtzeit
nicht nur „relativ schnelle Rechner“ bei Schönwetter, sondern wirkliche „harte“ Echtzeit
Echtzeit unter Windows
Kithara RealTime Suite stellt mit einem modularen System verschiedene Mechanismen bereit, um für derartige Aufgabenstellungen eine perfekte Lösung zu bieten. Hier einige grundlegende Eigenschaften:
Ausnutzung der höchsten Systempriorität (vor allen anderen Windows-Aktivitäten).
Dadurch ungestörte Ausführung vorrangiger Funktionen für wichtige Aufgaben.
Hohe Genauigkeit in der Reaktion auf externe Ereignisse wie Timer, Interrupts, Kommunikationsschnittstellen etc.
Ausnutzung der Hardware-Parallelität (mehrere CPU-Kerne, Verteilung der Echtzeitaufgaben).
Skalierbarkeit der Echtzeitausführung bis hin zu extremer Echtzeit auf exklusiv benutzten CPU-Kernen.
Unterstützt Windows sowie Windows Server (nur 64-Bit-Betriebssystem), jeweils mit Dedicated Mode
Unsere hochfrequenten Timer für Windows werden verwendet in Mess-, Steuerungs- und Regelungsapplikationen, Automatisierung, Robotik sowie Bilderfassung und -verarbeitung. Im Kithara-Echtzeitsystem, dessen Leistung dem eines reinen Echtzeitbetriebssystems entspricht, sind Echtzeit-Timer mit Frequenzen von mehreren Kilohertz und darüber programmierbar. Die Abweichung (Jitter) beträgt nur wenige Mikrosekunden. Auf exklusiv benutzten CPU-Kernen sind extreme Echtzeiteigenschaften realisierbar: Der maximale Jitter von Timern beträgt nur etwa eine Mikrosekunde. Damit lassen sich genaue, zyklische Timeraufrufe mit Frequenzen von über 20 kHz programmieren. Für den schnellen Datenaustausch zwischen Echtzeit- und Anwendungsebene stehen Events, Shared Memory und komfortable Pipe-Mechanismen oder auch Sockets bereit.
Viele Anwendungen sind nur durch ein komplexes Modell der Abläufe zu formulieren. Sie erfordern daher entsprechend leistungsfähige Mittel zur Umsetzung. Der dafür am besten geeignete Ansatz ist ein prioritätsgesteuertes, präemptives Multitasking-System. Echtzeit-Tasks mit bis zu 255 Prioritätsstufen sorgen zuverlässig dafür, dass jeweils nur der am höchsten priorisierte Task ausgeführt wird.
Module
Echtzeit-Multitasking besteht im modularen System von Kithara RealTime Suite aus folgenden Komponenten:
hochgenaue und kalibrierte Ermittlung der Systemzeit sowie Kurzzeitverzögerungen
Timer Module,
Programmierung hochfrequenter Echtzeit-Timer-Routinen und prioritätsgesteuertes, präemptives Echtzeit-Multitasking
RealTime Tasking Module,
Hochgenaue und kalibrierte Ermittlung der Systemzeit sowie Kurzzeitverzögerungen
Allgemein
Features
Das Timer Module bildet mit seinen Zeitgeberfunktionen die Basis für alle Echtzeitaufgaben. Es stellt einen kalibrierten Zugang zu allen Hardware-Zeitbasen im System bereit. Zeitangaben lassen sich in beliebige, auch anwenderspezifische Zeitformate umrechnen. Kurzzeitverzögerungen sind je nach zugrundeliegender Hardware bis auf wenige Nanosekunden genau. Zusätzlich lassen sich einfache Timer ohne Echtzeit in Millisekundenauflösung auf Basis von Windows-Mechanismen erstellen.
Erkennung aller im System befindlichen Hardware-Zeitbasen
Kalibrierung der verschiedenen Zeitgeber
Langzeitsynchronisation bei Systemuhren
Ermittlung der Systemzeit in verschiedenen Formaten, Auflösung bis ca. 0,1 µs
Hochgenaue Kurzzeitverzögerungen in 0,1-µs-Schritten
Programmierung anwenderspezifischer Zeitformate
Zuverlässige Verhinderung von Überläufen durch interne 96-Bit-Operation
Einfache Timer in Millisekundenauflösung auf Basis von Windows-Mechanismen (keine Echtzeit)
RealTime Tasking Module
Programmierung hochfrequenter Echtzeit-Timer-Routinen und prioritätsgesteuertes, präemptives Echtzeit-Multitasking
Allgemein
Features
Erweiterungen
Das RealTime Tasking Module ergänzt das Timer Module und ermöglicht die Programmierung von Echtzeit-Timern, die den Anwendercode auf verschiedene Weise signalisieren können. Der Kontext der Programmausführung lässt sich wählen. Signalisierbare Objekte können Events und Callbacks auf Anwendungs- oder Kernel-Ebene sowie Echtzeit-Tasks sein. Zudem wird ein prioritätsgesteuertes, präemptives Echtzeit-Multitasking-System zur gegenseitigen Priorisierung einzelner Echtzeitaufgaben bereitgestellt. Damit lässt sich detailliert bestimmen, welche Bearbeitung vor anderen Vorrang hat, weniger wichtige unterbrechen soll und welche sich selbst von wichtigeren Aufgaben unterbrechen lässt, was den Mitteln eines reinen Echtzeitbetriebssystems (RTOS) entspricht.
Für maximal zwei dedizierte CPUs, darüber Dedicated CPU Extension erforderlich.
Real Time
Entwicklung hochfrequenter Echtzeit-Timer-Routinen
Zyklische oder einmalige Timer programmierbar
Einfache Debug- und Testmöglichkeit bei Callback auf Anwendungsebene
Timer lassen sich gezielt starten, stoppen, abbrechen
Watchdog-Mechanismen einfach umsetzbar
Startzeitpunkt lässt sich in 0,1-µs-Auflösung vorgeben (etwa zur Synchronisation mit anderen Abläufen)
Timer-Frequenz bis zu 20 kHz und mehr
Jitter im einstelligen Mikrosekundenbereich
Timerperiode dynamisch justierbar
Multitasking
Präemptives Echtzeitsystem
Echtzeit-Tasks mit bis zu 255 Prioritätsstufen programmierbar
Dynamische Anpassung der Prioritätsstufe möglich
Mehrere Tasks mit der gleichen Prioritätsstufe als „Round-Robin“
Inklusive Prioritätsvererbung zur Vermeidung der Prioritätsinversion
Echtzeit-Semaphore zur Synchronisation zwischen Echtzeit-Tasks
Echtzeit-Events zur Signalisierung von Tasks von außerhalb
Tasks lassen sich suspendieren, fortsetzen, triggern, vorzeitig beenden („exit“) und abbrechen („kill“)
Tasks lassen sich verzögern (in 0,1-µs-Auflösung)
Betrieb von CPU-Kernen ausschließlich im Echtzeitmodus zur Vermeidung von Windows-Beeinflussung
sehr kurze Taskwechselzeiten
Speedloop-Modus für hochgenaue zyklische Ausführung
Erweiterung um zusätzliche logische dedizierte CPUs
Extended Level: bis 8
Maximum Level (benötigt Extended Level): bis 47 (darüber auf Anfrage)
PTP Module
Echtzeit-Synchronisation mit Precision Time Protocol
Allgemein
Features
Erweiterungen
Mit dem PTP Module lassen sich mehrere Netzwerkteilnehmer in einem verteilten System präzise synchronisieren und in Echtzeit ansteuern. Das Kithara Echtzeitsystem sorgt dafür, dass genaue Zeitstempel mit Abweichungen im Sub-Mikrosekundenbereich erzeugt werden, um so die Zeitgeber aller Teilnehmer genau abzugleichen. Die API ermöglicht die Verwendung des BMCA (Best Master Clock Algorithm), der den bevorzugten Zeitgeber nach konfigurierbaren Parametern ermittelt. Alternativ können Master und Slaves manuell gesetzt werden.
Echtzeit-Kommunikation und -synchronisation mit NMEA 0183.
gPTP Extension
Die gPTP Extension erweitert das PTP Module um die Unterstützung für das „generalized Precision Time Protocol“ (definiert in IEEE 802.1AS), einem vereinfachten PTP-Profil. Die gPTP Extension ermöglicht das hochgenaue Synchronisieren aller Zeitgeber in einem verteilten System, beschränkt sich jedoch auf einen übersichtlichen Satz an Funktionen und ist damit für ein breiteres Anwendungsspektrum geeignet. So müssen Zeitgeber beispielsweise nicht mehr einzeln konfiguriert werden, sondern sind vereinheitlicht.
Voraussetzung zur Erreichung von „harten“ Echtzeiteigenschaften ist die Ausführung Ihres Anwendungscodes auf der Kernel-Ebene des Systems.
Nutzung der Kernel-Ebene unterstützt C, C++ und Delphi sowie C# (durch Verlagern das Codes in eine DLL)
Da wir Ihnen Funktionsbibliotheken zur Verfügung stellen, profitieren Sie von einer schlanken, am Bedarf orientierten Programmierung, die Ihre Entwickler bis ins Detail beherrschen und so Anpassungen selber vornehmen können, also keine „Black Box“.
Realisieren Sie mit unserem Know-How komplexe Applikationen! Nutzen Sie Multitasking und Echtzeit-Ethernet-Kommunikation mit bis zu 40 Gbit/s für vielfältige Automatisierungsanwendungen, zum Beispiel mit EtherCAT oder CAN- bzw. CANopen-basierten Feldbusanwendungen. Passende und leistungsfähige Entwicklungswerkzeuge, wie
Kithara Kernel Tracer zur mikrosekundengenauen Beobachtung aller Vorgänge oder Kithara Master Monitor zur grafischen Visualisierung und Kontrolle angeschlossener I/O-Klemmen, Sensoren und Aktoren vervollständigen das Konzept.
Ja, dank der Dedicated-CPU-Funktion ist Kithara RealTime Suite leistungstechnisch ein RTOS. Das Echtzeitsystem und Windows laufen hierfür separat aber parallel auf vorher zugewiesenen CPU-Kernen und bremsen sich so nicht gegenseitig aus.
In einem RTOS müssen Aufgaben (Tasks) deterministisch verwaltet werden (etwa durch feste Prioritäten), und es muss ein schneller Wechsel zwischen diesen Tasks gewährleistet sein.
Der PTP-Stack läuft direkt im Echtzeit-Kontext der Kithara-Echtzeiterweiterung. Nur so können die PTP-Pakete mit der notwendigen Priorität und ohne Verzögerung durch Windows-Hintergrundprozesse verarbeitet werden.
Ein Echtzeit-Timer ermöglicht die zeitlich exakt determinierte Ausführung von Aufgaben mit garantierten Zykluszeiten und minimalem Jitter. Er wird überall dort benötigt, wo solche zeitkritischen Prozesse wie Motion Control, Messtechnik, Regelungen oder industrielle Kommunikation zuverlässig und reproduzierbar ablaufen müssen.
Weiche Echtzeit toleriert gelegentliche Zeitüberschreitungen, während harte Echtzeit garantiert, dass definierte Zeitgrenzen niemals überschritten werden. Kithara RealTime Suite erfüllt harte Echtzeit-Anforderungen und eignet sich damit für sicherheits- und qualitätskritische Industrieanwendungen.
Ja. Der Echtzeit-Timer unterstützt echtes deterministisches Multitasking mit festen Prioritäten. Mehrere zeitkritische Tasks können parallel und unabhängig voneinander geplant und ausgeführt werden.
EtherCAT® und Safety over EtherCAT® sind eingetragene Marken und patentierte Technologien, lizenziert durch die Beckhoff Automation GmbH, Deutschland. CANopen® ist ein registriertes Warenzeichen des CAN in Automation e. V. GigE Vision® ist ein registriertes Warenzeichen der Automated Imaging Association. USB3 Vision® ist ein registriertes Warenzeichen der Automated Imaging Association.