複数段階の加工プロセスを含む生産計画の解説

ー概要ー

生産計画のシミュレーション解説の3回目となる今回の記事では、部品から半完成品を作り、その半完成品を仕上げて製品を生産する工場に対する生産計画をシミュレーションする方法について解説します。1段階目加工プロセスの生産結果を元に2段階目の加工プロセスの生産計画を決定する必要がありますが、このような場合こそ、デジタル上で試行錯誤の可能なシミュレーションの出番だと考えられます。

ーモデルー

今回使用するモデルは以下の図のようになります。2段階の加工プロセスを再現するほか、前回の記事のように複数ラインでの部品生産を想定したモデルとなっています。1段階目で部品から半完成品を生産し、2段階目で半完成品から製品を作ることを想定します。また、3品目の生産まで考えた生産計画を検討します。

このモデルでも前回と同様に、それぞれの加工プロセスの段取り替え時間は「60分」と考えます。

生産計画

モデルを作る前に生産計画を用意します。最終的には3品目を生産しますが、まず1品目目の製品の生産計画を検討します。今回の生産計画は2段階に分かれています。

1段階目

生産する製品:半完成品000
必要な部品:半完成品000用部品が1個
生産数:2000個
時間当たりの生産数:1段階目600個(平均処理時間0.1分)のラインを4並列で2400個
段取り替え時間(立ち上げ時間):60分

2段階目

生産する製品:製品000
必要な部品:半完成品000が1個
生産数:2000個
時間当たりの生産数:2段回目480個(1人当たり平均処理時間0.125分)のラインを3並列で1440個
段取り替え時間(立ち上げ時間):60分

この計画に応じてモデルを設定していきます。簡単のため不良品は発生しない前提とします。

モデルの作成

入荷プロセス:
プロセス名を「000部品出庫」へ変更、

生産計画を入荷データに設定:

生産計画のうち部品の入庫数は入荷プロセスに設定します。詳細設定から「入荷データを直接入力」を選び、以下の図のように「0分」に2000個の「半完成品000用部品」が入荷するように設定します。

これにより、0分の時点で2000個の「半完成品000用部品」がプロセスに入荷します。
*この設定は、他のプロセスの設定より先に行ってください。

置き場プロセス:
プロセス名を「001部品置き場」へ変更、容量を「10000個」と設定

分岐プロセス:
プロセス名を「002分岐」へ変更、処理時間を「0分」、作業人数を「1人」と設定
*処理時間を「0」とすることでパススルーとなります。

分岐条件:
ランダム設定(変更せず)

分岐先として4つのプロセスを設置:
分岐先として4つの加工プロセスを用意し、加工のライン4つを再現します。この時、出力にライン1など、付加名称を付けることで出荷の分析がやりやすくなります。

加工プロセス:
プロセス名を「301加工ライン1」へ変更、処理時間を「0.05分」、作業人数を「1人」と設定、
対象パーツ名称を「製品000用部品」、個数を「1個」、
出力パーツ名称を「半完成品000」、個数を「1個」と設定
詳細設定より以下の図のように段取り替え時間を「60分」、段取り替えグループの効率を「1」、人数を「1人」を下図のように設定

加工プロセス:
プロセス名を「302加工ライン2」へ変更、処理時間を「0.1分」、作業人数を「1人」と設定、
対象パーツ名称を「製品000用部品」、個数を「1個」、
出力パーツ名称を「半完成品000」、個数を「1個」と設定
詳細設定より「301加工ライン1」と同様に段取り替え時間を「60分」、段取り替えグループの効率を「1」、人数を「1人」と設定

加工プロセス:
プロセス名を「303加工ライン3」へ変更、処理時間を「0.1分」、作業人数を「1人」と設定、
対象パーツ名称を「製品000用部品」、個数を「1個」、
出力パーツ名称を「半完成品000」、個数を「1個」と設定
詳細設定より「301加工ライン1」と同様に段取り替え時間を「60分」、段取り替えグループの効率を「1」、人数を「1人」と設定

加工プロセス:
プロセス名を「304加工ライン4」へ変更、処理時間を「0.15分」、作業人数を「1人」と設定、
対象パーツ名称を「製品000用部品」、個数を「1個」、
出力パーツ名称を「半完成品000」、個数を「1個」と設定
詳細設定より「301加工ライン1」と同様に段取り替え時間を「60分」、段取り替えグループの効率を「1」、人数を「1人」と設定

分岐プロセス:
プロセス名を「005分岐」へ変更、処理時間を「0分」、作業人数を「1人」と設定
*処理時間を「0」とすることでパススルーとなります。
301から304の4つの加工プロセスから出荷へ合流

分岐条件:
ランダム設定(変更せず)

分岐先として3つのプロセスを設置:
分岐先として3つの加工プロセスを用意します。この場合も名称にライン1など、付加名称を付けることで出荷の分析がやりやすくなります。また、これら3つの加工プロセスの段取り替え時間は「0分」に設定します。これは、今回は「301加工(1段階目)ライン1」などに1個目の「製品000用部品」が入荷した際に段取り替えの時間が取られており、この時間で「601組立(2段階目)ライン1」も段取り替えを行ったと看做すためです。*仮に「601組立(2段階目)ライン1」に入荷してから段取り替えをしてしまうと、assimeeの仕様により1つ目のアイテムが入力されるのはシミュレーション開始から60分後ですが、出力されるのは段取り替えを加えると120分後となります。

加工プロセス:
プロセス名を「601加工(2段階目)ライン1」へ変更、処理時間を「0.5分」、作業人数を「4人」と設定、
対象パーツ名称を「半完成品000」、個数を「1個」、
出力パーツ名称を「製品000」、個数を「1個」と設定
詳細設定より「301加工ライン1」と同様ですが、段取り替え時間を「0分」、段取り替えグループの効率を「0」、人数を「0人」を下図のように設定(何も設定しないと0になります。)

加工プロセス:
プロセス名を「602加工(2段階目)ライン2」へ変更、処理時間を「0.5分」、作業人数を「4人」と設定、
対象パーツ名称を「半完成品000」、個数を「1個」、
出力パーツ名称を「製品000」、個数を「1個」と設定
詳細設定より「601加工ライン1」と同様に、段取り替え時間を「0分」、段取り替えグループの効率を「1」、人数を「1人」と設定

加工プロセス:
プロセス名を「603加工(2段階目)ライン3」へ変更、処理時間を「0.5分」、作業人数を「4人」と設定、
対象パーツ名称を「半完成品000」、個数を「1個」、
出力パーツ名称を「製品000」、個数を「1個」と設定
詳細設定より「601加工ライン1」と同様に、段取り替え時間を「0分」、段取り替えグループの効率を「1」、人数を「1人」と設定

出荷プロセス:
プロセス名を「007出荷」へ変更、
601から603の3つの加工プロセスから出荷へ合流

ーシミュレーションー

モデルが完成したら、シミュレーション時間の時間窓を「10分」に変更し、名前を付けて保存を行います。その後、シミュレーションタブに移動し、シミュレーション実行時間を「480分」(6時間)に設定して「シミュレーションを実行」ボタンを押します。設定に問題がなければ、以下のようなグラフが表示されます。
*表示されない場合は設定を見直してください。

また、モデルの「301加工(1段階目)ライン1」や「601加工(2段階目)ライン1」のアイテム数推移を見てみましょう。

このシミュレーションでは1段階目の加工プロセスが約105分で終了し、2段階目の加工プロセスが約145分で終了することが分かります。

ー製品2品目目の追加ー

モデルを複製し、編集モードで、設定を変更して行きます。(モデル名はそのままでも問題はありませんが、区別がつくように変更してください。)

モデルに適用する生産計画は下記の通り2品目目を追加します。シミュレーションの結果から105分で1段階目の加工プロセスの手が空くので、シミュレーション開始から110分に次の部品を入荷すれば、170分に段取り替えが終了し次の生産が始まることが分かります。また、170分後には2段階目の加工プロセスの生産も終わっているので、混入がないことも分かります。よって110分に次の部品を入荷してみましょう。

生産計画と入荷データの設定

1段階目

生産する製品:半完成品000
必要な部品:半完成品000用部品が1個
生産数:2000個
時間当たりの生産数:1段階目600個(平均処理時間0.1分)のラインを4並列で2400個
段取り替え時間(立ち上げ時間):60分

生産する製品:半完成品111
必要な部品:半完成品111用部品が1個
生産数:1000個
時間当たりの生産数:1段階目600個(平均処理時間0.1分)のラインを4並列で2400個
段取り替え時間(立ち上げ時間):60分

2段階目

生産する製品:製品000
必要な部品:半完成品000が1個
生産数:2000個
時間当たりの生産数:2段回目480個(1人当たり平均処理時間0.125分)のラインを3並列で1440個
段取り替え時間(立ち上げ時間):60分

生産する製品:製品111
必要な部品:半完成品111が1個
生産数:1000個
時間当たりの生産数:2段回目480個(1人当たり平均処理時間0.125分)のラインを3並列で1440個
段取り替え時間(立ち上げ時間):60分

次に、入荷数を変更します。今回は60分で割り切れない時間の為、直接入力ではなくCSVファイルを使って設定します。以下のCSVファイルを作成し、

time,name,count
0,製品000用部品,2000
110,製品111用部品,1000

入荷プロセスの「入荷データをCSVでインポート」をクリックすると以下の画面が立ち上がるので、ファイルを読み込ませます。読み込みが終了するとインポート済みと表示されます。

前後しますが、シミュレーションを行うと以下の図のように110分に2品目目の「製品111用部品」が入荷されていることが分かります。

1段階目の加工のプロセスの設定

次に1段階目の加工プロセスに設定を追加して行きます。

加工プロセス「301加工(1段階目)ライン1」:
下図のように詳細設定よりパーツごとの設定を「+」ボタンで追加し、
対象パーツ名称を「製品111用部品」、個数を「1個」、
出力パーツ名称を「半完成品111」、個数を「1個」を追加
処理時間、作業人数、段取り替え時間、段取り替えグループの効率、人数は1品目目と同じ値のため、特に入力しません。*1品目目の値が共通設定として使用されます。

加工プロセス「302加工(1段階目)ライン2」:
詳細設定よりパーツごとの設定を追加し、
対象パーツ名称を「製品111用部品」、個数を「1個」、
出力パーツ名称を「半完成品111」、個数を「1個」を追加
処理時間、作業人数、段取り替え時間、段取り替えグループの効率、人数は1品目目と同じ値のため、特に入力しません。

加工プロセス「303加工(1段階目)ライン3」:
詳細設定よりパーツごとの設定を追加し、
対象パーツ名称を「製品111用部品」、個数を「1個」、
出力パーツ名称を「半完成品111」、個数を「1個」を追加
処理時間、作業人数、段取り替え時間、段取り替えグループの効率、人数は1品目目と同じ値のため、特に入力しません。

加工プロセス「304加工(1段階目)ライン4」:
詳細設定よりパーツごとの設定を追加し、
対象パーツ名称を「製品111用部品」、個数を「1個」、
出力パーツ名称を「半完成品111」、個数を「1個」を追加
処理時間、作業人数、段取り替え時間、段取り替えグループの効率、人数は1品目目と同じ値のため、特に入力しません。

2段階目の加工のプロセスの設定

次に2段階目の加工プロセスの設定を追加します。
*1品目目の時は段取り替えを1段階目と2段階目の加工で同時に行うと看做したため、「601加工(2段階目)ライン1」など加工プロセスには段取り替え時間を入力しませんでしたが、2品目目では段取り替えが必要なので、「60分」を設定します。

加工プロセス「601加工(2段階目)ライン1」:
詳細設定より、
対象パーツ名称を「半完成品111」、個数を「1個」、
出力パーツ名称を「製品111」、個数を「1個」を追加、
詳細設定よりパーツごとの設定を追加し下図のように、段取り替え時間を「60分」、段取り替えグループの効率を「1」、人数を「1人」と設定 
このように、追加した設定に個別に値を設定すると共通設定(1品目目の設定)を上書きします。
処理時間、作業人数は1品目目と同じ値のため、特に入力しません。*1品目目の値が共通設定として使用されます。

加工プロセス「602加工(2段階目)ライン2」:
詳細設定よりパーツごとの設定を追加し、
対象パーツ名称を「半完成品111」、個数を「1個」、
出力パーツ名称を「製品111」、個数を「1個」を追加
段取り替え時間を「60分」、段取り替えグループの効率を「1」、人数を「1人」と設定 
このように、追加した設定に個別に値を設定すると共通設定(1品目目の設定)を上書きします。
処理時間、作業人数は1品目目と同じ値のため、特に入力しません。

加工プロセス「603加工(2段階目)ライン3」:
詳細設定よりパーツごとの設定を追加し、
対象パーツ名称を「半完成品111」、個数を「1個」、
出力パーツ名称を「製品111」、個数を「1個」を追加
段取り替え時間を「60分」、段取り替えグループの効率を「1」、人数を「1人」と設定 
このように、追加した設定に個別に値を設定すると共通設定(1品目目の設定)を上書きします。
処理時間、作業人数は1品目目と同じ値のため、特に入力しません。

ー2品目目追加後のシミュレーションー

モデルの設定が終了したら、シミュレーションタブに移動し、シミュレーション実行時間を「480分」(6時間)に設定して「シミュレーションを実行」ボタンを押します。設定に問題がなければ、以下のようなグラフが表示されます。*表示されない場合は設定を見直してください。

今回も同様にモデルの「301加工(1段階目)ライン1」や「601加工(2段階目)ライン1」のアイテム数推移を見てみましょう。

このシミュレーションでは1段階目の加工プロセスが約192分で終了し、2段階目の加工プロセスが約273分で終了することが分かります。

ー製品3品目目の追加ー

2品目目と同様に3品目目を追加してみましょう。再度モデルを複製し、編集モードで、設定を変更して行きます。
モデルに適用する生産計画は下記の通り3品目目を追加します。シミュレーションの結果から192分で1段階目の加工プロセスの手が空くので、シミュレーション開始から200分に次の部品を入荷すれば、1段階目は260分に段取り替えが終了し次の生産が始まることが分かります。しかし、2段階目の加工プロセスの2品目目の生産が終わるのは273分の時点なので、このまま、200分に3品目目の生産を始めると2段階目の加工プロセスの入力に2品目目と3品目目の混入が生じてしまうことが分かります。混入が生じるとシミュレーションで段取り替えが複数回発生し、生産がマヒしてしまいます。よって220分に次の部品を入荷することにしてみましょう。この場合、280分に1段階目の3品目目の生産が始まるので、混入を回避することが出来ます。

生産計画と入荷データの設定

生産する製品:製品000
必要な部品:製品000用部品が1個
生産数:2000個
時間当たりの生産数:600個(処理時間0.1分)
段取り替え時間(立ち上げ時間):60分

生産する製品:製品111
必要な部品:製品111用部品が1個
生産数:1000個
時間当たりの生産数:600個(処理時間0.1分)
段取り替え時間(立ち上げ時間):60分

生産する製品:製品222
必要な部品:製品222用部品が1個
生産数:1200個
時間当たりの生産数:600個(処理時間0.1分)
段取り替え時間(立ち上げ時間):60分

次に、入荷数を変更します。以下のCSVファイルを作成し、入荷プロセスの「入荷データをCSVでインポート」をクリックして読み込みます。最新のファイルが上書きされて使用されます。

time,name,count
0,製品000用部品,2000
110,製品111用部品,1000
220,製品222用部品,1200

前後しますが、シミュレーションを行うと以下の図のように220分に3品目目の「製品222用部品」が入荷されていることが分かります。

1段階目の加工のプロセスの設定

次に1段階目の加工プロセスに設定を追加して行きます。

加工プロセス「301加工(1段階目)ライン1」:
詳細設定よりパーツごとの設定を追加し、
対象パーツ名称を「製品222用部品」、個数を「1個」、
出力パーツ名称を「半完成品222」、個数を「1個」を追加
処理時間、作業人数、段取り替え時間、段取り替えグループの効率、人数は1品目目と同じ値のため、特に入力しません。*1品目目の値が共通設定として使用されます。

加工プロセス「302加工(1段階目)ライン2」:
詳細設定よりパーツごとの設定を追加し、
対象パーツ名称を「製品222用部品」、個数を「1個」、
出力パーツ名称を「半完成品222」、個数を「1個」を追加
処理時間、作業人数、段取り替え時間、段取り替えグループの効率、人数は1品目目と同じ値のため、特に入力しません。

加工プロセス「303加工(1段階目)ライン3」:
詳細設定よりパーツごとの設定を追加し、
対象パーツ名称を「製品222用部品」、個数を「1個」、
出力パーツ名称を「半完成品222」、個数を「1個」を追加
処理時間、作業人数、段取り替え時間、段取り替えグループの効率、人数は1品目目と同じ値のため、特に入力しません。

加工プロセス「304加工(1段階目)ライン4」:
詳細設定よりパーツごとの設定を追加し、
対象パーツ名称を「製品222用部品」、個数を「1個」、
出力パーツ名称を「半完成品222」、個数を「1個」を追加
処理時間、作業人数、段取り替え時間、段取り替えグループの効率、人数は1品目目と同じ値のため、特に入力しません。

2段階目の加工のプロセスの設定

次に2段階目の加工プロセスの設定を追加します。
*1品目目の時は段取り替えを1段階目と2段階目の加工で同時に行うと看做したため、「601加工(2段階目)ライン1」など加工プロセスには段取り替え時間を入力しませんでしたが、2品目目では段取り替えが必要なので、「60分」を設定します。

加工プロセス「601加工(2段階目)ライン1」:
処理時間を「1分」へ変更、
詳細設定よりパーツごとの設定を追加し、
対象パーツ名称を「半完成品222」、個数を「1個」、
出力パーツ名称を「製品222」、個数を「1個」を追加、
段取り替え時間を「60分」、段取り替えグループの効率を「1」、人数を「1人」と設定 
このように、追加した設定に個別に値を設定すると共通設定(1品目目の設定)を上書きします。
処理時間、作業人数は1品目目と同じ値のため、特に入力しません。*1品目目の値が共通設定として使用されます。

加工プロセス「602加工(2段階目)ライン2」:
処理時間を「1分」へ変更、
詳細設定よりパーツごとの設定を追加し、
対象パーツ名称を「半完成品222」、個数を「1個」、
出力パーツ名称を「製品222」、個数を「1個」を追加
段取り替え時間を「60分」、段取り替えグループの効率を「1」、人数を「1人」と設定 
作業人数は1品目目と同じ値のため、特に入力しません。

加工プロセス「603加工(2段階目)ライン3」:
処理時間を「1分」へ変更、
詳細設定よりパーツごとの設定を追加し、
対象パーツ名称を「半完成品222」、個数を「1個」、
出力パーツ名称を「製品222」、個数を「1個」を追加
段取り替え時間を「60分」、段取り替えグループの効率を「1」、人数を「1人」と設定 
作業人数は1品目目と同じ値のため、特に入力しません。

ー3品目目追加後のシミュレーションー

モデルの設定が終了したら、シミュレーションタブに移動し、シミュレーション実行時間を「480分」(6時間)に設定して「シミュレーションを実行」ボタンを押します。設定に問題がなければ、以下のようなグラフが表示されます。*表示されない場合は設定を見直してください。

3品目目は2段階目の加工プロセスの処理時間が他より長いので生産数が少なくなっており、生産に時間がかかっていることが分かります。今回もモデルの「301加工(1段階目)ライン1」や「601加工(2段階目)ライン1」のアイテム数推移を見てみましょう。

このシミュレーションでは1段階目の加工プロセスが約306分で終了し、2段階目の加工プロセスが約441分で終了すること、2段回目の加工プロセスのアイテム数(出力アイテム数)の傾きが小さいことが分かります。
この生産計画の場合、1段階目の加工プロセスと2段階目の加工プロセスの処理時間に差があるため、2段階目の加工待ちが発生し、1段階目の加工プロセスが停止する時間が長くなってしまっています。この、停止時間の長さが、生産効率を上げるためのボトルネックになっており、生産効率の改善のためには2段階目の加工を改善を行う必要があることも分析から分かります。

ーまとめー

今回は複数の生産ラインと複数回の加工プロセスが含まれる場合の生産計画の検討の方法について解説しました。生産効率や作業人数、段取り時間の異なる複雑な生産ラインでも、assimeeを使うことで簡単にモデルを作ることができ、シミュレーションによる生産計画の検討や、生産ラインのボトルネックの発見などが出来ます。

関連記事