Discussions au sujet de NI LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Entrée d'un sous VI

Solved!
Go to solution
Solution
Accepted by topic author seyli_yes

Sans connaître les détails de votre application, le problème me semble évident.

 

  1. Dans Litportsrs.vi, on interroge le nombre d'octets disponibles dans le buffer du port et on les lit.
  2. La boucle while de AttenteReponseMIP.vi ne comporte aucune attente et s'exécute par conséquent aussi rapidement que le processeur le permet.

Si cela fonctionne une fois, c'est que le moteur a eu le temps d'envoyer un message avant la première interrogation. Par contre, la deuxième va arriver de suite, avant que le moteur puisse renvoyer un nouveau message, et la lecture renverra logiquement une chaîne vide.

 

  1. A quelle période le moteur envoie-t-il ce message ?
  2. Qu'envoie-t-il s'il n'est plus OK ?
  3. Les messages se terminent-ils avec un caractère de terminaison ?
  4. Si non, ont-ils tous le même nombre d'octets ou comportent-ils un CRC ?

 

La meilleure méthode pour corriger l'absence de toute attente entre les interrogations dépend de la réponse à ces questions. Mais la source du problème est identifiée.

0 Kudos
Message 11 of 14
(424 Views)

Bonjour,

 

Vous avez vu juste, il s'agissait d'un problème de délai réponse/commande.

Après coup, c'est vrai qu'au vu de l'erreur en jeu, c'était plutôt évident que le problème vienne de là ... Je n'oublierai pas de faire attention à laisser un délai suffisant pour traiter les commandes maintenant.

 

En tout cas merci beaucoup pour votre aide !! C'est la première fois que je post un message sur un forum et c'est un vrai plaisir de pouvoir échanger avec des personnes bienveillantes comme ça, merci encore !

0 Kudos
Message 12 of 14
(416 Views)

A mon avis, ajouter un simple délai est une solution certes très simple mais pas suffisamment robuste. Cela laisse la porte grande ouverte à des erreurs occasionnelles. Il serait préférable de modifier la fonction de lecture des données en y intégrant une boucle d'attente de la présence des données. Et comme dit, si les messages se terminent par un caractère de terminaison, je recommande fortement d'utiliser cette fonctionnalité.

 

PS : Comme il n'y a pas de deuxième chance pour la première impression, je suis heureux s'il m'a été possible de la rendre positive !

0 Kudos
Message 13 of 14
(412 Views)

Ok merci, je vais essayer de prendre en compte votre remarque, j'ai effectivement un message de terminaison.

0 Kudos
Message 14 of 14
(409 Views)