le 01-27-2009 04:40 AM
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.
Résolu ! Accéder à la solution.
le 01-27-2009 05:05 AM
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 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;
}
le 01-27-2009 05:10 AM
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
01-27-2009 02:49 PM - modifié 01-27-2009 02:50 PM
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
le 01-27-2009 03:31 PM
hello,
une petite question bete t'es sur de ton equation : 630^ 8=24815578026752100000000...
@+
Tinnitus
le 01-28-2009 01:13 AM
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.
![]()
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.
le 01-28-2009 02:20 AM
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.
le 01-28-2009 02:23 AM
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
le 01-28-2009 03:05 AM
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... 


a+
Tinnitus
le 01-28-2009 07:34 AM
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