Discussions au sujet de NI LabVIEW

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

Lancement de plusieurs acquisition au moyen des tâches daq mx

Résolu !
Accéder à la solution
Solution
Accepté par l'auteur du sujet simon.ouedraogo

J'ai finalement pris le temps Smiley heureux

création voies.png

Comment j'ai procédé :

 - je choisis quelle voie modifier dans un énum

 - je change mes paramètres dans un cluster

 - je valide

 - mes nouveaux paramètres sont enregistrés dans un tableau de clusters qui contient les configurations de toutes les voies

 - j'efface la tâche actuelle, j'en crée une nouvelle et je crée chaque voie avec ses paramètres personnalisés.

 

N'oublie pas de faire la gestion des erreurs sinon il y a un risque de "race condition" qui t'affichera une erreur "cette tâche existe déjà"

 

Et il te faut répéter cette opération pour chaque tâche de type différent (AI, DI, compteur,...).

 

J'espère que ça répond à ton besoin.

Yddet

 

Message 11 sur 30
1 246 Visites

Salut Yddet, c'est vraiment sympa de te décarcasser pour moi !

 

J'ai quelques petites questions: quelles données sont dans le Cluster "sauvegarde toutes voies" et "configuration" ? La boucle que tu utilises est une "boucle condition" ? Quelle utilité a-t-elle ici ? Ca doit t'embêter toutes ces questions, désolé d'avance mais je suis un débutant dans l'utilisation approfondie et j'ai besoin d'explications. En attendant je réfléchis sur ce que tu m'as envoyé pour essayer de comprendre et reproduire si possible.

 

Merci beaucoup !

0 Compliments
Message 12 sur 30
1 243 Visites
Solution
Accepté par l'auteur du sujet simon.ouedraogo

Ne t'inquiète pas, tu as raison de demander si ce n'est pas clair ! Smiley heureux

 

Les "captures" que j'ai postées sont en fait des snippets. C'est une image qui peut être importée sous LabVIEW pour recréer une portion de code. Enregistre l'image sur ton pc, puis fais la glisser sur un diagramme vide. PAF ! le code est écrit ! ça te permettra de voir ce que j'ai utilisé dans les clusters et voir la condition cachée "faux".

 

Il faut que les clusters aient les mêmes commandes à l'intérieur pour que ça fonctionne. J'ai mis différentes commandes pour configurer les voies : nom des voies physiques, valeur max, le nom à donner à la voie. Tu peux bien sûr en ajouter ou en supprimer suivant le besoin.

Pour remplir les clusters, je te conseille de faire "clic droit->créer une commande" sur les bornes du VI "créer voie". Et ensuite de la faire glisser dans le cluster pour avoir le bon type de commande.

 

La condition permet quand elle est

- "faux" : de lire les échantillons des voies préalablement définies

- "vrai" : modifier les voies 

 

La condition remplace la structure évenement que j'avais écrite plus tôt. C'est plus simple de cette manière.

 Yddet

Message 13 sur 30
1 236 Visites

J'ai tenté de réaliser le programme en faisant glisser le snippet dans un diagramme vide. 

J'ai un petit souci: le câblage du cluster "configuration" avec la fonction d'indexation ne veut pas se faire (affichage d'une erreur) alors que j'ai exactement les mêmes contrôles dans l'un comme dans l'autre. 

J'ai ensuite deux petites questions: à quoi sert concrètement le tableau "sauvegarde de toutes voies" ? Est-il possible d'acquérir plusieurs signaux en même temps en y affichant les valeurs numériques et les graphes avec ce programme ? 

 

Merci d'avance.

0 Compliments
Message 14 sur 30
1 228 Visites
Solution
Accepté par l'auteur du sujet simon.ouedraogo

Il faut savoir que dans un cluster, les éléments ont un ordre. Donc si on supprime un élément et qu'on le remet dedans ensuite, l'ordre peut avoir bougé et le cluster n'est pas considéré comme étant le même ou identique. Pour changer l'ordre manuellement, sélectionner le cluster (pas le tableau) clic droit sur le cluster, "ordonner les commandes dans le cluster".

L'ordre doit être le même dans le cluster simple et le cluster du tableau.

 

Le tableau de clusters "sauvegarde de toutes les voies" : Puisqu'il faut configurer les voies individuellement, il faut sauvegarder (ou mémoriser) ces configs pour chaque voie. Si tu as 12 voies, il faut 12 configs. Pour mémoriser une seule config, on utilise un cluster. Et on utilise un tableau de 12 lignes contenant à chaque fois le cluster de config de la voie correspondante.

Ce tableau est câblé sur un registre à décalage pour mémoriser les configs d'un tour de boucle à l'autre. Ca permet de pouvoir modifier une seule voie sans avoir à toutes les reconfigurer.

 

Bien sûr qu'on peut afficher les valeurs !

La partie acquisition et affichage doit se faire dans la condition "faux".

On peut aussi acquérir plusieurs tâches (voir mon premier post).

Pour la configuration des voies de différentes tâches il faut dupliquer le code de la condition vraie. Je pense que le plus simple serait d'avoir sur la face avant 1 zone de configuration (cluster) pour chaque tâche. Sur le diagramme il y aurait 1 structure condition pour chaque tâche également.

Yddet

Message 15 sur 30
1 222 Visites

Pour le cluster c'est bon. C'était bien un problème d'ordonnancement. J'ai réglé est la câblage est OK !

Donc pour afficher les valeurs, il faut insérer la fonction "read" dans la boucle "vrai" et câbler sur celle-ci une "waveform" ou un indicateur numérique ou il y a une autre méthode ? 

Enfin pour créer toutes les différentes tâches, on duplique le code de la condition vrai, à l'intérieur de la même "boucle while" ?

0 Compliments
Message 16 sur 30
1 218 Visites

Tu as tout bon oui

0 Compliments
Message 17 sur 30
1 216 Visites

Super alors ! 

 

Je vais faire ça tout de suite et t'en dis des nouvelles. Encore merci pour ta réactivité et ta disponibilité Yddet ! Ca m'aide beaucoup !

0 Compliments
Message 18 sur 30
1 214 Visites

Petit problème, mon signal n'apparaît pas sur le graphe. Alors que j'ai effectué tout les réglages (voie physique, tâche, valeur d'excitation, etc ..). Je t'envois un snippet de mon programme. Si tu peux me dire pourquoi ça cloche ... 

 

Merci d'avance

0 Compliments
Message 19 sur 30
1 212 Visites
Solution
Accepté par l'auteur du sujet simon.ouedraogo

Hop hop hop ! je t'ai répondu trop vite tout à l'heure...

La lecture et l'affichage doivent être dans la condition "faux". C'est ma faute Smiley indifférent

Pense à relier les entrées/sorties erreur des VI pour un bon flux de données.

Yddet

 

PS : Je travaille sous LabVIEW 2011, je ne peux pas ouvrir tes snippets. Il faudra fichier->enregistrer pour une version antérieure pour que je puisse lire tes programmes.

Message 20 sur 30
1 208 Visites