Discussions au sujet de NI LabVIEW

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

VISA Write fonctionne seulement en animation

Résolu !
Accéder à la solution

Bonjour à tous,

 

Je reviens une nouvelle fois avec un nouveau problème. J'essaye actuellement de communiquer avec un débitmètre Brooks sous le S-protocole, apparemment synonyme au HART en RS485. Apès 3 mois de galère, je réussis enfin à établir quelque chose. On trouve des drivers de cet instrument mais rien ne fonctionnait. J'ai fini par éclaté les VIs du driver en les mondifiant à ma sauce d'après les quelques connaissances que j'ai pu acquérir ces 3 mois. 

 

Après avoir fait un code à ma sauce, j'arrive enfin à avoir une réponse, j'utilise énormément l'animation pour pouvoir identifier les problèmes. Ce matin, surprise, je réussi enfin à avoir une réponse, et à plus ou moins la traduire.

 

Cependant, lorsque je n'utilise plus l'animation, et donc une éxécution rapide du diagramme, mon VISA Write n'envoie plus aucun octet. J'ai d'abord cru que la commande mettant trop de temps à arriver par rapport au port COM par exemple, j'ai donc retardé la donnée, mais rien y fait. J'ai ensuite mi des indicateurs juste avant le VISA et j'ai remarqué que toutes les données (port COM, commande, cluster d'erreur) s'écrivaient bel et bien, le port sort aussi bel et bien du VISA.

 

J'ai essayé de retardé un peu toutes les données, avant, après, de 200ms à 2000ms, mais j'ai toujours aucun octet qui sort de mon VISA. Mais dès que j'active l'animation, tout va bien.

 

Auriez-vous une idée d'où cela pourrait venir?

 

Merci de votre aide.

 

Cordialement,

Tout télécharger
0 Compliments
Message 1 sur 4
2 714 Visites
Solution
Accepté par l'auteur du sujet cyprien11

Oui, tu as mal positionné ta temporisation.

Tu dois mettre tes 200 ms entre le visa "Write" et le noeud de propriété "Byte at port" 😉

 

Bonne journée,

Michael

“En science, la phrase la plus excitante que l'on peut entendre, celle qui annonce des nouvelles découvertes, ce n'est pas "Eureka" mais c'est "drôle"
Isaac ASIMOV
0 Compliments
Message 2 sur 4
2 705 Visites

Ca marche parfaitement, merci beaucoup encore une fois, il semblerait que j'ai encore beaucoup de chose à apprendre rien que la logique du code.

 

Je ne clore pas tout de suite ce poste, j'aurais peut-être quelques questions pour traduire mes réponses (ou mes ordres).

0 Compliments
Message 3 sur 4
2 702 Visites

Pour faire simple, lors de l'exécution du visa "write", tu envois la commande à ton équipement.

De manière générale, celui-ci mais environ 50ms à la traiter, et à y répondre, il faut donc que tu patientes un peu avant de chercher à relire sa réponse.


Le noeud de propriété "bytes at port" t'indiques la quantité de données présentes dans le buffer mémoire à un instant "T" , et disponible en récupération avec le Vi "visa Read", la temporisation est donc là pour laisser le temps à ton buffer de se remplir.

La difficulté par la suite en fonction des appareils est de trouver le compromis entre la réactivité de ton programme, et la vitesse de travail de ton équipement.

 

Bon courage pour la suite.

Michael

“En science, la phrase la plus excitante que l'on peut entendre, celle qui annonce des nouvelles découvertes, ce n'est pas "Eureka" mais c'est "drôle"
Isaac ASIMOV
0 Compliments
Message 4 sur 4
2 680 Visites