CoderTools

Analyseur de Protocole Modbus

Analyser, convertir et déboguer les communications Modbus RTU/ASCII/TCP

Veuillez entrer des données

Référence du Protocole Modbus

Modbus est le protocole de communication industriel le plus utilisé, développé par Modicon en 1979. Il permet la communication entre appareils électroniques via des lignes série (RTU) ou Ethernet (TCP/IP). Cet outil aide les ingénieurs à déboguer et analyser les communications Modbus sans matériel ou logiciel spécialisé.

Structure de Trame Modbus RTU

Modbus RTU (Remote Terminal Unit) transmet les données en format binaire via des connexions série comme RS-232 ou RS-485. Chaque trame comprend une adresse esclave, un code fonction, des données et une somme de contrôle CRC 16 bits pour la détection d'erreurs. Le format binaire compact rend RTU efficace pour les environnements à bande passante limitée.

Slave ID
1 byte
Function
1 byte
Data
N bytes
CRC-16
2 bytes

Modbus RTU Frame Structure

Structure de Trame Modbus TCP

Modbus TCP encapsule les trames RTU dans des paquets TCP/IP, utilisant un en-tête MBAP (Modbus Application Protocol) de 7 octets. Cet en-tête contient un ID de transaction pour le matching requête-réponse, un identifiant de protocole (toujours 0 pour Modbus), la longueur du message et l'ID d'unité. La communication TCP utilise le port 502 par défaut.

Trans ID
2 bytes
Proto ID
2 bytes
Length
2 bytes
Unit ID
1 byte
Function
1 byte
Data
N bytes

Modbus TCP Frame Structure (MBAP Header + PDU)

Codes Fonction Courants

Les codes fonction définissent le type d'opération dans une requête Modbus. Les opérations de lecture (01-04) récupèrent les états des bobines ou les valeurs des registres, tandis que les opérations d'écriture (05, 06, 0F, 10) modifient les données de l'appareil. Chaque code fonction a des exigences de format de données spécifiques.

Code Fonction Type
0x01Lire les bobinesLecture
0x02Lire les entrées discrètesLecture
0x03Lire les registres de maintienLecture
0x04Lire les registres d'entréeLecture
0x05Écrire une bobine uniqueÉcriture
0x06Écrire un registre uniqueÉcriture
0x0FÉcrire plusieurs bobinesÉcriture
0x10Écrire plusieurs registresÉcriture

Ordre des Octets dans Modbus

Différents fabricants de PLC utilisent des ordres d'octets variés pour les valeurs 32 bits et 64 bits. Les quatre arrangements courants sont : Big Endian (ABCD) - ordre réseau standard ; Little Endian (DCBA) ; Mid-Big Endian (BADC) ; et Mid-Little Endian (CDAB). En cas de valeurs incorrectes, essayez différents ordres d'octets pour trouver l'interprétation correcte.

Big Endian (ABCD)
A B C D
Little Endian (DCBA)
D C B A
Mid-Big Endian (BADC)
B A D C
Mid-Little Endian (CDAB)
C D A B

Algorithme CRC-16/Modbus

Modbus RTU utilise CRC-16 avec le polynôme 0x8005 et la valeur initiale 0xFFFF pour la détection d'erreurs. Le CRC est calculé sur l'adresse esclave, le code fonction et les octets de données, puis ajouté avec l'octet faible en premier. Une trame avec un CRC incorrect doit être rejetée par le récepteur.

Polynôme : 0x8005
Valeur initiale : 0xFFFF
Reflet entrée : Oui
Reflet sortie : Oui

Applications Pratiques

  • Dépanner les erreurs de communication entre PLC et systèmes SCADA en analysant les données brutes des paquets
  • Vérifier les valeurs des registres pendant la mise en service en convertissant les données hex en unités d'ingénierie
  • Générer des commandes de test pour la validation des appareils sans logiciel maître Modbus dédié
  • Déboguer les problèmes d'ordre d'octets lors de l'intégration d'appareils de différents fabricants

Outils Connexes

Menu Rapide

Aucun outil récent