Parte da nossa série Manufacturing in the AI Era
Leia o guia completoAnálise de manufatura no Power BI: OEE, qualidade e rendimento
Instalações de fabricação de classe mundial operam com 85%+ OEE. O fabricante médio funciona a 60%. Essa diferença de 25 pontos percentuais se traduz diretamente na capacidade – uma instalação que melhora de 60% para 85% OEE acrescenta 41% mais produção sem uma única máquina nova ou alugada. A diferença entre a classe mundial e a média quase sempre não é o equipamento – é a visibilidade para ver o desperdício e os dados para eliminá-lo.
O Power BI, conectado ao MES (Manufacturing Execution System) e aos dados do ERP, fornece essa visibilidade. Este guia cria uma plataforma completa de análise de manufatura que abrange cálculo de OEE, gráficos SPC de qualidade, análise de causa raiz de tempo de inatividade e gerenciamento de rendimento — com as fórmulas DAX precisas que os engenheiros de manufatura precisam.
Principais conclusões
- OEE = Disponibilidade × Desempenho × Qualidade (classe mundial = 85%+)
- Cada componente OEE requer fluxos de dados separados: registros de tempo de inatividade, contagens de produção, registros de sucata
- Gráficos SPC (Controle Estatístico de Processo) no Power BI usam recursos visuais personalizados ou limites de controle calculados
- A análise de Pareto do tempo de inatividade (os 20% principais motivos causam 80% do tempo de inatividade) impulsiona a melhoria priorizada
- O rendimento na primeira passagem (FPY) e os defeitos por milhão de oportunidades (DPMO) são os principais KPIs de qualidade
- A análise de rendimento compara a capacidade real versus a teórica usando a teoria do gargalo
- Os conjuntos de dados de streaming do Power BI permitem a atualização de painéis OEE quase em tempo real a cada minuto
- Integração ERP (Odoo Manufacturing, SAP PP, Dynamics 365 SCM) fornece contexto de ordem de serviço
Modelo de dados para análise de manufatura
Tabelas principais de fabricação
Production_Runs (uma linha por execução de produção/ordem de serviço):
| Coluna | Descrição |
|---|---|
| CÓDIGO0 | ID da ordem de serviço ou execução de produção |
| CÓDIGO0 | Dimensão FK para máquina |
| CÓDIGO0 | FK para Produto |
| CÓDIGO0 | FK para mudança |
| CÓDIGO0 | Execute data e hora de início |
| CÓDIGO0 | Execute data e hora de término |
| CÓDIGO0 | Início programado |
| CÓDIGO0 | Fim programado |
| CÓDIGO0 | Quantidade prevista de produção |
| CÓDIGO0 | Unidades reais produzidas |
| CÓDIGO0 | Unidades aprovadas na verificação de qualidade |
| CÓDIGO0 | Unidades defeituosas |
| CÓDIGO0 | Unidades que necessitam de retrabalho |
| CÓDIGO0 | Segundos por unidade na velocidade de projeto |
Downtime_Events (uma linha por parada):
| Coluna | Descrição |
|---|---|
| CÓDIGO0 | ID exclusivo |
| CÓDIGO0 | FK para máquina |
| CÓDIGO0 | FK para produção (se aplicável) |
| CÓDIGO0 | Início do tempo de inatividade |
| CÓDIGO0 | Fim do tempo de inatividade |
| CÓDIGO0 | Duração total do tempo de inatividade |
| CÓDIGO0 | Planejado (PM, mudança) / Não planejado |
| CÓDIGO0 | Código de razão específico |
| CÓDIGO0 | Descrição |
| CÓDIGO0 | Sinalizador de manutenção planejada |
| CÓDIGO0 | Tempo até a resposta do técnico |
| CÓDIGO0 | Tempo de reparo ativo |
Quality_Events (uma linha por defeito/inspeção):
| Coluna | Descrição |
|---|---|
| CÓDIGO0 | ID exclusivo |
| CÓDIGO0 | FK para execução de produção |
| CÓDIGO0 | FK para máquina |
| CÓDIGO0 | Data/hora da inspeção |
| CÓDIGO0 | FK para tipo de defeito |
| CÓDIGO0 | Número de defeitos encontrados |
| CÓDIGO0 | Unidades inspecionadas |
| CÓDIGO0 | Medição variável (para SPC) |
| CÓDIGO0 | Booleano — dentro da tolerância |
Dim_Máquina:
MachineID,MachineName,Line,Cell,Department,MachineType,IdealRunRate,PlannedCapacity
Dim_Shift:
ShiftID,ShiftName,StartTime,EndTime,PlannedMinutes,PlannedBreakMinutes
Cálculo de OEE no Power BI
OEE = Disponibilidade × Desempenho × Qualidade
Disponibilidade
Disponibilidade = Tempo de Execução Real / Tempo de Produção Planejado
// 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)
Desempenho
Desempenho = (Tempo de Ciclo Ideal × Contagem Total) / Tempo de Execução Real Ou equivalentemente: Produção Real / Produção Máxima Teórica
// 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
)
Qualidade
Qualidade = Boa Produção / Produção Total (exclui todos os defeitos)
// 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
)
OEE geral
// 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)
)
Análise de tempo de inatividade
KPIs de tempo de inatividade e 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
)
Mapa de calor do tempo de inatividade
Crie um mapa térmico de tempo de inatividade por máquina x hora do dia para identificar padrões relacionados aos turnos:
// Downtime by Hour of Day (for heatmap rows)
Downtime by Hour =
CALCULATE(
SUM(Downtime_Events[DurationMinutes]),
Downtime_Events[HourOfDay] = SELECTEDVALUE(HourDim[Hour])
)
Análise de qualidade: gráficos SPC
Os gráficos de controle estatístico de processo monitoram se um processo está sob controle. O Power BI cria gráficos SPC usando cálculos de limite de controle no DAX.
Limites de controle para gráfico de barras X
// 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)
)
Principais KPIs de qualidade
// 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])
)
Análise de rendimento
KPIs de rendimento de produção
// 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
)
Análise de balanceamento de linha
Identifique máquinas gargalos usando comparação de rendimento:
// 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"
)
Arquitetura do painel de fabricação
Página 1: Resumo do OEE
- Medidor OEE (meta atual vs classe mundial de 85%)
- Disponibilidade, Desempenho, Qualidade — três cartões KPI
- Tendência OEE 30 dias (gráfico de linhas)
- OEE por máquina (gráfico de barras, classificado de baixo para alto)
- OEE por turno (gráfico de barras — identifique diferenças de desempenho nos turnos)
- Mapa de calor OEE (Máquina × Dia da semana)
Página 2: Análise do tempo de inatividade
- Total de horas de inatividade não planejadas (cartão KPI)
- MTBF e MTTR (dois cartões KPI)
- Downtime Pareto (combinação barra + linha com percentual cumulativo)
- Tempo de inatividade por máquina (gráfico de barras horizontais)
- Tempo de inatividade por turno (barra agrupada)
- Tendência de tempo de inatividade de 90 dias (gráfico de linhas)
- Eventos de tempo de inatividade ativos (tabela em tempo real se estiver transmitindo)
Página 3: Painel de qualidade
- Rendimento na primeira passagem (medidor vs alvo)
- Nível DPMO e Sigma (cartões KPI)
- Taxa de sucata por produto (gráfico de barras)
- Tendência COPQ (gráfico de linhas mostrando custos de questões de qualidade)
- Defeito Pareto por código de defeito
- Gráfico SPC (gráfico de linhas com linhas de referência UCL, LCL, UWL, LWL)
Página 4: Taxa de transferência e capacidade
-% de cumprimento do cronograma (medidor)
- Produção real vs planejada (barra agrupada por dia)
- Utilização da capacidade por máquina (mapa de calor)
- Análise do tempo de troca (gráfico de barras por produto/máquina)
- Tendência de produção (gráfico de área, real versus meta)
- Tabela de destaque da máquina gargalo
Perguntas frequentes
O que é OEE e por que ele é importante para a fabricação?
OEE (Eficácia Geral do Equipamento) é a métrica padrão ouro para produtividade de fabricação. Combina três fatores: Disponibilidade (equipamento funcionando quando deveria), Desempenho (funcionando na velocidade certa) e Qualidade (produzindo boas peças). Um OEE de 60% significa que você está realizando apenas 60% de sua capacidade teórica – os outros 40% são desperdício. Melhorar o OEE aumenta diretamente a produção sem investimento de capital em novos equipamentos.
O Power BI pode se conectar a sistemas MES para obter OEE em tempo real?
Sim — a maioria dos sistemas MES (Ignition SCADA, GE Proficy, Siemens MES, Rockwell FactoryTalk) oferece suporte à conectividade de banco de dados (SQL Server, Oracle) ou acesso à API REST. O Power BI se conecta a esses bancos de dados e pode usar conjuntos de dados de streaming para atualizações quase em tempo real (a cada 30 segundos a 1 minuto). Para obter OEE em tempo real (menos de um segundo), use o Azure IoT Hub ou o Event Hub com conjuntos de dados do Power BI Streaming enviados diretamente dos sensores do chão de fábrica.
Quais dados uma fábrica precisa para começar a monitorar o OEE?
Requisitos mínimos de dados para OEE básico: (1) Dados de contagem de produção — quando a máquina funcionou e quantas unidades foram produzidas, (2) Eventos de tempo de inatividade — quando a máquina parou e por quê, (3) Contagens de qualidade — quantas unidades boas e defeituosas. Isso pode vir da entrada manual do operador (Excel/papel → Power BI), MES básico ou dados do contador do PLC. Não são necessários dados perfeitos para iniciar — mesmo a visibilidade imperfeita do OEE gera melhorias.
Como faço para construir um gráfico SPC no Power BI?
Crie um gráfico de linhas com os valores de medição como a série principal. Adicione quatro medidas adicionais (UCL, LCL, UWL, LWL) como séries de linhas separadas no gráfico. Formate UCL/LCL como linhas tracejadas vermelhas e UWL/LWL como linhas tracejadas laranja. A formatação condicional em pontos de dados destaca os pontos fora de controle em vermelho. O visual personalizado SPC integrado do AppSource fornece detecção de regras da Western Electric (execuções acima/abaixo do centro, tendências, etc.) além da abordagem de limite de controle básico.
Qual é um cronograma realista para implementar um painel de manufatura do Power BI?
Um painel OEE básico (máquina única, entrada manual de dados via lista do SharePoint ou Excel) pode ser criado em 1 a 2 semanas. Uma plataforma completa de análise de manufatura conectada a MES e ERP (multimáquinas, multilinhas, com SPC de qualidade, Pareto de tempo de inatividade e análise de rendimento) normalmente leva de 6 a 12 semanas. A fase mais longa é sempre a integração e a qualidade dos dados: carimbos de data/hora da máquina, códigos de motivo de tempo de inatividade e trocas de produtos precisam ser capturados de forma consistente antes que a análise agregue valor.
Como o ECOSIRE conecta o Power BI ao Odoo Manufacturing?
Odoo Manufacturing armazena ordens de serviço de produção, consumo de materiais, verificações de qualidade e solicitações de manutenção no PostgreSQL. ECOSIRE conecta o Power BI diretamente ao banco de dados PostgreSQL do Odoo (em uma réplica de leitura) e modela as tabelas de fabricação (mrp.production, mrp.workcenter, quality.check, Maintenance.request) no modelo de dados OEE descrito neste guia. Lidamos com o planejamento de capacidade em nível de centro de trabalho e a integração de qualidade como parte de nossa prática de integração Odoo ERP.
Próximas etapas
A análise de manufatura no Power BI — quando conectada aos dados da área de produção — fornece a visibilidade em tempo real que separa os fabricantes de classe mundial dos de desempenho médio. OEE, análise da causa raiz do tempo de inatividade e gráficos SPC de qualidade fornecem às equipes de operações as informações para melhorar antes que os problemas se agravem.
ECOSIRE constrói painéis de manufatura conectados a sistemas MES, plataformas ERP (Odoo, SAP, Dynamics 365) e fluxos de dados IoT. Nossos serviços de desenvolvimento de painéis do Power BI abrangem toda a pilha de análise de manufatura, desde o design do modelo de dados até os painéis prontos para produção.
Entre em contato com nossa equipe de análise de manufatura para discutir as fontes de dados do chão de fábrica e projetar uma plataforma de análise do Power BI que impulsione melhorias mensuráveis de OEE.
Escrito por
ECOSIRE Research and Development Team
Construindo produtos digitais de nível empresarial na ECOSIRE. Compartilhando insights sobre integrações Odoo, automação de e-commerce e soluções de negócios com IA.
Artigos Relacionados
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%.
Mais 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.
Gestão de qualidade aeroespacial: AS9100, NADCAP e conformidade orientada por ERP
Implemente o gerenciamento de qualidade aeroespacial com AS9100 Rev D, acreditação NADCAP e sistemas ERP para gerenciamento de configuração, FAI e controle da cadeia de suprimentos.