• 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. Les données doivent être échangées entre une boucle à priorité critique et des processus à priorités plus basses.
  • Solution— Utilisez la fonction ou le VI Attendre la prochaine horloge d'échantillonnage pour vérifier qu'il n'y a pas encore eu de nouveau front de l'horloge d'échantillonnage. Placez le code de communication (normalement, des FIFO temps réel dans LabVIEW ou une file d'attente thread-safe dans LabWindows/CVI) après la fonction ou le VI Attendre la prochaine horloge d'échantillonnage.

    Avantages

    • Vous êtes sûr que les échantillons en sortie de l'itération en cours sont alignés avec les échantillons en entrée de l'itération suivante.
    • NI-DAQmx renvoie une erreur si la fonction ou le VI Attendre la prochaine horloge d'échantillonnage n'a pas démarré quand le front suivant de l'horloge d'échantillonnage se produit.
    • La fluctuation des E/S est limitée à la fluctuation de l'horloge matérielle, qui est de l'ordre de quelques nanosecondes.
    • Les opérations d'entrée de compteur à cadencement matériel n'ont pas de période de conversion comme les entrées analogiques multiplexées. Vous pouvez donc placer la FIFO temps réel ou la file d'attente thread-safe n'importe où dans la boucle.

    Restrictions

    Les opérations de lecture, de traitement et d'écriture sont limitées au temps disponible entre le moment où le périphérique commence l'acquisition des données et celui où le front suivant de l'horloge d'échantillonnage survient.
  • Exemple d'application : E/S à cadencement matériel mises à jour simultanément avec échanges de données entre des boucles à priorités critique et non critique

    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. L'application utilise une FIFO temps réel pour arrêter la boucle de contrôle en fonction d'une valeur booléenne fournie par un processus à priorité plus basse. Une approche similaire peut utiliser des FIFO temps réel pour faire varier les paramètres PID de manière dynamique ou pour transférer les valeurs de contrôle et acquises en sortie aux processus à moindre priorité pour l'enregistrement des données en fichier journal et la surveillance à distance.

    Diagramme de cadencement



    Exemple LabVIEW : E/S à cadencement matériel mises à jour simultanément avec échanges de données entre des boucles à priorités critique et non critique

    Remarque Bien que cet exemple soit écrit pour les utilisateurs de LabVIEW, les principes sont les mêmes si vous utilisez un autre logiciel de développement d'applications, comme LabWindows/CVI.
    • Câblez le VI Attendre la prochaine horloge d'échantillonnage à une des tâches à cadencement matériel. Utilisez le câblage de flux de données pour assurer que le VI Attendre la prochaine horloge d'échantillonnage s'exécute après l'appel de AO Écrire.
    • Utilisez le câblage de flux de données pour assurer que les opérations de la FIFO temps réel s'exécutent après le VI Attendre la prochaine horloge d'échantillonnage.
    • Si le VI Attendre la prochaine horloge d'échantillonnage ne s'exécute pas avant l'arrivée du front suivant de l'horloge d'échantillonnage, il renvoie une erreur.

    Exemple de diagramme



    Remarque
    • N'utilisez qu'un seul VI Attendre la prochaine horloge d'échantillonnage dans une boucle LabVIEW. Si vous avez plusieurs tâches d'E/S à cadencement matériel dans la même boucle LabVIEW, vous pouvez connecter le VI Attendre la prochaine horloge d'échantillonnage à n'importe quelle tâche point par point à cadencement matériel de la boucle.
    • Si vous préférez recevoir une mise en garde plutôt qu'une erreur en cas de dépassement de cycle, définissez la propriété DAQmx - Temps-réel»Convertir les erreurs de retard en mises en garde à Vrai.
    • Bien qu'il ne soit pas absolument nécessaire de placer le code FIFO temps réel après le VI Attendre la prochaine horloge d'échantillonnage, il est conseillé de le faire en cas d'opérations d'entrée analogique multivoies sur des périphériques multiplexés (comme ceux des séries E et M). Comme le périphérique peut passer jusqu'à la moitié de la période d'échantillonnage à convertir les échantillons sur les voies d'entrée analogique, l'exécution du code FIFO pendant cette période de conversion a l'avantage d'utiliser du temps qui serait perdu autrement.
    • Vous pouvez augmenter manuellement la fréquence de conversion de l'entrée analogique en utilisant le nœud de propriété DAQmx - Cadencement. 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.