KROHNE ALTOSONIC 5 Manuel De Référence page 326

Débitmètre à ultrasons pour transactions commerciales de liquides
Masquer les pouces Voir aussi pour ALTOSONIC 5:
Table des Matières

Publicité

CONFIGURATION DU PROTOCOLE MODBUS
10
Répétez les étapes 3 et 4 jusqu'à ce que huit décalages aient été exécutés. Une fois cette étape
exécutée, un octet à huit bits complet aura été traité.
Étape 6
Répétez les étapes 2...5 pour l'octet à huit bits suivant du message. Continuez cette opération
jusqu'à ce que tous les octets aient été traités.
Résultat
Le contenu final du registre CRC est la valeur CRC.
Étape 7
Lorsque le CRC est placé dans le message, ses octets supérieur et inférieurs doivent être
échangés comme décrit ci-dessous.
Ajoutez le CRC dans le message
Lorsque le CRC à 16 bits (deux octets de huit bits) est transmis dans le message, l'octet de poids
faible est transmis en premier, suivi de l'octet de poids fort, par exemple, si la valeur CRC est
1241 hex (0001 0010 0100 0001) :
Figure 9 Séquence d'octets de CRC
Adresse Fct.
Exemple
Un exemple de fonction de langage C effectuant une génération CRC est présenté aux pages
suivantes. Toutes les valeurs CRC possibles sont préchargées dans deux tableaux qui sont
simplement indexés comme incréments de fonction dans le tampon du message. Un tableau
comporte les 256 valeurs CRC possibles pour l'octet de poids fort du champ CRC à 16 bits et
l'autre tableau contient toutes les valeurs pour l'octet de poids faible.
L'indexation du CRC de cette manière permet d'obtenir une exécution beaucoup plus rapide que
ce que l'on obtiendrait en calculant une nouvelle valeur CRC avec chaque nouveau caractère du
tampon de message.
Remarque : cette fonction exécute en interne l'échange des octets CRC de poids faible et fort.
Les octets sont déjà échangés dans la valeur CRC renvoyée par la fonction. C'est pourquoi la
valeur CRC renvoyée par la fonction peut être directement placée dans le message pour la
transmission.
La fonction accepte deux arguments :
unsigned char *puchMsg ; Un pointeur vers le tampon du message contenant des données
binaires à utiliser pour la génération du CRC.
unsigned short usDataLen ; Le nombre d'octets dans le tampon de message.
La fonction renvoie le CRC comme un élément de type 'unsigned short'.
CRC Generation Function
unsigned short CRC16(puchMsg, usDataLen)
unsigned char *puchMsg ; /* message to calculate CRC upon */
unsigned short usDataLen ; /* quantity of bytes in message */
{
unsigned char uchCRCHi = 0xFF ; /* high CRC byte initialized */
unsigned char uchCRCLo = 0xFF ; /* low CRC byte initialized */
unsigned uIndex ; /* will index into CRC lookup table */
while (usDataLen--) /* pass through message buffer */
{
uIndex = uchCRCHi ^ *puchMsg++ ; /* calculate the CRC */
uchCRCHi = uchCRCLo ^ auchCRCHi[uIndex] ;
uchCRCLo = auchCRCLo[uIndex] ;
}
return (uchCRCHi << 8 | uchCRCLo) ;
}
326
Cpte
Données Données Données Données CRC
données
www.krohne.com
ALTOSONIC 5
faible
41
08/2018 - 4004473302 - MA ALTOSONIC 5 fr R04
CRC fort
12

Publicité

Table des Matières
loading

Table des Matières