文章目录

设备OEE计算的数据采集点设置

发布于 2026-03-26 08:12:40 · 浏览 8 次 · 评论 0 条

设备OEE计算的数据采集点设置

设备综合效率(OEE)是衡量生产效率的核心指标,其计算结果的准确性完全取决于底层数据采集点的设置是否合理。错误的信号接入会导致OEE数值虚高或失真,从而误导管理决策。

要实现精准的OEE计算,必须从时间稼动率、性能稼动率和良品率三个维度,在PLC或边缘网关侧正确规划数据采集点。


一、 明确OEE计算公式与数据需求

在进行物理接线或逻辑配置前,必须先通过数学公式倒推所需的数据源。OEE的标准计算公式为:

$$OEE = A \times P \times Q$$

其中:

  • $A$(Availability,时间稼动率)= $\frac{\text{负荷时间} - \text{停机时间}}{\text{负荷时间}}$
  • $P$(Performance,性能稼动率)= $\frac{\text{理论周期时间} \times \text{实际产量}}{\text{运行时间}}$
  • $Q$(Quality,良品率)= $\frac{\text{实际产量} - \text{废品数量}}{\text{实际产量}}$

根据上述公式,数据采集工作需围绕“时间”、“产量”、“状态”和“质量”四大类信号展开。


二、 时间稼动率(A)的采集点设置

时间稼动率反映设备是否在应该运行的时候正常运行。其核心难点在于区分“计划停机”与“非计划停机”。

  1. 定义 Shift_Start(班次开始)信号
    接入上位机或MES系统的“上班”指令信号。这个信号触发的时间点即为负荷时间的开始时刻。通常使用一个上升沿触发的布尔变量(BOOL)。

  2. 定义 Shift_End(班次结束)信号
    接入上位机的“下班”指令信号。该信号触发时,系统自动计算本班的总负荷时间。

  3. 定义 Machine_Run(设备运行)状态
    采集PLC控制程序中标志设备主电机或主轴处于旋转状态的中间寄存器地址。例如,在西门子PLC中,这可能是 DB100.DBX0.0
    注意:不要直接采集“启动按钮”信号,因为按钮按下后设备可能因为故障并未真正转动。

  4. 定义 Machine_Stop(设备停止)状态
    编写逻辑判断:当 Machine_RunFalse 且系统处于“班次内”时,即判定为停机时间。

  5. 采集 Alarm_Code(故障代码)
    读取PLC故障字或报警堆栈。为了计算非计划停机,必须通过报警代码区分“缺料停机”、“故障停机”和“人工休息”。
    配置边缘网关逻辑:当检测到特定的故障代码(如“急停按下”)时,该时间段计入“故障损失时间”;若为“换型结束”信号,则不计入损失。

为了厘清设备的状态转换逻辑,需在PLC中构建标准的状态机。以下是用Mermaid描述的状态流转逻辑,必须确保采集点能覆盖以下所有状态:

stateDiagram-v2 [*] --> Idle Idle --> Running : "Mode = Auto" AND "Start_Cmd = True" Running --> Down : "Fault = True" OR "Material_Empty = True" Down --> Running : "Reset = True" AND "Start_Cmd = True" Running --> Planned_Stop : "Shift_End = True" OR "Change_Mode = True" Planned_Stop --> Idle : "Ready = True"

三、 性能稼动率(P)的采集点设置

性能稼动率反映设备运行的快慢。此处最容易出现的错误是直接使用电机转速或PLC扫描周期,必须使用真实的“产出计数”。

  1. 采集 Product_Count(实际产量)
    接入成品检测传感器(如光电开关)或计数继电器的脉冲信号。
    设置PLC的高速计数器(HSC)功能捕获该脉冲。
    注意:务必在程序中增加“去抖动”逻辑,防止产品在传感器检测区域来回摆动导致重复计数。

  2. 设定 Standard_Cycle_Time(理论周期时间)
    输入设备的设计产能参数。例如,若设备每分钟生产60个产品,则理论周期时间为1秒。这个参数通常存储在HMI的配方数据块中,采集系统需读取该变量地址。

  3. 采集 Motor_Speed(运行速度)
    接入驱动器或变频器反馈的实际转速信号。虽然计算P主要靠数量,但采集实时速度有助于分析“速度损失”。


四、 良品率(Q)的采集点设置

良品率计算的核心在于识别“坏品”。如果无法自动识别坏品,则需要设置人工介入接口。

  1. 采集 Reject_Sensor(剔除信号)
    接入自动检测设备(如视觉相机、重量秤)的“NG”输出信号。
    确保该信号是一个脉冲信号,每检测到一个坏品,信号翻转一次。

  2. 定义 Manual_Reject_Button(人工报废按钮)
    设置现场操作台的物理按钮或HMI屏幕上的软按钮。
    绑定PLC地址(如 I0.5),当操作员发现设备制造了坏品但自动漏检时,按下此按钮,计数器加1。


五、 数据采集点汇总表

在实施布线或配置点位前,请核对下表中的所有信号是否已全部规划。

变量名称 数据类型 推荐采集源 信号说明
System_Status WORD PLC 主状态字 用于判断当前是Auto、Manual还是Stop模式
Alarm_Trigger BOOL PLC 报警总汇 任意故障发生时置1,用于停机计时
Running_Status BOOL 主驱动器 Ready 信号 真实反映设备在转动,用于计算运行时间
Part_Present BOOL 成品出口传感器 上升沿触发,计入实际产量
NG_Signal BOOL 视觉检测机输出 上升沿触发,计入废品数量
Cycle_Time_Set REAL HMI 配方寄存器 存储理论节拍时间(秒/个)
Operator_ID STRING 扫码枪/登录框 用于追溯班组和人员绩效

六、 PLC侧数据预处理逻辑示例

为了减轻上位机或MES系统的计算压力,建议在PLC内部完成基础的数据清洗。以下是一段结构化文本(ST)风格的伪代码,展示了如何处理 Part_Present 信号以防止重复计数。

// 定义变量
VAR
    Old_Sensor_State : BOOL := FALSE;
    Product_Total : DINT := 0;
    Sensor_Input : BOOL; // 对应 I0.0
END_VAR

// 逻辑执行
// 检测传感器信号的上升沿(从0变为1的瞬间)
IF (Sensor_Input = TRUE) AND (Old_Sensor_State = FALSE) THEN
    // 累加总产量
    Product_Total := Product_Total + 1;
END_IF;

// 更新历史状态,为下一次扫描做准备
Old_Sensor_State := Sensor_Input;

编写程序时,请务必将 Product_Total 变量设置为“非易失性”(Retain)属性,防止PLC断电重启后产量数据清零。

完成上述所有采集点的配置与接线后,启动数据采集系统,对比人工记录的产量与停机时间,进行为期3天的数据校准,误差控制在1%以内即可正式上线。

评论 (0)

暂无评论,快来抢沙发吧!

扫一扫,手机查看

扫描上方二维码,在手机上查看本文