(58)【調査した分野】(Int.Cl.,DB名)
複数種類のジョブをそれぞれ複数工程のうち所定の順序で所定の通過工程において処理して前記複数種類の製品を製造する生産ラインにおいて、前記通過工程において前記ジョブを処理する処理条件が同一である1以上のジョブをロットとしてまとめて前記通過工程において連続して処理する際に、前記ロットに含まれる前記ジョブの処理を開始するか否かを判定するシミュレーションを実行するシミュレーション装置であって、
前記複数種類のジョブと、前記複数種類のジョブごとの前記通過工程と、前記通過工程において前記複数種類のジョブをそれぞれ処理する際の処理条件の種類と、を予め記憶している計画対象データ記憶部と、
前記通過工程における前記処理条件の種類と、前記処理条件の種類ごとに予め設定された、前記ロットを構成するジョブが揃ったと判定される最小個数と、前記処理条件の種類ごとに予め設定された、前記通過工程に前記ロットを構成する最初のジョブが到着してから前記ジョブが処理されずに待つことができる最大待ち時間と、を含むロット条件を前記通過工程ごとに予め記憶しているロット条件記憶部と、
前記計画対象データ記憶部に記憶されている前記複数種類のジョブ及び前記処理条件の種類と、前記ロット条件記憶部に記憶されている前記ロット条件に含まれる前記処理条件の種類とを用いて、前記処理条件の種類ごとに、前記ロットを構成するロット候補として前記複数種類のジョブを分類するジョブ分類部と、
前記シミュレーションを実行する時刻であるシミュレーション時刻を設定するシミュレーション時刻設定部と、
前記通過工程ごとに、前記シミュレーション時刻において処理が開始されていない前記ジョブについて、全ての前記通過工程における処理の待ち時間が無いと仮定した場合において前記通過工程に前記ジョブが到着する予定の時刻である最早到着時刻を算出する最早到着時刻計算部と、
前記シミュレーション時刻において処理が開始されていない前記ロットについて、前記ロットごとに、前記最早到着時刻と前記ロット条件に含まれる前記最小個数とを用いて、前記ロット候補に分類された前記ジョブが前記最小個数揃う最も早い時刻である最早ロット完成時刻を算出する最早ロット完成時刻計算部と、
前記シミュレーション時刻において処理が開始されていない前記ロットについて、前記ロットごとに、前記ロット候補に分類された最初の前記ジョブが前記通過工程に到着した時刻と、前記ロット条件記憶部に記憶されている前記ロット条件に含まれる前記最大待ち時間とを用いて、前記最初のジョブが待つことのできる最も遅い時刻であるロット待ち限界時刻を算出するロット待ち限界時刻計算部と、
前記シミュレーション時刻において処理が開始されていない前記ロットについて、前記ロットごとに、最早ロット開始時刻を算出する最早ロット開始時刻計算部と、
前記シミュレーション時刻において処理が開始されていない前記ロットについて、前記ロットごとに、前記ロット候補に分類された前記ジョブの処理を開始するか否かを判定するロット処理判定部と、
を備え、
前記最早ロット開始時刻計算部は、前記最早ロット完成時刻が前記ロット待ち限界時刻より遅いか否かを判定し、前記最早ロット完成時刻が前記ロット待ち限界時刻より遅くないと判定すると、前記最早ロット完成時刻を前記最早ロット開始時刻として算出し、前記最早ロット完成時刻が前記ロット待ち限界時刻より遅いと判定すると、前記ロット候補に分類された前記ジョブであって前記ロット待ち限界時刻より早く到着するジョブのうち最も遅く到着するジョブである最遅到着ジョブの前記最早到着時刻を前記最早ロット開始時刻として算出し、
前記ロット処理判定部は、前記シミュレーション時刻が前記最早ロット開始時刻より早いときには、前記ロット候補に分類された前記ジョブの処理を開始しないと判定し、前記シミュレーション時刻が前記最早ロット開始時刻以降のときには、前記ロット候補に分類された前記ジョブの処理を開始すると判定する、
シミュレーション装置。
前記最早ロット完成時刻が前記ロット待ち限界時刻より遅いと前記最早ロット開始時刻計算部により判定されると、前記最遅到着ジョブの前記最早到着時刻に前記ロット候補に分類された前記ジョブの処理が開始された場合における、処理が開始された全ての前記ジョブの、前記最遅到着ジョブの前記最早到着時刻までの待ち時間の合計である総待ち時間を算出する総待ち時間計算部、をさらに備え、
前記ロット条件記憶部は、予め定められた基準待ち時間を記憶し、
前記最早ロット開始時刻計算部は、前記最早ロット完成時刻が前記ロット待ち限界時刻より遅いと判定すると、さらに、前記基準待ち時間と前記総待ち時間とを比較し、前記基準待ち時間が前記総待ち時間以上のときは、前記最遅到着ジョブの前記最早到着時刻を前記最早ロット開始時刻として算出し、前記基準待ち時間が前記総待ち時間未満のときは、前記シミュレーション時刻を前記最早ロット開始時刻として算出する、
請求項1に記載のシミュレーション装置。
前記基準待ち時間は、前記通過工程における前記処理条件の種類ごとに、前記通過工程における前記処理条件の種類に対応する前記ジョブの処理時間の合計が、長い場合は短い場合に比べて大きい値に設定される、
請求項2に記載のシミュレーション装置。
前記シミュレーション時刻設定部は、前記ロット処理判定部が前記ロット候補に分類された前記ジョブの処理を開始するか否かを判定すると、現在の前記シミュレーション時刻以降であって、算出されている前記通過工程への前記最早到着時刻と、前記通過工程における前記ジョブに対する処理終了時刻とのうち、最も早い時刻を、次の前記シミュレーション時刻に設定する、
請求項1〜3のいずれか1項に記載のシミュレーション装置。
複数種類のジョブをそれぞれ複数工程のうち所定の順序で所定の通過工程において処理して前記複数種類の製品を製造する生産ラインにおいて、前記通過工程において前記ジョブを処理する処理条件が同一である1以上のジョブをロットとしてまとめて前記通過工程において連続して処理する際に、前記ロットに含まれる前記ジョブの処理を開始するか否かを判定するシミュレーションを実行するシミュレーション方法であって、
前記シミュレーション方法は、
前記複数種類のジョブと、前記複数種類のジョブごとの前記通過工程と、前記通過工程において前記複数種類のジョブをそれぞれ処理する際の処理条件の種類と、を予め記憶している計画対象データ記憶部と、
前記通過工程における前記処理条件の種類と、前記処理条件の種類ごとに予め設定された、前記ロットを構成するジョブが揃ったと判定される最小個数と、前記処理条件の種類ごとに予め設定された、前記通過工程に前記ロットを構成する最初のジョブが到着してから前記ジョブが処理されずに待つことができる最大待ち時間と、を含むロット条件を前記通過工程ごとに予め記憶しているロット条件記憶部と、
を備えるシミュレーション装置に用いられ、
前記シミュレーション方法は、
前記計画対象データ記憶部に記憶されている前記複数種類のジョブ及び前記処理条件の種類と、前記ロット条件記憶部に記憶されている前記ロット条件に含まれる前記処理条件の種類とを用いて、前記処理条件の種類ごとに、前記ロットを構成するロット候補として前記複数種類のジョブを分類するジョブ分類ステップと、
前記シミュレーションを実行する時刻であるシミュレーション時刻を設定するシミュレーション時刻設定ステップと、
前記通過工程ごとに、前記シミュレーション時刻において処理が開始されていない前記ジョブについて、全ての前記通過工程における処理の待ち時間が無いと仮定した場合において前記通過工程に前記ジョブが到着する予定の時刻である最早到着時刻を算出する最早到着時刻計算ステップと、
前記シミュレーション時刻において処理が開始されていない前記ロットについて、前記ロットごとに、前記最早到着時刻と前記ロット条件に含まれる前記最小個数とを用いて、前記ロット候補に分類された前記ジョブが前記最小個数揃う最も早い時刻である最早ロット完成時刻を算出する最早ロット完成時刻計算ステップと、
前記シミュレーション時刻において処理が開始されていない前記ロットについて、前記ロットごとに、前記ロット候補に分類された最初の前記ジョブが前記通過工程に到着した時刻と、前記ロット条件記憶部に記憶されている前記ロット条件に含まれる前記最大待ち時間とを用いて、前記最初のジョブが待つことのできる最も遅い時刻であるロット待ち限界時刻を算出するロット待ち限界時刻計算ステップと、
前記シミュレーション時刻において処理が開始されていない前記ロットについて、前記ロットごとに、最早ロット開始時刻を算出する最早ロット開始時刻計算ステップと、
前記シミュレーション時刻において処理が開始されていない前記ロットについて、前記ロットごとに、前記ロット候補に分類された前記ジョブの処理を開始するか否かを判定するロット処理判定ステップと、
を備え、
前記最早ロット開始時刻計算ステップは、前記最早ロット完成時刻が前記ロット待ち限界時刻より遅いか否かを判定し、前記最早ロット完成時刻が前記ロット待ち限界時刻より遅くないと判定すると、前記最早ロット完成時刻を前記最早ロット開始時刻として算出し、前記最早ロット完成時刻が前記ロット待ち限界時刻より遅いと判定すると、前記ロット候補に分類された前記ジョブであって前記ロット待ち限界時刻より早く到着するジョブのうち最も遅く到着するジョブである最遅到着ジョブの前記最早到着時刻を前記最早ロット開始時刻として算出し、
前記ロット処理判定ステップは、前記シミュレーション時刻が前記最早ロット開始時刻より早いときには、前記ロット候補に分類された前記ジョブの処理を開始しないと判定し、前記シミュレーション時刻が前記最早ロット開始時刻以降のときには、前記ロット候補に分類された前記ジョブの処理を開始すると判定する、
シミュレーション方法。
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかしながら、上記特許文献1に記載の技術に対して、生産効率向上、中間工程における在庫量の低減、製品の納期遵守という観点から、ロットまとめ処理を行うためにジョブが揃うのを待機している時に、どの時点でジョブに対する処理を開始すべきかをさらに適切に判定することが望まれている。
【0007】
本発明は、上記問題を解決するもので、ロットまとめ処理を行うためにジョブが揃うのを待機している時に、どの時点でジョブに対する処理を開始すべきかをさらに適切に判定することが可能なシミュレーション装置および方法を提供することを目的とする。
【課題を解決するための手段】
【0008】
本発明の第1態様は、
複数種類のジョブをそれぞれ複数工程のうち所定の順序で所定の通過工程において処理して前記複数種類の製品を製造する生産ラインにおいて、前記通過工程において前記ジョブを処理する処理条件が同一である1以上のジョブをロットとしてまとめて前記通過工程において連続して処理する際に、前記ロットに含まれる前記ジョブの処理を開始するか否かを判定するシミュレーションを実行するシミュレーション装置であって、
前記複数種類のジョブと、前記複数種類のジョブごとの前記通過工程と、前記通過工程において前記複数種類のジョブをそれぞれ処理する際の処理条件の種類と、を予め記憶している計画対象データ記憶部と、
前記通過工程における前記処理条件の種類と、前記処理条件の種類ごとに予め設定された、前記ロットを構成するジョブが揃ったと判定される最小個数と、前記処理条件の種類ごとに予め設定された、前記通過工程に前記ロットを構成する最初のジョブが到着してから前記ジョブが処理されずに待つことができる最大待ち時間と、を含むロット条件を前記通過工程ごとに予め記憶しているロット条件記憶部と、
前記計画対象データ記憶部に記憶されている前記複数種類のジョブ及び前記処理条件の種類と、前記ロット条件記憶部に記憶されている前記ロット条件に含まれる前記処理条件の種類とを用いて、前記処理条件の種類ごとに、前記ロットを構成するロット候補として前記複数種類のジョブを分類するジョブ分類部と、
前記シミュレーションを実行する時刻であるシミュレーション時刻を設定するシミュレーション時刻設定部と、
前記通過工程ごとに、前記シミュレーション時刻において処理が開始されていない前記ジョブについて、全ての前記通過工程における処理の待ち時間が無いと仮定した場合において前記通過工程に前記ジョブが到着する予定の時刻である最早到着時刻を算出する最早到着時刻計算部と、
前記シミュレーション時刻において処理が開始されていない前記ロットについて、前記ロットごとに、前記最早到着時刻と前記ロット条件に含まれる前記最小個数とを用いて、前記ロット候補に分類された前記ジョブが前記最小個数揃う最も早い時刻である最早ロット完成時刻を算出する最早ロット完成時刻計算部と、
前記シミュレーション時刻において処理が開始されていない前記ロットについて、前記ロットごとに、前記ロット候補に分類された最初の前記ジョブが前記通過工程に到着した時刻と、前記ロット条件記憶部に記憶されている前記ロット条件に含まれる前記最大待ち時間とを用いて、前記最初のジョブが待つことのできる最も遅い時刻であるロット待ち限界時刻を算出するロット待ち限界時刻計算部と、
前記シミュレーション時刻において処理が開始されていない前記ロットについて、前記ロットごとに、最早ロット開始時刻を算出する最早ロット開始時刻計算部と、
前記シミュレーション時刻において処理が開始されていない前記ロットについて、前記ロットごとに、前記ロット候補に分類された前記ジョブの処理を開始するか否かを判定するロット処理判定部と、
を備え、
前記最早ロット開始時刻計算部は、前記最早ロット完成時刻が前記ロット待ち限界時刻より遅いか否かを判定し、前記最早ロット完成時刻が前記ロット待ち限界時刻より遅くないと判定すると、前記最早ロット完成時刻を前記最早ロット開始時刻として算出し、前記最早ロット完成時刻が前記ロット待ち限界時刻より遅いと判定すると、前記ロット候補に分類された前記ジョブであって前記ロット待ち限界時刻より早く到着するジョブのうち最も遅く到着するジョブである最遅到着ジョブの前記最早到着時刻を前記最早ロット開始時刻として算出し、
前記ロット処理判定部は、前記シミュレーション時刻が前記最早ロット開始時刻より早いときには、前記ロット候補に分類された前記ジョブの処理を開始しないと判定し、前記シミュレーション時刻が前記最早ロット開始時刻以降のときには、前記ロット候補に分類された前記ジョブの処理を開始すると判定するものである。
【0009】
本発明の第2態様は、
複数種類のジョブをそれぞれ複数工程のうち所定の順序で所定の通過工程において処理して前記複数種類の製品を製造する生産ラインにおいて、前記通過工程において前記ジョブを処理する処理条件が同一である1以上のジョブをロットとしてまとめて前記通過工程において連続して処理する際に、前記ロットに含まれる前記ジョブの処理を開始するか否かを判定するシミュレーションを実行するシミュレーション方法であって、
前記シミュレーション方法は、
前記複数種類のジョブと、前記複数種類のジョブごとの前記通過工程と、前記通過工程において前記複数種類のジョブをそれぞれ処理する際の処理条件の種類と、を予め記憶している計画対象データ記憶部と、
前記通過工程における前記処理条件の種類と、前記処理条件の種類ごとに予め設定された、前記ロットを構成するジョブが揃ったと判定される最小個数と、前記処理条件の種類ごとに予め設定された、前記通過工程に前記ロットを構成する最初のジョブが到着してから前記ジョブが処理されずに待つことができる最大待ち時間と、を含むロット条件を前記通過工程ごとに予め記憶しているロット条件記憶部と、
を備えるシミュレーション装置に用いられ、
前記シミュレーション方法は、
前記計画対象データ記憶部に記憶されている前記複数種類のジョブ及び前記処理条件の種類と、前記ロット条件記憶部に記憶されている前記ロット条件に含まれる前記処理条件の種類とを用いて、前記処理条件の種類ごとに、前記ロットを構成するロット候補として前記複数種類のジョブを分類するジョブ分類ステップと、
前記シミュレーションを実行する時刻であるシミュレーション時刻を設定するシミュレーション時刻設定ステップと、
前記通過工程ごとに、前記シミュレーション時刻において処理が開始されていない前記ジョブについて、全ての前記通過工程における処理の待ち時間が無いと仮定した場合において前記通過工程に前記ジョブが到着する予定の時刻である最早到着時刻を算出する最早到着時刻計算ステップと、
前記シミュレーション時刻において処理が開始されていない前記ロットについて、前記ロットごとに、前記最早到着時刻と前記ロット条件に含まれる前記最小個数とを用いて、前記ロット候補に分類された前記ジョブが前記最小個数揃う最も早い時刻である最早ロット完成時刻を算出する最早ロット完成時刻計算ステップと、
前記シミュレーション時刻において処理が開始されていない前記ロットについて、前記ロットごとに、前記ロット候補に分類された最初の前記ジョブが前記通過工程に到着した時刻と、前記ロット条件記憶部に記憶されている前記ロット条件に含まれる前記最大待ち時間とを用いて、前記最初のジョブが待つことのできる最も遅い時刻であるロット待ち限界時刻を算出するロット待ち限界時刻計算ステップと、
前記シミュレーション時刻において処理が開始されていない前記ロットについて、前記ロットごとに、最早ロット開始時刻を算出する最早ロット開始時刻計算ステップと、
前記シミュレーション時刻において処理が開始されていない前記ロットについて、前記ロットごとに、前記ロット候補に分類された前記ジョブの処理を開始するか否かを判定するロット処理判定ステップと、
を備え、
前記最早ロット開始時刻計算ステップは、前記最早ロット完成時刻が前記ロット待ち限界時刻より遅いか否かを判定し、前記最早ロット完成時刻が前記ロット待ち限界時刻より遅くないと判定すると、前記最早ロット完成時刻を前記最早ロット開始時刻として算出し、前記最早ロット完成時刻が前記ロット待ち限界時刻より遅いと判定すると、前記ロット候補に分類された前記ジョブであって前記ロット待ち限界時刻より早く到着するジョブのうち最も遅く到着するジョブである最遅到着ジョブの前記最早到着時刻を前記最早ロット開始時刻として算出し、
前記ロット処理判定ステップは、前記シミュレーション時刻が前記最早ロット開始時刻より早いときには、前記ロット候補に分類された前記ジョブの処理を開始しないと判定し、前記シミュレーション時刻が前記最早ロット開始時刻以降のときには、前記ロット候補に分類された前記ジョブの処理を開始すると判定するものである。
【0010】
第1及び第2態様では、シミュレーション時刻において処理が開始されていないロットについて、ロットごとに、最早ロット完成時刻がロット待ち限界時刻より遅いか否かが判定される。最早ロット完成時刻がロット待ち限界時刻より遅くない場合には、ロット待ち限界時刻までにロットを構成するジョブが最小個数揃うことになる。この場合、最早ロット完成時刻が最早ロット開始時刻として算出される。シミュレーション時刻が最早ロット開始時刻以降のときには、ロット候補に分類されたジョブの処理を開始すると判定される。したがって、最小個数のジョブが揃ったロットの処理を開始することができる。
【0011】
一方、最早ロット完成時刻がロット待ち限界時刻より遅い場合には、ロット待ち限界時刻までにロットを構成する最小個数のジョブが揃わない。この場合、ロット候補に分類されたジョブであってロット待ち限界時刻より早く到着するジョブのうち最も遅く到着するジョブである最遅到着ジョブの最早到着時刻が、最早ロット開始時刻として算出される。シミュレーション時刻が最早ロット開始時刻以降のときには、ロット候補に分類されたジョブの処理を開始すると判定される。したがって、最小個数のジョブは揃わないが、ロット待ち限界時刻までに到着した全てのジョブをロットとして処理することができる。その結果、ロットまとめ処理を行うためにジョブが揃うのを待機している時に、どの時点でジョブに対する処理を開始すべきかをさらに適切に判定することが可能となっている。
【0012】
上記第1態様において、例えば、前記最早ロット完成時刻が前記ロット待ち限界時刻より遅いと前記最早ロット開始時刻計算部により判定されると、前記最遅到着ジョブの前記最早到着時刻に前記ロット候補に分類された前記ジョブの処理が開始された場合における、処理が開始された全ての前記ジョブの、前記最遅到着ジョブの前記最早到着時刻までの待ち時間の合計である総待ち時間を算出する総待ち時間計算部、をさらに備えてもよい。前記ロット条件記憶部は、予め定められた基準待ち時間を記憶してもよい。前記最早ロット開始時刻計算部は、前記最早ロット完成時刻が前記ロット待ち限界時刻より遅いと判定すると、さらに、前記基準待ち時間と前記総待ち時間とを比較し、前記基準待ち時間が前記総待ち時間以上のときは、前記最遅到着ジョブの前記最早到着時刻を前記最早ロット開始時刻として算出し、前記基準待ち時間が前記総待ち時間未満のときは、前記シミュレーション時刻を前記最早ロット開始時刻として算出してもよい。
【0013】
本態様では、最早ロット完成時刻がロット待ち限界時刻より遅い場合には、ロット待ち限界時刻までにロットを構成する最小個数のジョブが揃わない。このとき、最遅到着ジョブの最早到着時刻にロット候補に分類されたジョブの処理が開始された場合における、処理が開始された全てのジョブの、最遅到着ジョブの最早到着時刻までの待ち時間の合計である総待ち時間が算出される。最早ロット完成時刻がロット待ち限界時刻より遅いと判定されると、さらに、基準待ち時間と総待ち時間とが比較される。
【0014】
基準待ち時間が総待ち時間以上のときは、最遅到着ジョブの最早到着時刻が最早ロット開始時刻として算出される。したがって、基準待ち時間を大きい値に設定すると、可能な限り多くのジョブでロットが構成される。その結果、処理条件を変更するための段取替え時間が減ることから、生産性を向上することが可能になる。
【0015】
一方、基準待ち時間が総待ち時間未満のときは、シミュレーション時刻が最早ロット開始時刻として算出される。したがって、基準待ち時間を小さい値に設定すると、到着済みのジョブが1つであってもロットの処理が開始される。その結果、工程において処理待ちのジョブが減ることから、ジョブの滞留を抑制することが可能になる。
【0016】
上記第1態様において、例えば、前記基準待ち時間は、前記通過工程における前記処理条件の種類ごとに、前記通過工程における前記処理条件の種類に対応する前記ジョブの処理時間の合計が、長い場合は短い場合に比べて大きい値に設定されてもよい。
【0017】
通過工程における処理条件の種類に対応するジョブの処理時間の合計が、長いということは、短い場合に比べて、工程の負荷が高いことを意味しており、生産性を向上することが望まれる。したがって、本態様によれば、基準待ち時間を大きい値に設定することによって、生産性を向上することが可能になる。
【0018】
上記第1態様において、例えば、前記シミュレーション時刻設定部は、前記ロット処理判定部が前記ロット候補に分類された前記ジョブの処理を開始するか否かを判定すると、現在の前記シミュレーション時刻以降であって、算出されている前記通過工程への前記最早到着時刻と、前記通過工程における前記ジョブに対する処理終了時刻とのうち、最も早い時刻を、次の前記シミュレーション時刻に設定してもよい。
【0019】
本態様では、現在のシミュレーション時刻以降であって、算出されている通過工程への最早到着時刻と、通過工程におけるジョブに対する処理終了時刻とのうち、最も早い時刻が、次のシミュレーション時刻に設定される。したがって、本態様によれば、シミュレーション時刻を節目の時刻に漏れなく設定することができる。
【発明の効果】
【0020】
本発明によれば、ロットまとめ処理を行うためにジョブが揃うのを待機している時に、どの時点でジョブに対する処理を開始すべきかをさらに適切に判定することが可能となっている。
【発明を実施するための形態】
【0022】
(本発明の基礎となった知見)
まず、本発明の基礎となった知見を説明するために、特許文献1に記載の技術が詳述される。上述のように、特許文献1に記載の技術では、ロットにまとめるジョブの最小個数と、ロットにまとめる際にジョブが待機できる最大待ち時間とが予め設定されている。最大待ち時間は、ジョブが処理されずに待つことができる最大時間である。最大待ち時間経過時にジョブに対する処理が開始されると、最大待ち時間は、直前工程の処理完了時刻から当該工程の処理開始時刻までの時間ということになる。
【0023】
特許文献1に記載の技術では、各ジョブの各工程への到着時刻等を計算するシミュレーションが所定のシミュレーション時刻に実行される。まず、シミュレーション時刻において未だ処理されていないジョブについて、残りの後工程への最早到着時刻が計算される。最早到着時刻は、計算対象のジョブが他のジョブに邪魔されないと仮定したときに、計算対象のジョブが計算対象の工程に到着すると予想される時刻である。計算対象のジョブが他のジョブに邪魔されないと仮定しているため、この到着予想時刻は、計算対象のジョブが計算対象の工程に到着可能な時刻のうち最も早い時刻となる。
【0024】
なお、最早到着時刻は、シミュレーションが進むにつれて、将来方向に更新される。つまり、新たにシミュレーションが実行されると、前回のシミュレーション時に比べて、最早到着時刻は、通常、後ろの時刻に移動する。なぜなら、実際には、計算対象のジョブは他のジョブに邪魔されている。つまり、計算対象のジョブは、他のジョブが処理中であれば処理されずに待機している。このため、計算対象のジョブの各工程への到着予想時刻が徐々に遅れるからである。
【0025】
次に、ある設備において、同一の処理条件で処理が実行されるジョブ同士を1つのロットにまとめることが検討される。その際に、ロットにできる最小個数が最も早く揃う時刻である最早ロット完成時刻が、各ジョブの最早到着時刻を用いて計算される。
【0026】
そして、最早ロット完成時刻まで当該ロットを構成するジョブを処理せずに待機させると、最大待ち時間の制約に違反するジョブが発生するということが、シミュレーション時刻に判明する場合がある。その場合には、最小個数が揃っていなくても、そのシミュレーション時刻において、当該ロットを構成するジョブの処理を開始すると判定される。
【0027】
したがって、特許文献1に記載の技術によれば、ジョブが処理されずに待つことができる最大待ち時間が経過するまでに、最小個数のジョブが揃わないということが判定されると、ジョブの処理が開始される。このため、最大待ち時間までジョブを待たせることがない。その結果、ジョブに無駄な待ちを発生させることが回避され、製品の製造におけるリードタイムの短縮及び納期遅れの防止を実現することができる。
【0028】
このように、特許文献1に記載の技術では、最大待ち時間までに最小個数のジョブが揃わないということが判定された時点で、ロットを構成するジョブの処理を開始すると判定される。したがって、もう少し待機すれば、ロットを構成するジョブを増やすことができる場合でも、待機することなく処理が開始される。このため、過度に少ない個数のジョブがロットとして処理される場合がある。その結果、処理条件を変更するための段取替えの作業及び時間が増えてしまう。
【0029】
そこで、本発明者は、ロットに設定された最小個数のジョブが最大待ち時間までに揃わない場合であっても、ジョブの個数が過度に少ないロットが発生するのを防止する技術を想到するに至った。これによって、段取替えの回数及び時間が増加するのを抑制することができ、生産性を高めることが可能となった。
【0030】
また、本発明者は、最大待ち時間までに最小個数のジョブが揃わないということが判定された時点で、ロットを構成するジョブの処理を開始すると判定する特許文献1に記載の技術と、最大待ち時間までに最小個数のジョブが揃わないときは、最早到着時刻がロット待ち限界時刻より早いジョブのうち最も遅い最遅到着ジョブの最早到着時刻に、ロットに含まれるジョブの処理を開始すると判定する形態とを、状況に応じて切り替える技術を想到するに至った。これによって、工程の状況に応じた生産スケジュールを生成することが可能となった。
【0031】
(実施の形態)
以下、本発明の実施の形態について、図面を参照しながら説明する。なお、各図面において、同じ構成要素については同じ符号が用いられ、適宜、詳細な説明は省略される。
【0032】
(第1実施形態の構成)
図1は、第1実施形態におけるシミュレーション装置100の構成の一例を概略的に示すブロック図である。
図1に示されるように、第1実施形態におけるシミュレーション装置100は、ディスプレイ110、入力部120、メモリ130、記憶装置140、及び中央演算処理装置(CPU)150を含む。
【0033】
この第1実施形態におけるシミュレーション装置100は、複数の工程を経て複数種類の製品を製造する生産ラインにおける生産スケジュールの作成を支援する。各製品を製造するための材料である半製品は、それぞれ所定の順序で各工程を通過する。各工程では、それぞれ所定の設備において所定の処理条件で、各半製品が処理される。工程と設備とは、1対1に対応している。同じ工程(つまり同じ設備)であっても、処理される半製品によって、処理条件が異なることがあり得る。
【0034】
所定の順序で各工程を通過する半製品は、「ジョブ」と称される。ジョブは、工程から工程へ搬送され、それぞれの工程で処理されて、その結果、製品が製造される。各工程における半製品(ジョブ)に対する処理は、「タスク」と称される。各工程では、異なるジョブに対して、順番にタスクが実行される。
【0035】
ディスプレイ110は、例えば液晶ディスプレイパネルを含む。ディスプレイ110は、CPU150により制御されて、例えば生産スケジュールを表すガントチャート等を表示する。なお、ディスプレイ110は、液晶ディスプレイパネルに限られない。ディスプレイ110は、有機EL(electroluminescence)パネルなどの他のパネルを含んでもよい。
【0036】
入力部120は、例えばマウス及びキーボードを含む。入力部120は、ユーザにより操作されると、その操作内容を示す操作信号をCPU150に出力する。なお、ディスプレイ110がタッチパネル式ディスプレイの場合には、マウス及びキーボードに代えて、タッチパネル式ディスプレイが入力部120を兼用してもよい。
【0037】
メモリ130は、例えば半導体メモリ等により構成される。メモリ130は、例えばリードオンリーメモリ(ROM)、ランダムアクセスメモリ(RAM)、電気的に消去書き換え可能なROM(EEPROM)などを含む。メモリ130のROMは、CPU150を動作させる第1実施形態の制御プログラムを記憶する。
【0038】
CPU150は、メモリ130に記憶された第1実施形態の制御プログラムにしたがって動作することによって、ジョブ分類部151、シミュレーション時刻設定部152、最早到着時刻計算部153、最早ロット完成時刻計算部154、ロット待ち限界時刻計算部155、最早ロット開始時刻計算部156、ロット処理判定部157、スケジュール生成部158の機能を有する。CPU150の各機能は、後述される。
【0039】
記憶装置140は、例えばハードディスク又は半導体メモリ等により構成される。記憶装置140は、計画対象データ記憶部141、ロット条件記憶部142、ジョブ情報記憶部143、スケジュールマスタ記憶部144、スケジュール記憶部145を含む。各記憶部141〜145は、互いに別の媒体で構成されてもよい。代替的に、各記憶部141〜145は、記憶領域が分けられた一つの媒体で構成されてもよい。
【0040】
計画対象データ記憶部141は、ジョブ番号と、通過工程と、通過工程における処理条件の種類とを予め記憶している。ジョブ番号は、生産される製品を特定する番号を表す。この第1実施形態では、ジョブ番号の一例として、ジョブJ1,J2等(後述の
図2等)が用いられる。通過工程は、ジョブが処理される工程の順序を表す。各ジョブは、各工程において、それぞれ、工程に対応する設備によって、所定の処理条件で処理される。
【0041】
この明細書では、設備の一例として、設備A(後述の
図2等)、設備X(後述の
図8等)等が用いられ、設備Aにおける処理条件の種類の一例として、処理条件A1,A2(後述の
図2等)等が用いられ、設備Xにおける処理条件の種類の一例として、処理条件X1(後述の
図8等)等が用いられている。
【0042】
ロット条件記憶部142は、最大待ち時間と、最小個数と、を予め記憶している。最大待ち時間と、最小個数とは、各設備に対応して設定されている処理条件の種類ごとに予め定められている。例えば、「500℃で加熱」という同じ処理条件であっても、「設備Aにおいて500℃で加熱」と、「設備Bにおいて500℃で加熱」とは異なる。このように、「処理条件の種類」は、設備とセットで決められる。このため、最大待ち時間と最小個数とは、設備と処理条件の種類との組合せに対応付けて、ロット条件記憶部142に記憶されている。
【0043】
最大待ち時間は、上述のように、ジョブが待機可能な最大時間である。最小個数は、ロットが揃ったか否かを判定するための値である。最小個数のジョブが設備(工程)に到着すると、ロットが揃ったと判定される。
【0044】
ロット条件記憶部142に記憶されているデータと、計画対象データ記憶部141に記憶されているデータとは、「設備に対応して設定された処理条件の種類」を介して、紐付けることが可能になっている。
【0045】
ジョブ情報記憶部143は、ロット条件分類と、最早到着時刻と、処理情報と、を記憶する。ロット条件分類は、ジョブ分類部151によって生成される。ジョブ分類部151は、ロット条件記憶部142に記憶されている設備ごとに定められた処理条件の種類と、計画対象データ記憶部141に記憶されているジョブ番号に対応する通過工程における処理条件の種類とから、処理条件の種類ごとにロットとして集約することが可能なロット候補となるジョブ番号の集合をロット条件分類として生成する。ジョブ分類部151は、生成したロット条件分類をジョブ情報記憶部143に保存する。
【0046】
最早到着時刻は、最早到着時刻計算部153によって算出される。最早到着時刻は、上述のように、計算対象のジョブが他のジョブに邪魔されないと仮定したときに、計算対象のジョブが計算対象の設備(工程)に到着すると予想される時刻である。計算対象のジョブが他のジョブに邪魔されないと仮定しているため、この到着予想時刻は、計算対象のジョブが計算対象の設備(工程)に到着可能な時刻のうち最も早い時刻となる。最早到着時刻計算部153は、ジョブ番号と設備(工程)とに対応付けて最早到着時刻をジョブ情報記憶部143に保存する。
【0047】
処理情報は、各設備(工程)においてジョブが処理済みか未処理かを表す。処理情報は、ロット処理判定部157によって生成される。ロット処理判定部157は、生成した処理情報を、ジョブ番号及び設備(工程)に対応付けて、ジョブ情報記憶部143に保存する。未処理のジョブについては、後述されるように、シミュレーション時刻に最早到着時刻が再び計算される。
【0048】
スケジュールマスタ記憶部144は、処理時間と、段取替え時間と、を予め記憶している。処理時間は、設備(工程)においてジョブ(半製品)を処理するのに要する時間である。言い換えると、処理時間は、タスクの実行時間である。処理時間は、処理条件の種類によって異なる値となる。そこで、処理時間は、設備(工程)と処理条件の種類とに対応付けて、スケジュールマスタ記憶部144に記憶されている。処理時間として、作業標準的に決められた値が記憶されてもよい。代替的に、処理条件として、過去の実績値、つまり、対象の設備を用いて、対象種類の処理条件が実行されたときの処理時間が記憶されてもよい。
【0049】
段取替え時間は、対象の設備において処理条件を変更するのに要する時間である。段取替え時間は、設備と、変更前の処理条件の種類と、変更後の処理条件の種類と、に対応付けて、スケジュールマスタ記憶部144に記憶されている。段取替え時間も、上記処理時間と同様に設定されてもよい。すなわち、段取替え時間として、作業標準的に決められた値が記憶されてもよい。代替的に、段取替え時間として、過去の実績値、つまり、対象の設備を用いて、変更前の種類の処理条件から、変更後の種類の処理条件への変更が実行されたときの段取替え時間が記憶されてもよい。
【0050】
スケジュール記憶部145は、スケジュール生成部158によって生成された生産スケジュールを記憶する。スケジュール生成部158は、ロット処理判定部157によってロットの処理を開始すると判定されると、スケジュールマスタ記憶部144に記憶されているデータを用いて、生産スケジュールを生成し、生成した生産スケジュールをスケジュール記憶部145に保存する。
【0051】
CPU150のシミュレーション時刻設定部152は、シミュレーションを実行するシミュレーション時刻を設定する。シミュレーション時刻には、ロット処理判定部157によって、ロットの処理を開始するか否かが判定される。シミュレーション時刻設定部152は、本実施形態では、シミュレーション時刻を、「設備(工程)へのジョブの到着予定時刻」及び「設備(工程)におけるジョブに対する処理の終了時刻」のなかで、現在のシミュレーション時刻以降であって、最も早い時刻に更新する。
【0052】
言い換えると、シミュレーション対象の設備は、ジョブが到着する設備に依存し、最も早くシミュレーションが可能な設備に移っていく。例えば、同じ10時にジョブP1が設備Q1に到着し、ジョブP2が設備Q2に到着することもあり得る。この場合、シミュレーション時刻を10時として設備Q1でシミュレーションが実行された後、シミュレーション時刻が更新されて、同じ10時に設備Q2でシミュレーションが実行されることになる。このように、シミュレーション時刻は、同じ時刻に更新されることもある。
【0053】
シミュレーション時刻設定部152は、「設備へのジョブの到着予定時刻」として、最早到着時刻をジョブ情報記憶部143から取得する。シミュレーション時刻設定部152は、「設備におけるジョブに対する処理の終了時刻」を、スケジュール記憶部145から取得する。シミュレーション時刻設定部152は、取得した「設備へのジョブの到着予定時刻」と「設備におけるジョブに対する処理の終了時刻」とをセットで時系列に並べて、最も早い時刻にシミュレーション時刻を更新する。シミュレーション時刻が決定されると、設備も決定される。したがって、その設備においてシミュレーションが実行される。すなわち、その設備においてロットの処理を開始するか否かが判定される。
【0054】
シミュレーション時刻設定部152は、さらに、所定の終了条件を用いて、シミュレーション時刻を更新するか否かを判定する。シミュレーション時刻が更新されると、シミュレーションは継続され、シミュレーション時刻が更新されなければ、シミュレーションは終了する。シミュレーション時刻設定部152は、ジョブ情報記憶部143に記憶されている全てのジョブ番号の処理開始が全ての工程において確定すると、第1終了条件が満たされたと判定する。シミュレーション時刻設定部152は、シミュレーション時刻Tsが所定の時刻(例えばシミュレーション開始時から24時間後)を超えると、第2終了条件が満たされたと判定する。
【0055】
シミュレーション時刻設定部152は、第1終了条件及び第2終了条件の少なくとも一方が満たされたと判定すると、シミュレーション時刻を更新しないと判定する。シミュレーション時刻設定部152は、第1終了条件及び第2終了条件の両方が満たされないと判定すると、シミュレーション時刻を更新すると判定する。
【0056】
最早到着時刻計算部153は、最早到着時刻を算出する。上述のように、シミュレーション時刻が決定されると、シミュレーション対象の設備も決定される。最早到着時刻計算部153は、決定されたシミュレーション対象の設備で処理されるジョブ番号を、計画対象データ記憶部141から取得する。最早到着時刻計算部153は、取得した各ジョブ番号が現在処理されている設備(工程)を、スケジュール記憶部145から取得する。最早到着時刻計算部153は、各ジョブ番号が現在処理されている設備(工程)からシミュレーション対象の設備に到着するまでに通過する通過工程を、計画対象データ記憶部141から取得する。最早到着時刻計算部153は、取得した通過工程における処理時間を、スケジュールマスタ記憶部144から取得する。
【0057】
最早到着時刻計算部153は、ジョブ番号ごとに、現在処理中の設備から、シミュレーション対象の設備に到着するまでに通過する通過工程における処理時間の合計を、現在のシミュレーション時刻に加算して、最早到着時刻を算出する。最早到着時刻計算部153は、算出した最早到着時刻を、ジョブ番号とシミュレーション対象の設備とに対応付けて、ジョブ情報記憶部143に保存する。
【0058】
最早到着時刻計算部153は、ジョブ情報記憶部143に記憶されている最早到着時刻より、シミュレーション時刻が後になると、ジョブ情報記憶部143に記憶されている最早到着時刻を、ジョブがシミュレーション対象の設備に実際に到着した到着時刻に書き換えてもよい。
【0059】
なお、本実施形態では、ジョブを設備から設備に搬送する搬送時間は、ゼロという前提にしているが、これに限られない。搬送時間は、作業標準的に設定されてもよく、過去の実績データに基づき設定されてもよい。搬送時間は、スケジュールマスタ記憶部144に記憶されてもよく、計画対象データ記憶部141の通過工程に対応付けて記憶されてもよい。
【0060】
最早ロット完成時刻計算部154は、ジョブ情報記憶部143から、シミュレーション対象の設備に対応するロット条件分類(処理条件の種類ごとにロット候補となるジョブ番号の集合)と、ロット条件分類に含まれる各ジョブ番号にそれぞれ対応する各最早到着時刻とを取得する。最早ロット完成時刻計算部154は、ロット条件記憶部142から、シミュレーション対象の設備に対応する各処理条件の種類に対してそれぞれ設定された各最小個数を取得する。最早ロット完成時刻計算部154は、ロット条件分類に含まれる各ジョブ番号のうちで、シミュレーション対象の設備に到着済みのジョブがあれば、その到着時刻をスケジュール記憶部145から取得する。最早ロット完成時刻計算部154は、シミュレーション対象の設備に対応する処理条件の種類ごとに、到着済みのジョブがあれば到着済みのジョブも含めて最小個数番目の最早到着時刻を、最早ロット完成時刻として算出する。
【0061】
ロット待ち限界時刻計算部155は、ロット条件記憶部142から、シミュレーション対象の設備に対応する処理条件の種類ごとに最大待ち時間を取得する。ロット待ち限界時刻計算部155は、ジョブ情報記憶部143から、シミュレーション対象の設備に対応するロット条件分類(処理条件の種類ごとにロット候補となるジョブ番号の集合)と、ロット条件分類に含まれる各ジョブ番号にそれぞれ対応する各最早到着時刻とを取得する。
【0062】
ロット待ち限界時刻計算部155は、スケジュール記憶部145から、処理条件の種類ごとに、ロット条件分類に含まれるジョブのうち、シミュレーション対象の設備に到着済みのジョブがあれば最も早く到着したジョブの到着時刻を取得する。ロット待ち限界時刻計算部155は、処理条件の種類ごとに、取得した到着時刻から最大待ち時間後の時刻を、ロット待ち限界時刻として算出する。ロット待ち限界時刻計算部155は、処理条件の種類ごとに、シミュレーション対象の設備に到着済みのジョブが無ければ、最も早い最早到着時刻から最大待ち時間後の時刻を、ロット待ち限界時刻として算出する。
【0063】
最早ロット開始時刻計算部156は、処理条件の種類ごとに、ロットに含まれるジョブの処理を最も早く開始できる時刻である最早ロット開始時刻を算出する。最早ロット開始時刻計算部156は、最早ロット完成時刻計算部154により算出された最早ロット完成時刻と、ロット待ち限界時刻計算部155により算出されたロット待ち限界時刻と、を比較する。最早ロット開始時刻計算部156は、最早ロット完成時刻がロット待ち限界時刻より遅くないときは、最早ロット完成時刻を最早ロット開始時刻として算出する。これによって、最小個数のジョブが揃ったロットとしてジョブが処理される。
【0064】
最早ロット開始時刻計算部156は、最早ロット完成時刻がロット待ち限界時刻より遅いときは、最早到着時刻がロット待ち限界時刻より早いジョブのうち、最も遅く到着するジョブである最遅到着ジョブを抽出し、この最遅到着ジョブの最早到着時刻を最早ロット開始時刻として算出する。これによって、最小個数のジョブは揃わなくても、ロット待ち限界時刻の直前まで待機して、可能な限り多くの個数のジョブが揃ったロットとしてジョブが処理される。
【0065】
ロット処理判定部157は、ロットに含まれるジョブの処理を開始するか否かを判定する。ロット処理判定部157は、最早ロット開始時刻がシミュレーション時刻より早いか同じときに、最早ロット開始時刻に対応するジョブの処理を開始すると判定する。ロット処理判定部157は、最早ロット開始時刻がシミュレーション時刻より遅いときは、ジョブの処理を開始しないと判定する。
【0066】
スケジュール生成部158は、ロットに含まれるジョブの処理を開始すると判定されたロット条件分類等の情報をロット処理判定部157から取得する。スケジュール生成部158は、取得した情報から、ジョブの処理を開始するロットを決定する。スケジュール生成部158は、取得したロット条件分類に含まれる設備及び処理条件の種類に対応する処理時間をスケジュールマスタ記憶部144から取得する。スケジュール生成部158は、取得した処理時間に従って、ロット条件分類に含まれるジョブの生産スケジュールを生成する。スケジュール生成部158は、生成した生産スケジュールをスケジュール記憶部145に保存する。
【0067】
(動作の概要)
次に、図面を参照して、シミュレーション装置の動作の概要が説明される。最初に、特許文献1に記載の技術を用いたシミュレーション装置の動作の概要が説明され、次に、第1実施形態におけるシミュレーション装置の動作の概要が説明される。後述のように、特許文献1に記載の技術を用いたシミュレーション装置の動作は、第2実施形態で用いられる。
【0068】
第1実施形態では、上述のように、最早ロット開始時刻計算部156は、最早ロット完成時刻がロット待ち限界時刻より遅いときは、最早到着時刻がロット待ち限界時刻より早いジョブのうち最遅到着ジョブを抽出し、この最遅到着ジョブの最早到着時刻を最早ロット開始時刻として算出する。そして、ロット処理判定部157は、最早ロット開始時刻がシミュレーション時刻より早いか同じときに、ロットに含まれるジョブの処理を開始すると判定する。
【0069】
これに対して、特許文献1に記載の技術では、最早ロット完成時刻がロット待ち限界時刻より遅いと判明した時点で、到着したジョブが1つだけであっても、ロットに含まれるジョブの処理を開始すると判定される。
【0070】
なお、以下の説明では、便宜上、スケジュールマスタ記憶部144に記憶されている処理時間は、一律に1時間になっており、ジョブを設備から設備に搬送する搬送時間は、ゼロになっている。
【0071】
(特許文献1の動作の概要)
図2〜
図5は、それぞれのシミュレーション時刻におけるジョブの動きの一例を概略的に表すタイミングチャートである。
図2〜
図5を用いて、それぞれのシミュレーション時刻におけるロット処理の判定が説明される。
【0072】
図2〜
図5では、設備Aにおいて、処理条件の種類として、処理条件A1と処理条件A2との2種類の処理条件でジョブに対して処理が行われる例が示される。処理条件A1における最小個数は4個であり、最大待ち時間は6時間である。処理条件A2における最小個数は3個であり、最大待ち時間は6時間である。
【0073】
図2〜
図5には、それぞれのシミュレーション時刻Tsにおける、ジョブJ1〜J5の設備Aへの最早到着時刻又は実際に到着した時刻が示されている。時刻の横に付された星印は、時刻が各ジョブの最早到着時刻であることを表す。無印の時刻は、ジョブが設備Aに実際に到着した時刻を表す。
【0074】
図2において、シミュレーション時刻Tsは、ジョブJ1が設備Aに到着した10時である。処理条件A1は、シミュレーション時刻Ts(10時)の時点で到着済みのジョブが無いので処理は不可能である。処理条件A2では、ジョブJ1が到着した10時の最大待ち時間(6時間)後の16時がロット待ち限界時刻Twである。一方、ジョブJ3,J4の最早到着時刻が12時である。したがって、最早ロット完成時刻Tcは12時であり、ロットに必要な最小個数(3個)のジョブがロット待ち限界時刻Twまでに揃う可能性がある。このため、シミュレーション時刻Tsが10時の時点では、ジョブJ1の処理を開始しないと判定される。
【0075】
以上より、シミュレーション時刻Tsが10時の時点では、ロット処理判定部157は、ロットに含まれるジョブの処理を開始しないと判定する。
【0076】
図3において、シミュレーション時刻Tsは、ジョブJ2が設備Aに到着した11時である。処理条件A1では、ジョブJ2が到着した11時の最大待ち時間(6時間)後の17時がロット待ち限界時刻Twである。ロット待ち限界時刻Twである17時までに到着する可能性があるのは、最早到着時刻が15時のジョブJ5だけである。したがって、処理条件A1は、ジョブJ2の最大待ち時間の間(つまりロット待ち限界時刻Twまで)に、最小個数である4個が揃う可能性が無い。このため、ジョブJ2の1個で処理の開始が可能と判定される。この点が、後述される第1実施形態におけるシミュレーション装置の動作と異なる。
【0077】
一方、処理条件A2では、
図2で説明されたように、ジョブJ1の最大待ち時間の間(つまりロット待ち限界時刻Twまで)に、ロットに必要な最小個数(3個)のジョブが揃う可能性がある。このため、シミュレーション時刻Tsが11時の時点では、処理を開始しないと判定される。
【0078】
以上より、シミュレーション時刻Tsが11時の時点で、ロット処理判定部157は、ロットとして処理条件A1でジョブJ2の処理を開始すると判定する。スケジュール生成部158は、ジョブJ2の処理を11時に開始する生産スケジュールを生成する。したがって、
図3の「設備Aのガントチャート」に示されるように、ジョブJ2を処理するタスクが、11時に開始され、12時に終了する。本実施形態では、上述のように、処理時間は一律に1時間である。
【0079】
図4において、シミュレーション時刻Tsは、ジョブJ2を処理するタスクが終了した12時である。なお、12時は、ジョブJ3,J4が設備Aに到着した時刻でもある。処理条件A1は、シミュレーション時刻Tsが12時の時点で到着済みのジョブが無いので処理は不可能である。処理条件A2は、ロットに必要な最小個数である3個のジョブが揃ったため、シミュレーション時刻Tsの12時で処理が可能である。
【0080】
以上より、シミュレーション時刻Tsが12時の時点で、ロット処理判定部157は、ロットとして処理条件A2でジョブJ1,J3,J4の処理を開始すると判定する。スケジュール生成部158は、設備Aの処理条件を処理条件A1から処理条件A2に変更する段取替え時間(
図4では2時間)を含む生産スケジュールを生成する。スケジュール生成部158は、段取替え時間の終了後、ジョブJ1,J3,J4の処理を14時に開始し、17時に終了する生産スケジュールを生成する。したがって、
図4の「設備Aのガントチャート」に示されるように、ジョブJ1,J3,J4を順に処理するタスクが、14時に開始され、17時に終了する。
【0081】
図5において、シミュレーション時刻Tsは、ジョブJ4を処理するタスクが終了した17時である。処理条件A1では、ジョブJ5が到着した15時の最大待ち時間(6時間)後の21時がロット待ち限界時刻Twである。ロット待ち限界時刻Twである21時までに最小個数が揃う可能性は無い。したがって、シミュレーション時刻Tsである17時に、処理条件A1は、ジョブJ5の1個で処理を開始すると判定される。一方、処理条件A2は、シミュレーション時刻Tsが17時の時点で到着済みのジョブが無いので処理は不可能である。
【0082】
以上より、シミュレーション時刻Tsが17時の時点で、ロット処理判定部157は、ロットとして処理条件A1でジョブJ5の処理を開始すると判定する。スケジュール生成部158は、設備Aの処理条件を処理条件A2から処理条件A1に変更する段取替え時間(
図5では2時間)を含む生産スケジュールを生成する。スケジュール生成部158は、段取替え時間の終了後、ジョブJ5の処理を19時に開始する生産スケジュールを生成する。したがって、
図5の「設備Aのガントチャート」に示されるように、ジョブJ5を処理するタスクが、19時に開始され、20時に終了する。
【0083】
図3の動作では、シミュレーション時刻Tsが11時の時点で、処理条件A1では、ロット待ち限界時刻Twまでに最小個数のジョブが揃わないと判明している。そこで、
図3に示されるように、この判明した時点で、ジョブJ2の処理を開始している。これによって、ロット待ち限界時刻Twまで待機することなく、ジョブJ2を処理することが可能になっている。
【0084】
しかしながら、処理条件A1では、ロットが1個のジョブJ2だけで処理されているため、段取替え時間の増加を招いている可能性がある。例えば、ジョブJ2とジョブJ5とを集約できる可能性がある。この点に着目したのが、第1実施形態のシミュレーション装置である。
【0085】
(最早到着時刻の更新)
第1実施形態におけるシミュレーション装置の動作の概要が説明される前に、最早到着時刻の更新が説明される。この最早到着時刻の更新については、上記特許文献1に記載の技術を用いたシミュレーション装置の動作でも、後述される第1実施形態におけるシミュレーション装置の動作でも、同じである。
【0086】
図6は、シミュレーション時刻においてロット処理の開始が決定される前の最早到着時刻を示すタイミングチャートである。
図7は、
図6と同じシミュレーション時刻においてロット処理の開始が決定された後に更新された最早到着時刻を示すタイミングチャートである。
図6、
図7を用いて、最早到着時刻の更新が説明される。
【0087】
図6、
図7には、ジョブJ1〜J5は、設備Aで処理された後、次に設備Bで処理される例が示されている。すなわち、設備Bの工程が設備Aの工程の次工程である。なお、
図6、
図7でも、
図2〜
図5と同様に、各ジョブの処理時間(つまりタスクの実行時間)は1時間に設定され、設備Aから設備Bへの搬送時間はゼロに設定されている。
【0088】
図6において、シミュレーション時刻Tsは、14時であり、ジョブJ1,J2は、設備Aに既に割り当てられている。つまり、設備AにおけるジョブJ1,J2の生産スケジュールは確定している。よって、ジョブJ1,J2の次工程である設備Bへの到着予定時刻も確定している。すなわち、ジョブJ1の設備Bへの到着予定時刻は、設備AでジョブJ1の処理が終了する13時であり、ジョブJ2の設備Bへの到着予定時刻は、設備AでジョブJ2の処理が終了する14時である。
【0089】
一方、ジョブJ3,J4,J5は、設備Aに未だ割り当てられていない。つまり、設備AにおけるジョブJ3,J4,J5の生産スケジュールは確定していない。ジョブJ3,J4は、既に13時に設備Aに到着している。ジョブJ5は、その最早到着時刻が15時であり、未だ設備Aに到着していない。
【0090】
最早到着時刻は、上述のように、他のジョブによって邪魔されないということを仮定している。したがって、ジョブJ3,J4の設備Bへの最早到着時刻は、いずれもジョブJ2の処理が終了した時刻14時に設備Aでの処理が開始されるという前提で計算される。このため、ジョブJ3,J4の設備Bへの最早到着時刻は、いずれも15時である。また、ジョブJ5の設備Bへの最早到着時刻は、設備Aに到着した時刻15時に設備Aでの処理が開始されるという前提で計算される。このため、ジョブJ5の設備Bへの最早到着時刻は、16時である。
【0091】
図6の状態で、シミュレーション時刻Tsの14時に、ロットに含まれるジョブJ3,J4の処理を開始すると判定される。
図7の例では、ジョブJ3−ジョブJ4の順にスケジュールに割り付けられている。これによって、ジョブJ3,J4の設備Bへの到着予定時刻が確定した。
図7に示されるように、ジョブJ3の設備Bへの最早到着時刻は、15時のまま変わらないが、ジョブJ4の設備Bへの最早到着時刻は、15時から16時に更新されている。
【0092】
また、ジョブJ5の設備Aでの処理開始時刻は、最も早くてジョブJ4の処理が終了する16時となり、15時から延びた。したがって、ジョブJ5の設備Bへの到着予定時刻は確定していないが、最早到着時刻は、16時から17時に更新されている。
【0093】
(第1実施形態の動作の特徴)
図8は、第1実施形態の動作の特徴を説明するためのタイミングチャートである。
図8を用いて、第1実施形態におけるシミュレーション装置の特徴が説明される。
【0094】
図8では、設備Xにおいて、処理条件X1でジョブに対する処理が行われる例が示されている。処理条件X1における最小個数は5個であり、最大待ち時間は7時間である。
【0095】
図8には、それぞれのシミュレーション時刻Tsにおける、ジョブJ1〜J5の設備Xへの最早到着時刻又は実際に到着した時刻が示されている。
図2〜
図5と同様に、時刻の横に付された星印は、時刻が各ジョブの最早到着時刻であることを表す。無印の時刻は、ジョブが設備Xに実際に到着した時刻を表す。
【0096】
図8では、シミュレーション時刻Tsが10時であり、ジョブJ1は既に8時に設備Xに到着しており、ジョブJ2〜J5は、今後、設備Xに到着する予定になっている。処理条件X1の最小個数が5個であるため、ジョブJ4,J5の最早到着時刻である16時が、最早ロット完成時刻Tcになっている。また、ジョブJ1の到着時刻8時から最大待ち時間(7時間)後の15時が、ロット待ち限界時刻Twになっている。したがって、最早ロット完成時刻Tcよりロット待ち限界時刻Twの方が早いため、シミュレーション時刻Tsの時点で、ロット待ち限界時刻Twまでに最小個数のジョブは揃わないことが判明している。
【0097】
特許文献1に記載の技術では、
図3に示されるように、ロット待ち限界時刻Twまでにロットの最小個数が揃わないことが判明した時点で、ロットに含まれるジョブの処理を開始すると判定されていた。これに対して、第1実施形態のシミュレーション装置では、ロット待ち限界時刻Twまでにロットの最小個数が揃わないことが判明しても、同じ処理条件で、ロット待ち限界時刻Twまでに今後到着する予定のジョブがあれば、ロットに含まれるジョブの処理を開始しないという制約が加えられる。すなわち、ジョブJ1が8時に到着した時点で、最小個数が揃わないことが判明しているが、ジョブJ1の処理を開始すると判定されない。
【0098】
さらに、ロット待ち限界時刻Twまでに今後到着する予定のジョブのうち、最早到着時刻が最も遅い最遅到着ジョブ(
図8ではジョブJ3)の最早到着時刻が、最早ロット開始時刻Tpとされる。上述のように、ジョブの最早到着時刻が更新されるため、この最早ロット開始時刻Tpは、シミュレーション時刻ごとに更新される。そして、最早ロット開始時刻Tpが、シミュレーション時刻Tsと同じかシミュレーション時刻Tsより早くなると、当該処理条件のロットに含まれるジョブの処理を開始すると判定される。
【0099】
図8の例では、8時に到着したジョブJ1の最大待ち時間(7時間)後のロット待ち限界時刻Twである15時までに到着する予定のジョブは、ジョブJ1,J2,J3の最大3個である。したがって、ロットの最小個数である5個のジョブが揃う前に、処理条件X1の処理は開始される。このとき、第1実施形態では、ロット待ち限界時刻Twである15時までに到着予定のジョブのうち、最も遅く到着する最遅到着ジョブJ3の最早到着時刻である13時が、最早ロット開始時刻Tpとされる。これによって、最早ロット開始時刻Tpである13時までは、処理条件X1のロットに含まれるジョブの処理を開始すると判定されない。
【0100】
(第1実施形態の動作の概要)
図9〜
図12は、第1実施形態における、それぞれのシミュレーション時刻におけるジョブの動きの一例を概略的に表すタイミングチャートである。
図9〜
図12を用いて、第1実施形態における、それぞれのシミュレーション時刻におけるロット処理の判定が説明される。
【0101】
図9〜
図12では、
図2〜
図5と同様に、設備Aにおいて、処理条件の種類として、処理条件A1と処理条件A2との2種類の処理条件でジョブに対して処理が行われる例が示される。処理条件A1における最小個数は4個であり、最大待ち時間は6時間である。処理条件A2における最小個数は3個であり、最大待ち時間は6時間である。
【0102】
図9〜
図12には、
図2〜
図5と同様に、それぞれのシミュレーション時刻Tsにおける、ジョブJ1〜J5の設備Aへの最早到着時刻又は実際に到着した時刻が示されている。時刻の横に付された星印は、時刻が各ジョブの最早到着時刻であることを表す。無印の時刻は、ジョブが設備Aに実際に到着した時刻を表す。
【0103】
図9において、シミュレーション時刻Tsは、ジョブJ1が設備Aに到着した10時である。処理条件A1は、シミュレーション時刻Ts(10時)の時点で到着済みのジョブが無いので処理は不可能である。処理条件A2では、ジョブJ1が到着した10時の最大待ち時間(6時間)後の16時がロット待ち限界時刻Twである。一方、ジョブJ3,J4の最早到着時刻が12時である。したがって、最早ロット完成時刻Tcは12時であり、ロットに必要な最小個数(3個)のジョブがロット待ち限界時刻Twまでに揃う可能性がある。このため、シミュレーション時刻Tsが10時の時点では、ジョブJ1の処理を開始しないと判定される。
【0104】
以上より、シミュレーション時刻Tsが10時の時点では、ロット処理判定部157は、ロットに含まれるジョブの処理を開始しないと判定する。
【0105】
図10において、シミュレーション時刻Tsは、ジョブJ2が設備Aに到着した11時である。処理条件A1では、ジョブJ2が到着した11時の最大待ち時間(6時間)後の17時がロット待ち限界時刻Twである。ロット待ち限界時刻Twである17時までにジョブJ5のみが到着する可能性がある。すなわち、ジョブJ5が最遅到着ジョブである。そこで、最早ロット開始時刻計算部156は、ジョブJ5の最早到着時刻である15時を最早ロット開始時刻Tpとして算出する。したがって、シミュレーション時刻Tsが11時の時点では、処理条件A1における処理を開始しないと判定される。
【0106】
一方、処理条件A2では、
図9で説明されたように、ジョブJ1の最大待ち時間の間(つまりロット待ち限界時刻Twまで)である最早ロット完成時刻Tcに、ロットに必要な最小個数(3個)のジョブが揃う可能性がある。このため、シミュレーション時刻Tsが11時の時点では、処理条件A2における処理を開始しないと判定される。
【0107】
以上より、シミュレーション時刻Tsが11時の時点で、ロット処理判定部157は、ロットとして処理条件A1でジョブJ2の処理を開始しないと判定する。
【0108】
図11において、シミュレーション時刻Tsは、ジョブJ3,J4が設備Aに到着した12時である。処理条件A1は、最早ロット開始時刻Tpが15時であるため、シミュレーション時刻Tsが12時の時点では、ロットに含まれるジョブの処理を開始しないと判定される。処理条件A2は、ロットに必要な最小個数である3個のジョブが揃ったため、シミュレーション時刻Tsの12時で、ロットに含まれるジョブの処理が可能である。
【0109】
以上より、シミュレーション時刻Tsが12時の時点で、ロット処理判定部157は、ロットとして処理条件A2でジョブJ1,J3,J4の処理を開始すると判定する。スケジュール生成部158は、ジョブJ1,J3,J4の処理を12時に開始し、15時に終了する生産スケジュールを生成する。したがって、
図11の「設備Aのガントチャート」に示されるように、ジョブJ1,J3,J4を処理するタスクが、12時に開始され、15時に終了する。
【0110】
図12において、シミュレーション時刻Tsは、ジョブJ4を処理するタスクが終了した15時である。なお、15時は、ジョブJ5が設備Aに到着した時刻でもある。処理条件A1は、シミュレーション時刻Tsが最早ロット開始時刻Tpに一致する。このため、シミュレーション時刻Tsである15時の時点で、ジョブJ2,J5の処理を開始すると判定される。処理条件A2は、到着済みのジョブが無いため、処理は不可能である。
【0111】
以上より、シミュレーション時刻Tsが15時の時点で、ロット処理判定部157は、ロットとして処理条件A1でジョブJ2,J5の処理を開始すると判定する。スケジュール生成部158は、設備Aの処理条件を処理条件A2から処理条件A1に変更する段取替え時間(
図12では2時間)を含む生産スケジュールを生成する。スケジュール生成部158は、段取替え時間の終了後、ジョブJ2,J5の処理を17時に開始し、19時に終了する生産スケジュールを生成する。したがって、
図12の「設備Aのガントチャート」に示されるように、ジョブJ2,J5を処理するタスクが、17時に開始され、19時に終了する。
【0112】
(第1実施形態の動作手順)
図13、
図14は、第1実施形態におけるシミュレーション装置の動作手順の一例を概略的に示すフローチャートである。
【0113】
図13のステップS1300において、CPU150は、計画対象データ記憶部141からデータを読み込んでメモリ130のRAMに保存する。ステップS1310において、CPU150は、ロット条件記憶部142からロット条件を読み込んでメモリ130のRAMに保存する。ステップS1320において、ジョブ分類部151は、ロット条件分類を生成して、ジョブ情報記憶部143に保存する。
【0114】
ステップS1330において、シミュレーション時刻設定部152は、シミュレーション時刻Tsを初期化する。シミュレーション時刻設定部152は、シミュレーション時刻Tsを、例えば「0時0分」に設定してもよい。この場合には、シミュレーション対象の設備をユーザが選択してもよい。代替的に、シミュレーション時刻設定部152は、シミュレーション時刻Tsを、例えば、スケジュール記憶部145に記憶されている確定した生産スケジュールにおける最後のタスクの処理終了時刻に設定してもよい。この場合には、シミュレーション対象の設備は、最後のタスクが処理された設備となる。
【0115】
ステップS1340において、最早到着時刻計算部153は、シミュレーション対象の設備において、シミュレーション時刻Tsの時点で未処理のジョブをジョブ情報記憶部143のロット条件分類から取得し、各ジョブの各設備(各工程)への最早到着時刻をそれぞれ算出する。最早到着時刻計算部153は、算出した最早到着時刻をジョブ情報記憶部143に保存する。
【0116】
ステップS1350において、最早ロット完成時刻計算部154は、シミュレーション対象の設備において、最早到着時刻計算部153により算出されジョブ情報記憶部143に保存されている最早到着時刻と、ロット条件記憶部142に記憶されている最小個数とを用いて、最早ロット完成時刻を算出する。
【0117】
ステップS1360において、ロット待ち限界時刻計算部155は、各ジョブのうちでシミュレーション対象の設備に最も早く到着するジョブの最早到着時刻(又はシミュレーション対象の設備に到着済みのジョブのうちで最も早く到着したジョブの到着時刻)と、ロット条件記憶部142に記憶されている最大待ち時間とを用いて、ロット待ち限界時刻を算出する。
【0118】
ステップS1370において、最早ロット開始時刻計算部156は、シミュレーション対象の設備において、最早ロット完成時刻計算部154により算出された最早ロット完成時刻が、ロット待ち限界時刻計算部155により算出されたロット待ち限界時刻より遅いか否かを判定する。最早ロット完成時刻が、ロット待ち限界時刻より早いかロット待ち限界時刻と同じであれば(ステップS1370でNO)、処理はステップS1380に進む。一方、最早ロット完成時刻が、ロット待ち限界時刻より遅ければ(ステップS1370でYES)、処理はステップS1390に進む。
【0119】
ステップS1380において、最早ロット開始時刻計算部156は、最早ロット完成時刻を最早ロット開始時刻として算出する。ステップS1390において、最早ロット開始時刻計算部156は、最遅到着ジョブ(上述のように、最早到着時刻がロット待ち限界時刻より早いジョブのうち、最も遅く到着するジョブ)の最早到着時刻を、最早ロット開始時刻として算出する。
【0120】
図14のステップS1400において、ロット処理判定部157は、シミュレーション時刻Tsが最早ロット開始時刻より早いか否かを判定する。ロット処理判定部157は、シミュレーション時刻Tsが最早ロット開始時刻より早いときに(ステップS1400でYES)、ロットに含まれるジョブの処理を開始しないと判定し、処理はステップS1430に進む。一方、ロット処理判定部157は、シミュレーション時刻Tsが最早ロット開始時刻より遅いか同時のときに(ステップS1400でNO)、ロットに含まれるジョブの処理を開始すると判定し、処理はステップS1410に進む。
【0121】
ステップS1410において、スケジュール生成部158は、処理を開始するロットを決定する。ステップS1420において、スケジュール生成部158は、決定した処理を開始するロットに基づき、生産スケジュールを更新する。
【0122】
ステップS1430において、シミュレーション時刻設定部152は、終了条件が満たされたか否かを判定する。第1終了条件及び第2終了条件の両方が満たされないとシミュレーション時刻設定部152が判定すると(ステップS1430でNO)、処理はステップS1440に進む。一方、第1終了条件及び第2終了条件の少なくとも一方が満たされたとシミュレーション時刻設定部152が判定すると(ステップS1430でYES)、
図13、
図14の動作は終了する。
【0123】
ステップS1440において、シミュレーション時刻設定部152は、シミュレーション時刻を更新する。その後、処理はステップS1340に戻って、以上のステップが繰り返される。
【0124】
(第1実施形態の効果)
以上説明されたように、この第1実施形態では、最早ロット開始時刻計算部156は、最早ロット完成時刻がロット待ち限界時刻より遅いときは、最遅到着ジョブを抽出し、この最遅到着ジョブの最早到着時刻を最早ロット開始時刻として算出する。したがって、第1実施形態によれば、最小個数のジョブは揃わなくても、可能な限り多くの個数のジョブが揃ったロットとしてジョブを処理することができる。
【0125】
(第2実施形態)
第2実施形態は、最早ロット完成時刻がロット待ち限界時刻より遅いと判明した時点で、ロットに含まれるジョブの処理を開始すると判定する特許文献1に記載の技術と、最早ロット完成時刻がロット待ち限界時刻より遅いときは、最早到着時刻がロット待ち限界時刻より早いジョブのうち最遅到着ジョブの最早到着時刻に、ロットに含まれるジョブの処理を開始すると判定する第1実施形態とを、状況に応じて切り替えている。
【0126】
(第2実施形態の構成)
図15は、第2実施形態におけるシミュレーション装置100Aの構成の一例を概略的に示すブロック図である。
図15に示されるように、第2実施形態におけるシミュレーション装置100Aは、ディスプレイ110、入力部120、メモリ130A、記憶装置140A、及びCPU150Aを含む。
【0127】
メモリ130Aは、例えば半導体メモリ等により構成される。メモリ130Aは、例えばROM、RAM、EEPROMなどを含む。メモリ130AのROMは、CPU150Aを動作させる第2実施形態の制御プログラムを記憶する。
【0128】
CPU150Aは、メモリ130Aに記憶された第2実施形態の制御プログラムにしたがって動作することによって、ジョブ分類部151、シミュレーション時刻設定部152、最早到着時刻計算部153、最早ロット完成時刻計算部154、ロット待ち限界時刻計算部155、最早ロット開始時刻計算部156A、ロット処理判定部157、スケジュール生成部158、総待ち時間計算部159の機能を有する。
【0129】
記憶装置140Aは、例えばハードディスク又は半導体メモリ等により構成される。記憶装置140は、計画対象データ記憶部141、ロット条件記憶部142A、ジョブ情報記憶部143、スケジュールマスタ記憶部144、スケジュール記憶部145を含む。各記憶部141〜145は、互いに別の媒体で構成されてもよい。代替的に、各記憶部141〜145は、記憶領域が分けられた一つの媒体で構成されてもよい。
【0130】
第2実施形態のロット条件記憶部142Aは、第1実施形態のロット条件記憶部142(
図1)が記憶するデータに加えて、予め定められた基準待ち時間を記憶する。基準待ち時間については、後述される。
【0131】
総待ち時間計算部159は、最早ロット完成時刻がロット待ち限界時刻より遅いときに、ロットに含まれるジョブの処理を最遅到着ジョブの最早到着時刻に開始した場合の総待ち時間を算出する。最遅到着ジョブは、上述のように、最早到着時刻がロット待ち限界時刻より早いジョブのうち、最も遅く到着するジョブである。
【0132】
すなわち、総待ち時間計算部159は、シミュレーション対象の設備において、処理条件の種類ごとに、ジョブ情報記憶部143に記憶されている、ロット候補に含まれる未処理のジョブの最早到着時刻と、ロット待ち限界時刻計算部155により算出されたロット待ち限界時刻とを比較して、ロット待ち限界時刻までに到着する、ロット候補に含まれる未処理のジョブを取得する。総待ち時間計算部159が取得した未処理のジョブは、シミュレーション対象の設備に到着済みのジョブも含まれる。総待ち時間計算部159は、取得したジョブの最早到着時刻から最遅到着ジョブを抽出する。総待ち時間計算部159は、ジョブの処理を最遅到着ジョブの最早到着時刻に開始した場合の、全ジョブの待ち時間の和を総待ち時間として算出する。
【0133】
最早ロット開始時刻計算部156Aは、最早ロット完成時刻がロット待ち限界時刻より遅いときは、ロット条件記憶部142Aに記憶されている基準待ち時間と、総待ち時間計算部159により算出された総待ち時間とを比較する。最早ロット開始時刻計算部156Aは、基準待ち時間が総待ち時間以上のときは、最遅到着ジョブの最早到着時刻を最早ロット開始時刻として算出する。つまり、第1実施形態の動作を行う。一方、最早ロット開始時刻計算部156Aは、基準待ち時間が総待ち時間未満であって、シミュレーション対象の設備に到着済みのジョブが存在するときは、現在のシミュレーション時刻Tsを最早ロット開始時刻として算出する。
【0134】
(第2実施形態の動作の概要)
図16は、第2実施形態の動作の概要を説明するためのタイミングチャートである。
図16には、基準待ち時間と総待ち時間との大小関係が互いに異なる第1ケースと第2ケースとが示されている。第1ケース及び第2ケースの両方とも、設備Xにおいて処理条件X1でジョブが処理される。処理条件X1における最小個数は5個であり、基準待ち時間は10時間であり、最大待ち時間は8時間である。
【0135】
第1ケース及び第2ケースにおいて、シミュレーション時刻Tsは同じ10時であり、設備Xで処理されるジョブの数も、ジョブJ1〜J4の4個で同じである。
図16におけるシミュレーション時刻Ts(10時)は、例えば、設備Xにおいて実行されていた処理の終了時刻でもよい。
【0136】
図16には、
図9等と同様に、シミュレーション時刻TsにおけるジョブJ1〜J4の設備Xへの最早到着時刻又は実際に到着した時刻が示されている。時刻の横に付された星印は、時刻が各ジョブの最早到着時刻であることを表す。無印の時刻は、ジョブが設備Xに実際に到着した時刻を表す。
【0137】
第1ケースでは、ジョブJ1が既に8時に到着済みであり、最大待ち時間(8時間)後のロット待ち限界時刻Twは、16時である。第2ケースでも、ジョブJ1,J2が8時に到着済みであり、最大待ち時間(8時間)後のロット待ち限界時刻Twは、第1ケースと同様に、16時である。また、最早到着時刻がロット待ち限界時刻Twである16時より早いジョブのうちで、最も遅く到着する最遅到着ジョブ(
図16ではジョブJ4)の最早到着時刻は、第1ケース及び第2ケースの両方とも、14時である。第1ケース及び第2ケースの両方とも、シミュレーション時刻Tsである10時の時点で、ロット待ち限界時刻Twである16時までに、最小個数である5個のジョブは揃わないことが判明している。
【0138】
第1ケースにおいて、最遅到着ジョブ(ジョブJ4)の最早到着時刻(14時)にロットに含まれるジョブの処理を開始した場合の、各ジョブの待ち時間の和である総待ち時間は、
6時間(J1)+1時間(J2)+1時間(J3)+0時間(J4)
=8時間
である。基準待ち時間が10時間であるので、総待ち時間≦基準待ち時間となる。したがって、最早ロット開始時刻計算部156Aは、最遅到着ジョブ(ジョブJ4)の最早到着時刻である14時を最早ロット開始時刻として算出する。つまり、第1実施形態の動作が行われる。
【0139】
第2ケースにおいて、最遅到着ジョブ(ジョブJ4)の最早到着時刻(14時)にロットに含まれるジョブの処理を開始した場合の、各ジョブの待ち時間の和である総待ち時間は、
6時間(J1)+6時間(J2)+1時間(J3)+0時間(J4)
=13時間
である。基準待ち時間が10時間であるので、総待ち時間>基準待ち時間となる。したがって、最早ロット開始時刻計算部156Aは、現在のシミュレーション時刻Tsである10時を最早ロット開始時刻として算出する。つまり、特許文献1に記載の技術と同様の動作が行われる。
【0140】
(第2実施形態の動作手順)
図17、
図18は、第2実施形態におけるシミュレーション装置の動作手順の一例を概略的に示すフローチャートである。
図17のステップS1300〜S1360は、
図13のステップS1300〜S1360と同じである。
【0141】
ステップS1370において、最早ロット開始時刻計算部156Aは、シミュレーション対象の設備において、最早ロット完成時刻計算部154により算出された最早ロット完成時刻が、ロット待ち限界時刻計算部155により算出されたロット待ち限界時刻より遅いか否かを判定する。最早ロット完成時刻が、ロット待ち限界時刻より早いかロット待ち限界時刻と同じであれば(ステップS1370でNO)、処理はステップS1380に進む。一方、最早ロット完成時刻が、ロット待ち限界時刻より遅ければ(ステップS1370でYES)、処理はステップS1700に進む。ステップS1380において、最早ロット開始時刻計算部156Aは、最早ロット完成時刻を最早ロット開始時刻として算出する。その後、処理はステップS1400に進む。
【0142】
ステップS1700において、総待ち時間計算部159は、ロットに含まれるジョブの処理を、最遅到着ジョブの最早ロット開始時刻に開始する場合の、全ジョブの待ち時間の和を総待ち時間として算出する。ステップS1710において、最早ロット開始時刻計算部156Aは、ロット条件記憶部142Aに記憶されている基準待ち時間と、総待ち時間計算部159により算出された総待ち時間とを比較する。
【0143】
ステップS1720において、最早ロット開始時刻計算部156Aは、比較結果に基づき、最早ロット開始時刻を算出する。すなわち、最早ロット開始時刻計算部156Aは、基準待ち時間が総待ち時間以上のときは、最遅到着ジョブの最早到着時刻を最早ロット開始時刻として算出する。一方、最早ロット開始時刻計算部156Aは、基準待ち時間が総待ち時間未満であって、到着済みのジョブが存在するときは、現時点、つまり現在のシミュレーション時刻Tsを最早ロット開始時刻として算出する。その後、処理はステップS1400に進む。
図18のステップS1400〜S1440は、
図14のステップS1400〜S1440と同じである。
【0144】
(第2実施形態の効果)
以上説明されたように、この第2実施形態では、最早ロット完成時刻がロット待ち限界時刻より遅いときは、ロットに含まれるジョブの処理を、最遅到着ジョブの最早ロット開始時刻に開始する場合の、全ジョブの待ち時間の和が、総待ち時間として算出される。基準待ち時間が総待ち時間以上のときは、最遅到着ジョブの最早到着時刻が最早ロット開始時刻として算出される。一方、基準待ち時間が総待ち時間未満であって、到着済みのジョブが存在するときは、現時点、つまり現在のシミュレーション時刻Tsが、最早ロット開始時刻として算出される。
【0145】
基準待ち時間は、設備及び処理条件の種類ごとに事前に設定されて、ロット条件記憶部142に保存される。ユーザは、基準待ち時間を、過去の実績に基づき設定してもよく、経験的に設定してもよく、試行錯誤的に設定してもよい。
【0146】
基準待ち時間が大きい値に設定されると、総待ち時間≦基準待ち時間となる場合が増える。このため、可能な限り多くのジョブでロットが構成される。その結果、段取替え時間が減ることから、生産性重視の生産スケジュールが生成される。
【0147】
逆に、基準待ち時間が小さい値に設定されると、総待ち時間>基準待ち時間となる場合が増える。このため、ジョブが1つであってもロットの処理が開始される。その結果、設備(工程)において処理待ちのジョブが減ることから、滞留抑制重視の生産スケジュールが生成される。
【0148】
そこで、負荷が高い工程(つまりジョブに対する処理時間の合計が長い設備)では、基準待ち時間を大きい値に設定し、生産性重視の生産スケジュールを生成してもよい。負荷の低い工程(つまりジョブに対する処理時間の合計が短い設備)では、基準待ち時間を小さい値に設定し、滞留抑制重視の生産スケジュールを生成してもよい。このように、第2実施形態によれば、工程の特性に応じた生産スケジュールを生成することができる。
【0149】
(変形された実施形態)
(1)上記各実施形態では、シミュレーション時刻設定部152は、シミュレーション時刻を、「設備(工程)へのジョブの到着予定時刻」及び「設備(工程)におけるジョブに対する処理の終了時刻」のなかで、現在のシミュレーション時刻以降であって、最も早い時刻に更新しているが、これに限られない。例えば、シミュレーション時刻設定部152は、シミュレーション時刻を、一定の時間幅(例えば1時間)で更新してもよい。この場合には、シミュレーション対象の設備は、予め定められた順番で自動的に設定されてもよく、或いはユーザによって選択されてもよい。
【0150】
(2)上記実施形態では、
図8のステップS850において、変更対象設備の全てのタスクが選択されたか否かを判定しているが、これに限られない。
図7のステップS1310のシミュレーションにおいて、作業開始時刻又は作業終了時刻が変更されたタスクのみが選択されるようにしてもよい。すなわち、例えば
図4のセクション(B)において、タスク11〜14のみが選択されるようにしてもよい。タスク15〜17は、作業開始時刻及び作業終了時刻が変更されていないため、前工程タスクの後工程向け期限時刻と、後工程タスクの最短工程間時間完了時刻とは、変化しないので、再計算する必要が無いからである。