Echtzeitsysteme – ein Tutorium
Übersicht
Für zahlreiche Anwendungen aus den Bereichen Test, Steuerung, Regelung und Design ist Echtzeitleistung erforderlich. In diesem Tutorium werden die grundlegenden Konzepte von Echtzeitsystemen behandelt.
Inhaltsverzeichnis
Echtzeitsysteme
Echtzeitbetriebssysteme kamen auf, als die Umsetzung zweier wichtiger Anwendungen erforderlich wurde: Programme zur Reaktion auf Ereignisse und Echtzeitregelsysteme. Anwendungen zur Reaktion auf Ereignisse erfordern eine Reaktion auf einen Stimulus innerhalb einer festgesetzten Zeit. Ein Beispiel hierfür wäre ein Airbag-System in einem Kraftfahrzeug. Echtzeitregelsysteme verarbeiten fortlaufend Rückmeldungen, um eine Ausgangsgröße anzupassen. Ein Abstandsregeltempomat in Kraftfahrzeugen beispielsweise ist ein Echtzeitregelsystem. Beide Systeme erfordern die Ausführung eines Vorgangs innerhalb eines bestimmten Zeitintervalls. Diese Art der Durchführung wird als Determinismus bezeichnet.
Bei Echtzeitsystemen wird manchmal zwischen „weichen“ und „harten“ Echtzeitanforderungen unterschieden. Weiche Echtzeit bedeutet gewöhnlich, dass alle ankommenden Eingaben schnell genug abgearbeitet werden, es aber grundsätzlich sein kann, dass größere Abweichungen auftreten können. Wenn beispielsweise die Taste eines Mobiltelefons gedrückt wird, um einen Anruf anzunehmen, muss die Verbindung kurz nach Drücken der Taste hergestellt werden. Dieser Zeitrahmen ist jedoch nicht so entscheidend und eine gewisse Toleranz für geringe Verzögerungen ist möglich. Harte Echtzeitsysteme sind solche, bei denen es als Fehler gewertet wird, wenn ein Zeitintervall überschritten wird. Eine Motorsteuerungseinheit in einem Fahrzeug muss die eingehenden Signale verarbeiten und die Zeitsteuerung für die Zündkerzen innerhalb eines Zeitintervalls berechnen. Wird der Zeitintervall überschritten, arbeitet der Motor nicht einwandfrei. Ob eine Aufgabe nach überschrittenem Zeitintervall nützlich ist, hängt davon ab, ob das System ein weiches oder ein hartes Echtzeitsystem ist (siehe Abbildung 1).
Betriebssysteme wie Microsoft Windows und Mac OS bieten eine ausgezeichnete Plattform für die Entwicklung und Ausführung nicht kritischer Mess- und Steuerungsanwendungen. Da diese Betriebssysteme jedoch zum universellen Einsatz bestimmt sind, bilden sie keine ideale Plattform zur Ausführung von Anwendungen, die eine deterministische Leistungsfähigkeit oder eine erweiterte Ausfallsicherheit erfordern.
Standardbetriebssysteme sind für die parallele Ausführung einer Vielzahl von Anwendungen optimiert und stellen sicher, dass alle Anwendungen einen Teil der Rechenzeit zugewiesen bekommen. Diese Systeme müssen zudem auf Interrupts von Peripheriegeräten wie Maus oder Tastatur reagieren. Der Anwender verfügt nur über begrenzte Möglichkeiten, zu bestimmen, wie diese Aufgaben vom Prozessor abgearbeitet werden sollen. Dies führt dazu, dass hoch priorisierte Aufgaben von niedriger priorisierten Aufgaben verdrängt werden, so dass eine Antwortzeit für kritische Applikationen nicht garantiert werden kann.
Im Gegensatz dazu hat der Anwender bei Echtzeitbetriebssystemen die Möglichkeit zur Priorisierung von Aufgaben, so dass die kritischste Aufgabe im Bedarfsfall immer zuerst bearbeitet wird. Diese Eigenschaft ermöglicht die Programmierung einer Anwendung mit vorhersagbaren Ergebnissen.
Abb. 1: Unterschied zwischen harter und weicher Echtzeit
Echtzeitbetriebssysteme werden dort erforderlich, wo der Prozessor an Vorgängen wie etwa Echtzeitregelung und zeitkritischer Entscheidungsfindung beteiligt ist. Diese Applikationen erfordern das rechtzeitige Treffen von Entscheidungen, die auf eingehenden Daten beruhen. Ein Beispiel hierfür ist ein I/O-Gerät, das ein Eingangssignal abtastet und dies direkt an den Speicher sendet. Dann muss der Prozessor das Signal analysieren und die entsprechende Antwort an das I/O-Gerät senden. Bei der genannten Anwendung muss die Software im Regelkreis eingebunden sein. Daher benötigt man ein Echtzeitbetriebssystem, um eine Antwort innerhalb eines bestimmten Zeitrahmens zu garantieren. Häufig werden auch Anwendungen, die verlängerte Laufzeiten oder einen Stand-alone-Betrieb erfordern, mit Echtzeitbetriebssystemen umgesetzt.
Leistung von Echtzeitsystemen
Echtzeitsteuerung und -regelung
Mithilfe der Echtzeitsteuerung und -regelung kann ein Anwender ein physikalisches System fortlaufend überwachen und simulieren. Echtzeitfähige Steuer- und Regelanwendungen führen wiederholt eine vom Anwender definierte Aufgabe aus. Die einzelnen Aufgaben sind durch eine festgelegte Zeitspanne voneinander getrennt. Die meisten echtzeitfähigen Steuer- und Regelsysteme überwachen das physikalische System, vergleichen den Ist-Zustand mit dem Soll-Zustand und simulieren das System dann aufgrund des Vergleichs. Der Kehrwert der Zeit, die für ein Durchlaufen dieser Schleife benötigt wird, wird als Schleifenratenzeit bezeichnet. Diese Zykluszeit der Regelschleife schwankt je nach Komplexität des Systems.
Mit Determinismus wird die Übereinstimmung von festgelegten Zeitintervallen zwischen Ereignissen gemessen. Viele Regelungsalgorithmen, wie etwa PID, erfordern ein stark deterministisches Verhalten. Ein Fahrstuhl beispielsweise bewegt sich gleichmäßig zur richtigen Etage, weil die Regelschleife deterministisches Verhalten aufweist. Ohne diesen Determinismus würde der Fahrstuhl zwar immer noch die richtige Etage erreichen, er liefe aber nicht stabil.
Bei allen Echtzeitsystemen gibt es einen gewissen Fehleranteil, der Jitter genannt wird. Jitter ist eine weitere Möglichkeit zur Messung des Determinismus eines Echtzeitsystems. Er kann als maximale Differenz zwischen einer einzelnen Zeitverzögerung und der gewünschten Zeitverzögerung in einem System berechnet werden (siehe Abbildung 2).

Abb. 2: Beispiel eines Jitterdiagramms
Echtzeitreaktion auf Ereignisse
Mithilfe der Echtzeitreaktion auf Ereignisse kann auf ein einzelnes Ereignis innerhalb einer bestimmten Zeitspanne reagiert werden. Das Echtzeitsystem garantiert eine gewisse maximale Reaktionszeit auf ein einzelnes Ereignis. Das Ereignis kann entweder regelmäßig oder zufällig auftreten. Ein Beispiel für eine Anwendung mit einer Echtzeitreaktion auf Ereignisse ist ein Sicherheitsüberwachungssystem. Wenn eine Anlage einen gefährlichen Zustand erreicht, muss das Echtzeitsystem auf die „Gefahr“ innerhalb einer garantierten Zeitspanne reagieren.
Latenz beschreibt gewöhnlich die Zeit, die vergeht, bis auf ein Ereignis reagiert wird. Sie ähnelt dem Determinismus bei echtzeitfähigen Steuer- und Regelanwendungen. Durch die Echtzeitreaktion auf Ereignisse wird eine Latenz unter ungünstigsten Bedingungen garantiert.
Echtzeittechnologie von NI
Das LabVIEW Real-Time Module und das LabWindows/CVI Real-Time Module werden eingesetzt, um eine zuverlässige, deterministische Ausführung auf dedizierten Hardwarezielgeräten zu erreichen. Für Anwendungen mit hohen Anforderungen an den Determinismus bietet das LabVIEW FPGA Module in Kombination mit unterstützter rekonfigurierbarer FPGA-Hardware eine Reaktionszeit im Bereich von Nanosekunden. Software von National Instruments eignet sich für:
- Eine schnelle Entwicklung deterministischer Anwendungen durch grafische Programmierung oder ANSI C
- Eine einfache Erstellung verteilter Steuer-, Regel- und Überwachungssysteme
- Zeiteinsparungen bei der Integration unterschiedlicher Ein- und Ausgabemöglichkeiten
National Instruments bietet eine große Auswahl an Zielsystemen, welche über einen Embedded-Prozessor verfügen, der ein Echtzeitbetriebssystem ausführt und ein Höchstmaß an Zuverlässigkeit und deterministischer Leistungsfähigkeit ermöglicht. Verschiedenste I/O-Geräte können mit modularer Hardware erweitert werden, die für Datenerfassungs-, Steuer- und Regelanwendungen mit hoher Kanalanzahl, industrielle Signalkonditionierung sowie Sicherheitsisolierung skalierbar ist.
Abb. 3: Echtzeittechnologie von National Instruments
Testen Sie LabVIEW Real-Time jetzt!
LabVIEW Real-Time hier online evaluieren
Weitere Informationen:
Was ist LabVIEW Real-Time?
Was ist LabWindows/CVI Real-Time?
Tutorien und Präsentationen zu LabVIEW Real-Time
AGB
Dieses Tutorium ("Tutorium") wurde von National Instruments ("NI") entwickelt. Auch wenn National Instruments dieses Tutorium technisch unterstützt, ist es jedoch möglich, dass dieses Tutorium nicht umfassend getestet und überprüft wurde. NI übernimmt weder Garantien bezüglich der Qualität des Tutoriums noch bezüglich der weiteren technischen Unterstützung neuer Versionen ähnlicher Produkte und Treiber. DIESES TUTORIUM WIRD IM "IST-ZUSTAND" ZUR VERFÜGUNG GESTELLT UND NI ÜBERNIMMT KEINERLEI GARANTIEN. AUSFÜHRLICHERE ERLÄUTERUNGEN ZU ANDEREN EINSCHRÄNKUNGEN ENTNEHMEN SIE BITTE DEN NUTZUNGSBEDINGUNGEN AUF NI.COM (http://ni.com/legal/termsofuse/unitedstates/us/).


