Boucle cadencée
- Mise à jour2025-07-30
- Temps de lecture : 14 minute(s)
Exécute un ou plusieurs sous-diagrammes, ou étapes, de façon séquentielle à chaque itération de la boucle à la période spécifiée. Utilisez la boucle cadencée pour développer des VIs dotés de capacités de cadencement multifréquences, avec un cadencement précis, des informations de feedback sur l'exécution de la boucle, des caractéristiques de cadencement qui changent dynamiquement ou plusieurs niveaux de priorité d'exécution. Cliquez avec le bouton droit sur le bord de la structure pour ajouter, supprimer, insérer et fusionner des étapes.

Composants d'une boucle cadencée
Le terminal d'itération (i) fournit le nombre d'itérations actuel de la boucle, qui vaut zéro à la première itération. Si le nombre d'itérations dépasse 2 147 483 647, ou 231-1, le terminal d'itération reste à 2 147 483 647 pour les itérations ultérieures. Si vous devez compter plus de 2 147 483 647 itérations, vous pouvez utiliser des registres à décalage avec une plus grande gamme d'entiers.
La boucle cadencée comprend des nœuds d'entrée (1) et de sortie (4) et des nœuds de données de gauche (2) et de droite (3) pour chaque étape, représentés sur la figure suivante. Par défaut, les nœuds d'une boucle cadencée n'affichent pas tous les terminaux d'entrée et de sortie disponibles. Pour afficher les terminaux du nœud, vous pouvez redimensionner les nœuds ou cliquer droite sur un nœud et utiliser le menu local. Cliquez avec le bouton droit sur le bord d'une boucle cadencée et sélectionnez Afficher le nœud de données de gauche ou Afficher le nœud de données de droite dans le menu local pour afficher chaque nœud.
Double-cliquez sur le nœud d'entrée et sélectionnez Configurer la boucle cadencée pour afficher la boîte de dialogue Configurer la boucle cadencée dans laquelle vous pouvez configurer la boucle. Les valeurs que vous entrez dans la boîte de dialogue Configurer la boucle cadencée apparaissent à côté des terminaux d'entrée sur le nœud d'entrée.
Le tableau suivant dresse la liste des terminaux de nœud de la boucle cadencée. La boucle cadencée comporte de nombreux nœuds dont les valeurs sont relatives au départ de la source de cadencement. Si vous ne demandez pas de synchronisation, le temps de départ de la source de cadencement est celui de la première boucle qui utilise la source de cadencement. Si plusieurs boucles font partie d'un groupe de synchronisation, le temps de départ de la source de cadencement est l'instant où la dernière boucle est prête à s'exécuter.
(1) Nœud d'entrée
![]() | Échéance | Spécifie le temps auquel l'itération de la boucle cadencée doit se terminer. La valeur de l'échéance est relative au temps de départ de la source de cadencement et est exprimée dans les unités de cette dernière. Spécifier la valeur -1 indique qu'il n'y a pas d'échéance. Si vous ne spécifiez pas de valeur pour cette entrée, la structure utilise la valeur de Période comme valeur d'échéance. |
![]() | Erreur | Transmet les erreurs à travers la structure. La boucle cadencée ne s'exécute pas si Erreur reçoit une condition d'erreur. |
![]() | Mode | Spécifie comment la boucle cadencée traite les exécutions tardives. Il y a cinq modes disponibles : No change, Process missed periods maintaining original phase, Process missed periods ignoring original phase, Discard missed periods maintaining original phase et Discard missed periods ignoring original phase. |
![]() | Nom de structure | Spécifie le nom de la boucle cadencée. |
![]() | Offset | Spécifie combien de temps une boucle cadencée attend avant de commencer à s'exécuter. La valeur de l'offset est relative au temps de départ de la source de cadencement et est exprimée dans les unités de cette dernière. |
![]() | Période | Spécifie la période de la boucle cadencée, exprimée dans les mêmes unités que la source de cadencement spécifiée par Nom de la source. Remarque Ne définissez pas la période d'une boucle cadencée à 0. National Instruments ne supporte pas les applications qui contiennent des boucles cadencées à période 0 car ces périodes provoquent un comportement inattendu des applications. Si vous avez besoin d'une boucle qui s'exécute aussi vite que possible avec les fonctionnalités d'exécution prioritaire d'une boucle cadencée, utilisez une boucle While dans une structure Séquence cadencée. |
![]() | Priorité | Spécifie la priorité d'exécution de la boucle cadencée. La priorité d'une structure cadencée spécifie quand la structure s'exécute sur le diagramme par rapport aux autres objets du diagramme. Plus la priorité d'une structure cadencée est élevée, plus la structure s'exécute tôt par rapport aux autres structures cadencées. La valeur que vous indiquez dans l'entrée Priorité doit être un entier positif compris entre 1 et 65 535. |
![]() | Processeur | Spécifie le processeur qui doit gérer l'exécution. La valeur par défaut est -2, ce qui signifie que LabVIEW assigne automatiquement le processeur. Pour assigner manuellement un processeur, entrez un numéro entre 0 et 255, 0 représentant le premier processeur disponible. Si vous entrez un nombre qui dépasse le nombre de processeurs disponibles, vous générez une erreur d'exécution et la structure cadencée ne s'exécute pas. |
![]() | Nom de la source | Spécifie le nom de la source de cadencement à utiliser pour contrôler la structure. Vous pouvez créer la source de cadencement sur le diagramme en utilisant le VI Créer une source de cadencement ou la sélectionner dans la boîte de dialogue Configurer la boucle cadencée. |
![]() | Timeout | Spécifie combien de temps une boucle cadencée peut attendre avant de commencer à s'exécuter. Par défaut, la valeur est -1 et aucun timeout n'est spécifié pour l'étape suivante. La valeur de timeout est relative au temps de départ de la source de cadencement ou à la fin de l'itération précédente ; elle est exprimée dans les unités de la source de cadencement des étapes. |
(2) Nœud de données de gauche
| Fin réelle [é-1] (pas disponible dans la première étape) | Renvoie le temps réel de la fin de l'étape précédente (é-1). La valeur de fin réelle est relative au temps de départ de la source de cadencement et est exprimée dans les unités de cette dernière. |
| Fin réelle [i-1] (première étape uniquement) | Renvoie le temps réel pour la fin de l'itération précédente (i-1). La valeur de fin réelle est relative au temps de départ de la source de cadencement et est exprimée dans les unités de cette dernière. |
| Départ réel [f] (pas disponible dans une boucle cadencée à une seule étape) | Renvoie le temps de départ réel de l'étape actuelle (é). La valeur de départ réelle est relative au temps de départ de la source de cadencement et est exprimée dans les unités de la source de cadencement des étapes. |
| Départ réel [i] (première étape uniquement) | Renvoie le temps de départ réel de l'itération actuelle (i). La valeur de départ réelle est relative au temps de départ de la source de cadencement et est exprimée dans les unités de cette dernière. |
| Échéance | Renvoie la valeur de l'échéance de l'étape actuelle. |
| Erreur | Transmet les erreurs à travers la structure. |
| Fin prévue [é-1] (pas disponible dans les boucles cadencées à une seule étape) | Renvoie le temps attendu pour la fin de l'étape précédente (é-1). La valeur de fin attendue est relative au temps de départ de la source de cadencement et est exprimée dans les unités de cette dernière. La valeur de Fin prévue [é-1] est égale au départ de la période suivante. |
| Fin prévue [i-1] (première étape uniquement) | Renvoie le temps attendu pour la fin de l'itération précédente (i-1). La valeur de fin attendue est relative au temps de départ de la source de cadencement et est exprimée dans les unités de cette dernière. |
| Départ prévu [é] | Renvoie le temps de départ attendu pour l'étape actuelle (é). La valeur de départ attendue est relative au temps de départ de la source de cadencement et est exprimée dans les unités de la source de cadencement des étapes. |
| Départ prévu [i] (première étape uniquement) | Renvoie le temps de départ attendu pour l'itération actuelle (i). La valeur de départ attendue est relative au temps de départ de la source de cadencement et est exprimée dans les unités de cette dernière. |
| Terminé en retard ? [é-1] | Renvoie VRAI si la boucle cadencée n'a pas terminé l'étape précédente avant l'échéance spécifiée. |
| Terminé en retard ? [i-1] (première étape uniquement) | Renvoie VRAI si la boucle cadencée n'a pas terminé l'itération précédente avant l'échéance spécifiée. |
| Durée de l'étape [é] (pas disponible dans les boucles cadencées à une seule étape) | Renvoie la durée de l'étape précédente. La durée de l'étape est relative au départ de l'étape et est exprimée dans les unités de la source de cadencement de l'étape. |
| Temps de fin global | Renvoie le temps de fin de l'itération ou de la trame précédente. Si la boucle cadencée utilise une source de cadencement absolue, Temps de fin global renvoie un horodatage. Autrement, Temps de fin global renvoie un entier 64 bits. Si la boucle cadencée s'exécute sur une cible RT, Temps de fin global est basé sur le temps système de la cible et peut être synchronisé avec une horloge externe. Si la boucle cadencée s'exécute sur Windows, Temps de fin global est basé sur le temps du système Windows. |
| Temps de départ global | Renvoie le temps de départ de l'itération ou de la trame actuelle en nanosecondes. Si la boucle cadencée utilise une source de cadencement absolue, Temps de départ global renvoie un horodatage. Autrement, Temps de départ global renvoie un entier 64 bits. Si la boucle cadencée s'exécute sur une cible RT, Temps de départ global est basé sur le temps système de la cible et peut être synchronisé avec une horloge externe. Si la boucle cadencée s'exécute sur Windows, Temps de départ global est basé sur le temps du système Windows. |
| Durée de l'itération (première étape uniquement) | Renvoie un horodatage pour la durée de l'itération précédente. La durée de l'itération est relative au temps de départ de l'itération et est exprimée dans les unités de la source de cadencement. |
| Mode (première étape uniquement) | Renvoie la valeur du mode de l'itération actuelle. |
| Offset (première étape uniquement) | Renvoie la valeur de l'offset du départ de l'itération actuelle. |
| Période (première étape uniquement) | Renvoie la valeur de la période de l'étape actuelle. |
| Priorité | Renvoie la valeur de la priorité de l'étape actuelle. |
| Processeur | Renvoie le processeur que vous désignez pour gérer l'exécution, le cas échéant. Sinon, la valeur renvoyée est -2, ce qui signifie que LabVIEW assigne automatiquement le processeur. |
| Départ (pas disponible dans la première étape) | Renvoie la valeur de départ de l'étape actuelle. |
| Timeout | Renvoie la valeur du timeout de l'étape actuelle. |
| Raison du réveil | Renvoie un type énumération avec la raison du lancement de l'exécution de l'itération actuelle. Les valeurs possibles sont 0 pour normal, 1 pour un abandon, 2 pour un réveil asynchrone, 3 pour une erreur de source de cadencement, 4 pour une erreur de boucle cadencée et 5 pour un timeout. |
(3) Nœud de données de droite
![]() | Échéance | Spécifie le temps auquel l'étape suivante de la boucle cadencée doit se terminer. La valeur de l'échéance est relative au temps de départ de l'étape suivante et est exprimée dans les unités de la source de cadencement. Par défaut, la valeur est -1 et il n'y a pas de changement. |
![]() | Erreur | Passe les erreurs du sous-diagramme à la sortie de la boucle cadencée. Si Erreur reçoit une condition d'erreur, la boucle cadencée exécute l'étape suivante sans cadencement. Si Erreur reçoit une condition d'erreur dans la dernière étape, la structure finit d'exécuter l'itération en cours sans cadencement, quitte la boucle et renvoie la condition d'erreur sur le nœud de sortie. |
![]() | Mode (dernière étape uniquement) | Spécifie le Mode de l'itération suivante de la boucle cadencée. Il y a cinq modes disponibles : No change, Process missed periods maintaining original phase, Process missed periods ignoring original phase, Discard missed periods maintaining original phase et Discard missed periods ignoring original phase. |
![]() | Offset (dernière étape uniquement) | Spécifie combien de temps l'itération suivante attend avant de commencer à s'exécuter. La valeur de l'offset est relative au temps de départ de l'itération suivante et est exprimée dans les unités de la source de cadencement. Par défaut, la valeur est -1 et il n'y a pas de changement. Si vous définissez un offset pour l'itération suivante, vous devez définir une nouvelle valeur pour Mode. |
![]() | Période (dernière étape uniquement) | Spécifie la période de la prochaine itération d'une boucle cadencée, exprimée dans les unités de la source de cadencement. Par défaut, la valeur est -1 et il n'y a pas de changement. Remarque Ne définissez pas la période d'une boucle cadencée à 0. National Instruments ne supporte pas les applications qui contiennent des boucles cadencées à période 0 car ces périodes provoquent un comportement inattendu des applications. Si vous avez besoin d'une boucle qui s'exécute aussi vite que possible avec les fonctionnalités d'exécution prioritaire d'une boucle cadencée, utilisez une boucle While dans une structure Séquence cadencée. |
![]() | Priorité | Spécifie la Priorité de l'itération suivante de la boucle cadencée. La priorité spécifie quand l'itération suivante s'exécute sur le diagramme par rapport aux autres objets du diagramme. Plus la priorité d'une structure cadencée est élevée, plus la structure s'exécute tôt par rapport aux autres structures cadencées. La valeur que vous indiquez dans l'entrée Priorité doit être un entier positif compris entre 1 et 65 535. |
![]() | Processeur | Spécifie le processeur qui doit gérer l'exécution. La valeur par défaut est -1, ce qui signifie que LabVIEW assigne le même processeur spécifié dans le nœud en entrée. Entrez -2 pour permettre à LabVIEW d'assigner le processeur. Pour assigner manuellement un processeur, entrez un numéro entre 0 et 255, 0 représentant le premier processeur disponible. Si vous entrez un nombre qui dépasse le nombre de processeurs disponibles, vous générez une erreur d'exécution et la structure cadencée ne s'exécute pas. |
![]() | Départ (pas disponible dans la dernière étape) | Spécifie combien de temps l'étape suivante attend avant de commencer à s'exécuter. La valeur de départ est relative au début de l'étape actuelle et est exprimée dans l'unité de la source de cadencement. |
![]() | Timeout | Spécifie combien de temps l'itération suivante peut attendre avant de commencer à s'exécuter. Par défaut, la valeur est -1 et aucun timeout n'est spécifié pour l'itération suivante. La valeur du timeout est relative au temps de fin de l'itération précédente et est exprimée dans les unités de la source de cadencement de l'étape. |
(4) Nœud de sortie
| Fin réelle [é-1] (pas disponible dans les boucles cadencées à une seule étape) | Renvoie le temps réel de la fin de l'étape précédente (é-1). La valeur de fin réelle est relative au temps de départ de la source de cadencement et est exprimée dans les unités de cette dernière. |
| Fin réelle [i-1] | Renvoie le temps réel pour la fin de l'itération précédente (i-1). La valeur de fin réelle est relative au temps de départ de la source de cadencement et est exprimée dans les unités de cette dernière. |
| Erreur | Passe les erreurs reçues par la boucle cadencée et renvoie les erreurs du sous-diagramme. |
| Fin prévue [é-1] (pas disponible dans les boucles cadencées à une seule étape) | Renvoie le temps attendu pour la fin de l'étape précédente (é-1). La valeur de fin attendue est relative à la source de cadencement si la source de cadencement des étapes n'est pas réinitialisée au début des itérations. La valeur de fin attendue est spécifiée dans les unités de la source de cadencement. La valeur de Fin prévue [é-1] est égale au départ de la période suivante. |
| Fin prévue [i-1] | Renvoie le temps attendu pour la fin de l'itération précédente (i-1). La valeur de fin attendue est relative à la source de cadencement si la source de cadencement des étapes n'est pas réinitialisée au début des itérations. La valeur de fin attendue est spécifiée dans les unités de la source de cadencement. |
| Terminé en retard ? [é-1] (pas disponible dans les boucles cadencées à une seule étape) | Renvoie VRAI si la boucle cadencée n'a pas terminé l'étape précédente avant l'échéance spécifiée. |
| Terminé en retard ? [i-1] | Renvoie VRAI si la boucle cadencée n'a pas terminé l'itération précédente avant l'échéance spécifiée. |
| Durée de l'étape (pas disponible dans les boucles cadencées à une seule étape) | Renvoie la durée de l'étape précédente. La durée de l'étape est relative au départ de l'étape et est exprimée dans les unités de la source de cadencement de l'étape. |
| Temps de fin global | Renvoie le temps de fin de l'itération ou de la trame précédente. Si la boucle cadencée utilise une source de cadencement absolue, Temps de fin global renvoie un horodatage. Autrement, Temps de fin global renvoie un entier 64 bits. Si la boucle cadencée s'exécute sur une cible RT, Temps de fin global est basé sur le temps système de la cible et peut être synchronisé avec une horloge externe. Si la boucle cadencée s'exécute sur Windows, Temps de fin global est basé sur le temps du système Windows. |
| Durée de l'itération | Renvoie l'horodatage de la durée d'exécution de l'itération précédente. La durée de l'itération est relative au temps de départ de l'itération et est exprimée dans les unités de la source de cadencement. |
| Processeur | Renvoie le processeur que vous désignez pour gérer l'exécution, le cas échéant. Sinon, la valeur renvoyée est -2, ce qui signifie que LabVIEW assigne automatiquement le processeur. |
Reportez-vous à la rubrique Configuration des boucles cadencées pour en savoir plus sur l'utilisation et la configuration d'une boucle cadencée.
Pour convertir une boucle cadencée en boucle While, cliquez avec le bouton droit sur la boucle cadencée et sélectionnez Remplacer par une boucle While dans le menu local. Pour convertir une boucle cadencée en structure Séquence cadencée, cliquez avec le bouton droit sur la boucle cadencée et sélectionnez Remplacer par une séquence cadencée dans le menu local.
Contrairement à la boucle While, il n'est pas nécessaire de câbler de paramètre au terminal d'arrêt pour la boucle cadencée. Si vous ne câblez rien au terminal d'arrêt, la boucle s'exécutera indéfiniment.
Reportez-vous à la rubrique Boucle cadencée (module FPAG) pour en savoir plus sur l'utilisation et la configuration des boucles cadencées dans les VIs FPGA.
Exemples
Reportez-vous aux exemples de fichiers inclus avec LabVIEW suivants.
- labview\examples\Structures\Timed Loop\Timed Loop Offset.vi
- labview\examples\Structures\Timed Loop\Timed Loop Resettable Source Type.vi










