セントラルキッチンのモデル作成の解説

ー概要ー

最近ではコンビニやスーパーで売られている食品の加工を物流倉庫と一体化したセントラルキッチンで行い、各地の店舗へ配送するケースが増加しています。今回の記事ではこのようなPDC型物流倉庫内に設置された食品工場を想定したモデルを作成します。

モデルの作成ー

物流倉庫としてはPDCに相当するので、入荷→加工→入庫→出庫→出荷の5段階のプロセスが基本となります。今回は倉庫内で食品の下処理と調理、チルド加工と入庫、ピッキングによる出庫、バンニングと出荷を考える他、複数の食材(人参、玉葱、じゃが芋、牛肉、調味料)から、製品としてカレーと野菜炒め、肉じゃがを調理し、コンビニ、スーパー、レストランと複数の店舗へ向けた出荷を行うモデルを作成します。今回のモデルは非常に大きくなるため、以下の5つのブロックに分けてプロセスの設置と設定の解説を行います。
・入荷ブロック
・下処理ブロック
・調理と入庫ブロック
・出庫ブロック
・出荷ブロック

入荷ブロック

入荷ブロックは入荷→置き場→検品→分岐のプロセスからなり、以下のように配置し設定します。

入荷プロセス:
詳細設定より入荷するパーツを5つ追加、
名称「人参」、個数「10個」、発生間隔「1分」、
名称「玉葱」、個数「10個」、発生間隔「1分」、
名称「じゃが芋」、個数「7個」、発生間隔「1分」、
名称「牛肉」、個数「10個」、発生間隔「1分」、
名称「調味料」、個数「1個」、発生間隔「1分」

置き場プロセス:
プロセス名称を「入荷品置き場」へ変更、容量を「1000個」と設定

検品プロセス:
プロセス名称を「検収」へ変更、不良品率を「1%」、処理時間を「1分」、作業人数を「50人」と設定

分岐プロセス:
プロセス名称を「材料仕分け」へ変更、処理時間を「1分」、作業人数を「50人」と設定
分岐条件は下処理ブロックを配置後に設定

下処理ブロック

下処理ブロックは入荷ブロックの材料仕分けの後に配置し設定を行います。「廃棄物」、「人参」、「玉葱」、「牛肉」、「じゃが芋」、「調味料」の5つの小ブロックに分けて解説します。

廃棄物小ブロック

検収時の不合格品の廃棄を想定し、置き場→運搬(人)→出荷の各プロセスを配置します。

置き場プロセス:
プロセス名称を「廃棄物置き場」へ変更、容量を「1000個」と設定

運搬(人)プロセス:
容量を「10個」、運搬時間を「1分」、運搬人数を「10」人と設定

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

人参下処理小ブロック

人参の下処理を想定し、置き場→加工→運搬(人)→分岐→置き場の各プロセスを配置します。

置き場プロセス:
プロセス名称を「人参置き場」へ変更、容量を「1000個」と設定

作業プロセス:
プロセス名称を「人参下処理」へ変更、処理時間を「1分」、作業人数を「10人」と設定
詳細設定よりパーツごとの設定を開き、対象パーツ名を「人参」、個数を「100個」と設定

運搬(人)プロセス:
プロセス名称を「人参運搬」へ変更、容量を「150個」、運搬時間を「1分」、運搬人数を「10人」と設定

分岐プロセス:
プロセス名称を「料理別分岐」へ変更、処理時間を「1分」、作業人数を「10人」と設定、分岐条件は設定せず(行先はランダム)

置き場プロセス:
料理別になるように以下の3つの置き場を料理別分岐後に配置
1つ目:
・プロセス名称を「カレー用人参置き場」へ変更、容量を「1000個」と設定
2つ目:
・プロセス名称を「野菜炒め用人参置き場」へ変更、容量を「1000個」と設定
3つ目:
・プロセス名称を「肉じゃが用人参置き場」へ変更、容量を「1000個」と設定

玉葱下処理小ブロック

玉葱の下処理を想定し、置き場→加工→運搬(人)→分岐→置き場の各プロセスを配置します。

置き場プロセス:
プロセス名称を「玉葱置き場」へ変更、容量を「1000個」と設定

作業プロセス:
プロセス名称を「玉葱下処理」へ変更、処理時間を「1分」、作業人数を「10人」と設定
詳細設定よりパーツごとの設定を開き、対象パーツ名を「玉葱」、個数を「100個」と設定

運搬(人)プロセス:
プロセス名称を「玉葱運搬」へ変更、容量を「150個」、運搬時間を「1分」、運搬人数を「10人」と設定

分岐プロセス:
プロセス名称を「料理別分岐」へ変更、処理時間を「1分」、作業人数を「10人」と設定、分岐条件は設定せず(行先はランダム)

置き場プロセス:
料理別になるように以下の3つの置き場を料理別分岐後に配置
1つ目:
・プロセス名称を「カレー用玉葱置き場」へ変更、容量を「1000個」と設定
2つ目:
・プロセス名称を「野菜炒め用玉葱置き場」へ変更、容量を「1000個」と設定
3つ目:
・プロセス名称を「肉じゃが用玉葱置き場」へ変更、容量を「1000個」と設定

じゃが芋下処理小ブロック

じゃが芋の下処理を想定し、置き場→加工→運搬(人)→分岐→置き場の各プロセスを配置します。

置き場プロセス:
プロセス名称を「じゃが芋置き場」へ変更、容量を「1000個」と設定

作業プロセス:
プロセス名称を「じゃが芋下処理」へ変更、処理時間を「1分」、作業人数を「10人」と設定
詳細設定よりパーツごとの設定を開き、対象パーツ名を「じゃが芋」、個数を「100個」と設定

運搬(人)プロセス:
プロセス名称を「じゃが芋運搬」へ変更、容量を「150個」、運搬時間を「1分」、運搬人数を「10人」と設定

分岐プロセス:
プロセス名称を「料理別分岐」へ変更、処理時間を「1分」、作業人数を「10人」と設定、分岐条件は設定せず(行先はランダム)

置き場プロセス:
料理別になるように以下の2つの置き場を料理別分岐後に配置(野菜炒めにはじゃが芋を使わないので2つ)
1つ目
・プロセス名称を「カレー用じゃが芋置き場」へ変更、容量を「1000個」と設定
2つ目
・プロセス名称を「肉じゃが用じゃが芋置き場」へ変更、容量を「1000個」と設定

牛肉下処理小ブロック

牛肉の下処理を想定し、置き場→加工→運搬(人)→分岐→置き場の各プロセスを配置します。

置き場プロセス:
プロセス名称を「牛肉置き場」へ変更、容量を「1000個」と設定

作業プロセス:
プロセス名称を「牛肉下処理」へ変更、処理時間を「1分」、作業人数を「10人」と設定
詳細設定よりパーツごとの設定を開き、対象パーツ名を「牛肉」、個数を「100個」と設定

運搬(人)プロセス:
プロセス名称を「牛肉運搬」へ変更、容量を「150個」、運搬時間を「1分」、運搬人数を「10人」と設定

分岐プロセス:
プロセス名称を「料理別分岐」へ変更、処理時間を「1分」、作業人数を「10人」と設定、分岐条件は設定せず(行先はランダム)

置き場プロセス:
料理別になるように以下の3つの置き場を料理別分岐後に配置
1つ目
・プロセス名称を「カレー用牛肉置き場」へ変更、容量を「1000個」と設定
2つ目
・プロセス名称を「野菜炒め用牛肉置き場」へ変更、容量を「1000個」と設定
3つ目
・プロセス名称を「肉じゃが用牛肉置き場」へ変更、容量を「1000個」と設定

調味料準備小ブロック

調味料の準備を想定し、置き場→加工→運搬(人)→分岐→置き場の各プロセスを配置します。

置き場プロセス:
プロセス名称を「調味料置き場」へ変更、容量を「1000個」と設定

作業プロセス:
プロセス名称を「調味料調合」へ変更、処理時間を「1分」、作業人数を「10人」と設定
詳細設定よりパーツごとの設定を開き、対象パーツ名を「調味料」、個数を「10個」と設定

運搬(人)プロセス:
プロセス名称を「調味料運搬」へ変更、容量を「15個」、運搬時間を「1分」、運搬人数を「10人」と設定

分岐プロセス:
プロセス名称を「料理別分岐」へ変更、処理時間を「1分」、作業人数を「10人」と設定、分岐条件は設定せず(行先はランダム)

置き場プロセス:
料理別になるように以下の3つの置き場を料理別分岐後に配置
1つ目:
・プロセス名称を「カレー用調味料置き場」へ変更、容量を「1000個」と設定
2つ目:
・プロセス名称を「野菜炒め用調味料置き場」へ変更、容量を「1000個」と設定
3つ目:
・プロセス名称を「肉じゃが用調味料置き場」へ変更、容量を「1000個」と設定

調理と入庫ブロック

カレーと野菜炒め、肉じゃがの調理を行います。
下処理ブロックで用意した材料から調理を行い、検品と不良品の破棄、合格品のチルド加工と冷蔵倉庫への入庫までを想定し、組立→検品→分岐→合格品側:加工→置き場(入庫)、廃棄物側:置き場→運搬(ローラーコンベア)→出荷(破棄)のようにプロセスを配置し設定します。

カレー調理小ブロック

組立プロセス:
プロセス名称を「カレー調理」へ変更、処理時間を「1分」、作業人数を「10人」と設定、
・対象パーツを5つ設定
名称「人参」、個数「100個」
名称「玉葱」、個数「100個」
名称「じゃが芋」、個数「100個」
名称「牛肉」、個数「100個」
名称「調味料」、個数「10個」・出力パーツの名称を「カレー」、個数を「100個」と設定

検品プロセス:
プロセス名称を「カレー検品」へ変更、不良品率を「1%」、処理時間を「1分」、作業人数を「10人」と設定

分岐プロセス:
プロセス名称を「合格品カレー選別」へ変更、処理時間を「1分」、作業人数を「10人」と設定
分岐条件は最後に設定

加工プロセス:
プロセス名称を「カレーチルド加工」へ変更、処理時間を「1分」、作業人数を「10」人と設定、
・対象パーツ名称を「カレー」、個数を「1個」と設定、・出力パーツ名称を「カレー」、個数を「1個」と設定

置き場プロセス:
プロセス名称を「冷凍倉庫A」へ変更、容量を「1000個」と設定

(廃棄物側)置き場プロセス:
プロセス名称を「廃棄物置き場」へ変更、容量を「1000個」と設定

(廃棄物側)運搬(ローラーコンベア)プロセス:
容量を「10個」、処理時間を「1分」と設定

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

合格品カレー選別の分岐条件:
詳細画面の「分岐条件」右側のマークをクリックして編集画面を立ち上げ、2つの条件を追加
1つ目:
送り先「カレーチルド加工」、条件「パーツステータスが一致」、ステータス「正常」
2つ目:
送り先「廃棄物置き場」、条件「パーツステータスが一致」、ステータス「不良」

野菜炒め調理小ブロック

組立プロセス:
プロセス名称を「野菜炒め調理」へ変更、処理時間を「1分」、作業人数を「10人」と設定、
・対象パーツを4つ設定
名称「人参」、個数「100個」
名称「玉葱」、個数「100個」
名称「牛肉」、個数「100個」
名称「調味料」、個数「10個」・出力パーツの名称を「野菜炒め」、個数を「100個」と設定

検品プロセス:
プロセス名称を「野菜炒め検品」へ変更、不良品率を「1%」、処理時間を「1分」、作業人数を「10人」と設定

分岐プロセス:
プロセス名称を「合格品野菜炒め選別」へ変更、処理時間を「1分」、作業人数を「10人」と設定
分岐条件は最後に設定

加工プロセス:
プロセス名称を「野菜炒めチルド加工」へ変更、処理時間を「1分」、作業人数を「10人」と設定、
・対象パーツ名称を「野菜炒め」、個数を「1個」と設定、・出力パーツ名称を「野菜炒め」、個数を「1個」と設定

置き場プロセス:
プロセス名称を「冷凍倉庫B」へ変更、容量を「1000個」と設定

(廃棄物側)置き場プロセス:
プロセス名称を「廃棄物置き場」へ変更、容量を「1000個」と設定

(廃棄物側)運搬(ローラーコンベア)プロセス:
容量を「10個」、処理時間を「1分」と設定

(廃棄物側)出荷プロセス:
プロセス名を「廃棄」へ接続

合格品野菜炒め選別の分岐条件:
詳細画面の「分岐条件」右側のマークをクリックして編集画面を立ち上げ、2つの条件を追加
1つ目:
・送り先:「野菜炒めチルド加工」
・条件:「パーツステータスが一致」
・ステータス:「正常」
2つ目:
・送り先:「廃棄物置き場」
・条件:「パーツステータスが一致」
・ステータス:「不良」

肉じゃが小ブロック

組立プロセス:
プロセス名称を「肉じゃが調理」へ変更、処理時間を「1分」、作業人数を「10人」と設定、
・対象パーツを5つ設定
名称「人参」、個数「100個」
名称「玉葱」、個数「100個」
名称「じゃが芋」、個数「100個」
名称「牛肉」、個数「100個」
名称「調味料」、個数「10個」・出力パーツの名称を「肉じゃが」、個数を「100個」と設定

検品プロセス:
プロセス名称を「肉じゃが検品」へ変更、不良品率を「1%」、処理時間を「1分」、作業人数を「10人」と設定

分岐プロセス:
プロセス名称を「合格品肉じゃが選別」へ変更、処理時間を「1分」、作業人数を「10人」と設定
分岐条件は最後に設定

加工プロセス:
プロセス名称を「肉じゃがチルド加工」へ変更、処理時間を「1分」、作業人数を「10人」と設定、
・対象パーツ名称を「肉じゃが」、個数を「1個」と設定、・出力パーツ名称を「肉じゃが」、個数を「1個」と設定

置き場プロセス:
プロセス名称を「冷凍倉庫C」へ変更、容量を「1000個」と設定

(廃棄物側)置き場プロセス:
プロセス名称を「廃棄物置き場」へ変更、容量を「1000個」と設定

(廃棄物側)運搬(ローラーコンベア)プロセス:
容量を「10個」、処理時間を「1分」と設定

(廃棄物側)出荷プロセス:
プロセス名を「廃棄」へ接続

合格品肉じゃが選別の分岐条件:
詳細画面の「分岐条件」右側のマークをクリックして編集画面を立ち上げ、2つの条件を追加
1つ目:
送り先「肉じゃがチルド加工」、条件「パーツステータスが一致」、ステータス「正常」
2つ目:
送り先「廃棄物置き場」、条件「パーツステータスが一致」、ステータス「不良」

材料仕分けの分岐条件:
詳細画面の「分岐条件」右側のマークをクリックして編集画面を立ち上げ、2つの条件を追加
1つ目:
送り先「廃棄物置き場」、条件「パーツステータスが一致」、ステータス「不良」
2つ目:
送り先「人参置き場」、条件「パーツステータスが一致」、ステータス「正常」と条件「パーツ名が一致」、名称「人参」
3つ目:
送り先「玉葱置き場」、条件「パーツステータスが一致」、ステータス「正常」と条件「パーツ名が一致」、名称「玉葱」
4つ目:
送り先「じゃが芋置き場」、条件「パーツステータスが一致」、ステータス「正常」と条件「パーツ名が一致」、名称「じゃが芋」
5つ目:
送り先「牛肉置き場」、条件「パーツステータスが一致」、ステータス「正常」と条件「パーツ名が一致」、名称「牛肉」
6つ目:
送り先「調味料置き場」、条件「パーツステータスが一致」、ステータス「正常」と条件「パーツ名が一致」、名称「調味料」

出庫ブロック

冷凍倉庫からのピッキングとバンニング、方向別仕分けまでを考えて、合流→組立→置き場→組立→分岐の各プロセスを図のように配置し、設定します。

合流プロセス:*合流プロセスのカードは表示されません。
冷凍倉庫A、冷凍倉庫B、冷凍倉庫Cの各プロセスから組立プロセスへ接続

組立プロセス:
プロセス名称を「ピッキング」へ変更、処理時間を「1分」、作業人数を「20人」と設定、
対象パーツを3つ設定
1つ目:
・名称「カレー」、個数「100個」
2つ目:
・名称「野菜炒め」、個数「100個」
3つ目:
・名称「肉じゃが」、個数「100個」
出力パーツを3つ設定
1つ目:
・名称「食品セット1」、個数「100個」
2つ目:
・名称「食品セット2」、個数「100個」
3つ目:
・名称「食品セット3」、個数「100個」

置き場プロセス:
プロセス名称を「ピッキング済み食品置き場」へ変更、容量を「1000個」と設定

組立プロセス:
プロセス名称を「バンニング」へ変更、処理時間を「1分」、作業人数を「20人」と設定、
詳細設定からパーツごとの処理を3つ設定
1つ目:
・対象パーツの名称「食品セット1」、個数「25個」
・出力パーツの名称「Aコンビニ行きカラコン」、個数「1個」
2つ目:
・対象パーツの名称「食品セット2」、個数「25個」
・出力パーツの名称「Bスーパー行きカラコン」、個数「1個」
3つ目:
・対象パーツの名称「食品セット3」、個数「25個」
・出力パーツの名称「Cレストラン行きカラコン」、個数「1個」

分岐プロセス:
プロセス名称を「方向別仕分け」へ変更、処理時間を「1分」、作業人数を「10人」と設定
分岐条件は出荷ブロックの配置後に設定

出荷ブロック

出庫ブロックで配置した分岐プロセス以降に3つの行先(Aコンビニ、Bスーパー、Cレストラン)に分け、それぞれに置き場→運搬(ローラーコンベア)→出荷の順に配置します。

Aコンビニ向け

(Aコンビニ)置き場プロセス:
プロセス名称を「Aコンビニ行き置き場」へ変更、容量を「1000個」と設定

(Aコンビニ)運搬(ローラーコンベア)プロセス:
容量を「10個」、処理時間を「0.5分」と設定

(Aコンビニ)出荷プロセス:
プロセス名を「Aコンビニ向け出荷」へ変更

Bスーパー向け

(Bスーパー)置き場プロセス:
プロセス名称を「Bスーパー行き置き場」へ変更、容量を「1000個」と設定

(Bスーパー)運搬(ローラーコンベア)プロセス:
容量を「10個」、処理時間を「0.5分」と設定

(Bスーパー)出荷プロセス:
プロセス名を「Bスーパー向け出荷」へ変更

Cレストラン向け

(Cレストラン)置き場プロセス:
プロセス名称を「Cレストラン行き置き場」へ変更、容量を「1000個」と設定

(Cレストラン)運搬(ローラーコンベア)プロセス:
容量を「10個」、処理時間を「0.5分」と設定

(Cレストラン)出荷プロセス:
プロセス名を「Cレストラン向け出荷」へ変更

方向別仕分けの分岐条件:
詳細画面の「分岐条件」右側のマークをクリックして編集画面を立ち上げ、3つの置き場を送り先として以下の条件を追加

条件1:
・送り先:Aコンビニ行き置き場
・分岐条件:パーツ名が一致
・パーツ名:Aコンビニ行きカラコン
条件2:
・送り先:Bスーパー行き置き場
・分岐条件:パーツ名が一致
・パーツ名:Bスーパー行きカラコン
条件3:
・送り先:Cレストラン行き置き場
・分岐条件:パーツ名が一致
・パーツ名:Cレストラン行きカラコン

ーシミュレーションー

以上のプロセス配置と設定が終わったらモデルの保存を行いシミュレーションを行います。今回はシミュレーション時間を8時間にあたる480分に設定してみましょう。適切に設定できていれば、以下の様なシミュレーション結果が表示されます。*分岐や不良品発生にランダム変数が含まれるため毎回結果が異なり完全に一致はしません。
今回のモデルでは食材の運搬に掛かる時間を長めに設定したことや、まとまった数の食材を用いて調理を行う設定としたことから、シミュレーション開始から店舗に向けてコンテナが出荷されるまでの時間が長め(約90分)となっています。その他、食材が数が揃い調理が行われるタイミングには不良品や分岐に含まれるランダム変数が影響していることから360分から420分のビンに生産数の落ち込みが見えていますが、シミュレーションの度に落ち込みの位置が変わることを含めて想定通りの動きとなっています。

ーまとめー

今回の記事では食材の調理や加工を行う食品工場(セントラルキッチン)が設置されたPDC型物流倉庫を再現したモデルの作成について解説しました。複数の食品の調理を行うための分岐、材料や食材の検品による不良品の選別、出荷の行先別仕分けといった実際に工場や物流倉庫内で行われる様々なプロセスを再現した巨大なモデルを作り込みました。このようにassimeeではシミュレーションをPC上で手軽に行うことが可能となっています。

関連記事