Aller au contenu
Retour au site

Explorer par catégories

Protocole de Communication 6 min de lecture

Les codes fonctions Modbus

Blog Fonctions Modbus

Introduction

Ce court article a pour but de vous guider dans le paramétrage de vos trame Modbus TCP ou RTU vous y retrouverez :

  • Les types de données échangés via Modbus
  • Les codes de fonction Modbus
  • Les codes d’erreurs Modbus

Si tu veux en savoir plus sur les spécificités et la configuration des réseaux Modbus TCP ou Modbus RTU consulte nos guides pour chaque type de protocole :

Les types de données échangés via Modbus

Les types de données échangés sont les mêmes qu’il s’agisse d’une communication Modbus RTU (liaison série) ou Modbus TCP (liaison Ethernet)

Type d’objet Description
Coils Interrupteurs binaires activés/désactivés qui peuvent être lus et modifiés via Modbus. Utilisés couramment pour contrôler des relais ou d’autres dispositifs d’entrée/sortie booléens.
Discrete Inputs Entrées binaires qui ne peuvent être que lues. Ces entrées sont typiquement utilisées pour des capteurs ou tout autre dispositif d’entrée fournissant un état binaire, comme un bouton-poussoir ou un interrupteur de limite.
Input Registers Registres de 16 bits qui ne peuvent être que lus. Ils sont souvent utilisés pour lire les entrées numériques de dispositifs de mesure comme les capteurs de température ou les compteurs d’énergie.
Holding Registers Registres de 16 bits qui peuvent être lus ou écrits. Ils sont utilisés pour stocker et récupérer des valeurs numériques utilisées par l’application.

Les codes fonctions Modbus

Les codes de fonctions modbus définissent les actions à réaliser, comme la lecture ou l’écriture de données.

Codes fonctions Modbus courants

Code de fonction Description
01 Lire les bobines (Read Coils) : Lit l’état des variables binaires (0 ou 1) dans un dispositif esclave (sorties).
02 Lire les entrées discrètes (Read Discrete Inputs) : Lit l’état des entrées discrètes dans un dispositif esclave. Généralement utilisé pour lire des entrées de capteurs (entrées).
03 Lire les registres de maintien (Read Holding Registers) : Lit la valeur de registres de maintien de 16 bits. Utilisé pour lire des données numériques stockées ou des paramètres.
04 Lire les registres d’entrée (Read Input Registers) : Lit la valeur des registres d’entrée, souvent utilisés pour des données de capteurs ou de mesure (lecture seule).
05 Forcer une bobine (Write Single Coil) : Modifie l’état d’une bobine (0 ou 1). Utilisé pour contrôler une sortie numérique telle qu’un relais ou un moteur.
06 Écrire dans un registre de maintien (Write Single Holding Register) : Écrit une valeur dans un registre de maintien de 16 bits. Utilisé pour mettre à jour des paramètres de configuration.
15 Écrire plusieurs bobines (Write Multiple Coils) : Modifie l’état de plusieurs bobines en une seule transaction. Utilisé pour changer simultanément plusieurs sorties.
16 Écrire plusieurs registres de maintien (Write Multiple Holding Registers) : Écrit dans plusieurs registres de maintien. Utilisé pour mettre à jour plusieurs paramètres simultanément.

Codes fonctions Modbus avancés

Code de fonction Description
07 Lire l’état d’exception (Read Exception Status) : Interroge l’état de 8 bits sur des dispositifs spécifiques, comme des alarmes. Utilisé pour diagnostiquer des erreurs. Réservé à la liaison série (Modbus RTU).
08 Boucle de test de diagnostic (Diagnostics) : Utilisé pour tester la communication entre le maître et l’esclave ou réinitialiser les compteurs d’erreurs. Réservé à la liaison série (Modbus RTU).
17 Identifiant de l’esclave (Report Slave ID) : Renvoie la description de l’esclave (type d’appareil, état de marche, informations propres au fabricant). Réservé à la liaison série (Modbus RTU).
20 Lire des fichiers (Read File Record) : Lit des enregistrements de fichiers spécifiques sur des dispositifs, souvent utilisé dans les systèmes SCADA.
21 Écrire dans des fichiers (Write File Record) : Écrit dans des enregistrements de fichiers spécifiques sur des dispositifs. Utilisé pour la gestion de fichiers.
22 Masquer et écrire dans un registre (Mask Write Register) : Modifie certains bits dans un registre tout en conservant les autres. Utilisé pour des modifications bit à bit précises.
23 Lire plusieurs registres et écrire simultanément (Read/Write Multiple Registers) : Lit et écrit dans plusieurs registres en une seule transaction pour optimiser les échanges.
 

Petit guide pour choisir la fonction modbus qu’il vous faut :

  • Pour lire l’état ou les données : Utilisez les fonctions 01, 02, 03 ou 04 selon que vous travaillez avec des bobines, entrées discrètes, ou registres.
  • Pour écrire des commandes ou paramètres : Utilisez 05 ou 06 pour une commande unique, ou 15 et 16 pour écrire sur plusieurs bobines ou registres en une seule fois.
  • Pour des diagnostics ou des besoins avancés : Les fonctions plus avancées comme 07, 08, ou 22 sont utiles pour vérifier l’état du réseau, tester la communication ou gérer des modifications complexes.

Pour des applications standard, les fonctions Modbus de lecture/écriture de bobines et de registres couvrent la majorité des besoins, tandis que les fonctions plus avancées s’appliquent aux cas spécifiques nécessitant des diagnostics ou des opérations complexes. De plus la plupart des composant intégrant le protocole Modbus intègre nativement les fonction de vérification de l’état du réseau.

Codes d’erreur Modbus

Lorsqu’un appareil esclave rencontre une erreur lors du traitement d’une requête, il répond avec un message d’exception contenant un code d’erreur. Ces codes fournissent des informations sur la nature de l’erreur. Voici quelques codes d’exception courants :

Code Signification
0x01 Fonction illégale
0x02 Adresse de données illégale
0x03 Valeur de données illégale
0x04 Défaillance du dispositif esclave
0x05 Accusé de réception
0x06 Dispositif esclave occupé

Besoin d’aide pour configurer votre protocole de communication

Déposer un projet

Vous allez aussi aimer