3. 产能约束数据定义
产能约束数据是供应链计划系统进行有限能力排程的核心输入。若约束数据定义不准确,系统将输出不可执行的计划,导致交期延误或资源闲置。本节对五大核心约束维度进行标准化定义与建模说明。
3.1 产能约束数据全景
以下表格汇总了五种产能约束数据的定义、典型粒度与计划用途:
| 约束维度 | 数据定义 | 典型粒度 | 计划用途 |
|---|---|---|---|
| 机器产能 | 设备在单位时间内的最大产出数量 | 设备/产线,按小时或班次 | 限制生产速率,防止超负荷排产 |
| 人工工时 | 操作员/技术员的可用工时总量 | 工种/技能组,按天或班次 | 匹配人员技能与任务需求,避免人力瓶颈 |
| 班次日历 | 工厂/产线的作息时间表(含休息、节假日) | 工厂/车间,按天或班次 | 定义可用时间窗口,排除非工作时间 |
| 设备效率(OEE) | 设备综合效率,衡量实际产出与理论产出的比率 | 设备/产线,按月或周 | 修正理论产能,反映真实可用能力 |
| 瓶颈工序 | 制约整体产出的最慢工序或资源 | 工序/资源组,按订单批次 | 识别约束点,优化排产优先级与缓冲设置 |
3.2 机器产能与人工工时
机器产能通常以“标准产出率”表示,例如:“注塑机A:每小时产出120件”。在接口数据模型中,需同时传递额定产能与可用产能两个字段,后者已扣除维护、换模等计划内停机。
人工工时需按技能组进行聚合,而非简单按人头累加。例如:
- 高级焊接工(技能等级L3):8小时/天 × 2人 = 16工时/天
- 初级焊接工(技能等级L1):8小时/天 × 3人 = 24工时/天
计划系统在排产时,必须将任务所需技能等级与可用技能组进行匹配,否则会产生“有工时但无人能操作”的约束冲突。
接口调试提示: 在同步机器产能与人工工时数据时,需关注
effective_date(生效日期)与 expiration_date(失效日期)字段。产能数据常因工艺改进或人员变动而调整,接口必须支持时间维度上的版本管理,避免使用过期数据覆盖当前有效配置。
3.3 班次日历与设备效率(OEE)
班次日历定义了“何时可以生产”。标准数据模型包含:
- 日历类型: 标准工作日、加班日、节假日、设备检修日
- 班次定义: 早班(06:00-14:00)、中班(14:00-22:00)、夜班(22:00-06:00)
- 时间槽: 每个班次内的可用分钟数(扣除休息、交接时间)
设备综合效率(OEE) 是修正理论产能的关键因子,计算公式为:
OEE = 可用率 × 性能率 × 质量率
可用率 = 实际运行时间 / 计划运行时间
性能率 = (理论节拍 × 总产出) / 实际运行时间
质量率 = 合格品产出 / 总产出
在接口同步时,OEE 通常以百分比形式传递(如 0.85 表示 85%)。计划系统将理论产能乘以 OEE 得到有效产能:
有效产能 = 额定产能 × OEE
最佳实践: OEE 数据建议按周粒度进行滚动更新,避免因单日波动导致计划频繁调整。在接口设计中,可增加
oee_trend(趋势标识)字段,标记“上升/稳定/下降”,帮助计划系统预判产能变化方向。
3.4 瓶颈工序识别
瓶颈工序是产能约束的集中体现。识别方法通常采用工序负载分析:
- 收集各工序的在制订单量与剩余产能
- 计算负载率 = 需求工时 / 可用工时 × 100%
- 标记负载率超过 90% 的工序为潜在瓶颈
- 对潜在瓶颈进行详细排程模拟,确认实际制约点
以下 SVG 展示了瓶颈工序在产线中的识别逻辑与数据流向:
3.5 约束数据同步接口设计要点
在实时同步场景下,产能约束数据的接口设计需遵循以下原则:
- 增量同步: 只传递变更数据,减少全量传输对系统性能的影响
- 版本控制: 每条约束记录携带
version或last_modified时间戳,防止旧数据覆盖新数据 - 校验规则: 接口端需校验 OEE 值域(0~1)、工时非负、日历时间不重叠等业务规则
- 回滚机制: 当同步失败时,系统应保留上一版本的有效约束数据,确保计划不中断
常见接口调试错误: 班次日历中的“休息时间”与“设备维护时间”在接口中常被混淆。休息时间属于日历约束,维护时间属于设备可用率(OEE 的可用率部分)。若将维护时间错误地写入班次日历,会导致 OEE 计算重复扣减,使有效产能被低估 10%~20%。
3.6 约束数据集成示例(JSON 片段)
以下是一个标准的产能约束数据同步接口负载示例,展示了机器产能、人工工时与 OEE 的联合传递:
{
"resource_id": "MC_001",
"resource_type": "machine",
"capacity_data": {
"rated_output": 120,
"output_unit": "件/小时",
"effective_date": "2025-04-01",
"expiration_date": "2025-06-30"
},
"labor_data": [
{
"skill_group": "高级操作员",
"available_hours": 16,
"date": "2025-04-07"
},
{
"skill_group": "初级操作员",
"available_hours": 24,
"date": "2025-04-07"
}
],
"oee_data": {
"availability": 0.92,
"performance": 0.88,
"quality": 0.98,
"overall_oee": 0.79,
"measurement_period": "weekly"
},
"calendar_id": "CAL_SHIFT_A_B",
"bottleneck_flag": false
}
该 JSON 结构在接口调试时需重点关注 effective_date 与 expiration_date 的区间覆盖,以及 overall_oee 是否与三个子因子乘积一致(0.92 × 0.88 × 0.98 = 0.79)。