ARS 3 MODBUS Dpartement GEII Anne universitaire 2011

  • Slides: 42
Download presentation
ARS 3 : MODBUS Département GEII – Année universitaire 2011 -2012 1

ARS 3 : MODBUS Département GEII – Année universitaire 2011 -2012 1

MODBUS Développé par MODICON en 1979 o Protocole d ’échange « CLIENT/SERVEUR » o

MODBUS Développé par MODICON en 1979 o Protocole d ’échange « CLIENT/SERVEUR » o Requête (request) Client Serveur Réponse (reply) 2

MODBUS Un des plus utilisés dans la communication entre automates industriels o s ’adapte

MODBUS Un des plus utilisés dans la communication entre automates industriels o s ’adapte au nouvelle technologie: intègre TCP/IP o permet une communication sur différents supports entre différents équipements o 3

MODBUS 4

MODBUS 4

MODBUS o N ’implémente que les couches 1, 2 et 7 du model OSI,

MODBUS o N ’implémente que les couches 1, 2 et 7 du model OSI, sauf sous TCP/IP 5

MODBUS 1 Protocol Application 6

MODBUS 1 Protocol Application 6

Protocol Application o Couche application définie PDU (Protocol Data Unit) indépendant de la couche

Protocol Application o Couche application définie PDU (Protocol Data Unit) indépendant de la couche liaison et du support de transmission Adresse Code fonction Données Contrôle Couche application Couche liaison o Couche liaison rajoute des champs pour constituer ADU (Application Data Unit) 7

PDU Client ->Serveur Client Code fonction Data Envoi une requête o Serveur Code fonction

PDU Client ->Serveur Client Code fonction Data Envoi une requête o Serveur Code fonction 1 octet – code fonction [1; 127] – code exception [128; 255] o Data : n octets , dépend du code fonction et contient habituellement des variables. Peut être nul. 8

PDU Serveur ->Client o Si pas d ’erreur Client Serveur Attend la réponse Exécute

PDU Serveur ->Client o Si pas d ’erreur Client Serveur Attend la réponse Exécute l ordre, renvoie la réponse Code fonction Data Celui envoyé par le client • Les données demandées en mode lecture • Les données reçues en mode écriture 9

01|00|13 0 x 01 : code de la fonction lecture des sorties tout ou

01|00|13 0 x 01 : code de la fonction lecture des sorties tout ou rien 0 x 0013 : code hexa sur 2 octets de la première sortie 0 x 0013 : nombre de sorties à lire, codé en hexa sur 2 octets Serveur Client 0 x 01 : code de la fonction demandée par le client Sortie 27 à 20 0 x. CD=>11001101 MSB LSB 01|03|CD|6 B|05 0 x 03 : nombre d’octet à suivre 0 x. CD : état des sorties 27 – 20 0 x 6 B : état des sorties 35 -28 0 x 05 : état des sorties 38 - 36 10

o Si erreur! Client Serveur Attend la réponse Détection d ’erreur, renvoie la réponse

o Si erreur! Client Serveur Attend la réponse Détection d ’erreur, renvoie la réponse Code fonction Code Erreur Celui envoyé par le client mais en mettant le MSB à 1 11

01|04|A 1|00|01 0 x 01 : code de la fonction lecture des sorties tout

01|04|A 1|00|01 0 x 01 : code de la fonction lecture des sorties tout ou rien 0 x 04 A 1 : code hexa sur 2 octets de la première sortie 0 x 0001 : nombre de sorties à lire, codé en hexa sur 2 octets Serveur Client 81|02 0 x 81 : code de la fonction demandée par le client+0 x 80 0 x 02 : code correspondant à une adresse inexistante 12

MODBUS 2 MODBUS sur liaison série 13

MODBUS 2 MODBUS sur liaison série 13

MODBUS série Couche 1 et 2 du model OSI o liaison 2 fils sur

MODBUS série Couche 1 et 2 du model OSI o liaison 2 fils sur interface EIA/TIA-485 (RS 485) o protocole de type maître/esclave o – maitre -> Client – esclave(s) -> Serveur(s) o topologie en bus 14

protocole maitre/esclave 1 seul maître parle, le(s) esclave(s) écoute(nt) o communication toujours à l

protocole maitre/esclave 1 seul maître parle, le(s) esclave(s) écoute(nt) o communication toujours à l ’initiative du maître o esclaves ne communiquent pas entre eux o 2 modes de communication o – diffusion (broadcast) – individuel (unicast) 15

Mode Broadcast Requête envoyée à tous les esclaves o Requête d ’écriture uniquement o

Mode Broadcast Requête envoyée à tous les esclaves o Requête d ’écriture uniquement o Requête envoyée à l ’adresse 0 x 00 o Pas de réponse des esclaves o 16

Mode Unicast Maitre adresse 1 seul esclave à la fois o Après traitement de

Mode Unicast Maitre adresse 1 seul esclave à la fois o Après traitement de la demande, esclave renvoie sa réponse o 17

Mode Unicast o Règles d ’adressage – maître n ’a pas d ’adresse –

Mode Unicast o Règles d ’adressage – maître n ’a pas d ’adresse – adresse 0 réservée au mode broadcast – adresses esclaves [1; 247] – adresses [248; 255] sont réservées – une adresse unique pour chaque esclave 18

TRAME MODBUS L application fournie le PDU o la couche liaison rajoute les informations

TRAME MODBUS L application fournie le PDU o la couche liaison rajoute les informations o – adresse du récepteur – détection d ’erreur de transmission 19

trame MODBUS Tout échange contient deux trames : 1. une demande du maître …

trame MODBUS Tout échange contient deux trames : 1. une demande du maître … 2. … et une réponse de l'esclave ! TRAME o Chaque trame contient 4 types d'informations ADU= Application Data Unit PDU modbus Adresse Code fonction data PDU= Protocol Data Unit CRC Ou LRC 1 octet X octets 2 octets Entre 1 et 247 Identifie Le destinataire Entre 1 et 127 Complément d'informations (dépend du code Fonction) Contrôle de validité 20

Contrôle d ’erreur MAITRE N°esclave Code fonction Esclave Données CRC 16 N°esclave Code fonction

Contrôle d ’erreur MAITRE N°esclave Code fonction Esclave Données CRC 16 N°esclave Code fonction Données CRC 16 Calcul du CRC 16 Comparaison des CRC 16 Ne renvoie rien Exécute l ’action et répond au client CRC 16 identique 21

MODBUS série o o 2 modes de transmission – RTU (Remote Terminal Unit) –

MODBUS série o o 2 modes de transmission – RTU (Remote Terminal Unit) – ASCII (American Standard Code for Information Interchange) le mode de transmission doit être configuré de façon identique pour tous les équipements branchés sur le bus. 22

Mode RTU o Rappel Trame MODBUS o Envoi d ’un octet sur le support

Mode RTU o Rappel Trame MODBUS o Envoi d ’un octet sur le support physique – 1 bit de start – 8 bits de donnée (LSB en premier) – 1 bit de parité (paire) – 1 bit de stop 23

Transmission RTU Start 1 bit Data 8 bits parité 1 bit Stop 1 bit

Transmission RTU Start 1 bit Data 8 bits parité 1 bit Stop 1 bit Forme physique des données La detection d ’erreur est assurée par un calcul de type CRC Cyclical Redundancy Checking 24

Mode ASCII o Trame MODBUS constituée de 2 caractères ASCII pour coder un octet

Mode ASCII o Trame MODBUS constituée de 2 caractères ASCII pour coder un octet o Envoi d ’un caractère sur le support physique – 1 bit de start – 7 bits de donnée (LSB en premier) – 1 bit de parité (paire) – 1 bit de stop 25

Transmission RTU Contrairement au mode RTU, la détection de debut et fin de trame

Transmission RTU Contrairement au mode RTU, la détection de debut et fin de trame n ’est pas assuré par des silences sur la ligne, mais par: • un caractère de « start » « : » (0 x 3 A) • une chaîne de fin constitué de 2 commandes « CR LF » (0 x 0 D et 0 x 0 A) Start 1 bit Data 7 bits parité 1 bit Stop 1 bit Forme physique des données La detection d ’erreur est assurée par un calcul de type LRC Logitudinal Redundancy Checking 26

Communication maître esclave o Comportement du maître Traitement erreur fini/ Requête envoyée en diffusion

Communication maître esclave o Comportement du maître Traitement erreur fini/ Requête envoyée en diffusion / run compteur Taround Idle Attendre Taround expiré Requête envoyée / run compteur Time out Traitement réponse Réponse reçue/ arrêt compteur Tout Erreur dans la trame/ Attente réponse Traitement erreur Réponse reçue/ Time out expiré/ 27

Communication maître esclave o Comportement de l ’esclave 28

Communication maître esclave o Comportement de l ’esclave 28

Communication maître esclave o Evolution temporelle d ’une communication 29

Communication maître esclave o Evolution temporelle d ’une communication 29

Interface physique o Nouveau système sur RS 485 standard – 2 fils – logique

Interface physique o Nouveau système sur RS 485 standard – 2 fils – logique négative – 9600 ou 19200 bps (par défaut) – connectique RJ 45 30

Interface physique o Topologie en bus 31

Interface physique o Topologie en bus 31

Interface physique o Câblage 2 fils (typique) 32

Interface physique o Câblage 2 fils (typique) 32

Interface Physique o LT: Termination Line, limte les problèmes de réflexion sur la ligne

Interface Physique o LT: Termination Line, limte les problèmes de réflexion sur la ligne – 150 W – 120 W // 1 n. F o Pull-Up Pull-Down: polarisation de la ligne, assure un état stable en l’absence de communication sur la ligne 33

Interface physique o RJ 45 2 fils 34

Interface physique o RJ 45 2 fils 34

Interface physique o Solution 4 fils 35

Interface physique o Solution 4 fils 35

Interface Physique o Connectique RJ 45 en 4 fils 36

Interface Physique o Connectique RJ 45 en 4 fils 36

Interface physique o Passage de 4 fils à 2 fils 37

Interface physique o Passage de 4 fils à 2 fils 37

MODBUS 3 MODBUS sur TCP/IP 38

MODBUS 3 MODBUS sur TCP/IP 38

MODBUS TCTIP o Permet la communication entre équipements utilisant différents mode de communication 39

MODBUS TCTIP o Permet la communication entre équipements utilisant différents mode de communication 39

trame MODBUS sous TCP/IP Le serveur est sur le PORT : 502 TRAME MODBUS/TCP

trame MODBUS sous TCP/IP Le serveur est sur le PORT : 502 TRAME MODBUS/TCP Une en tête spécifique est utilisée en TCP/IP pour identifier l'APU MODBUS : MBAP MODBUS APPLICATION PROTOCOL HEADER ADU= Application Data Unit PDU= Protocol Data Unit En tête MBAP Code fonction data L'@ esclave MODBUS est remplacée par l'octet Unit Identifier de l'en tête MBAP 40

trame MODBUS Structure du MBAP champ longueur description Identifiant de transaction 2 octets Identifiant

trame MODBUS Structure du MBAP champ longueur description Identifiant de transaction 2 octets Identifiant d'une transaction de type MODBUS: Demande/réponse Identifiant de protocol 2 octets Protocole MODBUS = 0 taille 2 octets Nombre d'octets à suivre (UI+DATA) Identifiant D'unité 1 octet Remplace la notion d'@ esclave sur le réseau TCP/IP 41

Protocole MODBUS Services supportés par MODBUS o Voici la liste des codes fonction (tous

Protocole MODBUS Services supportés par MODBUS o Voici la liste des codes fonction (tous les équipements ne supportent pas tous les codes fonction) Code Fonction 01 h Lecture de n bits de sortie , param 1=adresse param 2=quantité 02 h Lecture de n bits d'entrée , param 1=adresse param 2=quantité 03 h Lecture de n mots internes , param 1=adresse param 2=quantité 04 h Lecture de n mots registre d'entrée , param 1=adresse param 2=quantité 05 h Écriture d'un bit interne ou de sortie, param 1=adresse param 2=0000 ('0') ou FF 00('1') 06 h Écriture d'un mot registre ou registre , param 1=adresse param 2=valeur 15 h Écriture de n bits internes ou de sortie consécutifs , param 1=adresse param 2=Nbre bits, param 3=Nbre d'octets, params[i]=valeurs 16 h Écriture de n mots internes ou de registres consécutifs , param 1=adresse param 2=Nbre mots, param 3=Nbre d'octets, params[i]=valeurs 42