Principe des échanges Modbus

Les échanges Modbus se font à l'initiative du maître, c'est-à-dire le PC dans notre cas.

La carte TickTock associée à la carte Arduino Uno est un esclave Modbus et se retrouve aux ordres du maître pour recevoir ou bien envoyer des informations.

On peut définir deux types d'échange :

  • envoi par le maître de valeurs logiques ou numériques, on parle d'écriture ;

  • réception par le maître de valeurs logiques ou numériques, on parle de lecture.

Le maître lance des requêtes de type écriture vers l'esclave lorsqu'il veut modifier les sorties physiques de l'esclave.

Il lance des requêtes de type lecture vers l'esclave lorsqu'il veut connaître les valeurs des entrées physiques de l'esclave.

Types d'échanges

Pour distinguer les différents types d'échanges le maître envoie dans la requête Modbus un code fonction qui permet à l'esclave de déterminer les opérations demandées : lecture ou écriture et type de données concernées.

Définition

Le tableau suivant résume les codes fonctions que nous allons utiliser pour le TP :

Attention

On voit que Modbus utilise son propre vocabulaire pour définir les différents types d'échange :

  • Coils : écriture de sorties logiques

  • Discrete inputs : lecture d'entrées logiques

  • Input Registers : lecture d'une entrée numérique

  • Holding Registers : écriture d'une sortie numérique

Modèle de données Modbus

Remarque

L'esclave Modbus associe à chaque type de requête un emplacement dans sa mémoire, on parle alors de registres Modbus. Ces registres permettent de mémoriser les données associées aux différentes entrées/sorties physiques.

On s'aperçoit donc que l'envoi d'une requête Write Single Coil pour allumer une led par exemple consistera du point de vue de l'esclave à écrire la valeur reçue dans un registre de type Coil puis à lire le registre Coil pour piloter la led en question :

Fondamental

Toute écriture par le maître se traduit par une lecture d'un registre côté esclave pour exploiter l'information reçue.

Toute lecture par le maître est précédée par une écriture dans un registre côté esclave pour que l'information demandée soit à jour.