• Spécifications—Les E/S doivent avoir un cadencement matériel. Toutes les valeurs en sortie doivent être mises à jour simultanément à l'arrivée du front de l'horloge d'échantillonnage. L'application utilise la boucle cadencée.
  • Solution—Utilisez la fonction ou le VI DAQmx - Créer une source de cadencement pour créer une source de cadencement qui contrôle la boucle cadencée qui contient les opérations d'E/S et l'algorithme de contrôle.

    Avantages

    • L'utilisation d'une source de cadencement vous permet de spécifier un signal d'E/S (par exemple, le signal de l'horloge d'échantillonnage) pour le déclenchement des itérations de la boucle cadencée.
    • Les sources de cadencement comme le Contrôle d’une boucle de la tâche fournissent une vérification stricte des retards et permettent aux autres threads de s'exécuter pendant que des voies analogiques sont multiplexées et échantillonnées.
    • La boucle cadencée rapporte si les itérations se sont terminées dans les délais alloués.
    • Les applications multifréquences, qui utilisent des sous-systèmes matériels d'E/S distincts, sont possibles en extrapolant cette approche à plusieurs boucles cadencées.

    Restrictions

    • Augmentation mineure en temps système par rapport à une boucle While LabVIEW standard
    • Nécessite du code supplémentaire pour traiter les itérations d'initialisation
  • Exemple d'application : E/S à cadencement matériel mises à jour simultanément avec la boucle cadencée (LabVIEW uniquement)

    Un exemple de ce genre d'application est une boucle de contrôle analogique qui lit des échantillons sur un nombre spécifique de voies d'entrée analogique, traite les données en utilisant un algorithme de contrôle (PID, par exemple) et écrit les nouvelles valeurs de contrôle sur les voies de sortie analogique.

    Vous pouvez créer une application de ce genre avec la source de cadencement Contrôle d’une boucle de la tâche. La source de cadencement Contrôle d'une boucle de la tâche utilise le signal d'horloge d'échantillonnage de la tâche d'entrée analogique, ce qui permet la vérification de retard pour toutes les tâches associées à cette horloge d'échantillonnage.

    La source de cadencement Contrôle d'une boucle de la tâche vous permet aussi de spécifier un temps de latence entre le moment où l'événement de l'horloge d'échantillonnage est traité et celui où la boucle cadencée commence à s'exécuter. Cette latence, ou temps de repos, évite que la fonction ou le VI DAQmx - Lire qui se trouve dans la boucle cadencée n'utilise tout le temps processeur disponible en attendant que les échantillons de l'entrée analogique soient multiplexés et numérisés.

    Diagramme de cadencement



    Exemple LabVIEW : E/S à cadencement matériel mises à jour simultanément avec la boucle cadencée

    • Créez une source de cadencement Contrôle d'une boucle de la tâche pour la boucle cadencée. Ce signal est la base de temps qui contrôle l'exécution de la boucle cadencée.
    • La boucle cadencée rapporte à l'application si l'itération précédente s'est terminée dans les délais alloués. Pour cela, elle utilise le nœud "Terminé en retard [i-1]".
    • Prévoyez quelques itérations d'initialisation pour tenir compte des effets de la mise en cache processeur et des autres événements susceptibles de se produire lors des premières itérations de la boucle.

    Exemple de diagramme



    Remarque
    • Le VI DAQmx - Lire est configuré implicitement pour le mode Interrogation lorsque vous utilisez la source de cadencement Contrôle d’une boucle de la tâche. Le mode Interrogation évite le surcroît de temps système de planification associé avec les interruptions dans la boucle cadencée.
    • Vous pouvez augmenter manuellement la fréquence de conversion de l'entrée analogique en utilisant les propriétés de cadencement DAQmx. Ceci réduit le temps passé à convertir le nombre d'échantillons demandés. Il est important de tenir compte des spécifications en matière de temps minimal de stabilisation pour tout le système d'acquisition de données afin d'éviter la détérioration du signal et les interférences.
    • N'utilisez le VI Attendre la prochaine horloge d'échantillonnage pour aucune de ces tâches.
    • Les processus à priorités plus basses, y compris les boucles cadencées à priorités plus basses, peuvent s'exécuter quand la boucle cadencée attend son itération suivante.
    • Pour optimiser les applications de contrôle multivoies dans lesquelles des threads de priorité plus basse risquent de nécessiter davantage de temps pour le traitement, indiquez une valeur autre que zéro pour le paramètre temps de repos (us) du VI DAQmx - Créer une source de cadencement. Cette valeur différente de zéro permet aux autres threads d'utiliser le temps passé à convertir les échantillons d'entrée analogique pour effectuer d'autres tâches comme des tâches de communication ou d'enregistrement sur disque.
    • Le temps de repos maximal qui peut être défini sans affecter la vitesse globale de l'application dépend de plusieurs facteurs, y compris le nombre de voies analogiques de l'acquisition, la vitesse de conversion des échantillons et les spécifications système.

    La figure suivante illustre l'effet du temps de repos sur la vitesse maximale possible et la quantité de travail réalisable à cette vitesse par les threads de plus basse priorité dans le cas de configurations à plusieurs voies.



    *Voir la configuration de référence ci-dessous.

    Le graphe indique que, dans le cas d'une acquisition sur 8 voies avec une configuration matérielle et logicielle spécifique, la vitesse maximale possible diminue dès que le temps de repos passe de 0 à 5 µs. Par contre, ce n'est pas le cas pour les configurations à 12 et 16 voies, pour lesquelles le temps de repos peut passer de 10 à 15 µs sans affecter visiblement les vitesses d'E/S maximales possibles. Avec 12 et 16 voies, l'intervalle de repos supplémentaire permet aux autres threads d'effectuer plus de travail (reportez-vous à la définition ci-dessous) sans affecter la vitesse globale des E/S de l'application.

    Configuration de référence

    • Configuration matérielle :
      • Contrôleur NI PXI-8196 RT
      • Périphérique MIO de série E NI PXI-6070
      • Périphérique de sortie analogique NI PXI-6723
    • Configuration logicielle :
      • LabVIEW Real-Time 8.0
      • NI-DAQmx 8.0
      • Driver Ethernet configuré pour le mode Interrogation
    • Détails de référence :
      • Une unité de travail est définie comme le nombre de fois qu'une boucle à priorité normale peut incrémenter un nombre 64 bits non signé quand la boucle cadencée des E/S, représentée dans l'exemple de diagramme plus haut, s'exécute en parallèle.
      • La conversion d'entrée analogique n'est pas configurée de manière explicite. Ceci signifie que le driver DAQmx la calcule automatiquement en fonction du nombre de voies et de la fréquence d'horloge d'échantillonnage souhaitée.