Technische Einführung
4
Technische Einführung
Das folgende Kapitel beschreibt die technischen Grundlagen, die für die Verwendung des TwinCAT 3
Realtime Monitors hilfreich sind.
4.1
Echtzeit
Entsprechend der Norm DIN 44300 ist die Echtzeit bzw. vielmehr der Echtzeitbetrieb definiert als:
„Echtzeitbetrieb ist ein Betrieb eines Rechensystems, bei dem Programme zur Verarbeitung anfallender
Daten ständig betriebsbereit sind, derart, dass die Verarbeitungsergebnisse innerhalb einer vorgegebenen
Zeitspanne verfügbar sind.".
Mit anderen Worten bedeutet dies, dass die Ausgabewerte eines Anwenderprogramms, berechnet
basierend auf dem inneren Zustand und den Eingabewerten, innerhalb einer definierten und garantierten
Zeit zur Verfügung stehen. Diese definierte Zeit wird auch Zykluszeit genannt.
Das Anwendungsprogramm selbst kann aus mehreren Programmbausteinen bestehen, die wiederum
andere Programme, Funktionsbausteine etc. aufrufen (siehe auch Norm IEC 61131-3). Die
Programmbausteine können Echtzeit-Tasks zugeordnet werden, welche diese wiederum mit einer zu
definierenden Zykluszeit und einer definierten Priorität aufrufen.
Die TwinCAT 3 Echtzeit ist eine Echtzeiterweiterung, welche in der aktuellen TwinCAT 3.1 Version unter den
Microsoft Windows Betriebssystemen ab Windows 7 sowie unter TwinCAT/BSD verwendet werden kann. Um
den beschriebenen Anforderungen an eine Steuerung von industriellen Prozessen gerecht zu werden,
unterstützt die TwinCAT 3 Echtzeit die folgenden Eigenschaften:
• Echtzeitfähiges Scheduling
• Parallele Abarbeitung von Prozessen
• Direkter Hardwarezugriff
Darüber hinausgehend bietet die TwinCAT 3 Echtzeit auch Multicore-Support, um den immer weiter
steigenden Anforderungen an eine performante und flexible/erweiterbare Steuerungsplattform gerecht zu
werden. Die verfügbaren Rechenkerne können dabei entweder exklusiv für TwinCAT genutzt werden oder
sie werden mit Windows geteilt. Im Folgenden werden die Kerne daher als "isolated" oder "shared"
bezeichnet.
Echtzeitfähiges Scheduling
Die TwinCAT 3 Echtzeit arbeitet mit dem Doppeltick-Verfahren. Das bedeutet, dass das Umschalten in den
Echtzeitmodus und wieder zurück jeweils von einem Interrupt ausgelöst wird. Der Interrupt beim Umschalten
in den Echtzeitmodus startet gleichzeitig auch das Scheduling. Nach einer einstellbaren Zeitdauer,
spätestens aber nach 90% der eingestellten Zykluszeit, schaltet TwinCAT auf „shared"-Kernen in den Nicht-
Echtzeitmodus zurück, damit das Gastbetriebssystem genügend Rechenzeit erhält, um seinerseits die
notwenigen Antwortzeiten für Hardware-Funktionen etc. einzuhalten. Eine Ausnahme bilden hier die
isolierten Kerne.
Als Scheduling wird der (System-)Prozess bezeichnet, welcher die Abarbeitungsreihenfolge und den
Abarbeitungszeitpunkt der einzelnen Tasks, basierend auf der definierten Zykluszeit und der definierten
Priorität bestimmt. Die strenge Einhaltung des Abarbeitungszeitpunkts sorgt dafür, dass die oben
beschriebene Einhaltung der Echtzeit gewährleistet wird.
Angestoßen durch einen synchronen Basis-Tick auf allen Echtzeitkernen, wird in der TwinCAT 3 Echtzeit
das Scheduling für jeden Echtzeitkern unabhängig berechnet. Damit ist garantiert, dass Echtzeit-Tasks,
welche auf verschiedenen Kernen laufen, sich nicht beeinflussen. Sofern dies nicht durch die Verwendung
von Verriegelungen explizit im Anwenderprogramm programmiert wurde.
Ein Scheduling, bei dem die Priorität eines Tasks anhand seiner Zykluszeit abgeleitet wird, bezeichnet man
auch als Ratenmonotones Scheduling. Die TwinCAT 3 Echtzeit aktiviert automatisch die Option „Automatic
Priority Management". Da dies nicht für jeden Anwendungsfall die beste Lösung ist, können Sie die
Prioritäten manuell anpassen.
10
Version: 2.0.0
TE1010