(57)【特許請求の範囲】
【請求項１】
基板処理装置内に設置された複数の処理機器間において搬送機により基板を搬送する基板搬送方法であって、
前記搬送機の各動作に与えられた動作予定時間を含み、かつ、前記搬送機の各動作間の休止時間を変数として、前記搬送機の動作が当該搬送機の先行する動作が終了してから実行されることを表す条件式１と、
前記各処理機器における各基板に対する処理に与えられた処理予定時間と、当該処理機器との間で基板の引き渡し又は受け取りを行う前記搬送機の動作に与えられた動作予定時間とを含み、かつ、処理機器上で処理後の基板が搬送機を待つ時間、または、基板が処理機器上で実際に処理を開始されるまでの処理前の待ち時間を変数として、前記処理機器において、前記基板が前記処理予定時間に対応する処理を実行してから取り出されることを表す条件式２と、
前記処理機器との間で基板の引き渡し又は受け取りを行う前記搬送機の動作に与えられた動作予定時間を含み、かつ、基板が引き渡される直前の処理機器の空き時間を変数として、前記処理機器において、前記基板を取り出した後で、次の基板を引き渡しできることを表す条件式３と、に基づいて、
前記変数が非負であるとの制約条件のもとに、
線形計画法によって、対象とする基板の最終枚が全処理を終えて前記基板処理装置から回収される時刻を最早とする前記搬送機の各動作の実行時刻を算出し、
前記算出された搬送機の各動作の実行時刻になったときに、対応する搬送機に該動作を指令することを特徴とする基板搬送方法。
【請求項２】
追加の制約条件として、前記処理機器における所定の処理が終了した後、該処理機器上で基板が搬送機を待つ時間を０とすることを特徴とする請求項１に記載の基板搬送方法。
【請求項３】
前記所定の処理は、めっき処理であることを特徴とする請求項２に記載の基板搬送方法。
【請求項４】
追加の制約条件として、前記搬送機が処理機器から基板を受け取ってから次の処理機器に引き渡すまでの時間に上限を設けることを特徴とする請求項１に記載の基板搬送方法。
【請求項５】
追加の制約条件として、前記搬送機の２つの動作の開始時刻間隔に下限を設けることを特徴とする請求項１に記載の基板搬送方法。
【請求項６】
前記搬送機が処理後の基板を処理機器から受け取ってから次の基板を該処理機器に引き渡すことが可能となるまでに該処理機器が要する時間を追加の制約条件とすることを特徴とする請求項１に記載の基板搬送方法。
【請求項７】
前記変数に関する一次不等式を追加の制約条件として、前記回収される時刻を最早とする各動作の実行時刻を算出することを特徴とする請求項１に記載の基板搬送方法。
【請求項８】
前記制約条件を満たす搬送機の各動作の実行時刻の解が得られたか否かを判断し、
前記実行時刻の解が得られなかったと判断された場合に、前記基板処理装置内に投入される基板の投入間隔を調整して、前記実行時刻の算出を再試行することを特徴とする請求項１乃至７のいずれか一項に記載の基板搬送方法。
【請求項９】
前記基板処理装置の運転開始後において、前記搬送機の各動作の実行時刻の算出が新たに必要か否かを判断し、
前記実行時刻の算出が新たに必要であると判断された場合に、新たに実行時刻の算出を行う起点となる一の想定時刻と、実行時刻の算出において対象とする基板の最終基板とを決定し、
過去に求められたスケジューリング結果であって前記決定された想定時刻以前のスケジューリング結果を保持しつつ、前記決定された最終基板までの基板を対象として新たに実行時刻を算出することを特徴とする請求項１に記載の基板搬送方法。
【請求項１０】
搬送機が各動作をし始めた時刻を取得し、
前記取得された時刻と過去に求められたスケジューリング結果における実行時刻との間に矛盾又は予め決められた範囲以上の差があるか否かを判断し、
矛盾又は予め決められた範囲以上の差があると判断された場合に、該矛盾又は予め決められた範囲以上の差があると判断された時点において未実施の搬送機の各動作の実行時刻を補正することを特徴とする請求項１に記載の基板搬送方法。
【請求項１１】
前記基板処理装置の運転開始後において、基板処理装置への投入が予定されている基板に関する条件の変更を検知し、
前記基板に関する条件の変更が検知された場合に、該条件が変更された基板以降の基板に対する搬送機の各動作の実行時刻を補正することを特徴とする請求項１に記載の基板搬送方法。
【請求項１２】
１以上の基板について前記基板処理装置内の１以上の処理機器における処理が省略される場合に、前記１以上の基板が前記１以上の処理機器を飛び越して搬送されるように、前記搬送機の各動作の実行時刻を算出することを特徴とする請求項１に記載の基板搬送方法。
【請求項１３】
基板処理装置内に設置された複数の処理機器間における搬送機による基板の搬送を制御する基板搬送制御装置であって、
前記搬送機の各動作に対応する動作予定時間と、前記各処理機器における各基板に対する処理に対応する処理予定時間を入力する入力装置と、
前記動作予定時間を含み、かつ、前記搬送機の各動作間の休止時間を変数として、前記搬送機の動作が当該搬送機の先行する動作が終了してから実行されることを表す条件式１と、前記処理予定時間と、前記処理機器との間で基板の引き渡し又は受け取りを行う前記搬送機の動作に与えられた動作予定時間とを含み、かつ、処理機器上で処理後の基板が搬送機を待つ時間、または、基板が処理機器上で実際に処理を開始されるまでの処理前の待ち時間を変数として、前記処理機器において、前記基板が前記処理予定時間に対応する処理を実行してから取り出されることを表す条件式２と、前記処理機器との間で基板の引き渡し又は受け取りを行う前記搬送機の動作に与えられた動作予定時間を含み、かつ、基板が引き渡される直前の処理機器の空き時間を変数として、前記処理機器において、前記基板を取り出した後で、次の基板を引き渡しできることを表す条件式３と、に基づいて、線形計画法により、前記変数が非負であるとの制約条件のもとに、対象とする基板の最終枚が全処理を終えて前記基板処理装置から回収される時刻を最早とする前記搬送機の各動作の実行時刻を算出するスケジュール演算部と、
前記スケジュール演算部により算出された搬送機の各動作の実行時刻になったときに、対応する搬送機に該動作を指令する動作指令部とを備えることを特徴とする基板搬送制御装置。
【請求項１４】
追加の制約条件として、前記処理機器における所定の処理が終了した後、該処理機器上で基板が搬送機を待つ時間を０とすることを特徴とする請求項１３に記載の基板搬送制御装置。
【請求項１５】
前記所定の処理は、めっき処理であることを特徴とする請求項１４に記載の基板搬送制御装置。
【請求項１６】
追加の制約条件として、前記搬送機が処理機器から基板を受け取ってから次の処理機器に引き渡すまでの時間に上限を設けることを特徴とする請求項１３に記載の基板搬送制御装置。
【請求項１７】
追加の制約条件として、前記搬送機の２つの動作の開始時刻間隔に下限を設けることを特徴とする請求項１３に記載の基板搬送制御装置。
【請求項１８】
前記搬送機が処理後の基板を処理機器から受け取ってから次の基板を該処理機器に引き渡すことが可能となるまでに該処理機器が要する時間を追加の制約条件とすることを特徴とする請求項１３に記載の基板搬送制御装置。
【請求項１９】
前記スケジュール演算部は、前記変数に関する一次不等式を追加の制約条件として、前記回収される時刻を最早とする各動作の実行時刻を算出することを特徴とする請求項１３に記載の基板搬送制御装置。
【請求項２０】
前記スケジュール演算部により前記制約条件を満たす搬送機の各動作の実行時刻の解が得られたか否かを判断する解判断部と、
前記解判断部により前記実行時刻の解が得られなかったと判断された場合に、前記基板処理装置内に投入される基板の投入間隔を調整し、前記スケジュール演算部による実行時刻の算出を再試行する再試行部とを備えることを特徴とする請求項１３乃至１９のいずれか一項に記載の基板搬送制御装置。
【請求項２１】
前記基板処理装置の運転開始後において、前記スケジュール演算部による前記搬送機の各動作の実行時刻の算出が新たに必要か否かを判断するスケジュール判断部と、
前記スケジュール判断部により前記実行時刻の算出が新たに必要であると判断された場合に、新たに実行時刻の算出を行う起点となる一の想定時刻と、前記スケジュール演算部による実行時刻の算出において対象とする基板の最終基板とを決定する演算条件決定部とを備え、
前記スケジュール演算部は、過去に求められたスケジューリング結果であって前記演算条件決定部により決定された想定時刻以前のスケジューリング結果を保持しつつ、前記演算条件決定部により決定された最終基板までの基板を対象として新たに実行時刻を算出することを特徴とする請求項１３に記載の基板搬送制御装置。
【請求項２２】
搬送機が各動作をし始めた時刻を取得する実績時刻取得部と、
前記実績時刻取得部により取得された時刻と過去に求められたスケジューリング結果における実行時刻との間に矛盾又は予め決められた範囲以上の差があるか否かを判断する再スケジューリング判断部と、
前記再スケジューリング判断部により矛盾又は予め決められた範囲以上の差があると判断された場合に、該矛盾又は予め決められた範囲以上の差があると判断された時点において未実施の搬送機の各動作の実行時刻を補正する補正部とを備えることを特徴とする請求項１３に記載の基板搬送制御装置。
【請求項２３】
前記基板処理装置の運転開始後において、基板処理装置への投入が予定されている基板に関する条件の変更を検知する条件変更検知部と、
前記条件変更検知部により前記基板に関する条件の変更が検知された場合に、該条件が変更された基板以降の基板に対する搬送機の各動作の実行時刻を補正する補正部とを備えることを特徴とする請求項１３に記載の基板搬送制御装置。
【請求項２４】
前記スケジュール演算部は、１以上の基板について前記基板処理装置内の１以上の処理機器における処理が省略される場合に、前記１以上の基板が前記１以上の処理機器を飛び越して搬送されるように、前記搬送機の各動作の実行時刻を算出することを特徴とする請求項１３に記載の基板搬送制御装置。
【請求項２５】
基板の処理を行う複数の処理機器を備え、該処理機器間において搬送機により基板を搬送して基板を処理する基板処理装置において、
前記搬送機の各動作に対応する動作予定時間と、前記各処理機器における各基板に対する処理に対応する処理予定時間を入力する入力装置と、
前記動作予定時間を含み、かつ、前記搬送機の各動作間の休止時間を変数として、前記搬送機の動作が当該搬送機の先行する動作が終了してから実行されることを表す条件式１と、前記処理予定時間と、前記処理機器との間で基板の引き渡し又は受け取りを行う前記搬送機の動作に与えられた動作予定時間とを含み、かつ、処理機器上で処理後の基板が搬送機を待つ時間、または、基板が処理機器上で実際に処理を開始されるまでの処理前の待ち時間を変数として、前記処理機器において、前記基板が前記処理予定時間に対応する処理を実行してから取り出されることを表す条件式２と、前記処理機器との間で基板の引き渡し又は受け取りを行う前記搬送機の動作に与えられた動作予定時間を含み、かつ、基板が引き渡される直前の処理機器の空き時間を変数として、前記処理機器において、前記基板を取り出した後で、次の基板を引き渡しできることを表す条件式３と、に基づいて、線形計画法により、前記変数が非負であるとの制約条件のもとに、対象とする基板の最終枚が全処理を終えて前記基板処理装置から回収される時刻を最早とする前記搬送機の各動作の実行時刻を算出するスケジュール演算部と、
前記スケジュール演算部により算出された搬送機の各動作の実行時刻になったときに、対応する搬送機に該動作を指令する動作指令部とを備えることを特徴とする基板処理装置。
【請求項２６】
追加の制約条件として、前記処理機器における所定の処理が終了した後、該処理機器上で基板が搬送機を待つ時間を０とすることを特徴とする請求項２５に記載の基板処理装置。
【請求項２７】
前記所定の処理は、めっき処理であることを特徴とする請求項２６に記載の基板処理装置。
【請求項２８】
追加の制約条件として、前記搬送機が処理機器から基板を受け取ってから次の処理機器に引き渡すまでの時間に上限を設けることを特徴とする請求項２５に記載の基板処理装置。
【請求項２９】
追加の制約条件として、前記搬送機の２つの動作の開始時刻間隔に下限を設けることを特徴とする請求項２５に記載の基板処理装置。
【請求項３０】
前記搬送機が処理後の基板を処理機器から受け取ってから次の基板を該処理機器に引き渡すことが可能となるまでに該処理機器が要する時間を追加の制約条件とすることを特徴とする請求項２５に記載の基板処理装置。
【請求項３１】
前記スケジュール演算部は、前記変数に関する一次不等式を追加の制約条件として、前記回収される時刻を最早とする各動作の実行時刻を算出することを特徴とする請求項２５に記載の基板処理装置。
【請求項３２】
前記スケジュール演算部により前記制約条件を満たす搬送機の各動作の実行時刻の解が得られたか否かを判断する解判断部と、
前記解判断部により前記実行時刻の解が得られなかったと判断された場合に、前記基板処理装置内に投入される基板の投入間隔を調整し、前記スケジュール演算部による実行時刻の算出を再試行する再試行部とを備えることを特徴とする請求項２５乃至３１のいずれか一項に記載の基板処理装置。
【請求項３３】
運転開始後において、前記スケジュール演算部による前記搬送機の各動作の実行時刻の算出が新たに必要か否かを判断するスケジュール判断部と、
前記スケジュール判断部により前記実行時刻の算出が新たに必要であると判断された場合に、新たに実行時刻の算出を行う起点となる一の想定時刻と、前記スケジュール演算部による実行時刻の算出において対象とする基板の最終基板とを決定する演算条件決定部とを備え、
前記スケジュール演算部は、過去に求められたスケジューリング結果であって前記演算条件決定部により決定された想定時刻以前のスケジューリング結果を保持しつつ、前記演算条件決定部により決定された最終基板までの基板を対象として新たに実行時刻を算出することを特徴とする請求項２５に記載の基板処理装置。
【請求項３４】
搬送機が各動作をし始めた時刻を取得する実績時刻取得部と、
前記実績時刻取得部により取得された時刻と過去に求められたスケジューリング結果における実行時刻との間に矛盾又は予め決められた範囲以上の差があるか否かを判断する再スケジューリング判断部と、
前記再スケジューリング判断部により矛盾又は予め決められた範囲以上の差があると判断された場合に、該矛盾又は予め決められた範囲以上の差があると判断された時点において未実施の搬送機の各動作の実行時刻を補正する補正部とを備えることを特徴とする請求項２５に記載の基板処理装置。
【請求項３５】
運転開始後において、装置への投入が予定されている基板に関する条件の変更を検知する条件変更検知部と、
前記条件変更検知部により前記基板に関する条件の変更が検知された場合に、該条件が変更された基板以降の基板に対する搬送機の各動作の実行時刻を補正する補正部とを備えることを特徴とする請求項２５に記載の基板処理装置。
【請求項３６】
前記スケジュール演算部は、１以上の基板について装置内の１以上の処理機器における処理が省略される場合に、前記１以上の基板が前記１以上の処理機器を飛び越して搬送されるように、前記搬送機の各動作の実行時刻を算出することを特徴とする請求項２５に記載の基板処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、基板搬送制御装置及び基板搬送方法に関し、特に、搬送機により半導体製造装置などの基板処理装置内の複数の基板を複数の処理機器に順次搬送して処理を行う基板搬送制御装置及び基板搬送方法に関するものである。また、本発明は、かかる基板搬送制御装置によって基板の搬送が制御される基板処理装置に関するものである。
【背景技術】
【０００２】
半導体製造装置には種々の構成のものがあるが、一般に、複数枚の半導体基板（ウェハ）が、カセットから順次投入され、複数の搬送機により複数の処理機器間を搬送されて並行的に処理され、全処理を終えた基板がカセットに回収されるものが多く用いられている。更に、カセットを複数個装着可能・交換可能としたものもあり、このような装置では、適宜未処理の基板が装填されたカセットに交換することによって連続的に半導体製造装置の運転を行うことができる。そして、これらの半導体製造装置の制御、特に、搬送機の動作の制御は基板搬送制御装置により行われる。
【０００３】
ここで、従来の基板搬送制御装置における代表的な制御方法について簡単に説明する。
従来の基板搬送制御装置においては、制御中の搬送機から搬送機の状況が常時入力されている。そして、この搬送機の状況に基づいて現時点で動作していない（非動作中の）搬送機を検出する。非動作中の搬送機が検出された場合には、それぞれの非動作中の搬送機について、搬送元の処理機器における処理後基板の有無、搬送機が基板を受け取るためのアームの空き、搬送先の処理機器の空きなどを検査して、次に可能な動作をすべて求める。次に、可能な動作が存在したそれぞれの非動作中の搬送機について、次に行うべき１個の動作を決定し、この動作を実行する指令を対応する搬送機に送信する。該指令を受け取った非動作中の搬送機は与えられた次の動作を開始する。
【０００４】
即ち、半導体製造装置の運転中の各時点において、搬送機が非動作中であることを検出すると、所定の動作が可能である条件（動作可能条件）の成立性を判別し、この条件を満たす動作があれば、そのうちで最も優先順位が高い動作を選択して実行を指令する。
このような処理が繰り返されることにより、上述した半導体製造装置の基板搬送に関する制御が行われる。
【０００５】
しかしながら、従来の基板搬送制御装置では、上記動作可能条件が成立してからはじめて、非動作中の搬送機が現在位置から基板の引き渡し又は受け取りを行うべき処理機器の位置に移動することとなる。即ち、搬送機がたとえ非動作中であっても、動作可能条件が成立する以前に動作することができないため、半導体製造装置のスループットが悪化する場合があった。
【０００６】
また、搬送元の処理機器における処理終了時刻を予測する等して、各搬送機が早めに移動を開始できるように可能な限り動作可能条件を改変したとしても、次の動作を順次決定する方法を採用しているため、複数枚の基板を連続的に処理する場合には、最終基板が全処理を終えてカセットに回収される時刻が論理的に可能な最早値（最も早い時刻）よりも大きく遅れることがあった。
【０００７】
更に、半導体製造装置においては、一般にプロセス処理の面から、ある処理機器で処理された基板を速やかに次段の処理機器に搬送して処理すること（即時性）が望まれる。例えば、めっき等の処理を行う場合において、めっき処理後の基板を放置すると酸化等により品質の悪化を招くため、直ちに次段の処理機器に搬送して洗浄等の後処理を行うことが要求される。即ち、搬送機の動作時刻に関する一定の制約条件（上述の例では、処理後基板にとっての搬送機の待ち時間が０となるような条件）が要求されることがある。
【０００８】
しかし、上述した従来の基板搬送制御装置では、搬送機が動作中であれば、優先度の高い動作に関する動作可能条件が成立しても、すぐにはその動作を実行できないため、このような搬送機の動作時刻に関する制約条件を考慮した制御をすることができなかった。
このため、半導体製造装置の運転に先立って事前にシミュレーションを行い、このような制約条件を満たす制御をすることができるかどうかを確認する必要があり、煩わしい作業となっていた。あるいは、上記搬送機の動作時刻に関する制約条件が成立するように、処理機器の種別ごとに、設定される処理予定時間に制約を設ける必要があり、また、結果的に搬送機の動作の即時性に対する要求を満たせず、品質や歩留まりの悪化につながることがあった。あるいは、即時性を要求される後処理を本処理と一体化して機器を構成しなければならないなど、装置構成上の制約ともなっていた。
【発明の開示】
【発明が解決しようとする課題】
【０００９】
本発明は、このような従来技術の問題点に鑑みてなされたもので、容易に半導体製造装置などの基板処理装置のスループットを最大にすることができ、また搬送機の動作の即時性に対する要求を満足させることができる基板搬送制御装置及び基板搬送方法を提供することを目的とする。また、本発明は、かかる基板搬送制御装置を組み込んだ基板処理装置を提供することを目的とする。
【課題を解決するための手段】
【００１０】
このような従来の基板搬送制御装置における問題点を解決するために、本発明の一態様は、基板処理装置内に設置された複数の処理機器間において搬送機により基板を搬送する基板搬送方法であって、上記搬送機の各動作に与えられた動作予定時間を含み、かつ、上記搬送機の各動作間の休止時間を変数として、上記搬送機の動作が当該搬送機の先行する動作が終了してから実行されることを表す条件式１と、上記各処理機器における各基板に対する処理に与えられた処理予定時間と、当該処理機器との間で基板の引き渡し又は受け取りを行う上記搬送機の動作に与えられた動作予定時間とを含み、かつ、処理機器上で処理後の基板が搬送機を待つ時間、または、基板が処理機器上で実際に処理を開始されるまでの処理前の待ち時間を変数として、上記処理機器において、上記基板が上記処理予定時間に対応する処理を実行してから取り出されることを表す条件式２と、上記処理機器との間で基板の引き渡し又は受け取りを行う上記搬送機の動作に与えられた動作予定時間を含み、かつ、基板が引き渡される直前の処理機器の空き時間を変数として、上記処理機器において、上記基板を取り出した後で、次の基板を引き渡しできることを表す条件式３と、に基づいて、上記変数が非負であるとの制約条件のもとに、線形計画法によって、対象とする基板の最終枚が全処理を終えて上記基板処理装置から回収される時刻を最早とする上記搬送機の各動作の実行時刻を算出し、上記算出された搬送機の各動作の実行時刻になったときに、対応する搬送機に該動作を指令することを特徴とする基板搬送方法である。
【００１１】
また、本発明の好ましい一態様は、上記制約条件を満たす搬送機の各動作の実行時刻の解が得られたか否かを判断し、上記実行時刻の解が得られなかったと判断された場合に、上記基板処理装置内に投入される基板の投入間隔を調整して、上記実行時刻の算出を再試行することを特徴とする基板搬送方法である。
【００１２】
また、本発明の好ましい一態様は、上記基板処理装置の運転開始後において、上記搬送機の各動作の実行時刻の算出が新たに必要か否かを判断し、上記実行時刻の算出が新たに必要であると判断された場合に、一の想定時刻と実行時刻の算出において対象とする基板の最終基板とを決定し、過去に求められたスケジューリング結果であって上記決定された想定時刻以前のスケジューリング結果を保持しつつ、上記決定された最終基板までの基板を対象として新たに実行時刻を算出することを特徴とする基板搬送方法である。
【００１３】
これにより、連続運転中の各基板の処理予定時間が逐次分割して得られるような場合においても、プロセス処理上の制約を満たしつつスループットを近似的に最大とすることができる。
更に、各回のスケジューリングの試行において、計算可能な枚数を考慮してスケジューリングの対象となる追加基板数を推定し得るので、比較的処理能力の低いコンピュータでもスケジューリングを行うことができる。
【００１４】
更に、本発明の好ましい一態様は、搬送機が各動作をし始めた時刻を取得し、上記取得された時刻と過去に求められたスケジューリング結果における実行時刻との間に矛盾又は予め決められた範囲以上の差があるか否かを判断し、矛盾又は予め決められた範囲以上の差があると判断された場合に、該矛盾又は予め決められた範囲以上の差があると判断された時点において未実施の搬送機の各動作の実行時刻を補正することを特徴とする基板搬送方法である。
これにより、搬送機の動作又は処理機器における基板処理に予定からの遅れが生じたとしても、プロセス処理上の制約やスループットに対する影響を小さく抑え、かつ、将来にその影響を引きずらずに基板処理装置を運転することが可能となる。
【００１５】
本発明の好ましい一態様は、上記基板処理装置の運転開始後において、基板処理装置への投入が予定されている基板に関する条件の変更を検知し、上記基板に関する条件の変更が検知された場合に、該条件が変更された基板以降の基板に対する搬送機の各動作の実行時刻を補正することを特徴とする基板搬送方法である。
これにより、処理の取消、処理予定時間の変更、装置投入順序の変更などの未投入基板に関する条件の変更があった場合においても、この変更に柔軟に対応して基板処理装置を運転することが可能となる。
【００１６】
本発明の好ましい一態様は、１以上の基板について上記基板処理装置内の１以上の処理機器における処理が省略される場合に、上記１以上の基板が上記１以上の処理機器を飛び越して搬送されるように、上記搬送機の各動作の実行時刻を算出することを特徴とする基板搬送方法である。
これにより、基板処理装置の連続運転中に、不要な処理機器種別を飛び越して基板を搬送することができるため、複数の処理機器種別を目的に応じて使い分けることができる。従って、大幅にスループットを向上することができると共に多品種少量生産に対応した柔軟な運転が可能となる。
【００１７】
また、本発明の他の態様は、基板処理装置内に設置された複数の処理機器間における搬送機による基板の搬送を制御する基板搬送制御装置であって、上記搬送機の各動作に対応する動作予定時間と、上記各処理機器における各基板に対する処理に対応する処理予定時間を入力する入力装置と、上記動作予定時間を含み、かつ、上記搬送機の各動作間の休止時間を変数として、上記搬送機の動作が当該搬送機の先行する動作が終了してから実行されることを表す条件式１と、上記処理予定時間と、上記処理機器との間で基板の引き渡し又は受け取りを行う上記搬送機の動作に与えられた動作予定時間とを含み、かつ、処理機器上で処理後の基板が搬送機を待つ時間、または、基板が処理機器上で実際に処理を開始されるまでの処理前の待ち時間を変数として、上記処理機器において、上記基板が上記処理予定時間に対応する処理を実行してから取り出されることを表す条件式２と、上記処理機器との間で基板の引き渡し又は受け取りを行う上記搬送機の動作に与えられた動作予定時間を含み、かつ、基板が引き渡される直前の処理機器の空き時間を変数として、上記処理機器において、上記基板を取り出した後で、次の基板を引き渡しできることを表す条件式３と、に基づいて、線形計画法により、上記変数が非負であるとの制約条件のもとに、対象とする基板の最終枚が全処理を終えて上記基板処理装置から回収される時刻を最早とする上記搬送機の各動作の実行時刻を算出するスケジュール演算部と、上記スケジュール演算部により算出された搬送機の各動作の実行時刻になったときに、対応する搬送機に該動作を指令する動作指令部とを備えることを特徴とする基板搬送制御装置である。
【００１８】
また、本発明の好ましい一態様は、上記スケジュール演算部により上記制約条件を満たす搬送機の各動作の実行時刻の解が得られたか否かを判断する解判断部と、上記解判断部により上記実行時刻の解が得られなかったと判断された場合に、上記基板処理装置内に投入される基板の投入間隔を調整し、上記スケジュール演算部による実行時刻の算出を再試行する再試行部とを備えることを特徴とする基板搬送制御装置である。
【００１９】
また、本発明の好ましい一態様は、上記基板処理装置の運転開始後において、上記スケジュール演算部による上記搬送機の各動作の実行時刻の算出が新たに必要か否かを判断するスケジュール判断部と、上記スケジュール判断部により上記実行時刻の算出が新たに必要であると判断された場合に、一の想定時刻と上記スケジュール演算部による実行時刻の算出において対象とする基板の最終基板とを決定する演算条件決定部とを備え、上記スケジュール演算部は、過去に求められたスケジューリング結果であって上記演算条件決定部により決定された想定時刻以前のスケジューリング結果を保持しつつ、上記演算条件決定部により決定された最終基板までの基板を対象として新たに実行時刻を算出することを特徴とする基板搬送制御装置である。
【００２０】
また、本発明の好ましい一態様は、搬送機が各動作をし始めた時刻を取得する実績時刻取得部と、上記実績時刻取得部により取得された時刻と過去に求められたスケジューリング結果における実行時刻との間に矛盾又は予め決められた範囲以上の差があるか否かを判断する再スケジューリング判断部と、上記再スケジューリング判断部により矛盾又は予め決められた範囲以上の差があると判断された場合に、該矛盾又は予め決められた範囲以上の差があると判断された時点において未実施の搬送機の各動作の実行時刻を補正する補正部とを備えることを特徴とする基板搬送制御装置である。
【００２１】
更に、本発明の好ましい一態様は、上記基板処理装置の運転開始後において、基板処理装置への投入が予定されている基板に関する条件の変更を検知する条件変更検知部と、上記条件変更検知部により上記基板に関する条件の変更が検知された場合に、該条件が変更された基板以降の基板に対する搬送機の各動作の実行時刻を補正する補正部とを備えることを特徴とする基板搬送制御装置である。
【００２２】
また、本発明の好ましい一態様は、上記スケジュール演算部が、１以上の基板について上記基板処理装置内の１以上の処理機器における処理が省略される場合に、上記１以上の基板が上記１以上の処理機器を飛び越して搬送されるように、上記搬送機の各動作の実行時刻を算出することを特徴とする基板搬送制御装置である。
本発明の更なる他の一態様は、基板の処理を行う複数の処理機器を備え、該処理機器間において搬送機により基板を搬送して基板を処理する基板処理装置において、上述した基板搬送制御装置を備えたことを特徴とする基板処理装置である。
【発明の効果】
【００２３】
本発明によれば、対象とする基板の最終枚が全処理を終えて上記基板処理装置から回収される時刻を最も早くするような搬送機の各動作の実行時刻をスケジューリングすることができるので、基板処理装置のスループットを最大にすることができる。
また、煩わしい事前の検討や処理予定時間の制約を伴うことなく、搬送機の動作時刻に関連して設定された制約条件を満たしつつ、対象とする基板の最終枚が全処理を終えて上記基板処理装置から回収される時刻を最も早くすることができ、プロセス処理上の要求を満たすことができると共に、基板処理装置のスループットを最大にすることができる。
【発明を実施するための最良の形態】
【００２４】
以下、本発明に係る基板搬送制御装置の第１の実施形態について図１乃至図４を参照して説明する。本発明に係る基板搬送制御装置は、基板処理装置内に設置された複数の処理機器間における基板の搬送を制御するものである。なお、以下の説明においては、本発明に係る基板搬送制御装置によって基板の搬送が制御される基板処理装置が、半導体基板（ウェハ）に対して処理を行う半導体製造装置である場合について説明するが、本発明はこれに限らず、例えば、ガラス基板に対してＬＣＤ製造用の処理を行う基板処理装置についても適用することができる。
【００２５】
図１は、本実施形態における半導体製造装置の構成を示す模式図である。図１に示すように、本発明に係る基板搬送制御装置によって制御される半導体製造装置は、基板を搬送する搬送機１ａ〜１ｃ、基板が装填されるカセット２ａ，２ｂ、基板の受け渡しに用いる仮置き台３ａ，３ｂ、反転機４、水洗乾燥機５ａ，５ｂ、薬液洗浄機６ａ，６ｂ、粗洗浄機７、前処理槽８ａ，８ｂ、めっき槽９ａ〜９ｄを備えている。ここで、本実施形態においては、プロセス処理を行う５ａ〜９ｄだけでなく、仮置き台３ａ，３ｂ、反転機４も含めて処理機器として扱う。また、半導体製造装置を、例えば、成膜処理を行うＣＶＤ装置、研磨処理を行うポリッシング装置等の種々の装置として構成することもでき、これに応じて処理機器もさまざまな機器とすることができる。
【００２６】
カセット２ａ又は２ｂに装填された基板は、搬送機１ａにより装置内に投入され仮置き台３ａに搬送された後、更に搬送機１ｂにより仮置き台３ｂに搬送される。次に基板は、搬送機１ｃにより前処理槽８ａ又は８ｂに搬送され処理されて反転される。その後、搬送機１ｃによりめっき槽９ａ〜９ｄに搬送されて処理され、更に粗洗浄機７に搬送される。粗洗浄を終えた基板は、搬送機１ｂにより薬液洗浄機６ａ又は６ｂに搬送され処理されて、更に反転機４に搬送され反転される。基板は、最後に搬送機１ａによって水洗乾燥機５ａ又は５ｂに搬送され処理されて、最初に装填されていたカセット２ａ又は２ｂに回収される。なお、基板は単一の基板だけでなく、治具により連結されるなどにより一体化された複数枚の基板の組であってもよい。
【００２７】
ここで、本実施形態においては、搬送機１ａ〜１ｃの各動作が予め定義されている。例えば、搬送機１ｃの動作としては、仮置き台３ｂに移動して基板を受け取る動作Ｃ、前処理槽８ａ，８ｂに搬送して該基板を引き渡す動作Ｄ、前処理槽８ａ，８ｂに移動して前処理後の基板を受け取る動作Ｅ、めっき槽９ａ〜９ｄに搬送して基板を引き渡す動作Ｆ、めっき槽９ａ〜９ｄに移動してめっき処理後の基板を受け取り粗洗浄機に移動して該基板を引き渡す動作Ｇが定義されている。
【００２８】
次に、本実施形態に係る基板搬送制御装置について説明する。図２は本実施形態に係る基板搬送制御装置のハードウェア構成の一実施例を示す図、図３は本実施形態における基板搬送制御装置の構成を示すブロック図である。
図２に示すように、基板搬送制御装置１０は、中央処理装置（ＣＰＵ）１１、キーボード、マウス等のポインティングデバイスや他のコンピュータ内に格納されたデータを読み込むための通信装置等の入力装置１２、及び記憶装置としてのＲＯＭ１３、メモリ１４、ハードディスク１５を含んで構成される。また、この基板搬送制御装置１０は、入出力インターフェイス１６を介して上記半導体製造装置の搬送機１ａ〜１ｃと接続されており、上記ＣＰＵ１１からの信号が入出力インターフェイス１６を介して半導体製造装置の搬送機１ａ〜１ｃに送られることによって該搬送機１ａ〜１ｃが制御される。
【００２９】
ＲＯＭ１３及びハードディスク１５には、ＯＳ（Operating  System）と協動してＣＰＵ１１等に命令を与え、基板搬送制御を行うためのコンピュータプログラムのコードが格納されている。このコンピュータプログラムは、メモリ１４にロードされることによって実行され、ＣＰＵ１１と協動して以下に述べる基板搬送制御を行う。このようなコンピュータプログラムとＣＰＵ１１との協動によって、図３に示すように、後述するスケジュール演算部２１、解判断部２２、タイムテーブル作成部２３、動作指令部２４、再試行部２５が構成される。また、ハードディスク１５（又はメモリ１４）には、後述するタイムテーブル作成部２３によって作成（更新）されるタイムテーブル１７が格納される。
【００３０】
以下、本実施形態に係る基板搬送制御装置１０における基板搬送制御の手順について説明する。図４は、本実施形態に係る基板搬送制御装置１０における基板搬送制御の手順を示すフローチャートである。
まず、基板処理装置の運転開始に先立って、半導体製造装置の搬送機１ａ〜１ｃの各動作に必要とされる時間（以下、動作予定時間という）、例えば、搬送機１ａ〜１ｃが処理機器から基板を受け取るために必要とされる予定時間や搬送機１ａ〜１ｃがある処理機器位置から他の処理機器位置に移動するために必要とされる予定時間などを入力する（ステップ１）。この動作予定時間の入力は、上記入力装置１２を介して行われる。
【００３１】
また、処理機器３ａ〜９ｄにおける基板に対する処理に必要とされる時間（以下、処理予定時間という）、例えば、粗洗浄機７において基板を洗浄するために予定される時間などを入力する（ステップ２）。この処理予定時間の入力も、上記入力装置１２を介して行われる。
【００３２】
なお、これら動作予定時間及び処理予定時間を入力するための入力装置は、キーボードやポインティングデバイス等に限られるものではなく、例えば、上記動作予定時間や処理予定時間を予め記憶装置１４又は１５にファイルとして格納しておき、このファイルを読み込むことにより動作予定時間及び処理予定時間を入力することとしてもよいし、また、このようなファイルを他のコンピュータに保存しておき、これを通信装置を介して読み込むことにより動作予定時間及び処理予定時間を入力することとしてもよい。動作予定時間をファイルに格納する場合には、例えば、各搬送機に接続されたコンピュータによって実際に搬送機の各動作に必要とされる時間を計測し、この計測された時間を動作予定時間としてファイルに格納することとしてもよい。また、この場合には、装置の運転中に搬送機の各動作に必要とされる時間を計測し、平均化などの処理を行って上記ファイルに格納された動作予定時間を更新すれば、動作予定時間の精度を向上させたり、経時変化に対処させたりすることが可能となる。
【００３３】
次に、スケジュール演算部２１によって、対象とする基板の最終枚（最終基板）が全処理を終えて半導体製造装置から回収される時刻を最も早くするような搬送機１ａ〜１ｃの各動作の動作時刻（以下、実行時刻という）が導出される（ステップ３）。この実行時刻の導出は所定の条件式を満たす解を算出することによって行うが、この詳細については後述する。
【００３４】
ここで、上記条件式を満たす解は必ず存在するとは限らず、上記スケジュール演算部２１による演算の後、上記条件式を満たす解が得られたか否かが解判断部２２により判断される（ステップ４）。
解が得られたと判断された場合には、タイムテーブル作成部２３がこの実行時刻に基づいたタイムテーブル１７、即ち、上記得られた実行時刻と該実行時刻になったときに行う搬送機の動作とを対応づけたテーブルを作成（更新）し、該タイムテーブル１７を上記ハードディスク１５内に格納する（ステップ５）。
【００３５】
そして、半導体製造装置の運転時には、動作指令部２４がハードディスク１５に格納されたタイムテーブル１７を参照して搬送機１ａ〜１ｃの制御を行う。即ち、タイムテーブル１７に記述された実行時刻になったときに、対応する搬送機の動作を入出力インターフェイス１６を介して該搬送機に指令する。これにより、対象とする基板の最終枚が全処理を終えて半導体製造装置から回収される時刻が最も早くなる。なお、動作指令部２４が搬送機１ａ〜１ｃに動作を指令する際には、その搬送機が非動作中であること、搬送元の処理機器における基板の処理が完了していること、及び搬送先の処理機器に先行する基板が存在せずリセットも完了していることを確認した上で、指令を送信する。これらの条件が満足されない場合には、動作指令部２４は上記条件が満足されるまで待ってから指令を送信する。
【００３６】
一方、解判断部２２により上記条件式を満たす解が得られなかったと判断された場合には、再試行部２５が、装置内の搬送機及び処理機器上に同時に存在する基板の平均枚数を減じるように、即ち、基板の投入間隔を調整して、上記条件式を修正し、上記ステップ３以降の処理を再試行する（ステップ６）。この条件式の修正は、搬送機の動作予定時間と処理機器における処理予定時間とを０とした仮想的な基板（以下、空基板という）を適当な間隔で基板間に挿入することにより行われる。このとき、装置内に同時に存在する基板の枚数が減れば、搬送機の動作の頻度が小さくなって搬送機に余裕が生じるため、解が得られる確率が増す。再試行部２５による再試行後も解が得られない場合には、更に上述の装置内に同時に存在する基板の平均枚数を減じるように上記条件式を修正することとし、極端な場合には、先行する基板の全処理が終了してカセット２ａ又は２ｂに回収されてから、次の基板が装置内に投入されることになる。
【００３７】
次に、上述のスケジュール演算部２１における条件式の設定及び実行時刻の導出を具体例と共に説明する。なお、以下に説明する条件式の設定及び実行時刻の導出は一例であり、他のあらゆる手法を用いて行うこともできる。
【００３８】
まず、搬送機１ａ〜１ｃの動作の番号（動作番号）ｋを基板が半導体製造装置に投入されてから回収されるまでの経路に沿って順に１，２，３，・・・，Ｋと定義する。また半導体製造装置の運転開始から十分に時間が経過し半導体製造装置内に基板が十分にあって定常的に運転されている状態を想定して、動作ｋに関し、対応する搬送機の次に実行される動作の番号をｋｐ（ｋ）と表す。更に、半導体製造装置の運転開始時には１枚目の基板の前に、また、運転終了時には最終基板の後に、上述した空基板が適当枚数存在すると仮定することにし、これら空基板を含めて、カセット２ａ又は２ｂから半導体製造装置への投入順に基板番号ｎを定めることとして、動作ｋから次の動作ｋｐ（ｋ）に移るときに動作の対象とする基板の基板番号の増分をｎｐ（ｋ）と表す。例えば、図１に示す半導体製造装置については以下のように定義する。
【００３９】
搬送機１ａがカセット２ａ又は２ｂに装填された基板を仮置き台３ａに搬送する動作Ａをｋ＝１、搬送機１ｂが仮置き台３ａ上の基板をもう１つの仮置き台３ｂに搬送する動作Ｂをｋ＝２、搬送機１ｃが仮置き台３ｂに移動して基板を受け取る動作Ｃをｋ＝３、上記受け取った基板を前処理槽８ａ又は８ｂに搬送して引き渡す動作Ｄをｋ＝４、前処理槽８ａ又は８ｂに移動して基板を受け取る動作Ｅをｋ＝５、上記受け取った基板をめっき槽９ａ〜９ｄに搬送して引き渡す動作Ｆをｋ＝６、めっき槽９ａ〜９ｄに移動してめっき処理後の基板を受け取り粗洗浄機に移動して該基板を引き渡す動作Ｇをｋ＝７などと定義する。
【００４０】
更に、半導体製造装置の運転開始から十分に時間が経過して、半導体製造装置内に基板が十分にあって定常的に運転されている状態を想定して、搬送機の動作の順序を定めておく。例えば、搬送機１ｃの動作順序を動作番号が３→５→４→６→７→３→・・・となるように周期的に定義する。この場合には、
ｋｐ（３）＝５
ｋｐ（４）＝６
ｋｐ（５）＝４
ｋｐ（６）＝７
ｋｐ（７）＝３
と表すことができる。更に、動作ｋから次の動作ｋｐ（ｋ）に移るときの基板番号の増分ｎｐも以下のように定めておく。なお、このｎｐは、処理機器３ａ〜９ｄの各種別ごとの機器数を考慮して定められる。
ｎｐ（３）＝−２
ｎｐ（４）＝−２
ｎｐ（５）＝＋２
ｎｐ（６）＝−３
ｎｐ（７）＝＋６
【００４１】
このとき、各基板が同一種別内の各処理機器（例えば、８ａ〜８ｂ、９ａ〜９ｄ）に投入順・周期的に割り当てられるものとすれば、以下に示す動作予定時間が一義的に定められる。これらの動作予定時間は、上述の入力装置１２により入力されたもの、あるいは入力された値を基に搬送機の位置や経路を考慮して計算により求められるものである。
Ｍ１（ｋ，ｎ）：搬送機が動作ｋの直前位置から基板ｎを受け取る前に移動する時間
Ｇ１（ｋ，ｎ）：搬送機が動作ｋで処理機器から基板ｎを受け取る時間
Ｍ（ｋ，ｎ）：搬送機が動作ｋで基板ｎを保持して移動する時間
Ｇ２（ｋ，ｎ）：搬送機が動作ｋで処理機器に基板ｎを引き渡す時間
Ｍ２（ｋ，ｎ）：搬送機が動作ｋで基板ｎを引き渡してから移動する時間
なお、これらの動作予定時間は０となる場合がある。
また、これらの合計をＴｇ（ｋ，ｎ）と定義しておく。即ち、
Ｔｇ（ｋ，ｎ）＝Ｍ１（ｋ，ｎ）＋Ｇ１（ｋ，ｎ）
＋Ｍ（ｋ，ｎ）＋Ｇ２（ｋ，ｎ）＋Ｍ２（ｋ，ｎ）
と定義する。
【００４２】
また、以下の非負の変数を定義する。
ｘｒ（ｋ，ｎ）：基板ｎに対する動作ｋの直前の搬送機の休止時間
ｘｗ（ｋ，ｎ）：基板ｎに対する動作ｋの直前の処理機器上での搬送機の待ち時間
ｘｆ（ｋ，ｎ）：基板ｎに対する動作ｋにより基板を処理機器に引き渡す直前の該処理機器の空き時間
【００４３】
なお、ｘｗ（ｋ，ｎ）は処理機器からの基板受け取りを含む動作についてのみ定義される。また、ｘｆ（ｋ，ｎ）は処理機器への基板の引き渡しを含む動作についてのみ定義されるが、実用的には、搬送機間の基板の受け渡しに用いられる中継型の処理機器に基板を引き渡す動作に限定してもよい。
【００４４】
ここで、基板ｎに対する動作ｋの開始時刻をｔ（ｋ，ｎ）で表すと、以下の３式が成立する。
ｔ（ｋｐ（ｋ），ｎ＋ｎｐ（ｋ））
＝ｔ（ｋ，ｎ）＋Ｔｇ（ｋ，ｎ）
＋ｘｒ（ｋｐ（ｋ），ｎ＋ｎｐ（ｋ））        ・・・（式１）
ｔ（ｋ＋１，ｎ）
＝ｔ（ｋ，ｎ）＋Ｔｇ（ｋ，ｎ）−Ｍ２（ｋ，ｎ）＋Ｐ（ｋ，ｎ）
−Ｍ１（ｋ＋１，ｎ）＋ｘｗ（ｋ＋１，ｎ）    ・・・（式２）
ｔ（ｋ，ｎ）
＝ｔ（ｋ＋１，ｎ−Ｕ（ｋ））
＋Ｍ１（ｋ＋１，ｎ−Ｕ（ｋ））＋Ｇ１（ｋ＋１，ｎ−Ｕ（ｋ））
−Ｍ１（ｋ，ｎ）−Ｇ１（ｋ，ｎ）−Ｍ（ｋ，ｎ）＋ｘｆ（ｋ，ｎ）
・・・（式３）
【００４５】
ここで、（式２）中のＰ（ｋ，ｎ）は動作番号ｋで表される動作後の基板番号ｎの処理予定時間であって、上記入力装置１２により入力されたもの、あるいは、入力された値を基に計算されるものであり、通常基板ごとに指定されるめっき、洗浄等の処理予定時間に加えて、処理機器上で処理を行うに先立って実行されるシャッタ閉や液張り等の前動作や、処理を終えてから実行される液抜きやシャッタ開等の後動作に要する時間を含むものである。また、（式３）中のＵ（ｋ）は動作ｋで基板を引き渡す処理機器に対する種別内の機器数を表す。
【００４６】
上記（式１）は基板ｎに対する動作ｋの次に同一の搬送機が行う動作の開始時刻、（式２）は基板ｎに対して処理機器での処理終了後次に行われる動作ｋ＋１の開始時刻、（式３）は搬送機が処理機器から処理後の基板を受け取った後次の基板ｎを引き渡す動作の開始時刻をそれぞれ表している。
【００４７】
上述の（式１）〜（式３）の式は、Ｔ，Ｘｒ，Ｘｗ，Ｘｆをそれぞれｔ（ｋ，ｎ），ｘｒ（ｋ，ｎ），ｘｗ（ｋ，ｎ），ｘｆ（ｋ，ｎ）を要素とする列ベクトル、Ｒｍ，Ｗｍ，Ｆｍを適当な行列、Ｒｖ，Ｗｖ，Ｆｖを適当な列ベクトルとして、以下のように変形することができる。
Ｔ  ＝ＲｍＸｒ＋Ｒｖ    ・・・（式１ａ）
Ｘｗ＝ＷｍＸｒ＋Ｗｖ    ・・・（式２ａ）
Ｘｆ＝ＦｍＸｒ＋Ｆｖ    ・・・（式３ａ）
【００４８】
ここで、上記（式１ａ）において、左辺のベクトルＴには最終基板Ｎ（空基板を除く）に対する回収動作の開始時刻を表すｔ（Ｋ，Ｎ）に相当する要素があり、右辺のベクトルＲｍＸｒにおいてこれに対応する要素が最小となれば、対象とする基板の最終枚が全処理を終えて半導体製造装置から回収される時刻を最も早くすることができる。
この回収時刻を最も早くする条件は、ｃを適当な行ベクトルとして以下のように表すことができる。
ｃＸｒ→最小    ・・・（式４）
【００４９】
ところで、上記（式１ａ）〜（式３ａ）で表される搬送動作が物理的に成立するための条件は、通常、Ｘｒ≧０，Ｘｗ≧０，Ｘｆ≧０であり、この不等式と上記（式１ａ）〜（式３ａ）とから、以下の不等式を導くことができる。
Ｘｒ≧０            ・・・（式１ｂ）
ＷｍＸｒ≧−Ｗｖ    ・・・（式２ｂ）
ＦｍＸｒ≧−Ｆｖ    ・・・（式３ｂ）
【００５０】
ここで、ある処理機器において、搬送機が先行する基板を受け取ってから次の基板を引き渡し始めるまでに一定の時間を要する場合には、（式３ｂ）の右辺の対応する要素に、この時間を加える。例えば、上述の反転器４においては、搬送機１ａが反転後の基板を受け取った後、反転機構がリセットされてはじめて、搬送機１ｂが次の基板を引き渡すことができる。このような場合には、右辺の対応する要素にリセット所要時間を加えることとする。
【００５１】
また、（式１ａ）に表されるように、すべての動作開始時刻はＸｒの一次式で表されるから、任意の動作時刻に関連する一次の制約条件はＸｒに関する一次不等式で表すことができる。例えば、制約条件として、動作ｋ０において、直前の処理終了後の任意の基板を直ちに受け取ること、即ちｘｗ（ｋ０，ｎ）＝０であることを条件とするならば、上記（式２ａ）においてｋ０に該当する行を取り出して、以下の一次不等式で表すことができる。
−Ｗｍ０Ｘｒ０≧Ｗｖ０    ・・・（式５）
【００５２】
なお、基板ｎ０に対して、動作ｋ０で直前の処理機器から基板を受け取ってから、動作ｋ０＋１で次の処理機器に引き渡すまでの時間に上限の制約条件を設ける場合にも、同様の形式の不等式を導くことができる。また、同様に、任意の２つの動作の開始時刻間に下限の制約条件を設けることもでき、これにより、搬送機にある程度余裕を持ったスケジュールを行うことが可能である。更に、動作ｋにより処理機器へ基板ｎを引き渡してから実際に処理を開始するまでの処理前の待ち時間をｘｗｗ（ｋ，ｎ）と定義し、上述の変数ベクトルＸｒに含めるように定式化することも可能である。この場合には、ｘｗ（ｋ＋１，ｎ）に関する上限の制約条件を満たす確率を上げることができる。
【００５３】
以上より、（式１ｂ）〜（式３ｂ）、及び（式５）は、Ａを適当な行列、ｂを適当な列ベクトルとすれば、以下の式で表すことができる。
ＡＸｒ≧ｂ    ・・・（式６）
従って、最終基板の回収時刻を最も早くするためには、（式６）の下で（式４）の最小値を求めることが必要となるが、このようなＸｒの解は線形計画法の問題として解くことができる。この解Ｘｒが得られれば、最終基板の回収時刻を最も早くする各動作の実行時刻を（式１ａ）から得ることができ、これに基づいて上述したタイムテーブルを作成（更新）することができる。
【００５４】
次に、本発明に係る基板搬送制御装置の第２の実施形態について図５乃至図７を参照して説明する。図５は本実施形態における基板搬送制御装置１０の構成を示すブロック図、図６は本実施形態に係る基板搬送制御装置１０における基板搬送制御の手順を示すフローチャート、図７は本実施形態におけるスケジューリングの対象とする時間領域のイメージを示す図である。
【００５５】
半導体製造装置を長時間連続して運転する場合には、各基板に対する処理予定時間が事前に与えられる場合だけであるとは限らず、運転中に、例えば、新しいカセットを装着する度に、カセット内の未処理の基板に対する処理予定時間を与えて制御を行うことが考えられる。本実施形態の基板搬送制御装置はこのような場合にも対応することができる。
【００５６】
即ち、本実施形態における基板搬送制御装置１０は、図７に示すスケジューリング対象時間領域を半導体製造装置の運転中に後方に移動させながら、逐次スケジューリングを繰り返し、各スケジューリングの結果を矛盾なく継ぎ足して制御を行うものである。
本実施形態における基板搬送制御装置１０は、図５に示すようにハードディスク１５内に演算時間テーブル１８が格納され、また、記憶装置１３〜１５に格納されたコンピュータプログラムとＣＰＵ１１との協動によって、スケジュール判断部３１、演算条件決定部３２、スケジュール演算部３３、解判断部３４、タイムテーブル作成部３５、動作指令部３６、再試行部３７が構成される。
【００５７】
以下、本実施形態に係る基板搬送制御装置における基板搬送制御の手順について説明する。
まず、上述の第１の実施形態と同様に、入力装置１２により動作予定時間が入力され（ステップ２１）、更に入力装置１２により処理予定時間が入力される（ステップ２２）。本実施形態では、入力装置によって入力されたデータを一旦記憶装置１４又は１５に格納して、これを読み込むことにより動作予定時間及び処理予定時間の入力が行われる。
これら動作予定時間及び処理予定時間が入力されると、スケジュール判断部３１が新たなスケジューリングが必要か否かを判断する（ステップ２３）。即ち、処理予定時間が入力されているのにスケジューリングがまだなされていない基板がないかを検査する。
【００５８】
このスケジュール判断部３１により、スケジューリングがなされていない基板がない、即ち、新たなスケジューリングが必要ないと判断された場合には、再度ステップ２２に戻り、処理予定時間が入力されるのを待つ。
一方、スケジュール判断部３１により、スケジューリングがなされていない基板があると判断された場合には、演算条件決定部３２により、現時点以降の一の想定時刻と、スケジューリング演算の対象とする最終基板（空基板を除く）とが決定される（ステップ２４）。最終基板は、既にスケジューリング済みの基板に加えて新たにスケジューリング演算の対象として追加される基板の最終枚であり、空基板ではないものとする。
【００５９】
この想定時刻と最終基板は、図７に示すように、過去に導出されたスケジューリング結果において、最終非空基板（空基板でないものをいう）が半導体製造装置に投入されてから最初に空基板を含む基板がカセット２ａ又は２ｂに回収される時刻を想定時刻として、現時点から想定時刻まで間に余裕を持ってスケジューリング演算を完了できる範囲の追加基板の枚数を推定し、最終基板を決定する。追加基板の枚数の推定は、スケジューリングはまだされていないが処理予定時間が入力されている基板の枚数の範囲内で行われる。また、正の追加基板枚数が得られない場合には、想定時刻を次のスケジューリング済みの基板の回収時刻にずらして求められる。このようにすると、図７に示すように、上記想定時刻から上記最終基板が回収される時刻までの間が、概略のスケジューリング対象時間領域となる。
【００６０】
ここで、追加した基板の枚数に対してスケジューリング演算に要した時間の平均値が演算時間テーブル１８としてハードディスク１５内に保存されており、演算条件決定部３２は、この演算時間テーブル１８に保存された演算の所要時間を考慮して適切な追加基板枚数の推定を行う。
この新たなスケジューリングによる最終基板の回収時刻は、全基板の処理予定時間が事前に与えられている場合に実現される真の最早値（最も早い時刻）に比べて通常遅くなるが、各回のスケジューリングにおいて追加する基板の枚数をある程度大きくとれば、近似的に真の最早値に近くすることができる。
【００６１】
演算条件決定部３２により想定時刻とスケジューリング演算の対象となる最終基板とが決定されると、次に、スケジュール演算部３３は、上述の追加基板を追加した後の条件式に基づいて上記スケジューリング対象時間領域内における搬送機の各動作の実行時刻を導出する（ステップ２５）。
【００６２】
この場合において、過去に導出されたスケジューリング結果のうち、実行時刻が想定時刻より後の動作番号と基板番号の組を参照することにより、各動作ｋに対して着目する基板番号の下限を求める。あるいは、搬送機の動作順序から処理予定時間や動作予定時間によっては想定時刻より後に起こり得る動作を求めて基板番号の下限を定めてもよい。このようにすれば、過去のスケジューリング結果において、想定時刻以前の多くの動作の実行時刻は保持されるが、想定時刻付近には実行時刻が保持されない動作が生じる場合もある。
また、上述のスケジューリング演算の対象となる最終基板のカセットへの回収動作の開始時刻よりも前に起こり得る動作を求めて、基板番号の上限を定める。ここで、最終基板以降の基板に関しては、動作時間と処理時間が０の空基板が存在すると仮定する。
【００６３】
このようにして定められた基板番号の下限と上限とに基づいて、上述した未知の列ベクトルＴ，Ｘｒ等が構成され、スケジューリング演算が行われる。そして、各回のスケジューリング演算において、演算に実際に要した時間に基づいて上記演算時間テーブル１８に保存された演算の所要時間の平均値が更新される。
【００６４】
なお、連続運転開始時にはスケジューリングの即応性を特に重視するため、先頭の１枚目の基板に対し、（式１）〜（式３）が成立する最小値としてｋ＝１，２，・・・，Ｋの順に動作時刻を求める。装置内で処理される基板が１枚の場合、このようにすれば該基板の回収時刻は最も早くなる。また、処理予定時間や動作予定時間が極端な値をとらない限り、基板は、各処理機器３ａ〜９ｄで処理された後すぐに搬送機１ａ〜１ｃによって次の処理機器に搬送される。よって、与えられた制約条件を満たす最適解が求められることとなる。
【００６５】
スケジュール演算部３３による処理の後、第１の実施形態と同様に、解判断部３４により実行時刻の解が得られたか否かが判断され（ステップ２６）、実行時刻の解が得られた場合はタイムテーブル作成部３５によりタイムテーブルが作成（更新）される（ステップ２７）。タイムテーブルが作成（更新）された後は、上記ステップ２２に戻り、以降のステップを繰り返す。
動作指令部３６は、第１の実施形態と同様に、ハードディスク１５に格納されたタイムテーブル１７を参照することにより搬送機１ａ〜１ｃの制御を行う。
【００６６】
一方、実行時刻の解が得られなかったと解判断部３４により判断された場合には、第１の実施形態と同様に、再試行部３７により空基板が各基板間に挿入される（ステップ２８）が、かかる場合には、上記演算条件決定部３２は、この挿入される空基板をも考慮して、非空の追加基板が存在するように、想定時刻とスケジューリング演算の対象となる最終基板とを決定する。
【００６７】
なお、本実施形態においては、新たなスケジューリングで求められる搬送機の動作の実行時刻が想定時刻よりも前になることがあるので、上述した追加基板枚数の推定において安全率を大きめに設定して、想定時刻より早くスケジューリング演算を終えて動作指令部３６による搬送機への動作指令を行えるようにする必要がある。
【００６８】
次に、本発明に係る基板搬送制御装置の第３の実施形態について図８及び図９を参照して説明する。図８は本実施形態における基板搬送制御装置１０の構成を示すブロック図である。
本実施形態における基板搬送制御装置１０は、図８に示すようにスケジューリング部４０、スケジュール補正部５０、及び動作指令部６０を備え、ハードディスク１５には経過データファイル１９が格納される。動作指令部６０は、上述の第２の実施形態における動作指令部３６に相当するものである。
【００６９】
スケジューリング部４０は、上記第２の実施形態におけるスケジュール判断部、演算条件決定部、スケジュール演算部、解判断部、タイムテーブル作成部、再試行部から構成される。またスケジュール補正部５０は、実績時刻取得部５１、再スケジューリング判断部５２、無効化部５３、経過データ取得部５４、補正部５５、有効化部５６とから構成される。これらスケジューリング部４０とスケジュール補正部５０はともに、記憶装置１３〜１５に格納されたコンピュータプログラムとＣＰＵ１１との協動によって実現されるものである。
【００７０】
以下、本実施形態に係る基板搬送制御装置１０における基板搬送制御の手順について説明する。図９は本実施形態におけるスケジュール補正部５０において行われる処理の手順を示すフローチャートである。
スケジューリング部４０における基本的な処理の流れは、上述の第２の実施形態にて説明した処理と同様であるが、動作予定時間、処理予定時間等の条件データと、上述のｔ（ｋ，ｎ），ｘｒ（ｋ，ｎ）、及び、スケジューリング済みの最終基板番号等のスケジューリング結果のデータを経過データファイル１９として、スケジュール補正部５０との間で矛盾なく共有して更新する点が第２の実施形態と異なる。
【００７１】
即ち、運転開始時に、入力装置１２により各搬送機個々の動作予定時間が入力され、この動作予定時間が経過データファイル１９としてメモリ１４又はハードディスク１５内に格納される。また、連続運転開始以後において、入力装置１２により各基板に対する各処理機器の種別ごとの処理予定時間が入力されると、この処理予定時間も経過データファイル１９としてメモリ１４又はハードディスク１５内に蓄積される。その後、スケジュール補正部５０による搬送機の各動作の実行時刻の補正結果を反映するために、経過データファイル１９を読み込んで、これを基に、タイムテーブル作成部によるタイムテーブル１７の作成（更新）までのステップが実行され、結果が経過データファイル１９に蓄積される。経過データファイル１９に蓄積されたデータは、例えば各時点で実際に全処理を終えてカセットに回収された基板の番号等を参照して、古くて不要になったものから順次消去する。
【００７２】
なお、スケジュール判断部による新たなスケジューリング演算の必要性の判断、及び、演算条件決定部による最終基板の決定においては、経過データファイル１９の記憶容量や時刻補正の発生頻度などを考慮して、スケジューリング演算の対象となる基板の範囲に制約を設けてもよい。
【００７３】
ところで、本実施形態では、上記スケジューリング部４０の処理とは独立して、以下に述べる処理がスケジュール補正部５０において行われる。
まず、実績時刻取得部５１は、上記入出力インターフェイス１６を介して搬送機１ａ〜１ｃが実際に各動作をし始めた時刻（以下、実績時刻という）を取得する（ステップ４１）。次に、再スケジューリング判断部５２が、上記実績時刻取得部５１により取得された実績時刻と、上記スケジューリング部４０のスケジュール演算部において過去にスケジューリングされタイムテーブル１７に記述された実行時刻との差を求め、この差が予め決められた許容範囲を超えるものであるか否かを判断する（ステップ４２）。
【００７４】
上記遅れ時間が所定許容範囲を超えないと判断された場合には、再び実績時刻の取得が行われ（ステップ４１）、一方、この許容範囲を超えたと判断された場合には、タイムテーブル１７に記述された実行時刻の補正が必要となる。従って、以下に述べる処理が行われる（ステップ４３〜ステップ４７）。なお、上記再スケジューリング判断部５２において、実績時刻とタイムテーブル１７に記述された実行時刻との関係で動作に矛盾が生じたか否かを判断することとしてもよい。例えば、一の搬送機の動作が遅れて実際に中継型の処理機器に基板を引き渡す前に、他の搬送機が該処理機器から該基板を受け取るようにスケジューリングされているとすれば、矛盾が生じているので、この場合に実行時刻の補正をすることとしてもよい。
【００７５】
また、実績時刻取得部５１による実績時刻の取得において、各搬送機が各動作をし始めた時刻に加えて、各動作の進捗を表すデータ、例えば、搬送元や搬送先の処理機器への移動、及び、基板の受け取りや引き渡しの終了等の時刻や、処理機器における処理の終了等の時刻を取得すれば、よりきめの細かい実行時刻の補正を行うことができる。
ステップ４３〜４７の処理は、まず、無効化部５３が上記スケジューリング部４０での処理を無効化あるいは停止し（ステップ４３）、経過データ取得部５４が経過データファイル１９を参照して上記経過データを取得する（ステップ４４）。
【００７６】
次に、補正部５５が、この経過データと実績時刻入力部５１により入力された実績時刻とに基づいて、半導体製造装置内の搬送機上及び処理機器上に存する基板、及び半導体製造装置に投入前の先頭の１枚の基板（いずれも空基板を含む）に関し、現時点において未実施の動作について、上記（式１）〜（式３）を満たし、かつ、過去にスケジューリングされた時刻を下回らない最小値として、新たな（補正された）実行時刻を算出する（ステップ４５）。このとき、スケジューリング済みの最終基板は、上述の半導体製造装置に投入する前の先頭１枚の基板となり、計算の便宜上、その後に適当枚数の空基板が挿入される。そして、補正部５５は、この補正された実行時刻に基づいて上記タイムテーブル１７と経過データファイル１９を更新する（ステップ４６）。
【００７７】
なお、上記新たな実行時刻の算出においては、簡単のために、過去にスケジューリングされた時刻を、最新の実績時刻の遅れに合わせて、一律後方に移動することとしてもよい。また、搬送機が搬送元の処理機器から基板を受け取り終わる時刻又は搬送先の処理機器に基板を引き渡し終わる時刻を対象として、過去のスケジューリング結果との比較を行うこととしてもよい。
【００７８】
その後、有効化部５６が、上記無効化部５３により無効化又は停止されたスケジューリング部４０における処理を再び有効化又は再始動する（ステップ４７）。この有効化又は再始動後、スケジューリング部４０においては、上記更新された経過データファイル１９の内容に基づいて処理が行われる。
【００７９】
なお、搬送機の一の動作が予定よりも遅れた場合には、考慮した搬送機の動作時刻に関連する制約条件は必ずしも満たされなくなるが、再スケジューリング判断部５２における遅れの基準を適切に設定することで、制約条件からの逸脱を無視できるレベルにまで小さくすることができる。また、スケジューリング部４０における処理を有効化又は再始動後は、その後の基板について線形計画法により制約条件を考慮した最適値を求めることができ、将来に対する時間遅れの影響を解消することができる。
【００８０】
次に、本発明に係る基板搬送制御装置の第４の実施形態について図１０及び図１１を参照して説明する。図１０は本実施形態における基板搬送制御装置１０の構成を示すブロック図である。
本実施形態における基板搬送制御装置１０は、図１０に示すようにスケジューリング部４０、スケジュール補正部７０、及び動作指令部６０を備え、ハードディスク１５には経過データファイル１９が格納されている。これらスケジューリング部４０とスケジュール補正部７０はともに、記憶装置１３〜１５に格納されたコンピュータプログラムとＣＰＵ１１との協動によって実現されるものである。本実施形態におけるスケジュール補正部７０は、条件変更検知部７１、無効化部７２、経過データ取得部７３、処理予定時間更新部７４、補正部７５、有効化部７６から構成される。
【００８１】
スケジューリング部４０における処理の流れは、上述の第２及び第３の実施形態にて説明した処理と同様であるが、スケジュール補正部７０において行なわれる処理が第３の実施形態におけるスケジュール補正部５０と異なる。以下、本実施形態のスケジュール補正部７０において行なわれる処理について説明する。なお、このスケジュール補正部７０において行なわれる処理はスケジューリング部４０の処理と独立して行なわれる。図１１は本実施形態におけるスケジュール補正部７０において行われる処理の手順を示すフローチャートである。
【００８２】
まず、条件変更検知部７１は、運転開始後において、装置への投入が予定されている基板（以下、未投入基板という）に関する条件の変更、例えば、装置投入予定の取消、処理予定時間の変更や装置投入順序の変更などの有無を入力装置１２を介して検知する（ステップ５１）。条件変更検知部７１により、未投入基板に関する条件の変更が検知された場合には、タイムテーブル１７に記述された実行時刻の補正が必要となるので、以下に述べる処理が行なわれる。
【００８３】
まず、無効化部７２が上記スケジューリング部４０での処理を無効化あるいは停止し（ステップ５２）、経過データ取得部７３が経過データファイル１９を参照して上記経過データを取得する（ステップ５３）。そして、処理予定時間更新部７４が、上述した未投入基板に関する条件の変更（装置投入予定の取消、処理予定時間の変更や装置投入順序の変更など）を参照して、上記経過データの一部として過去に蓄積された処理予定時間に関するデータを更新する（ステップ５４）。ここで、条件変更後の未投入基板に対しては新たに投入順が設定され、この投入順に基づいて処理予定時間が更新される。また、搬送に関する制約条件が個々の基板に対して指定されている場合には、この制約条件についても同様に更新される。
【００８４】
次に、ステップ５４で処理予定時間が更新された先頭の基板について、過去において既にスケジューリングが行なわれていた場合に、補正部７５が、経過データ内の過去のスケジューリング結果から、その基板以降のスケジューリング結果を取消し、適当枚数の空基板を挿入する。そして、上記（式１）〜（式３）を満たし、かつ、過去にスケジューリングされた時刻を下回らない最小値として、新たな（補正された）実行時刻を算出する（ステップ５５）。このときスケジューリング済みの最終基板は、ステップ５４において処理予定時間が変更されなかった最終の基板となる。そして、補正部７５は、この補正された実行時刻に基づいて上記タイムテーブル１７と経過データファイル１９を更新する（ステップ５６）。なお、ステップ５５においては、搬送機が搬送元の処理機器から基板を受け取り終わる時刻又は搬送先の処理機器に基板を引き渡し終わる時刻を対象として、過去のスケジューリング結果との比較を行うこととしてもよい。
【００８５】
その後、有効化部７６が、上記無効化部７２により無効化又は停止されたスケジューリング部４０における処理を再び有効化又は再始動する（ステップ５７）。この有効化又は再始動後、スケジューリング部４０においては、上記更新された経過データファイル１９の内容に基づいて処理が行われる。この結果、上記ステップ５４で処理予定時間が変更された先頭の基板以降の基板についても、変更後の処理予定時間に基づいて動作の実行時刻を算出し直すことができる。このように、処理の取消、処理予定時間の変更、装置投入順序の変更などの未投入基板に関する条件の変更があった場合においても、この変更に柔軟に対応して基板処理装置を運転することが可能となる。
なお、本実施形態におけるスケジュール補正部７０と上述した第３の実施形態のスケジュール補正部５０とを同時に機能するように構成することとしてもよい。
【００８６】
上述したように、上記各実施形態におけるスケジュール演算部では、対象とする基板の最終枚が全処理を終えて半導体製造装置から回収される時刻を最も早くするような搬送機の各動作の実行時刻が導出される。本発明では、特定の基板に対してある処理機器における処理を省略するように指定した場合においても、この基板が指定された処理機器を飛び越して搬送されるように、搬送機の各動作の実行時刻を算出することが可能である。このような処理の省略は、例えば、ある処理機器における特定の基板に対する処理予定時間を０とすることにより指定することができる。
【００８７】
このように処理機器を飛び越して基板を搬送する場合には、飛び越す処理機器の直前であって、かつ、対象とする基板の直前に、適当枚数の空基板が挿入される。そして、この挿入された空基板を前提にして、上述した線形計画法に基づく計算によって実行時刻が算出される。このように適当枚数の空基板を挿入することによって、処理機器を飛び越して基板を搬送することが可能となる。以下、このような空基板の挿入について説明する。
【００８８】
まず、図１２に示すように、基板処理装置内に処理機器種別Ｓ１〜Ｓ３が設置されている場合を例として考える。処理機器種別Ｓ１〜Ｓ３に対する基板の引き渡しを含む動作ｋ−１，ｋ，ｋ＋１は同一の搬送機によって行われるものとし、基板Ａ，Ｂ，Ｃ，Ｄがこの順番に基板処理装置内に投入されて搬送、処理されるものとする。
【００８９】
ここで、基板Ｂ及びＣに関して、処理機器種別Ｓ２における処理予定時間が０と指定され、基板Ｂ及びＣが処理機器種別Ｓ２における処理を飛び越して搬送される場合を考える。なお、図１３及び後述する図１５は、図１２の処理機器種別間における基板の流れの例を示しており、下方に向かって時間軸がとられている。
【００９０】
１）定常運転時のこの搬送機の動作順序がｋ＋１，ｋ，ｋ−１であり、動作番号と基板番号の組で表すと［ｋ＋１，２］，［ｋ，４］，［ｋ−１，５］，［ｋ＋１，３］，［ｋ，５］，［ｋ−１，６］という順序で搬送機が動作する場合（図１３）
この場合には、図１４Ａに示すように、基板Ｂの直前に、処理機器種別Ｓ２の機器数２に相当する枚数、即ち２枚の空基板２と３を挿入する。そして、空基板２に対する動作［ｋ＋１，２］における搬送元の処理機器種別がＳ２からＳ１に置き換えられると共に、処理機器種別Ｓ１からの基板Ｂ（４）の受け取りを含む動作、即ち、飛び越しがないとした場合における動作［ｋ，４］に先行して、上記動作［ｋ＋１，２］が行われる。これにより、図１３において点線で示すように、基板Ｂが処理機器種別Ｓ１から処理機器種別Ｓ３に搬送される。このようにすれば、この動作［ｋ＋１，２］は、基板Ｃ（５）の処理機器種別Ｓ１への引き渡しを含む動作［ｋ−１，５］を阻害しない。動作［ｋ，４］は、空基板に対する動作、即ち、動作時間０の実体のない動作として扱われる。
【００９１】
また同様に、空基板３に対する動作［ｋ＋１，３］における搬送元の処理機器種別がＳ２からＳ１に置き換えられると共に、基板Ｄ（６）の処理機器種別Ｓ１への引き渡しを含む動作［ｋ−１，６］を阻害しないように、この動作［ｋ＋１，３］が処理機器種別Ｓ１からの基板Ｃ（５）の受け取りを含む動作［ｋ，５］に先行して行われる。これにより、図１３において点線で示すように、基板Ｃが処理機器種別Ｓ１から処理機器種別Ｓ３に搬送される。動作［ｋ，５］も実体のない動作として扱われる。
なお、このような動作を行うことにより、基板Ｂ，Ｃの前にあった空基板は、動作［ｋ＋１，３］の後には、図１４Ｂに示すように基板Ｂ，Ｃの後方に移動することととなる。
【００９２】
２）定常運転時のこの搬送機の動作順序がｋ，ｋ＋１，ｋ−１であり、動作番号と基板番号の組で表すと［ｋ，３］，［ｋ＋１，２］，［ｋ−１，４］，［ｋ，４］，［ｋ＋１，３］，［ｋ−１，５］という順序で搬送機が動作する場合（図１５）
【００９３】
この場合には、図１６Ａに示すように、基板Ｂの直前に、処理機器種別Ｓ２の機器数２から１を減じた枚数、即ち１枚の空基板２を挿入する。そして、基板Ｂ（３）の処理機器種別Ｓ１からの受け取りを含む動作［ｋ，３］を空基板に対する動作として扱い、次の動作、即ち、空基板２に対する動作［ｋ＋１，２］において搬送元の処理機器種別をＳ２からＳ１に置き換えることによって、図１５において点線で示すように、処理機器種別Ｓ１から処理機器種別Ｓ３に基板Ｂが搬送される。
【００９４】
同様に、基板Ｃ（４）の処理機器種別Ｓ１からの受け取りを含む動作［ｋ，４］を空基板に対する動作として扱い、空基板３に対する動作［ｋ＋１，３］の搬送元の処理機器種別をＳ２からＳ１に置き換えることによって、図１５において点線で示すように、処理機器種別Ｓ１から処理機器種別Ｓ３に基板Ｃが搬送される。
【００９５】
このように、基板Ｃの処理機器種別Ｓ１への引き渡しを含む動作［ｋ−１，４］の前に基板Ｂの処理機器種別Ｓ１からの受け取りは完了しており、また、基板Ｄの処理機器種別Ｓ１への引き渡しを含む動作［ｋ−１，５］の前に基板Ｃの処理機器種別Ｓ１から受け取りも完了しているので、搬送機はこれらの基板Ｃ，Ｄを問題なく処理機器種別Ｓ１に引き渡すことができる。なお、動作［ｋ＋１，３］の後には、図１６Ｂに示すように、基板Ｂ，Ｃの前にあった空基板が基板Ｂ，Ｃの後方に移動することとなる。
【００９６】
なお、上記説明においては、飛び越される処理機器種別が１種類で、動作ｋ−１が動作ｋ及び動作ｋ＋１と同一の搬送機によって行われる場合について説明したが、ある基板が複数の処理機器種別を飛び越して搬送される場合には、飛び越される処理機器種別全体を考慮して空基板を挿入することにより、これらの処理機器種別を飛び越して基板を搬送することが可能となる。
【００９７】
また、動作ｋ−１が別の搬送機の動作であっても、この動作ｋ−１の代わりに、中継型の処理機器種別を介して該別の搬送機と基板の受け渡しを行う搬送機の動作を考え、該別の搬送機の動作順序に影響を与えることがないように、挿入される空基板の数を決定することによって、飛び越しが可能となる。
【００９８】
次に、図１７に示すように、基板処理装置内に処理機器種別Ｓ１〜Ｓ４が設置されている場合を例として説明する。処理機器種別Ｓ１〜Ｓ４に対する基板の引き渡しを含む動作ｋ−１，ｋ，ｋ＋１，ｋ＋２は同一の搬送機によって行われるものとし、基板Ａ，Ｂ，Ｃ，Ｄ，Ｅ，Ｆがこの順番に基板処理装置内に投入されて搬送、処理されるものとする。また、定常運転時のこの搬送機の動作順序がｋ＋２，ｋ＋１，ｋ，ｋ−１であり、図１８に示すような順序で搬送機が動作するものとする。なお、図１８においても、下方に向かって時間軸がとられている。
【００９９】
ここで、基板Ｃ及びＤが処理機器種別Ｓ３における処理を飛び越して搬送され、基板Ｅ及びＦが処理機器種別Ｓ２における処理を飛び越して搬送される場合を考える。
この場合には、図１９Ａに示すように、基板Ｃの直前に、処理機器種別Ｓ３の機器数２に相当する枚数、即ち２枚の空基板３と４を挿入する。そして、空基板３に対する動作［ｋ＋２，３］における搬送元の処理機器種別がＳ３からＳ２に置き換えられると共に、処理機器種別Ｓ２からの基板Ｃ（５）の受け取りを含む動作［ｋ＋１，５］に先行して、上記動作［ｋ＋２，３］が行われる。これにより、基板Ｃは処理機器Ｓ３を飛び越して搬送される。
【０１００】
また、上記動作［ｋ＋１，５］の搬送元の処理機器種別がＳ２からＳ１に置き換えられると共に、処理機器種別Ｓ１からの基板Ｅ（７）の受け取りを含む動作［ｋ，７］に先行して、上記動作［ｋ＋１，５］が行われる。これにより、基板Ｅは処理機器Ｓ２を飛び越して搬送される。このとき、図１９Ｂに示すように、空基板のうちの１枚が基板Ｄの後方に移動することとなる。
また同様に、動作［ｋ＋２，４］の搬送元の処理機器種別がＳ３からＳ２に置き換えられると共に、処理機器種別Ｓ２からの基板Ｄの受け取りを含む動作［ｋ＋１，６］に先行して、上記動作［ｋ＋２，４］が行われる。これにより、基板Ｄは処理機器Ｓ３を飛び越して搬送される。
【０１０１】
更に、上記動作［ｋ＋１，６］の搬送元の処理機器種別がＳ２からＳ１に置き換えられると共に、処理機器種別Ｓ１からの基板Ｆ（８）の受け取りを含む動作［ｋ，８］に先行して、上記動作［ｋ＋１，６］が行われる。これにより、基板Ｆは処理機器Ｓ２を飛び越して搬送される。このとき、図１９Ｃに示すように、２枚の空基板が基板Ｆの後方に移動することとなる。
【０１０２】
このように、本発明によれば、基板処理装置の連続運転中において、基板毎に、不要な処理機器種別を飛び越して基板を搬送したり、複数の処理機器種別を目的に応じて使い分けたりすることができるので、多品種少量生産に対応した柔軟な運転が可能となる。例えば、連続運転を一旦停止して異なる処理がなされる基板を扱う場合に比べて大幅にスループットを向上することができ、また、目的毎に基板処理装置を別個に用意する場合に比べて大幅にコストを低減することができる。
【０１０３】
なお、上述した処理機器種別の飛び越しを考慮して、上述したスケジュール演算部（図３の符号２１、図５の符号３３）を構成した場合には、上述した補正部（図８の符号５５、図１０の符号７５）においても同様に飛び越しが考慮される。
【０１０４】
次に、本発明に係る基板搬送制御装置を基板処理装置に組み込んだ例を図面を参照して説明する。図２０は、本実施形態に係る基板処理装置（半導体製造装置）の全体構成を示すブロック図である。この基板処理装置は、図１に示す搬送機１ａ〜１ｃ、カセット２ａ，２ｂ、及び、処理機器３ａ〜９ｄを装置本体として備えている。また、基板処理装置は、コンピュータなどから構成される装置制御部１００と、独立のコンピュータなどから構成されるスケジューラ１０２と、装置の状態などを表示する表示装置１０４と、装置の運転条件や制御条件を入力する上述した入力装置１２とを備えている。
【０１０５】
装置制御部１００やスケジューラ１０２の内部の記憶装置には、上述した基板制御のためのコンピュータプログラム及び装置制御のためのコンピュータプログラムが格納されている。なお、これら装置制御部１００及びスケジューラ１０２を複数のコンピュータを協動させることによって構成することとしてもよいし、あるいは、これらを１つのコンピュータで構成することとしてもよい。
【０１０６】
装置制御部１００には、装置本体内の搬送機１ａ〜１ｃ、カセット２ａ，２ｂ、及び各処理機器３ａ〜９ｄと接続されるコントローラ１１０〜１１２と、これらのコントローラ１１０〜１１２に接続されるメインコントローラ１２０とから主に構成されている。コントローラ１１０〜１１２は、メインコントローラ１２０から指令を受け、該指令を各機器１ａ〜９ｄに送信する。また、コントローラ１１０〜１１２は、各機器１ａ〜９ｄを監視し、各機器１ａ〜９ｄの状態をメインコントローラ１２０に送信する。メインコントローラ１２０には、処理機器３ａ〜９ｄに対し処理の開始指令や処理条件等を送信する機能の他、上述した搬送機の制御を行う動作指令部（図３の符号２４、図５の符号３６、図８及び図１０の符号６０）、実績時刻取得部（図８の符号５１）、再スケジューリング判断部（図８の符号５２）、条件変更検知部（図１０の符号７１）が含まれている。また、メインコントローラ１２０には、表示装置１０４及び入力装置１２が接続されている。
【０１０７】
スケジューラ１０２は、上述した搬送機の制御を行うスケジュール演算部（図３の符号２１、図５の符号３３）、解判断部（図３の符号２２、図５の符号３４）、再試行部（図３の符号２５、図５の符号３７）、タイムテーブル作成部（図３の符号２３、図５の符号３５）、スケジュール判断部（図５の符号３１）、演算条件決定部（図５の符号３２）、無効化部（図８の符号５３、図１０の符号７２）、経過データ取得部（図８の符号５４、図１０の符号７３）、補正部（図８の符号５５、図１０の符号７５）、有効化部（図８の符号５６、図１０の符号７６）、処理予定時間更新部（図１０の符号７４）を含んでいる。
なお、このようなメインコントローラ１２０及びスケジューラ１０２の構成は一例であり、これと異なる構成でメインコントローラ１２０やスケジューラ１０２を構成してもよいことはもちろんである。
【０１０８】
次に、基板搬送制御装置が組み込まれたこの基板処理装置の動作について説明する。
装置本体の電源は、装置制御部１００、表示装置１０４、入力装置１２、スケジューラ１０２の電源と連動しており、装置本体に電源が投入されると、これら装置制御部１００、表示装置１０４、入力装置１２、スケジューラ１０２にも自動的に電源が投入され、装置制御部１００、表示装置１０４、入力装置１２、スケジューラ１０２が起動する。このとき、スケジューラ１０２は、メインコントローラ１２０からの信号に対する待機状態となる。
【０１０９】
次に、装置本体を運転する前に、入力装置１２によって、装置本体の各処理機器３ａ〜９ｄの使用の可否、各搬送機１ａ〜１ｃによって各処理機器３ａ〜９ｄの種別間を基板が搬送される順序を示す搬送経路、定常運転時の各搬送機１ａ〜１ｃの基本動作の順序などが入力される。ここで、メインコントローラ１２０から各搬送機１ａ〜１ｃに動作指令を送信して装置本体内の搬送機１ａ〜１ｃを動作させ、各搬送機１ａ〜１ｃの動作の所要時間を取得することとしてもよい。この取得された所要時間やその他の設定値を装置制御部１００内の磁気ディスクや不揮発性メモリ等に保存すれば、一旦電源を遮断した後であっても前に取得した所要時間やその他の設定値に基づいて装置を運転することが可能となる。
【０１１０】
入力装置１２から装置運転開始指令が入力されると、メインコントローラ１２０が搬送機１ａ〜１ｃの原点復帰、処理機器３ａ〜９ｄの初期化などの開始処理を各機器に対して指示すると共に、スケジューラ１０２に対して運転開始指令と上述の搬送経路、基本動作の順序、動作予定時間などのデータを送信する。スケジューラ１０２は、これらのデータを読み込んで、内部メモリの設定等の初期化処理を行う。
そして、装置本体に未処理の基板が装填されたカセット２ａ，２ｂが装着された時点で、入力装置１２によりこれら未処理の基板に対する処理予定時間や搬送に関する制約条件などが入力され、これらのデータがメインコントローラ１２０を介してスケジューラ１０２に送信される。
【０１１１】
スケジューラ１０２は、この処理予定時間と制約条件に関するデータを読み込み、上述した基板の搬送制御により１枚目の基板に関して各動作の実行時刻を計算してタイムテーブルを作成し、このタイムテーブルをメインコントローラ１２０に送信する。メインコントローラ１２０は、このタイムテーブルに基づいて、搬送機の動作、及びこれに対応した各処理機器での処理を開始させ、各動作の実行時刻の計測を開始する。なお、メインコントローラ１２０は、搬送機１ａ〜１ｃに動作を指令する際に、タイムテーブルに指定された時刻の経過だけでなく、その搬送機が非動作中であること、搬送元の処理機器における基板の処理が完了していること、及び搬送先の処理機器に先行する基板が存在せずリセットも完了していることを確認する。これにより、搬送機１ａ〜１ｃの動作時間や、処理機器３ａ〜９ｄでの処理時間、リセット時間に関して予定からのずれがあっても問題が発生しないようにしている。
【０１１２】
また、この動作の指令と同時に、メインコントローラ１２０は各動作の実行時刻をスケジューラ１０２に送信し、また、各基板の位置や処理の進行状況などを出力装置１０４に送信する。これら装置本体の状況の送信は、適当に定められた間隔で以後継続して行われる。
【０１１３】
次に、スケジューラ１０２は、最初に処理予定時間を取得した２枚目以降の基板に関して、上述したように適当枚数の追加基板を設定し、線形計画法で逐次スケジューリングを行い、更新されたタイムテーブルをメインコントローラ１２０に送信する。このタイムテーブルの送信に際しては、スケジューラ１０２から送信前にメインコントローラ１２０の時刻を停止する旨の指令を出して新たな動作の開始を禁止し、タイムテーブル中の未実施の動作に対応する部分のみ送信して、この送信後にメインコントローラ１２０の時刻を再起動することにしてもよい。また、メインコントローラ１２０内の記憶装置の記憶容量を考慮して、タイムテーブルをスケジューラ１０２内の記憶装置に記憶、蓄積し、未実施の動作を先頭にして一定量のスケジュールを、スケジューリング演算のタイミングに関係なく定期的に順次メインコントローラ１２０に送信することとしてもよい。
【０１１４】
新たな未処理の基板のカセットが装置本体に装着された場合には、上述と同様にして各基板の処理予定時間や搬送に関する制約条件などが入力され、入力されたデータは、メインコントローラ１２０からスケジューラ１０２に送信される。スケジューラ１０２は、これらのデータを読み込んで経過データファイル内に蓄積し、上述した線形計画法による逐次スケジューリングを続行する。
なお、処理予定時間が入力された未投入の基板のすべてについて、動作予定時刻が算出された場合には、スケジューラ１０２は次の未投入基板の処理予定時間が入力されるまで待機する。
【０１１５】
また、メインコントローラ１２０は、装置本体の運転中において、各動作の実行時刻を計測し、この計測された時刻とタイムテーブル上に指定された時刻との差を監視する。上述のように各搬送機１ａ〜１ｃの動作時間や各処理機器３ａ〜９ｄでの処理時間、リセット時間に遅れがあると、結果としてある動作の実行時刻が遅れてしまうことがある。このような場合、メインコントローラ１２０は上述した再スケジューリング判断部によって時刻の補正指令をスケジューラ１０２に送信し、これを受けてスケジューラ１０２は未実施の動作の実行時刻を補正してタイムテーブルを更新し、これをメインコントローラ１２０に送信する。このとき、メインコントローラ１２０は上記補正指令の送信前に時刻を停止し、タイムテーブルを受信した後に再起動して、補正されたタイムテーブルと実際の動作の間に矛盾が生じないようにする。
【０１１６】
一方、装着された未処理の基板が装填されたカセットが装置本体から外された場合、あるいは、入力装置１２によって、未投入の基板の投入予定が取り消されたり、処理予定時間が変更されたり、装置への投入順序が変更されたりした場合、これらの情報が未投入基板の補正指令と共に、メインコントローラ１２０からスケジューラ１０２に転送される。スケジューラ１０２では、タイムテーブルの一部を更新し、更新したタイムテーブルをメインコントローラ１２０に送信する。なお、上述の時刻の補正指令の場合と同様に、未投入基板の補正指令をスケジューラ１０２に送信する前に、メインコントローラ１２０の時刻を停止し、タイムテーブルを受信した後に再起動する。
【０１１７】
装置本体に装着されたカセットに装填された基板がすべて処理を終えてカセットに回収されたときには、メインコントローラ１２０がスケジューラ１０２からの送信有無のチェックを停止し、メモリを解放するなどの終了処理を行って、上述した起動後の状態に戻る。また、スケジューラ１０２や入力装置１２も同様に起動後の状態に戻る。この場合において、入力装置１２から、搬送経路、基本動作の順序、動作予定時間等を設定し直して、次回の運転を行うこともできる。あるいは、そのままの設定で、再度運転開始指令を入力し、未処理基板のカセットを装着して処理を再開することもできる。
【０１１８】
ここで、図２１及び図２２に、上述の第２の実施形態における基板搬送制御装置を用いて、搬送機の実行時刻をスケジューリングした結果の一例を示す。図２１及び図２２において、数字は基板番号を表しており、搬送機１ａ〜１ｃに対応する×で挟まれた実線は各搬送機が動作中であることを表し、また、処理機器３ａ〜９ｄに対応する＊で挟まれた実線は各処理機器において処理が行われていることを表している。
【０１１９】
図２１は、基板搬送制御装置の運転開始直後のスケジューリング結果を示すが、この時点での搬送機１ａ〜１ｃの余裕は大きいことがわかる。
図２２は、基板搬送制御装置の運転開始から一定時間経過した定常状態を示す。図２２において、各搬送機の休止時間は少なく、ほとんど常に動作中の状態にあるが、それでも、基板処理後の搬送機待ち時間を０とする制約条件を与えためっき槽９ａ〜９ｄにおいては、図２２において●で示すように、処理終了前に搬送機がめっき槽に移動を開始して処理後の基板を直ちに受け取り、粗洗浄機７に搬送していることがわかる。
【０１２０】
上述したように本発明は、対象とする基板の最終枚が全処理を終えて上記基板処理装置から回収される時刻を最も早くするような搬送機の各動作の実行時刻をスケジューリングすることができるので、基板処理装置のスループットを最大にすることができる。
また、煩わしい事前の検討や処理予定時間の制約を伴うことなく、搬送機の動作時刻に関連して設定された制約条件を満たしつつ、対象とする基板の最終枚が全処理を終えて上記基板処理装置から回収される時刻を最も早くすることができ、プロセス処理上の要求を満たすことができると共に、基板処理装置のスループットを最大にすることができる。
【０１２１】
更に、連続運転中の各基板の処理予定時間が逐次分割して得られるような場合においても、プロセス処理上の制約を満たしつつスループットを近似的に最大とすることができる。
また、各回のスケジューリングの試行において、計算可能な枚数を考慮してスケジューリングの対象となる追加基板数を推定し得るので、比較的処理能力の低いコンピュータでもスケジューリングを行うことができる。
更に、搬送機の動作又は処理機器における基板処理に予定からの遅れが生じたとしても、プロセス処理上の制約やスループットに対する影響を小さく抑え、かつ、将来にその影響を引きずらずに基板処理装置を運転することが可能となる。
【０１２２】
また、処理の取消、処理予定時間の変更、装置投入順序の変更などの未投入基板に関する条件の変更があった場合においても、この変更に柔軟に対応して基板処理装置を運転することが可能となる。
更に、基板処理装置の連続運転中に、不要な処理機器種別を飛び越して基板を搬送することができるため、複数の処理機器種別を目的に応じて使い分けることができる。従って、大幅にスループットを向上することができると共に多品種少量生産に対応した柔軟な運転が可能となる。
【産業上の利用可能性】
【０１２３】
本発明は、搬送機により半導体製造装置などの基板処理装置内の複数の基板を複数の処理機器に順次搬送して処理を行う基板搬送制御装置及びかかる基板搬送制御装置によって基板の搬送が制御される基板処理装置に好適に用いられる。
【図面の簡単な説明】
【０１２４】
【図１】図１は、本発明に係る一実施形態における半導体製造装置の構成を示す模式図である。
【図２】図２は、本発明の第１の実施形態におけるハードウェア構成の一実施例を示す図である。
【図３】図３は、本発明の第１の実施形態における基板搬送制御の構成を示すブロック図である。
【図４】図４は、本発明の第１の実施形態における基板搬送制御の手順を示すフローチャートである。
【図５】図５は、本発明の第２の実施形態における基板搬送制御の構成を示すブロック図である。
【図６】図６は、本発明の第２の実施形態における基板搬送制御の手順を示すフローチャートである。
【図７】図７は、本発明の第２の実施形態におけるスケジューリングの対象とする時間領域のイメージを示す図である。
【図８】図８は、本発明の第３の実施形態における基板搬送制御の構成を示すブロック図である。
【図９】図９は、本発明の第３の実施形態におけるスケジュール補正部において行われる処理の手順を示すフローチャートである。
【図１０】図１０は、本発明の第４の実施形態における基板搬送制御の構成を示すブロック図である。
【図１１】図１１は、本発明の第４の実施形態におけるスケジュール補正部において行われる処理の手順を示すフローチャートである。
【図１２】図１２は、基板処理装置の構成の一例を示す図である。
【図１３】図１３は、図１２の処理機器種別間における基板の流れの一例を示す図である。
【図１４Ａ】図１４Ａは、図１３においてスケジューリングの対象となる基板の順序を示す図である。
【図１４Ｂ】図１４Ｂは、図１３においてスケジューリングの対象となる基板の順序を示す図である。
【図１５】図１５は、図１２の処理機器種別間における基板の流れの一例を示す図である。
【図１６Ａ】図１６Ａは、図１５においてスケジューリングの対象となる基板の順序を示す図である。
【図１６Ｂ】図１６Ｂは、図１５においてスケジューリングの対象となる基板の順序を示す図である。
【図１７】図１７は、基板処理装置の構成の一例を示す図である。
【図１８】図１８は、図１７の処理機器種別間における基板の流れの一例を示す図である。
【図１９Ａ】図１９Ａは、図１８においてスケジューリングの対象となる基板の順序を示す図である。
【図１９Ｂ】図１９Ｂは、図１８においてスケジューリングの対象となる基板の順序を示す図である。
【図１９Ｃ】図１９Ｃは、図１８においてスケジューリングの対象となる基板の順序を示す図である。
【図２０】図２０は、本発明に係る基板搬送装置が組み込まれた基板処理装置の全体構成を示すブロック図である。
【図２１】図２１は、本発明の第２の実施形態の基板搬送制御装置を用いて搬送機の実行時刻をスケジューリングした場合における運転開始直後のスケジューリング結果を示す図である。
【図２２】図２２は、本発明の第２の実施形態の基板搬送制御装置を用いて搬送機の実行時刻をスケジューリングした場合における運転開始から一定時間経過した後のスケジューリング結果を示す図である。
【図１】
0003995478.tif 000002
【図２】
0003995478.tif 000003
【図３】
0003995478.tif 000004
【図４】
0003995478.tif 000005
【図５】
0003995478.tif 000006
【図６】
0003995478.tif 000007
【図７】
0003995478.tif 000008
【図８】
0003995478.tif 000009
【図９】
0003995478.tif 000010
【図１０】
0003995478.tif 000011
【図１１】
0003995478.tif 000012
【図１２】
0003995478.tif 000013
【図１３】
0003995478.tif 000014
【図１４Ａ】
0003995478.tif 000015
【図１４Ｂ】
0003995478.tif 000016
【図１５】
0003995478.tif 000017
【図１６Ａ】
0003995478.tif 000018
【図１６Ｂ】
0003995478.tif 000019
【図１７】
0003995478.tif 000020
【図１８】
0003995478.tif 000021
【図１９Ａ】
0003995478.tif 000022
【図１９Ｂ】
0003995478.tif 000023
【図１９Ｃ】
0003995478.tif 000024
【図２０】
0003995478.tif 000025
【図２１】
0003995478.tif 000026
【図２２】
0003995478.tif 000027