begin process at 2012 02 11 12:31:58
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C#

 > 

Algorithme

 > 

Compression, Split et Cryptage

 > 

Calcul du CRC16 trame Modbus


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Calcul du CRC16 trame Modbus

mercredi 20 décembre 2006 à 15:42:39 | Calcul du CRC16 trame Modbus

thmatew

Salut a tous,

G un gros probleme je travail avec des trames Modbus seul probleme je dois calculer le CRC16 g trouver des algorithmes et des trames deja faite. Malheureusement les algorithme et codes trouver ne me fournisse pas le meme résultat que celui de la trames voici un algorithme et un code:

Initialiser le CRC (registre de 16 bits)
à H'FFFF
Faire du 1er octet du message au dernier
   CRC X0R < octet > CRC
   Faire 8 fois
      Décaler le CRC d'un bit à droite
      Si le bit de sorti = 1, faire CRC X0R H'A001 CRC
   Fin faire.
Fin faire
Le CRC obtenu sera émis poids faibles d'abord, poids forts ensuite.
X0R signifie OU exclusif.

( [ Lien ] )

Auteur : VirtuA

unsignedint Crc16(unsignedchar *Adresse_tab , unsignedchar Taille_max)    
{
   unsignedint Crc = 0xFFFF; 
   unsignedint Polynome = 0xA001; 
   unsignedchar CptOctet = 0; 
   unsignedchar CptBit = 0; 
   unsignedchar Parity= 0; 
      Crc = 0xFFFF; 
      Polynome = 0xA001; // Polynôme = 2^15 + 2^13 + 2^0 = 0xA001. 

   for
( CptOctet= 0 ; CptOctet < Taille_max ; CptOctet++) 
      { 
             Crc ^= *( Adresse_tab + CptOctet); //Ou exculsif entre octet message et CRC 
      for ( CptBit = 0; CptBit <= 7 ; CptBit++) /* Mise a 0 du compteur nombre de bits */ 
            {
                 Parity= Crc; 
                 Crc >>= 1;             // Décalage a droite du crc 
                 if (Parity%2 == VRAI) Crc ^= Polynome; // Test si nombre impair -> Apres decalage à droite il y aura une retenue 
            }                     // "ou exclusif" entre le CRC et le polynome generateur. 
        } 
   return(Crc);
}
(http://www.cppfrance.com/codes/CRC-16_31553.aspx)
La trame qui a ete recu est la suivante : 0403 0002 0001 25CA
et le resultat de ce code est A043 au lieu de 25CA

Pouvez vous maider je ne trouve pas la solution a ce probleme car le calcul effectuer dans le code me parait juste.

vendredi 12 janvier 2007 à 14:59:21 | Re : Calcul du CRC16 trame Modbus

040652

Je cherche du source (C++,C#,ACCESS,VB) en Modbus/Jbus pour faire communiquer une machine automate avec un ordinateur (RS232, RS425) Merci d'avance pour votre aide ABT
mardi 27 mars 2007 à 21:30:35 | Re : Calcul du CRC16 trame Modbus

duolim

j'ai un pb depuis 30 jour pour configure une passerellemodbus pour contrôler une barrière a distance svp une aide mon hotmail hadj-miloud@hotmail.fr
mardi 27 mars 2007 à 22:25:05 | Re : Calcul du CRC16 trame Modbus

thmatew

duolim,

moi g trouver une solution et ca marche qd on c bien sen servir,
va sur [ Lien ] et telecharge l'executable en bah de page c mod102.zip et lit la doc c'est un server ActiveX et ca marche bien. En tout cas pour moi, je n'utilise qu'une carte relier par un cable serie mais ca communique bien en modbus voila j'espere que ca va t'aider.

040652,
va faire un tour y a aussi les source ca peut t'aider je pense.

Voila j'espere vous avoir bien aider.

CIAO


Cette discussion est classée dans : crc, crc16, polynome, unsignedchar, cptoctet


Répondre à ce message

Sujets en rapport avec ce message

Erreur mémoire a l'appel d'une fonction [ par dadou22 ] Bonjour tlm !J'ai besoin d'aide par rapport au message d'erreur suivant :"Attempted to read or write protected memory. This is often an indication tha


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,170 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales