Protocoles et données

SCADA : architecture et usages énergétiques

SCADA sur un site énergétique : régulation locale, WAN, protocoles, sécurité, preuve des commandes, reprise des données et réception.

Un écran SCADA, système de supervision et d’acquisition de données, présente les informations transmises par les appareils ; une commande demande un changement. Ni l’écran ni la commande ne prouvent que l’équipement a atteint le nouvel état. Cette preuve exige des observations distinctes. Ce guide explique surtout comment les recueillir.

Rôle d’un système SCADA

Le NIST décrit les systèmes SCADA comme des systèmes qui recueillent depuis un point central les données de stations de terrain géographiquement éloignées et leur envoient des commandes. Il distingue cette supervision des boucles locales reliant capteurs, contrôleurs et actionneurs (NIST SP 800-82 rév. 3).

Sur un site énergétique, les couches SCADA se succèdent depuis les équipements :

Couches d’un système SCADA énergétique Depuis le bas : installation, instruments de terrain, régulation locale où restent les protections et boucles rapides, intégration sur site, communications, supervision, historien et systèmes d’entreprise. Les couches supérieures supervisent les boucles locales sans les fermer. Entreprise analyse, maintenance, décompte, rapports Historien mesures et qualité, alarmes, commandes, audit Supervision IHM, alarmes, commandes, accès Communications RS-485, Ethernet, WAN privé, cellulaire Intégration du site RTU, passerelles, calculateurs locaux Régulation locale automates, relais de protection, contrôleurs Instruments terrain compteurs, TC, capteurs, entrées, relais Installation charges, groupes, batteries, pompes, disjoncteurs supervise ferme les boucles Protections et boucles rapides ici Une commande demande ; un compteur prouve
Les couches d’un système SCADA énergétique, depuis les équipements. La régulation locale ferme les boucles ; les couches supérieures les supervisent.

Un contrôleur local ne peut poursuivre sa logique pendant une coupure WAN que si les entrées et autorisations nécessaires restent disponibles localement. Vérifiez le comportement de chaque trajet de commande en cas de perte de communication ; un contrôleur local ne garantit pas à lui seul un état sûr de l’installation. La conception du site doit définir interverrouillages, repli et rétablissement lorsque le WAN est lent ou absent.

Les échelles de temps l’expliquent. Un contrôleur d’effacement ZDR-2X échantillonne la fréquence du réseau au moins toutes les 100 ms et réagit en 100 ms au plus. Il envoie des données à la seconde, via la Gateway, à la plateforme de l’agrégateur (fiche technique ZDR-2X). La plateforme supervise la réponse, sans participer à la décision prise en 100 ms. Sur le marché national australien NEM, le régulateur central d’AEMO transmet ses signaux par SCADA selon un cycle de 4 secondes, tandis que les services rapides de réserve répondent à la fréquence locale (guide FCAS). La Gateway ZGW-20 suit le même principe : Edge exécute les règles d’automatisation sur la Gateway, même si le lien Internet est coupé.

SCADA, GTB et EMS

Les fournisseurs emploient ces trois noms avec des sens variables. Précisez quel système détient chaque point accessible en écriture.

SystèmeResponsabilité principalePérimètre habituelRésultats habituelsLimite principale
SCADASupervision des opérations et acquisition de donnéesProcédés industriels, réseaux et actifs répartis géographiquementÉtats courants, alarmes, tendances, commandes et événementsNe prouve pas à lui seul la réponse physique ni les économies d’énergie
GTB ou BASAutomatisation des équipements du bâtimentCVC, éclairage, accès et autres services du bâtimentHoraires, consignes, états des équipements et alarmesConcerne généralement les systèmes du bâtiment plus que l’analyse énergétique d’un parc
EMS ou EMISAnalyse énergétique et gestion de la performanceBâtiments, campus ou parcs de sitesDonnées normalisées, indicateurs, comparaisons, analyse des défauts et méthodes de mesurePeut consommer les données SCADA ou GTB sans commander en temps réel

La documentation BACnet d’ASHRAE situe l’automatisation du bâtiment parmi les applications CVC, éclairage, sûreté, sécurité et gestion énergétique (ASHRAE BACnet). Le Department of Energy des États-Unis définit plus largement les systèmes d’information de gestion de l’énergie comme des logiciels qui surveillent, analysent et parfois pilotent l’énergie des bâtiments, avec intégration, historique, applications et supervision (présentation des EMIS du DOE).

Un site peut employer les trois. La GTB pilote les centrales de traitement d’air. SCADA supervise l’appareillage électrique, les groupes électrogènes et l’état du site. L’EMS réunit compteurs, tarifs et météo pour repérer et vérifier des économies.

Donnez un seul responsable à chaque point accessible en écriture. Si la GTB et SCADA peuvent tous deux modifier par Modbus la consigne d’air soufflé d’une centrale, la dernière écriture l’emporte sans que l’autre système le sache. BACnet attribue à chaque propriété commandable un tableau de 16 niveaux de priorité. La valeur présente vient du niveau prioritaire le plus élevé qui n’est pas NULL ; Relinquish_Default s’applique si tous sont NULL (OPC 30030, 3.2.1). L’échec peut passer inaperçu : une écriture SCADA à la priorité 10 reçoit une réponse WriteProperty positive, mais la valeur ne change pas tant que la GTB détient la priorité 8. Après chaque écriture, relisez Present_Value et, si l’appareil l’expose, Priority_Array.

Choisir un protocole

Deux appareils compatibles Modbus doivent encore s’accorder sur adresses des registres, types de données, échelles, ordre des mots, unités et réaction à une coupure. Le guide d’interopérabilité IoT entre fournisseurs décode un point de compteur dans chaque ordre de mots et fournit une liste à demander au fournisseur ainsi qu’un essai de réception en douze étapes.

ProtocoleUsage adaptéDécision importante de mise en œuvre
Modbus TCP ou RTUAcquisition et commande simples par registres avec une table stableAdressage, échelle, valeurs signées, ordre des mots et exceptions. Modbus/TCP sur le port 502 n’authentifie pas les pairs. MODBUS/TCP Security est une spécification distincte utilisant TLS et des certificats X.509v3 sur le port 802 (IANA, spécifications Modbus). Ne la déduisez pas de la seule prise en charge de Modbus/TCP. Elle ne s’applique pas à Modbus RTU sur liaison série.
BACnet/IPIntégration des objets, horaires, alarmes et tendances d’une GTBSpécifiez objets, propriétés, services, priorités de commande et profils d’appareils. « Compatible BACnet » ne définit ni les points ni la conformité complète (ressources ASHRAE Standard 135).
OPC UAModèles d’information typés, états, horodatages, alarmes, abonnements et intégration plus richeConvenez de la propriété des espaces de noms, des certificats, des profils et des modèles d’information pris en charge. Chaque notification d’abonnement porte un numéro de séquence ; un client peut détecter une lacune et demander le message manquant avec le service Republish (OPC UA Partie 4, 5.14.1.1). Vérifiez la réaction de l’application après une lacune.
MQTTTélémesure publication-abonnement découplée sur des liaisons limitées ou intermittentesDéfinissez propriétaire des sujets, schéma des charges utiles, politique des messages conservés, session, expiration, ordre et déduplication. Le niveau de service MQTT s’applique séparément à chaque tronçon émetteur-récepteur, par exemple éditeur vers courtier puis courtier vers abonné ; il ne couvre pas toute la chaîne métier (MQTT 5.0).

Les guides détaillent Modbus TCP et RTU, BACnet et Modbus, OPC UA, MQTT et Modbus et la qualité de service MQTT et ses messages conservés. Pour la téléconduite du réseau électrique, voyez IEC 60870-5-101 et 104 et IEC 61850.

Documentez chaque point pour qu’il soit vérifiable. Voici un enregistrement pour le compteur d’importation d’un site :

ChampExemple
ActifArrivée principale basse tension
Pointsite/import_active_power
SourceZEM-65 sur l’arrivée, via la Gateway ZGW-20
Unité et signekW, importation positive
Heure source2026-09-23T14:02:00Z, au relevé du compteur
Heure d’ingestion2026-09-23T14:02:01Z, à l’enregistrement par l’historien
QualitéBonne, périmée ou mauvaise
Intervalle attendu60 s ; périmée après 180 s

OPC UA porte nativement la plupart de ces informations. Son DataValue contient la valeur, un code d’état, une heure source et une heure serveur. La norme exige qu’un client vérifie au moins la gravité du code d’état avant d’utiliser la valeur (OPC UA Partie 4, 7.11). Si une passerelle copie une valeur OPC UA dans un simple registre Modbus, l’état et les deux heures disparaissent : une valeur périmée paraît alors actuelle.

Architecture multisite

EpiSensor Edge
Plateforme
EpiSensor Gateway
Zigbee
Modbus
ZEM
ZDR
Appareils Zigbee EpiSensor
Appareils Zigbee tiers
CVC
Solaire photovoltaïque
Pompes à chaleur
Stockage sur batterie
Compteurs
ZPC
BACnet
LoRaWAN
Appareils LoRaWAN
ZEM
Core
Capteurs sans fil, sans nouveaux câbles de données.
Des kilomètres de portée, des années d'autonomie.
Des données détaillées de compteurs existants
API ouvertes. Toute plateforme.
Utilisez votre propre SIM de données.
Les équipements de terrain se raccordent au Gateway ZGW-20 par les interfaces du site ; Edge y fonctionne localement. La supervision peut être centralisée, tandis que la protection et la commande déterministe restent locales.

Sur chaque site, une passerelle recueille les mesures filaires et sans fil, traduit les protocoles et garde les données en tampon pendant une coupure de liaison montante. Sur la Gateway ZGW-20, Edge lit les équipements tiers en client Modbus TCP et RTU, BACnet/IP et OPC UA. Il transmet les données par MQTTS ou HTTPS, ou les écrit dans des fichiers. Un maître SCADA peut interroger le serveur Modbus d’Edge, qui écoute par défaut sur le port TCP 10502. L’extension OPC UA d’Edge est uniquement cliente : un SCADA ne peut pas parcourir Edge en OPC UA. Le guide comparant API cloud et passerelle locale traite aussi de la lecture via le cloud du fabricant.

Un registre Modbus garde la dernière valeur écrite. Si un compteur cesse de transmettre, le serveur Modbus d’Edge conserve son dernier relevé ; un SCADA qui interroge toutes les 5 s reçoit encore cette valeur sans erreur. Une puissance stable de 42,7 kW ressemble alors à une source arrêtée. Le paramètre max_age d’Edge rejette les échantillons déjà anciens à leur arrivée, mais ne fait pas expirer un registre. Associez un signal de vie ou un horodatage d’acquisition de la source, avec un intervalle d’actualisation documenté, et déclenchez une alarme s’il ne progresse plus. L’index d’énergie importée n’est qu’un contrôle conditionnel : avec un import constant de 40 kW confirmé indépendamment, une résolution de 0,1 kWh donne un pas toutes les 9 s. Sans changement durant 60 s, il faut enquêter ; une charge nulle ou une exportation peuvent aussi laisser cet index inchangé. Cela seul ne prouve pas une panne de la source.

Pour un parc, utilisez un modèle sémantique commun au-dessus des passerelles, tout en conservant l’identité brute de la source. Un point tel que site/import_active_power doit rester traçable jusqu’au compteur physique, au registre ou objet source, à la conversion d’unité et à l’heure d’acquisition. Sinon, une courbe plausible peut cacher des phases inversées, un mauvais multiplicateur ou une ancienne valeur rejouée.

Les données mises en tampon exigent une règle de reprise. Lorsqu’un envoi échoue, Edge place le lot dans une file de nouvelles tentatives sur disque et vérifie chaque minute si la destination est de retour. Les mesures renvoyées gardent leurs horodatages d’origine ; Edge ne relance ni calculs ni automatisations sur elles. Un lot peut arriver deux fois si la destination l’a stocké avant qu’Edge n’enregistre l’envoi comme réussi. Identifiez les échantillons de l’historien par ID de point et heure source, et écartez les doublons exacts. Un historien qui remplace l’heure de mesure par celle d’arrivée transforme une coupure de 30 minutes en 30 minutes de relevés concentrés dans la minute suivant la reprise : la courbe montre une lacune suivie d’une fausse pointe.

Usages énergétiques

Puissance appelée et énergie par intervalle

Les tarifs et le décompte reposent sur l’énergie de chaque intervalle, pas sur la puissance instantanée. Calculez-la à partir de l’index d’énergie du compteur. Si l’index d’importation passe de 104 512,0 kWh à 14:00 à 104 698,5 kWh à 14:30, l’intervalle représente 186,5 kWh, soit une puissance moyenne appelée de 373 kW. Moyenniser des échantillons instantanés de kW pris chaque minute n’est qu’une estimation ; une lacune la fausse, alors que la différence entre index reste correcte malgré cette lacune. Utilisez la puissance instantanée pour l’exploitation et les alarmes, et les différences d’index pour la facturation et la vérification des économies. Le guide d’interopérabilité traite du rebouclage des compteurs et de la résolution des nombres flottants.

Effacement de consommation

La plateforme de l’agrégateur envoie un événement ; le contrôleur du site commute la charge ; un compteur prouve la réduction. La section suivante détaille un événement. Pour les services de fréquence, la réaction reste locale : ZDR-20 et ZDR-21 commutent un relais, tandis que ZDR-22 transmet une consigne à une batterie par Modbus. SCADA enregistre et rapporte l’événement.

Agrégation d’un parc

Un total de parc n’est valable que si l’échantillon de chaque site est actuel. Si la dernière bonne mesure d’un site date de 20 minutes, indiquez que le total est incomplet et nommez ce site. N’additionnez pas silencieusement l’ancienne valeur. Les horloges doivent être synchronisées pour ordonner les événements de plusieurs sites. ZDR-21 et ZDR-22 enregistrent les événements avec une résolution de 20 ms et une heure GPS, ce qui permet de comparer directement leurs journaux.

Accusé de réception d’une commande

Illustration isométrique d’une console de supervision, d’une passerelle, d’un contrôleur local, d’une pompe commandée et d’un compteur de puissance indépendant.
  1. Demande autorisée
  2. Point de réception accepté
  3. Traitement par le contrôleur
  4. État vérifié
  5. Résultat mesuré
Cinq étapes de preuve d’une commande, de la demande de l’exploitant jusqu’au relevé d’un compteur indépendant.

Consignez chaque commande selon ces cinq étapes :

Étape de preuveCe qu’elle établitCe qui reste à vérifier
Demande autoriséeLe demandeur a passé le contrôle d’accès ; SCADA a consigné la demande avec un ID de commandeSi la commande est sortie du serveur SCADA
Point de réception acceptéUn point de terminaison identifié, par exemple un courtier MQTT, a pris en charge le messageSi un abonné, contrôleur ou appareil a agi
Traitement par le contrôleurLe contrôleur cible a accepté la commande après ses propres vérificationsSi l’installation a changé d’état
État vérifiéLe retour d’équipement, par exemple le contact auxiliaire d’un contacteur, correspond à l’état demandéSi la charge du site a changé de la quantité attendue
Résultat mesuréUn compteur indépendant montre l’effet physique recherchéSi cet effet dure après la fenêtre d’observation

MQTT montre où s’arrête la deuxième étape. Lorsqu’un client publie en QoS 1, le courtier est le point de réception. En MQTT 5, un PUBACK porte un code de motif qui peut signifier succès ou erreur : vérifiez-le avant de consigner l’acceptation. La norme permet au destinataire d’envoyer PUBACK avant d’avoir achevé une éventuelle retransmission. Un PUBACK positif ne prouve donc rien quant à l’abonné, à l’automate ou au contacteur. QoS 1 permet en outre une livraison au moins une fois ; un abonné peut recevoir deux fois la même commande. Attribuez un ID à chaque commande et faites ignorer les répétitions par le contrôleur. Le guide MQTT sur TLS traite de l’identité du courtier et des droits sur les sujets à cette frontière.

Voici un événement d’effacement. Le site importe 1 180 kW et l’agrégateur demande une réduction de 250 kW. L’automate du site ouvre le contacteur d’un groupe froid. Un ZEM-65 posé sur l’arrivée principale, classé 0,5S selon IEC 62053-22 et distinct de l’automate, mesure le résultat.

HeureÉvénementÉtape
14:02:00.000SCADA consigne la commande DR-0412, effacer 250 kW, reçue de l’agrégateurDemande autorisée
14:02:00.180Le courtier renvoie PUBACK avec le code de motif 0x00 (succès)Point de réception accepté
14:02:00.950L’automate accuse réception de DR-0412 et ouvre le contacteur du groupe froidTraitement par le contrôleur
14:02:01.300Le contact auxiliaire confirme l’ouvertureÉtat vérifié
14:03:00Le compteur d’arrivée indique 935 kW, soit 245 kW sous la référence avant événementRésultat mesuré

Le projet fixe un délai pour chaque étape. Ici, l’automate doit répondre en 5 s, le contacteur changer d’état en 10 s et le compteur montrer au moins 80 % de la réduction demandée en 60 s. Un délai dépassé déclenche une alarme qui nomme l’étape défaillante. Si le contacteur s’ouvre mais que la puissance à l’arrivée ne baisse que de 40 kW, le groupe froid était probablement à charge partielle : rapportez les 40 kW mesurés. D’autres charges varient également pendant l’événement ; comparez la mesure à une référence pour la même période, pas à un relevé isolé. Spécifiez pour chaque classe de commande délais, limites de nouvelle tentative et conduite à tenir si une étape échoue. Les valeurs par défaut des protocoles ne les définissent pas.

Défauts SCADA fréquents

La plupart produisent des chiffres plausibles et nécessitent donc un essai volontaire : Effectuez les injections de défauts, coupures de liaison et essais de commande uniquement sur un banc contrôlé ou selon une procédure approuvée sur site, avec un opérateur qualifié, des protections indépendantes et un plan de rétablissement convenu. Ne désactivez pas une protection ou un retour d’état en service pour improviser un essai.

DéfautComment le détecter
La dernière valeur reste affichée après l’arrêt de la sourceUn signal de vie ou horodatage d’acquisition de la source ne progresse plus au-delà de son intervalle documenté
L’heure d’arrivée remplace l’heure de mesure après une repriseUne fausse pointe suit chaque coupure ; comparer heures source et d’ingestion
La reprise crée des doublonsPlus d’échantillons par point et par intervalle que la fréquence prévue
Des W sont étiquetés kW, ou une puissance est étiquetée énergieComparer à l’affichage de l’appareil sous charge stable
Les registres sont décodés dans le mauvais ordre des motsValeur proche de zéro ou beaucoup trop grande ; décoder un relevé connu dans chaque ordre
Deux systèmes écrivent la même consigneLa consigne change sans commande du responsable ; en BACnet, lire `Priority_Array`
Un PUBACK est affiché comme « commande terminée »Le journal ne contient aucune étape de retour d’état
La commande dépend du WAN et contourne les verrouillages locauxCouper le WAN pendant une commande d’essai et observer le contrôleur local
La mise en attente des alarmes et les changements de configuration ne sont pas auditésMettre une alarme en attente à la réception et rechercher sa trace dans le journal d’audit

Pour localiser le maillon défaillant, comparez un même point à un même instant à quatre endroits : l’écran ou l’outil local de l’appareil, la passerelle, l’écran SCADA et l’historien.

Sécurité

Le NIST recommande d’identifier et de segmenter les appareils informatiques et industriels, de cartographier les flux de données nécessaires à l’exploitation et de n’autoriser que ces flux entre segments. Il recommande aussi des communications authentifiées et chiffrées entre sites distants (NIST SP 800-82 rév. 3).

Chaque protocole présente une situation différente. Modbus/TCP ordinaire sur le port 502 n’authentifie pas les pairs : gardez-le dans un réseau segmenté, ou utilisez MODBUS/TCP Security sur le port 802 si les deux extrémités le prennent en charge. OPC UA propose trois modes de sécurité des messages : None, Sign et SignAndEncrypt (OPC UA Partie 4, 7.20). Le client OPC UA d’Edge utilise None par défaut. Réglez-le sur SignAndEncrypt avec une politique actuelle comme Basic256Sha256 et sélectionnez le point de terminaison annoncé par le serveur. Pour MQTT, utilisez TLS, vérifiez le certificat du courtier et limitez chaque client à ses propres sujets. Le guide MQTT sur TLS donne la procédure.

Liste de contrôle de mise en service

Fixez les seuils de réussite dans le cahier des charges. Ceux qui suivent sont des points de départ typiques.

  1. Associez chaque actif physique à son adresse d’appareil, registre ou objet, à son étiquette SCADA et à sa série historique. Vérifiez chaque association sur site.
  2. À charge stable, lisez l’affichage de l’appareil ou son outil local. Comparez la valeur à la passerelle, à l’écran SCADA et dans l’historien. Après conversion d’unité, chaque étape doit concorder à la résolution affichée.
  3. Comparez les heures source et d’ingestion. Les horloges doivent respecter la tolérance du projet, par exemple 1 s. Arrêtez une source et vérifiez que SCADA la signale comme périmée en trois intervalles attendus au plus.
  4. Coupez séparément la liaison terrain et le WAN. Consignez l’action du contrôleur local, le moment de chaque alarme et les données conservées par la passerelle.
  5. Rétablissez le WAN après une coupure de 30 minutes. Pour un point relevé toutes les 60 s, l’historien doit contenir 30 échantillons récupérés avec leurs heures d’origine, sans doublon ni lacune. Aucun intervalle traversant la coupure ne doit indiquer une énergie négative ou doublée.
  6. Envoyez une commande d’essai sûre et autorisée pour chaque classe de commandes. Consignez les cinq étapes de preuve. Bloquez ensuite une étape, par exemple le retour d’état, et vérifiez que l’alarme de délai la nomme.
  7. Tentez une connexion avec un certificat non fiable puis avec de mauvais identifiants. Vérifiez que les deux sont refusées et journalisées, et que seuls les flux prévus traversent les frontières entre segments.
  8. Redémarrez tour à tour chaque composant. Vérifiez réglages, abonnements et continuité des données. Après le redémarrage d’Edge, vérifiez que chaque registre du serveur Modbus contient de nouveau une valeur fraîche.
  9. Conservez les preuves : entrées d’essai, heures, résultats attendus et observés, versions du micrologiciel et de la configuration, ainsi que toute exception acceptée.