Les KPI d'usine intelligente ne sont utiles que s'ils sont calculés à partir de données fiables et consultés tant qu'il est encore temps d'agir. Ce guide définit 15 KPI que la plupart des industriels peuvent suivre en temps réel, donne la formule de chacun et liste précisément les événements machine à publier pour que les chiffres soient calculés en direct à partir d'un flux de données MQTT.
Ce qui rend un KPI « intelligent »
Un KPI traditionnel se calcule en fin de semaine à partir de rapports manuels. Un KPI d'usine intelligente s'en distingue de trois façons :
- Il est calculé à partir des données machine, et non de mémoire ou de tableurs.
- Il se met à jour en continu, ce qui permet à un chef d'équipe de réagir pendant le poste.
- Il permet d'explorer le détail de l'usine à la ligne, de la ligne à la machine et de la machine au motif, car les événements bruts portent ce contexte.
Ces trois qualités reposent sur le même socle : un petit ensemble d'événements bien définis, publiés par chaque machine. Réussissez cela, et la plupart des KPI ci-dessous ne sont plus que de l'arithmétique simple.
Les données brutes derrière les KPI d'usine intelligente
Presque tous les KPI de cette liste reposent sur six types d'événements. Publiez-les de façon cohérente dans une hiérarchie de topics ISA-95 et vous pourrez en dériver tout le reste.
| Événement | Exemple de topic | Éléments essentiels du payload |
|---|---|---|
| État machine | .../line1/cnc4/state |
état, code motif, horodatage (retained) |
| Comptage | .../line1/cnc4/count |
bonnes, rebuts, retouches, ID d'ordre, horodatage |
| Temps de cycle idéal | .../line1/cnc4/order/current |
ID d'ordre, matière, temps de cycle idéal en secondes (retained) |
| Résultat qualité | .../line1/qc1/result |
numéro de série ou lot, conforme/non conforme, code défaut |
| Énergie | .../line1/cnc4/energy |
relevé de compteur kWh, horodatage |
| Planning | .../line1/schedule |
temps de production planifié, pauses (retained) |
L'article topics MQTT ISA-95 explique comment construire le chemin placé devant ces topics feuilles.
15 KPI d'usine intelligente
Efficacité des équipements
| # | KPI | Formule | Données nécessaires |
|---|---|---|---|
| 1 | Disponibilité | Temps de marche / temps de production planifié | Événements d'état, planning |
| 2 | Performance | (Temps de cycle idéal x comptage total) / temps de marche | Comptages, temps de cycle idéal, état |
| 3 | Taux de qualité | Comptage bon / comptage total | Comptages bonnes et rebuts |
| 4 | TRS (OEE) | Disponibilité x Performance x Qualité | Tout ce qui précède |
| 5 | TEEP | TRS x (temps de production planifié / temps total) | TRS, temps calendaire |
Le TRS est l'indicateur de référence de l'efficacité des équipements. Le calcul étape par étape, y compris les pièges du choix du temps de cycle idéal, se trouve dans comment calculer le TRS, et la différence entre TRS et TEEP est traitée dans OEE vs TEEP vs OOE.
Fiabilité et maintenance
| # | KPI | Formule | Données nécessaires |
|---|---|---|---|
| 6 | MTBF | Temps de marche total / nombre de pannes | Événements d'état avec motif de panne |
| 7 | MTTR | Temps total de réparation / nombre de réparations | Horodatages d'arrêt et de retour en marche |
| 8 | Part des arrêts non planifiés | Temps d'arrêt non planifié / temps de production planifié | Événements d'état avec catégorie de motif |
| 9 | Respect de la maintenance planifiée | Tâches planifiées réalisées / tâches programmées | Événements de maintenance issus de la GMAO |
Le MTBF et le MTTR dépendent de transitions d'état propres et de la distinction entre pannes et arrêts planifiés. Le calcul du MTBF et du MTTR couvre les cas limites, comme la façon de compter une panne qui chevauche un changement de poste.
Qualité
| # | KPI | Formule | Données nécessaires |
|---|---|---|---|
| 10 | Rendement au premier passage (FPY) | Unités conformes du premier coup / unités entrantes | Résultats qualité par unité ou par lot |
| 11 | Taux de rebut | Comptage rebuts / comptage total | Comptages |
| 12 | Défauts par million d'opportunités (DPMO) | Défauts / (unités x opportunités) x 1 000 000 | Codes défaut, opportunités par unité |
Le FPY diffère du taux de qualité du TRS lorsqu'il existe des retouches : une pièce retouchée compte comme bonne au final, mais pas comme une réussite au premier passage. Publier les retouches comme un comptage distinct garde les deux chiffres honnêtes.
Flux et coûts
| # | KPI | Formule | Données nécessaires |
|---|---|---|---|
| 13 | Débit | Unités bonnes / heure | Comptages |
| 14 | Temps de cycle moyen | Temps de marche / comptage total | État, comptages |
| 15 | Énergie par unité | kWh consommés / unités bonnes | Compteur d'énergie, comptages |
L'énergie par unité est l'un des KPI les plus utiles à ajouter dans une usine intelligente, car il relie production et utilités. Il nécessite un compteur par machine ou par ligne et des horodatages alignés sur les comptages ; consultez la surveillance énergétique en usine pour les options de comptage.
Calculer un KPI en direct à partir d'événements MQTT
Pour montrer combien un KPI temps réel demande peu de code, le script Python suivant s'abonne aux événements d'état et de comptage d'une machine et affiche la disponibilité, le taux de qualité et le débit toutes les dix secondes. Il utilise paho-mqtt 2.x et le serveur MQTT public gratuit, destiné aux tests et non aux données de production ; remplacez le préfixe par votre propre identifiant aléatoire.
import json
import time
import uuid
import paho.mqtt.client as mqtt
BASE = "connectmq/demo/kpi-6a0c/line1/cnc4"
start = time.time()
run_seconds = 0.0
state, state_since = "UNKNOWN", start
good = scrap = 0
def on_connect(client, userdata, flags, reason_code, properties):
client.subscribe([(f"{BASE}/state", 1), (f"{BASE}/count", 1)])
def on_message(client, userdata, msg):
global state, state_since, run_seconds, good, scrap
data = json.loads(msg.payload)
now = time.time()
if msg.topic.endswith("/state"):
if state == "RUNNING":
run_seconds += now - state_since
state, state_since = data["state"], now
else:
good += data.get("good", 0)
scrap += data.get("scrap", 0)
client = mqtt.Client(mqtt.CallbackAPIVersion.VERSION2,
client_id=f"kpi-{uuid.uuid4().hex[:8]}")
client.on_connect = on_connect
client.on_message = on_message
client.connect("broker.connectmq.com", 1883, keepalive=30)
client.loop_start()
while True:
time.sleep(10)
now = time.time()
running = run_seconds + (now - state_since if state == "RUNNING" else 0)
elapsed = now - start
total = good + scrap
availability = running / elapsed if elapsed else 0
quality = good / total if total else 0
throughput = good / (elapsed / 3600) if elapsed else 0
print(f"state={state} availability={availability:.1%} "
f"quality={quality:.1%} throughput={throughput:.0f}/h")
Alimentez-le avec des événements de test depuis la ligne de commande :
mosquitto_pub -h broker.connectmq.com -p 1883 -i kpi-pub-6a0c -t "connectmq/demo/kpi-6a0c/line1/cnc4/state" -m '{"state":"RUNNING"}'
mosquitto_pub -h broker.connectmq.com -p 1883 -i kpi-pub-6a0c -t "connectmq/demo/kpi-6a0c/line1/cnc4/count" -m '{"good":5,"scrap":1}'
En production, vous utiliseriez le planning au lieu du temps écoulé, persisteriez l'état et écririez les résultats dans une base de séries temporelles pour les tendances. La structure reste la même. Un pipeline complet avec tableaux de bord est décrit dans la surveillance du TRS en temps réel.
Montrer les bons KPI d'usine intelligente aux bonnes personnes
Les mêmes événements produisent des vues différentes pour des publics différents, et adapter la vue au public compte davantage que le nombre de KPI :
| Public | KPI | Rafraîchissement | Où |
|---|---|---|---|
| Opérateurs | État courant, débit vs objectif, rebuts de l'heure | Secondes | Écran en bord de ligne |
| Chefs d'équipe | TRS par machine, principaux motifs d'arrêt, appels ouverts | Minutes | Tablette ou écran de bureau |
| Maintenance | MTBF, MTTR, part des arrêts non planifiés | Quotidien | Tableau de bord maintenance |
| Direction d'usine | Tendance du TRS, FPY, énergie par unité, débit | Hebdomadaire | Rapport ou tableau de bord de direction |
Les écrans de ligne se connectent au broker via WebSocket sécurisé et se mettent à jour en direct ; les vues de direction interrogent une base de séries temporelles alimentée par les mêmes événements. Comme ConnectMQ distribue chaque événement à tous les abonnés, ajouter une nouvelle vue n'exige jamais de modifier les machines ni les passerelles.
Erreurs fréquentes avec les KPI
- Suivre trop de KPI. Choisissez-en trois à cinq par public. Les opérateurs ont besoin de l'état, du débit et du TRS courant ; les managers, des tendances et des pertes.
- Mélanger les définitions entre sites. Écrivez ce qui compte comme temps planifié, comme panne et comme pièce bonne avant de comparer des usines.
- Utiliser un temps de cycle idéal « théorique » que personne ne peut atteindre. La performance paraît alors durablement mauvaise et les gens cessent de faire confiance au chiffre.
- Ignorer les trous de données. Une passerelle hors ligne doit afficher « aucune donnée », pas « machine arrêtée ». Un message last will sur un topic d'état rend la différence visible.
- Afficher des KPI sans motifs. Une disponibilité faible appelle la question du pourquoi. Collectez les codes motifs en même temps que les états.
Une colonne vertébrale de données fiable pour vos KPI
Chaque KPI ci-dessus hérite de la fiabilité du pipeline sur lequel il repose. ConnectMQ fait tourner ce pipeline en tant que broker MQTT managé : MQTT 3.1.1 et 5.0, TLS et WebSocket sécurisé pour les tableaux de bord dans le navigateur, retained messages pour l'état courant, et un portail avec explorateur de topics en direct, tableau de bord et règles d'alerte à seuil pour des vérifications rapides. Vos services de KPI, flows Node-RED ou pipelines Grafana se connectent comme des clients MQTT ordinaires. Pour la feuille de route globale, consultez le guide de l'usine intelligente.
Suivez vos KPI d'usine intelligente sur ConnectMQ
Créez un broker Serverless gratuit sur app.connectmq.com, sans carte bancaire, publiez les événements d'état et de comptage d'une machine et obtenez des chiffres de disponibilité et de débit en direct en quelques minutes.
Questions fréquentes
Par quel KPI d'usine intelligente commencer ?
Commencez par la disponibilité et les motifs d'arrêt qui l'expliquent, car les données d'état sont les plus faciles à collecter et les pertes y sont généralement les plus importantes. Ajoutez ensuite la performance et la qualité pour obtenir le TRS complet.
À quel point les KPI de production doivent-ils être en temps réel ?
Les opérateurs tirent profit de mises à jour toutes les quelques secondes à une minute pour réagir pendant le poste. Les tendances de direction peuvent être agrégées par heure ou par poste à partir des mêmes événements.
Quelle est la différence entre le FPY et le taux de qualité du TRS ?
Le taux de qualité du TRS compte toutes les unités bonnes, y compris celles qui ont été retouchées. Le rendement au premier passage ne compte que les unités bonnes du premier coup : il révèle donc les retouches cachées.
Ai-je besoin d'un MES pour calculer ces KPI ?
Non. La plupart peuvent être calculés directement à partir des événements d'état, de comptage et d'énergie publiés via MQTT. Un MES ajoute par-dessus le contexte des ordres de fabrication et les workflows.



