Discussions au sujet de NI LabVIEW

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

Problèmes plusieurs trames RS232

Résolu !
Accéder à la solution

Bonjour,

Merci pour ta réponse, Je t'explique..

Le but: Communiquer avec un banc qui date des années 1999.
Je n'ai aucun documents j'ai du tout comprendre et chercher seule. 

Le code de base est en code entierement en C/C++ mais il est completement beuggé..

Du coup j'ai du lancer le code beuggé et espionner la trame (car des fois cela marche). J'ai donc récuperer une trame comme celle que je viens de t'envoyer avec les caractéristiques données (nbre cycle, etc..).

Cependant en appelant le constructeur du controleur j'ai pu avoir un semblant de VI ! Celui de la traduction RS232 (celui ou tu m'as dit que le code était brouillon ahah). Bref j'ai repris ce code (en faisant deux trois modifs quand meme moins lourdes que celui de base).  et ca a marché j'ai retourvé les bonnes trames.

Le probleme ne vient donc pas de la mais du fait que j'envoie bien 4 trames au lieux d'une seule au controleur. 

Et le choux blanc ... j'ai fait une machine d'états (celle que je t'ai envoyé, rien n'y fait..), j'ai fait une structure séquence déroulé rien n'y fait ... 

Je n'ai plus trop d'idées... 
En gros ce que j'ai pu analyser de la trame, c'est:
if (ParamLen == 2) {
ParamWrite[0] = 0x7;
/* rs485=0 pour essai*/
ParamWrite[1] = 0;
ParamWrite[2] = 0x2;
ParamWrite[3] = address & 0xff;
ParamWrite[4] = (address & (int)0xff00) / 0x100;
ParamWrite[5] = (int)(value & 0xffL);
ParamWrite[6] = (int)((value & 0xffffff00L) / 0x100L);
sumcheck = 0;
i = 0;
while (i <= 6) {
sumcheck += ParamWrite[i];
i++;
}
ParamWrite[7] = sumcheck & 0xff;
}
else {
ParamWrite[0] = 0x9;
/*RS485=0 pour essai*/
ParamWrite[1] = 0;
ParamWrite[2] = 0x2;
ParamWrite[3] = address & 0xff;
ParamWrite[4] = (address & (int)0xff00) / 0x100;
ParamWrite[5] = (int)(value & 0xffL);
ParamWrite[6] = (int)((value & 0xffffff00L) / 0x100L);
ParamWrite[7] = (int)((value & 0xff0000L) / 0x10000L);
ParamWrite[8] = (int)((value & 0xff000000L) / 0x1000000L);
sumcheck = 0;
i = 0;
while (i <= 😎 {
sumcheck += ParamWrite[i];
i++;
}
ParamWrite[9] = sumcheck & 0xff;
}

ce que j'ai essaye de traduire en LabVIEW...

0 Compliments
Message 11 sur 17
1 715 Visites

Bon,

 

J'ai remis un peu d'ordre dans ton main, avec une remarque critique à prendre en compte (cf commentaire dans le code).

 

Sinon j'ai revu ta mise en forme de trame, et d'après le code C fourni, pour moi la traduction en labview correspond au code en pièce jointe, par contre, les trames exemples fournis ne respecte pas toute cette règle c'est bizarre.

 

 

“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
Tout télécharger
0 Compliments
Message 12 sur 17
1 713 Visites

Mouarf,je viens de trouver 😄

 

Par réflexion, je considérais ton sous vi comme une FGV, et donc boucle while en unitaire.

Or là tu as mis un critère de répétition de ta boucle, qui comme de pas hasard, renvoit la trame jusqu'à 4 fois en cas de non réponse de ton produit.


Ton problème vient de là, tu as un souci dans ta condition d'arrêt de la boucle.


Met une constate true directement sur le terminal d'arrêt de la boucle while, et tu auras bien le  bon nombre de trame envoyé au produit.

 

FAit le test avec ce sous-vi.

 

“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
Message 13 sur 17
1 713 Visites

Effectivement cela me parait être une bonne suggestion ! 😉

 

Je vais au banc tester cela dessuite et je te tiens au courant ! 

Si je reviens pas d'ici deux heures c'est qu'il m'a explosé dessus 😛

ahah

Mais merci !! je reviens 

0 Compliments
Message 14 sur 17
1 707 Visites

Bon le banc n'a pas explosé mais c'est pas gagné !

C'est bon j'ai une seule trame qui s'affiche à l'oscilloscope par contre il faut que je modifie le code car j'ai pas du tout les bonnes trames ! 😕

Je refais le code lundi et je te tiens au courant ! 

merci beaucoup et bon weekend 🙂

0 Compliments
Message 15 sur 17
1 703 Visites
Solution
Accepté par l'auteur du sujet llllSSSS

bonjour ! 

ALors voila ! 

J'ai modifier le code, avec te conseils et un peu de calculs savnts pour avoir les bonnes trames et .... *suspens*

Ca marche !! 🙂 

Je mets le code en PJ pour ceux que ca interessent. 

Et merci encore Michael pour ton aide ! 🙂

Bonne semaine 🙂

Tout télécharger
0 Compliments
Message 16 sur 17
1 680 Visites

Cool.

Félicitation, bon courage pour la suite.

“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
Message 17 sur 17
1 629 Visites