Discussions au sujet de NI LabVIEW

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

erreur timeout dans VISA READ

Résolu !
Accéder à la solution

Bonjour tout le monde, 

 

je suis en stage de fin d'étude et j'ai pour mission de réaliser un banc de test automatique.

Étant pas un spécialiste en Labview et en langage ASCII et que personne dans l'entreprise n'est capable aujourd'hui de répondre à ma question, je me retourne vers vous car vous êtes les seuls à pouvoir m'aider s'il vous plaît. 

 

Je dois communiquer en RS232C avec un instrument SEFELEC DMG50+ dont le DATASCHEET(page 85) se trouve en pièce jointe,  via un programme Labview que j'ai trouvé dans les exemples et qui fonctionne pas mal  (en pièce jointe aussi), SAUF QUE  au moment ou j'envoie une requête avec une répense au retour comme par exemple IDN ( *IDN? Requête normalisée), le programme renvoi une erreur timeout -1073807339. 

 

Si je comprends bien il me dit qu'il n' pas eu assez de temps pour répondre .Mais il écrit la réponse en totalité quand même ......

 

La question que je me pose. 

 

1- Pourquoi il répond alors qu'il affiche un Timeout

2- Est-ce un problème de paramètres ( pour moi tout devrait être bon ) 

3- Pouvez vous me dire si j'ai bien choisi mon contrôle de flux et le paramètres caractère XON et XOFF

 

Je vous serez très reconnaissant si quelqu'un peut m'aider à résoudre ce problème car je galère pas mal sur ce truc 

 

Merci 

Tout télécharger
0 Compliments
Message 1 sur 6
4 946 Visites

Bonjour,

 

Pour ce qui est de l'erreur de timeout que tu as (-1073807339), il s'agit effectivement d'un problème de paramètres en entrée de ta fonction VISA READ. 

 

En effet, tu as du câbler en entrée de la fonction VISA READ un nombre d'octets à lire supérieur au nombre d'octets que contient la réponse à ta requète. Du coup, ta fonction VISA READ attends jusqu'à la fin du timeout avant de renvoyer les octets lus (d'ou le fait que tu visualise quand même la réponse à ta requète malgré l'erreur).

 

Pour éviter cette erreur, je te conseille d'utiliser la fonction VISA Bytes at Serial Port pour connaître le nombre d'octets à lire et de le câbler en entrée de ta fonction VISA READ.

 

Cordialement.

0 Compliments
Message 2 sur 6
4 939 Visites

Bonjour lemaiste, 

 

je te remércie beacoup d'avoir répondu à mon méssage.

Si je comprends bien il faut que je relie le noeud de propriète à VISA read pour lui donner le nombre éxacte d'octets à lire (comme dans l'image_1 en pièce jointe).

en tout cas j'ai retourné l'instrument à l'atelier de production et je ne pourrai pas faire les éssais à l'instant même. je te tiendrai au courant  ce soir si j'ai toujours une erreur

 

Merci 

0 Compliments
Message 3 sur 6
4 927 Visites

Bonjour,

 

Oui, il faut effectivement bien relier les deux fonctions comme sur ta capture d'écran.

 

Cordialement.

0 Compliments
Message 4 sur 6
4 924 Visites

Petit complément à ma réponse précédente, il faudra peut être ajouter une temporisation entre l'écriture et la lecture afin de laisser le temps à ton instrument de répondre (afin d'avoir le bon nombre d'octets à lire en sortie de la fonction VISA Bytes at Serial Port).

 

Cordialement.

0 Compliments
Message 5 sur 6
4 918 Visites
Solution
Accepté par l'auteur du sujet AUTOO

j'ai récuperé l'instrument et avec les modificiations ça marche très bien. En ajoutant : 

 

1- La fonction (VISA Bytes at Serial Port) 

2 - La fonction attendre 

 

Le programme réponds parfaitement sans erreurs timeout 

 

Ci-joint le nouveau programme pour comparer entre le précedent. 

Merci à toi 

 

 

Message 6 sur 6
4 909 Visites