Automatismes Industriels et Réseaux ARS3. Ce qu'il faut retenir sur : MODBUS

Documents pareils
NanoSense. Protocole Modbus de la sonde Particules P4000. (Version 01F)

NOTIONS DE RESEAUX INFORMATIQUES

1.Introduction - Modèle en couches - OSI TCP/IP

2. DIFFÉRENTS TYPES DE RÉSEAUX

Groupe Eyrolles, 2000, 2004, ISBN :

SYSTEME DE GESTION DES ENERGIES EWTS EMBEDDED WIRELESS TELEMETRY SYSTEM

PocketNet SNMP/Modbus

Transmissions série et parallèle

II/ Le modèle OSI II.1/ Présentation du modèle OSI(Open Systems Interconnection)

Chapitre VII : Principes des réseaux. Structure des réseaux Types de réseaux La communication Les protocoles de communication

Enregistreur sans papier avec écran TFT et carte Compact Flash. B Description des interfaces 07.07/

Introduction. Adresses

Chapitre 1: Introduction générale

Administration des ressources informatiques

Ordinateurs, Structure et Applications

TP 2 Réseaux. Adresses IP, routage et sous-réseaux

Informatique Générale Les réseaux

Catalogue & Programme des formations 2015

Le e s tocka k ge g DAS,NAS,SAN

Votre Réseau est-il prêt?

Skype (v2.5) Protocol Data Structures (French) Author : Ouanilo MEDEGAN

Introduction aux Technologies de l Internet

UFR de Mathématiques et Informatique Année 2009/2010. Réseaux Locaux TP 04 : ICMP, ARP, IP

Présentation du modèle OSI(Open Systems Interconnection)

Cisco Certified Network Associate

Ch2 La modélisation théorique du réseau : OSI Dernière maj : jeudi 12 juillet 2007

CONVERTISSEUR RS 232/485 NOTICE

L3 informatique Réseaux : Configuration d une interface réseau

N o t i o n s d e b a s e s u r l e s r é s e a u x C h a p i t r e 2

CLIP. (Calling Line Identification Presentation) Appareil autonome affichant le numéro appelant

Dossier technique. Présentation du bus DMX et Utilisation des options EL13 / EL14 ERM AUTOMATISMES INDUSTRIELS 1 LE PROTOCOLE DMX 2

COMMANDER la puissance par MODULATION COMMUNIQUER

Les Virtual LAN. F. Nolot. Master 1 STIC-Informatique 1

ADSL. Étude d une LiveBox. 1. Environnement de la LiveBox TMRIM 2 EME TRIMESTRE LP CHATEAU BLANC CHALETTE/LOING NIVEAU :

1 Définition et présentation. 2 Le réseau Numéris. 3 Les services. 3.1 Les services Support (Bearer service) SYNTHESE

Le protocole VTP. F. Nolot 2007

Cours n 12. Technologies WAN 2nd partie

SIP. Plan. Introduction Architecture SIP Messages SIP Exemples d établissement de session Enregistrement

Capture, Filtrage et Analyse de trames ETHERNET avec le logiciel Wireshark. Etape 1 : Lancement des machines virtuelles VMWARE et de Wireshark

Cisco Certified Network Associate Version 4

Algorithmique des Systèmes Répartis Protocoles de Communications

Le multiplexage. Sommaire

Plan du Travail. 2014/2015 Cours TIC - 1ère année MI 30

Réseaux Locaux. Objectif du module. Plan du Cours #3. Réseaux Informatiques. Acquérir un... Réseaux Informatiques. Savoir.

Cisco Certified Network Associate

Organisation du module

Le protocole ARP (Address Resolution Protocol) Résolution d adresses et autoconfiguration. Les protocoles ARP, RARP, TFTP, BOOTP, DHCP

Services OSI. if G.Beuchot. Services Application Services Présentation - Session Services Transport - Réseaux - Liaison de Données - Physique

Téléinformatique et télématique. Revenons aux définitions

//////////////////////////////////////////////////////////////////// Administration systèmes et réseaux

Couche application. La couche application est la plus élevée du modèle de référence.

RESEAUX TCP/IP: NOTIONS AVANCEES. Preparé par Alberto EscuderoPascual

Ethernet Industriel Réseaux Ethway Coupleur Ethernet sur Automates Programmables. Plan. Contexte

STI 28 Edition 1 / Mai 2002

Description du logiciel Modbus RTU

Routage Statique. Protocoles de Routage et Concepts. Version Cisco Systems, Inc. All rights reserved. Cisco Public 1

Câblage des réseaux WAN.

Connexion à distance. Pour configurer les automates Beckhoff via un PC de programmation VERSION : 1.0 / PH

Master d'informatique 1ère année Réseaux et protocoles. Couche physique

Protocoles réseaux. Abréviation de Binary Digit. C'est la plus petite unité d'information (0, 1).

L annuaire et le Service DNS

Transmission de données. A) Principaux éléments intervenant dans la transmission

Informatique Générale

NFC Near Field Communication

Contrôle d accès UTIL TP N 1 découverte

LES RESEAUX VIRTUELS VLAN

Sélection du contrôleur

Cours CCNA 1. Exercices

Réseaux IUP2 / 2005 IPv6

RÉSEAUX INFORMATIQUES, MODÈLE OSI ET PROTOCOLE TCP/IP

TABLE DES MATIERES. I. Objectifs page 2. II. Types de réseaux page 2. III. Transmission page 2. IV. Câbles page 3. V.

Présentation et portée du cours : CCNA Exploration v4.0

Logiciels E.Set, E.View et E.View+

Les liaisons SPI et I2C

Master d'informatique 1ère année. Réseaux et protocoles. Architecture : les bases

Rappels réseaux TCP/IP

Commutateur sûr, efficace et intelligent pour petites entreprises

Plan. Programmation Internet Cours 3. Organismes de standardisation

Le service IPv4 multicast pour les sites RAP

Cours des réseaux Informatiques ( )

Mise en place d'un Réseau Privé Virtuel

Algorithmique et langages du Web

Les Réseaux Informatiques

Licence Sciences et Technologies Examen janvier 2010

PIC EVAL Dev Board PIC18F97J60

Présentation et installation PCE-LOG V4 1-5

Haka : un langage orienté réseaux et sécurité

Computer Networking: A Top Down Approach Featuring the Internet, 2 nd edition. Jim Kurose, Keith Ross Addison-Wesley, July ENPC.

ET 24 : Modèle de comportement d un système Boucles de programmation avec Labview.

L ADMINISTRATION Les concepts

Plan. École Supérieure d Économie Électronique. Plan. Chap 9: Composants et systèmes de sécurité. Rhouma Rhouma. 21 Juillet 2014

T500 DUAlTACH. JAQUET T500 DualTach Instrument de mesure et de surveillance équipé de 2 entrées fréquence TACHYMETRE 2 CANAUX

Haute disponibilité avec OpenBSD

Réseaux grande distance

Il se peut que le produit livré diffère de l illustration.

Figure 1a. Réseau intranet avec pare feu et NAT.

Contrôleur de communications réseau. Guide de configuration rapide DN

Evolution de l infrastructure transport

Hubert & Bruno Lundi 12 octobre 2009 SAINT-QUENTIN (02)

Transcription:

Automatismes Industriels et Réseaux ARS3 Ce qu'il faut retenir sur : MODBUS 1. Le protocole (Couche) application... 3 1.1. PDU requête du client vers le serveur.... 3 1.2. PDU réponse du serveur vers le client... 3 1.3. PDU réponse d exception du client vers le serveur.... 4 1.4. Codage des données... 5 2. Implémentation sur liaison série... 6 2.1. Principe du protocole MODBUS maître/esclave.... 6 2.2. Description de la trame MODBUS... 7 2.3. Les deux modes de transmission série... 8 2.3.1. Mode RTU (Remote Terminal Unit)... 8 2.3.2. Mode ASCII (American Standard Code for Information Interchange)... 9 2.4. Déroulement d une communication maître/esclave... 10 2.4.1 Analyse du comportement du maître... 10 2.4.2 Analyse du comportement de l esclave... 11 2.4.3 Diagramme temporelle d une communication maître/esclave... 12 2.5. Interface physique :... 13 Implémentation sur ethernet TCP/IP... 14

ARS3 Geii S3 [2011-20112] Le standard MODBUS, développé par la société MODICON, définie le protocole d échange de la couche application (couche 7 du modèle OSI). Il consiste en une communication de type «client/serveur» entre des dispositifs connectés sur différents types de bus ou réseaux. Client Requête Serveur Réponse Fig 1. Principe de la communication client/serveur Bien qu ancien (depuis 1979), MODBUS reste un des protocoles les plus utilisés de nos jours pour les communications entre automates industriels. Il s adapte au nouveau mode des communications et permet une communication facile entre tout type d architecture de réseau, intégrant par exemple le protocole TCP/IP dans sa version MODBUS TCP/IP. Il est couramment mise en uvre en utilisant : Une transmission série asynchrone sur différents types de médias (paire différentielle suivant les normes RS232, RS485 (la plus utilisée), sur fibre optique, etc.) Ethernet avec le protocol TCP/IP. Page 2

IUT GEII Angoulême 1. Le protocole (Couche) application Le protocole MODBUS définie un simple PDU (Protocol Data Unit) indépendant du support de transmission. Le maillage du protocole sur un bus ou un réseau doit introduire des champs supplémentaires pour constituer l ADU (Application Data Unit). C est le rôle de la couche liaison que nous verrons dans un prochain chapitre. Couche application Couche liaison Le PDU est construit par le client qui initie une transaction. Il se compose : D un code fonction (function code) : Du champ de données (data), Le protocole MODBUS définie 3 sortes de PDU suivant que le dialogue entre client et serveur se passe bien ou non. 1.1. PDU requête du client vers le serveur. Il est le même dans les deux cas. Le code fonction (function code) indique au serveur le type d action à exécuter et le champ de données contient alors des informations complémentaires que le serveur utilise pour mener à bien son action : Adresses des entrée/sortie ou des registres auxquels on veut accéder (en lecture ou en écriture), Décompte des octets dans le champ, Vide (dans le cas ou la fonction ne requiert pas de paramètre) C est comme une fonction à laquelle on passe une suite de paramètres. Nom_fonction(param1, param2, parm3, ) Le protocole application établit le format de la requête initiée par le client. Il est codé sur 1 octet, et les codes valides sont compris dans la plage [1 ; 127]. La plage [128 ; 255] étant réservée et utilisée pour les exceptions (voir liste des fonctions en annexe). 1.2. PDU réponse du serveur vers le client Dans le cas où tout se passe bien, le serveur répond au client en remettant le même code fonction, pour signaler qu il n y a pas d erreur, suivie de la donnée requise dans le cas d une lecteur, ou des même données dans le cas d une écriture. Page 3

ARS3 Geii S3 [2011-20112] Exemple : lecture des sorties tout ou rien 20 à 38 PDU requête du client vers le serveur 0x01 : code de la fonction lecture des sortie tout ou rien 0x0013 : code hexa sur 2 octets de la première sortie 0x0013 : nombre de sorties à lire, codé en hexa sur 2 octets 01 00 13 00 13 PDU réponse du serveur vers le client 01 03 CD 6B 05 0x01 : code de la fonction demandée par le client 0x03 : nombre d octet à suivre 0xCD : état des sortie 27 20 0x6B : état des sortie 35-28 0x05 : état des sortie 38-36 1.3. PDU réponse d exception du client vers le serveur. Si une erreur se produit lors du traitement de la tache demandée par le client, lors de la transmission de données ( erreur lors du calcul du CR). le serveur renvoie le code de la fonction demandée par le client mais mettant son MSB à 1 (cela revient à faire code_fonction+0x80). Dans le champ de données, le serveur indique le type d erreur en plaçant le code correspondant (voir liste en annexe). Exemple : lecture de la sortie située à l adresse 0x04A1 PDU requête du client vers le serveur 0x01 : code de la fonction lecture des sortie tout ou rien 0x04A1 : code hexa sur 2 octets de la première sortie 0x0001 : nombre de sorties à lire, codé en hexa sur 2 octets 01 04 A1 00 01 PDU réponse d exception du serveur vers le client 81 02 0x81 : code de la fonction demandée par le client+0x80 0x02 : code correspondant à une adresse inexistante Page 4

IUT GEII Angoulême 1.4. Codage des données MODBUS utilise une représentation «big-endian» pour les adresses et les données (bigendian défini la façon dont sont placé les donnée en mémoire : le MSB avant le LSB). Le MSB est alors envoyé en premier. Exemple : Si on veut lire le registre 0x01FD, le PDU sera :0301FD0001 0x03 : code de la fonction lecture de registre interne 0x01FD : code hexa sur 2 octets de la première sortie 0x0001 : nombre de registre, codé en hexa sur 2 octets MSB LSB 03 01 FD 00 01 Page 5

ARS3 Geii S3 [2011-20112] 2. Implémentation sur liaison série Ce chapitre s intéresse à l implémentation des couches 1 et 2 du modèle OSI dans le cas d une liaison série sur paire différentielle. L interface RS485 à une paire différentielle (TIA/EIA-485) est la plus couramment utilisée. L interface RS232 (TIA/EIA-232-E) peut également être utilisée mais doit être réservée à de courtes liaisons point à point. Le protocole MODBUS sur une liaison série est un protocole de type «maître / esclave». La couche application MODBUS spécifie une communication de type «client/serveur». La couche de liaison définie un protocole spécifique à la liaison série pour les échanges de requêtes MODBUS entre un «maître» et un ou plusieurs «esclaves». Dans ces conditions, le rôle de «client» est assuré par le «maître» et les différents «esclaves» jouent alors le rôle de «serveurs». La topologie retenue est une topologie en bus. Le maître et les différents esclaves sont donc connectés sur le même média.( plus de détail dans la section ) 2.1. Principe du protocole MODBUS maître/esclave. Les points principaux du protocole d échange sont les suivants : Un seul maître communique à la fois sur le bus et un ou plusieurs esclaves (247 max) l écoutent, Une communication sur le bus est toujours à l initiative du maître, Les esclaves (les serveurs) ne transmettent jamais de données sans avoir reçue une requête du maître (le client), Les esclaves ne communiquent jamais entre eux, Le maître n initie qu une requête à la fois. Pas de nouvelle requête tant qu il n y a pas de réponses de l esclave. Le maître a deux méthodes pour établir la communication et émettre une requête : Le mode «DIFFUSION» (BROADCAST) : envoie d une requête (request) à l ensemble des esclaves. Une requête en mode diffusion est forcement en écriture et aucune réponse n est attendue. L adresse «0x00» est réservée pour ce mode de communication. Page 6

IUT GEII Angoulême Le mode «INDIVIDUEL» (UNICAST) : le maître s adresse à un seul esclave. Après traitement de la requête, celui-ci renvoie une réponse (reply) au maître. Un esclave doit avoir une adresse unique (comprise entre 1 et 247). Les règles d adressage sont les suivantes : Le maître n a pas d adresse, seul les esclaves en ont une, L adresse 0 est réservée au mode de diffusion, Les adresses des esclaves sont comprises entre 1 et 247 (0x01 et 0xF7), Les adresses 248 à 255 sont réservées, Les adresses doivent être uniques sur le bus (2 esclaves ne peuvent pas avoir la même adresse). 2.2. Description de la trame MODBUS Rappel : le protocole d application définie le PDU constitué du code fonction, suivi des paramètres utiles à la fonction. Dans le cadre de communication série, la couche liaison vient rajouter un champ d adresse (Address Field) dans lequel le maître place l adresse de l esclave et un champ de contrôle et détection d erreur. Adresse de l esclave Contrôle d erreur Lorsque l esclave répond (cas sans erreur), il replace sa propre adresse dans le champ d adresse et : Soit les mêmes données dans le cas d une commande d écriture, Soit les données demandées dans le cas d une action de lecture. Le champ CRC permet de détecter les erreurs de transmission. Le contenu du champ CRC (ou LRC) est le résultat d un calcul de redondance sur le contenu du message. La méthode de calcul utilisée, CRC ou LRC, dépend du mode de transmission choisi, dans le même ordre RTU ou ASCII. Le maître calcul le CRC(ou LRC) de son message et l ajoute en fin de trame. A la réception, l esclave calcule le CRC (ou LRC) sur le message reçu et le compare à celui envoyé par le maître. S il est différent, il y a des erreurs dans la transmission des données et l esclave renvoie une exception avec le même protocole. Page 7

ARS3 Geii S3 [2011-20112] 2.3. Les deux modes de transmission série On définie dans ce paragraphe la constitution des messages (nombre de bit) mis sur la liaison physique. Tous les équipements MODBUS doivent pouvoir implémenter le mode RTU qui doit être le mode par défaut. L un ou l autre des modes doit être configurable par l utilisateur mais le mode de transmission doit être le même sur tout les systèmes branchés sur le bus. 2.3.1. Mode RTU (Remote Terminal Unit) Dans ce mode de transmission la trame MODBUS est décrite ci-dessous: En mode RTU, la transmission d un octet nécessite l utilisation de 11 bits selon l organisation suivante : 1 bit de START 8 bits de données, le LSB est envoyé en premier, 1 bit de parité, parité paire par défaut (même si on peut configurer d autre parité voir aucune), 1 bit de STOP (2 dans le cas où il n y a pas de parité). START LSB DATA MSB PARITE STOP Chaque octet de la trame est envoyé dans l ordre (de la gauche vers la droite) et chaque trame est envoyée suivant la «syntaxe» suivante : START DATA PARITE STOP La détection du début et de fin de trame est assurée par un silence d au moins trois octets et demi (3,5x11bits) entre 2 trames. Le code utilisé pour la détection d erreur est le CRC (Cyclical Redundancy Checking) Page 8

IUT GEII Angoulême 2.3.2. Mode ASCII (American Standard Code for Information Interchange) Dans ce mode de transmission, un octet est codé par 2 caractères ASCII et la trame MODBUS prend alors la forme décrite ci-dessous : En mode ASCII, la transmission d un caractère nécessite l utilisation de 10 bits selon l organisation suivante : 1 bit de START 7 bits de données, le LSB est envoyé en premier, 1 bit de parité, parité paire par défaut (même si on peut configurer d autre parité, voir aucune), 1 bit de STOP (2 dans le cas où il n y a pas de parité). START LSB DATA MSB PARITE STOP Chaque caractère de la trame est envoyé dans l ordre (de la gauche vers la droite) et chaque trame est envoyée suivant la «syntaxe» suivante : La détection du début et de fin de trame est assurée par l émission du caractère «:» (0x3A en hexa) comme caractère de START et de la chaîne «CR LF» (Carriage Returne 0x0D, Line Feed 0x0A) en fin de trame. Le code utilisé pour la détection d erreur est le LRC (Longitudinal Redundancy Checking), Page 9

ARS3 Geii S3 [2011-20112] 2.4. Déroulement d une communication maître/esclave Pour bien comprendre le déroulement d une communication maître/esclave, on doit tout d abord s intéresser au comportement du maître, de l esclave puis 2.4.1. Analyse du comportement du maître L état «Idle» est l état initial qui fait suite à la mise sous tension. Une requête ne peut être émise qu à partir de cet état. Une fois qu il a émis une requête, le maître ne peut pas envoyer une autre requête tant qu il n est pas revenu dans l état initial. En mode diffusion, le maître n attend aucune réponse des esclaves. Il doit cependant attendre un certain temps «Turnaround delay» pour permettre aux esclaves de recevoir la donnée et de l écrire dans leur registre ou sur leur I/O. Typiquement ce temps est de 100ms à 200ms. En mode individuel, le maître émet une requête sur le bus et attend une réponse de l esclave. Il lance en parallèle un compteur qui lui permet de définir le «Time Out Response», temps maximum (typiquement de 1s à 2s) au delà duquel le maître interprète une erreur et retente sa requête. Le nombre de tentative est configurable au niveau du setup du maître. Quand une réponse est reçue, le maître vérifie les données, lance son traitement puis se remet dans son état initial. Page 10

IUT GEII Angoulême 2.4.2. Analyse du comportement de l esclave Notes (de l étudiant) : Page 11

ARS3 Geii S3 [2011-20112] 2.4.3. Diagramme temporelle d une communication maître/esclave Page 12

IUT GEII Angoulême 2.5. Interface physique : Les nouveaux systèmes utilisant MODBUS doivent être mise en uvre sur une interface de type EIT/TIA-485 standard (plus connu sous le nom RS485) qui permet aussi bien les liaisons point à point que multi-points dans une configuration 2 fils. Il peut aussi utiliser l interface RS485 en 4 fils ou l interface RS232 (point à point sur courte distance uniquement). Dans les systèmes MODBUS tous les éléments du système sont connectés en parallèle sur le câble principale ( Trunk ), dans le cas d une liaison 2 fils (2 wires),voir ci-dessous, on utilise 3 fils (2 pour la paire différentielle, 1 pour le commun). Dérivation les plus courtes possibles (<20m) Les résistances de terminaison LT (Line Termination) sont nécessaires pour minimiser les problèmes de réflexion en bout de câble. Il doit y en avoir 1 à chaque extrémité de la paire différentielle principale (trunk). Leur valeur doit être de 150Ω 0.5W, mais dans le cas où la paire principale est polarisée (Pull up et Pull Down) le choix doit se portée vers l association en parallèle d une résistance de 120Ω et d un condensateur de 1 nf 10V min. Quand il n y a pas d activité sur la liaison, la ligne est soumise aux interférences extérieures. Pour s affranchir de ces problèmes, on place un réseau de polarisation (Pull up et Pull Down). La valeur des résistances doit être comprise entre 450 et 650 Ω et doivent être placées une seule fois sur la ligne. Généralement, elles sont placées au niveau du maître. La vitesse de transmission est de 9600bps et 19200 bps (valeur par défaut). L interface mécanique (connecteur) est principalement une prise de type RJ45 dont le câblage est donné cidessous. Page 13

ARS3 Geii S3 [2011-20112] 3. Implémentation sur ethernet TCP/IP Un système de communication utilisant MODBUS TCP/IP peut contenir différents types de systèmes comme : Un client et un serveur MODBUS TCP/IP connectés sur un réseau TCP/IP, Des circuits d interconnexion comme des ponts, des routeurs ou des passerelles qui permettent la connexion de circuits utilisant la communication sur liaison série vue précédemment. Comme nous l avons déjà vue, la couche application fournie le PDU qui se compose du code de la fonction à mettre en uvre, suivie des données utiles à la fonction. C est au niveau de la construction de l ADU (Application Data Unit) que les différences apparaissent. Rappelez vous, dans le cas de la liaison série, on venait rajouter l adresse de l esclave en début de trame et un contrôle d erreur en fin de trame. En mode TCP/IP, on utilise un «en-tête» (header) particulier appelé le MBAP header (MODBUS Application Protocol header). Description des champs constituant l en-tête MBAP : Champ Taille Description Coté client Coté serveur Transaction 2 octets Identification Initialisé par le client Recopié par le identifier serveur dans sa réponse à partir de la Protocol identifier Page 14 2 octets Toujours à 0 pour indiquer le protocole MODBUS Lenght 2 octets Nombre d octet à suivre incluant le «unit identifier» et les champs de données. Unit identifier 1 octet @ esclave connecté sur une liaison série ou 0xFF si l équipement est directement relié au réseau par une carte Ethernet. requête reçue Initialisé par le client Recopié par le serveur dans sa réponse à partir de la requête reçue Initialisé par le client lors d une requête Initialisé par le serveur dans le cas d une réponse Initialisé par le client Recopié par le serveur dans sa réponse à partir de la requête reçue Toutes les trames sont envoyées via TCP/IP sur le port 502, port d écoute par défaut.

IUT GEII Angoulême Remarque sur l unit identifier : ce champ est utilisé pour le routage d un système situé sur un sous réseau au format MODBUS. Si le serveur est connecté à un sous réseau MODBSU série ou adressé par l intermédiaire d un pont ou d une passerelle, l «unit identifier» est nécessaire pour identifier l esclave connecté sur le sous réseau. Dans ce cas, l unit identifier contient l adresse de l esclave. Lorsqu on adresse un serveur MODBUS possédant une liaison directe TCP IP, l unit identifier n est plus utile, car adressé directement par l adresse IP. Dans ce cas on place 0xFF dans l «unit identifier». Page 15