(57)【要約】【課題】変化に対して速い応答性を有する工程管理システム、工程管理方法、工程管理プログラムおよびそれを記録した記録媒体を提供する。【解決手段】工程管理システムに、装置の作業終了時刻を検出する終了時刻検出手段と、各ロットの処理の優先順位を決定する優先順位決定手段と、作業終了時刻および優先順位に基づいて、各装置における作業開始時刻を計算する演算処理手段とを備えることにより達成される。【選択図】  図２
2005346131.tif 000002
【特許請求の範囲】
【請求項１】
複数の工程を経て製造される製品の各工程を管理するための工程管理システムであって、
前記装置の作業終了時刻を検出する終了時刻検出手段と、
各製品の処理の優先順位を決定する優先順位決定手段と、
前記作業終了時刻および前記優先順位に基づいて、各装置における作業開始時刻を計算する演算処理手段と
を備えることを特徴とする工程管理システム。
【請求項２】
請求項１に記載の工程管理システムにおいて、
前記演算処理手段は、装置毎に作業時間を求め、前記作業時間に基づいて、各装置における作業開始時刻を計算することを特徴とする工程管理システム。
【請求項３】
請求項１または２に記載の工程管理システムにおいて、
前記演算処理手段は、少なくとも１つの装置に対して作業開始時刻のリミッタが設定されている場合に、前記リミッタに基づいて、各装置における作業開始時刻を計算することを特徴とする工程管理システム。
【請求項４】
複数の工程を経て製造される製品の各工程を管理するための工程管理方法であって、
前記装置の作業終了時刻を検出するステップと、
各製品の処理の優先順位を決定するステップと、
前記作業終了時刻および前記優先順位に基づいて、各装置における作業開始時刻を計算するステップと
を有することを特徴とする工程管理方法。
【請求項５】
請求項４に記載の工程管理方法において、
装置毎に作業時間を求め、前記作業時間に基づいて、各装置における作業開始時刻を計算するステップ
を有することを特徴とする工程管理方法。
【請求項６】
請求項４または５に記載の工程管理方法において、
少なくとも１つの装置に対して作業開始時刻のリミッタが設定されている場合に、前記リミッタに基づいて、各装置における作業開始時刻を計算するステップ
を有することを特徴とする工程管理方法。
【請求項７】
請求項４ないし６のいずれか１項に記載の工程管理方法をコンピュータに実行させるための工程管理プログラム。
【請求項８】
請求項７に記載の工程管理プログラムを格納するコンピュータで読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の工程を経て製造される製品の各工程を管理する工程管理システム、工程管理方法、工程管理プログラムおよびそれを記録した記録媒体に関する。
【背景技術】
【０００２】
最適化問題の考え方の１つとして、各地点を巡回するための最短経路を求めるセールスマン巡回問題がある。このセールスマン巡回問題においては、全ての経路を探索し、最も短い経路を求める方法が一般に使われる。
【０００３】
例えば、図１に示すように、ロットＡ、ロットＢ、ロットＣそれぞれを、装置Ｘ、装置Ｙ、装置Ｚと通していく場合、この方法では全ての順番の組み合わせが計算され、その中で最適な答えが求められる。
【０００４】
具体的には、装置Ｘに通す順番はロットＡ、ロットＢ、ロットＣそれぞれに対して１番目から３番目の３通りあり、装置Ｙ、装置Ｚについても同様に、通す順番はロットＡ、ロットＢ、ロットＣそれぞれに対して１番目から３番目の３通りある。したがって、装置Ｘ、装置Ｙおよび装置Ｚについては、起こりうる事象は２７通りある。この方法では、この中から最適な順番が決められる。
【０００５】
一般的に、装置毎に起こりうる事象は装置数のロット数乗となる。したがって、仮に、ロットが５つあり、装置が１０個ある場合には１０５すなわち、１０万通りの事象が起こり得ることになり、この中から最適な順番を決める必要がある。これ以上のロット、装置がある場合には起こり得る事象がさらに増加し、処理に莫大な計算時間を要する。
【０００６】
一方、従来から使われている工程を最適化するシステムには、アルテミスやアスプロ−バなどがある。これらのシステムでは、各装置の能力や製品毎の各工程に対する負荷を数値化し、納期などの制約条件を基にスケジュール全体を最適化する。
【０００７】
また、標準時間を基に１つの工程が終わる毎に以降の通過予想時間を計算するシステムがある。
【０００８】
例えば、投入する製品の製品フローデータ、処理条件データ、搬送先データ、初期優先度データ、生産計画データやライン稼動計画データと、仕掛り中の製品に関する同様のデータを基にして仮想的に数ヶ月に亘る進捗シミュレーションを行い、所望の結果が得られたところで長期生産計画を作成するホストコンピュータを備えた生産スケジューリングシステムがある（例えば、特許文献１参照）。
【０００９】
例えば、ある時点以前の作業の実績に基づいて、その時点以後の日程計画を簡単に修正でき、且つ、各製品にかかる工程が日程計画通りに消化されているか否かを作業者に把握させることができる工程管理システムがある（例えば、特許文献２参照）。
【特許文献１】特開平６−１７６０３０号公報
【特許文献２】特開２００３−３０３００９号公報
【発明の開示】
【発明が解決しようとする課題】
【００１０】
しかし、上述した背景技術には、以下に示すような問題がある。
【００１１】
一部の製品（ロット）のみの作業が遅れている場合でも、システム全体についてスケジュールの計算が行われるため、その計算に時間がかかる問題がある。
【００１２】
また、スケジュールの計算は予め決められたタイミングで行われるため、その変更に対して柔軟に対応できない問題がある。
【００１３】
また、システムごとに予め決められた計算式により装置の能力や負荷は決定されるため、適用範囲に限界があり自由度が低い問題がある。
【００１４】
また、終了した工程から離れた工程では精度が悪く納期を確定できない問題がある。
【００１５】
そこで、本発明は、かかる事情に鑑み、変化に対して速い応答性を有する工程管理システム、工程管理方法、工程管理プログラムおよびそれを記録した記録媒体を提供することを目的とする。
【課題を解決するための手段】
【００１６】
上記課題を解決するため、本発明にかかる工程管理システムは、複数の工程を経て製造される製品の各工程を管理するための工程管理システムであって、装置の作業終了時刻を検出する終了時刻検出手段と、各製品の処理の優先順位を決定する優先順位決定手段と、作業終了時刻および優先順位に基づいて、各装置における作業開始時刻を計算する演算処理手段とを備えるものである。
【００１７】
このようにすることにより、スケジュールの変化に対して速く応答することができる。
【００１８】
さらに、演算処理手段は、装置毎に作業時間を求め、作業時間に基づいて、各装置における作業開始時刻を計算するようにしてもよい。
【００１９】
さらに、演算処理手段は、少なくとも１つの装置に対して作業開始時刻のリミッタが設定されている場合に、リミッタに基づいて、各装置における作業開始時刻を計算するようにしてもよい。
【００２０】
また、本発明にかかる工程管理方法は、複数の工程を経て製造される製品の各工程を管理するための工程管理方法であって、装置の作業終了時刻を検出するステップと、各製品の処理の優先順位を決定するステップと、作業終了時刻および優先順位に基づいて、各装置における作業開始時刻を計算するステップとを有する方法である。
【００２１】
さらに、装置毎に作業時間を求め、前記作業時間に基づいて、各装置における作業開始時刻を計算するステップを有するようにしてもよい。
【００２２】
さらに、少なくとも１つの装置に対して作業開始時刻のリミッタが設定されている場合に、リミッタに基づいて、各装置における作業開始時刻を計算するステップを有するようにしてもよい。
【００２３】
また、本発明にかかる工程管理プログラムは、工程管理方法をコンピュータに実行させるものである。
【００２４】
また、本発明にかかるコンピュータ読み取り可能な記録媒体は、工程管理プログラムを格納するものである。
【発明の効果】
【００２５】
本発明の実施例によれば、変化に対して速い応答性を有する工程管理システム、工程管理方法、工程管理プログラムおよびそれを記録した記録媒体を実現できる。
【発明を実施するための最良の形態】
【００２６】
次に、本発明の実施例について図面を参照して説明する。
なお、実施例を説明するための全図において、同一機能を有するものは同一符号を用い、繰り返しの説明は省略する。
【００２７】
初めに、本発明の実施例にかかる工程管理システムについて、図２を参照して説明する。
【００２８】
本実施例にかかる工程管理システムは、例えば工場１００に配置された装置１１０、装置１２０および装置１３０と、各装置１１０、１２０および１３０とオンライン接続された工程管理装置２００とを備える。工場１００では、装置１１０、１２０および１３０により、ロット、例えばロットＡ１４０、ロットＣ１６０の処理が行われる。
【００２９】
工程管理装置２００は、例えばホストコンピュータ２００により構成され、データベース(database ; DB)３００を備える。また、工程管理装置２００は仮想的なシステムを構築し、装置１１０、１２０および１３０とオンライン連携された装置オブジェクト２１０、２２０および２３０を生成する。また、工程管理装置２００は、ロットＡ１４０に対応するロットオブジェクトＡ２４０、ロットＣ１６０に対応するロットオブジェクトＣ２６０を生成する。
【００３０】
次に、工場１００に配置される装置１１０について説明する。装置１２０および１３０については、ロットに対する処理内容が異なる場合が有るが、装置１１０と同様の構成であるためその説明を省略する。
【００３１】
装置１１０は、制御部１１２と、制御部１１２と接続された通信部１１１、記憶部１１３、開始時刻検出部１１４および終了時刻検出部１１５とを備える。
【００３２】
開始時刻検出部１１４は、ロットの処理開始時刻を検出する。例えば、センサにより構成され、ロット投入時に、ロットがそのセンサを通過した時刻を検出し、その時刻をそのロットの処理開始時刻とする。また、例えば、装置１１０に備えられたバーコードリーダによりロットに貼り付けられたバーコードを読み取ることにより処理が開始される場合には、読み取られた時刻を検出し、その時刻をそのロットの処理開始時刻とするようにしてもよい。また、装置の処理開始ボタンが押された時刻を検出し、その時刻をそのロットの処理開始時刻とするようにしてもよい。
【００３３】
記憶部１１３は、装置名、工程名、処理内容に関するデータ、装置１１０を通信部１１１、開始時刻検出部１１４および終了時刻検出部１１５として機能させるためのプログラムなどを記憶する。
【００３４】
ここで、このプログラムはコンピュータ読み取り可能な記録媒体、例えばＣＤ−ＲＯＭなどに格納され、装置１１０に備えられたＣＤ−ＲＯＭドライブを介して、磁気ディスク等に格納された後、メモリにロードされて実行される。なお、プログラムを記録する記録媒体はＣＤ−ＲＯＭ以外の他の記録媒体でも良い。
【００３５】
終了時刻検出部１１５は、ロットの処理終了時刻を検出する。例えばセンサにより構成され、ロットの処理終了時に、そのセンサを通過した時刻を検出し、その時刻をそのロットの処理終了時刻とする。また、例えば、装置１１０に備えられたバーコードリーダによりロットに貼り付けられたバーコードを読み取ることにより処理が終了する場合には、読み取られた時刻を検出し、その時刻をそのロットの処理終了時刻とするようにしてもよい。
【００３６】
通信部１１１は、工程管理装置２００との間の通信処理を行う。
【００３７】
制御部１１２は、ＣＰＵ(Central Processing Unit)、メモリ、キャッシュメモリなどを備え、装置１１０全体の制御を行う。例えば、記憶部１１３に記憶されたプログラムをＣＰＵが読み出して実行することにより制御を行う。
【００３８】
各装置１１０、１２０および１３０において、ロットの処理開始および処理終了というイベントが起こると、そのイベントが起きた装置はネットワークを介して、対応する装置オブジェクトに通知する。通知を受けた装置オブジェクトは、対応するロットオブジェクトに通知し、通知を受けたロットオブジェクトはＤＢ３００に、通知されたデータ、例えば現在の工程、装置、処理開始時刻、処理終了時刻、イベントの履歴などを書き込む。
【００３９】
次に、工程管理装置２００について、図３を参照して説明する。
【００４０】
工程管理装置２００は、制御部２６０と、制御部２６０と接続された通信部２７０、演算処理部２８０、優先順位決定部２８５、記憶部２９０およびＤＢ３００とを備える。
【００４１】
通信部２７０は、各装置１１０、１２０および１３０との間の通信処理を行う。
【００４２】
演算処理部２８０は、各装置１１０、１２０および１３０において処理されたロット名、装置名、処理開始時間および処理終了時間などの情報を収集し、ロット毎に、各装置へ到着する予定時刻、処理開始時刻、装置での処理時間などを求める演算を行う。
【００４３】
優先順位決定部２８５は、各ロットの処理の優先順位を決定する。
【００４４】
記憶部２９０は、装置２００を通信部２７０、演算処理部２８０および優先順位決定部２８５として機能させるためのプログラムなどを記憶する。
【００４５】
ここで、このプログラムはコンピュータ読み取り可能な記録媒体、例えばＣＤ−ＲＯＭなどに格納され、工程管理装置２００に備えられたＣＤ−ＲＯＭドライブを介して、磁気ディスク等に格納された後、メモリにロードされて実行される。なお、プログラムを記録する記録媒体はＣＤ−ＲＯＭ以外の他の記録媒体でも良い。
【００４６】
ＤＢ３００は、後述するロットデータ保持テーブル３００−１、履歴データ保持テーブル３００−２および仕様データ保持テーブル３００−３から構成され、ロット毎に、現在の工程、装置、イベントの履歴などを記憶する。
【００４７】
制御部２６０は、ＣＰＵ(Central Processing Unit)、メモリ、キャッシュメモリなどを備え、工程管理装置２００全体の制御を行う。例えば、記憶部２９０に記憶されたプログラムをＣＰＵが読み出して実行することにより制御を行う。
【００４８】
次に、工程管理装置２００の演算処理部２８０の動作について、図４を参照して説明する。
【００４９】
演算処理部２８０は、計算部２８２と、計算部２８２と接続された装置オブジェクト２１０、２２０および２３０と、計算部２８２と接続され、各装置オブジェクト２１０、２２０および２３０と接続可能であるロットオブジェクト２４０および２５０と、各装置オブジェクト２１０、２２０および２３０と接続された配送オブジェクト２８４と、各ロットオブジェクト２４０および２５０と接続されたロットコントローラ２８６−１、履歴コントローラ２８６−２および仕様コントローラ２８６−３とを生成する。
【００５０】
また、ロットコントローラ２８６−１はロットデータ保持テーブル３００−１と接続され、履歴コントローラ２８６−２は履歴データ保持テーブル３００−２と接続され、仕様コントローラ２８６−３は仕様データ保持テーブル３００−３と接続される。
【００５１】
装置オブジェクト２１０、２２０および２３０は、工程管理装置２００に備えられた通信ポート２０２を介して装置１１０、１２０および１３０とオンライン連携される。また、装置オブジェクト２１０、２２０および２３０は、装置１１０、１２０および１３０に対応し、各装置１１０、１２０および１３０において、ロットの処理開始および処理終了というイベントが生じた場合に、そのイベントの情報を収集する。
【００５２】
ロットオブジェクト２４０および２５０は、ロットＡ１４０およびロットＢ１５０に対応する。イベントが生じたロットオブジェクトは、装置オブジェクトからイベントの情報を取得する。また、各ロットオブジェクト２４０、２５０は、ロットコントローラ２８６−１を介してロットデータ保持テーブル３００−１にアクセスし、履歴コントローラ２８６−２を介して履歴データ保持テーブル３００−２にアクセスし、仕様コントローラ２８６−３を介して仕様データ保持テーブル３００−３にアクセスする。
【００５３】
配送オブジェクトは、ロットオブジェクトを、処理が行われる装置オブジェクトに送る。すなわち、ロットオブジェクトと装置オブジェクトとの接続を行う。
【００５４】
計算部２８２は、各装置１１０、１２０および１３０において処理されたロット名、装置名、処理開始時間、処理終了時間などの情報を、各装置オブジェクト２１０、２２０および２３０、各ロットオブジェクト２４０および２５０を介して収集し、ロット毎に、各装置での作業時間、各装置へ到着する予定時刻および処理開始時刻などの演算を行う。
【００５５】
ロットコントローラ２８６−１、履歴コントローラ２８６−２および仕様コントローラ２８６−３は、ロットデータ保持テーブル３００−１、履歴データ保持テーブル３００−２および仕様データ保持テーブル３００−３に対してデータの書き込みおよびデータの取り出しを行う。
【００５６】
ロットデータ保持テーブル３００−１は、ロット毎に基板の枚数、基板の大きさ、現在の工程、現在の装置に関する情報を保管する。また、履歴データ保持テーブル３００−２は、ロット毎に、今まで通ってきた装置、その装置での処理開始時刻、処理終了時刻に関する情報を保管する。また、仕様データ保持テーブル３００−３は、各工程、各装置での処理内容を記録する。
【００５７】
一例として、ロットＡ１４０が、装置１１０において処理が行われた後、装置１２０に搬送される場合の演算処理部２８０での処理について説明する。
【００５８】
この場合、ロットＡ１４０が装置１１０において処理が行われる間は、仮想システム上においても、装置オブジェクト２１０にロットオブジェクト２４０がある。すなわち、装置オブジェクト２１０とロットオブジェクト２４０とが接続された状態である。
【００５９】
各装置オブジェクト２１０、２２０および２３０は、保持しているロットオブジェクトを認識し、またロットオブジェクトは属している装置オブジェクトを認識する。
【００６０】
装置１１０において、ロットＡ１４０の処理が終了すると、通信ポート２０２を介して、その終了時刻がシステム上の装置オブジェクト２１０に通知される。通知された装置オブジェクト２１０は、計算部２８２にロットＡ１４０の処理の終了時刻を入力する。
【００６１】
計算部２８２は、各ロットオブジェクト２４０および２５０に対し、基板の枚数、基板の大きさに関するデータを要求し、各ロットオブジェクト２４０、２５０は各コントローラを介して、データベース３００からデータを取り出し、計算部２８２に入力する。例えば、各ロットオブジェクト２４０および２５０はロットコントローラ２８６−１を介して、ロットデータ保持テーブル３００−１にアクセスし、保管されているロット毎の基板の枚数、基板の大きさ、現在の工程、現在の装置に関する情報を取り出し、計算部２８２に入力する。また、計算部２８２は、装置オブジェクト２１０〜２３０に対し、処理時間を計算するための計算式を要求し、各装置オブジェクト２１０〜２３０は記憶部２９０に格納している計算式を計算部２８２に入力する。
【００６２】
次に、計算部２８２は、優先順位を変更するか否かについて判断する。
【００６３】
例えば、納期が近いロット、処理に急を要するロットなどに関しては処理の優先順位を高くする。優先順位は、納期以外の例えば工場の稼動状況、人員の配備状態などに基づいて決定するようにしてもよい。すなわち、各ロットの優先順位は工程、日程などにより変動させることができる。このようにすることにより、ある工程での処理の終了の度に優先順位が見直されるため、スケジュールの変化に対して速く応答することができる。
【００６４】
例えば、ロットＡ、Ｂが同じプロセスで処理される場合について説明する。図５に示すように、ロットＡ、Ｂが装置Ｘに到着するまでは、ロットＡの優先順位は「高い」、納期は「余裕あり」に設定されており、ロットＢの優先順位は「低い」、納期は「近い」に設定されている。装置ＸにおいてロットＡおよびロットＢがともに「待ち」状態である場合、ロットＢの納期が「近い」ため、ロットＢの優先順位をロットＡより上げ、またはロットＡの優先順位をロットＢより下げロットＢを先に装置Ｘに投入するように設定する。
【００６５】
次に、計算部２８２は、システム上の全ロットオブジェクトのデータ、装置オブジェクトのデータに基づいて、フォワードループによる計算を行う。
【００６６】
このフォワードループについて具体的に説明する。
【００６７】
初めに、作業時間の割り出しが行われる。本実施例では、基板の大きさ、枚数などのロットの構成状態、各装置への負荷、段取りなどによって各装置における作業時間の計算方法が異なる。このため、これらのパラメータに基づいて装置毎に計算方式を変えて計算が行われる。また、計算方式は、各工程、装置、ロットなどにより変更可能である。このようにすることにより、システム毎に計算方式が決まっている従来の工程管理システムに比べ、装置毎に作業時間などを計算できるため装置の能力や負荷に対するパラメータ設定の自由度を高めることができる。
【００６８】
図６を参照して説明する。ロットＡは、基板の大きさが小さく、その基板の搭載枚数が８枚であり、ロットＢは基板の大きさが大きく、その基板の搭載枚数が４枚である。
【００６９】
例えば、装置Ｘでは、基板の大きさ×枚数／装置の負荷を計算方式として採用しており、ロットＡの作業時間は４５分、ロットＢの作業時間は１時間１５分と計算される。また、装置Ｙでは、基板の大きさ＋枚数×装置の負荷を計算方式として採用しており、ロットＡの作業時間は２時間、ロットＢの作業時間は１時間３０分と計算される。また、装置Ｚでは、枚数×装置の負荷＋段取り時間を計算方式として採用しており、ロットＡの作業時間は１時間３０分、ロットＢの作業時間は２時間２分と計算される。
【００７０】
次に、求められた作業時間に基づいて、予想到着時刻の計算が行われる。
【００７１】
実際の工場の現場では、予測時間通りにロットが流れるわけではない。このため、ロットが装置から払い出される度に再計算が行われる。このようにすることにより、変化に対して早く応答することができる。また、スケジュールの変更がある場合には、その変更に対して再計算を行うことができ、予め決められたタイミングでスケジュールの計算が行われる従来の工程管理システムに比べ、変更に対して柔軟に対応できる。また、ある工程での作業時間が予測と異なる場合でも、それ以降の工程に対して柔軟に対応できる。
【００７２】
例えば、ロットＡが、装置Ｘ、装置Ｙ、装置Ｚの順に処理される場合について説明する。
【００７３】
当初のスケジュールでは、図７に示すように予想到達時刻および作業時間が、装置Ｘについては７：００および１時間、装置Ｙについては８：００および１．５時間、装置Ｚについては９：３０および２時間である。ここで、ロットが装置に投入され、作業が終了した時刻を次の装置への予想到達時刻とする。
【００７４】
しかし、装置Ｘでの作業時間は１時間と計算されていたが、実際には３時間かかり、１０：００に装置Ｘから払い出された。この場合、再計算が行われ、装置Ｘの作業終了時刻が１０：００、装置Ｙへの予想到達時刻が１０：００、装置Ｚへの予想到達時刻が１１：３０に、装置Ｙおよび装置Ｚの予想到達時刻が修正される。ここで、再計算は、作業時刻と優先順位に基づいて行われる。
【００７５】
また、予想到達時刻の計算が行われる場合、優先順位が低いものに関しては、予想到達時刻が発散または現在の時刻よりかなり先になってしまう場合がある。このため、リミッタを設け、一定の時間を超えて予想到達時刻が計算されると、後述するバックループにより、最後の工程から再計算が行われる。バックループにより再計算が行われた場合においても、一定の時間を超える場合には、再度フォワードループにより再計算が行われる。これらのフォワードループおよびバックループによる再計算の繰り返しを常に行うことにより最適化を行う。このようにすることにより、先頭工程から計算するフォワードループと、最終工程から計算するバックループを交互に行い、安定点を保つように常に再計算を行うことができるため、スケジュールの変更に対して柔軟に対応できる。また、リミッタを設けたことにより、例えば計算式を変更した場合など、前後の工程が互いに影響し合い収束しない場合においても発散しないようにできる。
【００７６】
例えば、ロットＡ、ロットＢ、ロットＣおよびロットＤが、装置１、装置２、装置３、装置４の順に処理される場合を例として説明する。
【００７７】
各ロットの各装置における作業時間を図８に示す。装置１、装置２、装置３および装置４での処理時間は、ロットＡについては２時間、２時間、１時間および１時間であり、ロットＢについては１時間、２時間、１時間および１時間であり、ロットＣについては１時間、１時間、１時間および１時間であり、ロットＤについては２時間、２時間、２時間および２時間である。
【００７８】
これらの作業時間に基づいて、予想到達時刻の計算が行われる。ロットＡ、ロットＢ、ロットＣ、ロットＤの順に処理が行われた場合には、図９に示すように装置１、装置２、装置３、装置４および倉庫への予想到達時刻は、ロットＡについては７：００、９：００、１１：００、１２：００および１３：００であり、ロットＢについては７：００、１０：００、１３：００、１４：００および１５：００であり、ロットＣについては７：００、１２：００、１３：００、１５：００および１６：００であり、ロットＤについては７：００、１４：００、１６：００、１８：００および２０：００である。
【００７９】
ここで、ロットＤが１９：００までに倉庫に到着する必要がある場合には、１９：００に装置４での加工を終了する必要がある。この場合、装置４での作業時間は２時間であるので１７：００までに装置４での作業を開始する必要がある。すなわち、装置４での作業開始時刻のリミットが１７：００となる。
【００８０】
そこで、装置４の予想到達時刻を１７：００としてバックループにより最後から計算を行う。その結果、図１０に示すように、ロットＤについて、装置１、装置２、装置３、装置４および倉庫への予想到達時刻は、７：００、１３：００、１５：００、１７：００および１９：００に変更される。ここで、ロットＤを装置２に１３：００に到着させるためには、装置１の作業を１３：００までに終了させることが必要であり、このためには装置１での作業時間が２時間であるため、１１：００までに投入する必要があることがわかる。しかし、１１時には、ロットＣが装置１に投入されるようにスケジューリングされている。このため、フォワードループによる再計算を行うことにより、ロットＡ、ロットＢおよびロットＣの少なくとも１つが修正される。
【００８１】
その結果、図１１に示すように、装置１、装置２、装置３、装置４への予想到達時刻および作業開始時刻、および倉庫への予想到達時刻は、ロットＡについて７：００および９：００、１１：００および１１：００、１３：００および１３：００、１４：００および１４：００、および１５：００となり、ロットＢについて７：００および８：００、９：００および９：００、１１：００および１１：００、１２：００および１２：００、および１３：００となり、ロットＣについて７：００および７：００、８：００および８：００、９：００および９：００、１０：００および１０：００、および１１：００となり、ロットＤについて７：００および１１：００、１３：００および１３：００、１５：００および１５：００、１７：００および１７：００、および１９：００となる。このように、フォワードループとバックループとを繰り返す。
【００８２】
計算が終了すると、計算部２８２は、その結果を各装置オブジェクト２１０〜２３０に入力し、各装置オブジェクト２１０〜２３０は、ポート２０２を介して装置１１０、１２０および１３０に送信する。装置１１０、１２０および１３０は、受信したスケジュールにしたがって処理を行う。各装置１１０、１２０および１３０は表示装置（図示なし）にロットの予想到達時刻を表示する。このように、各装置１１０、１２０および１３０に具体的な日時が渡されるため、各ロットの予想到達時刻を一瞥しただけでわかるようにできる。
【００８３】
ロットＡ１４０が、装置１２０に搬送されると、ロットオブジェクト２４０は装置オブジェクト２２０に移動する。すなわち、図１２に示すように、ロットオブジェクト２４０と装置オブジェクト２１０との接続が解除され、装置オブジェクト２２０と接続される。
【００８４】
この場合、ロットオブジェクト２４０は、装置オブジェクト２１０で処理が終了したことを認識すると、仕様コントローラ２８６−３を介して、次の工程のデータすなわち装置１２０の仕様を、仕様データ保持テーブル３００−３から取り出す。
【００８５】
次に、装置オブジェクト２１０は配送オブジェクト２８４を通じて、ロットオブジェクト２４０を装置オブジェクト２２０へと送る。このとき、装置オブジェクト２４０とロットオブジェクト２２０とが接続される。この場合においてもロットオブジェクト２４０は装置オブジェクト２２０と接続していることを認識し、装置オブジェクト２２０はロットオブジェクト２４０と接続していることを認識する。
【００８６】
次に、工程管理装置２００の動作について、図１３を参照して説明する。
【００８７】
装置１１０、１２０および１３０は、所定の工程の処理が終了するとその処理終了時刻を工程管理装置２００に送信する。装置１１０、１２０および１３０から信号を受信すると（ステップＳ１３０２）、工程管理装置２００の仮想システム内の装置オブジェクト２１０〜２３０は受信した情報を計算部２８２に入力する。
【００８８】
次に、計算部２８２は、各ロットオブジェクト２４０、２５０および各装置オブジェクト２１０、２２０、２３０より、計算に必要なデータを収集する（ステップＳ１３０４）。
【００８９】
次に、計算部２８２は、処置の優先順位を変更する必要があるか否かを判断する（ステップＳ１３０６）。
【００９０】
優先順位を変える必要がある場合には（ステップＳ１３０６：ＹＥＳ）、優先順位を変える必要のあるロットの優先順位を変動させる（ステップＳ１３０８）。
【００９１】
次に、優先順位に違いがあるか否かについて判断する（ステップＳ１３１０）。優先順位に違いがある場合（ステップＳ１３１０：ＹＥＳ）、優先順位の高いロットから作業を行うように設定する。ここで、優先順位の高いロットに関しては、フォワードループ、バックループともに影響を受けずに結果を固定する。すなわち、一番優先順位が高いロットについてはどの装置においても、一番初めに装置を通すようにし、二番目に優先順位が高いロットは、優先順位が一番高いロットが通過したあとで、一番目に通すように設定する（ステップＳ１３１２）。
【００９２】
優先順位に違いがない場合（ステップＳ１３１０：ＮＯ）、システムでランダムに選び出したロットから計算を始めるように設定する（ステップＳ１３１４）。
【００９３】
次に、計算を開始する（ステップＳ１３１６）。すなわち、フォワードループによる計算を行う。
【００９４】
次に、リミッタ作動時間を超えているロットがあるか否かを判断する（ステップＳ１３１８）。
【００９５】
リミッタ作動時間を超えているロットがある場合（ステップＳ１３１８：ＹＥＳ）、リミッタ作動時間を超えているロットの作業時間を超えないように強制的に、予想到着時刻を設定する（ステップＳ１３２０）。ここで、優先順位が高いロットに関しては、自ロットより優先順位が下位のロットがリミッタ作動時間を超えた場合においても、一度計算された結果に変動はないようにする。
【００９６】
リミッタ作動時間を超えているロットがない場合（ステップＳ１３１８：ＮＯ）、装置オブジェクトに結果を通知する（ステップＳ１３２２）。
【００９７】
次に、バックループによる計算を行う（Ｓ１３２４）。
【００９８】
次に、同じ時刻に重なっているロットがあるか否かについて調べる（ステップＳ１３２６）。すなわち、同じ時刻に１つの装置を通るロットが複数ないか、同じ時刻に１つの装置で複数のロットの作業が開始されていないか、あるいはあるロットが作業中である場合に別のロットがその装置で作業を開始するようになっていないかを調べる。
【００９９】
同じ時刻に重なっているロットがある場合（ステップＳ１３２６：ＹＥＳ）、重なっているロットの時間、例えば予想到達時刻、作業開始時刻をずらす処理を行う（ステップＳ１３３０）。この場合、自ロットより優先順位が同位であるロット、あるいは下位のロットの時間をずらす。
【０１００】
一方、同じ時刻に重なっているロットがない場合（ステップＳ１３２６：ＮＯ）、装置オブジェクトに結果を通知する（ステップＳ１３２８）。
【０１０１】
次に、ステップＳ１３１６に戻り、フォワードループによる計算が行われる。この場合、ステップＳ１３２４において行われたバックループによる計算結果に基づいて、フォワードループによる計算が行われる。また、バックループによる計算で時間が重なり、時間がずらされた場合には、その時間に合うように調整が行われる。また、時間が重ならない場合には空白の時間、例えば、ロットが到達し、かつ装置で作業中のロットがない状態にも関わらず作業が開始されない状態である時間がないか調べ、同様に調整する。このフォワードループによる計算が終了すると、調整された時間がリミッタ作動時間を超えているロットがあるか否かを調べ（ステップＳ１３１８）、バックループによる計算が行われる。
【０１０２】
本実施例では、ある工程が終了した場合に、その後ロットが通過する全ての装置に予想到達時刻が通知される場合について説明したが、新規のロットが投入された場合においてもその後ロットが通過する全ての装置に予想到達時刻が通知される。
【０１０３】
上述した実施例においては、３台の装置を備えた工程管理システムについて説明したが、３台以上の装置を備えた場合でも同様に構成することにより工程管理システムを実現できる。
【０１０４】
以上、本発明を好ましい実施例について説明したが、本発明は上記の特定の実施例に限定されるものではなく、特許請求の範囲に記載した要旨内において様々な変形・変更が可能である。
【産業上の利用可能性】
【０１０５】
本発明は、各工程を最適化する工程管理システムに適用できる。
【図面の簡単な説明】
【０１０６】
【図１】最適化問題を説明するための説明図である。
【図２】本実施例にかかる工程管理システムを説明するためのブロック図である。
【図３】本実施例にかかる工程管理装置を説明するためのブロック図である。
【図４】本実施例にかかる工程管理装置を説明するためのブロック図である。
【図５】本実施例にかかる工程管理装置の動作を説明するための説明図である。
【図６】本実施例にかかる工程管理装置の動作を説明するための説明図である。
【図７】本実施例にかかる工程管理装置の動作を説明するための説明図である。
【図８】本実施例にかかる工程管理装置の動作を説明するための説明図である。
【図９】本実施例にかかる工程管理装置の動作を説明するための説明図である。
【図１０】本実施例にかかる工程管理装置の動作を説明するための説明図である。
【図１１】本実施例にかかる工程管理装置の動作を説明するための説明図である。
【図１２】本実施例にかかる工程管理装置を説明するためのブロック図である。
【図１３】本実施例にかかる工程管理装置の動作を説明するためのフローチャートである。
【符号の説明】
【０１０７】
１００  工場
１１０、１２０、１３０  装置
２００  工程管理装置
２４０、２５０  ロットオブジェクト
【図１】
2005346131.tif 000003
【図２】
2005346131.tif 000004
【図３】
2005346131.tif 000005
【図４】
2005346131.tif 000006
【図５】
2005346131.tif 000007
【図６】
2005346131.tif 000008
【図７】
2005346131.tif 000009
【図８】
2005346131.tif 000010
【図９】
2005346131.tif 000011
【図１０】
2005346131.tif 000012
【図１１】
2005346131.tif 000013
【図１２】
2005346131.tif 000014
【図１３】
2005346131.tif 000015