1 Département GEII – Année universitaire 2011-2012 ARS3 : ARS3 : MODBUS MODBUS
1 Département GEII – Année universitaire 2011-2012 ARS3 : ARS3 : MODBUS MODBUS 2 MODBUS Développé par MODICON en 1979 Protocole d ’échange « CLIENT/SERVEUR » Client Serveur Requête (request) Réponse (reply) 3 MODBUS Un des plus utilisés dans la communication entre automates industriels s ’adapte au nouvelle technologie: intègre TCP/IP permet une communication sur différents supports entre différents équipements 4 MODBUS 5 MODBUS N ’implémente que les couches 1, 2 et 7 du model OSI, sauf sous TCP/IP 6 MODBUS Protocol Protocol Application Application 1 7 Protocol Application Couche application définie PDU (Protocol Data Unit) indépendant de la couche liaison et du support de transmission Couche application Code fonction Données Couche liaison Adresse Contrôle Couche liaison rajoute des champs pour constituer ADU (Application Data Unit) 8 PDU Client ->Serveur Code fonction 1 octet – code fonction [1;127] – code exception [128;255] Data : n octets , dépend du code fonction et contient habituellement des variables. Peut être nul. Client Envoi une requête Serveur Code fonction Data 9 PDU Serveur ->Client Si pas d ’erreur Client Attend la réponse Serveur Exécute l ordre, renvoie la réponse Code fonction Data •Les données demandées en mode lecture •Les données reçues en mode écriture Celui envoyé par le client 10 0x01 : code de la fonction lecture des sorties 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 0x01 : code de la fonction demandée par le client 0x03 : nombre d’octet à suivre 0xCD : état des sorties 27 – 20 0x6B : état des sorties 35-28 0x05 : état des sorties 38 - 36 01|03|CD|6B|05 Client Serveur 0xCD=>11001101 Sortie 27 à 20 LSB MSB 11 Si erreur! Client Attend la réponse Serveur Détection d ’erreur, renvoie la réponse Code fonction Code Erreur Celui envoyé par le client mais en mettant le MSB à 1 12 0x01 : code de la fonction lecture des sorties 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 81|02 Client Serveur 0x81 : code de la fonction demandée par le client+0x80 0x02 : code correspondant à une adresse inexistante 13 MODBUS MODBUS sur MODBUS sur liaison série liaison série 2 14 MODBUS série Couche 1 et 2 du model OSI liaison 2 fils sur interface EIA/TIA-485 (RS485) protocole de type maître/esclave – maitre -> Client – esclave(s) -> Serveur(s) topologie en bus 15 protocole maitre/esclave 1 seul maître parle, le(s) esclave(s) écoute(nt) communication toujours à l ’initiative du maître esclaves ne communiquent pas entre eux 2 modes de communication – diffusion (broadcast) – individuel (unicast) 16 Mode Broadcast Requête envoyée à tous les esclaves Requête d ’écriture uniquement Requête envoyée à l ’adresse 0x00 Pas de réponse des esclaves 17 Mode Unicast Maitre adresse 1 seul esclave à la fois Après traitement de la demande, esclave renvoie sa réponse 18 Mode Unicast 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 19 TRAME MODBUS L application fournie le PDU la couche liaison rajoute les informations – adresse du récepteur – détection d ’erreur de transmission 20 trame MODBUS Chaque trame contient 4 types d'informations TRAME Tout échange contient deux trames : 1. une demande du maître … 2. … et une réponse de l'esclave ! Adresse Code fonction data CRC Ou LRC 1 octet Entre 1 et 127 PDU modbus X octets Complément d'informations (dépend du code Fonction) 1 octet Entre 1 et 247 Identifie Le destinataire 2 octets Contrôle de validité ADU= Application Data Unit PDU= Protocol Data Unit 21 Contrôle d ’erreur MAITRE N°esclave Code fonction Données CRC16 Calcul du CRC16 Comparaison des CRC16 Esclave N°esclave Code fonction Données CRC16 CRC16 identique Ne renvoie rien Exécute l ’action et répond au client Calcul du CRC16 22 MODBUS série 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. 23 Mode RTU 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 Rappel Trame MODBUS 24 Transmission RTU Start Stop Data parité 1 bit 8 bits 1 bit 1 bit Forme physique des données La detection d ’erreur est assurée par un calcul de type CRC Cyclical Redundancy Checking 25 Mode ASCII 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 Trame MODBUS constituée de 2 caractères ASCII pour coder un octet 26 Transmission RTU Start Stop Data parité 1 bit 7 bits 1 bit 1 bit Forme physique des données 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 » « : » (0x3A) • une chaîne de fin constitué de 2 commandes « CR LF » (0x0D et 0x0A) La detection d ’erreur est assurée par un calcul de type LRC Logitudinal Redundancy Checking 27 Communication maître esclave Comportement du maître Idle Attendre Taround Attente réponse Traitement réponse Traitement erreur Time out expiré/ Réponse reçue/ Requête envoyée / run compteur Time out Réponse reçue/ arrêt compteur Tout Erreur dans la trame/ Traitement erreur fini/ Requête envoyée en diffusion / run compteur Taround Taround expiré 28 Communication maître esclave Comportement de l ’esclave 29 Communication maître esclave Evolution temporelle d ’une communication 30 Interface physique Nouveau système sur RS485 standard – 2 fils – logique négative – 9600 ou 19200 bps (par défaut) – connectique RJ45 31 Interface physique Topologie en bus 32 Interface physique Câblage 2fils (typique) 33 Interface Physique LT: Termination Line, limte les problèmes de réflexion sur la ligne – 150 – 120 // 1nF Pull-Up Pull-Down: polarisation de la ligne, assure un état stable en l’absence de communication sur la ligne 34 Interface physique RJ45 2 fils 35 Interface physique Solution 4 fils 36 Interface Physique Connectique RJ45 en 4 fils 37 Interface physique Passage de 4 fils à 2fils 38 MODBUS MODBUS sur MODBUS sur TCP/IP TCP/IP 3 39 MODBUS TCTIP Permet la communication entre équipements utilisant différents mode de communication 40 trame MODBUS Une en tête spécifique est utilisée en TCP/IP pour identifier l'APU MODBUS : MBAP MODBUS APPLICATION PROTOCOL HEADER TRAME MODBUS/TCP MODBUS sous TCP/IP En tête MBAP Code fonction data ADU= Application Data Unit PDU= Protocol Data Unit L'@ esclave MODBUS est remplacée par l'octet Unit Identifier de l'en tête MBAP Le serveur est sur le PORT : 502 41 trame MODBUS Structure du MBAP champ longueur description Identifiant de transaction Identifiant de protocol taille Identifiant D'unité 2 octets 2 octets 2 octets 1 octet Identifiant d'une transaction de type MODBUS: Demande/réponse Protocole MODBUS = 0 Nombre d'octets à suivre (UI+DATA) Remplace la notion d'@ esclave sur le réseau TCP/IP 42 Protocole MODBUS Voici la liste des codes fonction (tous les équipements ne supportent pas tous les codes fonction) Services supportés par MODBUS Écriture de n mots internes ou de registres consécutifs ,param1=adresse param2=Nbre mots, param3=Nbre d'octets, params[i]=valeurs 16h Écriture de n bits internes ou de sortie consécutifs ,param1=adresse param2=Nbre bits, param3=Nbre d'octets, params[i]=valeurs 15h Écriture d'un mot registre ou registre ,param1=adresse param2=valeur 06h Écriture d'un bit interne ou de sortie,param1=adresse param2=0000 ('0') ou FF00('1') 05h Lecture de n mots registre d'entrée ,param1=adresse param2=quantité 04h Lecture de n mots internes ,param1=adresse param2=quantité 03h Lecture de n bits d'entrée ,param1=adresse param2=quantité 02h Lecture de n bits de sortie ,param1=adresse param2=quantité 01h Fonction Code uploads/Management/ cm-modbus.pdf
Documents similaires
-
16
-
0
-
0
Licence et utilisation
Gratuit pour un usage personnel Attribution requise- Détails
- Publié le Aoû 14, 2021
- Catégorie Management
- Langue French
- Taille du fichier 0.5005MB