le 05-07-2013 04:46 AM
Bonjour,
J'ai des erreur au niveau de mon visa write. J'ai tout tenté pour essayé de corriger ca mettre des delay afin de régler un éventuel souci de Timeout, le nombre d'octet lus j'ai mi par exemple 8 alors que j'en lis 4 au cas ou. Bref je sature étant donné que mon programme est bon je ne comprends pas comment on peut corriger cette erreur. Si quelqu'un a une idée.
Cordialement.
le 05-07-2013 07:11 AM
Bonjour
Pour vous aider il nous faudrait plus d'information.
Le code de l'erreur, le VI de dialogue, la nature de l'appareil , ect...
La version de LV
Salutations
EricC
le 05-21-2013 05:10 AM
Bonjour, désolé du retard je n'avais pas vu votre réponse.
Donc je suis sous Labview 12. Code d'erreur au niveau du Write -1073807339. Je communique via une interface GPIB/USB avec un flash tester 5300. Je communique une fois sur 3 je comprends pas pourquoi. C'est mon projet de licence du coup ca me fait perdre enormement de temps. J'ai tenté de mettre des sondes, reduire le nombre d'octet, mettre des delay pour le timeout entre le write et read mais rien y fait. Si vous avez une solution rapidement je l'ai mi en piece jointe.
Cordialement.
le 05-21-2013 05:26 AM
Bonjour
L'erreur Write -1073807339 est une erreur de timeout. Le délais est trops long.
En lisant votre code il me vient une interrogation.
Je ne suis pas familiarisée avec le GPIB, mais le VISA série ou tcp/ip ne permet pas l'utilisation en parallèle.
Une ressource visa est à accès unique.
Pour utiliser cette ressouce à partir de taches parallèles vous devez vous assurez que les autres tâches ne l'utilise pas.
Dans votre cas, le plus simple et de mettre les commandes dans une machine d'état (i non reentrant par défaut) et vous aurrez une gestion correcte des accès parallèle.
De plus dans certaine de vos conditions, vous ouvrer la ressource VISA, ne faite rien puis fermer la ressource. A PROSCRIRE.
Si vous ne faite rien, ne l'ouvrez pas innutilement.
De plus de code type :
For
ouvrire visa
action visa
fermer visa
Next
est infiniement plus long et gourmand en ressouces que
ouvrir visa
for
action visa
next
fermer visa
Nota : je vous join un exemple de code de type producteur / consommateur, ce type de modèle me semble plus simple et empèche les accès parallèles.
le 05-21-2013 05:40 AM
Je vous remercie pour votre réponse aussi rapide. J'ai débuté Labview cette année donc je ne vous cache pas que je n'ai pas saisi toute votre explication. Je vais regarder votre exemple et reviendrait si j'ai d'autres questions. Sinon pour les visa que je n'utilise pas c'est parce que j'ai mis des bouton comme vous l'avez vu qui me permettent de choisir l'action que je souhaite faire quand je veux. Moi si possible j'aimerais utilisé chaque mode séparement c'est a dire lancer le remote par exemple sans que tout le reste du programme se mette en route par la suite. Et cela de meme pour tous. Voyez vous ce que je veux dire ? Car je ne sais pas trop si c'est ce que j'ai appliqué.
Cordialement.
le 05-21-2013 07:05 AM
Bonjour
Oui je comprend.
Avec le VISA, l'idée est de ne sourtout pas lancer deux actions en même temps.
En effet, vous aurez souvent une réponse. Mais avec deux questions en parallèle. Il vas être délicat de savoir si la réponse correspond à la 1ere ou à la 2eme questions.
N'hésitez pas à regarder les modèles de programmation sous LV. ils sont très pertinents.
Salutations
EricC
le 05-21-2013 08:54 AM
J'ai regardé votre exemple mais je n'arrive pas à lancer plusieurs modes séparement. J'ai créé 3 actions. Le programme m'indique qu'il n'y a pas d'erreur mais seule l'ACTION 1 se met en route. Les deux autres non.
Et pour les visa y aurait il une methode differente de communication tout en restant en rapport avec le GPIB ?
Cordialement.
le 05-21-2013 01:11 PM
bonsoir
dans votre code vous demander systématiquement 64000 octets or si ce nombre d'octet n'arrive pas, vous passez alors en timeout
je pense que votre erreur vient de la vous demandez trops d'information
sur du visa série il est possible de savoir le nombre d'octet en attente de lecture.
en gpib, si cette fonctione n'est pas dispo vous devez mieux sélectionner le nombre d'octet ou si possible utiliser un caractère de fin.
si join un exemple de code remis en forme
Salutations
EricC
le 05-22-2013 03:50 AM
Bonjour,
Un grand merci pour votre réponse et le temps que vous avez du y passer. Vous venez de simplifier mon programme en le rendant plus lisible.
J'avais corriger le soucis d'octet mais apparement je vous ai envoyé la sauvegarde précédente. J'aimerais savoir le nombre d'octet, je rentre le nombre d'octet envoyé ou lu ? Je tourne en général a 5 voir 6 octets.
Et je ne comprends pas votre fichier action. Je vois qu'il y une sorte de curseur avec mes différents modes mais je l'utlise comment ?
Cordialement.
le 05-22-2013 04:18 AM
Bonjour
les fichiers *.ctl sont des modèles de données avec 3 options
- commande : une fois déposé sur le vi il n'y a plus de lien (le model est copié)
- type def : une fois déposé sur le vi, on peut changer l'apparence mais pas la nature (type de donnée). Un lien est conservé avec le ficheir ctl. Si celui-ci est misà jours, toutes les copies sont mises à jour
- stric type def : comme type def, mais l'apparence ne peut pas change.
action.ctl correspond à la constante qui initialise la fifo.
Modifier action.ctl permet de mettre à jour toutes les constantes automatiquement
Sans le model type def, chaque ajout à la constante créerait des noeud de coertition (puce rouge) - des conversions automatiques gourmandes en ressources - d'ou un code non a jour et source d'erreur lors de la relecture
Salutations
EricC