Nœuds de rétroaction : Stockage de données entre les itérations d'une boucle
- Mise à jour2025-08-27
- Temps de lecture : 3 minute(s)
Le nœud de rétroaction, illustré ci-dessous, fonctionne comme les registres à décalage des boucles.
Tout comme un registre à décalage, le nœud de rétroaction stocke les données à la fin d'une itération d'une boucle et envoie les données stockées à la prochaine itération de cette boucle. L'itération suivante lit les données, écrit la nouvelle valeur des données et les renvoie dans la boucle. Ce processus continue jusqu'à ce que la boucle ait terminé son exécution.
Lorsque le nœud de rétroaction se réinitialise après la première exécution, les valeurs de chaque itération de la boucle ne changent pas d'une exécution à l'autre. Dans ce cas, câblez le terminal d'initialisation au nœud de rétroaction, comme l'indique le diagramme suivant.
| Première exécution | Deuxième exécution | ||
|---|---|---|---|
| Itération | Valeur finale | Itération | Valeur finale |
| 0 | 3 | 0 | 3 |
| 1 | 4 | 1 | 4 |
| 2 | 5 | 2 | 5 |
| 3 | 6 | 3 | 6 |
Le nœud de rétroaction se comporte différemment si vous ne câblez pas de valeur initiale au terminal d'initialisation, comme l'illustre la figure suivante.
| Première exécution | Deuxième exécution | ||
|---|---|---|---|
| Itération | Valeur finale | Itération | Valeur finale |
| 0 | 1 | 0 | 5 |
| 1 | 2 | 1 | 6 |
| 2 | 3 | 2 | 7 |
| 3 | 4 | 3 | 8 |
Dans le diagramme précédent, le terminal d'initialisation utilise 0, la valeur par défaut pour le type de données, comme valeur initiale dans la première exécution et ne réinitialise pas le nœud de rétroaction dans les exécutions suivantes.
Vous pouvez séparer le nœud et le terminal d'initialisation dans les boucles et les boucles imbriquées, mais vous ne pouvez pas déplacer le terminal d'initialisation en dehors de l'ensemble de structures imbriquées qui contient le nœud. En outre, vous ne pouvez pas séparer le nœud du terminal d'initialisation lorsque vous créez un sous-VI. Si vous essayez de créer un sous-VI à partir d'une section du diagramme qui contient soit le nœud, soit le terminal d'initialisation, mais pas les deux, LabVIEW renvoie une erreur.