Télécharger Imprimer la page

LOVATO ELECTRIC LRE P00 Mode D'emploi page 4

Module de communication avec protocole modbus
Masquer les pouces Voir aussi pour LRE P00:

Publicité

4
1.6 CMS (Checksum et définition timeout)
1.6.1. CONTROLE CRC
Le code de contrôle CRC comprend l'intervalle qui va de l'Adresse Esclave jusqu'à la fin des données. Voici la méthode de calcul :
(1) Chargez un registre à 16 bits avec FFFF hexa (tous 1). Nommez-le registre CRC.
(2) Exécutez l'OR exclusif entre le premier octet (8 bits) du message et l'octet le moins significatif (LSB) du registre CRC à 16 bits, chargez le
résultat dans le CRC.
(3) Faites glisser le registre CRC d'un bit à droite (vers l'octet LSB), en remplissant de zéros l'octet le plus significatif (MSB), extrayez et
examinez le LSB.
(4) (Si l'octet LSB est 0) : répétez les passages (3) (une autre translation)
(Si l'octet LSB est 1): exécutez l'OR exclusif entre le registre CRC et la valeur du polynôme A001 hexa (1010 0000 0000 0001).
(5) Répétez les passages (3) et (4) pour exécuter 8 translations. Au terme, le système élaborera un octet complet à 8 bits.
(6) Répétez les passages de (2) à (5) pour l'octet suivant (8 bits) du message, continuez ainsi pour compléter l'élaboration de tous les octets.
Le contenu final du registre CRC est la valeur CRC. Entrée du CRC dans le message : quand le CRC à 16 bits (2 octets de 8 bits) est transmis
dans le message, le système transmet d'abord le premier octet moins significatif puis l'octet le plus significatif. Si la valeur CRC, par
exemple, est 1241 hexa, le CRC-16 (LSB) est 41 hexa, tandis que le CRC-16 (MSB) est 12 hexa.
– Programme d'application pour le calcul CRC :
UWORD ch_sum (UBYTE long, UBYTE *rxdbuff) {
BYTE i = 0;
UWORD wkg = 0xFFFF;
While ( long-- ) {
wkg ^= rxdbuff++;
for ( i = 0 ; i < 8; i++ ) {
if ( wkg & 0x0001 ) {
wkg = ( wkg >> 1 ) ^ 0xa001;
}
else {
wkg = wkg >> 1;
}
}
}
return( wkg );
}
1.6.2. TIME-OUT (500 ms) ET TENTATIVES (2 fois maximum)
LRXSW
S
LRXSW
LRXSW
Attention! Quand vous définissez la valeur du bloc de fonction spécial LRD, la valeur de la temporisation (TIME-OUT) est 1000 ms.
(En cas d'erreur du LRD pour time-out ou contrôle de totalisation (checksum) ou bien si le code d'erreur de la réponse LRD = erreur
checksum, LRXSW essaie deux fois au maximum, après quoi si l'erreur est encore présente, il affiche le message "Erreur de
communication").
Note:
quand le module de communication Modbus relève des erreurs, le système laisse passer un délai de rétablissement (intervalle de
transfert des données Modbus 64 octets) :
- si la vitesse de transmission est 4.800 bps, l'intervalle est de 147 ms.
- si la vitesse de transmission est 9.600 bps, l'intervalle est de 73 ms.
- si la vitesse de transmission est 19.200 bps, l'intervalle est de 37 ms.
- si la vitesse de transmission est 38.400 bps, l'intervalle est de 18 ms.
- si la vitesse de transmission est 57.600 bps, l'intervalle est de 12 ms.
500 ms
S
500 ms
S

Publicité

loading

Produits Connexes pour LOVATO ELECTRIC LRE P00