Ressource

Explorer par catégories

Retour

Freelances

Freelances

Entreprise

Entreprise

Actualité

Actualité

6 min de lecture

Les codes fonctions Modbus

Rédigé par Antoine
le 18 Sep, 2024

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 consultes 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ême 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.
Multiple Registers Réfère à des opérations sur plusieurs registres simultanément, soit pour la lecture ou l’écriture, permettant des transferts de données plus efficaces et groupés.

 

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 du bus (Read Exception Status) : Interroge l’état de 8 bits sur des dispositifs spécifiques, comme des alarmes. Utilisé pour diagnostiquer des erreurs.
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.
17 Lire/écrire dans des registres de maintien (Read/Write Multiple Holding Registers) : Lit et écrit simultanément dans plusieurs registres de maintien pour optimiser la communication.
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és 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 RTU

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é

 

Contenu

Besoin d’aide pour configurer votre protocole de communication

$

Vous allez aussi aimer