Garantierte Windows-Rechenzeit (P-RTCF-00004)
P-RTCF-00004 | Garantierte Windows-Rechenzeit innerhalb eines NC-Zyklus |
Beschreibung | Die Windows-Rechenzeit windows_time muss ein ganzzahliges Vielfaches des time_slice sein. Ist dies nicht der Fall, so wird sie auf das nächste kleinere ganzzahlige Vielfache abgerundet. Ist der Vorgänger-Thread vorzeitig fertig, wird der verbleibende Zeitraum, bis zum Ende der Zykluszeit Windows als Rechenzeit bereitgestellt. Falls die garantierte Rechenzeit von Windows durch den Vorgänger–Thread beschnitten wird, erfolgt dessen Suspendierung durch die Timer ISR. Weiter darf die windows_time nicht zu groß gewählt werden, da sonst die von Windows suspendierbaren Threads (alle Threads außer der GEO-Task ) nicht genügend ( bzw. gar keine ) Rechenzeit erhalten. Wird die windows_time kleiner als P-RTCF-00003 (time_slice) gewählt, wird eine Fehlermeldung ausgegeben. |
Parameter | windows_time |
Datentyp | UNS16 |
Datenbereich | 0 < windows_time < MAX(UNS16) |
Dimension | µs |
Standardwert | - |
Anmerkungen | Bei windows_time = 0 entfällt die Suspendierung des Vorgängerprozesses komplett, wodurch Windows keine garantierte Rechenzeit mehr bekommt. Eine solche Parametrierung ist nur sinnvoll, wenn sichergestellt ist, dass regelmäßig alle Threads vor Ablauf der NC-Zykluszeit „fertig“ werden. Das setzt voraus, dass sich alle Threads kooperativ verhalten. Geeignete Einstellung der windows_time in Bezug auf time_slice (P-RTCF-00003): windows_time = time_slice = 500µs
Kleinere Zeiträume (z.B. 100 - 200µs) sind ungünstiger, da ein Kontextwechsel zwischen Windows und Echtzeitbetriebssystem relativ zeitintensiv ist. Bei zu klein gewählter windows_time (z.B. 100µs) können Instabilitäten im Echtzeitbetrieb auftreten (Problem von RTX). |