Introduction au protocole Modbus et méthode de calcul du code de contrôle CRC de Modbus RTU

Modbus est un protocole de communication développé par la société américaine Modicon (aujourd'hui Schneider Electric) en 1979. Son objectif est d'utiliser une paire torsadée pour assurer la communication entre plusieurs appareils. Modbus est rapidement devenu la norme de facto dans l'industrie de l'automatisation, et Modicon l'a rendu public sans facturer de droits de brevet. Grâce au protocole Modbus, la communication entre les dispositifs de contrôle (tels que les PLC, les convertisseurs de fréquence et les DCS) de différents fabricants peut être facilement réalisée.

DTU/Edge Gateway/Plate-forme IoT/Module de passerelleDTU/Edge Gateway/Plate-forme IoT/Module de passerelle

Le protocole Modbus adopte une méthode de communication de type question-réponse, qui présente les avantages suivants : simplicité, matériel bon marché, grande polyvalence, facilité d'utilisation, de développement et de mise en œuvre. Le protocole Modbus RTU est presque devenu le protocole de communication préféré pour les automates programmables et les convertisseurs de fréquence domestiques. Le protocole Modbus ne nécessite pas de module de communication spécialisé. La pile et les mécanismes de protocole nécessaires à la communication sont mis en œuvre dans le logiciel et appartiennent à la couche 7 du modèle de référence ISO-OSI. Un autre avantage est qu'il peut communiquer sur n'importe quel support de transmission, y compris les paires torsadées, les communications sans fil, la fibre optique, Ethernet, les modems téléphoniques, les téléphones mobiles et les micro-ondes. Il est donc facile d'établir une connexion Modbus dans une usine nouvelle ou existante.

Trois versions de Modbus sont actuellement utilisées : Modbus ASCII, Modbus RTU et Modbus TCP. Le protocole Modbus ASCII doit convertir un octet de données en deux octets de code ASCII avant de l'envoyer. Les données du protocole Modbus RTU sont codées en binaire, et chaque octet de données ne nécessite qu'un octet de communication.

La communication Modbus RTU adopte le mode maître-esclave et peut transmettre jusqu'à 255 octets de données. Un dispositif maître communique avec un ou plusieurs dispositifs esclaves. Les dispositifs principaux typiques sont les PLC, les PC, les DCS (systèmes de contrôle distribués) ou les RTU (unités de terminal à distance). Les appareils esclaves Modbus RTU sont généralement des appareils de terrain. Lorsqu'un appareil maître Modbus RTU souhaite obtenir des données d'un appareil esclave, l'appareil maître envoie un message contenant l'adresse de la station de l'appareil esclave, les données requises et un code de contrôle CRC utilisé pour détecter les erreurs. Tous les autres appareils du réseau peuvent recevoir ce message, mais seul l'appareil esclave dont l'adresse est spécifiée y répondra. Les appareils esclaves d'un réseau Modbus ne peuvent pas initier la communication, ils ne peuvent répondre que lorsque l'appareil maître s'adresse à eux.

Modbus TCP peut être compris comme Modbus sur Ethernet. Modbus TCP utilise simplement la norme TCP/IP pour emballer et compresser les paquets d'informations Modbus. Cela permet aux appareils Modbus TCP de se connecter et de communiquer sur des réseaux Ethernet et à fibre optique. Par rapport à l'interface RS-485, Modbus TCP permet également l'utilisation d'un plus grand nombre d'adresses, peut adopter une architecture multi-maître et le taux de transmission peut atteindre le niveau GB/s. Le nombre de stations esclaves dans le réseau Modbus TCP est uniquement limité par les capacités de la couche physique du réseau. En général, le nombre de stations esclaves est d'environ 1024.

Modbus RTU utilise un code de contrôle de redondance cyclique (CRC) de 16 bits. Grâce à une procédure complexe d'association et de décalage des données, le CRC est généré par l'appareil maître et vérifié par l'appareil récepteur. Si les valeurs CRC calculées par les deux parties ne correspondent pas, l'appareil esclave demande à retransmettre les informations. Le protocole Modbus RTU est divisé en protocole maître Modbus RTU et protocole esclave Modbus RTU. La communication Modbus est contrôlée par des codes de fonction, et la station maître accède directement à la zone de données de la station esclave.

Méthode de calcul du code de contrôle CRC Modbus RTU

Seuls 8 bits de données, le bit de départ et le bit d'arrêt sont utilisés dans le calcul du CRC. S'il y a un bit de parité, y compris le bit de parité, ils ne sont pas impliqués dans le calcul CRC.

La méthode de calcul du CRC est la suivante :

  1. Charger un registre de 16 bits avec une valeur de 0XFFFF. Ce registre est le registre CRC.
  2. XOR les premières données binaires de 8 bits (c'est-à-dire le premier octet de la trame d'information de communication) avec le registre CRC de 16 bits, et le résultat du XOR est toujours stocké dans le registre CRC.
  3. Décaler le contenu du registre CRC d'un bit vers la droite, remplir le bit le plus élevé avec 0, et détecter si le bit décalé est 0 ou 1.
  4. Si le bit décalé est zéro, répéter la troisième étape (décaler à nouveau d'un bit vers la droite) ; si le bit décalé est 1, le registre CRC est XORé avec 0XA001.
  5. Répéter les étapes 3 et 4 jusqu'à ce que le décalage vers la droite soit effectué 8 fois, de manière à ce que l'ensemble des données de 8 bits soit traité.
  6. Répéter les étapes 2 et 5 pour traiter l'octet suivant de la trame d'information de communication.
  7. Une fois que tous les octets de la trame d'information de communication ont été calculés conformément aux étapes ci-dessus, les octets de poids fort et de poids faible du registre CRC de 16 bits obtenu sont échangés.
  8. Le contenu final du registre CRC est : Code de contrôle CRC.
X

Veuillez activer JavaScript dans votre navigateur pour remplir ce formulaire.
Saisissez les détails du produit tels que la configuration de l'interface, l'environnement, etc. et d'autres exigences spécifiques pour recevoir un devis précis.

fr_FRFrench
Veuillez activer JavaScript dans votre navigateur pour remplir ce formulaire.
Saisissez les détails du produit tels que la configuration de l'interface, l'environnement, etc. et d'autres exigences spécifiques pour recevoir un devis précis.