Published using Google Docs
Modbus Gateway FAQs
Updated automatically every 5 minutes

tip-technique-logo.png

maj 05/09/2016

FAQ Modbus

Conversion Modbus entre équipements Série et Ethernet

SCADA, système de contrôle et d’acquisition de données (Supervisory Control and Data Acquisition)


Le protocole Modbus est largement utilisé dans les applications industrielles. De nombreux équipements supportent le Modbus série RTU, ils sont équipés de port RS232 ou RS485 avec connecteur DB9 ou bornier. Ces équipements Modbus RTU sont très faciles à mettre en œuvre et à dépanner pour un coût très faible, ce qui explique pourquoi le Modbus RTU est devenu si populaire.

Dans des architectures plus complexes comme par exemple les postes de contrôle, les systèmes utilisent aussi du Modbus TCP, ce qui entraîne des problèmes de communication entre les protocoles Modbus RTU et Modbus TCP.

Les questions / réponses ci dessous cherchent à vous aider à identifier les problèmes de conversion du protocole Modbus.


Question 1 - Pour connecter des périphériques série Modbus RTU à un réseau Ethernet, as t-on besoin d'une passerelle de conversion type Mgate ?  Où peux t-on obtenir le même résultat avec un simple serveur de port série ?

Question 2 - Si je possède plusieurs équipements Modbus RTU, tous connectés sur différents ports série d’une passerelle, comment peux t-on planifier les connexions TCP ? Peux t-on utiliser une seule connexion, ou faut-il utiliser une connexion distincte pour chaque port série?

Question 3  - Comment puis-je utiliser une passerelle pour permettre à plusieurs hôtes SCADA d'accéder aux mêmes dispositifs Modbus RTU en même temps?

Question 4  - J'ai 2 équipements Modbus maître (PLC & HMI). Comment puis-je échanger les données entre ces 2 systèmes? Mgate 3600

Question 5 -  Je dispose de plusieurs équipements Modbus RTU que je dois interroger. Faut-il utiliser plusieurs commandes Modbus pour lire tous les registres de données en sachant que cela va prendre beaucoup de temps ? Est-il possible que la passerelle récupère les données, les place dans un registre pour que je puisse utiliser une seule commande Modbus pour lire l’intégralité ?


Question 1 - Pour connecter des périphériques série Modbus RTU à un réseau Ethernet, as t-on besoin d'une passerelle de conversion type Mgate ?  Où peux t-on obtenir le même résultat avec un simple serveur de port série ?

Avant de répondre à cette question, vous devez identifier ce qui est utilisé sur votre SCADA, il y a 4 options possible :

(1)         hôte SCADA avec Modbus TCP

(2)         hôte SCADA avec Modbus RTU  – avec port série embarqué

(3)         hôte SCADA avec Modbus RTU  – sans port série embarqué

(4)         hôte SCADA avec “Ethernet Encapsulation”

 (1) hôte SCADA avec Modbus TCP

On utilise une passerelle de conversion modbus. A l’aide de la passerelle, vous pouvez utiliser le protocole modbus TCP pour communiquer avec les équipements modbus RTU.

Quand la passerelle reçoit la requête TCP modbus, elle convertit le paquet en modbus RTU et l’envoie immédiatement à l’équipement RTU.

(2) hôte SCADA avec Modbus RTU  – avec port série embarqué

Pour connecter un hôte SCADA avec port série et un équipement modbus RTU à travers un réseau Ethernet, il faudra utiliser 2 passerelles Mgate. La passerelle convertit le paquet modbus RTU en modbus TCP and retourne un paquet modbus RTU.

Cependant, si sur l’hôte SCADA, l’interface série n’est pas disponible alors on utilise l’astuce 3.

(3) hôte SCADA avec Modbus RTU  – sans port série embarqué

Si vous désirez utiliser un programme SCADA avec vos équipements mais que votre hôte SCADA n’intègre pas de port série, il faudra utiliser un “serveur de port série” pour construire un “port COM virtuel” entre l’équipement connecté et votre hôte SCADA.

Cette configuration permet d’accéder à l’équipement distant à travers le serveur de port série comme s’il y avait un port COM natif.

Un driver “COM virtuel” sera installé sur votre SCADA hôte, toutes les données envoyées vers ce COM virtuel seront transférées vers le port série distant du serveur de port série.

(4) hôte SCADA avec “Ethernet Encapsulation”

Si l’hôte SCADA n’a pas de port série ET pas la possibilité d’installer un COM virtuel MAIS que ce dernier supporte “Ethernet Encapsulation” alors on peut utiliser un serveur de port série en mode brut “raw mode” ou “tunneling”. La connexion entre l’hôte et le serveur de port série est alors en mode transparent TCP ou UDP sans aucun protocole. Attention, modbus RTU utilise des délais d’intervalle pour déterminer la fin du paquet donc si le paquet est scindé en plusieurs paquets alors vous pourrez rencontrer des problèmes de timing. Si possible, privilégiez la solution passerelle (2) ou COM virtuel (3).

Malgré le fait que les serveurs de ports série peuvent connecter des équipements Modbus RTU à un réseau Ethernet, la solution passerelle (option 2) peut répondre plus efficacement à presque tous les exigences du système. Votre hôte doit être capable de supporter des connexions Modbus TCP, cela ne devrait pas être un problème car le Modbus TCP est très populaire et déjà largement prise en charge.

Voici quelques situations où vous aurez besoin d'utiliser une passerelle Mgate :

1 - Plusieurs maîtres Ethernet (ou redondance) vers un esclave modbus RTU.

Les connexions Ethernet offrent non seulement l'avantage de l'accès à distance, mais aussi un accès multi-connexion. La plupart des passerelles peuvent supporter jusqu'à 32 connexions, ce qui signifie jusqu'à 32 hôtes SCADA peuvent interroger des équipements Modbus RTU simultanément.

2 - Un maître Ethernet vers plusieurs équipements modbus RTU

La passerelle est la seule solution pour traiter le mécanisme de routage.  Les ports série de la passerelle peuvent être utilisés et configurés pour envoyer la requête Modbus au bon esclave en utilisant des ID uniques. Un serveur de port série ne peut pas gérer une telle exigence.

3 - Accès simultané à des équipements modbus RTU depuis un écran HMI série et un superviseur SCADA Modbus TCP (Mgate serie Advanced MB3x70).

Bien que les connexions Ethernet offrent des facilités de déploiement, il peut y avoir des configurations où il est nécessaire de conserver les connexions existantes IHM (Interface Homme Machines) locales. Le problème étant que le port série de l'appareil est déjà connecté à la passerelle donc il n'y a pas de port série disponible pour l'IHM.

Dans cette situation, certaines passerelles fournissent un "Redirecteur série" pour surmonter cet obstacle. Le redirecteur série est très similaire à un routeur, il va transférer la demande entre les différents ports série basé sur l'ID de l’esclave.

Conclusion

Il y a beaucoup de solutions différentes pour gérer les communications Modbus série-Ethernet. Allant d’un simple transfert de données à une utilisation industrielle complexe, la passerelle est la meilleure solution pour gérer les protocoles de conversion Modbus. Une passerelle implique un investissement initial plus important mais fournit des communications plus stables à long terme et reconnaît les paquets Modbus d’où une gestion correcte du protocole et des timings.

Question 2 - Si je possède plusieurs équipements Modbus RTU, tous connectés sur différents ports série d’une passerelle, comment peux t-on planifier les connexions TCP ? Peux t-on utiliser une seule connexion, ou faut-il utiliser une connexion distincte pour chaque port série?

Réponse:  

La plupart des passerelles fournissent des solutions flexibles qui peuvent être utilisées pour planifier l'architecture de connexion TCP dès qu’il y  a plus d'1 équipement Modbus RTU connecté à différents ports série de la passerelle. En général, il existe trois méthodes différentes

(1) Chaque port série a un port TCP unique

(2) Chaque port série a une adresse IP unique

(3) Utilisation d’une table de routage

(1) Chaque port série a un port TCP unique

Il s’agit de la méthode la plus utilisée, dans la passerelle chaque port série sera identifié par un port TCP unique. Par exemple, 4001 pour le port série 1, 4002 pour le port série 2, etc.

Si vous désirez communiquer avec l’équipement modbus RTU connecté sur le port 1, vous devrez ouvrir une connexion TCP sur le port 4001. La passerelle va transférer le paquet modbus entre la connexion TCP 4001 et le port série 1. Avec cette topologie, l’hôte SCADA ouvre des connexions modbus TCP multiples.

(2) Chaque port série a une adresse IP unique

Similaire à l’option précédente exceptée que la passerelle utilise une IP pour identifier les différents ports série. Par exemple, 192.168.2.1 pour le port 1, 192.168.2.2 pour le port 2, etc.

Avec votre hôte SCADA, si vous désirez communiquer avec l’équipement RTU connecté sur le port 1 alors vous ouvrez une connexion TCP à l’adresse IP 192.168.2.1 sur le port standard modbus 502.

La passerelle transfère alors les paquets modbus TCP entre 192.168.2.1:502 et le port 1.

Dans cette topologie, le pilote SCADA ouvre aussi des connexions TCP multiples. Bien que cette méthode requiert de multiples adresses IP, elle sera utilisée dans le cas où les esclaves TCP peuvent seulement être interrogés à travers le port Modbus TCP standard 502. Dans ce cas, l’option précédente ne peut être utilisée.

(3) Utilisation d’une table de routage

Cette topologie utilise une connexion par plage d’ID pour communiquer avec plusieurs appareils.

Par exemple, le port série 1 gère tous les paquets Modbus ID esclaves 1 à 10, le port série 2 ID esclave 11

20, etc.

Parce que cette topologie utilise uniquement une connexion TCP, elle sera plus lente que les options 1 et 2.

Remarque:

Si vous connectez plusieurs appareils à un seul port série, ou si vous liez plusieurs ports série à une connexion TCP, vous allez augmenter le temps de prise en charge Modbus.

Question 3  - Comment puis-je utiliser une passerelle pour permettre à plusieurs hôtes SCADA d'accéder aux mêmes dispositifs Modbus RTU en même temps?

Les passerelles Mgate peuvent faire des connexions multiples mais rappelez-vous que la vitesse du port série reste la même. Donc si plusieurs requêtes réseaux sont reçues sur le même port série, vous aurez à gérer un retard parce que la passerelle doit traiter les demandes séquentiellement (FIFO First In First Out). Cela signifie que vous devez calculer le temps d’attente (timing) si vous voulez permettre à plusieurs maîtres d'accéder en simultané au même périphérique Modbus RTU.

Par exemple, si 1 requête prend 100 ms, 5 connexions simultanées nécessitent d’attendre au moins 100ms X (5 - 1) = 400 ms avant l’envoi de la requête suivante. Ce qui signifie que sur chaque hôte SCADA, vous devez configurer un timing de 400 ms (+ la tolérance) entre chaque cycle de consultation.

La série Mgate 3600 prend en charge un mode "agent", qui récupère de façon continue des données à partir d'équipements connectés. Ces données mises à jour sont stockées dans la mémoire interne de la passerelle, qui est utilisée pour répondre aux demandes des hôtes. Bien que cette solution soit plus rapide et plus efficace, on ne doit pas considérer cela comme du temps réel.

Question 4  - J'ai 2 équipements Modbus maître (PLC & HMI). Comment puis-je échanger les données entre ces 2 systèmes? Mgate 3600

Pour échanger des données entre 2 maîtres modbus, vous aurez besoin d’une passerelle avec le mode “master-master”. Dans ce mode, la passerelle travaille comme esclave pour les deux parties. Un maître peut écrire les données dans la mémoire interne de la passerelle, et l’autre maître peut consulter ses données.

En fonction de la passerelle, vous pouvez avoir les deux côtés Modbus RTU ou TCP, ou simplement un Modbus RTU d’un côté et un Modbus TCP de l'autre.

Question 5 -  Je dispose de plusieurs équipements Modbus RTU que je dois interroger. Faut-il utiliser plusieurs commandes Modbus pour lire tous les registres de données en sachant que cela va prendre beaucoup de temps ? Est-il possible que la passerelle récupère les données, les place dans un registre pour que je puisse utiliser une seule commande Modbus pour lire l’intégralité ?

Pour que la passerelle puisse récupérer les données de plusieurs dispositifs Modbus RTU et les placer dans un seul registre, vous aurez besoin d'une passerelle avec le mode “agent” pour stocker les données dans sa mémoire interne.

La passerelle va envoyer une commande Modbus à chaque périphérique Modbus RTU. Toutes les données seront organisées dans un bloc de données unique sur la mémoire interne de la passerelle pour vous de permettre de récupérer avec une seule lecture Modbus l’intégralité des données.

Sphinx@2016  décline toute responsabilité quant à l’utilisation des informations contenues dans ce document.

Celles-ci sont uniquement fournies à titre informatif et n’entraînent aucune obligation légale.