Discussions au sujet des autres produits NI

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

utilisation d'un switch case

Résolu !
Accéder à la solution

Bonjour,

J'ai developpé un vi permettant de convertir une tension en température à l'aide de la boite de calcul. Le problème lorsque je rentre mes valeurs et que je lance mon vi, l'application tourne indéfiniment (je place mon vi pour que vous puissiez mieux comprendre). Je pense que mon problème vient du switch case mais il doit y avoir encore d'autres facteurs qui jouent un rôle. J'ai essayer beaucoup de chose pour remédier au problème mais rien ne s'est révélé correcte.

Pourriez vous m'aider à y voir plus clair ou bien m'aider à trouver une solution pour développer un vi similaire sans passer par la boite de calcul.

Je vous remercie par avance pour votre aide.

 

Cordialement.

0 Compliments
Message 1 sur 12
5 916 Visites

en effet il semble que tu ne sache pas te servir du Switch / Case. Il s'utilise comme le switch/case standard du C....

 

L'instruction switch

L'instruction switch permet de faire plusieurs tests de valeurs sur le contenu d'une même variable. Ce branchement conditionnel simplifie beaucoup le test de plusieurs valeurs d'une variable, car cette opération aurait été compliquée (mais possible) avec des if imbriqués. Sa syntaxe est la suivante :

switch (Variable) {

case Valeur1 :
Liste d'instructions;

break;

case Valeur2 :
Liste d'instructions;

break;

case Valeurs... :
Liste d'instructions;

break;

default:

Liste d'instructions;

}

 

0 Compliments
Message 2 sur 12
5 913 Visites

Bonjour Marylou,

En regardant ton vi, je me pose déjà 2 questions.

Pourquoi faire un switch case, alors qu'un if/else suffit? Surtout que pour le case, il faut des valeurs et pas des comparaisons

Il ne faut pas oublier qu'il faut du code simple dans les boîtes de calcul.

La 2eme, pourquoi faire une boucle while, et surtout un tel algorithme alors que t'as LabVIEW pour coder ca simplement? Il suffirait d'utiliser la boite de calcul juste pour les calculs justement, donc pour le calcul de Vcal.

Sinon si ca tourne indefiniment, c'est peut être que ta condition d'arret n'est jamais atteinte, je te conseille de réaliser ce code en LabVIEW (des boites if et while a mettre, je pense que c'est pas trop long), ce qui te permettra de vérifier les valeurs de tes paramètres et donc de voir si tu arrives bien à la condition d'arret

 

0 Compliments
Message 3 sur 12
5 919 Visites

Salut Marylou,

Je suis d'accord avec Mioumiou et SmileBoB: tu n'as pas besoin de la structure switch et tu ne sais pas t'en servir correctement.

De plus ton algorithme est brouillon je te conseille de le revoir attentivement.

 

Generalement on utilise une boucle while quand on ne sait pas combien d'iteration le code a l'interieur de la boucle doit effectuer. On doit aussi imperativement mettre une condition de fin qui puisse se realiser sinon on plante son programme.

 

J'ai essaye de coder ton algorithme en labview.

 

Bon courage et bon travail!

 

Charly

Message Edité par CharlyStardust le 01-27-2009 12:50 PM
It's always sunny in California! Certified LabVIEW Associate Developer!
0 Compliments
Message 4 sur 12
5 899 Visites

hello,

une petite question bete t'es sur de ton equation : 630^ 8=24815578026752100000000...

 

good bye Marylou :smileywink:

 

@+  

Tinnitus

 

CLAD / Labview 2011, Win Xp
------------------------------------------------------
Mission d'une semaine- à plusieurs mois laissez moi un MP...
RP et Midi-pyrénées .Km+++ si possibilité de télétravail

Kudos always accepted / Les petits clicks jaunes sont toujours appréciés
Don't forget to valid a good answer / pensez à valider une réponse correcte
0 Compliments
Message 5 sur 12
5 894 Visites
Solution
Accepté par l'auteur du sujet Marylou

salut Marylou,

 

Regarde le VI ci joint, ce sera plus facil à débugger si il y a une erreur, les boucles et switch sont en labview.

 

Smiley tirant la langue

 

Si tu utilise les boites de calcul avec beaucoup de C je te conseille de tester ton programme en C d'abord car sinon s'il n 'y a pas une erreur de syntaxe bonne chance pour trouver l'erreur.

Greg S.
CNRS
LV 7.1 8.2 8.6 2009 2011 2012 2013 2014
LPMC - CNRS
N'oubliez pas de complimenter cela fait toujours plaisir.
Message 6 sur 12
5 880 Visites

Greg et Charly merci pour vos deux vi, je vais les comparer avec celui que j'ai réalisé hier après-midi. Il est vrai que j'ai voulu recopier le code de l'ancien système mais il s'est avéré plus simple de le coder avec les fonctions labview suite au conseil de miou miou. Merci encore.

Pour Tinnitus, je suis sure de l'équation elle est tiré de la norme des thermocouples bien qu'au début je t'avoue que ca m'a paru bizarre vu le gigantesque chiffre que ca donnait. Pourquoi toi tu as autre chose?

 

Merci vous tous.

0 Compliments
Message 7 sur 12
5 877 Visites

J'ai un petit soucis y aura t'il la possibilité de me convertir le vi en 8.5, je n'ai pas encore installé la 8.6. Tinnitus va encore rigoler.

 

Merci

0 Compliments
Message 8 sur 12
5 876 Visites

Mais non, mais non, je sais , c est la faute de ton chef qui l a enfermee a double tour dans son bureau

et a jete la cle au fond du puits... :smileysurprised::smileywink::smileyvery-happy:

 

a+

 Tinnitus

 

CLAD / Labview 2011, Win Xp
------------------------------------------------------
Mission d'une semaine- à plusieurs mois laissez moi un MP...
RP et Midi-pyrénées .Km+++ si possibilité de télétravail

Kudos always accepted / Les petits clicks jaunes sont toujours appréciés
Don't forget to valid a good answer / pensez à valider une réponse correcte
0 Compliments
Message 9 sur 12
5 866 Visites

Quelques pistes pour la conversion

 

Si j'ai a peu pres compris tu utilises la fonction de Transfere T°->uV  pour a partir d'une Tension donnée retrouver la T°, non ?

 

je te joint un vi qui utilise quelques fonctions integres P(x) et le calcul de racine pour retrouver la T°

j'ai pas saisi tout ton bloc de calcul , tu fais la somme de deux Polynome , et k = 630 je vois pas...

 

dans l'exemple 5000uV dans y renvoie 576°C.... 

 

Si ce n'est plus une resolution de polynome, on pourrait aussi faire une dichotomie, parceque la recherche pas à pas ça va te prendre un temps phenomenal,

Pour aujourd'hui c'est bien déja ...

 

entre celui ci et les autres vi y a de la synthese dans l'air  

 

@+

Tinnitus

 

 

 

 

CLAD / Labview 2011, Win Xp
------------------------------------------------------
Mission d'une semaine- à plusieurs mois laissez moi un MP...
RP et Midi-pyrénées .Km+++ si possibilité de télétravail

Kudos always accepted / Les petits clicks jaunes sont toujours appréciés
Don't forget to valid a good answer / pensez à valider une réponse correcte
Message 10 sur 12
5 847 Visites