Discussions au sujet de NI LabVIEW

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

Définition d'une commande d'Enum avant execution

Résolu !
Accéder à la solution

Bonjour,

 

Voilà depuis quelques temps je travail sur un projet et je ne sais pas quel est la meilleure solution je vous explique avec un exemple très simple ce que je recherche.

 

Admettons l'Assembly Part Number 1633, Il est répertorié parmis 108 autres dans une Enumeration nommé Assembly Part Number. L'utilisateur choisi parmis les 108, jusque là aucun problème, mais en fonction de si c'est 1633 ou XXXX l'utilisateur doit avoir accès à différent choix pour le Serial Number

 

Puis en fonction de l'Assembly Part Number je forcerais une certaine tension d'entrée.

 

Mais ceci sera fait facilement. Mon gros problème c'est d'avoir juste une énumération Serial Number dont les solutions changeront en fonction du test de l'Assembly Part Number...

 

Si quelqu'un a des idées tout sera bon à prendre.

 

Serait il plus simple de faire une sorte de fichier de configuration pour configuré comme un switch case:

 

 

ASSEMBLY PART NUMBER = 1633: Voltage Level 1 = 12.000, Voltage Level 2 = 3.300, Current Level 1 = 2.000, Current Level 2 = 2.000, SERIAL NUMBER= case1: KQGXXXX;

                   case2: KQGXXXY;

                   case3: KQGXXXZ;

 

J'ai pas beaucoup de notion de code vu mon jeune âge mais je trouverais, est ce possible de faire un truc qui ressemble à ça dès qu'on a choisi ASSEMBLY PART NUMBER? Et est ce possible de faire afficher tout ça pour que l'utilisateur puisse controler avant de lancer une execution LabVIEW?

 

Pour cette partie de mon projet je suis plutôt libre alors n'hésiter pas si vous pensez à une solution. Merci d'avance.

 

Si vous avez besoin de mes VIs LabVIEW demandez moi même si par rapport à mon problème précis vous n'aurez pas énormément d'information grâce à mes VIs.

 

Cordialement.

 

0 Compliments
Message 1 sur 7
4 031 Visites
Solution
Accepté par l'auteur du sujet Menzh

Bonjour,


Effectivement, l'idéal dans ton cas serait de faire un fichier de type INI sous le format

[16333]

Voltage Level 1 = 12.0000

Voltage Level 2 = 12.0000

Current Level 1 = 2.000

Current Level 2 = 2.000

SERIAL NUMBER= KQGXXXX;KQGXXXY;KQGXXXZ

....

Regarde les exemples de LV, ils sont bien fait 😉

 

 

Ensuite une fois que ton utilisateur a choisi le numéro d'assemblage, tu te sers du champs serial number pour remplir un menu déroulant (avec les noeuds de proprité, cf lien http://forums.ni.com/t5/Discussions-au-sujet-de-NI/Chaine-d%C3%A9roulante/td-p/3312938).

 

Cdt,

Michael

“En science, la phrase la plus excitante que l'on peut entendre, celle qui annonce des nouvelles découvertes, ce n'est pas "Eureka" mais c'est "drôle"
Isaac ASIMOV
0 Compliments
Message 2 sur 7
4 028 Visites

Je pense que ta solution est la bonne.

 

Ayant fait part de ce que je m'apprêtait à faire on m'a soufflé que l'on tapera bien le SERIAL NUMBER en entier puis je devrais déterminer le reste. Ce qui est beaucoup plus simple. Je dois donc tester les 3 premiers char de SERIAL NUMBER, si on a "KQG" je dois faire entrer "1633" dans ASSEMBLY PARTNUMBER, cette partie là ce fera donc sous un simple test IF (condition) sous LabVIEW. Puis après ça:

 

[1633]

Voltage Level 1= 12.000

Voltage Level 2= 3.300

Current Level 1= 2.000

Current Level 2= 2.000

 

Pour les exemples j'en ai vu sur le net mais je dois pas être doué avec la fonction Recherche sous LabVIEW car en tapant INI je ne trouve rien...

 

Du coup pas besoin non plus de la seconde partie puisque tout ça sera géré du fait que l'on a déjà l'information "1633" car cela est représenté par "KQG".

 

Mais merci beaucoup! En ce qui concerne le test des 3 premiers char, je vais chercher une possibilité de "diviser" le char pour tester uniquement les 3 premiers et ainsi avoir l'information direct sur l'ASSEMBLY PARTNUMBER.

 

Cordialement

 

 

0 Compliments
Message 3 sur 7
4 017 Visites

Bonjour,

QUand je te parles d'exemple, pas besoin de passer par google, tu lances labview, menu aide , recherche d'exemple.

Tu verras qu'il y a déjà une bonne base de ressource juste comme ça.


Pour ton test des 3 premiers caractères, tu as la fonction sous ensemble d'une chaîne dans la palette chaîne qui répond à ton besoin.

“En science, la phrase la plus excitante que l'on peut entendre, celle qui annonce des nouvelles découvertes, ce n'est pas "Eureka" mais c'est "drôle"
Isaac ASIMOV
0 Compliments
Message 4 sur 7
4 013 Visites

Hm, après avoir fait plus de la moitié du travail, j'ai compris que je venais de faire un truc completement inutile...

 

Puisque dans tout les cas j'aurais le code 1633 qu'après l'execution de ce que j'ai écrit... Mais ça revient au même si j'ai par exemple KQG00013 c'est seulement après execution que mon programme va me dire "tel tension, tel courant, tel type de carte" que ce soit dans une fichier INI ou non... En d'autres termes je peux utiliser un fichier INI mais je peux ne pas le faire aussi, cependant si un jour mes collègues veulent le modifier (nouveau type de carte) il est clairement préférable que tout soit dans un fichier .INI que dans le programme LabVIEW à aller modifier...

 

Enfin je ne sais pas je vais faire les 2 maintenant au point où j'en suis, qu'en pensez vous? quelle est pour vous la solution la plus confortable pour une entreprise? Avoir un test transformé en "SWITCH CASE" sous LabVIEW ou avoir un fichier ini qui fait un "SWITCH CASE"?

 

0 Compliments
Message 5 sur 7
4 011 Visites

Oui pour mon test des 3 premiers caractères c'est bien comme ça que je fais. Enfin bon dans tous les cas le problème est résolu et la solution a été donné au second poste. Merci.

0 Compliments
Message 6 sur 7
4 010 Visites

Pour un entreprise, et de manière globale, il est toujours préférable de sortir du "code" tous les paramètres pouvant être impacter à court/moyen terme, et de manière générique, restreindre autant que possible les "constantes" dans un code.


Mettre un constante dans un code est toujours à l'encontre du principe de modularité.


Cdt,

Michael

“En science, la phrase la plus excitante que l'on peut entendre, celle qui annonce des nouvelles découvertes, ce n'est pas "Eureka" mais c'est "drôle"
Isaac ASIMOV
0 Compliments
Message 7 sur 7
3 999 Visites