Le protocole Modbus est le protocole industriel le plus courant pour la communication
M2M . Il s'agit d'une norme de facto et est pris en charge par presque tous les fabricants d'équipements industriels.
En raison de sa polyvalence et de son ouverture, la norme permet l'intégration d'équipements de différents fabricants. Modbus est utilisé pour collecter les lectures des capteurs, contrÎler les relais et contrÎleurs, surveiller, etc.
Dans l'article, nous analyserons la mise en Ćuvre du protocole Modbus, les formats de donnĂ©es, les logiciels pour travailler avec le protocole. Essayons de lire les donnĂ©es de l'appareil dans la pratique.
Histoire de Modbus
Modbus a été introduit en 1979 par Modicon (aujourd'hui Schneider Electric). Il s'agissait d'un standard ouvert fonctionnant sur l'interface RS-232. Plus tard, des implémentations de protocole pour les interfaces RS-485 et Modbus TCP sont apparues. Le protocole a rapidement gagné en popularité et de nombreux fabricants ont commencé à l'implémenter dans leurs appareils.
Plus tard, les droits du protocole ont été transférés à l'organisation à but non lucratif
Modbus Organisation , qui possĂšde jusqu'Ă aujourd'hui la norme.
La norme Modbus utilise une terminologie dérivée de la
logique à relais . Ainsi, par exemple, certains registres sont appelés bobines (bobine anglaise).
Niveau physique

- Les RS-232/422/485 sont des interfaces série largement utilisées dans l'industrie. Les interfaces RS-422/485 fournissent une gamme de signaux jusqu'à 1200 mÚtres. Protocoles Modbus RTU / ASCII utilisés
- RĂ©seaux TCP / IP - toutes les interfaces Ethernet peuvent ĂȘtre un canal de transmission de donnĂ©es physiques. Utilisation du protocole Modbus TCP
Niveau logique
Différences du protocole ModbusModbus ASCII
Les donnĂ©es sont encodĂ©es avec des caractĂšres de la table ASCII et transmises au format hexadĂ©cimal. Le dĂ©but de chaque paquet est indiquĂ© par deux points, et la fin par un retour chariot et un saut de ligne. Cela permet au protocole d'ĂȘtre utilisĂ© sur des lignes avec des dĂ©lais plus longs et des Ă©quipements avec des temporisateurs moins prĂ©cis.
Modbus RTU
Dans le protocole Modbus RTU, les donnĂ©es sont codĂ©es au format binaire et un intervalle de temps sert de sĂ©parateur de paquets. Ce protocole est essentiel aux retards et ne peut pas fonctionner, par exemple, sur les lignes de modem. Dans le mĂȘme temps, la surcharge pour le transfert de donnĂ©es est moindre qu'en Modbus ASCII, car la longueur du message est moindre.
Modbus TCP
La structure des paquets est similaire à Modbus RTU, les données sont également codées au format binaire et emballées dans un paquet TCP normal pour la transmission sur les réseaux IP. La vérification d'intégrité utilisée dans Modbus RTU n'est pas appliquée, car TCP a déjà son propre mécanisme de contrÎle d'intégrité.
Format du paquet
Formats de packages pour diverses implĂ©mentations ModbusTous les appareils Modbus communiquent selon le modĂšle maĂźtre-esclave. Les demandes ne peuvent ĂȘtre lancĂ©es que par le pĂ©riphĂ©rique maĂźtre, les esclaves ne peuvent rĂ©pondre qu'aux demandes et ne peuvent pas dĂ©marrer le transfert de donnĂ©es par eux-mĂȘmes. Selon l'implĂ©mentation du protocole, les en-tĂȘtes de paquets sont diffĂ©rents. Voici les principaux composants du package qu'il est important de connaĂźtre:
ADU (Application Data Unit) - l'ensemble du module Modbus, avec tous les en-tĂȘtes, PDU, somme de contrĂŽle, adresse et jetons. Elle diffĂšre selon la mise en Ćuvre du protocole.
PDU (unitĂ© de donnĂ©es de protocole) - la partie principale du package, la mĂȘme pour toutes les implĂ©mentations du protocole. Contient la charge utile elle-mĂȘme.
Adresse du
pĂ©riphĂ©rique - l'adresse du destinataire, c'est-Ă -dire le pĂ©riphĂ©rique esclave. Jusqu'Ă 247 appareils peuvent ĂȘtre situĂ©s dans un segment d'un rĂ©seau Modbus. Seuls les esclaves ont des adresses diffĂ©rentes, le maĂźtre n'a pas d'adresse. L'adresse «0» est utilisĂ©e pour les demandes de diffusion du maĂźtre, tandis que les esclaves ne peuvent pas rĂ©pondre Ă ces paquets de diffusion.
Checksum - algorithmes d'intégrité des paquets. Modbus RTU et ASCII utilisent 2 octets de somme de contrÎle. Modbus RTU utilise l'algorithme CRC16, tandis que Modbus ASCII utilise le LRC8 plus simple et moins fiable. Dans Modbus TCP, la somme de contrÎle n'est pas ajoutée à l'ADU car l'intégrité est vérifiée au niveau TCP.
Nous n'analyserons pas les en-tĂȘtes supplĂ©mentaires spĂ©cifiques Ă chaque implĂ©mentation de protocole individuelle, car cela n'est pas significatif lorsque vous travaillez avec le protocole au niveau de l'application.
Registres et fonctions Modbus
Sous une forme simplifiĂ©e, la structure de demande Modbus se compose d'un code de fonction (lecture / Ă©criture) et de donnĂ©es qui doivent ĂȘtre lues ou Ă©crites. En mĂȘme temps, les codes de fonction diffĂšrent pour diffĂ©rents types de donnĂ©es. Nous analyserons ce que sont les registres et les fonctions pour travailler avec eux.

- Entrées discrÚtes - Les entrées discrÚtes de l'appareil sont en lecture seule. Plage d'adresses de registre: de 10001 à 19999. Elles ont une fonction "02" - lecture d'un groupe de registres
- Bobines - sorties discrÚtes de l'appareil ou valeurs internes. Disponible pour la lecture et l'écriture. La plage d'adresses de registre va de 20001 à 29999. Il a des fonctions: "01" - lit un groupe de registres, "05" - écrit un seul registre, "15" - écrit un groupe de registres
- Registres d'entrée - entrées de périphérique 16 bits. Lecture seule. Plage d'adresses de registres: de 30001 à 39999. Avoir une fonction: "04" - lire un groupe de registres
- Registres de maintien - Sorties de périphérique 16 bits ou valeurs internes. Disponible pour la lecture et l'écriture. La plage d'adresses de registre: de 40001 à 49999. Ont
MalgrĂ© les noms, les entrĂ©es et sorties peuvent en fait ĂȘtre des variables internes, stocker des compteurs, des indicateurs ou ĂȘtre des dĂ©clencheurs de contrĂŽle. Il existe Ă©galement d'autres gammes de registres, mais dans la grande majoritĂ© des appareils, ils ne sont pas utilisĂ©s, nous considĂ©rerons donc quatre types principaux de registres. DiffĂ©rents appareils peuvent utiliser diffĂ©rentes plages de registres, ou en mĂȘme temps.
Exemples de travaux
Pour un exemple de travail avec le protocole Modbus TCP, nous utiliserons l'utilitaire de console le plus simple
modbus-cli , écrit en Ruby. Il facilite la lecture et l'écriture de données dans les registres Modbus.
Essayons de lire l'état des compteurs des paquets transmis sur un commutateur industriel Advantech EKI-5524SSI. Vous devez d'abord déterminer les adresses des registres qui stockent les informations nécessaires, pour cela, consultez la
documentation de l' appareil. Les descriptions des registres se trouvent dans la section Table de mappage Modbus:
Description des valeurs de registre dans la documentation du commutateur EKIOn peut voir que la valeur des paquets transmis pour un port est stockĂ©e dans quatre registres, et pour le premier port ce sont les registres 38193 Ă 38197. Une description est Ă©galement donnĂ©e du format de stockage de donnĂ©es, d'oĂč il rĂ©sulte que le nombre entier de paquets transmis est stockĂ© au format hexadĂ©cimal, et la valeur de 11223344 paquets sera Ă©crit comme 0xAB4130, de droite Ă gauche.
Faire une demande:
$ modbus read 192.168.0.17 38193 4 38193 0x0000 38194 0x0000 38195 0x0000 38196 0x3459
read est une commande de
lecture . Le programme lui-mĂȘme comprend la commande de lecture spĂ©cifique Ă utiliser en fonction de l'adresse du registre, dans notre cas, la commande "04" sera utilisĂ©e pour lire les registres 16 bits.
192.168.0.17 - Adresse IP de l'appareil.
38193 - L'adresse de départ du registre.
4 - décalage par rapport à l'adresse de début. Nous lisons quatre registres pour le port 1, comme suit de la fiche technique.
Nous obtenons une réponse contenant les valeurs de quatre registres. Nous voyons que le nombre de paquets est petit: 0x3459, c'est-à -dire 13401, - le commutateur a été activé récemment.
Inconvénients du protocole Modbus
En toute justice, il convient de mentionner les lacunes du protocole. Depuis qu'il a été développé il y a plus de 40 ans, lorsque les performances du processeur étaient nettement inférieures et que les protocoles ont été développés sans prendre en compte la protection des données, il présente un certain nombre d'inconvénients:
- Le protocole ne fournit pas d'authentification et de cryptage des donnĂ©es transmises. Par consĂ©quent, lors de l'utilisation de Modbus TCP, des tunnels VPN supplĂ©mentaires doivent ĂȘtre utilisĂ©s.
- L'esclave ne peut pas lancer le transfert de données, le maßtre doit donc constamment interroger les esclaves
- Le périphérique esclave ne peut pas détecter la perte de connexion avec le maßtre. Ce problÚme découle directement du précédent.
Cependant, malgré toutes les lacunes, Modbus reste le protocole industriel le plus courant et, grùce à son ouverture, il permet de combiner facilement des appareils de différents fabricants. Les faibles besoins en ressources permettent d'intégrer le protocole dans les appareils les plus écoénergétiques.
Matériel compatible Modbus
Advantech propose une large gamme d'équipements industriels avec prise en charge du protocole Modbus pour toutes les tùches: automatisation, contrÎle, collecte et transmission de données.

Les modules des séries
ADAM-6000 et
WISE-4000 vous permettent de contrĂŽler Ă distance les entrĂ©es / sorties numĂ©riques et analogiques Ă l'aide du protocole Modbus TCP. UtilisĂ© pour contrĂŽler les pĂ©riphĂ©riques et collecter des donnĂ©es en mode esclave. Ils peuvent ĂȘtre associĂ©s Ă un contrĂŽleur logique programmable ou se connecter directement Ă un serveur SCADA. â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â
EKI-1200 - Passerelles Modbus pour la conversion d'interface

Pour convertir les protocoles Modbus RTU / ASCII en Modbus TCP, des passerelles Modbus sont utilisées. Les appareils de la série
EKI-1200 ont à bord jusqu'à quatre interfaces série RS-232/422/485 et deux ports Ethernet. Ils vous permettent de combiner des appareils avec différents protocoles en un seul réseau. Par exemple, connectez un périphérique esclave qui prend uniquement en charge Modbus RTU via l'interface RS-485 à un segment de réseau Modbus TCP.
Les contrĂŽleurs prennent en charge les fonctions Modbus RTU en tant qu'esclave / maĂźtre et client / serveur Modbus TCP.

Exemples d'application
SystĂšme de surveillance des serres
La solution de surveillance Advantech intĂšgre les logiciels TPC-1070H, ADAM-6024, ADAM-6050, ADAM-6060 et WebAccess dans une armoire de machine Ă cĂŽtĂ© des terres agricoles. En se connectant Ă divers appareils sensibles, les modules ADAM-6000 peuvent recevoir des donnĂ©es environnementales en temps rĂ©el et surveiller la commutation des Ă©quipements pour s'assurer que la serre est dans l'environnement optimal pour la croissance des plantes. GrĂące Ă la fonction spĂ©ciale d'Advantech - la logique de condition graphique (GCL), les utilisateurs peuvent dĂ©finir leurs propres rĂšgles de logique de contrĂŽle et charger ces rĂšgles dans les modules d'E / S Ethernet ADAM-6000, puis les modules exĂ©cutent automatiquement des rĂšgles logiques comme les modules autonomes. le contrĂŽleur. Autre fonctionnalitĂ© - le Peer-to-Peer (P2P) utilise le rĂ©seau Ethernet le plus ouvert et le plus flexible pour non seulement simplifier le processus de mise en Ćuvre sans contrĂŽleur, mais Ă©galement Ă©conomiser sur les coĂ»ts matĂ©riels.
Toutes les données reçues sont ensuite transmises via Ethernet à un ordinateur équipé d'un écran tactile TPC-1070H. Doté d'un systÚme de refroidissement sans ventilateur et d'un panneau avant conforme à IP65, le TPC-1070H est une conception robuste et compacte adaptée à un environnement d'exploitation changeant, et ses puissantes capacités informatiques peuvent gérer de grandes quantités de données. Pour la gestion des appareils, Advantech WebAccess permet aux ingénieurs ou aux gestionnaires de visualiser, surveiller et configurer le systÚme de surveillance via un intranet ou Internet à l'aide d'un navigateur Web standard à partir de n'importe quel appareil, y compris les tablettes et les smartphones.

Surveillance du systĂšme de chauffe-eau solaire
La sociĂ©tĂ© d'ingĂ©nierie aurait dĂ» ĂȘtre en mesure de contrĂŽler la quantitĂ© d'Ă©nergie solaire, la tempĂ©rature et le dĂ©bit d'eau dans un systĂšme de chauffage Ă eau solaire pour une piscine de taille olympique fournie par leur panneau solaire nouvellement dĂ©veloppĂ©. Ils devraient Ă©galement pouvoir surveiller directement ces valeurs et leurs alarmes sur les panneaux LCD et stocker ces valeurs pour rĂ©fĂ©rence future.
Les modules Adam d'Advantech ont fourni au client une solution qui utilisait des modules d'acquisition de données connectés via RS485 et un bus à deux fils pour transmettre les données de tous les capteurs. Cette architecture systÚme présente deux avantages principaux: d'une part, elle vous permet d'ajouter à tout moment plus de capteurs aux modules de collecte de données, et d'autre part, il est trÚs facile d'ajouter des balises supplémentaires au logiciel pour surveiller et enregistrer ces valeurs sur un PC.
