Manufacturing Analytics in Power BI: OEE, Quality, and Throughput

Build a Power BI manufacturing dashboard covering OEE calculation, quality metrics, production throughput, downtime analysis, and SPC charts — with complete DAX formulas.

E
ECOSIRE Research and Development Team
|19 مارس 202611 دقائق قراءة2.4k كلمات|

جزء من سلسلة Manufacturing in the AI Era

اقرأ الدليل الكامل

تحليلات التصنيع في Power BI: OEE والجودة والإنتاجية

تعمل مرافق التصنيع ذات المستوى العالمي بنسبة 85%+ OEE. متوسط ​​الشركة المصنعة يعمل بنسبة 60%. تُترجم هذه الفجوة البالغة 25 نقطة مئوية مباشرة إلى القدرة - حيث تضيف المنشأة التي تتحسن من 60% إلى 85% OEE إنتاجًا إضافيًا بنسبة 41% دون الحاجة إلى آلة جديدة أو استئجار واحد. الفرق بين المستوى العالمي والمتوسط ​​لا يكمن دائمًا في المعدات، بل في الرؤية لرؤية الهدر والبيانات للقضاء عليه.

يوفر Power BI، المتصل بـ MES (نظام تنفيذ التصنيع) وبيانات ERP، تلك الرؤية. ينشئ هذا الدليل نظامًا أساسيًا كاملاً لتحليلات التصنيع يغطي حسابات OEE ومخططات SPC عالية الجودة وتحليل السبب الجذري لوقت التوقف عن العمل وإدارة الإنتاجية - باستخدام صيغ DAX الدقيقة التي يحتاجها مهندسو التصنيع.

الوجبات الرئيسية

  • OEE = التوفر × الأداء × الجودة (المستوى العالمي = 85%+)
  • يتطلب كل مكون OEE تدفقات بيانات منفصلة: سجلات وقت التوقف عن العمل، وأعداد الإنتاج، وسجلات الخردة
  • تستخدم مخططات SPC (التحكم في العمليات الإحصائية) في Power BI مرئيات مخصصة أو حدود تحكم محسوبة
  • تحليل باريتو لوقت التوقف عن العمل (أهم 20% من الأسباب تسبب 80% من وقت التوقف عن العمل) يؤدي إلى تحسين الأولويات
  • يعتبر عائد المرور الأول (FPY) والعيوب لكل مليون فرصة (DPMO) من مؤشرات الأداء الرئيسية للجودة
  • تحليل الإنتاجية يقارن بين القدرة الفعلية والنظرية باستخدام نظرية عنق الزجاجة
  • تعمل مجموعات بيانات تدفق Power BI على تمكين تحديث لوحات معلومات OEE في الوقت الفعلي تقريبًا كل دقيقة
  • يوفر تكامل تخطيط موارد المؤسسات (Odoo Manufacturing وSAP PP وDynamics 365 SCM) سياق أمر العمل

نموذج البيانات لتحليلات التصنيع

جداول التصنيع الأساسية

عمليات_الإنتاج (صف واحد لكل عملية إنتاج/أمر عمل):

العمودالوصف
RunIDمعرف أمر العمل أو تشغيل الإنتاج
MachineIDFK إلى أبعاد الآلة
ProductIDFK للمنتج
ShiftIDFK إلى التحول
StartTimeتشغيل تاريخ البدء
EndTimeتشغيل تاريخ الانتهاء
PlannedStartTimeالبداية المجدولة
PlannedEndTimeنهاية مجدولة
PlannedQuantityكمية الانتاج المستهدفة
ActualQuantityالوحدات الفعلية المنتجة
GoodQuantityوحدات اجتياز فحص الجودة
ScrapQuantityالوحدات المعيبة
ReworkQuantityالوحدات التي تتطلب إعادة صياغة
IdealCycleTimeثانية لكل وحدة بالسرعة التصميمية

أحداث_وقت التوقف (صف واحد لكل توقف):

العمودالوصف
DowntimeIDمعرف فريد
MachineIDFK إلى آلة
RunIDFK لتشغيل الإنتاج (إن أمكن)
StartTimeبداية التوقف
EndTimeنهاية التوقف
DurationMinutesإجمالي مدة التوقف
DowntimeCategoryمخطط (PM، التغيير) / غير مخطط له
DowntimeReasonCodeكود السبب المحدد
DowntimeReasonDescالوصف
IsScheduledMaintenanceعلم الصيانة المخططة
ResponseTimeMinutesالوقت حتى رد الفني
RepairTimeMinutesوقت الإصلاح النشط

أحداث_الجودة (صف واحد لكل عيب/فحص):

العمودالوصف
InspectionIDمعرف فريد
RunIDFK لتشغيل الإنتاج
MachineIDFK إلى آلة
InspectionDateتاريخ/وقت الفحص
DefectCodeFK لنوع العيب
DefectCountعدد العيوب التي تم العثور عليها
SampleSizeالوحدات التي تم تفتيشها
MeasuredValueقياس متغير (لـ SPC)
IsInSpecمنطقية — ضمن التسامح

Dim_Machine:

  • MachineID، MachineName، Line، Cell، Department، MachineType، IdealRunRate، PlannedCapacity

خافت_التحول:

  • ShiftID، ShiftName، StartTime، EndTime، PlannedMinutes، PlannedBreakMinutes

حساب OEE في Power BI

OEE = التوفر × الأداء × الجودة

التوفر

التوفر = وقت التشغيل الفعلي / وقت الإنتاج المخطط له

// 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)

الأداء

الأداء = (زمن الدورة المثالي × العدد الإجمالي) / وقت التشغيل الفعلي أو ما يعادله: الناتج الفعلي / الحد الأقصى للناتج النظري

// 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
)

الجودة

الجودة = الناتج الجيد / الناتج الإجمالي (باستثناء جميع العيوب)

// 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

// 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)
)

تحليل وقت التوقف عن العمل

مؤشرات الأداء الرئيسية لوقت التوقف عن العمل وباريتو

// 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
)

خريطة الحرارة لوقت التوقف

قم بإنشاء خريطة تمثيلية لوقت التوقف عن العمل بواسطة الآلة × الوقت من اليوم لتحديد الأنماط المرتبطة بالتحول:

// Downtime by Hour of Day (for heatmap rows)
Downtime by Hour =
CALCULATE(
    SUM(Downtime_Events[DurationMinutes]),
    Downtime_Events[HourOfDay] = SELECTEDVALUE(HourDim[Hour])
)

تحليلات الجودة: مخططات SPC

تراقب مخططات التحكم في العمليات الإحصائية ما إذا كانت العملية تحت السيطرة أم لا. يقوم Power BI بإنشاء مخططات SPC باستخدام حسابات حدود التحكم في DAX.

حدود التحكم في مخطط 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)
)

مؤشرات الأداء الرئيسية للجودة

// 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])
)

تحليل الإنتاجية

مؤشرات الأداء الرئيسية لإنتاجية الإنتاج

// 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
)

تحليل موازنة الخط

تحديد آلات الاختناق باستخدام مقارنة الإنتاجية:

// 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"
)

هندسة لوحة تحكم التصنيع

الصفحة 1: ملخص OEE

  • مقياس OEE (الهدف الحالي مقابل المستوى العالمي 85%)
  • التوفر والأداء والجودة - ثلاث بطاقات مؤشرات الأداء الرئيسية
  • اتجاه OEE لمدة 30 يومًا (مخطط خطي)
  • OEE حسب الجهاز (مخطط شريطي، مرتبة من الأدنى إلى الأعلى)
  • OEE حسب التحول (مخطط شريطي - تحديد اختلافات أداء التحول)
  • خريطة الحرارة OEE (الجهاز × يوم الأسبوع)

الصفحة 2: تحليل وقت التوقف عن العمل

  • إجمالي ساعات التوقف غير المخطط لها (بطاقة KPI)
  • MTBF وMTTR (بطاقتان لمؤشرات الأداء الرئيسية)
  • التوقف باريتو (شريط تركيبة + خط مع النسبة التراكمية %)
  • وقت التوقف عن العمل حسب الآلة (مخطط شريطي أفقي)
  • التوقف عن طريق التحول (شريط مجمع)
  • اتجاه التوقف 90 يومًا (مخطط خطي)
  • أحداث التوقف النشطة (جدول الوقت الحقيقي في حالة البث)

الصفحة 3: لوحة تحكم الجودة

  • عائد التمريرة الأولى (المقياس مقابل الهدف)
  • مستوى DPMO وSigma (بطاقات KPI)
  • معدل الخردة حسب المنتج (مخطط شريطي)
  • اتجاه COPQ (مخطط خطي يوضح تكلفة مشكلات الجودة)
  • عيب باريتو عن طريق رمز الخلل
  • مخطط SPC (مخطط خطي مع الخطوط المرجعية UCL وLCL وUWL وLWL)

الصفحة 4: الإنتاجية والسعة

  • جدول الإنجاز٪ (مقياس)
  • الإنتاج الفعلي مقابل الإنتاج المخطط (شريط مجمّع حسب اليوم)
  • استغلال السعة بواسطة الآلة (الخريطة الحرارية)
  • تحليل وقت التغيير (مخطط شريطي حسب المنتج/الجهاز)
  • اتجاه إنتاج الإنتاج (المخطط المساحي، الفعلي مقابل المستهدف)
  • جدول تسليط الضوء على آلة عنق الزجاجة

الأسئلة المتداولة

ما هو OEE ولماذا يهم في التصنيع؟

OEE (الفعالية الإجمالية للمعدات) هو المقياس الذهبي القياسي لإنتاجية التصنيع. فهو يجمع بين ثلاثة عوامل: التوفر (تشغيل المعدات في الوقت المناسب)، والأداء (التشغيل بالسرعة المناسبة)، والجودة (إنتاج أجزاء جيدة). تعني نسبة OEE البالغة 60% أنك تحقق 60% فقط من قدرتك النظرية، أما الـ 40% الأخرى فهي هدر. يؤدي تحسين OEE إلى زيادة الإنتاج بشكل مباشر دون استثمار رأس المال في المعدات الجديدة.

هل يمكن لـ Power BI الاتصال بأنظمة MES لإجراء OEE في الوقت الفعلي؟

نعم - تدعم معظم أنظمة MES (Ignition SCADA، وGE Proficy، وSiemens MES، وRockwell FactoryTalk) اتصال قاعدة البيانات (SQL Server، وOracle) أو الوصول إلى REST API. يتصل Power BI بقواعد البيانات هذه ويمكنه استخدام مجموعات البيانات المتدفقة للتحديثات في الوقت الفعلي تقريبًا (كل 30 ثانية إلى دقيقة واحدة). للحصول على OEE حقيقي (أقل من ثانية)، استخدم Azure IoT Hub أو Event Hub مع مجموعات بيانات Power BI Streaming المدفوعة مباشرة من أجهزة استشعار أرضية المصنع.

ما هي البيانات التي يحتاجها المصنع لبدء تتبع OEE؟

الحد الأدنى لمتطلبات البيانات الخاصة بـ OEE الأساسية: (1) بيانات عدد الإنتاج - متى تم تشغيل الجهاز وعدد الوحدات التي تم إنتاجها، (2) أحداث وقت التوقف عن العمل - متى توقفت الآلة ولماذا، (3) أهمية الجودة - عدد الوحدات الجيدة مقابل الوحدات المعيبة. يمكن أن يأتي ذلك من إدخال المشغل يدويًا (Excel/paper → Power BI)، أو بيانات عداد MES الأساسية، أو PLC. ليست هناك حاجة إلى بيانات مثالية للبدء، فحتى الرؤية غير الكاملة لـ OEE تؤدي إلى التحسين.

كيف أقوم بإنشاء مخطط SPC في Power BI؟

قم بإنشاء مخطط خطي بقيم القياس كالسلسلة الرئيسية. أضف أربعة مقاييس إضافية (UCL، LCL، UWL، LWL) كسلسلة أسطر منفصلة في المخطط. قم بتنسيق UCL/LCL كخطوط حمراء متقطعة وUWL/LWL كخطوط برتقالية متقطعة. يسلط التنسيق الشرطي على نقاط البيانات الضوء على النقاط الخارجة عن السيطرة باللون الأحمر. توفر الصورة المرئية المخصصة لـ SPC من AppSource إمكانية اكتشاف قواعد Western Electric (تعمل أعلى/أسفل المركز، والاتجاهات، وما إلى ذلك) بما يتجاوز نهج حد التحكم الأساسي.

ما هو الجدول الزمني الواقعي لتنفيذ لوحة معلومات تصنيع Power BI؟

يمكن إنشاء لوحة تحكم OEE أساسية (جهاز واحد، إدخال البيانات يدويًا عبر قائمة SharePoint أو Excel) في غضون أسبوع إلى أسبوعين. عادةً ما تستغرق منصة تحليلات التصنيع الكاملة المتصلة بـ MES وERP (متعددة الآلات، ومتعددة الخطوط، مع SPC عالي الجودة، وPareto وقت التوقف عن العمل، وتحليل الإنتاجية) من 6 إلى 12 أسبوعًا. دائمًا ما تكون المرحلة الأطول هي تكامل البيانات وجودة البيانات - يجب التقاط الطوابع الزمنية للجهاز وأكواد أسباب التوقف وتغييرات المنتج بشكل متسق قبل أن تضيف التحليلات قيمة.

كيف يقوم ECOSIRE بربط Power BI بـ Odoo Manufacturing؟

يقوم Odoo Manufacturing بتخزين أوامر عمل الإنتاج واستهلاك المواد وفحوصات الجودة وطلبات الصيانة في PostgreSQL. يقوم ECOSIRE بتوصيل Power BI مباشرةً بقاعدة بيانات PostgreSQL الخاصة بـ Odoo (على نسخة متماثلة للقراءة) ويصمم جداول التصنيع (mrp.production وmrp.workcenter وquality.check وmaintenance.request) في نموذج بيانات OEE الموضح في هذا الدليل. نحن نتعامل مع تخطيط القدرات على مستوى مركز العمل وتكامل الجودة كجزء من ممارسات تكامل Odoo ERP الخاصة بنا.


الخطوات التالية

توفر تحليلات التصنيع في Power BI - عند توصيلها ببيانات أرضية الإنتاج لديك - رؤية في الوقت الفعلي تفصل الشركات المصنعة ذات المستوى العالمي عن أصحاب الأداء المتوسط. توفر OEE وتحليل السبب الجذري لوقت التوقف ومخططات SPC عالية الجودة لفرق العمليات المعلومات اللازمة للتحسين قبل تفاقم المشكلات.

تقوم ECOSIRE ببناء لوحات معلومات التصنيع المتصلة بأنظمة MES ومنصات تخطيط موارد المؤسسات (Odoo وSAP وDynamics 365) وتدفقات بيانات إنترنت الأشياء. تغطي خدمات تطوير لوحة معلومات Power BI مجموعة تحليلات التصنيع الكاملة بدءًا من تصميم نموذج البيانات وحتى لوحات المعلومات الجاهزة للإنتاج.

اتصل بفريق تحليلات التصنيع لدينا لمناقشة مصادر بيانات أرضية المصنع وتصميم منصة تحليلات Power BI التي تؤدي إلى تحسين OEE قابل للقياس.

E

بقلم

ECOSIRE Research and Development Team

بناء منتجات رقمية بمستوى المؤسسات في ECOSIRE. مشاركة رؤى حول تكاملات Odoo وأتمتة التجارة الإلكترونية وحلول الأعمال المدعومة بالذكاء الاصطناعي.

الدردشة على الواتساب