Fait partie de notre série Manufacturing in the AI Era
Lire le guide completManufacturing Analytics dans Power BI : OEE, qualité et débit
Les installations de fabrication de classe mondiale fonctionnent à 85 %+ OEE. Le constructeur moyen tourne à 60 %. Cet écart de 25 points de pourcentage se traduit directement en capacité : une installation qui s'améliore de 60 % à 85 % du TRG ajoute 41 % de production en plus sans une seule nouvelle machine ou embauche. La différence entre une entreprise de classe mondiale et une entreprise moyenne ne réside presque toujours pas dans l'équipement, mais plutôt dans la visibilité permettant de visualiser les déchets et les données permettant de les éliminer.
Power BI, connecté aux données MES (Manufacturing Execution System) et ERP, offre cette visibilité. Ce guide crée une plate-forme complète d'analyse de fabrication couvrant le calcul de l'OEE, les graphiques SPC de qualité, l'analyse des causes profondes des temps d'arrêt et la gestion du débit, avec les formules DAX précises dont les ingénieurs de fabrication ont besoin.
Points clés à retenir
- OEE = Disponibilité × Performance × Qualité (classe mondiale = 85 %+)
- Chaque composant OEE nécessite des flux de données distincts : journaux de temps d'arrêt, décomptes de production, enregistrements de rebuts
- Les graphiques SPC (Statistical Process Control) dans Power BI utilisent des visuels personnalisés ou des limites de contrôle calculées
- L'analyse Pareto des temps d'arrêt (les 20 % principaux des raisons sont à l'origine de 80 % des temps d'arrêt) permet d'améliorer les priorités
- Le rendement au premier passage (FPY) et les défauts par million d'opportunités (DPMO) sont les principaux KPI de qualité
- L'analyse du débit compare la capacité réelle à la capacité théorique en utilisant la théorie des goulots d'étranglement
- Les ensembles de données de streaming Power BI permettent de mettre à jour les tableaux de bord OEE en temps quasi réel toutes les minutes.
- L'intégration ERP (Odoo Manufacturing, SAP PP, Dynamics 365 SCM) fournit un contexte de bon de travail
Modèle de données pour l'analyse de la fabrication
Tableaux de fabrication de base
Production_Runs (une ligne par cycle de production/ordre de travail) :
| Colonne | Descriptif |
|---|---|
RunID | ID de bon de travail ou d'exécution de production |
MachineID | FK à la dimension de la machine |
ProductID | FK au produit |
ShiftID | FK pour décaler |
StartTime | Exécuter la date et l'heure de début |
EndTime | Dateheure de fin d'exécution |
PlannedStartTime | Démarrage programmé |
PlannedEndTime | Fin programmée |
PlannedQuantity | Quantité de production cible |
ActualQuantity | Unités réelles produites |
GoodQuantity | Unités passant le contrôle de qualité |
ScrapQuantity | Unités défectueuses |
ReworkQuantity | Unités nécessitant une reprise |
IdealCycleTime | Secondes par unité à la vitesse de conception |
Downtime_Events (une ligne par arrêt) :
| Colonne | Descriptif |
|---|---|
DowntimeID | Identifiant unique |
MachineID | FK à la machine |
RunID | FK au cycle de production (le cas échéant) |
StartTime | Début des temps d'arrêt |
EndTime | Fin des temps d'arrêt |
DurationMinutes | Durée totale du temps d'arrêt |
DowntimeCategory | Planifié (PM, changement) / Non planifié |
DowntimeReasonCode | Code motif spécifique |
DowntimeReasonDesc | Descriptif |
IsScheduledMaintenance | Indicateur de maintenance planifiée |
ResponseTimeMinutes | Temps jusqu'à ce que le technicien réponde |
RepairTimeMinutes | Temps de réparation actif |
Quality_Events (une ligne par défaut/inspection) :
| Colonne | Descriptif |
|---|---|
InspectionID | Identifiant unique |
RunID | FK en production |
MachineID | FK à la machine |
InspectionDate | Date/heure de l'inspection |
DefectCode | FK au type de défaut |
DefectCount | Nombre de défauts trouvés |
SampleSize | Unités inspectées |
MeasuredValue | Mesure variable (pour SPC) |
IsInSpec | Booléen — dans les limites de tolérance |
Dim_Machine :
MachineID,MachineName,Line,Cell,Department,MachineType,IdealRunRate,PlannedCapacity
Dim_Shift :
ShiftID,ShiftName,StartTime,EndTime,PlannedMinutes,PlannedBreakMinutes
Calcul OEE dans Power BI
OEE = Disponibilité × Performance × Qualité
Disponibilité
Disponibilité = Temps d'exécution réel / Temps de production prévu
// Planned Production Time (from shift schedule minus planned downtime)
Planned Production Time =
SUMX(
Production_Runs,
DATEDIFF(Production_Runs[PlannedStartTime],
Production_Runs[PlannedEndTime], MINUTE)
)
// Unplanned Downtime (excludes scheduled maintenance, changeovers)
Unplanned Downtime =
CALCULATE(
SUM(Downtime_Events[DurationMinutes]),
Downtime_Events[DowntimeCategory] = "Unplanned"
)
// Changeover Time (planned but reduces availability)
Changeover Time =
CALCULATE(
SUM(Downtime_Events[DurationMinutes]),
Downtime_Events[DowntimeReasonCode] = "CHANGEOVER"
)
// Actual Run Time
Actual Run Time = [Planned Production Time] - [Unplanned Downtime] - [Changeover Time]
// OEE Availability
Availability =
DIVIDE([Actual Run Time], [Planned Production Time], 0)
Performances
Performance = (Durée de cycle idéale × Nombre total) / Durée d'exécution réelle Ou de manière équivalente : Sortie réelle / Sortie maximale théorique
// Theoretical Maximum Output at ideal run rate
Theoretical Max Output =
SUMX(
Production_Runs,
[Actual Run Time Per Run] / Production_Runs[IdealCycleTime]
)
// Actual total output (good + scrap + rework)
Total Output =
SUM(Production_Runs[ActualQuantity])
// OEE Performance
Performance =
DIVIDE([Total Output], [Theoretical Max Output], 0)
// Performance per machine (for benchmarking)
Machine Performance =
DIVIDE(
SUMX(Production_Runs, Production_Runs[ActualQuantity]),
SUMX(Production_Runs,
DATEDIFF(Production_Runs[StartTime], Production_Runs[EndTime], MINUTE) /
RELATED(Dim_Machine[IdealCycleTime]) * 60
),
0
)
Qualité
Qualité = Bon rendement / Rendement total (exclut tous les défauts)
// Good Quantity (first pass, no rework)
Good Quantity = SUM(Production_Runs[GoodQuantity])
// Total Quantity Produced (good + scrap + rework)
Total Quantity = SUM(Production_Runs[ActualQuantity])
// OEE Quality
Quality Rate =
DIVIDE([Good Quantity], [Total Quantity], 0)
// First Pass Yield (no rework, no scrap)
First Pass Yield =
DIVIDE(
SUM(Production_Runs[GoodQuantity]),
SUM(Production_Runs[ActualQuantity]),
0
)
TRS global
// Overall Equipment Effectiveness
OEE =
[Availability] * [Performance] * [Quality Rate]
// OEE Status (for conditional formatting)
OEE Status =
SWITCH(TRUE(),
[OEE] >= 0.85, "World Class", -- 85%+
[OEE] >= 0.75, "Good", -- 75-85%
[OEE] >= 0.60, "Acceptable", -- 60-75%
"Poor" -- <60%
)
// OEE Loss Analysis (what is the primary constraint)
Primary OEE Constraint =
SWITCH(TRUE(),
[Availability] < [Performance] && [Availability] < [Quality Rate], "Availability",
[Performance] < [Quality Rate], "Performance",
"Quality"
)
// OEE trend (for sparkline visualization)
OEE Weekly Avg =
CALCULATE(
[OEE],
DATESINPERIOD(Date[Date], LASTDATE(Date[Date]), -7, DAY)
)
Analyse des temps d'arrêt
KPI de temps d'arrêt et Pareto
// Total Unplanned Downtime Hours
Unplanned Downtime Hours =
DIVIDE(
CALCULATE(
SUM(Downtime_Events[DurationMinutes]),
Downtime_Events[DowntimeCategory] = "Unplanned"
),
60,
0
)
// Mean Time Between Failures (MTBF)
MTBF =
DIVIDE(
[Actual Run Time],
CALCULATE(COUNTROWS(Downtime_Events),
Downtime_Events[DowntimeCategory] = "Unplanned"),
0
)
// Mean Time to Repair (MTTR)
MTTR =
AVERAGEX(
FILTER(Downtime_Events, Downtime_Events[DowntimeCategory] = "Unplanned"),
Downtime_Events[RepairTimeMinutes]
)
// Downtime % by reason (for Pareto chart)
Downtime Pareto % =
DIVIDE([Unplanned Downtime Hours],
CALCULATE([Unplanned Downtime Hours], ALL(Downtime_Events[DowntimeReasonCode])),
0
)
// Cumulative Downtime % (for Pareto 80/20 line)
Cumulative Downtime % =
DIVIDE(
SUMX(
FILTER(
ALL(Downtime_Events[DowntimeReasonCode]),
RANKX(ALL(Downtime_Events[DowntimeReasonCode]),
[Unplanned Downtime Hours], , DESC) <=
RANKX(ALL(Downtime_Events[DowntimeReasonCode]),
[Unplanned Downtime Hours], , DESC)
),
[Unplanned Downtime Hours]
),
CALCULATE([Unplanned Downtime Hours], ALL(Downtime_Events[DowntimeReasonCode])),
0
)
Carte thermique des temps d'arrêt
Créez une carte thermique des temps d'arrêt par machine × heure de la journée pour identifier les modèles liés aux équipes :
// Downtime by Hour of Day (for heatmap rows)
Downtime by Hour =
CALCULATE(
SUM(Downtime_Events[DurationMinutes]),
Downtime_Events[HourOfDay] = SELECTEDVALUE(HourDim[Hour])
)
Analyse qualité : graphiques SPC
Les graphiques de contrôle statistique des processus vérifient si un processus est sous contrôle. Power BI crée des graphiques SPC à l’aide de calculs de limites de contrôle dans DAX.
Limites de contrôle pour les graphiques X-Bar
// Process Mean (X-bar)
Process Mean =
AVERAGE(Quality_Events[MeasuredValue])
// Standard Deviation of measurements
Process StdDev =
STDEV.P(Quality_Events[MeasuredValue])
// Upper Control Limit (UCL = mean + 3σ)
UCL = [Process Mean] + 3 * [Process StdDev]
// Lower Control Limit (LCL = mean - 3σ)
LCL = [Process Mean] - 3 * [Process StdDev]
// Upper Warning Limit (mean + 2σ)
UWL = [Process Mean] + 2 * [Process StdDev]
// Lower Warning Limit (mean - 2σ)
LWL = [Process Mean] - 2 * [Process StdDev]
// Out of Control flag (point outside 3σ limits)
Out of Control =
IF(
Quality_Events[MeasuredValue] > [UCL] ||
Quality_Events[MeasuredValue] < [LCL],
"Out of Control",
"In Control"
)
// Process Capability Index (Cpk)
Cpk =
MIN(
DIVIDE([UCL] - [Process Mean], 3 * [Process StdDev], 0),
DIVIDE([Process Mean] - [LCL], 3 * [Process StdDev], 0)
)
KPI clés de qualité
// Defects per Million Opportunities (DPMO)
DPMO =
DIVIDE(
SUM(Quality_Events[DefectCount]),
SUM(Quality_Events[SampleSize]) * [Opportunities per Unit],
0
) * 1000000
// Sigma Level (from DPMO)
Sigma Level =
SWITCH(TRUE(),
[DPMO] < 3.4, 6,
[DPMO] < 233, 5,
[DPMO] < 6210, 4,
[DPMO] < 66807, 3,
[DPMO] < 308537, 2,
1
)
// Defect Rate %
Defect Rate = DIVIDE(SUM(Quality_Events[DefectCount]), SUM(Quality_Events[SampleSize]), 0)
// Scrap Rate
Scrap Rate =
DIVIDE(
SUM(Production_Runs[ScrapQuantity]),
SUM(Production_Runs[ActualQuantity]),
0
)
// Cost of Poor Quality (COPQ)
COPQ =
SUMX(
Production_Runs,
(Production_Runs[ScrapQuantity] + Production_Runs[ReworkQuantity]) *
RELATED(Dim_Product[StandardCost])
)
Analyse du débit
KPI de débit de production
// Actual Throughput (units per hour)
Throughput =
DIVIDE(
SUM(Production_Runs[ActualQuantity]),
SUMX(Production_Runs,
DATEDIFF(Production_Runs[StartTime], Production_Runs[EndTime], HOUR)
),
0
)
// Theoretical Maximum Throughput
Max Throughput =
SUMX(
Dim_Machine,
60 / Dim_Machine[IdealCycleTime] -- Units per minute × 60
) * 60 -- Per hour
// Capacity Utilization
Capacity Utilization =
DIVIDE([Throughput], [Max Throughput], 0)
// Schedule Attainment (actual vs planned quantity)
Schedule Attainment =
DIVIDE(
SUM(Production_Runs[ActualQuantity]),
SUM(Production_Runs[PlannedQuantity]),
0
)
// Changeover Time (as % of planned time)
Changeover % =
DIVIDE(
[Changeover Time],
[Planned Production Time],
0
)
Analyse d'équilibrage de ligne
Identifiez les machines à goulot d'étranglement à l'aide de la comparaison du débit :
// Machine Throughput Rate (for bottleneck identification)
Machine Throughput Rate =
DIVIDE(
CALCULATE(SUM(Production_Runs[GoodQuantity])),
CALCULATE(
DATEDIFF(MIN(Production_Runs[StartTime]),
MAX(Production_Runs[EndTime]), HOUR)
),
0
)
// Bottleneck indicator (lowest throughput machine in a line)
Is Bottleneck =
IF(
[Machine Throughput Rate] = MINX(
FILTER(ALL(Dim_Machine), Dim_Machine[Line] = SELECTEDVALUE(Dim_Machine[Line])),
[Machine Throughput Rate]
),
"Bottleneck",
"OK"
)
Architecture du tableau de bord de fabrication
Page 1 : Résumé du TRS
- Jauge OEE (objectif actuel par rapport à l'objectif de 85 % de classe mondiale)
- Disponibilité, Performance, Qualité — trois cartes KPI
- Tendance OEE 30 jours (graphique linéaire)
- OEE par machine (histogramme, trié de bas en haut)
- OEE par équipe (graphique à barres – identifier les différences de performance entre équipes)
- Carte thermique OEE (Machine × Jour de la semaine)
Page 2 : Analyse des temps d'arrêt
- Total des heures d'arrêt non planifiées (carte KPI)
- MTBF et MTTR (deux cartes KPI)
- Temps d'arrêt Pareto (combinaison barre + ligne avec %) cumulé
- Temps d'arrêt par machine (graphique à barres horizontales)
- Temps d'arrêt par équipe (barre groupée)
- Tendance des temps d'arrêt sur 90 jours (graphique linéaire)
- Événements de temps d'arrêt actifs (tableau en temps réel si streaming)
Page 3 : Tableau de bord qualité
- Rendement du premier passage (jauge vs cible)
- DPMO et Sigma Level (cartes KPI)
- Taux de rebut par produit (graphique à barres)
- Tendance COPQ (graphique linéaire montrant le coût des problèmes de qualité)
- Défaut Pareto par code défaut
- Graphique SPC (graphique linéaire avec lignes de référence UCL, LCL, UWL, LWL)
Page 4 : Débit et capacité
-% de réalisation du calendrier (jauge)
- Production réelle vs planifiée (barre regroupée par jour)
- Utilisation des capacités par machine (heatmap)
- Analyse des temps de changement (histogramme par produit/machine)
- Tendance de la production (graphique en aires, réel par rapport à l'objectif)
- Tableau des points forts des machines à goulot d'étranglement
Questions fréquemment posées
Qu'est-ce que l'OEE et pourquoi est-il important pour la fabrication ?
L'OEE (Overall Equipment Effectiveness) est la mesure de référence en matière de productivité manufacturière. Il combine trois facteurs : la disponibilité (l'équipement fonctionne quand il le devrait), la performance (fonctionne à la bonne vitesse) et la qualité (produit de bonnes pièces). Un OEE de 60 % signifie que vous ne réalisez que 60 % de votre capacité théorique – les 40 % restants sont du gaspillage. L’amélioration du TRS augmente directement la production sans investissement en capital dans de nouveaux équipements.
Power BI peut-il se connecter aux systèmes MES pour un OEE en temps réel ?
Oui, la plupart des systèmes MES (Ignition SCADA, GE Proficy, Siemens MES, Rockwell FactoryTalk) prennent en charge la connectivité aux bases de données (SQL Server, Oracle) ou l'accès à l'API REST. Power BI se connecte à ces bases de données et peut utiliser des ensembles de données en streaming pour des mises à jour en temps quasi réel (toutes les 30 secondes à 1 minute). Pour un véritable OEE en temps réel (inférieur à la seconde), utilisez Azure IoT Hub ou Event Hub avec des ensembles de données Power BI Streaming transmis directement à partir des capteurs de l'usine.
De quelles données une usine a-t-elle besoin pour commencer à suivre l'OEE ?
Exigences minimales en matière de données pour l'OEE de base : (1) Données de comptage de production – quand la machine a-t-elle fonctionné et combien d'unités ont été produites, (2) Événements de temps d'arrêt – quand la machine s'est-elle arrêtée et pourquoi, (3) La qualité compte – combien d'unités bonnes ou défectueuses. Cela peut provenir d’une saisie manuelle de l’opérateur (Excel/papier → Power BI), de données de base du MES ou du compteur PLC. Il n’est pas nécessaire de disposer de données parfaites pour démarrer : même une visibilité imparfaite du TRS entraîne une amélioration.
Comment créer un graphique SPC dans Power BI ?
Créez un graphique linéaire avec les valeurs de mesure comme série principale. Ajoutez quatre mesures supplémentaires (UCL, LCL, UWL, LWL) sous forme de séries de lignes distinctes dans le graphique. Formatez UCL/LCL sous forme de lignes pointillées rouges et UWL/LWL sous forme de lignes pointillées orange. Le formatage conditionnel des points de données met en évidence les points hors de contrôle en rouge. Le visuel personnalisé SPC intégré d'AppSource permet la détection des règles de Western Electric (dépassements au-dessus/en dessous du centre, tendances, etc.) au-delà de l'approche de base des limites de contrôle.
Quel est un calendrier réaliste pour mettre en œuvre un tableau de bord de fabrication Power BI ?
Un tableau de bord OEE de base (machine unique, saisie manuelle des données via une liste SharePoint ou Excel) peut être construit en 1 à 2 semaines. Une plate-forme complète d'analyse de fabrication connectée au MES et à l'ERP (multi-machines, multi-lignes, avec SPC de qualité, Pareto des temps d'arrêt et analyse du débit) prend généralement 6 à 12 semaines. La phase la plus longue est toujours l'intégration et la qualité des données : les horodatages des machines, les codes de motif d'arrêt et les changements de produits doivent être capturés de manière cohérente avant que les analyses n'ajoutent de la valeur.
Comment ECOSIRE connecte-t-il Power BI à Odoo Manufacturing ?
Odoo Manufacturing stocke les bons de travail de production, la consommation de matériaux, les contrôles de qualité et les demandes de maintenance dans PostgreSQL. ECOSIRE connecte Power BI directement à la base de données PostgreSQL d'Odoo (sur une réplique en lecture) et modélise les tables de fabrication (mrp.production, mrp.workcenter, quality.check, maintenance.request) dans le modèle de données OEE décrit dans ce guide. Nous gérons la planification des capacités au niveau du centre de travail et l'intégration de la qualité dans le cadre de notre pratique d'intégration Odoo ERP.
Prochaines étapes
L'analyse de la fabrication dans Power BI, lorsqu'elle est connectée aux données de votre atelier de production, offre une visibilité en temps réel qui distingue les fabricants de classe mondiale des entreprises moyennes. L'OEE, l'analyse des causes profondes des temps d'arrêt et les graphiques SPC de qualité fournissent aux équipes opérationnelles les informations nécessaires pour s'améliorer avant que les problèmes ne s'aggravent.
ECOSIRE construit des tableaux de bord de fabrication connectés aux systèmes MES, aux plateformes ERP (Odoo, SAP, Dynamics 365) et aux flux de données IoT. Nos services de développement de tableaux de bord Power BI couvrent l'ensemble de la pile d'analyse de fabrication, depuis la conception de modèles de données jusqu'aux tableaux de bord prêts pour la production.
Contactez notre équipe d'analyse de fabrication pour discuter des sources de données de votre usine et concevoir une plate-forme d'analyse Power BI qui génère une amélioration mesurable du TRS.
Rédigé par
ECOSIRE Research and Development Team
Création de produits numériques de niveau entreprise chez ECOSIRE. Partage d'analyses sur les intégrations Odoo, l'automatisation e-commerce et les solutions d'entreprise propulsées par l'IA.
Articles connexes
Building Financial Dashboards with Power BI
Step-by-step guide to building financial dashboards in Power BI covering data connections to accounting systems, DAX measures for KPIs, P&L visualisations, and best practices.
Case Study: Manufacturing ERP Implementation with Odoo 19
How a Pakistani auto-parts manufacturer cut order processing time by 68% and reduced inventory variance to under 2% with ECOSIRE's Odoo 19 implementation.
Case Study: Power BI Analytics for Multi-Location Retail
How a 14-location retail chain unified their reporting in Power BI connected to Odoo, replacing 40 spreadsheets with one dashboard and cutting reporting time by 78%.
Plus de Manufacturing in the AI Era
Case Study: Manufacturing ERP Implementation with Odoo 19
How a Pakistani auto-parts manufacturer cut order processing time by 68% and reduced inventory variance to under 2% with ECOSIRE's Odoo 19 implementation.
Digital Twins in Manufacturing: Connecting Physical and Digital
Understand how digital twin technology is transforming manufacturing—from machine-level predictive maintenance to full factory simulation and ERP integration strategies.
ERP for Automotive: Parts Management, Service, and Manufacturing
Complete guide to ERP for the automotive industry — parts management, dealer operations, vehicle service, manufacturing, and supply chain for 2026.
Industry 5.0: Human-Machine Collaboration in Manufacturing
Understand Industry 5.0 and how human-machine collaboration is transforming manufacturing—from cobots and exoskeletons to AI-guided assembly and resilient supply chains.
Quality Control in Odoo: Inspections, Alerts, and Compliance
Complete guide to Odoo 19 Quality Control: configure control points, inspection types, quality alerts, CAPA workflows, and compliance documentation for manufacturing.
Gestion de la qualité aérospatiale : conformité AS9100, NADCAP et ERP
Mettez en œuvre la gestion de la qualité aérospatiale avec AS9100 Rev D, l'accréditation NADCAP et les systèmes ERP pour la gestion de la configuration, le FAI et le contrôle de la chaîne d'approvisionnement.