Wann empfiehlt sich ein Echtzeitsystem?

Überblick

In dieser kurzen Einführung erhalten Sie einen Überblick über Echtzeitsysteme. Aus welchen Komponenten setzt sich ein Echtzeitsystem zusammen und unter welchen Umständen sollten Sie das Erstellen eines solchen Systems für Ihr nächstes Projekt erwägen?

Inhaltsverzeichnis

  1. Einführung
  2. Was ist ein Echtzeitsystem?
  3. Aus welchen Komponenten besteht ein Echtzeitsystem?
  4. Zusammenfassung: Wann empfiehlt sich ein Echtzeitsystem?

Einführung

Vielleicht ist Ihnen der Begriff "Echtzeit" im Zusammenhang mit Computersystemen bereits bekannt oder Sie haben schon einmal vom LabVIEW Real-Time Module gehört. Was bedeutet diese Terminologie? Welche Komponenten machen aus einem System ein "Echtzeitsystem"? Wann ist es sinnvoll, ein Echtzeitsystem für Ihr Projekt zu wählen? 

In dieser Anleitung werden diese Fragen beantwortet, damit Sie leichter bestimmen können, ob ein Echtzeitsystem für Ihre Zwecke sinnvoll ist. Nach dem Lesen dieser Seite können Sie unter Erstellen von Echtzeitsystemen mit Hardware und Software von NI mehr darüber erfahren, wie National Instruments Ihnen helfen kann, unter geringstmöglichem Zeitaufwand ein leistungsstarkes Echtzeitsystem zu erstellen.

Nach oben

Was ist ein Echtzeitsystem?

Ein Echtzeit-Computersystem kann Programme mit sehr spezifischen Timing-Anforderungen zuverlässig ausführen,was bei vielen Projekten in Wissenschaft und Technik sehr wichtig ist.  Die Schlüsselkomponente beim Erstellen eines Echtzeitsystems ist ein Echtzeit-Betriebssystem (RTOS). Weitere Hardware- und Softwarekomponenten, aus denen sich ein vollständiges Echtzeitsystem zusammensetzt, werden im nächsten Abschnitt besprochen.

Präzises Timing

Für viele Ingenieure und Wissenschaftler ist das Ausführen von Mess- oder Steuerprogrammen auf einem Standard-PC mit einem allgemeinen Betriebssystem (wie Windows) nicht akzeptabel. Das Betriebssystem kann die Ausführung eines Anwenderprogramms aus vielen Gründen verzögern, beispielsweise durch das Ausführen von Virenscans oder Systemhintergrundaufgaben, das Aktualisieren von Grafiken und mehr. Bei Programmen, die mit einer bestimmten Rate ohne Unterbrechung laufen müssen (z. B. ein Geschwindigkeitsregelsystem), kann diese Verzögerung einen Systemausfall verursachen.

Beachten Sie, dass dieses Verhalten beabsichtigt ist: Allgemeine Betriebssysteme sind für die gleichzeitige Ausführung vieler Prozesse und Anwendungen optimiert und bieten darüber hinaus weitere Features wie komplexe Benutzeroberflächen-Grafiken. Im Gegensatz dazu sind Echtzeit-Betriebssysteme dafür ausgelegt, ein einzelnes Programm mit sehr präzisem Timing auszuführen. Speziell können Echtzeit-Betriebssysteme Folgendes:

  • Ausführen von Aufgaben innerhalb eines garantierten Worst-Case-Zeitrahmens (Extremfall der längsten Ausführungsdauer)
  • Sorgfältiges Priorisieren verschiedener Abschnitte Ihres Programms
  • Ausführen von Schleifen mit quasi dem gleichen Timing für jede Iteration (mit Abweichungen im Rahmen von Mikrosekunden)
  • Erkennen, ob eine Schleife ihr Timing-Ziel verpasst

Im Zusammenhang mit Echtzeit-Computersystemen können Sie auf die Begriffe "Hard Real-Time" und "Soft Real-Time" stoßen. Harte Echtzeitsysteme garantieren, dass eine Aufgabe innerhalb eines vorgegebenen Worst-Case-Zeitrahmens ausgeführt wird. Daher ist für Projekte, die Sicherheit oder Systeme betreffen, die im Falle eines Ausfalls große Verluste verursachen können, eine harte Echtzeit oft eine Voraussetzung. Auf der anderen Seite sind weiche Echtzeitsysteme dafür ausgelegt, Ihre Timing-Anforderungen zwar meistens zu erfüllen, jedoch nicht mit absoluter Sicherheit. Dies kann für Aufgaben wie die Videoverarbeitung akzeptabel sein, wo ein verlorener Datenrahmen nicht unbedingt ein kritisches Problem darstellt. 

Abbildung 1. Harte Echtzeitsysteme garantieren (bei korrekter Programmierung), dass eine Frist konsequent eingehalten wird, während weiche Echtzeitsysteme die Frist periodisch überschreiten können.

Ausführlichere Erläuterungen zu Echtzeit-Betriebssystemen oder zu Echtzeit-Terminologie wie "Determinismus" und "Jitter" finden Sie auf der Seite Was versteht man unter einem Echtzeit-Betriebssystem?.

Zuverlässigkeit/Stabilität

Über ihr präzises Timing hinaus können Echtzeitsysteme so eingerichtet werden, dass sie ohne Unterbrechung über Tage, Monate oder Jahre zuverlässig laufen. Dies ist nicht nur für Ingenieure wichtig, die Systeme für einen 24-Stunden-Betrieb erstellen, sondern auch  für Anwendungen in Bereichen, wo Ausfallzeiten sehr teuer sind.  In Echtzeitsystemen ist typischerweise auch eine Überwachungsfunktion enthalten (ein sogenannter "Watchdog"), die einen Neustart des Rechners auslöst, falls das Anwenderprogramm nicht mehr läuft. Weiterhin ist die in Echtzeitsystemen verwendete Hardware oft auf das langfristige Arbeiten unter erschwerten Bedingungen ausgelegt.

Nach oben

Aus welchen Komponenten besteht ein Echtzeitsystem?

Obwohl die Hauptkomponente für das Erstellen eines Echtzeitsystems das RTOS ist, werden für ein vollständiges Echtzeitsystem verschiedene Software- und Hardware-Komponenten benötigt.

Software

  • RTOS: Dieses spezielle Betriebssystem ist so konzipiert, dass ein Anwenderprogramm zuverlässig mit sehr präzisem Timing ausgeführt wird.
  • Entwicklungstools: Benötigt werden ein Compiler, ein Linker und ein Fehlersuchwerkzeug, die Code generieren können, der mit dem Echtzeitbetriebssystem kompatibel ist.
  • Treiber: Für ein Echtzeit-Betriebssystem, das mit Systemhardware und I/O-Modulen kommuniziert, werden Real-Time-kompatible Treiber benötigt, die für die meisten I/O-Operationen selbst im Extremfall der längsten Ausführungsdauer ein verlässliches Timing garantieren können.

Hardware

  • I/O-Module und Systemhardware mit Echtzeittreibern (im Software-Abschnitt oben aufgeführt).
  • (Optional) Robuste Hardware: Chassis, die in einem Echtzeitsystem verwendet werden, können so konstruiert werden, dass sie für längere Zeit unter extremen Bedingungen arbeiten.
  • (Optional) Watchdog-Timer: Ein integrierter Watchdog-Timer kann automatisch einen Computer neu starten, wenn ein Anwenderprogramm aufhört, zu laufen.
Nach oben

Zusammenfassung: Wann empfiehlt sich ein Echtzeitsystem?

Das Erstellen eines Echtzeitsystems kann empfehlenswert sein, wenn Sie sicherstellen müssen, dass bestimmte Teile Ihres Programms innerhalb einer maximalen Zeitspanne ausgeführt werden oder wenn Ihr Programm zuverlässig über einen längeren Zeitraum hinweg arbeiten muss. Wenn Sie an einem ablaufkritischen oder sicherheitsrelevanten Projekt arbeiten, ist die Notwendigkeit für ein Echtzeitsystem unbestritten. 

Auch in Fällen, in denen ein präzises Timing und eine langfristige Zuverlässigkeit keine absoluten Voraussetzungen für Ihr Projekt sind, kann ein Echtzeitsystem zusätzliche Sicherheit bieten, dass Ihr Programm zuverlässig ohne Unterbrechung Ihres Mess- oder Regelprozesses abläuft. Wenn für das System, das Sie erstellen, bei Unterbrechungen Wartungskosten anfallen würden, können die Hardware- und Softwarekosten, die für die Erstellung eines Echtzeitsystems erforderlich sind, die Investition wert sein.

Beachten Sie, dass ein Echtzeitsystem nicht unbedingt für jedes Mess- oder Regelungsprojekt sinnvoll ist. Echtzeit-Betriebssysteme führen in der Regel nur ein Programm zu einem Zeitpunkt aus, und den meisten Echtzeitsysteme fehlt eine Benutzeroberfläche. In diesem Fall wird ein separater Computer zur Bereitstellung von Grafik- oder Bedienelementen benötigt. Einige Projekte erfordern Hardware-Determinismus, wobei Logik auf einem ASIC oder FPGA implementiert ist. Dennoch werden die unzähligen Echtzeitsysteme, die derzeit in Betrieb sind, auch weiterhin eine tragfähige Lösung für Projekte darstellen, für die ein präzises Timing und eine hohe Zuverlässigkeit unerlässlich ist.

Nächste Schritte

Unter den folgenden Links erfahren Sie, wie Sie mit Hilfe von Hardware und Software von NI in kürzester Zeit ein leistungsstarkes Echtzeitsystem erstellen können.

>> Erstellen von Echtzeitsystemen mit Hardware und Software von NI

>> Evaluierungssoftware

 

Nach oben