以下、添付される図面を参照しながら実施の形態について説明する。なお、図面は概略的に示されるものであり、説明の便宜のため、適宜、構成の省略、または、構成の簡略化がなされるものである。また、図面に示される構成の大きさおよび位置の相互関係は、必ずしも正確に記載されるものではなく、適宜変更され得るものである。
また、以下に示される説明では、同様の構成要素には同じ符号を付して図示し、それらの名称と機能とについても同様のものとする。したがって、それらについての詳細な説明を、重複を避けるために省略する場合がある。
<第1の実施の形態>
図1は、基板処理装置100の構成の一例を概略的に示す平面図であり、図2は、基板処理装置100の構成の一例を概略的に示す側面図である。この基板処理装置100は、インデクサセクション1と、処理セクション2とを含む。処理セクション2は受渡ユニットPASSを含んでいる。インデクサセクション1は、未処理の基板Wを受渡ユニットPASSに渡し、受渡ユニットPASSから処理済みの基板Wを受け取る。処理セクション2は、受渡ユニットPASSから未処理の基板Wを受け取って、その基板Wに対して、処理剤(処理液または処理ガス)を用いた処理、紫外線等の電磁波を用いた処理、および、物理洗浄処理(ブラシ洗浄およびスプレーノズル洗浄等)などの各種の処理を施す。そして、処理セクション2は、処理後の基板Wを受渡ユニットPASSに渡す。
インデクサセクション1は、複数のステージST1〜ST4と、基板搬送ユニットの一例であるインデクサロボットIRとを含む。ステージST1〜ST4は、複数枚の基板W(例えば半導体ウエハ)を積層状態で収容した基板収容器Cをそれぞれ保持することができる基板収容器保持部である。基板収容器Cは、基板Wを密閉した状態で収納するFOUP(Front Opening Unified Pod)であってもよいし、SMIF(Standard Mechanical Inter Face)ポッドまたはOC(Open Cassette)等であってもよい。例えば、基板収容器CをステージST1〜ST4に載置したとき、基板収容器Cでは、水平姿勢の複数枚の基板Wが互いに間隔を開けて鉛直方向に積層された状態となる。ここでいう水平姿勢とは、基板Wの厚み方向が鉛直方向に沿う状態をいう。
インデクサロボットIRは、例えば、基台部6と、多関節アーム7と、一対のハンド8A,8Bとを含む。基台部6は、例えば、当該基板処理装置100のフレームに固定されている。多関節アーム7は、水平面に沿って回動可能な複数本のアーム部を互いに回動可能に結合して構成されており、アーム部の結合箇所である関節部でアーム部間の角度を変更することによって、屈伸するように構成されている。多関節アーム7の基端部は、基台部6に対して、鉛直軸線まわりの回動が可能であるように結合されている。さらに、多関節アーム7は、基台部6に対して昇降可能に結合されている。換言すれば、基台部6には、多関節アーム7を昇降させるための昇降駆動機構、および、多関節アーム7を鉛直軸線まわりに回動させるための回動駆動機構が内蔵されている。また、多関節アーム7には、各アーム部を独立して回動させるための個別回動駆動機構が設けられている。多関節アーム7の先端部に、鉛直軸線まわりの個別回動および水平方向への個別進退が可能であるように、ハンド8A,8Bが結合されている。多関節アーム7には、ハンド8A,8Bを鉛直軸線まわりに個別に回動させるためのハンド回動駆動機構と、ハンド8A,8Bを水平方向に個別に進退させるためのハンド進退機構とが設けられている。ハンド8A,8Bは、例えば、1枚の基板Wをそれぞれ保持できるように構成されている。なお、ハンド8A,8Bは上下に重なった状態で配置されていてもよいが、図1では、明瞭化のために、ハンド8A,8Bを紙面に平行な方向(水平方向)にずらして描いてある。
この構成により、インデクサロボットIRは、いずれかのステージST1〜ST4に保持された基板収容器Cから1枚の未処理の基板Wをハンド8Aで搬出して受渡ユニットPASSに渡すように動作する。さらに、インデクサロボットIRは、受渡ユニットPASSから1枚の処理済みの基板Wをハンド8Bで受け取って、いずれかのステージST1〜ST4に保持された基板収容器Cに収容するように動作する。
処理セクション2は、複数(この実施形態では12個)の処理ユニットSPIN1〜SPIN12と、基板搬送ユニットの一例である主搬送ロボットCRと、前述の受渡ユニットPASSとを含む。処理ユニットSPIN1〜SPIN12は、この実施形態では、立体的に配置されている。より具体的には、三階建て構造をなすように複数の処理ユニットSPIN1〜SPIN12が配置されており、各階部分に4つの処理ユニットが配置されている。すなわち、一階部分に4つの処理ユニットSPIN1,SPIN4,SPIN7,SPIN10が配置され、二階部分に別の4つの処理ユニットSPIN2,SPIN5,SPIN8,SPIN11が配置され、三階部分にさらに別の処理ユニットSPIN3,SPIN6,SPIN9,SPIN12が配置されている。さらに具体的には、平面視において処理セクション2の中央に主搬送ロボットCRが配置されており、この主搬送ロボットCRとインデクサロボットIRとの間に受渡ユニットPASSが配置されている。3つの処理ユニットSPIN1〜SPIN3を積層した第1処理ユニット群G1と、別の3つの処理ユニットSPIN4〜SPIN6を積層した第2処理ユニット群G2とが、受渡ユニットPASSを挟んで対向するように配置されている。そして、第1処理ユニット群G1に対してインデクサロボットIRから遠い側に隣接するように、3つの処理ユニットSPIN7〜SPIN9を積層した第3処理ユニット群G3が配置されている。同様に、第2処理ユニット群G2に対してインデクサロボットIRから遠い側に隣接するように、3つの処理ユニットSPIN10〜SPIN12を積層した第4処理ユニット群G4が配置されている。第1〜第4処理ユニット群G1〜G4によって、主搬送ロボットCRが取り囲まれている。
主搬送ロボットCRは、例えば、基台部11と、多関節アーム12と、一対のハンド13A,13Bとを含む。基台部11は、例えば、当該基板処理装置100のフレームに固定されている。多関節アーム12は、水平面に沿って延びた複数本のアーム部を互いに回動可能に結合して構成されており、アーム部の結合箇所である関節部でアーム部間の角度を変更することによって、屈伸するように構成されている。多関節アーム12の基端部は基台部11に対して、鉛直軸線まわりの回動が可能であるように結合されている。さらに、多関節アーム12は、基台部11に対して昇降可能に結合されている。換言すれば、基台部11には、多関節アーム12を昇降させるための昇降駆動機構、多関節アーム12を鉛直軸線まわりに回動させるための回動駆動機構が内蔵されている。また、多関節アーム12には、各アーム部を独立して回動させるための個別回動駆動機構が設けられている。多関節アーム12の先端部に、鉛直軸線まわりの個別回動および水平方向への個別進退が可能であるように、ハンド13A,13Bが結合されている。多関節アーム12には、ハンド13A,13Bを鉛直軸線まわりに個別に回動させるためのハンド回動駆動機構と、ハンド13A,13Bを水平方向に個別に進退させるためのハンド進退機構とが設けられている。ハンド13A,13Bは、例えば、1枚の基板Wをそれぞれ保持できるように構成されている。なお、ハンド13A,13Bは上下に重なった状態で配置されていてもよいが、図1では、明瞭化のために、ハンド13A,13Bを紙面に平行な方向(水平方向)にずらして描いてある。
この構成により、主搬送ロボットCRは、受渡ユニットPASSから未処理の1枚の基板Wをハンド13Aで受け取り、その未処理の基板Wをいずれかの処理ユニットSPIN1〜SPIN12に搬入する。また、主搬送ロボットCRは、処理ユニットSPIN1〜SPIN12で処理された処理済みの基板Wをハンド13Bで受け取り、その基板Wを受渡ユニットPASSに渡す。
処理ユニットSPIN1〜SPIN12は、基板Wを1枚ずつ処理する枚葉型の処理ユニットである。処理ユニットSPIN1〜SPIN12は、例えば、1枚の基板Wを水平姿勢で保持して回転させるスピンチャック15と、スピンチャック15に対して処理液(薬液またはリンス液)を供給する処理液ノズル16とを処理室17(チャンバ)内に含んだ、回転液処理ユニットであってもよい。図2では、処理ユニットSPIN3,SPIN6についてのみ、その内部構成を示し、他の処理ユニットの内部構成の図示を省いている。
図3は、基板処理装置100の電気的な構成の一例を概略的に示す機能ブロック図である。基板処理装置100は、処理ユニットSPIN1〜SPIN12、主搬送ロボットCRおよびインデクサロボットIRを制御するコンピュータ20を含んでいる。コンピュータ20は、パーソナルコンピュータ(FAパソコン)の形態を有していてもよく、制御部(制御回路)21と、出入力部22と、記憶媒体23とを含んでいる。制御部21は、CPU等の演算処理装置を含む。出入力部22は、表示ユニット等の出力機器と、キーボード、ポインティングデバイスおよびタッチパネル等の入力機器とを含む。さらに、出入力部22は、ホストコンピュータとの通信のための通信モジュールを含む。記憶媒体23は、固体メモリデバイスおよびハードディスクドライブ等の記憶装置を含む。
制御部21は、スケジューリング機能部(スケジューラ)25と、処理実行指示部26とを含む。スケジューリング機能部25は、基板Wを基板収容器Cから搬出し、処理ユニットSPIN1〜SPIN12で処理した後、基板収容器Cに収容するために、基板処理装置100のリソースを時系列に従って動作させるための計画(全体スケジュール)を作成する。全体スケジュールは基板処理装置100の動作を規定した計画である。処理実行指示部26は、スケジューリング機能部25によって作成された全体スケジュールに従って、基板処理装置100のリソースを動作させる。
記憶媒体23は、制御部21が実行するプログラムと、処理内容データ40と、スケジューリング機能部25によって作成されたスケジュールデータ(全体スケジュール)とを含む各種データ等を記憶するように構成されている。処理内容データ40は、基板Wに対する処理の内容および処理の所要時間(以下、所要処理時間と呼ぶ)を示している。処理内容データ40の具体例は後述する。この処理内容データ40は例えばホストコンピュータから出入力部22に入力されてもよく、あるいは、ユーザによる入力機器の操作によって出入力部22に入力されてもよい。
記憶媒体23に記憶されたプログラムは、制御部21をスケジューリング機能部25として動作させるためのスケジュール作成プログラムと、制御部21を処理実行指示部26として動作させるための処理実行プログラムとを含む。なお、制御部21は必ずしもプログラムに基づいて動作する必要はなく、例えば、論理回路等の専用のハードウェア回路によって構成されてもよい。
処理内容データ40は、各基板Wに付与されたプロセスジョブ(PJ)符号と、プロセスジョブ符号に対応付けられたレシピとを含む。レシピは、基板処理内容を定義したデータであり、基板処理条件および基板処理手順を含む。より具体的には、レシピは、並行処理ユニット情報、使用処理液情報および処理時間(所要処理時間)情報等を含む。並行処理ユニット情報とは、使用可能な処理ユニットを指定する情報であり、指定された処理ユニットによる並行処理が可能であることを表す。換言すれば、指定処理ユニットのうちの一つが使用できないときには、それ以外の指定処理ユニットによる代替が可能であることを表す。「使用できないとき」とは、当該処理ユニットが別の基板Wの処理のために使用中であるとき、当該処理ユニットが故障中であるとき、または、オペレータが当該処理ユニットで基板Wの処理をさせたくないと考えているとき、などである。プロセスジョブとは、共通の処理が施される1枚または複数枚の基板Wをいう。プロセスジョブ符号とは、プロセスジョブを識別するための識別情報(基板群識別情報)である。すなわち、共通のプロセスジョブ符号が付与された複数枚の基板Wには、当該プロセスジョブ符号に対応付けられたレシピによる共通の処理が施される。ただし、異なるプロセスジョブ符号に対応する基板処理内容(レシピ)が同じである場合もあり得る。例えば、処理順序(基板収容器Cからの払い出し順序)が連続している複数枚の基板Wに対して共通の処理が施されるとき、それらの複数枚の基板Wに対して共通のプロセスジョブ符号が付与される。
制御部21は、各基板Wに対する処理内容データ40を取得して、記憶媒体23に記憶させる。処理内容データ40の取得および記憶は、各基板Wに対するスケジューリング(つまり、全体スケジュールの作成)が実行されるよりも前に行われればよい。例えば、基板収容器CがステージST1〜ST4に保持された直後に、ホストコンピュータから制御部21に当該基板収容器Cに収容された基板Wに対応する処理内容データ40が与えられてもよい。
スケジューリング機能部25は処理内容データ40に基づいて全体スケジュールを作成する。図4は、スケジューリング機能部25によって作成される全体スケジュールの一例を模式的に示す図である。図4の例では、全体スケジュールはブロックおよび矢印によって模式的に表現されている。なお、図4では、説明を簡単にすべく、代表的に4つの処理ユニットSPIN1〜SPIN4を用いた全体スケジュールが示されている。また、説明の簡単のために、8枚の基板Wに対する処理について述べる。実際にはより多くの基板Wが処理される。
図4に示される各ブロックは、各ユニット(インデクサロボットIR、主搬送ロボットCRおよび処理ユニットSPIN1〜SPIN4)における処理の内容を示している。具体的には、記号Gで示されるブロックは、各基板搬送ユニット(インデクサロボットIRおよび主搬送ロボットCRの各々)による基板Wの搬出処理を示し、記号Pで示されるブロックは、各基板搬送ユニットによる基板Wの搬入処理を示し、空欄のブロックは各処理ユニットSPIN1〜SPIN4における処理を示している。また各ブロックの長さは、対応する処理の所要処理時間を示している。これらのブロックは処理内容データ40によって規定される。
図4に示される各ブロックの位置は、当該ブロックに対応する処理の時間帯を示している。つまり、ブロックの両端の位置はそれぞれ処理の開始時刻および終了時刻を示している。また、ブロック間をつなぐ矢印は基板Wの移動先を示している。
ここで、代表的に、処理ユニットSPIN1によって処理される基板Wに着目して、全体スケジュールを説明する。図4の例では、処理ユニットSPIN1によって処理される基板Wに対応するブロックを、太線で示している。ここでは、処理ユニットSPIN1によって順次に処理される2枚の基板Wとして基板W1,W2を例として説明する。図4によれば、未処理の基板W1はインデクサロボットIRによって基板収容器Cから取り出され(ブロックA1)、受渡ユニットPASSに受け渡される(ブロックA2)。そして、この基板W1は主搬送ロボットCRによって受渡ユニットPASSから取り出され(ブロックA3)、処理ユニットSPIN1に受け渡される(ブロックA4)。基板W1には、この処理ユニットSPIN1において処理が施される(ブロックA5)。
図4の例では、処理ユニットSPIN1の処理終了前に、次の未処理の基板W2がインデクサロボットIRによって基板収容器Cから取り出され(ブロックB1)、受渡ユニットPASSに受け渡される(ブロックB2)。そして、基板W2は主搬送ロボットCRによって受渡ユニットPASSから取り出される(ブロックB3)。
一方、処理ユニットSPIN1の処理終了後に、処理済みの基板W1は主搬送ロボットCRによって処理ユニットSPIN1から取り出され(ブロックA6)、引き続き、次の未処理の基板W2が主搬送ロボットCRによって処理ユニットSPIN1に受け渡される(ブロックB4)。なお、本実施の形態では、主搬送ロボットCRは2つのハンド13A,13Bを含むので、例えばハンド13Aによって処理済みの基板W1を処理ユニットSPIN1から取り出し(ブロックA6)、ハンド13Bによって未処理の基板W2を処理ユニットSPIN1に受け渡す(ブロックB4)ことができる。処理済みの基板W1は主搬送ロボットCRから受渡ユニットPASSに受け渡される(ブロックA7)。この基板W1はインデクサロボットIRによって受渡ユニットPASSから取り出され(ブロックA8)、基板収容器Cに受け渡される(ブロックA9)。
一方、未処理の基板W2には、処理ユニットSPIN1によって処理が施される(ブロックB5)。そして、処理ユニットSPIN1による基板W2の処理が終了すると、主搬送ロボットCRによって処理ユニットSPIN1から取り出され(ブロックB6)、受渡ユニットPASSに受け渡される(ブロックB7)。続いて、処理済みの基板W2はインデクサロボットIRによって受渡ユニットPASSから取り出され(ブロックB8)、基板収容器Cに受け渡される(ブロックB9)。
制御部21のスケジューリング機能部25が、図4に例示するような全体スケジュールを作成し、処理実行指示部26がこの全体スケジュールに従って基板処理装置100の各部を制御すれば、全体スケジュールに従った動作を基板処理装置100に行わせることができる。図4の全体スケジュールによれば、処理ユニットSPIN1〜SPIN4がそれぞれ2回の処理を行うことにより、8枚の基板Wが処理される。
しかしながら、処理ユニットSPIN1〜SPIN4における所要処理時間は種々の要因により、予め決められた時間と相違し得る。当該処理時間は、例えば、処理ユニットSPIN1〜SPIN4の個体差によって相違し得るし、また、処理ユニットSPIN1〜SPIN4の経時的な変化によっても相違し得る。また、当該所要処理時間は基板Wの個体差によっても相違し得る。
そこで、本実施の形態では、図3に示すように、各処理ユニットSPIN1〜SPIN12はセンサSRを含んでいる。このセンサSRは各処理ユニットSPIN1〜SPIN12の処理実行中において処理進行状況をモニタする。具合的には、各センサSRは、各処理ユニットSPIN1〜SPIN12の処理進行状況を示すユニットセンシング情報を検出する。当該ユニットセンシング情報は、各処理ユニットSPIN1〜SPIN12の処理の残り時間、つまり処理の終了時刻に関連する情報である。処理ユニットSPIN1〜SPIN12はセンサSRの検出に応じて、通知情報を制御部21に通知する。
例えば処理ユニットSPIN1〜SPIN12が基板Wの表面の所定膜に対してエッチング処理を行う場合、当該ユニットセンシング情報として当該所定膜の膜厚を採用できる。この場合、センサSRは基板W上の所定膜の膜厚を検出する。例えばセンサSRとしては、基板Wの表面を撮像するカメラを採用できる。基板Wの表面はエッチングの進行度、つまり、所定膜の膜厚に応じて変化するので、カメラによって取得される画像も所定膜の膜厚に応じて変化する。よって、この画像はエッチングの進行度に関連する情報、言い換えれば、処理の終了時刻に関連する情報である。
エッチングが進行すると、そのエッチング対象領域の色が処理の進行状況(つまり、エッチングの進行度)に応じて変化する場合がある。この場合、エッチングの進行度とエッチング対象領域の色との関係を予め求めておいてもよい。また、エッチングの進行度は処理開始からの経過時間に依存するので、当該関係から、エッチング対象領域の色と処理の残り時間との対応関係を予め求めることができる。このような対応関係は例えば実験またはシミュレーションにより求めることができる。この対応関係を示す関係性情報は、例えば数値表またはルックアップテーブルとして記憶媒体23に記憶されてもよく、あるいは、演算式(関数式)として記憶媒体23に記憶されてもよい。
そして、センサSRによって取得された画像に対する画像処理を行うことにより、エッチング対象領域の色を判別すれば、その判別した色と、予め決められた対応関係(記憶媒体23の関係性情報)とに応じて、処理の残り時間を求める(推定する)ことができる。
処理ユニットSPIN1〜SPIN12の各々は、処理中にセンサSRによって検出されたユニットセンシング情報に応じて、当該処理中に通知情報を制御部21に通知する。通知情報は、センサSRによって取得されたユニットセンシング情報(上述の例では画像)であってもよい。この場合、制御部21のスケジューリング機能部25は、当該通知情報と上記対応関係とに基づいて、その通知元の処理ユニットの残り時間を推定し、ユニット推定終了時刻を推定する(推定ステップ)。
なお、制御部21の機能が分割されている場合もある。例えば処理ユニットSPIN1〜SPIN12のそれぞれに制御部が設けられ、処理ユニットSPIN1〜SPIN12の制御部が制御部21と通信線で接続される場合もある。この場合、各処理ユニットSPIN1〜SPIN12の制御部が、センサSRによって検出されたユニットセンシング情報に基づいて処理の残り時間を推定してもよい。そして、各処理ユニットSPIN1〜SPIN12の制御部は、この推定残り時間を含む通知情報を制御部21に通知してもよい。
以上のように、制御部21のスケジューリング機能部25は、処理ユニットが処理を実行している途中に、その処理ユニットのユニット推定終了時刻を認識することができる。言い換えれば、スケジューリング機能部25は、その処理ユニットが処理を終了するまでに、その処理ユニットのユニット推定終了時刻を認識することができる。そこで、スケジューリング機能部25は、その処理ユニットが処理を終了するまでに、そのユニット推定終了時刻に基づいて全体スケジュールを再作成する。具体的には、スケジューリング機能部25はその処理ユニットの終了時刻をユニット推定終了時刻に基づいて決定し、これに伴って、他のユニットの処理の時間帯も適宜に決定する。以下、具体的な動作の一例について詳述する。
なお、ここでは、各ユニットの処理の時間帯の決定を、当該処理に対応したブロックの配置で説明する。つまり、ブロックを時間軸上で仮想的に配置することで、当該ブロックに対応した処理の時間帯を決定している。
<基板処理装置100の具体的な動作例>
第1の実施の形態では、全体スケジュールを投入計画および払出計画に分割して考慮する。投入計画とは、基板収容器Cから各処理ユニットSPIN1〜SPIN12への基板Wの搬送に関する計画である。つまり、この投入計画は、基板Wの搬入および処理の開始時刻を規定する計画であり、より具体的には、各処理ユニットへの各基板搬送ユニットの搬送処理の時間帯(例えばブロックA1〜A4,B1〜B4)と、各処理ユニットSPIN1〜SPIN12の処理の開始時刻(例えばブロックA5,B5の開始時刻)とを規定した計画である。払出計画とは、各処理ユニットSPIN1〜SPIN12から基板収容器Cまでの基板Wの搬送に関する計画である。つまり、この払出計画は、処理の終了時刻および基板Wの搬出を規定する計画であり、より具体的には、各処理ユニットSPIN1〜SPIN12の処理の終了時刻(例えばブロックA5,B5の終了時刻)と、基板収容器Cへの各基板搬送ユニットの搬送処理の時間帯(例えばブロックA6〜A9,B6〜B9)とを規定した計画である。
図5は、基板処理装置100(スケジュール作成装置)の具体的な動作の一例を示すフローチャートである。この一連の処理は繰り返し実行される。まず、スケジューリング機能部25は基板処理開始指示があったか否かを判断する(ステップS1)。例えばホストコンピュータまたはユーザから出入力部22に当該開始指示が入力される。制御部21は当該入力に応答して、例えば開始指示のフラグをLからHに遷移させる。ここでいう「L」および「H」は情報の2値を示すものであり、開始指示のフラグがHであることは、基板処理開始指示が入力されたことを示す。この開始指示のフラグは、全ての基板Wに対する処理が終了するまでHを維持する。
基板処理開始指示は、共通の基板収容器Cに収容された全ての基板Wを一単位として発行されてもよい。また、基板処理開始指示は、共通の基板収容器Cに収容された全数未満の1枚以上の基板Wの処理開始を指示するものであってもよいし、別々の基板収容器Cに収容された複数枚の基板Wの処理開始を指示するものであってもよい。
基板処理開始指示がない、つまり開始指示のフラグがLであるときには、スケジューリング機能部25は再びステップS1を実行する。基板処理開始指示があったときには、スケジューリング機能部25は計画範囲を決定する(ステップS2)。つまり、スケジューリング機能部25は全体スケジュールのうち投入計画を作成するのか、払出計画を作成するのかを決定する。初期的には、スケジューリング機能部25は投入計画を計画範囲に決定する。以下では、まず投入計画の作成に着目して、各ステップを説明する。また、以下では、説明の簡単のために、4つの処理ユニットSPIN1〜SPIN4を用いて説明を行う。
例えば、処理内容データ40において或るプロセスジョブ符号に対応付けられたレシピが、処理ユニットSPIN1〜SPIN4の並行処理を指定しているとする。すなわち、当該レシピに従う基板処理が、4つの処理ユニットSPIN1〜SPIN4のいずれにおいても実行可能である場合を考える。この場合、当該プロセスジョブ符号が付与された基板Wが処理を受けるときに通る経路は、4通りである。すなわち、その基板Wの処理のために選択し得る経路は、処理ユニットSPIN1〜SPIN4のいずれかを通る4つの経路である。そこで、スケジューリング機能部25は、その4つの経路に対応した仮タイムテーブルを作成する(ステップS3)。
図6は、処理ユニットSPIN1を通る経路に対応した仮タイムテーブルの一例を示す図である。ここでは、全体スケジュールの投入計画を作成するので、仮タイムテーブルでも、投入計画で用いられるブロックが配置される。図6の例では、仮タイムテーブルは、インデクサロボットIRによる基板収容器Cからの基板Wの搬出処理を表すブロックA1と、インデクサロボットIRによる基板Wの受渡ユニットPASSへの搬入処理を表すブロックA2と、主搬送ロボットCRによる受渡ユニットPASSからの基板Wの搬出処理を表すブロックA3と、主搬送ロボットCRによる基板Wの処理ユニットSPIN1への搬入処理を表すブロックA4と、処理ユニットSPIN1による基板Wに対する処理の開始を表すブロックA51とを含む。
なお、以下では、インデクサロボットIRおよび主搬送ロボットCRの各々による搬出処理および搬入処理を纏めて搬送処理とも呼ぶ。この搬送処理を示すブロックは、互いに隣接して記号G,Pが付記された一対のブロック(例えば一対のブロックA1,A2および一対のブロックA3,A4)である。
スケジューリング機能部25は、図6に示すように、複数のブロックを時間軸上で重なり合いのないように順番に配置することによって、仮タイムテーブルを作成する。スケジューリング機能部25は、同じ基板Wに対して、4つの処理ユニットSPIN1〜SPIN4をそれぞれ通る4つの経路に対応した同様の4つの仮タイムテーブル(ブロックを処理ユニットSPIN1〜SPIN4にそれぞれ配置した仮タイムテーブル)を作成する。こうして、1枚の基板Wに対して合計4経路分の仮タイムテーブルが作成される。
同様の仮タイムテーブルが、同じプロセスジョブ符号が付与された基板W(ここでは、最初に処理ユニットSPIN1〜SPIN4で処理される4つの基板W)に対応して作成される。こうして作成された仮タイムテーブルは、スケジュールデータの一部として記憶媒体23に格納される。仮タイムテーブルの作成段階では、複数の基板Wに関するブロック同士の干渉(時間軸上での重なり合い)は考慮されない。
スケジューリング指示が発生すると(ステップS4:YES)、当該プロセスジョブの基板Wに関するブロックの配置が行われる(ステップS4〜S13)。なお、制御部21はスケジューリング指示の発生に応じて、スケジューリング指示のフラグをLからHに遷移させる。スケジューリング指示のフラグがHであることは、スケジューリング指示が発生したことを示す。このスケジューリング指示のフラグは、全ての基板Wに対する処理が終了するまでHを維持する。
スケジューリング指示が発生すると、スケジューリング機能部25は、スケジュール作成対象の基板Wがプロセスジョブの最初の基板Wであるか否かを判断する(ステップS5)。基板Wがプロセスジョブの最初の基板Wである場合、スケジューリング機能部25は前準備処理が必要か否かを判断する(ステップS6)。前準備処理としては、例えば、処理液ノズルから処理液を一定量だけ吐出するプリディスペンス工程を挙げることができる。例えば、温度調整された処理液を基板に供給して当該基板を処理する場合に、プリディスペンス工程を実行することによって、処理液ノズルおよび処理液配管に滞留していて目標温度範囲外の温度となってしまった処理液を排出して、処理液ノズルの吐出口に温度調整された処理液を導くことができる。そして、プリディスペンス工程の後に、基板Wに対して処理液を吐出する処理液供給工程を実行することによって、当初から温度調整された処理液によって基板Wを処理できる。これにより、精密な基板処理を実現できる。前準備処理の例としては、他にも、処理ユニットに設けられた処理室(チャンバ)内の洗浄処理(チャンバ洗浄)を例示できる。処理室内の洗浄を実行することによって、次に処理室に搬入される基板Wに対して、前の基板Wに対する処理の影響が及ぶことを回避できる。これにより、精密な基板処理を実現できる。チャンバ洗浄は、例えば、基板Wを保持して回転させるスピンチャックの洗浄、スピンチャックを収容する処理カップの洗浄、スピンチャックから飛び散る処理液を受けるガード(飛散防止部材)の洗浄などを含む。前準備処理の例としては、さらに、基板Wを保持するチャックピンの洗浄、処理室内のその他の部品の洗浄などを挙げることができる。
前準備処理の要否は、プロセスジョブ符号に対応付けられたレシピにおいて指定される。前準備処理が必要であるときには、当該基板Wを処理する可能性のある処理ユニットSPIN1〜SPIN4(前述の例では全ての処理ユニット)に関して、前準備処理の実行を表すブロック(前準備ブロック)が配置される(ステップS7)。図7は、全ての処理ユニットSPIN1〜SPIN4に関して前準備ブロックを配置した計画の一例を模式的に示す図である。当該プロセスジョブの最初の基板W以外の基板Wのスケジューリングを実行するときには(ステップS5:NO)、ステップS6,S7の処理が省かれる。また、当該プロセスジョブの最初の基板Wのスケジューリングを行うときであっても、当該プロセスジョブに対応するレシピが前準備処理を指定していないものであれば(ステップS6:NO)、ステップS7の処理が省かれる。ここでは、一例として、前準備ブロックが配置されない場合について述べる。
次に、スケジューリング機能部25は、当該基板Wに対応する仮タイムテーブルを参照し、当該仮タイムテーブルを構成するブロックを一つ取得する(ステップS8)。このとき取得されるブロックは、未配置のブロックのうち仮タイムテーブルの時間軸上で最も早い位置に配置されているブロックである。さらに、スケジューリング機能部25は、当該取得したブロックを配置できる位置を検索し(ステップS9)、その検索された位置に当該ブロックを配置する(ステップS10)。各ブロックは、同一リソースが同じ時間に重複して使用されないようにしながら、時間軸上で最も早い位置に配置される。なお、ここでいうブロックの配置とは、実際にブロックを配置しているのではなく、実際的には各処理の時間帯を仮決定している。
次に、スケジューリング機能部25は、仮タイムテーブルの全てのブロックの配置が終了したかを判断し(ステップS11)、未配置であれば(ステップS11:NO)、同様の動作(ステップS8〜S10)を繰り返す。そして、仮タイムテーブルの全てのブロックを配置し終えると(ステップS11:YES)、スケジューリング機能部25は、全ての仮タイムテーブルを用いた計画の作成が終了したか否かを判断する(ステップS12)。つまり、4つの処理ユニットSPIN1〜SPIN4を用いた全てのパターンの投入計画が作成されたか否かを判断する(ステップS12)。未だ全てのパターンが作成されていない場合(ステップS11:NO)、スケジューリング機能部25は再びステップS4を実行する。全てのパターンが作成されていると(ステップS12:YES)、スケジューリング機能部25は、作成済みの計画の一つを全体スケジュールとして選択するための判定を行う(ステップS13)。例えば、スケジューリング機能部25は、スループットが最も高い計画を特定し、その計画を選択する。スループットが最も高い計画が複数あれば、スケジューリング機能部25は、例えば、その計画のうち、ブロックの間隔(使用間隔)が最も空いている計画を選択する。また、使用間隔も同じであれば、スケジューリング機能部25は、例えば、その計画のうち、識別番号が小さい処理ユニットから順に動作する計画を選択する。
図8は、上述の動作によって初期的に作成された全体スケジュールの一例を模式的に示す図である。図8の例では、処理ユニットSPIN1〜SPIN4における処理の開始時刻はこの順に遅くなっている。投入計画は、インデクサロボットIRによる搬出処理(「G」)および搬入処理(「P」)を示すブロックと、主搬送ロボットCRによる搬出処理(「G」)および搬入処理(「P」)を示すブロックと、各処理ユニットSPIN1〜SPIN4の処理の開始時刻を示すブロックとによって表現される。図8に例示するように、この時点では、全体スケジュールは最初の4枚の基板Wに対する投入計画のみを含んでいる。
なお、ステップS4〜S13は、仮タイムテーブルに基づいて全体スケジュールを作成するスケジューリングステップに相当する。
制御部21の処理実行指示部26は、図8の全体スケジュールに従った動作を基板処理装置100に実行させる。よって、処理ユニットSPIN1〜SPIN4は図8の全体スケジュールに従って基板Wに対する処理を開始する。そして、各処理ユニットSPIN1〜SPIN4が処理を開始すると、その処理中において、各センサSRはユニットセンシング情報を検出し(検出ステップ)、その検出に応じて通知情報を制御部21に通知する。
制御部21のスケジューリング機能部25は通知情報の通知に応じて、その通知元の処理ユニットに対する払出計画およびその次の投入計画を作成する。この作成も図5のフローチャートに沿って行うことができる。
なお、基板処理装置100の全体スケジュールに従った動作の実行中においては、基板処理開始指示のフラグは常にHとなっているので、ステップS1の処理において、肯定的な判断(YESの判断)がなされる。
スケジューリング機能部25は通知情報の通知に応じて、作成対象となる計画範囲を払出計画に決定する(ステップS2)。次に、スケジューリング機能部25は通知情報に基づいて仮タイムテーブルを更新する(ステップS3)。具体的には、スケジューリング機能部25は仮タイムテーブルにおいて、通知元の処理ユニットから基板収容器Cまでの搬送に関するブロックを、通知情報に基づいて配置する。
ここでは、処理ユニットSPIN1から通知情報がスケジューリング機能部25に通知されたものとする。スケジューリング機能部25は通知情報に基づいて処理ユニットSPIN1の推定残り時間を認識できる。スケジューリング機能部25は処理ユニットSPIN1の推定残り時間に基づいて所要処理時間を算出し、この所要処理時間に基づいて仮タイムテーブルを更新する(ステップS3:仮タイムテーブル更新ステップ)。所要処理時間は、処理ユニットSPIN1の処理の開始時刻から現在時刻までの時間と、推定残り時間との和に基づいて算出される。スケジューリング機能部25は、仮タイムテーブルにおける、通知元の処理ユニットSPIN1に対応するブロックの内容を、当該所要処理時間に基づいて更新する。図9は、処理ユニットSPIN1についての更新後の仮タイムテーブルである。図9の例では、仮タイムテーブルにおいて、処理ユニットSPIN1の処理の終了を規定するブロックA52と、処理ユニットSPIN1から受渡ユニットPASSへの主搬送ロボットCRによる搬送処理を規定するブロックA6,A7、および、受渡ユニットPASSから基板収容器CへのインデクサロボットIRによる搬送処理を規定するブロックA8、A9が新たに配置されている。図9の例では、新たに配置されたブロックを斜線のハッチングで示している。
ステップS4では、スケジューリング指示のフラグがHであるので、肯定的な判断(YESの判断)がなされ、ステップS5では、否定的な判断(NOの判断)がなされる。
次に、スケジューリング機能部25は、通知元の処理ユニットSPIN1に対する仮タイムテーブルを参照し、当該仮タイムテーブルを構成する未配置のブロックを一つ取得する(ステップS8)。ここでいう未配置のブロックとは、全体スケジュールに未だ配置されていないブロックである。例えば、スケジューリング機能部25は、未配置のブロックのうち最も早い位置に配置されたブロックA52を取得する。
スケジューリング機能部25は、当該取得したブロックA52を配置できる位置を検索し(ステップS9)、その検索された位置に当該ブロックA52を配置する(ステップS10)。他のブロックA6〜A9についても同様の処理により順次に配置される(ステップS11:NO、ステップS9〜S10)。これにより、スケジューリング機能部25は、処理ユニットSPIN1についての払出計画を含んだ全体スケジュールを作成できる。
図10は、上述の動作により作成された全体スケジュールの一例を模式的に示す図である。図10の例では、処理ユニットSPIN1から通知情報が通知された通知時刻t2(SPIN1)と、その処理ユニットSPIN1のユニット推定終了時刻t3(SPIN1)も示されている。
スケジューリング機能部25は、図10に示すように、当該通知情報に基づいて、処理ユニットSPIN1の終了時刻を示すブロックと、処理ユニットSPIN1から基板収容器Cへの搬送処理に関する主搬送ロボットCRおよびインデクサロボットIRのブロックが新たに配置されている。図10の例でも、新たに配置されたブロックを斜線のハッチングで示している。
なお、ここでは、未だ処理すべき基板Wが基板収容器Cに存在しているので、通知元の処理ユニットSPIN1についての次の投入計画も作成する。つまり、処理ユニットSPIN1に対して搬送可能な次の未処理の基板Wが基板収容器Cに存在する場合には、その基板Wを処理ユニットSPIN1に搬送すべく、スケジューリング機能部25は処理ユニットSPIN1に対する次の投入計画も作成する。言い換えれば、ステップS2において、未処理の基板Wが存在する場合には、スケジューリング機能部25は、通知情報の通知元の処理ユニットに対する払出計画のみならず、当該処理ユニットについての次の投入計画も計画範囲に決定する。
この場合、ステップS3において、スケジューリング機能部25は、現在の基板Wの仮タイムテーブル(図8)のみならず、次の基板Wの処理ユニットSPIN1についての仮タイムテーブルも作成する。ただし、次の基板Wの仮タイムテーブルは、図6と同様に、投入計画に関するブロックのみが配置される。そして、スケジューリング機能部25は、現在の基板Wに対する払出計画を作成した後に、次の基板Wの投入計画に関するブロックについて、ステップS8〜ステップS10を繰り返して、次の基板Wについての投入計画を作成する。
図11は、上述の動作により作成された全体スケジュールの一例を模式的に示す図である。図11の例では、次の基板Wについての、基板収容器Cから処理ユニットSPIN1への基板Wの搬送処理に関するインデクサロボットIRおよび主搬送ロボットCRのブロック、および、処理ユニットSPIN1の次の処理の開始時刻を示すブロックが新たに配置されている。図11の例でも、新たに配置されたブロックを斜線のハッチングで示している。図11の例では、処理ユニットSPIN1の処理の終了時刻と、処理ユニットSPIN1の次の処理の開始時刻との間には、所定の準備期間が設けられている。
上述の動作では、処理ユニットSPIN1についての払出計画および次の投入計画を含む全体スケジュールが一つ作成される。よって、ステップS12では、肯定的な判断(YESの判断)がなされる。全体スケジュールが一つ作成されているので、ステップS13において判定処理は実質的に省略される。
ところで、スケジューリング機能部25は処理ユニットSPIN1についての払出計画および次の投入計画の作成、つまり、全体スケジュールの再作成を、処理ユニットSPIN1のユニット推定終了時刻t3(SPIN1)よりも前に完了させる。例えば、センサSRは処理ユニットSPIN1の処理開始から所定時間が経過したときに通知情報を取得し、当該通知情報を通知してもよい。当該所定時間は、通知情報の通知時刻t2(SPIN1)からの処理の残り時間が、全体スケジュールの再作成に要する所要作成時間Tref以上となるように、予め設定されてもよい。所要作成時間Trefも例えば予め設定される。
これによれば、制御部21のスケジューリング機能部25が通知情報を受け取った通知時刻t2(SPIN1)において、その通知元の処理ユニットSPIN1の処理の推定残り時間は、その通知元の払出計画および次の投入計画の作成に要する所要作成時間Trefよりも長い。よって、スケジューリング機能部25は通知元の処理ユニットSPIN1のユニット推定終了時刻t3(SPIN1)よりも前に、当該処理ユニットSPIN1の払出計画および次の投入計画を作成することができる。したがって、処理実行指示部26は基板処理装置100の動作を中断させることなく、全体スケジュールに従った動作を基板処理装置100に続行させることができる。
なお、通知情報に応じて実行されるステップS3は、仮タイムテーブルを更新する仮タイムテーブル更新ステップに相当し、通知情報に応じて実行されるステップS4〜S13は、全体スケジュールを再作成する全体スケジュール更新ステップに相当する。仮タイムテーブル更新ステップおよび全体スケジュール更新ステップは、通知元の処理ユニットのユニット推定終了時刻t3までに完了する。
なお、ユニット推定終了時刻t3(SPIN1)の算出精度は、センサSRによるユニットセンシング情報の検出タイミングが処理の終了時刻に近いほど高い。つまり、ユニットセンシング情報に基づいて推定される推定残り時間が短いほど、その推定精度は高い。そこで、スケジューリング機能部25は、推定残り時間が、全体スケジュールの再作成に要する所要作成時間Trefに近い値となったときに、全体スケジュールの再作成を開始してもよい。具体的な動作の一例としては、処理ユニットSPIN1の制御部は、センサSRによる検出のたびに、処理の残り時間を推定し、その推定残り時間が所要作成時間Trefに近づいたか否かを判断する。例えば、当該制御部は推定残り時間と所要作成時間Trefとの差が基準値未満となったか否かを判断する。当該基準値は例えば予め設定される。そして、当該差が基準値未満となったときに、当該制御部は通知情報(推定残り時間)を制御部21に通知する。
これによれば、スケジューリング機能部25は、より高い精度で推定された推定残り時間(つまりユニット推定終了時刻t3(SPIN1))に基づいて、その処理ユニットSPIN1の払出計画および次の投入計画を作成することができる。つまり、より精度の高い全体スケジュールを再作成できる。
以下では、処理ユニットSPIN2〜SPIN4も、推定残り時間と所要作成時間Trefとの差が基準値未満となったときに、通知情報を制御部21に通知するものとする。よって、処理ユニットSPIN1からの通知の後には、処理ユニットSPIN2のセンサSRから、通知情報が通知される。スケジューリング機能部25は通知情報の通知に基づいて、その通知元の処理ユニットSPIN2についての払出計画を作成しつつ、必要に応じて次の投入計画も作成して、全体スケジュールを再作成する。
図12は、上述の動作により作成された全体スケジュールの一例を模式的に示す図である。図12の例では、通知時刻t2(SPIN2)において、処理ユニットSPIN2から通知情報がスケジューリング機能部25に通知される。スケジューリング機能部25は、当該通知情報に基づいて、処理ユニットSPIN2についての払出計画および次の投入計画を作成して、全体スケジュールを再作成する。図12の例でも、新たに配置されたブロックを斜線のハッチングで示している。
以後、同様の処理を繰り返すことにより、基板処理装置100の動作と並行しつつ、順次に新たな計画が全体スケジュールに盛り込まれる。これにより、図4に例示する全体スケジュールが作成される。
なお、上述の例では、処理ユニットSPIN1〜SPIN4の所要処理時間が通常の所要処理時間とほぼ等しい場合を例に挙げて説明した。次に、処理ユニットSPIN1〜SPIN4における所要処理時間が変動した場合の例について述べる。ここでは、まず、処理ユニットSPIN2,SPIN4の所要処理時間が通常よりも短い場合について述べる。基板処理装置100の動作の一例は図5と同様である。
まず、スケジューリング機能部25は上述の通り、基板処理装置100の動作を開始する前に全体スケジュールの一部として各処理ユニットSPIN1〜SPIN4についての最初の投入計画を作成する(ステップS2:投入計画、ステップS3〜S13)。これにより、図8に例示する全体スケジュールが作成される。
各処理ユニットSPIN1〜SPIN4の制御部は、処理の推定残り時間が、全体スケジュールの再作成に要する所要作成時間Trefに近づいたときに、制御部21に通知情報を通知する。よって、通知時刻t2は、その処理ユニットの実際の所要処理時間が短いほど、早くなる。言い換えれば、通知時刻t2は、その処理ユニットの実際の所要処理時間が長いほど、遅れる。
ここでは、処理ユニットSPIN2の実際の所要処理時間が通常よりも短いために、処理ユニットSPIN1よりも先に処理ユニットSPIN2から通知情報が通知されるものとする。スケジューリング機能部25は既述のように、この通知情報に基づいて、通知元の処理ユニットSPIN2の仮タイムテーブルを更新し(および必要に応じて次の基板Wに対する仮タイムテーブルを作成し)、処理ユニットSPIN2についての払出計画(および必要に応じて次の投入計画)を作成する(ステップS2:払出計画(および必要に応じて次の投入計画)、ステップS3〜S13)。スケジューリング機能部25は、処理ユニットSPIN2のユニット推定終了時刻t3(SPIN2)の前に、全体スケジュールの再作成を完了する。
図13は、上述の動作により作成された全体スケジュールの一例を模式的に示す図である。図13の例では、処理ユニットSPIN1の払出計画およびその次の投入計画についてのブロックは未だ配置されておらず、処理ユニットSPIN2の払出計画およびその次の投入計画についてのブロックが新たに配置されている。図13の例でも、新たに配置されたブロックが斜線のハッチングで示されている。
基板処理装置100における処理が進行すると、処理ユニットSPIN1からの通知情報が制御部21に通知される。スケジューリング機能部25は、既述のように、この通知情報に基づいて、通知元の処理ユニットSPIN1の仮タイムテーブルを更新し(および必要に応じて次の基板Wに対する仮タイムテーブルを作成し)、処理ユニットSPIN1についての払出計画(および必要に応じて次の投入計画)を作成する(ステップS2:払出計画(および必要に応じて次の投入計画)、ステップS3〜S13)。スケジューリング機能部25は、処理ユニットSPIN1のユニット推定終了時刻t3(SPIN1)の前に、全体スケジュールの再作成を完了する。
図14は、上述の動作により作成された全体スケジュールの一例を模式的に示す図である。図14の例では、処理ユニットSPIN1の払出計画およびその次の投入計画についてのブロックが新たに配置されている。図14の例でも、新たに配置されたブロックが斜線のハッチングで示されている。図14の例では、処理ユニットSPIN1のユニット推定終了時刻t3(SPIN1)は処理ユニットSPIN2のユニット推定終了時刻t3(SPIN2)よりも後である。よって、処理ユニットSPIN1内の基板Wに対する主搬送ロボットCRの搬送処理を示す一対のブロックA6,A7は、処理ユニットSPIN2内の基板Wに対する主搬送ロボットCRの搬出処理を示す一対のブロックC6,C7と干渉しないように、当該一対のブロックC6,C7の直後に配置される。同様に、処理ユニットSPIN1からの基板Wに対するインデクサロボットIRの搬送処理を示す一対のブロックA8,A9も、処理ユニットSPIN2からの基板Wに対するインデクサロボットIRの搬出処理を示す一対のブロックC8,C9の直後に配置される。
また、次に処理ユニットSPIN1に搬入される基板WについてのインデクサロボットIRの搬送処理を示すブロックB1,B2も、次に処理ユニットSPIN2に搬入される基板WについてのインデクサロボットIRの搬送処理を示すブロックD1,D2の直後に配置され、次に処理ユニットSPIN1に搬入される基板Wについての主搬送ロボットCRの搬送処理を示すブロックB3,B4も、次に処理ユニットSPIN2に搬入される基板Wについての主搬送ロボットCRの搬送処理を示すブロックD3,D4の直後に配置される。よって、処理ユニットSPIN1の次の処理の開始時刻を示すブロックB51は、処理ユニットSPIN2の次の処理の開始時刻を示すブロックD51よりも後に配置される。つまり、処理ユニットSPIN1,SPIN2の処理の開始順序が逆転する。
基板処理装置100の動作がさらに進行すると、処理ユニットSPIN3,SPIN4も順次に通知情報が通知される。ここでは、処理ユニットSPIN4の実際の所要処理時間が通常よりも短く、処理ユニットSPIN3よりも先に処理ユニットSPIN4から通知情報が通知される。スケジューリング機能部25は、その通知のたびに、既述のように、その通知元の処理ユニットの払出計画および次の投入計画を作成して、全体スケジュールを再作成する。その後も、処理ユニットSPIN1〜SPIN4は順次に通知情報を制御部21に通知し、その都度、スケジューリング機能部25は、全体スケジュールを再作成する。スケジューリング機能部25は、通知元の処理ユニットのユニット推定終了時刻t3の前に、全体スケジュールの再作成を完了する。
図15は、上述の動作により作成された全体スケジュールの一例を模式的に示す図である。図15の例でも、処理ユニットSPIN1〜SPIN4がそれぞれ2回の処理を行うことにより、8枚の基板Wが処理される。ただし、図15では、処理ユニットSPIN1,SPIN2の2回目の処理の開始順序が1回目の処理の開始順序と反対となり、処理ユニットSPIN3,SPIN4の2回目の処理の開始順序も1回目の処理の開始順序の反対となる。
以上のように、処理ユニットSPIN2,SPIN4の実際の所要処理時間が通常よりも短くなったとしても、基板処理装置100は動作を中断することなく、その短くなった所要処理時間が反映された全体スケジュールに応じた動作を続行することができる。
また、図15の例では、所要処理時間の短い処理ユニットSPIN2からの基板Wの搬出が、所要処理時間の長い処理ユニットSPIN1からの基板Wの搬出よりも先に実行される。同様に、処理ユニットSPIN4からの基板Wの搬出が処理ユニットSPIN3からの基板Wの搬出よりも先に実行される。つまり、所要処理時間の短い処理ユニットの処理を優先的に終了させつつ、所要処理時間の短い処理ユニットにその次の処理を優先的に開始させる。これによれば、例えばより多くの基板Wを処理する場合、所要処理時間の短い処理ユニットがより多くの回数で処理を実行できる。したがって、基板処理装置100の全体のスループットを向上できる。
次に、処理ユニットSPIN2,SPIN4の実際の所要処理時間が通常よりも長い場合について述べる。基板処理装置100の動作の一例は図5と同様である。
基板処理装置100の動作の開始前に初期的に作成された全体スケジュールは、図8と同様であり、処理ユニットSPIN1からの通知情報に基づいて再作成された全体スケジュールは、図11と同様である。ここでは、処理ユニットSPIN2の実際の所要処理時間が通常よりも長いために、処理ユニットSPIN2よりも先に処理ユニットSPIN3から通知情報が通知されるものとする。スケジューリング機能部25は既述のように、その通知元の処理ユニットSPIN3のユニット推定終了時刻t3(SPIN3)の前に、通知情報に基づいた全体スケジュールの再作成を完了する。
図16は、上述の動作により作成された全体スケジュールの一例を模式的に示す図である。図16の例では、処理ユニットSPIN3の払出計画およびその次の投入計画についてのブロックが新たに配置されている。図16の例でも、新たに配置されたブロックが斜線のハッチングで示されている。図16の例では、処理ユニットSPIN2の払出計画およびその次の投入計画についてのブロックは未だ配置されておらず、処理ユニットSPIN1,SPIN3の各々の払出計画およびその次の投入計画についてのブロックが配置されている。
基板処理装置100の動作がさらに進行すると、処理ユニットSPIN2から通知情報が通知される。スケジューリング機能部25は既述のように、その通知元の処理ユニットSPIN2のユニット推定終了時刻t3(SPIN2)の前に、ユニットセンシング情報に基づいた全体スケジュールの再作成を完了する。
図17は、上述の動作により作成された全体スケジュールの一例を模式的に示す図である。図17の例では、処理ユニットSPIN2の払出計画およびその次の投入計画についてのブロックが新たに配置されている。図17の例でも、新たに配置されたブロックが斜線のハッチングで示されている。図17の例では、処理ユニットSPIN3のユニット推定終了時刻t3(SPIN3)は処理ユニットSPIN2のユニット推定終了時刻t3(SPIN2)よりも早く、処理ユニットSPIN3からの基板Wの搬出処理は、処理ユニットSPIN2からの基板Wの搬出処理よりも前に行われる。よって、処理ユニットSPIN3の次の処理も処理ユニットSPIN2の次の処理の開始よりも先に開始される。つまり、処理ユニットSPIN2,SPIN3の処理の開始順序が逆転する。
基板処理装置100の動作がさらに進行すると、処理ユニットSPIN4からも通知情報が通知され、その後、処理ユニットSPIN1〜SPIN4から順次に通知情報が通知される。スケジューリング機能部25は、その通知のたびに、既述のように、全体スケジュールを再作成する。
図18は、上述の動作により作成された全体スケジュールの一例を模式的に示す図である。図18の例でも、処理ユニットSPIN1〜SPIN4がそれぞれ2回の処理を行うことにより、8枚の基板Wが処理される。図18の例では、処理ユニットSPIN2,SPIN3の2回目の処理の開始順序は1回目の開始順序と反対になっている。
以上のように、処理ユニットSPIN2,SPIN4の実際の所要処理時間が通常よりも長くなったとしても、基板処理装置100は動作を中断することなく、その長くなった所要処理時間が反映された全体スケジュールに応じた動作を続行することができる。
また、図18の例では、所要処理時間の短い処理ユニットSPIN3からの基板Wの搬出が、所要処理時間の長い処理ユニットSPIN2からの基板Wの搬出よりも先に実行される。これによれば、例えばより多くの基板Wを処理する場合、所要処理時間の短い処理ユニットがより多くの回数で処理を実行できる。したがって、基板処理装置100の全体のスループットを向上できる。
以上のように、第1の実施の形態によれば、各処理ユニットSPIN1〜SPIN4の所要処理時間が変動したとしても、その変動を反映した全体スケジュールの再作成を、その処理ユニットの処理が終了する前に完了する。したがって、基板処理装置100の動作を中断することなく、所要処理時間の変動を反映した全体スケジュールに従って動作を続行することができる。
しかも、第1の実施の形態によれば、各処理ユニットSPIN1〜SPIN4の処理の開始前には、その処理ユニットSPIN1〜SPIN4の当該処理についての払出計画は作成されていない。言い換えれば、各処理ユニットSPIN1〜SPIN4の払出計画を作成する前に、処理実行指示部26は全体スケジュールに従った動作を基板処理装置100に実行させる。そして、各処理ユニットSPIN1〜SPIN4の処理の実行中に検出されるセンサSRのユニットセンシング情報に基づいて、各処理ユニットSPIN1〜SPIN4の残り処理時間を推定し、その推定残り時間に基づいて、各処理ユニットSPIN1〜SPIN4の払出計画が作成される。
もし仮に基板処理装置100の動作の開始前に払出計画が作成されると、その払出計画はセンサSRのユニットセンシング情報に応じて修正され得る。払出計画が修正される場合、動作の開始前に作成した払出計画の当該修正部分は無駄である。
これに対して、第1の実施の形態では、処理実行指示部26は払出計画の作成前に、基板処理装置100の動作を開始する。よって、そのような無駄な払出計画の作成を回避できる。よって、スケジューリング機能部25の処理負荷を軽減することができる。
<ブロックの干渉>
上述の具体例では、スケジューリング機能部25は通知元の処理ユニットについてのブロックを配置することにより、全体スケジュールを再作成した。つまり、全体スケジュールにおいて既に配置されている他の処理ユニットについてのブロックは再配置せずに、通知元の処理ユニットについてのブロックを新たに配置していた。しかしながら、通知元の処理ユニットの配置のみならず、他の処理ユニットについてのブロックも再配置したほうがいい場合もある。以下、具体的に説明する。
図19は、全体スケジュールの一例を模式的に示す図である。図19に例示する全体スケジュールには、処理ユニットSPIN1〜SPIN4についての最初の投入計画のブロック、および、処理ユニットSPIN1についての払出計画および次の投入計画のブロックが配置されている。図19の例では、処理ユニットSPIN2の通知時刻t2(SPIN2)と、処理ユニットSPIN2のユニット推定終了時刻t3(SPIN3)も示されている。
図19の例では、処理ユニットSPIN2の実際の所要処理時間が処理ユニットSPIN1の実際の所要処理時間よりも短く、ユニット推定終了時刻t3(SPIN2)がユニット推定終了時刻t3(SPIN1)に比較的に近い。この場合、処理ユニットSPIN2からの基板Wの搬出処理のブロックをユニット推定終了時刻t3(SPIN2)に基づいて配置しようとすると、既に配置されているブロックA6と時間軸上で干渉する。
このように通知元の処理ユニットSPIN2についてのブロックが他の処理ユニットSPIN1についてのブロックと時間軸上で干渉する場合には、スケジューリング機能部25は、その通知元の処理ユニットSPIN2の所要処理時間と、当該他の処理ユニットSPIN1の所要処理時間との長短を比較し、所要処理時間の短い処理ユニットSPIN2についてのブロックが、所要処理時間の長い処理ユニットSPIN1についてのブロックよりも先に配置されるように、処理ユニットSPIN1,SPIN2の両方のブロックの位置を調整して、全体スケジュールを再作成してもよい。
図20は、上述の動作により作成された全体スケジュールの一例を模式的に示す図である。図20の例では、処理ユニットSPIN2からのユニットセンシング情報に基づいて、処理ユニットSPIN1,SPIN2についての払出計画および次の投入計画のブロック新たに配置されている。図20の例でも、配置されたブロックを斜線のハッチングで示している。要するに、処理ユニットSPIN1についての払出計画および次の投入計画も作成し直している。図20の例では、所要処理時間が短い処理ユニットSPIN2からの基板Wの搬出処理を示すブロックを、所要処理時間が長い処理ユニットSPIN1からの基板Wの搬出処理を示すブロックよりも前に配置している。
また、処理ユニットSPIN2への次の基板Wの搬入処理を示すブロックを、処理ユニットSPIN1への次の基板Wの搬入処理を示すブロックよりも前に配置し、処理ユニットSPIN2の次の処理の開始時刻を示すブロックを、処理ユニットSPIN1の次の処理の開始時刻を示すブロックよりも前に配置している。
これによれば、所要処理時間の短い処理ユニットSPIN2に基板Wの処理を優先的に実行させることができる。よって、全体的な処理のスループットの向上に資する。
なお、通知元の処理ユニットについてのブロックのみを新たに配置して全体スケジュールを再作成する場合には、処理ユニットの所要処理時間の長短を比較する必要がない。よって、この場合には、スケジューリング機能部25の処理負荷を軽減できる。
図21は、通知元の処理ユニットについてのブロックのみを配置したときの全体スケジュールの一例を模式的に示す図である。図21の例でも、新たに配置されたブロックを斜線のハッチングで示している。図21の例では、既に配置されている処理ユニットSPIN1についてのブロックは変更されておらず、通知元の処理ユニットSPIN2についてのブロックが、処理ユニットSPIN1についてのブロックよりも後に配置されている。
<第2の実施の形態>
第2の実施の形態にかかる基板処理装置100の構成は第1の実施の形態と同じである。第1の実施の形態では、処理実行指示部26は処理ユニットの払出計画の作成前に、基板処理装置100の動作を開始している。しかしながら、必ずしもこれに限らない。第2の実施の形態では、スケジューリング機能部25は、基板処理装置100の動作を開始する前に、処理ユニットの投入計画および払出計画を含む全体スケジュールを一旦作成する。
図22および図23は、基板処理装置100の動作の一例を示すフローチャートである。ステップS21〜S32は、それぞれステップS1,S3〜S13と同様である。ただし、ステップS21〜S32においては、計画範囲は、投入計画および払出計画の両方を含む全体スケジュール(図4)である。つまり、ステップS22において、スケジューリング機能部25は、投入計画および払出計画を含む仮タイムテーブルを作成する。これにより、ステップS32において、例えば図4に示す全体スケジュールが作成される。
全体スケジュールを作成すると、処理実行指示部26は当該全体スケジュールに従った動作を基板処理装置100に実行させる(ステップS33)。次に、スケジューリング機能部25は、各処理ユニットSPIN1〜SPIN4のから通知情報の通知があったか否かを判断する(ステップS34)。通知情報の通知がないと判断したとき(ステップS34:NO)、スケジューリング機能部25は再びステップS34を実行する。通知情報の通知があったときには(ステップS34:YES)、スケジューリング機能部25は、その通知元の処理ユニットのユニット推定終了時刻t3を当該通知情報に基づいて取得する(ステップS35)。次に、スケジューリング機能部25は、全体スケジュールにおける当該処理ユニットの処理終了予定時刻と、ユニット推定終了時刻t3との時刻差が時刻差基準値以上であるか否かを判断する(ステップS36)。時刻差基準値は例えば予め設定される。
当該時刻差が時刻差基準値以上であるときには(ステップS36:YES)、スケジューリング機能部25は、全体スケジュールを再作成する(ステップS37)。具体的には、スケジューリング機能部25は、例えば当該処理ユニットの終了時刻がユニット推定終了時刻t3となるように、当該処理ユニットの処理のブロックの長さを更新した上で、仮タイムテーブルを作成しなおし、作成しなおした仮タイムテーブルに基づき、全体スケジュールを再度作成する。つまり、時刻差が時刻差基準値以上であると判断された場合には、仮タイムテーブル更新ステップを実行し、時刻差が時刻差基準値よりも小さいと判断された場合には、仮タイムテーブル更新ステップを実行しない。
この全体スケジュールの再作成は、例えば、図22のフローチャートに沿って行うことも可能である。すなわち、スケジューリング機能部25は、例えば当該処理ユニットの終了時刻がユニット推定終了時刻t3となるように、当該処理ユニットの処理のブロックの長さを更新した上で、図22のステップS22からステップS31に至るステップを実行する。ただし、ステップS22において、スケジューリング機能部25は、処理ユニットの所要処理時間として、ユニットセンシング情報に基づいて推定された所要処理時間を採用して、仮タイムケジュールを更新する。
各処理ユニットSPIN1〜SPIN4の所要処理時間に関する処理時間情報は、処理内容データ40(レシピ)として記憶媒体23に記憶されている。そこで、制御部21はユニットセンシング情報に基づいて推定された各処理ユニットSPIN1〜SPIN4の所要処理時間を、処理内容データ40として記憶媒体23に記憶してもよい(ステップS38:ブロック更新工程)。つまり、推定された所要処理時間で処理内容データ40を更新してもよい。これによれば、次回以降に基板処理を開始する場合に、より実際に即した処理内容データ40を活用して、全体スケジュールを作成することができる。
当該時刻差が時刻差基準値未満であるとき(ステップS36:NO)、スケジューリング機能部25は、全体スケジュールの再作成(ステップS37)および処理内容データ40の更新(ステップS38)を実行しない。このように時刻差が時刻差基準値以上であるときのみ、全体スケジュールの再作成が行われれば、不要な全体スケジュールの再作成を回避できる。
次に、制御部21は、全ての基板Wについての処理が終了したか否かを判断する(ステップS39)。全ての基板Wの処理が終了していない場合には、制御部21は再びステップS34を実行する。全ての基板Wの処理が終了している場合には(ステップS39:YES)、制御部21は処理を終了する。例えば、制御部21は基板処理開始指示のフラグをLとし、スケジュール指示のフラグをLとする。未だ基板Wの処理が終了していない場合には(ステップS39:NO)、スケジューリング機能部25は、ステップS34を再び実行する。
<第3の実施の形態>
第3の実施の形態にかかる基板処理装置100の構成は第1の実施の形態と同じである。ただし第3の実施の形態においては、基板Wは処理ユニットSPIN1〜SPIN12のうち2以上の処理ユニットによって連続的に処理される。例えば、基板Wが処理ユニットSPIN1において処理された後に、処理ユニットSPIN1から処理ユニットSPIN3に搬送されて、処理ユニットSPIN3において処理される。このような2以上の処理ユニットによる基板Wへの連続的な処理を以下では渡り処理とも呼ぶ。
基板Wに対する処理の手順は、処理内容データ40におけるレシピで規定されるので、処理内容データ40には渡り処理が含まれる場合がある。第3の実施の形態では、処理内容データ40に渡り処理が含まれる場合について説明する。
以下では、簡単のために、4つの処理ユニットSPIN1〜SPIN4を用いて説明を行う。ここでは、処理ユニットSPIN1および処理ユニットSPIN2は基板Wに対して第1処理を施し、処理ユニットSPIN3および処理ユニットSPIN4は基板Wに対して、第1処理とは異なる第2処理を施す。例えば第1処理と第2処理との間では、基板Wに対して供給される処理液の濃度および処理液の種類などの処理に関する諸条件が相違する。各基板Wは、第1処理を行う処理ユニットから、第2処理を行う処理ユニットに搬送される。これにより、基板Wには、各処理ユニットによって第1処理および第2処理が連続的に施される。
図24は、スケジューリング機能部25によって作成される全体スケジュールの一例を模式的に示す図である。図24の例でも、全体スケジュールはブロックおよび矢印によって模式的に表現される。以下では、説明の簡単のために、4枚の基板W(基板W1から基板W4)に対する処理について述べる。実際にはより多くの基板Wが処理される。
ここで、代表的に基板W1に着目して全体スケジュールを説明する。図24の例では、基板W1に対応するブロックを太線で示している。図24によれば、未処理の基板W1はインデクサロボットIRによって基板収容器Cから取り出され(ブロックD1)、受渡ユニットPASSに受け渡される(ブロックD2)。そして、この基板W1は主搬送ロボットCRによって受渡ユニットPASSから取り出され(ブロックD3)、処理ユニットSPIN1に受け渡される(ブロックD4)。基板W1には、処理ユニットSPIN1によって第1処理が施される(ブロックD5)。
処理ユニットSPIN1の処理終了後に、基板W1は主搬送ロボットCRによって処理ユニットSPIN1から取り出され(ブロックD6)、別の処理ユニットSPIN3に受け渡される(ブロックD7)。基板W1には、処理ユニットSPIN3によって第2処理が施される(ブロックD8)。この処理ユニットSPIN3における第2処理の内容は処理ユニットSPIN1における第1処理の内容と相違する。
処理ユニットSPIN3の処理終了後に、処理済みの基板W1は主搬送ロボットCRによって処理ユニットSPIN3から取り出され(ブロックD9)、受渡ユニットPASSに受け渡される(ブロックD10)。続いて、処理済みの基板W1はインデクサロボットIRによって受渡ユニットPASSから取り出され(ブロックD11)、基板収容器Cに受け渡される(ブロックD12)。
制御部21のスケジューリング機能部25が、図24に例示するような全体スケジュールを作成し、処理実行指示部26がこの全体スケジュールに従って基板処理装置100の各部を制御する。これにより、基板W1には処理ユニットSPIN1および処理ユニットSPIN3によってこの順で連続的に処理が施され、基板W2には処理ユニットSPIN2および処理ユニットSPIN4によってこの順で連続的に処理が施され、基板W3には処理ユニットSPIN1および処理ユニットSPIN3によってこの順で連続的に処理が施され、基板W4には処理ユニットSPIN2および処理ユニットSPIN4によってこの順で連続的に処理が施される。
このように第3の実施の形態では、各基板Wには複数の処理ユニットの間で搬送されて連続的に異なる処理が施される。
第3の実施の形態では、この全体スケジュールを投入計画、渡り計画および払出計画に分割して考慮する。渡り計画とは、基板Wに対する処理ユニット間の搬送に関する計画である。より具体的には、渡り計画は、搬送元の処理ユニットの処理の終了、基板Wに対する搬送元の処理ユニットから搬送先の処理ユニットへの搬送処理の時間帯、および、次の搬送先の処理ユニットの処理の開始を規定する計画である。
図25は、基板処理装置100(スケジュール作成装置)の具体的な動作の一例を示すフローチャートである。この一連の処理は繰り返し実行される。図25のフローでは、図5のフローと比較して、ステップS2の代わりにステップS2Aが実行される。
図25を参照して、まず、スケジューリング機能部25は第1の実施の形態と同様に、基板処理開始指示があったか否かを判断する(ステップS1)。例えばホストコンピュータまたはユーザから出入力部22に当該開始指示が入力される。制御部21は当該入力に応答して、例えば開始指示のフラグをLからHに遷移させる。
基板処理開始指示がない、つまり開始指示のフラグがLであるときには、スケジューリング機能部25は再びステップS1を実行する。基板処理開始指示があったときには、スケジューリング機能部25は計画範囲を決定する(ステップS2A)。スケジューリング機能部25は、作成対象となる計画範囲を、投入計画、渡り計画および払出計画の中から選択して決定する。つまり、スケジューリング機能部25は全体スケジュールのうち投入計画を作成するのか、渡り計画を作成するのか、払出計画を作成するのかを決定する。初期的には、スケジューリング機能部25は投入計画を計画範囲に決定する。
例えば最初のステップS2Aでは、スケジューリング機能部25は作成対象となる計画範囲を、第1の実施の形態と同様に投入計画に決定する。スケジューリング機能部25は第1の実施の形態と同様にステップS3〜S13を実行する。
ところで、基板の処理手順を規定する処理内容データ40には、基板Wに対する第1処理および第2処理の連続的な渡り処理が含まれている。よって、基板Wが最初に搬送される搬送先の処理ユニットは処理ユニットSPIN1,SPIN2のいずれかである。したがって、ステップS3では、スケジューリング機能部25は、処理ユニットSPIN1および処理ユニットSPIN2のいずれかを通る2つの経路に対応した2つの仮タイムテーブルを作成する。
そして、スケジューリング機能部25はスケジューリング指示に応答して、必要に応じて前準備工程のブロックを配置し(ステップS4〜S7)、仮タイムテーブルの未配置のブロックを順次に配置することで計画を、仮タイムテーブルごとに作成する(ステップS8〜S12)。次にスケジューリング機能部25は、作成済みの計画の一つを全体スケジュールとして選択するための判定を行う(ステップS13)。
図26は、上述の動作によって初期的に作成された全体スケジュールの一例を模式的に示す図である。図26の例では、基板W1についての投入計画として、基板W1に対する基板収容器Cから処理ユニットSPIN1への搬送処理に関する主搬送ロボットCRおよびインデクサロボットIRのブロック、ならびに、処理ユニットSPIN1の処理の開始時刻を規定するブロックが配置されている。また、基板W2についての投入計画として、基板W2に対する基板収容器Cから処理ユニットSPIN3への搬送処理に関する主搬送ロボットCRおよびインデクサロボットIRのブロック、ならびに、処理ユニットSPIN2の処理の開始時刻を規定するブロックが配置されている。図26に例示するように、この時点では、全体スケジュールは最初の2枚の基板W1,W2に対する投入計画のみを含んでいる。
この投入計画では、各処理ユニットSPIN1,SPIN2にはそれぞれ基板W1,W2が順次に搬入される。処理ユニットSPIN1は基板W1に対して第1処理を施し、処理ユニットSPIN2は基板W2に対して第1処理を施す。基板Wに対する処理中に新たな基板Wを搬送することは好ましくないので、スケジューリング機能部25は、基板W1に対する第1処理が終了して基板W1が処理ユニットSPIN1から搬出されない限り、新たな基板Wを処理ユニットSPIN1に搬入する計画を作成しない。処理ユニットSPIN2も同様である。
制御部21の処理実行指示部26は、図26の全体スケジュールに従った動作を基板処理装置100に実行させる。よって、処理ユニットSPIN1,SPIN2は図26の全体スケジュールに従って基板Wに対する処理を開始する。言い換れば、処理実行指示部26は、後述の渡り計画および払出計画を作成する前に、全体スケジュールに従った動作を基板処理装置100に実行させる。
各処理ユニットSPIN1,SPIN2が処理を開始すると、その処理中において、各センサSRはユニットセンシング情報を検出し(検出ステップ)、その検出に応じて通知情報を制御部21に通知する。ここでも、各処理ユニットSPIN1,SPIN2の制御部は、処理の推定残り時間が、全体スケジュールの再作成に要する所要作成時間Trefに近づいたときに、制御部21に通知情報を通知する。ここでは、まず、基板W1を処理している処理ユニットSPIN1が通知時刻t12(SPIN1)において通知情報を通知したとする(図27も参照)。
制御部21のスケジューリング機能部25はこの通知情報の通知に応答して、その通知元の処理ユニットに対する渡り計画および払出計画のいずれか一方、および、必要に応じて、その次の投入計画を作成する。この作成も図25のフローチャートに沿って行うことができる。
まず、スケジューリング機能部25は通知情報の通知に応答して、次の作成対象となる計画範囲を決定する(ステップS2A)。具体的には、スケジューリング機能部25は処理内容データ40を確認し、通知元の処理ユニットによって行われている基板Wに対する処理が処理手順における最後の処理か否かを判断する。ここでは、処理内容データ40には、第1処理および第2処理をこの順に実行する渡り処理が規定されているので、処理手順における最後の処理は第2処理である。
通知元の処理ユニットSPIN1による第1処理は処理手順における最後の処理ではないので、スケジューリング機能部25は次の計画範囲を、処理ユニットSPIN1によって処理されている基板W1についての渡り計画に決定する。
また、基板収容器Cには未処理の基板W3,W4が存在しているので、スケジューリング機能部25は基板W1についての渡り計画のみならず、基板W3についての投入計画も計画範囲に決定する。
次にスケジューリング機能部25は通知情報および処理内容データ40に基づいて仮タイムテーブルを更新する(ステップS3)。具体的には、まずスケジューリング機能部25は、第1の実施の形態と同様に、通知元の処理ユニットSPIN1の処理の終了時刻を規定するブロックを通知情報(推定残り時間)に基づいて配置する。そして、スケジューリング機能部25は、次の搬送先候補の処理ユニットへの搬送を規定した仮タイムテーブルを、搬送先候補ごとに作成する。ここでは、処理ユニットSPIN1から処理ユニットSPIN3への搬送を規定した仮タイムテーブルと、処理ユニットSPIN1から処理ユニットSPIN4への搬送を規定した仮タイムテーブルとが作成される。
ステップS4では、スケジューリング指示のフラグがHであるので、肯定的な判断(YESの判断)がなされ、ステップS5では、否定的な判断(NOの判断)がなされる。
次にスケジューリング機能部25は通知元の処理ユニットSPIN1に対する仮タイムテーブルを参照し、当該仮タイムテーブルを構成する未配置のブロックを一つ取得し(ステップS8)、当該取得したブロックを配置できる位置を検索し(ステップS9)、その検索された位置に当該ブロックを配置する(ステップS10)。
次にスケジューリング機能部25は、仮タイムテーブルの未配置のブロックの全てについてステップS8〜S10の処理を繰り返す(ステップS11)。これにより、一つの仮タイムテーブルを用いた計画が作成される。例えば、基板W1が処理ユニットSPIN1から処理ユニットSPIN3に搬送される渡り計画を含む計画が作成される。
次にスケジューリング機能部25は全ての仮タイムテーブルについてステップS8〜S12の処理を実行する。これにより、全ての仮タイムテーブルに対応する計画が作成される。ここでは、基板W1が処理ユニットSPIN1から処理ユニットSPIN4に搬送される渡り計画を含む計画も作成される。
次にスケジューリング機能部25は、作成済みの計画の一つを全体スケジュールとして選択するための判定を行う(ステップS13)。ここでは、スケジューリング機能部25は、識別番号が小さい処理ユニットSPIN3に搬送する計画を、全体スケジュールとして選択する。
図27は、上述の動作によって作成された全体スケジュールの一例を模式的に示す図である。図27の例では、基板W1についての渡り計画として、基板W1に対する処理ユニットSPIN1の処理の終了時刻を示すブロック、基板W1に対する処理ユニットSPIN1から処理ユニットSPIN3への搬送処理に関する主搬送ロボットCRのブロック、および、処理ユニットSPIN3の処理の開始時刻を示すブロックが新たに配置されている。図27の例でも、新たに配置されたブロックを斜線のハッチングで示している。
処理ユニットSPIN1の処理の終了時刻を示すブロックが配置されるので、スケジューリング機能部25は、第1の実施の形態と同様に、処理ユニットSPIN1への基板W3の投入計画も作成する。
図28は、全体スケジュールの一例を模式的に示す図である。図28の例では、基板W3についての投入計画として、基板W3に対する基板収容器Cから処理ユニットSPIN1への搬送処理に関するインデクサロボットIRおよび主搬送ロボットCRのブロック、ならびに、処理ユニットSPIN1の次の処理の開始時刻を示すブロックが新たに配置されている。図28の例でも、新たに配置されたブロックを斜線のハッチングで示している。
基板処理装置100の動作がさらに進行すると、通知時刻t12(SPIN2)において処理ユニットSPIN2からの通知情報が制御部21に通知される(図29も参照)。スケジューリング機能部25はこの通知情報の通知に応答して、処理内容データ40に基づいて計画範囲を基板W2についての渡り計画に決定し(ステップS2A)、ステップS3〜S13を実行して基板W2についての渡り計画を作成する。また、スケジューリング機能部25は次の基板W4についての投入計画も作成し、全体スケジュールを再作成する。
図29および図30は、上述の動作によって作成された全体スケジュールの一例を模式的に示す図である。図29の例では、基板W2についての渡り計画が新たに作成されている。具体的には、基板W2についての渡り計画として、処理ユニットSPIN2の処理の終了時刻を示すブロック、基板W2に対する処理ユニットSPIN2から処理ユニットSPIN4への搬送処理に関する主搬送ロボットCRのブロック、および、処理ユニットSPIN4の処理の開始時刻を示すブロックが新たに配置されている。図29の例でも、新たに配置されたブロックを斜線のハッチングで示している。
図30の例では、処理ユニットSPIN2に対する基板W4についての投入計画が新たに作成されている。具体的には、基板W4についての投入計画として、基板W4に対する基板収容器Cから処理ユニットSPIN2への搬送処理に関するインデクサロボットIRおよび主搬送ロボットCRのブロック、ならびに、処理ユニットSPIN2の次の処理の開始時刻を示すブロックが新たに配置されている。図30の例でも、新たに配置されたブロックを斜線のハッチングで示している。なお、図30の例では、通知時刻t1(SPIN1)を図示するために、処理ユニットSPIN1の処理の開始時刻を規定するブロックに続けて、破線のブロックを示している。
基板処理装置100の動作がさらに進行すると、通知時刻t14(SPIN1)において、処理ユニットSPIN1からの通知情報が制御部21に通知される。スケジューリング機能部25はこの通知情報の通知に応答して、処理内容データ40に基づいて計画範囲を基板W3についての渡り計画に決定し(ステップS2A)、ステップS3〜S13を実行して基板W3についての渡り計画を作成しようとする。
しかしながら、図30から理解できるように、通知時刻t14(SPIN1)では、処理ユニットSPIN3,SPIN4に対応する最新のブロックは、処理の開始時刻を規定するブロックであり、処理の終了時刻を規定するブロックではない。つまり、通知時刻t14(SPIN1)では、次の搬送先候補である処理ユニットSPIN3および処理ユニットSPIN4の処理の終了時刻は未だ確定されていない。要するに、通知時刻t14(SPIN1)では、処理ユニットSPIN3,SPIN4からの基板W1,W2の搬送は未だ計画されていない。よって、スケジューリング機能部25は基板W3の搬送先の処理ユニットを決定することができない。つまり、スケジューリング機能部25は基板W3についての渡り計画を作成できない。
そこで、スケジューリング機能部25は、処理ユニットSPIN1からの通知情報が通知されたときに、搬送先候補の処理ユニットSPIN3,SPIN4の全てが基板Wを処理しており、かつ、搬送先候補の処理ユニットSPIN3,SPIN4からの搬送が未だ計画されていない場合、基板W3についての渡り計画の作成を中断する。言い換えれば、処理ユニットSPIN1のユニット推定終了時刻を得たときに、搬送先候補の全てが基板Wを処理しており、かつ、全ての搬送先候補からの搬送が未だ計画されていない場合、基板W3についての渡り計画を中断する。例えばスケジューリング機能部25はステップS2A〜S12によって基板W3についての渡り計画を作成できなかったときに、基板W3の渡り計画について中断フラグを立ち上げてもよい。この中断フラグは渡り計画が作成されたときに立ち下げられる。
基板処理装置100の動作がさらに進行すると、通知時刻t12(SPIN3)において、処理ユニットSPIN3からの通知情報が制御部21に通知される(図31も参照)。スケジューリング機能部25はこの通知情報に通知に応答して、処理内容データ40に基づいて計画範囲を基板W1についての払出計画に決定する(ステップS2A)。具体的には、スケジューリング機能部25は処理内容データ40に基づいて、通知元の処理ユニットSPIN3における第2処理が処理手順の最後の処理であると判断する。スケジューリング機能部25は当該判断に応答して、計画範囲を、通知元の処理ユニットSPIN3が処理している基板W1についての払出計画に決定する。そして、スケジューリング機能部25は第1の実施の形態と同様にステップS3〜S13を実行して、基板W1に対する処理ユニットSPIN3からの払出計画を作成する。
この払出計画によって、基板W3の次の搬送先候補の一つである処理ユニットSPIN3の処理の終了時刻が確定するので、スケジューリング機能部25は基板W3についての渡り計画の作成を再開する。要するに、スケジューリング機能部25は、次の搬送先候補からの基板Wの搬送が計画されてから、基板W3についての渡り計画を作成する。より具体的には、スケジューリング機能部25は、基板W3についての中断フラグが立ち上がっており、かつ、搬送先候補の処理ユニットからの基板Wの搬出が計画されているときに、計画範囲を基板W3についての渡り計画に再決定する(ステップS2A)。そして、スケジューリング機能部25はステップS3〜S13を実行して、基板W3についての渡り計画を作成する。
図31は、上述の動作によって作成された全体スケジュールの一例を模式的に示す図である。図31の例では、基板W1についての払出計画として、処理ユニットSPIN3の処理の終了時刻を示すブロック、ならびに、基板W1に対する処理ユニットSPIN3から基板収容器Cへの搬送処理に関する主搬送ロボットCRおよびインデクサロボットIRのブロックが新たに配置されている。また、図31の例では、基板W3についての渡り計画として、処理ユニットSPIN1の処理の終了時刻を示すブロック、基板W3に対する処理ユニットSPIN1から処理ユニットSPIN3への搬送処理に関する主搬送ロボットCRのブロック、および、処理ユニットSPIN3の処理の開始時刻を示すブロックが新たに配置されている。図31の例でも、新たに配置されたブロックを斜線のハッチングで示している。
以上のように、スケジューリング機能部25は搬送先候補(ここでは処理ユニットSPIN3)からの払出計画を作成した後に、基板W3についての渡り計画を作成することにより、より適切な渡り計画を作成することができる。
基板処理装置100の動作がさらに進行すると、通知時刻t14(SPIN2)において、処理ユニットSPIN2からの通知情報が制御部21に通知され(図32も参照)、その後、通知時刻t12(SPIN4)において、処理ユニットSPIN4からの通知情報が制御部21に通知される。
スケジューリング機能部25は処理ユニットSPIN2からの通知情報の通知に応答してステップS2A〜S13を実行して、基板W4についての渡り計画を作成しようとするものの、通知時刻t14(SPIN2)では、基板W4の次の搬送先候補である処理ユニットSPIN3,SPIN4からの基板Wの搬送が未だ計画されていないので、当該渡り計画の作成を中断する。
次にスケジューリング機能部25は処理ユニットSPIN4からの通知情報の通知に応答してステップS2A〜S13を実行して、基板W2についての払出計画を作成する。この払出計画の作成が完了すると、スケジューリング機能部25は計画範囲を基板W4の渡り計画に再決定し(ステップS2A)、ステップS3〜S13を実行して基板W4についての渡り計画を作成する。
図32は、上述の動作によって作成された全体スケジュールの一例を模式的に示す図である。図32の例では、基板W2についての払出計画として、処理ユニットSPIN4の処理の終了時刻を示すブロック、ならびに、基板W2に対する処理ユニットSPIN4から基板収容器Cへの搬送処理に関する主搬送ロボットCRおよびインデクサロボットIRのブロックが新たに配置されている。また、図32の例では、基板W4についての渡り計画として、処理ユニットSPIN2の処理の終了時刻を示すブロック、基板W4に対する処理ユニットSPIN2から処理ユニットSPIN4への搬送処理に関する主搬送ロボットCRのブロック、および、処理ユニットSPIN4の次の処理の開始時刻を示すブロックが新たに配置されている。図32の例でも、新たに配置されたブロックを斜線のハッチングで示している。
基板処理装置100の動作がさらに進行すると、通知時刻t14(SPIN3)において、処理ユニットSPIN3からの通知情報が制御部21に通知される(図33も参照)。スケジューリング機能部25はこの通知情報の通知に応答してステップS2A〜S13を実行して、基板W3についての払出計画を作成する。
基板処理装置100の動作がさらに進行すると、通知時刻t14(SPIN4)において、処理ユニットSPIN4からの通知情報が制御部21に通知される(図33も参照)。スケジューリング機能部25はこの通知情報の通知に応答してステップS2A〜S13を実行して、基板W4についての払出計画を作成する。
図33は、上述の動作によって作成された全体スケジュールの一例を模式的に示す図である。図33の例では、基板W3についての払出計画として、処理ユニットSPIN3の処理の終了時刻を規定するブロック、ならびに、基板W3に対する処理ユニットSPIN3から基板収容器Cへの搬送処理に関する主搬送ロボットCRおよびインデクサロボットIRのブロックが新たに配置されている。また、図33の例では、基板W4についての払出計画として、処理ユニットSPIN4の処理の終了時刻を規定するブロック、ならびに、基板W4に対する処理ユニットSPIN4から基板収容器Cへの搬送処理に関する主搬送ロボットCRおよびインデクサロボットIRのブロックが新たに配置されている。図33の例でも、新たに配置されたブロックを斜線のハッチングで示している。
以上のように第3の実施の形態でも、基板処理装置100の動作と並行しつつ、順次に新たな計画が全体スケジュールに盛り込まれる。
なお、上述の例では、処理ユニットSPIN1〜SPIN4の所要処理時間が通常の所要処理時間とほぼ等しい場合を例に挙げて説明した。次に、処理ユニットSPIN1〜SPIN4における所要処理時間が変動した場合の例について述べる。ここでは、処理ユニットSPIN2,SPIN4の所要処理時間が通常よりも短い場合について述べる。基板処理装置100の動作の一例は図25と同様である。
まず、スケジューリング機能部25は上述の通り、基板処理装置100の動作を開始する前に全体スケジュールの一部として各処理ユニットSPIN1,SPIN2についての最初の投入計画を作成する(ステップS2A:投入計画、ステップS3〜S13)。これにより、図26に例示する全体スケジュールが作成される。
各処理ユニットSPIN1〜SPIN4の制御部は、処理の推定残り時間が、全体スケジュールの再作成に要する所要作成時間Trefに近づいたときに、制御部21に通知情報を通知する。よって、通知時刻は、その処理ユニットの実際の所要処理時間が短いほど、早くなる。言い換えれば、通知時刻は、その処理ユニットの実際の所要処理時間が長いほど、遅れる。
ここでは、処理ユニットSPIN2の実際の所要処理時間が通常よりも短いために、処理ユニットSPIN1よりも先に処理ユニットSPIN2から通知情報が通知されるものとする。具体的には、処理ユニットSPIN2は通知時刻t12(SPIN2)において通知情報を制御部21に通知する(図34も参照)。スケジューリング機能部25はこの通知情報の通知に応答してステップS2A〜S13を実行して、基板W2についての渡り計画を作成する。また、スケジューリング機能部25は次の基板W3についての投入計画も作成する。
図34は、上述の動作により作成された全体スケジュールの一例を模式的に示す図である。図34の例では、処理ユニットSPIN1からの通知情報が未だ通知されていないので、基板W1についての渡り計画のブロックおよび処理ユニットSPIN1への次の投入計画のブロックは未だ配置されていない。一方で、処理ユニットSPIN2からの通知情報の通知に応答して、基板W2についての渡り計画のブロックおよび処理ユニットSPIN2への次の投入計画のブロックが新たに配置されている。図34の例でも、新たに配置されたブロックが斜線のハッチングで示されている。
より具体的には、図34の例では、基板W2についての渡り計画として、処理ユニットSPIN2の処理の終了時刻を示すブロック、基板W2に対する処理ユニットSPIN2から処理ユニットSPIN3への搬送処理に関する主搬送ロボットCRのブロック、および、処理ユニットSPIN3の処理の開始時刻を示すブロックが新たに配置されている。ここでは、処理ユニットSPIN2は処理ユニットSPIN1よりも先に処理を終了するので、処理ユニットSPIN3には基板W1ではなく基板W2が搬送された渡り計画が作成される。
また図34の例では、基板W3についての投入計画として、基板W3に対する基板収容器Cから処理ユニットSPIN2への搬送処理に関するインデクサロボットIRおよび主搬送ロボットCRのブロック、ならびに、処理ユニットSPIN2の次の処理の開始時刻を示すブロックが新たに配置されている。ここでは、処理ユニットSPIN2は処理ユニットSPIN1よりも先に処理を終了するので、基板W3が処理ユニットSPIN2に搬送された投入計画が作成される。
基板処理装置100の動作がさらに進行すると、通知時刻t12(SPIN1)において処理ユニットSPIN1からの通知情報が制御部21に通知される(図35も参照)。スケジューリング機能部25はこの通知情報の通知に応答してステップS2A〜S13を実行して、基板W1についての渡り計画を作成する。また、スケジューリング機能部25は次の基板W4についての投入計画も作成する。
図35は、上述の動作により作成された全体スケジュールの一例を模式的に示す図である。図35の例では、基板W1についての渡り計画として、処理ユニットSPIN1の処理の終了時刻を規定するブロック、基板W1に対する処理ユニットSPIN1から処理ユニットSPIN4への搬送処理に関する主搬送ロボットCRのブロック、および、処理ユニットSPIN4の処理の開始時刻を規定するブロックが新たに配置されている。ここでは、処理ユニットSPIN1が処理ユニットSPIN2よりも後に処理を終了するので、基板W1が処理ユニットSPIN4に搬送された渡り計画が作成される。図35の例でも、新たに配置されたブロックが斜線のハッチングで示されている。
また図35の例では、基板W4についての投入計画として、基板W4に対する基板収容器Cから処理ユニットSPIN1への搬送処理に関するインデクサロボットIRおよび主搬送ロボットCRのブロック、ならびに、処理ユニットSPIN1の処理の開始時刻を規定するブロックが新たに配置されている。ここでは、処理ユニットSPIN1が処理ユニットSPIN2よりも後に処理を終了するので、基板W4が処理ユニットSPIN1に搬送された投入計画が作成される。
基板処理装置100の動作がさらに進行すると、通知時刻t14(SPIN2)において処理ユニットSPIN2からの通知情報が制御部21に通知される(図36も参照)。スケジューリング機能部25はこの通知情報の通知に応答して、処理内容データ40に基づいて基板W3に対する渡り計画を作成しようとする。しかしながら、この通知時刻t14(SPIN2)では、図36に例示されるように、基板W3の次の搬送先候補である処理ユニットSPIN3,SPIN4からの基板Wの搬送が未だ計画されていない。言い換えれば、処理ユニットSPIN3,SPIN4の処理の終了時刻がまだ確定していない。よって、スケジューリング機能部25は基板W3に対する渡り計画の作成を中断する。
基板処理装置100の動作がさらに進行すると、通知時刻t12(SPIN4)において処理ユニットSPIN4からの通知情報が制御部21に通知される(図37も参照)。スケジューリング機能部25はこの通知情報の通知に応答してステップS2A〜S13を実行して、基板W1についての払出計画を作成する。ここでは、処理ユニットSPIN4は処理ユニットSPIN3よりも先に処理を終了するので、先に処理ユニットSPIN4からの基板W1の払出計画が作成される。
この払出計画によって、基板W3の次の搬送先候補の一つである処理ユニットSPIN4からの基板W1の搬送が計画されるので、スケジューリング機能部25は基板W3に対する渡り計画の作成を再開する。スケジューリング機能部25はステップS2A〜S13を実行して、基板W3についての渡り計画を作成する。
図37は、上述の動作により作成された全体スケジュールの一例を模式的に示す図である。図37の例では、基板W1についての払出計画として、処理ユニットSPIN4の処理の終了時刻を示すブロック、ならびに、基板W1に対する処理ユニットSPIN4から基板収容器Cへの搬送処理に関する主搬送ロボットCRおよびインデクサロボットIRのブロックが新たに配置されている。また図37の例では、基板W3についての渡り計画として、処理ユニットSPIN2の処理の終了時刻を示すブロック、基板W3に対する処理ユニットSPIN2から処理ユニットSPIN4への搬送処理に関する主搬送ロボットCR、および、処理ユニットSPIN4の次の処理の開始時刻を示すブロックが新たに配置されている。
図37の例では、通知時刻t12(SPIN4)は、基板W3に対する処理ユニットSPIN2のユニット推定終了時刻t13(SPIN2)よりも遅い。したがって、基板W3は、処理ユニットSPIN4から基板W1が搬送されて処理ユニットSPIN4への搬入が許可されるまで、処理ユニットSPIN2において待機するように、渡り計画が作成される。
基板処理装置100の動作がさらに進行すると、通知時刻t12(SPIN3)において、処理ユニットSPIN3からの通知情報が制御部21に通知される(図38も参照)。スケジューリング機能部25はこの通知情報の通知に応答してステップS2A〜S13を実行して、基板W2についての払出計画を作成する。
基板処理装置100の動作がさらに進行すると、通知時刻t14(SPIN1)において、処理ユニットSPIN1からの通知情報が制御部21に通知される。スケジューリング機能部25はこの通知情報の通知に応答してステップS2A〜S13を実行して、基板W4についての渡り計画を作成する。
図38は、上述の動作によって作成される全体スケジュールの一例を概略的に示す図である。図38の例では、基板W2についての払出計画として、処理ユニットSPIN3の処理の終了時刻を規定するブロック、ならびに、基板W2に対する処理ユニットSPIN3から基板収容器Cへの搬送処理に関する主搬送ロボットCRおよびインデクサロボットIRのブロックが新たに配置されている。図38の例でも、新たに配置されたブロックが斜線のハッチングで示されている。
ここでは、通知時刻t14(SPIN1)において、基板W4の搬送先候補の一つである処理ユニットSPIN4の処理の終了時刻が既に確定されている。よって、スケジューリング機能部25は通知時刻t14(SPIN1)における処理ユニットSPIN1からの通知情報の通知に応答してステップS2A〜S13を実行して、基板W4についての渡り計画を作成する。
図38の例では、基板W4についての渡り計画として、処理ユニットSPIN1の処理の終了時刻を規定するブロック、基板W4に対する処理ユニットSPIN1から処理ユニットSPIN3への搬送処理に関する主搬送ロボットCRのブロック、および、処理ユニットSPIN3の処理の開始時刻を規定するブロックが新たに配置されている。
基板処理装置100の動作がさらに進行すると、処理ユニットSPIN3および処理ユニットSPIN1からの通知情報がこの順に制御部21に通知される。図39は、これらの通知情報に応答して作成された全体スケジュールの一例を模式的に示す図である。
スケジューリング機能部25はまず通知時刻t14(SPIN4)における処理ユニットSPIN4からの通知情報の通知に応答してステップS2A〜S13を実行して、基板W3についての搬出計画を作成する。ここでは、処理ユニットSPIN4は処理ユニットSPIN3よりも先に処理を終了するので、先に処理ユニットSPIN4からの基板W3の払出計画が作成される。図39の例では、基板W3についての払出計画として、処理ユニットSPIN4の処理の終了時刻を規定するブロック、ならびに、基板W3に対する処理ユニットSPIN4から基板収容器Cへの搬送処理に関する主搬送ロボットCRおよびインデクサロボットIRのブロックが新たに配置されている。図39の例でも、新たに配置されたブロックが斜線のハッチングで示されている。
またスケジューリング機能部25は通知時刻t14(SPIN3)における処理ユニットSPIN3からの通知情報の通知に応答してステップS2A〜S13を実行して、基板W4についての搬出計画を作成する。図39の例では、基板W4についての払出計画として、処理ユニットSPIN3の処理の終了時刻を規定するブロック、ならびに、基板W4に対する処理ユニットSPIN3から基板収容器Cへの搬送処理に関する主搬送ロボットCRおよびインデクサロボットIRのブロックが新たに配置される。
以上のように、処理ユニットSPIN2,SPIN4の実際の所要処理時間が通常よりも短くなったとしても、基板処理装置100は動作を中断することなく、その短くなった所要処理時間が反映された全体スケジュールに応じた動作を続行することができる。
つまり、第3の実施の形態によれば、各処理ユニットSPIN1〜SPIN4の所要処理時間が変動したとしても、その変動を反映した全体スケジュールの再作成することができる。
しかも、第3の実施の形態によれば、各処理ユニットSPIN1〜SPIN4の処理の開始前には、各基板Wについての渡り計画および払出計画は作成されていない。言い換えれば、各基板の渡り計画および払出計画を作成する前に、処理実行指示部26は全体スケジュールに従った動作を基板処理装置100に実行させる。そして、各処理ユニットSPIN1〜SPIN4の処理の実行中に検出されるセンサSRのユニットセンシング情報に基づいて、各処理ユニットSPIN1〜SPIN4の残り処理時間を推定し、その推定残り時間に基づいて、各基板Wの渡り計画および払出計画が作成される。
もし仮に基板処理装置100の動作の開始前に渡り計画および払出計画が作成されると、その渡り計画および払出計画はセンサSRのユニットセンシング情報に応じて修正され得る。渡り計画および払出計画が修正される場合、動作の開始前に作成した渡り計画および払出計画の当該修正部分は無駄である。
これに対して、第3の実施の形態では、処理実行指示部26は渡り計画および払出計画の作成前に、基板処理装置100の動作を開始する。よって、そのような無駄な渡り計画および払出計画の作成を回避できる。よって、スケジューリング機能部25の不要な動作を抑制でき、処理負荷を軽減することができる。
なお、第3の実施の形態でも、第1の実施の形態と同様に、スケジューリング機能部25は通知元の処理ユニットに関するブロックを新たに配置するのみならず、必要に応じて他の処理ユニットのブロックを再配置してもよい。
また、第3の実施の形態でも、第2の実施の形態と同様に、スケジューリング機能部25は、投入計画、渡り計画および払出計画を含む全体スケジュールを一旦作成し、必要に応じて、全体スケジュールを再作成してもよい。
以上、実施の形態が説明されたが、この基板処理装置100はその趣旨を逸脱しない限りにおいて上述したもの以外に種々の変更を行うことが可能である。本実施の形態は、その開示の範囲内において、各実施の形態の自由な組み合わせ、あるいは各実施の形態の任意の構成要素の変形、もしくは各実施の形態において任意の構成要素の省略が可能である。
また、プログラムは、コンピュータ20に組み込まれた状態で提供されてもよいし、コンピュータ20とは別の記憶媒体(CD−ROM、DVD−ROM等のコンピュータ読取可能な記憶媒体)に記録された状態で提供されてもよい。
その他、特許請求の範囲に記載された事項の範囲で種々の設計変更を施すことが可能である。
例えば、基板処理装置100に属するユニットとして、そのユニット内の雰囲気を制御するユニットも存在する。例えば、ユニット内の雰囲気には外気に漏れることが好ましくない気体が含まれる場合もある。この場合、当該気体を所定の排出部に十分に排出したうえで、ユニットから基板Wを搬出する必要がある。この場合、センサSRはユニットセンシング情報として、ユニット内の当該気体の濃度を検出してもよい。
あるいは、ユニット内の気圧を十分に低下させた状態で、基板Wに対する処理が行われる場合もある。この場合、処理終了後には、その気圧を大気圧に戻してから基板Wが排出される。この場合、センサSRはユニットセンシング情報として、ユニット内の気圧を検出してもよい。
また、気圧の低いチャンバに搬入するために処理ユニットに隣接して、気圧調整用のポート(ユニット)が配置される場合がある。このポートでは、基板Wに対する処理は行わないものの、ポート内の気圧を十分に低下させたうえで、当該ポートと処理ユニットとを隔てるシャッターを開き、当該ポートから処理ユニットへ基板Wを搬送する場合がある。この場合、処理ユニットで処理された基板Wは低圧力のポートに搬送され、シャッターを閉じたうえで、当該ポート内の気圧を元に戻してから、当該ポートから基板Wが排出される。この場合、ポート内にセンサSRが設けられてもよい。当該センサSRはユニットセンシング情報として、当該ポート内の気圧を検出してもよい。
また、基板Wの温度を調整する処理ユニットも存在する。例えば、基板Wの温度を上げて処理を行った後、基板Wの温度を下げたうえで、処理ユニットから基板Wを搬出する場合もある。この場合、センサSRはユニットセンシング情報として、基板Wの温度を検出してもよい。あるいは、センサSRは処理ユニット内の温度(処理室の温度)を検出してもよい。
また、上述の例では、通知時刻t2はユニット推定終了時刻t3よりも少なくとも所要作成時間Tref以上前に設定された。しかしながら、必ずしもこれに限らない。通知元の処理ユニットの処理終了までに、その処理ユニットについての払出計画が作成できない場合には、当該払出計画の作成が完了するまで、その処理ユニットにおいて基板Wが待機されればよい。
また、上述の例では、処理ユニットSPIN1〜SPIN12の全てにセンサSRが設けられていた。しかるに、処理ユニットSPIN1〜SPIN12の少なくともいずれか一つにセンサSRが設けられていればよい。センサSRが設けられていない処理ユニットについての払出計画は、その処理ユニットの予め定められた所要処理時間に基づいて作成されればよい。