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).