Discussions au sujet des autres produits NI

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

lecture du port serie, en boucle "OpenReadCloseVISA" .

Heu, j'ai déjà effacé le vi. Il faut cabler un tableau 1D de constantes U32 pour que ça marche. Est-ce cela qui vous manquait ? Sinon, précisez votre question.
Chilly Charly    (aka CC)
0 Compliments
Message 11 sur 23
3 856 Visites
Bonjour M. Chilly Charly,
 
Oui effectivement c'est bien là où se situe mon probleme, je n'arrive pas à cabler un tableau d'entiers de 32 bits , au descripteur de type.
 
Les valeurs de conversion sont les suivantes :  0xFFFFF == 100%     0x01000 == 0%   et   0x00000 == -0,3955%  (pour chaque valeur donnée (3 octets), les 4 derniers bits ne doivent pas etre pris en compte, c'est pour cela que j'arrondis le dernier octet en ommettant les 4 bits de poid faibles)
 
Cordialement,
 
Nicolas Jouvet
 
 
0 Compliments
Message 12 sur 23
3 832 Visites
Re-Bonjour,
 
Plus excactement, j'arrive à recréer votre VI , voir "conversion des 60 octets _ 03 .vi"
 
Mais il ne m'affiche pas du tout la meme chose que le votre sur le graphe.  ( j'ai essayé avec un graph déroulant, mais cela ne fonctionne pas non plus).  Est-ce à cause du "graph" au lieu de "waveform graph" ? 
 
 
Par ailleurs, cette conversion prend peut-etre beaucoup de place sur le diagramme du VI "Port Serial Read _60_OpenCloseVisa_05 .vi" , mais le probleme principal reste que les boucles While défillent trop vite, sauf si je mets tout dans une seule boucle, comme initialement.
 
 
Cordialement,
 
Nicolas Jouvet
 
 
 
 
 
Tout télécharger
0 Compliments
Message 13 sur 23
3 828 Visites


nicolas jouvet a écrit: ...Plus excactement, j'arrive à recréer votre VI , voir "conversion des 60 octets _ 03 .vi". Mais il ne m'affiche pas du tout la meme chose que le votre sur le graphe.  ( j'ai essayé avec un graph déroulant, mais cela ne fonctionne pas non plus).  Est-ce à cause du "graph" au lieu de "waveform graph" ? 
Vous avez fait une erreur : la constante utilisée pour "Initialise Array" doit être un U8 et non un I32. Les points rouges (cohercion dots, en entrée de la fonction "Interleave1D arrays" auraient dû vous alerter !
Je verrais plus tard votre problème de "vitesse"
Chilly Charly    (aka CC)
0 Compliments
Message 14 sur 23
3 825 Visites
Oui effectivement j'avais bien vu les petits points rouge qui auraient du m'alerter, mais je ne savais pas à quoi cela correspondait.
 
J'ai changer la constante utilisée pour "Initialise Array" en U8 (au lieu d'initialement I32), mais cela ne change rien. cf VI joint.
 
Cordialement.
 
Nicolas Jouvet
 
 
0 Compliments
Message 15 sur 23
3 818 Visites
Il y a une deuxième erreur dans votre implémentation : vous avez laissé la chaine de caractères en mode d'affichage normal, au lieu de la configurer en affichage hexadécimal. Ceci a évidemment des conséquences !
 
Voici une version corrigée du vi, qui intègre d'une part un bit shift pour éliminer les bits de poids faible du troisième octet, d'autre part la conversion de gamme. Il semble d'ailleurs qu'il y ait une erreur dans les valeurs fournies : pour 0x00000, il faudrait obtenir -0.39216 %, si l'échelle est linéaire. Mais peut-être n'est-ce pas le cas ?


Message Edité par chilly charly le 11-19-2007 04:21 PM
Chilly Charly    (aka CC)
Tout télécharger
0 Compliments
Message 16 sur 23
3 818 Visites

Mille et un merci à vous, cher Chilly Charly.

Cela fonctionne correctement à présent.

La valeur -0,3955% est donnée dans la doc du DSP (DDC114 de chez BurrBrown), mais effectivement, si l'échelle est linéaire, ce qui est censé etre le cas, alors cette valeur devrait etre -0,392157%.

Avec cette manière de convertir, il n'y a plus de probleme.

 

Encore merci,

Bonne continuation,

 

Cordialement,

 

Nicolas Jouvet

 

0 Compliments
Message 17 sur 23
3 803 Visites
On peut même faire encore plus compact en évitant l'initialisation d'un tableau à zéro (astuce proposée par Altenbach du CalTech)
 


Message Edité par chilly charly le 11-19-2007 05:13 PM
Chilly Charly    (aka CC)
0 Compliments
Message 18 sur 23
3 802 Visites
ah non !!!
 
j'ai parlé trop vite !!
 
cela ne fonctionne pas tout le temps ...   j'ai réussit à faire tourner correctement le VI que deux fois (non consécutives).
 
 
apparemment, si Labview ne reconnait pas le port série, la boucle du VI se met à tourner rapidement, le nombre d'iterrations croit très rapidement.  (comme le probleme précédemment exposé).
 
 
Mais ça a fonctionner 2 fois correctement : une iterration par lecture des 60 octets.
 
 
 
Sur ce ,
 
Bonne soirée.
 
 
Nicolas Jouvet
 
 
0 Compliments
Message 19 sur 23
3 795 Visites

avec le VI , ça peut aider.

 

 

0 Compliments
Message 20 sur 23
3 794 Visites