LEROY-SOMER
16.4.6 - Exemple
Adresse variateur = 11.
Lecture de 3 paramètres à partir de 1.08.
0108 devient 0107 qui est égal à 006B en hexadécimal
(adresse modbus = adresse paramètre - 1).
• Demande
Adresse esclave
Fonction
Adresse 1er mot (fort)
Adresse 1er mot (faible)
Nombre de mots (fort)
Nombre de mots (faible) 03
Vérification
Total octets :
• Réponse
Adresse esclave
Fonction
Nombre d'octets
Mot 0 (fort)
Mot 0 (faible)
Mot 1 (fort)
Mot 1 (faible)
Mot 2 (fort)
Mot 2 (faible)
Vérification
Total octets :
16.4.7 - Délai d'attente
En MODBUS RTU, lorsque le maître envoie un message à un
esclave, il impose un délai d'attente entre la fin de sa
demande et le début de la réponse de l'esclave, ce qui permet
de détecter éventuellement une réponse manquante.
16.4.8 - Exceptions
Si le message est mauvais et que la trame n'est pas reçue,
ou si le CRC se met en défaut, alors l'esclave ne produira pas
d'exception, et dans ce cas le maître n'aura pas de réponse
de l'esclave ("timeout"). Si une demande d'écriture (code
fonction 16 ou 23) excède la taille maximum acceptée par
l'esclave, alors l'esclave rejettera le message. Aucune
exception ne sera transmise et le maître n'aura pas de
réponse.
104
Fonctions développées
VARMECA 30
Moteur ou motoréducteur à vitesse variable
FONCTIONNEMENT PAR MODBUS RTU
Exemple (hexa) RTU (binaire)
B
0000 1011
03
0000 0011
00
0000 0000
6B
0110 1011
00
0000 0000
0000 0011
CRC (16 bits)
8
Exemple (hexa) RTU (binaire)
B
0000 1011
03
0000 0011
06
0000 0110
02
0000 0010
2B
0010 1011
00
0000 0000
00
0000 0000
00
0000 0000
63
0110 0011
CRC (16 bits)
11
16.4.9 - CRC
Ce mot de contrôle sert à la détection des erreurs de
transmissions. Il est calculé sur 16 bits à partir de tous les
octets des trames questions et réponses.
Algorithme :
DEBUT
CRC = 0xFFFF
Nombre octets traités = 0
Octet suivant = premier octet
REPETER
{
Octet à traiter = octet suivant ;
CRC = CRC ou exclusif octet à traiter
REPETER huit fois
{
SI (CRC impair) alors
CRC = CRC/2 ou exclusif
0xA001
sinon
CRC = CRC/2
}
Nombre octets traités = Nombre octets traités + 1
}
TANT QUE(nombre octets traités
traiter)
FIN.
3997 fr - 07.2007 / c
Nombre octets à