Wann empfiehlt sich ein Real-Time-System?

Überblick

Diese kurze Einführung bietet einen Überblick darüber, was Real-Time-Systeme sind, welche Komponenten ein Real-Time-System ausmachen und warum Sie sich für Ihr nächstes Projekt für den Aufbau eines Real-Time-Systems entscheiden könnten.

Inhalt

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 bedeuten dieser Begriff? Welche Komponenten sorgen dafür, dass ein System in „Echtzeit“ arbeitet? Wann ist es sinnvoll, ein Real-Time-System für Ihr Projekt zu wählen? 

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

Was ist ein Real-Time-System?

Ein Real-Time-Computersystem kann Programme mit sehr spezifischen Zeitvorgaben zuverlässig ausführen,was bei vielen Projekten in Wissenschaft und Technik sehr wichtig ist. Die zentrale Komponente beim Erstellen eines Real-Time-Systems ist ein Real-Time-Betriebssystem (RTOS). Weitere Hardware- und Softwarekomponenten, aus denen sich ein vollständiges Real-Time-System 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 gewöhnlichen 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 Tempomatsystem), kann diese Verzögerung einen Systemausfall verursachen.

Beachten Sie, dass dieses Verhalten beabsichtigt ist: Normale 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 Real-Time-Betriebssysteme dafür ausgelegt, ein einzelnes Programm mit sehr präzisem Timing auszuführen. Konkret können Real-Time-Betriebssysteme Folgendes:

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

Im Zusammenhang mit Real-Time-Computersystemen können Sie auf die Begriffe „Hard Real-Time“ und „Soft Real-Time“ stoßen. Harte Real-Time-Systeme 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, die harte Real-Time oft eine Voraussetzung. Auf der anderen Seite sind weiche Real-Time-Systeme 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 Datenframe nicht unbedingt ein kritisches Problem darstellt. 

Harte vs. weiche Real-Time-Anwendungen

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

Ausführlichere Erläuterungen zu Real-Time-Betriebssystemen oder zu Begrifflichkeiten rund um Real Time wie etwa „Determinismus“ und „Jitter“ finden Sie auf der Seite Was versteht man unter einem Real-Time-Betriebssystem?

Zuverlässigkeit

Über ihr präzises Timing hinaus können Systeme für das Real-Time-Computing 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 werden.  In Real-Time-Systemen 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 Real-Time-Systemen verwendete Hardware oft auf das langfristige Arbeiten unter erschwerten Bedingungen ausgelegt.

Aus welchen Komponenten besteht ein Real-Time-System?

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

Bausteine für Real-Time-Systeme

Software

  • RTOS: Dieses spezielle Betriebssystem ist so konzipiert, dass ein Anwenderprogramm zuverlässig mit sehr präzisem Timing ausgeführt wird.
  • Entwicklungswerkzeuge: Benötigt werden ein Compiler, ein Linker und ein Debugger, die Code generieren können, der mit dem Real-Time-Betriebssystem kompatibel ist.
  • Treiber: Für ein Real-Time-Betriebssystem, das mit der 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 Real-Time-Treibern (im Software-Abschnitt oben aufgeführt).
  • (Optional) Robuste Hardware: Chassis, die in einem Real-Time-System verwendet werden, können so konstruiert werden, dass sie auch über längere Zeit extremen Bedingungen standhalten.
  • (Optional) Watchdog-Zeitgeber: Ein integrierter Watchdog-Zeitgeber kann automatisch einen Computer neu starten, wenn ein Anwenderprogramm nicht mehr läuft.

Zusammenfassung: Wann benötige ich ein Real-Time-System?

Das Erstellen eines Real-Time-Systems 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 geschäftskritischen oder sicherheitsrelevanten Projekt arbeiten, steht die Notwendigkeit eines Real-Time-System außer Frage. 

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 Real-Time-System zusätzliche Sicherheit dahingehend bieten, dass Ihr Programm zuverlässig ohne Unterbrechung Ihres Mess- oder Steuerprozesses 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 Real-Time-Systems erforderlich sind, diese möglichen anderen Kosten aufwiegen.

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

Nächster Schritt

Lesen Sie das folgende Dokument, um zu erfahren, wie Sie mit NI-Hardware und -Software in kürzester Zeit ein überlegenes Real-Time-System erstellen können:

>> Erstellen von Real-Time-Systemen mit Hardware und Software von NI