thmatew
Messages postés68Date d'inscriptionjeudi 16 juin 2005StatutMembreDernière intervention19 janvier 2010
-
20 déc. 2006 à 15:42
thmatew
Messages postés68Date d'inscriptionjeudi 16 juin 2005StatutMembreDernière intervention19 janvier 2010
-
27 mars 2007 à 22:25
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.
( CptBit = 0; CptBit <= 7 ; CptBit++) <samp>/* Mise a 0 du compteur nombre de bits */</samp>
{
Parity= Crc;
Crc >>= 1; <samp>// Décalage a droite du crc</samp>
if
(Parity%2 == VRAI) Crc ^= Polynome; <samp>// Test si nombre impair -> Apres decalage à droite il y aura une retenue
</samp> } <samp>// "ou exclusif" entre le CRC et le polynome generateur.</samp>
}
thmatew
Messages postés68Date d'inscriptionjeudi 16 juin 2005StatutMembreDernière intervention19 janvier 2010 27 mars 2007 à 22:25
duolim,
moi g trouver une solution et ca marche qd on c bien sen servir,
va sur http://members.tripod.com/~mbserver/ 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.