Discussions au sujet de NI LabVIEW

annuler
Affichage des résultats de 
Rechercher plutôt 
Vouliez-vous dire : 

Compteur d'événements

Résolu !
Accéder à la solution

Bonjour à tous,

J'aimerais savoir si vous n'auriez pas des astuces pour réaliser un compteur d'événements.

Je m'explique, j'utilise une Labjack U12 (breadboard with Input/Output for analog and digital) pour acquérir une tension continue sur un dispositif de détection de pluie (avec relais). J'ai 5V en temps sec et 0V quand il détecte de la pluie. Le Labjack fournis des sous-VI permettant d'acquérir la tension selon le channel sur la plaque. Hélas, en fonctionnement la tension varie fortement et j'aimerais  dans un premier temps enregistrer les données reçues uniquement lors de l’exécution et remettre à zéro au démarrage. J'aimerais ainsi tester pendant 3 fois que j'ai bien trois '0' d'affilé pour être sûr d'avoir la pluie et pour éviter les données parasites et l'arrêt intempestif du dispositif) :

Snippet.png

Je vous remercie d'avance pour vos astuces et idées !

Merci,

GdB

 

 

J'aimerais pouvoir

0 Compliments
Message 1 sur 15
7 852 Visites

Salut GdB,

 

Juste pour être sûr de bien comprendre ta problématique : tu as un sous-VI qui te renvoie une tension. Si cette tension est nulle, alors cela veut dire que tu as de la pluie et c'est dans ce cas que tu veux faire ton acquisition. Pour être sûr de ne pas commencer l'acquisition trop tôt, tu souhaites vérifier la valeur de tension trois fois d'affilée et elle doit être nulle à chaque fois.

 

N'hésite pas à me corriger si j'ai mal compris quelque chose 🙂

 

A+

CLAMaxime -- Kudos are a great way to say thank you
0 Compliments
Message 2 sur 15
7 834 Visites

Salut Maxime,

Tu as quasiment tout compris. Je précise seulement mes propos. Mon appareil est un Lidar.

Quand l'appareil fonctionne est que le détecteur de pluie détecte de la pluie je veux qui l'arrête, sur cette partie pas de soucis. Malheureusement cette tension peut passer par '0' pendant un cour laps de temps et donc m'indiquer des pluies alors que non.

Pour palier à cela j'aimerais enregistrer 3 '0' d'affilé indiquant à coup sûr une pluie et être ainsi sûr de pouvoir stopper le laser au bon moment.

Merci,

GdB

0 Compliments
Message 3 sur 15
7 828 Visites
Solution
Accepté par l'auteur du sujet GDB21

Compris.

 

Est-ce que quelque chose comme ça pourrait faire l'affaire dans ton cas ?

GdB_Exemple.png

 

 

 

 

 

CLAMaxime -- Kudos are a great way to say thank you
Message 4 sur 15
7 807 Visites

Merci Maxime ! Ça semble bien fonctionner ! Tout du moins mes données parasites sont mieux filtrées.

Dernière chose, J'ai un VI globale qui tourne à une certaine tempo dans ce VI il y a le fameux sous-VI (utilisation d'une .dll pour communiquer avec la Labjack). J'ai ajouté le registre à décalage et ordonne l'arrêt si nécessaire. J'aurais aimé pouvoir externaliser ou encapsuler tout cette détection cela dans un autre sous-Vi (question de place et de lisibilité) mais la configuration que j'utilise ne le permet pas.

 

J'ai besoin d'un while pour faire intervenir les registres à décalages mais si je le met dans un sous-Vi de mon VI global eh bien au démarrage je perd la main est tourne en boucle (je suppose) dans la boucle détection. J'ai pensé alors à une variable globale mais je n'arrive pas à l'appliquer.

 

Aurais-tu une autre astuce pour paralléliser la détection au VI globale sans le ralentir (question de race condition?)

 

En tout cas un grand merci pour cette première solution ! 🙂

0 Compliments
Message 5 sur 15
7 776 Visites

Hello GdB,

 

Content de voir que la première solution fonctionne 🙂

 

SI je comprends bien ta deuxième problématique, tu voudrais te "débarasser" de la boucle while pour ne pas bloquer ton VI ? Dans tous les cas il te faudra une boucle pour pouvoir tester ta valeur plusieurs fois, mais on peut arranger ça mieux en effet. Pourrais-tu stp nous joindre ton projet global, ou une version simplifiée pour qu'on puisse y jeter un oeil ? Ce serait plus simple de te guider à partir d'une base.

 

Merci.

CLAMaxime -- Kudos are a great way to say thank you
0 Compliments
Message 6 sur 15
7 771 Visites

Voici en pièce-jointe le VI global, je n'ai pas mis les autres sous-VI je ne pense pas qu'ils influeront. Le VI est en LV2017, dis moi si je dois te le rétro-convertir ?

//

Et en parallèle de tout cela (car refaire un topic juste pour une autre petite question, je ne sais pas si c'est judicieux) ...  J'aimerais pouvoir faire un Datalogger qui m'enregistre toutes les erreurs Pluie/Radar/Low Water avec la date de leur apparition dans un fichier texte qui s’incrémentera en continu.

Ex : "28/03/2018 - 20h00m60sec - Pluie" la typologie peut évidement changer.

Voilà j'espère ne pas être trop exigeant !

GdB

 

0 Compliments
Message 7 sur 15
7 762 Visites

Merci !

 

Avant de proposer un truc j'ai besoin de comprendre 2, 3 trucs :

  1. Tu réalises un essai après chaque évènement ? Je veux dire les cas 1, 2, 3, etc. Il y a forcément une mesure après ?
  2. Le Status_Registers.vi, c'est un VI maison où quelque chose que tu as récupéré
CLAMaxime -- Kudos are a great way to say thank you
0 Compliments
Message 8 sur 15
7 757 Visites
Solution
Accepté par l'auteur du sujet GDB21

1. Je ne pense pas avoir bien compris ta question mais si tu parles de la machine d'état, oui après chaque événement j'agis en changeant via la case struct les paramètres en envoyant les commandes SCIPI au Laser. Il n'y a pas à proprement parler de mesure mais des changements de modes du fonctionnement du Laser.

2. Le Status_registers.vi est en effet un Vi maison.Pour faire simple ceux sont deux tableaux de même dimension, d'un côté le laser renvoi le status registers (code binaire) indiquant les erreurs et l'autre côté un tableau avec toutes les erreurs listées. Si 1 alors erreur active sinon 0 inactive puis j'affiche ou non les erreurs dans mon onglet "Description error".

0 Compliments
Message 9 sur 15
7 737 Visites

Un exemple de ce que je ferais (voir PJ).

 

Pour le fichier de log, il te suffit de formater une chaîne de caractères avec ta date et ton alerte puis d'écrire tout ça dans un fichier texte. Tu trouveras plus d'informations ici : http://zone.ni.com/reference/fr-XX/help/371361L-0114/lvconcepts/creating_text_files/

 

N'hésite pas si tu as des questions 🙂

CLAMaxime -- Kudos are a great way to say thank you
Tout télécharger
0 Compliments
Message 10 sur 15
7 719 Visites