Surveiller et enregistrer des données avec LabVIEW Real-Time

Apprenez à surveiller et enregistrer des données avec les bibliothèques prêtes à l'emploi intégrées à LabVIEW.

Commentez Donner une note à l'article (0)

Article lu   fois.

L'auteur

Liens sociaux

Viadeo Twitter Facebook Share on Google+   

I. Introduction

Consultez le premier tutoriel de la Série d'évaluation LabVIEW, « Acquérir et analyser des signaux avec LabVIEW Real-Time », pour apprendre à enregistrer des données sur disque sur des cibles temps réel - une tâche indispensable à bon nombre d'applications autonomes. Relisez le premier tutoriel avant de commencer celui-ci, car il aborde plusieurs opérations essentielles à la création de votre projet.

II. Ajouter une fonction d'enregistrement de données à un projet LabVIEW Real-Time

1. Ouvrez la solution finalisée du premier tutoriel, Acquérir et analyser des signaux avec LabVIEW Real-Time, ou téléchargez le fichier .zip sur cette page. Faites un double-clic sur le projet Real-Time Evaluation.lvproj pour l'ouvrir.

2. L'arborescence du projet par défaut contient le Poste de travail, où vous pouvez développer du code qui s'exécutera sur la machine Windows sur laquelle vous travaillez actuellement. Notez qu'une cible temps réel dispose d'un processeur qui exécute un système d'exploitation temps réel ; il s'agit donc d'un autre ordinateur à part entière. Le VI RT.vi contient le code qui s'exécute sur votre cible temps réel. Étant donné que vous avez installé le driver NI-RIO avec votre logiciel d'évaluation, la cible enregistrée dans ce projet est un CompactRIO temps réel, qui se présente sous la forme d'un châssis cRIO-9068. Vous remarquerez que vous communiquez avec votre cible après avoir entré son adresse IP valide, et après l'avoir correctement configurée sur le même réseau que votre ordinateur de développement.

Image non disponible

3. Faites un double-clic pour ouvrir le VI RT.vi et appuyez sur < Ctrl-E > pour ouvrir le diagramme. Un VI se compose de deux fenêtres : la face-avant, grisée, qui sert d'interface utilisateur, et le diagramme, en blanc, qui contient le code. Le code développé jusque-là acquiert des données dans une boucle cadencée haute priorité, les enregistre dans un buffer et les transfère de manière déterministe dans une boucle de priorité inférieure pour les afficher dans l'interface utilisateur. Ce tutoriel a pour objectif de vous aider non seulement à afficher vos données dans l'interface utilisateur, mais également à les enregistrer localement sur la cible temps réel. Des commentaires et une fonction de gestion d'erreurs ont été ajoutés à la solution du premier tutoriel, comme vous pouvez le voir dans la capture d'écran ci-dessous. La propagation d'erreurs tient un rôle particulièrement important dans les processeurs embarqués, car elle permet un arrêt en toute sécurité.

Image non disponible

Il est recommandé de distinguer l'acquisition de données haute priorité de la présentation ou de l'enregistrement de données. De cette façon, le jitter est limité, la boucle cadencée peut atteindre des performances « temps réel » et ainsi finir toujours dans les temps. Vous pouvez augmenter l'efficacité de l'unité centrale en exécutant des tâches dans des boucles distinctes et à des fréquences différentes, puisque chaque tâche n'est exécutée qu'en cas de nécessité. Dans la boucle basse priorité, les données sont extraites du buffer de variables partagées, afin qu'elles soient affichées dans l'interface utilisateur et qu'elles soient enregistrées sur disque.

4. Placez un VI TDMS - Ouvrir dans la structure Séquence d'initialisation (cherchez la palette des fonctions ou faites un clic droit dans une zone blanche du diagramme pour l'afficher, puis naviguez jusqu'à Programmation » E/S sur fichiers »TDM en continu » Ouvrir). Le format de fichiers TDMS de NI vous permet d'organiser vos données par groupes et par voies.

Image non disponible

5. Cliquez avec le bouton droit sur le terminal d'entrée chemin du fichier et sélectionnez Créer » Constante. Entrez le chemin de fichier /c/test1.txt. Cette syntaxe est adaptée au cRIO-9068 qui exécute le système d'exploitation temps réel NI Linux. Pour les cibles qui exécutent d'autres systèmes d'exploitation temps réel, comme VxWorks ou Phar Lap ETS, vous pouvez entrer le chemin c:\test1.txt. LabVIEW devrait contraindre la syntaxe correcte. Créez une nouvelle constante pour l'entrée opération et changez la valeur en create or replace (créer ou remplacer).

Image non disponible

Vous pouvez également écrire sur une clé USB ou sur une carte de stockage SD connectée en indiquant le lecteur U: comme emplacement du fichier.

6. Câblez la sortie d'erreur de la variable Data Buffer au terminal entrée d'erreur du VI TDMS - Ouvrir. Câblez ensuite les sorties sortie d'erreur et fichier tdms en sortie à travers la structure Séquence jusqu'au bord de la boucle While comme indiqué ci-dessous.

Image non disponible

7. Créez une bifurcation dans le fil d'erreur et reliez-la au nœud entrée d'erreur sur la boucle cadencée pour que les erreurs soient propagées dans les deux boucles.

Image non disponible

8. Pour écrire sur le fichier qui vient d'être créé, déposez une instance du VI TDMS - Écrire (Programmation » E/S sur fichiers » TDM en continu » Écrire) à l'intérieur de la boucle While et câblez les entrées de référence d'erreur et de fichier comme il convient.

Image non disponible

9. Pour écrire des données issues de la première voie sur le fichier, déposez une fonction Sous-ensemble d'un tableau (Programmation » Tableau » Sous-ensemble de tableau). Câblez la variable partagée Data Buffer à l'entrée tableau. Cliquez avec le bouton droit sur les entrées indice et longueur puis sélectionnez Créer » Constante. La valeur de l'indice de la première voie est 0, celui de sa longueur est 1. Câblez à présent la sortie sous-tableau à l'entrée données du VI TDMS - Écrire.

Image non disponible

10. Déposez une fonction Ou (Programmation » Booléen » Ou) dans le diagramme, à côté de la commande Stop. Créez ensuite une bifurcation dans le fil partant du terminal sortie d'erreur du VI TDMS - Écrire dans une entrée, puis supprimez et recâblez la valeur du bouton Stop à l'autre entrée, comme le montre l'image ci-dessous. Cela permet de s'assurer que le programme s'arrêtera soit en appuyant sur le bouton, soit en cas d'erreur.

Image non disponible

11. À l'extérieur de la boucle While, à droite, placez un VI TDMS - Fermer (Programmation » E/S sur fichiers » TDM en continu » Fermer) pour vous assurer que la référence et le fichier sur disque seront correctement fermés. Câblez les entrées de référence de fichier et d'erreur comme il convient.

Image non disponible

12. Enfin, cliquez avec le bouton droit sur les tunnels de référence de fichier et d'erreur sur le bord gauche de la boucle While et sélectionnez Remplacer par un registre à décalage dans le menu déroulant. Un registre à décalage permet de faire passer des données d'un cycle d'itération au suivant. LabVIEW remplace le tunnel sur lequel vous avez cliqué par un terminal de registre à décalage, et le curseur prend la forme du symbole correspondant.(Image non disponible). Faites passer votre curseur sur le tunnel de l'autre côté de la boucle jusqu'à ce qu'il clignote, puis cliquez sur le tunnel pour le remplacer par un registre à décalage.

Image non disponible

13. Une fois complète, votre boucle While devrait ressembler à cela :

Image non disponible

14. Terminez le câblage du diagramme en ajoutant des étiquettes pour désigner clairement les groupes et les voies de données. Cliquez avec le bouton droit sur les entrées nom du groupe en entrée et nom des voies en entrée du VI TDMS - Écrire puis sélectionnez Créer » Constante. Vous trouverez un exemple ci-dessous.

Image non disponible

Votre application d'acquisition, d'analyse et d'enregistrement est maintenant terminée. Une fois votre matériel CompactRIO connecté, vous pouvez exécuter le code sur la cible.

III. Ressources supplémentaires

IV. Remerciements

Nous remercions Claude LeLoup pour la relecture et Zoom61 pour sa mise au gabarit.

Vous avez aimé ce tutoriel ? Alors partagez-le en cliquant sur les boutons suivants : Viadeo Twitter Facebook Share on Google+   

  

Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2014 .... Aucune reproduction, même partielle, ne peut être faite de ce site ni de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.