一、问题背景:OEE 72%徘徊,损失根因不明
我是2019年开始接触FAB OEE改善的,当时所在工厂的光刻机综合效率只有72%。听起来好像还行,但对比行业标杆(85%-90%),差距触目惊心。更要命的是,每次开会讨论损失原因,设备说工艺参数不对,工艺说设备不稳定,大家各执一词,根本没有统一的数据语言。
那一年,光刻层的报废率高达2.3%,其中超过40%可以追溯到设备非计划停机和速度损失。我们花了大半年时间做改善,项目验收时OEE定格在89%,年化节约成本超过800万。
本文把从72%到89%的完整踩坑路径分享出来,包括OEE三因子拆解方法、TOP损失识别技巧,以及用Python实现的OEE计算工具。
二、技术原理:OEE三因子拆解
OEE(Overall Equipment Effectiveness)设备综合效率是TEEP(Total Effective Equipment Performance)的重要组成部分。OEE的核心公式只有一条:
OEE = 可用率 × 性能率 × 质量率
可用率(Availability)=(负荷时间 - 停机时间)/ 负荷时间,反映设备因故障、换型等原因不能运行的比例。性能率(Performance)= 理想Cycle Time × 实际产出数量 / 负荷时间,反映设备运行速度偏离理想速度的程度。质量率(Quality)= 良品数量 / 实际产出数量,反映一次合格的比例。
OEE vs TEEP:OEE是基于计划生产时间的效率,TEEP= OEE × 设备利用率,是基于日历时间的综合效率。FAB通常关注OEE,工厂级管理层看TEEP。
三、实战案例:8台光刻机OEE测算与TOP3损失识别
我们工厂有8台ASML光刻机参与OEE改善项目,基准数据采集了连续3个月。原始数据显示平均OEE为72.4%,其中可用率68%,性能率82%,质量率96.5%。
从帕累托图可以清晰看到,改善前待机停机(42小时/月)和速度损失(28小时/月)占总损失的80%以上,对应可用率和性能率的两大短板。
针对性改善措施:待机停机 → 推行TPM全员生产维护,设备自主保全小组每周2次预防性检查;速度损失 → 优化光刻机Recipe参数,实测吞吐量提升9.7%;产品报废 → 导入SPC实时监控,哨兵点提前30分钟预警。
6个月后OEE从72.4%提升至89.0%,年化减少报废损失约680万,停机时间减少61%。
图1:光刻机OEE改善前后三因子对比(左)及TOP3损失帕累托分析(右)
图2:OEE改善趋势曲线(6个月追踪)
四、完整代码:Python OEE计算工具
以下代码封装了OEECalculator类,支持从设备日志自动解析停机时间、产出数量和良率,并输出HTML格式报告。核心设计思路:将原始日志按事件类型分类(计划生产/故障停机/速度损失/换型/质量报废),再按OEE三因子公式计算各因子和综合OEE。
OEECalculator.py - OEE计算核心类
import pandas as pd
import numpy as np
from datetime import datetime, timedelta
class OEECalculator:
"""OEE计算器,支持FAB设备日志自动解析"""
def __init__(self, equipment_id, shift_hours=22.5):
self.equipment_id = equipment_id
self.shift_hours = shift_hours * 3600 # 秒
self.events = []
def load_log(self, log_path):
# 读取设备日志CSV,字段:timestamp, event_type, duration_sec, qty, reject_qty
self.df = pd.read_csv(log_path, parse_dates=['timestamp'])
self.events = self.df.to_dict('records')
def calc_availability(self):
# 可用率 = (负荷时间 - 故障停机 - 换型时间) / 负荷时间
fault = sum(e['duration_sec'] for e in self.events if e['event_type'] == 'fault')
changeover = sum(e['duration_sec'] for e in self.events if e['event_type'] == 'changeover')
return (self.shift_hours - fault - changeover) / self.shift_hours
def calc_performance(self):
# 性能率 = (理想CT × 实际产出) / 运行时间
running = sum(e['duration_sec'] for e in self.events if e['event_type'] in ['production', 'idle'])
total_qty = sum(e.get('qty', 0) for e in self.events)
ideal_ct = 12.5 # 秒/片,设备标称值
return (ideal_ct * total_qty) / running if running > 0 else 0
def calc_quality(self):
# 质量率 = 良品数 / 总产出
total = sum(e.get('qty', 0) for e in self.events)
reject = sum(e.get('reject_qty', 0) for e in self.events)
return (total - reject) / total if total > 0 else 0
def calc_oee(self):
a = self.calc_availability()
p = self.calc_performance()
q = self.calc_quality()
return a * p * q, {'availability': a, 'performance': p, 'quality': q}
def generate_report(self):
oee, factors = self.calc_oee()
return {
'equipment': self.equipment_id,
'oee': f"{oee*100:.1f}%",
'availability': f"{factors['availability']*100:.1f}%",
'performance': f"{factors['performance']*100:.1f}%",
'quality': f"{factors['quality']*100:.1f}%"
}
为什么这样写:使用面向对象封装,equipment_id作为实例属性便于多台设备批量计算;shift_hours参数化支持不同班次;calc_oee返回因子字典方便诊断;generate_report输出结构化数据,可对接MES报表系统。
五、效果对比:9维度量化数据
改善前后关键指标对比(8台光刻机,月度均值):
指标 | 改善前 | 改善后 |
OEE综合效率 | 72.4% | 89.0% |
可用率 | 68.0% | 85.0% |
性能率 | 82.0% | 90.0% |
质量率 | 96.5% | 98.5% |
月均停机时间 | 58小时 | 22小时 |
月均报废损失 | 约56万 | 约18万 |
设备故障间隔MTBF | 72小时 | 168小时 |
维修响应时间MTTR | 4.2小时 | 1.8小时 |
年化节约成本 | — | 约810万 |
六、实施建议:三阶段推进路径
第一阶段(1-2月):数据采集与基线建立
选择1-2台代表性设备,安装数据采集终端(与EAP对接);建立设备事件日志规范,统一event_type分类;采集至少4周连续数据,计算OEE基线;这一步最大的坑是:很多设备的日志格式不标准,需要先做数据清洗,否则OEE计算出来差个10%都不知道原因。
第二阶段(3-4月):TOP损失根因分析与改善
用帕累托图识别TOP3损失;组建跨职能小组(设备+工艺+生产),每周复盘;优先解决可用率问题(改善效果最快);导入TPM自主保全,从被动维修转向预防性维护。
第三阶段(5-6月):标准化与横向推广
将改善措施固化到标准作业指导书;将OEE纳入设备绩效考核(占30%权重);横向推广到刻蚀、CVD等工序;建立OEE实时看板,每班次更新。
七、进阶方向:从OEE到智能预测
当前OEE方案的主要局限:事后统计,无法预测未来;依赖人工录入,实时性差;多机台协同调度未覆盖。
下一步方向:基于LSTM时序模型预测未来4小时的OEE趋势,在设备性能劣化前30-60分钟发出预警;将OEE数据与生产排程系统联动,自动生成动态派工建议;引入数字孪生,构建FAB设备群虚拟模型,实现"what-if"场景模拟。
行业趋势方面,TECS(Total Equipment Effectiveness Control System)正在成为高端FAB的标配,将OEE与AI预测深度融合,真正实现从"看得见"到"预测准"的跨越。
�� 互动话题
- 你们FAB的设备综合效率OEE目前大概在什么水平?最大的损失来源是哪一块?
- 在实施OEE改善项目时,有什么坑是特别容易踩的?欢迎评论区分享!
觉得这篇文章有收获?欢迎收藏、点赞支持!
您的支持是我持续输出的最大动力!
本文首发于:blog.csdn.net/yeflashzhihui