reseaux:modbus:generalites

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
reseaux:modbus:generalites [2021/11/19 15:28] philreseaux:modbus:generalites [2022/08/08 10:09] (Version actuelle) – [2. Généralités] phil
Ligne 3: Ligne 3:
 ===== Modbus ===== ===== Modbus =====
 {{ :reseaux:modbus:modbus0.png?nolink&250|}} {{ :reseaux:modbus:modbus0.png?nolink&250|}}
-[Mise à jour le 19/11/2021]+[Mise à jour le 8/8/2022]
  
   * **Source** : Mooc Fun "Programmer l'internet des objets"   * **Source** : Mooc Fun "Programmer l'internet des objets"
      
-  * **Vidéo** sur YouTube<html><a href="https://www.youtube.com/watch?v=Jj9Tmci7gXU&t=8s" target="_blank">Vidéo de présentation</a></html>+  * **Vidéos** sur YouTube  
 +      * <html><a href="https://www.youtube.com/watch?v=Jj9Tmci7gXU&t=8s" target="_blank">Les principes généraux de MODBUS</a></html> 
 +      * <html><a href="https://www.youtube.com/watch?v=mnRiYaYt2uI&t=1s" target="_blank">Exemple de MODBUS avec TCP/IP</a></html>
  
 ==== 1. Historique === ==== 1. Historique ===
Ligne 14: Ligne 16:
  
 ==== 2. Généralités ==== ==== 2. Généralités ====
-À l’origine, Modbus était construit sur un bus série qui connectait différents équipements appelé secondaires ou slaves et un primaire ou master qui gère les communications. Chaque secondaire a un numéro unique ou adresse. Les adresses sont comprises entre 1 et 247. Le primaire n’a pas besoin d’une adresse puisque toutes les communications ont lieu avec lui. Le primaire envoie une requête au secondaire et le secondaire répond au primaire. Des communications directes entre deux secondaires ne sont pas possibles.+  * **Vidéo** sur YouTube: <html><a href="https://www.youtube.com/watch?v=Jj9Tmci7gXU&t=8s" target="_blank">Les principes généraux de MODBUS</a></html> 
 + 
 +À l’origine, Modbus était construit sur un **bus série** qui connectait différents équipements appelé secondaires ou **slaves** et un primaire ou **master** qui gère les communications. Chaque secondaire a un **numéro unique** ou adresse. Les adresses sont comprises **entre 1 et 247**. Le primaire n’a pas besoin d’une adresse puisque toutes les communications ont lieu avec lui. Le primaire envoie une requête au secondaire et le secondaire répond au primaire. Des communications directes entre deux secondaires ne sont pas possibles.
  
 Un équipement Modbus gère l'information sous forme des registres : Un équipement Modbus gère l'information sous forme des registres :
Ligne 21: Ligne 25:
   * les registres sur **16 bits**. Ils sont utilisés pour représenter une valeur comme un courant électrique, une température, une vitesse de rotation… De même, si leur valeur ne peut être que lue par le primaire, il s'agit d'un **//input register//** sinon, si elle peut être également modifiée par le primaire, il est appelé **//holding register//**.   * les registres sur **16 bits**. Ils sont utilisés pour représenter une valeur comme un courant électrique, une température, une vitesse de rotation… De même, si leur valeur ne peut être que lue par le primaire, il s'agit d'un **//input register//** sinon, si elle peut être également modifiée par le primaire, il est appelé **//holding register//**.
  
-Un équipement Modbus peut avoir jusqu’à 10000 registres de ces 4 catégories.+Un équipement Modbus peut avoir jusqu’à **10000 registres** de ces **4 catégories**. 
 +{{ :reseaux:modbus:modbus2.png?nolink&650 |}} 
 + 
 +<callout type="primary" icon="true">Modbus est un protocole **requête/réponse**. Le primaire envoie une requête à l’adresse d’un équipement pour lire ou écrire un de ses registres.</callout> 
 +{{ :reseaux:modbus:modbus4.png?nolink&650 |}} 
 + 
 +Une trame Modbus est une séquence de caractères commençant par un octet avec l’adresse du secondaire, suivi d’une commande (ou code de fonction) spécifique à chaque catégorie de registre : 
 + 
 +  * **1** pour lire un coil 
 +  * **2** pour lire un discrete input 
 +  * **3** pour lire un input register 
 +  * **4** pour lire un holding register 
 +  * **5** pour écrire un holding register et 
 +  * **6** pour écrire un input register 
 + 
 +La suite de la trame contient les données, puis un CRC pour valider qu’il n’y a pas d’erreur de transmission dans la trame. 
 + 
 +  
 + 
 +La partie donnée peut être différente dans la requête et la réponse. 
 + 
 +Par exemple, pour lire un holding register, la requête contient l’adresse du premier registre à lire, et le nombre de registres à lire. La réponse contient le nombre d’octets transmis suivi de leur valeur. 
 + 
 +Pour écrire sur un registre, les données de la trame seront l’adresse du registre et les données à écrire. La réponse est le même message. 
 + 
 + 
 +=== Exemple en vidéo === 
 +  * <html><a href="https://www.youtube.com/watch?v=mnRiYaYt2uI&t=1s" target="_blank">Exemple de MODBUS avec TCP/IP</a></html>
  • reseaux/modbus/generalites.1637332087.txt.gz
  • Dernière modification : 2021/11/19 15:28
  • de phil