Qu'est-ce que le Modbus et comment fonctionne-t-il ?
Qu'est-ce que Modbus ?
Modbus est un protocole de communication série développé par Modicon publié par Modicon® en 1979 pour être utilisé avec ses automates programmables industriels (API). En termes simples, il s'agit d'une méthode utilisée pour transmettre des informations sur des lignes série entre des appareils électroniques. L'appareil qui demande les informations est appelé client Modbus et les appareils qui fournissent les informations sont des serveurs Modbus. Dans un réseau Modbus standard, il existe un client et jusqu'à 247 serveurs, chacun avec une adresse de serveur unique comprise entre 1 et 247. Le client peut également écrire des informations sur les serveurs.
La spécification Modbus officielle est disponible sur https://modbus.org/
À quoi sert-il ?
Modbus est un protocole ouvert, ce qui signifie qu'il est libre pour les fabricants de construire dans leurs équipements sans avoir à payer de redevance. Il est devenu un protocole de communication standard dans l'industrie et est désormais le moyen le plus couramment utilisé pour connecter des appareils électroniques industriels. Elle est largement utilisée par de nombreux fabricants dans de nombreux secteurs. Le protocole Modbus est généralement utilisé pour transmettre les signaux des appareils d'instrumentation et de contrôle à un contrôleur principal ou à un système de collecte de données, par exemple un système qui mesure la température et l'humidité et communique les résultats à un ordinateur. Modbus est souvent utilisé pour connecter un ordinateur de supervision à un terminal distant (RTU) dans des systèmes de contrôle de supervision et d'acquisition de données (SCADA). Les versions du protocole Modbus existent pour les lignes série (Modbus RTU et Modbus ASCII) et pour Ethernet (Modbus TCP).
Comment ça marche ?
Modbus est transmis sur des lignes série entre des appareils. La configuration la plus simple serait un câble série unique connectant les ports série sur deux appareils, un client et un serveur.
Les données sont envoyées sous la forme d'une série d'unités et de zéros appelés bits. Chaque bit est envoyé sous forme de tension. Les zéros sont envoyés sous forme de tensions positives et les uns sous forme de tensions négatives. Les bits sont envoyés très rapidement. La vitesse de transmission type est de 9 600 bauds (bits par seconde).
Qu'est-ce que l'hexadécimal ?
Lors du dépannage des problèmes, il peut être utile de voir les données brutes réelles transmises. Il est difficile de lire les longues chaînes d'un et de zéros, de sorte que les bits sont combinés et affichés en hexadécimal. Chaque bloc de 4 bits est représenté par l'un des seize caractères compris entre 0 et F.
Chaque bloc de 8 bits (appelé octet) est représenté par l'une des 256 paires de caractères de 00 à FF.
Comment les données sont-elles stockées dans le Modbus standard ?
Les informations sont stockées dans l'équipement serveur dans quatre tableaux différents. Deux tables stockent les valeurs TOR activées/désactivées (bobines) et deux stockent les valeurs numériques (registres). Les bits de sortie et les registres ont chacun une table en lecture seule et une table en lecture-écriture. Chaque table a 999 valeurs. Chaque bobine ou contact a un bit et une adresse de données comprise entre 0000 et 270E lui est attribuée. Chaque registre a une adresse de données comprise entre 0000 et 270E, soit 1 mot = 16 bits = 2 octets.
Les numéros de bobine/registre peuvent être considérés comme des noms d'emplacement car ils n'apparaissent pas dans les messages réels. Les adresses de données sont utilisées dans les messages. Par exemple, le premier registre de sortie, le numéro 40001, a l'adresse de données 0000. La différence entre ces deux valeurs est la offset. Chaque table a un décalage différent. 1, 10001, 30001 et 40001.
Quel est l'ID du serveur ?
Chaque serveur d'un réseau reçoit une adresse d'unité unique comprise entre 1 et 247. Lorsque le client demande des données, le premier octet qu'il envoie est l'adresse du serveur. Ainsi, chaque serveur sait après le premier octet s'il doit ou non ignorer le message.
Qu'est-ce qu'un code de fonction ?
Le deuxième octet envoyé par le client est le code de fonction. Ce numéro indique au serveur la table à laquelle accéder et si elle doit être lue ou écrite dans la table.
Qu'est-ce qu'un CRC ?
CRC signifie contrôle de redondance cyclique. Deux octets sont ajoutés à la fin de chaque message Modbus pour la détection des erreurs. Chaque octet du message est utilisé pour calculer le CRC. L'équipement récepteur calcule également le CRC et le compare au CRC de l'équipement émetteur. Si même un bit du message est reçu de manière incorrecte, les CRC sont différents et une erreur survient. .
Quels sont les formats des commandes et des réponses Modbus ?
Quels sont les types de données ?
L'exemple de FC03 montre que le registre 40108 contient AE41 qui convertit en 16 bits 1010 1110 0100 0001 Super ! Mais qu'est-ce que cela signifie ? Eh bien, ça pourrait signifier quelques choses. Le registre 40108 peut être défini comme l'un des types de données 16 bits suivants :
Un registre d'entiers non signés 16 bits (nombre entier compris entre 0 et 65535) 40108 contient AE41 = 44 609 (conversion hexadécimale en décimale)
Un entier signé 16 bits (un nombre entier compris entre -32768 et 32767) AE41 = -20 927 (conversion hexadécimale en décimale qui se termine, si sa valeur supérieure 32767 ensuite soustraire 65536)
A chaîne ASCII à deux caractères (2 lettres typées) AE41 = ® A
Une valeur bit d'activation/désactivation (bit d'activation/de désactivation) (fonctionne comme les entiers 16 bits avec une valeur de 0 ou 1. Les données hexadécimales sont 0000 ou 0001) Le registre 40108 peut également être combiné avec
40109 de former l'un des types de données 32 bits suivants :
Un entier non signé 32 bits (un nombre compris entre 0 et 4 294 967 295) 40108,40109 = AE41 5652 = 2 923 517 522
Un entier signé 32 bits (un nombre compris entre -2 147 483 648 et 2 147 483 647) AE41 5652 = -1 371 449 774
Un nombre à virgule flottante IEEE 32 bits double précision. Il s'agit d'une formule mathématique qui permet à tout nombre réel (un nombre avec des points décimaux) de représenter 32 bits avec une précision d'environ sept chiffres. AE41 5652 = -4.395978 E-11 Voici une feuille de calcul IEEE pour calculer la virgule flottante des entrées de 4 octets ou 2 mots. Pour télécharger une copie, cliquez avec le bouton droit et sélectionnez Enregistrer la cible sous...
Une quatre caractères chaîne ASCII (4 lettres typées) AE41 5652 = ® A V R Il est possible de combiner plusieurs registres pour former des chaînes ASCII plus longues. Chaque registre utilisé pour stocker deux caractères ASCII (deux octets).
Qu'est-ce que l'ordre des octets et des mots ?
La spécification Modbus ne définit pas exactement comment les données sont stockées dans les registres. Par conséquent, certains fabricants ont mis en oeuvre le protocole Modbus dans leur équipement pour stocker et transmettre l'octet de poids fort en premier, suivi de l'octet de poids faible. (AE avant 41). Les autres stockent et transmettent l'octet de poids faible en premier (41 avant AE). De même, lorsque les registres sont combinés pour représenter des types de données de 32 bits, certains équipements stockent les 16 bits supérieurs (mot de poids fort) dans le premier registre et le mot de poids faible restant dans le second (AE41 avant 5652), tandis que d'autres font le contraire (5652 avant AE41). Peu importe l'ordre dans lequel les octets ou les mots sont envoyés, tant que l'équipement récepteur sait de quelle manière ils doivent s'y attendre. Par exemple, si le nombre 29 235 175 522 était envoyé sous la forme d'un entier non signé 32 bits, il peut être organisé de l'une de ces quatre façons.
AE41 5652 octet de poids fort premier mot de poids fort
Premier mot de poids faible de l'octet de poids fort 5652 AE41
41AE 5256 octet de poids faible premier mot de poids fort
5256 41AE octet de poids faible premier mot de poids faible
Qu'est-ce qu'un mappage Modbus ?
Une carte Modbus est simplement une liste pour un appareil serveur individuel qui définit - ce que sont les données (p. ex. mesures de pression ou de température)
- où les données sont stockées (quelles tables et adresses de données)
- comment les données sont stockées (types de données, ordre des octets et des mots)
Certains équipements sont conçus avec une carte fixe définie par le fabricant. Alors que d'autres équipements permettent à l'opérateur de configurer ou de programmer une carte personnalisée en fonction de ses besoins.
Quelle est la différence entre Modbus ASCII et Modbus RTU ?
Modbus RTU et Modbus ASCII utilisent le même protocole. La seule différence est que les octets transmis par câble sont présentés en binaire avec RTU et en ASCII lisible avec Modbus RTU. Il est important de noter que le message RTU n'a pas d'indication Start_of_text. La partie destinataire des communications utilise un temps "silencieux" pour déterminer le début d'un nouveau message. ASCII ne dispose pas d'un jeton de début de texte. Les messages binaires sont plus courts que les messages ASCII et donc théoriquement plus rapides à émettre/recevoir. Vous pouvez être heureux de voir des fréquences de mise à jour d'environ 100 ms dans votre IHM/SCADA et choisir l'une ou l'autre des communications.
Résumé :
- utilisation RTU possible
- utilisez ASCII si RTU génère des problèmes de temporisation sur WinNT ou si vous utilisez des supports de communication lents tels que 300 bit/s ou des modems à accès commuté La plupart des serveurs OPC pour Modbus prennent en charge les communications ASCII ainsi que les communications RTU.
Que sont les adresses de registres étendus ?
Comme la plage des registres de sortie analogique est 40001 à 49999, cela implique qu'il ne peut pas y avoir plus de 9 999 registres. Bien que cela soit généralement suffisant pour la plupart des applications, il existe des cas où davantage de registres seraient bénéfiques. Les registres 40001 à 49999 correspondent aux adresses de données 0000 à 270E. Si nous utilisons les adresses de données 270F à FFFF restantes, plus de six fois plus de registres peuvent être disponibles, 65536 au total. Cela correspond aux numéros de registre de 40001 à 105536. De nombreux pilotes logiciels Modbus (pour les PC clients) ont été écrits avec les limites 40001 à 49999 et ne peuvent pas accéder aux registres étendus des équipements serveur. Et de nombreux équipements de serveur ne prennent pas en charge les maps utilisant les registres étendus. En revanche, certains équipements serveur prennent en charge ces registres et certains logiciels client y accèdent, en particulier si un logiciel personnalisé est écrit.
Comment fonctionne l'adressage de serveur 2 octets ?
Comme un seul octet est normalement utilisé pour définir l'adresse du serveur et que chaque serveur d'un réseau requiert une adresse unique, le nombre de serveurs d'un réseau est limité à 256. La limite définie dans la spécification Modbus est encore inférieure à 247. Pour dépasser cette limite, il est possible de modifier le protocole afin d'utiliser deux octets pour l'adresse. Le client et les serveurs seront tous nécessaires pour prendre en charge cette modification. L'adressage sur deux octets étend la limite du nombre de serveurs d'un réseau à 65535. Par défaut, le logiciel Simply Modbus utilise l'adressage sur 1 octet. Lorsqu'une adresse supérieure à 255 est saisie, le logiciel passe automatiquement à l'adressage 2 octets et reste dans ce mode pour toutes les adresses jusqu'à ce que l'adressage 2 octets soit désactivé manuellement.
Comment envoyer des événements et des données historiques ?
Enron Modbus inclut des commandes de déplacement des événements et des données historiques.
Qu'est-ce qu'Enron Modbus ?
Enron Modbus est une modification du protocole de communication Modbus Modicon standard développé par Enron Corporation.
Voir Enron Modbus pour plus d’informations.
Publié pour: Schneider Electric France
Besoin d'aide ?
Sélectionnez le bon produit
Trouvez rapidement et facilement les produits et accessoires adaptés à vos applications.
Obtenir un devis
Effectuez une demande de renseignements en ligne et un expert vous contactera.
Où acheter ?
Trouvez facilement le distributeur Schneider Electric local le plus proche.
Centre d'aide
Trouvez des ressources de support pour tous vos besoins, en un seul endroit.