Discussions au sujet de NI LabVIEW

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

write visa erreur

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.

0 Compliments
Message 1 sur 24
3 710 Visites

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

Ingénieur d'Application / Développeur LabVIEW Certifié (CLD)
Application Engineer / LabVIEW Certified Developer (CLD)
0 Compliments
Message 2 sur 24
3 703 Visites

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.

0 Compliments
Message 3 sur 24
3 658 Visites

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.

Ingénieur d'Application / Développeur LabVIEW Certifié (CLD)
Application Engineer / LabVIEW Certified Developer (CLD)
0 Compliments
Message 4 sur 24
3 654 Visites

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.

0 Compliments
Message 5 sur 24
3 645 Visites

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

Ingénieur d'Application / Développeur LabVIEW Certifié (CLD)
Application Engineer / LabVIEW Certified Developer (CLD)
0 Compliments
Message 6 sur 24
3 636 Visites

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.

0 Compliments
Message 7 sur 24
3 632 Visites

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

Ingénieur d'Application / Développeur LabVIEW Certifié (CLD)
Application Engineer / LabVIEW Certified Developer (CLD)
Tout télécharger
0 Compliments
Message 8 sur 24
3 624 Visites

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.

0 Compliments
Message 9 sur 24
3 616 Visites

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

Ingénieur d'Application / Développeur LabVIEW Certifié (CLD)
Application Engineer / LabVIEW Certified Developer (CLD)
0 Compliments
Message 10 sur 24
3 611 Visites