Fab Forward Dev/

ナレッジベース

製造業の一般知識

MRP 計算ロジック / MRP Calculation Logic

BOM 展開から所要量計算、ロットサイズ決定、リードタイム・オフセットまでの標準 MRP ロジック。 受注生産 (Make-to-Order) の中小製造業を前提とする。

DDD 対応: ddd/03-aggregates/quotation-order.md, ddd/05-business-rules.md


1. MRP の位置づけ

S&OP (経営計画)
  ↓
MPS (基準生産計画 / Master Production Schedule)
  ↓
MRP (資材所要量計画 / Material Requirements Planning)
  ↓
CRP (能力所要量計画) / 購買発注 / 製作指示

MRP は「何を・いくつ・いつまでに」必要かを、BOM とリードタイムから逆算する仕組み。


2. BOM 展開 (Bill of Materials Explosion)

構造

製品 A (レベル 0)
├── 部品 B ×2 (レベル 1)
│   ├── 材料 D ×3 (レベル 2)
│   └── 材料 E ×1 (レベル 2)
└── 部品 C ×1 (レベル 1)
    └── 材料 D ×2 (レベル 2)

ローレベルコード (Low-Level Code)

同じ品目が BOM の複数階層に出現する場合、最も深い階層の番号をその品目のローレベルコードとする。MRP はローレベルコード 0 → 1 → 2 ... の順に処理し、上位の所要量が確定してから下位を計算する。

展開計算

品目 D の総所要量 = (B の所要量 × 3) + (C の所要量 × 2)
                   = (2 × 3) + (1 × 2)
                   = 8 個

3. 所要量計算 (Net Requirements Calculation)

基本式

正味所要量 = 総所要量 - 手持在庫 - 発注残 (入庫予定) + 安全在庫
用語英語説明
総所要量Gross RequirementsBOM 展開で算出された必要数量
手持在庫On-Hand Inventory現在の倉庫在庫
発注残Scheduled Receipts既に発注済みで未入荷の数量
安全在庫Safety Stock需要変動・供給遅延への緩衝在庫
正味所要量Net Requirements実際に手配が必要な数量

計算例

項目数量
総所要量100
手持在庫30
発注残20
安全在庫10
正味所要量100 - 30 - 20 + 10 = 60

受注生産 (MTO) の場合

  • 手持在庫・安全在庫はほぼゼロ (在庫を持たない方針)
  • 総所要量 ≒ 正味所要量 になることが多い
  • 受注確定後に即 BOM 展開 → 手配という流れ

4. ロットサイズ決定 (Lot Sizing)

方式英語説明適用場面
ロット・フォー・ロットLot-for-Lot (L4L)正味所要量 = 発注量。在庫を持たない受注生産の標準
固定ロットFixed Order Quantity常に一定数を発注標準品の購入品
EOQEconomic Order Qty発注費と保管費の最小化汎用材料の定期発注
期間まとめPeriod Order QuantityN 期間分をまとめて発注段取り替えコストが高い場合

EOQ 公式

EOQ = √(2DS / H)

D = 年間需要量
S = 1回の発注費用
H = 1個あたり年間保管費用

受注生産での推奨

中小受注生産ではほぼ L4L (ロット・フォー・ロット) を採用:

  • 在庫リスクを最小化
  • 各受注に対して必要量だけ手配
  • 余剰在庫の管理コストを回避

5. リードタイム・オフセット (Lead Time Offsetting)

概念

納期から逆算 (バックワード・スケジューリング) して、各工程の開始日を決定する。

納期 (受注の NOUKI)
  ← 検収リードタイム (1日)
  ← 組立リードタイム (3日)
  ← 部品入荷待ち
    ← 外注リードタイム (14日)  ← 発注日を決定
    ← 内製リードタイム (5日)   ← 製作指示日を決定
  ← 材料入荷待ち
    ← 材料調達リードタイム (7日) ← 材料発注日を決定

リードタイムの構成要素

要素英語説明
段取り時間Setup Time機械の切り替え時間
加工時間Processing Time実際の作業時間
待ち時間Queue Time前工程完了待ち
移動時間Move Time工程間の物理的移動
検査時間Inspection Time品質チェック
製造リードタイム = 段取り + (加工 × 数量) + 待ち + 移動 + 検査

6. MRP の入力と出力

入力 (Inputs)

入力説明我々のシステムでは
MPS (基準生産計画)何を・いつ作るかT_ORDER (受注) の納期
BOM (部品表)製品構成と所要量M_PARTS_HED / M_PARTS_BDY
在庫レコード手持在庫・発注残T_UKEIRE (受入実績)
リードタイム各品目の調達・製造期間マスタ設定

出力 (Outputs)

出力説明我々のシステムでは
計画オーダー手配すべき品目・数量・時期T_TEHAI (手配) の自動生成
製作指示内製品目の作業指示T_SSIJI (製作指示) の自動生成
リスケジュール通知納期変更が必要な場合の警告— (将来実装)

7. MRP の限界と対策

限界説明対策
無限能力前提MRP は設備能力を考慮しないCRP (能力所要量計画) で別途検証
リードタイム固定負荷に応じた変動を無視余裕を持たせるか、有限能力スケジューリング
データ精度依存BOM・在庫が不正確だと結果も不正確マスタ管理の徹底、棚卸の定期実施
需要変動に弱い計画変更時の再計算コストが大きい受注生産なら影響は限定的

8. 受注生産 (MTO) での MRP 簡略化

中小製造業の受注生産では、MRP の以下の要素を簡略化できる:

標準 MRPMTO 簡略版理由
需要予測不要受注確定が起点
安全在庫ほぼゼロ在庫を持たない方針
複雑なロットサイズL4L 固定受注量 = 手配量
MPS 作成受注 = MPS受注そのものが生産計画
再計画 (Regeneration)差分計算で十分受注単位で独立

我々のシステムでの実装方針: 受注登録 → BOM 展開 → 手配/製作指示の自動生成 (L4L) → リードタイム逆算で開始日設定