Vous pouvez utiliser les boîtes de dialogue de configuration des structures cadencées pour configurer les paramètres avancés tels que des échéances, des timeouts et des sources de cadencement secondaires pour les structures cadencées. Double-cliquez sur le nœud d'entrée, ou cliquez dessus avec le bouton droit et sélectionnez Configurer le nœud d'entrée dans le menu local pour afficher la boîte de dialogue Configurer la boucle cadencée, Configurer la séquence cadencée ou Configurer la boucle cadencée à étapes.

Définition d'une échéance

Une échéance attribue un délai spécifique à un sous-diagramme, ou étape, pour terminer son exécution par rapport au départ de l'étape. Utilisez une échéance pour définir une référence de limite de temps pour l'exécution d'un sous-diagramme. Si une étape ne termine pas son exécution avant l'échéance, le nœud de données de gauche de l'étape suivante renvoie VRAI dans la sortie Terminé en retard ? et continue de s'exécuter. Spécifiez une valeur d'échéance dans les unités de la source de cadencement de l'étape.

Dans l'exemple qui suit, la première étape de la structure Séquence cadencée est configurée avec une échéance de 50. Cette échéance spécifie que l'étape doit terminer son exécution dans les 50 tops de l'horloge à 1 kHz, ou 50 ms, qui suivent. Cependant, étant donné qu'un VI de l'étape appelle une attente de 60 ms, le code de l'étape prend 60 ms à s'exécuter. La sortie Terminé en retard ? de la deuxième étape renverra donc la valeur VRAI puisque l'exécution de l'étape ne s'est pas terminée dans l'échéance spécifiée.

Définition d'un timeout

Un timeout spécifie le délai maximum, en millisecondes, qu'une étape peut laisser passer avant de commencer son exécution. La valeur du timeout est relative au commencement de l'itération ou relative à la fin de l'étape antérieure. Si le sous-diagramme n'a pas commencé son exécution avant que la valeur de timeout spécifiée n'ait été atteinte, la boucle cadencée renvoie Timeout dans la sortie Raison du réveil du nœud de données de gauche de cette étape.

Vous pouvez utiliser différents types de sources de cadencement NI-DAQmx, y compris des compteurs de fronts numériques et des signaux de sources de tâches, pour contrôler les structures cadencées et spécifier un timeout. Dans l'exemple qui suit, la seconde étape de la structure Séquence cadencée s'exécute lorsque le VI DAQmx - Créer une source de cadencement reçoit une impulsion d'un périphérique externe. Le périphérique externe envoie une impulsion toutes les 50 ms dans des conditions idéales, mais le cadencement des impulsions peut varier. La valeur de timeout 60 ms pour la seconde étape indique que cette étape peut attendre 60 ms après le début de l'itération pour commencer son exécution. Si la seconde étape n'a pas commencé son exécution dans les 60 ms, la structure continue d'exécuter le reste de l'itération sans cadencement, et la seconde étape renvoie Timeout dans la sortie Raison du réveil du nœud de données de gauche.

Si un timeout se produit dans une structure cadencée, la structure continue d'exécuter l'itération sans cadencement. La structure cadencée renvoie Timeout dans la sortie Raison du réveil des étapes restantes. Les informations de cadencement fournies par les étapes restantes sont égales à celles de l'étape dans laquelle le timeout s'est produit. Si un boucle cadencée doit réaliser une autre itération, la boucle s'arrête à la même étape où le timeout a eu lieu et attend l'événement Timeout d'origine.

La valeur de timeout par défaut pour la première étape d'une structure cadencée est -1, qui indique d'attendre indéfiniment le démarrage du sous-diagramme, ou étape. La valeur de timeout par défaut des autres étapes est 0, ce qui indique que la valeur de timeout n'a pas changé depuis l'étape précédente.

Définition d'un offset

Un offset correspond à un laps de temps, relatif au démarrage de la structure cadencée, durant lequel une structure attend de commencer l'exécution du premier sous-diagramme, ou étape. L'offset est défini dans les unités absolues de la source de cadencement de la structure.

Vous pouvez aligner la phase de différentes structures cadencées à l'aide d'un offset, en définissant la même source de cadencement. pour les deux structures. Les boucles cadencées du diagramme suivant utilisent la même source de cadencement de 1 kHz avec des valeurs d'offset t0 de 500, ce qui signifie qu'elles attendent 500 ms après le déclenchement de la source de cadencement avant de commencer à exécuter leurs itérations.

Remarque Le fait d'aligner la phase de deux structures cadencées ne garantit pas que les structures commenceront en même temps. Utilisez le VI Synchroniser le démarrage des structures cadencées pour synchroniser leur démarrage sur le diagramme.

Dans la dernière étape d'une boucle cadencée, vous pouvez utiliser le nœud de données de droite pour changer l'offset de manière dynamique pour les itérations suivantes de la boucle. Toutefois, lorsque vous changez de manière dynamique l'offset des itérations qui suivent, vous devez aussi spécifier un mode en câblant une valeur à l'entrée Mode du nœud de données de droite.

Remarque Vous ne pouvez pas câbler Pas de changement à l'entrée Mode si vous changez l'offset en utilisant le nœud de données de droite. Vous devez sélectionner une valeur pour le mode.

Reportez-vous au VI Timed Loop Offset.vi, dans le répertoire labview\examples\Structures\Timed Loop pour consulter un exemple de paramétrage d'offset pour une boucle cadencée.

Affectation d'un processeur

Par défaut, LabVIEW confie automatiquement la gestion de l'exécution des structures cadencées aux processeurs disponibles. Vous pouvez toutefois charger manuellement des structures cadencées sur plusieurs processeurs pour un meilleur contrôle de l'exécution.

Sélectionnez Manuel dans le menu déroulant Mode dans la section Affectation du processeur des boîtes de dialogue Configurer la boucle cadencée, Configurer la boucle cadencée à étapes, Configurer la séquence cadencée, Configurer le cadencement de l'étape suivante ou Configurer l'itération suivante pour assigner manuellement la gestion d'une structure cadencée à un processeur. Vous devez aussi entrer un entier entre 0 et 255, où 0 représente le premier processeur disponible du système, dans la zone de texte Processeur afin de spécifier quel processeur vous voulez charger de la gestion de l'exécution. Si vous essayez d'entrer un chiffre se trouvant hors de la gamme spécifiée, LabVIEW le contraint entre 0 et 255. 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.

Si vous sélectionnez Automatique dans le menu déroulant Mode, LabVIEW affecte automatiquement un processeur à la structure et la valeur du paramètre Processeur passe automatiquement à -2. Si vous sélectionnez Pas de changement dans le menu déroulant Mode pour une étape ou une itération suivante, LabVIEW utilise le processeur qui gérait la séquence ou l'itération précédente, et la valeur du paramètre Processeur passe automatiquement à -1.

Vous pouvez aussi câbler une valeur à l'entrée Processeur du nœud d'entrée d'une structure cadencée ou d'une étape de structure cadencée pour définir le processeur en charge.

Reportez-vous à la rubrique « Optimisation des applications RT pour des processeurs multiples » afin d'obtenir des informations supplémentaires sur l'optimisation des performances d'une structure cadencée en lui affectant manuellement des processeurs.

Définition d'une source de cadencement secondaire

Vous pouvez utiliser une deuxième source de cadencement pour contrôler les sous-diagrammes, ou étapes, d'une structure cadencée avec une autre source d'horloge que celle de la structure elle-même. Utilisez la section Source de cadencement d'étape des boîtes de dialogue Configurer la boucle cadencée, Configurer la boucle cadencée à étapes ou Configurer la séquence cadencée pour sélectionner une source de cadencement secondaire.

Les structures cadencées supportent les sources de cadencement secondaires suivantes :

  • Utiliser la source de cadencement de la boucle ou de la séquence — Utilisez la même source de cadencement que celle de la structure cadencée pour cadencer les étapes.
  • Utiliser la source intégrée suivante — Utilisez une autre source de cadencement intégrée pour cadencer les étapes.
    • Horloge à 1 kHz <réinitialiser au lancement de la structure> — Source de cadencement semblable à l'horloge à 1 kHz, qui se remet à 0 après chaque itération d'une structure cadencée.
    • Horloge à 1 MHz <réinitialiser au lancement de la structure> — Source de cadencement semblable à l'horloge à 1 MHz, qui se remet à 0 après chaque itération d'une structure cadencée.

Temps absolu et relatif dans les structures cadencées

Une source de cadencement désignée dirige l'exécution des structures cadencées. Cependant, certaines options de configuration de structure cadencée ne font pas référence à la valeur absolue de la source de cadencement. Dans les boucles cadencées à étapes et les structures Séquence cadencée à étapes, certaines options de configuration sont relatives au cadencement de l'étape précédente ou de l'étape actuelle. Les options qui font référence au départ ou à la fin de l'exécution d'une étape utilisent le temps relatif, alors que celles qui font référence à la source de cadencement utilisent le temps absolu.

Dans les structures cadencées, l'offset est géré en temps absolu et les sorties comme Départ prévu, Fin prévue, Départ réel et Fin réelle sont calculées dans les unités de temps absolues pour le cadencement des étapes et des itérations. Le temps de départ, l'échéance et le timeout de chaque étape sont gérés en temps relatif. Le temps de départ et le timeout sont relatifs au départ de l'exécution de l'étape précédente et l'échéance est relative au début de l'étape actuelle.

Dans le diagramme suivant, une boucle cadencée à étapes contrôlée par une horloge à 1 kHz a une période de 1000 ms et un offset de 100 ms. L'offset est géré en temps absolu, de sorte que la boucle effectue des itérations lorsque l'horloge de la source de cadencement atteint 100 ms, 1100 ms, 2100 ms, 3100 ms et ainsi de suite, jusqu'à ce que la boucle termine son exécution.

Remarque Une boucle cadencée qui est en retard peut utiliser le temps relatif ou absolu selon le mode de la boucle cadencée.

1 Offset Temps absolu : fait référence à la source de cadencement de la boucle
2 Échéance Temps relatif : fait référence au départ de la seconde étape
3 Démarrage Temps relatif : fait référence au départ de la première étape
4 Timeout Temps relatif : fait référence au départ de la dernière étape

La deuxième étape de la boucle cadencée a un temps de départ égal à 75 ms. Étant donné que le temps de départ est relatif au début de l'exécution de l'étape précédente, l'exécution de l'étape peut commencer au plus tôt 75 ms après le début de l'exécution de la première étape. Selon le temps absolu maintenu par la source de cadencement, la seconde étape démarre 175 ms après le démarrage de la première itération puisqu'elle s'exécute au plus tôt 75 ms après le départ de la première étape, à 100 ms sur l'horloge de la source de cadencement.

L'étape possède aussi une entrée timeout définie à 2000 ms. Le timeout établit une attente maximale pour le départ d'une étape après le début de l'exécution de l'étape précédente. Si la deuxième étape ne commence pas son exécution dans un délai de 2000 ms à compter du début de l'exécution de la première étape, LabVIEW exécute le reste de l'itération sans cadencement et renvoie Timeout dans la sortie Raison du réveil du nœud de données de gauche. Si la deuxième étape commence à s'exécuter avant que les 2000 ms allouées au timeout soient écoulées, l'échéance de 150 ms limite alors la durée de l'exécution de l'étape. Depuis le moment où la seconde étape commence à s'exécuter, il peut s'écouler 150 ms avant que l'étape ne renvoie la valeur VRAI dans l'indicateur Terminé en retard.