Movatterモバイル変換


[0]ホーム

URL:


Aller au contenu
Wikipédial'encyclopédie libre
Rechercher

Modbus

Un article de Wikipédia, l'encyclopédie libre.

Modbus est unprotocole de communication non-propriétaire, créé en 1979 parModicon (absorbée en1996 parSchneider Electric), de lacouche ISO applicatif. Il permet à des composants électroniques industriels de communiquer entre eux, souvent dans le cadre d'unSCADA. Il peut être utilisé dans le cas d'échange via des communications séries ou via unréseau TCP/IP.

Description du protocole

[modifier |modifier le code]

Le protocole MODBUS est un protocole de typeclient/serveur[1]. Par exemple, uneInterface Humain-Machine SCADA est connectée à uneunité terminale distante (ou RTU) et communique par Modbus. Dans ce cas, l'IHM est cliente et le RTU est serveur.

Il existe trois types de transmission Modbus :

  • Modbus RTU (Remote Time Unit), utilisant des liaisons séries
  • Modbus ASCII, utilisant des liaisons séries
  • Modbus TCP/IP, utilisant des liaisons Ethernet. Le port TCP utilisé est le port 502[2]

Ces trois types de transmission sont incompatibles les uns avec les autres.

Le protocole MODBUS définit un « protocol data unit » (PDU) qui est indépendant de toute couche protocolaire sous-jacente. Le PDU est composé d’un code de fonction, permettant d’indiquer quel type d’actions le client cherche à réaliser, et de données[3]. Pour associer le protocole au bon élément, le protocole définit un « Application Data Unit », qui est composé d’une adresse (pour le protocole par défaut) ou une entête « MBAP » (pour Modbus/TCP), d’un PDU et de code de vérification d'intégrité. L’ADU est formé par le client qui initie la communication.

En résumé :

PDU =Code de fonction + Données

Pour Modbus générique :

ADU = Adresses + PDU + code d’erreur

Pour Modbus/TCP :

ADU = En-tête MBAP + PDU + code d’erreur

où l'entête MBAP est composée de :

  1. Identifiant de transaction ("transaction identifier") : identifie la transaction requête/réponse
  2. Identifiant de protocole ("Protocol identifier"): toujours égal à 0
  3. Longueur ("length"): Nombre de bits suivants (à partir de l'identifiant d'unité)
  4. Identifiant de l'unité ("Unit Identifier") : identifie le serveur


Modbus définit 3 types de PDU (Protocol Data Unit) disctincts[4]:

  • Modbus request : Le client initie la requête auprès du server avec un PDU
  • Modbus response : Le serveur arrive à réaliser l'action demandée par le client. Le serveur envoie au client le code de fonction défini par le client et des données de réponses
  • Modbus Exception Response : Le serveur n'arrive pas à réaliser l'action demandée par le client et, dans ce cas, le serveur renvoie un code d'erreur permettant de donner des informations au client

Modèles de données

[modifier |modifier le code]

Le procotole MODBUS définit 4 types de données :

ModèlesType d’objetType
Discretes inputUn bitLecture uniquement
CoilsUn bitLecture-Ecriture
Input registersMots de 16-bitsLecture uniquement
Holding registersMots de 16-bitsLecture-Ecriture

Codes de fonctions

[modifier |modifier le code]

Les codes de fonction permettent au client de dire au serveur quels types d’actions réaliser. Il en existe trois types :

Par exemple, le code "01" signifie que le client demande à lire un registre "Coils" à une adresse donnée.

Function typeFunction nameFunction codeSubcodeComment
Data AccessBit accessPhysical Discrete InputsRead Discrete Inputs2
Internal Bits or Physical CoilsRead Coils1
Write Single Coil5
Write Multiple Coils15
16-bit accessPhysical Input RegistersRead Input Registers4
Internal Registers or Physical Output RegistersRead Multiple Holding Registers3
Write Single Holding Register6
Write Multiple Holding Registers16
Read/Write Multiple Registers23
Mask Write Register22
Read FIFO Queue24
File Record AccessRead File Record20
Write File Record21
DiagnosticsRead Exception Status7serial only
Diagnostic800-18, 20serial only
Get Com Event Counter11serial only
Get Com Event Log12serial only
Report Server ID17serial only
Read Device Identification4314
OtherEncapsulated Interface Transport4313, 14
CANopen general Reference4313

Couche physique

[modifier |modifier le code]

Le protocole Modbus peut être implémenté :

  • sur une liaison série asynchrone de typeRS-232,RS-422 ouRS-485 ou TTY (boucle de courant), avec des débits et sur des distances variables ; on parle alors deModbus over Serial Line;
  • viaTCP/IP sur Ethernet ; on parle alors deModbus over TCP/IP ; leport logiciel 502 est destiné à ce protocole
  • via Modbus Plus. Modbus Plus est un réseau à passage de jetons à 1 Mb/s, pouvant transporter les trames Modbus et d'autres services propres à ce réseau.

Sécurité

[modifier |modifier le code]

Modbus n'est pas sécurisé par défaut[5]. Cependant, Modbus Organization a spécifié une version sécurisée de Modbus/TCP, qui se base sur de l'encapsulation TLS : Modbus/TCP Security. Le protocole utilise par défaut le port TCP 802[6].

Le serveur et le client Modbus s'authentifient mutuellement par TLS. Les autorisations du client sontdéfinis par rôle. Le rôle est écrit dans une extension « RoleOID » ducertificat X.509 du client, qui permet au serveur de vérifier si le client est autorisée à réaliser l'action demandée sur la ressource. Labase de données associant rôle et droit est spécifique au vendeur et peut-être hébergée localement sur le serveur ou bien sur un serveur distant.

Références

[modifier |modifier le code]
  1. (en) « MODBUS APPLICATION PROTOCOL SPECIFICATION »Accès libre[PDF], surModbus.org(consulté le)
  2. (en) « MODBUS MESSAGING ON TCP/IP IMPLEMENTATION GUIDE »[PDF], surModbus.org(consulté le)
  3. « Principe maître-esclave Modbus », surhttps://product-help.schneider-electric.com/(consulté le)
  4. (en) « MODBUS over Serial Line. Specification and Implementation Guide »Accès libre[PDF], surModbus.org(consulté le)
  5. (en) Arnaud Soullié, « DEF CON 25 - ICS Village - Arnaud Soullié - fun with Modbus 0x5a - Nothing New. Still Relevant. »[vidéo], surDEF CON 25(consulté le)
  6. (en) « MODBUS/TCP Security »Accès libre[PDF], surModbus.org(consulté le)

Voir aussi

[modifier |modifier le code]

Articles connexes

[modifier |modifier le code]

Liens externes

[modifier |modifier le code]
v ·m
7.Application
6.Présentation
5.Session
4.Transport
3.Réseau
2.Liaison
1.Physique
v ·m
Protocoles de communication
Processus d'automation
Supervision
Immotique
Power system automation (en)
Automatic meter reading (en)
Automobile /Vehicle bus (en)
Ce document provient de « https://fr.wikipedia.org/w/index.php?title=Modbus&oldid=233346046 ».
Catégories :
Catégories cachées :

[8]ページ先頭

©2009-2026 Movatter.jp