(57)【要約】【課題】制御部でのデータ処理の効率化が図られたスケジュールを作成することが可能なスケジュール作成方法を提供すること。制御部でのデータ処理の効率化を図りながら基板を処理することが可能なできる基板処理装置を提供すること。【解決手段】  各基板に対する基板処理装置の動作の内容を規定する複数のブロックを時系列に従って配置することにより、基板のスケジュールを作成する。前準備ブロックＳＰ1〜ＳＰ12に対応する動作に前記高負荷時間帯が含まれる場合に、前準備ブロックＳＰ1〜ＳＰ12の高負荷時間帯に対応する部分に高負荷情報が付加される。【選択図】図１２
2018125548.tif 000002
【特許請求の範囲】
【請求項１】
基板を１枚ずつ処理する少なくとも一つの枚葉式の処理ユニットと、前記処理ユニットを制御するための制御部とを有する基板処理装置の動作を時系列に従って規定するためのスケジュールを、前記基板処理装置に備えられたスケジュール作成部が作成するための方法であって、
各基板に対する前記基板処理装置の動作の内容を規定する複数のブロックを時系列に従って配置することにより、その基板のスケジュールを前記スケジュール作成部によって作成するスケジュール作成工程を含み、
前記スケジュール作成工程が、
前記ブロックに対応する動作に、前記制御部に高い制御負荷が生じる時間帯である高負荷時間帯が含まれるか否かを判断する判断工程と、
前記ブロックに対応する動作に前記高負荷時間帯が含まれる場合に、前記ブロックの前記高負荷時間帯に対応する部分に高負荷情報を付加する付加工程とを含む、スケジュール作成方法。
【請求項２】
前記判断工程が、前記ブロックに対応する動作における負荷と、前記高負荷時間帯として定められている基準範囲とを比較することにより、前記ブロックに対応する動作に前記高負荷時間帯が含まれるか否かを判断する、請求項１に記載のスケジュール作成方法。
【請求項３】
前記スケジュール作成工程が、前記高負荷情報が同じ時間帯に所定数以上重複しないように、前記制御部に高い制御負荷を少なくとも一時的に生じさせる動作である高負荷動作に対応する前記ブロックを、時間軸上に配置する高負荷配置工程をさらに含む、請求項１または２に記載のスケジュール作成方法。
【請求項４】
前記高負荷時間帯は、前記高負荷動作の開始時である、請求項３に記載のスケジュール作成方法。
【請求項５】
前記基板処理装置では、プロセスジョブが共通する複数枚の基板のうち所定の第１の基板のスケジュールの作成終了後、前記複数枚の基板のうち処理順序が前記第１の基板よりも後の第２の基板のスケジュールの作成が終わっていない状態で、作成済みのスケジュールの実行が開始されるようになっており、
前記作成済みのスケジュールの実行開始後において、当該作成済みのスケジュールのうち未実行の部分を変更するスケジュール変更工程をさらに含む、請求項４に記載のスケジュール作成方法。
【請求項６】
前記スケジュール変更工程は、
前記スケジュールの実行開始後において、前記作成済みのスケジュールのうち未実行のブロックを削除する工程と、
削除したブロックを、前記第２の基板についてのブロックの配置と並行して、時系列に従って再配置する再配置工程とをさらに含む、請求項５に記載のスケジュール作成方法。
【請求項７】
基板を１枚ずつ処理する少なくとも一つの枚葉式の処理ユニットと、
前記処理ユニットを制御するための制御部と、
前記処理ユニットを含むリソースの動作を、時系列に従って規定するためのスケジュールを作成するためのスケジュール作成部とを含み、
請求項１〜６のいずれか一項に記載のスケジュール作成方法によって前記スケジュール作成部が作成したスケジュールに従って、前記制御部は前記リソースを制御する、基板処理装置。
【請求項８】
前記制御部は、プロセスジョブが共通する複数枚の基板のうち所定の第１の基板のスケジュール作成の終了後、前記複数枚の基板のうち処理順序が前記第１の基板よりも後の第２の基板のスケジュールの作成が終わっていない状態で、作成済みのスケジュールの実行を開始する、請求項７に記載の基板処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、基板処理装置の動作を時系列に従って規定するスケジュールを作成するための方法、および基板処理装置に関する。基板処理装置による処理対象となる基板の例には、半導体ウエハ、液晶表示装置用基板、プラズマディスプレイ用基板、ＦＥＤ(Field Emission Display)用基板、光ディスク用基板、磁気ディスク用基板、光磁気ディスク用基板、フォトマスク用基板、セラミック基板、太陽電池用基板などが含まれる。
【背景技術】
【０００２】
半導体装置や液晶表示装置などの製造工程では、半導体ウエハや液晶表示装置用ガラス基板などの基板を１枚ずつ処理する枚葉式の基板処理装置や、複数枚の基板で構成されるロットを一括して処理するバッチ式の基板処理装置が用いられる。特許文献１には、枚葉式の基板処理装置の動作を時系列に従って規定するスケジュールを作成する方法が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１３−７７７９６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
枚葉式の基板処理装置は、たとえば複数の処理ユニットを備えている。基板処理装置に備えられている制御部は、作成されたスケジュールに従って、各処理ユニットの動作（処理）を行う。各処理ユニットで行われる種々の動作のうち基板処理工程や前準備工程の開始時には、処理内容データの送受信や処理内容データの読み込みやデータ解釈のため、制御部の制御負荷（ＣＰＵ負荷や通信処理負荷）が高くなるおそれがある。したがって、複数の処理ユニット同士で基板処理工程等を同時に開始させる場合、処理内容データを同時に送信するために、制御部に制御負荷が集中してデータ処理を円滑に行えなくなり、その結果、いずれかの処理ユニットにおいて、基板処理工程、前準備工程等の開始が遅延するおそれがある。この場合、各処理ユニットでの基板処理の均一性が保証できず、基板の処理結果に問題が発生するおそれがある。例えば、処理ユニットに搬入されてから基板処理を開始するまでの時間がばらつくと、基板が処理ユニット内のミストに曝される時間が不均一になる。ミストは基板の表面状態に影響を与えることがあるため、基板処理を開始するまでの時間は基板間で均一になることが望ましい。また、基板処理が終了した基板を処理ユニットから搬出するまでの時間がばらつくと、次の処理ユニットで基板処理を開始可能になるまでの時間が不均一になり、前の基板処理の効果を次の基板処理に対して安定的に及ぼすことができなくなるおそれがある。
【０００５】
このような現象が生じると、各基板に対して同一のレシピを適用しても同一の基板処理の効果を得ることができなくなるおそれがある。
処理開始の遅延を防止するための方策として、制御部の処理性能を向上させたり、制御部の台数を増やしたりすることが考えられるが、これらの方策では、新たな制御部の設置によりコストアップになるおそれがある。また、それだけでなく、消費電力の上昇や、基板処理装置の構成の複雑化を招くおそれある。そのため、本願発明者は、スケジュールの作成を工夫して制御部でのデータ処理の効率化を図ることにより、制御部での制御負荷の集中を回避させることを検討している。
【０００６】
そこで、この発明の目的の一つは、制御部でのデータ処理の効率化が図られたスケジュールを作成することが可能なスケジュール作成方法を提供することである。
また、この発明の他の目的は、制御部でのデータ処理の効率化を図りながら基板を処理することが可能な基板処理装置を提供することである。
【課題を解決するための手段】
【０００７】
前記の目的を達成するための請求項１に記載の発明は、基板を１枚ずつ処理する少なくとも一つの枚葉式の処理ユニットと、前記処理ユニットを制御するための制御部とを有する基板処理装置の動作を時系列に従って規定するためのスケジュールを、前記基板処理装置に備えられたスケジュール作成部が作成するための方法であって、各基板に対する前記基板処理装置の動作の内容を規定する複数のブロックを時系列に従って配置することにより、その基板のスケジュールを前記スケジュール作成部によって作成するスケジュール作成工程を含み、前記スケジュール作成工程が、前記ブロックに対応する動作に、前記制御部に高い制御負荷が生じる時間帯である高負荷時間帯が含まれるか否かを判断する判断工程と、前記ブロックに対応する動作に前記高負荷時間帯が含まれる場合に、前記ブロックの前記高負荷時間帯に対応する部分に高負荷情報を付加する付加工程とを含む、スケジュール作成方法を提供する。
【０００８】
この方法によれば、スケジュール作成部は、各基板に対する処理内容を規定する複数のブロックを時系列に従って配置することにより当該基板のスケジュールを作成し、この基板のスケジュールを基板枚数分作成する。このとき、ブロックに対応する動作に高負荷時間帯が含まれる場合に、ブロックの高負荷時間帯に対応する部分に高負荷情報を付加する。そのため、制御部での制御負荷の集中が回避することが可能である。これにより、制御部でのデータ処理の効率化が図られたスケジュールを作成することが可能である。
【０００９】
請求項２に記載の発明に記載のように、前記判断工程が、前記ブロックに対応する動作における負荷と、前記高負荷時間帯として定められている基準範囲とを比較することにより、前記ブロックに対応する動作に前記高負荷時間帯が含まれるか否かを判断してもよい。
【００１０】
請求項３に記載の発明は、スケジュール作成工程が、前記高負荷情報が同じ時間帯に所定数以上重複しないように、前記制御部に高い制御負荷を少なくとも一時的に生じさせる動作である高負荷動作に対応する前記ブロックを、時間軸上に配置する高負荷配置工程をさらに含む、請求項１または２に記載のスケジュール作成方法である。
【００１１】
この方法によれば、スケジュール作成部は、各基板に対する処理内容を規定する複数のブロックを時系列に従って配置することにより当該基板のスケジュールを作成し、この基板のスケジュールを基板枚数分作成する。このとき、高負荷動作に対応するブロックを、その高負荷時間帯が集中しないように時間軸上に配置する。こうして作成されたスケジュールでは、制御部での制御負荷の集中が回避されている。これにより、制御部でのデータ処理の効率化が図られたスケジュールを作成できる。
請求項４に記載の発明は、前記高負荷時間帯は、前記高負荷動作の開始時である、請求項３に記載のスケジュール作成方法である。
【００１２】
この方法によれば、各リソースの動作の開始時には、制御部での処理データの送受信や当該処理データのデータ解釈のために、制御部の制御負荷が高まることがある。すなわち、高負荷動作の開始時が高負荷時間帯になる。
仮に、複数枚の基板のスケジュールにおいて、高負荷動作に対応するブロック同士を、当該高負荷動作が同時に開始するように時間軸上に配置すると、当該高負荷動作の開始時に、制御部の制御負荷が集中し制御部にてデータ処理を円滑に行えないおそれがある。その結果、いずれかのリソースの動作開始が遅延するおそれがある。
【００１３】
これに対し、請求項４では、スケジュール作成部は、高負荷動作に対応するブロックを、対応する高負荷動作の開始時が同時期に集中しないように時間軸上に配置する。したがって、制御部での制御負荷の集中が回避される結果、制御部でのデータ処理の効率化が図られたスケジュールを作成でき、ゆえに、リソースの動作開始の遅延を確実に防止できる。
【００１４】
請求項５に記載の発明は、前記基板処理装置では、プロセスジョブが共通する複数枚の基板のうち所定の第１の基板のスケジュールの作成終了後、前記複数枚の基板のうち処理順序が前記第１の基板よりも後の第２の基板のスケジュールの作成が終わっていない状態で、作成済みのスケジュールの実行が開始されるようになっており、前記作成済みのスケジュールの実行開始後において、当該作成済みのスケジュールのうち未実行の部分を変更するスケジュール変更工程をさらに含む、請求項１〜４のいずれか一項に記載のスケジュール作成方法である。
【００１５】
この方法によれば、プロセスジョブが共通する複数枚の基板のうちいずれかの基板のスケジュールの作成が終了すると、他の基板のスケジュールの作成が未終了であっても、作成したスケジュールの実行を開始する。
たとえば、特許文献１に記載のように、プロセスジョブが共通する全ての基板のスケジュールの作成が終了した後に、基板処理装置の動作を開始させるようにする場合、膨大な量のデータを基板処理装置に記憶させる必要がある。
【００１６】
これに対し、請求項１の方法では、少なくとも実行対象の基板のスケジュールを記憶しておけば足り、これにより、基板処理装置に記憶させるべきスケジュールのデータ量の低減を図ることができる。
また、作成済みのスケジュールのうち未実行の部分を、当該スケジュールの開始後に変更するので、基板処理装置の実際の動作状況（基板処理状況）に応じて、スケジュールの内容を変更できる。これにより、実際の動作状況に応じた柔軟なスケジュールを作成できる。
【００１７】
請求項６に記載の発明は、前記スケジュール変更工程は、前記スケジュールの実行開始後において、前記作成済みのスケジュールのうち未実行のブロックを削除する工程と、削除したブロックを、前記第２の基板についてのブロックの配置と並行して、時系列に従って再配置する再配置工程とをさらに含む、請求項５に記載のスケジュール作成方法である。
【００１８】
この方法によれば、第２の基板に関するブロックの配置と並行して、作成済みのスケジュールから削除した未実行のブロックを、時系列に従って再配置する。削除したブロックの再配置および第２の基板に関するブロックの配置は、複数枚の基板相互間の干渉が生じることがなく、かつ効率的にリソース（処理ユニット等）を稼働させて複数枚の基板に対する処理が行われるように、時系列に従って行われる。削除したブロックおよび第２の基板に関するブロックの配置位置をよりきめ細かに決定できるので、リソースの稼働率を高めることができ、これにより、基板処理装置の生産性を向上できる。
【００１９】
前記の目的を達成するための請求項７に記載の発明は、基板を１枚ずつ処理する少なくとも一つの枚葉式の処理ユニットと、前記処理ユニットを制御するための制御部と、前記処理ユニットを含むリソースの動作を、時系列に従って規定するためのスケジュールを作成するためのスケジュール作成部とを含み、請求項１〜６のいずれか一項に記載のスケジュール作成方法によって前記スケジュール作成部が作成したスケジュールに従って、前記制御部は前記リソースを制御する、基板処理装置を提供する。
【００２０】
この構成によれば、スケジュール作成部は、各基板に対する処理内容を規定する複数のブロックを時系列に従って配置することにより当該基板のスケジュールを作成し、この基板のスケジュールを基板枚数分作成する。このとき、ブロックに対応する動作に高負荷時間帯が含まれる場合に、ブロックの高負荷時間帯に対応する部分に高負荷情報を付加する。これにより、制御部での制御負荷の集中を回避することが可能である。このスケジュールに従って制御部がリソースを制御するので、制御部でのデータ処理の効率化を図りながら基板を処理することが可能である。
【００２１】
請求項８に記載の発明は、前記制御部は、プロセスジョブが共通する複数枚の基板のうち所定の第１の基板のスケジュール作成の終了後、前記複数枚の基板のうち処理順序が前記第１の基板よりも後の第２の基板のスケジュールの作成が終わっていない状態で、作成済みのスケジュールの実行を開始する、請求項７に記載の基板処理装置である。
この構成によれば、ある基板のスケジュールの作成が終了すると、他の基板のスケジュールの作成が未終了であっても、作成したスケジュールの実行を開始する。したがって、基板処理装置に記憶させるスケジュールのデータ量の低減を図ることが可能である。
【図面の簡単な説明】
【００２２】
【図１】この発明の一実施形態に係る基板処理装置のレイアウトを示す図解的な平面図である。
【図２】前記基板処理装置の図解的な側面図である。
【図３Ａ】前記基板処理装置に備えられた処理ユニットの内部を水平方向に見た模式図である。
【図３Ｂ】前記基板処理装置の電気的構成を説明するためのブロック図である。
【図４Ａ】この発明の一実施形態を説明するためのフローチャートであり、スケジューリング機能部による処理例が示されている。
【図４Ｂ】この発明の一実施形態を説明するためのフローチャートであり、スケジューリング機能部による処理例が示されている。
【図４Ｃ】この発明の一実施形態を説明するためのフローチャートであり、スケジューリング機能部による処理例が示されている。
【図４Ｄ】この発明の一実施形態を説明するためのフローチャートであり、スケジューリング機能部による処理例が示されている。
【図５】この発明の一実施形態を説明するためのフローチャートであり、スケジューリング機能部による処理例が示されている。
【図６】仮タイムテーブルの一例を示す。
【図７】仮タイムテーブル作成処理の流れを示すフローチャートである。
【図８】ブロックの配置位置検索処理の流れを示すフローチャートである。
【図９】スケジュールの作成の一例を示す。
【図１０】スケジュールの作成の一例を示す。
【図１１】スケジュールの作成の一例を示す。
【図１２】スケジュールの作成の一例を示す。
【図１３】スケジュールの作成の一例を示す。
【図１４】スケジュールの作成の一例を示す。
【図１５】スケジュールの作成の一例を示す。
【図１６】スケジュールの作成の一例を示す。
【図１７】スケジュールの作成の一例を示す。
【図１８】スケジュールの作成の一例を示す。
【図１９】スケジュールの作成の一例を示す。
【図２０】スケジュールの作成の一例を示す。
【図２１】スケジュールの作成の一例を示す。
【図２２】スケジュールの作成の一例を示す。
【図２３】スケジュールの作成の一例を示す。
【図２４】スケジューリング機能部によって作成される、複数枚の基板のスケジュールの全体を示す。
【図２５Ａ】スケジュールの作成の第１の変形例を示す。
【図２５Ｂ】基板処理を開始するまでのデータフローを示す。
【図２６】スケジュールの作成の第２の変形例を示す。
【図２７】スケジュールの作成の第３の変形例を示す。
【発明を実施するための形態】
【００２３】
以下では、この発明の実施の形態を、添付図面を参照して詳細に説明する。
図１は、この発明の一実施形態に係る基板処理装置１のレイアウトを示す図解的な平面図であり、図２は、その図解的な側面図である。図３Ａは、基板処理装置１に備えられた処理ユニットＳＰＩＮ１〜ＳＰＩＮ１２の内部を水平方向に見た模式図である。
基板処理装置１は、インデクサセクション２と、処理セクション３とを含む。処理セクション３は、インデクサセクション２との間で基板Ｗを受け渡しするための受け渡しユニットＰＡＳＳを備えている。インデクサセクション２は、未処理の基板Ｗを受け渡しユニットＰＡＳＳに渡し、受け渡しユニットＰＡＳＳから処理済みの基板Ｗを受け取る。処理セクション３は、受け渡しユニットＰＡＳＳから未処理の基板Ｗを受け取って、その基板Ｗに対して、処理剤（処理液または処理ガス）を用いた処理、紫外線等の電磁波を用いた処理、物理洗浄処理（ブラシ洗浄、スプレーノズル洗浄等）などの各種の処理を施す。そして、処理セクション３は、処理後の基板Ｗを受け渡しユニットＰＡＳＳに渡す。
【００２４】
インデクサセクション２は、複数のステージＳＴ１〜ＳＴ４と、インデクサロボットＩＲとを含む。
ステージＳＴ１〜ＳＴ４は、複数枚の基板Ｗ（たとえば半導体ウエハ）を積層状態で収容した基板収容器Ｃをそれぞれ保持できる基板収容器保持部である。基板収容器Ｃは、基板Ｗを密閉した状態で収納するＦＯＵＰ（Front Opening Unified Pod）であってもよいし、ＳＭＩＦ（Standard Mechanical Inter Face）ポッド、ＯＣ（Open Cassette）等であってもよい。たとえば、基板収容器ＣをステージＳＴ１〜ＳＴ４に載置したとき、基板収容器Ｃでは、水平姿勢の複数枚の基板Ｗが互いに間隔を開けて鉛直方向に積層された状態となる。
【００２５】
インデクサロボットＩＲは、たとえば、基台部６と、多関節アーム７と、一対のハンド８Ａ，８Ｂとを含む。基台部６は、たとえば、当該基板処理装置１のフレームに固定されている。多関節アーム７は、水平面に沿って回動可能な複数本のアーム部を互いに回動可能に結合して構成されており、アーム部の結合箇所である関節部でアーム部間の角度を変更することによって、屈伸するように構成されている。多関節アーム７の基端部は、基台部６に対して、鉛直軸線回りの回動が可能であるように結合されている。さらに、多関節アーム７は、基台部６に対して昇降可能に結合されている。換言すれば、基台部６には、多関節アーム７を昇降させるための昇降駆動機構、多関節アーム７を鉛直軸線回りに回動させるための回動駆動機構が内蔵されている。また、多関節アーム７には、各アーム部を独立して回動させるための個別回動駆動機構が備えられている。多関節アーム７の先端部に、鉛直軸線回りの個別回動および水平方向への個別進退が可能であるように、ハンド８Ａ，８Ｂが結合されている。多関節アーム７には、ハンド８Ａ，８Ｂを鉛直軸線回りに個別に回動させるためのハンド回動駆動機構と、ハンド８Ａ，８Ｂを水平方向に個別に進退させるためのハンド進退機構とが備えられている。ハンド８Ａ，８Ｂは、たとえば、１枚の基板Ｗをそれぞれ保持できるように構成されている。なお、ハンド８Ａ，８Ｂは上下に重なった状態で配置されていてもよいが、図１では、明瞭化のために、ハンド８Ａ，８Ｂを紙面に平行な方向（水平方向）にずらして描いてある。
【００２６】
この構成により、インデクサロボットＩＲは、いずれかのステージＳＴ１〜ＳＴ４に保持された基板収容器Ｃから一枚の未処理基板Ｗをハンド８Ａで搬出して受け渡しユニットＰＡＳＳに渡すように動作する。さらに、インデクサロボットＩＲは、受け渡しユニットＰＡＳＳから一枚の処理済み基板Ｗをハンド８Ｂで受け取って、いずれかのステージＳＴ１〜ＳＴ４に保持された基板収容器Ｃに収容するように動作する。
【００２７】
処理セクション３は、複数（この実施形態では１２個）の処理ユニットＳＰＩＮ１〜ＳＰＩＮ１２と、主搬送ロボットＣＲと、前述の受け渡しユニットＰＡＳＳとを含む。
処理ユニットＳＰＩＮ１〜ＳＰＩＮ１２は、この実施形態では、立体的に配置されている。より具体的には、三階建て構造をなすように複数の処理ユニットＳＰＩＮ１〜ＳＰＩＮ１２が配置されており、各階部分に４つの処理ユニットが配置されている。すなわち、一階部分に４つの処理ユニットＳＰＩＮ１，ＳＰＩＮ４，ＳＰＩＮ７，ＳＰＩＮ１０が配置され、二階部分に別の４つの処理ユニットＳＰＩＮ２，ＳＰＩＮ５，ＳＰＩＮ８，ＳＰＩＮ１１が配置され、三階部分にさらに別の処理ユニットＳＰＩＮ３，ＳＰＩＮ６，ＳＰＩＮ９，ＳＰＩＮ１２が配置されている。さらに具体的には、平面視において処理セクション３の中央に主搬送ロボットＣＲが配置されており、この主搬送ロボットＣＲとインデクサロボットＩＲとの間に受け渡しユニットＰＡＳＳが配置されている。受け渡しユニットＰＡＳＳを挟んで対向するように、３つの処理ユニットＳＰＩＮ１〜ＳＰＩＮ３を積層した第１処理ユニット群Ｇ１と、別の３つの処理ユニットＳＰＩＮ４〜ＳＰＩＮ６を積層した第２処理ユニット群Ｇ２とが配置されている。そして、第１処理ユニット群Ｇ１に対してインデクサロボットＩＲから遠い側に隣接するように、３つの処理ユニットＳＰＩＮ７〜ＳＰＩＮ９を積層した第３処理ユニット群Ｇ３が配置されている。同様に、第２処理ユニット群Ｇ２に対してインデクサロボットＩＲから遠い側に隣接するように、３つの処理ユニットＳＰＩＮ１０〜ＳＰＩＮ１２を積層した第４処理ユニット群Ｇ４が配置されている。第１〜第４処理ユニット群Ｇ１〜Ｇ４によって、主搬送ロボットＣＲが取り囲まれている。
【００２８】
主搬送ロボットＣＲは、たとえば、基台部１１と、多関節アーム１２と、一対のハンド１３Ａ，１３Ｂとを含む。基台部１１は、たとえば、当該基板処理装置１のフレームに固定されている。多関節アーム１２は、水平面に沿って延びた複数本のアーム部を互いに回動可能に結合して構成されており、アーム部の結合箇所である関節部でアーム部間の角度を変更することによって、屈伸するように構成されている。多関節アーム１２の基端部は基台部１１に対して、鉛直軸線回りの回動が可能であるように結合されている。さらに、多関節アーム１２は、基台部１１に対して昇降可能に結合されている。換言すれば、基台部１１には、多関節アーム１２を昇降させるための昇降駆動機構、多関節アーム１２を鉛直軸線回りに回動させるための回動駆動機構が内蔵されている。また、多関節アーム１２には、各アーム部を独立して回動させるための個別回動駆動機構が備えられている。多関節アーム１２の先端部に、鉛直軸線回りの個別回動および水平方向への個別進退が可能であるように、ハンド１３Ａ，１３Ｂが結合されている。多関節アーム１２には、ハンド１３Ａ，１３Ｂを鉛直軸線回りに個別に回動させるためのハンド回動駆動機構と、ハンド１３Ａ，１３Ｂを水平方向に個別に進退させるためのハンド進退機構とが備えられている。ハンド１３Ａ，１３Ｂは、たとえば、１枚の基板Ｗをそれぞれ保持できるように構成されている。なお、ハンド１３Ａ，１３Ｂは上下に重なった状態で配置されていてもよいが、図１では、明瞭化のために、ハンド１３Ａ，１３Ｂを紙面に平行な方向（水平方向）にずらして描いてある。
【００２９】
この構成により、主搬送ロボットＣＲは、受け渡しユニットＰＡＳＳから未処理の一枚の基板Ｗをハンド１３Ａで受け取り、その未処理の基板Ｗをいずれかの処理ユニットＳＰＩＮ１〜ＳＰＩＮ１２に搬入する。また、主搬送ロボットＣＲは、処理ユニットＳＰＩＮ１〜ＳＰＩＮ１２で処理された処理済みの基板Ｗをハンド１３Ｂで受け取り、その基板Ｗを受け渡しユニットＰＡＳＳに渡す。
【００３０】
処理ユニットＳＰＩＮ１〜ＳＰＩＮ１２は、基板Ｗを１枚ずつ処理する枚葉型の処理ユニットである。処理ユニットＳＰＩＮ１〜ＳＰＩＮ１２は、基板Ｗの中央部を通る鉛直な軸線まわりに基板Ｗを回転させながら、基板Ｗに処理液を供給する液処理ユニットであってもよいし、処理ガスを用いた処理を行うガス処理ユニットであってもよいし、紫外線等の電磁波を用いた処理を行う電磁波処理ユニットであってもよいし、物理洗浄処理（ブラシ洗浄、スプレーノズル洗浄等）を行う物理洗浄処理ユニットであってもよい。図３Ａには、処理ユニットＳＰＩＮ１〜ＳＰＩＮ１２が、液処理ユニットである例を示している。
【００３１】
図３Ａに示すように、各処理ユニットＳＰＩＮ１〜ＳＰＩＮ１２は、内部空間を有する箱形の処理室１７と、処理室１７内で１枚の基板Ｗを水平姿勢で保持して基板Ｗの中央部を通る鉛直な回転軸線Ｘ１まわりに基板Ｗを回転させるスピンチャック１５と、基板Ｗの回転軸線Ｘ１まわりにスピンチャック１５を取り囲む筒状の処理カップ１６とを含む。
処理室１７は、箱状の隔壁１７ａによって隔壁されている。隔壁１７ａには、処理室１７内に基板Ｗを搬出入するための開口１７ｂが形成されている。開口１７ｂはシャッタ１７ｃによって開閉される。シャッタ１７ｃは、シャッタ昇降機構（図示しない）によって、開口１７ｂを覆う閉位置（図３Ａに二点鎖線で示す）と、開口１７ｂを開放する開位置（図３Ａに実線で示す）との間で昇降させられる。
【００３２】
基板Ｗの搬出入の際には、主搬送ロボットＣＲが、開口１７ｂを通して処理室３内にハンド１３Ａ，１３Ｂをアクセスさせる。これにより、スピンチャック１５上に未処理の基板Ｗを載置したり、スピンチャック１５から処理済の基板Ｗを取り除いたりできる。
図３Ａに示すように、スピンチャック１５は、水平な姿勢をなす円板状のスピンベース１５ａと、スピンベース１５ａの上面外周部から上方に突出する複数のチャックピン１５ｂと、複数のチャックピン１５ｂを基板Ｗの周縁部に押し付けるチャック開閉機構と、スピンベース１５ａの中央部から下方に延びる回転軸１５ｃと、回転軸１５ｃを回転させることにより、複数のチャックピン１５ｂに保持されている基板Ｗを回転させるスピンモータ１５ｄとを含む。スピンチャック１５は、図３Ａに示す挟持式のチャックに限らず、基板の下面をスピンベースの上面に吸着させることにより基板を水平な姿勢で保持するバキューム式のチャックであってもよい。
【００３３】
図３Ａに示すように、処理ユニットＳＰＩＮ１〜ＳＰＩＮ１２は、スピンチャック１５に保持されている基板Ｗの上面に向けて薬液を吐出する薬液ノズル５１と、薬液ノズル５１に供給される薬液を貯留する薬液タンク５２と、薬液タンク５２内の薬液を薬液ノズル５１に導く薬液配管５３と、薬液タンク５２内の薬液を薬液配管５３に送る送液装置５４（たとえば、ポンプ）と、薬液配管５３の内部を開閉する薬液バルブ５５とを含む。処理ユニットＳＰＩＮ１〜ＳＰＩＮ１２は、さらに、薬液バルブ５５よりも上流側（薬液タンク５２側）で薬液配管５３と薬液タンク５２とを接続する循環配管５６と、循環配管５６の内部を開閉する循環バルブ５７と、循環配管５６を流れる薬液の温度を調節する温度調節装置５８とを含む。
【００３４】
薬液バルブ５５および循環バルブ５７の開閉は、コンピュータ２１（図３Ｂ参照）によって制御される。薬液タンク５２内の薬液が薬液ノズル５１に供給されるときには、薬液バルブ５５が開かれ、循環バルブ５７が閉じられる。この状態では、送液装置５４によって薬液タンク５２から薬液配管５３に送られた薬液が、薬液ノズル５１に供給される。一方、薬液ノズル５１への薬液の供給が停止されるときには、薬液バルブ５５が閉じられ、循環バルブ５７が開かれる。この状態では、送液装置５４によって薬液タンク５２から薬液配管５３に送られた薬液が、循環配管５６を通じて薬液タンク５２内に戻る。そのため、薬液ノズル５１への薬液の供給が停止されている供給停止中は、薬液が、薬液タンク５２、薬液配管５３、および循環配管５６によって構成された循環経路を循環し続ける。温度調節装置５８は、循環配管５６内を流れる薬液の温度を調節する。したがって、薬液タンク５２内の薬液は、供給停止中に循環経路で加熱され、室温よりも高い温度に維持される。
【００３５】
さらに、薬液ノズル５１から微少量の薬液を吐出してプリディスペンスが行えるように、薬液バルブ５５は開度が調整可能となっている。また、薬液ノズル５１近傍には薬液回収部材（図示しない）が配置されており、薬液ノズル５１からプリディスペンスされた薬液が回収できるようになっている。
また、図３Ａに示すように、処理ユニットＳＰＩＮ１〜ＳＰＩＮ１２は、スピンチャック１５に保持されている基板Ｗの上面に向けてリンス液を吐出するリンス液ノズル５９と、リンス液供給源（図示しない）からのリンス液をリンス液ノズル５９に供給するリンス液配管６０と、リンス液配管６０からリンス液ノズル５９へのリンス液の供給および供給停止を切り換えるリンス液バルブ６１とを含む。リンス液としては、ＤＩＷ（脱イオン水）等が用いられる。薬液ノズル５１により基板Ｗに薬液を供給後に、リンス液ノズル５９からリンス液を基板Ｗに供給することにより、基板Ｗに付着している薬液を洗い流すことができる。
【００３６】
さらに、処理ユニットＳＰＩＮ１〜ＳＰＩＮ１２は、処理室１７内の所定部位（たとえばスピンベース１５ａ）に向けて洗浄液を吐出するための洗浄液ノズル６２と、洗浄液供給源（図示しない）からの洗浄液を洗浄液ノズル６２に供給する洗浄液配管６３と、洗浄液配管６３から洗浄液ノズル６２への洗浄液の供給および供給停止を切り換える洗浄液バルブ６４とを含む。洗浄液としては、ＤＩＷ（脱イオン水）等が用いられる。洗浄液ノズル６２は、処理室１７の内壁）に取り付けられている。複数のチャックピン１５ｂにダミー基板（図示しない。洗浄用治具）や基板Ｗが保持された状態で、スピンベース１５ａおよびチャックピン１５ｂが回転されると共に、洗浄液ノズル６２から洗浄液が吐出される。洗浄液ノズル６２から吐出される洗浄液が、チャックピン１５ｂに保持されているダミー基板の上面または基板Ｗの上面で跳ね返って、処理室１７内に洗浄液が飛散するようになる。洗浄液をこのように飛散させることで、理室１７内に配置された各種部品（チャックピン１５ｂや処理カップ１６）を洗浄できる。
【００３７】
図３Ｂは、基板処理装置１の電気的構成を説明するためのブロック図である。基板処理装置１は、処理ユニットＳＰＩＮ１〜ＳＰＩＮ１２、主搬送ロボットＣＲおよびインデクサロボットを制御するコンピュータ２１を含む。
コンピュータ２１は、メインコントローラ２２と、サブコントローラ２３とを備えている。
【００３８】
メインコントローラ２２は、パーソナルコンピュータ（ＦＡパソコン）の形態を有していてもよく、第１の制御部２４と、出入力部２５と、第１の記憶部２６とを備えている。第１の制御部２４は、ＣＰＵ等の演算ユニットを含む。出入力部２５は、表示ユニット等の出力機器と、キーボード、ポインティングデバイス、タッチパネル等の入力機器とを含む。さらに、出入力部２５は、ホストコンピュータＨＣとの通信のための通信モジュールを含む。第１の記憶部２６は、固体メモリデバイス、ハードディスクドライブ等の記憶装置を含む。
【００３９】
第１の制御部２４は、オンライン制御部２７と、装置管理部２８と、スケジューリング機能部（スケジュール作成部）２９とを含む。スケジューリング機能部２９は、スケジューリングエンジン３０と、処理実行指示部３１とを含む。スケジューリングエンジン３０は、基板Ｗを基板収容器Ｃから搬出し処理ユニットＳＰＩＮ１〜ＳＰＩＮ１２で処理した後基板収容器Ｃに収容するために、基板処理装置１のリソースを時系列に従って作動させるためのスケジュール（計画）を作成する。スケジューリングエンジン３０によるスケジュールの作成の結果（スケジューリング結果３２）は、処理実行指示部３１に与えられる。処理実行指示部３１は、与えられたスケジュールに従って、基板処理装置１のリソースを作動させる旨のコマンドを、サブコントローラ２３に向けて送信する。
【００４０】
第１の記憶部２６は、第１の制御部２４をスケジューリング機能部として作動させるためのスケジュール作成プログラム３９と、スケジューリング機能部によって作成されたスケジュールデータ３３とを含むデータ等を記憶するように構成されている。
サブコントローラ２３は、たとえば制御ＶＭＥ（VERSAmodule Eurocard）ボードにより構成されており、第２の制御部３４と、第２の記憶部３５と、シリアル通信部３６とを備えている。第２の制御部３４は、演算処理を実行するＣＰＵ３７を含む。第２の制御部３４が、特許請求の範囲の「制御部」に相当する。
【００４１】
第２の記憶部３５は、基板処理装置１による処理内容のデータである処理内容データ３８を含む各種データ等を記憶するように構成されている。処理内容データ３８は、各基板Ｗに付与されたプロセスジョブ符号と、プロセスジョブ符号に対応付けられたレシピとを含む。
レシピは、基板処理内容を定義したデータであり、基板処理条件および基板処理手順を含む。より具体的には、並行処理ユニット情報、使用処理液情報、処理時間情報、後処理実行条件、前準備実行条件等を含む。
【００４２】
「並行処理ユニット情報」は、当該レシピに含まれる基板処理を実行することのできる処理ユニットを指定する情報であり、指定された処理ユニットによる並行処理が可能であることを表す。換言すれば、指定処理ユニットのうちの一つが使用できないときには、それ以外の指定処理ユニットによる代替が可能であることを表す。「使用できないとき」とは、当該処理ユニットが別の基板Ｗの処理のために使用中であるとき、当該処理ユニットが故障中であるとき、オペレータが当該処理ユニットで基板Ｗの処理をさせたくないと考えているときなどである。
【００４３】
「使用処理液情報」は、当該レシピに含まれる基板処理の際に使用される処理液（各種薬液およびリンス液）に関する情報である。
「処理時間情報」は、レシピに含まれる各工程の実行に要する時間に関する情報である。具体的には当該レシピの指定処理ユニットにおける基板の滞在時間、次に述べる予備処理工程（前準備工程および後処理工程）の実行に要する時間などが含まれる。予備処理工程とは所定の処理ユニットにおいて基板処理を実行する前に、当該基板処理が精密に実行できるよう、基板処理工程の準備を行う処理であり、本実施形態では、基板処理の前に実行される前準備工程と、直前の基板処理の後に実行される後処理工程とが対応する。
【００４４】
「前準備実行条件」は、前準備工程に関する情報である。
前準備工程とは、所定の基板処理を実行する前に処理ユニットで実行すべき前準備作業である。
たとえば、図３Ａを用いて前述したように、処理ユニットＳＰＩＮ１〜１２には、所定の薬液を規定された温度で基板Ｗに向けて吐出するための温度調節装置５８が設けられている。レシピに規定された目的温度で薬液を基板Ｗに向けて吐出させる必要があるが、温度調節装置５８が薬液を目的温度まで加熱するには一定時間を要する。このため、薬液ノズル５１から基板Ｗに向けて薬液を吐出させる前から、循環バルブ５７を開放し温度調節装置５８を作動させた状態で送液装置５４を作動させることで循環配管５６の中で薬液を循環させることがある（前準備工程の例１）。
【００４５】
また、薬液ノズル５１および薬液配管５３の少なくとも一方に目的温度範囲外となってしまった薬液が残留していると目的温度外の薬液が基板Ｗに向けて吐出されるおそれがある。このため、実際に薬液吐出を開始する所定時間前から薬液ノズル５１から少量の薬液を排出する、いわゆるプリディスペンスを実行することがある（前準備工程の例２）。
前準備実行条件には、どのような前準備（たとえば前準備工程の例１を行う場合には、循環バルブ５７の開放、温度調節装置５８および送液装置５４の作動、温度調節装置５８の所定の設定温度での温度調整等）を、どのタイミング（たとえば、基板処理の開始の所定時間前）から開始すべきか（たとえば、割り当てられた処理ユニットにおいて基板処理を開始する所定時間前、あるいは薬液ノズル５１から実際に薬液を吐出する所定時間前）等の前準備工程の具体的内容が記述されている。
【００４６】
さらに、前準備実行条件には、前準備工程の要否に関する情報も記述されている。
前準備工程の要否は、基板処理の内容や、当該基板処理の前に実行される基板処理の内容等によって決定される。前準備工程の要否の一例として次のような例を挙げる。たとえば、温度依存性の高い処理液を用いる基板処理を実行する場合には、前準備工程としてのプリディスペンス処理を実行することが必要であると考えられるから、前準備工程の実行を「要」にする。一方、温度依存性の低い処理液を用いる基板処理を実行する場合には、プリディスペンス処理は不要であるから、前準備工程の実行を「否」にする。なお、前準備工程の内容と要否とは、プロセスジョブ毎に規定されている。
【００４７】
また、前準備工程を必要とする基板処理を連続して実行する場合、同一の処理ユニットの２回目以降の基板処理の前には、原則として、前準備工程を実行する必要がない。しかしながら、前の基板処理のために前準備工程が実行された場合であっても、次の基板処理工程を開始するまでに装置異常等により長時間が経過した場合には、前準備工程が必要であると判断される場合がある。
【００４８】
「後処理実行条件」は、後処理工程に関する情報である。
後処理工程とは、所定の基板処理を実行した後に、処理ユニットＳＰＩＮ１〜ＳＰＩＮ１２の次の基板処理のために実行すべき作業である。
後処理実行条件には、後処理工程の具体的内容に関する情報、後処理工程の要否に関する情報が含まれている。後処理工程の要否および内容は、レシピに含まれるブロック毎に規定されている。
【００４９】
後処理工程の具体例は、処理ユニットＳＰＩＮ１〜ＳＰＩＮ１２の処理室１７内の洗浄処理（チャンバ洗浄工程）である。処理室１７（図３Ａ参照）内の洗浄を実行することによって、処理室１７に次に搬入される基板Ｗに対して、前の基板Ｗに対して行われた基板処理の影響が及ぶことを回避できる。これにより、精密な基板処理を実現でき、基板処理品質を保つことができる。後処理工程は、洗浄処理（チャンバ洗浄工程）に限らず、基板を保持するチャックピンの洗浄（チャックピン洗浄工程）や、処理室１７内のその他の部品（たとえば処理カップ１６（図３Ａ参照））の洗浄処理（部品洗浄工程）であってもよいし、これらの洗浄処理の２つ以上を含んでいてもよい。チャンバ洗浄や部品洗浄は洗浄液ノズル６２（図３Ａ参照）から洗浄液を吐出することで実行できる。
【００５０】
後処理実行条件には、後処理工程の要否に関する情報が記述されている。後処理工程の要否は、レシピに含まれるブロック毎に規定されている。
後処理工程の要否は、基板処理の内容や、当該基板処理の前に実行される基板処理の内容、当該基板処理の直後に実行される基板処理の内容等によって決定される。後処理工程の要否の一例として次のような例を挙げる。処理室１７を汚染するおそれが大きい基板処理を行う場合には、その次に基板処理を行うか否かに拘わらず後処理工程の実行を「要」にする。また、たとえば同一の処理室１７で処理工程が実行されないまま、所定時間が経過した場合や所定枚数の基板Ｗが処理された場合には、後処理工程の実行を「要」にする。さらに、同一の処理室１７で直後に行われる基板処理に影響を与える可能性がある場合には、当該基板処理後に後処理工程を実行する必要があるから「要」にする。反対に、直前の基板処理で同じ処理液しか使用しない場合など、当該基板処理が直後の基板処理に影響を与えない場合には、基板処理の後に後処理工程を行う必要がなから「否」にする。
【００５１】
プロセスジョブとは、共通の処理が施される１枚または複数枚の基板Ｗをいう。プロセスジョブ符号とは、プロセスジョブを識別するための識別情報である。すなわち、共通のプロセスジョブ符号が付与された複数枚の基板Ｗには、当該プロセスジョブ符号に対応付けられたレシピによる共通の処理が施される。ただし、異なるプロセスジョブ符号に対応する処理内容（レシピ）が同じである場合もあり得る。たとえば、処理順序（基板収容器Ｃ（図１等参照）からの払い出し順序）が連続している複数枚の基板Ｗに対して共通の処理が施されるとき、それらの複数枚の基板Ｗに対して共通のプロセスジョブ符号が付与される。
【００５２】
処理内容データの作成および記憶は、基板処理装置１での基板処理に先立ってオペレータの操作により行われる。具体的には、出入力部２５の操作によりオペレータが入力する情報に基づいて、第１の制御部２４は、プロセスジョブおよびレシピを生成する。生成された処理内容データ２８（プロセスジョブおよびレシピ）は、サブコントローラ２３に付与されて、第２の記憶部３５に格納される。
【００５３】
シリアル通信部３６は、処理ユニットＳＰＩＮ１〜ＳＰＩＮ１２、主搬送ロボットＣＲおよびインデクサロボットＩＲとの間でシリアル通信を行う。
なお、サブコントローラ２３は、メインコントローラ２２と同一のコンピュータで構成されていてもよいし、メインコントローラ２２と別のコンピュータで構成されていてもよい。
【００５４】
基板収容器Ｃが基板処理装置１に搬入されると、ホストコンピュータＨＣは、プロセスジョブ生成指示をメインコントローラ２２に送信する。プロセスジョブ生成指示には、プロセスジョブ符号と、レシピの識別情報とが含まれる。
各プロセスジョブには、プロセスジョブ生成指示で指定されているレシピの識別情報が含まれている。第２の制御部３４は、第２の記憶部３５に記憶されている複数のレシピの中からプロセスジョブ生成指示で指定されているレシピの識別情報に対応するレシピを選択し、選択したレシピを読み込む。これにより、プロセスジョブに対応するレシピがサブコントローラ２３によって準備される。
【００５５】
図４Ａ〜図４Ｄおよび図５は、スケジューリング機能部２９による処理例を説明するためのフローチャートである。なお、図４Ａ〜図４Ｄのプロセスと図５のプロセスとは並行して実行される。具体的には、図４Ａ〜図４Ｄのプロセスではプロセスジョブに属する各基板Ａ１〜Ａ１２の基板のスケジューリングが行われる。図５のプロセスではこれと並行して、各基板Ａ１〜Ａ１２のスケジューリングの終了するタイミングが監視されるようになっている。図６は、仮タイムテーブルの一例を示す。図７は、仮タイムテーブル作成処理の流れを示すフローチャートである。図８は、ブロックの配置位置の検索処理流れを示すフローチャートである。図９〜図２３は、スケジュールの作成の一例を示す。
【００５６】
図４Ａ〜図４Ｄには、第１の制御部２２がスケジュール作成プログラム３９を実行することによって行われる処理が表されている。換言すれば、スケジュール作成プログラム３９には、図４に示す処理を第１の制御部２２に実行させるように工程群が組み込まれている。
本実施形態に係るスケジュール作成方法の特徴の一つは、後述する「高負荷動作」に対応するブロック同士を、その高負荷時間帯が集中しないように時間軸上に配置するようにした点である。また、本実施形態に係るスケジュール作成方法の他の特徴は、共通のプロセスジョブ符号された複数枚の基板Ｗのうち、基板収容器Ｃから最初に払い出される一枚目の基板Ｗのスケジュールの作成の完了後、当該一枚目の基板Ｗ以外の基板Ｗのスケジュールの作成が未完了であるタイミングで、作成済みのスケジュールを開始する点である。
【００５７】
以下、図１〜図５を主に参照して、スケジュールの作成の例について説明する。図６〜図２３は適宜参照する。
以下のスケジュール例では、同じプロセスジョブ符号「Ａ」が付与された「Ｎ」（Ｎは「２」以上「１２」以下の整数）枚の基板Ｗの計画（スケジュール）を作成する例を説明する。便宜上、最初に払い出される１枚目の基板（第１の基板）Ｗを「基板Ａ１」とし、その次に払い出される２枚目の基板Ｗを「基板Ａ２」として説明する。
【００５８】
スケジュールの作成に先立って、後述する「高負荷動作」の許容範囲（「高負荷動作」ではないと判定される条件）が第１の記憶部２６に記憶される（ステップＳ０）。たとえば、「高負荷動作」の許容範囲の一例として、プログラム実行時のＣＰＵ３７の使用率が、任意の１秒間で平均９０％未満であること、およびプログラム実行時のＣＰＵ３７の使用率１００％である状態が０．１秒間継続しないことを例示できる。
【００５９】
ホストコンピュータＨＣから、もしくは出入力部２５からオペレータによって基板処理開始の指示が与えられると（ステップＳ１）、スケジューリング機能部２９は、基板処理開始指示が与えられた全ての基板Ｗに関して、仮タイムテーブルを作成する（ステップＳ２）。基板処理開始指示は、基板Ｗ一枚単位でなく、基板収容器Ｃに収容されている全ての基板Ｗを一単位として発行されてもよい。基板処理開始指示は、一つまたは複数のプロセスジョブ符号が付与された基板Ｗの処理開始を指示するものであってもよい。
【００６０】
たとえば、処理内容データにおいてあるプロセスジョブ符号に対応付けられたレシピが、処理ユニットＳＰＩＮ１〜ＳＰＩＮ１２の並行処理を指定しているとする。すなわち、当該レシピに従う基板処理が、１２個の処理ユニットＳＰＩＮ１〜ＳＰＩＮ１２のいずれにおいても実行可能である場合を考える。この場合、当該プロセスジョブ符号が付与された基板Ｗが処理を受けるときに通る経路は、１２通りである。すなわち、その基板Ｗの処理のために選択し得る経路は、処理ユニットＳＰＩＮ１〜ＳＰＩＮ１２のいずれかを通る１２個の経路である。そこで、スケジューリング機能部２９は、その１２個の経路に対応した仮タイムテーブルを作成する。
【００６１】
処理ユニットＳＰＩＮ１を通る経路に対応した仮タイムテーブルの例を図６に示す。この仮タイムテーブルは、前準備工程の実行を表す前準備ブロックと、搬入前処理工程の実行を表す搬入前処理ブロックと、処理ユニットＳＰＩＮ１による当該基板Ｗに対する処理を表す基板処理ブロックと、搬出後処理工程の実行を表す搬出後処理ブロックと、インデクサロボットＩＲにより基板収容器Ｃから基板Ｗの払い出し（搬出）を表す第１の搬出ブロックと、インデクサロボットＩＲによる当該基板Ｗの受け渡しユニットＰＡＳＳへの搬入を表す第１の搬入ブロックと、主搬送ロボットＣＲによる受け渡しユニットＰＡＳＳからの当該基板Ｗの搬出を表す第２の搬出ブロックと、主搬送ロボットＣＲによる当該基板Ｗの処理ユニットＳＰＩＮ１への搬入を表す第２の搬入ブロックと、主搬送ロボットＣＲによる処理ユニットＳＰＩＮ１からの処理済みの基板Ｗの搬出を表す第３の搬出ブロックと、主搬送ロボットＣＲによる当該基板Ｗの受け渡しユニットＰＡＳＳへの搬入を表す第３の搬入ブロックと、インデクサロボットＩＲによる当該基板Ｗの受け渡しユニットＰＡＳＳからの搬出を表す第４の搬出ブロックと、インデクサロボットＩＲによる当該基板Ｗの基板収容器Ｃへの搬入を表す第４の搬入ブロックとを含む。図６、図１３〜図２４では、図示の便宜上、第１の搬入ブロックおよび／または第４の搬出ブロックを受け渡しユニットＰＡＳＳの動作に対応するものとして示しているが、これらのブロックは、実際にはインデクサロボットＩＲの動作に対応するものである。また、図示の便宜上、第２の搬入ブロックおよび／または第３の搬出ブロックを、各処理ユニットＳＰＩＮ１〜ＳＰＩＮ１２の処理に対応するものとして示しているが、これらのブロックは、実際には主搬送ロボットＣＲの動作に対応するものである。なお、図６に示すこの仮タイムテーブルは、前準備ブロックを含むが、後処理工程の実行を表すブロックである後処理ブロックを含んでいない。
【００６２】
なお、以降の説明において、第１〜第４の搬出ブロックおよび第１〜第４の搬入ブロックの総称を「搬送ブロック」という場合がある。また、図６に示すブロックのうち前準備ブロックを除く各ブロックの総称を「処理／搬送ブロック」という場合がある。
搬入前処理工程とは、処理ユニットが当該処理ユニット内に基板Ｗを搬入するための動作である。搬入前処理工程として、シャッタ１７ｃの開放動作や、チャックピン１５ｂの開姿勢（基板Ｗを挟持しない姿勢）への変位動作等を例示できる。
【００６３】
搬出後処理工程とは、処理ユニットが当該処理ユニットから基板を搬出した後の動作である。搬出後処理工程として、シャッタ１７ｃの閉塞動作やチャックピン１５ｂの閉姿勢（基板Ｗを挟持する姿勢）への変位動作等を例示できる。
図７に示すように、仮タイムテーブルの作成では、スケジューリング機能部２９は、基板処理開始指示が与えられた全ての基板Ｗについて、レシピを取得し（図７のステップＳ５１）、取得したレシピに基づいて仮タイムテーブルに含めるべきブロックを生成し（図７のステップＳ５２）、仮タイムテーブルを作成する。
【００６４】
スケジューリング機能部２９は、生成したブロックに対応する動作に、第２の制御部３４に生じる制御負荷の高い時間帯である高負荷時間帯が存在する（含まれる）か否かを調べる（図７のステップＳ５３）。この実施形態では、高負荷時間帯とは、たとえば、プログラム実行時のＣＰＵ３７の使用率が、任意の１秒間で平均９０％以上であること、およびプログラム実行時のＣＰＵ３７の使用率１００％の状態が０．１秒間継続することの少なくとも一方を満たす時間帯である。以降において、高負荷時間帯を含むリソースの動作を「高負荷動作」という。
【００６５】
図６の仮タイムテーブルで規定されている基板処理装置１の各動作のうち、前準備工程、基板処理工程、および搬入前処理工程が「高負荷動作」に相当する。
前準備工程の開始時において、サブコントローラ２３のシリアル通信部３６は、スケジューリング結果３２に基づいて当該基板処理に必要なレシピを第２の記憶部３５から読み出す。ＣＰＵ３７は読み出されたレシピをデータ解釈して、各処理ユニットＳＰＩＮ１〜ＳＰＩＮ１２において当該レシピを実現するための制御信号を生成する。ＣＰＵ３７は、生成した制御信号を、シリアル通信部３６を介して制御対象の処理ユニットＳＰＩＮ１〜ＳＰＩＮ１２に対し送信する。また、制御対象の処理ユニットＳＰＩＮ１〜ＳＰＩＮ１２は、制御信号を受信すると直ちに、受信確認信号をシリアル通信部３６に向けて送信する。前準備工程の処理データのデータ量が大きいので、シリアル通信部３６やＣＰＵ３７がデータ通信やデータ解釈を行う際に一時的に高い制御負荷が生じる。すなわち、基板処理工程の開始時に高負荷時間帯が存在する。
【００６６】
また、基板処理工程の開始時において、第２の制御部３４のシリアル通信部３６は、制御対象の処理ユニットＳＰＩＮ１〜ＳＰＩＮ１２に対し、レシピを送信する。また、制御対象の処理ユニットＳＰＩＮ１〜ＳＰＩＮ１２は、レシピを受信すると直ちに、受信確認信号をシリアル通信部３６に向けて送信する。レシピのデータ量が膨大なので、シリアル通信部３６やＣＰＵ３７に一時的に高い制御負荷が生じる。すなわち、基板処理工程の開始時に高負荷時間帯が存在する。
【００６７】
また、搬入前処理工程の開始時において、第２の制御部３４のシリアル通信部３６は、制御対象の処理ユニットＳＰＩＮ１〜ＳＰＩＮ１２に対し、当該搬入前処理工程に関する処理データに併せてレシピも送信する。レシピのデータ量が膨大なので、シリアル通信部３６やＣＰＵ３７に一時的に高い制御負荷が生じる。すなわち、搬入前処理工程の開始時に高負荷時間帯が存在する。
【００６８】
生成したブロックが「高負荷動作」に対応する場合（図７のステップＳ５３：ＹＥＳ）には、スケジューリング機能部２９は、図６に示すように、当該ブロックの最初の時間帯に高負荷情報を付与する（図７のステップＳ５４）。これにより、スケジューリング機能部２９は仮タイムテーブルの作成を完了する（図７のステップＳ５５）。一方、生成したブロックが「高負荷動作」に対応しない場合（図７のステップＳ５３：ＮＯ）には、スケジューリング機能部２９は、そのまま、仮タイムテーブルの作成を完了する（図７のステップＳ５５）
スケジューリング機能部２９は、仮タイムテーブルに含めるべき全てのブロックを時間軸上で重なり合いのないように順番に配置することによって、仮タイムテーブルを作成する。スケジューリング機能部２９は、基板Ｗに対して、処理ユニットＳＰＩＮ２〜ＳＰＩＮ１２をそれぞれ通る経路に対応した同様の仮タイムテーブル（ブロックを処理ユニットＳＰＩＮ２〜ＳＰＩＮ１２にそれぞれ配置した仮タイムテーブル）を作成する。こうして、一枚の基板Ｗに対して合計１２経路分の仮タイムテーブルが作成される。
【００６９】
同様の仮タイムテーブルが共通するプロセスジョブ符号が付与された基板Ｗの全てに対応して作成される。こうして作成された仮タイムテーブルは、スケジュールデータ３３の一部として第１の記憶部２６に格納される。
スケジューリング指示が発生すると（ステップＳ３：ＹＥＳ）、当該共通するプロセスジョブ符号が付された基板Ｗに関するブロックの配置が行われる（ステップＳ４〜Ｓ３２）。具体的には、スケジューリング機能部２９は、当該基板Ｗの仮タイムテーブルを第１の記憶部２６から読み出して、その仮タイムテーブルを構成しているブロックを時間軸上に配置していく。
【００７０】
さらに具体的に説明すると、スケジューリング機能部２９は、前準備実行条件の内容を参照し、前準備工程を行うかどうかを判断する（ステップＳ４）。プロセスジョブが前準備工程を必要としている場合（すなわち、当該基板Ｗに対応する前準備実行条件が「要」になっている場合。ステップＳ４：ＹＥＳ）には、前準備工程のスケジュールが作成（ステップＳ５，Ｓ６）され、前準備工程を必要としていない場合（すなわち、当該基板Ｗに対応する前準備実行条件が「否」になっている場合）には、Ｓ５，Ｓ６の各処理はスキップされる。
【００７１】
前準備工程が必要なときは（ステップＳ４：ＹＥＳ）、スケジューリング機能部２９は、当該基板Ｗを処理する可能性のある処理ユニットＳＰＩＮ１〜ＳＰＩＮ１２（前述の例では全ての処理ユニット）に関して、前準備ブロックを配置する（Ｓ５，Ｓ６）。すなわち、前準備工程のスケジュールは、後述する個別の基板Ｗのスケジュールの作成に先立って、まとめて作成される。
【００７２】
前準備ブロックの配置位置検索（Ｓ５）では、スケジューリング機能部２９は、図８に示すように、検索対象の前準備ブロックに高負荷情報が付加されているか（検索対象の前準備ブロックが「高負荷動作」に対応しているか）否かを調べる（図８のステップＳ６１）。また、検索対象の前準備ブロックに高負荷情報が付加されている場合（図８のステップＳ６１：ＹＥＳ）には、次いで、スケジューリング機能部２９は、他のリソース（処理ユニット等）に、高負荷情報を含むブロック（「高負荷動作」に対応するブロック）が配置済みであるか否かを調べる（図８のステップＳ６２）。検索対象の前準備ブロックに高負荷情報が付加されていない場合（図８のステップＳ６１：ＮＯ）や、高負荷情報を含むブロックが他のリソースに配置されていない場合（図８のステップＳ６２：ＮＯ）には、スケジューリング機能部２９は、検索対象の前準備ブロックの配置位置として、時間軸上で最も早い位置を決定し（図８のステップＳ６４）、これにより前準備ブロックの配置位置検索を完了する（図８のステップＳ６５）。
【００７３】
一方、配置位置の検索対象になっている前準備ブロックに、高負荷情報が付加されており（図８のステップＳ６１：ＹＥＳ）、かつ他のリソースに高負荷情報を含むブロック（「高負荷動作」に対応するブロック）が配置されている場合（図８のステップＳ６２：ＹＥＳ）には、スケジューリング機能部２９は、検索対象の前準備ブロックの配置位置として、既に配置済みのブロックの高負荷情報と重複しない範囲で、時間軸上で最も早い位置を決定し（図８のステップＳ６３）、これにより前準備ブロックの配置位置検索を完了する（図８のステップＳ６５）。
【００７４】
先ず、スケジューリング機能部２９は、処理ユニットＳＰＩＮ１の前準備ブロックＳＰ1を配置する。このとき、スケジューリング機能部２９は、１枚目の基板Ａ１の仮タイムテーブルを第１の記憶部２６から読み出して、図９に示すように、その仮タイムテーブルに含まれる前準備ブロックＳＰ1を、時間軸上において最も早い位置、すなわち現在時刻に配置する。こうして配置される前準備ブロックＳＰ1には、高負荷情報が付加されている。
【００７５】
次いで、スケジューリング機能部２９は、処理ユニットＳＰＩＮ２の前準備ブロックＳＰ2を配置する。このとき、スケジューリング機能部２９は、２枚目の基板Ａ２の仮タイムテーブルを第１の記憶部２６から読み出して、図１０に示すように、その仮タイムテーブルに含まれる前準備ブロックＳＰ2を、当該前準備ブロックＳＰ2に付加されている高負荷情報が処理ユニットＳＰＩＮ１の前準備ブロックＳＰ1に含まれる高負荷情報と重複しない範囲で、時間軸上の最も早い位置に配置する。すなわち、スケジューリング機能部２９は、処理ユニットＳＰＩＮ２の前準備ブロックＳＰ2を、前準備ブロックＳＰ2に含まれる高負荷情報が処理ユニットＳＰＩＮ１の前準備ブロックＳＰ1と同じ時間帯に重複しないように、時間軸上の最も早い位置から時間軸上の後にシフトして配置する（高負荷回避配置工程）。こうして配置される前準備ブロックＳＰ2には、高負荷情報が付加されている。
【００７６】
次いで、スケジューリング機能部２９は、処理ユニットＳＰＩＮ３の前準備ブロックＳＰ3を配置する。このとき、スケジューリング機能部２９は、３枚目の基板Ｗの仮タイムテーブルを第１の記憶部２６から読み出して、図１１に示すように、その仮タイムテーブルに含まれる前準備ブロックＳＰ3を、当該前準備ブロックＳＰ3に付加されている高負荷情報が処理ユニットＳＰＩＮ１，ＳＰＩＮ２の前準備ブロックＳＰ1，ＳＰ2の各々に含まれる高負荷情報と重複しない範囲で、時間軸上の最も早い位置に配置される。すなわち、スケジューリング機能部２９は、処理ユニットＳＰＩＮ３の前準備ブロックＳＰ3を、前準備ブロックＳＰ3に含まれる高負荷情報が処理ユニットＳＰＩＮ１，ＳＰＩＮ２の前準備ブロックＳＰ1，ＳＰ2に含まれる高負荷情報と同じ時間帯に重複しないように、時間軸上の最も早い位置から時間軸上の後にシフトして配置する（高負荷回避配置工程）。こうして配置される前準備ブロックＳＰ3には、高負荷情報が付加されている。
【００７７】
このように、スケジューリング機能部２９は、読み出した仮タイムテーブルに含まれる前準備ブロックを、同一のリソースが同じ時間に重複して使用されないようにしながら、かつ高負荷情報が配置済みのブロックの高負荷情報に重複しないようにしながら、時間軸上で最も早い位置に（すなわち前詰めで）順に配置していく。
処理ユニットＳＰＩＮ１〜ＳＰＩＮ１２の全てに対応する前準備ブロックＳＰ1〜ＳＰ12の配置が完了すると（この状態を図１２に示す。ステップＳ７：ＹＥＳ）、スケジューリング機能部２９は、次いで、各基板Ｗの処理／搬送ブロックを配置する（ステップＳ８〜ステップＳ１２）。
【００７８】
先ず、スケジューリング機能部２９は、１枚目の基板Ａ１に対応する仮タイムテーブルを第１の記憶部２６から読み出して、１枚目の基板Ａ１に対応する仮タイムテーブルを参照し、当該仮タイムテーブルに含まれる処理／搬送ブロックを一つ取得する（ステップＳ８）。このとき取得される処理／搬送ブロックは、未配置の処理／搬送ブロックのうち仮タイムテーブルの時間軸上で最も早い位置に配置されている処理／搬送ブロックである。さらに、スケジューリング機能部２９は、当該取得した処理／搬送ブロックを配置すべき位置を検索し（ステップＳ９）、その検索結果に従って、当該処理／搬送ブロックを配置する（ステップＳ１０）。
【００７９】
処理／搬送ブロックの配置位置の検索（Ｓ９）では、スケジューリング機能部２９は、図８に示すように、検索対象の処理／搬送ブロックに高負荷情報が付加されているか（検索対象の処理／搬送ブロックが「高負荷動作」に対応しているか）否かを調べる（図８のステップＳ６１）。また、検索対象の処理／搬送ブロックに高負荷情報が付加されている場合（図８のステップＳ６１：ＹＥＳ）には、次いで、スケジューリング機能部２９は、他のリソース（処理ユニット等）に、高負荷情報を含むブロック（「高負荷動作」に対応するブロック）が配置済みであるか否かを調べる（図８のステップＳ６２）。検索対象の処理／搬送ブロックに高負荷情報が付加されていない場合（図８のステップＳ６１：ＮＯ）や、高負荷情報を含むブロックが他のリソースに配置されていない場合（図８のステップＳ６２：ＮＯ）には、スケジューリング機能部２９は、検索対象の処理／搬送ブロックの配置位置として、時間軸上で最も早い位置を決定し（図８のステップＳ６４）、これにより処理／搬送ブロックの配置位置検索を完了する（図８のステップＳ６５）。
【００８０】
一方、配置位置の検索対象になっている処理／搬送ブロックに、高負荷情報が付加されており（図８のステップＳ６１：ＹＥＳ）、かつ他のリソースに高負荷情報を含むブロック（「高負荷動作」に対応するブロック）が配置されている場合（図８のステップＳ６２：ＹＥＳ）には、スケジューリング機能部２９は、検索対象の処理／搬送ブロックの配置位置として、既に配置済みのブロックの高負荷情報と重複しない範囲で、時間軸上で最も早い位置を決定し（図８のステップＳ６３）、これにより処理／搬送ブロックの配置位置検索を完了する（図８のステップＳ６５）。
【００８１】
具体的には、スケジューリング機能部２９は、図１３に示すように、先ず、１枚目の基板Ａ１の第１の搬出ブロックＡ１1、第１の搬入ブロックＡ１2および第２の搬出ブロックＡ１3を時間軸上に順に配置する。スケジューリング機能部２９は、１枚目の基板Ａ１の第１の搬出ブロックＡ１1を、時間軸上で最も早い位置（すなわち現在時刻）ではなく、処理ユニットＳＰＩＮ１での処理可能時刻（すなわち、処理ユニットＳＰＩＮ１での前準備工程の終了時点）から搬送予定時間を逆算して妥当な位置に配置する。第１の搬入ブロックＡ１2および第２の搬出ブロックＡ１3は、それぞれ、第１の搬出ブロックＡ１1の配置位置に応じて時系列に従って配置される。
【００８２】
次いで、スケジューリング機能部２９は、図１４に示すように、１枚目の基板Ａ１の搬入前処理ブロックＡ１4の配置を行う。同一のリソースが同じ時間に重複して使用されないようにしながら、時間軸上で最も早い位置に配置することだけを考慮すると、１枚目の基板Ａ１の搬入前処理ブロックＡ１4を図１４に破線で示す位置に配置すべきであるが、このようにすると、この搬入前処理ブロックＡ１4に付加されている高負荷情報が、処理ユニットＳＰＩＮ１２の前準備ブロック（図１４に示すＳＰ12）に含まれる高負荷情報と重複してしまうので、搬入前処理ブロックＡ１4を、図１４に破線で示す位置よりも時間軸の後方にずらして配置する。この場合、搬入前処理ブロックＡ１4は、できる限り前詰めで配置されることが望ましい。
【００８３】
次いで、スケジューリング機能部２９は、図１５に示すように、１枚目の基板Ａ１の第２の基板搬入ブロックＡ１5および基板処理ブロックＡ１6を時間軸上に配置する。次いで、スケジューリング機能部２９は、図１６に示すように、１枚目の基板Ａ１の第３の搬出ブロックＡ１7および第３の搬入ブロックＡ１8を時間軸上に配置し、その後、搬出後処理ブロックＡ１9、第４の搬出ブロックＡ１10および第４の搬入ブロックＡ１11を時間軸上に配置する。
【００８４】
図１６に示すように、１枚目の基板Ａ１についての仮タイムテーブルを構成する全てのブロックを配置し終えると（ステップＳ１１：ＹＥＳ）、１枚目の基板Ａ１のスケジュールの作成が終了し（ステップＳ１２）、処理ユニットＳＰＩＮ１〜ＳＰＩＮ１２の前準備ブロックＳＰ1〜ＳＰ12および１枚目の基板Ａ１の処理／搬送ブロックＡ１1〜Ａ１11を含む作成済みのスケジュールが、スケジュールデータ３３の一部として第１の記憶部２６に格納される（ステップＳ１３）。１枚目の基板Ａ１のスケジュールの作成が終了すると図４Ａ〜４Ｄのスケジューリング処理と並行して実行されていた図５のフローチャートのステップＳ４１のブロックがＹＥＳとなる（ステップＳ４１：ＹＥＳ）。この後、スケジューリング機能部２９は、図５のプロセスをステップＳ４１からＳ４２に移行させ、作成済みのスケジュールの実行を開始する（ステップＳ４２）。すなわち、スケジューリング機能部２９は、作成済みのスケジュールに従ってリソースの動作を開始させる。具体的には、処理ユニットＳＰＩＮ１〜ＳＰＩＮ１２で前準備工程が開始させられる。また、インデクサロボットＩＲにより基板収容器Ｃから１枚目の基板Ａ１が払い出される（搬出される）。
【００８５】
図４のフローチャートに戻って、１枚目の基板Ａ１のスケジュールデータ３３が第１の記憶部２６に格納される（ステップＳ１３）と、２枚目の基板Ａ２のスケジューリングを開始するタイミングにあるか否かの判断が行われる（ステップＳ１４）。この実施の形態では、直前の基板ＡNが基板収容器Ｃから払い出されたタイミングが、直後の基板ＡN+1のスケジューリングを開始するタイミングに設定されている。
【００８６】
したがって、１枚目の基板Ａ１が基板収容器Ｃから払い出されると、２枚目の基板Ａ２のスケジューリングを開始するタイミングに達したと判断される（ステップＳ１４：ＹＥＳ）。すなわち、１枚目の基板Ａ１が基板収容器Ｃから払い出されると、２枚目の基板Ａ２に対するスケジュールの作成（つまり、次に述べる処理／搬送ブロックＡ２1〜Ａ２11の配置）が１枚目の基板Ａ１の基板処理と並行して行われる。作成済みスケジュールの変更が許容されている場合（ステップＳ１５：ＹＥＳ）には、スケジューリング機能部２９は、図１７および図１８に示すように、１枚目の基板Ａ１のスケジュールを構成する全てのブロックのうち、未来のブロックを時間軸上から削除する（ステップＳ１６）。この未来のブロックの削除では、既に開始済みのリソースの動作に対応するブロックと、現在時刻の直後に開始予定のブロックとのみを残し、その他のブロックを全て削除する。
【００８７】
このスケジュール例では、図１７の現在時刻で既に開始済みのリソースは処理ユニットＳＰＩＮ１〜ＳＰＩＮ６であり、これらのリソースに対応するブロックは前準備ブロックＳＰ1〜ＳＰ6である。また、現在時刻の直後に開始予定のリソースはインデクサロボットＩＲおよび処理ユニットＳＰＩＮ７であり、これらのリソースに対応するブロックは第１の搬送ブロックＡ１1および前準備ブロックＳＰ7である。したがって、スケジューリング機能部２９は、図１７および図１８に示すように、図１７の現在時刻で予定されていた処理／搬送ブロックＡ１1〜Ａ１11および前準備ブロックＳＰ1〜ＳＰ12から、第１の搬送ブロックＡ１1および前準備ブロックＳＰ1〜ＳＰ7以外のブロック、すなわち処理搬送ブロ
ックＡ１2〜Ａ１11および前準備ブロックＳＰ8〜ＳＰ12を削除する。
【００８８】
開始済みのリソースの動作に対応するブロックだけでなく、現在時刻の直後に開始予定のリソースの動作に対応するブロックをも残すようにしたのは、現在時刻の直後に開始予定のリソースの動作は既に開始している可能性があるからである。
次いで、スケジューリング機能部２９は、図１９に示すように、ステップＳ１６で削除した前準備ブロックＳＰ8〜ＳＰ12を時間軸上に再度配置する（ステップＳ１７）。前準備ブロックＳＰ8〜ＳＰ12を再配置すべき位置の検索は、ステップＳ６の前準備ブロックの配置位置の検索と同様の手法で行われ、その検索結果に従って、処理ユニットＳＰＩＮ８〜ＳＰＩＮ１２の前準備ブロックＳＰ8〜ＳＰ12が再配置される。
【００８９】
次いで、スケジューリング機能部２９は、ステップＳ１６で削除した処理／搬送ブロックＡ１2〜Ａ１11を時間軸上に再配置すると共に、２枚目の基板Ａ２の処理／搬送ブロックＡ２2〜Ａ２11を時間軸上に配置する。削除した処理／搬送ブロックＡ１2〜Ａ１11の再配置は、２枚目の基板Ａ２の処理／搬送ブロックの配置に並行して行われる。
スケジューリング機能部２９は、削除した処理／搬送ブロックＡ１2〜Ａ１11を一つ取得する（ステップＳ１８）。このとき取得される処理／搬送ブロックは、削除前の時間軸上で最も早い位置に配置されている処理／搬送ブロックである。
【００９０】
また、スケジューリング機能部２９は、２枚目の基板Ａ２に対応する仮タイムテーブルを第１の記憶部２６から読み出して、２枚目の基板Ａ２に対応する仮タイムテーブルを参照し、当該仮タイムテーブルに含まれる処理／搬送ブロックを一つ取得する（ステップＳ１８）。このとき取得される処理／搬送ブロックは、未配置の処理／搬送ブロックのうち仮タイムテーブルの時間軸上で最も早い位置に配置されている処理／搬送ブロックである。
【００９１】
次いで、スケジューリング機能部２９は、取得した処理／搬送ブロック（削除した処理／搬送ブロックおよび２枚目の基板の処理／搬送ブロック）を配置（再配置）すべき位置を検索し（ステップＳ１９）、その検索結果に従って、当該処理／搬送ブロックを配置（再配置）する（ステップＳ２０）。削除した処理／搬送ブロックの再配置位置の検索と、２枚目の基板Ａ２の処理／搬送ブロックの配置位置検索とは互いに並行して行われる。ステップＳ１９において、処理／搬送ブロックを配置（または再配置）すべき位置の検索は、ステップＳ９の処理／搬送ブロックの配置位置の検索と同様の手法で行われる。すなわち、スケジューリング機能部２９は、配置位置の検索対象になっている処理／搬送ブロック（削除した処理／搬送ブロックまたは２枚目の基板Ａ２の処理／搬送ブロック）が、同一のリソースが同じ時間に重複して使用されないようにしながら、かつ高負荷情報が配置済みのブロックの高負荷情報に重複しないようにしながら、時間軸上で最も早い位置を検索する（図８のステップＳ６１〜Ｓ６５）。
【００９２】
以下、削除した処理／搬送ブロックおよび２枚目の基板Ａ２の処理／搬送ブロックの配置位置検索（Ｓ１９）および配置（Ｓ２０）の一例を、順に説明する。具体的には、スケジューリング機能部２９は、図２０に示すように、ステップＳ１６で削除した第１の搬入ブロックＡ１2を元の位置に再配置する。また、スケジューリング機能部２９は、図２１に示すように、２枚目の基板Ａ２の第１の搬出ブロックＡ２1を、１枚目の基板Ａ１の第１の搬出ブロックＡ１1の後に配置する。図２１の例では、２枚目の基板Ａ２の第１の搬出ブロックＡ２1は、第１の搬入ブロックＡ１2と時間軸上の略同位置に配置される。
【００９３】
次いで、スケジューリング機能部２９は、図２２に示すように、削除した第２の搬出ブロックＡ１3を配置する。このように、削除した処理／搬送ブロックの再配置位置と、２枚目の基板の処理／搬送ブロックの配置位置とが足並みを揃えて（並行して）行われる。
そして、削除した全ての処理／搬送ブロックおよび２枚目の基板Ａ２の仮タイムテーブルを構成する全てのブロックを配置（再配置）し終えると（ステップＳ２１：ＹＥＳ）、図２３に示すように、２枚目の基板Ａ２のスケジューリングが終了すると共に、１枚目の基板Ａ１のスケジュール（作成済みのスケジュール）の変更が終了する（ステップＳ２２）。こうして作成および変更されるスケジュールが、スケジュールデータ３３の一部として第１の記憶部２６に格納される（ステップＳ２３）。
【００９４】
一方、作成済みスケジュールの変更が禁止されている場合（ステップＳ１５：ＮＯ）には、スケジューリング機能部２９は、１枚目の基板Ａ１のスケジュールの変更を行わずに、２枚目の基板Ａ２の処理／搬送ブロックを配置する。
そして、スケジューリング機能部２９は、２枚目の基板Ａ２に対応する仮タイムテーブルを第１の記憶部２６から読み出して、２枚目の基板Ａ２に対応する仮タイムテーブルを参照し、当該仮タイムテーブルに含まれる処理／搬送ブロックを一つ取得する（ステップＳ２４）。このとき取得される処理／搬送ブロックは、未配置の処理／搬送ブロックのうち仮タイムテーブルの時間軸上で最も早い位置に配置されている処理／搬送ブロックである。さらに、スケジューリング機能部２９は、取得した処理／搬送ブロックを、同一のリソースが同じ時間に重複して使用されないようにしながら、かつ高負荷情報が配置済みのブロックの高負荷情報に重複しないようにしながら、時間軸上で最も早い位置を検索し（ステップＳ２５）、その検索結果に従って、当該処理／搬送ブロックを配置する（ステップＳ２６）。
【００９５】
２枚目の基板Ａ２についての仮タイムテーブルを構成する全てのブロックを配置し終えると（ステップＳ２７：ＹＥＳ）、２枚目の基板Ａ２のスケジュールの作成が終了する（ステップＳ２２）。こうして作成される２枚目の基板Ａ２のスケジュールが、スケジュールデータ３３の一部として第１の記憶部２６に格納される（ステップＳ２３）。
基板処理装置１において各リソースの動作が進行し、２枚目の基板Ａ２のスケジュールの実行タイミングになると、スケジューリング機能部２９は、２枚目の基板Ａ２のスケジュールの実行を開始する。すなわち、スケジューリング機能部２９は、作成済みの２枚目の基板Ａ２のスケジュールに従ってリソースの動作を開始させる。具体的には、インデクサロボットＩＲにより基板収容器Ｃから２枚目の基板Ａ２が払い出される（搬出される）。２枚目の基板Ａ２の基板収容器Ｃからの払い出し時が、３枚目の基板Ａ３のスケジューリングタイミングである。３枚目の基板Ａ３のスケジューリングタイミングに達すると（ステップＳ１４：ＹＥＳ）、すなわち、２枚目の基板Ａ２が基板収容器Ｃから払い出されると、３枚目の基板Ａ３に対するスケジュールの作成が行われる。
【００９６】
３枚目以降の基板Ｗに対するスケジュールは、２枚目の基板Ａ２に対するスケジュールと同様に行われる。すなわち、図４および図５のステップＳ１４〜Ｓ２７の各処理は、３枚目以降の基板Ｗにも共通して適用される。すなわち、作成済みスケジュールの変更が許容されている場合には、Ｎ（「Ｎ」は「２」以上の整数）枚目の基板Ｗのスケジュールの作成時に、（Ｎ−１）枚目以前の基板Ｗの各スケジュールのうち未来のブロックを削除し、Ｎ枚目の基板の処理／搬送ブロックの配置（スケジュールの作成）に並行して、削除した処理／搬送ブロックの再配置位置を行う。図４および図５は、ステップＳ１４、Ｓ１８〜Ｓ２６の各処理を示している。「Ｎ」が１２になるまで（すなわち全ての基板Ｗのスケジュールの作成が終了するまで。ステップＳ２８：ＹＥＳ）、図４および図５のステップＳ１４〜Ｓ２７の各処理と同等の処理が繰り返される。スケジューリング機能部２９によって作成される、複数枚の基板Ｗのスケジュールの全体の例を、図２４に示す。
【００９７】
全ての基板Ｗのスケジュールの作成が終了すると（ステップＳ２８：ＹＥＳ）、スケジューリング機能部２９は、後処理実行条件の内容を参照し、基板Ｗに後処理工程を行うかどうかを判断する（ステップＳ２９）。プロセスジョブが後処理工程を必要としている場合（すなわち、当該基板Ｗに対応する後処理実行条件が「要」になっている場合。ステップＳ２９：ＹＥＳ）には、スケジューリング機能部２９は、当該基板Ｗを処理する可能性のある処理ユニットＳＰＩＮ１〜ＳＰＩＮ１２に関して、後処理ブロックを配置する（ステップＳ３０，Ｓ３１）。一方、後処理工程を必要としていない場合（すなわち、当該基板Ｗに対応する後処理実行条件が「否」になっている場合）には、ステップＳ３０〜Ｓ３２の各処理はスキップされる。
【００９８】
後処理ブロックの配置位置検索（Ｓ３０）では、スケジューリング機能部２９は、図８に示すように、検索対象の後処理ブロックに高負荷情報が付加されているか（検索対象の後処理ブロックが「高負荷動作」に対応しているか）否かを調べる（図８のステップＳ６１）。また、検索対象の後処理ブロックに高負荷情報が付加されている場合（図８のステップＳ６１：ＹＥＳ）には、次いで、スケジューリング機能部２９は、他のリソース（処理ユニット等）に、高負荷情報を含むブロック（「高負荷動作」に対応するブロック）が配置済みであるか否かを調べる（図８のステップＳ６２）。検索対象の後処理ブロックに高負荷情報が付加されていない場合（図８のステップＳ６１：ＮＯ）や、高負荷情報を含むブロックが他のリソースに配置されていない場合（図８のステップＳ６２：ＮＯ）には、スケジューリング機能部２９は、検索対象の後処理ブロックの配置位置として、時間軸上で最も早い位置を決定し（図８のステップＳ６４）、これにより後処理ブロックの配置位置検索を完了する（図８のステップＳ６５）。
【００９９】
一方、配置位置の検索対象になっている後処理ブロックに、高負荷情報が付加されており（図８のステップＳ６１：ＹＥＳ）、かつ他のリソースに高負荷情報を含むブロック（「高負荷動作」に対応するブロック）が配置されている場合（図８のステップＳ６２：ＹＥＳ）には、スケジューリング機能部２９は、検索対象の後処理ブロックの配置位置として、既に配置済みのブロックの高負荷情報と重複しない範囲で、時間軸上で最も早い位置を決定し（図８のステップＳ６３）、これにより後処理ブロックの配置位置検索を完了する（図８のステップＳ６５）。
【０１００】
このように、スケジューリング機能部２９は、後処理ブロックを、当該後処理ブロックに付加されている高負荷情報が、配置済みの後処理ブロックに含まれる高負荷情報と重複しない範囲で、時間軸上の最も早い位置に（前詰めで）順に配置していく（ステップＳ３１）。
後処理の必要のある処理ユニットＳＰＩＮ１〜ＳＰＩＮ１２への後処理ブロックの配置が完了すると（ステップＳ３２でＹＥＳ）、図４Ａ〜図４Ｄに示す一連の処理はリターンされる。
【０１０１】
一方、後処理工程を必要としていない場合（すなわち、当該基板Ｗに対応する後処理実行条件が「否」になっている場合。ステップＳ２９でＮＯ）には、ステップＳ３０，Ｓ３１の各処理はスキップされ、その後、図４Ａ〜図４Ｄに示す一連の処理はリターンされる。
なお、図２４に示すスケジュールは、各基板Ｗで後処理実行条件を満たしていない場合を示している。
【０１０２】
以上により、この実施形態によれば、スケジューリング機能部２９は、各基板Ｗの複数のブロックを時系列に従って配置することにより当該基板Ｗのスケジュールを作成し、この基板Ｗのスケジュールを複数枚分作成する。このとき「高負荷動作」（すなわち、基板処理工程、前準備工程および搬入前処理工程）に対応するブロックを、対応する「高負荷動作」の開始時が集中しないように、時間軸上の互いにずれた位置に配置する。
【０１０３】
こうして作成されたスケジュールでは、第２の制御部３４での制御負荷の集中が回避されている。これにより、第２の制御部３４でのデータ処理の効率化が図られたスケジュールを作成でき、ゆえに、リソースの動作開始の遅延を確実に防止できる。
仮に、「同一のリソースが同じ時間に重複して使用されないようにしながら、時間軸上で最も早い位置に配置する」というロジックのみに基づいて、処理ユニットＳＰＩＮ１〜ＳＰＩＮ１２の前準備工程を計画すれば、複数の前準備工程が同時に開始するおそれがある。とくに、図２５Ａに示す、スケジュールの作成の第１の変形例のように、いずれかのプロセスジョブ符号が付された基板Ｗについてのスケジュール作成時に、それとは異なるプロセスジョブ符号が付された基板Ｗに対する基板処理が既に実行開始している場合に、当該所定のプロセスジョブの基板Ｗについての（処理ユニットＳＰＩＮ３〜ＳＰＩＮ１２の）前準備工程を、「各ブロックを、同一のリソースが同じ時間に重複して使用されないようにしながら、時間軸上で最も早い位置に配置する」というロジックのみに基づいて計画するとすれば、これら複数（たとえば１０個）の前準備ブロックが、計画開始可能時刻（スケジュールを開始可能な時刻）に揃って配置されるおそれがある。この場合、処理ユニットＳＰＩＮ３〜ＳＰＩＮ１２の前準備工程が同時に開始するように計画されるので、前準備工程の開始時に第２の制御部３４の制御負荷が集中する結果、第２の制御部３４がデータ処理を円滑に行えず、これにより、実行中の基板処理（処理ユニットＳＰＩＮ１，ＳＰＩＮ２での処理）において処理遅延が生じるなどの問題が発生するおそれがある。
【０１０４】
これに対し、この実施形態では、前準備ブロックを、同一のリソースが同じ時間に重複して使用されないようにしながら、かつ高負荷情報が配置済みのブロックの高負荷情報に重複しないようにしながら、時間軸上で最も早い位置に配置する。そのため、図２５Ａに示すように、処理ユニットＳＰＩＮ３〜ＳＰＩＮ１２の前準備工程は、互いに開始時がずれるように計画される。したがって、実行中の基板処理（処理ユニットＳＰＩＮ１，ＳＰＩＮ２での処理）において、処理遅延などの問題を回避できる。
【０１０５】
特に、この実施形態によれば、基板処理の開始が指示されてから実際に基板処理を開始するまでの期間を各基板Ｗ間で略同一にすることができるため、同一のレシピに基づく基板処理の効果を各基板間で均一にすることができる。より具体的に説明する。基板処理を開始するまでのデータフローを図２５Ｂに示す。サブコントローラ２３のＣＰＵ３７はスケジュールデータ３３に基づいて、または処理実行指示部３１がスケジュールデータ３３に基づいて発する処理実行指示に基づいて、基板処理を開始するタイミングが到来したことを判断する（時刻ｔ１）。ＣＰＵ３７は実行しようとする基板処理に対応するレシピを第２の記憶部３５に要求する（時刻ｔ２）。第２の記憶部３５はレシピを選択してＣＰＵ３７に送信する（時刻ｔ３〜時刻ｔ４）。ＣＰＵ３７は受信したレシピをデータ解釈して、制御対象の処理ユニット（たとえば処理ユニットＳＰＩＮ１）に当該レシピを実行させるための制御信号を生成する（時刻ｔ５〜ｔ６）。そしてＣＰＵ３７は生成した制御信号を処理ユニットＳＰＩＮ１に送信する（時刻ｔ７〜ｔ８）。これを受けて処理ユニットＳＰＩＮ１が実際に基板処理を開始する（時刻ｔ９）。このように、基板処理を開始するタイミングが到来してから処理ユニットＳＰＩＮ１が実際に基板処理を開始するには所定長の時間を要する（時刻ｔ１〜ｔ９）。この実施形態では多数枚の基板Ｗのための基板処理が同一時刻に開始されないようにスケジューリングされているためＣＰＵ３７の処理速度が遅延することがない。このため、レシピの送受信（時刻ｔ３〜ｔ４）、データ解釈（時刻ｔ５〜ｔ６）および制御信号の送受信（時刻ｔ７〜ｔ８）に要する時間が基板Ｗ毎に大きく異なることがない。よって、基板処理を開始するタイミングが到来してから各処理ユニットＳＰＩＮにおいて実際に基板処理が開始されるまでの時間を略同一にすることができる。従って、基板処理の均一性を確保することができる。
【０１０６】
また、ある基板（たとえば１枚目の基板Ａ１）のスケジュールの作成が終了すると、他の基板（たとえば２枚目の基板Ａ２以降の基板Ｗ）のスケジュールの作成が未終了であっても、作成したスケジュールの実行を開始する。したがって、第１の記憶部２６に記憶されるスケジュールのデータ量の低減を図ることができる。
また、作成済みのスケジュールから削除した未実行のブロックを、新たにスケジュールを作成すべき基板Ｗに関するブロックの配置と並行して、時系列に従って再配置する。削除したブロックの再配置および新たな基板Ｗに関するブロックの配置は、複数枚の基板Ｗ相互間の干渉が生じることがなく、かつ効率的にリソース（処理ユニットＳＰＩＮ１〜ＳＰＩＮ１２等）を稼働させて複数枚の基板Ｗに対する処理が行われるように、時系列に従って行われる。削除したブロックおよび新たな基板Ｗに関するブロックの配置位置をよりきめ細かに決定できるので、処理ユニットＳＰＩＮ１〜ＳＰＩＮ１２等のリソースの稼働率を高めることができ、これにより、基板処理装置１の生産性を向上できる。
【０１０７】
図２６は、スケジュールの作成の第２の変形例を示す。この第２の変形例は、後処理工程を規定するためのブロックである後処理ブロックの配置例を示す。
図２６では、処理ユニットＳＰＩＮ１〜ＳＰＩＮ７での基板処理中に、後処理工程を計画する。このプロセスジョブでは処理ユニットＳＰＩＮ１〜ＳＰＩＮ７を使用しているが、処理ユニットＳＰＩＮ８〜ＳＰＩＮ１２は使用可能であるものの、実際には使用されていない。つまり、実際に使用する処理ユニットの数が、使用可能な処理ユニットの数よりも少ない。前述のように、プロセスジョブの最後の基板Ｗのスケジュールの作成が終了したタイミングで、スケジューリング機能部２９は、後処理工程のスケジュールを作成する。
【０１０８】
この場合、仮に、「同一のリソースが同じ時間に重複して使用されないようにしながら、時間軸上で最も早い位置に配置する」というロジックのみに基づいて、処理ユニットＳＰＩＮ１〜ＳＰＩＮ１２の後処理工程を計画するとすれば、処理ユニットＳＰＩＮ８〜ＳＰＩＮ１２の後処理ブロックが、計画開始可能時刻（スケジュールを開始可能な時刻）に揃って配置されるおそれがある。この場合、処理ユニットＳＰＩＮ８〜ＳＰＩＮ１２の後処理工程が同時に開始するので、後処理工程の開始時に第２の制御部３４の制御負荷が集中する結果、第２の制御部３４がデータ処理を円滑に行えず、これにより、実行中の基板処理（処理ユニットＳＰＩＮ１〜ＳＰＩＮ７での処理）において処理遅延が生じるなどの問題が発生するおそれがある。
【０１０９】
これに対し、図２６の例では、後処理ブロックを、同一のリソースが同じ時間に重複して使用されないようにしながら、かつ高負荷情報が配置済みのブロックの高負荷情報に重複しないようにしながら、時間軸上で最も早い位置に配置する。そのため、図２６に示すように、処理ユニットＳＰＩＮ８〜ＳＰＩＮ１２の後処理ブロックは、時間軸上に互いにずれて配置される。すなわち、処理ユニットＳＰＩＮ８〜ＳＰＩＮ１２の各後処理工程の開始時が互いにずれるように計画される。したがって、実行中の基板処理（処理ユニットＳＰＩＮ１〜ＳＰＩＮ７での処理）において処理遅延などの問題を回避できる。
【０１１０】
図２７は、スケジュールの作成の第３の変形例を示す。この第３の変形例は、次に述べる基板回収工程を規定するためのブロックである後処理ブロックの配置例を示す。
基板処理装置１では、複数の処理ユニットに基板Ｗが収容されている状態で、各処理ユニットから基板Ｗを一斉に回収する並列回収が用意されることがある。この並列回収に先立って、各処理ユニットでは、基板回収工程が実行される。
【０１１１】
基板回収工程とは、基板Ｗを処理室１７（図３Ａ参照）外に搬出可能な状態にするために実行する作業である。基板回収工程の具体例は、基板Ｗの水洗処理である。基板Ｗを水洗することにより、基板回収工程の実行前の基板Ｗの状態の如何に拘らず、処理室１７外に基板Ｗを搬送可能である。基板Ｗの水洗処理は、基板Ｗを回転させながらリンス液ノズル５９（図３Ａ参照）から基板Ｗにリンス液を吐出することで実行できる。基板回収工程後、各処理ユニットの処理室１７から、主搬送ロボットＣＲ（図１等参照）によって基板Ｗが搬出される。
【０１１２】
基板回収工程は、前述の「高負荷動作」に相当する。すなわち、基板回収工程の開始時において、サブコントローラ２３（図３Ｂ参照）のシリアル通信部３６は、基板回収のレシピを第２の記憶部３５から読み出す。ＣＰＵ３７は読み出されたレシピをデータ解釈し、制御対象の処理ユニットＳＰＩＮ１〜ＳＰＩＮ１２において基板回収のレシピを実現するための制御信号を生成する。シリアル通信部３６は生成された制御信号を、制御対象の処理ユニットＳＰＩＮ１〜ＳＰＩＮ１２に対し送信する。また、制御対象の処理ユニットＳＰＩＮ１〜ＳＰＩＮ１２は、制御信号を受信すると直ちに、受信確認信号をシリアル通信部３６に向けて送信する。基板回収工程のレシピのデータ量が膨大なので、ＣＰＵ３７（図３Ｂ参照）に一時的に高い制御負荷が生じる。そのため、基板処理工程の開始時に高負荷時間帯が存在する。
【０１１３】
このような基板回収工程を計画する場合に、仮に、基板回収工程のブロック（以下、基板回収ブロック）を、「同一のリソースが同じ時間に重複して使用されないようにしながら、時間軸上で最も早い位置に配置する」というロジックのみに基づいて配置するとすれば、処理ユニットＳＰＩＮ１〜ＳＰＩＮ１２の基板回収ブロックが、同時期に揃って配置されるおそれがある。この場合、処理ユニットＳＰＩＮ１〜ＳＰＩＮ１２の基板回収工程が同時に開始するので、基板回収工程の開始時に第２の制御部３４の制御負荷が集中する結果、第２の制御部３４がデータ処理を円滑に行えず、基板回収工程に遅延が生じるおそれがある。
【０１１４】
これに対し、図２７の例では、基板回収ブロックを、同一のリソースが同じ時間に重複して使用されないようにしながら、かつ高負荷情報が配置済みのブロックの高負荷情報に重複しないようにしながら、時間軸上で最も早い位置に配置する。そのため、図２７に示すように、処理ユニットＳＰＩＮ１〜ＳＰＩＮ１２の基板回収ブロックは、時間軸上に互いにずれて配置される。すなわち、処理ユニットＳＰＩＮ１〜ＳＰＩＮ１２の各基板回収工程は、その開始時が互いにずれるように計画される。したがって、基板回収工程において処理遅延などの問題を回避できる。
【０１１５】
以上、この発明のいくつかの実施形態について説明してきたが、この発明は、さらに他の形態で実施することもできる。
たとえば、前述の実施形態で示した基板処理装置１の構成や基板処理内容は一例に過ぎず、基板処理装置１は他の構成を採ることができ、かつ別の基板処理内容に対してもこの発明を適用できる。
【０１１６】
また、前述の実施形態では、高負荷情報が同じ時間帯に２つ以上重複しないようにブロックを配置する場合を示したが、高負荷情報が同じ時間帯に所定数（＞３）以上重複することを禁止し、所定数未満であれば、２つ以上の高負荷情報の重複を許容するようにしてもよい。
また、前述の実施形態では、１枚目の基板Ａ１のスケジュール作成の終了後、２枚目以降の基板（第２の基板）Ｗのスケジュールの作成が終わっていない状態で、作成済みのスケジュールの実行を開始する場合を例に挙げたが、プロセスジョブの全ての基板Ｗのスケジュールを作成した後に、スケジュールの開始を実行するようにしてもよい。
【０１１７】
その他、特許請求の範囲に記載された事項の範囲で種々の設計変更を施すことが可能である。
【符号の説明】
【０１１８】
１  基板処理装置
１５  スピンチャック
１７  処理室
２２ メインコントローラ
２３ サブコントローラ
２４ 第１の制御部
２５ 出入力部
２６ 第１の記憶部
２８ 装置管理部
２９ スケジューリング機能部
３０ スケジューリングエンジン
３１ 処理実行指示部
３２ スケジュール作成プログラム
３３ スケジュールデータ
３４ 第２の制御部
３５ 第２の記憶部
３６ シリアル通信部
３７ ＣＰＵ
Ｃ    基板収容器
ＣＲ  主搬送ロボット
Ｇ１〜Ｇ４  処理ユニット群
ＩＲ  インデクサロボット
ＰＡＳＳ  受け渡しユニット
ＳＰＩＮ１〜ＳＰＩＮ１２  処理ユニット
ＳＴ１〜ＳＴ４  ステージ
Ｗ    基板
【図１】
2018125548.tif 000003
【図２】
2018125548.tif 000004
【図３Ａ】
2018125548.tif 000005
【図３Ｂ】
2018125548.tif 000006
【図４Ａ】
2018125548.tif 000007
【図４Ｂ】
2018125548.tif 000008
【図４Ｃ】
2018125548.tif 000009
【図４Ｄ】
2018125548.tif 000010
【図５】
2018125548.tif 000011
【図６】
2018125548.tif 000012
【図７】
2018125548.tif 000013
【図８】
2018125548.tif 000014
【図９】
2018125548.tif 000015
【図１０】
2018125548.tif 000016
【図１１】
2018125548.tif 000017
【図１２】
2018125548.tif 000018
【図１３】
2018125548.tif 000019
【図１４】
2018125548.tif 000020
【図１５】
2018125548.tif 000021
【図１６】
2018125548.tif 000022
【図１７】
2018125548.tif 000023
【図１８】
2018125548.tif 000024
【図１９】
2018125548.tif 000025
【図２０】
2018125548.tif 000026
【図２１】
2018125548.tif 000027
【図２２】
2018125548.tif 000028
【図２３】
2018125548.tif 000029
【図２４】
2018125548.tif 000030
【図２５Ａ】
2018125548.tif 000031
【図２５Ｂ】
2018125548.tif 000032
【図２６】
2018125548.tif 000033
【図２７】
2018125548.tif 000034