Technische Einführung
Direkter Hardwarezugriff
Um ein deterministisches (reproduzierbares) Echtzeit-Verhalten zu erreichen, benötigt die TwinCAT 3
Echtzeit einen direkten Hardwarezugriff. Damit dies möglich ist, muss die TwinCAT 3 Echtzeit im
sogenannten Kernel-Mode von Windows ausgeführt werden. Dadurch ist es u.a. möglich, dass die
TwinCAT-Echtzeit direkt auf die Netzwerk-Ports zugreift und Echtzeit-Ethernet-Telegramme (z. B. EtherCAT)
versenden und empfangen kann.
Schematische Darstellung der TwinCAT 3-Laufzeitumgebung
Das folgende Bild stellt den Aufbau der TwinCAT 3.1 Laufzeitumgebung (Runtime), bezogen auf das
Scheduling, schematisch dar. Die TwinCAT 3 Laufzeitumgebung ermöglicht das Ausführen von
Anwendermodulen in Echtzeit. Ein wesentlicher Teil der TwinCAT 3 Laufzeitumgebung ist somit der
Echtzeit-Treiber, welcher auf den für TwinCAT aktivierten Kernen ausgeführt wird und dort das Scheduling
übernimmt. Letzteres erfolgt auf den einzelnen Kernen unabhängig voneinander.
Isolierte Kerne
Wie unter Echtzeit Scheduling [} 10] beschrieben, verwendet TwinCAT ein Doppeltick-Verfahren, damit zu
einem festgelegten Zeitpunkt in den Nicht-Echtzeitmodus zurückgeschaltet wird. Beim Umschalten zwischen
Echtzeit-Modus und Nicht-Echtzeit-Modus erfolgt, wie unter Präemptives Multitasking [} 11] beschrieben, ein
Restaurieren des vorgehenden Prozesszustands. Je nachdem wie intensiv die Echtzeit- und Nicht-Echtzeit-
Programme den Speicher und insbesondere den Cache auslasten, braucht das Wiederherstellen Zeit. Um
diese zeitlichen Effekte zu beseitigen, erlaubt es die TwinCAT 3.1 Echtzeit, Kerne vom Gastbetriebssystem
zu isolieren. Dadurch ist ein Zurückschalten nicht mehr erforderlich, was sowohl in mehr Rechenzeit für das
Echtzeit-Anwenderprogramm resultiert als auch in einer besseren Echtzeit-Güte (geringerer Jitter) durch die
Vermeidung von zeitlichen Effekten beim Wiederherstellen des „alten" Prozesszustands.
12
Version: 2.0.0
TE1010