Dans les procédés auxquels s'adresse ce correcteur, le retard est soit :
Ces deux cas sont traités par l'utilisation d'un registre (buffer) de dimension paramétrable. Suivant la taille de ce registre, il sera possible d'échantillonner soit toutes les périodes d'échantillonnage, soit une période sur deux, soit une période sur trois, ...
Il est possible d’augmenter ou de diminuer le retard T_DELAY pendant l’exécution du programme. Le nouveau retard est appliqué instantanément, à condition qu'il soit compatible avec la taille du registre. La période de l'échantillonnage du retard reste inchangée.
Si la valeur de T_DELAY devient trop grande par rapport à la taille du registre, il devient impossible de mémoriser suffisamment de valeurs d'entrée pour atteindre le retard demandé, si l’échantillonnage s’effectue à la même période. La période d'échantillonnage du retard est donc recalculée et la sortie n'est valide qu'après une durée égale à un nouveau retard. Afin d'éviter ce problème, nous vous conseillons de dimensionner le registre, en tenant compte des éventuelles augmentations du retard T_DELAY.
Si le retard diminue, par défaut l'échantillonnage ne change pas. Toutefois, il est possible de commander un nouveau calcul de l'échantillonnage si nécessaire.
Dans le cas d'une modification dynamique du temps de la tâche ou de la période d'échantillonnage, la sortie n'est valide qu'après une durée égale au retard.
Toute modification dynamique de T_DELAY entre 0 s et 30 s est prise en compte immédiatement sans changement de l'échantillonnage du registre.
Exemple de calcul
Période d’échantillonnage
|
T_ECH = 300 ms
|
Taille du registre de retard
|
50
|
Retard
|
T_DELAY = 25 s
|
Le registre de retard est donc échantillonné toutes les 2 T_ECH
|
50 x 2 x 0,3 = 30 s > 25 s
|