Discussions au sujet de NI LabVIEW

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

Connaître le Device lié à une tâche (Labview, NI-Daqmx, NI-Max)

Résolu !
Accéder à la solution

Bonjour à tous,

J'utilse un chassis en WiFi cDAQ-9191 dans lequel est enfichée une carte d'entrées ana NI 9214. Des tâches sont créées dans NI MAX puis utilisées dans mon programme LABVIEW : l'utilisateur choisit la tâche à lancer avant de démarrer l'acquisition.

Actuellement, je testais la présence du module WiFi avant de lancer l'acquisition (via le VI DAQmx Self-Test Device.vi)

Aujourd'hui, je voudrais rajouter un deuxième ensemble chassis+carte (mêmes références) pour pouvoir alterner de l'un à l'autre. Je vais donc créer mon nouveau périphérique et mes nouvelles tâches sous  NI MAX. Par contre, je ne voudrais pas que l'utilisateur sélectionne le périphérique pour les raisons suivantes :

- tous les périphériques sont listés (y compris les cartes ana) alors que je veux tester uniquement la com WiFi avec le cDAQ-9191

- les tâches sont directement héritées du matériel (device) et il y a risque d'incohérence dans le choix Device/Task

 

Je voudrais savoir si, par programmation sous Labview, il y a possibilité de connaître le nom du matériel "Device" dont la tâche est héritée ?

J'ai testé les nodes DAQmx Device et DAQmx Task, mais dans tous les cas, c'est la totalité des devices qui est lue et non pas le device lié à la tâche.

 

Je joins une impression d'écran avec hiérarchie rapide pour plus de compréhension.

 

Merci d'avance 

 

0 Compliments
Message 1 sur 9
2 871 Visites

Dans la palette Daqmx - Option de tache avancée, il y a le nœud de propriété de tache qui donne la liste des périphériques :

 

quelPeripherique.png

C'est ce que tu cherches?

0 Compliments
Message 2 sur 9
2 851 Visites

Merci Didier pour ta réponse, c'est en effet ce que je cherche et ce que j'ai testé.

Le problème, c'est que le noeud de propriété me renvoie l'intégralité des périphériques.

Or ce que je voudrais, c'est uniquement le périphérique auquel ma tâche fait référence (via la/les voies définies dans la tâche)

Ci dessous l'essai réalisé ce matin avec toutes les infos renvoyées par le noeud de propriétés :

Lien Device-Task 2.png

0 Compliments
Message 3 sur 9
2 841 Visites

Ta tâche utilise un chassis cDAQ9171 ainsi le module qui y est inséré, c'est ce qui est retourné (2 devices). cDAQ9171-1CB95C7 est le chassis.

 

Ben64

0 Compliments
Message 4 sur 9
2 831 Visites

Bonjour Ben64

 

merci pour cette réponse, mais j'avais bien compris le principe. 

Ce que je craignais, c'est que lorsque j'aurais déclaré mon deuxième châssis,  il me propose 4 devices (Un 9191 + Un 9214 pour chaque châssis).

A priori, et suite aux essais réalisés chez mon client hier, je pense avoir compris la différence entre System Node, Device Node et Task Node. Les deux premières fonctions me retourneraient l'intégralité des devices (soit 4 en tout) alors que Task Node ne me retournerait que les 2 devices du châssis utilisé par la tâche sélectionnée.

Dans ce cas, pour connaître l'état de connexion de mon châssis, il me suffirait de prendre le premier élément du tableau renvoyé par Task.Device.

 

Je refais des essais mercredi prochain et je valide cette solution.

 

Encore merci à tous

 

0 Compliments
Message 5 sur 9
2 815 Visites

Le chassis correspond toujours a la slot 0, tu peux utiliser le code suivant pour que seulement le chassis soit retourné.

Get Chassis.png

Ben64

 

 

0 Compliments
Message 6 sur 9
2 809 Visites
Solution
Accepté par l'auteur du sujet PI_DR

Merci mais c'est Device que je veux récupérer (pas le produit en lui même).

Le code ci dessous fonctionne avec un seul châssis (en ma possession).

Il ne me reste plus qu'à valider que cela fonctionne avec 2 châssis (mercredi prochain) et que le Task Node ne me retourne bien que les Devices liés à la tâche.Lien Device-Task 3.png

0 Compliments
Message 7 sur 9
2 804 Visites

@PI_DR  a écrit :

Merci mais c'est Device que je veux récupérer (pas le produit en lui même).

Le code ci dessous fonctionne avec un seul châssis (en ma possession).

Il ne me reste plus qu'à valider que cela fonctionne avec 2 châssis (mercredi prochain) et que le Task Node ne me retourne bien que les Devices liés à la tâche.

Tu n'as qu'a enlever la propriété Product Type et à relier Active Device à la sortie anciennement utilisée par Product Type (il faudra changer le data type de la sortie). Ainsi à la sortie tu n'auras que les devices de type chassis (et/ou les modules ne faisant pas partie d'un chassis)

 

Ben64

0 Compliments
Message 8 sur 9
2 797 Visites

Comme convenu, je reviens vers vous suite aux essais réalisés chez mon client avec les deux châssis DAQ-9191.

 

Je confirme donc que cela fonctionne : le Task Node relié à la tâche sélectionnée ne me renvoie bien que le tableau des 2 devices correspondant à la tâche (châssis 9191 élément 0 + carte TC 9214 élément 1).

Du coup, une simple sélection de l'élément 0 du tableau  me permet de tester la présence ou non de mon châssis en WiFi via le VI DAQmx Self-Test Device (voir dernier code de mon précédent post.

 

Avec mes remerciements pour tout ceux qui ont apporté leur  contribution 

 

0 Compliments
Message 9 sur 9
2 760 Visites