Supervision industrielle avec Node-RED et Grafana (100% Virtuel avec PLCSIM et l’API S71500)

📖 Introduction

Bienvenue dans ce module avancĂ© d’intĂ©gration IT/OT ! L’objectif principal de ce guide de travaux pratiques est de vous accompagner pas Ă  pas dans l’extraction de donnĂ©es issues d’un automate Siemens S7-1500 (entiĂšrement simulĂ© via TIA Portal et Factory IO), afin de les afficher en temps rĂ©el sur un tableau de bord web professionnel.

Vous allez mettre en place une vĂ©ritable architecture « Industrie 4.0 », de la couche terrain (OT) jusqu’Ă  la couche informatique (IT). En plus d’apprendre Ă  configurer des outils standards de l’industrie, vous apprendrez Ă  diagnostiquer les erreurs de communication frĂ©quentes pour gagner en autonomie lors de vos futurs projets de supervision.

📚 Liste des AbrĂ©viations

Avant de commencer, voici le vocabulaire technique que vous retrouverez tout au long de ce projet :

  • IT (Information Technology) : Technologies de l’Information. DĂ©signe le monde de l’informatique, du rĂ©seau d’entreprise, des serveurs, des bases de donnĂ©es et du web (ici : Grafana, InfluxDB).
  • OT (Operational Technology) : Technologies OpĂ©rationnelles. DĂ©signe le monde industriel « terrain », les machines physiques, les capteurs et le contrĂŽle-commande (ici : l’Automate, TIA Portal, Factory IO).
  • SCADA (Supervisory Control And Data Acquisition) : SystĂšme de contrĂŽle et d’acquisition de donnĂ©es. C’est l’interface visuelle globale qui permet de surveiller et piloter une usine (notre Dashboard Grafana).
  • PLC (Programmable Logic Controller) ou API (Automate Programmable Industriel) : Le « cerveau » informatique de la machine industrielle (ici, le S7-1500 simulĂ©).
  • Time-Series Database (TSDB) : Base de donnĂ©es orientĂ©e « sĂ©ries temporelles ». C’est un type de base de donnĂ©es ultra-rapide optimisĂ© pour stocker des millions de valeurs de capteurs associĂ©es Ă  une date et une heure prĂ©cises (notre outil InfluxDB).

đŸ“„ Logiciels Requis (TĂ©lĂ©chargements Windows)

Ce TP est rĂ©alisable intĂ©gralement sur un PC sous Windows 10 ou Windows 11. Voici les liens officiels pour tĂ©lĂ©charger les outils (gratuits ou en version d’essai) nĂ©cessaires Ă  notre architecture :

  1. TIA Portal & PLCSIM (Siemens) : Environnement de programmation de l’automate.
  2. Factory IO (Optionnel mais recommandĂ©) : Simulateur d’usine 3D interactif pour gĂ©nĂ©rer des donnĂ©es de capteurs rĂ©alistes (niveau d’eau, etc.).
  3. NetToPLCsim : Petit utilitaire réseau indispensable pour rendre votre automate simulé visible par le reste de votre PC.
  4. Node-RED : Notre « Middleware ». Son installation sous Windows nĂ©cessite d’abord d’installer le moteur Node.js.
  5. InfluxDB (Version OSS v2.x) : Notre base de données.
  6. Grafana (Version OSS) : L’outil de crĂ©ation de tableaux de bord.

📑 Sommaire

  • 📖 Introduction
  • 📚 Liste des AbrĂ©viations
  • đŸ“„ Logiciels Requis (TĂ©lĂ©chargements Windows)
  • đŸ—ïž L’Architecture du Projet
  • đŸ› ïž ÉTAPE 1 : PrĂ©paration de l’Automate (TIA Portal)
  • 🌐 ÉTAPE 2 : CrĂ©ation du pont rĂ©seau avec NetToPLCsim
  • 🔮 ÉTAPE 3 : L’Acquisition des donnĂ©es avec Node-RED
  • đŸ—„ïž ÉTAPE 4 : Stockage dans la base de donnĂ©es (InfluxDB)
  • 📊 ÉTAPE 5 : CrĂ©ation du Dashboard SCADA (Grafana)

đŸ—ïž L’Architecture du Projet

Pour comprendre ce que nous allons faire, voici le rÎle précis de chaque outil dans notre chaßne de communication :

  1. TIA Portal & PLCSIM : La couche terrain (OT). Ils gĂšrent la logique de la machine et calculent le niveau d’eau.
  2. NetToPLCsim : La passerelle virtuelle. Sans lui, le simulateur d’automate est isolĂ©. Il permet d’exposer l’automate sur le rĂ©seau IP de votre PC.
  3. Node-RED : Le collecteur (Middleware). Il se connecte Ă  l’automate, lit les variables (%MD0) et les envoie vers l’informatique.
  4. InfluxDB : La mĂ©moire. Elle reçoit les donnĂ©es de Node-RED et les horodate pour crĂ©er un historique parfait de l’usine.
  5. Grafana : L’Ă©cran de supervision (SCADA). Il interroge la base de donnĂ©es en continu pour dessiner les courbes en direct.

đŸ› ïž ÉTAPE 1 : PrĂ©paration de l’Automate (TIA Portal)

Pour des raisons de sĂ©curitĂ©, les automates Siemens rĂ©cents bloquent la communication externe par dĂ©faut. Il faut l’autoriser :

  1. Dans la vue des appareils de TIA Portal, double-cliquez sur votre CPU S7-1500.
  2. Allez dans les propriétés : Protection & Sécurité > Mécanismes de connexion.
  3. Cochez impĂ©rativement : « Autoriser l’accĂšs via la communication PUT/GET par le partenaire distant ».
  4. Note sur les blocs de données : Si vous utilisez un Data Block (DB) pour stocker vos variables au lieu des Mémentos (%M), allez dans les propriétés de ce DB et décochez « AccÚs optimisé au bloc ».
  5. Compilez votre programme, chargez-le dans PLCSIM, passez l’automate en RUN, et lancez votre simulation Factory IO.

🌐 ÉTAPE 2 : CrĂ©ation du pont rĂ©seau avec NetToPLCsim

  1. Ouvrez l’invite de commande Windows (cmd), tapez ipconfig et notez l’Adresse IPv4 de votre PC (ex: 192.168.0.15).
  2. Lancez NetToPLCsim en tant qu’administrateur (Clic droit > ExĂ©cuter en tant qu’administrateur). C’est obligatoire pour qu’il puisse utiliser le port 102.
  3. Cliquez sur Add.
  4. Network IP Address : SĂ©lectionnez l’adresse IP de votre PC dans la liste.
  5. Plcsim IP Address : SĂ©lectionnez l’adresse IP de votre automate simulĂ© (celle configurĂ©e dans TIA Portal).
  6. Laissez Rack = 0 et Slot = 1 (Configuration standard d’un S7-1500). Cliquez sur OK, puis sur le bouton Start Server.

🔮 ÉTAPE 3 : L’Acquisition des donnĂ©es avec Node-RED

  1. Ouvrez une nouvelle invite de commande (cmd), tapez node-red et appuyez sur Entrée pour démarrer le serveur.
  2. Allez sur http://localhost:1880 dans votre navigateur Web.

🚹 PIÈGE FRÉQUENT : Le serveur Node-RED dĂ©connectĂ© Si un bandeau rouge « Connexion avec le serveur perdue » s’affiche en haut de votre Ă©cran lors d’un clic sur « DĂ©ployer » :

  • La Cause : Vous avez cliquĂ© par erreur dans la fenĂȘtre noire de l’invite de commande de Node-RED. Windows a mis le programme en pause (le mot « SĂ©lection » apparaĂźt dans la barre de titre de la fenĂȘtre).
  • La Solution : Cliquez dans cette fenĂȘtre noire et appuyez simplement sur la touche Échap (Esc) ou EntrĂ©e. Le programme va se dĂ©bloquer et Node-RED se reconnectera instantanĂ©ment.
  1. Dans Node-RED, ouvrez le menu (en haut à droite) > Manage palette > onglet Install. Cherchez et installez le nƓud node-red-contrib-s7.
  2. Glissez un nƓud s7 in sur l’espace de travail. Double-cliquez dessus, puis sur le petit crayon pour ajouter un automate.
  3. Configurez la connexion avec l’IP de votre PC (celle utilisĂ©e dans NetToPLCsim), Port 102, Rack 0, Slot 1.
  4. DĂ©claration de la variable (Étape cruciale) :
    • Dans l’onglet Variables, ajoutez votre variable (Nom : Niveau_Cuve).
    • RĂšgle d’or pour Siemens : Si votre variable dans TIA Portal est un nombre Ă  virgule (REAL) stockĂ© Ă  l’adresse %MD0, vous devez taper MR0 (M=Memory, R=Real, 0=Adresse) dans Node-RED. Si vous tapez MD0, Node-RED lira la donnĂ©e Ă  l’envers !
  5. Reliez un nƓud debug (vert) Ă  votre nƓud s7, cliquez sur DĂ©ployer, et vĂ©rifiez que les valeurs du capteur s’affichent dans la colonne de droite.

đŸ—„ïž ÉTAPE 4 : Stockage dans la base de donnĂ©es (InfluxDB)

  1. Allez dans le dossier oĂč vous avez extrait InfluxDB. Tapez cmd dans la barre d’adresse du dossier de Windows et faites EntrĂ©e.
  2. Dans la console noire, tapez influxd.exe. Laissez impĂ©rativement cette fenĂȘtre ouverte en arriĂšre-plan.

🚹 PIÈGE FRÉQUENT : Le Port 8086 est dĂ©jĂ  utilisĂ© Si la console se ferme immĂ©diatement ou affiche l’erreur rouge : listen tcp :8086: bind: Only one usage of each socket address is normally permitted :

  • La Cause : Une ancienne session d’InfluxDB tourne encore en cachette (un processus « fantĂŽme ») sur votre PC et bloque le port.
  • La Solution : Ouvrez le Gestionnaire des tĂąches de Windows (Onglet DĂ©tails). Cherchez le processus nommĂ© influxd.exe, cliquez dessus et choisissez Fin de tĂąche. Relancez ensuite votre commande influxd.exe.

🚹 PIÈGE FRÉQUENT : Erreur 404 – Page introuvable Si l’adresse http://localhost:8086 affiche une erreur dans votre navigateur :

  • La Cause : Le moteur de la base de donnĂ©es s’est arrĂȘtĂ© ou vous avez fermĂ© la fenĂȘtre noire par erreur.
  • La Solution : Assurez-vous d’avoir bien rĂ©alisĂ© l’Ă©tape prĂ©cĂ©dente et que la fenĂȘtre influxd.exe tourne toujours.
  1. Allez sur http://localhost:8086 dans votre navigateur.
  2. Lors du premier lancement, configurez votre espace (ex: Organization Automindus, Bucket Supervision_Usine).
  3. Allez dans le menu de gauche Load Data > onglet API Tokens.
  4. Cliquez sur Generate API Token > All Access Token. Donnez-lui un nom, sauvegardez, puis cliquez sur son nom pour copier la longue clĂ© d’authentification.
  5. De retour dans Node-RED, installez la palette node-red-contrib-influxdb et glissez le nƓud influxdb out.
  6. Éditez-le : Serveur Version 2.0, URL http://localhost:8086, collez votre Token. Remplissez l’Organization et le Bucket. Mettez Niveau_Eau dans la case Measurement. Cliquez sur DĂ©ployer.

🚹 PIÈGE FRÉQUENT : Erreur 401 Unauthorized dans Node-RED Si le panneau de debug de Node-RED affiche 401 Unauthorized : unable to parse authentication credentials :

  • La Cause : Le serveur InfluxDB tourne, mais il refuse l’Ă©criture Ă  Node-RED car le Token (la clĂ©) est obsolĂšte, mal copiĂ©, ou contient un espace en trop.
  • La Solution : Retournez sur l’interface web d’InfluxDB, gĂ©nĂ©rez un tout nouveau Token, supprimez l’ancien dans Node-RED et collez le nouveau. Re-dĂ©ployez.

📊 ÉTAPE 5 : CrĂ©ation du Dashboard SCADA (Grafana)

  1. Lancez Grafana (si installé en service) ou lancez grafana-server.exe et allez sur http://localhost:3000 (Identifiants par défaut : admin / admin).
  2. Lier la base de données :
    • Allez dans le menu de configuration > Data sources > Add data source.
    • Choisissez InfluxDB.
    • Query Language : Changez pour Flux.
    • URL : http://localhost:8086.
    • Organization : Automindus (Respectez les majuscules).
    • Token : Collez le Token copiĂ© depuis InfluxDB.
    • Default Bucket : Supervision_Usine.
    • Cliquez sur Save & test. Le bandeau doit ĂȘtre vert (« Datasource is working »).
  3. Créer le premier panneau :
    • Allez dans Dashboards > New > New Dashboard.
    • Cliquez sur le bouton bleu Configure visualization (ou Add Panel).
    • SĂ©lectionnez votre Data source InfluxDB.
    • Dans l’Ă©diteur de code Flux (en bas), collez la requĂȘte suivante pour afficher votre niveau d’eau :
    from(bucket: "Supervision_Usine") |> range(start: v.timeRangeStart, stop: v.timeRangeStop) |> filter(fn: (r) => r["_measurement"] == "Niveau_Eau")
    • Astuce Visuelle : Dans la colonne de droite, tout en haut, vous pouvez changer le style de graphique. Essayez Time series (pour la courbe historique) ou Gauge (pour l’aiguille).
    • Cliquez sur Apply en haut Ă  droite.
  4. Activer la magie du Temps Réel :
    • Sur votre tableau de bord, cliquez sur l’horloge en haut Ă  droite et choisissez Last 5 minutes.
    • Cliquez sur l’icĂŽne de rafraĂźchissement (la flĂšche circulaire v) et choisissez 5s ou 1s.

FĂ©licitations ! Laissez tourner votre automate et votre usine Factory IO. Votre Dashboard s’anime tout seul. Vous venez de rĂ©aliser et de dĂ©panner une architecture de supervision IT/OT complĂšte, de l’automate au web !

Laisser un commentaire