le
04-08-2010
09:32 AM
- dernière modification le
02-28-2024
02:36 PM
par
migration-bot
Bonjour a tous,
J'aimerais faire un programme sur LabViez 8.2 me permettant de recevoir les donnees d'un manometre et ouvrir/fermer des vannes a certains moment.
J'ai jette un coup d'oeil dans les Exemples, mais je n'en ai pas trouve (sauf si ce n'est plusieurs visualisations via plusieurs sous-VI de ce qu'il se passait en temps reel).
Peut-etre que je m'y suis mal pris dans ma recherche, si vous connaissez des exemples pour ce faire, je suis interesse de savoir lesquels.
Nous avons commande le materiel suivant:
NI cDAQ-9174: https://www.ni.com/en-us/shop/model/cdaq-9174.html
NI 9203: https://www.ni.com/en-us/shop/model/ni-9203.html
NI 9472: https://www.ni.com/en-us/shop/model/ni-9472.html
Malheureusement nous n'avons toujours pas recus le cDAQ-9174 donc je ne peux en ce moment pas vraiment verifier si ce que je fais fonctionne.
Quelqu'un m'avait montre rapidement un methode pour ce genre de chose, que j'ai effectue dans le fichier joint "Vacuum System"
En recherchant des exemples, pour la reception de donnees, j'ai trouve de la litterature indiquant l'utilisation du DAQ Assistant. Ce que j'ai effectue dans le "eme fichier joint "Vacuum System2". Mais j'ai vu que quand on cliquait sur "Generer le code NI-DAQmx", bien qu'il y ai des elements semblables, ce n'est pas vraiment la meme chose!
Je me demande donc si il y a une methode plus efficace que l'autre ?
Ce que j'ai essaye de faire pour le moment etait d'ouvrir la vanne une fois la pression descendue en dessous de 520 mmHg. Est-ce que ce ce que j'ai fait pour le moment est correct ?
(Desole pour les accents mais etant en Angleterre et sur un qwerty, c'est moins evident)
Bien a vous,
Vanrob
Résolu ! Accéder à la solution.
le 04-08-2010 10:36 AM
D'ailleurs c'est probablement mieux avec une boucle For...
En ayant un N=2 pour ouvrir/fermer et en faisant varier le timeout des autres vannes a ajouter pour les faire fonctionner l'une a la suite de l'autre je suppose ?
(Sans le chassis, je fais un peu a l'aveuglette malheureusement :/)
Vanrob
04-09-2010 08:49 AM - modifié 04-09-2010 08:52 AM
Bonjour,
D'une manière générale, vous aurez un comportement au plus prêt de ce que vous souhaitez faire avec les fonctions "bas niveau" plutôt qu'avec les assistants.
D'un point de vue code, il est préférable de venir initialiser les tâches DAQmx avant de rentrer dans la boucle de traitement, et de relâcher les ressources une fois sortit de la boucle (c'est le cas pour l'acquisition analogique, pas pour la génération numérique).
D'un point de vue du cadencement, le driver DAQmx vous offre deux grandes options:
Bien évidemment, ces deux cadencement ne s'adressent pas aux même problématique; un cadencement logiciel (sur demande) convient très bien à une application relativement lente et pour laquelle la forme du signal n'est pas importante. Si au contraire, on fait de l'analyse de signal et que la forme du signal est un paramètre important, on préfèrera une cadencement matériel. Ce ne sera plus Windows - susceptible de faire un tas de choses à coté et de se décaler dans l'instant d'échantillonnage - le responsable du cadencement, mais votre carte d'acquisition (le châssis cDAQ en l'occurrence).
Si vous n'avez pas encore le matériel, rien ne vous empêche d'installer le driver NI-DAQmx et de simuler votre matériel dans MAX. Ceci vous permettra de valider vos appel au driver avec des données d'acquisition simulées.
Quelque chose de cet ordre suffira amplement pour faire une mesure et appliquer la consigne sur la valve toute les 500ms:
Cordialement,
le 04-09-2010 12:30 PM
Bonjour,
Tout d'abord, merci de votre reponse !
Je vois pour les taches... Ca devait etre pour cela aue j'avais une erreur a leurs niveaux. Et si je comprend bien, avec cette methode il vaut mieux initialiser toutes les taches (x taches pour x valves) puis les rentrer dans les boucles a traiter et les relacher une fois tout finis ? Je vais devoir me familiariser avec ces outils, merci pour les informations.
Pour ce qui est du materiel, c'est ce que j'avais fait, j'avais simule le NI 9203 ainsi aue le NI 9472. Mais cela ne me permettais pas de voir si cela fonctionnait correctement ou pas. Heureusement nous avons recus les pieces du cDAQ ce matin.
En somme, avec ce que vous m'avez indique et apres avoir fait les branchements jusqu'au manometre, je n'arrive pas a tracer le graphique. Pourtant j'ai bien relie le + de l'alimentation au manometre, le manometre a l'entree analogique ai1 et le - de l'alimentation au COM du NI 9203. J'ai modifie les valeurs minimum/maximum (qui doivent etre notee en Ampere et non milliAmpere comme je l'avais fait), etant donne que le manometre possede une sortie 4-20mA.
Et pour votre "Superieur ou egal ?", non, c'etait bien inferieur ou egal car nous voulons ouvrir la vanne lorsque la pression est assez basse pour avoir le vide voulu.
Cordialement,
Vanrob
le 04-10-2010 07:06 PM
Rectification,
Si je remplace le Waveform Graphs par un Waveform Charts tout fonctionne "normalement".
Par contre le graphique obtenu est celui correspondant au signal d'entrée (4-20mA), je suppose. Je vais donc me renseigner auprès du fabriquant pour connaître le rapport exact signal d'entrée-conversion en bar, mmHg,... Où sinon je chercherais par interpolation et je multiplierais par cette valeur avant de tracer le graphique.
Je suppose que ce n'est pas LabView qui serait capable de faire ca.
Je vais me pencher sur la partie programmation des actions a effectuer aux différentes vannes.
Merci à vous Mathieu R. pour m'avoir indiqué la route à suivre.
Bien à vous,
Vanrob
le 04-13-2010 12:25 PM
Si vous connaissez les caractéristiques de votre capteur, le plus simple est d'intégrer la mise à l'échelle avec les outils du driver DAQmx. Vous pouvez au choix:
04-14-2010 07:57 AM - modifié 04-14-2010 08:02 AM
Bonjour,
J'ai essayé par cette méthode mais je n'y suis pas arrivé.
Ayant recus l'équation du fournisseur du manometre, j'ai donc résolus le probleme en passant simplement par le "Formula" et en y entrant l'équation.
Il y a surement moyen de plus simple que ce que j'ai fait au total mais au cas ou ca interesserais quelqu'un, je joins le fichier.
Il me reste tout de meme 1 probleme:
J'ai effectue une sorte de compte (1+1= 2 +1 = 3) a l'aide d'un Feedback Node que je compare a une valeur entrée (60 pour 60 secondes par exemple), la 1ere fou tout fonctionne correctement.
Ensuite, la boucle redémarre, je réinitialise la valeur qui était comptée a 0, ca effectue les ouvertures/fermetures correctement mais lorsqu'elle arrive au Feedback Node, celui-ci a garde en mémoire le dernier nombre compté (60 dans cette exemple). Résultat: cette valeur n'est plus jamais égale au temps entré vu qu'elle l'as dépassé.
Je vais jetté un coup d'oeil sur le forum et internet... Je ne dois pas etre le premier a avoir ce type de probleme.
Quoiqu'il arrive, si je trouve une solution, je le signalerais.
Merci a vous,
Vanrob
le 04-15-2010 01:23 PM
Bonjour/Bonsoir,
Probleme resolus !
Au lieu de mettre un Feedback Node pour faire une iteration, je compte a partir du nombre de boucle que la While Loop fait (pourquoi je n'y ai pas pense plus tot ?).
Par contre je serais interesse de quand meme savoir pour la reinitialisation de la valeur dans le Feedback Node si quelqu'un passe par ici et le sait... Juste par simple curiosite car je n'ai pas trouve de reponse sur le net, ils disent d'utiliser un Shift Register ou d'autres methodes mais il semblerait que ce ne soit pas si evident alors.
Il ne me manque plus qu'a pouvoir tout arreter en cliquant sur le Stop et tout seras bon. En ce moment, ca termine bien tout, sauf le True/False lorsque je clique sur Run... en cliquant sur Stop, vu que je n'ai pas clique sur le bouton Run, le programme tourne en boucle sur le False.
Pas bien grave mais bon.
Bien a vous,
Vanrob
le 02-19-2011 04:39 PM
Bonsoir à tous,
J'ai un petit problème concernant un logiciel du même type.
J'ai exactement le même matériel que "vanrob". Il me reste une entrée sur le port2 du la carte d'acquisition Ni 9472. Je connecte le cable à ce port jusqu'à une carte (diminue la consommation) et de cette carte vers la vanne que je dois ajouter au système.
Cependant quand je lance mon programme Labview c'est comme si la vanne n'existait pas... La carte est bonne car j'ai déjà vérifier. Je me demande où est le soucis sur le programme Labview...
Une idée?
Merci beaucoup d'avance
le 02-20-2011 12:52 PM
Bonsoir vipir,
Essaye peut-être de déjà joindre un fichier ou un screen pour situer le problème.
Comment as-tu vérifié que la carte était bonne ?
As-tu essayé avec une autre vanne ?/ As-tu vérifié que la vanne était toujours fonctionnel ?
Si non, vérifie que tu aies la bonne configuration dans tes tâches DAQmx, niveau sortie et co... C'est probablement la qu'est l'os.
Bien à toi,
Vanrob