インドネシア生産スケジュールの数量と時間の違い

2017/08/30

インドネシアの数量ベースと時間ベースの生産計画の違いを示す図解。

通常のMRPは無限能力負荷山積みと呼ばれ、オーダが生産能力の範囲内に収まるかどうかを確認します。しかし、生産スケジューラの有限能力負荷山崩しでは、納期遅れしない実現可能なスケジュールを作成できるかどうかを確認します。

インドネシアの生産スケジューラとPSI表・負荷計画の関係を構造化した図解

インドネシアの生産スケジューラ

生産計画と負荷計画は密接に関連しており、数量ベースでの確認が求められる。PSI表を用いて生産数量、消費数量、在庫数量を対比することが重要。計画は実績と比較して進捗を確認し、在庫数量に基づく予測でリセットされる。

続きを見る

この記事でわかること

  • 通常のMRPは無限能力負荷山積みでオーダが生産能力内に収まるかを確認します。
  • インドネシアでは数量ベースの生産計画が一般的で、Excelを使用することが多いです。
  • 生産スケジューラは時間ベースで作業を割り付け、納期遅れしないスケジュールを作成します。
  • 有限能力山崩しでは、現状の資源量と稼働時間の制約内でのスケジュールを確認します。
  • 工程間の重なり方法により、安全在庫の生成タイミングが異なります。

インドネシアで課題となりやすい数量ベースと時間ベースの生産スケジュールの考え方の違い

私の経験上、インドネシアの多くの製造現場では、機械やラインのシフト単位、日単位のキャパに対して何個出来高を積み上げられるかという数量ベースの発想で生産計画が作成されています。長年Excelのセルを1シフトまたは1日と考えて生産計画を作成していれば、この発想になるのがむしろ普通です。

一方で生産スケジューラは、8:00~17:00のような稼働時間の空いている時間帯に作業を割り付けていくという時間ベースの発想です。

両者の違いをITっぽく表現すれば、シフト別日別にオブジェクトを生成するか、製造指図単位にオブジェクトを生成するかの違いです。生産計画を作成するという同じ目的を持っているとはいえ、この発想の違いは簡単には埋まらないのではないかと感じます。

インドネシアで(おそらくアジア全般で)生産スケジューラを導入する際には、シフトまたぎや日またぎしている時間ベースに割付られた作業を、シフトの区切り時間や日の区切り時間ごとに集計し直す必要があります。

Excelというツールが人間の頭の中のロジックに合っていたのか、人間の頭がExcelの特性に影響され過ぎたのかは定かではありませんが、この現状にシステムが歩み寄る努力をしない限り、製造現場の人間には受け入れられないというのは確かなようです。

生産管理部の仕事

生産計画と負荷計画の関係

日本と同様にインドネシアでも、製造業の生産管理部門(PPIC=Production Planning Inventory Control)では、顧客からの確定受注情報や内示情報を元に、製品在庫や手番を考慮した上で、基準生産計画(MPS=Master Production Schedule)を作成します。

このMPSを部品構成表(BOM=Bill of Material)に従って所要量展開し、リードタイムを考慮して製造オーダーを作成しますが、インドネシアでは生産管理システムのMRP(Material Requirement and Planning)を駆使して製造オーダーを作成しているケースは非常に少なく、大抵はExcel作業になります。

こうして作成した製造オーダを時系列に並べることで、品目単位の製造予定表(月次生産計画)を作成しますが、ここまでがいわゆる生産計画(Production Planning)と呼ばれるものです。

生産計画を立案し、実際に現場への製造指図を発行するにあたり、ラインへの割付けが必要になります。このときのラインにかかる仕事量が負荷(Loading)であり、負荷を消化するために既存資源量で対応できるかどうかを予測し、生産準備の段階で負荷を分散させたり、残業を入れたり、ラインを追加したりするのが負荷(能力)計画(Capacity planning)です。

つまり生産計画と負荷計画は不可分の関係にあり、負荷計画の間違いは生産計画の間違い(納期遅れ)に直結します。

生産管理部門の計画作成業務

生産管理システムのMRPは、負荷計画を考慮しない無限能力バックワードで、ラインごとに製造オーダーを山積みする仮の生産計画です。製造オーダーを消化するだけの生産資源と稼動時間が存在するかを確認しながら、マニュアルで代替資源や代替日程への平準化割付を行ないます。

MRP割付け

MRPでは工程間作業は垂直に紐付く

一方で能力計画を考慮した有限能力山崩しの生産計画の場合、現状の資源量と稼働時間という制約の中でどれだけあふれるかが確認できます。

あふれた作業を強制割付するか無視するかの違い

強制割付と無視の違い

計画パラメタにアジャストメントコマンドがある場合、あふれた作業の割付き方を制御できます。アジャストメントコマンドがない場合、これらのパラメタは無視されます。強制割付とは、期間内に収まるように無限能力で無理やり割付けることを指し、無視とは、期間内には有限能力、期間外には無限能力で割付けることです。

バックワード時の割付き方

バックワードで「割付開始日時を越えた時」に何も設定しない場合、強制割付(無限能力)と同じ動きになります。計画基準日右側(計画期間内)に山積みになるのは、過去の計画を立てても意味がないからです。バックワードで溢れた作業を計画基準日の左側(計画期間外)に山積みさせたい場合は、「割付開始日時を超えた時」を「無視」(突き抜けて無限能力割付)に設定します。

フォワード時の割付き方

フォワードで「割付終了日時を越えた時」に何も設定しない場合、無視(突き抜けて無限能力割付)と同じ動きになり、割付終了日時の右側(計画期間外)に山積みになります。フォワードで割付終了日時の計画期間内に山積みさせたい場合は、「割付終了日時を越えた時」を「強制割付」(無限能力割付)に設定します。

納期遅れしない生産計画の負荷状況を確認

生産計画担当者は、納期遅れしないような生産計画を立てることを考えますが、設備のキャパが十分でない場合もあります。日々の負荷状況を確認し、負荷オーバーする箇所を事前に把握して対策を講じることが重要です。フォワードで割付けて時間制約違反が発生する時に限って強制割付(無限能力)にすることで、負荷オーバーの資源と時期を確認します。バックワード割付けは納期を基準にしているため、納期遅れは発生せず、負荷オーバーのみが発生します。

LET

最早開始日時や最遅終了日時は時間制約違反の基準です。フォワードで最遅終了日時を越えるとは「前工程が遅すぎて後工程が間に合わない」状態です。この結果を元に「いつ何パーセント負荷オーバーしているので生産計画を変更、またはオーバータイムを入れる」という判断を下します。

サイクルタイムプランとキャパシティプラン

サイクルタイムベースで積み上げた作業を山崩しするのは、作業の順番をつけて負荷平準化し、時間制約違反を起こさない理論上作業可能な計画を立てるためであり、作業日程計画というカレンダー(横軸)を重視した方法です。しかし、現場に指示書を出しても、実際には現場の諸事情により順番どおりに作業を行うことは難しく、刻々と現場で発生する計画に影響を与える要素をシステムに反映させてリスケジュールすることは現実的ではないかもしれません。

そのため、納期遅れしないという条件の下で、1日のキャパ(生産数量や稼働時間)の範囲内に作業ロットを山積みし、「2017年はそれぞれのラインでこれだけの作業ロットを消化してください」という指示書を出すほうが現実的です。これは資源キャパという縦軸を重視した方法です。

  • 資源テーブルの「割付資源量フラグ」を「製造数量に比例」
  • 製造BOMの製造能力を1日固定に設定(タイムバケット1日)

「1日1ロット:1日のキャパ8,000個, マシン数5台, 資源量40,000個」の場合

  • 品目テーブルの製造ロットサイズMAXを1日のキャパ(数量)に設定(1日1箱)
  • カレンダーテーブルの資源量を製造ロットサイズx資源の数に設定(1日分が資源の数分山積み)

「1時間1ロット:1日のキャパ8,000個, 1ロット1,000個, マシン数1台, 資源量8,000個」の場合

  • 品目テーブルの製造ロットサイズMAXを1時間のキャパ(数量)に設定(1時間1箱)
  • カレンダーテーブルの資源量を製造ロットサイズx資源の数に設定(1時間分が8個山積み)

キャパシティプラン

「山積み」による負荷の確認と「山崩し」による実現可能なスケジュールかどうかの確認

MRPの負荷計算機能では、ライン別に品目別の標準負荷(サイクルタイム)を設定し、オーダ数量に応じてラインに何分負荷をかけるかを計算します。そして、リードタイム(日)をずらした日に「山積み」し、1日あたりのライン能力と比較することで、日単位の勝ち負けを確認できます。

日単位の「山積み」結果として判明したライン能力のあふれ分が、前倒しすることで納期に間に合うかどうかを確認するために「山崩し」を行います。これを自動的に行うのが生産スケジューラです。

「山崩し」は、時間制約違反を起こさないように作業に順番をつけ、「理論上実現可能な」スケジュールを作成することを意味します。これは作業日程計画というカレンダー(横軸)を重視した方法です。

ただし、最適化されたスケジュールを作成するために、スケジューラーに対して生産現場の制約条件を100%漏れなく設定することは難しいです。そのため、「山崩し」結果をそのまま現場のスケジュールとして反映させる理想論よりも、「山崩し」によっておおよそ納期遅れしないことを確認できれば十分です。後は、万が一のために余裕を持たせて何日分かの安全在庫を設定するという現実的なシステム運用方法になります。

納期遅れしないという条件の下で、1日のキャパの範囲内に作業ロットをリスト化し、「2017年当時それぞれのラインでこれだけの作業ロットを消化してください」という指示書を出す方が現実的です。これは資源キャパという縦軸を重視した方法です。

工程間の重なり方法と安全在庫とロットサイズの関係

Asprova資源ガントチャート

左がSE、右がSSEEで割り付けた結果

左がSE、右がSSEEで割り付けた結果

安全在庫はオーダ展開時の補充オーダ生成において考慮されますが、生成のタイミングは工程間の重なり方法によって異なります。オーダ展開では、自動補充機能を用いて製造BOMを参照し、受注オーダの不足分を補充オーダ(子)として生成し、さらにその不足分を補充オーダ(孫)として生成します。

工程間の重なり方法がES(End-Start)の場合、前工程が完了してから自工程を開始するため、補充オーダは自工程の開始時に生成されます。このため、前工程の作業期間中に出荷や投入が発生すると安全在庫を切る可能性があります。

一方、SSEE(Start-Start End-End)の場合、前工程と自工程をオーバーラップさせることで、補充オーダが前工程の作業中に随時生成され、安全在庫を切る可能性が低くなります。ただし、SSEEは製造ロットサイズが1個で流動する考え方であり、実際の現場では製造ロット単位やパレット単位で流動するため、必ずしもSSEEが実現できるとは限りません。

「山崩し」機能で出来ること

100%完全な制約条件をスケジューラに反映させることは不可能であるため、生成されるスケジュールの精度は100%ではありません。しかし、「山崩し」機能を活用することで、生産管理システムのMRP「山積み」機能では対応できない、納期遅れしない理論上実現可能なスケジュールを作成できます。

この機能により、工程間の重なり方法をSSEEに設定し、1個流し生産のようにロットサイズを1個単位にしなくても、多数の製造オーダを生成することなく、理論上では安全在庫を極力遵守したスケジュールを作成することが可能です。

セミナーのアジェンダ(時間軸の占有)と週末のやりたいことリスト(日単位の山積み)の違い

セミナーを開催する際のアジェンダ作成では、開始時間から終了時間までの時間軸にイベントを割り付けるのが一般的です。

  • 受付開始時刻(14:30)から始まり、主催者の挨拶10分(15:00-15:10)、1人目登壇者60分(15:10-16:10)、休憩時間10分(16:10-16:20)、2人目登壇者40分(16:20-17:00)、3人目登壇者50分(17:00-17:50)、質疑応答10分(17:50-18:00)・・・

これは参加者が聴講したい登壇者の出番に合わせて来場できるように登壇時間を明確にしたり、登壇者がその日の夕方の飛行機で帰京しなければならないため、前半の登壇に起用したりするなど、「何時何分に何のイベントがあります」という時間軸に対するタスクのアサインが重視されるからです。

一般的にスケジュールを作成する場合、システム開発導入プロジェクトで作成されるWBS(Work Breakdown Structure)のように、縦軸にタスク、横軸に時間軸を設定し、いつからいつまでにタスクを完了させることを明確にします。

一方で、溜まっている残作業を週末にまとめて終わらせたいという「やりたいことリスト」を考える際は、週末に活動可能な時間の中でどれだけ作業を積み上げられるかが重要です。どのタスクから先に実行するかは土曜日になってから考えれば十分であり、計画段階での重要な問題ではありません。

  • 土曜日の夕方には嫁の妹夫婦が遊びに来るので、作業時間は朝から夕方5時まで実質8時間あります。案件1の残作業(2時間)、ブログ更新(2時間)、睡眠不足解消のための昼寝(2時間)、洗車(1時間)、買い物と印刷屋での用事(2時間)、時間が足りなさそうなので(キャパオーバーしそうなので)洗車は明日にしよう・・・

セミナーのアジェンダ(時間軸の占有)と週末のやりたいことリスト(日単位の山積み)

最大資源量を必要資源量で消費していくという考え方

「週末やりたいことリスト」を考える際、無意識に「時間軸にタスクを割り付ける」から「活動可能な時間をタスクごとの必要時間で消費する」発想に転換しています。これを抽象化すると、1日8時間という「最大資源量」を、案件1の「必要資源量」2時間、ブログ更新の「必要資源量」2時間、昼寝の「必要資源量」2時間、洗車屋への往復の「必要資源量」1時間、その他の用事の「必要資源量」2時間で消費する考え方です。

別の例として、トンネル炉による熱処理工程では、1日あたりベルトコンベアにセット可能な台車数が1000台で、これを「オーダ数x資源必要量1台」で消費します。

  • 1日あたりベルトコンベアにセット可能な台車数1000台⇒主資源(トンネル炉)の最大資源量
  • オーダ数x必要資源量1台⇒品目ごとの必要資源量
    1. 割付け資源量フラグが「通常」
      作業ごとに製造BOMの必要資源量に指定した数だけ資源量を消費します。
    2. 割付け資源量フラグが「製造数量に比例させる」
      作業の製造数量に製造BOMの必要資源量に指定した数値を掛け算した資源量を消費します。
  • トンネル炉の熱処理時間⇒固定リードタイム1日

トンネル炉での熱処理品目の大きさは様々で、台車の在庫数に制限がある場合は、台車の最大資源量に在庫数を設定し、トンネル炉の熱処理時間と同じく、台車通過時間を固定リードタイム1日で設定します。

  • 品目ごとの対応する台車の在庫数⇒副資源(台車)の最大資源量
  • 台車通過時間⇒固定リードタイム1日

また、小さい品目ほど台車に搭載する数が多くなりますので、品目ごとの出力指図に搭載可能数を設定することで、熱処理工程では1個のオーダに対して搭載可能数分の出力が得られ、トンネル炉の1個あたり熱処理時間は搭載可能数に反比例して短くなります。

よくある質問|無限能力と有限能力

山積みと山崩しの使い分けでよく出る問いです。

無限能力の山積みは何に使いますか?

負荷の偏りを先に可視化するための手法です。能力無視で積み上げ、どこがボトルネック候補かを把握します。

有限能力の山崩しが必要なのはなぜですか?

実際の設備能力内に作業を収めるためです。納期・段取り・代替資源を満たすには、ルールとシミュレーションによる調整が必要になります。

どちらから始めるべきですか?

まず山積みで過負荷箇所を共有し、次に山崩しで実行可能な計画へ落とす順序が実務的です。