Accueil Solutions Communication Modbus entre l’hôte et le Smart Display avec contrôle des switchs et des indicateurs

Communication Modbus entre l’hôte et le Smart Display avec contrôle des switchs et des indicateurs

Oct 26, 2023

Introduction

Communication Modbus entre l’hôte et le Smart Display

Afin de faciliter la prise en main des Smart Display WINSTAR et de mieux comprendre leur fonctionnement, nous proposons régulièrement des projets de démonstration pratiques couvrant différents scénarios d’application. Dans cet article, nous présentons un nouvel exemple basé sur Modbus, conçu pour permettre aussi bien aux débutants qu’aux développeurs expérimentés d’en comprendre rapidement les principes fondamentaux.

Modbus est largement utilisé dans le domaine de l’automatisation industrielle pour assurer la communication avec différents équipements et capteurs ainsi que leur pilotage. Dans cette application, une carte Arduino est utilisée comme contrôleur hôte pour l’intégration du système. Via Modbus, l’Arduino exploite différents capteurs et boutons de commutation pour piloter le Smart Display, le Gauge, l’Indicator et les LED. Cette démonstration utilise une carte Arduino Mega 2560 équipée d’un shield RS485 pour communiquer avec un Smart Display via Modbus.

Le programme montre comment lire les valeurs des capteurs, changer de page d’affichage et commander les LED en fonction des valeurs mesurées à l’aide des registres Modbus.

Schéma fonctionnel du système
Schéma fonctionnel du système

 

Les composants suivants sont nécessaires pour cette application :

  1. Smart Display 7 pouces avec Modbus
  2. Arduino Mega 2560
  3. Shield RS485 Modbus pour Arduino Mega 2560
  4. Arduino IDE v2.0.4
  5. Dongle Modbus RS485
  6. Bouton physique
  7. Capteur d’angle rotatif à résistance variable (Variable Resistor / Rotary Angle Sensor)
  8. LED
  9. GUI Builder v0.4.2 ou version ultérieure
 

La démonstration se déroule en trois étapes :

  1. Concevoir le projet de démonstration dans GUI Builder.
  2. Compiler et charger le projet.
  3. Programmer l’hôte Arduino.
 

Concevoir le projet de démonstration dans GUI Builder

Commencez par ouvrir une version à jour de GUI Builder et créez un nouveau projet. Saisissez le nom du projet, puis vérifiez le dossier de destination sélectionné automatiquement par défaut. Sélectionnez ensuite le type d’appareil correspondant au Smart Display 7 pouces utilisé dans cette démonstration, puis choisissez le protocole de communication. Conservez l’orientation de l’écran en mode paysage par défaut, sélectionnez « Blank » comme UI Template, puis cliquez sur « Create » pour créer le projet, comme illustré ci-dessous.

Concevoir le projet de démonstration dans GUI Builder - 1

 

Une fois le projet créé, la page suivante s’affiche.

Concevoir le projet de démonstration dans GUI Builder - 2

 

Le scénario de démonstration nécessite l’ajout d’une deuxième page. Pour cela, cliquez sur le bouton « Page », puis sur le bouton « + ».

Concevoir le projet de démonstration dans GUI Builder - 3

 

Un arrière-plan personnalisé peut être sélectionné dans le panneau Resource.

Concevoir le projet de démonstration dans GUI Builder - 4

 

Le style d’arrière-plan peut également être sélectionné directement dans la section Page.

Concevoir le projet de démonstration dans GUI Builder - 5

 

Revenez ensuite à la première page et accédez à la section Controls. Selon le scénario de démonstration, sélectionnez le Toggle Button, puis faites-le glisser dans la zone de mise en page. Procédez de la même manière pour ajouter les widgets Gauge et Indicator.

Concevoir le projet de démonstration dans GUI Builder - 6

 

Compiler et charger le projet

Après avoir créé les deux pages et ajouté les widgets Toggle Button, Gauge et Indicator sur la première page, le projet peut être compilé et chargé sur le Smart Display. Accédez à la section Page Info, cliquez sur « Device », puis sélectionnez « Device Properties ». Vérifiez le protocole utilisé, sélectionnez le port COM et configurez la vitesse de transmission. Cliquez ensuite sur « Connect to device » pour établir la connexion avec le Smart Display. Enfin, cliquez sur « Upload » pour charger le projet, comme illustré ci-dessous. Attendez que le processus de chargement soit terminé.

Compiler et charger le projet - 1

 

Une fois le chargement du projet terminé, cliquez sur « OK », comme illustré ci-dessous.

Compiler et charger le projet - 2

 

Une fois le chargement terminé, l’écran de démarrage s’affiche comme illustré ci-dessous.

Compiler et charger le projet - 3

 

Après l’écran de démarrage, le Smart Display passe automatiquement à la première page du projet. La compilation et le chargement du projet via GUI Builder sont alors terminés, comme illustré ci-dessous.

Compiler et charger le projet - 4

 

Programmer l’hôte Arduino

La figure ci-dessous présente les adresses de registre et les principales définitions utilisées dans le programme Arduino IDE. Le programme commence par définir les broches du bouton physique, du capteur d’angle rotatif à résistance variable et des LED. La communication Modbus est ensuite initialisée à l’aide de la bibliothèque ModbusMaster. Les adresses des registres Modbus nécessaires au changement de page ainsi qu’au contrôle des widgets Indicator, Gauge et Toggle Button sont également définies.

Programmer l’hôte Arduino - 1

 

Pour mieux comprendre le processus de communication, consultez la section Test Device ou Simulator du journal de communication de GUI Builder. Elle permet d’observer les échanges entre le dispositif hôte et le Smart Display via Modbus RS485.

La figure ci-dessous présente les données du journal de communication du « Toggle Button ». Elles permettent d’identifier l’adresse utilisée pour accéder à ce widget sur le Smart Display. Le deuxième octet du champ Data Byte contient la valeur hexadécimale 00 06, qui correspond à l’adresse du Toggle Button. Convertie en décimal, cette valeur est égale à 6. Cette adresse peut être utilisée pour écrire des données dans le widget. Dans cette application, le Toggle Button est toutefois utilisé pour lire des données provenant du Smart Display. L’adresse de registre « 7 » est donc utilisée pour lire son état.

Programmer l’hôte Arduino - 2

 

Pourquoi l’adresse de registre « 7 » est-elle utilisée pour lire l’état du Toggle Button ? Pour plus de détails sur l’affectation des registres et le processus de communication, consultez la fiche technique du Smart Display Modbus. L’extrait ci-dessous indique les adresses utilisées par le premier objet (widget), le Toggle Button.

Programmer l’hôte Arduino - 3

 

La figure suivante présente les données du journal de communication du « Gauge ». Elles permettent d’identifier l’adresse du widget Gauge. Le deuxième octet du champ Data Byte contient la valeur hexadécimale 00 6A, qui correspond à l’adresse du Gauge. Convertie en décimal, cette valeur est égale à 106. Cette adresse peut être utilisée pour écrire des données dans le widget Gauge.

Programmer l’hôte Arduino - 4

 

La figure suivante présente les données du journal de communication de l’« Indicator ». Elles permettent d’identifier l’adresse du widget Indicator. Le deuxième octet du champ Data Byte contient la valeur hexadécimale 00 CE, qui correspond à l’adresse de l’Indicator. Convertie en décimal, cette valeur est égale à 206. Cette adresse peut être utilisée pour écrire des données dans le widget Indicator.

Programmer l’hôte Arduino - 5

 

La constante ADC_REF est définie à 5 V et représente la tension de référence de l’ADC (convertisseur analogique-numérique). GROVE_VCC est définie à 5 et correspond à la tension VCC de l’interface Grove utilisée dans le circuit. La constante FULL_ANGLE est définie à 300 et représente l’angle de rotation maximal du capteur utilisé dans cette application, exprimé en degrés.

Programmer l’hôte Arduino - 6

 

Les variables nécessaires et leurs types de données sont ensuite déclarés et initialisés à zéro.

Programmer l’hôte Arduino - 7

 

Les modes des broches et les paramètres des composants externes, tels que le bouton physique et les LED, sont ensuite configurés. La vitesse de transmission de la communication série est également définie, comme illustré ci-dessous.

Programmer l’hôte Arduino - 8

 

La figure suivante présente la définition de la fonction « ChangePageFunction ». La fonction « writeSingleRegister » est utilisée pour écrire les données dans le registre Modbus correspondant.

Programmer l’hôte Arduino - 9

 

La figure suivante montre le traitement de la valeur du capteur d’angle rotatif à résistance variable (Variable Resistor / Rotary Angle Sensor). Lorsque l’hôte Arduino détecte une variation de la valeur du capteur, il transmet cette valeur au Smart Display via Modbus afin de mettre à jour le Gauge. Lorsque la valeur du Gauge est inférieure à 120, la LED connectée à la broche 13 reste éteinte et l’Indicator s’affiche en vert. Lorsque la valeur atteint ou dépasse 120, la LED s’allume et l’Indicator passe au rouge.

Programmer l’hôte Arduino - 10

 

La figure suivante montre le traitement de l’état du bouton physique. Lorsque l’hôte Arduino détecte un changement d’état du bouton, il transmet la valeur correspondante au Smart Display via Modbus afin de changer la page affichée.

Programmer l’hôte Arduino - 11

 

La figure suivante montre comment l’hôte Arduino lit l’état du Toggle Button depuis le Smart Display via Modbus. En fonction de la valeur reçue, la LED connectée à la broche 12 est allumée ou éteinte.

Programmer l’hôte Arduino - 12

 

Une partie importante du programme concerne l’utilisation des fonctions « writeSingleRegister » et « readHoldingRegisters ». La fonction « writeSingleRegister » permet d’écrire des données dans les registres du Smart Display, tandis que « readHoldingRegisters » permet de lire les données provenant du Smart Display. Lors de la communication avec des widgets actifs tels que le Gauge, il est également nécessaire de prévoir un délai approprié entre les opérations Modbus. Après l’envoi d’une requête et la réception de la réponse correspondante, l’opération suivante peut être exécutée. Le programme intègre donc des délais entre les opérations de lecture et d’écriture.

Programmer l’hôte Arduino - 13

 

Une fois le programme vérifié et chargé avec succès via Arduino IDE, les différents scénarios de démonstration peuvent être exécutés. Lorsque le Toggle Button est sur OFF, la LED externe connectée à la broche 12 est également éteinte. Lorsque le Toggle Button passe sur ON, la LED s’allume immédiatement, comme illustré ci-dessous.

Programmer l’hôte Arduino - 14

 

Dans ce scénario de démonstration, le Gauge est piloté par le capteur d’angle rotatif à résistance variable. Lorsque la valeur du Gauge est inférieure à 120, l’Indicator s’affiche en vert et la LED connectée à la broche 13 reste éteinte. Lorsque la valeur atteint ou dépasse 120, l’Indicator passe au rouge et la LED connectée à la broche 13 s’allume, comme illustré ci-dessous.

Programmer l’hôte Arduino - 15

 

Dans ce scénario, le bouton physique permet également de passer d’une page à l’autre. Lors du premier appui, le Smart Display passe à la deuxième page. Un nouvel appui permet de revenir à la première page, comme illustré ci-dessous.

Programmer l’hôte Arduino - 16

 

Le projet de démonstration sur le Smart Display 7 pouces est maintenant terminé. Il utilise différents capteurs et des LED pour changer de page à l’aide d’un bouton physique et piloter le Gauge, l’Indicator ainsi que les LED externes. Pour télécharger le programme et obtenir davantage d’informations sur ce projet de démonstration, consultez le programme de démonstration sur GitHub.

Remarque : pour plus d’informations sur le Modbus RS485 Shield utilisé dans ce projet de démonstration, consultez la documentation du Modbus RS485 Shield. La configuration matérielle réelle est présentée ci-dessous.

Programmer l’hôte Arduino - 17

 

Conclusion

Dans l’ensemble, ce programme montre concrètement comment utiliser une carte Arduino et le protocole Modbus pour communiquer avec un Smart Display et piloter différents éléments du système. Il illustre notamment la lecture des valeurs de capteurs, le changement de page d’affichage ainsi que la commande des Indicators et des LED à l’aide des registres Modbus. Cet exemple constitue ainsi une introduction pratique à la communication Modbus avec un Smart Display, aussi bien pour les développeurs débutants que pour ceux qui souhaitent approfondir son intégration dans leurs applications.

Vous avez des questions sur les solutions d'affichage pour votre entreprise ? Contactez-nous!

Abonnez-vous

Recevez des e-mails sur les nouvelles mises à jour de Winstar

Contactez-nous

Prix/Fiche technique/Requête générale

Support technique

Contactez-nous pour toute information technique

go top
Contactez-nous
close

Nous valorisons votre confidentialité

En cliquant sur "Autoriser tous les cookies", vous acceptez le stockage de cookies sur votre appareil pour améliorer la navigation sur le site, analyser l'utilisation du site et aider dans nos efforts de marketing et de performance. Vous pouvez trouver plus d'informations à ce sujet dans notre politique. Politique de confidentialité

Nous valorisons votre confidentialité

Winstar et certains tiers utilisent des cookies sur www.winstar.com.tw. Les détails concernant les types de cookies, leur objectif et les tiers impliqués sont décrits ci-dessous et dans notre Politique relative aux cookies. Veuillez cliquer sur « Autoriser tout » pour consentir à l'utilisation de cookies et profiter de la meilleure expérience possible sur nos sites. Vous pouvez également définir vos préférences ou refuser les cookies (sauf les cookies strictement nécessaires).

Gérer les préférences de consentement

Toujours actif
Cookies essentiels

Ces cookies sont essentiels pour vous permettre de naviguer sur le site et d'utiliser ses fonctionnalités, telles que la définition de vos préférences en matière de confidentialité, la connexion ou le remplissage de formulaires.

Cookies analytiques

Également connus sous le nom de « cookies statistiques », ces cookies collectent des informations sur la façon dont vous utilisez un site Web, comme les pages que vous avez visitées et les liens sur lesquels vous avez cliqué. Voir les détails.