【中級編】FC型物流倉庫を再現する

概要

物流倉庫モデル作成の4回目となるこの記事では、通信販売業で多く利用されるFC(フルフィルメントセンター)型物流倉庫を再現したモデルを作成します。フルフィルメントセンターは通信販売業を行う小売店が設置する物流拠点で、ECサイトや電話、郵便などで消費者が注文すると受注、集荷(倉庫内のピッキング含む)、梱包、配送、返品業務を行う他、商品の発注や在庫管理、顧客のデータ管理まで(フルフィルメント業務)を一括に行う形態です。この際、アマゾンのように自社の商品の販売だけでなく他の小売業者の業務を委託されて行っている場合もあります。

この内、倉庫内で行う業務は、入荷に関しては販売する商品の荷受と検品、入庫、出荷に関してはピッキングと梱包、発送があり、この他、在庫管理や品質保証などもあります。今回の記事ではなどを入れたモデルを作成します。

FC(フルフィルメントセンター)型物流倉庫のモデル作成

FCを例にとったモデルの作成を解説します。今回は上流プロセスへの還流機能の解説を行います。これにより更に多彩なモデルの作成が可能となります。

  • 入荷ブロック
  • 入荷検査ブロック
    • 検査合格品処理小ブロック
    • 検査不合格品処理小ブロック
  • 入庫ブロック
  • 出庫(ピッキング)とピッキング後の検査ブロック
    • ピッキング検査合格品処理小ブロック
    • ピッキング検査不合格品処理小ブロック *ピッキングミスの処理で上流への還流を行います
  • 出荷ブロック
    • 検査合格品の梱包小ブロック
    • 出荷小ブロック
    • 検査不合格品の廃棄小ブロック

STEP1プロセス図の作成

入荷ブロック

倉庫への入荷プロセスを配置します。入荷後デバンニングと検品を行うため、下図のように入荷→置き場→分解→検品→分岐の各プロセスを配置します。

入荷プロセス:
特に変更なし

置き場プロセス:
プロセス名を「到着品置き場」へ変更

分解プロセス:
プロセス名を「デバンニング」へ変更

検品プロセス:
プロセス名を「到着品検品」へ変更

入荷検査ブロック

入荷した商品のうち、到着品検品での合格品と不合格品を分岐プロセスで分けそれぞれの処理を検査合格品処理小ブロックと検査不合格品処理小ブロックで行うため、検品「到着品検品」の後工程として分岐→置き場→運搬→分岐の順にプロセスを配置します。

分岐プロセス:
プロセス名を「不良品取分」へ変更

分岐先として2つの置き場を設置:

置き場プロセス:
プロセス名を「検品済商品置き場」へ変更
検査合格品処理小ブロックへ

置き場プロセス:
プロセス名を「初期不良品置き場」へ変更
検査不合格品処理小ブロックへ

検査合格品処理小ブロック

分岐「不良品取分」から分岐し、置き場「検品済商品置き場」→ローラーコンベアーの順にプロセスを配置します。

置き場プロセス:(再掲)
プロセス名を「検品済商品置き場」へ変更

ローラーコンベアー:
特に変更なし
後工程として入庫ブロックの分岐「品目別仕分け」へ接続

検査不合格品処理小ブロック

下図のように「不良品取分」から分岐し、置き場「初期不良品置き場」→運搬(人)の順にプロセスを配置して設定します。運搬後は検査不合格品の廃棄小ブロックの加工「破棄」へ接続します。

置き場プロセス:(再掲)
プロセス名を「初期不良品置き場」へ変更

運搬(人)プロセス:
プロセス名を「運搬(人)」へ変更
後工程として検査不合格品の廃棄小ブロックの加工「破棄」へ接続

入庫ブロック

入荷し検品を通過した商品を分岐プロセスで仕分け、品目別に倉庫へ入庫します。下図のように運搬「ローラーコンベアー」の後工程としてお菓子、書籍、ゲームソフトのそれぞれを入庫するように分岐させ、分岐後は置き場→作業→置き場とプロセスを配置します。

分岐プロセス:
プロセス名を「品目別仕分」へ変更

分岐先として3つの置き場を設置:

置き場プロセス:
プロセス名を「お菓子一時置き場」へ変更

置き場プロセス:
プロセス名を「書籍一時置き場」へ変更

置き場プロセス:
プロセス名を「ゲームソフト一時置き場」へ変更

お菓子:

置き場プロセス:
プロセス名を「お菓子一時置き場」へ変更

作業プロセス:
プロセス名を「お菓子入庫」へ変更

置き場プロセス:
プロセス名を「お菓子倉庫」へ変更
出庫ブロックの組立「ピッキングと出庫」に接続

書籍:

置き場プロセス:
プロセス名を「書籍一時置き場」へ変更

作業プロセス:
プロセス名を「書籍入庫」へ変更

置き場プロセス:
プロセス名を「書籍倉庫」へ変更
出庫ブロックの組立「ピッキングと出庫」に接続

ゲームソフト:

置き場プロセス:
プロセス名を「ゲームソフト一時置き場」へ変更

作業プロセス:
プロセス名を「ゲームソフト入庫」へ変更

置き場プロセス:
プロセス名を「ゲームソフト倉庫」へ変更
出庫ブロックの組立「ピッキングと出庫」に接続

出庫(ピッキング)とピッキング後の検査ブロック

下図のように置き場「お菓子倉庫」、置き場「書籍倉庫」、置き場「ゲームソフト倉庫」の3つの置き場から接続する形で、組立→置き場→検品の順でプロセスを配置します。その後、分岐プロセスを配置してピッキング検査合格品処理小ブロックとピッキング検査不合格品処理小ブロックに分岐させます。

組立プロセス:
プロセス名を「ピッキングと出庫」へ変更

置き場プロセス:
プロセス名を「ピッキング後置き場」へ変更

検品プロセス:
プロセス名を「ピッキング検査」へ変更

分岐プロセス:
プロセス名を「ピッキングミスチェック」へ変更

分岐先として2つの置き場を設置:

置き場プロセス:
プロセス名を「ピッキング検査後置き場」へ変更
ピッキング検査合格品処理小ブロックへ

置き場プロセス:
プロセス名を「ピッキングミス置き場」へ変更
ピッキング検査不合格品処理小ブロックへ

ピッキング検査合格品処理小ブロック

検品「ピッキングミスチェック」でピッキングミスの検査を行った後、改めて商品の検査を行い検査結果で分岐するところまで下図のように置き場→検品→分岐の順にプロセスを配置します。

置き場プロセス:
プロセス名を「ピッキング検査後置き場」へ変更

検品プロセス:
プロセス名を「商品検査」へ変更

分岐プロセス:
プロセス名を「不良品取り分け」へ変更

分岐先として2つの置き場を設置:

置き場プロセス:
プロセス名を「検査済商品置き場」へ変更
検査合格品の梱包小ブロックへ

置き場プロセス:
プロセス名を「不良品置き場」へ変更
検査不合格品の廃棄小ブロックへ

ピッキング検査不合格品処理小ブロック

ピッキングの検査で不合格だったものを分解プロセスを用いて商品に戻したうえで上流側(ピッキングと出庫)まで還流させるため、下図のように分岐「ピッキングミスチェック」の後工程に置き場→分解→分岐の順でプロセス(図中下段)を配置します。

置き場プロセス:
プロセス名を「ピッキングミス置き場」へ変更

分解プロセス:
プロセス名を「カラコン分解」へ変更

分岐プロセス:
特に変更なし

既プロセスへ接続を使って組立「ピッキングと出庫」へ接続することで、上流側へ品目が還流されます。今回は還流単独での利用ですが、通常の分岐条件と混在させることも可能です。

出荷ブロック

検査合格品の梱包小ブロック

下図のように検品「商品検査」に合格した商品を梱包した上で、バンニングし方向別に仕分けて出荷するため、分岐「不良品取り分」けから分岐して、置き場→運搬(人)→組立→置き場→組立→置き場→分岐→(3方向に分岐)→置き場→運搬→出荷の順にプロセスを配置します(図中上段)。今回の記事では時間別に出荷方向を分岐するように設定を行います。

置き場プロセス:(再掲)
プロセス名を「検査済商品置き場」へ変更

運搬(人):
特に変更なし

組立プロセス:
プロセス名を「梱包とラベリング」へ変更

置き場プロセス:
プロセス名を「梱包済商品置き場」へ変更

組立プロセス:
プロセス名を「バンニング」へ変更

置き場プロセス:
プロセス名を「出荷用パレット置き場」へ変更

分岐プロセス:
プロセス名を「方向別仕分け」へ変更

分岐先として3つの置き場を設置:

置き場プロセス:
プロセス名を「X郵便局向け置き場」へ変更

置き場プロセス:
プロセス名を「Y運送会社向け置き場」へ変更

置き場プロセス:
プロセス名を「Z運送会社向け置き場」へ変更

出荷小ブロック

下図のように分岐「方向別仕分け」から3方向に分かれた出荷ブロックを配置します。それぞれ置き場→ローラーコンベアー→出荷の順にプロセスを配置します。

X郵便局向け:

置き場プロセス:
プロセス名を「X郵便局向け置き場」へ変更

ローラーコンベアー:
特に変更なし

出荷プロセス:
プロセス名を「X運送会社向け出荷」へ変更

Y運送会社向け:

置き場プロセス:
プロセス名を「Y運送会社向け置き場」へ変更

ローラーコンベアー:
特に変更なし

出荷プロセス:
プロセス名を「Y運送会社向け出荷」へ変更

Z運送会社向け:

置き場プロセス:
プロセス名を「Z運送会社向け置き場」へ変更

ローラーコンベアー:
特に変更なし

出荷プロセス:
プロセス名を「Z運送会社向け出荷」へ変更

検査不合格品の廃棄小ブロック

下図のように検査の不合格品の廃棄のために、分岐「不良品取り分け」から分岐し、置き場→加工→(合流)→加工(破棄)→出荷(廃棄)の順にプロセスを配置して設定します。

置き場プロセス:
プロセス名を「不良品置き場」へ変更

加工プロセス:
プロセス名を「カラコン分解」へ変更

合流プロセス:*合流プロセスのカードは表示されません。
検査不合格品処理小ブロックの「運搬(人)」から「既プロセスへ接続」を使って「破棄」へ接続

加工プロセス:
プロセス名を「破棄」へ変更

置き場プロセス:
プロセス名を「廃棄品置き場」へ変更

ローラーコンベア―:
特に変更なし

出荷プロセス:
プロセス名を「廃棄」へ変更

STEP2パラメーター設定

完成したプロセス図は以下の通りになります。

入荷ブロック

上流側からパラメーターの設定を行います。

001入荷:
入荷品目を以下の3つ設定

1つ目:
 品目「入荷パレット(お菓子)」、個数「10個」、発生間隔「60分」と設定
2つ目:
 品目「入荷パレット(書籍)」、個数「10個」、発生間隔「60分」と設定
3つ目:
 品目「入荷パレット(ゲームソフト)」、個数「10個」、発生間隔「60分」と設定

002到着品置き場:
容量を「1000個」へ設定

003デバンニング:
対象品目と出力品目を以下のように3つずつ設定

対象品目1つ目:
品目「入荷パレット(お菓子)」、個数を「1個」と設定
対象品目2つ目:
品目「入荷パレット(書籍)」、個数を「1個」と設定
対象品目3つ目:
品目「入荷パレット(ゲームソフト)」、個数を「1個」と設定

出力品目1つ目:
品目「お菓子」、個数を「100個」と設定
出力品目2つ目:
品目「書籍」、個数を「50個」と設定
出力品目3つ目:
品目「ゲームソフト」、個数を「10個」と設定

下図のようにウィンドウ最大化から詳細設定に入り、作業員にチェックを入れ処理時間を「5分」、作業人数を「30人」と設定

004到着品検品:
下図のようにウィンドウ最大化から詳細設定に入り、作業員にチェックを入れ、不良品率を「1%」、処理時間を「1分」、作業人数を「50人」と設定

入荷検査ブロック

005不良品取分:
下図のようにウィンドウ最大化から詳細設定に入り、作業員にチェックを入れ、1人あたりの処理時間を「1分」、人数を「50人」と設定
以下のように分岐条件を設定

分岐条件1:
 対象品目:正常:お菓子
 送り先:検査済商品置き場
分岐条件2:
 対象品目:正常:書籍
 送り先:検査済商品置き場
分岐条件3:
 対象品目:正常:ゲームソフト
 送り先:検査済商品置き場
分岐条件4(設定していない品目の分岐処理):
 送り先:初期不良品置き場

006検品済商品置き場:
容量を「1000個」と設定

007ローラーコンベアー:
最大積荷個数を「100個」、搬送時間を「1分」と設定

050初期不良品置き場:
プロセス名を「初期不良品置き場」へ変更、容量を「1000個」と設定

051運搬(人):
最大運搬量を「10個」、運搬人数を「1人」、搬送時間を「5分」と設定

入庫ブロック

007ローラーコンベア―の後を設定して行きます。

008品目別仕分:
ウィンドウ最大化から詳細設定に入り、作業員にチェックを入れ、1人あたりの処理時間を「1分」、人数を「50人」と設定
以下のように分岐条件を設定

分岐条件1:
 対象品目:正常:お菓子
 送り先:009お菓子一時置き場
分岐条件2:
 対象品目:正常:書籍
 送り先:044書籍一時置き場
分岐条件3:
 対象品目:正常:ゲームソフト
 送り先:047ゲームソフト一時置き場

お菓子:

009お菓子一時置き場:
容量を「1000個」と設定

010お菓子入庫:
ウィンドウ最大化から詳細設定に入り、作業員にチェックを入れ、1人あたりの処理時間を「1分」、人数を「20人」、対象品目を「お菓子」、個数を「1個」と設定

011お菓子倉庫:
容量を「10000個」と設定

書籍:

044書籍一時置き場:
容量を「1000個」と設定

045書籍入庫:
ウィンドウ最大化から詳細設定に入り、作業員にチェックを入れ、1人あたりの処理時間を「1分」、人数を「20人」、対象品目を「書籍」、個数を「1個」と設定

046書籍倉庫:
容量を「10000個」と設定

ゲームソフト:

047ゲームソフト一時置き場:
容量を「1000個」と設定

048ゲームソフト入庫:
ウィンドウ最大化から詳細設定に入り、作業員にチェックを入れ、1人あたりの処理時間を「1分」、人数を「20人」、対象品目を「ゲームソフト」、個数を「1個」と設定

049ゲームソフト倉庫:
容量を「10000個」と設定

お菓子、書籍、ゲームソフトは出庫ブロックで設置する「012ピッキングと出庫」へ接続します。

出庫(ピッキング)とピッキング後の検査ブロック

012ピッキングと出庫:
下図のようにウィンドウ最大化から詳細設定に入り、作業員にチェックを入れ、1人あたりの処理時間を「10分」、人数を「30人」、対象品目と出力品目を3つずつ設定

対象品目1つ目:
 品目を「お菓子」、個数を「30個」と設定
対象品目2つ目:
 品目を「書籍」、個数を「15個」と設定
対象品目3つ目:
 品目を「ゲームソフト」、個数を「3個」と設定

出力品目1つ目:
 品目を「カラコンA」、個数を「1個」と設定
出力品目2つ目:
 品目を「カラコンB」、個数を「1個」と設定
出力品目3つ目:
 品目を「カラコンC」、個数を「1個」と設定

013ピッキング後置き場:
容量を「1000個」へ設定

014ピッキング検査:
ウィンドウ最大化から詳細設定に入り、不良品率を「10%」、作業員にチェックを入れ、1人あたりの処理時間を「1分」、人数を「20人」と設定

015ピッキングミスチェック:
ウィンドウ最大化から詳細設定に入り、作業員にチェックを入れ、1人あたりの処理時間を「1分」、人数を「20人」と設定
以下のように分岐条件を追加

分岐条件1:
 対象品目:正常:カラコンA
 送り先:ピッキング検査済置き場
分岐条件2:
 対象品目:正常:カラコンB
 送り先:ピッキング検査済置き場
分岐条件3:
 対象品目:正常:カラコンC
 送り先:ピッキング検査済置き場
分岐条件4(設定していない品目の分岐処理):
 送り先:ピッキングミス置き場

ピッキング検査合格品処理小ブロック

016ピッキング検査後置き場:
容量を「1000個」と設定

017商品検査:
ウィンドウ最大化から詳細設定に入り、不良品率を「1%」、作業員にチェックを入れ、1人あたりの処理時間を「1分」、人数を「20人」と設定

018不良品取分:
ウィンドウ最大化から詳細設定に入り、作業員にチェックを入れ、1人あたりの処理時間を「1分」、人数を「20人」と設定
以下のように分岐条件を追加

分岐条件1:
 対象品目:正常:カラコンA
 送り先:検査済商品置き場
分岐条件2:
 対象品目:正常:カラコンB
 送り先:検査済商品置き場
分岐条件3:
 対象品目:正常:カラコンC
 送り先:検査済商品置き場
分岐条件4(設定していない品目の分岐処理):
 送り先:不良品置き場

ピッキング検査不合格品処理小ブロック

041ピッキングミス置き場:
容量を「1000個」と設定

042カラコン分解:
ウィンドウ最大化から詳細設定に入り、作業員にチェックを入れ、1人あたりの処理時間を「10分」、人数を「5人」、対象品目と出力品目を3つずつ設定

対象品目1つ目:
 品目を「カラコンA」、個数を「1個」と設定
対象品目2つ目:
 品目を「カラコンB」、個数を「1個」と設定
対象品目3つ目:
 品目を「カラコンC」、個数を「1個」と設定

出力品目1つ目:
 品目を「お菓子」、個数を「30個」と設定
出力品目2つ目:
 品目を「書籍」、個数を「15個」と設定
出力品目3つ目:
 品目を「ゲームソフト」、個数を「9個」と設定

043分岐:
ウィンドウ最大化から詳細設定に入り、作業員にチェックを入れ、1人あたりの処理時間を「1分」、人数を「1人」と設定

出荷ブロック

検査合格品の梱包小ブロック

019検査済商品置き場:
容量を「1000個」と設定

020運搬(人):
最大積荷量「100個」、人数を「10人」、搬送時間を「5分」と設定

021梱包とラベリング:
ウィンドウ最大化から詳細設定に入り、作業員にチェックを入れ、1人あたりの処理時間を「1分」、人数を「20人」、対象品目3つと出力品目を設定

対象品目1つ目:
 品目を「カラコンA」、個数を「3個」と設定
対象品目2つ目:
 品目を「カラコンB」、個数を「3個」と設定
対象品目3つ目:
 品目を「カラコンC」、個数を「3個」と設定

出力品目1つ目:
 品目を「段ボールA」、個数を「1個」と設定
出力品目2つ目:
 品目を「段ボールB」、個数を「1個」と設定
出力品目3つ目:
 品目を「段ボールC」、個数を「1個」と設定

022梱包済商品置き場:
容量を「1000個」と設定

023バンニング:
ウィンドウ最大化から詳細設定に入り、作業員にチェックを入れ、1人あたりの処理時間を「5分」、人数を「20人」、対象品目3つと出力品目を設定

対象品目1つ目:
 品目を「段ボールA」、個数を「1個」と設定
対象品目2つ目:
 品目を「段ボールB」、個数を「1個」と設定
対象品目3つ目:
 品目を「段ボールC」、個数を「1個」と設定

出力品目1つ目:
 品目を「出荷用パレット」、個数を「1個」と設定

024出荷用パレット置き場:
容量を「1000個」と設定

025方向別仕分:
ウィンドウ最大化から詳細設定に入り、作業員にチェックを入れ、1人あたりの処理時間を「1分」、人数を「20人」と設定

分岐条件:
デフォルトのまま(ランダム設定)

出荷小ブロック

X郵便局向け:

026X郵便局向け置き場:
容量を「1000個」と設定

027ローラーコンベアー:
搬送時間を「1分」、最大積荷個数「10個」と設定

028出荷プロセス:
特に変更なし

Y運送会社向け:

029Y運送会社向け置き場:
容量を「1000個」と設定

030ローラーコンベアー:
搬送時間を「1分」、最大積荷個数「10個」と設定

031出荷プロセス:
特に変更なし

Z運送会社向け:

032Z運送会社向け置き場:
容量を「1000個」と設定

033ローラーコンベアー:
搬送時間を「1分」、最大積荷個数「10個」と設定

034出荷プロセス:特に変更なし

検査不合格品の廃棄小ブロック

035不良品置き場:
容量を「1000個」と設定

036カラコン分解:
ウィンドウ最大化から詳細設定に入り、作業員にチェックを入れ、1人あたりの処理時間を「1分」、人数を「10人」、対象品目と出力品目を3つずつ設定

対象品目1つ目:
 品目を「カラコンA」、個数を「1個」と設定
対象品目2つ目:
 品目を「カラコンB」、個数を「1個」と設定
対象品目3つ目:
 品目を「カラコンC」、個数を「1個」と設定

出力品目1つ目:
 品目を「お菓子」、個数を「30個」と設定
出力品目2つ目:
 品目を「書籍」、個数を「15個」と設定
出力品目3つ目:
 品目を「ゲームソフト」、個数を「3個」と設定

037破棄:
ウィンドウ最大化から詳細設定に入り、作業員にチェックを入れ、1人あたりの処理時間を「1分」、人数を「10人」、対象品目3つと出力品目を設定

対象品目1つ目:
 品目を「お菓子」、個数を「1個」と設定
対象品目2つ目:
 品目を「書籍」、個数を「1個」と設定
対象品目3つ目:
 品目を「ゲームソフト」、個数を「1個」と設定
出力品目:
 品目を「廃棄品」、個数を「3個」と設定

038廃棄品置き場:
容量を「1000個」と設定

039ローラーコンベアー:
搬送時間を「5分」、最大積荷個数「10個」と設定

040出荷プロセス:
特に変更なし

シミュレーション結果

上記のモデルを作成した後、シミュレーション実行時間を360分に設定してシミュレーションを実行すると以下の様なダッシュボード画面が表示されます。

左下のサマリーからグラフを選択するとグラフが表示されます。今回は「累積生産推移」、「生産推移」、「背生産数」、「ライン別生産数」を選択すると、以下の画面が表示されます。今回のモデルでは不良品やピッキングミスの発生にランダム変数を使っているため、シミュレーション結果は下図と完全に一致しないことがあります。

今回は3か所の出荷を用意しましたが、360分のシミュレーション時間のうち、出荷先をランダムに割り振っています。個別に確認してみましょう。

Y運送会社向けが他と比べてやや少なくなっていますが、これは出荷数が少ないこととランダムに振り分けが行われていることを考えると、変動の範囲内です。

まとめ

4回にわたって物流業界でよく利用される倉庫のモデル作成の解説を行いました。このようにassimeeでは業務プロセスのモデルを簡単に作成することが可能です。