7.4.6 - Exemple
Adresse variateur = 1 (Adresse par défaut).
Lecture de 3 paramètres variateur à partir de Pr 1.05.
Pr 1.05 devient Pr 1.04 qui est égal à 68 en hexadécimal
(adresse modbus = adresse paramètre variateur - 1).
• Demande
Adresse esclave
Fonction
Adresse 1er mot ou registre (fort)
Adresse 1er mot ou registre (faible) 68
Nombre de mots ou registres (fort)
Nombre de mots ou registres (faible) 03
Vérification CRC : faible
fort
Total octets :
• Réponse
Adresse esclave
Fonction
Nombre d'octets
Mot ou registre 0 (fort)
Mot ou registre 0 (faible)
Mot ou registre 1 (fort)
Mot ou registre 1 (faible)
Mot ou registre 2 (fort)
Mot ou registre 2 (faible)
Vérification CRC : faible
fort
Total octets :
7.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.
7.4.8 - Exceptions
Si le message est mauvais et que la trame n'est pas reçue, ou
si le CRC se met en sécurité, 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.
Guide de mise en service Powerdrive MD Smart
5641 fr - 2021.10 / c
FONCTIONNEMENT PAR MODBUS RTU
Exemple
RTU
(hexa)
(binaire)
1
0000 0001
03
0000 0011
00
0000 0000
0110 1000
00
0000 0000
0000 0011
84
1000 0100
17
0001 0111
8
Exemple
RTU
(hexa)
(binaire)
1
0000 0001
03
0000 0011
06
0000 0110
00
0000 0000
2D
0010 1101
05
0000 0101
DC
1101 1100
00
0000 0000
00
0000 0000
4C
0100 1100
45
0100 0101
11
7.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 <
Nombre octets à traiter)
FIN.
171