SAP PP能力计划:从KBED/KAKO主数据到CM21均衡排错
2026/9/18 12:36:52 网站建设 项目流程

简介:《SAP PP能力计划指南(中文版)》面向SAP PP模块的生产计划人员、实施顾问及ERP学习者,系统讲解工作中心可用能力与生产订单能力需求之间的评估与平衡逻辑。内容围绕能力评估的视图定义、函数库与数据流展开,涵盖可用能力与能力类别的判定、班次顺序与班次定义、工作中心层次的累积能力需求,以及网络、工厂维护订单、加工订单和PD订单等排产计划元素的处理;同时说明工序持续期与工作/操作时间的换算、缩减与部分确认工序、计划日志追踪等操作要点,并延伸至能力需求分配码与分配策略、能力负荷缩减、剩余需求分配,以及标准总览、可变一览表、能力详细清单与图形、Excel接口等评估形式,能力均衡部分还涉及有限排产、调度工序与计划表显示。资源共1个PDF文件,压缩包约993KB,目录层次清晰,可作为随查随用的操作参照。目前已有278人学习下载,适合需要深入掌握SAP PP产能管理细节的中高级用户。

1. 为什么说 SAP PP 能力计划不是"看报表",而是把主数据算对

计划员在 MD07 里看到一批计划订单压在下周一,车间主任翻了一眼工作中心排班说干不出来。MRP 只回答"什么时候需要",从不回答"工作中心扛不扛得住",中间这段缺口就是 SAP PP 能力计划(Capacity Requirements Planning,CRP)要补的。它的输入是三样东西:工作中心的可用能力、工艺路线上的标准值、订单的工序日期;输出是每个工作中心每段时间的负荷率和过载点。落到系统里,读的是 KBED 能力需求明细,对的是 KAKO 能力抬头。适合谁看:PP 主数据维护的人、车间计划员、上线能力计划模块的顾问,以及被"产能排不下"追着跑的生产主管。这份"指南"真正的价值不在菜单怎么点,而在搞清楚需求是怎么算出来的、可用能力怎么配、算出来对不上时从哪一层往回查。

2. 工作中心、能力池与工艺路线标准值:SAP PP 能力计划的三层主数据

2.1 用 CR01/CR02/CR03 维护工作中心里的能力相关视图

工作中心是能力计划的落点,CR01 建、CR02 改、CR03 看。进到工作中心后,真正和能力计划相关的是三块:基本数据里的"标准值键"(Standard value key),默认值里的标准值和控制码,以及"能力"视图里的能力池分配。标准值键决定这道工序能录哪几个标准值参数(常见的是 VGW01 机器时间、VGW02 人工时间、VGW03 准备时间,具体含义随标准值键 SAP_01 之类的配置走);能力视图决定这个工作中心挂在哪几个能力池下、以什么能力类别供给能力。很多人只填了基本数据就以为完事,结果 CM01 里查不到任何负荷,问题往往出在能力视图没分配。

2.2 能力池、能力类别与 KAKO:可用能力到底存在哪

可用能力不直接写在工作中心上,而是通过"能力池"(Capacity pool)挂接,用 CR11/CR12/CR13 单独维护能力抬头,落库到 KAKO 表。一张能力抬头里关键字段包括:能力类别(机器、人工等,决定它能承接哪种需求)、能力池 ID、开始时间与结束时间、休息时间、利用率、以及"标准可用能力"的公式编号。利用率是个容易被忽略的系数——某能力池标称每天三班 24 小时,利用率配 85%,实际可供能力就是 20.4 小时,计划员看到的是后者。查表时用 SE16N 打开 KAKO 按工作中心过滤,能直接看到这段配置。

对象常用事务码主要落库表作用
工作中心CR01/CR02/CR03CRHD、CRCA定义标准值键与能力分配
能力抬头CR11/CR12/CR13KAKO定义可用能力、利用率、班次
工艺路线工序CA01/CA02/CA03PLKO、PLPO提供标准值与基本数量
能力需求明细由排产生成KBED、KBKO存每个工序的时间需求

2.3 工艺路线标准值与能力需求公式:需求是怎么乘出来的

工艺路线里每道工序有基本数量(Base quantity)和若干标准值。能力需求的基本算法是:工序标准值 × (工序数量 ÷ 基本数量),再按单位换算成小时。比如某工序基本数量 100 件、机器时间 VGW01 为 0.5 小时,订单数量 300 件,则机器能力需求 1.5 小时。准备时间一般只算一次,不随数量缩放,这一点在改公式时要特别小心。公式本身在 IMG 路径"生产 → 能力需求计划 → 定义公式"下维护,可以引用标准值参数做算术组合。下面这段 ABAP 直接从 KBED 读需求、从 AFVC 读工序,用来核对某个生产订单在系统里到底生成了几条能力需求。

" 读取某生产订单的能力需求明细,核对是否与工艺路线标准值一致 DATA: lt_kbed TYPE TABLE OF kbed. SELECT kbed~bedid kbed~kaptl kbed~arbid kbed~pernr kbed~rukurs kbed~vornr kbed~bdext INTO CORRESPONDING FIELDS OF TABLE lt_kbed FROM kbed WHERE kbed~aufnr = @p_aufnr. " p_aufnr 为生产订单号 LOOP AT lt_kbed INTO DATA(ls_kbed). " bedid 对应工序 ID,kaptl 为能力类别,rukurs 为已折算的需求小时数 WRITE: / ls_kbed-vornr, ls_kbed-kaptl, ls_kbed-rukurs. ENDLOOP.

代码里的kaptl是能力类别,rukurs是折算后的能力需求小时数,arbid指向具体能力池。查到记录但数值明显偏小,先回去看工艺路线的标准值单位是"分钟"还是"小时",单位配错是这类偏差最常见的来源。

3. 用 CM01/CM03/CM04 跑出能力负荷:需求记录怎么生成和读取

3.1 从计划订单到 KBED:能力需求在哪一步被写进来

需求记录不是 MRP 跑完就有的,触发点在排产。计划订单创建时通常只有基本日期,跑一次排产(Scheduling)后工序才拿到具体的开始/结束日期,能力需求随之写进 KBED,抬头落在 KBKO。计划订单产生的是"计划"状态的能力需求,生产订单转成"确认"状态后同一条需求依然存在,但归属订单类型不同。CM01 里如果什么都不显示,先确认三件事:计划订单有没有排产日期、工作中心有没有分配给能力池、能力类别和工艺路线里的标准值键能不能对上。这三点中任何一点断了,负荷都汇不起来。

3.2 CM01/CM03 能力负荷表的操作步骤与列含义

典型操作是:输入工作中心与期间口径(日、周、月),选择视图(按期间汇总或按订单明细),执行后得到每个工作中心每列一段时间的负荷。列里的关键值有四个:能力需求(来自 KBED 汇总)、可用能力(来自 KAKO 并按期间折算)、负荷率(需求 ÷ 可用能力)、剩余能力(可用减需求,负数即缺口)。负荷率超过 100% 的格子通常会高亮,这就是要动手均衡的点。用 CM04 或 CM05 的能力计划表能看到同一批需求按工序展开的表格式视图,比汇总视图更适合定位到具体订单。

含义数据来源
能力需求本期间该能力类别需要的工时KBED 汇总
可用能力本期间可供能力KAKO 按班次折算
负荷率需求 / 可用能力系统实时计算
剩余能力可用能力 − 需求系统实时计算

3.3 用 ABAP 汇总 KBED 与 KAKO,反推 CM03 的负荷率

报表看着不对时,最快的办法是自己算一遍。下面这段按工作中心汇总一段时间的能力需求,再并上可用能力算负荷率,和 CM03 的结果对不上就说明期间口径或能力类别选错了。

" 按工作中心与期间汇总能力需求,并计算负荷率 TYPES: BEGIN OF ty_load, arbpl TYPE crhd-arbpl, " 工作中心 kaptl TYPE kbed-kaptl, " 能力类别 demand TYPE kbed-rukurs, " 需求小时 avail TYPE kako-anzshl, " 可用能力小时 END OF ty_load. DATA: lt_load TYPE TABLE OF ty_load. SELECT crhd~arbpl kbed~kaptl SUM( kbed~rukurs ) AS demand INTO TABLE @DATA(lt_demand) FROM kbed INNER JOIN crhd ON kbed~objid = crhd~objid WHERE kbed~bedid IN @s_period " s_period 为期间范围 GROUP BY crhd~arbpl kbed~kaptl. LOOP AT lt_demand ASSIGNING FIELD-SYMBOL(<ls_d>). " 可用能力需按同一期间折算,这里用班次小时数做近似 SELECT SINGLE SUM( anzshl ) INTO @DATA(lv_avail) FROM kako WHERE kaptl = @<ls_d>-kaptl. " 负荷率 = 需求 / 可用能力 * 100 DATA(lv_rate) = <ls_d>-demand / lv_avail * 100. WRITE: / <ls_d>-arbpl, <ls_d>-kaptl, lv_rate. ENDLOOP.

anzshl表示能力抬头上的可用能力小时数,实际系统里还要乘利用率、扣休息时间,所以这段代码算出的值通常略高于 CM03。它的用途不是替代标准报表,而是在报表数字反常时快速判断是需求端出了问题还是能力端配置出了问题。

4. CM21/CM25 能力均衡:把过载的 130% 拉回 100%

4.1 均衡前先分清无限排产与有限排产

无限排产只管日期不管产能,把订单全部按理想时间铺开,结果是形成一份"想干但干不完"的负荷表;有限排产会把可用能力当硬约束,排不下就往后推。CM21 属于能力均衡工具,本质上是对已存在的需求做移动,而不是重新排产。理解这一点很关键:均衡动的是订单日期和工序日期,不改工艺路线标准值,所以均衡之后回 MD07 看订单日期是会变的。做均衡前先确认当前视图是无限还是有限,否则会出现"怎么点都没变化"的情况。

4.2 CM21 图形化能力均衡的五个动作

按操作顺序通常是:一、选工作中心或能力类别,定期间口径;二、看柱状图或表格里的过载段,确认是需求集中还是可用能力配少了;三、用"移动"把某个订单的工序拖到负荷较低的期间;四、需求跨度超过单期能力时用"拆分"把一道工序的需求摊到多期;五、用"换工作中心"把需求转到同能力类别的其他工作中心。CM25 面向按期间做均衡的场景,视图更偏表格,适合处理月度级别的产能拉平。每次移动后都要回 KBED 看一眼需求记录有没有跟着日期更新,没更新说明均衡没真正落库。

4.3 均衡策略与调度参数怎么设

均衡行为受参数文件控制,在 IMG 路径"生产 → 能力需求计划 → 定义能力计划参数"里维护。几个必调参数:允许的移动方向(只能延后、只能提前、双向)、最大移动天数(防止把订单甩到几个月后)、是否允许拆分工序、是否允许更换工作中心、以及均衡时的排序依据(按交付日期、按优先级、按订单号)。这几个参数配得太松,均衡结果会把订单挪到不可接受的日期;配得太紧,会出现"无解",系统提示无法消除过载。我的习惯是先把最大移动天数限制在交期浮动的范围内,再看能消掉多少过载。

参数取值示例影响
移动方向仅延后 / 双向决定能否提前占用空闲能力
最大移动天数3 / 7 / 14太大可能突破交付承诺
允许拆分是 / 否开启后可跨期摊平长工序
更换工作中心是 / 否依赖同能力类别的替代资源
排序依据交付日期 / 优先级决定先移哪张订单

4.4 正向排产与反向排产对负荷分布的影响

反向排产从需求日期倒推工序开始时间,负荷会尽量贴近交期,容易在交期前形成堆积;正向排产从当前日期往后铺,负荷更平滑但可能拖长交期。切换排产方式后必须重新跑一次 CM01,因为生成的需求日期整批都变了。实际生产中常见做法是:关键订单用反向排产保交期,非关键订单用正向排产填谷,两边配合着做能力均衡。浮时间(Float)如果留得太小,反向排产几乎没有任何腾挪余地,均衡时只能靠拆分和换工作中心。

5. 验证与排错:用 MD07、COOIS 和工作中心负荷反查能力计划偏差

5.1 三个反查入口,从订单回到能力

均衡做完不代表结束,验证环节通常从三个入口回查。MD07 库存需求清单看的是订单日期有没有按预期移动,这是判断均衡是否生效的第一道;COOIS 订单信息系统按工作中心或订单类型拉出工序清单,可以核对每道工序的日期和状态;CM01/CM03 再跑一遍负荷表,确认过载格子的负荷率确实降下来了。三个口径互相印证,比只信一张报表可靠得多。

5.2 能力计划里最常见的四类偏差

现象可能原因处理方向
CM01 完全无负荷工作中心未分配能力池,或未排产查 CR02 能力视图,重跑排产
需求数值明显偏小标准值单位配置错误核对工艺路线标准值单位
负荷率与手工计算差很多期间口径或利用率不一致统一期间划分,核对 KAKO
均衡后过载未消失移动未落库或策略禁止拆分检查均衡参数与 KBED 日期

5.3 一个具体技巧:用 SQVI 做每日负荷快照

CM01 是实时视图,历史负荷变化没法回溯。我的做法是用 SQVI 或 SE16N 基于 KBED 做一张按工作中心、按日期的需求汇总查询,配合作业计划每天跑一次结果导出,形成负荷趋势。这样当车间反馈"这周突然排不下"时,可以对比昨天和今天的快照,直接看出是哪张订单哪道工序挤进来。查询的过滤条件建议固定为能力类别加日期区间,日期字段用工序的开始日期而不是订单日期,否则跨期工序会被算错。表连接上,KBED 关联 KBKO 拿订单抬头,再关联 CRHD 拿工作中心名称,字段不多,但足够定位问题。这套快照不替代 CM 系列事务码,它的价值在于把"当时是什么样"留下来。

本文还有配套的精品资源,点击获取

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询