Bonjour, cliquez-ici pour vous inscrire et participer au forum.
  • Login:


+ Répondre à la discussion
Page 1 sur 2 1 DernièreDernière
Affichage des résultats 1 à 15 sur 22

rs232 and checksum

  1. Xman_fr

    Date d'inscription
    juin 2006
    Âge
    30
    Messages
    16

    rs232 and checksum

    Bonjour

    Je suis entrain de faire un programme pour obtenir la valeur d’un balance apartir de port série la commande de ce balance est comme suite :

    <STX><DONNEes(longueur variable)><CHECKSUM(2 bytes)><CR><LF>

    mais j’ai pas comprend cette partie de la commande :
    est ce qu’il y a quelqu’un qui m’expliquer cette partie
     


    • Publicité




      Poursuivez votre recherche
      Recherche personnalisée

  2. domlefebvre

    Date d'inscription
    mai 2005
    Localisation
    Voisins le bretonneux (78)
    Âge
    54
    Messages
    701

    Re : rs232 and checksum

    Citation Envoyé par Xman_fr
    Bonjour

    Je suis entrain de faire un programme pour obtenir la valeur d’un balance apartir de port série la commande de ce balance est comme suite :

    <STX><DONNEes(longueur variable)><CHECKSUM(2 bytes)><CR><LF>

    mais j’ai pas comprend cette partie de la commande :
    est ce qu’il y a quelqu’un qui m’expliquer cette partie
    Bonjour,
    Donc tu essais de récupérer un message indiquant un poids (sans doute) depuis une balance par RS232 (ce ne serait pas une Mettler par hasard?).
    Le checksum est un nombre construit à partir des octets précédants du message, en général le STX et ta zone DONNEES. Il est calculé en général par un XOR sur tous les octets. Il sert au récepteur à contrôler que le message reçu est bien celui émis par l'émetteur, parce que les liaisons RS232 peuvent être bruitées et donc transmettre des erreurs.
    Voilà pour le général. Pour le particulier, le mode de calcul de ton Cheksum doit figuré dans la documentation de ta balance (il est probable que ce soit un XOR mais il vaut mieux vérifier!).
     

  3. Xman_fr

    Date d'inscription
    juin 2006
    Âge
    30
    Messages
    16

    Re : rs232 and checksum

    merci
    voila c'il y a dans la documentation :
    "le checksum sera le résultat d'un OU exclusif de tous les bytes précédents le checksum ( y compris le caractère début de trame <STX> si validé dans les paramètres "communication" et du nombre de bytes du mesage . les caractères <CR> et <LF> ne sont pas intégrés dans ce calcule ( il son situés aprés le checksum).
    le résultat est divisé en 2 bytes ; a chacun des bytes, on ajoute 0X30"
    mano je veux savoir le trame que je vais envoyer
     

  4. domlefebvre

    Date d'inscription
    mai 2005
    Localisation
    Voisins le bretonneux (78)
    Âge
    54
    Messages
    701

    Re : rs232 and checksum

    Citation Envoyé par Xman_fr
    merci
    voila c'il y a dans la documentation :
    "le checksum sera le résultat d'un OU exclusif de tous les bytes précédents le checksum ( y compris le caractère début de trame <STX> si validé dans les paramètres "communication" et du nombre de bytes du mesage . les caractères <CR> et <LF> ne sont pas intégrés dans ce calcule ( il son situés aprés le checksum).
    le résultat est divisé en 2 bytes ; a chacun des bytes, on ajoute 0X30"
    mano je veux savoir le trame que je vais envoyer
    c'est ce que je t'avais répondu (OU exclusif = XOR).

    Pour calculer ton checksum, tu dois programmer une boucle qui parcourt ton buffer de message en partant du STX jusqu'au dernier octet de données. Dans cette boucle tu fais un XOR comme ça : CHECKSUM = CHECKSUM XOR Buffer[i]. Pense à initialiser à 0 CHECKSUM avant ta boucle.
    Ensuite, il faut décomposer ton CHECKSUM en deux octets, en séparant l'octet de poids fort et l'octet de poids faible. Si l'octet de poids fort est nul (CHECKSUM <= 255), donne lui la valeur 0x30 (espace).
     

  5. Xman_fr

    Date d'inscription
    juin 2006
    Âge
    30
    Messages
    16

    Wink Re : rs232 and checksum

    désolé car je suis débutant ,
    est ce que tu peux m'envoie la trame que je vais l'envoie.
    par exemple : mscomm1.output = "<STX><CRLF>"
    et merci beaucoup
     

  6. domlefebvre

    Date d'inscription
    mai 2005
    Localisation
    Voisins le bretonneux (78)
    Âge
    54
    Messages
    701

    Re : rs232 and checksum

    Citation Envoyé par Xman_fr
    désolé car je suis débutant ,
    est ce que tu peux m'envoie la trame que je vais l'envoie.
    par exemple : mscomm1.output = "<STX><CRLF>"
    et merci beaucoup
    Dans ton exemple, la zone de données est vide. le checksum portera donc uniquement sur le <STX>.
    La trame à envoyer sera donc:
    <STX><CHECKSUM1><CHECKSUM2><CR ><LF>
    où CHECKSUM1 = 0x30 (car CHECKSUM2 < 255) et CHECKSUM2 = 0 XOR <STX> = <STX>
     


    • Publicité



  7. umfred

    Date d'inscription
    mars 2006
    Âge
    33
    Messages
    1 344

    Re : rs232 and checksum

    à mon avis le checksum est calculé sur un octet, puis l'octet est séparé en deux pour pouvoir être transmis sous forme ASCII.
    par exemple si le CHECKSUM à la fin du calcul vaut 0x24 (en hexadécimal) alors CHECKSUM1 = 0x32= "2" et CHECKSUM2 = 0x34 = "4".

    Donc pour ton exemple de trame vide:
    mscomm1.output=<STX><CHECKSUM1 ><CHECKSUM2><CR ><LF>
    ça donnerai:
    mscomm1.output = chr(0x02) & chr(0x30) & chr(0x32) & chr(0x0D) & chr(0x0A)
    car:
    <STX> = chr(0x02)
    CHECKSUM1 = chr(0x30)
    CHECKSUM2 = chr(0x32)
    <CR> = chr(0x0D)
    <LF> = chr(0x0A)

    Remarque: le caractère <espace> a pour code ASCII 0x20; 0x30 correspodant à "0".
     

  8. domlefebvre

    Date d'inscription
    mai 2005
    Localisation
    Voisins le bretonneux (78)
    Âge
    54
    Messages
    701

    Re : rs232 and checksum

    A relire la notice indiquée par Xman, tu as sans doute raison!
    Et oui, autant pour moi, l'espace c'est 0x20...
     

  9. Xman_fr

    Date d'inscription
    juin 2006
    Âge
    30
    Messages
    16

    Re : rs232 and checksum

    Merci beaucoup ...
    j'ai envoie
    MSComm1.Output ="<STX><CHECKSUM1 ><CHECKSUM2><CR><LF>"
    et
    MSComm1.Output = "chr(0x02) & chr(0x30) & chr(0x32) & chr(0x0D) & chr(0x0A)"
    mais j'ai aucun réponse
     

  10. umfred

    Date d'inscription
    mars 2006
    Âge
    33
    Messages
    1 344

    Re : rs232 and checksum

    Normal tu n'envoie aucune commande à ta balance.
    Les commandes doivent être décrites dans le manuel avec la trame de réponse associée.

    On t'a juste expliqué comment calculer et mettre en forme le cheksum pour l'envoyer.
     


    • Publicité



  11. Xman_fr

    Date d'inscription
    juin 2006
    Âge
    30
    Messages
    16

    Thumbs up Re : rs232 and checksum

    bonjour
    voila j'ai la trame suivante :
    <STX><$><2><4><CR><LF>
    comment je peux envoie cette trame ??
     

  12. domlefebvre

    Date d'inscription
    mai 2005
    Localisation
    Voisins le bretonneux (78)
    Âge
    54
    Messages
    701

    Re : rs232 and checksum

    Citation Envoyé par Xman_fr
    bonjour
    voila j'ai la trame suivante :
    <STX><$><2><4><CR><LF>
    comment je peux envoie cette trame ??
    Bonjour,

    Il faut tu commences par composer ta trame en concatenant les caractères STX, $, 2 et 4 (avec des + en basic).

    Puis tu calcules le check sum comme indiqué précédement. Tu obtiens 2 caratères que tu concatènes avec la trame construite.
    Enfin tu ajoutes CR et LF à la fin de ta trame et tu l'envoies...

    Tu vas avoir qq chose comme:
    trame = STX+$+2+4+CS1+CS2+CR+LF
    vérifie la syntaxe, je ne suis pas un pro de basic...
     

  13. umfred

    Date d'inscription
    mars 2006
    Âge
    33
    Messages
    1 344

    Re : rs232 and checksum

    A mon avis, domlefebvre, le <2> et le <4> sont les checksums calculés (et dans ce cas là il y a une erreur de calcul car "STX" xor "$"=0x02 xor 0x24 =0x26, et donc ca serait <2> et <6> qu'il faudrait envoyer )

    @Xman_fr: pourrai tu nous donner la référence de ta balance, on pourra t'aider plus facilement pour ta commande
     

  14. Xman_fr

    Date d'inscription
    juin 2006
    Âge
    30
    Messages
    16

    Re : rs232 and checksum

    Bonjour
    c'est la marque EXA
    model: CYBER(III)
    de la société GROUP EPELSA.SL.
    j'ai envoie la trame "STX$24" et j'ai obtenu une chaine de caractaire comme "┐w1" et dans l'indicateur j'ai 760 Kg
     


    • Publicité



  15. domlefebvre

    Date d'inscription
    mai 2005
    Localisation
    Voisins le bretonneux (78)
    Âge
    54
    Messages
    701

    Re : rs232 and checksum

    Citation Envoyé par umfred
    A mon avis, domlefebvre, le <2> et le <4> sont les checksums calculés
    Tu crois? Parce que dans ce cas, aucune commande n'est envoyée à la balance! le STX marque le début de trame et le CRLF la fin de trame. Donc pas d'octet de commande! Curieux...
     


Poursuivez votre recherche :




Sur le même thème :




 

Discussions similaires

  1. Rs232
    Par felix39 dans le forum Électronique
    Réponses: 5
    Dernier message: 11/12/2007, 20h37
  2. Rs232
    Par souma29 dans le forum Logiciel - Software - Open Source
    Réponses: 0
    Dernier message: 25/01/2007, 23h52
  3. Calcul Checksum pour Transfert RS232
    Par PatrickS77 dans le forum Matériel - Hardware
    Réponses: 1
    Dernier message: 30/08/2006, 19h40
  4. 1-wire et RS232
    Par CAMIRO dans le forum Électronique
    Réponses: 1
    Dernier message: 02/06/2006, 11h32
  5. rs232-cl
    Par drinded 56 dans le forum Électronique
    Réponses: 1
    Dernier message: 18/01/2004, 22h32


Les tags pour cette discussion