Tâche IEC en roue libre
Une tâche en roue libre est exécutée de manière cyclique mais sans cycle de tâches fixe. Il s'agit d'une tâche récurrente au sens classique du terme PLC.
L'exécution a lieu aussi souvent que possible. Cependant, le traitement ne s'effectue pas selon un cycle fixe. Vous ne pouvez pas définir de durée de cycle de tâches pour ce type de tâche. Le comportement temporel est sélectionné automatiquement et effectué de manière à placer le moins de charge possible sur l'ensemble du système.
De plus, un certain temps est attendu après la fin d'une exécution jusqu'à ce que la tâche soit exécutée à nouveau. La durée est un pourcentage de la durée du dernier cycle.
Important
Aucune durée de cycle de tâche fixe et aucun comportement temporel fixe ne sont garantis pour la tâche en roue libre.
Vous pouvez configurer un chien de surveillance pour une tâche en roue libre.
Logique
La charge de toutes les tâches IEC en roue libre est déterminée par le système d'exécution afin que cette charge ne dépasse pas la moitié de la charge maximale du processeur définie.
MaxCpuLoadFreewheeling = ((MIN( 100, MaxProcessorload) / 2) / NumOfFreeWheelingTasks); SleeptimeAfterCycle = CycleTimeFreewheelingTask * ((100 - MaxCpuLoadFreewheeling) / 100) if (SleeptimeAfterCycle < 1000) // Minimum sleeptime of 1ms is mandatory! SleeptimeAfterCycle = 1000;
Le système d'exécution d'une application fonctionne comme suit :
MaxProcessorload
= 80CycleTime
= 20 ms1 tâche en roue libre
Effet
MaxCpuLoadFreewheeling
= 40 %SleeptimeAfterCycle
= 30 msDurée de cycle totale de la tâche en roue libre = 50 ms
⇒ Une charge totale du processeur de 60 % est atteinte pour le reste du système.