banner

Blog

Jun 30, 2023

Modbus sur WLAN (partie 1) : matériel et programmation

Le protocole Modbus est largement utilisé dans le secteur industriel pour la communication entre systèmes et contrôleurs. Cela se fait généralement avec l'interface RS485 éprouvée et un fil de cuivre conventionnel. Nous présentons ici un module qui vous permet d'utiliser le protocole Modbus sur un réseau local sans fil (WLAN). Le module est construit autour d'une carte Espressif NodeMCU équipée d'un microcontrôleur ESP8266. Une carte de base Modbus supplémentaire vous permet de travailler avec des signaux 24 V, qui est un niveau de tension courant dans l'environnement industriel. Pour démontrer comment tout cela fonctionne, les auteurs ont construit un simple contrôleur de porte d'ascenseur. La plupart des lecteurs d'Elektor connaissent probablement déjà le module Espressif NodeMCU et l'IDE Arduino. Si vous correspondez à cette catégorie, vous pouvez ignorer cette introduction et passer directement à la description de la carte Modbus TCP. Pour tous les autres, voici en résumé ce qu'il faut savoir. Ce projet est construit autour d'un module NodeMCU (disponible dans l'Elektor Store). Le module est équipé d'un microcontrôleur Espressif ESP8266, qui a à peu près la taille d'un timbre-poste et est livré avec une interface WLAN. Malgré sa petite taille, il offre une grande puissance de traitement. Les principales caractéristiques du microcontrôleur ESP8266 sont résumées dansTableau 1.

La carte NodeMCU génère la tension d'alimentation pour l'ESP8266 et gère l'interface de programmation du microcontrôleur.Figure 1montre un aperçu du brochage de la carte NodeMCU utilisée dans notre circuit Modbus.

L'IDE Arduino est très bien adapté à la programmation de la carte NodeMCU. Vous pouvez télécharger gratuitement la version adaptée de l'IDE Arduino pour le système d'exploitation de votre ordinateur à partir du site Web Arduino et l'installer selon les instructions du site. Lorsque vous exécutez l'EDI pour la première fois, vous voyez une fenêtre semblable à celle illustrée dans la figure 2. . Le volet du code du programme contient deux fonctions prédéfinies. En haut se trouve la fonction setup(), qui n'est exécutée qu'une seule fois au démarrage du programme et gère des choses comme l'initialisation des interfaces du microcontrôleur, et en bas se trouve la fonction loop(), qui contient normalement le code source de votre programme. .

La fonction loop() s'exécute une fois la fonction setup() terminée. Lorsque le programme atteint la fin de la fonction loop(), il recommence depuis le début. L'ESP8266 gère l'interface WLAN entre la fin et le redémarrage de la fonction loop(). Cela signifie que vous devez éviter de créer des boucles infinies dans la fonction loop(), sinon l'ESP8266 plantera inévitablement. Au lieu de cela, le code de la fonction loop() doit être conçu de manière à pouvoir s'exécuter de manière cyclique. Un grand nombre de plantages apparemment mystérieux de l'ESP8266 sont causés par le fait que le processeur ne dispose pas de suffisamment de temps CPU pour gérer le Interface Wi-Fi. S'il y a un risque que le code de votre programme s'exécute pendant une période prolongée, par exemple dans de grandes boucles, vous pouvez utiliser la fonction rendement() ou la fonction delay() pour donner à l'ESP8266 suffisamment de temps pour la gestion du WLAN. Avant de brancher le Module NodeMCU dans la carte Modbus, vous devez le connecter à un port USB de votre ordinateur, mais avant cela, vous devez faire quelques choses pour que tout soit prêt à fonctionner. L'ESP8266 n'est pas pris en charge en standard par l'IDE Arduino, vous devez donc d'abord mettre à jour l'IDE. Pour ce faire, sélectionnez Fichier -> Préférences et entrez l'URL suivante dans la zone URL du gestionnaire de carte supplémentaire : http://arduino.esp8266.com/stable/package_esp8266com_index.jsonCliquez sur OK, puis sélectionnez Outils -> Carte ... -> pour ouvrir la fenêtre Boards Manager, où vous devez rechercher ESP8266, puis installer les cartes communautaires ESP8266. Une fois installées, sous Outils -> Carte > vous verrez la carte NodeMCU 1.0 (module ESP-E12) et sous Outils - > Port > vous verrez le port auquel la carte NodeMCU est connectée (/dev/ttyUSBx sous Linux ou COMx sous Windows). Vous pouvez maintenant commencer avec le premier programme de test simple sur le module NodeMCU. Pour cela, ouvrez l'exemple de programme 'Blink' sous Fichier -> Exemples -> ESP8266 -> Blink. Le programme présenté dans

>1);/p>

PARTAGER