đ 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 :
- TIA Portal & PLCSIM (Siemens) : Environnement de programmation de l’automate.
- TĂ©lĂ©chargement : Version d’essai officielle Siemens (Recherchez le « Trial Download » de la version souhaitĂ©e, nĂ©cessite un compte gratuit).
- 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.).
- Téléchargement : Essai de 30 jours (Windows Installer)
- NetToPLCsim : Petit utilitaire réseau indispensable pour rendre votre automate simulé visible par le reste de votre PC.
- Téléchargement : Page officielle SourceForge (Bouton « Download »)
- Node-RED : Notre « Middleware ». Son installation sous Windows nĂ©cessite d’abord d’installer le moteur Node.js.
- Prérequis : Télécharger Node.js (Version LTS recommandée)
- Installation : Une fois Node.js installé, ouvrez votre invite de commande (cmd) en mode administrateur et tapez :
npm install -g --unsafe-perm node-red
- InfluxDB (Version OSS v2.x) : Notre base de données.
- 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 :
- TIA Portal & PLCSIM : La couche terrain (OT). Ils gĂšrent la logique de la machine et calculent le niveau d’eau.
- 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.
- Node-RED : Le collecteur (Middleware). Il se connecte Ă l’automate, lit les variables (%MD0) et les envoie vers l’informatique.
- 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.
- 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 :
- Dans la vue des appareils de TIA Portal, double-cliquez sur votre CPU S7-1500.
- Allez dans les propriétés : Protection & Sécurité > Mécanismes de connexion.
- Cochez impĂ©rativement : « Autoriser l’accĂšs via la communication PUT/GET par le partenaire distant ».
- 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 ».
- 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
- Ouvrez l’invite de commande Windows (cmd), tapez
ipconfiget notez l’Adresse IPv4 de votre PC (ex:192.168.0.15). - 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.
- Cliquez sur Add.
- Network IP Address : SĂ©lectionnez l’adresse IP de votre PC dans la liste.
- Plcsim IP Address : SĂ©lectionnez l’adresse IP de votre automate simulĂ© (celle configurĂ©e dans TIA Portal).
- 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
- Ouvrez une nouvelle invite de commande (cmd), tapez
node-redet appuyez sur Entrée pour démarrer le serveur. - Allez sur
http://localhost:1880dans 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.
- Dans Node-RED, ouvrez le menu (en haut Ă droite) > Manage palette > onglet Install. Cherchez et installez le nĆud
node-red-contrib-s7. - Glissez un nĆud s7 in sur l’espace de travail. Double-cliquez dessus, puis sur le petit crayon pour ajouter un automate.
- Configurez la connexion avec l’IP de votre PC (celle utilisĂ©e dans NetToPLCsim), Port 102, Rack 0, Slot 1.
- 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 taperMR0(M=Memory, R=Real, 0=Adresse) dans Node-RED. Si vous tapezMD0, Node-RED lira la donnĂ©e Ă l’envers !
- Dans l’onglet Variables, ajoutez votre variable (Nom :
- 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)
- Allez dans le dossier oĂč vous avez extrait InfluxDB. Tapez
cmddans la barre d’adresse du dossier de Windows et faites EntrĂ©e. - 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 commandeinfluxd.exe.
đš PIĂGE FRĂQUENT : Erreur 404 – Page introuvable Si l’adresse
http://localhost:8086affiche 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.exetourne toujours.
- Allez sur
http://localhost:8086dans votre navigateur. - Lors du premier lancement, configurez votre espace (ex: Organization Automindus, Bucket
Supervision_Usine). - Allez dans le menu de gauche Load Data > onglet API Tokens.
- 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.
- De retour dans Node-RED, installez la palette
node-red-contrib-influxdbet glissez le nĆud influxdb out. - Ăditez-le : Serveur Version 2.0, URL
http://localhost:8086, collez votre Token. Remplissez l’Organization et le Bucket. MettezNiveau_Eaudans 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)
- Lancez Grafana (si installé en service) ou lancez
grafana-server.exeet allez surhttp://localhost:3000(Identifiants par défaut :admin/admin). - 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 »).
- 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.
- 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 !