(57)【要約】【課題】ロットまとめ処理を行うためにジョブが揃うのを待機している時に、どの時点でジョブに対する処理を開始すべきかをさらに適切に判定する。【解決手段】シミュレーション装置の最早ロット開始時刻計算部は、最早ロット完成時刻がロット待ち限界時刻より遅くないと判定すると、最早ロット完成時刻を最早ロット開始時刻として算出し、最早ロット完成時刻がロット待ち限界時刻より遅いと判定すると、ロット候補に分類されたジョブであってロット待ち限界時刻より早く到着するジョブのうち最も遅く到着するジョブの最早到着時刻を最早ロット開始時刻として算出する。ロット処理判定部は、シミュレーション時刻が最早ロット開始時刻より早いときには、ロット候補に分類されたジョブの処理を開始しないと判定し、シミュレーション時刻が最早ロット開始時刻以降のときには、ロット候補に分類されたジョブの処理を開始すると判定する。【選択図】図１
2018159994.tif 000002
【特許請求の範囲】
【請求項１】
複数種類のジョブをそれぞれ複数工程のうち所定の順序で所定の通過工程において処理して前記複数種類の製品を製造する生産ラインにおいて、前記通過工程において前記ジョブを処理する処理条件が同一である１以上のジョブをロットとしてまとめて前記通過工程において連続して処理する際に、前記ロットに含まれる前記ジョブの処理を開始するか否かを判定するシミュレーションを実行するシミュレーション装置であって、
前記複数種類のジョブと、前記複数種類のジョブごとの前記通過工程と、前記通過工程において前記複数種類のジョブをそれぞれ処理する際の処理条件の種類と、を予め記憶している計画対象データ記憶部と、
前記通過工程における前記処理条件の種類と、前記処理条件の種類ごとに予め設定された、前記ロットを構成するジョブが揃ったと判定される最小個数と、前記処理条件の種類ごとに予め設定された、前記通過工程に前記ロットを構成する最初のジョブが到着してから前記ジョブが処理されずに待つことができる最大待ち時間と、を含むロット条件を前記通過工程ごとに予め記憶しているロット条件記憶部と、
前記計画対象データ記憶部に記憶されている前記複数種類のジョブ及び前記処理条件の種類と、前記ロット条件記憶部に記憶されている前記ロット条件に含まれる前記処理条件の種類とを用いて、前記処理条件の種類ごとに、前記ロットを構成するロット候補として前記複数種類のジョブを分類するジョブ分類部と、
前記シミュレーションを実行する時刻であるシミュレーション時刻を設定するシミュレーション時刻設定部と、
前記通過工程ごとに、前記シミュレーション時刻において処理が開始されていない前記ジョブについて、全ての前記通過工程における処理の待ち時間が無いと仮定した場合において前記通過工程に前記ジョブが到着する予定の時刻である最早到着時刻を算出する最早到着時刻計算部と、
前記シミュレーション時刻において処理が開始されていない前記ロットについて、前記ロットごとに、前記最早到着時刻と前記ロット条件に含まれる前記最小個数とを用いて、前記ロット候補に分類された前記ジョブが前記最小個数揃う最も早い時刻である最早ロット完成時刻を算出する最早ロット完成時刻計算部と、
前記シミュレーション時刻において処理が開始されていない前記ロットについて、前記ロットごとに、前記ロット候補に分類された最初の前記ジョブが前記通過工程に到着した時刻と、前記ロット条件記憶部に記憶されている前記ロット条件に含まれる前記最大待ち時間とを用いて、前記最初のジョブが待つことのできる最も遅い時刻であるロット待ち限界時刻を算出するロット待ち限界時刻計算部と、
前記シミュレーション時刻において処理が開始されていない前記ロットについて、前記ロットごとに、最早ロット開始時刻を算出する最早ロット開始時刻計算部と、
前記シミュレーション時刻において処理が開始されていない前記ロットについて、前記ロットごとに、前記ロット候補に分類された前記ジョブの処理を開始するか否かを判定するロット処理判定部と、
を備え、
前記最早ロット開始時刻計算部は、前記最早ロット完成時刻が前記ロット待ち限界時刻より遅いか否かを判定し、前記最早ロット完成時刻が前記ロット待ち限界時刻より遅くないと判定すると、前記最早ロット完成時刻を前記最早ロット開始時刻として算出し、前記最早ロット完成時刻が前記ロット待ち限界時刻より遅いと判定すると、前記ロット候補に分類された前記ジョブであって前記ロット待ち限界時刻より早く到着するジョブのうち最も遅く到着するジョブである最遅到着ジョブの前記最早到着時刻を前記最早ロット開始時刻として算出し、
前記ロット処理判定部は、前記シミュレーション時刻が前記最早ロット開始時刻より早いときには、前記ロット候補に分類された前記ジョブの処理を開始しないと判定し、前記シミュレーション時刻が前記最早ロット開始時刻以降のときには、前記ロット候補に分類された前記ジョブの処理を開始すると判定する、
シミュレーション装置。
【請求項２】
前記最早ロット完成時刻が前記ロット待ち限界時刻より遅いと前記最早ロット開始時刻計算部により判定されると、前記最遅到着ジョブの前記最早到着時刻に前記ロット候補に分類された前記ジョブの処理が開始された場合における、処理が開始された全ての前記ジョブの、前記最遅到着ジョブの前記最早到着時刻までの待ち時間の合計である総待ち時間を算出する総待ち時間計算部、をさらに備え、
前記ロット条件記憶部は、予め定められた基準待ち時間を記憶し、
前記最早ロット開始時刻計算部は、前記最早ロット完成時刻が前記ロット待ち限界時刻より遅いと判定すると、さらに、前記基準待ち時間と前記総待ち時間とを比較し、前記基準待ち時間が前記総待ち時間以上のときは、前記最遅到着ジョブの前記最早到着時刻を前記最早ロット開始時刻として算出し、前記基準待ち時間が前記総待ち時間未満のときは、前記シミュレーション時刻を前記最早ロット開始時刻として算出する、
請求項１に記載のシミュレーション装置。
【請求項３】
前記基準待ち時間は、前記通過工程における前記処理条件の種類ごとに、前記通過工程における前記処理条件の種類に対応する前記ジョブの処理時間の合計が、長い場合は短い場合に比べて大きい値に設定される、
請求項２に記載のシミュレーション装置。
【請求項４】
前記シミュレーション時刻設定部は、前記ロット処理判定部が前記ロット候補に分類された前記ジョブの処理を開始するか否かを判定すると、現在の前記シミュレーション時刻以降であって、算出されている前記通過工程への前記最早到着時刻と、前記通過工程における前記ジョブに対する処理終了時刻とのうち、最も早い時刻を、次の前記シミュレーション時刻に設定する、
請求項１〜３のいずれか１項に記載のシミュレーション装置。
【請求項５】
複数種類のジョブをそれぞれ複数工程のうち所定の順序で所定の通過工程において処理して前記複数種類の製品を製造する生産ラインにおいて、前記通過工程において前記ジョブを処理する処理条件が同一である１以上のジョブをロットとしてまとめて前記通過工程において連続して処理する際に、前記ロットに含まれる前記ジョブの処理を開始するか否かを判定するシミュレーションを実行するシミュレーション方法であって、
前記シミュレーション方法は、
前記複数種類のジョブと、前記複数種類のジョブごとの前記通過工程と、前記通過工程において前記複数種類のジョブをそれぞれ処理する際の処理条件の種類と、を予め記憶している計画対象データ記憶部と、
前記通過工程における前記処理条件の種類と、前記処理条件の種類ごとに予め設定された、前記ロットを構成するジョブが揃ったと判定される最小個数と、前記処理条件の種類ごとに予め設定された、前記通過工程に前記ロットを構成する最初のジョブが到着してから前記ジョブが処理されずに待つことができる最大待ち時間と、を含むロット条件を前記通過工程ごとに予め記憶しているロット条件記憶部と、
を備えるシミュレーション装置に用いられ、
前記シミュレーション方法は、
前記計画対象データ記憶部に記憶されている前記複数種類のジョブ及び前記処理条件の種類と、前記ロット条件記憶部に記憶されている前記ロット条件に含まれる前記処理条件の種類とを用いて、前記処理条件の種類ごとに、前記ロットを構成するロット候補として前記複数種類のジョブを分類するジョブ分類ステップと、
前記シミュレーションを実行する時刻であるシミュレーション時刻を設定するシミュレーション時刻設定ステップと、
前記通過工程ごとに、前記シミュレーション時刻において処理が開始されていない前記ジョブについて、全ての前記通過工程における処理の待ち時間が無いと仮定した場合において前記通過工程に前記ジョブが到着する予定の時刻である最早到着時刻を算出する最早到着時刻計算ステップと、
前記シミュレーション時刻において処理が開始されていない前記ロットについて、前記ロットごとに、前記最早到着時刻と前記ロット条件に含まれる前記最小個数とを用いて、前記ロット候補に分類された前記ジョブが前記最小個数揃う最も早い時刻である最早ロット完成時刻を算出する最早ロット完成時刻計算ステップと、
前記シミュレーション時刻において処理が開始されていない前記ロットについて、前記ロットごとに、前記ロット候補に分類された最初の前記ジョブが前記通過工程に到着した時刻と、前記ロット条件記憶部に記憶されている前記ロット条件に含まれる前記最大待ち時間とを用いて、前記最初のジョブが待つことのできる最も遅い時刻であるロット待ち限界時刻を算出するロット待ち限界時刻計算ステップと、
前記シミュレーション時刻において処理が開始されていない前記ロットについて、前記ロットごとに、最早ロット開始時刻を算出する最早ロット開始時刻計算ステップと、
前記シミュレーション時刻において処理が開始されていない前記ロットについて、前記ロットごとに、前記ロット候補に分類された前記ジョブの処理を開始するか否かを判定するロット処理判定ステップと、
を備え、
前記最早ロット開始時刻計算ステップは、前記最早ロット完成時刻が前記ロット待ち限界時刻より遅いか否かを判定し、前記最早ロット完成時刻が前記ロット待ち限界時刻より遅くないと判定すると、前記最早ロット完成時刻を前記最早ロット開始時刻として算出し、前記最早ロット完成時刻が前記ロット待ち限界時刻より遅いと判定すると、前記ロット候補に分類された前記ジョブであって前記ロット待ち限界時刻より早く到着するジョブのうち最も遅く到着するジョブである最遅到着ジョブの前記最早到着時刻を前記最早ロット開始時刻として算出し、
前記ロット処理判定ステップは、前記シミュレーション時刻が前記最早ロット開始時刻より早いときには、前記ロット候補に分類された前記ジョブの処理を開始しないと判定し、前記シミュレーション時刻が前記最早ロット開始時刻以降のときには、前記ロット候補に分類された前記ジョブの処理を開始すると判定する、
シミュレーション方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数種類のジョブをそれぞれ複数工程で処理して製品を製造する生産ラインにおいて、各工程で同一の処理条件で処理されるジョブをロットにまとめて処理する際に、ロットに含まれるジョブの処理を開始するか否かを判定するシミュレーションを実行するシミュレーション装置及び方法に関するものである。
【背景技術】
【０００２】
従来、多数の工程を経て多数の品種の製品を生産する生産ラインでは、生産のコスト及び効率性の観点から、工程ごとに同一の処理条件で複数の製品をまとめて処理することが行われている。このまとめて処理される単位は、「ロット」と称される。ロットにまとめる際には、同種のジョブをなるべく数多くまとめて処理する方が、処理条件を変更するための段取替えの手間及び時間を削減できるため、効率的である。しかし、ロットにまとめる数を多くするためにジョブに対する処理を開始せずにジョブを待機させることは、製品の納期遅れ及び中間工程における在庫量の増加を引き起こすので、好ましくない。
【０００３】
したがって、ロットにまとめるためのジョブが揃いにくい処理条件については、どの時点でジョブに対する処理を開始すべきかを適切に決定することが、生産効率向上、中間工程における在庫量の低減、製品の納期遵守という観点から課題となっている。
【０００４】
特許文献１に記載の技術では、ロットにまとめるジョブの最小個数と、ロットにまとめる際にジョブが待機できる最大待ち時間とが予め設定されている。最小個数のジョブが工程に到着すると、ロットが揃ったと判定される。工程に最初に到着したジョブは、最大待ち時間を超えて待機することができない。そして、特許文献１に記載の技術では、最大待ち時間までにロットが最小個数揃わないことが判明すると、最大待ち時間までジョブを待たせることなく、ジョブの処理を開始している。これによって、ジョブを無駄に待たせるような事態を回避している。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特許第４８４６９９５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、上記特許文献１に記載の技術に対して、生産効率向上、中間工程における在庫量の低減、製品の納期遵守という観点から、ロットまとめ処理を行うためにジョブが揃うのを待機している時に、どの時点でジョブに対する処理を開始すべきかをさらに適切に判定することが望まれている。
【０００７】
本発明は、上記問題を解決するもので、ロットまとめ処理を行うためにジョブが揃うのを待機している時に、どの時点でジョブに対する処理を開始すべきかをさらに適切に判定することが可能なシミュレーション装置および方法を提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明の第１態様は、
複数種類のジョブをそれぞれ複数工程のうち所定の順序で所定の通過工程において処理して前記複数種類の製品を製造する生産ラインにおいて、前記通過工程において前記ジョブを処理する処理条件が同一である１以上のジョブをロットとしてまとめて前記通過工程において連続して処理する際に、前記ロットに含まれる前記ジョブの処理を開始するか否かを判定するシミュレーションを実行するシミュレーション装置であって、
前記複数種類のジョブと、前記複数種類のジョブごとの前記通過工程と、前記通過工程において前記複数種類のジョブをそれぞれ処理する際の処理条件の種類と、を予め記憶している計画対象データ記憶部と、
前記通過工程における前記処理条件の種類と、前記処理条件の種類ごとに予め設定された、前記ロットを構成するジョブが揃ったと判定される最小個数と、前記処理条件の種類ごとに予め設定された、前記通過工程に前記ロットを構成する最初のジョブが到着してから前記ジョブが処理されずに待つことができる最大待ち時間と、を含むロット条件を前記通過工程ごとに予め記憶しているロット条件記憶部と、
前記計画対象データ記憶部に記憶されている前記複数種類のジョブ及び前記処理条件の種類と、前記ロット条件記憶部に記憶されている前記ロット条件に含まれる前記処理条件の種類とを用いて、前記処理条件の種類ごとに、前記ロットを構成するロット候補として前記複数種類のジョブを分類するジョブ分類部と、
前記シミュレーションを実行する時刻であるシミュレーション時刻を設定するシミュレーション時刻設定部と、
前記通過工程ごとに、前記シミュレーション時刻において処理が開始されていない前記ジョブについて、全ての前記通過工程における処理の待ち時間が無いと仮定した場合において前記通過工程に前記ジョブが到着する予定の時刻である最早到着時刻を算出する最早到着時刻計算部と、
前記シミュレーション時刻において処理が開始されていない前記ロットについて、前記ロットごとに、前記最早到着時刻と前記ロット条件に含まれる前記最小個数とを用いて、前記ロット候補に分類された前記ジョブが前記最小個数揃う最も早い時刻である最早ロット完成時刻を算出する最早ロット完成時刻計算部と、
前記シミュレーション時刻において処理が開始されていない前記ロットについて、前記ロットごとに、前記ロット候補に分類された最初の前記ジョブが前記通過工程に到着した時刻と、前記ロット条件記憶部に記憶されている前記ロット条件に含まれる前記最大待ち時間とを用いて、前記最初のジョブが待つことのできる最も遅い時刻であるロット待ち限界時刻を算出するロット待ち限界時刻計算部と、
前記シミュレーション時刻において処理が開始されていない前記ロットについて、前記ロットごとに、最早ロット開始時刻を算出する最早ロット開始時刻計算部と、
前記シミュレーション時刻において処理が開始されていない前記ロットについて、前記ロットごとに、前記ロット候補に分類された前記ジョブの処理を開始するか否かを判定するロット処理判定部と、
を備え、
前記最早ロット開始時刻計算部は、前記最早ロット完成時刻が前記ロット待ち限界時刻より遅いか否かを判定し、前記最早ロット完成時刻が前記ロット待ち限界時刻より遅くないと判定すると、前記最早ロット完成時刻を前記最早ロット開始時刻として算出し、前記最早ロット完成時刻が前記ロット待ち限界時刻より遅いと判定すると、前記ロット候補に分類された前記ジョブであって前記ロット待ち限界時刻より早く到着するジョブのうち最も遅く到着するジョブである最遅到着ジョブの前記最早到着時刻を前記最早ロット開始時刻として算出し、
前記ロット処理判定部は、前記シミュレーション時刻が前記最早ロット開始時刻より早いときには、前記ロット候補に分類された前記ジョブの処理を開始しないと判定し、前記シミュレーション時刻が前記最早ロット開始時刻以降のときには、前記ロット候補に分類された前記ジョブの処理を開始すると判定するものである。
【０００９】
本発明の第２態様は、
複数種類のジョブをそれぞれ複数工程のうち所定の順序で所定の通過工程において処理して前記複数種類の製品を製造する生産ラインにおいて、前記通過工程において前記ジョブを処理する処理条件が同一である１以上のジョブをロットとしてまとめて前記通過工程において連続して処理する際に、前記ロットに含まれる前記ジョブの処理を開始するか否かを判定するシミュレーションを実行するシミュレーション方法であって、
前記シミュレーション方法は、
前記複数種類のジョブと、前記複数種類のジョブごとの前記通過工程と、前記通過工程において前記複数種類のジョブをそれぞれ処理する際の処理条件の種類と、を予め記憶している計画対象データ記憶部と、
前記通過工程における前記処理条件の種類と、前記処理条件の種類ごとに予め設定された、前記ロットを構成するジョブが揃ったと判定される最小個数と、前記処理条件の種類ごとに予め設定された、前記通過工程に前記ロットを構成する最初のジョブが到着してから前記ジョブが処理されずに待つことができる最大待ち時間と、を含むロット条件を前記通過工程ごとに予め記憶しているロット条件記憶部と、
を備えるシミュレーション装置に用いられ、
前記シミュレーション方法は、
前記計画対象データ記憶部に記憶されている前記複数種類のジョブ及び前記処理条件の種類と、前記ロット条件記憶部に記憶されている前記ロット条件に含まれる前記処理条件の種類とを用いて、前記処理条件の種類ごとに、前記ロットを構成するロット候補として前記複数種類のジョブを分類するジョブ分類ステップと、
前記シミュレーションを実行する時刻であるシミュレーション時刻を設定するシミュレーション時刻設定ステップと、
前記通過工程ごとに、前記シミュレーション時刻において処理が開始されていない前記ジョブについて、全ての前記通過工程における処理の待ち時間が無いと仮定した場合において前記通過工程に前記ジョブが到着する予定の時刻である最早到着時刻を算出する最早到着時刻計算ステップと、
前記シミュレーション時刻において処理が開始されていない前記ロットについて、前記ロットごとに、前記最早到着時刻と前記ロット条件に含まれる前記最小個数とを用いて、前記ロット候補に分類された前記ジョブが前記最小個数揃う最も早い時刻である最早ロット完成時刻を算出する最早ロット完成時刻計算ステップと、
前記シミュレーション時刻において処理が開始されていない前記ロットについて、前記ロットごとに、前記ロット候補に分類された最初の前記ジョブが前記通過工程に到着した時刻と、前記ロット条件記憶部に記憶されている前記ロット条件に含まれる前記最大待ち時間とを用いて、前記最初のジョブが待つことのできる最も遅い時刻であるロット待ち限界時刻を算出するロット待ち限界時刻計算ステップと、
前記シミュレーション時刻において処理が開始されていない前記ロットについて、前記ロットごとに、最早ロット開始時刻を算出する最早ロット開始時刻計算ステップと、
前記シミュレーション時刻において処理が開始されていない前記ロットについて、前記ロットごとに、前記ロット候補に分類された前記ジョブの処理を開始するか否かを判定するロット処理判定ステップと、
を備え、
前記最早ロット開始時刻計算ステップは、前記最早ロット完成時刻が前記ロット待ち限界時刻より遅いか否かを判定し、前記最早ロット完成時刻が前記ロット待ち限界時刻より遅くないと判定すると、前記最早ロット完成時刻を前記最早ロット開始時刻として算出し、前記最早ロット完成時刻が前記ロット待ち限界時刻より遅いと判定すると、前記ロット候補に分類された前記ジョブであって前記ロット待ち限界時刻より早く到着するジョブのうち最も遅く到着するジョブである最遅到着ジョブの前記最早到着時刻を前記最早ロット開始時刻として算出し、
前記ロット処理判定ステップは、前記シミュレーション時刻が前記最早ロット開始時刻より早いときには、前記ロット候補に分類された前記ジョブの処理を開始しないと判定し、前記シミュレーション時刻が前記最早ロット開始時刻以降のときには、前記ロット候補に分類された前記ジョブの処理を開始すると判定するものである。
【００１０】
第１及び第２態様では、シミュレーション時刻において処理が開始されていないロットについて、ロットごとに、最早ロット完成時刻がロット待ち限界時刻より遅いか否かが判定される。最早ロット完成時刻がロット待ち限界時刻より遅くない場合には、ロット待ち限界時刻までにロットを構成するジョブが最小個数揃うことになる。この場合、最早ロット完成時刻が最早ロット開始時刻として算出される。シミュレーション時刻が最早ロット開始時刻以降のときには、ロット候補に分類されたジョブの処理を開始すると判定される。したがって、最小個数のジョブが揃ったロットの処理を開始することができる。
【００１１】
一方、最早ロット完成時刻がロット待ち限界時刻より遅い場合には、ロット待ち限界時刻までにロットを構成する最小個数のジョブが揃わない。この場合、ロット候補に分類されたジョブであってロット待ち限界時刻より早く到着するジョブのうち最も遅く到着するジョブである最遅到着ジョブの最早到着時刻が、最早ロット開始時刻として算出される。シミュレーション時刻が最早ロット開始時刻以降のときには、ロット候補に分類されたジョブの処理を開始すると判定される。したがって、最小個数のジョブは揃わないが、ロット待ち限界時刻までに到着した全てのジョブをロットとして処理することができる。その結果、ロットまとめ処理を行うためにジョブが揃うのを待機している時に、どの時点でジョブに対する処理を開始すべきかをさらに適切に判定することが可能となっている。
【００１２】
上記第１態様において、例えば、前記最早ロット完成時刻が前記ロット待ち限界時刻より遅いと前記最早ロット開始時刻計算部により判定されると、前記最遅到着ジョブの前記最早到着時刻に前記ロット候補に分類された前記ジョブの処理が開始された場合における、処理が開始された全ての前記ジョブの、前記最遅到着ジョブの前記最早到着時刻までの待ち時間の合計である総待ち時間を算出する総待ち時間計算部、をさらに備えてもよい。前記ロット条件記憶部は、予め定められた基準待ち時間を記憶してもよい。前記最早ロット開始時刻計算部は、前記最早ロット完成時刻が前記ロット待ち限界時刻より遅いと判定すると、さらに、前記基準待ち時間と前記総待ち時間とを比較し、前記基準待ち時間が前記総待ち時間以上のときは、前記最遅到着ジョブの前記最早到着時刻を前記最早ロット開始時刻として算出し、前記基準待ち時間が前記総待ち時間未満のときは、前記シミュレーション時刻を前記最早ロット開始時刻として算出してもよい。
【００１３】
本態様では、最早ロット完成時刻がロット待ち限界時刻より遅い場合には、ロット待ち限界時刻までにロットを構成する最小個数のジョブが揃わない。このとき、最遅到着ジョブの最早到着時刻にロット候補に分類されたジョブの処理が開始された場合における、処理が開始された全てのジョブの、最遅到着ジョブの最早到着時刻までの待ち時間の合計である総待ち時間が算出される。最早ロット完成時刻がロット待ち限界時刻より遅いと判定されると、さらに、基準待ち時間と総待ち時間とが比較される。
【００１４】
基準待ち時間が総待ち時間以上のときは、最遅到着ジョブの最早到着時刻が最早ロット開始時刻として算出される。したがって、基準待ち時間を大きい値に設定すると、可能な限り多くのジョブでロットが構成される。その結果、処理条件を変更するための段取替え時間が減ることから、生産性を向上することが可能になる。
【００１５】
一方、基準待ち時間が総待ち時間未満のときは、シミュレーション時刻が最早ロット開始時刻として算出される。したがって、基準待ち時間を小さい値に設定すると、到着済みのジョブが１つであってもロットの処理が開始される。その結果、工程において処理待ちのジョブが減ることから、ジョブの滞留を抑制することが可能になる。
【００１６】
上記第１態様において、例えば、前記基準待ち時間は、前記通過工程における前記処理条件の種類ごとに、前記通過工程における前記処理条件の種類に対応する前記ジョブの処理時間の合計が、長い場合は短い場合に比べて大きい値に設定されてもよい。
【００１７】
通過工程における処理条件の種類に対応するジョブの処理時間の合計が、長いということは、短い場合に比べて、工程の負荷が高いことを意味しており、生産性を向上することが望まれる。したがって、本態様によれば、基準待ち時間を大きい値に設定することによって、生産性を向上することが可能になる。
【００１８】
上記第１態様において、例えば、前記シミュレーション時刻設定部は、前記ロット処理判定部が前記ロット候補に分類された前記ジョブの処理を開始するか否かを判定すると、現在の前記シミュレーション時刻以降であって、算出されている前記通過工程への前記最早到着時刻と、前記通過工程における前記ジョブに対する処理終了時刻とのうち、最も早い時刻を、次の前記シミュレーション時刻に設定してもよい。
【００１９】
本態様では、現在のシミュレーション時刻以降であって、算出されている通過工程への最早到着時刻と、通過工程におけるジョブに対する処理終了時刻とのうち、最も早い時刻が、次のシミュレーション時刻に設定される。したがって、本態様によれば、シミュレーション時刻を節目の時刻に漏れなく設定することができる。
【発明の効果】
【００２０】
本発明によれば、ロットまとめ処理を行うためにジョブが揃うのを待機している時に、どの時点でジョブに対する処理を開始すべきかをさらに適切に判定することが可能となっている。
【図面の簡単な説明】
【００２１】
【図１】第１実施形態におけるシミュレーション装置の構成の一例を概略的に示すブロック図である。
【図２】シミュレーション時刻におけるジョブの動きの一例を概略的に表すタイミングチャートである。
【図３】シミュレーション時刻におけるジョブの動きの一例を概略的に表すタイミングチャートである。
【図４】シミュレーション時刻におけるジョブの動きの一例を概略的に表すタイミングチャートである。
【図５】シミュレーション時刻におけるジョブの動きの一例を概略的に表すタイミングチャートである。
【図６】シミュレーション時刻においてロット処理の開始が決定される前の最早到着時刻を示すタイミングチャートである。
【図７】図６と同じシミュレーション時刻においてロット処理の開始が決定された後に更新された最早到着時刻を示すタイミングチャートである。
【図８】第１実施形態の動作の特徴を説明するためのタイミングチャートである。
【図９】第１実施形態における、シミュレーション時刻におけるジョブの動きの一例を概略的に表すタイミングチャートである。
【図１０】第１実施形態における、シミュレーション時刻におけるジョブの動きの一例を概略的に表すタイミングチャートである。
【図１１】第１実施形態における、シミュレーション時刻におけるジョブの動きの一例を概略的に表すタイミングチャートである。
【図１２】第１実施形態における、シミュレーション時刻におけるジョブの動きの一例を概略的に表すタイミングチャートである。
【図１３】第１実施形態におけるシミュレーション装置の動作手順の一例を概略的に示すフローチャートである。
【図１４】第１実施形態におけるシミュレーション装置の動作手順の一例を概略的に示すフローチャートである。
【図１５】第２実施形態におけるシミュレーション装置の構成の一例を概略的に示すブロック図である。
【図１６】第２実施形態の動作の概要を説明するためのタイミングチャートである。
【図１７】第２実施形態におけるシミュレーション装置の動作手順の一例を概略的に示すフローチャートである。
【図１８】第２実施形態におけるシミュレーション装置の動作手順の一例を概略的に示すフローチャートである。
【発明を実施するための形態】
【００２２】
（本発明の基礎となった知見）
まず、本発明の基礎となった知見を説明するために、特許文献１に記載の技術が詳述される。上述のように、特許文献１に記載の技術では、ロットにまとめるジョブの最小個数と、ロットにまとめる際にジョブが待機できる最大待ち時間とが予め設定されている。最大待ち時間は、ジョブが処理されずに待つことができる最大時間である。最大待ち時間経過時にジョブに対する処理が開始されると、最大待ち時間は、直前工程の処理完了時刻から当該工程の処理開始時刻までの時間ということになる。
【００２３】
特許文献１に記載の技術では、各ジョブの各工程への到着時刻等を計算するシミュレーションが所定のシミュレーション時刻に実行される。まず、シミュレーション時刻において未だ処理されていないジョブについて、残りの後工程への最早到着時刻が計算される。最早到着時刻は、計算対象のジョブが他のジョブに邪魔されないと仮定したときに、計算対象のジョブが計算対象の工程に到着すると予想される時刻である。計算対象のジョブが他のジョブに邪魔されないと仮定しているため、この到着予想時刻は、計算対象のジョブが計算対象の工程に到着可能な時刻のうち最も早い時刻となる。
【００２４】
なお、最早到着時刻は、シミュレーションが進むにつれて、将来方向に更新される。つまり、新たにシミュレーションが実行されると、前回のシミュレーション時に比べて、最早到着時刻は、通常、後ろの時刻に移動する。なぜなら、実際には、計算対象のジョブは他のジョブに邪魔されている。つまり、計算対象のジョブは、他のジョブが処理中であれば処理されずに待機している。このため、計算対象のジョブの各工程への到着予想時刻が徐々に遅れるからである。
【００２５】
次に、ある設備において、同一の処理条件で処理が実行されるジョブ同士を１つのロットにまとめることが検討される。その際に、ロットにできる最小個数が最も早く揃う時刻である最早ロット完成時刻が、各ジョブの最早到着時刻を用いて計算される。
【００２６】
そして、最早ロット完成時刻まで当該ロットを構成するジョブを処理せずに待機させると、最大待ち時間の制約に違反するジョブが発生するということが、シミュレーション時刻に判明する場合がある。その場合には、最小個数が揃っていなくても、そのシミュレーション時刻において、当該ロットを構成するジョブの処理を開始すると判定される。
【００２７】
したがって、特許文献１に記載の技術によれば、ジョブが処理されずに待つことができる最大待ち時間が経過するまでに、最小個数のジョブが揃わないということが判定されると、ジョブの処理が開始される。このため、最大待ち時間までジョブを待たせることがない。その結果、ジョブに無駄な待ちを発生させることが回避され、製品の製造におけるリードタイムの短縮及び納期遅れの防止を実現することができる。
【００２８】
このように、特許文献１に記載の技術では、最大待ち時間までに最小個数のジョブが揃わないということが判定された時点で、ロットを構成するジョブの処理を開始すると判定される。したがって、もう少し待機すれば、ロットを構成するジョブを増やすことができる場合でも、待機することなく処理が開始される。このため、過度に少ない個数のジョブがロットとして処理される場合がある。その結果、処理条件を変更するための段取替えの作業及び時間が増えてしまう。
【００２９】
そこで、本発明者は、ロットに設定された最小個数のジョブが最大待ち時間までに揃わない場合であっても、ジョブの個数が過度に少ないロットが発生するのを防止する技術を想到するに至った。これによって、段取替えの回数及び時間が増加するのを抑制することができ、生産性を高めることが可能となった。
【００３０】
また、本発明者は、最大待ち時間までに最小個数のジョブが揃わないということが判定された時点で、ロットを構成するジョブの処理を開始すると判定する特許文献１に記載の技術と、最大待ち時間までに最小個数のジョブが揃わないときは、最早到着時刻がロット待ち限界時刻より早いジョブのうち最も遅い最遅到着ジョブの最早到着時刻に、ロットに含まれるジョブの処理を開始すると判定する形態とを、状況に応じて切り替える技術を想到するに至った。これによって、工程の状況に応じた生産スケジュールを生成することが可能となった。
【００３１】
（実施の形態）
以下、本発明の実施の形態について、図面を参照しながら説明する。なお、各図面において、同じ構成要素については同じ符号が用いられ、適宜、詳細な説明は省略される。
【００３２】
（第１実施形態の構成）
図１は、第１実施形態におけるシミュレーション装置１００の構成の一例を概略的に示すブロック図である。図１に示されるように、第１実施形態におけるシミュレーション装置１００は、ディスプレイ１１０、入力部１２０、メモリ１３０、記憶装置１４０、及び中央演算処理装置（ＣＰＵ）１５０を含む。
【００３３】
この第１実施形態におけるシミュレーション装置１００は、複数の工程を経て複数種類の製品を製造する生産ラインにおける生産スケジュールの作成を支援する。各製品を製造するための材料である半製品は、それぞれ所定の順序で各工程を通過する。各工程では、それぞれ所定の設備において所定の処理条件で、各半製品が処理される。工程と設備とは、１対１に対応している。同じ工程（つまり同じ設備）であっても、処理される半製品によって、処理条件が異なることがあり得る。
【００３４】
所定の順序で各工程を通過する半製品は、「ジョブ」と称される。ジョブは、工程から工程へ搬送され、それぞれの工程で処理されて、その結果、製品が製造される。各工程における半製品（ジョブ）に対する処理は、「タスク」と称される。各工程では、異なるジョブに対して、順番にタスクが実行される。
【００３５】
ディスプレイ１１０は、例えば液晶ディスプレイパネルを含む。ディスプレイ１１０は、ＣＰＵ１５０により制御されて、例えば生産スケジュールを表すガントチャート等を表示する。なお、ディスプレイ１１０は、液晶ディスプレイパネルに限られない。ディスプレイ１１０は、有機ＥＬ（ｅｌｅｃｔｒｏｌｕｍｉｎｅｓｃｅｎｃｅ）パネルなどの他のパネルを含んでもよい。
【００３６】
入力部１２０は、例えばマウス及びキーボードを含む。入力部１２０は、ユーザにより操作されると、その操作内容を示す操作信号をＣＰＵ１５０に出力する。なお、ディスプレイ１１０がタッチパネル式ディスプレイの場合には、マウス及びキーボードに代えて、タッチパネル式ディスプレイが入力部１２０を兼用してもよい。
【００３７】
メモリ１３０は、例えば半導体メモリ等により構成される。メモリ１３０は、例えばリードオンリーメモリ（ＲＯＭ）、ランダムアクセスメモリ（ＲＡＭ）、電気的に消去書き換え可能なＲＯＭ（ＥＥＰＲＯＭ）などを含む。メモリ１３０のＲＯＭは、ＣＰＵ１５０を動作させる第１実施形態の制御プログラムを記憶する。
【００３８】
ＣＰＵ１５０は、メモリ１３０に記憶された第１実施形態の制御プログラムにしたがって動作することによって、ジョブ分類部１５１、シミュレーション時刻設定部１５２、最早到着時刻計算部１５３、最早ロット完成時刻計算部１５４、ロット待ち限界時刻計算部１５５、最早ロット開始時刻計算部１５６、ロット処理判定部１５７、スケジュール生成部１５８の機能を有する。ＣＰＵ１５０の各機能は、後述される。
【００３９】
記憶装置１４０は、例えばハードディスク又は半導体メモリ等により構成される。記憶装置１４０は、計画対象データ記憶部１４１、ロット条件記憶部１４２、ジョブ情報記憶部１４３、スケジュールマスタ記憶部１４４、スケジュール記憶部１４５を含む。各記憶部１４１〜１４５は、互いに別の媒体で構成されてもよい。代替的に、各記憶部１４１〜１４５は、記憶領域が分けられた一つの媒体で構成されてもよい。
【００４０】
計画対象データ記憶部１４１は、ジョブ番号と、通過工程と、通過工程における処理条件の種類とを予め記憶している。ジョブ番号は、生産される製品を特定する番号を表す。この第１実施形態では、ジョブ番号の一例として、ジョブＪ１，Ｊ２等（後述の図２等）が用いられる。通過工程は、ジョブが処理される工程の順序を表す。各ジョブは、各工程において、それぞれ、工程に対応する設備によって、所定の処理条件で処理される。
【００４１】
この明細書では、設備の一例として、設備Ａ（後述の図２等）、設備Ｘ（後述の図８等）等が用いられ、設備Ａにおける処理条件の種類の一例として、処理条件Ａ１，Ａ２（後述の図２等）等が用いられ、設備Ｘにおける処理条件の種類の一例として、処理条件Ｘ１（後述の図８等）等が用いられている。
【００４２】
ロット条件記憶部１４２は、最大待ち時間と、最小個数と、を予め記憶している。最大待ち時間と、最小個数とは、各設備に対応して設定されている処理条件の種類ごとに予め定められている。例えば、「５００℃で加熱」という同じ処理条件であっても、「設備Ａにおいて５００℃で加熱」と、「設備Ｂにおいて５００℃で加熱」とは異なる。このように、「処理条件の種類」は、設備とセットで決められる。このため、最大待ち時間と最小個数とは、設備と処理条件の種類との組合せに対応付けて、ロット条件記憶部１４２に記憶されている。
【００４３】
最大待ち時間は、上述のように、ジョブが待機可能な最大時間である。最小個数は、ロットが揃ったか否かを判定するための値である。最小個数のジョブが設備（工程）に到着すると、ロットが揃ったと判定される。
【００４４】
ロット条件記憶部１４２に記憶されているデータと、計画対象データ記憶部１４１に記憶されているデータとは、「設備に対応して設定された処理条件の種類」を介して、紐付けることが可能になっている。
【００４５】
ジョブ情報記憶部１４３は、ロット条件分類と、最早到着時刻と、処理情報と、を記憶する。ロット条件分類は、ジョブ分類部１５１によって生成される。ジョブ分類部１５１は、ロット条件記憶部１４２に記憶されている設備ごとに定められた処理条件の種類と、計画対象データ記憶部１４１に記憶されているジョブ番号に対応する通過工程における処理条件の種類とから、処理条件の種類ごとにロットとして集約することが可能なロット候補となるジョブ番号の集合をロット条件分類として生成する。ジョブ分類部１５１は、生成したロット条件分類をジョブ情報記憶部１４３に保存する。
【００４６】
最早到着時刻は、最早到着時刻計算部１５３によって算出される。最早到着時刻は、上述のように、計算対象のジョブが他のジョブに邪魔されないと仮定したときに、計算対象のジョブが計算対象の設備（工程）に到着すると予想される時刻である。計算対象のジョブが他のジョブに邪魔されないと仮定しているため、この到着予想時刻は、計算対象のジョブが計算対象の設備（工程）に到着可能な時刻のうち最も早い時刻となる。最早到着時刻計算部１５３は、ジョブ番号と設備（工程）とに対応付けて最早到着時刻をジョブ情報記憶部１４３に保存する。
【００４７】
処理情報は、各設備（工程）においてジョブが処理済みか未処理かを表す。処理情報は、ロット処理判定部１５７によって生成される。ロット処理判定部１５７は、生成した処理情報を、ジョブ番号及び設備（工程）に対応付けて、ジョブ情報記憶部１４３に保存する。未処理のジョブについては、後述されるように、シミュレーション時刻に最早到着時刻が再び計算される。
【００４８】
スケジュールマスタ記憶部１４４は、処理時間と、段取替え時間と、を予め記憶している。処理時間は、設備（工程）においてジョブ（半製品）を処理するのに要する時間である。言い換えると、処理時間は、タスクの実行時間である。処理時間は、処理条件の種類によって異なる値となる。そこで、処理時間は、設備（工程）と処理条件の種類とに対応付けて、スケジュールマスタ記憶部１４４に記憶されている。処理時間として、作業標準的に決められた値が記憶されてもよい。代替的に、処理条件として、過去の実績値、つまり、対象の設備を用いて、対象種類の処理条件が実行されたときの処理時間が記憶されてもよい。
【００４９】
段取替え時間は、対象の設備において処理条件を変更するのに要する時間である。段取替え時間は、設備と、変更前の処理条件の種類と、変更後の処理条件の種類と、に対応付けて、スケジュールマスタ記憶部１４４に記憶されている。段取替え時間も、上記処理時間と同様に設定されてもよい。すなわち、段取替え時間として、作業標準的に決められた値が記憶されてもよい。代替的に、段取替え時間として、過去の実績値、つまり、対象の設備を用いて、変更前の種類の処理条件から、変更後の種類の処理条件への変更が実行されたときの段取替え時間が記憶されてもよい。
【００５０】
スケジュール記憶部１４５は、スケジュール生成部１５８によって生成された生産スケジュールを記憶する。スケジュール生成部１５８は、ロット処理判定部１５７によってロットの処理を開始すると判定されると、スケジュールマスタ記憶部１４４に記憶されているデータを用いて、生産スケジュールを生成し、生成した生産スケジュールをスケジュール記憶部１４５に保存する。
【００５１】
ＣＰＵ１５０のシミュレーション時刻設定部１５２は、シミュレーションを実行するシミュレーション時刻を設定する。シミュレーション時刻には、ロット処理判定部１５７によって、ロットの処理を開始するか否かが判定される。シミュレーション時刻設定部１５２は、本実施形態では、シミュレーション時刻を、「設備（工程）へのジョブの到着予定時刻」及び「設備（工程）におけるジョブに対する処理の終了時刻」のなかで、現在のシミュレーション時刻以降であって、最も早い時刻に更新する。
【００５２】
言い換えると、シミュレーション対象の設備は、ジョブが到着する設備に依存し、最も早くシミュレーションが可能な設備に移っていく。例えば、同じ１０時にジョブＰ１が設備Ｑ１に到着し、ジョブＰ２が設備Ｑ２に到着することもあり得る。この場合、シミュレーション時刻を１０時として設備Ｑ１でシミュレーションが実行された後、シミュレーション時刻が更新されて、同じ１０時に設備Ｑ２でシミュレーションが実行されることになる。このように、シミュレーション時刻は、同じ時刻に更新されることもある。
【００５３】
シミュレーション時刻設定部１５２は、「設備へのジョブの到着予定時刻」として、最早到着時刻をジョブ情報記憶部１４３から取得する。シミュレーション時刻設定部１５２は、「設備におけるジョブに対する処理の終了時刻」を、スケジュール記憶部１４５から取得する。シミュレーション時刻設定部１５２は、取得した「設備へのジョブの到着予定時刻」と「設備におけるジョブに対する処理の終了時刻」とをセットで時系列に並べて、最も早い時刻にシミュレーション時刻を更新する。シミュレーション時刻が決定されると、設備も決定される。したがって、その設備においてシミュレーションが実行される。すなわち、その設備においてロットの処理を開始するか否かが判定される。
【００５４】
シミュレーション時刻設定部１５２は、さらに、所定の終了条件を用いて、シミュレーション時刻を更新するか否かを判定する。シミュレーション時刻が更新されると、シミュレーションは継続され、シミュレーション時刻が更新されなければ、シミュレーションは終了する。シミュレーション時刻設定部１５２は、ジョブ情報記憶部１４３に記憶されている全てのジョブ番号の処理開始が全ての工程において確定すると、第１終了条件が満たされたと判定する。シミュレーション時刻設定部１５２は、シミュレーション時刻Ｔｓが所定の時刻（例えばシミュレーション開始時から２４時間後）を超えると、第２終了条件が満たされたと判定する。
【００５５】
シミュレーション時刻設定部１５２は、第１終了条件及び第２終了条件の少なくとも一方が満たされたと判定すると、シミュレーション時刻を更新しないと判定する。シミュレーション時刻設定部１５２は、第１終了条件及び第２終了条件の両方が満たされないと判定すると、シミュレーション時刻を更新すると判定する。
【００５６】
最早到着時刻計算部１５３は、最早到着時刻を算出する。上述のように、シミュレーション時刻が決定されると、シミュレーション対象の設備も決定される。最早到着時刻計算部１５３は、決定されたシミュレーション対象の設備で処理されるジョブ番号を、計画対象データ記憶部１４１から取得する。最早到着時刻計算部１５３は、取得した各ジョブ番号が現在処理されている設備（工程）を、スケジュール記憶部１４５から取得する。最早到着時刻計算部１５３は、各ジョブ番号が現在処理されている設備（工程）からシミュレーション対象の設備に到着するまでに通過する通過工程を、計画対象データ記憶部１４１から取得する。最早到着時刻計算部１５３は、取得した通過工程における処理時間を、スケジュールマスタ記憶部１４４から取得する。
【００５７】
最早到着時刻計算部１５３は、ジョブ番号ごとに、現在処理中の設備から、シミュレーション対象の設備に到着するまでに通過する通過工程における処理時間の合計を、現在のシミュレーション時刻に加算して、最早到着時刻を算出する。最早到着時刻計算部１５３は、算出した最早到着時刻を、ジョブ番号とシミュレーション対象の設備とに対応付けて、ジョブ情報記憶部１４３に保存する。
【００５８】
最早到着時刻計算部１５３は、ジョブ情報記憶部１４３に記憶されている最早到着時刻より、シミュレーション時刻が後になると、ジョブ情報記憶部１４３に記憶されている最早到着時刻を、ジョブがシミュレーション対象の設備に実際に到着した到着時刻に書き換えてもよい。
【００５９】
なお、本実施形態では、ジョブを設備から設備に搬送する搬送時間は、ゼロという前提にしているが、これに限られない。搬送時間は、作業標準的に設定されてもよく、過去の実績データに基づき設定されてもよい。搬送時間は、スケジュールマスタ記憶部１４４に記憶されてもよく、計画対象データ記憶部１４１の通過工程に対応付けて記憶されてもよい。
【００６０】
最早ロット完成時刻計算部１５４は、ジョブ情報記憶部１４３から、シミュレーション対象の設備に対応するロット条件分類（処理条件の種類ごとにロット候補となるジョブ番号の集合）と、ロット条件分類に含まれる各ジョブ番号にそれぞれ対応する各最早到着時刻とを取得する。最早ロット完成時刻計算部１５４は、ロット条件記憶部１４２から、シミュレーション対象の設備に対応する各処理条件の種類に対してそれぞれ設定された各最小個数を取得する。最早ロット完成時刻計算部１５４は、ロット条件分類に含まれる各ジョブ番号のうちで、シミュレーション対象の設備に到着済みのジョブがあれば、その到着時刻をスケジュール記憶部１４５から取得する。最早ロット完成時刻計算部１５４は、シミュレーション対象の設備に対応する処理条件の種類ごとに、到着済みのジョブがあれば到着済みのジョブも含めて最小個数番目の最早到着時刻を、最早ロット完成時刻として算出する。
【００６１】
ロット待ち限界時刻計算部１５５は、ロット条件記憶部１４２から、シミュレーション対象の設備に対応する処理条件の種類ごとに最大待ち時間を取得する。ロット待ち限界時刻計算部１５５は、ジョブ情報記憶部１４３から、シミュレーション対象の設備に対応するロット条件分類（処理条件の種類ごとにロット候補となるジョブ番号の集合）と、ロット条件分類に含まれる各ジョブ番号にそれぞれ対応する各最早到着時刻とを取得する。
【００６２】
ロット待ち限界時刻計算部１５５は、スケジュール記憶部１４５から、処理条件の種類ごとに、ロット条件分類に含まれるジョブのうち、シミュレーション対象の設備に到着済みのジョブがあれば最も早く到着したジョブの到着時刻を取得する。ロット待ち限界時刻計算部１５５は、処理条件の種類ごとに、取得した到着時刻から最大待ち時間後の時刻を、ロット待ち限界時刻として算出する。ロット待ち限界時刻計算部１５５は、処理条件の種類ごとに、シミュレーション対象の設備に到着済みのジョブが無ければ、最も早い最早到着時刻から最大待ち時間後の時刻を、ロット待ち限界時刻として算出する。
【００６３】
最早ロット開始時刻計算部１５６は、処理条件の種類ごとに、ロットに含まれるジョブの処理を最も早く開始できる時刻である最早ロット開始時刻を算出する。最早ロット開始時刻計算部１５６は、最早ロット完成時刻計算部１５４により算出された最早ロット完成時刻と、ロット待ち限界時刻計算部１５５により算出されたロット待ち限界時刻と、を比較する。最早ロット開始時刻計算部１５６は、最早ロット完成時刻がロット待ち限界時刻より遅くないときは、最早ロット完成時刻を最早ロット開始時刻として算出する。これによって、最小個数のジョブが揃ったロットとしてジョブが処理される。
【００６４】
最早ロット開始時刻計算部１５６は、最早ロット完成時刻がロット待ち限界時刻より遅いときは、最早到着時刻がロット待ち限界時刻より早いジョブのうち、最も遅く到着するジョブである最遅到着ジョブを抽出し、この最遅到着ジョブの最早到着時刻を最早ロット開始時刻として算出する。これによって、最小個数のジョブは揃わなくても、ロット待ち限界時刻の直前まで待機して、可能な限り多くの個数のジョブが揃ったロットとしてジョブが処理される。
【００６５】
ロット処理判定部１５７は、ロットに含まれるジョブの処理を開始するか否かを判定する。ロット処理判定部１５７は、最早ロット開始時刻がシミュレーション時刻より早いか同じときに、最早ロット開始時刻に対応するジョブの処理を開始すると判定する。ロット処理判定部１５７は、最早ロット開始時刻がシミュレーション時刻より遅いときは、ジョブの処理を開始しないと判定する。
【００６６】
スケジュール生成部１５８は、ロットに含まれるジョブの処理を開始すると判定されたロット条件分類等の情報をロット処理判定部１５７から取得する。スケジュール生成部１５８は、取得した情報から、ジョブの処理を開始するロットを決定する。スケジュール生成部１５８は、取得したロット条件分類に含まれる設備及び処理条件の種類に対応する処理時間をスケジュールマスタ記憶部１４４から取得する。スケジュール生成部１５８は、取得した処理時間に従って、ロット条件分類に含まれるジョブの生産スケジュールを生成する。スケジュール生成部１５８は、生成した生産スケジュールをスケジュール記憶部１４５に保存する。
【００６７】
（動作の概要）
次に、図面を参照して、シミュレーション装置の動作の概要が説明される。最初に、特許文献１に記載の技術を用いたシミュレーション装置の動作の概要が説明され、次に、第１実施形態におけるシミュレーション装置の動作の概要が説明される。後述のように、特許文献１に記載の技術を用いたシミュレーション装置の動作は、第２実施形態で用いられる。
【００６８】
第１実施形態では、上述のように、最早ロット開始時刻計算部１５６は、最早ロット完成時刻がロット待ち限界時刻より遅いときは、最早到着時刻がロット待ち限界時刻より早いジョブのうち最遅到着ジョブを抽出し、この最遅到着ジョブの最早到着時刻を最早ロット開始時刻として算出する。そして、ロット処理判定部１５７は、最早ロット開始時刻がシミュレーション時刻より早いか同じときに、ロットに含まれるジョブの処理を開始すると判定する。
【００６９】
これに対して、特許文献１に記載の技術では、最早ロット完成時刻がロット待ち限界時刻より遅いと判明した時点で、到着したジョブが１つだけであっても、ロットに含まれるジョブの処理を開始すると判定される。
【００７０】
なお、以下の説明では、便宜上、スケジュールマスタ記憶部１４４に記憶されている処理時間は、一律に１時間になっており、ジョブを設備から設備に搬送する搬送時間は、ゼロになっている。
【００７１】
（特許文献１の動作の概要）
図２〜図５は、それぞれのシミュレーション時刻におけるジョブの動きの一例を概略的に表すタイミングチャートである。図２〜図５を用いて、それぞれのシミュレーション時刻におけるロット処理の判定が説明される。
【００７２】
図２〜図５では、設備Ａにおいて、処理条件の種類として、処理条件Ａ１と処理条件Ａ２との２種類の処理条件でジョブに対して処理が行われる例が示される。処理条件Ａ１における最小個数は４個であり、最大待ち時間は６時間である。処理条件Ａ２における最小個数は３個であり、最大待ち時間は６時間である。
【００７３】
図２〜図５には、それぞれのシミュレーション時刻Ｔｓにおける、ジョブＪ１〜Ｊ５の設備Ａへの最早到着時刻又は実際に到着した時刻が示されている。時刻の横に付された星印は、時刻が各ジョブの最早到着時刻であることを表す。無印の時刻は、ジョブが設備Ａに実際に到着した時刻を表す。
【００７４】
図２において、シミュレーション時刻Ｔｓは、ジョブＪ１が設備Ａに到着した１０時である。処理条件Ａ１は、シミュレーション時刻Ｔｓ（１０時）の時点で到着済みのジョブが無いので処理は不可能である。処理条件Ａ２では、ジョブＪ１が到着した１０時の最大待ち時間（６時間）後の１６時がロット待ち限界時刻Ｔｗである。一方、ジョブＪ３，Ｊ４の最早到着時刻が１２時である。したがって、最早ロット完成時刻Ｔｃは１２時であり、ロットに必要な最小個数（３個）のジョブがロット待ち限界時刻Ｔｗまでに揃う可能性がある。このため、シミュレーション時刻Ｔｓが１０時の時点では、ジョブＪ１の処理を開始しないと判定される。
【００７５】
以上より、シミュレーション時刻Ｔｓが１０時の時点では、ロット処理判定部１５７は、ロットに含まれるジョブの処理を開始しないと判定する。
【００７６】
図３において、シミュレーション時刻Ｔｓは、ジョブＪ２が設備Ａに到着した１１時である。処理条件Ａ１では、ジョブＪ２が到着した１１時の最大待ち時間（６時間）後の１７時がロット待ち限界時刻Ｔｗである。ロット待ち限界時刻Ｔｗである１７時までに到着する可能性があるのは、最早到着時刻が１５時のジョブＪ５だけである。したがって、処理条件Ａ１は、ジョブＪ２の最大待ち時間の間（つまりロット待ち限界時刻Ｔｗまで）に、最小個数である４個が揃う可能性が無い。このため、ジョブＪ２の１個で処理の開始が可能と判定される。この点が、後述される第１実施形態におけるシミュレーション装置の動作と異なる。
【００７７】
一方、処理条件Ａ２では、図２で説明されたように、ジョブＪ１の最大待ち時間の間（つまりロット待ち限界時刻Ｔｗまで）に、ロットに必要な最小個数（３個）のジョブが揃う可能性がある。このため、シミュレーション時刻Ｔｓが１１時の時点では、処理を開始しないと判定される。
【００７８】
以上より、シミュレーション時刻Ｔｓが１１時の時点で、ロット処理判定部１５７は、ロットとして処理条件Ａ１でジョブＪ２の処理を開始すると判定する。スケジュール生成部１５８は、ジョブＪ２の処理を１１時に開始する生産スケジュールを生成する。したがって、図３の「設備Ａのガントチャート」に示されるように、ジョブＪ２を処理するタスクが、１１時に開始され、１２時に終了する。本実施形態では、上述のように、処理時間は一律に１時間である。
【００７９】
図４において、シミュレーション時刻Ｔｓは、ジョブＪ２を処理するタスクが終了した１２時である。なお、１２時は、ジョブＪ３，Ｊ４が設備Ａに到着した時刻でもある。処理条件Ａ１は、シミュレーション時刻Ｔｓが１２時の時点で到着済みのジョブが無いので処理は不可能である。処理条件Ａ２は、ロットに必要な最小個数である３個のジョブが揃ったため、シミュレーション時刻Ｔｓの１２時で処理が可能である。
【００８０】
以上より、シミュレーション時刻Ｔｓが１２時の時点で、ロット処理判定部１５７は、ロットとして処理条件Ａ２でジョブＪ１，Ｊ３，Ｊ４の処理を開始すると判定する。スケジュール生成部１５８は、設備Ａの処理条件を処理条件Ａ１から処理条件Ａ２に変更する段取替え時間（図４では２時間）を含む生産スケジュールを生成する。スケジュール生成部１５８は、段取替え時間の終了後、ジョブＪ１，Ｊ３，Ｊ４の処理を１４時に開始し、１７時に終了する生産スケジュールを生成する。したがって、図４の「設備Ａのガントチャート」に示されるように、ジョブＪ１，Ｊ３，Ｊ４を順に処理するタスクが、１４時に開始され、１７時に終了する。
【００８１】
図５において、シミュレーション時刻Ｔｓは、ジョブＪ４を処理するタスクが終了した１７時である。処理条件Ａ１では、ジョブＪ５が到着した１５時の最大待ち時間（６時間）後の２１時がロット待ち限界時刻Ｔｗである。ロット待ち限界時刻Ｔｗである２１時までに最小個数が揃う可能性は無い。したがって、シミュレーション時刻Ｔｓである１７時に、処理条件Ａ１は、ジョブＪ５の１個で処理を開始すると判定される。一方、処理条件Ａ２は、シミュレーション時刻Ｔｓが１７時の時点で到着済みのジョブが無いので処理は不可能である。
【００８２】
以上より、シミュレーション時刻Ｔｓが１７時の時点で、ロット処理判定部１５７は、ロットとして処理条件Ａ１でジョブＪ５の処理を開始すると判定する。スケジュール生成部１５８は、設備Ａの処理条件を処理条件Ａ２から処理条件Ａ１に変更する段取替え時間（図５では２時間）を含む生産スケジュールを生成する。スケジュール生成部１５８は、段取替え時間の終了後、ジョブＪ５の処理を１９時に開始する生産スケジュールを生成する。したがって、図５の「設備Ａのガントチャート」に示されるように、ジョブＪ５を処理するタスクが、１９時に開始され、２０時に終了する。
【００８３】
図３の動作では、シミュレーション時刻Ｔｓが１１時の時点で、処理条件Ａ１では、ロット待ち限界時刻Ｔｗまでに最小個数のジョブが揃わないと判明している。そこで、図３に示されるように、この判明した時点で、ジョブＪ２の処理を開始している。これによって、ロット待ち限界時刻Ｔｗまで待機することなく、ジョブＪ２を処理することが可能になっている。
【００８４】
しかしながら、処理条件Ａ１では、ロットが１個のジョブＪ２だけで処理されているため、段取替え時間の増加を招いている可能性がある。例えば、ジョブＪ２とジョブＪ５とを集約できる可能性がある。この点に着目したのが、第１実施形態のシミュレーション装置である。
【００８５】
（最早到着時刻の更新）
第１実施形態におけるシミュレーション装置の動作の概要が説明される前に、最早到着時刻の更新が説明される。この最早到着時刻の更新については、上記特許文献１に記載の技術を用いたシミュレーション装置の動作でも、後述される第１実施形態におけるシミュレーション装置の動作でも、同じである。
【００８６】
図６は、シミュレーション時刻においてロット処理の開始が決定される前の最早到着時刻を示すタイミングチャートである。図７は、図６と同じシミュレーション時刻においてロット処理の開始が決定された後に更新された最早到着時刻を示すタイミングチャートである。図６、図７を用いて、最早到着時刻の更新が説明される。
【００８７】
図６、図７には、ジョブＪ１〜Ｊ５は、設備Ａで処理された後、次に設備Ｂで処理される例が示されている。すなわち、設備Ｂの工程が設備Ａの工程の次工程である。なお、図６、図７でも、図２〜図５と同様に、各ジョブの処理時間（つまりタスクの実行時間）は１時間に設定され、設備Ａから設備Ｂへの搬送時間はゼロに設定されている。
【００８８】
図６において、シミュレーション時刻Ｔｓは、１４時であり、ジョブＪ１，Ｊ２は、設備Ａに既に割り当てられている。つまり、設備ＡにおけるジョブＪ１，Ｊ２の生産スケジュールは確定している。よって、ジョブＪ１，Ｊ２の次工程である設備Ｂへの到着予定時刻も確定している。すなわち、ジョブＪ１の設備Ｂへの到着予定時刻は、設備ＡでジョブＪ１の処理が終了する１３時であり、ジョブＪ２の設備Ｂへの到着予定時刻は、設備ＡでジョブＪ２の処理が終了する１４時である。
【００８９】
一方、ジョブＪ３，Ｊ４，Ｊ５は、設備Ａに未だ割り当てられていない。つまり、設備ＡにおけるジョブＪ３，Ｊ４，Ｊ５の生産スケジュールは確定していない。ジョブＪ３，Ｊ４は、既に１３時に設備Ａに到着している。ジョブＪ５は、その最早到着時刻が１５時であり、未だ設備Ａに到着していない。
【００９０】
最早到着時刻は、上述のように、他のジョブによって邪魔されないということを仮定している。したがって、ジョブＪ３，Ｊ４の設備Ｂへの最早到着時刻は、いずれもジョブＪ２の処理が終了した時刻１４時に設備Ａでの処理が開始されるという前提で計算される。このため、ジョブＪ３，Ｊ４の設備Ｂへの最早到着時刻は、いずれも１５時である。また、ジョブＪ５の設備Ｂへの最早到着時刻は、設備Ａに到着した時刻１５時に設備Ａでの処理が開始されるという前提で計算される。このため、ジョブＪ５の設備Ｂへの最早到着時刻は、１６時である。
【００９１】
図６の状態で、シミュレーション時刻Ｔｓの１４時に、ロットに含まれるジョブＪ３，Ｊ４の処理を開始すると判定される。図７の例では、ジョブＪ３−ジョブＪ４の順にスケジュールに割り付けられている。これによって、ジョブＪ３，Ｊ４の設備Ｂへの到着予定時刻が確定した。図７に示されるように、ジョブＪ３の設備Ｂへの最早到着時刻は、１５時のまま変わらないが、ジョブＪ４の設備Ｂへの最早到着時刻は、１５時から１６時に更新されている。
【００９２】
また、ジョブＪ５の設備Ａでの処理開始時刻は、最も早くてジョブＪ４の処理が終了する１６時となり、１５時から延びた。したがって、ジョブＪ５の設備Ｂへの到着予定時刻は確定していないが、最早到着時刻は、１６時から１７時に更新されている。
【００９３】
（第１実施形態の動作の特徴）
図８は、第１実施形態の動作の特徴を説明するためのタイミングチャートである。図８を用いて、第１実施形態におけるシミュレーション装置の特徴が説明される。
【００９４】
図８では、設備Ｘにおいて、処理条件Ｘ１でジョブに対する処理が行われる例が示されている。処理条件Ｘ１における最小個数は５個であり、最大待ち時間は７時間である。
【００９５】
図８には、それぞれのシミュレーション時刻Ｔｓにおける、ジョブＪ１〜Ｊ５の設備Ｘへの最早到着時刻又は実際に到着した時刻が示されている。図２〜図５と同様に、時刻の横に付された星印は、時刻が各ジョブの最早到着時刻であることを表す。無印の時刻は、ジョブが設備Ｘに実際に到着した時刻を表す。
【００９６】
図８では、シミュレーション時刻Ｔｓが１０時であり、ジョブＪ１は既に８時に設備Ｘに到着しており、ジョブＪ２〜Ｊ５は、今後、設備Ｘに到着する予定になっている。処理条件Ｘ１の最小個数が５個であるため、ジョブＪ４，Ｊ５の最早到着時刻である１６時が、最早ロット完成時刻Ｔｃになっている。また、ジョブＪ１の到着時刻８時から最大待ち時間（７時間）後の１５時が、ロット待ち限界時刻Ｔｗになっている。したがって、最早ロット完成時刻Ｔｃよりロット待ち限界時刻Ｔｗの方が早いため、シミュレーション時刻Ｔｓの時点で、ロット待ち限界時刻Ｔｗまでに最小個数のジョブは揃わないことが判明している。
【００９７】
特許文献１に記載の技術では、図３に示されるように、ロット待ち限界時刻Ｔｗまでにロットの最小個数が揃わないことが判明した時点で、ロットに含まれるジョブの処理を開始すると判定されていた。これに対して、第１実施形態のシミュレーション装置では、ロット待ち限界時刻Ｔｗまでにロットの最小個数が揃わないことが判明しても、同じ処理条件で、ロット待ち限界時刻Ｔｗまでに今後到着する予定のジョブがあれば、ロットに含まれるジョブの処理を開始しないという制約が加えられる。すなわち、ジョブＪ１が８時に到着した時点で、最小個数が揃わないことが判明しているが、ジョブＪ１の処理を開始すると判定されない。
【００９８】
さらに、ロット待ち限界時刻Ｔｗまでに今後到着する予定のジョブのうち、最早到着時刻が最も遅い最遅到着ジョブ（図８ではジョブＪ３）の最早到着時刻が、最早ロット開始時刻Ｔｐとされる。上述のように、ジョブの最早到着時刻が更新されるため、この最早ロット開始時刻Ｔｐは、シミュレーション時刻ごとに更新される。そして、最早ロット開始時刻Ｔｐが、シミュレーション時刻Ｔｓと同じかシミュレーション時刻Ｔｓより早くなると、当該処理条件のロットに含まれるジョブの処理を開始すると判定される。
【００９９】
図８の例では、８時に到着したジョブＪ１の最大待ち時間（７時間）後のロット待ち限界時刻Ｔｗである１５時までに到着する予定のジョブは、ジョブＪ１，Ｊ２，Ｊ３の最大３個である。したがって、ロットの最小個数である５個のジョブが揃う前に、処理条件Ｘ１の処理は開始される。このとき、第１実施形態では、ロット待ち限界時刻Ｔｗである１５時までに到着予定のジョブのうち、最も遅く到着する最遅到着ジョブＪ３の最早到着時刻である１３時が、最早ロット開始時刻Ｔｐとされる。これによって、最早ロット開始時刻Ｔｐである１３時までは、処理条件Ｘ１のロットに含まれるジョブの処理を開始すると判定されない。
【０１００】
（第１実施形態の動作の概要）
図９〜図１２は、第１実施形態における、それぞれのシミュレーション時刻におけるジョブの動きの一例を概略的に表すタイミングチャートである。図９〜図１２を用いて、第１実施形態における、それぞれのシミュレーション時刻におけるロット処理の判定が説明される。
【０１０１】
図９〜図１２では、図２〜図５と同様に、設備Ａにおいて、処理条件の種類として、処理条件Ａ１と処理条件Ａ２との２種類の処理条件でジョブに対して処理が行われる例が示される。処理条件Ａ１における最小個数は４個であり、最大待ち時間は６時間である。処理条件Ａ２における最小個数は３個であり、最大待ち時間は６時間である。
【０１０２】
図９〜図１２には、図２〜図５と同様に、それぞれのシミュレーション時刻Ｔｓにおける、ジョブＪ１〜Ｊ５の設備Ａへの最早到着時刻又は実際に到着した時刻が示されている。時刻の横に付された星印は、時刻が各ジョブの最早到着時刻であることを表す。無印の時刻は、ジョブが設備Ａに実際に到着した時刻を表す。
【０１０３】
図９において、シミュレーション時刻Ｔｓは、ジョブＪ１が設備Ａに到着した１０時である。処理条件Ａ１は、シミュレーション時刻Ｔｓ（１０時）の時点で到着済みのジョブが無いので処理は不可能である。処理条件Ａ２では、ジョブＪ１が到着した１０時の最大待ち時間（６時間）後の１６時がロット待ち限界時刻Ｔｗである。一方、ジョブＪ３，Ｊ４の最早到着時刻が１２時である。したがって、最早ロット完成時刻Ｔｃは１２時であり、ロットに必要な最小個数（３個）のジョブがロット待ち限界時刻Ｔｗまでに揃う可能性がある。このため、シミュレーション時刻Ｔｓが１０時の時点では、ジョブＪ１の処理を開始しないと判定される。
【０１０４】
以上より、シミュレーション時刻Ｔｓが１０時の時点では、ロット処理判定部１５７は、ロットに含まれるジョブの処理を開始しないと判定する。
【０１０５】
図１０において、シミュレーション時刻Ｔｓは、ジョブＪ２が設備Ａに到着した１１時である。処理条件Ａ１では、ジョブＪ２が到着した１１時の最大待ち時間（６時間）後の１７時がロット待ち限界時刻Ｔｗである。ロット待ち限界時刻Ｔｗである１７時までにジョブＪ５のみが到着する可能性がある。すなわち、ジョブＪ５が最遅到着ジョブである。そこで、最早ロット開始時刻計算部１５６は、ジョブＪ５の最早到着時刻である１５時を最早ロット開始時刻Ｔｐとして算出する。したがって、シミュレーション時刻Ｔｓが１１時の時点では、処理条件Ａ１における処理を開始しないと判定される。
【０１０６】
一方、処理条件Ａ２では、図９で説明されたように、ジョブＪ１の最大待ち時間の間（つまりロット待ち限界時刻Ｔｗまで）である最早ロット完成時刻Ｔｃに、ロットに必要な最小個数（３個）のジョブが揃う可能性がある。このため、シミュレーション時刻Ｔｓが１１時の時点では、処理条件Ａ２における処理を開始しないと判定される。
【０１０７】
以上より、シミュレーション時刻Ｔｓが１１時の時点で、ロット処理判定部１５７は、ロットとして処理条件Ａ１でジョブＪ２の処理を開始しないと判定する。
【０１０８】
図１１において、シミュレーション時刻Ｔｓは、ジョブＪ３，Ｊ４が設備Ａに到着した１２時である。処理条件Ａ１は、最早ロット開始時刻Ｔｐが１５時であるため、シミュレーション時刻Ｔｓが１２時の時点では、ロットに含まれるジョブの処理を開始しないと判定される。処理条件Ａ２は、ロットに必要な最小個数である３個のジョブが揃ったため、シミュレーション時刻Ｔｓの１２時で、ロットに含まれるジョブの処理が可能である。
【０１０９】
以上より、シミュレーション時刻Ｔｓが１２時の時点で、ロット処理判定部１５７は、ロットとして処理条件Ａ２でジョブＪ１，Ｊ３，Ｊ４の処理を開始すると判定する。スケジュール生成部１５８は、ジョブＪ１，Ｊ３，Ｊ４の処理を１２時に開始し、１５時に終了する生産スケジュールを生成する。したがって、図１１の「設備Ａのガントチャート」に示されるように、ジョブＪ１，Ｊ３，Ｊ４を処理するタスクが、１２時に開始され、１５時に終了する。
【０１１０】
図１２において、シミュレーション時刻Ｔｓは、ジョブＪ４を処理するタスクが終了した１５時である。なお、１５時は、ジョブＪ５が設備Ａに到着した時刻でもある。処理条件Ａ１は、シミュレーション時刻Ｔｓが最早ロット開始時刻Ｔｐに一致する。このため、シミュレーション時刻Ｔｓである１５時の時点で、ジョブＪ２，Ｊ５の処理を開始すると判定される。処理条件Ａ２は、到着済みのジョブが無いため、処理は不可能である。
【０１１１】
以上より、シミュレーション時刻Ｔｓが１５時の時点で、ロット処理判定部１５７は、ロットとして処理条件Ａ１でジョブＪ２，Ｊ５の処理を開始すると判定する。スケジュール生成部１５８は、設備Ａの処理条件を処理条件Ａ２から処理条件Ａ１に変更する段取替え時間（図１２では２時間）を含む生産スケジュールを生成する。スケジュール生成部１５８は、段取替え時間の終了後、ジョブＪ２，Ｊ５の処理を１７時に開始し、１９時に終了する生産スケジュールを生成する。したがって、図１２の「設備Ａのガントチャート」に示されるように、ジョブＪ２，Ｊ５を処理するタスクが、１７時に開始され、１９時に終了する。
【０１１２】
（第１実施形態の動作手順）
図１３、図１４は、第１実施形態におけるシミュレーション装置の動作手順の一例を概略的に示すフローチャートである。
【０１１３】
図１３のステップＳ１３００において、ＣＰＵ１５０は、計画対象データ記憶部１４１からデータを読み込んでメモリ１３０のＲＡＭに保存する。ステップＳ１３１０において、ＣＰＵ１５０は、ロット条件記憶部１４２からロット条件を読み込んでメモリ１３０のＲＡＭに保存する。ステップＳ１３２０において、ジョブ分類部１５１は、ロット条件分類を生成して、ジョブ情報記憶部１４３に保存する。
【０１１４】
ステップＳ１３３０において、シミュレーション時刻設定部１５２は、シミュレーション時刻Ｔｓを初期化する。シミュレーション時刻設定部１５２は、シミュレーション時刻Ｔｓを、例えば「０時０分」に設定してもよい。この場合には、シミュレーション対象の設備をユーザが選択してもよい。代替的に、シミュレーション時刻設定部１５２は、シミュレーション時刻Ｔｓを、例えば、スケジュール記憶部１４５に記憶されている確定した生産スケジュールにおける最後のタスクの処理終了時刻に設定してもよい。この場合には、シミュレーション対象の設備は、最後のタスクが処理された設備となる。
【０１１５】
ステップＳ１３４０において、最早到着時刻計算部１５３は、シミュレーション対象の設備において、シミュレーション時刻Ｔｓの時点で未処理のジョブをジョブ情報記憶部１４３のロット条件分類から取得し、各ジョブの各設備（各工程）への最早到着時刻をそれぞれ算出する。最早到着時刻計算部１５３は、算出した最早到着時刻をジョブ情報記憶部１４３に保存する。
【０１１６】
ステップＳ１３５０において、最早ロット完成時刻計算部１５４は、シミュレーション対象の設備において、最早到着時刻計算部１５３により算出されジョブ情報記憶部１４３に保存されている最早到着時刻と、ロット条件記憶部１４２に記憶されている最小個数とを用いて、最早ロット完成時刻を算出する。
【０１１７】
ステップＳ１３６０において、ロット待ち限界時刻計算部１５５は、各ジョブのうちでシミュレーション対象の設備に最も早く到着するジョブの最早到着時刻（又はシミュレーション対象の設備に到着済みのジョブのうちで最も早く到着したジョブの到着時刻）と、ロット条件記憶部１４２に記憶されている最大待ち時間とを用いて、ロット待ち限界時刻を算出する。
【０１１８】
ステップＳ１３７０において、最早ロット開始時刻計算部１５６は、シミュレーション対象の設備において、最早ロット完成時刻計算部１５４により算出された最早ロット完成時刻が、ロット待ち限界時刻計算部１５５により算出されたロット待ち限界時刻より遅いか否かを判定する。最早ロット完成時刻が、ロット待ち限界時刻より早いかロット待ち限界時刻と同じであれば（ステップＳ１３７０でＮＯ）、処理はステップＳ１３８０に進む。一方、最早ロット完成時刻が、ロット待ち限界時刻より遅ければ（ステップＳ１３７０でＹＥＳ）、処理はステップＳ１３９０に進む。
【０１１９】
ステップＳ１３８０において、最早ロット開始時刻計算部１５６は、最早ロット完成時刻を最早ロット開始時刻として算出する。ステップＳ１３９０において、最早ロット開始時刻計算部１５６は、最遅到着ジョブ（上述のように、最早到着時刻がロット待ち限界時刻より早いジョブのうち、最も遅く到着するジョブ）の最早到着時刻を、最早ロット開始時刻として算出する。
【０１２０】
図１４のステップＳ１４００において、ロット処理判定部１５７は、シミュレーション時刻Ｔｓが最早ロット開始時刻より早いか否かを判定する。ロット処理判定部１５７は、シミュレーション時刻Ｔｓが最早ロット開始時刻より早いときに（ステップＳ１４００でＹＥＳ）、ロットに含まれるジョブの処理を開始しないと判定し、処理はステップＳ１４３０に進む。一方、ロット処理判定部１５７は、シミュレーション時刻Ｔｓが最早ロット開始時刻より遅いか同時のときに（ステップＳ１４００でＮＯ）、ロットに含まれるジョブの処理を開始すると判定し、処理はステップＳ１４１０に進む。
【０１２１】
ステップＳ１４１０において、スケジュール生成部１５８は、処理を開始するロットを決定する。ステップＳ１４２０において、スケジュール生成部１５８は、決定した処理を開始するロットに基づき、生産スケジュールを更新する。
【０１２２】
ステップＳ１４３０において、シミュレーション時刻設定部１５２は、終了条件が満たされたか否かを判定する。第１終了条件及び第２終了条件の両方が満たされないとシミュレーション時刻設定部１５２が判定すると（ステップＳ１４３０でＮＯ）、処理はステップＳ１４４０に進む。一方、第１終了条件及び第２終了条件の少なくとも一方が満たされたとシミュレーション時刻設定部１５２が判定すると（ステップＳ１４３０でＹＥＳ）、図１３、図１４の動作は終了する。
【０１２３】
ステップＳ１４４０において、シミュレーション時刻設定部１５２は、シミュレーション時刻を更新する。その後、処理はステップＳ１３４０に戻って、以上のステップが繰り返される。
【０１２４】
（第１実施形態の効果）
以上説明されたように、この第１実施形態では、最早ロット開始時刻計算部１５６は、最早ロット完成時刻がロット待ち限界時刻より遅いときは、最遅到着ジョブを抽出し、この最遅到着ジョブの最早到着時刻を最早ロット開始時刻として算出する。したがって、第１実施形態によれば、最小個数のジョブは揃わなくても、可能な限り多くの個数のジョブが揃ったロットとしてジョブを処理することができる。
【０１２５】
（第２実施形態）
第２実施形態は、最早ロット完成時刻がロット待ち限界時刻より遅いと判明した時点で、ロットに含まれるジョブの処理を開始すると判定する特許文献１に記載の技術と、最早ロット完成時刻がロット待ち限界時刻より遅いときは、最早到着時刻がロット待ち限界時刻より早いジョブのうち最遅到着ジョブの最早到着時刻に、ロットに含まれるジョブの処理を開始すると判定する第１実施形態とを、状況に応じて切り替えている。
【０１２６】
（第２実施形態の構成）
図１５は、第２実施形態におけるシミュレーション装置１００Ａの構成の一例を概略的に示すブロック図である。図１５に示されるように、第２実施形態におけるシミュレーション装置１００Ａは、ディスプレイ１１０、入力部１２０、メモリ１３０Ａ、記憶装置１４０Ａ、及びＣＰＵ１５０Ａを含む。
【０１２７】
メモリ１３０Ａは、例えば半導体メモリ等により構成される。メモリ１３０Ａは、例えばＲＯＭ、ＲＡＭ、ＥＥＰＲＯＭなどを含む。メモリ１３０ＡのＲＯＭは、ＣＰＵ１５０Ａを動作させる第２実施形態の制御プログラムを記憶する。
【０１２８】
ＣＰＵ１５０Ａは、メモリ１３０Ａに記憶された第２実施形態の制御プログラムにしたがって動作することによって、ジョブ分類部１５１、シミュレーション時刻設定部１５２、最早到着時刻計算部１５３、最早ロット完成時刻計算部１５４、ロット待ち限界時刻計算部１５５、最早ロット開始時刻計算部１５６Ａ、ロット処理判定部１５７、スケジュール生成部１５８、総待ち時間計算部１５９の機能を有する。
【０１２９】
記憶装置１４０Ａは、例えばハードディスク又は半導体メモリ等により構成される。記憶装置１４０は、計画対象データ記憶部１４１、ロット条件記憶部１４２Ａ、ジョブ情報記憶部１４３、スケジュールマスタ記憶部１４４、スケジュール記憶部１４５を含む。各記憶部１４１〜１４５は、互いに別の媒体で構成されてもよい。代替的に、各記憶部１４１〜１４５は、記憶領域が分けられた一つの媒体で構成されてもよい。
【０１３０】
第２実施形態のロット条件記憶部１４２Ａは、第１実施形態のロット条件記憶部１４２（図１）が記憶するデータに加えて、予め定められた基準待ち時間を記憶する。基準待ち時間については、後述される。
【０１３１】
総待ち時間計算部１５９は、最早ロット完成時刻がロット待ち限界時刻より遅いときに、ロットに含まれるジョブの処理を最遅到着ジョブの最早到着時刻に開始した場合の総待ち時間を算出する。最遅到着ジョブは、上述のように、最早到着時刻がロット待ち限界時刻より早いジョブのうち、最も遅く到着するジョブである。
【０１３２】
すなわち、総待ち時間計算部１５９は、シミュレーション対象の設備において、処理条件の種類ごとに、ジョブ情報記憶部１４３に記憶されている、ロット候補に含まれる未処理のジョブの最早到着時刻と、ロット待ち限界時刻計算部１５５により算出されたロット待ち限界時刻とを比較して、ロット待ち限界時刻までに到着する、ロット候補に含まれる未処理のジョブを取得する。総待ち時間計算部１５９が取得した未処理のジョブは、シミュレーション対象の設備に到着済みのジョブも含まれる。総待ち時間計算部１５９は、取得したジョブの最早到着時刻から最遅到着ジョブを抽出する。総待ち時間計算部１５９は、ジョブの処理を最遅到着ジョブの最早到着時刻に開始した場合の、全ジョブの待ち時間の和を総待ち時間として算出する。
【０１３３】
最早ロット開始時刻計算部１５６Ａは、最早ロット完成時刻がロット待ち限界時刻より遅いときは、ロット条件記憶部１４２Ａに記憶されている基準待ち時間と、総待ち時間計算部１５９により算出された総待ち時間とを比較する。最早ロット開始時刻計算部１５６Ａは、基準待ち時間が総待ち時間以上のときは、最遅到着ジョブの最早到着時刻を最早ロット開始時刻として算出する。つまり、第１実施形態の動作を行う。一方、最早ロット開始時刻計算部１５６Ａは、基準待ち時間が総待ち時間未満であって、シミュレーション対象の設備に到着済みのジョブが存在するときは、現在のシミュレーション時刻Ｔｓを最早ロット開始時刻として算出する。
【０１３４】
（第２実施形態の動作の概要）
図１６は、第２実施形態の動作の概要を説明するためのタイミングチャートである。図１６には、基準待ち時間と総待ち時間との大小関係が互いに異なる第１ケースと第２ケースとが示されている。第１ケース及び第２ケースの両方とも、設備Ｘにおいて処理条件Ｘ１でジョブが処理される。処理条件Ｘ１における最小個数は５個であり、基準待ち時間は１０時間であり、最大待ち時間は８時間である。
【０１３５】
第１ケース及び第２ケースにおいて、シミュレーション時刻Ｔｓは同じ１０時であり、設備Ｘで処理されるジョブの数も、ジョブＪ１〜Ｊ４の４個で同じである。図１６におけるシミュレーション時刻Ｔｓ（１０時）は、例えば、設備Ｘにおいて実行されていた処理の終了時刻でもよい。
【０１３６】
図１６には、図９等と同様に、シミュレーション時刻ＴｓにおけるジョブＪ１〜Ｊ４の設備Ｘへの最早到着時刻又は実際に到着した時刻が示されている。時刻の横に付された星印は、時刻が各ジョブの最早到着時刻であることを表す。無印の時刻は、ジョブが設備Ｘに実際に到着した時刻を表す。
【０１３７】
第１ケースでは、ジョブＪ１が既に８時に到着済みであり、最大待ち時間（８時間）後のロット待ち限界時刻Ｔｗは、１６時である。第２ケースでも、ジョブＪ１，Ｊ２が８時に到着済みであり、最大待ち時間（８時間）後のロット待ち限界時刻Ｔｗは、第１ケースと同様に、１６時である。また、最早到着時刻がロット待ち限界時刻Ｔｗである１６時より早いジョブのうちで、最も遅く到着する最遅到着ジョブ（図１６ではジョブＪ４）の最早到着時刻は、第１ケース及び第２ケースの両方とも、１４時である。第１ケース及び第２ケースの両方とも、シミュレーション時刻Ｔｓである１０時の時点で、ロット待ち限界時刻Ｔｗである１６時までに、最小個数である５個のジョブは揃わないことが判明している。
【０１３８】
第１ケースにおいて、最遅到着ジョブ（ジョブＪ４）の最早到着時刻（１４時）にロットに含まれるジョブの処理を開始した場合の、各ジョブの待ち時間の和である総待ち時間は、
６時間（Ｊ１）＋１時間（Ｊ２）＋１時間（Ｊ３）＋０時間（Ｊ４）
＝８時間
である。基準待ち時間が１０時間であるので、総待ち時間≦基準待ち時間となる。したがって、最早ロット開始時刻計算部１５６Ａは、最遅到着ジョブ（ジョブＪ４）の最早到着時刻である１４時を最早ロット開始時刻として算出する。つまり、第１実施形態の動作が行われる。
【０１３９】
第２ケースにおいて、最遅到着ジョブ（ジョブＪ４）の最早到着時刻（１４時）にロットに含まれるジョブの処理を開始した場合の、各ジョブの待ち時間の和である総待ち時間は、
６時間（Ｊ１）＋６時間（Ｊ２）＋１時間（Ｊ３）＋０時間（Ｊ４）
＝１３時間
である。基準待ち時間が１０時間であるので、総待ち時間＞基準待ち時間となる。したがって、最早ロット開始時刻計算部１５６Ａは、現在のシミュレーション時刻Ｔｓである１０時を最早ロット開始時刻として算出する。つまり、特許文献１に記載の技術と同様の動作が行われる。
【０１４０】
（第２実施形態の動作手順）
図１７、図１８は、第２実施形態におけるシミュレーション装置の動作手順の一例を概略的に示すフローチャートである。図１７のステップＳ１３００〜Ｓ１３６０は、図１３のステップＳ１３００〜Ｓ１３６０と同じである。
【０１４１】
ステップＳ１３７０において、最早ロット開始時刻計算部１５６Ａは、シミュレーション対象の設備において、最早ロット完成時刻計算部１５４により算出された最早ロット完成時刻が、ロット待ち限界時刻計算部１５５により算出されたロット待ち限界時刻より遅いか否かを判定する。最早ロット完成時刻が、ロット待ち限界時刻より早いかロット待ち限界時刻と同じであれば（ステップＳ１３７０でＮＯ）、処理はステップＳ１３８０に進む。一方、最早ロット完成時刻が、ロット待ち限界時刻より遅ければ（ステップＳ１３７０でＹＥＳ）、処理はステップＳ１７００に進む。ステップＳ１３８０において、最早ロット開始時刻計算部１５６Ａは、最早ロット完成時刻を最早ロット開始時刻として算出する。その後、処理はステップＳ１４００に進む。
【０１４２】
ステップＳ１７００において、総待ち時間計算部１５９は、ロットに含まれるジョブの処理を、最遅到着ジョブの最早ロット開始時刻に開始する場合の、全ジョブの待ち時間の和を総待ち時間として算出する。ステップＳ１７１０において、最早ロット開始時刻計算部１５６Ａは、ロット条件記憶部１４２Ａに記憶されている基準待ち時間と、総待ち時間計算部１５９により算出された総待ち時間とを比較する。
【０１４３】
ステップＳ１７２０において、最早ロット開始時刻計算部１５６Ａは、比較結果に基づき、最早ロット開始時刻を算出する。すなわち、最早ロット開始時刻計算部１５６Ａは、基準待ち時間が総待ち時間以上のときは、最遅到着ジョブの最早到着時刻を最早ロット開始時刻として算出する。一方、最早ロット開始時刻計算部１５６Ａは、基準待ち時間が総待ち時間未満であって、到着済みのジョブが存在するときは、現時点、つまり現在のシミュレーション時刻Ｔｓを最早ロット開始時刻として算出する。その後、処理はステップＳ１４００に進む。図１８のステップＳ１４００〜Ｓ１４４０は、図１４のステップＳ１４００〜Ｓ１４４０と同じである。
【０１４４】
（第２実施形態の効果）
以上説明されたように、この第２実施形態では、最早ロット完成時刻がロット待ち限界時刻より遅いときは、ロットに含まれるジョブの処理を、最遅到着ジョブの最早ロット開始時刻に開始する場合の、全ジョブの待ち時間の和が、総待ち時間として算出される。基準待ち時間が総待ち時間以上のときは、最遅到着ジョブの最早到着時刻が最早ロット開始時刻として算出される。一方、基準待ち時間が総待ち時間未満であって、到着済みのジョブが存在するときは、現時点、つまり現在のシミュレーション時刻Ｔｓが、最早ロット開始時刻として算出される。
【０１４５】
基準待ち時間は、設備及び処理条件の種類ごとに事前に設定されて、ロット条件記憶部１４２に保存される。ユーザは、基準待ち時間を、過去の実績に基づき設定してもよく、経験的に設定してもよく、試行錯誤的に設定してもよい。
【０１４６】
基準待ち時間が大きい値に設定されると、総待ち時間≦基準待ち時間となる場合が増える。このため、可能な限り多くのジョブでロットが構成される。その結果、段取替え時間が減ることから、生産性重視の生産スケジュールが生成される。
【０１４７】
逆に、基準待ち時間が小さい値に設定されると、総待ち時間＞基準待ち時間となる場合が増える。このため、ジョブが１つであってもロットの処理が開始される。その結果、設備（工程）において処理待ちのジョブが減ることから、滞留抑制重視の生産スケジュールが生成される。
【０１４８】
そこで、負荷が高い工程（つまりジョブに対する処理時間の合計が長い設備）では、基準待ち時間を大きい値に設定し、生産性重視の生産スケジュールを生成してもよい。負荷の低い工程（つまりジョブに対する処理時間の合計が短い設備）では、基準待ち時間を小さい値に設定し、滞留抑制重視の生産スケジュールを生成してもよい。このように、第２実施形態によれば、工程の特性に応じた生産スケジュールを生成することができる。
【０１４９】
（変形された実施形態）
（１）上記各実施形態では、シミュレーション時刻設定部１５２は、シミュレーション時刻を、「設備（工程）へのジョブの到着予定時刻」及び「設備（工程）におけるジョブに対する処理の終了時刻」のなかで、現在のシミュレーション時刻以降であって、最も早い時刻に更新しているが、これに限られない。例えば、シミュレーション時刻設定部１５２は、シミュレーション時刻を、一定の時間幅（例えば１時間）で更新してもよい。この場合には、シミュレーション対象の設備は、予め定められた順番で自動的に設定されてもよく、或いはユーザによって選択されてもよい。
【０１５０】
（２）上記実施形態では、図８のステップＳ８５０において、変更対象設備の全てのタスクが選択されたか否かを判定しているが、これに限られない。図７のステップＳ１３１０のシミュレーションにおいて、作業開始時刻又は作業終了時刻が変更されたタスクのみが選択されるようにしてもよい。すなわち、例えば図４のセクション（Ｂ）において、タスク１１〜１４のみが選択されるようにしてもよい。タスク１５〜１７は、作業開始時刻及び作業終了時刻が変更されていないため、前工程タスクの後工程向け期限時刻と、後工程タスクの最短工程間時間完了時刻とは、変化しないので、再計算する必要が無いからである。
【符号の説明】
【０１５１】
１３０，１３０Ａ  メモリ
１４１  計画対象データ記憶部
１４２，１４２Ａ  ロット条件記憶部
１４３  ジョブ情報記憶部
１４４  スケジュールマスタ記憶部
１４５  スケジュール記憶部
１５０，１５０Ａ  ＣＰＵ
１５１  ジョブ分類部
１５２  シミュレーション時刻設定部
１５３  最早到着時刻計算部
１５４  最早ロット完成時刻計算部
１５５  ロット待ち限界時刻計算部
１５６，１５６Ａ  最早ロット開始時刻計算部
１５７  ロット処理判定部
１５８  スケジュール生成部
１５９  総待ち時間計算部
【図１】
2018159994.tif 000003
【図２】
2018159994.tif 000004
【図３】
2018159994.tif 000005
【図４】
2018159994.tif 000006
【図５】
2018159994.tif 000007
【図６】
2018159994.tif 000008
【図７】
2018159994.tif 000009
【図８】
2018159994.tif 000010
【図９】
2018159994.tif 000011
【図１０】
2018159994.tif 000012
【図１１】
2018159994.tif 000013
【図１２】
2018159994.tif 000014
【図１３】
2018159994.tif 000015
【図１４】
2018159994.tif 000016
【図１５】
2018159994.tif 000017
【図１６】
2018159994.tif 000018
【図１７】
2018159994.tif 000019
【図１８】
2018159994.tif 000020