Discussions au sujet de NI LabVIEW

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

Usage de priorité : laquelle est-elle la mieux adaptée ?

Résolu !
Accéder à la solution

Bonjour,

 

Je travaille en ce moment sur le pilotage d'appareil depuis LabVIEW. J'ai actuellement 4 appareils dans ma manipulation, j'avais commencé par dialoguer avec chaque appareil indépendamment et je souhaite désormais les confronter dans un seul et même programme. J'ai quelques soucis en terme de priorité car j'ai besoin que par exemple tel appareil me fournisse une donnée, puis qu'un autre m'en fournisse une autre, puis que le premier appareil me redonne une donnée, etc. J'avais pensé passer par une séquence afin de gérer cela mais après lecture sur les forums il apparait clairement qu'il vaut mieux éviter ce genre de fonction. Avez-vous des idées mieux que celle-ci pour résoudre mon problème ?

0 Compliments
Message 1 sur 6
2 394 Visites

" tel appareil me fournisse une donnée, puis qu'un autre m'en fournisse une autre, puis que le premier appareil me redonne une donnée, etc " ... j'entends que tu as un "séquencement bien précis à respecter". La fonction séquence dont tu parles n'est pas une "fonction", mais une "Structure" (soit, détail). Oui, cette Structure Séquence n'est pas le "top" si tu veux faire du "beau code".

 

On ne va pas une nouvelle fois ré-ouvrir la polémique ... en gros cette Structure "force" le flux de données ... or, LabVIEW est justement basé sur ce flux de donnée. Elle est utile dans certains cas bien précis (assez rares en réalité) mais quand on peut l'éviter, c'est grandement préférable (pour le moins,je suis de ceux qui pensent cela)

 

Ceci dit ... tu peux très bien développer ton besoin en utilisant cette Structure Séquence (en termes de "code brouillon"). Quand tu seras arrivé à un code qui te donne ce que tu attends en terme de résultat ... cela nous permettra de "voir" exactement ce dont tu as besoins ... et ensuite, sur base de ce code (qui sera plus un algorithme qu'un code final) nous pourrons peut-être te proposer une architecture adaptée.

0 Compliments
Message 2 sur 6
2 387 Visites

J'ai effectivement pensé à cracher un code brouillon pour illustrer mon propos, le soucis étant que je fais appel à des drivers spécifiques aux instruments que j'utilise (il faudrait donc les télécharger pour les voir apparaitre sur le code, à défaut d'avoir une icône avec un point d'interrogation sinon). De plus il vous faudrait posséder les appareils que j'utilise afin de pouvoir lancer l'exécution, ce qui sera très probablement impossible. C'est pourquoi j'ai tenté d'expliquer mon problème au mieux en croisant les doigts pour que quelqu'un ait une idée ^^

0 Compliments
Message 3 sur 6
2 381 Visites
Solution
Accepté par l'auteur du sujet Azraael

Pourquoi ne pas nous fournir simplement un diagramme de ce que tu voudrais faire ? Par exemple :

 

Diagramme.PNG

 

NB : mon diagramme est très grossier, mais c'est pour l'idée

 

Cela pourrait nous aiguiller un peu à défaut d'un VI 🙂

CLAMaxime -- Kudos are a great way to say thank you
Message 4 sur 6
2 368 Visites
Solution
Accepté par l'auteur du sujet Azraael

Pour moi cette situation indique clairement que tu dois utiliser une architecture de machine à états. D'ailleurs c'est ce que Maxime à représenté dans son diagramme.

 

Ben64

Message 5 sur 6
2 359 Visites

Merci beaucoup, c'est exactement quelque chose comme ça que je cherchais, je vais me former un peu sur les machines à états et essayer de refaire mon programme sans la structure séquence! Merci encore 🙂

0 Compliments
Message 6 sur 6
2 337 Visites