Un tableau de bord qui présente chaque lecture comme un nombre ordinaire peut faire passer un compteur défaillant pour une charge stable. Une mesure peut être erronée de plusieurs façons, à traiter différemment : elle peut être périmée, manquante, invalide ou estimée.
Ce guide fait partie de la série sur la qualité et la transmission des données.
Cinq états
| État | Signification | Présentation | Dans un total |
|---|---|---|---|
| Valide | Lecture actuelle d’une source en bon état | La valeur | Incluse |
| Périmée | Aucune nouvelle lecture avant l’expiration du délai du point | Dernière valeur, marquée comme périmée, avec son âge | Totaux par intervalle : comptée comme manquante. Totaux du compteur cumulatif : exacts après la prochaine lecture |
| Manquante | Aucune lecture pour la période | Une lacune | Total signalé comme incomplet, avec son taux de couverture |
| Invalide | La source signale une défaillance ou la valeur sort de sa plage physique | Un indicateur, la valeur brute restant dans l’enregistrement | Exclue |
| Estimée | Calculée selon une méthode documentée | Valeur signalée comme estimée | Incluse, le total étant signalé comme contenant des estimations |
Certains protocoles accompagnent chaque valeur de ces états. Faites la correspondance dans le collecteur et conservez l’état avec la valeur jusqu’à l’enregistrement final.
| Protocole | Périmée | Manquante | Invalide | Estimée |
|---|---|---|---|---|
| OPC UA StatusCode | Uncertain_LastUsableValue | Bad_NoCommunication | Bad_SensorFailure, Bad_DeviceFailure | Uncertain_SubstituteValue |
| Descripteur de qualité IEC 60870-5-101/104 | NT, non actuel | Aucune mise à jour reçue | IV, invalide | SB, substitué |
| BACnet | Selon l’ancienneté seulement | Pas de réponse, ou pas de notification COV | FAULT dans Status_Flags ; cause dans Reliability | Aucun indicateur |
| Modbus | Selon l’ancienneté seulement | Délai dépassé ou exception 0B | Exception 04 ou code de valeur indisponible | Aucun indicateur |
OPC UA définit ces codes dans la partie 8, tableaux 61 et 62. Uncertain_LastUsableValue indique que le mécanisme de mise à jour de la valeur s’est arrêté. Uncertain_SubstituteValue indique une valeur remplacée manuellement. Le guide sur la qualité IEC 60870 explique les cinq indicateurs IEC.
BACnet Status_Flags comporte quatre bits : IN_ALARM, FAULT, OVERRIDDEN et OUT_OF_SERVICE. FAULT est activé lorsque la propriété Reliability contient autre chose que NO_FAULT_DETECTED. Lisez aussi Reliability pour connaître la cause : NO_SENSOR, OVER_RANGE, UNDER_RANGE, OPEN_LOOP, SHORTED_LOOP ou COMMUNICATION_FAILURE, entre autres. Si OUT_OF_SERVICE est activé, Present_Value ne suit plus l’entrée physique. Excluez cette valeur des totaux.
Modbus ne fournit pas de qualité par valeur. Le collecteur déduit l’état de trois signaux : un délai dépassé, une réponse d’exception et les codes de valeur indisponible propres à l’appareil. L’exception 04 (défaillance de l’appareil serveur) signifie que l’appareil a échoué pendant le traitement de la demande. L’exception 0B (la cible derrière la passerelle n’a pas répondu) signifie que l’appareil série situé derrière une passerelle ne répond pas. Le guide de dépannage Modbus présente les autres codes d’exception.
Valeur périmée
Une valeur périmée est difficile à détecter, car elle ressemble à une bonne lecture. Elle peut venir du cache d’une passerelle, d’un registre qui conserve sa dernière valeur ou d’un tableau de bord qui affiche encore la dernière valeur reçue. Une passerelle Modbus peut continuer à répondre avec l’ancienne valeur alors que le compteur en aval ne répond plus.
Marquez un point comme périmé si aucune lecture ne parvient avant un délai défini. Fixez ce délai à deux ou trois intervalles de transmission. Sur un réseau radio, la perte d’un message peut être normale ; deux ou trois pertes consécutives signalent une défaillance. Avec un seuil de trois intervalles, un point transmis toutes les 5 minutes devient périmé après 15 minutes. Le délai doit aussi dépasser toute la séquence de nouvelles tentatives du collecteur ; sinon, un appareil lent devient périmé à chaque tentative.
Évaluez la fraîcheur selon l’heure de la dernière lecture reçue de la source, et non selon le dernier changement de valeur. Une température stable ne change pas, mais reste actuelle.
Une source qui transmet sur changement n’a pas d’intervalle fixe : une source silencieuse ressemble à une source hors service. Fondez le délai sur un signal de vie garanti. Un appareil Zigbee configuré pour la transmission d’attributs envoie au moins un rapport à chaque intervalle maximal de transmission, même sans changement de valeur : fixez le délai à deux ou trois de ces intervalles. Un abonnement BACnet COV expire si le client ne le renouvelle pas ; une fois expiré, il ne transmet plus rien. Si la source n’a pas de signal de vie, interrogez-la également à intervalle fixe. Le guide BACnet COV explique ces vérifications.
L’état périmé concerne la valeur en direct. Dans l’historique, un intervalle clos sans lecture est manquant, pas périmé.
Donnée manquante
Représentez une lacune comme telle :
- un graphique interrompt la courbe ou hachure la période ;
- un tableau ne montre aucune valeur, et surtout pas 0 ;
- un total quotidien ou mensuel indique sa couverture, par exemple 44 demi-heures sur 48.
Pour un compteur d’énergie cumulatif, une coupure de communication ne fait perdre aucune énergie mesurée. La lecture suivante englobe toute l’énergie consommée pendant la coupure. Seule sa répartition entre les intervalles manquants est inconnue. Une lacune dans la puissance instantanée est différente : on ne peut pas récupérer cette mesure.
La possibilité de calculer un indicateur à partir de données incomplètes dépend de cet indicateur. Un total journalier en kWh fondé sur les index relevés aux deux extrémités de la journée est exact quelle que soit la couverture intermédiaire. Un maximum de puissance appelée calculé sur des intervalles incomplets n’est qu’une borne inférieure, car le pic peut se trouver dans une lacune : indiquez « au moins ». Une moyenne ou une charge de base est biaisée si les lacunes se concentrent sur certaines heures. Une panne nocturne retire précisément les intervalles nécessaires au calcul de la charge de base. Définissez dans le cahier des charges une couverture minimale par indicateur et signalez ou masquez l’indicateur en dessous de ce seuil. Le guide kW et kWh explique les index et les intervalles.
Valeur invalide
Une valeur est invalide lorsque la source signale une panne ou que la valeur sort de la plage physiquement possible. Citons une humidité relative supérieure à 100 % ou un facteur de puissance supérieur à 1.
De nombreux appareils Modbus renvoient un code fixe quand une valeur est indisponible. Dans le modèle d’information SunSpec, 0x8000 pour int16, 0xFFFF pour uint16 et 0xFFFFFFFF pour uint32 signifient « non implémenté », tandis que 0 pour un accumulateur acc32 signifie « non accumulé ». Décodé sans vérification, un registre de tension uint16 avec une échelle de 0,1 V qui renvoie 0xFFFF (65 535) donne 6 553,5 V. Vérifiez ces codes dans le registre brut avant d’appliquer l’échelle. Sur un appareil SunSpec, un accumulateur d’énergie exactement égal à 0 est un code, pas une remise à zéro. Le guide des tables de registres Modbus répertorie les codes d’indisponibilité courants.
Les compteurs d’énergie peuvent produire les plus grandes valeurs invalides, pour trois raisons.
Débordement. Un compteur revient à zéro quand il atteint sa valeur maximale. Un registre 16 bits comptant des kWh entiers déborde à 65 535 kWh, atteints en environ 55 jours avec une charge constante de 50 kW. Pour corriger le débordement, ajoutez la plage du registre à la différence, mais seulement si le résultat est plausible au regard du temps écoulé.
Remise à zéro ou remplacement. Un compteur neuf commence près de zéro. La différence devient fortement négative. Si on lui applique une correction de débordement, on crée une fausse consommation pouvant atteindre la plage entière du registre. Enregistrez un changement de compteur avec une lecture finale de l’ancien et une lecture initiale du nouveau.
Lectures séparées. La lecture d’un compteur 32 bits en deux requêtes peut assembler deux mots pris à des instants différents ; le total bondit alors de 65 536 unités, puis revient. Lisez les deux registres dans une même requête.
Rejetez toute différence d’intervalle négative ou supérieure à ce que le circuit peut fournir. Un circuit triphasé de 100 A sous 400 V délivre au plus environ 69 kVA : il ne peut donc pas consommer plus d’environ 35 kWh en 30 minutes.
Excluez les valeurs invalides des totaux et des calculs, affichez un indicateur et conservez la valeur brute pour le diagnostic.
Valeur estimée
Une facture ou un rapport réglementaire peut exiger une série complète. Si vous comblez une lacune :
- Employez une méthode documentée. Pour un compteur cumulatif, répartissez le total connu entre les intervalles manquants, uniformément ou selon le profil d’une journée comparable, afin que leur somme corresponde toujours à la différence d’index.
- Ne calculez pas l’énergie à partir d’une puissance interpolée. Une courbe en kW interpolée n’a aucun total à préserver : l’énergie intégrée en kWh ne correspondra pas à l’index du compteur.
- Signalez chaque valeur estimée comme telle, dans le stockage et à l’écran.
- Ne remplacez jamais une valeur mesurée par une estimation. Conservez les estimations séparément pour pouvoir les remplacer.
De véritables lectures peuvent arriver après le comblement d’une lacune : données remises en file après une panne ou relevé ultérieur du journal de profil de charge d’un compteur. Remplacez alors les estimations par les mesures. Recalculez tous les totaux qui les utilisaient et consignez la révision du rapport. Le guide d’horodatage explique le classement des lectures tardives selon l’heure de la source.
Effet de chaque état en aval
Décidez à l’avance du comportement de chaque consommateur de données et inscrivez-le dans le cahier des charges. Ces règles par défaut conviennent à la plupart des projets de suivi énergétique :
| Consommateur | Règle par défaut |
|---|---|
| Graphiques | Interrompre la courbe pour un intervalle manquant. Ne jamais relier les points par-dessus une lacune. Afficher l’âge d’une valeur périmée en direct. Donner aux estimations un style distinct. |
| Totaux et rapports | Exclure les valeurs invalides. Inclure les estimations en les signalant. Indiquer la couverture et qualifier un pic calculé sur des données incomplètes par « au moins ». |
| Alarmes | Déclencher une alarme de communication distincte quand un point devient périmé. Supprimer les alarmes de seuil de ce point tant qu’il est périmé ou invalide, afin qu’une panne ne provoque qu’une alarme. Effacer l’alarme après deux bonnes lectures, pas une seule. |
| Automatisation | Vérifier l’état de chaque entrée avant d’agir. Si une entrée est périmée ou invalide, appliquer une sortie sûre définie à l’avance. |
| Exports | Envoyer un champ de qualité avec chaque valeur, dans le message MQTT ou une colonne CSV. Envoyer une valeur manquante comme champ vide ou null, jamais 0. |
Une règle qui arrête un refroidisseur lorsque la température de l’eau glacée est basse ne doit pas réagir à une ancienne lecture basse. Sinon, le refroidisseur reste arrêté pendant que le bâtiment se réchauffe. La sortie sûre consiste ici à laisser le régulateur propre du refroidisseur reprendre la main. Le guide des défaillances de verrouillage explique le choix des sorties sûres.
Tester chaque état
Lors de la mise en service, provoquez volontairement chaque état et vérifiez ce que montre chaque consommateur :
- Débranchez la liaison de communication d’un appareil. Vérifiez que ses points deviennent périmés dans le délai prévu, que l’alarme de communication se déclenche et que l’historique montre les intervalles perdus comme manquants, et non comme nuls.
- Débranchez l’entrée d’un capteur, par exemple une sonde de température. Si l’appareil sait détecter cette défaillance, vérifiez que la valeur est signalée et exclue des totaux.
- Rétablissez les deux liaisons. Vérifiez que l’indicateur de péremption et l’alarme disparaissent et que la première lecture d’index après la reprise clôt la lacune sans créer un pic de puissance appelée sur un seul intervalle.
- Si une passerelle Modbus se trouve entre le collecteur et un compteur, débranchez le compteur de la passerelle. Vérifiez si celle-ci renvoie l’exception 0B, ne répond pas dans le délai ou continue de fournir la dernière valeur.
La liste de contrôle de mise en service inclut ces essais.
États des données dans Edge
Edge enregistre un horodatage pour chaque lecture et un état de santé pour chaque appareil Modbus ou OPC UA. Un appareil Modbus passe hors ligne après deux interrogations attendues manquées, avec un minimum de cinq minutes. Le capteur activé le plus rapide de l’appareil fixe la cadence attendue : un compteur relevé toutes les heures ne passe donc pas hors ligne après cinq minutes. Un appareil OPC UA passe hors ligne après cinq minutes sans communication.
Pour chaque capteur Modbus et OPC UA, Edge calcule aussi le pourcentage des lectures attendues reçues sur une fenêtre glissante de 15 minutes. Si l’intervalle dépasse 15 minutes, il indique plutôt un nombre de lectures. Cet indicateur mesure la transmission par rapport à l’intervalle configuré. Il ne représente pas l’OPC UA StatusCode et ne dit pas si une valeur est physiquement valide.
Le comblement des lacunes est désactivé par défaut pour les appareils Modbus et OPC UA. S’il est activé, Edge comble les lacunes jusqu’à une durée maximale configurable, de 15 secondes par défaut, avec des zéros, la dernière valeur ou des valeurs interpolées ; chaque point créé est marqué comme synthétique. Une base de données en aval peut perdre cet indicateur. Laissez donc le comblement désactivé pour les données utilisées dans la facturation, les alarmes ou le pilotage. L’export CSV depuis la page Données laisse les valeurs manquantes vides, et non à zéro. Sur chaque plateforme qui reçoit les données d’Edge, exécutez les essais ci-dessus pour vérifier qu’elle applique les mêmes règles.
Questions fréquentes
Qu’est-ce qu’une donnée périmée ?
C’est une valeur qui n’est plus actuelle mais reste affichée comme si elle l’était. Elle apparaît lorsqu’une source cesse de se mettre à jour et qu’une passerelle ou un tableau de bord conserve la dernière valeur. Marquez le point comme périmé si aucune nouvelle lecture n’arrive dans le délai défini, par exemple après deux ou trois intervalles de transmission.
Comment représenter des données de capteur manquantes ?
Par une lacune. Le graphique doit interrompre la courbe ou marquer la période, le tableau ne doit montrer aucune valeur et le total doit indiquer sa couverture. Présenter une lacune comme un zéro laisse croire que la consommation s’est arrêtée.
Faut-il combler les données énergétiques manquantes ?
Uniquement par une méthode documentée, avec un marquage « estimé ». Si le compteur a continué à compter pendant une panne de communication, sa lecture suivante donne exactement l’énergie de la période ; seule sa répartition entre les intervalles manquants est estimée. Si le compteur lui-même a cessé de mesurer, cette énergie est perdue et le total reste incomplet.