2. MRP运算逻辑:BOM展开、净需求计算、提前期偏移、批量规则
MRP(Material Requirements Planning)的核心运算逻辑围绕四个关键环节展开:BOM展开将产品结构逐层分解为物料需求;净需求计算扣除现有库存与在途量,得出真正需要下达的订单量;提前期偏移将需求时间倒推至订单下达时间;批量规则则决定每次采购或生产的订单数量。这四个环节环环相扣,构成了MRP运算的主干流程。
2.1 BOM展开:从产品结构到物料需求
BOM(Bill of Materials,物料清单)是MRP运算的起点。BOM展开的本质是递归遍历产品结构树,将顶层独立需求逐层分解为底层物料的相关需求。
以下是一个典型的多层级BOM展开示例(产品A由2个B和1个C组成,B又由3个D和2个E组成):
| 层级 | 父项物料 | 子项物料 | 单位用量 | 展开逻辑 |
|---|---|---|---|---|
| 0 | A(成品) | — | — | 独立需求100件 |
| 1 | A | B | 2 | 100 × 2 = 200件 |
| 1 | A | C | 1 | 100 × 1 = 100件 |
| 2 | B | D | 3 | 200 × 3 = 600件 |
| 2 | B | E | 2 | 200 × 2 = 400件 |
BOM展开的性能瓶颈通常出现在多父项共享子项的场景。例如,物料D同时被B和C使用,系统需要先汇总所有父项对D的需求,再进行净需求计算。如果BOM深度超过10层且物料数量超过10万条,展开过程的递归调用次数会呈指数级增长。
2.2 净需求计算:扣除库存与在途量
净需求计算是MRP运算中最核心的数学逻辑。其基本公式为:
净需求 = 毛需求 - 现有库存 - 在途订单 + 安全库存
其中:
- 毛需求:BOM展开后汇总的物料总需求量
- 现有库存:当前仓库中可用的实物库存量
- 在途订单:已下达但尚未到货的采购单或生产单数量
- 安全库存:为应对需求波动而设置的缓冲库存量(增加净需求)
以下是一个净需求计算的实际案例(物料D,时段为周):
| 时段(周) | 毛需求 | 现有库存 | 在途订单 | 安全库存 | 净需求 | 计算过程 |
|---|---|---|---|---|---|---|
| 第1周 | 200 | 150 | 100 | 20 | 0 | 200 - 150 - 100 + 20 = -30(负值取0) |
| 第2周 | 300 | 50(上期结余) | 0 | 20 | 270 | 300 - 50 - 0 + 20 = 270 |
| 第3周 | 250 | 0 | 200 | 20 | 70 | 250 - 0 - 200 + 20 = 70 |
净需求计算中有一个容易被忽视的细节:库存结余传递。当某时段净需求为0时,剩余的库存会结转到下一时段继续使用。这种“滚动库存”逻辑要求系统按时间顺序依次处理每个时段,不能并行计算。
2.3 提前期偏移:将需求时间倒推至订单下达时间
提前期偏移(Lead Time Offsetting)解决的是“什么时候下单”的问题。其核心逻辑是:订单下达时间 = 需求满足时间 - 提前期。
提前期偏移的三种常见场景:
- 采购提前期:从下采购单到物料入库的时间,包括供应商生产、运输、质检等环节
- 生产提前期:从下生产单到成品入库的时间,包括排队、准备、加工、检验等环节
- 运输提前期:物料从仓库到产线或从供应商到仓库的运输时间
提前期偏移的计算示例(物料D,提前期为5天):
需求满足时间:第10周周一(第64天)
提前期:5个工作日
订单下达时间 = 第64天 - 5个工作日 = 第57天(第9周周三)
注意:如果第57天是周末或节假日,需要继续向前偏移至最近的工作日。
在MRP系统中,提前期偏移通常与时段划分配合使用。如果系统按周划分时段,偏移后的订单下达时间可能落在上一周,从而改变该周的净需求分布。
2.4 批量规则:确定订单数量
批量规则(Lot Sizing Rules)决定了每次采购或生产订单的数量。不同的批量规则对库存水平和订单频次有显著影响。常见的批量规则包括:
| 批量规则 | 描述 | 适用场景 | 库存影响 |
|---|---|---|---|
| 按需批量(Lot-for-Lot) | 净需求是多少就下多少订单 | 高价值、低用量物料 | 库存最低 |
| 固定批量(Fixed Quantity) | 每次订单数量固定,如100件 | 有最小起订量或包装约束的物料 | 库存较高 |
| 固定周期(Fixed Period) | 汇总固定周期内的净需求,一次性下单 | 需求稳定、低价值物料 | 库存中等 |
| 经济批量(EOQ) | 基于订货成本和持有成本计算最优批量 | 需求连续、成本数据完善的物料 | 理论最优 |
| 最小-最大批量(Min-Max) | 库存低于最小值时补货至最大值 | 备件、辅料等非关键物料 | 库存可控 |
批量规则的应用示例(物料D,净需求分布如下):
时段(周) 净需求
第1周 0
第2周 270
第3周 70
第4周 0
第5周 150
按需批量:第2周下270件,第3周下70件,第5周下150件(共3次订单)
固定批量(200件):第2周下200件(剩余70件结转到第3周),第3周下200件(覆盖第3周70件和第5周150件,剩余80件库存)
固定周期(2周):第2周下340件(第2周270件+第3周70件),第5周下150件(共2次订单)
批量规则的选择直接影响MRP运算结果的可执行性。如果批量规则设置不当,可能导致频繁的小批量订单(增加采购成本)或大批量库存积压(增加持有成本)。在实际应用中,建议对不同类别的物料采用差异化的批量规则:
- A类物料(高价值):按需批量,减少库存占用
- B类物料(中等价值):固定周期或经济批量,平衡成本
- C类物料(低价值):固定批量或最小-最大批量,减少管理频次
2.5 四环节协同运算流程
BOM展开、净需求计算、提前期偏移、批量规则四个环节并非独立运行,而是形成一个完整的运算闭环:
- 输入阶段:接收MPS(主生产计划)的独立需求
- BOM展开阶段:逐层分解,生成所有物料的毛需求
- 净需求计算阶段:扣除库存和在途量,生成净需求
- 提前期偏移阶段:将净需求时间倒推至订单下达时间
- 批量规则阶段:应用批量规则,生成最终的计划订单
- 输出阶段:生成采购建议和生产建议
以下是一个完整的MRP运算示例,展示四环节如何协同工作:
| 步骤 | 物料 | 操作 | 结果 |
|---|---|---|---|
| 1 | A | MPS输入:第10周需求100件 | 独立需求100件 |
| 2 | B | BOM展开:100 × 2 = 200件 | 毛需求200件 |
| 3 | B | 净需求计算:200 - 50(库存)- 30(在途)= 120件 | 净需求120件 |
| 4 | B | 提前期偏移:第10周 - 2周提前期 = 第8周 | 订单下达时间第8周 |
| 5 | B | 批量规则:固定批量100件,120件拆为2批 | 第8周下100件,第9周下100件 |
通过以上四个环节的协同运算,MRP系统能够将顶层的主生产计划转化为底层物料的采购和生产计划,实现制造物料的高效协同。在实际性能调优中,需要重点关注BOM展开的递归效率、净需求计算的批量处理能力、提前期偏移的工作日历适配以及批量规则的灵活配置。