(57)【特許請求の範囲】
【請求項１】
基板を一枚ずつ処理する枚葉型の処理ユニットを複数有する基板処理装置の動作を時系列に従って規定するスケジュールを前記基板処理装置に備えられた制御部が作成するための方法であって、
前記制御部が、共通の処理を施すべき第１の基板群であって前記複数の処理ユニットのうちの第１の処理ユニット群において処理可能な第１の基板群に対して前記第１の処理ユニット群に属する処理ユニットの使用権を設定する第１使用権設定ステップと、
前記制御部が、前記第１の処理ユニット群に属する処理ユニットの使用権が前記第１の基板群に対して設定されているときに、当該第１の基板群の基板の前記第１の処理ユニット群に属する処理ユニットによる処理を表す第１処理ブロックの配置を許容する一方で、他の基板群の基板の前記第１の処理ユニット群に属する処理ユニットによる処理を表す処理ブロックの配置を禁止する第１処理ブロック配置ステップと、
前記制御部が、前記第１の基板群に対する前記第１の処理ユニット群に属する処理ユニットの使用権を削除するステップと、
前記制御部が、共通の処理を施すべき第２の基板群であって前記複数の処理ユニットのうち前記第１の処理ユニット群に属する少なくとも一つの処理ユニットを含む第２の処理ユニット群において処理可能な第２の基板群に対する処理の計画に際して、前記第２の処理ユニット群に属するいずれの処理ユニットにも使用権が設定されていないことを条件に、前記第２の基板群に対して前記第２の処理ユニット群に属する処理ユニットの使用権を設定する第２使用権設定ステップと、
前記制御部が、前記第２の処理ユニット群に属する処理ユニットの使用権が前記第２の基板群に対して設定されているときに、当該第２の基板群の基板の前記第２の処理ユニット群に属する処理ユニットによる処理を表す第２処理ブロックの配置を許容する一方で、他の基板群の基板の前記第２の処理ユニット群に属する処理ユニットによる処理を表す処理ブロックの配置を禁止する第２処理ブロック配置ステップとを含む、スケジュール作成方法。
【請求項２】
前記第１の基板群に対する前記処理ユニットの使用権を削除するステップが、前記第１の基板群に属する全ての基板に対するスケジューリングの完了直後に実行される、請求項１に記載のスケジュール作成方法。
【請求項３】
前記制御部が、共通の処理を施すべき第３の基板群であって前記複数の処理ユニットのうち前記第１の処理ユニット群に属する処理ユニットを含まない第３の処理ユニット群において処理可能な第３の基板群に対する処理の計画に際して、前記第３の処理ユニット群に属するいずれの処理ユニットにも使用権が設定されていないことを条件に、前記第３の基板群に対して前記第３の処理ユニット群に属する処理ユニットの使用権を設定する第３使用権設定ステップと、
前記制御部が、前記第３の処理ユニット群に属する処理ユニットの使用権が前記第３の基板群に対して設定されているときに、当該第３の基板群の基板の前記第３の処理ユニット群に属する処理ユニットによる処理を表す第３処理ブロックの配置を許容する一方で、他の基板群の基板の前記第３の処理ユニット群に属する処理ユニットによる処理を表す処理ブロックの配置を禁止する第３処理ブロック配置ステップとをさらに含む、請求項１または２に記載のスケジュール作成方法。
【請求項４】
前記基板処理装置が、複数枚の基板をそれぞれ保持して同時に搬送できる複数の基板保持ハンドを有する基板搬送ユニットを含み、
前記制御部が、前記基板搬送ユニットによって同時に搬送される複数枚の基板の搬送をそれぞれ表す複数の搬送ブロックを時間軸上で重なり合うように配置するステップをさらに含む、請求項１〜３のいずれか一項に記載のスケジュール作成方法。
【請求項５】
基板を一枚ずつ処理する枚葉型の処理ユニットを有する基板処理装置の動作を時系列に従って規定するスケジュールを作成するためのコンピュータプログラムであって、
請求項１〜４のいずれか一項に記載の方法を前記制御部としてのコンピュータに実行させるようにステップ群が組み込まれたコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、基板処理装置の動作を時系列に従って規定するスケジュールを作成するための方法およびプログラムに関する。基板処理装置による処理対象となる基板の例には、半導体ウエハ、液晶表示装置用基板、プラズマディスプレイ用基板、ＦＥＤ(Field Emission Display)用基板、光ディスク用基板、磁気ディスク用基板、光磁気ディスク用基板、フォトマスク用基板、セラミック基板、太陽電池用基板などが含まれる。
【背景技術】
【０００２】
特許文献１および特許文献２は、基板処理装置に備えられたリソースの使用タイミングを決定するためのスケジュール作成を開示している。具体的には、複数枚の基板で構成されるロットを一括して処理するバッチ式の基板処理装置において、搬送機構、薬液処理部、純水洗浄処理部、乾燥処理部等のリソースの使用タイミングを規定するスケジュールを作成するための技術が開示されている。基板処理装置に備えられた制御部は、作成されたスケジュールに従って各リソースを作動させる。これにより、ロット毎の基板に対する処理が効率良く行われ、基板処理装置の生産性が高まる。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００８−２１８４４９号公報
【特許文献２】特開２００８−２１０９５６号公報
【特許文献３】国際公開第２０１０／１０３８７６号
【発明の概要】
【発明が解決しようとする課題】
【０００４】
基板に対する処理（たとえば洗浄処理）をより精密に行うために、基板を一枚ずつ処理する枚葉型の基板処理装置が用いられるようになってきている。しかし、特許文献１，２に係る先行技術は、いずれもバッチ式の基板処理装置に適したものであり、枚葉型の基板処理装置にそのまま適用しても、必ずしも効率的な基板処理を実現できるとは限らない。
そこで、この発明の目的は、枚葉型の基板処理装置に適したスケジュール作成方法およびスケジュール作成プログラムを提供することである。
【課題を解決するための手段】
【０００５】
上記の目的を達成するための請求項１記載の発明は、基板を一枚ずつ処理する枚葉型の処理ユニットを複数有する基板処理装置の動作を時系列に従って規定するスケジュールを前記基板処理装置に備えられた制御部が作成するための方法であって、前記制御部が、共通の処理を施すべき第１の基板群であって前記複数の処理ユニットのうちの第１の処理ユニット群において処理可能な第１の基板群に対して前記第１の処理ユニット群に属する処理ユニットの使用権を設定する第１使用権設定ステップと、前記制御部が、前記第１の処理ユニット群に属する処理ユニットの使用権が前記第１の基板群に対して設定されているときに、当該第１の基板群の基板の前記第１の処理ユニット群に属する処理ユニットによる処理を表す第１処理ブロックの配置を許容する一方で、他の基板群の基板の前記第１の処理ユニット群に属する処理ユニットによる処理を表す処理ブロックの配置を禁止する第１処理ブロック配置ステップと、前記制御部が、前記第１の基板群に対する前記第１の処理ユニット群に属する処理ユニットの使用権を削除するステップと、前記制御部が、共通の処理を施すべき第２の基板群であって前記複数の処理ユニットのうち前記第１の処理ユニット群に属する少なくとも一つの処理ユニットを含む第２の処理ユニット群において処理可能な第２の基板群に対する処理の計画に際して、前記第２の処理ユニット群に属するいずれの処理ユニットにも使用権が設定されていないことを条件に、前記第２の基板群に対して前記第２の処理ユニット群に属する処理ユニットの使用権を設定する第２使用権設定ステップと、前記制御部が、前記第２の処理ユニット群に属する処理ユニットの使用権が前記第２の基板群に対して設定されているときに、当該第２の基板群の基板の前記第２の処理ユニット群に属する処理ユニットによる処理を表す第２処理ブロックの配置を許容する一方で、他の基板群の基板の前記第２の処理ユニット群に属する処理ユニットによる処理を表す処理ブロックの配置を禁止する第２処理ブロック配置ステップとを含む、スケジュール作成方法である。
【０００６】
この方法によれば、共通の処理を施すべき第１の基板群に対して第１の処理ユニット群に属する処理ユニットの使用権が設定される。この使用権が設定されているときには、その処理ユニットによる処理を表す処理ブロックとしては、第１の基板群に属する基板に対する処理を表す第１処理ブロックのみが配置可能となり、他の基板群に属する基板に対する処理を表す処理ブロックの配置は禁止される。したがって、当該処理ユニットにおいては、第１の基板群の処理の間に、他の基板群の処理が割り込まないことを保証できる。また、第１の基板群に対する第１の処理ユニット群に属する処理ユニットの使用権が削除され、第２の処理ユニット群に属するいずれの処理ユニットにも使用権が設定されていない状態になると、別の基板群である第２の基板群に対して当該処理ユニットの使用権が設定される。よって、その処理ユニットによる処理を表す処理ブロックとしては、第２の基板群に属する基板に対する処理を表す第２処理ブロックのみが配置可能となり、他の基板群に属する基板に対する処理を表す処理ブロックの配置は禁止される。したがって、当該処理ユニットにおいて、第２の基板群の処理の間に、他の基板群の処理が割り込まないことを保証できる。こうして、使用権の設定および削除を行うことで、処理が共通する基板群の間に別の処理を行うべき基板が割り込むことを回避できるので、基板処理装置のリソースとしての処理ユニットを効率的に稼働させることができる。これにより、個々の基板に対する処理ブロックを時間軸上に効率的に配置して枚葉型処理ユニット等のリソースの稼働率を高めることができるので、枚葉型基板処理装置の生産性を向上できる。
【０００７】
請求項２記載の発明は、前記第１の基板群に対する前記処理ユニットの使用権を削除するステップが、前記第１の基板群に属する全ての基板に対するスケジューリングの完了直後に実行される、請求項１に記載のスケジュール作成方法である。
この方法では、第１の基板群に対する処理ユニットの使用権の削除が、当該第１の基板群に属する全ての基板に対するスケジューリングの完了直後に実行されるから、第１の基板群に属する基板に関する処理開始を待つことなく、第２の基板群に対して処理ユニットの使用権を設定できる。これにより、第２の基板群に属する基板に対する処理ブロックを速やかに配置できるので、効率的な処理ブロック配置が可能となるので、枚葉型処理ユニットの稼働率を一層高めることができる。スケジューリングの完了直後とは、具体的には、第１の基板群の最後の基板が処理のために搬送開始（たとえば基板収容器から搬出）されるよりも前であってもよい。
【０００８】
請求項３記載の発明は、前記制御部が、共通の処理を施すべき第３の基板群であって前記複数の処理ユニットのうち前記第１の処理ユニット群に属する処理ユニットを含まない第３の処理ユニット群において処理可能な第３の基板群に対する処理の計画に際して、前記第３の処理ユニット群に属するいずれの処理ユニットにも使用権が設定されていないことを条件に、前記第３の基板群に対して前記第３の処理ユニット群に属する処理ユニットの使用権を設定する第３使用権設定ステップと、前記制御部が、前記第３の処理ユニット群に属する処理ユニットの使用権が前記第３の基板群に対して設定されているときに、当該第３の基板群の基板の前記第３の処理ユニット群に属する処理ユニットによる処理を表す第３処理ブロックの配置を許容する一方で、他の基板群の基板の前記第３の処理ユニット群に属する処理ユニットによる処理を表す処理ブロックの配置を禁止する第３処理ブロック配置ステップとをさらに含む、請求項１または２に記載のスケジュール作成方法である。
【００１４】
請求項４記載の発明は、前記基板処理装置が、複数枚の基板をそれぞれ保持して同時に搬送できる複数の基板保持ハンドを有する基板搬送ユニットを含み、前記制御部が、前記基板搬送ユニットによって同時に搬送される複数枚の基板の搬送をそれぞれ表す複数の搬送ブロックを時間軸上で重なり合うように配置するステップをさらに含む、請求項１〜３のいずれか一項に記載のスケジュール作成方法である。
【００１５】
この方法では、基板搬送ユニットは、同時に複数枚の基板を搬送できる。そこで、複数枚の基板の搬送を表す複数の搬送ブロックを時間軸上で重なり合うように配置することで、複数枚の基板の同時搬送を計画することができる。こうして、枚葉型基板処理装置における基板搬送効率を高めることができるので、基板処理装置の生産性を高めることができる。
【００１６】
請求項５記載の発明は、基板を一枚ずつ処理する枚葉型の処理ユニットを有する基板処理装置の動作を時系列に従って規定するスケジュールを作成するためのコンピュータプログラムであって、請求項１〜４のいずれか一項に記載の方法を前記制御部としてのコンピュータに実行させるようにステップ群が組み込まれたコンピュータプログラムである。
この発明により、スケジュール作成方法に関して説明した前述の効果を得ることができる。
【図面の簡単な説明】
【００１７】
【図１】図１は、この発明の一実施形態に係る基板処理装置のレイアウトを示す図解的な平面図である。
【図２】図２は、前記基板処理装置の図解的な側面図である。
【図３】図３は、前記基板処理装置の電気的構成を説明するためのブロック図である。
【図４】図４は、この発明の第１の実施形態を説明するためのフローチャートであり、スケジューリング機能部による処理例が示されている。
【図５】図５は、前記第１の実施形態を説明するためのフローチャートであり、スケジューリング機能部による処理例（使用権の削除）が示されている。
【図６】図６は、仮タイムテーブルの一例を示す。
【図７】図７は、スケジューリングの第１例（基板ＰＪ１−１のためのブロック配置結果）を示す。
【図８】図８は、スケジューリングの第１例（基板ＰＪ１−２のためのブロック配置結果）を示す。
【図９】図９は、スケジューリングの第１例（基板ＰＪ１−３のためのブロック配置結果）を示す。
【図１０】図１０は、スケジューリングの第１例（基板ＰＪ１−４のためのブロック配置結果）を示す。
【図１１】図１１は、スケジューリングの第２例（仮タイムテーブル）を示す。
【図１２】図１２は、スケジューリングの第２例（基板ＰＪ１−１のためのブロック配置結果）を示す。
【図１３】図１３は、スケジューリングの第２例（基板ＰＪ２−１のためのブロック配置結果）を示す。
【図１４】図１４は、スケジューリングの第２例（基板ＰＪ２−２のためのブロック配置結果）を示す。
【図１５】図１５は、スケジューリングの第２例（基板ＰＪ２−３のためのブロック配置結果）を示す。
【図１６】図１６は、スケジューリングの第２例（基板ＰＪ３−１のためのブロック配置結果）を示す。
【図１７】図１７は、スケジューリングの第３例（基板ＰＪ１−１のためのブロック配置結果）を示す。
【図１８】図１８は、スケジューリングの第３例（基板ＰＪ１−２のためのブロック配置結果）を示す。
【図１９】図１９は、スケジューリングの第３例（基板ＰＪ３−１のためのブロック配置結果）を示す。
【図２０】図２０は、スケジューリングの第３例（基板ＰＪ３−２のためのブロック配置結果）を示す。
【図２１】図２１は、スケジューリングの第３例（基板ＰＪ１−３のためのブロック配置結果）を示す。
【図２２】図２２は、スケジューリングの第３例（基板ＰＪ１−４のためのブロック配置結果）を示す。
【図２３】図２３は、スケジューリングの第３例（基板ＰＪ１−５のためのブロック配置結果）を示す。
【図２４】図２４は、スケジューリングの第３例（基板ＰＪ１−６のためのブロック配置結果）を示す。
【図２５】図２５は、スケジューリングの第３例（基板ＰＪ１−７のためのブロック配置結果）を示す。
【図２６】図２６は、スケジューリングの第３例（基板ＰＪ１−８のためのブロック配置結果）を示す。
【図２７】図２７は、スケジューリングの第３例（基板ＰＪ２−１のためのブロック配置結果）を示す。
【図２８】図２８は、スケジューリングの第３例（基板ＰＪ２−２のためのブロック配置結果）を示す。
【図２９】図２９は、この発明の他の実施形態に係る基板処理装置のレイアウトを示す図解的な平面図である。
【図３０】図３０は、図２９の基板処理装置の図解的な側面図である。
【図３１】図３１は、この発明の第２の実施形態を説明するためのフローチャートであり、スケジューリング機能部による処理例が示されている。
【図３２】図３２は、前記第２の実施形態を説明するためのフローチャートであり、スケジューリング機能部による処理例（使用権の削除）が示されている。
【図３３】図３３は、スケジューリングの第４例（基板ＰＪ１−１のためのブロック配置結果）を示す。
【図３４】図３４は、スケジューリングの第４例（基板ＰＪ１−２のためのブロック配置結果）を示す。
【図３５】図３５は、スケジューリングの第４例（基板ＰＪ３−１のためのブロック配置結果）を示す。
【図３６】図３６は、スケジューリングの第４例（基板ＰＪ３−２のためのブロック配置結果）を示す。
【図３７】図３７は、スケジューリングの第４例（基板ＰＪ１−３のためのブロック配置結果）を示す。
【図３８】図３８は、スケジューリングの第４例（基板ＰＪ１−４のためのブロック配置結果）を示す。
【図３９】図３９は、スケジューリングの第４例（基板ＰＪ１−５のためのブロック配置結果）を示す。
【図４０】図４０は、スケジューリングの第４例（基板ＰＪ１−６のためのブロック配置結果）を示す。
【図４１】図４１は、スケジューリングの第４例（基板ＰＪ１−７のためのブロック配置結果）を示す。
【図４２】図４２は、スケジューリングの第４例（基板ＰＪ１−８のためのブロック配置結果）を示す。
【図４３】図４３は、スケジューリングの第４例（基板ＰＪ２−１のためのブロック配置結果）を示す。
【図４４】図４４は、スケジューリングの第４例（基板ＰＪ２−２のためのブロック配置結果）を示す。
【図４５】図４５は、この発明の第３の実施形態を説明するためのフローチャートであり、スケジューリング機能部によって実行される処理例が示されている。
【図４６】図４６は、スケジューリングの第５例（基板ＰＪ１−１のためのブロック配置結果）を示す。
【図４７】図４７は、スケジューリングの第５例（基板ＰＪ１−２のためのブロック配置結果）を示す。
【図４８】図４８は、スケジューリングの第５例（基板ＰＪ１−３のためのブロック配置結果）を示す。
【図４９】図４９は、スケジューリングの第５例（基板ＰＪ１−４のためのブロック配置結果）を示す。
【図５０】図５０は、スケジューリングの第６例（仮タイムテーブル）を示す。
【図５１】図５１は、スケジューリングの第６例（基板ＰＪ１−１のためのブロック配置結果）を示す。
【図５２】図５２は、スケジューリングの第６例（基板ＰＪ２−１のためのブロック配置結果）を示す。
【図５３】図５３は、スケジューリングの第６例（基板ＰＪ２−２のためのブロック配置結果）を示す。
【図５４】図５４は、スケジューリングの第６例（基板ＰＪ３−１のためのブロック配置結果）を示す。
【図５５】図５５は、スケジューリングの第６例（基板ＰＪ２−３のためのブロック配置結果）を示す。
【図５６】図５６は、スケジューリングの第７例（基板ＰＪ１−１のためのブロック配置結果）を示す。
【図５７】図５７は、スケジューリングの第７例（基板ＰＪ１−２のためのブロック配置結果）を示す。
【図５８】図５８は、スケジューリングの第７例（基板ＰＪ２−１のためのブロック配置結果）を示す。
【図５９】図５９は、スケジューリングの第７例（基板ＰＪ２−２のためのブロック配置結果）を示す。
【図６０】図６０は、スケジューリングの第７例（基板ＰＪ１−３のためのブロック配置結果）を示す。
【図６１】図６１は、スケジューリングの第７例（基板ＰＪ１−４のためのブロック配置結果）を示す。
【図６２】図６２は、スケジューリングの第７例（基板ＰＪ３−１のためのブロック配置結果）を示す。
【図６３】図６３は、スケジューリングの第７例（基板ＰＪ３−２のためのブロック配置結果）を示す。
【図６４】図６４は、スケジューリングの第７例（基板ＰＪ１−５のためのブロック配置結果）を示す。
【図６５】図６５は、スケジューリングの第７例（基板ＰＪ１−６のためのブロック配置結果）を示す。
【図６６】図６６は、スケジューリングの第７例（基板ＰＪ１−７のためのブロック配置結果）を示す。
【図６７】図６７は、スケジューリングの第７例（基板ＰＪ１−８のためのブロック配置結果）を示す。
【図６８】図６８は、スケジューリングの第８例（第４の実施形態。基板ＰＪ１−１のためのブロック配置結果）を示す。
【図６９】図６９は、スケジューリングの第８例（基板ＰＪ１−２のためのブロック配置結果）を示す。
【図７０】図７０は、スケジューリングの第８例（基板ＰＪ２−１のためのブロック配置結果）を示す。
【図７１】図７１は、スケジューリングの第８例（基板ＰＪ２−２のためのブロック配置結果）を示す。
【図７２】図７２は、スケジューリングの第８例（基板ＰＪ１−３のためのブロック配置結果）を示す。
【図７３】図７３は、スケジューリングの第８例（基板ＰＪ１−４のためのブロック配置結果）を示す。
【図７４】図７４は、スケジューリングの第８例（基板ＰＪ３−１のためのブロック配置結果）を示す。
【図７５】図７５は、スケジューリングの第８例（基板ＰＪ３−２のためのブロック配置結果）を示す。
【図７６】図７６は、スケジューリングの第８例（基板ＰＪ１−５のためのブロック配置結果）を示す。
【図７７】図７７は、スケジューリングの第８例（基板ＰＪ１−６のためのブロック配置結果）を示す。
【図７８】図７８は、スケジューリングの第８例（基板ＰＪ１−７のためのブロック配置結果）を示す。
【図７９】図７９は、スケジューリングの第８例（基板ＰＪ１−８のためのブロック配置結果）を示す。
【発明を実施するための形態】
【００１８】
以下では、この発明の実施の形態を、添付図面を参照して詳細に説明する。
図１は、この発明の一実施形態に係る基板処理装置のレイアウトを示す図解的な平面図であり、図２はその図解的な側面図である。この基板処理装置は、インデクサセクション１と、処理セクション２とを含む。処理セクション２は、インデクサセクション１との間で基板Ｗを受け渡しするための受け渡しユニットＰＡＳＳを備えている。インデクサセクション１は、未処理の基板Ｗを受け渡しユニットＰＡＳＳに渡し、受け渡しユニットＰＡＳＳから処理済みの基板Ｗを受け取る。処理セクション２は、受け渡しユニットＰＡＳＳから未処理の基板Ｗを受け取って、その基板Ｗに対して、処理剤（処理液または処理ガス）を用いた処理、紫外線等の電磁波を用いた処理、物理洗浄処理（ブラシ洗浄、スプレーノズル洗浄等）などの各種の処理を施す。そして、処理セクション２は、処理後の基板Ｗを受け渡しユニットＰＡＳＳに渡す。
【００１９】
インデクサセクション１は、複数のステージＳＴ１〜ＳＴ４と、インデクサロボットＩＲとを含む。
ステージＳＴ１〜ＳＴ４は、複数枚の基板Ｗ（たとえば半導体ウエハ）を積層状態で収容した基板収容器Ｃをそれぞれ保持することができる基板収容器保持部である。基板収容器Ｃは、基板Ｗを密閉した状態で収納するＦＯＵＰ（Front Opening Unified Pod）であってもよいし、ＳＭＩＦ（Standard Mechanical Inter Face）ポッド、ＯＣ（Open Cassette）等であってもよい。たとえば、基板収容器ＣをステージＳＴ１〜ＳＴ４に載置したとき、基板収容器Ｃでは、水平姿勢の複数枚の基板Ｗが互いに間隔を開けて鉛直方向に積層された状態となる。
【００２０】
インデクサロボットＩＲは、たとえば、基台部６と、多関節アーム７と、一対のハンド８Ａ，８Ｂとを含む。基台部６は、たとえば、当該基板処理装置のフレームに固定されている。多関節アーム７は、水平面に沿って回動可能な複数本のアーム部を互いに回動可能に結合して構成されており、アーム部の結合箇所である関節部でアーム部間の角度を変更することによって、屈伸するように構成されている。多関節アーム７の基端部は、基台部６に対して、鉛直軸線回りの回動が可能であるように結合されている。さらに、多関節アーム７は、基台部６に対して昇降可能に結合されている。換言すれば、基台部６には、多関節アーム７を昇降させるための昇降駆動機構、多関節アーム７を鉛直軸線回りに回動させるための回動駆動機構が内蔵されている。また、多関節アーム７には、各アーム部を独立して回動させるための個別回動駆動機構が備えられている。多関節アーム７の先端部に、鉛直軸線回りの個別回動および水平方向への個別進退が可能であるように、ハンド８Ａ，８Ｂが結合されている。多関節アーム７には、ハンド８Ａ，８Ｂを鉛直軸線回りに個別に回動させるためのハンド回動駆動機構と、ハンド８Ａ，８Ｂを水平方向に個別に進退させるためのハンド進退機構とが備えられている。ハンド８Ａ，８Ｂは、たとえば、１枚の基板Ｗをそれぞれ保持できるように構成されている。なお、ハンド８Ａ，８Ｂは上下に重なった状態で配置されていてもよいが、図１では、明瞭化のために、ハンド８Ａ，８Ｂを紙面に平行な方向（水平方向）にずらして描いてある。
【００２１】
この構成により、インデクサロボットＩＲは、いずれかのステージＳＴ１〜ＳＴ４に保持された基板収容器Ｃから一枚の未処理基板Ｗをハンド８Ａで搬出して受け渡しユニットＰＡＳＳに渡すように動作する。さらに、インデクサロボットＩＲは、受け渡しユニットＰＡＳＳから一枚の処理済み基板Ｗをハンド８Ｂで受け取って、いずれかのステージＳＴ１〜ＳＴ４に保持された基板収容器Ｃに収容するように動作する。
【００２２】
処理セクション２は、複数（この実施形態では１２個）の処理ユニットＳＰＩＮ１〜ＳＰＩＮ１２と、主搬送ロボットＣＲと、前述の受け渡しユニットＰＡＳＳとを含む。
処理ユニットＳＰＩＮ１〜ＳＰＩＮ１２は、この実施形態では、立体的に配置されている。より具体的には、三階建て構造をなすように複数の処理ユニットＳＰＩＮ１〜ＳＰＩＮ１２が配置されており、各階部分に４つの処理ユニットが配置されている。すなわち、一階部分に４つの処理ユニットＳＰＩＮ１，ＳＰＩＮ４，ＳＰＩＮ７，ＳＰＩＮ１０が配置され、二階部分に別の４つの処理ユニットＳＰＩＮ２，ＳＰＩＮ５，ＳＰＩＮ８，ＳＰＩＮ１１が配置され、三階部分にさらに別の処理ユニットＳＰＩＮ３，ＳＰＩＮ６，ＳＰＩＮ９，ＳＰＩＮ１２が配置されている。さらに具体的には、平面視において処理セクション２の中央に主搬送ロボットＣＲが配置されており、この主搬送ロボットＣＲとインデクサロボットＩＲとの間に受け渡しユニットＰＡＳＳが配置されている。受け渡しユニットＰＡＳＳを挟んで対向するように、３つの処理ユニットＳＰＩＮ１〜ＳＰＩＮ３を積層した第１処理ユニット群Ｇ１と、別の３つの処理ユニットＳＰＩＮ４〜ＳＰＩＮ６を積層した第２処理ユニット群Ｇ２とが配置されている。そして、第１処理ユニット群Ｇ１に対してインデクサロボットＩＲから遠い側に隣接するように、３つの処理ユニットＳＰＩＮ７〜ＳＰＩＮ９を積層した第３処理ユニット群Ｇ３が配置されている。同様に、第２処理ユニット群Ｇ２に対してインデクサロボットＩＲから遠い側に隣接するように、３つの処理ユニットＳＰＩＮ１０〜ＳＰＩＮ１２を積層した第４処理ユニット群Ｇ４が配置されている。第１〜第４処理ユニット群Ｇ１〜Ｇ４によって、主搬送ロボットＣＲが取り囲まれている。
【００２３】
主搬送ロボットＣＲは、たとえば、基台部１１と、多関節アーム１２と、一対のハンド１３Ａ，１３Ｂとを含む。基台部１１は、たとえば、当該基板処理装置のフレームに固定されている。多関節アーム１２は、水平面に沿って延びた複数本のアーム部を互いに回動可能に結合して構成されており、アーム部の結合箇所である関節部でアーム部間の角度を変更することによって、屈伸するように構成されている。多関節アーム１２の基端部は基台部１１に対して、鉛直軸線回りの回動が可能であるように結合されている。さらに、多関節アーム１２は、基台部１１に対して昇降可能に結合されている。換言すれば、基台部１１には、多関節アーム１２を昇降させるための昇降駆動機構、多関節アーム１２を鉛直軸線回りに回動させるための回動駆動機構が内蔵されている。また、多関節アーム１２には、各アーム部を独立して回動させるための個別回動駆動機構が備えられている。多関節アーム１２の先端部に、鉛直軸線回りの個別回動および水平方向への個別進退が可能であるように、ハンド１３Ａ，１３Ｂが結合されている。多関節アーム１２には、ハンド１３Ａ，１３Ｂを鉛直軸線回りに個別に回動させるためのハンド回動駆動機構と、ハンド１３Ａ，１３Ｂを水平方向に個別に進退させるためのハンド進退機構とが備えられている。ハンド１３Ａ，１３Ｂは、たとえば、１枚の基板Ｗをそれぞれ保持できるように構成されている。なお、ハンド１３Ａ，１３Ｂは上下に重なった状態で配置されていてもよいが、図１では、明瞭化のために、ハンド１３Ａ，１３Ｂを紙面に平行な方向（水平方向）にずらして描いてある。
【００２４】
この構成により、主搬送ロボットＣＲは、受け渡しユニットＰＡＳＳから未処理の一枚の基板Ｗをハンド１３Ａで受け取り、その未処理の基板Ｗをいずれかの処理ユニットＳＰＩＮ１〜ＳＰＩＮ１２に搬入する。また、主搬送ロボットＣＲは、処理ユニットＳＰＩＮ１〜ＳＰＩＮ１２で処理された処理済みの基板Ｗをハンド１３Ｂで受け取り、その基板Ｗを受け渡しユニットＰＡＳＳに渡す。
【００２５】
処理ユニットＳＰＩＮ１〜ＳＰＩＮ１２は、基板Ｗを１枚ずつ処理する枚葉型の処理ユニットである。処理ユニットＳＰＩＮ１〜ＳＰＩＮ１２は、たとえば、１枚の基板Ｗを水平姿勢で保持して回転させるスピンチャック１５と、スピンチャック１５に対して処理液（薬液またはリンス液）を供給する処理液ノズル１６とを処理室１７（チャンバ）内に備えた、回転液処理ユニットであってもよい。図２では、処理ユニットＳＰＩＮ３についてのみ、その内部構成を示し、他の処理ユニットの内部構成の図示を省いてある。
【００２６】
図３は、前記基板処理装置の電気的構成を説明するためのブロック図である。基板処理装置は、処理ユニットＳＰＩＮ１〜ＳＰＩＮ１２、主搬送ロボットＣＲおよびインデクサロボットを制御するコンピュータ２０を備えている。コンピュータ２０は、パーソナルコンピュータ（ＦＡパソコン）の形態を有していてもよく、制御部２１と、出入力部２２と、記憶部２３とを備えている。制御部２１は、ＣＰＵ等の演算ユニットを含む。出入力部２２は、表示ユニット等の出力機器と、キーボード、ポインティングデバイス、タッチパネル等の入力機器とを含む。さらに、出入力部２２は、ホストコンピュータ２４との通信のための通信モジュールを含む。記憶部２３は、固体メモリデバイス、ハードディスクドライブ等の記憶装置を含む。
【００２７】
制御部２１は、スケジューリング機能部２５と、処理実行指示部２６とを含む。スケジューリング機能部２５は、基板Ｗを基板収容器Ｃから搬出し、処理ユニットＳＰＩＮ１〜ＳＰＩＮ１２で処理した後、基板収容器Ｃに収容するために、基板処理装置のリソースを時系列に従って作動させるための計画（スケジュール）を作成する。処理実行指示部２６は、スケジューリング機能部２５によって作成されたスケジュールに従って、基板処理装置のリソースを作動させる。
【００２８】
記憶部２３は、制御部２１が実行するプログラム３０と、ホストコンピュータ２４から受信した処理内容データ４０と、スケジューリング機能部２５によって作成されたスケジュールデータ５０とを含む各種データ等を記憶するように構成されている。
記憶部２３に記憶されたプログラム３０は、制御部２１をスケジューリング機能部２５として作動させるためのスケジュール作成プログラム３１と、制御部２１を処理実行指示部２６として作動させるための処理実行プログラム３２とを含む。
【００２９】
処理内容データ４０は、各基板Ｗに付与されたプロセスジョブ番号と、プロセスジョブ番号に対応付けられたレシピとを含む。レシピは、基板処理内容を定義したデータであり、基板処理条件および基板処理手順を含む。より具体的には、並行処理ユニット情報、使用処理液情報、処理時間情報等を含む。並行処理ユニット情報とは、使用可能な処理ユニットを指定する情報であり、指定された処理ユニットによる並行処理が可能であることを表す。換言すれば、指定処理ユニットのうちの一つが使用できないときには、それ以外の指定処理ユニットによる代替が可能であることを表す。「使用できないとき」とは、当該処理ユニットが別の基板Ｗの処理のために使用中であるとき、当該処理ユニットが故障中であるとき、オペレータが当該処理ユニットで基板Ｗの処理をさせたくないと考えているとき、などである。プロセスジョブ番号は、共通の処理が行われる１枚または複数枚の基板Ｗを識別するための識別情報（基板群識別情報）である。すなわち、共通のプロセスジョブ番号が付与された複数枚の基板Ｗは、当該プロセスジョブ番号に対応付けられたレシピによる共通の処理が施される。ただし、異なるプロセスジョブ番号に対応する基板処理内容（レシピ）が同じである場合もあり得る。たとえば、処理順序（基板収容器Ｃからの払い出し順序）が連続している複数枚の基板Ｗに対して共通の処理が施されるとき、それらの複数枚の基板Ｗに対して共通のプロセスジョブ番号が付与される。
【００３０】
制御部２１は、各基板Ｗに対する処理内容データを取得して、記憶部２３に記憶させる。処理内容データの取得および記憶は、各基板Ｗに対するスケジューリングが実行されるよりも前に行われればよい。たとえば、基板収容器ＣがステージＳＴ１〜ＳＴ４に保持された直後に、ホストコンピュータ２４から制御部２１に当該基板収容器Ｃに収容された基板Ｗに対応する処理内容データが与えられてもよい。
【００３１】
図４および図５は、スケジューリング機能部２５による処理例（第１の実施形態）を説明するためのフローチャートである。より具体的には、制御部２１（コンピュータ２０）がスケジュール作成プログラム３１を実行することによって行われる処理が表されている。換言すれば、スケジュール作成プログラム３１には、図４および図５に示す処理をコンピュータに実行させるようにステップ群が組み込まれている。
【００３２】
ホストコンピュータ２４からもしくは出入力部２２からオペレータによって基板処理開始の指示が与えられると（ステップＳ１）、スケジューリング機能部２５は、基板処理開始指示が与えられた全ての基板Ｗに関して、仮タイムテーブルを作成する（ステップＳ２）。基板処理開始指示は、基板収容器Ｃに収容された全ての基板Ｗを一単位として発行されてもよい。基板処理開始指示は、一つまたは複数のプロセスジョブ番号が付与された基板Ｗの処理開始を指示するものであってもよい。
【００３３】
たとえば、処理内容データにおいて或るプロセスジョブ番号に対応付けられたレシピが、処理ユニットＳＰＩＮ１〜ＳＰＩＮ４の並行処理を指定しているとする。すなわち、当該レシピに従う基板処理が、４個の処理ユニットＳＰＩＮ１〜ＳＰＩＮ４のいずれにおいても実行可能である場合を考える。この場合、当該プロセスジョブ番号が付与された基板Ｗが処理を受けるときに通る経路は、４通りである。すなわち、その基板Ｗの処理のために選択し得る経路は、処理ユニットＳＰＩＮ１〜ＳＰＩＮ４のいずれかを通る４個の経路である。そこで、スケジューリング機能部２５は、その４個の経路に対応した仮タイムテーブルを作成する。
【００３４】
処理ユニットＳＰＩＮ１を通る経路に対応した仮タイムテーブルを図６に示す。この仮タイムテーブルは、インデクサロボットＩＲによる基板収容器Ｃからの基板Ｗの搬出（Ｇｅｔ）を表すブロック（搬送ブロックの一例）と、インデクサロボットＩＲによる当該基板Ｗの受け渡しユニットＰＡＳＳへの搬入（Ｐｕｔ）を表すブロック（搬送ブロックの一例）と、主搬送ロボットＣＲによる受け渡しユニットＰＡＳＳからの当該基板Ｗの搬出（Ｇｅｔ）を表すブロック（搬送ブロックの一例）と、主搬送ロボットＣＲによる当該基板Ｗの処理ユニットＳＰＩＮ１への搬入（Ｐｕｔ）を表すブロック（搬送ブロックの一例）と、処理ユニットＳＰＩＮ１による当該基板Ｗに対する処理を表す処理ブロックと、主搬送ロボットＣＲによる処理ユニットＳＰＩＮ１からの処理済みの基板Ｗの搬出（Ｇｅｔ）を表すブロック（搬送ブロックの一例）と、主搬送ロボットＣＲによる当該基板Ｗの受け渡しユニットＰＡＳＳへの搬入（Ｐｕｔ）を表すブロック（搬送ブロックの一例）と、インデクサロボットＩＲによる当該基板Ｗの受け渡しユニットＰＡＳＳからの搬出（Ｇｅｔ）を表すブロック（搬送ブロックの一例）と、インデクサロボットＩＲによる当該基板Ｗの基板収容器Ｃへの搬入（Ｐｕｔ）を表すブロック（搬送ブロックの一例）とを含む。スケジューリング機能部２５は、これらのブロックを時間軸上で重なり合いのないように順番に配置することによって、仮タイムテーブルを作成する。スケジューリング機能部２５は、同じ基板Ｗに対して、処理ユニットＳＰＩＮ２〜ＳＰＩＮ４をそれぞれ通る経路に対応した同様の仮タイムテーブル（処理ブロックを処理ユニットＳＰＩＮ２〜ＳＰＩＮ４にそれぞれ配置した仮タイムテーブル）を作成する。こうして、一枚の基板Ｗに対して合計４経路分の仮タイムテーブルが作成される。
【００３５】
同様の仮タイムテーブルが同じプロセスジョブ番号が付与された基板Ｗの全てに対応して作成される。たとえば、同じプロセスジョブ番号が付与された基板Ｗが４枚あれば、合計で１６経路（４経路×４枚）分の仮タイムテーブルが作成される。さらに、同時に開始指示されたプロセスジョブが複数個ある場合には、全てのプロセスジョブ番号に関して、同様の処理が行われて仮タイムテーブルが作成される。こうして作成された仮タイムテーブルは、スケジュールデータ５０の一部として記憶部２３に格納される。仮タイムテーブルの作成段階では、別の基板Ｗに関するブロックとの干渉（時間軸上での重なり合い）は考慮されない。
【００３６】
スケジューリング指示が発生すると（ステップＳ３）、当該プロセスジョブ番号の基板Ｗに関するブロックの配置が行われる（全体スケジューリング。ステップＳ４〜Ｓ１６）。具体的には、スケジューリング機能部２５は、当該基板Ｗの仮タイムテーブルを記憶部２３から読み出して、その仮タイムテーブルを構成しているブロックを時間軸上に配置していく。
【００３７】
さらに具体的に説明すると、スケジューリング機能部２５は、基板処理開始の指示が与えられると、当該スケジューリング機能部２５において基板処理手順を管理している全ての基板Ｗに関して、処理内容データ（プロセスジョブ番号およびレシピ）を記憶部２３から取得する（ステップＳ４）。さらに、スケジューリング機能部２５は、基板収容器Ｃから搬出されて処理開始されている基板Ｗがあるかどうかを判断する（ステップＳ５）。いずれの基板Ｗの処理も開始されていなければ（ステップＳ５：ＮＯ）、スケジューリング機能部２５は、記憶部２３から取得した処理内容データに対応する基板Ｗのうち、ステージＳＴで待機中であり、かつスケジューリングが行われていない基板Ｗがあるかどうかを判断する（ステップＳ７）。この判断が肯定されると、スケジューリング機能部２５は、スケジューリングを行っていない基板Ｗのうち、処理順序が最も若い基板Ｗをスケジューリング対象基板Ｗとし、そのスケジューリング対象基板Ｗに関するデータ（処理内容データおよびスケジュールデータ）を記憶部２３から取得する（ステップＳ８）。通常は、基板収容器Ｃにおいて上に位置している基板Ｗほど処理順序が若い。
【００３８】
次に、スケジューリング機能部２５は、データを取得した当該スケジューリング対象基板Ｗと共通のプロセスジョブ番号が付与された別の基板Ｗに対するスケジューリングを既に行ったかどうかを判断する（ステップＳ９）。或るプロセスジョブ番号の最初の基板がスケジューリング対象基板Ｗであるときには、この判断が否定される。すると、スケジューリング機能部２５は、スケジューリング対象基板Ｗに対応するレシピを参照し、そのレシピにおいて指定された並行処理ユニットが全て使用可能である、すなわち、並行処理ユニットのいずれにも使用権が設定されていないかどうかを判断する（ステップＳ１０）。スケジューリングを開始した直後には、いずれの使用権も設定されていないので、ステップＳ１０の判断が肯定される。この場合、スケジューリング機能部２５は、スケジューリング対象基板Ｗのプロセスジョブ番号に対応するレシピで指定された並行処理ユニットの全てに対して使用権を設定する（ステップＳ１１）。
【００３９】
たとえば、レシピにおいて処理ユニットＳＰＩＮ１〜ＳＰＩＮ４での並行処理が指定されていれば、図７に示すように、スケジューリング対象基板Ｗに付与されたプロセスジョブ番号ＰＪ１を共有する基板群に対して、処理ユニットＳＰＩＮ１〜ＳＰＩＮ４の使用権が設定される。この使用権が設定されている間は、他のプロセスジョブ番号の基板群の処理ブロックを処理ユニットＳＰＩＮ１〜ＳＰＩＮ４に配置することはできない。なお、図７等のスケジューリング経過または結果を表す図面において、インデクサロボットＩＲの一方のハンド８Ａを「ＩＲ１」と表記し、他方のハンド８Ｂを「ＩＲ２」と表記してある。同様に、主搬送ロボットＣＲの一方のハンド１３Ａを「ＣＲ１」と表記し、他方のハンド１３Ｂを「ＣＲ２」と表記してある。また、プロセスジョブ番号ＰＪｎ（ｎは自然数）のｍ枚目（ｍは自然数）の基板Ｗを、必要に応じて「基板ＰＪｎ−ｍ」などと表記することにする。
【００４０】
次いで、スケジューリング機能部２５は、スケジューリング対象基板Ｗに対するスケジューリングを実行する。具体的には、スケジューリング機能部２５は、スケジューリング対象基板Ｗに対応する仮タイムテーブルを参照し、当該仮タイムテーブルを構成するブロックを一つ取得する（ステップＳ１２）。このとき取得されるブロックは、未配置のブロックのうち仮タイムテーブルの時間軸上で最も早い位置に配置されているブロックである。さらに、スケジューリング機能部２５は、当該取得したブロックを配置できる位置を検索し（ステップＳ１３）、その検索された位置に当該ブロックを配置する（ステップＳ１４）。各ブロックは、同一リソースが同じ時間に重複して使用されないようにしながら、時間軸上で最も早い位置に配置される。同様の動作が、仮タイムテーブルを構成する全てのブロックに関して繰り返し実行される（ステップＳ１５）。そして、仮タイムテーブルを構成する全てのブロックを配置し終えると（ステップＳ１５：ＹＥＳ）、スケジューリング機能部２５は、各処理ユニットの最終使用時刻を計算し、その計算結果を記憶部２３に格納する（ステップＳ１６）。最終使用時刻の初期値は「０」である。この後は、ステップＳ７からの処理が繰り返される。処理開始指示された全てのプロセスジョブ番号の全基板Ｗに関するスケジューリングを終えると（ステップＳ７：ＮＯ）、全体スケジューリングが完了する（ステップＳ１７）。
【００４１】
スケジューリング対象基板Ｗに対応するレシピは、４つの処理ユニットＳＰＩＮ１〜ＳＰＩＮ４の並行処理を指定しているので、スケジューリング対象基板Ｗに対して、４つの処理ユニットＳＰＩＮ１〜ＳＰＩＮ４をそれぞれ通る４つの経路を表す４つの仮タイムテーブルが作成されている（ステップＳ２）。最初の基板Ｗに対する処理を計画するとき、スケジューリング機能部２５は、それらの４つの仮タイムテーブルのなかから、最終使用時刻が最も早い仮タイムテーブルを選択し、その選択された仮タイムテーブルからブロックを取得する。複数の仮タイムテーブルにおいて最終使用時刻が等しい場合には、たとえば、処理ユニットの番号の若い経路を選択すればよい。複数の処理ユニットＳＰＩＮ１〜ＳＰＩＮ４は基板処理装置内の異なる位置に配置されているので、それに応じて、基板Ｗの搬送に要する時間には相違があり、したがって、仮タイムテーブルにおける最終使用時刻は一般には等しくならない。図７には、プロセスジョブ番号ＰＪ１の最初の基板ＰＪ１−１に対応する仮タイムテーブルを構成する全てのブロックを配置した例を示す。スケジューリング機能部２５は、同一リソースのスペースでブロックが重なり合わないように各ブロックを配置する。
【００４２】
プロセスジョブ番号ＰＪ１の１枚目の基板ＰＪ１−１がインデクサロボットＩＲによって基板収容器Ｃから払い出されたタイミングで、スケジューリング指示が発生し（ステップＳ３：ＹＥＳ）、スケジューリング機能部２５は、当該プロセスジョブ番号ＰＪ１の２枚目の基板ＰＪ１−２のスケジューリングを開始する。この場合、ステップＳ５での判断は肯定され、スケジューリング機能部２５は、既に処理開始している１枚目の基板Ｗに対するスケジューリングを実行する（ステップＳ６）。その結果は、図７と同じである。さらに、当該プロセスジョブ番号ＰＪ１に未スケジューリングの基板Ｗが存在するので、ステップＳ７での判断が肯定される。スケジューリング機能部２５は、当該プロセスジョブ番号ＰＪ１の２枚目の基板ＰＪ１−２をスケジューリング対象基板とし、そのスケジューリング対象基板に関するデータを記憶部２３から取得する（ステップＳ８）。当該プロセスジョブ番号ＰＪ１の１枚目の基板ＰＪ１−１のスケジューリングが完了しているので、ステップＳ９の判断が肯定され、ステップＳ１０，Ｓ１１の処理を経ることなく、当該プロセスジョブ番号ＰＪ１の２枚目の基板ＰＪ１−２に対するスケジューリングが実行される（ステップＳ１２〜Ｓ１５）。この場合、１枚目の基板Ｗの処理のために処理ユニットＳＰＩＮ１は使用中であるので、残りの並行処理ユニットＳＰＩＮ２〜ＳＰＩＮ４をそれぞれ通る３つの経路を表す３つの仮タイムテーブルのなかから最終使用時刻が最も早い仮タイムテーブルが選択される。最終使用時刻が等しい場合には、番号の若い処理ユニットを通る経路に対応した仮タイムテーブルが選択される。このようにして、プロセスジョブ番号ＰＪ１の２枚目の基板ＰＪ１−２に対してスケジューリングを行った例を図８に示す。
【００４３】
同様にして、プロセスジョブ番号ＰＪ１の３枚目の基板ＰＪ１−３に対してスケジューリングを行うことにより、図９に示すスケジューリング結果が得られる。
さらに同様にして、プロセスジョブ番号ＰＪ１の４枚目の基板ＰＪ１−４に対してスケジューリングを行うことにより、図１０に示すスケジューリング結果が得られる。
ブロック配置位置を検索するとき（ステップＳ１３）、スケジューリング機能部２５は、同一リソースに対して時間軸上でブロックが重なり合うことがなく、かつできるだけ時間軸上の早い位置を検索する。
【００４４】
図５は、スケジューリング機能部２５が図４の処理と並行して行う別の処理を説明するためのフローチャートであり、使用権の削除に関する処理を示す。インデクサロボットＩＲによって基板Ｗが基板収容器Ｃから払い出されると（ステップＳ２１）、スケジューリング機能部２５は、その基板Ｗが共通のプロセスジョブ番号が与えられた基板群のうちの最後の基板かどうかを判断する（ステップＳ２２）。最後の基板であれば（ステップＳ２２：ＹＥＳ）、スケジューリング機能部２５は、そのプロセスジョブ番号の基板群に対して設定されている使用権を削除する（ステップＳ２３）。最後の基板でなければ（ステップＳ２２：ＮＯ）、使用権削除を行わない。
【００４５】
したがって、前述の例においては、プロセスジョブ番号ＰＪ１の４枚目の基板ＰＪ１−４が基板収容器Ｃから払い出されると、当該プロセスジョブ番号ＰＪ１の基板群に対して設定された処理ユニットＳＰＩＮ１〜ＳＰＩＮ４の使用権が削除される。これ以後は、別のプロセスジョブ番号の基板群に対して処理ユニットＳＰＩＮ１〜ＳＰＩＮ４の使用権の設定が許容される。
【００４６】
基板ＷがインデクサロボットＩＲによって基板収容器Ｃから払い出されることによって、スケジューリング指示が発生し、図４のステップＳ３の判断が肯定となる。
図１１〜図１６は、プロセスジョブ番号ＰＪ１，ＰＪ２，ＰＪ３が付された３つの基板群（プロセスジョブ）に対するスケジューリングの例を示す。プロセスジョブ番号ＰＪ１の基板群は１枚の基板ＰＪ−１で構成され、処理内容データ中のレシピによって、４つの処理ユニットＳＰＩＮ１〜ＳＰＩＮ４が並行処理ユニットとして指定されているものとする。また、プロセスジョブ番号ＰＪ２の基板群は３枚の基板ＰＪ２−１，ＰＪ２−２，ＰＪ２−３で構成され、処理内容データ中のレシピによって２つの処理ユニットＳＰＩＮ２〜ＳＰＩＮ３が並行処理ユニットとして指定されているものとする。さらに、プロセスジョブ番号ＰＪ３の基板群は１枚の基板ＰＪ３−１で構成され、処理内容データ中のレシピによって、３つの処理ユニットＳＰＩＮ２〜ＳＰＩＮ４が並行処理ユニットとして指定されているものとする。そして、プロセスジョブ番号ＰＪ１，ＰＪ２，ＰＪ３の基板群に対して、この番号順に処理開始されて、スケジューリング指示が発生する場合を想定する。
【００４７】
図１１は、仮タイムテーブルの例を示す。基板処理開始指示が与えられると（図４のステップＳ１）、スケジューリング機能部２５は、仮タイムテーブルを作成する（ステップＳ２）。すなわち、スケジューリング機能部２５は、プロセスジョブ番号ＰＪ１の１枚の基板ＰＪ１−１に対して、処理ユニットＳＰＩＮ１〜ＳＰＩＮ４をそれぞれ通る４経路分の仮タイムテーブルを作成する。また、スケジューリング機能部２５は、プロセスジョブ番号ＰＪ２の３枚の基板ＰＪ２−１，ＰＪ２−２，ＰＪ２−３に対して、それぞれ、処理ユニットＳＰＩＮ２〜ＳＰＩＮ３をそれぞれ通る２経路分の仮タイムテーブルを作成する。すなわち、プロセスジョブ番号ＰＪ２に対して合計で６経路分の仮タイムテーブルが作成される。さらに、スケジューリング機能部２５は、プロセスジョブ番号ＰＪ３の１枚の基板ＰＪ３−１に対して、処理ユニットＳＰＩＮ２〜ＳＰＩＮ４をそれぞれ通る３経路分の仮タイムテーブルを作成する。作成された仮タイムテーブルは、記憶部２３に格納される。
【００４８】
プロセスジョブ番号ＰＪ１，ＰＪ２，ＰＪ３に対する処理開始が順に指示され、それに応答してスケジューリング指示が発生すると（図４のステップＳ３）、スケジューリング機能部２５は、記憶部２３に格納された全ての仮タイムテーブル、すなわち、プロセスジョブ番号ＰＪ１〜ＰＪ３に対応する全ての基板Ｗの仮タイムテーブルを読み出して、全体スケジューリングを開始する。既に処理開始している他の基板Ｗは存在しないので（ステップＳ５：ＮＯ）、スケジューリング機能部２５は、最終使用時刻の最も早い処理ユニットを検索する。はじめは、いずれの処理ユニットの最終使用時刻も「０」であるので、番号の最も若い処理ユニットＳＰＩＮ１を使うプロセスジョブのうち、最も早く処理開始指示されたプロセスジョブ番号ＰＪ１についての評価が行われる。この場合、プロセスジョブ番号ＰＪ１の基板Ｗについてのスケジューリングは未了であるので（ステップＳ７：ＹＥＳ）、プロセスジョブ番号ＰＪ１の１枚目の基板ＰＪ１−１の仮タイムテーブルが記憶部２３から取得される（ステップＳ８）。プロセスジョブ番号ＰＪ１の他の基板Ｗに対するスケジューリングはされておらず（ステップＳ９：ＮＯ）、いずれの処理ユニットに対しても使用権は未設定であるので（ステップＳ１０：ＹＥＳ）、スケジューリング機能部２５は、プロセスジョブ番号ＰＪ１のレシピで指定された並行処理ユニットＳＰＩＮ１〜ＳＰＩＮ４に関する使用権を、プロセスジョブ番号ＰＪ１の基板群に対して設定する（ステップＳ１１）。その後、スケジューリング機能部２５は、プロセスジョブ番号ＰＪ１の１枚目の基板ＰＪ１−１の仮タイムテーブルを構成するブロックを配置していく（ステップＳ１２〜Ｓ１５）。
【００４９】
図１２は、プロセスジョブ番号ＰＪ１の１枚目の基板ＰＪ１−１に関するブロックを配置した例を示す。いずれの処理ユニットも使用されていない状態であるので、たとえば、処理ユニットＳＰＩＮ１を通る経路を表す仮タイムテーブルが選択され、その仮タイムテーブルを構成するブロックが、時間軸上で前詰めに配置される。こうして、基板ＰＪ１−１のスケジューリングが完成すると、その基板ＰＪ１−１の搬送が開始される。
【００５０】
基板ＰＪ１−１が基板収容器Ｃから払い出されると（図５のステップＳ２１）、当該基板ＰＪ１−１がプロセスジョブ番号ＰＪ１の最後の基板であるので（ステップＳ２２：ＹＥＳ）、プロセスジョブ番号ＰＪ１に関する使用権が削除される（ステップＳ２３）。そして、プロセスジョブ番号ＰＪ２に関するスケジューリング指示が発生する（ステップＳ３：ＹＥＳ）。
【００５１】
スケジューリング指示発生に応答して、スケジューリング機能部２５は、記憶部２３に格納された全ての仮タイムテーブル、すなわち、プロセスジョブ番号ＰＪ１〜ＰＪ３に対応する全ての基板Ｗの仮タイムテーブルを読み出す。既に処理開始している基板ＰＪ１−１があるので（ステップＳ５：ＹＥＳ）、その基板ＰＪ１−１についてのスケジューリングを行う（ステップＳ６）。その結果は、図１２と同じである。プロセスジョブ番号ＰＪ２の基板Ｗについてのスケジューリングは未了であるので（ステップＳ７：ＹＥＳ）、プロセスジョブ番号ＰＪ２の１枚目の基板ＰＪ２−１の仮タイムテーブルが記憶部２３から取得される（ステップＳ８）。プロセスジョブ番号ＰＪ２の他の基板Ｗに対するスケジューリングはされておらず（ステップＳ９：ＮＯ）、いずれの処理ユニットに対しても使用権は未設定であるので（ステップＳ１０：ＹＥＳ）、スケジューリング機能部２５は、プロセスジョブ番号ＰＪ２のレシピで指定された並行処理ユニットＳＰＩＮ２〜ＳＰＩＮ３に関する使用権を、プロセスジョブ番号ＰＪ２の基板群に対して設定する（ステップＳ１１）。その後、スケジューリング機能部２５は、プロセスジョブ番号ＰＪ２の１枚目の基板ＰＪ２−１の仮タイムテーブルを構成するブロックを配置していく（ステップＳ１２〜Ｓ１５）。
【００５２】
図１３は、プロセスジョブ番号ＰＪ２の１枚目の基板ＰＪ２−１に関するブロックを配置した例を示す。並行処理ユニットＳＰＩＮ２〜ＳＰＩＮ３のいずれもが使用されていない状態であるので、たとえば、処理ユニットＳＰＩＮ２を通る経路を表す仮タイムテーブルが選択され、その仮タイムテーブルを構成するブロックが、既に配置されたブロックと干渉しないように、時間軸上で前詰めに配置される。こうして、基板ＰＪ２−１のスケジューリングが完成すると、その基板ＰＪ２−１の搬送が開始される。
【００５３】
基板ＰＪ２−１が基板収容器Ｃから払い出されると（図５のステップＳ２１）、当該基板ＰＪ２−１はプロセスジョブ番号ＰＪ２の最後の基板ではないので（ステップＳ２２：ＮＯ）、プロセスジョブ番号ＰＪ２に関する使用権はそのまま維持される。そして、プロセスジョブ番号ＰＪ２の２枚目の基板ＰＪ２−２に関するスケジューリング指示が発生する（ステップＳ３：ＹＥＳ）。このとき、プロセスジョブ番号ＰＪ３の基板に関するスケジューリングも開始されるが、プロセスジョブ番号ＰＪ３の並行処理ユニットのうち処理ユニットＳＰＩＮ２〜ＳＰＩＮ３に対してプロセスジョブ番号ＰＪ２の使用権が設定されているため、図４のステップＳ１０での判断が否定となり、「スケジューリング対象外」と判定されることになる。
【００５４】
スケジューリング指示発生に応答して、スケジューリング機能部２５は、記憶部２３に格納された全ての仮タイムテーブル、すなわち、プロセスジョブ番号ＰＪ１〜ＰＪ３に対応する全ての基板Ｗの仮タイムテーブルを読み出す。既に処理開始している基板ＰＪ１−１，ＰＪ２−１があるので（ステップＳ５：ＹＥＳ）、それらの基板ＰＪ１−１，ＰＪ２−１についてのスケジューリングを行う（ステップＳ６）。その結果は、図１３と同じである。プロセスジョブ番号ＰＪ２の基板Ｗについてのスケジューリングは未了であるので（ステップＳ７：ＹＥＳ）、プロセスジョブ番号ＰＪ２の２枚目の基板ＰＪ２−２の仮タイムテーブルが記憶部２３から取得される（ステップＳ８）。プロセスジョブ番号ＰＪ２の他の基板ＰＪ２−１に対するスケジューリングがされているので（ステップＳ９：ＹＥＳ）、スケジューリング機能部２５は、プロセスジョブ番号ＰＪ２の２枚目の基板ＰＪ２−２の仮タイムテーブルを構成するブロックを配置していく（ステップＳ１２〜Ｓ１５）。
【００５５】
図１４は、プロセスジョブ番号ＰＪ２の２枚目の基板ＰＪ２−２に関するブロックを配置した例を示す。並行処理ユニットＳＰＩＮ２に対して１枚目の基板ＰＪ２−１のための処理ブロックが配置されているので、処理ユニットＳＰＩＮ３を通る経路を表す仮タイムテーブルが選択され、その仮タイムテーブルを構成するブロックが、既に配置されたブロックと干渉しないように、時間軸上で前詰めに配置される。こうして、基板ＰＪ２−２のスケジューリングが完成すると、その基板ＰＪ２−２の搬送が開始される。
【００５６】
基板ＰＪ２−２が基板収容器Ｃから払い出されると（図５のステップＳ２１）、当該基板ＰＪ２−２はプロセスジョブ番号ＰＪ２の最後の基板ではないので（ステップＳ２２：ＮＯ）、プロセスジョブ番号ＰＪ２に関する使用権はそのまま維持される。そして、プロセスジョブ番号ＰＪ２の３枚目の基板ＰＪ２−３に関するスケジューリング指示が発生する（ステップＳ３：ＹＥＳ）。その後、スケジューリング機能部２５は、２枚目の基板ＰＪ２−２の場合と同様にして、３枚目の基板ＰＪ２−３に対するスケジューリングを行う。すなわち、スケジューリング機能部２５は、プロセスジョブ番号ＰＪ２の３枚目の基板ＰＪ２−３の仮タイムテーブルを構成するブロックを配置していく（ステップＳ１２〜Ｓ１５）。なお、基板ＰＪ２−２が基板収容器Ｃから払い出されると、プロセスジョブ番号ＰＪ３の基板に関するスケジューリングも開始されるが、プロセスジョブ番号ＰＪ３の並行処理ユニットのうち処理ユニットＳＰＩＮ２〜ＳＰＩＮ３に対してプロセスジョブ番号ＰＪ２の使用権が設定されているため、図４のステップＳ１０での判断が否定となり、「スケジューリング対象外」と判定されることになる。
【００５７】
図１５は、プロセスジョブ番号ＰＪ２の３枚目の基板ＰＪ２−３に関するブロックを配置した例を示す。並行処理ユニットＳＰＩＮ２，ＳＰＩＮ３に対して１枚目および２枚目の基板ＰＪ２−１，ＰＪ２−２のための処理ブロックがそれぞれ配置されているので、スケジューリング機能部２５は、処理ユニットＳＰＩＮ２，ＳＰＩＮ３の最終使用時刻を比較し、それらのうちの早い方である処理ユニットＳＰＩＮ２を通る経路を表す仮タイムテーブルを選択する。そして、スケジューリング機能部２５は、その仮タイムテーブルを構成するブロックを、既に配置されたブロックと干渉しないように、時間軸上で前詰めに配置する。すなわち、処理ユニットＳＰＩＮ２に対して、１枚目の基板ＰＪ２−１の処理ブロックの後の最も早い時刻に３枚目の基板ＰＪ２−３の処理ブロックを配置し、それに合わせて、当該３枚目の基板ＰＪ２−３のための他のブロックを配置する。こうして、基板ＰＪ２−３のスケジューリングが完成すると、その基板ＰＪ２−３の搬送が開始される。
【００５８】
基板ＰＪ２−３が基板収容器Ｃから払い出されると（図５のステップＳ２１）、当該基板ＰＪ２−３がプロセスジョブ番号ＰＪ２の最後の基板であるので（ステップＳ２２：ＹＥＳ）、プロセスジョブ番号ＰＪ２に関する使用権が削除される（ステップＳ２３）。そして、プロセスジョブ番号ＰＪ３に関するスケジューリング指示が発生する（ステップＳ３：ＹＥＳ）。
【００５９】
スケジューリング指示発生に応答して、スケジューリング機能部２５は、記憶部２３に格納された全ての仮タイムテーブル、すなわち、プロセスジョブ番号ＰＪ１〜ＰＪ３に対応する全ての基板Ｗの仮タイムテーブルを読み出す。既に処理開始している基板ＰＪ１−１，ＰＪ２−１，ＰＪ２−２，ＰＪ２−３があるので（ステップＳ５：ＹＥＳ）、それらの基板ＰＪ１−１，ＰＪ２−１，ＰＪ２−２，ＰＪ２−３についてのスケジューリングを行う（ステップＳ６）。その結果は、図１５と同じである。プロセスジョブ番号ＰＪ３の基板Ｗについてのスケジューリングは未了であるので（ステップＳ７：ＹＥＳ）、プロセスジョブ番号ＰＪ３の１枚目の基板ＰＪ３−１の仮タイムテーブルが記憶部２３から取得される（ステップＳ８）。プロセスジョブ番号ＰＪ３の他の基板Ｗに対するスケジューリングはされておらず（ステップＳ９：ＮＯ）、いずれの処理ユニットに対しても使用権は未設定であるので（ステップＳ１０：ＹＥＳ）、スケジューリング機能部２５は、プロセスジョブ番号ＰＪ３のレシピで指定された並行処理ユニットＳＰＩＮ２〜ＳＰＩＮ４に関する使用権を、プロセスジョブ番号ＰＪ３の基板群に対して設定する（ステップＳ１１）。その後、スケジューリング機能部２５は、プロセスジョブ番号ＰＪ３の１枚目の基板ＰＪ３−１の仮タイムテーブルを構成するブロックを配置していく（ステップＳ１２〜Ｓ１５）。
【００６０】
図１６は、プロセスジョブ番号ＰＪ３の１枚目の基板ＰＪ３−１に関するブロックを配置した例を示す。並行処理ユニットＳＰＩＮ２，ＳＰＩＮ３に対してすでに処理ブロックが配置されているので、最終使用時刻が最も早い処理ユニットＳＰＩＮ４を通る経路を表す仮タイムテーブルが選択され、その仮タイムテーブルを構成するブロックが、既に配置されたブロックと干渉しないように、時間軸上で前詰めに配置される。こうして、基板ＰＪ３−１のスケジューリングが完成すると、その基板ＰＪ３−１の搬送が開始される。プロセスジョブ番号ＰＪ２の最後の基板ＰＪ２−３の搬送開始まで、処理ユニットＳＰＩＮ２〜ＳＰＩＮ３に対するプロセスジョブ番号ＰＪ２の使用権が削除されないので、基板ＰＪ３−１に関するブロックは、基板ＰＪ２−３を基板収容器Ｃから払い出す動作を指定するブロックよりも時間軸上において後に配置することになる。したがって、基板ＰＪ３−１に対する処理が基板ＰＪ２−３に対する処理を追い越すような計画が立てられることはない。
【００６１】
このようにして、全てのプロセスジョブ番号ＰＪ１〜ＰＪ３の全ての基板Ｗに関するスケジューリングが完了する（ステップＳ７：ＮＯ）。
図１７〜図２８は、プロセスジョブ番号ＰＪ１，ＰＪ２，ＰＪ３が付された３つの基板群（プロセスジョブ）に対するスケジューリングの例を示す。プロセスジョブ番号ＰＪ１の基板群は８枚の基板ＰＪ１−１〜８で構成され、処理内容データ中のレシピによって、２つの処理ユニットＳＰＩＮ１〜ＳＰＩＮ２が並行処理ユニットとして指定されているものとする。また、プロセスジョブ番号ＰＪ２の基板群は２枚の基板ＰＪ２−１〜２で構成され、処理内容データ中のレシピによって４つの処理ユニットＳＰＩＮ１〜ＳＰＩＮ４が並行処理ユニットとして指定されているものとする。さらに、プロセスジョブ番号ＰＪ３の基板群は２枚の基板ＰＪ３−１〜２で構成され、処理内容データ中のレシピによって、２つの処理ユニットＳＰＩＮ３〜ＳＰＩＮ４が並行処理ユニットとして指定されているものとする。そして、プロセスジョブ番号ＰＪ１，ＰＪ２，ＰＪ３の基板群に対して、この番号順に処理開始されて、スケジューリング指示が発生する場合を想定する。
【００６２】
基板処理開始指示が与えられると（図４のステップＳ１）、スケジューリング機能部２５は、仮タイムテーブルを作成する（ステップＳ２）。すなわち、スケジューリング機能部２５は、プロセスジョブ番号ＰＪ１の８枚の基板ＰＪ１−１〜８に対して、それぞれ、処理ユニットＳＰＩＮ１〜ＳＰＩＮ２をそれぞれ通る２経路分の仮タイムテーブルを作成する。すなわち、プロセスジョブ番号ＰＪ１に対して合計で１６経路分の仮タイムテーブルが作成される。また、スケジューリング機能部２５は、プロセスジョブ番号ＰＪ２の２枚の基板ＰＪ２−１〜２に対して、それぞれ、処理ユニットＳＰＩＮ１〜ＳＰＩＮ４をそれぞれ通る４経路分の仮タイムテーブルを作成する。すなわち、プロセスジョブ番号ＰＪ２に対して合計で８経路分の仮タイムテーブルが作成される。さらに、スケジューリング機能部２５は、プロセスジョブ番号ＰＪ３の２枚の基板ＰＪ３−１〜２に対して、それぞれ、処理ユニットＳＰＩＮ３〜ＳＰＩＮ４をそれぞれ通る２経路分の仮タイムテーブルを作成する。すなわち、プロセスジョブ番号ＰＪ３に対して合計で４経路分の仮タイムテーブルが作成される。作成された仮タイムテーブルは、記憶部２３に格納される。
【００６３】
プロセスジョブ番号ＰＪ１，ＰＪ２，ＰＪ３に対する処理開始が順に指示され、それに応答してスケジューリング指示が発生すると（図４のステップＳ３）、スケジューリング機能部２５は、記憶部２３に格納された全ての仮タイムテーブル、すなわち、プロセスジョブ番号ＰＪ１〜ＰＪ３に対応する全ての基板Ｗの仮タイムテーブルを読み出して、全体スケジューリングを開始する。既に処理開始している他の基板Ｗは存在しないので（ステップＳ５：ＮＯ）、スケジューリング機能部２５は、最終使用時刻の最も早い処理ユニットを検索する。はじめは、いずれの処理ユニットの最終使用時刻も「０」であるので、番号の最も若い処理ユニットＳＰＩＮ１を使うプロセスジョブのうち、最も早く処理開始指示されたプロセスジョブ番号ＰＪ１についての評価が行われる。この場合、プロセスジョブ番号ＰＪ１の基板Ｗについてのスケジューリングは未了であるので（ステップＳ７：ＹＥＳ）、スケジューリング機能部２５は、プロセスジョブ番号ＰＪ１の１枚目の基板ＰＪ１−１の仮タイムテーブルを記憶部２３から取得する（ステップＳ８）。プロセスジョブ番号ＰＪ１の他の基板Ｗに対するスケジューリングはされておらず（ステップＳ９：ＮＯ）、いずれの処理ユニットに対しても使用権は未設定であるので（ステップＳ１０：ＹＥＳ）、スケジューリング機能部２５は、プロセスジョブ番号ＰＪ１のレシピで指定された並行処理ユニットＳＰＩＮ１〜ＳＰＩＮ２に関する使用権を、プロセスジョブ番号ＰＪ１の基板群に対して設定する（ステップＳ１１）。その後、スケジューリング機能部２５は、プロセスジョブ番号ＰＪ１の１枚目の基板ＰＪ１−１の仮タイムテーブルを構成するブロックを配置していく（ステップＳ１２〜Ｓ１５）。そして、各処理ユニットの最終使用時刻が計算されて、記憶部２３に格納される（ステップＳ１６）。
【００６４】
図１７は、プロセスジョブ番号ＰＪ１の１枚目の基板ＰＪ１−１に関するブロックを配置した例を示す。いずれの処理ユニットも使用されていない状態であるので、たとえば、処理ユニットＳＰＩＮ１を通る経路を表す仮タイムテーブルが選択され、その仮タイムテーブルを構成するブロックが、時間軸上で前詰めに配置される。こうして、基板ＰＪ１−１のスケジューリングが完成すると、その基板ＰＪ１−１の搬送が開始される。
【００６５】
基板ＰＪ１−１が基板収容器Ｃから払い出されると（図５のステップＳ２１）、当該基板ＰＪ１−１はプロセスジョブ番号ＰＪ１の最後の基板ではないので（ステップＳ２２：ＮＯ）、プロセスジョブ番号ＰＪ１に関する使用権はそのまま維持される。そして、プロセスジョブ番号ＰＪ１の２枚目の基板ＰＪ１−２およびプロセスジョブ番号ＰＪ２，ＰＪ３に関するスケジューリング指示が発生し（ステップＳ３）、ステップＳ４からの動作が行われる。すなわち、スケジューリング指示発生に応答して、スケジューリング機能部２５は、記憶部２３に格納された全ての仮タイムテーブル、すなわち、プロセスジョブ番号ＰＪ１〜ＰＪ３に対応する全ての基板Ｗの仮タイムテーブルを読み出す。既に処理開始している基板ＰＪ１−１があるので（ステップＳ５：ＹＥＳ）、その基板ＰＪ１−１についてのスケジューリングを行う（ステップＳ６）。その結果は、図１７と同じである。
【００６６】
ステップＳ７において、スケジューリング機能部２５は、最終使用時刻の最も早い処理ユニットを検索する。この場合、処理ユニットＳＰＩＮ２〜４の最終使用時刻が「０」であるので、番号の最も若い処理ユニットＳＰＩＮ２を使うプロセスジョブ番号ＰＪ１，ＰＪ２のうち、最も早く処理開始指示されたプロセスジョブ番号ＰＪ１についての評価が行われる。
【００６７】
プロセスジョブ番号ＰＪ１の基板Ｗについてのスケジューリングは未了であるので（ステップＳ７：ＹＥＳ）、プロセスジョブ番号ＰＪ１の２枚目の基板ＰＪ１−２の仮タイムテーブルが記憶部２３から取得される（ステップＳ８）。プロセスジョブ番号ＰＪ１の他の基板ＰＪ１−１に対するスケジューリングがされているので（ステップＳ９：ＹＥＳ）、スケジューリング機能部２５は、プロセスジョブ番号ＰＪ１の２枚目の基板ＰＪ１−２の仮タイムテーブルを構成するブロックを配置していく（ステップＳ１２）。
【００６８】
図１８は、プロセスジョブ番号ＰＪ２の２枚目の基板ＰＪ２−２に関するブロックを配置した例を示す。最終使用時刻が最も早い処理ユニットＳＰＩＮ２を通る経路を表す仮タイムテーブルが選択され、その仮タイムテーブルを構成するブロックが、既に配置されたブロックと干渉しないように、時間軸上で前詰めに配置される。こうして、基板ＰＪ１−２のスケジューリングが完成すると、その基板ＰＪ１−２の搬送が開始される。
【００６９】
基板ＰＪ１−２が基板収容器Ｃから払い出されると（図５のステップＳ２１）、当該基板ＰＪ１−２はプロセスジョブ番号ＰＪ１の最後の基板ではないので（ステップＳ２２：ＮＯ）、プロセスジョブ番号ＰＪ１に関する使用権はそのまま維持される。そして、プロセスジョブ番号ＰＪ１の３枚目の基板ＰＪ１−３およびプロセスジョブ番号ＰＪ２，ＰＪ３に関するスケジューリング指示が発生し（ステップＳ３）、ステップＳ４からの動作が行われる。すなわち、スケジューリング指示発生に応答して、スケジューリング機能部２５は、記憶部２３に格納された全ての仮タイムテーブル、すなわち、プロセスジョブ番号ＰＪ１〜ＰＪ３に対応する全ての基板Ｗの仮タイムテーブルを読み出す。既に処理開始している基板ＰＪ１−１，ＰＪ１−２があるので（ステップＳ５：ＹＥＳ）、それらの基板ＰＪ１−１，ＰＪ１−２についてのスケジューリングを行う（ステップＳ６）。その結果は、図１８と同じである。
【００７０】
ステップＳ７において、スケジューリング機能部２５は、最終使用時刻の最も早い処理ユニットを検索する。この場合、処理ユニットＳＰＩＮ３〜４の最終使用時刻が「０」であるので、番号の最も若い処理ユニットＳＰＩＮ３を使うプロセスジョブ番号ＰＪ２，ＰＪ３のうち、最も早く処理開始指示されたプロセスジョブ番号ＰＪ２についての評価が行われる。しかし、プロセスジョブ番号ＰＪ２の並行処理ユニットのうち処理ユニットＳＰＩＮ１，ＳＰＩＮ２に対してプロセスジョブ番号ＰＪ１の使用権が設定されているため、プロセスジョブ番号ＰＪ２に関しては、図４のステップＳ１０での判断が否定となり、「スケジューリング対象外」と判定されることになる。その結果、プロセスジョブ番号ＰＪ３がスケジューリングの対象となる。
【００７１】
プロセスジョブ番号ＰＪ３の基板Ｗについてのスケジューリングは未了であるので（ステップＳ７：ＹＥＳ）、プロセスジョブ番号ＰＪ３の１枚目の基板ＰＪ３−１の仮タイムテーブルが記憶部２３から取得される（ステップＳ８）。プロセスジョブ番号ＰＪ３の他の基板Ｗに対するスケジューリングはされておらず（ステップＳ９：ＮＯ）、プロセスジョブ番号ＰＪ３のレシピにおいて指定された並行処理ユニットＳＰＩＮ３〜ＳＰＩＮ４に対する使用権は未設定であるので（ステップＳ１０：ＹＥＳ）、スケジューリング機能部２５は、それらの並行処理ユニットＳＰＩＮ３〜ＳＰＩＮ４に関する使用権を、プロセスジョブ番号ＰＪ３の基板群に対して設定する（ステップＳ１１）。その後、スケジューリング機能部２５は、プロセスジョブ番号ＰＪ３の１枚目の基板ＰＪ３−１の仮タイムテーブルを構成するブロックを配置していく（ステップＳ１２〜Ｓ１５）。図１９に、プロセスジョブ番号ＰＪ３の１枚目の基板ＰＪ３−１に関するブロックを配置した例を示す。
【００７２】
こうして、基板ＰＪ３−１のスケジューリングが完成すると、その基板ＰＪ３−１の搬送が開始される。
同様の処理が行われることにより、最終使用時刻が最も早い処理ユニットＳＰＩＮ４を使用するプロセスジョブ番号ＰＪ３の２枚目の基板ＰＪ３−２に関するスケジューリングが行われることになる。図２０に、プロセスジョブ番号ＰＪ３の２枚目の基板ＰＪ３−２に関するブロックを配置した例を示す。
【００７３】
基板ＰＪ３−２が基板収容器Ｃから払い出されると（図５のステップＳ２１）、当該基板ＰＪ３−２がプロセスジョブ番号ＰＪ３の最後の基板であるので（ステップＳ２２：ＹＥＳ）、プロセスジョブ番号ＰＪ３に関する使用権が削除される（ステップＳ２３）。そして、プロセスジョブ番号ＰＪ１〜ＰＪ３に関するスケジューリング指示が発生し（ステップＳ３）、ステップＳ４からの動作が行われる。すなわち、スケジューリング指示発生に応答して、スケジューリング機能部２５は、記憶部２３に格納された全ての仮タイムテーブル、すなわち、プロセスジョブ番号ＰＪ１〜ＰＪ３に対応する全ての基板Ｗの仮タイムテーブルを読み出す。既に処理開始している基板ＰＪ１−１，ＰＪ１−２，ＰＪ３−１，ＰＪ３−２があるので（ステップＳ５：ＹＥＳ）、それらの基板ＰＪ１−１，ＰＪ１−２，ＰＪ３−１，ＰＪ３−２についてのスケジューリングを行う（ステップＳ６）。その結果は、図２０と同じである。
【００７４】
ステップＳ７において、スケジューリング機能部２５は、最終使用時刻の最も早い処理ユニットを検索する。この場合、対象のプロセスジョブ番号ＰＪ１〜ＰＪ３のうちのいずれかで使用する処理ユニットＳＰＩＮ１〜ＳＰＩＮ４のうち、処理ユニットＳＰＩＮ１の最終使用時刻が最も早いので（図２０参照）、処理ユニットＳＰＩＮ１を使うプロセスジョブ番号ＰＪ１，ＰＪ２のうち、最も早く処理開始指示されたプロセスジョブ番号ＰＪ１についての評価が行われる。
【００７５】
プロセスジョブ番号ＰＪ１の３枚目以降の基板についてのスケジューリングは未了であるので（ステップＳ７：ＹＥＳ）、プロセスジョブ番号ＰＪ１の３枚目の基板ＰＪ１−３の仮タイムテーブルが記憶部２３から取得される（ステップＳ８）。プロセスジョブ番号ＰＪ１の他の基板ＰＪ１−１，ＰＪ１−２に対するスケジューリングがされているので（ステップＳ９：ＹＥＳ）、スケジューリング機能部２５は、プロセスジョブ番号ＰＪ１の３枚目の基板ＰＪ１−３の仮タイムテーブルを構成するブロックを配置していく（ステップＳ１２〜Ｓ１５）。
【００７６】
図２１に、プロセスジョブ番号ＰＪ１の３枚目の基板ＰＪ１−３に関するブロックを配置した例を示す。処理ユニットＳＰＩＮ１に対してすでに処理ブロックが配置されているので、処理ユニットＳＰＩＮ１を通る経路を表す仮タイムテーブルを構成するブロックが、既に配置されたブロックと干渉しないように、時間軸上で前詰めに配置される。
こうして、基板ＰＪ１−３のスケジューリングが完成すると、その基板ＰＪ１−３の搬送が開始される。
【００７７】
同様の処理が行われることにより、最終使用時刻が最も早い処理ユニットＳＰＩＮ２を使用するプロセスジョブ番号ＰＪ１の４枚目の基板ＰＪ１−４に関するスケジューリングが行われることになる。図２２に、プロセスジョブ番号ＰＪ１の４枚目の基板ＰＪ１−４に関するブロックを配置した例を示す。
こうして、基板ＰＪ１−４のスケジューリングが完成すると、その基板ＰＪ１−４の搬送が開始される。
【００７８】
基板ＰＪ１−４が基板収容器Ｃから払い出されると（図５のステップＳ２１）、当該基板ＰＪ１−４はプロセスジョブ番号ＰＪ１の最後の基板ではないので（ステップＳ２２：ＹＥＳ）、プロセスジョブ番号ＰＪ１に関する使用権が維持される。そして、プロセスジョブ番号ＰＪ１〜ＰＪ３に関するスケジューリング指示が発生し（ステップＳ３）、ステップＳ４からの動作が行われる。すなわち、スケジューリング指示発生に応答して、スケジューリング機能部２５は、記憶部２３に格納された全ての仮タイムテーブル、すなわち、プロセスジョブ番号ＰＪ１〜ＰＪ３に対応する全ての基板Ｗの仮タイムテーブルを読み出す。既に処理開始している基板ＰＪ１−１〜４，ＰＪ３−１〜２があるので（ステップＳ５：ＹＥＳ）、それらの基板ＰＪ１−１〜４，ＰＪ３−１〜２についてのスケジューリングを行う（ステップＳ６）。その結果は、図２２と同じである。
【００７９】
ステップＳ７において、スケジューリング機能部２５は、最終使用時刻の最も早い処理ユニットを検索する。この場合、対象のプロセスジョブ番号ＰＪ１〜ＰＪ３のうちのいずれかで使用する処理ユニットＳＰＩＮ１〜ＳＰＩＮ４のうち、処理ユニットＳＰＩＮ３の最終使用時刻が最も早いので（図２２参照）、処理ユニットＳＰＩＮ３を使うプロセスジョブ番号ＰＪ２，ＰＪ３のうち、最も早く処理開始指示されたプロセスジョブ番号ＰＪ２についての評価が行われる。しかし、プロセスジョブ番号ＰＪ２の並行処理ユニットのうち処理ユニットＳＰＩＮ１，ＳＰＩＮ２に対してプロセスジョブ番号ＰＪ１の使用権が設定されているため、プロセスジョブ番号ＰＪ２に関しては、図４のステップＳ１０での判断が否定となり、「スケジューリング対象外」と判定されることになる。その結果、プロセスジョブ番号ＰＪ１がスケジューリングの対象となる。
【００８０】
プロセスジョブ番号ＰＪ１の５枚目以降の基板についてのスケジューリングは未了であるので（ステップＳ７：ＹＥＳ）、プロセスジョブ番号ＰＪ１の５枚目の基板ＰＪ１−５の仮タイムテーブルが記憶部２３から取得される（ステップＳ８）。プロセスジョブ番号ＰＪ１の他の基板に対するスケジューリングがされているので（ステップＳ９：ＮＯ）、スケジューリング機能部２５は、プロセスジョブ番号ＰＪ１の５枚目の基板ＰＪ１−５の仮タイムテーブルを構成するブロックを配置していく（ステップＳ１２〜Ｓ１５）。
【００８１】
図２３に、プロセスジョブ番号ＰＪ１の５枚目の基板ＰＪ１−５に関するブロックを配置した例を示す。プロセスジョブ番号ＰＪ１の並行処理ユニットＳＰＩＮ１，ＳＰＩＮ２のうち最終使用時刻が最も早いのは処理ユニットＳＰＩＮ１である（図２２参照）。そこで、処理ユニットＳＰＩＮ１を通る経路を表す仮タイムテーブルを構成するブロックが、既に配置されたブロックと干渉しないように、時間軸上で前詰めに配置される。
【００８２】
同様の処理が行われることにより、プロセスジョブ番号ＰＪ１の６番目の基板ＰＪ１−６が処理ユニットＳＰＩＮ２で処理するように計画され（図２４参照）、プロセスジョブ番号ＰＪ１の７番目の基板ＰＪ１−７が処理ユニットＳＰＩＮ１で処理するように計画され（図２５参照）、プロセスジョブ番号ＰＪ１の８番目の基板ＰＪ１−８が処理ユニットＳＰＩＮ２で処理するように計画される（図２６参照）。
【００８３】
基板ＰＪ１−８が基板収容器Ｃから払い出されると（図５のステップＳ２１：ＹＥＳ）、当該基板ＰＪ１−８がプロセスジョブ番号ＰＪ１の最後の基板であるので（ステップＳ２２：ＹＥＳ）、プロセスジョブ番号ＰＪ１に関する使用権が削除される（ステップＳ２３）。そして、プロセスジョブ番号ＰＪ１〜ＰＪ３に関するスケジューリング指示が発生する（ステップＳ３：ＹＥＳ）。このとき、スケジューリング機能部２５は、最終使用時刻の最も早い処理ユニットを検索する。この場合、対象のプロセスジョブ番号ＰＪ１〜ＰＪ３のうちのいずれかで使用する処理ユニットＳＰＩＮ１〜ＳＰＩＮ４のうち、処理ユニットＳＰＩＮ３の最終使用時刻が最も早いので、処理ユニットＳＰＩＮ３を使うプロセスジョブ番号ＰＪ２，ＰＪ３のうち、最も早く処理開始指示されたプロセスジョブ番号ＰＪ２についての評価が行われる。
【００８４】
スケジューリング指示発生に応答して、スケジューリング機能部２５は、記憶部２３に格納された全ての仮タイムテーブル、すなわち、プロセスジョブ番号ＰＪ１〜ＰＪ３に対応する全ての基板Ｗの仮タイムテーブルを読み出す。既に処理開始している基板ＰＪ１−１〜８，ＰＪ３−１〜２があるので（ステップＳ５：ＹＥＳ）、それらの基板ＰＪ１−１〜８，ＰＪ３−１〜２についてのスケジューリングを行う（ステップＳ６）。その結果は、図２６と同じである。
【００８５】
プロセスジョブ番号ＰＪ２の基板についてのスケジューリングは未了であるので（ステップＳ７：ＹＥＳ）、プロセスジョブ番号ＰＪ２の１枚目の基板ＰＪ２−１の仮タイムテーブル（処理ユニットＳＰＩＮ３を通るもの）が記憶部２３から取得される（ステップＳ８）。プロセスジョブ番号ＰＪ２の他の基板に対するスケジューリングは未了であり（ステップＳ９：ＮＯ）、プロセスジョブ番号ＰＪ２のレシピにおいて指定された並行処理ユニットＳＰＩＮ１〜ＳＰＩＮ４に対する使用権は未設定であるので（ステップＳ１０：ＹＥＳ）、スケジューリング機能部２５は、それらの並行処理ユニットＳＰＩＮ１〜ＳＰＩＮ４に関する使用権を、プロセスジョブ番号ＰＪ２の基板群に対して設定する（ステップＳ１１）。その後、スケジューリング機能部２５は、プロセスジョブ番号ＰＪ２の１枚目の基板ＰＪ２−１の仮タイムテーブルを構成するブロックを配置していく（ステップＳ１２〜Ｓ１５）。
【００８６】
図２７に、プロセスジョブ番号ＰＪ２の１枚目の基板ＰＪ２−１に関するブロックを配置した例を示す。プロセスジョブ番号ＰＪ１の最後の基板ＰＪ１−８の搬送開始まで、処理ユニットＳＰＩＮ１〜ＳＰＩＮ２に対するプロセスジョブ番号ＰＪ１の使用権が削除されないので、基板ＰＪ２−１に関するブロックは、基板ＰＪ１−８を基板収容器Ｃから払い出す動作を指定するブロックよりも時間軸上において後に配置されることになる。したがって、基板ＰＪ２−１に対する処理が基板ＰＪ１−８に対する処理を追い越すような計画が立てられることはない。
【００８７】
同様の処理が行われることにより、プロセスジョブ番号ＰＪ２の２番目の基板ＰＪ２−２が処理ユニットＳＰＩＮ４で処理するように計画される（図２８参照）。
基板ＰＪ２−２が基板収容器Ｃから払い出されると（図５のステップＳ２１：ＹＥＳ）、当該基板ＰＪ２−２がプロセスジョブ番号ＰＪ２の最後の基板であるので（ステップＳ２２：ＹＥＳ）、プロセスジョブ番号ＰＪ２に関する使用権が削除される（ステップＳ２３）。こうして、全ての対象基板に対するスケジューリングが完了する（ステップＳ１７）。
【００８８】
以上のように、この実施形態によれば、共通のプロセスジョブ番号が付与された基板群に対して、そのプロセスジョブ番号に対応するレシピで指定された処理ユニット（並行処理ユニット）の使用権が設定される。この使用権が設定されているときには、その処理ユニットによる処理を表す処理ブロックとしては、当該使用権が設定されたプロセスジョブ番号の基板に対する処理を表す処理ブロックのみが配置可能となり、他のプロセスジョブ番号が付与された基板に対する処理を表す処理ブロックの配置は禁止される。したがって、一つの処理ユニットにおいて、或るプロセスジョブ番号の基板を処理しているときに、他のプロセスジョブ番号の基板に対する処理が割り込まないことを保証できる。また、或るプロセスジョブ番号に対する処理ユニットの使用権が削除されると、別のプロセスジョブ番号に対して当該処理ユニットの使用権設定が許容される。こうして、使用権の設定および削除を行うことで、一つの処理ユニットにおいて、或るプロセスジョブ番号の基板の処理の間に他のプロセスジョブ番号の基板の処理が割り込むことを回避できるので、基板処理装置のリソースとしての処理ユニットを効率的に稼働させることができる。これにより、個々の基板に対する処理ブロックを時間軸上に効率的に配置して枚葉型処理ユニット等のリソースの稼働率を高めることができるので、枚葉型基板処理装置の生産性を向上できる。
【００８９】
また、或るプロセスジョブ番号に対して使用権が設定されているときでも、使用権が設定されていない処理ユニットのみを並行処理ユニットとして指定した別のプロセスジョブ番号があれば、当該別のプロセスジョブ番号に対する使用権設定が許容される。これにより、処理ユニット等のリソースの稼働効率を一層向上できる。そして、使用権未設定の処理ユニットの最終使用時刻が、使用権設定済みの処理ユニットの最終使用時刻よりも早ければ、その使用権未設定の処理ユニットを使うプロセスジョブ番号に使用権を設定して、そのプロセスジョブ番号の基板処理を開始することができる。これにより、処理ユニットの稼働率をさらに高めることができる。
【００９０】
図２９は、この発明の他の実施形態に係る基板処理装置のレイアウトを示す図解的な平面図であり、図３０はその図解的な側面図である。図２９および図３０において、図１および図２に示された各部の対応部分には同一参照符号を付す。
この実施形態では、インデクサロボットＩＲのハンド８Ａ，８Ｂは、それぞれ２つの基板保持部を有しており、これらの基板保持部を切り換えて用いることができるように構成されている。より具体的には、各ハンド８Ａ，８Ｂは、第１基板保持部および第２基板保持部を有していて、第１基板保持部で基板Ｗを保持する第１状態と、第２基板保持部で基板Ｗを保持する第２状態とで切り換え可能に構成されている。たとえば、未処理基板Ｗを保持するときは第１状態に制御され、処理済み基板Ｗを保持するときは第２状態に制御される。この構成によって、インデクサロボットＩＲは、いずれも第１状態とした２つのハンド８Ａおよび８Ｂで２枚の未処理基板Ｗを同時に保持して搬送したり、いずれも第２状態とした２つのハンド８Ａおよび８Ｂで２枚の処理済み基板Ｗを同時に保持して搬送したりすることができる。このような基板搬送ロボットの一例の具体的な構成例は、たとえば、特許文献３に記載されている。
【００９１】
さらに、この実施形態では、主搬送ロボットＣＲは、４本のハンド１３Ａ，１３Ｂ，１３Ｃ，１３Ｄを有している。これらの４本のハンド１３Ａ，１３Ｂ，１３Ｃ，１３Ｄは、多関節アーム１２に結合されている。多関節アーム１２には、４本のハンド１３Ａ，１３Ｂ，１３Ｃ，１３Ｄを独立して鉛直軸線回りに回動させる回動駆動機構と、４本のハンド１３Ａ，１３Ｂ，１３Ｃ，１３Ｄを独立して水平方向に進退させる進退駆動機構とが備えられている。たとえば、２本のハンド１３Ａおよび１３Ｂは未処理基板Ｗの搬送のために用いられ、２本のハンド１３Ｃおよび１３Ｄは処理済み基板Ｗの搬送のために用いられるように、主搬送ロボットＣＲの動作が制御される。
【００９２】
この他の構成は、図１および図２等に示した構成と同様であり、基板処理装置の制御のための構成は、図３の構成と同様である。
図３１および図３２は、スケジューリング機能部２５による処理例（第２の実施形態）を説明するためのフローチャートである。より具体的には、制御部２１（コンピュータ２０）がスケジュール作成プログラム３１を実行することによって行われる処理が表されている。換言すれば、スケジュール作成プログラム３１には、図３１および図３２に示す処理をコンピュータに実行させるようにステップ群が組み込まれている。図３１および図３２において、図４および図５に示したステップと同様の処理が行われるステップには同一参照符号を付してある。
【００９３】
ホストコンピュータ２４からもしくは出入力部２２からオペレータによって基板処理開始の指示が与えられると（ステップＳ１）、スケジューリング機能部２５は、基板処理開始指示が与えられた全ての基板Ｗに関して、仮タイムテーブルを作成する（ステップＳ２）。基板処理開始指示は、基板収容器Ｃに収容された全ての基板Ｗを一単位として発行されてもよい。基板処理開始指示は、一つまたは複数のプロセスジョブ番号が付与された基板Ｗの処理開始を指示するものであってもよい。
【００９４】
たとえば、処理内容データにおいて或るプロセスジョブ番号に対応付けられたレシピが、処理ユニットＳＰＩＮ１〜ＳＰＩＮ４の並行処理を指定しているとする。すなわち、当該レシピに従う基板処理が、４個の処理ユニットＳＰＩＮ１〜ＳＰＩＮ４のいずれにおいても実行可能である場合を考える。この場合、当該プロセスジョブ番号が付与された基板Ｗが処理を受けるときに通る経路は、4通りである。すなわち、その基板Ｗの処理のために選択し得る経路は、処理ユニットＳＰＩＮ１〜ＳＰＩＮ４のいずれかを通る4個の経路である。そこで、スケジューリング機能部２５は、その4個の経路に対応した仮タイムテーブルを作成する。こうして作成される仮タイムテーブルは、前述の図６の仮タイムテーブルと類似した仮タイムテーブルとなる。
【００９５】
同様の仮タイムテーブルが同じプロセスジョブ番号が付与された基板Ｗの全てに対応して作成される。たとえば、同じプロセスジョブ番号が付与された基板Ｗが４枚あれば、合計で１６経路（４経路×４枚）分の仮タイムテーブルが作成される。さらに、同時に開始指示されたプロセスジョブ番号が複数個ある場合には、全てのプロセスジョブ番号に関して、同様の処理が行われて仮タイムテーブルが作成される。こうして作成された仮タイムテーブルは、スケジュールデータ５０の一部として記憶部２３に格納される。仮タイムテーブルの作成段階では、別の基板Ｗに関するブロックとの干渉（時間軸上での重なり合い）は考慮されない。
【００９６】
スケジューリング指示が発生すると（ステップＳ３）、当該プロセスジョブ番号の基板Ｗに関するブロックの配置が行われる（全体スケジューリング。ステップＳ４〜Ｓ１８）。具体的には、スケジューリング機能部２５は、当該基板Ｗの仮タイムテーブルを記憶部２３から読み出して、その仮タイムテーブルを構成しているブロックを時間軸上に配置していく。
【００９７】
さらに具体的に説明すると、スケジューリング機能部２５は、基板処理開始の指示が与えられると、当該スケジューリング機能部２５において基板処理手順を管理している全ての基板Ｗに関して、処理内容データ（プロセスジョブ番号およびレシピ）を記憶部２３から取得する（ステップＳ４）。さらに、スケジューリング機能部２５は、基板収容器Ｃから搬出されて処理開始されている基板Ｗがあるかどうかを判断する（ステップＳ５）。いずれの基板Ｗの処理も開始されていなければ（ステップＳ５：ＮＯ）、スケジューリング機能部２５は、記憶部２３から取得した処理内容データに対応する基板Ｗのうち、ステージＳＴで待機中であり、かつスケジューリングが行われていない基板Ｗがあるかどうかを判断する（ステップＳ７）。
【００９８】
この判断が肯定されると、さらに、スケジューリング機能部２５は、インデクサロボットＩＲが一度に搬送可能な枚数（この実施形態では２枚）分の未処理基板Ｗに関するスケジューリングを行ったかどうかを判断する（ステップＳ１８）。この判断が肯定されれば、スケジューリングを一旦終える（ステップＳ１７）。
一度に搬送可能な枚数分の未処理基板Ｗのスケジューリングが未了のときは（ステップＳ１８：ＮＯ）、スケジューリング機能部２５は、スケジューリングを行っていない基板Ｗのうち、処理順序が最も若い基板Ｗをスケジューリング対象基板Ｗとし、そのスケジューリング対象基板Ｗに関するデータ（処理内容データおよびスケジュールデータ）を記憶部２３から取得する（ステップＳ８）。通常は、基板収容器Ｃにおいて上に位置している基板Ｗほど処理順序が若い。
【００９９】
次に、スケジューリング機能部２５は、データを取得した当該スケジューリング対象基板Ｗと共通のプロセスジョブ番号が付与された別の基板Ｗに対するスケジューリングを既に行ったかどうかを判断する（ステップＳ９）。或るプロセスジョブ番号の最初の基板がスケジューリング対象基板Ｗであるときには、この判断が否定される。すると、スケジューリング機能部２５は、スケジューリング対象基板Ｗに対応するレシピを参照し、そのレシピにおいて指定された並行処理ユニットが全て使用可能である、すなわち、並行処理ユニットのいずれにも使用権が設定されていないかどうかを判断する（ステップＳ１０）。
【０１００】
スケジューリングを開始した直後には、いずれの使用権も設定されていないので、ステップＳ１０の判断が肯定される。この場合、スケジューリング機能部２５は、スケジューリング対象基板Ｗのプロセスジョブ番号に対応するレシピで指定された並行処理ユニットの全てに対して使用権を設定する（ステップＳ１１）。たとえば、レシピにおいて処理ユニットＳＰＩＮ１〜ＳＰＩＮ４での並行処理が指定されていれば、スケジューリング対象基板Ｗが属するプロセスジョブ番号ＰＪ１の基板群に対して、処理ユニットＳＰＩＮ１〜ＳＰＩＮ４の使用権が設定される。この使用権が設定されている間は、他のプロセスジョブ番号の基板群の処理ブロックを処理ユニットＳＰＩＮ１〜ＳＰＩＮ４に配置することはできない。すなわち、プロセスジョブ番号ＰＪ１の使用権が設定されている処理ユニットを並行処理ユニットとして指定している他のプロセスジョブの基板Ｗに関しては、ステップＳ１０の判断が否定され、スケジューリング対象外基板とされて、スケジューリングが禁止される。使用権が設定されたプロセスジョブ番号の別の基板Ｗがスケジューリング対象基板Ｗとなったときは、ステップＳ９の判断が肯定され、ステップＳ１０およびＳ１１の処理が省かれる。
【０１０１】
次いで、スケジューリング機能部２５は、スケジューリング対象基板Ｗに対するスケジューリングを実行する。具体的には、スケジューリング機能部２５は、スケジューリング対象基板Ｗに対応する仮タイムテーブルを参照し、当該仮タイムテーブルを構成するブロックを一つ取得する（ステップＳ１２）。このとき取得されるブロックは、未配置のブロックのうち仮タイムテーブルの時間軸上で最も早い位置に配置されているブロックである。さらに、スケジューリング機能部２５は、当該取得したブロックを配置できる位置を検索し（ステップＳ１３）、その検索された位置に当該ブロックを配置する（ステップＳ１４）。各ブロックは、同一リソースが同じ時間に重複して使用されないようにしながら、時間軸上で最も早い位置に配置される。同様の動作が、仮タイムテーブルを構成する全てのブロックに関して繰り返し実行される（ステップＳ１５）。そして、仮タイムテーブルを構成する全てのブロックを配置し終えると（ステップＳ１５：ＹＥＳ）、スケジューリング機能部２５は、各処理ユニットの最終使用時刻を計算し、その計算結果を記憶部２３に格納する（ステップＳ１６）。最終使用時刻の初期値は「０」である。この後は、ステップＳ７からの処理が繰り返される。処理開始指示された全てのプロセスジョブ番号の全基板Ｗに関するスケジューリングを終えると（ステップＳ７：ＮＯ）、全体スケジューリングが完了する。
【０１０２】
図３２は、スケジューリング機能部２５が図３１の処理と並行して行う別の処理を説明するためのフローチャートであり、使用権の削除に関する処理を示す。インデクサロボットＩＲによって基板Ｗが基板収容器Ｃから払い出されると（ステップＳ２１）、スケジューリング機能部２５は、その基板Ｗが共通のプロセスジョブ番号が与えられた基板群のうちの最後の基板かどうかを判断する（ステップＳ２２）。最後の基板であれば（ステップＳ２２：ＹＥＳ）、スケジューリング機能部２５は、そのプロセスジョブ番号の基板群に対して設定されている使用権を削除する（ステップＳ２３）。最後の基板でなければ（ステップＳ２２：ＮＯ）、使用権削除を行わない。
【０１０３】
図３３〜図４４は、プロセスジョブ番号ＰＪ１，ＰＪ２，ＰＪ３が付された３つの基板群（プロセスジョブ）に対するスケジューリングの例を示す。プロセスジョブ番号ＰＪ１の基板群は８枚の基板Ｗで構成され、処理内容データ中のレシピによって、２つの処理ユニットＳＰＩＮ１〜ＳＰＩＮ２が並行処理ユニットとして指定されているものとする。また、プロセスジョブ番号ＰＪ２の基板群は２枚の基板Ｗで構成され、処理内容データ中のレシピによって４つの処理ユニットＳＰＩＮ１〜ＳＰＩＮ４が並行処理ユニットとして指定されているものとする。さらに、プロセスジョブ番号ＰＪ３の基板群は２枚の基板Ｗで構成され、処理内容データ中のレシピによって、２つの処理ユニットＳＰＩＮ３〜ＳＰＩＮ４が並行処理ユニットとして指定されているものとする。そして、プロセスジョブ番号ＰＪ１，ＰＪ２，ＰＪ３の基板群に対して、この番号順に処理開始されて、スケジューリング指示が発生する場合を想定する。なお、図３３等のスケジューリング経過または結果を表す図面において、主搬送ロボットＣＲのハンド１３Ａ，１３Ｂ，１３Ｃ，１３Ｄは、それぞれ「ＣＲ１」、「ＣＲ２」、「ＣＲ３」、「ＣＲ４」と表記してある。
【０１０４】
基板処理開始指示が与えられると（図３１のステップＳ１）、スケジューリング機能部２５は、仮タイムテーブルを作成する。すなわち、スケジューリング機能部２５は、プロセスジョブ番号ＰＪ１の８枚の基板Ｗに対して、それぞれ処理ユニットＳＰＩＮ１またはＳＰＩＮ２を通る経路を表す仮タイムテーブルを作成する。また、スケジューリング機能部２５は、プロセスジョブ番号ＰＪ２の２枚の基板Ｗに対して、それぞれ処理ユニットＳＰＩＮ１〜ＳＰＩＮ４のいずれか一つを通る経路を表す仮タイムテーブルを作成する。さらに、スケジューリング機能部２５は、プロセスジョブ番号ＰＪ３の２枚の基板Ｗに対して、それぞれ処理ユニットＳＰＩＮ３またはＳＰＩＮ４を通る経路を表す仮タイムテーブルを作成する。作成された仮タイムテーブルは、記憶部２３に格納される。
【０１０５】
プロセスジョブ番号ＰＪ１，ＰＪ２，ＰＪ３に対する処理開始が順に指示され、それに応答してスケジューリング指示が発生すると（図３１のステップＳ３）、スケジューリング機能部２５は、記憶部２３に格納された全ての仮タイムテーブル、すなわち、プロセスジョブ番号ＰＪ１〜ＰＪ３に対応する全ての基板Ｗの仮タイムテーブルを読み出して、全体スケジューリングを開始する。既に処理開始している他の基板Ｗは存在しないので（ステップＳ５：ＮＯ）、スケジューリング機能部２５は、最終使用時刻の最も早い処理ユニットを検索する。はじめは、いずれの処理ユニットの最終使用時刻も「０」であるので、番号の最も若い処理ユニットＳＰＩＮ１を使うプロセスジョブのうち、最も早く処理開始指示されたプロセスジョブ番号ＰＪ１についての評価が行われる。この場合、プロセスジョブ番号ＰＪ１の基板Ｗについてのスケジューリングは未了であり（ステップＳ７：ＹＥＳ）、インデクサロボットＩＲの同時搬送数（この実施形態では２）以上の未処理基板Ｗのスケジューリングが未了であるので（ステップＳ１８：ＮＯ）、スケジューリング機能部２５は、プロセスジョブ番号ＰＪ１の１枚目の基板ＰＪ１−１の仮タイムテーブルを記憶部２３から取得する（ステップＳ８）。
【０１０６】
プロセスジョブ番号ＰＪ１の他の基板Ｗに対するスケジューリングはされておらず（ステップＳ９：ＮＯ）、いずれの処理ユニットに対しても使用権は未設定であるので（ステップＳ１０：ＹＥＳ）、スケジューリング機能部２５は、プロセスジョブ番号ＰＪ１のレシピで指定された並行処理ユニットＳＰＩＮ１〜ＳＰＩＮ２に関する使用権を、プロセスジョブ番号ＰＪ１の基板群に対して設定する（ステップＳ１１）。
【０１０７】
その後、スケジューリング機能部２５は、プロセスジョブ番号ＰＪ１の１枚目の基板ＰＪ１−１の仮タイムテーブルを構成するブロックを配置していく（ステップＳ１２〜Ｓ１５）。そして、各処理ユニットの最終使用時刻が計算されて、記憶部２３に格納される（ステップＳ１６）。
図３３は、プロセスジョブ番号ＰＪ１の１枚目の基板ＰＪ１−１に関するブロックを配置した例を示す。いずれの処理ユニットも使用されていない状態であるので、処理ユニットＳＰＩＮ１を通る経路を表す仮タイムテーブルが選択され、その仮タイムテーブルを構成するブロックが、時間軸上で前詰めに配置される。
【０１０８】
スケジューリング機能部２５は、図３１のステップＳ１６での処理の後、ステップＳ７からの処理を行う。
ステップＳ７において、スケジューリング機能部２５は、最終使用時刻の最も早い処理ユニットを検索する。この場合、処理ユニットＳＰＩＮ２〜４の最終使用時刻が「０」であるので、番号の最も若い処理ユニットＳＰＩＮ２を使うプロセスジョブ番号ＰＪ１，ＰＪ２のうち、最も早く処理開始指示されたプロセスジョブ番号ＰＪ１についての評価が行われる。
【０１０９】
プロセスジョブ番号ＰＪ１の基板Ｗについてのスケジューリングは未了であり（ステップＳ７：ＹＥＳ）、スケジューリングした基板Ｗの枚数がインデクサロボットＩＲの同時搬送数（この実施形態では２）に満たないので（ステップＳ１８：ＮＯ）、スケジューリング機能部２５は、プロセスジョブ番号ＰＪ１の２枚目の基板ＰＪ１−２の仮タイムテーブルを記憶部２３から取得する（ステップＳ８）。プロセスジョブ番号ＰＪ１の他の基板ＰＪ１−１に対するスケジューリングがされているので（ステップＳ９：ＹＥＳ）、スケジューリング機能部２５は、プロセスジョブ番号ＰＪ１の２枚目の基板ＰＪ１−２の仮タイムテーブルを構成するブロックを配置していく（ステップＳ１２〜Ｓ１５）。
【０１１０】
図３４は、プロセスジョブ番号ＰＪ１の２枚目の基板ＰＪ１−２に関するブロックを配置した例を示す。並行処理ユニットＳＰＩＮ１に対して１枚目の基板ＰＪ１−１のための処理ブロックが配置されているので、処理ユニットＳＰＩＮ２を通る経路を表す仮タイムテーブルが選択される。その仮タイムテーブルを構成するブロックが、既に配置されたブロックと干渉しないように、時間軸上で前詰めに配置される。インデクサロボットＩＲのハンド８Ａおよび８Ｂは、基板Ｗを同時に搬送可能であるので、これらのハンド８Ａ，８Ｂによる基板搬送を表すブロックは時間軸上で重なり合うように配置される。
【０１１１】
こうして、２枚の基板ＰＪ１−１，ＰＪ１−２のスケジューリングが完成すると、それらの基板ＰＪ１−１，ＰＪ１−２の搬送が開始される。
基板ＰＪ１−１，ＰＪ１−２が基板収容器Ｃから払い出されると（図３２のステップＳ２１）、基板ＰＪ１−２はプロセスジョブ番号ＰＪ１の最後の基板ではないので（ステップＳ２２：ＮＯ）、プロセスジョブ番号ＰＪ１に関する使用権はそのまま維持される。そして、プロセスジョブ番号ＰＪ１の３枚目の基板ＰＪ１−３およびプロセスジョブ番号ＰＪ２，ＰＪ３に関するスケジューリング指示が発生し（ステップＳ３：ＹＥＳ）、ステップＳ４からの動作が行われる。すなわち、スケジューリング指示発生に応答して、スケジューリング機能部２５は、記憶部２３に格納された全ての仮タイムテーブル、すなわち、プロセスジョブ番号ＰＪ１〜ＰＪ３に対応する全ての基板Ｗの仮タイムテーブルを読み出す。既に処理開始している基板ＰＪ１−１，ＰＪ１−２があるので（ステップＳ５：ＹＥＳ）、それらの基板ＰＪ１−１，ＰＪ１−２についてのスケジューリングを行う（ステップＳ６）。その結果は、図３４と同じである。
【０１１２】
一方、このスケジューリング指示が発生する前には、スケジューリング機能部２５は、図３１のステップＳ１６での処理の後、ステップＳ７からの処理を行う。
ステップＳ７において、スケジューリング機能部２５は、最終使用時刻の最も早い処理ユニットを検索する。この場合、処理ユニットＳＰＩＮ３〜４の最終使用時刻が「０」であるので、番号の最も若い処理ユニットＳＰＩＮ３を使うプロセスジョブ番号ＰＪ２，ＰＪ３のうち、最も早く処理開始指示されたプロセスジョブ番号ＰＪ２についての評価が行われる。しかし、プロセスジョブ番号ＰＪ２の並行処理ユニットのうち処理ユニットＳＰＩＮ１，ＳＰＩＮ２に対してプロセスジョブ番号ＰＪ１の使用権が設定されているため、プロセスジョブ番号ＰＪ２に関しては、図３１のステップＳ１０での判断が否定となり、「スケジューリング対象外」と判定されることになる。その結果、プロセスジョブ番号ＰＪ３がスケジューリングの対象となる。
【０１１３】
プロセスジョブ番号ＰＪ３の基板Ｗについてのスケジューリングは未了であるので、ステップＳ７での判断は肯定される。一方、インデクサロボットＩＲのハンド８Ａ，８Ｂにより同時搬送される基板ＰＪ１−１，ＰＪ１−２の払い出しが未了であれば、スケジューリングした基板Ｗの枚数がインデクサロボットＩＲの同時搬送数（この実施形態では２）に達して、ステップＳ１８での判断が肯定され、スケジューリング終了となる（ステップＳ１７）。
【０１１４】
インデクサロボットＩＲのハンド８Ａ，８Ｂによって基板ＰＪ１−１，ＰＪ１−２の払い出しを終えてスケジューリング指示が発生すると、スケジューリングした基板枚数がリセットされて、ステップＳ１８での判断が否定される。これにより、スケジューリング機能部２５は、プロセスジョブ番号ＰＪ３の１枚目の基板ＰＪ３−１の仮タイムテーブルを記憶部２３から取得する（ステップＳ８）。プロセスジョブ番号ＰＪ３の他の基板Ｗに対するスケジューリングはされておらず（ステップＳ９：ＮＯ）、プロセスジョブ番号ＰＪ３のレシピにおいて指定された並行処理ユニットＳＰＩＮ３〜ＳＰＩＮ４に対する使用権は未設定であるので（ステップＳ１０：ＹＥＳ）、スケジューリング機能部２５は、それらの並行処理ユニットＳＰＩＮ３〜ＳＰＩＮ４に関する使用権を、プロセスジョブ番号ＰＪ３の基板群に対して設定する（ステップＳ１１）。
【０１１５】
その後、スケジューリング機能部２５は、プロセスジョブ番号ＰＪ３の１枚目の基板ＰＪ３−１の仮タイムテーブルを構成するブロックを配置していく（ステップＳ１２〜Ｓ１５）。
図３５に、プロセスジョブ番号ＰＪ３の１枚目の基板ＰＪ３−１に関するブロックを配置した例を示す。処理ユニットＳＰＩＮ３，ＳＰＩＮ４のいずれの処理ユニットも使用されていない状態であるので、処理ユニットＳＰＩＮ３を通る経路を表す仮タイムテーブルが選択されて、その仮タイムテーブルのブロックが配置されている。
【０１１６】
同様の処理が行われることにより、最終使用時刻が最も早い処理ユニットＳＰＩＮ４を使用するプロセスジョブ番号ＰＪ３の２枚目の基板ＰＪ３−２に関するスケジューリングが行われることになる。図３６に、プロセスジョブ番号ＰＪ３の２枚目の基板ＰＪ３−２に関するブロックを配置した例を示す。並行処理ユニットＳＰＩＮ３に対して１枚目の基板ＰＪ３−１のための処理ブロックが配置されているので、処理ユニットＳＰＩＮ４を通る経路を表す仮タイムテーブルが選択されて、その仮タイムテーブルのブロックが配置されている。
【０１１７】
こうして、２枚の基板ＰＪ３−１，ＰＪ３−２のスケジューリングが完成すると、それらの基板ＰＪ３−１，ＰＪ３−２の搬送が開始される。
基板ＰＪ３−１，ＰＪ３−２が基板収容器Ｃから払い出されると（図３２のステップＳ２１）、基板ＰＪ３−２がプロセスジョブ番号ＰＪ３の最後の基板であるので（ステップＳ２２：ＹＥＳ）、プロセスジョブ番号ＰＪ３に関する使用権が削除される（ステップＳ２３）。そして、プロセスジョブ番号ＰＪ１〜ＰＪ３に関するスケジューリング指示が発生し（ステップＳ３）、ステップＳ４からの動作が行われる。
【０１１８】
すなわち、スケジューリング指示発生に応答して、スケジューリング機能部２５は、記憶部２３に格納された全ての仮タイムテーブル、すなわち、プロセスジョブ番号ＰＪ１〜ＰＪ３に対応する全ての基板Ｗの仮タイムテーブルを読み出す。既に処理開始している基板ＰＪ１−１，ＰＪ１−２，ＰＪ３−１，ＰＪ３−２があるので（ステップＳ５：ＹＥＳ）、それらの基板ＰＪ１−１，ＰＪ１−２，ＰＪ３−１，ＰＪ３−２についてのスケジューリングを行う（ステップＳ６）。その結果は、図３６と同じである。
【０１１９】
一方、このスケジューリング指示が発生する前には、スケジューリング機能部２５は、図３１のステップＳ１６での処理の後、ステップＳ７からの処理を行う。
ステップＳ７において、スケジューリング機能部２５は、最終使用時刻の最も早い処理ユニットを検索する。この場合、対象のプロセスジョブ番号ＰＪ１〜ＰＪ３のうちのいずれかで使用する処理ユニットＳＰＩＮ１〜ＳＰＩＮ４のうち、処理ユニットＳＰＩＮ１の最終使用時刻が最も早いので、処理ユニットＳＰＩＮ１を使うプロセスジョブ番号ＰＪ１，ＰＪ２のうち、最も早く処理開始指示されたプロセスジョブ番号ＰＪ１についての評価が行われる。
【０１２０】
プロセスジョブ番号ＰＪ１の３枚目以降の基板についてのスケジューリングは未了であるので（ステップＳ７：ＹＥＳ）、ステップＳ７での判断は肯定される。一方、インデクサロボットＩＲのハンド８Ａ，８Ｂにより同時搬送される基板ＰＪ３−１，ＰＪ３−２の払い出しが未了であれば、スケジューリングした基板Ｗの枚数がインデクサロボットＩＲの同時搬送数（この実施形態では２）に達して、ステップＳ１８での判断が肯定され、スケジューリング終了となる（ステップＳ１７）。
【０１２１】
インデクサロボットＩＲのハンド８Ａ，８Ｂによって基板ＰＪ３−１，ＰＪ３−２の払い出しを終えてスケジューリング指示が発生すると、スケジューリングした基板枚数がリセットされて、ステップＳ１８での判断が否定される。これにより、スケジューリング機能部２５は、プロセスジョブ番号ＰＪ１の３枚目の基板ＰＪ１−３の仮タイムテーブルを記憶部２３から取得する（ステップＳ８）。プロセスジョブ番号ＰＪ１の他の基板ＰＪ１−１，ＰＪ１−２に対するスケジューリングがされているので（ステップＳ９：ＹＥＳ）、スケジューリング機能部２５は、プロセスジョブ番号ＰＪ１の３枚目の基板ＰＪ１−３の仮タイムテーブルを構成するブロックを配置していく（ステップＳ１２〜Ｓ１５）。
【０１２２】
図３７に、プロセスジョブ番号ＰＪ１の３枚目の基板ＰＪ１−３に関するブロックを配置した例を示す。処理ユニットＳＰＩＮ１に対してすでに処理ブロックが配置されているので、処理ユニットＳＰＩＮ１を通る経路を表す仮タイムテーブルを構成するブロックが、既に配置されたブロックと干渉しないように、時間軸上で前詰めに配置される。
同様の処理が行われることにより、最終使用時刻が最も早い処理ユニットＳＰＩＮ２を使用するプロセスジョブ番号ＰＪ１の４枚目の基板ＰＪ１−４に関するスケジューリングが行われることになる。図３８に、プロセスジョブ番号ＰＪ１の４枚目の基板ＰＪ１−４に関するブロックを配置した例を示す。処理ユニットＳＰＩＮ２を通る経路を表す仮タイムテーブルが選択されて、その仮タイムテーブルのブロックが配置されている。
【０１２３】
こうして、２枚の基板ＰＪ１−３，ＰＪ１−４のスケジューリングが完成すると、それらの基板ＰＪ１−３，ＰＪ１−４の搬送が開始される。
基板ＰＪ１−３，ＰＪ１−４が基板収容器Ｃから払い出されると（図３２のステップＳ２１）、基板ＰＪ１−４はプロセスジョブ番号ＰＪ１の最後の基板ではないので（ステップＳ２２：ＹＥＳ）、プロセスジョブ番号ＰＪ１に関する使用権が維持される。そして、プロセスジョブ番号ＰＪ１〜ＰＪ３に関するスケジューリング指示が発生し（ステップＳ３）、ステップＳ４からの動作が行われる。
【０１２４】
すなわち、スケジューリング指示発生に応答して、スケジューリング機能部２５は、記憶部２３に格納された全ての仮タイムテーブル、すなわち、プロセスジョブ番号ＰＪ１〜ＰＪ３に対応する全ての基板Ｗの仮タイムテーブルを読み出す。既に処理開始している基板ＰＪ１−１〜４，ＰＪ３−１〜２があるので（ステップＳ５：ＹＥＳ）、それらの基板ＰＪ１−１〜４，ＰＪ３−１〜２についてのスケジューリングを行う（ステップＳ６）。その結果は、図３８と同じである。
【０１２５】
一方、このスケジューリング指示が発生する前には、スケジューリング機能部２５は、図３１のステップＳ１６での処理の後、ステップＳ７からの処理を行う。
ステップＳ７において、スケジューリング機能部２５は、最終使用時刻の最も早い処理ユニットを検索する。この場合、対象のプロセスジョブ番号ＰＪ１〜ＰＪ３のうちのいずれかで使用する処理ユニットＳＰＩＮ１〜ＳＰＩＮ４のうち、処理ユニットＳＰＩＮ３の最終使用時刻が最も早いので（図３８参照）、処理ユニットＳＰＩＮ３を使うプロセスジョブ番号ＰＪ２，ＰＪ３のうち、最も早く処理開始指示されたプロセスジョブ番号ＰＪ２についての評価が行われる。しかし、プロセスジョブ番号ＰＪ２の並行処理ユニットのうち処理ユニットＳＰＩＮ１，ＳＰＩＮ２に対してプロセスジョブ番号ＰＪ１の使用権が設定されているため、プロセスジョブ番号ＰＪ２に関しては、図３１のステップＳ１０での判断が否定となり、「スケジューリング対象外」と判定されることになる。その結果、プロセスジョブ番号ＰＪ１がスケジューリングの対象となる。そして、プロセスジョブ番号ＰＪ１のレシピで指定された並行処理ユニットＳＰＩＮ１，ＳＰＩＮ２のうち、最終使用時刻が最先の処理ユニットＳＰＩＮ１についての評価が行われることになる。
【０１２６】
プロセスジョブ番号ＰＪ１の５枚目以降の基板についてのスケジューリングは未了であるので（ステップＳ７：ＹＥＳ）、ステップＳ７での判断は肯定される。一方、インデクサロボットＩＲのハンド８Ａ，８Ｂにより同時搬送される基板ＰＪ３−１，ＰＪ３−２の払い出しが未了であれば、スケジューリングした基板Ｗの枚数がインデクサロボットＩＲの同時搬送数（この実施形態では２）に達して、ステップＳ１８での判断が肯定され、スケジューリング終了となる（ステップＳ１７）。
【０１２７】
インデクサロボットＩＲのハンド８Ａ，８Ｂによって基板ＰＪ１−３，ＰＪ１−４の払い出しを終えてスケジューリング指示が発生すると、スケジューリングした基板枚数がリセットされて、ステップＳ１８での判断が否定される。これにより、スケジューリング機能部２５は、プロセスジョブ番号ＰＪ１の５枚目の基板ＰＪ１−５の仮タイムテーブルを記憶部２３から取得する（ステップＳ８）。プロセスジョブ番号ＰＪ１の他の基板に対するスケジューリングがされているので（ステップＳ９：ＹＥＳ）、スケジューリング機能部２５は、プロセスジョブ番号ＰＪ１の５枚目の基板ＰＪ１−５の仮タイムテーブルを構成するブロックを配置していく（ステップＳ１２）。この場合、プロセスジェブ番号ＰＪ１のレシピで指定された並行処理ユニットＳＰＩＮ１，ＳＰＩＮ２のうち、最終使用時刻が最先の処理ユニットＳＰＩＮ１を通る経路を表す仮タイムテーブルが用いられる。
【０１２８】
図３９に、プロセスジョブ番号ＰＪ１の５枚目の基板ＰＪ１−５に関するブロックを配置した例を示す。処理ユニットＳＰＩＮ１に対してすでに処理ブロックが配置されているので、処理ユニットＳＰＩＮ１を通る経路を表す仮タイムテーブルを構成するブロックが、既に配置されたブロックと干渉しないように、時間軸上で前詰めに配置される。
同様の処理が行われることにより、プロセスジョブ番号ＰＪ１の６番目の基板ＰＪ１−６が処理ユニットＳＰＩＮ２で処理するように計画され（図４０参照）、プロセスジョブ番号ＰＪ１の７番目の基板ＰＪ１−７が処理ユニットＳＰＩＮ１で処理するように計画され（図４１参照）、プロセスジョブ番号ＰＪ１の８番目の基板ＰＪ１−８が処理ユニットＳＰＩＮ２で処理するように計画される（図４２参照）。
【０１２９】
基板ＰＪ１−７，ＰＪ１−８が基板収容器Ｃから払い出されると（図３２のステップＳ２１）、当該基板ＰＪ１−８がプロセスジョブ番号ＰＪ１の最後の基板であるので（ステップＳ２２：ＹＥＳ）、プロセスジョブ番号ＰＪ１に関する使用権が削除される（ステップＳ２３）。そして、プロセスジョブ番号ＰＪ１〜ＰＪ３に関するスケジューリング指示が発生する（ステップＳ３：ＹＥＳ）。このとき、スケジューリング機能部２５は、最終使用時刻の最も早い処理ユニットを検索する。この場合、対象のプロセスジョブ番号ＰＪ１〜ＰＪ３のうちのいずれかで使用する処理ユニットＳＰＩＮ１〜ＳＰＩＮ４のうち、処理ユニットＳＰＩＮ３の最終使用時刻が最も早いので、処理ユニットＳＰＩＮ３を使うプロセスジョブ番号ＰＪ２，ＰＪ３のうち、最も早く処理開始指示されたプロセスジョブ番号ＰＪ２についての評価が行われる。
【０１３０】
スケジューリング指示発生に応答して、スケジューリング機能部２５は、記憶部２３に格納された全ての仮タイムテーブル、すなわち、プロセスジョブ番号ＰＪ１〜ＰＪ３に対応する全ての基板Ｗの仮タイムテーブルを読み出す。既に処理開始している基板ＰＪ１−１〜８，ＰＪ３−１〜２があるので（ステップＳ５：ＹＥＳ）、それらの基板ＰＪ１−１〜８，ＰＪ３−１〜２についてのスケジューリングを行う（ステップＳ６）。その結果は、図４２と同じである。
【０１３１】
プロセスジョブ番号ＰＪ２の基板についてのスケジューリングは未了であるので（ステップＳ７：ＹＥＳ）、ステップＳ７での判断は肯定される。一方、インデクサロボットＩＲのハンド８Ａ，８Ｂによって基板ＰＪ１−７，ＰＪ１−８の払い出しを終えてスケジューリング指示が発生すると、スケジューリングした基板枚数がリセットされて、ステップＳ１８での判断が否定される。これにより、スケジューリング機能部２５は、プロセスジョブ番号ＰＪ２の１枚目の基板ＰＪ２−１の仮タイムテーブル（処理ユニットＳＰＩＮ３を通るもの）を記憶部２３から取得する（ステップＳ８）。プロセスジョブ番号ＰＪ２の他の基板に対するスケジューリングは未了であり（ステップＳ９：ＮＯ）、プロセスジョブ番号ＰＪ２のレシピにおいて指定された並行処理ユニットＳＰＩＮ１〜ＳＰＩＮ４に対する使用権は未設定であるので（ステップＳ１０：ＹＥＳ）、スケジューリング機能部２５は、それらの並行処理ユニットＳＰＩＮ１〜ＳＰＩＮ４に関する使用権を、プロセスジョブ番号ＰＪ２の基板群に対して設定する（ステップＳ１１）。その後、スケジューリング機能部２５は、プロセスジョブ番号ＰＪ２の１枚目の基板ＰＪ２−１の仮タイムテーブルを構成するブロックを配置していく（ステップＳ１２〜Ｓ１５）。
【０１３２】
図４３に、プロセスジョブ番号ＰＪ２の１枚目の基板ＰＪ２−１に関するブロックを配置した例を示す。プロセスジョブ番号ＰＪ１の最後の基板ＰＪ１−８の搬送開始まで、処理ユニットＳＰＩＮ１〜ＳＰＩＮ２に対するプロセスジョブ番号ＰＪ１の使用権が削除されないので、基板ＰＪ２−１に関するブロックは、基板ＰＪ１−８を基板収容器Ｃから払い出す動作を指定するブロックよりも時間軸上において後に配置することになる。したがって、基板ＰＪ２−１に対する処理が基板ＰＪ１−８に対する処理を追い越すような計画が立てられることはない。
【０１３３】
同様の処理が行われることにより、プロセスジョブ番号ＰＪ２の２番目の基板ＰＪ２−２が処理ユニットＳＰＩＮ４で処理するように計画される（図４４参照）。
２枚の基板ＰＪ２−１，ＰＪ２−２が基板収容器Ｃから払い出されると（図３２のステップＳ２１）、基板ＰＪ２−２がプロセスジョブ番号ＰＪ２の最後の基板であるので（ステップＳ２２：ＹＥＳ）、プロセスジョブ番号ＰＪ２に関する使用権が削除される（ステップＳ２３）。こうして、全ての対象基板に対するスケジューリングが完了する（ステップＳ７：ＮＯ。ステップＳ１７）。
【０１３４】
以上のように、この実施形態によれば、第１の実施形態の場合と同様の効果に加えて、次のような効果が得られる。すなわち、インデクサロボットＩＲ、同時に２枚の基板Ｗを搬送できるので、インデクサロボットＩＲに関して、２枚の基板の搬送を表す搬送ブロックを時間軸上で重なり合うように配置される。これにより、２枚の基板の同時搬送を計画することができるから、基板搬送効率を高めることができ、それによって、基板処理装置の生産性を高めることができる。
【０１３５】
図４５は、この発明のさらに他の実施形態を説明するための図であり、スケジューリング機能部２５による処理例（第３の実施形態）を説明するためのフローチャートである。この実施形態における基板処理装置の構成は、図２９および図３０のとおりであり、その電気的構成は図３に示す構成と同様である。図４５には、制御部２１（コンピュータ２０）がスケジュール作成プログラム３１を実行することによって行われる処理が表されている。換言すれば、スケジュール作成プログラム３１には、図４５に示す処理をコンピュータに実行させるようにステップ群が組み込まれている。
【０１３６】
ホストコンピュータ２４からもしくは出入力部２２からオペレータによって基板処理開始の指示が与えられると（ステップＳ３１）、スケジューリング機能部２５は、基板処理開始指示が与えられた全ての基板Ｗに関して、仮タイムテーブルを作成する（ステップＳ３２）。基板処理開始指示は、基板収容器Ｃに収容された全ての基板Ｗを一単位として発行されてもよい。基板処理開始指示は、一つまたは複数のプロセスジョブ番号が付与された基板Ｗの処理開始を指示するものであってもよい。
【０１３７】
たとえば、処理内容データにおいて或るプロセスジョブ番号に対応付けられたレシピが、処理ユニットＳＰＩＮ１〜ＳＰＩＮ４の並行処理を指定しているとする。すなわち、当該レシピに従う基板処理が、４個の処理ユニットＳＰＩＮ１〜ＳＰＩＮ４のいずれにおいても実行可能である場合を考える。この場合、当該プロセスジョブ番号が付与された基板Ｗが処理を受けるときに通る経路は、４通りである。すなわち、その基板Ｗの処理のために選択し得る経路は、処理ユニットＳＰＩＮ１〜ＳＰＩＮ４のいずれかを通る４個の経路である。そこで、スケジューリング機能部２５は、その４個の経路に対応した仮タイムテーブルを作成する。こうして作成される仮タイムテーブルは、前述の図６の仮タイムテーブルと類似したテーブルとなる。
【０１３８】
同様の仮タイムテーブルが同じプロセスジョブ番号が付与された基板Ｗの全てに対応して作成される。たとえば、同じプロセスジョブ番号が付与された基板Ｗが４枚あれば、合計で１６経路（４経路×４枚）分の仮タイムテーブルが作成される。さらに、同時に開始指示されたプロセスジョブ番号が複数個ある場合には、全てのプロセスジョブ番号に関して、同様の処理が行われて仮タイムテーブルが作成される。こうして作成された仮タイムテーブルは、スケジュールデータ５０の一部として記憶部２３に格納される。仮タイムテーブルの作成段階では、別の基板Ｗに関するブロックとの干渉（時間軸上での重なり合い）は考慮されない。
【０１３９】
スケジューリング指示が発生すると（ステップＳ３３：ＹＥＳ）、基板Ｗの処理に関するブロックの配置が行われる（全体スケジューリング。ステップＳ３４〜Ｓ５２）。具体的には、スケジューリング機能部２５は、当該基板Ｗの仮タイムテーブルを記憶部２３から読み出して、その仮タイムテーブルを構成しているブロックを時間軸上に配置していく。
【０１４０】
さらに具体的に説明すると、スケジューリング機能部２５は、基板処理開始の指示が与えられると、当該スケジューリング機能部２５において基板処理手順を管理している全ての基板Ｗに関して、処理内容データ（プロセスジョブ番号およびレシピ）を記憶部２３から取得する（ステップＳ３４）。さらに、スケジューリング機能部２５は、基板収容器Ｃから搬出されて処理開始されている基板Ｗがあるかどうかを判断する（ステップＳ３５）。いずれの基板Ｗの処理も開始されていなければ（ステップＳ３５：ＮＯ）、スケジューリング機能部２５は、記憶部２３から取得した処理内容データに対応する基板Ｗのうち、ステージＳＴで待機中であり、かつスケジューリングが行われていない基板Ｗがあるかどうかを判断する（ステップＳ３７）。この判断が肯定されると、さらに、スケジューリング機能部２５は、インデクサロボットＩＲが一度に搬送可能な枚数（この実施形態では２枚）分の未処理基板Ｗに関するスケジューリングを行ったかどうかを判断する（ステップＳ３８）。この判断が肯定されれば、スケジューリングを一旦終える。
【０１４１】
一度に搬送可能な枚数分の未処理基板Ｗのスケジューリングが未了のときは（ステップＳ３８：ＮＯ）、スケジューリング機能部２５は、スケジューリングを行っていない基板Ｗのうち、処理順序が最も若い基板Ｗをスケジューリング対象基板Ｗとし、そのスケジューリング対象基板Ｗに関するデータ（処理内容データおよびスケジュールデータ）を記憶部２３から取得する（ステップＳ３９）。通常は、基板収容器Ｃにおいて上に位置している基板Ｗほど処理順序が若い。
【０１４２】
次に、スケジューリング機能部２５は、スケジューリング対象基板Ｗのプロセスジョブ番号に対応するレシピデータで指定されている並行処理ユニットのうちの少なくとも一つが使用可能かどうか、すなわち他のプロセスジョブ番号の使用権が設定されていないかどうかを判断する（ステップＳ４０）。最初の基板Ｗに対してスケジューリングを行うときには、いずれの処理ユニットに対しても使用権は未設定である。そこで、スケジューリング機能部２５は、使用可能な処理ユニットのうちで、最終使用時刻が最も小さい処理ユニットを特定する（ステップＳ４１）。各処理ユニットの最終使用時刻の初期値は「０」である。最小の最終使用時刻を有する複数の処理ユニットが存在するときは、たとえば番号の若い処理ユニットを選択すればよい。
【０１４３】
次に、スケジューリング機能部２５は、スケジューリング対象基板Ｗよりも後にスケジューリング指示が与えられた未スケジューリングの別のプロセスジョブ（共通のプロセスジョブ番号が付与された基板群）があり、かつそのプロセスジョブのレシピにおいて指定された並行処理ユニットの少なくとも一つが使用可能かどうか、すなわち、使用権未設定かどうかを判断する（ステップＳ４２）。別のプロセスジョブのスケジューリング指示がなければ、この判断が否定され、スケジューリング機能部２５は、スケジューリング対象基板Ｗのプロセスジョブ番号に対して指定された並行処理ユニット（ただし使用可能なもの）に対して、当該プロセスジョブの使用権を設定する（ステップＳ４３）。
【０１４４】
たとえば、レシピにおいて処理ユニットＳＰＩＮ１〜ＳＰＩＮ４での並行処理が指定されていれば、図４６に示すように、スケジューリング対象基板Ｗが属するプロセスジョブ番号ＰＪ１の基板群に対して、処理ユニットＳＰＩＮ１〜ＳＰＩＮ４の使用権が設定される。この使用権が設定されている間は、他のプロセスジョブ番号の基板群の処理ブロックを処理ユニットＳＰＩＮ１〜ＳＰＩＮ４に配置することはできない。
【０１４５】
次いで、スケジューリング機能部２５は、スケジューリング対象基板Ｗに対するスケジューリングを実行する。具体的には、スケジューリング機能部２５は、スケジューリング対象基板Ｗに対応する仮タイムテーブルを参照し、当該仮タイムテーブルを構成するブロックを一つ取得する（ステップＳ４４）。このとき取得されるブロックは、未配置のブロックのうち仮タイムテーブルの時間軸上で最も早い位置に配置されているブロックである。さらに、スケジューリング機能部２５は、当該取得したブロックを配置できる位置を検索し（ステップＳ４５）、その検索された位置に当該ブロックを配置する（ステップＳ４６）。各ブロックは、同一リソースが同じ時間に重複して使用されないようにしながら、時間軸上で最も早い位置に配置される。同様の動作が、仮タイムテーブルを構成する全てのブロックに関して繰り返し実行される（ステップＳ４７）。そして、仮タイムテーブルを構成する全てのブロックを配置し終えると（ステップＳ４７：ＹＥＳ）、スケジューリング機能部２５は、そのスケジューリングされた処理ブロックの実行後における各処理ユニットの最終使用時刻を計算し、その計算結果を記憶部２３に格納する（ステップＳ４８）。最終使用時刻の初期値は「０」である。
【０１４６】
次に、スケジューリング機能部２５は、スケジューリング対象基板Ｗが、共通のプロセスジョブ番号が与えられた基板群のうちの最後の基板かどうかを判断する（ステップＳ４９）。最後の基板であれば（ステップＳ４９：ＹＥＳ）、スケジューリング機能部２５は、そのプロセスジョブ番号の基板群に対して設定されている使用権を削除する（ステップＳ５０）。最後の基板でなければ（ステップＳ４９：ＮＯ）、使用権削除を行わない。この後は、ステップＳ３７からの処理が繰り返される。処理開始指示された全てのプロセスジョブ番号の全基板Ｗに関するスケジューリングを終えると（ステップＳ３７：ＮＯ）、全体スケジューリングが完了する（ステップＳ５３）。
【０１４７】
図４６には、プロセスジョブ番号ＰＪ１の最初の基板ＰＪ１−１に対応する仮タイムテーブルを構成する全てのブロックを配置した例を示す。スケジューリング機能部２５は、同一リソースのスペースでブロックが重なり合わないように各ブロックを配置する。最初の基板のスケジューリングであるので、いずれの処理ユニットも使用されていない状態であるので、処理ユニットＳＰＩＮ１を通る経路を表す仮タイムテーブルが選択され、その仮タイムテーブルを構成するブロックが、時間軸上で前詰めに配置されている。
【０１４８】
プロセスジョブ番号ＰＪ１の１枚目の基板Ｗのスケジューリングの後、スケジューリング機能部２５は、ステップＳ３７からの処理を行って、当該プロセスジョブ番号ＰＪ１の２枚目の基板Ｗのスケジューリングを開始する。この場合、プロセスジョブ番号ＰＪ１の基板Ｗについてのスケジューリングは未了であり（ステップＳ３７：ＹＥＳ）、スケジューリングした基板Ｗの枚数がインデクサロボットＩＲの同時搬送数（この実施形態では２）に満たないので（ステップＳ３８：ＮＯ）、スケジューリング機能部２５は、スケジュール未了のプロセスジョブのなかでスケジューリング指示が最も早いプロセスジョブ番号の処理順序が最も早い基板Ｗ、すなわちプロセスジョブ番号ＰＪ１の２枚目の基板ＰＪ１−２をスケジューリング対象基板とし、そのスケジューリング対象基板に関するデータを記憶部２３から取得する（ステップＳ３９）。
【０１４９】
プロセスジョブ番号ＰＪ１の使用権が設定されているので、ステップＳ４０の判断は肯定となり、スケジューリング機能部２５は、使用可能な処理ユニット（この場合、使用権が設定された処理ユニット）のうちで、最終使用時刻が最も小さい処理ユニット（たとえば処理ユニットＳＰＩＮ２）を特定する（ステップＳ４１）。スケジューリング対象基板Ｗよりも後でスケジューリング指示された別のプロセスジョブがなければ（ステップＳ４２：ＮＯ）、ステップＳ４３からの処理を行って、プロセスジョブ番号ＰＪ１の２枚目の基板ＰＪ１−２についてのスケジューリングが行われる（ステップＳ４４〜Ｓ４７）。この場合、処理ユニットＳＰＩＮ２を通る経路を表す仮タイムテーブルが選択され、その仮タイムテーブルから取り出したブロックが配置される。
【０１５０】
ステップＳ４１では、１枚目の基板ＰＪ１−１の処理のための処理ブロックが処理ユニットＳＰＩＮ１に対してすでに配置されているので、残りの並行処理ユニットＳＰＩＮ２〜ＳＰＩＮ４をそれぞれ通る３つの経路を表す３つの仮タイムテーブルのなかから処理ユニットの最終使用時刻が最も早い仮タイムテーブルが選択される。最終使用時刻が等しい場合には、番号の若い処理ユニットを通る経路に対応した仮タイムテーブルが選択される。具体的には、処理ユニットＳＰＩＮ２が選択されることになる。したがって、処理ユニットＳＰＩＮ２を通る仮タイムテーブルを用いてプロセスジョブ番号ＰＪ１の２枚目の基板ＰＪ１−２に対してスケジューリングが行われる。
【０１５１】
具体的なスケジューリング例を図４７に示す。インデクサロボットＩＲのハンド８Ａおよび８Ｂは同時に２枚の未処理基板Ｗまたは処理済み基板Ｗを搬送することができるので、インデクサロボットＩＲによる基板ＰＪ１−１，ＰＪ１−２の搬送を表すブロックが、時間軸上で重なり合うように配置されている。また、主搬送ロボットＣＲとインデクサロボットＩＲとの間では、２枚の未処理基板Ｗの受け渡しを同時に実行でき、また２枚の処理済み基板Ｗの受け渡しを同時に実行できるので、それらの各２枚の基板Ｗの受け渡しを表すブロックが時間軸上で重なりあって配置されている。
【０１５２】
同様にして、プロセスジョブ番号ＰＪ１の３枚目の基板ＰＪ１−３に対してスケジューリングを行うことにより、図４８に示すスケジューリング結果が得られる。
さらに同様にして、プロセスジョブ番号ＰＪ１の４枚目の基板ＰＪ１−４に対してスケジューリングを行うことにより、図４９に示すスケジューリング結果が得られる。図１０との比較により明らかなとおり、インデクサロボットＩＲによる基板搬送を表す搬送ブロックを時間軸上で重ねて配置できるので、全体の処理時間を短くすることができる。
【０１５３】
ブロック配置位置を検索するとき（ステップＳ４５）、スケジューリング機能部２５は、同一リソースに対して時間軸上でブロックが重なり合うことがなく、かつできるだけ時間軸上の早い位置を検索する。
プロセスジョブ番号ＰＪ１の全ての基板Ｗに関してスケジューリングを終えると（ステップＳ４９：ＹＥＳ）、スケジューリング機能部２５は、その直後、すなわち、最後にスケジューリングされた基板Ｗの搬送開始（基板収容器Ｃからの払い出し）を待つことなく、プロセスジョブ番号ＰＪ１の使用権を削除する（ステップＳ５０）。この後の処理は、ステップＳ３７に戻る。すなわち、引き続き、別のプロセスジョブ番号に関するスケジューリングが実行される。
【０１５４】
ステップＳ４０において、スケジューリング対象基板Ｗに付与されたプロセスジョブ番号に対応するレシピが指定する並行処理ユニットの全てに関して別のプロセスジョブ番号の使用権が設定されていれば、そのスケジューリング対象基板Ｗに対応するプロセスジョブ番号はスケジューリング対象外として、ステップＳ３７からの処理が実行される。
ステップＳ４２において、スケジューリング対象基板Ｗの後にスケジューリング指示された他のプロセスジョブがあると判断されると、スケジューリング機能部２５は、その後続のプロセスジョブで使用可能な処理ユニットの最終使用時刻が、スケジューリング対象基板Ｗの処理のために使用可能な処理ユニットの最終使用時刻よりも早いかどうかを判断する（ステップＳ５１）。この判断が肯定されると、当該後続のプロセスジョブの基板Ｗをスケジューリング対象基板として（ステップＳ５２）、ステップＳ４２からの処理が行われる。当該判断が否定されれば、スケジューリング対象基板Ｗを変更せずに、ステップＳ４３からの処理が実行される。
【０１５５】
図５０〜図５５は、プロセスジョブ番号ＰＪ１，ＰＪ２，ＰＪ３が付された３つの基板群（プロセスジョブ）に対するスケジューリングの例を示す。プロセスジョブ番号ＰＪ１の基板群は１枚の基板ＰＪ１−１で構成され、処理内容データ中のレシピによって、４つの処理ユニットＳＰＩＮ１〜ＳＰＩＮ４が並行処理ユニットとして指定されているものとする。また、プロセスジョブ番号ＰＪ２の基板群は３枚の基板ＰＪ２−１，ＰＪ２−２，ＰＪ２−３で構成され、処理内容データ中のレシピによって２つの処理ユニットＳＰＩＮ２〜ＳＰＩＮ３が並行処理ユニットとして指定されているものとする。さらに、プロセスジョブ番号ＰＪ３の基板群は１枚の基板ＰＪ３−１で構成され、処理内容データ中のレシピによって、３つの処理ユニットＳＰＩＮ２〜ＳＰＩＮ４が並行処理ユニットとして指定されているものとする。そして、プロセスジョブ番号ＰＪ１，ＰＪ２，ＰＪ３の基板群に対して、この番号順に処理開始されて、スケジューリング指示が発生する場合を想定する。
【０１５６】
基板処理開始指示が与えられると（図４５のステップＳ３１）、スケジューリング機能部２５は、仮タイムテーブルを作成する（ステップＳ３２）。すなわち、スケジューリング機能部２５は、プロセスジョブ番号ＰＪ１の１枚の基板ＰＪ１−１に対して、処理ユニットＳＰＩＮ１〜ＳＰＩＮ４のいずれかで処理される、４通りの経路を表す仮タイムテーブルを作成する。また、スケジューリング機能部２５は、プロセスジョブ番号ＰＪ２の３枚の基板ＰＪ２−１，ＰＪ２−２，ＰＪ２−３に対して、それぞれ、処理ユニットＳＰＩＮ２〜ＳＰＩＮ３のいずれかで処理される、２通りの経路を表す仮タイムテーブルを作成する。すなわち、プロセスジョブ番号ＰＪ２に対して合計で６（２×３）経路分の仮タイムテーブルが作成される。さらに、スケジューリング機能部２５は、プロセスジョブ番号ＰＪ３の１枚の基板ＰＪ３−１に対して、処理ユニットＳＰＩＮ２〜ＳＰＩＮ４のいずれかで処理される、３通りの経路を表す仮タイムテーブルを作成する。作成された仮タイムテーブルは、記憶部２３に格納される。図５０は仮タイムテーブルの一例を示す。
【０１５７】
プロセスジョブ番号ＰＪ１，ＰＪ２，ＰＪ３に対する処理開始が順に指示され、それに応答してスケジューリング指示が発生すると（図４５のステップＳ３３）、スケジューリング機能部２５は、記憶部２３に格納された全ての仮タイムテーブル、すなわち、プロセスジョブ番号ＰＪ１〜ＰＪ３に対応する全ての基板Ｗの仮タイムテーブルを読み出して、全体スケジューリングを開始する。既に処理開始している他の基板Ｗは存在せず（ステップＳ３５：ＮＯ）、未スケジューリングの基板Ｗがあり（ステップＳ３７：ＹＥＳ）、インデクサロボットＩＲによって一度に搬送可能な枚数分の未処理基板Ｗのスケジューリングが未了であるので（ステップＳ３８：ＮＯ）、プロセスジョブ番号ＰＪ１の１枚目の基板ＰＪ１−１の仮タイムテーブルが記憶部２３から取得される（ステップＳ３９）。
【０１５８】
さらに、スケジューリング機能部２５は、プロセスジョブ番号ＰＪ１のレシピで指定された並行処理ユニットＳＰＩＮ１〜ＳＰＩＮ４のなかに、使用可能なもの、すなわち他のプロセスジョブ番号の使用権が未設定のものがあるかどうかを調べる（ステップＳ４０）。最初の基板Ｗのスケジューリングを行うときにはいずれの使用権も未設定であるから、この判断が肯定される。そこで、スケジューリング機能部２５は、さらに、プロセスジョブ番号ＰＪ１で使用可能な処理ユニットＳＰＩＮ１〜ＳＰＩＮ４のうち、最終使用時刻の最も早い処理ユニットを特定する（ステップＳ４１）。はじめは、いずれの処理ユニットの最終使用時刻も「０」であるので、番号の最も若い処理ユニットＳＰＩＮ１が該当することになる。
【０１５９】
プロセスジョブ番号ＰＪ１の後にプロセスジョブ番号ＰＪ２，ＰＪ３がスタートしており、いずれの使用権も未設定であるため、ステップＳ４２での判定が肯定される。そこで、スケジューリング機能部２５は、プロセスジョブ番号ＰＪ２が使用する並行処理ユニットＳＰＩＮ２〜ＳＰＩＮ３の最終使用時刻を記憶部２３から取得し、さらに、プロセスジョブ番号ＰＪ３が使用する並行処理ユニットＳＰＩＮ２〜ＳＰＩＮ４の最終使用時刻を記憶部２３から取得する。そして、スケジューリング機能部２５は、それらの最終使用時刻と、ステップＳ４１で特定された処理ユニットの最終使用時刻とを比較する（ステップＳ５１）。スケジューリング当初の各処理ユニットの最終使用時刻は初期値「０」であるので、ステップＳ５１での判定は否定となる。
【０１６０】
そこで、スケジューリング機能部２５は、プロセスジョブ番号ＰＪ１のレシピにおいて並行処理ユニットとして指定された処理ユニットＳＰＩＮ１〜ＳＰＩＮ４に対して、プロセスジョブ番号ＰＪ１の使用権を設定する（ステップＳ４３）。その後、スケジューリング機能部２５は、プロセスジョブ番号ＰＪ１の１枚目の基板ＰＪ１−１の仮タイムテーブルを構成するブロックを配置していく（ステップＳ４４〜Ｓ４７）。
【０１６１】
図５１は、プロセスジョブ番号ＰＪ１の１枚目の基板ＰＪ１−１に関するブロックを配置した例を示す。このとき、ステップＳ４１，Ｓ４２で特定された、最終使用時刻が最も早い処理ユニットである処理ユニットＳＰＩＮ１を通る経路を表す仮タイムテーブルが選択される。具体的には、処理ユニットＳＰＩＮ１を通る経路を表す仮タイムテーブルが選択され、その仮タイムテーブルを構成するブロックが、時間軸上で前詰めに配置される。
【０１６２】
その後、スケジューリング機能部２５は、処理ユニットＳＰＩＮ１が基板ＰＪ１−１の処理を終える時刻を、処理ユニットＳＰＩＮ１の最終使用時刻として求め、記憶部２３に書き込む（ステップＳ４８）。そして、プロセスジョブ番号ＰＪ１の基板群は１枚の基板ＰＪ１−１だけで構成されているので、ステップＳ４９での判断が肯定となり、スケジューリング機能部２５は、プロセスジョブ番号ＰＪ１の使用権を削除する。この状態が、図５１に示されている。
【０１６３】
プロセスジョブ番号ＰＪ１の１枚目の基板ＰＪ１−１のスケジューリングの後、スケジューリング機能部２５は、ステップＳ３７からの処理を行う。この場合、プロセスジョブ番号ＰＪ２，ＰＪ３の基板Ｗについてのスケジューリングは未了であり（ステップＳ３７：ＹＥＳ）、スケジューリングした基板Ｗの枚数がインデクサロボットＩＲの同時搬送数（この実施形態では２）に満たないので（ステップＳ３８：ＮＯ）、スケジューリング機能部２５は、スケジュール未了のプロセスジョブのなかでスケジューリング指示が最も早いプロセスジョブ番号の処理順序が最も早い基板、すなわちプロセスジョブ番号ＰＪ２の１枚目の基板ＰＪ２−１をスケジューリング対象基板とし、そのスケジューリング対象基板に関するデータを記憶部２３から取得する（ステップＳ３９）。
【０１６４】
プロセスジョブ番号ＰＪ１の使用権は既に削除されていて、いずれの使用権も設定されていないので、ステップＳ４０の判断は肯定となり、スケジューリング機能部２５は、プロセスジョブ番号ＰＪ２のレシピで指定された並行処理ユニットＳＰＩＮ２，ＳＰＩＮ３のうちで、最終使用時刻が最も小さい処理ユニットを特定する（ステップＳ４１）。この場合は、処理ユニットＳＰＩＮ２〜ＳＰＩＮ４の最終使用時刻は初期値「０」であるので、処理ユニットＳＰＩＮ２が該当する。
【０１６５】
スケジューリング対象基板ＰＪ２−１よりも後でスケジューリング指示された別のプロセスジョブＰＪ３があるので、ステップＳ４２での判定が肯定される。そこで、スケジューリング機能部２５は、プロセスジョブ番号ＰＪ３が使用する並行処理ユニットＳＰＩＮ２〜ＳＰＩＮ４の最終使用時刻を記憶部２３から取得する。そして、スケジューリング機能部２５は、それらの最終使用時刻と、ステップＳ４１で特定された処理ユニットの最終使用時刻とを比較する（ステップＳ５１）。この場合、処理ユニットＳＰＩＮ２〜ＳＰＩＮ４の最終使用時刻は初期値「０」であるので、ステップＳ５１での判定は否定となる。そこで、スケジューリング機能部２５は、プロセスジョブ番号ＰＪ２のレシピにおいて並行処理ユニットとして指定された処理ユニットＳＰＩＮ２〜ＳＰＩＮ３に対して、プロセスジョブ番号ＰＪ２の使用権を設定する（ステップＳ４３）。その後、スケジューリング機能部２５は、プロセスジョブ番号ＰＪ２の１枚目の基板ＰＪ２−１の仮タイムテーブルを構成するブロックを配置していく（ステップＳ４４〜Ｓ４７）。
【０１６６】
図５２は、プロセスジョブ番号ＰＪ２の１枚目の基板ＰＪ２−１に関するブロックを配置した例を示す。このとき、ステップＳ４１，Ｓ４２で特定された、最終使用時刻が最も早い処理ユニットである処理ユニットＳＰＩＮ２を通る経路を表す仮タイムテーブルが選択され、その仮タイムテーブルを構成するブロックが、時間軸上で前詰めに配置される。
インデクサロボットＩＲのハンド８Ａおよび８Ｂは同時に２枚の未処理基板Ｗまたは処理済み基板Ｗを搬送することができるので、インデクサロボットＩＲによる基板ＰＪ１−１，ＰＪ２−１の搬送を表すブロックが、時間軸上で重なり合うように配置されている。また、主搬送ロボットＣＲとインデクサロボットＩＲとの間では、２枚の未処理基板ＰＪ１−１，ＰＪ２−１の受け渡しを同時に実行でき、また２枚の処理済み基板ＰＪ１−１，ＰＪ２−１の受け渡しを同時に実行できるので、それらの２枚の基板ＰＪ１−１，ＰＪ２−１の受け渡しを表すブロックが時間軸上で重なりあって配置されている。
【０１６７】
その後、スケジューリング機能部２５は、処理ユニットＳＰＩＮ２が基板ＰＪ２−１の処理を終える時刻を、処理ユニットＳＰＩＮ２の最終使用時刻として求め、記憶部２３に書き込む（ステップＳ４８）。そして、基板ＰＪ２−１はプロセスジョブ番号ＰＪ２の最後の基板ではないので、ステップＳ４９での判断が否定され、スケジューリング機能部２５は、プロセスジョブ番号ＰＪ２の使用権を維持する。この状態が、図５２に示されている。
【０１６８】
プロセスジョブ番号ＰＪ２の１枚目の基板ＰＪ２−１のスケジューリングの後、スケジューリング機能部２５は、ステップＳ３７からの処理を行う。この場合、プロセスジョブ番号ＰＪ２，ＰＪ３の基板Ｗについてのスケジューリングは未了である（ステップＳ３７：ＹＥＳ）が、スケジューリングした基板Ｗの枚数がインデクサロボットＩＲの同時搬送数（この実施形態では２）に達したので（ステップＳ３８：ＹＥＳ）、スケジューリングが一旦終了する。
【０１６９】
スケジューリング済みの２枚の基板ＰＪ１−１，ＰＪ２−１が基板収容器Ｃから払い出されると、スケジューリング指示が発生する（ステップＳ３３：ＹＥＳ）。このとき、スケジューリング機能部２５は、スケジューリング済みの基板枚数を「０」にリセットする。スケジューリング済み基板枚数は、ステップＳ３８での判断で用いられる。
スケジューリング指示が発生すると、スケジューリング機能部２５は、記憶部２３に格納された全ての仮タイムテーブル、すなわち、プロセスジョブ番号ＰＪ１〜ＰＪ３に対応する全ての基板Ｗの仮タイムテーブルを読み出して、スケジューリングを開始する。この場合、既に処理開始している他の基板Ｗが存在する（ステップＳ３５：ＹＥＳ）ので、処理開始している基板ＰＪ１−１，ＰＪ２−１のみでスケジューリングが行われる。その結果は、図５２と同じである。
【０１７０】
さらに、未スケジューリングの基板があり（ステップＳ３７：ＹＥＳ）、一度に搬送可能な枚数分の未処理基板Ｗのスケジューリングが未了であるので（ステップＳ３８：ＮＯ）、プロセスジョブ番号ＰＪ２の２枚目の基板ＰＪ２−１の仮タイムテーブルが記憶部２３から取得される（ステップＳ３９）。さらに、スケジューリング機能部２５は、プロセスジョブ番号ＰＪ２のレシピで指定された並行処理ユニットＳＰＩＮ２〜ＳＰＩＮ３が使用可能かどうかを調べる（ステップＳ４０）。この場合、処理ユニットＳＰＩＮ２〜ＳＰＩＮ３に対してプロセスジョブ番号ＰＪ２の使用権が設定されているので、ステップＳ４０の判断が肯定される。そこで、スケジューリング機能部２５は、さらに、プロセスジョブ番号ＰＪ２で使用可能な処理ユニットＳＰＩＮ２〜ＳＰＩＮ３のうち、最終使用時刻の最も早い処理ユニットを特定する（ステップＳ４１）。基板ＰＪ２−１のための処理ブロックが処理ユニットＳＰＩＮ２に配置されているので（図５２参照）、処理ユニットＳＰＩＮ３が最終使用時刻の最も早い処理ユニットに該当する。
【０１７１】
プロセスジョブ番号ＰＪ２の後にプロセスジョブ番号ＰＪ３がスタートしているので、ステップＳ４２での判定が肯定される。そこで、スケジューリング機能部２５は、プロセスジョブ番号ＰＪ３が使用する並行処理ユニットＳＰＩＮ２〜ＳＰＩＮ４のうちで使用可能なもの（処理ユニットＳＰＩＮ４が該当）の最終使用時刻を記憶部２３から取得する。そして、スケジューリング機能部２５は、それらの最終使用時刻と、ステップＳ４１で特定された処理ユニットの最終使用時刻とを比較する（ステップＳ５１）。想定している状況では、処理ユニットＳＰＩＮ３，ＳＰＩＮ４の最終使用時刻はいずれも初期値「０」であるので、ステップＳ５１での判定は否定となる。そこで、スケジューリング機能部２５は、プロセスジョブ番号ＰＪ２の使用権を維持し（ステップＳ４３）、プロセスジョブ番号ＰＪ２の２枚目の基板ＰＪ２−２の仮タイムテーブルを構成するブロックを配置していく（ステップＳ４４〜Ｓ４７）。
【０１７２】
図５３は、プロセスジョブ番号ＰＪ２の２枚目の基板ＰＪ２−２に関するブロックを配置した例を示す。このとき、ステップＳ４１，Ｓ４２で特定された、最終使用時刻が最も早い処理ユニットである処理ユニットＳＰＩＮ３を通る経路を表す仮タイムテーブルが選択され、その仮タイムテーブルを構成するブロックが、時間軸上で前詰めに配置される。
その後、スケジューリング機能部２５は、処理ユニットＳＰＩＮ３が基板ＰＪ２−２の処理を終える時刻を、処理ユニットＳＰＩＮ３の最終使用時刻として求め、記憶部２３に書き込む（ステップＳ４８）。そして、基板ＰＪ２−２は、プロセスジョブ番号ＰＪ２の最後の基板ではないので、ステップＳ４９での判断が否定となり、スケジューリング機能部２５は、プロセスジョブ番号ＰＪ２の使用権を維持する。この状態が、図５３に示されている。
【０１７３】
プロセスジョブ番号ＰＪ２の２枚目の基板ＰＪ２−２のスケジューリングの後、スケジューリング機能部２５は、ステップＳ３７からの処理を行う。この場合、プロセスジョブ番号ＰＪ２，ＰＪ３の基板Ｗについてのスケジューリングは未了であり（ステップＳ３７：ＹＥＳ）、スケジューリングした基板Ｗの枚数がインデクサロボットＩＲの同時搬送数（この実施形態では２）に満たないので（ステップＳ３８：ＮＯ）、スケジューリング機能部２５は、スケジュール未了のプロセスジョブのなかでスケジューリング指示が最も早いプロセスジョブ番号の処理順序が最も早い基板、すなわちプロセスジョブ番号ＰＪ２の３枚目の基板ＰＪ２−３をスケジューリング対象基板とし、そのスケジューリング対象基板に関するデータを記憶部２３から取得する（ステップＳ３９）。プロセスジョブ番号ＰＪ２の使用権が維持されているので、ステップＳ４０の判断は肯定となり、スケジューリング機能部２５は、プロセスジョブ番号ＰＪ２のレシピで指定された並行処理ユニットＳＰＩＮ２，ＳＰＩＮ３のうちで、最終使用時刻が最も小さい処理ユニットを特定する（ステップＳ４１）。この場合、処理ユニットＳＰＩＮ２が該当する（図５３参照）。
【０１７４】
スケジューリング対象基板ＰＪ２−３よりも後でスケジューリング指示された別のプロセスジョブＰＪ３があるので、ステップＳ４２での判定が肯定される。そこで、スケジューリング機能部２５は、プロセスジョブ番号ＰＪ３が使用する並行処理ユニットＳＰＩＮ２〜ＳＰＩＮ４のうち使用可能な（使用権の設定されていない）処理ユニットである、処理ユニットＳＰＩＮ４の最終使用時刻を記憶部２３から取得する。そして、スケジューリング機能部２５は、その最終使用時刻と、ステップＳ４１で特定された処理ユニットの最終使用時刻とを比較する（ステップＳ５１）。この場合、処理ユニットＳＰＩＮ４の最終使用時刻は初期値「０」であるので、ステップＳ５１での判定は肯定となる。そこで、スケジューリング機能部２５は、最終使用時刻が最も早い処理ユニットＳＰＩＮ４を使用可能なプロセスジョブ番号ＰＪ３の未スケジューリングの基板のうち処理順序が最も早い基板である１枚目の基板ＰＪ３−１をスケジューリング対象基板として（ステップＳ５２）、ステップＳ４２からの処理を行う。
【０１７５】
この場合、プロセスジョブ番号ＰＪ３よりも後で開始したプロセスジョブはないので（ステップＳ４２：ＮＯ）、スケジューリング機能部２５は、プロセスジョブ番号ＰＪ３のレシピで指定された並行処理ユニットＳＰＩＮ２〜ＳＰＩＮ４のうち、使用権が未設定の処理ユニットＳＰＩＮ４に対して、プロセスジョブ番号ＰＪ３の使用権を設定する（ステップＳ４３）。すなわち、プロセスジョブ番号ＰＪ３のレシピで指定された並行処理ユニットの一部に他のプロセスジョブ番号の使用権が設定されているが、使用権未設定の一部の並行処理ユニットに関してのみ、プロセスジョブ番号ＰＪ３の使用権が設定される。そして、スケジューリング機能部２５は、プロセスジョブ番号ＰＪ３の１枚目の基板ＰＪ３−１の仮タイムテーブルを構成するブロックを配置していく（ステップＳ４４〜Ｓ４７）。
【０１７６】
図５４は、プロセスジョブ番号ＰＪ３の１枚目の基板ＰＪ３−１に関するブロックを配置した例を示す。このとき、最終使用時刻が最も早い処理ユニットである、処理ユニットＳＰＩＮ４を通る経路を表す仮タイムテーブルが選択され、その仮タイムテーブルを構成するブロックが、時間軸上で前詰めに配置される。
インデクサロボットＩＲのハンド８Ａおよび８Ｂは同時に２枚の未処理基板Ｗまたは処理済み基板Ｗを搬送することができるので、インデクサロボットＩＲによる基板ＰＪ２−２，ＰＪ３−１の搬送を表すブロックが、時間軸上で重なり合うように配置されている。また、主搬送ロボットＣＲとインデクサロボットＩＲとの間では、２枚の未処理基板ＰＪ２−２，ＰＪ３−１の受け渡しを同時に実行でき、また２枚の処理済み基板ＰＪ２−２，ＰＪ３−１の受け渡しを同時に実行できるので、それらの２枚の基板ＰＪ２−２，ＰＪ３−１の受け渡しを表すブロックが時間軸上で重なりあって配置されている。
【０１７７】
その後、スケジューリング機能部２５は、処理ユニットＳＰＩＮ４が基板ＰＪ３−１の処理を終える時刻を、処理ユニットＳＰＩＮ４の最終使用時刻として求め、記憶部２３に書き込む（ステップＳ４８）。そして、基板ＰＪ３−１はプロセスジョブ番号ＰＪ３の最後の基板であるので、ステップＳ４９での判断が肯定され、スケジューリング機能部２５は、プロセスジョブ番号ＰＪ３の使用権を削除する。この状態が、図５４に示されている。
【０１７８】
プロセスジョブ番号ＰＪ３の１枚目の基板ＰＪ３−１のスケジューリングの後、スケジューリング機能部２５は、ステップＳ３７からの処理を行う。この場合、プロセスジョブ番号ＰＪ２の基板Ｗについてのスケジューリングは未了である（ステップＳ３７：ＹＥＳ）が、スケジューリングした基板Ｗの枚数がインデクサロボットＩＲの同時搬送数（この実施形態では２）に達したので（ステップＳ３８：ＹＥＳ）、スケジューリングが一旦終了する。
【０１７９】
スケジューリング済みの２枚の基板ＰＪ２−２，ＰＪ３−１が基板収容器Ｃから払い出されると、スケジューリング指示が発生する（ステップＳ３３：ＹＥＳ）。このとき、スケジューリング機能部２５は、スケジューリング済みの基板枚数を「０」にリセットする。スケジューリング済み基板枚数は、ステップＳ３８での判断で用いられる。
スケジューリング指示が発生すると、スケジューリング機能部２５は、記憶部２３に格納された全ての仮タイムテーブル、すなわち、プロセスジョブ番号ＰＪ１〜ＰＪ３に対応する全ての基板Ｗの仮タイムテーブルを読み出して、スケジューリングを開始する。この場合、既に処理開始している他の基板Ｗが存在する（ステップＳ３５：ＹＥＳ）ので、処理開始している基板ＰＪ１−１，ＰＪ２−１，ＰＪ２−２，ＰＪ３−１のみでスケジューリングが行われる。その結果は、図５４と同じである。
【０１８０】
さらに、未スケジューリングの基板があり（ステップＳ３７：ＹＥＳ）、一度に搬送可能な枚数分の未処理基板Ｗのスケジューリングが未了であるので（ステップＳ３８：ＮＯ）、プロセスジョブ番号ＰＪ２の３枚目の基板ＰＪ２−３の仮タイムテーブルが記憶部２３から取得される（ステップＳ３９）。さらに、スケジューリング機能部２５は、プロセスジョブ番号ＰＪ２のレシピで指定された並行処理ユニットＳＰＩＮ２〜ＳＰＩＮ３が使用可能かどうかを調べる（ステップＳ４０）。この場合、処理ユニットＳＰＩＮ２〜ＳＰＩＮ３に対してプロセスジョブ番号ＰＪ２の使用権が設定されているので、ステップＳ４０の判断が肯定される。そこで、スケジューリング機能部２５は、さらに、プロセスジョブ番号ＰＪ２で使用可能な処理ユニットＳＰＩＮ２〜ＳＰＩＮ３のうち、最終使用時刻の最も早い処理ユニットを特定する（ステップＳ４１）。この場合、処理ユニットＳＰＩＮ２が最終使用時刻の最も早い処理ユニットに該当する（図５４参照）。
【０１８１】
後続のプロセスジョブ番号ＰＪ３のスケジューリングは終了しているので、ステップＳ４２での判定が否定される。そこで、スケジューリング機能部２５は、プロセスジョブ番号ＰＪ２の並行処理ユニットＳＰＩＮ２〜ＳＰＩＮ３に対する使用権を維持し（ステップＳ４３）、プロセスジョブ番号ＰＪ２の３枚目の基板ＰＪ２−３の仮タイムテーブルを構成するブロックを配置していく（ステップＳ４４〜Ｓ４７）。
【０１８２】
図５５は、プロセスジョブ番号ＰＪ２の３枚目の基板ＰＪ２−３に関するブロックを配置した例を示す。このとき、ステップＳ４１で特定された、最終使用時刻が最も早い処理ユニットである処理ユニットＳＰＩＮ２を通る経路を表す仮タイムテーブルが選択され、その仮タイムテーブルを構成するブロックが、時間軸上で前詰めに配置される。この場合、処理ユニットＳＰＩＮ２に配置される処理ブロックに合わせて、ブロック間の隙間が最小となるように、各ブロックが配置される。
【０１８３】
その後、スケジューリング機能部２５は、処理ユニットＳＰＩＮ２が基板ＰＪ２−３の処理を終える時刻を、処理ユニットＳＰＩＮ２の最終使用時刻として求め、記憶部２３に書き込む（ステップＳ４８）。そして、基板ＰＪ２−３は、プロセスジョブ番号ＰＪ２の最後の基板であるので、ステップＳ４９での判断が肯定となり、スケジューリング機能部２５は、プロセスジョブ番号ＰＪ２の使用権を削除する（ステップＳ５０）。この状態が、図５５に示されている。
【０１８４】
プロセスジョブ番号ＰＪ２の３枚目の基板ＰＪ２−３のスケジューリングの後、スケジューリング機能部２５は、ステップＳ３７からの処理を行う。この場合、開始指示されたプロセスジョブ番号ＰＪ１，ＰＪ２，ＰＪ３の全てのスケジューリングが完了しているので（ステップＳ３７：ＹＥＳ）、スケジューリングは終了となる（ステップＳ５３）。
図５５と図１６との比較から明らかなとおり、図５５に示したスケジューリングに従って処理を行うことによって、全体の処理時間が短縮される。とくに、インデクサロボットＩＲによる２枚の基板搬送を表す搬送ブロックを時間軸上で重ねて配置できることにより、処理時間を短縮できる。加えて、プロセスジョブ番号ＰＪ３のレシピで指定された並行処理ユニットＳＰＩＮ２〜ＳＰＩＮ４のうち、処理ユニットＳＰＩＮ２〜ＳＰＩＮ３に対する使用権がプロセスジョブ番号ＰＪ２に設定されている場合であっても、残りの処理ユニットＳＰＩＮ４の最終使用時刻が早い場合には、その処理ユニットＳＰＩＮ４についての使用権がプロセスジョブ番号ＰＪ３に対して設定される。これにより、基板ＰＪ３−１の処理が基板ＰＪ２−３に対する処理を追い越す計画が策定されており、それによって、全体の基板処理時間の著しい短縮が達成されている。
【０１８５】
図５６〜図６７は、プロセスジョブ番号ＰＪ１，ＰＪ２，ＰＪ３が付された３つの基板群（プロセスジョブ）に対するスケジューリングの他の例を示す。プロセスジョブ番号ＰＪ１の基板群は８枚の基板ＰＪ１−１〜８で構成され、処理内容データ中のレシピによって、２つの処理ユニットＳＰＩＮ１〜ＳＰＩＮ２が並行処理ユニットとして指定されているものとする。また、プロセスジョブ番号ＰＪ２の基板群は２枚の基板ＰＪ２−１〜２で構成され、処理内容データ中のレシピによって４つの処理ユニットＳＰＩＮ１〜ＳＰＩＮ４が並行処理ユニットとして指定されているものとする。さらに、プロセスジョブ番号ＰＪ３の基板群は２枚の基板ＰＪ３−１〜２で構成され、処理内容データ中のレシピによって、２つの処理ユニットＳＰＩＮ３〜ＳＰＩＮ４が並行処理ユニットとして指定されているものとする。そして、プロセスジョブ番号ＰＪ１，ＰＪ２，ＰＪ３の基板群に対して、この番号順に処理開始されて、スケジューリング指示が発生する場合を想定する。
【０１８６】
基板処理開始指示が与えられると（図４５のステップＳ３１）、スケジューリング機能部２５は、仮タイムテーブルを作成する（ステップＳ３２）。すなわち、スケジューリング機能部２５は、プロセスジョブ番号ＰＪ１の８枚の基板ＰＪ１−１〜８に対して、それぞれ、処理ユニットＳＰＩＮ１またはＳＰＩＮ２を通る経路を表す仮タイムテーブルを作成する。また、スケジューリング機能部２５は、プロセスジョブ番号ＰＪ２の２枚の基板ＰＪ２−１〜２に対して、それぞれ、処理ユニットＳＰＩＮ１〜ＳＰＩＮ４のいずれか一つを通る経路を表す仮タイムテーブルを作成する。さらに、スケジューリング機能部２５は、プロセスジョブ番号ＰＪ３の２枚の基板ＰＪ３−１〜２に対して、それぞれ、処理ユニットＳＰＩＮ３またはＳＰＩＮ４を通る経路を表す仮タイムテーブルを作成する。作成された仮タイムテーブルは、記憶部２３に格納される。
【０１８７】
プロセスジョブ番号ＰＪ１，ＰＪ２，ＰＪ３に対する処理開始が順に指示され、それに応答してスケジューリング指示が発生すると（図４５のステップＳ３３：ＹＥＳ）、スケジューリング機能部２５は、記憶部２３に格納された全ての仮タイムテーブル、すなわち、プロセスジョブ番号ＰＪ１〜ＰＪ３に対応する全ての基板Ｗの仮タイムテーブルを読み出して、全体スケジューリングを開始する。既に処理開始している他の基板Ｗは存在せず（ステップＳ３５：ＮＯ）、未スケジューリングの基板Ｗがあり（ステップＳ３７：ＹＥＳ）、一度に搬送可能な枚数分の未処理基板Ｗのスケジューリングが未了であるので（ステップＳ３８：ＮＯ）、プロセスジョブ番号ＰＪ１の１枚目の基板ＰＪ１−１の仮タイムテーブルが記憶部２３から取得される（ステップＳ３９）。
【０１８８】
さらに、スケジューリング機能部２５は、プロセスジョブ番号ＰＪ１のレシピで指定された並行処理ユニットＳＰＩＮ１〜ＳＰＩＮ２のなかに、使用可能なもの、すなわち他のプロセスジョブ番号の使用権が未設定のものがあるかどうかを調べる（ステップＳ４０）。最初の基板Ｗのスケジューリングを行うときには、この判断が肯定されるので、スケジューリング機能部２５は、さらに、プロセスジョブ番号ＰＪ１で使用可能な処理ユニットＳＰＩＮ１〜ＳＰＩＮ２のうち、最終使用時刻の最も早い処理ユニットを特定する（ステップＳ４１）。はじめは、いずれの処理ユニットの最終使用時刻も「０」であるので、番号の最も若い処理ユニットＳＰＩＮ１が該当することになる。
【０１８９】
プロセスジョブ番号ＰＪ１の後にプロセスジョブ番号ＰＪ２，ＰＪ３がスタートしているので、ステップＳ４２での判定が肯定される。そこで、スケジューリング機能部２５は、プロセスジョブ番号ＰＪ２が使用する並行処理ユニットＳＰＩＮ１〜ＳＰＩＮ４の最終使用時刻を記憶部２３から取得し、さらに、プロセスジョブ番号ＰＪ３が使用する並行処理ユニットＳＰＩＮ３〜ＳＰＩＮ４の最終使用時刻を記憶部２３から取得する。そして、スケジューリング機能部２５は、それらの最終使用時刻と、ステップＳ４１で特定された処理ユニットの最終使用時刻とを比較する（ステップＳ５１）。スケジューリング当初の各処理ユニットの最終使用時刻は初期値「０」であるので、ステップＳ５１での判定は否定となる。そこで、スケジューリング機能部２５は、プロセスジョブ番号ＰＪ１のレシピにおいて並行処理ユニットとして指定された処理ユニットＳＰＩＮ１〜ＳＰＩＮ２に対して、プロセスジョブ番号ＰＪ１の使用権を設定する（ステップＳ４３）。その後、スケジューリング機能部２５は、プロセスジョブ番号ＰＪ１の１枚目の基板ＰＪ１−１の仮タイムテーブルを構成するブロックを配置していく（ステップＳ４４〜Ｓ４７）。
【０１９０】
図５６は、プロセスジョブ番号ＰＪ１の１枚目の基板ＰＪ１−１に関するブロックを配置した例を示す。このとき、ステップＳ４１，Ｓ４２で特定された、最終使用時刻が最も早い処理ユニットである処理ユニットＳＰＩＮ１を通る経路を表す仮タイムテーブルが選択され、その仮タイムテーブルを構成するブロックが、時間軸上で前詰めに配置される。
その後、スケジューリング機能部２５は、処理ユニットＳＰＩＮ１が基板ＰＪ１−１の処理を終える時刻を、処理ユニットＳＰＩＮ１の最終使用時刻として求め、記憶部２３に書き込む（ステップＳ４８）。そして、基板ＰＪ１−１はプロセスジョブ番号ＰＪ１の最後の基板ではないので、ステップＳ４９での判断が否定となり、スケジューリング機能部２５は、プロセスジョブ番号ＰＪ１の使用権を維持する。この状態が、図５６に示されている。
【０１９１】
プロセスジョブ番号ＰＪ１の１枚目の基板ＰＪ１−１のスケジューリングの後、スケジューリング機能部２５は、ステップＳ３７からの処理を行う。この場合、プロセスジョブ番号ＰＪ１，ＰＪ２，ＰＪ３の基板Ｗについてのスケジューリングは未了であり（ステップＳ３７：ＹＥＳ）、スケジューリングした基板Ｗの枚数がインデクサロボットＩＲの同時搬送数（この実施形態では２）に満たないので（ステップＳ３８：ＮＯ）、スケジューリング機能部２５は、スケジュール未了のプロセスジョブのなかでスケジューリング指示が最も早いプロセスジョブ番号の処理順序が最も早い基板、すなわちプロセスジョブ番号ＰＪ１の２枚目の基板ＰＪ１−２をスケジューリング対象基板とし、そのスケジューリング対象基板に関するデータを記憶部２３から取得する（ステップＳ３９）。プロセスジョブ番号ＰＪ１の使用権が維持されているので、ステップＳ４０の判断は肯定となり、スケジューリング機能部２５は、プロセスジョブ番号ＰＪ１のレシピで指定された並行処理ユニットＳＰＩＮ１，ＳＰＩＮ２のうちで、最終使用時刻が最も小さい処理ユニットを特定する（ステップＳ４１）。処理ユニットＳＰＩＮ１には基板ＰＪ１−１のための処理ブロックが配置されているので、処理ユニットＳＰＩＮ２が該当することになる。
【０１９２】
スケジューリング対象基板ＰＪ１−２よりも後でスケジューリング指示された別のプロセスジョブＰＪ２，ＰＪ３があり、それらのレシピで指定された並行処理ユニットのうち、処理ユニットＳＰＩＮ３，ＳＰＩＮ４についてはいずれの使用権も設定されていないので、ステップＳ４２での判定が肯定される。そこで、スケジューリング機能部２５は、処理ユニットＳＰＩＮ３，ＳＰＩＮ４の最終使用時刻を記憶部２３から取得する。そして、スケジューリング機能部２５は、それらの最終使用時刻と、ステップＳ４１で特定された処理ユニットＳＰＩＮ２の最終使用時刻とを比較する（ステップＳ５１）。この場合、処理ユニットＳＰＩＮ２の最終使用時刻は初期値「０」であり、処理ユニットＳＰＩＮ３〜ＳＰＩＮ４の最終使用時刻も初期値「０」であるので、ステップＳ５１での判定は否定となる。そこで、スケジューリング機能部２５は、プロセスジョブ番号ＰＪ１の使用権を維持する（ステップＳ４３）。その後、スケジューリング機能部２５は、プロセスジョブ番号ＰＪ１の２枚目の基板ＰＪ１−２の仮タイムテーブルを構成するブロックを配置していく（ステップＳ４４〜Ｓ４７）。
【０１９３】
図５７は、プロセスジョブ番号ＰＪ１の２枚目の基板ＰＪ１−２に関するブロックを配置した例を示す。このとき、ステップＳ４１，Ｓ４２，Ｓ５２で特定された、最終使用時刻が最も早い処理ユニットである処理ユニットＳＰＩＮ２を通る経路を表す仮タイムテーブルが選択され、その仮タイムテーブルを構成するブロックが、時間軸上で前詰めに配置される。インデクサロボットＩＲのハンド８Ａおよび８Ｂは同時に２枚の未処理基板Ｗまたは処理済み基板Ｗを搬送することができるので、インデクサロボットＩＲによる基板ＰＪ１−１，ＰＪ１−２の搬送を表すブロックが、時間軸上で重なり合うように配置されている。また、詳細な図示は省略するが、主搬送ロボットＣＲとインデクサロボットＩＲとの間では、２枚の未処理基板ＰＪ１−１，ＰＪ１−２の受け渡しを同時に実行でき、また２枚の処理済み基板ＰＪ１−１，ＰＪ１−２の受け渡しを同時に実行できるので、それらの２枚の基板ＰＪ１−１，ＰＪ１−２の受け渡しを表すブロックが時間軸上で重なりあって配置されている。
【０１９４】
その後、スケジューリング機能部２５は、処理ユニットＳＰＩＮ２が基板ＰＪ１−２の処理を終える時刻を、処理ユニットＳＰＩＮ２の最終使用時刻として求め、記憶部２３に書き込む（ステップＳ４８）。そして、基板ＰＪ１−２はプロセスジョブ番号ＰＪ１の最後の基板ではないので、ステップＳ４９での判断が否定され、スケジューリング機能部２５は、プロセスジョブ番号ＰＪ１の使用権を維持する。この状態が、図５７に示されている。
【０１９５】
プロセスジョブ番号ＰＪ１の２枚目の基板ＰＪ１−２のスケジューリングの後、スケジューリング機能部２５は、ステップＳ３７からの処理を行う。この場合、プロセスジョブ番号ＰＪ１，ＰＪ２，ＰＪ３の基板Ｗについてのスケジューリングは未了である（ステップＳ３７：ＹＥＳ）が、スケジューリングした基板Ｗの枚数がインデクサロボットＩＲの同時搬送数（この実施形態では２）に達したので（ステップＳ３８：ＹＥＳ）、スケジューリングが一旦終了する（ステップＳ５３）。
【０１９６】
スケジューリング済みの２枚の基板ＰＪ１−１，ＰＪ１−２が基板収容器Ｃから払い出されると、スケジューリング指示が発生する（ステップＳ３３：ＹＥＳ）。このとき、スケジューリング機能部２５は、スケジューリング済みの基板枚数を「０」にリセットする。スケジューリング済み基板枚数は、ステップＳ３８での判断で用いられる。
スケジューリング指示が発生すると、スケジューリング機能部２５は、記憶部２３に格納された全ての仮タイムテーブル、すなわち、プロセスジョブ番号ＰＪ１〜ＰＪ３に対応する全ての基板Ｗの仮タイムテーブルを読み出して、スケジューリングを開始する。この場合、既に処理開始している他の基板ＰＪ１−１，ＰＪ１−２が存在する（ステップＳ３５：ＹＥＳ）ので、処理開始している基板ＰＪ１−１，ＰＪ１−２のみでスケジューリングが行われる。その結果は、図５７と同じである。さらに、未スケジューリングの基板があり（ステップＳ３７：ＹＥＳ）、一度に搬送可能な枚数分の未処理基板Ｗのスケジューリングが未了であるので（ステップＳ３８：ＮＯ）、プロセスジョブ番号ＰＪ１の３枚目の基板ＰＪ１−３の仮タイムテーブルが記憶部２３から取得される（ステップＳ３９）。さらに、スケジューリング機能部２５は、プロセスジョブ番号ＰＪ１のレシピで指定された並行処理ユニットＳＰＩＮ１〜ＳＰＩＮ２が使用可能かどうかを調べる（ステップＳ４０）。この場合、処理ユニットＳＰＩＮ１〜ＳＰＩＮ２に対してプロセスジョブ番号ＰＪ１の使用権が設定されているので、ステップＳ４０の判断が肯定される。そこで、スケジューリング機能部２５は、さらに、プロセスジョブ番号ＰＪ１で使用可能な処理ユニットＳＰＩＮ１〜ＳＰＩＮ２のうち、最終使用時刻の最も早い処理ユニットを特定する（ステップＳ４１）。図５７から、処理ユニットＳＰＩＮ１が該当することが分かる。
【０１９７】
プロセスジョブ番号ＰＪ１の後にプロセスジョブ番号ＰＪ２，ＰＪ３がスタートしており、それらのレシピで指定された並行処理ユニットのうち、処理ユニットＳＰＩＮ３，ＳＰＩＮ４についてはいずれの使用権も設定されていないので、ステップＳ４２での判定が肯定される。そこで、スケジューリング機能部２５は、プロセスジョブ番号ＰＪ２が使用する並行処理ユニットＳＰＩＮ１〜ＳＰＩＮ４およびプロセスジョブ番号ＰＪ３が使用する並行処理ユニットＳＰＩＮ３〜ＳＰＩＮ４のうちで使用可能なもの（使用権未設定の処理ユニットＳＰＩＮ３，ＳＰＩＮ４が該当）の最終使用時刻を記憶部２３から取得する。そして、スケジューリング機能部２５は、それらの最終使用時刻と、ステップＳ４１で特定された処理ユニットの最終使用時刻とを比較する（ステップＳ５１）。想定している状況では、処理ユニットＳＰＩＮ３，ＳＰＩＮ４の最終使用時刻はいずれも初期値「０」であるので、ステップＳ５１での判定は肯定となる。
【０１９８】
そこで、スケジューリング機能部２５は、最終使用時刻が最も早い処理ユニットＳＰＩＮ３，ＳＰＩＮ４のうち番号の若い処理ユニットＳＰＩＮ３を使用可能なプロセスジョブ番号ＰＪ２の未スケジューリングの基板のうち処理順序が最も早い基板である１枚目の基板ＰＪ２−１をスケジューリング対象基板として（ステップＳ５２）、ステップＳ４２からの処理を行う。この場合、プロセスジョブ番号ＰＪ２よりも後で開始したプロセスジョブＰＪ３が存在し、そのレシピで指定された処理ユニットＳＰＩＮ３，ＳＰＩＮ４はいずれも使用権が未設定である（ステップＳ４２：ＹＥＳ）。そこで、そのプロセスジョブ番号ＰＪ３で使用可能な処理ユニットＳＰＩＮ３，ＳＰＩＮ４のうちプロセスジョブ番号ＰＪ２の処理のために使用しようとしている処理ユニットＳＰＩＮ３以外の処理ユニットＳＰＩＮ４の最終使用時間が調べられる（ステップＳ５１）。この場合、処理ユニットＳＰＩＮ３，ＳＰＩＮ４の最終使用時刻は、いずれも初期値「０」であるので、ステップＳ５１での判断は否定となる。
【０１９９】
そこで、スケジューリング機能部２５は、プロセスジョブ番号ＰＪ２のレシピで指定された並行処理ユニットＳＰＩＮ１〜ＳＰＩＮ４のうち、使用権が未設定の処理ユニットＳＰＩＮ３，ＳＰＩＮ４に対して、プロセスジョブ番号ＰＪ２の使用権を設定する（ステップＳ４３）。そして、スケジューリング機能部２５は、プロセスジョブ番号ＰＪ２の１枚目の基板ＰＪ２−１の仮タイムテーブルを構成するブロックを配置していく（ステップＳ４４〜Ｓ４７）。
【０２００】
図５８は、プロセスジョブ番号ＰＪ２の１枚目の基板ＰＪ２−１に関するブロックを配置した例を示す。このとき、最終使用時刻が最も早い処理ユニットである処理ユニットＳＰＩＮ３を通る経路を表す仮タイムテーブルが選択され、その仮タイムテーブルを構成するブロックが、時間軸上で前詰めに配置される。
その後、スケジューリング機能部２５は、処理ユニットＳＰＩＮ３が基板ＰＪ２−１の処理を終える時刻を、処理ユニットＳＰＩＮ３の最終使用時刻として求め、記憶部２３に書き込む（ステップＳ４８）。そして、基板ＰＪ２−１は、プロセスジョブ番号ＰＪ２の最後の基板ではないので、ステップＳ４９での判断が否定となり、スケジューリング機能部２５は、プロセスジョブ番号ＰＪ２の使用権を維持する。この状態が、図５８に示されている。
【０２０１】
プロセスジョブ番号ＰＪ２の１枚目の基板ＰＪ２−１のスケジューリングの後、スケジューリング機能部２５は、ステップＳ３７からの処理を行う。この場合、プロセスジョブ番号ＰＪ１，ＰＪ２，ＰＪ３の基板Ｗについてのスケジューリングは未了であり（ステップＳ３７：ＹＥＳ）、スケジューリングした基板Ｗの枚数がインデクサロボットＩＲの同時搬送数（この実施形態では２）に満たないので（ステップＳ３８：ＮＯ）、スケジューリング機能部２５は、スケジュール未了のプロセスジョブのなかでスケジューリング指示が最も早いプロセスジョブ番号の処理順序が最も早い基板、すなわちプロセスジョブ番号ＰＪ１の３枚目の基板ＰＪ１−３をスケジューリング対象基板とし、そのスケジューリング対象基板に関するデータを記憶部２３から取得する（ステップＳ３９）。
【０２０２】
プロセスジョブ番号ＰＪ１の使用権が維持されているので、ステップＳ４０の判断は肯定となり、スケジューリング機能部２５は、プロセスジョブ番号ＰＪ１のレシピで指定された並行処理ユニットＳＰＩＮ１，ＳＰＩＮ２のうちで、最終使用時刻が最も小さい処理ユニットを特定する（ステップＳ４１）。この場合、処理ユニットＳＰＩＮ１が該当する（図５８参照）。スケジューリング対象基板ＰＪ１−３よりも後でスケジューリング指示された別のプロセスジョブ番号ＰＪ２，ＰＪ３があり、処理ユニットＳＰＩＮ３，ＳＰＩＮ４にプロセスジョブ番号ＰＪ２の使用権が設定させているので、ステップＳ４２での判定が肯定される。すなわち、プロセスジョブ番号ＰＪ２が使用する並行処理ユニットＳＰＩＮ１〜ＳＰＩＮ４のうち当該プロセスジョブ番号ＰＪ２が使用可能な（他のプロセスジョブ番号に対して使用権の設定がされていないか、または当該プロセスジョブ番号ＰＪ２に対して使用権が設定されている）処理ユニットは、処理ユニットＳＰＩＮ３，ＳＰＩＮ４である。また、プロセスジョブ番号ＰＪ３が使用する並行処理ユニットＳＰＩＮ３〜ＳＰＩＮ４のうち使用可能な（他のプロセスジョブ番号に対して使用権の設定がされていないか、または当該プロセスジョブ番号ＰＪ３に対して使用権が設定されている）処理ユニットは存在しない。そこで、スケジューリング機能部２５は、処理ユニットＳＰＩＮ３，ＳＰＩＮ４の最終使用時刻を記憶部２３から取得する。そして、スケジューリング機能部２５は、それらの最終使用時刻と、ステップＳ４１で特定された処理ユニットＳＰＩＮ１の最終使用時刻とを比較する（ステップＳ５１）。この場合、処理ユニットＳＰＩＮ４の最終使用時刻は初期値「０」であるので、ステップＳ５１での判定は肯定となる。
【０２０３】
そこで、スケジューリング機能部２５は、最終使用時刻が最も早い処理ユニットＳＰＩＮ４を使用可能なプロセスジョブ番号ＰＪ２の未スケジューリングの基板のうち処理順序が最も早い基板である２枚目の基板ＰＪ２−２をスケジューリング対象基板として（ステップＳ５２）、ステップＳ４２からの処理を行う。この場合、プロセスジョブ番号ＰＪ２よりも後で開始したプロセスジョブＰＪ３が存在するが、そのプロセスジョブ番号ＰＪ３で使用可能な処理ユニットの最終使用時間が調べられるが、プロセスジョブ番号ＰＪ３で使用可能な処理ユニットが存在しないので、ステップＳ４２での判断は否定となる。
【０２０４】
そこで、スケジューリング機能部２５は、プロセスジョブ番号ＰＪ２の処理ユニットＳＰＩＮ３，ＳＰＩＮ４に対する使用権を維持する（ステップＳ４３）。そして、スケジューリング機能部２５は、プロセスジョブ番号ＰＪ２の２枚目の基板ＰＪ２−２の仮タイムテーブルを構成するブロックを配置していく（ステップＳ４４〜Ｓ４７）。
図５９は、プロセスジョブ番号ＰＪ２の２枚目の基板ＰＪ２−２に関するブロックを配置した例を示す。このとき、最終使用時刻が最も早い処理ユニットである処理ユニットＳＰＩＮ４を通る経路を表す仮タイムテーブルが選択され、その仮タイムテーブルを構成するブロックが、時間軸上で前詰めに配置される。インデクサロボットＩＲのハンド８Ａおよび８Ｂは同時に２枚の未処理基板Ｗまたは処理済み基板Ｗを搬送することができるので、インデクサロボットＩＲによる基板ＰＪ２−１，ＰＪ２−２の搬送を表すブロックが、時間軸上で重なり合うように配置されている。また、詳細な図示は省略するが、主搬送ロボットＣＲとインデクサロボットＩＲとの間では、２枚の未処理基板ＰＪ２−１，ＰＪ２−２の受け渡しを同時に実行でき、また２枚の処理済み基板ＰＪ２−１，ＰＪ２−２の受け渡しを同時に実行できるので、それらの２枚の基板ＰＪ２−１，ＰＪ２−２の受け渡しを表すブロックが時間軸上で重なりあって配置されている。
【０２０５】
その後、スケジューリング機能部２５は、処理ユニットＳＰＩＮ４が基板ＰＪ２−２の処理を終える時刻を、処理ユニットＳＰＩＮ４の最終使用時刻として求め、記憶部２３に書き込む（ステップＳ４８）。そして、基板ＰＪ２−２はプロセスジョブ番号ＰＪ２の最後の基板であるので、ステップＳ４９での判断が肯定され、スケジューリング機能部２５は、プロセスジョブ番号ＰＪ２の使用権を削除する（ステップＳ５０）。この状態が、図５９に示されている。
【０２０６】
プロセスジョブ番号ＰＪ２の２枚目の基板ＰＪ２−２のスケジューリングの後、スケジューリング機能部２５は、ステップＳ３７からの処理を行う。この場合、プロセスジョブ番号ＰＪ１，ＰＪ３の基板Ｗについてのスケジューリングは未了である（ステップＳ３７：ＹＥＳ）が、スケジューリングした基板Ｗの枚数がインデクサロボットＩＲの同時搬送数（この実施形態では２）に達したので（ステップＳ３８：ＹＥＳ）、スケジューリングが一旦終了する（ステップＳ５３）。
【０２０７】
スケジューリング済みの２枚の基板ＰＪ２−１，ＰＪ２−２が基板収容器Ｃから払い出されると、スケジューリング指示が発生する（ステップＳ３３：ＹＥＳ）。このとき、スケジューリング機能部２５は、スケジューリング済みの基板枚数を「０」にリセットする。スケジューリング済み基板枚数は、ステップＳ３８での判断で用いられる。
スケジューリング指示が発生すると、スケジューリング機能部２５は、記憶部２３に格納された全ての仮タイムテーブル、すなわち、プロセスジョブ番号ＰＪ１〜ＰＪ３に対応する全ての基板Ｗの仮タイムテーブルを読み出して、スケジューリングを開始する。この場合、既に処理開始している他の基板ＰＪ１−１，ＰＪ１−２，ＰＪ２−１，ＰＪ２−２が存在する（ステップＳ３５：ＹＥＳ）ので、処理開始している基板ＰＪ１−１，ＰＪ１−２，ＰＪ２−１，ＰＪ２−２のみでスケジューリングが行われる。その結果は、図５９と同じである。さらに、未スケジューリングの基板があり（ステップＳ３７：ＹＥＳ）、一度に搬送可能な枚数分の未処理基板Ｗのスケジューリングが未了であるので（ステップＳ３８：ＮＯ）、プロセスジョブ番号ＰＪ１の３枚目の基板ＰＪ１−３の仮タイムテーブルが記憶部２３から取得される（ステップＳ３９）。さらに、スケジューリング機能部２５は、プロセスジョブ番号ＰＪ１のレシピで指定された並行処理ユニットＳＰＩＮ１〜ＳＰＩＮ２が使用可能かどうかを調べる（ステップＳ４０）。この場合、処理ユニットＳＰＩＮ１〜ＳＰＩＮ２に対してプロセスジョブ番号ＰＪ１の使用権が設定されているので、ステップＳ４０の判断が肯定される。そこで、スケジューリング機能部２５は、さらに、プロセスジョブ番号ＰＪ１で使用可能な処理ユニットＳＰＩＮ１〜ＳＰＩＮ２のうち、最終使用時刻の最も早い処理ユニットを特定する（ステップＳ４１）。図５９から、処理ユニットＳＰＩＮ１が該当することが分かる。
【０２０８】
プロセスジョブ番号ＰＪ１の後にプロセスジョブ番号ＰＪ２，ＰＪ３がスタートしていて、プロセスジョブ番号ＰＪ３についてのスケジューリングが未了であり、処理ユニットＳＰＩＮ３，ＳＰＩＮ４に使用権が設定されていないので、ステップＳ４２での判定が肯定される。そこで、スケジューリング機能部２５は、プロセスジョブ番号ＰＪ３が使用する並行処理ユニットＳＰＩＮ３〜ＳＰＩＮ４のうちで使用可能なもの（使用権未設定の処理ユニットＳＰＩＮ３，ＳＰＩＮ４が該当）の最終使用時刻を記憶部２３から取得する。そして、スケジューリング機能部２５は、それらの最終使用時刻と、ステップＳ４１で特定された処理ユニットの最終使用時刻とを比較する（ステップＳ５１）。想定している状況では、処理ユニットＳＰＩＮ３，ＳＰＩＮ４の最終使用時刻よりも処理ユニットＳＰＩＮ１の最終使用時刻の方が早いので（図５９参照）、ステップＳ５１での判定は否定となる。そこで、スケジューリング機能部２５は、プロセスジョブ番号ＰＪ１の使用権を維持し（ステップＳ４３）、プロセスジョブ番号ＰＪ１の３枚目の基板ＰＪ１−３の仮タイムテーブルを構成するブロックを配置していく（ステップＳ４４〜Ｓ４７）。
【０２０９】
図６０は、プロセスジョブ番号ＰＪ１の３枚目の基板ＰＪ１−３に関するブロックを配置した例を示す。このとき、最終使用時刻が最も早い処理ユニットである処理ユニットＳＰＩＮ１を通る経路を表す仮タイムテーブルが選択され、その仮タイムテーブルを構成するブロックが、時間軸上で前詰めに配置される。より具体的には、基板ＰＪ１−３の処理ブロックが、処理ユニットＳＰＩＮ１に対応して、基板ＰＪ１−１の処理ブロックの後に配置され、その処理ブロックに合わせて、ブロック間の間隔ができるだけ小さくなるように、各ブロックが配置される。
【０２１０】
その後、スケジューリング機能部２５は、処理ユニットＳＰＩＮ１が基板ＰＪ１−３の処理を終える時刻を、処理ユニットＳＰＩＮ１の最終使用時刻として求め、記憶部２３に書き込む（ステップＳ４８）。そして、基板ＰＪ１−３は、プロセスジョブ番号ＰＪ１の最後の基板ではないので、ステップＳ４９での判断が否定となり、スケジューリング機能部２５は、プロセスジョブ番号ＰＪ１の使用権を維持する。この状態が、図６０に示されている。
【０２１１】
プロセスジョブ番号ＰＪ１の３枚目の基板ＰＪ１−３のスケジューリングの後、スケジューリング機能部２５は、ステップＳ３７からの処理を行う。この場合、プロセスジョブ番号ＰＪ１，ＰＪ３の基板Ｗについてのスケジューリングは未了であり（ステップＳ３７：ＹＥＳ）、スケジューリングした基板Ｗの枚数がインデクサロボットＩＲの同時搬送数（この実施形態では２）に満たないので（ステップＳ３８：ＮＯ）、スケジューリング機能部２５は、スケジュール未了のプロセスジョブのなかでスケジューリング指示が最も早いプロセスジョブ番号の処理順序が最も早い基板、すなわちプロセスジョブ番号ＰＪ１の４枚目の基板ＰＪ１−４をスケジューリング対象基板とし、そのスケジューリング対象基板に関するデータを記憶部２３から取得する（ステップＳ３９）。
【０２１２】
プロセスジョブ番号ＰＪ１の使用権が維持されているので、ステップＳ４０の判断は肯定となり、スケジューリング機能部２５は、プロセスジョブ番号ＰＪ１のレシピで指定された並行処理ユニットＳＰＩＮ１，ＳＰＩＮ２のうちで、最終使用時刻が最も小さい処理ユニットを特定する（ステップＳ４１）。この場合、処理ユニットＳＰＩＮ２が該当する（図６０参照）。スケジューリング対象基板ＰＪ１−３よりも後でスケジューリング指示された別のプロセスジョブ番号ＰＪ２，ＰＪ３のうちプロセスジョブ番号ＰＪ３が未スケジューリングであり、処理ユニットＳＰＩＮ３，ＳＰＩＮ４に対する使用権が未設定であるので、ステップＳ４２での判定が肯定される。そこで、スケジューリング機能部２５は、処理ユニットＳＰＩＮ３，ＳＰＩＮ４の最終使用時刻を記憶部２３から取得する。そして、スケジューリング機能部２５は、その最終使用時刻と、ステップＳ４１で特定された処理ユニットＳＰＩＮ２の最終使用時刻とを比較する（ステップＳ５１）。この場合、処理ユニットＳＰＩＮ２の最終使用時刻が最も早い（図６０参照）ので、ステップＳ５１での判定は否定となる。
【０２１３】
そこで、スケジューリング機能部２５は、プロセスジョブ番号ＰＪ１の処理ユニットＳＰＩＮ１，ＳＰＩＮ２に対する使用権を維持する。そして、スケジューリング機能部２５は、プロセスジョブ番号ＰＪ１の４枚目の基板ＰＪ１−４の仮タイムテーブルを構成するブロックを配置していく（ステップＳ４４〜Ｓ４７）。
図６１は、プロセスジョブ番号ＰＪ１の４枚目の基板ＰＪ１−４に関するブロックを配置した例を示す。このとき、最終使用時刻が最も早い処理ユニットである処理ユニットＳＰＩＮ２を通る経路を表す仮タイムテーブルが選択され、その仮タイムテーブルを構成するブロックが、時間軸上で前詰めに配置される。インデクサロボットＩＲのハンド８Ａおよび８Ｂは同時に２枚の未処理基板Ｗまたは処理済み基板Ｗを搬送することができるので、インデクサロボットＩＲによる基板ＰＪ１−３，ＰＪ１−４の搬送を表すブロックが、時間軸上で重なり合うように配置されている。また、詳細な図示は省略するが、主搬送ロボットＣＲとインデクサロボットＩＲとの間では、２枚の未処理基板ＰＪ１−３，ＰＪ１−４の受け渡しを同時に実行でき、また２枚の処理済み基板ＰＪ１−３，ＰＪ１−４の受け渡しを同時に実行できるので、それらの２枚の基板ＰＪ１−３，ＰＪ１−４の受け渡しを表すブロックが時間軸上で重なりあって配置されている。
【０２１４】
その後、スケジューリング機能部２５は、処理ユニットＳＰＩＮ２が基板ＰＪ１−４の処理を終える時刻を、処理ユニットＳＰＩＮ２の最終使用時刻として求め、記憶部２３に書き込む（ステップＳ４８）。そして、基板ＰＪ１−４はプロセスジョブ番号ＰＪ１の最後の基板ではないので、ステップＳ４９での判断が否定され、スケジューリング機能部２５は、プロセスジョブ番号ＰＪ１の使用権を維持する。この状態が、図６１に示されている。
【０２１５】
プロセスジョブ番号ＰＪ１の４枚目の基板ＰＪ１−４のスケジューリングの後、スケジューリング機能部２５は、ステップＳ３７からの処理を行う。この場合、プロセスジョブ番号ＰＪ１，ＰＪ３の基板Ｗについてのスケジューリングは未了である（ステップＳ３７：ＹＥＳ）が、スケジューリングした基板Ｗの枚数がインデクサロボットＩＲの同時搬送数（この実施形態では２）に達したので（ステップＳ３８：ＹＥＳ）、スケジューリングが一旦終了する（ステップＳ５３）。
【０２１６】
スケジューリング済みの２枚の基板ＰＪ１−３，ＰＪ１−４が基板収容器Ｃから払い出されると、スケジューリング指示が発生する（ステップＳ３３：ＹＥＳ）。このとき、スケジューリング機能部２５は、スケジューリング済みの基板枚数を「０」にリセットする。スケジューリング済み基板枚数は、ステップＳ３８での判断で用いられる。
スケジューリング指示が発生すると、スケジューリング機能部２５は、記憶部２３に格納された全ての仮タイムテーブル、すなわち、プロセスジョブ番号ＰＪ１〜ＰＪ３に対応する全ての基板Ｗの仮タイムテーブルを読み出して、スケジューリングを開始する。この場合、既に処理開始している他の基板ＰＪ１−１〜４，ＰＪ２−１〜２が存在する（ステップＳ３５：ＹＥＳ）ので、処理開始している基板ＰＪ１−１〜４，ＰＪ２−１〜２のみでスケジューリングが行われる。その結果は、図６１と同じである。さらに、未スケジューリングの基板があり（ステップＳ３７：ＹＥＳ）、一度に搬送可能な枚数分の未処理基板Ｗのスケジューリングが未了であるので（ステップＳ３８：ＮＯ）、プロセスジョブ番号ＰＪ１の５枚目の基板ＰＪ１−５の仮タイムテーブルが記憶部２３から取得される（ステップＳ３９）。さらに、スケジューリング機能部２５は、プロセスジョブ番号ＰＪ１のレシピで指定された並行処理ユニットＳＰＩＮ１〜ＳＰＩＮ２が使用可能かどうかを調べる（ステップＳ４０）。この場合、処理ユニットＳＰＩＮ１〜ＳＰＩＮ２に対してプロセスジョブ番号ＰＪ１の使用権が設定されているので、ステップＳ４０の判断が肯定される。そこで、スケジューリング機能部２５は、さらに、プロセスジョブ番号ＰＪ１で使用可能な処理ユニットＳＰＩＮ１〜ＳＰＩＮ２のうち、最終使用時刻の最も早い処理ユニットを特定する（ステップＳ４１）。図６１から、処理ユニットＳＰＩＮ１が該当することが分かる。
【０２１７】
プロセスジョブ番号ＰＪ１の後にスタートしたプロセスジョブ番号ＰＪ３のスケジューリングが未了であり、プロセスジョブ番号ＰＪ３が使用する並行処理ユニットＳＰＩＮ３，ＳＰＩＮ４がいずれも使用可能（使用権未設定）であるので、ステップＳ４２での判定が肯定される。そこで、スケジューリング機能部２５は、処理ユニットＳＰＩＮ３，ＳＰＩＮ４の最終使用時刻を記憶部２３から取得する。そして、スケジューリング機能部２５は、それらの最終使用時刻と、ステップＳ４１で特定された処理ユニットの最終使用時刻とを比較する（ステップＳ５１）。想定している状況では、処理ユニットＳＰＩＮ１，ＳＰＩＮ３，ＳＰＩＮ４のなかで処理ユニットＳＰＩＮ３の最終使用時刻が最も早い（図６１参照）ので、ステップＳ５１での判定は肯定となる。
【０２１８】
そこで、スケジューリング機能部２５は、最終使用時刻が最も早い処理ユニットＳＰＩＮ３を使用可能なプロセスジョブ番号ＰＪ３の未スケジューリングの基板のうち処理順序が最も早い基板である１枚目の基板ＰＪ３−１をスケジューリング対象基板として（ステップＳ５２）、ステップＳ４２からの処理を行う。この場合、プロセスジョブ番号ＰＪ３よりも後で開始したプロセスジョブは存在しないので（ステップＳ４２：ＮＯ）、スケジューリング機能部２５は、プロセスジョブ番号ＰＪ３のレシピで指定された並行処理ユニットＳＰＩＮ３〜ＳＰＩＮ４のうち、使用権が未設定の処理ユニットＳＰＩＮ３，ＳＰＩＮ４に対して、プロセスジョブ番号ＰＪ３の使用権を設定する（ステップＳ４３）。そして、スケジューリング機能部２５は、プロセスジョブ番号ＰＪ３の１枚目の基板ＰＪ３−１の仮タイムテーブルを構成するブロックを配置していく（ステップＳ４４〜Ｓ４７）。
【０２１９】
図６２は、プロセスジョブ番号ＰＪ３の１枚目の基板ＰＪ３−１に関するブロックを配置した例を示す。このとき、最終使用時刻が最も早い処理ユニットである処理ユニットＳＰＩＮ３を通る経路を表す仮タイムテーブルが選択され、その仮タイムテーブルを構成するブロックが、時間軸上で前詰めに配置される。
その後、スケジューリング機能部２５は、処理ユニットＳＰＩＮ３が基板ＰＪ３−１の処理を終える時刻を、処理ユニットＳＰＩＮ３の最終使用時刻として求め、記憶部２３に書き込む（ステップＳ４８）。そして、基板ＰＪ３−１は、プロセスジョブ番号ＰＪ３の最後の基板ではないので、ステップＳ４９での判断が否定となり、スケジューリング機能部２５は、プロセスジョブ番号ＰＪ３の使用権を維持する。この状態が、図６２に示されている。
【０２２０】
プロセスジョブ番号ＰＪ３の１枚目の基板ＰＪ３−１のスケジューリングの後、スケジューリング機能部２５は、ステップＳ３７からの処理を行う。この場合、プロセスジョブ番号ＰＪ１，ＰＪ３の基板Ｗについてのスケジューリングは未了であり（ステップＳ３７：ＹＥＳ）、スケジューリングした基板Ｗの枚数がインデクサロボットＩＲの同時搬送数（この実施形態では２）に満たないので（ステップＳ３８：ＮＯ）、スケジューリング機能部２５は、スケジュール未了のプロセスジョブのなかでスケジューリング指示が最も早いプロセスジョブ番号の処理順序が最も早い基板、すなわちプロセスジョブ番号ＰＪ１の５枚目の基板ＰＪ１−５をスケジューリング対象基板とし、そのスケジューリング対象基板に関するデータを記憶部２３から取得する（ステップＳ３９）。
【０２２１】
プロセスジョブ番号ＰＪ１の使用権が維持されているので、ステップＳ４０の判断は肯定となり、スケジューリング機能部２５は、プロセスジョブ番号ＰＪ１のレシピで指定された並行処理ユニットＳＰＩＮ１，ＳＰＩＮ２のうちで、最終使用時刻が最も小さい処理ユニットを特定する（ステップＳ４１）。この場合、処理ユニットＳＰＩＮ１が該当する（図６２参照）。スケジューリング対象基板ＰＪ１−５よりも後でスケジューリング指示された別のプロセスジョブ番号ＰＪ３のスケジューリングが未了であり、処理ユニットＳＰＩＮ３，ＳＰＩＮ４に対してプロセスジョブ番号ＰＪ３の使用権が設定されているので、ステップＳ４２での判定が肯定される。そこで、スケジューリング機能部２５は、処理ユニットＳＰＩＮ３，ＳＰＩＮ４の最終使用時刻を記憶部２３から取得する。そして、スケジューリング機能部２５は、その最終使用時刻と、ステップＳ４１で特定された処理ユニットＳＰＩＮ１の最終使用時刻とを比較する（ステップＳ５１）。この場合、処理ユニットＳＰＩＮ４の最終使用時刻が処理ユニットＳＰＩＮ１の最終使用時刻よりも早い。
【０２２２】
そこで、スケジューリング機能部２５は、最終使用時刻が最も早い処理ユニットＳＰＩＮ４を使用可能なプロセスジョブ番号ＰＪ３の未スケジューリングの基板のうち処理順序が最も早い基板である２枚目の基板ＰＪ３−２をスケジューリング対象基板として（ステップＳ５２）、ステップＳ４２からの処理を行う。この場合、プロセスジョブ番号ＰＪ３よりも後で開始したプロセスジョブは存在しないので（ステップＳ４２：ＮＯ）、スケジューリング機能部２５は、プロセスジョブ番号ＰＪ３の処理ユニットＳＰＩＮ３，ＳＰＩＮ４に対する使用権を維持する（ステップＳ４３）。そして、スケジューリング機能部２５は、プロセスジョブ番号ＰＪ３の２枚目の基板ＰＪ３−２の仮タイムテーブルを構成するブロックを配置していく（ステップＳ４４〜Ｓ４７）。
【０２２３】
図６３は、プロセスジョブ番号ＰＪ３の２枚目の基板ＰＪ３−２に関するブロックを配置した例を示す。このとき、最終使用時刻が最も早い処理ユニットである処理ユニットＳＰＩＮ４を通る経路を表す仮タイムテーブルが選択され、その仮タイムテーブルを構成するブロックが、時間軸上で前詰めに配置される。インデクサロボットＩＲのハンド８Ａおよび８Ｂは同時に２枚の未処理基板Ｗまたは処理済み基板Ｗを搬送することができるので、インデクサロボットＩＲによる基板ＰＪ３−１，ＰＪ３−２の搬送を表すブロックが、時間軸上で重なり合うように配置されている。また、詳細な図示は省略するが、主搬送ロボットＣＲとインデクサロボットＩＲとの間では、２枚の未処理基板ＰＪ３−１，ＰＪ３−２の受け渡しを同時に実行でき、また２枚の処理済み基板ＰＪ３−１，ＰＪ３−２の受け渡しを同時に実行できるので、それらの２枚の基板ＰＪ３−１，ＰＪ３−２の受け渡しを表すブロックが時間軸上で重なりあって配置されている。
【０２２４】
その後、スケジューリング機能部２５は、処理ユニットＳＰＩＮ４が基板ＰＪ３−２の処理を終える時刻を、処理ユニットＳＰＩＮ４の最終使用時刻として求め、記憶部２３に書き込む（ステップＳ４８）。そして、基板ＰＪ３−２はプロセスジョブ番号ＰＪ２の最後の基板であるので、ステップＳ４９での判断が肯定され、スケジューリング機能部２５は、プロセスジョブ番号ＰＪ３の使用権を削除する（ステップＳ５０）。この状態が、図６３に示されている。
【０２２５】
プロセスジョブ番号ＰＪ３の２枚目の基板ＰＪ３−２のスケジューリングの後、スケジューリング機能部２５は、ステップＳ３７からの処理を行う。この場合、プロセスジョブ番号ＰＪ１の基板Ｗについてのスケジューリングは未了である（ステップＳ３７：ＹＥＳ）が、スケジューリングした基板Ｗの枚数がインデクサロボットＩＲの同時搬送数（この実施形態では２）に達したので（ステップＳ３８：ＹＥＳ）、スケジューリングが一旦終了する（ステップＳ５３）。
【０２２６】
スケジューリング済みの２枚の基板ＰＪ３−１，ＰＪ３−２が基板収容器Ｃから払い出されると、スケジューリング指示が発生する（ステップＳ３３：ＹＥＳ）。このとき、スケジューリング機能部２５は、スケジューリング済みの基板枚数を「０」にリセットする。スケジューリング済み基板枚数は、ステップＳ３８での判断で用いられる。
スケジューリング指示が発生すると、スケジューリング機能部２５は、記憶部２３に格納された全ての仮タイムテーブル、すなわち、プロセスジョブ番号ＰＪ１〜ＰＪ３に対応する全ての基板Ｗの仮タイムテーブルを読み出して、スケジューリングを開始する。この場合、既に処理開始している他の基板ＰＪ１−１〜４，ＰＪ２−１〜２，ＰＪ３−１〜２が存在する（ステップＳ３５：ＹＥＳ）ので、処理開始している基板ＰＪ１−１〜４，ＰＪ２−１〜２，ＰＪ３−１〜２のみでスケジューリングが行われる。その結果は、図６３と同じである。さらに、未スケジューリングの基板があり（ステップＳ３７：ＹＥＳ）、一度に搬送可能な枚数分の未処理基板Ｗのスケジューリングが未了であるので（ステップＳ３８：ＮＯ）、プロセスジョブ番号ＰＪ１の５枚目の基板ＰＪ１−５の仮タイムテーブルが記憶部２３から取得される（ステップＳ３９）。さらに、スケジューリング機能部２５は、プロセスジョブ番号ＰＪ１のレシピで指定された並行処理ユニットＳＰＩＮ１〜ＳＰＩＮ２が使用可能かどうかを調べる（ステップＳ４０）。この場合、処理ユニットＳＰＩＮ１〜ＳＰＩＮ２に対してプロセスジョブ番号ＰＪ１の使用権が設定されているので、ステップＳ４０の判断が肯定される。そこで、スケジューリング機能部２５は、さらに、プロセスジョブ番号ＰＪ１で使用可能な処理ユニットＳＰＩＮ１〜ＳＰＩＮ２のうち、最終使用時刻の最も早い処理ユニットを特定する（ステップＳ４１）。図６３から、処理ユニットＳＰＩＮ１が該当することが分かる。
【０２２７】
プロセスジョブ番号ＰＪ１の後にスタートしたプロセスジョブ番号ＰＪ２，ＰＪ３のスケジューリングは完了しているので、ステップＳ４２での判定が否定される。そこで、スケジューリング機能部２５は、プロセスジョブ番号ＰＪ１の使用権を維持し（ステップＳ４３）、プロセスジョブ番号ＰＪ１の５枚目の基板ＰＪ１−５の仮タイムテーブルを構成するブロックを配置していく（ステップＳ４４〜Ｓ４７）。
【０２２８】
図６４は、プロセスジョブ番号ＰＪ１の５枚目の基板ＰＪ１−５に関するブロックを配置した例を示す。このとき、最終使用時刻が最も早い処理ユニットである処理ユニットＳＰＩＮ１を通る経路を表す仮タイムテーブルが選択され、その仮タイムテーブルを構成するブロックが、時間軸上で前詰めに配置される。より具体的には、基板ＰＪ１−５の処理ブロックが、処理ユニットＳＰＩＮ１に対応して、基板ＰＪ１−３の処理ブロック後に配置され、その処理ブロックに合わせて、ブロック間の間隔ができるだけ小さくなるように、各ブロックが配置される。
【０２２９】
その後、スケジューリング機能部２５は、処理ユニットＳＰＩＮ１が基板ＰＪ１−５の処理を終える時刻を、処理ユニットＳＰＩＮ１の最終使用時刻として求め、記憶部２３に書き込む（ステップＳ４８）。そして、基板ＰＪ１−５は、プロセスジョブ番号ＰＪ１の最後の基板ではないので、ステップＳ４９での判断が否定となり、スケジューリング機能部２５は、プロセスジョブ番号ＰＪ１の使用権を維持する。この状態が、図６４に示されている。
【０２３０】
プロセスジョブ番号ＰＪ１の５枚目の基板ＰＪ１−５のスケジューリングの後、スケジューリング機能部２５は、ステップＳ３７からの処理を行う。この場合、プロセスジョブ番号ＰＪ１の基板Ｗについてのスケジューリングは未了であり（ステップＳ３７：ＹＥＳ）、スケジューリングした基板Ｗの枚数がインデクサロボットＩＲの同時搬送数（この実施形態では２）に満たないので（ステップＳ３８：ＮＯ）、スケジューリング機能部２５は、スケジュール未了のプロセスジョブのなかでスケジューリング指示が最も早いプロセスジョブ番号の処理順序が最も早い基板、すなわちプロセスジョブ番号ＰＪ１の６枚目の基板ＰＪ１−６をスケジューリング対象基板とし、そのスケジューリング対象基板に関するデータを記憶部２３から取得する（ステップＳ３９）。
【０２３１】
プロセスジョブ番号ＰＪ１の使用権が維持されているので、ステップＳ４０の判断は肯定となり、スケジューリング機能部２５は、プロセスジョブ番号ＰＪ１のレシピで指定された並行処理ユニットＳＰＩＮ１，ＳＰＩＮ２のうちで、最終使用時刻が最も小さい処理ユニットを特定する（ステップＳ４１）。この場合、処理ユニットＳＰＩＮ２が該当する（図６４参照）。スケジューリング対象基板ＰＪ１−３よりも後でスケジューリング指示された別のプロセスジョブ番号ＰＪ２，ＰＪ３のスケジューリングは完了しているので、ステップＳ４２での判定が否定される。したがって、スケジューリング機能部２５は、プロセスジョブ番号ＰＪ１の処理ユニットＳＰＩＮ１，ＳＰＩＮ２に対する使用権を維持する（ステップＳ４３）。そして、スケジューリング機能部２５は、プロセスジョブ番号ＰＪ１の６枚目の基板ＰＪ１−６の仮タイムテーブルを構成するブロックを配置していく（ステップＳ４４〜Ｓ４７）。
【０２３２】
図６５は、プロセスジョブ番号ＰＪ１の６枚目の基板ＰＪ１−６に関するブロックを配置した例を示す。このとき、最終使用時刻が最も早い処理ユニットである処理ユニットＳＰＩＮ２を通る経路を表す仮タイムテーブルが選択され、その仮タイムテーブルを構成するブロックが、時間軸上で前詰めに配置される。インデクサロボットＩＲのハンド８Ａおよび８Ｂは同時に２枚の未処理基板Ｗまたは処理済み基板Ｗを搬送することができるので、インデクサロボットＩＲによる基板ＰＪ１−５，ＰＪ１−６の搬送を表すブロックが、時間軸上で重なり合うように配置されている。また、詳細な図示は省略するが、主搬送ロボットＣＲとインデクサロボットＩＲとの間では、２枚の未処理基板ＰＪ１−５，ＰＪ１−６の受け渡しを同時に実行でき、また２枚の処理済み基板ＰＪ１−５，ＰＪ１−６の受け渡しを同時に実行できるので、それらの２枚の基板ＰＪ１−５，ＰＪ１−６の受け渡しを表すブロックが時間軸上で重なりあって配置されている。
【０２３３】
その後、スケジューリング機能部２５は、処理ユニットＳＰＩＮ２が基板ＰＪ１−６の処理を終える時刻を、処理ユニットＳＰＩＮ２の最終使用時刻として求め、記憶部２３に書き込む（ステップＳ４８）。そして、基板ＰＪ１−６はプロセスジョブ番号ＰＪ１の最後の基板ではないので、ステップＳ４９での判断が否定され、スケジューリング機能部２５は、プロセスジョブ番号ＰＪ１の使用権を維持する（ステップＳ５０）。この状態が、図６５に示されている。
【０２３４】
プロセスジョブ番号ＰＪ１の６枚目の基板ＰＪ１−６のスケジューリングの後、スケジューリング機能部２５は、ステップＳ３７からの処理を行う。この場合、プロセスジョブ番号ＰＪ１の基板Ｗについてのスケジューリングは未了である（ステップＳ３７：ＹＥＳ）が、スケジューリングした基板Ｗの枚数がインデクサロボットＩＲの同時搬送数（この実施形態では２）に達したので（ステップＳ３８：ＹＥＳ）、スケジューリングが一旦終了する（ステップＳ５３）。
【０２３５】
スケジューリング済みの２枚の基板ＰＪ１−５，ＰＪ１−６が基板収容器Ｃから払い出されると、スケジューリング指示が発生する（ステップＳ３３）。このとき、スケジューリング機能部２５は、スケジューリング済みの基板枚数を「０」にリセットする。スケジューリング済み基板枚数は、ステップＳ３８での判断で用いられる。
以後、同様の動作によって、プロセスジョブ番号ＰＪ１の７枚目の基板ＰＪ１−７を処理ユニットＳＰＩＮ１で処理する計画が作成され（図６６参照）、その後、プロセスジョブ番号ＰＪ１の８枚目の基板ＰＪ１−８を処理ユニットＳＰＩＮ２で処理する計画が作成される（図６７参照）。基板ＰＪ１−８はプロセスジョブ番号ＰＪ１の最後の基板であるので、ステップＳ４９での判断が肯定され、スケジューリング機能部２５は、プロセスジョブ番号ＰＪ１の使用権を削除する（ステップＳ５０）。これにより、図６７に示す全体スケジューリングが完成し、スケジューリングを終える（ステップＳ３７：ＮＯ。ステップＳ５３）。
【０２３６】
図６７と図２８との比較から明らかなとおり、図６７に示したスケジューリングに従って処理を行うことによって、全体の処理時間が短縮される。とくに、インデクサロボットＩＲによる２枚の基板搬送を表す搬送ブロックを時間軸上で重ねて配置できることにより、処理時間を短縮できる。加えて、プロセスジョブ番号ＰＪ２のレシピで指定された並行処理ユニットＳＰＩＮ１〜ＳＰＩＮ４のうち、処理ユニットＳＰＩＮ１〜ＳＰＩＮ２に対する使用権がプロセスジョブ番号ＰＪ１に設定されている場合であっても、残りの処理ユニットＳＰＩＮ３，ＳＰＩＮ４の最終使用時刻が早い場合には、その処理ユニットＳＰＩＮ３，ＳＰＩＮ４についての使用権がプロセスジョブ番号ＰＪ２に対して設定される。これにより、基板ＰＪ２−１，ＰＪ２−２の処理がプロセスジョブ番号ＰＪ３の処理に対して先行する計画が策定されており、それによって、全体の基板処理時間の著しい短縮が達成されている。
【０２３７】
また、使用権の削除は、プロセスジョブの最後の基板が払い出されてからではなく、最後の基板のスケジューリングが終わった直後に行われるので、処理ユニットを効率的に稼働させるスケジューリングが可能となる。
図６８〜図７９は、第４の実施形態を説明するための図であり、プロセスジョブ番号ＰＪ１，ＰＪ２，ＰＪ３が付された３つの基板群（プロセスジョブ）に対するスケジューリングのさらに他の例を示す。この例は、図１および図２に示された構成の基板処理装置に対して、図４５に示したスケジューリングを適用した例である。
【０２３８】
プロセスジョブ番号ＰＪ１の基板群は８枚の基板ＰＪ１−１〜８で構成され、処理内容データ中のレシピによって、２つの処理ユニットＳＰＩＮ１〜ＳＰＩＮ２が並行処理ユニットとして指定されているものとする。また、プロセスジョブ番号ＰＪ２の基板群は２枚の基板ＰＪ２−１〜２で構成され、処理内容データ中のレシピによって４つの処理ユニットＳＰＩＮ１〜ＳＰＩＮ４が並行処理ユニットとして指定されているものとする。さらに、プロセスジョブ番号ＰＪ３の基板群は２枚の基板ＰＪ３−１〜２で構成され、処理内容データ中のレシピによって、２つの処理ユニットＳＰＩＮ３〜ＳＰＩＮ４が並行処理ユニットとして指定されているものとする。そして、プロセスジョブ番号ＰＪ１，ＰＪ２，ＰＪ３の基板群に対して、この番号順に処理開始されて、スケジューリング指示が発生する場合を想定する。
【０２３９】
基板処理開始指示が与えられると（図４５のステップＳ３１）、スケジューリング機能部２５は、仮タイムテーブルを作成する（ステップＳ３２）。すなわち、スケジューリング機能部２５は、処理ユニットＳＰＩＮ１を通る経路と処理ユニットＳＰＩＮ２を通る経路との２つの経路を表す仮タイムテーブルがプロセスジョブ番号ＰＪ１の８枚の基板ＰＪ１−１〜８に対してそれぞれ作成される。同様に、スケジューリング機能部２５は、プロセスジョブ番号ＰＪ２の２枚の基板ＰＪ２−１〜２に対して、それぞれ処理ユニットＳＰＩＮ１〜ＳＰＩＮ４のいずれか一つを通る、４つの経路を表す仮タイムテーブルを作成する。さらに、スケジューリング機能部２５は、プロセスジョブ番号ＰＪ３の２枚の基板ＰＪ３−１〜２に対して、それぞれ処理ユニットＳＰＩＮ３またはＳＰＩＮ４を通る、２つの経路を表す仮タイムテーブルを作成する。作成された仮タイムテーブルは、記憶部２３に格納される。
【０２４０】
プロセスジョブ番号ＰＪ１，ＰＪ２，ＰＪ３に対する処理開始が順に指示され、それに応答してスケジューリング指示が発生すると（図４５のステップＳ３３）、スケジューリング機能部２５は、記憶部２３に格納された全ての仮タイムテーブル、すなわち、プロセスジョブ番号ＰＪ１〜ＰＪ３に対応する全ての基板Ｗの仮タイムテーブルを読み出して、全体スケジューリングを開始する。既に処理開始している他の基板Ｗは存在せず（ステップＳ３５：ＮＯ）、未スケジューリングの基板Ｗがあり（ステップＳ３７：ＹＥＳ）、一度に搬送可能な枚数分（この実施形態では１枚）の未処理基板Ｗのスケジューリングが未了であるので（ステップＳ３８：ＮＯ）、プロセスジョブ番号ＰＪ１の１枚目の基板ＰＪ１−１の仮タイムテーブルが記憶部２３から取得される（ステップＳ３９）。さらに、スケジューリング機能部２５は、プロセスジョブ番号ＰＪ１のレシピで指定された並行処理ユニットＳＰＩＮ１〜ＳＰＩＮ２のなかに、使用可能なもの、すなわち他のプロセスジョブ番号の使用権が未設定のものがあるかどうかを調べる（ステップＳ４０）。最初の基板Ｗのスケジューリングを行うときには、この判断が肯定されるので、スケジューリング機能部２５は、さらに、プロセスジョブ番号ＰＪ１で使用可能な処理ユニットＳＰＩＮ１〜ＳＰＩＮ２のうち、最終使用時刻の最も早い処理ユニットを特定する（ステップＳ４１）。はじめは、いずれの処理ユニットの最終使用時刻も「０」であるので、番号の最も若い処理ユニットＳＰＩＮ１が該当することになる。
【０２４１】
プロセスジョブ番号ＰＪ１の後にプロセスジョブ番号ＰＪ２，ＰＪ３がスタートしており、いずれの使用権も未設定であるので、ステップＳ４２での判定が肯定される。そこで、スケジューリング機能部２５は、プロセスジョブ番号ＰＪ２が使用する並行処理ユニットＳＰＩＮ１〜ＳＰＩＮ４の最終使用時刻を記憶部２３から取得し、さらに、プロセスジョブ番号ＰＪ３が使用する並行処理ユニットＳＰＩＮ３〜ＳＰＩＮ４の最終使用時刻を記憶部２３から取得する。そして、スケジューリング機能部２５は、それらの最終使用時刻と、ステップＳ４１で特定された処理ユニットの最終使用時刻とを比較する（ステップＳ５１）。スケジューリング当初の各処理ユニットの最終使用時刻は初期値「０」であるので、ステップＳ５１での判定は否定となる。そこで、スケジューリング機能部２５は、プロセスジョブ番号ＰＪ１のレシピにおいて並行処理ユニットとして指定された処理ユニットＳＰＩＮ１〜ＳＰＩＮ２に対して、プロセスジョブ番号ＰＪ１の使用権を設定する（ステップＳ４３）。その後、スケジューリング機能部２５は、プロセスジョブ番号ＰＪ１の１枚目の基板ＰＪ１−１の仮タイムテーブルを構成するブロックを配置していく（ステップＳ４４〜Ｓ４７）。
【０２４２】
図６８は、プロセスジョブ番号ＰＪ１の１枚目の基板ＰＪ１−１に関するブロックを配置した例を示す。このとき、ステップＳ４１，Ｓ４２で特定された、最終使用時刻が最も早い処理ユニットである、処理ユニットＳＰＩＮ１を通る経路を表す仮タイムテーブルが選択され、その仮タイムテーブルを構成するブロックが、時間軸上で前詰めに配置される。
【０２４３】
その後、スケジューリング機能部２５は、処理ユニットＳＰＩＮ１が基板ＰＪ１−１の処理を終える時刻を、処理ユニットＳＰＩＮ１の最終使用時刻として求め、記憶部２３に書き込む（ステップＳ４８）。そして、基板ＰＪ１−１はプロセスジョブ番号ＰＪ１の最後の基板ではないので、ステップＳ４９での判断が否定となり、スケジューリング機能部２５は、プロセスジョブ番号ＰＪ１の使用権を維持する。この状態が、図６８に示されている。
【０２４４】
プロセスジョブ番号ＰＪ１の１枚目の基板ＰＪ１−１のスケジューリングの後、スケジューリング機能部２５は、ステップＳ３７からの処理を行う。この場合、プロセスジョブ番号ＰＪ１，ＰＪ２，ＰＪ３の基板Ｗについてのスケジューリングは未了である（ステップＳ３７：ＹＥＳ）が、スケジューリングした基板Ｗの枚数がインデクサロボットＩＲの同時搬送数（この実施形態では１）に達したので（ステップＳ３８：ＹＥＳ）、スケジューリングが一旦終了する（ステップＳ５２）。
【０２４５】
スケジューリング済みの１枚の基板ＰＪ１−１が基板収容器Ｃから払い出されると、スケジューリング指示が発生する（ステップＳ３３：ＹＥＳ）。このとき、スケジューリング機能部２５は、スケジューリング済みの基板枚数を「０」にリセットする。スケジューリング済み基板枚数は、ステップＳ３８での判断で用いられる。
スケジューリング指示が発生すると、スケジューリング機能部２５は、記憶部２３に格納された全ての仮タイムテーブル、すなわち、プロセスジョブ番号ＰＪ１〜ＰＪ３に対応する全ての基板Ｗの仮タイムテーブルを読み出して、スケジューリングを開始する。この場合、既に処理開始している他の基板ＰＪ１−１が存在する（ステップＳ３５：ＹＥＳ）ので、処理開始している基板ＰＪ１−１のみでスケジューリングが行われる。その結果は、図６８と同じである。さらに、未スケジューリングの基板があり（ステップＳ３７：ＹＥＳ）、一度に搬送可能な枚数分の未処理基板Ｗのスケジューリングが未了であるので（ステップＳ３８：ＮＯ）、スケジューリング機能部２５は、スケジュール未了のプロセスジョブのなかでスケジューリング指示が最も早いプロセスジョブ番号の処理順序が最も早い基板、すなわちプロセスジョブ番号ＰＪ１の２枚目の基板ＰＪ１−２をスケジューリング対象基板とし、そのスケジューリング対象基板に関するデータを記憶部２３から取得する（ステップＳ３９）。プロセスジョブ番号ＰＪ１の使用権が維持されているので、ステップＳ４０の判断は肯定となり、スケジューリング機能部２５は、プロセスジョブ番号ＰＪ１のレシピで指定された並行処理ユニットＳＰＩＮ１，ＳＰＩＮ２のうちで、最終使用時刻が最も小さい処理ユニットを特定する（ステップＳ４１）。処理ユニットＳＰＩＮ１には基板ＰＪ１−１のための処理ブロックが配置されているので、処理ユニットＳＰＩＮ２が該当することになる。
【０２４６】
スケジューリング対象基板ＰＪ１−２よりも後でスケジューリング指示された別のプロセスジョブ番号ＰＪ２，ＰＪ３があり、それらのプロセスジョブで使用可能な（使用権未設定の）処理ユニットＳＰＩＮ３，ＳＰＩＮ４があるので、ステップＳ４２での判定が肯定される。そこで、スケジューリング機能部２５は、処理ユニットＳＰＩＮ３〜ＳＰＩＮ４の最終使用時刻を記憶部２３から取得する。そして、スケジューリング機能部２５は、それらの最終使用時刻と、ステップＳ４１で特定された処理ユニットＳＰＩＮ３の最終使用時刻とを比較する（ステップＳ５１）。この場合、処理ユニットＳＰＩＮ２の最終使用時刻は初期値「０」であり、処理ユニットＳＰＩＮ３〜ＳＰＩＮ４の最終使用時刻も初期値「０」であるので、ステップＳ５１での判定は否定となる。そこで、スケジューリング機能部２５は、プロセスジョブ番号ＰＪ１の使用権を維持する（ステップＳ４３）。その後、スケジューリング機能部２５は、プロセスジョブ番号ＰＪ１の２枚目の基板ＰＪ１−２の仮タイムテーブルを構成するブロックを配置していく（ステップＳ４４〜Ｓ４７）。
【０２４７】
図６９は、プロセスジョブ番号ＰＪ１の２枚目の基板ＰＪ１−２に関するブロックを配置した例を示す。このとき、ステップＳ４１，Ｓ４２で特定された、最終使用時刻が最も早い処理ユニットである処理ユニットＳＰＩＮ２を通る経路を表す仮タイムテーブルが選択され、その仮タイムテーブルを構成するブロックが、時間軸上で前詰めに配置される。
その後、スケジューリング機能部２５は、処理ユニットＳＰＩＮ２が基板ＰＪ１−２の処理を終える時刻を、処理ユニットＳＰＩＮ２の最終使用時刻として求め、記憶部２３に書き込む（ステップＳ４８）。そして、基板ＰＪ１−２はプロセスジョブ番号ＰＪ１の最後の基板ではないので、ステップＳ４９での判断が否定され、スケジューリング機能部２５は、プロセスジョブ番号ＰＪ１の使用権を維持する。この状態が、図６９に示されている。
【０２４８】
プロセスジョブ番号ＰＪ１の２枚目の基板ＰＪ１−２のスケジューリングの後、その基板ＰＪ１−２が基板収容器Ｃから払い出されると、スケジューリング指示が発生し（ステップＳ３３：ＹＥＳ）、ステップＳ３４〜Ｓ３６の処理を経て、スケジューリング機能部２５は、ステップＳ３７からの処理を行う。この場合、プロセスジョブ番号ＰＪ１，ＰＪ２，ＰＪ３の基板Ｗについてのスケジューリングは未了であり（ステップＳ３７：ＹＥＳ）、スケジューリング指示発生によってスケジューリング済みの基板枚数が「０」にリセットされるので（ステップＳ３８：ＮＯ）、プロセスジョブ番号ＰＪ１の３枚目の基板ＰＪ１−３の仮タイムテーブルが記憶部２３から取得される（ステップＳ３９）。さらに、スケジューリング機能部２５は、プロセスジョブ番号ＰＪ１のレシピで指定された並行処理ユニットＳＰＩＮ１〜ＳＰＩＮ２が使用可能かどうかを調べる（ステップＳ４０）。この場合、処理ユニットＳＰＩＮ１〜ＳＰＩＮ２に対してプロセスジョブ番号ＰＪ１の使用権が設定されているので、ステップＳ４０の判断が肯定される。そこで、スケジューリング機能部２５は、さらに、プロセスジョブ番号ＰＪ１で使用可能な処理ユニットＳＰＩＮ１〜ＳＰＩＮ２のうち、最終使用時刻の最も早い処理ユニットを特定する（ステップＳ４１）。図６９から、処理ユニットＳＰＩＮ１が該当することが分かる。
【０２４９】
プロセスジョブ番号ＰＪ１の後にプロセスジョブ番号ＰＪ２，ＰＪ３がスタートしており、処理ユニットＳＰＩＮ３，ＳＰＩＮ４が使用可能なので、ステップＳ４２での判定が肯定される。そこで、スケジューリング機能部２５は、プロセスジョブ番号ＰＪ２またはＰＪ３が使用可能な処理ユニットＳＰＩＮ３〜ＳＰＩＮ４の最終使用時刻を記憶部２３から取得する。そして、スケジューリング機能部２５は、それらの最終使用時刻と、ステップＳ４１で特定された処理ユニットＳＰＩＮ１の最終使用時刻とを比較する（ステップＳ５１）。想定している状況では、処理ユニットＳＰＩＮ３，ＳＰＩＮ４の最終使用時刻はいずれも初期値「０」であるので、ステップＳ５１での判定は肯定となる。
【０２５０】
そこで、スケジューリング機能部２５は、最終使用時刻が最も早い処理ユニットＳＰＩＮ３，ＳＰＩＮ４のうち番号の若い処理ユニットＳＰＩＮ３を使用することができるプロセスジョブ番号ＰＪ２の未スケジューリングの基板のうち処理順序が最も早い基板である１枚目の基板ＰＪ２−１をスケジューリング対象基板として（ステップＳ５２）、ステップＳ４２からの処理を行う。この場合、プロセスジョブ番号ＰＪ２よりも後で開始したプロセスジョブＰＪ３が存在するので（ステップＳ４２：ＹＥＳ）、そのプロセスジョブ番号ＰＪ３で使用可能な処理ユニットＳＰＩＮ４の最終使用時間が調べられるが、ステップＳ５１での判断は否定となる。
【０２５１】
そこで、スケジューリング機能部２５は、プロセスジョブ番号ＰＪ２のレシピで指定された並行処理ユニットＳＰＩＮ１〜ＳＰＩＮ４のうち、使用権が未設定の処理ユニットＳＰＩＮ３，ＳＰＩＮ４に対して、プロセスジョブ番号ＰＪ２の使用権を設定する（ステップＳ４３）。そして、スケジューリング機能部２５は、プロセスジョブ番号ＰＪ２の１枚目の基板ＰＪ２−１の仮タイムテーブルを構成するブロックを配置していく（ステップＳ４４〜Ｓ４７）。
【０２５２】
図７０は、プロセスジョブ番号ＰＪ２の１枚目の基板ＰＪ２−１に関するブロックを配置した例を示す。このとき、最終使用時刻が最も早い処理ユニットである、処理ユニットＳＰＩＮ３を通る経路を表す仮タイムテーブルが選択され、その仮タイムテーブルを構成するブロックが、時間軸上で前詰めに配置される。
その後、スケジューリング機能部２５は、処理ユニットＳＰＩＮ３が基板ＰＪ２−１の処理を終える時刻を、処理ユニットＳＰＩＮ３の最終使用時刻として求め、記憶部２３に書き込む（ステップＳ４８）。そして、基板ＰＪ２−１は、プロセスジョブ番号ＰＪ２の最後の基板ではないので、ステップＳ４９での判断が否定となり、スケジューリング機能部２５は、プロセスジョブ番号ＰＪ２の使用権を維持する。この状態が、図７０に示されている。
【０２５３】
プロセスジョブ番号ＰＪ２の１枚目の基板ＰＪ２−１のスケジューリングの後、その基板ＰＪ２−１が基板収容器Ｃから払い出されると、スケジューリング指示が発生し（ステップＳ３３：ＹＥＳ）、ステップＳ３４〜Ｓ３６の処理を経て、スケジューリング機能部２５は、ステップＳ３７からの処理を行う。この場合、プロセスジョブ番号ＰＪ１，ＰＪ２，ＰＪ３の基板Ｗについてのスケジューリングは未了であり（ステップＳ３７：ＹＥＳ）、スケジューリング指示発生によってスケジューリング済みの基板枚数が「０」にリセットされるので（ステップＳ３８：ＮＯ）、スケジューリング機能部２５は、スケジュール未了のプロセスジョブのなかでスケジューリング指示が最も早いプロセスジョブ番号の処理順序が最も早い基板、すなわちプロセスジョブ番号ＰＪ１の３枚目の基板ＰＪ１−３をスケジューリング対象基板とし、そのスケジューリング対象基板に関するデータを記憶部２３から取得する（ステップＳ３９）。プロセスジョブ番号ＰＪ１の使用権が維持されているので、ステップＳ４０の判断は肯定となり、スケジューリング機能部２５は、プロセスジョブ番号ＰＪ１のレシピで指定された並行処理ユニットＳＰＩＮ１，ＳＰＩＮ２のうちで、最終使用時刻が最も小さい処理ユニットを特定する（ステップＳ４１）。この場合、処理ユニットＳＰＩＮ１が該当する（図７０参照）。
【０２５４】
スケジューリング対象基板ＰＪ１−３よりも後でスケジューリング指示された別のプロセスジョブ番号ＰＪ２，ＰＪ３があり、処理ユニットＳＰＩＮ３，ＳＰＩＮ４の使用権がプロセスジョブ番号ＰＪ２に設定されているので、ステップＳ４２での判定が肯定される。そこで、スケジューリング機能部２５は、処理ユニットＳＰＩＮ３，ＳＰＩＮ４の最終使用時刻を記憶部２３から取得する。そして、スケジューリング機能部２５は、その最終使用時刻と、ステップＳ４１で特定された処理ユニットＳＰＩＮ１の最終使用時刻とを比較する（ステップＳ５１）。この場合、処理ユニットＳＰＩＮ４の最終使用時刻は初期値「０」であるので、ステップＳ５１での判定は肯定となる。そこで、スケジューリング機能部２５は、最終使用時刻が最も早い処理ユニットＳＰＩＮ４を使用可能なプロセスジョブ番号ＰＪ２の未スケジューリングの基板のうち処理順序が最も早い基板である２枚目の基板ＰＪ２−２をスケジューリング対象基板として（ステップＳ５２）、ステップＳ４２からの処理を行う。この場合、プロセスジョブ番号ＰＪ２よりも後で開始したプロセスジョブ番号ＰＪ３が存在するが、処理ユニットＳＰＩＮ３，ＳＰＩＮ４の使用権がプロセスジョブ番号ＰＪ２に設定されているので、ステップＳ４２での判断が否定となる。そこで、スケジューリング機能部２５は、プロセスジョブ番号ＰＪ２の処理ユニットＳＰＩＮ３，ＳＰＩＮ４に対する使用権を維持する（ステップＳ４３）。そして、スケジューリング機能部２５は、プロセスジョブ番号ＰＪ２の２枚目の基板ＰＪ２−２の仮タイムテーブルを構成するブロックを配置していく（ステップＳ４４〜Ｓ４７）。
【０２５５】
図７１は、プロセスジョブ番号ＰＪ２の２枚目の基板ＰＪ２−２に関するブロックを配置した例を示す。このとき、最終使用時刻が最も早い処理ユニットである処理ユニットＳＰＩＮ４を通る経路を表す仮タイムテーブルが選択され、その仮タイムテーブルを構成するブロックが、時間軸上で前詰めに配置される。
その後、スケジューリング機能部２５は、処理ユニットＳＰＩＮ４が基板ＰＪ２−２の処理を終える時刻を、処理ユニットＳＰＩＮ４の最終使用時刻として求め、記憶部２３に書き込む（ステップＳ４８）。そして、基板ＰＪ２−２はプロセスジョブ番号ＰＪ２の最後の基板であるので、ステップＳ４９での判断が肯定され、スケジューリング機能部２５は、プロセスジョブ番号ＰＪ２の使用権を削除する（ステップＳ５０）。この状態が、図７１に示されている。
【０２５６】
プロセスジョブ番号ＰＪ２の２枚目の基板ＰＪ２−２のスケジューリングの後、その基板ＰＪ２−２が基板収容器Ｃから払い出されると、スケジューリング指示が発生し（ステップＳ３３：ＹＥＳ）、ステップＳ３４〜Ｓ３６の処理を経て、スケジューリング機能部２５は、ステップＳ３７からの処理を行う。この場合、プロセスジョブ番号ＰＪ１，ＰＪ３の基板Ｗについてのスケジューリングは未了であり（ステップＳ３７：ＹＥＳ）、スケジューリング指示発生によってスケジューリング済みの基板枚数が「０」にリセットされるので（ステップＳ３８：ＮＯ）、プロセスジョブ番号ＰＪ１の３枚目の基板ＰＪ１−３の仮タイムテーブルが記憶部２３から取得される（ステップＳ３９）。さらに、スケジューリング機能部２５は、プロセスジョブ番号ＰＪ１のレシピで指定された並行処理ユニットＳＰＩＮ１〜ＳＰＩＮ２が使用可能かどうかを調べる（ステップＳ４０）。この場合、処理ユニットＳＰＩＮ１〜ＳＰＩＮ２に対してプロセスジョブ番号ＰＪ１の使用権が設定されているので、ステップＳ４０の判断が肯定される。そこで、スケジューリング機能部２５は、さらに、プロセスジョブ番号ＰＪ１で使用可能な処理ユニットＳＰＩＮ１〜ＳＰＩＮ２のうち、最終使用時刻の最も早い処理ユニットを特定する（ステップＳ４１）。図７１から、処理ユニットＳＰＩＮ１が該当することが分かる。
【０２５７】
プロセスジョブ番号ＰＪ１の後にプロセスジョブ番号ＰＪ２，ＰＪ３がスタートしていて、プロセスジョブ番号ＰＪ３についてのスケジューリングが未了であり、処理ユニットＳＰＩＮ３，ＳＰＩＮ４に使用権が設定されていないので、ステップＳ４２での判定が肯定される。そこで、スケジューリング機能部２５は、処理ユニットＳＰＩＮ３，ＳＰＩＮ４の最終使用時刻を記憶部２３から取得する。そして、スケジューリング機能部２５は、それらの最終使用時刻と、ステップＳ４１で特定された処理ユニットの最終使用時刻とを比較する（ステップＳ５１）。想定している状況では、処理ユニットＳＰＩＮ３，ＳＰＩＮ４の最終使用時刻よりも処理ユニットＳＰＩＮ１の最終使用時刻の方が早いので、ステップＳ５１での判定は否定となる。そこで、スケジューリング機能部２５は、プロセスジョブ番号ＰＪ１の使用権を維持し（ステップＳ４３）、プロセスジョブ番号ＰＪ１の３枚目の基板ＰＪ１−３の仮タイムテーブルを構成するブロックを配置していく（ステップＳ４４〜Ｓ４７）。
【０２５８】
図７２は、プロセスジョブ番号ＰＪ１の３枚目の基板ＰＪ１−３に関するブロックを配置した例を示す。このとき、最終使用時刻が最も早い処理ユニットである処理ユニットＳＰＩＮ１を通る経路を表す仮タイムテーブルが選択され、その仮タイムテーブルを構成するブロックが、時間軸上で前詰めに配置される。より具体的には、基板ＰＪ１−３の処理ブロックが、処理ユニットＳＰＩＮ１に対応して、基板ＰＪ１−１の処理ブロックの後に配置され、その処理ブロックに合わせて、ブロック間の間隔ができるだけ小さくなるように、各ブロックが配置される。
【０２５９】
その後、スケジューリング機能部２５は、処理ユニットＳＰＩＮ１が基板ＰＪ１−３の処理を終える時刻を、処理ユニットＳＰＩＮ１の最終使用時刻として求め、記憶部２３に書き込む（ステップＳ４８）。そして、基板ＰＪ１−３は、プロセスジョブ番号ＰＪ１の最後の基板ではないので、ステップＳ４９での判断が否定となり、スケジューリング機能部２５は、プロセスジョブ番号ＰＪ１の使用権を維持する。この状態が、図７２に示されている。
【０２６０】
プロセスジョブ番号ＰＪ１の３枚目の基板ＰＪ１−３のスケジューリングの後、その基板ＰＪ１−３が基板収容器Ｃから払い出されると、スケジューリング指示が発生し（ステップＳ３３：ＹＥＳ）、ステップＳ３４〜Ｓ３６の処理を経て、スケジューリング機能部２５は、ステップＳ３７からの処理を行う。この場合、プロセスジョブ番号ＰＪ１，ＰＪ３の基板Ｗについてのスケジューリングは未了であり（ステップＳ３７：ＹＥＳ）、スケジューリング指示発生によってスケジューリング済みの基板枚数が「０」にリセットされるので（ステップＳ３８：ＮＯ）、スケジューリング機能部２５は、スケジュール未了のプロセスジョブのなかでスケジューリング指示が最も早いプロセスジョブ番号の処理順序が最も早い基板、すなわちプロセスジョブ番号ＰＪ１の４枚目の基板ＰＪ１−４をスケジューリング対象基板とし、そのスケジューリング対象基板に関するデータを記憶部２３から取得する（ステップＳ３９）。
【０２６１】
プロセスジョブ番号ＰＪ１の使用権が維持されているので、ステップＳ４０の判断は肯定となり、スケジューリング機能部２５は、プロセスジョブ番号ＰＪ１のレシピで指定された並行処理ユニットＳＰＩＮ１，ＳＰＩＮ２のうちで、最終使用時刻が最も小さい処理ユニットを特定する（ステップＳ４１）。この場合、処理ユニットＳＰＩＮ２が該当する（図７２参照）。
【０２６２】
スケジューリング対象基板ＰＪ１−３よりも後でスケジューリング指示された別のプロセスジョブ番号ＰＪ２，ＰＪ３のうちプロセスジョブ番号ＰＪ３が未スケジューリングであり、処理ユニットＳＰＩＮ３，ＳＰＩＮ４は使用可能（使用権未設定）であるので、ステップＳ４２での判定が肯定される。そこで、スケジューリング機能部２５は、処理ユニットＳＰＩＮ３，ＳＰＩＮ４の最終使用時刻を記憶部２３から取得する。そして、スケジューリング機能部２５は、その最終使用時刻と、ステップＳ４１で特定された処理ユニットＳＰＩＮ２の最終使用時刻とを比較する（ステップＳ５１）。この場合、処理ユニットＳＰＩＮ２の最終使用時刻が最も早い（図７２参照）ので、ステップＳ５１での判定は否定となる。そこで、スケジューリング機能部２５は、プロセスジョブ番号ＰＪ１の処理ユニットＳＰＩＮ１，ＳＰＩＮ２に対する使用権を維持する（ステップＳ４３）。そして、スケジューリング機能部２５は、プロセスジョブ番号ＰＪ１の４枚目の基板ＰＪ１−４の仮タイムテーブルを構成するブロックを配置していく（ステップＳ４４〜Ｓ４７）。
【０２６３】
図７３は、プロセスジョブ番号ＰＪ１の４枚目の基板ＰＪ１−４に関するブロックを配置した例を示す。このとき、最終使用時刻が最も早い処理ユニットである処理ユニットＳＰＩＮ２を通る経路を表す仮タイムテーブルが選択され、その仮タイムテーブルを構成するブロックが、時間軸上で前詰めに配置される。
その後、スケジューリング機能部２５は、処理ユニットＳＰＩＮ２が基板ＰＪ１−４の処理を終える時刻を、処理ユニットＳＰＩＮ２の最終使用時刻として求め、記憶部２３に書き込む（ステップＳ４８）。そして、基板ＰＪ１−４はプロセスジョブ番号ＰＪ１の最後の基板ではないので、ステップＳ４９での判断が否定され、スケジューリング機能部２５は、プロセスジョブ番号ＰＪ１の使用権を維持する。この状態が、図７３に示されている。
【０２６４】
プロセスジョブ番号ＰＪ１の４枚目の基板ＰＪ１−４のスケジューリングの後、その基板ＰＪ１−４が基板収容器Ｃから払い出されると、スケジューリング指示が発生し（ステップＳ３３：ＹＥＳ）、ステップＳ３４〜Ｓ３６の処理を経て、スケジューリング機能部２５は、ステップＳ３７からの処理を行う。この場合、プロセスジョブ番号ＰＪ１，ＰＪ３の基板Ｗについてのスケジューリングは未了であり（ステップＳ３７：ＹＥＳ）、スケジューリング指示発生によってスケジューリング済みの基板枚数が「０」にリセットされるので（ステップＳ３８：ＮＯ）、プロセスジョブ番号ＰＪ１の５枚目の基板ＰＪ１−５の仮タイムテーブルが記憶部２３から取得される（ステップＳ３９）。さらに、スケジューリング機能部２５は、プロセスジョブ番号ＰＪ１のレシピで指定された並行処理ユニットＳＰＩＮ１〜ＳＰＩＮ２が使用可能かどうかを調べる（ステップＳ４０）。この場合、処理ユニットＳＰＩＮ１〜ＳＰＩＮ２に対してプロセスジョブ番号ＰＪ１の使用権が設定されているので、ステップＳ４０の判断が肯定される。そこで、スケジューリング機能部２５は、さらに、プロセスジョブ番号ＰＪ１で使用可能な処理ユニットＳＰＩＮ１〜ＳＰＩＮ２のうち、最終使用時刻の最も早い処理ユニットを特定する（ステップＳ４１）。図７３から、処理ユニットＳＰＩＮ１が該当することが分かる。
【０２６５】
プロセスジョブ番号ＰＪ１の後にスタートしたプロセスジョブ番号ＰＪ３のスケジューリングが未了であり、処理ユニットＳＰＩＮ３，ＳＰＩＮ４が使用可能なので、ステップＳ４２での判定が肯定される。そこで、スケジューリング機能部２５は、処理ユニットＳＰＩＮ３，ＳＰＩＮ４の最終使用時刻を記憶部２３から取得する。そして、スケジューリング機能部２５は、それらの最終使用時刻と、ステップＳ４１で特定された処理ユニットＳＰＩＮ１の最終使用時刻とを比較する（ステップＳ５１）。想定している状況では、処理ユニットＳＰＩＮ１，ＳＰＩＮ３，ＳＰＩＮ４のなかで処理ユニットＳＰＩＮ３の最終使用時刻が最も早い（図７３参照）ので、ステップＳ５１での判定は肯定となる。
【０２６６】
そこで、スケジューリング機能部２５は、最終使用時刻が最も早い処理ユニットＳＰＩＮ３を使用可能なプロセスジョブ番号ＰＪ３の未スケジューリングの基板のうち処理順序が最も早い基板である１枚目の基板ＰＪ３−１をスケジューリング対象基板として（ステップＳ５２）、ステップＳ４２からの処理を行う。この場合、プロセスジョブ番号ＰＪ３よりも後で開始したプロセスジョブは存在しないので（ステップＳ４２：ＮＯ）、スケジューリング機能部２５は、プロセスジョブ番号ＰＪ３のレシピで指定された並行処理ユニットＳＰＩＮ３〜ＳＰＩＮ４のうち、使用権が未設定の処理ユニットＳＰＩＮ３，ＳＰＩＮ４に対して、プロセスジョブ番号ＰＪ３の使用権を設定する（ステップＳ４３）。そして、スケジューリング機能部２５は、プロセスジョブ番号ＰＪ３の１枚目の基板ＰＪ３−１の仮タイムテーブルを構成するブロックを配置していく（ステップＳ４４〜Ｓ４７）。
【０２６７】
図７４は、プロセスジョブ番号ＰＪ３の１枚目の基板ＰＪ３−１に関するブロックを配置した例を示す。このとき、最終使用時刻が最も早い処理ユニットである処理ユニットＳＰＩＮ３を通る経路を表す仮タイムテーブルが選択され、その仮タイムテーブルを構成するブロックが、時間軸上で前詰めに配置される。
その後、スケジューリング機能部２５は、処理ユニットＳＰＩＮ３が基板ＰＪ３−１の処理を終える時刻を、処理ユニットＳＰＩＮ３の最終使用時刻として求め、記憶部２３に書き込む（ステップＳ４８）。そして、基板ＰＪ３−１は、プロセスジョブ番号ＰＪ３の最後の基板ではないので、ステップＳ４９での判断が否定となり、スケジューリング機能部２５は、プロセスジョブ番号ＰＪ３の使用権を維持する。この状態が、図７４に示されている。
【０２６８】
プロセスジョブ番号ＰＪ３の１枚目の基板ＰＪ３−１のスケジューリングの後、その基板ＰＪ３−１が基板収容器Ｃから払い出されると、スケジューリング指示が発生し（ステップＳ３３：ＹＥＳ）、ステップＳ３４〜Ｓ３６の処理を経て、スケジューリング機能部２５は、ステップＳ３７からの処理を行う。この場合、プロセスジョブ番号ＰＪ１，ＰＪ３の基板Ｗについてのスケジューリングは未了であり（ステップＳ３７：ＹＥＳ）、スケジューリング指示発生によってスケジューリング済みの基板枚数が「０」にリセットされるので（ステップＳ３８：ＮＯ）、スケジューリング機能部２５は、スケジュール未了のプロセスジョブのなかでスケジューリング指示が最も早いプロセスジョブ番号の処理順序が最も早い基板、すなわちプロセスジョブ番号ＰＪ１の５枚目の基板ＰＪ１−５をスケジューリング対象基板とし、そのスケジューリング対象基板に関するデータを記憶部２３から取得する（ステップＳ３９）。
【０２６９】
プロセスジョブ番号ＰＪ１の使用権が維持されているので、ステップＳ４０の判断は肯定となり、スケジューリング機能部２５は、プロセスジョブ番号ＰＪ１のレシピで指定された並行処理ユニットＳＰＩＮ１，ＳＰＩＮ２のうちで、最終使用時刻が最も小さい処理ユニットを特定する（ステップＳ４１）。この場合、処理ユニットＳＰＩＮ１が該当する（図７４参照）。
【０２７０】
スケジューリング対象基板ＰＪ１−５よりも後でスケジューリング指示された別のプロセスジョブ番号ＰＪ３のスケジューリングが未了であり、処理ユニットＳＰＩＮ３，ＳＰＩＮ４の使用権がプロセスジョブ番号ＰＪ３に設定されているので、ステップＳ４２での判定が肯定される。そこで、スケジューリング機能部２５は、処理ユニットＳＰＩＮ３，ＳＰＩＮ４の最終使用時刻を記憶部２３から取得する。そして、スケジューリング機能部２５は、その最終使用時刻と、ステップＳ４１で特定された処理ユニットＳＰＩＮ１の最終使用時刻とを比較する（ステップＳ５１）。この場合、処理ユニットＳＰＩＮ４の最終使用時刻が処理ユニットＳＰＩＮ１の最終使用時刻よりも早い。
【０２７１】
そこで、スケジューリング機能部２５は、最終使用時刻が最も早い処理ユニットＳＰＩＮ４を使用可能なプロセスジョブ番号ＰＪ３の未スケジューリングの基板のうち処理順序が最も早い基板である２枚目の基板ＰＪ３−２をスケジューリング対象基板として（ステップＳ５２）、ステップＳ４２からの処理を行う。この場合、プロセスジョブ番号ＰＪ３よりも後で開始したプロセスジョブは存在しないので（ステップＳ４２：ＮＯ）、スケジューリング機能部２５は、プロセスジョブ番号ＰＪ３の処理ユニットＳＰＩＮ３，ＳＰＩＮ４に対する使用権を維持する（ステップＳ４３）。そして、スケジューリング機能部２５は、プロセスジョブ番号ＰＪ３の２枚目の基板ＰＪ３−２の仮タイムテーブルを構成するブロックを配置していく（ステップＳ４４〜Ｓ４７）。
【０２７２】
図７５は、プロセスジョブ番号ＰＪ３の２枚目の基板ＰＪ３−２に関するブロックを配置した例を示す。このとき、最終使用時刻が最も早い処理ユニットである処理ユニットＳＰＩＮ４を通る経路を表す仮タイムテーブルが選択され、その仮タイムテーブルを構成するブロックが、時間軸上で前詰めに配置される。
その後、スケジューリング機能部２５は、処理ユニットＳＰＩＮ４が基板ＰＪ３−２の処理を終える時刻を、処理ユニットＳＰＩＮ４の最終使用時刻として求め、記憶部２３に書き込む（ステップＳ４８）。そして、基板ＰＪ３−２はプロセスジョブ番号ＰＪ３の最後の基板であるので、ステップＳ４９での判断が肯定され、スケジューリング機能部２５は、プロセスジョブ番号ＰＪ３の使用権を削除する（ステップＳ５０）。この状態が、図７５に示されている。
【０２７３】
プロセスジョブ番号ＰＪ３の２枚目の基板ＰＪ３−２のスケジューリングの後、その基板ＰＪ３−２が基板収容器Ｃから払い出されると、スケジューリング指示が発生し（ステップＳ３３：ＹＥＳ）、ステップＳ３４〜Ｓ３６の処理を経て、スケジューリング機能部２５は、ステップＳ３７からの処理を行う。この場合、プロセスジョブ番号ＰＪ１の基板Ｗについてのスケジューリングは未了であり（ステップＳ３７：ＹＥＳ）、スケジューリング指示発生によってスケジューリング済みの基板枚数が「０」にリセットされるので（ステップＳ３８：ＮＯ）、プロセスジョブ番号ＰＪ１の５枚目の基板ＰＪ１−５の仮タイムテーブルが記憶部２３から取得される（ステップＳ３９）。さらに、スケジューリング機能部２５は、プロセスジョブ番号ＰＪ１のレシピで指定された並行処理ユニットＳＰＩＮ１〜ＳＰＩＮ２が使用可能かどうかを調べる（ステップＳ４０）。この場合、処理ユニットＳＰＩＮ１〜ＳＰＩＮ２に対してプロセスジョブ番号ＰＪ１の使用権が設定されているので、ステップＳ４０の判断が肯定される。そこで、スケジューリング機能部２５は、さらに、プロセスジョブ番号ＰＪ１で使用可能な処理ユニットＳＰＩＮ１〜ＳＰＩＮ２のうち、最終使用時刻の最も早い処理ユニットを特定する（ステップＳ４１）。図７５から、処理ユニットＳＰＩＮ１が該当することが分かる。
【０２７４】
プロセスジョブ番号ＰＪ１の後にスタートしたプロセスジョブ番号ＰＪ２，ＰＪ３のスケジューリングは完了しているので、ステップＳ４２での判定が否定される。そこで、スケジューリング機能部２５は、プロセスジョブ番号ＰＪ１の使用権を維持し（ステップＳ４３）、プロセスジョブ番号ＰＪ１の５枚目の基板ＰＪ１−５の仮タイムテーブルを構成するブロックを配置していく（ステップＳ４４〜Ｓ４７）。
【０２７５】
図７６は、プロセスジョブ番号ＰＪ１の５枚目の基板ＰＪ１−５に関するブロックを配置した例を示す。このとき、最終使用時刻が最も早い処理ユニットである処理ユニットＳＰＩＮ１を通る経路を表す仮タイムテーブルが選択され、その仮タイムテーブルを構成するブロックが、時間軸上で前詰めに配置される。
その後、スケジューリング機能部２５は、処理ユニットＳＰＩＮ１が基板ＰＪ１−５の処理を終える時刻を、処理ユニットＳＰＩＮ１の最終使用時刻として求め、記憶部２３に書き込む（ステップＳ４８）。そして、基板ＰＪ１−５は、プロセスジョブ番号ＰＪ１の最後の基板ではないので、ステップＳ４９での判断が否定となり、スケジューリング機能部２５は、プロセスジョブ番号ＰＪ１の使用権を維持する。この状態が、図７６に示されている。
【０２７６】
プロセスジョブ番号ＰＪ１の５枚目の基板ＰＪ１−５のスケジューリングの後、その基板ＰＪ１−５が基板収容器Ｃから払い出されると、スケジューリング指示が発生し（ステップＳ３３：ＹＥＳ）、ステップＳ３４〜Ｓ３６の処理を経て、スケジューリング機能部２５は、ステップＳ３７からの処理を行う。この場合、プロセスジョブ番号ＰＪ１の基板Ｗについてのスケジューリングは未了であり（ステップＳ３７：ＹＥＳ）、スケジューリング指示発生によってスケジューリング済みの基板枚数が「０」にリセットされるので（ステップＳ３８：ＮＯ）、スケジューリング機能部２５は、スケジュール未了のプロセスジョブのなかでスケジューリング指示が最も早いプロセスジョブ番号の処理順序が最も早い基板、すなわちプロセスジョブ番号ＰＪ１の６枚目の基板ＰＪ１−６をスケジューリング対象基板とし、そのスケジューリング対象基板に関するデータを記憶部２３から取得する（ステップＳ３９）。プロセスジョブ番号ＰＪ１の使用権が維持されているので、ステップＳ４０の判断は肯定となり、スケジューリング機能部２５は、プロセスジョブ番号ＰＪ１のレシピで指定された並行処理ユニットＳＰＩＮ１，ＳＰＩＮ２のうちで、最終使用時刻が最も小さい処理ユニットを特定する（ステップＳ４１）。この場合、処理ユニットＳＰＩＮ２が該当する（図７６参照）。スケジューリング対象基板ＰＪ１−６よりも後でスケジューリング指示された別のプロセスジョブ番号ＰＪ２，ＰＪ３のスケジューリングは完了しているので、ステップＳ４２での判定が否定される。したがって、スケジューリング機能部２５は、プロセスジョブ番号ＰＪ１の処理ユニットＳＰＩＮ１，ＳＰＩＮ２に対する使用権を維持する（ステップＳ４３）。そして、スケジューリング機能部２５は、プロセスジョブ番号ＰＪ１の６枚目の基板ＰＪ１−６の仮タイムテーブルを構成するブロックを配置していく（ステップＳ４４〜Ｓ４７）。
【０２７７】
図７７は、プロセスジョブ番号ＰＪ１の６枚目の基板ＰＪ１−６に関するブロックを配置した例を示す。このとき、最終使用時刻が最も早い処理ユニットである、処理ユニットＳＰＩＮ２を通る経路を表す仮タイムテーブルが選択され、その仮タイムテーブルを構成するブロックが、時間軸上で前詰めに配置される。
その後、スケジューリング機能部２５は、処理ユニットＳＰＩＮ２が基板ＰＪ１−６の処理を終える時刻を、処理ユニットＳＰＩＮ２の最終使用時刻として求め、記憶部２３に書き込む（ステップＳ４８）。そして、基板ＰＪ１−６はプロセスジョブ番号ＰＪ１の最後の基板ではないので、ステップＳ４９での判断が否定され、スケジューリング機能部２５は、プロセスジョブ番号ＰＪ１の使用権を維持する（ステップＳ５０）。この状態が、図７７に示されている。
【０２７８】
以後、同様の動作によって、プロセスジョブ番号ＰＪ１の７枚目の基板ＰＪ１−７を処理ユニットＳＰＩＮ１で処理する計画が作成され（図７８参照）、その後、プロセスジョブ番号ＰＪ１の８枚目の基板ＰＪ１−８を処理ユニットＳＰＩＮ２で処理する計画が作成される（図７９参照）。基板ＰＪ１−８はプロセスジョブ番号ＰＪ１の最後の基板であるので、ステップＳ４９での判断が肯定され、スケジューリング機能部２５は、プロセスジョブ番号ＰＪ１の使用権を削除する（ステップＳ５０）。これにより、図７９に示す全体スケジューリングが完成し、スケジューリングを終える（ステップＳ３７：ＮＯ）。
【０２７９】
このように、この実施形態においても、プロセスジョブ番号ＰＪ２のレシピで指定された並行処理ユニットＳＰＩＮ１〜ＳＰＩＮ４のうち、処理ユニットＳＰＩＮ１〜ＳＰＩＮ２に対する使用権がプロセスジョブ番号ＰＪ１に設定されている場合であっても、残りの処理ユニットＳＰＩＮ３，ＳＰＩＮ４の最終使用時刻が早い場合には、その処理ユニットＳＰＩＮ３，ＳＰＩＮ４についての使用権がプロセスジョブ番号ＰＪ２に対して設定される。これにより、基板ＰＪ２−１，ＰＪ２−２の処理がプロセスジョブ番号ＰＪ３の処理に対して先行する計画を策定でき、それによって、全体の基板処理時間の著しい短縮が達成されている。また、使用権の削除は、プロセスジョブの最後の基板が払い出されてからではなく、最後の基板のスケジューリングが終わった直後に行われるので、処理ユニットを効率的に稼働させるスケジューリングが可能となる。
【０２８０】
以上、この発明の４つの実施形態について説明してきたが、この発明は、さらに他の形態で実施することもできる。たとえば、前述の実施形態で示した基板処理装置の構成や基板処理内容は一例に過ぎず、基板処理装置は他の構成を採ることができ、かつ別の基板処理内容に対してもこの発明を適用できる。
また、プログラム３０は、コンピュータ２０に組み込まれた状態で提供されてもよいし、コンピュータ２０とは別の記憶媒体（ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ等のコンピュータ読取可能な記憶媒体）に記録された状態で提供されてもよい。
【０２８１】
その他、特許請求の範囲に記載された事項の範囲で種々の設計変更を施すことが可能である。
この明細書および添付図面から抽出され得る特徴を以下に記す。
Ａ１．基板を一枚ずつ処理する枚葉型の処理ユニットを有する基板処理装置の動作を時系列に従って規定するスケジュールを前記基板処理装置に備えられた制御部が作成するための方法であって、
前記制御部が、共通の処理を施すべき第１の基板群に対して前記処理ユニットの使用権を設定する第１使用権設定ステップと、
前記制御部が、前記処理ユニットの使用権が前記第１の基板群に対して設定されているときに、当該第１の基板群の基板の前記処理ユニットによる処理を表す第１処理ブロックの配置を許容する一方で、他の基板群の基板の前記処理ユニットによる処理を表す処理ブロックの配置を禁止する第１処理ブロック配置ステップと、
前記制御部が、前記第１の基板群に対する前記処理ユニットの使用権を削除するステップと、
前記制御部が、前記第１の基板群に対して設定された前記処理ユニットの使用権が削除された後に、共通の処理を施すべき第２の基板群に対して前記処理ユニットの使用権を設定する第２使用権設定ステップと、
前記制御部が、前記処理ユニットの使用権が前記第２の基板群に対して設定されているときに、当該第２の基板群の基板の前記処理ユニットによる処理を表す第２処理ブロックの配置を許容する一方で、他の基板群の基板の前記処理ユニットによる処理を表す処理ブロックの配置を禁止する第２処理ブロック配置ステップと
を含む、スケジュール作成方法。
この方法によれば、共通の処理を施すべき第１の基板群に対して枚葉型処理ユニットの使用権が設定される。この使用権が設定されているときには、その処理ユニットによる処理を表す処理ブロックとしては、第１の基板群に属する基板に対する処理を表す第１処理ブロックのみが配置可能となり、他の基板群に属する基板に対する処理を表す処理ブロックの配置は禁止される。したがって、当該処理ユニットにおいては、第１の基板群の処理の間に、他の基板群の処理が割り込まないことを保証できる。また、第１の基板群に対する当該処理ユニットの使用権が削除されると、別の基板群である第２の基板群に対して当該処理ユニットの使用権が設定される。よって、その処理ユニットによる処理を表す処理ブロックとしては、第２の基板群に属する基板に対する処理を表す第２処理ブロックのみが配置可能となり、他の基板群に属する基板に対する処理を表す処理ブロックの配置は禁止される。したがって、当該処理ユニットにおいて、第２の基板群の処理の間に、他の基板群の処理が割り込まないことを保証できる。こうして、使用権の設定および削除を行うことで、処理が共通する基板群の間に別の処理を行うべき基板が割り込むことを回避できるので、基板処理装置のリソースとしての処理ユニットを効率的に稼働させることができる。これにより、個々の基板に対する処理ブロックを時間軸上に効率的に配置して枚葉型処理ユニット等のリソースの稼働率を高めることができるので、枚葉型基板処理装置の生産性を向上できる。
Ａ２．前記第１の基板群に対する前記処理ユニットの使用権を削除するステップが、前記第１の基板群に属する全ての基板に対するスケジューリングの完了直後に実行される、項Ａ１に記載のスケジュール作成方法。
この方法では、第１の基板群に対する処理ユニットの使用権の削除が、当該第１の基板群に属する全ての基板に対するスケジューリングの完了直後に実行されるから、第１の基板群に属する基板に関する処理開始を待つことなく、第２の基板群に対して処理ユニットの使用権を設定できる。これにより、第２の基板群に属する基板に対する処理ブロックを速やかに配置できるので、効率的な処理ブロック配置が可能となるので、枚葉型処理ユニットの稼働率を一層高めることができる。スケジューリングの完了直後とは、具体的には、第１の基板群の最後の基板が処理のために搬送開始（たとえば基板収容器から搬出）されるよりも前であってもよい。
Ａ３．前記基板処理装置が複数の処理ユニットを含み、
前記第１の基板群を構成する基板が前記複数の処理ユニットのうちの第１の処理ユニット群において処理可能であり、
前記第２の基板群を構成する基板が前記複数の処理ユニットのうち、前記第１の処理ユニット群に属する少なくとも一つの処理ユニットを含む第２の処理ユニット群において処理可能であり、
前記第２処理ブロック配置ステップが、前記第１処理ブロックと干渉（時間軸上で重複）しないように前記第２処理ブロックを配置するステップを含む、項Ａ２に記載のスケジューリング方法。
この方法では、第１の基板群を処理可能な第１処理ユニット群と第２の基板群を処理可能な第２処理ユニット群とは、少なくとも一つの重複する処理ユニットを有している。この場合に、第１の基板群に対して第１処理ユニット群の使用権が設定されているときは、当該重複する処理ユニットに対する第２処理ブロックの配置は許されない。第１の基板群に対する第１処理ユニット群の使用権が削除されると、当該重複する処理ユニットに対する第２処理ブロックの配置が可能となる。この場合、第２処理ブロックは、第１処理ブロックと干渉（時間軸上で重複）しないように配置される。具体的には、第２処理ユニット群のうち前記重複する処理ユニット以外の処理ユニットに対して第２処理ブロックを配置したり、前記重複する処理ユニットに対して第１処理ブロックと干渉しないように第２処理ブロックを配置したりすることができる。こうして、第１処理ブロックおよび第２処理ブロックの干渉を回避しつつ、枚葉型処理ユニットを効率的に稼働させることができる。
Ａ４．前記基板処理装置が複数の処理ユニットを含み、
前記第１の基板群を構成する基板が前記複数の処理ユニットのうちの第１の処理ユニット群において処理可能であり、
前記第２の基板群を構成する基板が前記複数の処理ユニットのうち前記第１の処理ユニット群に属する処理ユニットと前記第１の処理ユニット群に属さない処理ユニットとを含む第２の処理ユニット群において処理可能であり、
前記制御部が、前記第１の基板群に対して前記第１の処理ユニット群の使用権が設定されているときに、前記第２の基板群に対して前記第２の処理ユニット群のうち前記第１処理ユニット群に属さない処理ユニットの使用権を設定する第３使用権設定ステップをさらに含む、項Ａ１〜Ａ３のいずれか一項に記載のスケジュール作成方法。
この方法によれば、第１の基板群に対して第１処理ユニット群の使用権が設定されているときであっても、第２の基板群に対して、第２処理ユニット群のうち第１処理ユニット群と重複しない処理ユニットの使用権が設定される。これにより、第１処理ユニット群の使用権の削除を待つことなく、かつ第１処理ブロックと干渉することもなく、第２処理ブロックを配置できる。したがって、枚葉型処理ユニットを一層効率的に稼働させることが可能となる。
Ａ５．前記第２の処理ユニット群のうち前記第１処理ユニット群に属さない処理ユニットの最終使用時刻が他の処理ユニット（前記第２の処理ユニット群のうち前記第１の処理ユニット群に属する処理ユニット）の最終使用時刻よりも早いときに、前記制御部が、前記第３使用権設定ステップを実行する、項Ａ４に記載のスケジュール作成方法。
この方法では、第２処理ユニット群のうち第１処理ユニット群と重複しない処理ユニットの最終使用時刻が、第１処理ユニット群と重複する処理ユニットの最終使用時刻よりも早いときに、第２の基板群に対して当該重複しない処理ユニットの使用権が設定される。したがって、第２の基板群に属する基板のための第２処理ブロックを、当該重複する処理ユニットの最終使用時刻よりも前に配置できる。これにより、枚葉型処理ユニットの稼働率を高めることができる。
Ａ６．前記基板処理装置が、複数枚の基板をそれぞれ保持して同時に搬送できる複数の基板保持ハンドを有する基板搬送ユニットを含み、
前記制御部が、前記基板搬送ユニットによって同時に搬送される複数枚の基板の搬送をそれぞれ表す複数の搬送ブロックを時間軸上で重なり合うように配置するステップをさらに含む、項Ａ１〜Ａ５のいずれか一項に記載のスケジュール作成方法。
この方法では、基板搬送ユニットは、同時に複数枚の基板を搬送できる。そこで、複数枚の基板の搬送を表す複数の搬送ブロックを時間軸上で重なり合うように配置することで、複数枚の基板の同時搬送を計画することができる。こうして、枚葉型基板処理装置における基板搬送効率を高めることができるので、基板処理装置の生産性を高めることができる。
Ａ７．基板を一枚ずつ処理する枚葉型の処理ユニットを有する基板処理装置の動作を時系列に従って規定するスケジュールを作成するためのコンピュータプログラムであって、項Ａ１〜Ａ６のいずれか一項に記載の方法を前記制御部としてのコンピュータに実行させるようにステップ群が組み込まれたコンピュータプログラム。
このコンピュータプログラムにより、スケジュール作成方法に関して説明した前述の効果を得ることができる。
【符号の説明】
【０２８２】
Ｗ    基板
Ｃ    基板収容器
ＳＴ１〜ＳＴ４  ステージ
ＩＲ  インデクサロボット
ＰＡＳＳ  受け渡しユニット
ＣＲ  主搬送ロボット
ＳＰＩＮ１〜ＳＰＩＮ１２  処理ユニット
Ｇ１〜Ｇ４  処理ユニット群
１  インデクサセクション
２  処理セクション
６  基台部
７  多関節アーム
８Ａ，８Ｂ  ハンド
１１  基台部
１２  多関節アーム
１３Ａ，１３Ｂ，１３Ｃ，１３Ｄ  ハンド
１５  スピンチャック
１６  処理液ノズル
１７  処理室
２０  コンピュータ
２１  制御部
２２  出入力部
２３  記憶部
２４  ホストコンピュータ
２５  スケジューリング機能部
２６  処理実行指示部
３０  プログラム
３１  スケジュール作成プログラム
３２  処理実行プログラム
４０  処理内容データ
５０  スケジュールデータ
【図１】
0005847515.tif 000002
【図２】
0005847515.tif 000003
【図３】
0005847515.tif 000004
【図４】
0005847515.tif 000005
【図５】
0005847515.tif 000006
【図６】
0005847515.tif 000007
【図７】
0005847515.tif 000008
【図１１】
0005847515.tif 000009
【図１２】
0005847515.tif 000010
【図１７】
0005847515.tif 000011
【図１８】
0005847515.tif 000012
【図１９】
0005847515.tif 000013
【図２０】
0005847515.tif 000014
【図２１】
0005847515.tif 000015
【図２２】
0005847515.tif 000016
【図２３】
0005847515.tif 000017
【図２４】
0005847515.tif 000018
【図２５】
0005847515.tif 000019
【図２６】
0005847515.tif 000020
【図２７】
0005847515.tif 000021
【図２８】
0005847515.tif 000022
【図２９】
0005847515.tif 000023
【図３０】
0005847515.tif 000024
【図３１】
0005847515.tif 000025
【図３２】
0005847515.tif 000026
【図３３】
0005847515.tif 000027
【図３４】
0005847515.tif 000028
【図３５】
0005847515.tif 000029
【図３６】
0005847515.tif 000030
【図３７】
0005847515.tif 000031
【図３８】
0005847515.tif 000032
【図３９】
0005847515.tif 000033
【図４０】
0005847515.tif 000034
【図４１】
0005847515.tif 000035
【図４２】
0005847515.tif 000036
【図４３】
0005847515.tif 000037
【図４４】
0005847515.tif 000038
【図４５】
0005847515.tif 000039
【図４６】
0005847515.tif 000040
【図５０】
0005847515.tif 000041
【図５１】
0005847515.tif 000042
【図５６】
0005847515.tif 000043
【図５７】
0005847515.tif 000044
【図５８】
0005847515.tif 000045
【図５９】
0005847515.tif 000046
【図６０】
0005847515.tif 000047
【図６１】
0005847515.tif 000048
【図６２】
0005847515.tif 000049
【図６３】
0005847515.tif 000050
【図６４】
0005847515.tif 000051
【図６５】
0005847515.tif 000052
【図６６】
0005847515.tif 000053
【図６７】
0005847515.tif 000054
【図６８】
0005847515.tif 000055
【図６９】
0005847515.tif 000056
【図７０】
0005847515.tif 000057
【図７１】
0005847515.tif 000058
【図７２】
0005847515.tif 000059
【図７３】
0005847515.tif 000060
【図７４】
0005847515.tif 000061
【図７５】
0005847515.tif 000062
【図７６】
0005847515.tif 000063
【図７７】
0005847515.tif 000064
【図７８】
0005847515.tif 000065
【図７９】
0005847515.tif 000066
【図８】
0005847515.tif 000067
【図９】
0005847515.tif 000068
【図１０】
0005847515.tif 000069
【図１３】
0005847515.tif 000070
【図１４】
0005847515.tif 000071
【図１５】
0005847515.tif 000072
【図１６】
0005847515.tif 000073
【図４７】
0005847515.tif 000074
【図４８】
0005847515.tif 000075
【図４９】
0005847515.tif 000076
【図５２】
0005847515.tif 000077
【図５３】
0005847515.tif 000078
【図５４】
0005847515.tif 000079
【図５５】
0005847515.tif 000080