le 01-22-2020 09:47 AM
Bonjour,
J'ai fait une appli qui fait l'acquisition de données d'un hygromètre (Dew point mirror 473). J'ai construit un .exe et l'appli fonctionne correctement chez moi. Chez moi l'instrument est relié en rs232 de mon pc à l'instrument.
Le problème est lorsque je lance l'appli sur un autre pc qui n'a pas labview, mais qui a les moteurs d'execution, ni visa, ni488, ni serial. Avec un adaptateur rs232/usb pour relier l'instrument au pc. Mes données sont minorées (la lecture :22.95 --> l'affichage :22).
Chez moi l'appli m'affiche correctement 22.95 pour suivre l'exemple.
L'export excel donne les données minorées.
Une idée d'où peux venir le problème ?
Ci-joint l'appli
Merci
Dorian
Résolu ! Accéder à la solution.
01-23-2020 02:32 AM - modifié 01-23-2020 02:33 AM
Salut DarianG,
Hmm, on ne voit plus les chiffres après la virgule, à mon avis cette affaire pue l'incompréhension du "decimal point" entre tes deux PCs :
Grosso-modo, nos amis Américains et nous-mêmes n’écrivons pas les chiffres de la même manière. Là où nous on utilise un "," (une virgule) pour parler des chiffres après la virgule (comme son nom l'indique), eux utilisent un "." (un point).
Si, sur LabVIEW, tu as laissé coché la case "Use localized decimal point" (dans Tools -> Options -> Front Panel) et que les deux ordis ont des langages différents (un en anglais américain et l'autre en français par exemple), le problème vient sans aucun doute de là.
C'est à creuser. Voilà donc quelques pistes :
01-23-2020 05:50 AM - modifié 01-23-2020 05:51 AM
Salut Bilsix,
J'ai essayé les points 1 et 3 et ça n'a pas résolu le problème.
Je ne peux pas tester le point 2 pour l'instant car je n'ai pas accès à l'instrument mais qu'entends tu par soucis de conversion du string en double ? J'ai essayé de remplacer le vi de conversion en tableau par le vi Chaine décimale en nombre avec un construire tableau juste derrière (vi en PJ) mais ça ne marche pas non plus.
Je comprends pas pourquoi il me fait ça sur le nouveau pc, ça ne pourrait pas venir de l'adaptateur usb/rs232 par hasard ?
Merci,
Dorian
le 01-23-2020 08:32 AM
le 01-23-2020 09:00 AM
Bonjour Ben,
Le problème vient de l'appli elle même car mes indicateurs n'affichent pas la valeur en décimale mais en entière. (et du coup idem pour mes graphs) 😕
Dorian
le 01-23-2020 09:26 AM
01-23-2020 09:27 AM - modifié 01-23-2020 09:29 AM
Hmm, je ne pense pas que le souci vienne de l'adaptateur à titre personnel.
Si tu arrives à te connecter au port série et à lire une valeur, il n'y a aucune raison pour que tu ne lises pas la valeur entièrement.
Quand je parle de "souci de conversion de string en double", ça signifie que tu lis bien la bonne chaîne de caractère (le bon string) en sortie du VISA Read, mais que lorsque tu souhaites transformer la chaîne de caractère en valeur numérique (en double), il y a une troncature qui se fait sans qu'on le veuille parce que quelque chose nous a échappé dans ton code. Si ce n'est que ça, ça signifie que le problème n'est qu'un problème de programmation, et qu'il sera donc résolvable facilement.
Par contre, quand tu dis que tu "n'as pas accès à l'instrument", que veux-tu dire ?
Est-ce que tu peux lire une valeur sur le port série renvoyée physiquement par ton instrument ? L'hygromètre est bien branché dans tes deux tests (PC avec environnement de dev et PC avec executable) ?
Et quand tu lances l'executable sur le PC de developpement, est-ce que tout fonctionne ?
EDIT : Je viens de voir la réponse de ben64 au-dessus de la mienne. Je te conseille fortement s'essayer sa proposition pertinente avant de me répondre...
le 01-27-2020 02:01 AM
Re !
Je n'avais pas accès à l'instrument sur le moment, j'ai développé l'appli avec l'instrument "chez moi" et une fois que l'appli fonctionnait je l'ai rendu au propriétaire sauf qu'au lancement de l'appli sur son pc on s'est rendus compte du problème de virgules.
J'ai lancé l'appli sur une 3eme machine qui elle a labview 2015 et j'avais toujours des nombres entiers.
Après plusieurs tests je me suis rendu compte que l'hygromètre envoie une string du type :
"
25.2561
"
et non "25.2561"
donc lorsque je récupérais la donnée je récupérais que le premier caractère qu'il interprétais par un 0.
J'ai donc rajouté un offset de 1 et ça a résolu le problème sur la machine 2015.
Cependant 2 soucis :
L'appli plante au bout de 1min environ: plus aucun bouton ne marche et labview ne réponds plus.
Sur le pc du proprio l'acquisition ne s'éffectue même pas. Et lorsque je quitte l'appli j'ai un message d'erreur labview (Exception access violation 0xC0000005 à EIP = 0x308060F0)
.
Je ne comprend pas pourquoi les comportements sont différents d'un pc à l'autre alors que je génère un .exe, sur mon pc de développement l'appli fonctionne parfaitement avec un vi chaine de type tableur en tableur, sur le pc 2015 j'ai du mettre une chaine exp/frac en nombre avec un offset pour que ça fonctionne partiellement et sur le 3ème pc ça ne fonctionne pas.
Pour rappel les 3 machines :
Développement : Labview 2014 windows 7. Fonctionne parfaitement
Destination : Run-time engine 2014 ni-visa ni-serial windows 7 portable. Ne fonctionne pas
Test : Labview 2015. Fonctionne mais plante
Ci joint le projet labview.
01-27-2020 03:06 AM - modifié 01-27-2020 03:11 AM
la structure du programme n'est pas très "labview" ☹️
2 structures événements !
dont 1 juste avec un timeout ?
et l'autre qui ne s'exécutera qu'une seule fois car à l'extérieur de la boucle while !
le 01-27-2020 03:25 AM
Bonjour thib_fr,
Oui l'appli est pas très "labview" mais c'est ma première appli, jusqu'à maintenant j'avais juste fait des modifs dans des applis existantes, je n'ai aucune formation.
Je déduis de ton message que 2 structures évènement est une mauvaise idée (en effet l'utilisation est particulier en conséquence) qu'elle est une bonne façon de faire dans ce cas ?
Merci
Dorian