(57)【特許請求の範囲】
【請求項１】
基板処理装置であって、
基板処理装置を構成する複数の構成装置の動作を制御する複数のスレーブコントローラと、
前記複数のスレーブコントローラの動作を制御するマスタコントローラと、
前記複数のスレーブコントローラと前記マスタコントローラとを相互に接続するネットワーク回線と、を備え、
前記マスタコントローラは、
ユーザが前記複数のスレーブコントローラのうち所望のスレーブコントローラを選択したときに、前記選択されたスレーブコントローラに対して制御プログラムの送信開始を通知し、
前記複数のスレーブコントローラそれぞれは、
前記マスタコントローラからの前記送信開始の通知を、前記基板処理装置の稼働中に常時監視し、前記マスタコントローラから前記送信開始の通知があった場合に、その旨を所定のメモリ領域に記録するとともに、再起動し、
前記基板処理装置の起動されたとき、または、前記スレーブコントローラが再起動されたときに、前記所定のメモリ領域の記録を調べ、前記記録があったときは、前記ネットワーク回線を介して前記マスタコントローラに制御プログラムの送信を要求し、前記記録がなかったときには、前記スレーブコントローラ内に有する書き込み可能なメインメモリに保持されている制御プログラムの保持状態を調べて、前記ネットワーク回線を介して前記制御プログラムの保持状態を前記マスタコントローラに通知し、
前記マスタコントローラは、さらに、
前記ネットワーク回線を介して、前記制御プログラムの送信の要求がされたとき、または、前記制御プログラムの保持状態の異常が通知されたときに、前記制御プログラムの送信を要求したスレーブコントローラ、または、前記制御プログラムの保持状態の異常を通知したスレーブコントローラに対して、対応する制御プログラムを送信して、前記スレーブコントローラの前記メインメモリに記憶されている前記制御プログラムを更新させることを特徴とする基板処理装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、半導体ウェハや液晶表示基板などの基板を処理する基板処理装置に係り、特に処理を制御するプログラムを更新する技術に関する。
【０００２】
【従来の技術】
基板処理装置は、半導体ウェハに塗布処理を行う処理ユニットや、現像処理を行う処理ユニット、熱処理を行う処理ユニット等複数の処理ユニットを備えていることが一般的である。従来の基板処理装置では、各処理ユニットを制御するプログラムやデータは、コントローラに備えられているＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）に格納されていた。そして、各処理ユニットの動作は、各処理ユニットに対応するコントローラが上記プログラムを実行することによって制御している。
【０００３】
【発明が解決しようとする課題】
上記基板処理装置において、各コントローラの制御プログラムやデータを、処理性能の向上や処理の手順あるいは処理の条件等の変更に対応して変更しなければならない場合が発生する。上記のように、変更対象であるプログラムはコントローラ内に備えるＲＯＭに格納されているため、新しいプログラムに変更するためには、新しいプログラムが格納されたＲＯＭと交換する必要がある。しかし、このような交換作業を実行するためには、装置の稼働を停止し、変更対象であるコントローラを装置から取り外したうえで、ＲＯＭの交換作業を行う必要があり、大変面倒で作業に時間がかかっていた。また、制御プログラムに異常が発生した場合には、直ちに正常なプログラムに変更して装置の稼働を再開できることが望ましいが、上記基板処理装置においては、上記と同様の理由から困難であった。
【０００４】
この発明は、従来技術における上述の課題を解決するためになされたものであり、基板処理装置において処理を制御する制御プログラムの更新を容易に実施可能な技術を提供することを目的とする。
【０００５】
【課題を解決するための手段およびその作用・効果】
上記課題の少なくとも一部を解決するため、本発明は、
基板処理装置であって、
基板処理装置を構成する複数の構成装置の動作を制御する複数のスレーブコントローラと、
前記複数のスレーブコントローラの動作を制御するマスタコントローラと、
前記複数のスレーブコントローラと前記マスタコントローラとを相互に接続するネットワーク回線と、を備え、
前記マスタコントローラは、
ユーザが前記複数のスレーブコントローラのうち所望のスレーブコントローラを選択したときに、前記選択されたスレーブコントローラに対して制御プログラムの送信開始を通知し、
前記複数のスレーブコントローラそれぞれは、
前記マスタコントローラからの前記送信開始の通知を、前記基板処理装置の稼働中に常時監視し、前記マスタコントローラから前記送信開始の通知があった場合に、その旨を所定のメモリ領域に記録するとともに、再起動し、
前記基板処理装置の起動されたとき、または、前記スレーブコントローラが再起動されたときに、前記所定のメモリ領域の記録を調べ、前記記録があったときは、前記ネットワーク回線を介して前記マスタコントローラに制御プログラムの送信を要求し、前記記録がなかったときには、前記スレーブコントローラ内に有する書き込み可能なメインメモリに保持されている制御プログラムの保持状態を調べて、前記ネットワーク回線を介して前記制御プログラムの保持状態を前記マスタコントローラに通知し、
前記マスタコントローラは、さらに、
前記ネットワーク回線を介して、前記制御プログラムの送信の要求がされたとき、または、前記制御プログラムの保持状態の異常が通知されたときに、前記制御プログラムの送信を要求したスレーブコントローラ、または、前記制御プログラムの保持状態の異常を通知したスレーブコントローラに対して、対応する制御プログラムを送信して、前記スレーブコントローラの前記メインメモリに記憶されている前記制御プログラムを更新させることを特徴とする。
【０００６】
上記発明によれば、マスタコントローラと複数のスレーブコントローラとがネットワークで相互に接続されているので、複数のスレーブコントローラそれぞれで実行される制御プログラムを、マスタコントローラからネットワークを介して送信することができる。送信された制御プログラムは、そのスレーブコントローラのメインメモリに記憶されるので、各スレーブコントローラの制御プログラムを容易に更新することができる。
【０００８】
また、基板処理装置の起動時に、スレーブコントローラそれぞれが、メインメモリに保持されているそれぞれの制御プログラムの保持状態を調べて、マスタコントローラに通知する。制御プログラムの保持状態の通知を受信したマスタコントローラは、保持状態が異常であると通知したスレーブコントローラに対して、マスタコントローラに備える記憶媒体に格納されているすべての正常な制御プログラムのうち対応する制御プログラムを、ネットワーク回線を介して送信する。従って、基板処理装置の起動時ごとに、異常な制御プログラムを正常なプログラムに簡単に更新することができ、装置の誤動作を防止することができる。
【００１０】
さらに、基板処理装置の稼働中の任意のときに、ユーザが所望のスレーブコントローラを選択すると、マスタコントローラから選択したスレーブコントローラに対して、制御プログラムの送信開始を通知する。スレーブコントローラそれぞれは、マスタコントローラからの送信開始の通知を常時監視し、マスタコントローラから送信開始の通知があった場合には、その旨を所定のメモリ領域に記録し、その後再起動する。再起動したスレーブコントローラは、所定のメモリ領域に、送信開始の通知のあったことを示す記録があるか否かを調べ、記録があったときは、マスタコントローラに制御プログラムの送信を要求する。送信を要求されたマスタコントローラは、送信を要求したスレーブコントローラに制御プログラムを送信し、送信を要求したスレーブコントローラが送信された制御プログラムを受信する。従って、上記発明によれば、制御プログラムの更新を、ユーザの希望に応じて簡単に実施することができる。
【００１１】
【発明の他の態様】
この発明は、以下のような他の態様も含んでいる。第１の態様は
基板処理装置を構成する複数の構成装置の動作を制御する複数のスレーブコントローラと、前記複数のスレーブコントローラの動作を制御するマスタコントローラと、前記複数のスレーブコントローラと前記マスタコントローラとを相互に接続する回線と、を備える基板処理装置の制御方法であって、
前記複数のスレーブコントローラそれぞれが、前記基板処理装置の起動時に、該スレーブコントローラ内に有する書き込み可能なメインメモリに保持されている制御プログラムの保持状態を調べるとともに、前記制御プログラムの保持状態を前記マスタコントローラに通知する工程と、
前記マスタコントローラが、前記回線を介して、前記制御プログラムの保持状態が異常であるスレーブコントローラに対して、前記記憶媒体に格納された対応する制御プログラムを送信して、前記スレーブコントローラの前記メインメモリに記憶されている前記制御プログラムを更新する工程と、
を備えることを特徴とする。
【００１２】
第２の態様は、
基板処理装置を構成する複数の構成装置の動作を制御する複数のスレーブコントローラと、前記複数のスレーブコントローラの動作を制御するマスタコントローラと、前記複数のスレーブコントローラと前記マスタコントローラとを相互に接続する回線と、を備える基板処理装置の制御方法であって、
前記マスタコントローラが、ユーザが希望する任意のときに、前記複数のスレーブコントローラのうち所望のスレーブコントローラを選択するとともに、前記選択されたスレーブコントローラに対して制御プログラムの送信開始を通知する工程と、
前記複数のスレーブコントローラそれぞれが、前記マスタコントローラからの前記送信開始の通知を、前記基板処理装置の稼働中に常時監視し、前記マスタコントローラから前記送信開始の通知があった場合に、その旨を所定のメモリ領域に記録するとともに、再起動する工程と、
前記再起動されたスレーブコントローラが、前記所定のメモリ領域の記録を調べ、前記記録があったときは、前記マスタコントローラに制御プログラムの送信を要求する工程と、
前記送信を要求されたマスタコントローラが、前記送信を要求したスレーブコントローラに制御プログラムを送信し、前記送信を要求したスレーブコントローラが前記送信された制御プログラムを受信する行程と、
を備えることを特徴とする。
【００１３】
第３の態様は、コンピュータシステムのマイクロプロセッサによって実行されることによって、上記の発明を実現するソフトウエアプログラムを格納した携帯型記憶媒体である。
【００１４】
【発明の実施の形態】
次に、本発明の実施の形態を実施例に基づき説明する。
【００１５】
Ａ．装置構成および動作概要：
図１は、この発明の実施例を適用する基板処理装置２０を示す斜視図である。この基板処理装置２０は、半導体ウェハＷに一連の処理（この実施例では塗布処理，現像処理，熱処理）を行うための複数の処理ユニットを備えている。前面に配列された第１の処理ユニット群Ａは、塗布処理を行うスピンコータ３１と、現像処理を行うスピンデベロッパ３２とで構成されている。
【００１６】
また、第１の処理ユニット群Ａに対向する後方側の位置には、第２の処理ユニット群Ｂが設けられている。第２の処理ユニット群Ｂは、スピンコータ３１やスピンデベロッパ３２で処理を行う前後に基板の熱処理（加熱・冷却）を行う熱処理機器３３，３４，３５を備えている。なお、各熱処理機器３３，３４，３５は、それぞれ上段に加熱用熱処理機器（ホットプレート）３３ａ，３４ａ，３５ａを、下段に冷却用熱処理機器（クールプレート）３３ｂ，３４ｂ，３５ｂを備えている。
【００１７】
さらに、この装置には、第１の処理ユニット群Ａと第２の処理ユニット群Ｂに挟まれた位置に、第１の処理ユニット群Ａに沿って延びる搬送領域Ｃが設けられている。この搬送領域Ｃには搬送ロボット３６が移動自在に配置されている。この搬送ロボット３６は、半導体ウェハＷをそれぞれ支持するための２本のアームを有する支持部材３７（図中ではひとつのアームのみが見えている）を有する移動体３８を備えている。この支持部材３７を構成する上下２本のアームは、アーム駆動機構（図示省略）によって駆動され、各処理ユニットにおいて半導体ウェハの交換を行う。すなわち、一方のアームは、処理の終了した半導体ウェハを処理ユニットから受け取り、他方のアームは他の処理ユニットから搬送してきた半導体ウェハをその処理ユニットに載置する。なお、図示を省略しているが、搬送ロボット３６の移動体３８には３次元の駆動機構が連結されている。この駆動機構は、移動体３８を各処理ユニットの前に移動させて、半導体ウェハＷの受け渡しを可能としている。
【００１８】
基板処理装置２０の端部には、カセットＣ１ないしＣ４からの半導体ウェハＷの搬出とカセットＣ１ないしＣ４への半導体ウェハＷの搬入とを行うインデクサ４０が設けられている。このインデクサ４０に設けられた移載ロボット４１は、カセットＣ１ないしＣ４から半導体ウェハＷを取り出し、搬送ロボット３６に送り出したり、逆に一連の処理が施された半導体ウェハＷを搬送ロボット３６から受け取り、カセットＣ１ないしＣ４に戻す作業を行う。
【００１９】
インデクサ４０の前面には、このインデクサ４０や前述の第１，第２の処理ユニット群Ａ，Ｂに種々の指示を与えるための操作パネル４２が組み込まれている。この操作パネル４２は、種々の設定や数値入力を行うためのキーボード４２ａ（図３参照）と、このキーボード４２ａからの指示に基づき種々の画面を表示するディスプレイ４２ｂ（図３参照）とを備える。
【００２０】
図２は、図１の基板処理装置２０の各構成機器を制御する制御回路を示したブロック図である。基板処理装置２０は、基板処理装置２０の各構成機器を制御する８つのスレーブコントローラ４１Ａ，３６Ａ等と、各スレーブコントローラを制御することにより基板処理装置２０を全体的に制御するマスタコントローラ５０と、を備えている。スレーブコントローラには、インデクサコントローラ４１Ａ，搬送ロボットコントローラ３６Ａ，スピンコータコントローラ３１Ａ，スピンデベロッパコントローラ３２Ａ，熱処理機器コントローラ３３Ａ，３４Ａ，３５Ａが含まれている。各コントローラは、ＬＡＮ回線によって互いに接続されてネットワークを構成している。マスタコントローラ５０は、各コントローラを制御することにより基板処理装置２０を全体的に制御する制御部である。各スレーブコントローラは、マスタコントローラ５０からの指示に基づいて、それぞれに接続された機器の動作を制御する。すなわち、インデクサコントローラ４１Ａは移載ロボット４１を制御し、搬送ロボットコントローラ３６Ａは搬送ロボット３６を制御する。スピンコータコントローラ３１Ａはスピンコータ３１を制御し、スピンデベロッパコントローラ３２Ａはスピンデベロッパ３２を制御する。熱処理機器コントローラ３３Ａ，３４Ａ，３５Ａは、熱処理機器３３、３４、３５を制御する。
【００２１】
図３は、マスタコントローラ５０の概略構成を示すブロック図である。マスタコントローラ５０は、論理演算を実行するＣＰＵ５１と、メインメモリとしてのＲＯＭ５２およびＲＡＭ５３とを備えている。ＲＯＭ５２は、ＣＰＵを制御する基本的なプログラム（例えば、起動を制御するプログラム）等を記憶する。ＲＡＭ５３は、各スレーブコントローラを制御する種々のプログラムやデータを記憶する。なお、ＲＯＭ５２にはマスタコントローラ５０で実施される本発明の送信手段５２ａが格納されている。また、マスタコントローラ５０は、データの書き込みおよびデータの保持が随時可能で多量のデータを記憶できる第１の外部記憶装置５４（本発明の記憶媒体に相当）を備えている。この第１の外部記憶装置５４は、マスタコントローラ５０で実行されるプログラムおよびデータだけでなく、各スレーブコントローラで実行されるプログラムおよびデータを記憶保持しておくための常設の記憶装置である。第１の外部記憶装置５４としては、ハードディスク装置が例としてあげられる。
【００２２】
なお、本実施例においては、ＲＯＭ５２に、ＣＰＵを制御する基本的なプログラム等を記憶させているが、マスタコントローラ５０で実行されるプログラムを第１の外部記憶装置５４からＲＡＭ５３上に転送して実行させるようにすることもできる。
【００２３】
また、このマスタコントローラ５０には、上記ＣＰＵ等とバス５５を介して接続された外部Ｉ／Ｆ５６により、操作パネル４２、フロッピディスク装置７０ａやＣＤ−ＲＯＭ装置７０ｂ等の第２の外部記憶装置７０、モデム７３、ＬＡＮ回線等が接続されている。この操作パネル４２は、ユーザが、装置稼動時において種々の設定や数値入力を行うためのものである。ユーザが装置稼働中に各プログラムの更新を希望する場合には、この操作パネルからその設定を操作することができる。第２の外部記憶装置７０は、後述するように、マスタコントローラ５０やスレーブコントローラで実行されるプログラムやデータを、第１の外部記憶装置５４や各スレーブコントローラに転送するための携帯型記憶媒体による記憶装置である。なお、第２の外部記憶装置７０から第１の外部記憶装置５４への転送は、実際にプログラムを更新する際だけでなく、あらかじめ行っておくことも可能である。モデム７３は、公衆回線を介してマスタコントローラ５０と外部（例えば、他工場）とを接続させるためのものである。これにより、マスタコントローラ５０やスレーブコントローラで実行されるプログラムやデータを、上記の第２の外部記憶装置７０からではなく外部の他の装置から、第１の外部記憶装置５４や各スレーブコントローラに転送することも可能である。また、上記のようにマスタコントローラ５０と各スレーブコントローラはＬＡＮ回線により接続されており、このＬＡＮ回線を利用して、例えばサーバ６０のようなＬＡＮ回線に接続可能な他の機器とも接続できる。これにより、マスタコントローラ５０やスレーブコントローラで実行されるプログラムやデータを、サーバ６０から、第１の外部記憶装置５４や各スレーブコントローラに転送することも可能である。
【００２４】
図４は、スレーブコントローラの一つであるインデクサコントローラ４１Ａの概略構成を示すブロック図である。インデクサコントローラ４１Ａは、上記マスタコントローラ５０と同様に、ＣＰＵ４１Ａ１  と、メインメモリとしてのＲＯＭ４１Ａ２  およびＲＡＭ４１Ａ３  とを備える。なお、ＲＯＭ４１Ａ２  にはインデクサコントローラ４１Ａで実施される本発明の保持状態通知手段４１Ａ２ａや受信手段４１Ａ２ｂが格納され、ＲＡＭ４１Ａ３  には監視手段４１Ａ３ａが格納されている。また、インデクサコントローラ４１Ａは、ＣＰＵ４１Ａ１  とバス４１Ａ５  を介して接続された外部Ｉ／Ｆ４１Ａ６  により、マスタコントローラ５０とＬＡＮ回線で接続されている。さらに、バス４１Ａ５  を介して接続された制御ポート４１Ａ７  により、移載ロボット４１に接続されている。
【００２５】
インデクサコントローラ４１Ａは、マスタコントローラ５０からＬＡＮ回線を介して指示される内容に基づいて、ＲＡＭ４１Ａ３  に記憶保持されたプログラムを実行することにより移載ロボット４１の動作を制御する。従って、ＲＡＭ４１Ａ３  は、インデクサコントローラ４１Ａで実行されるプログラムやデータを、基板処理装置２０の非動作時（電源遮断時）においても保持しておくことが好ましく、不揮発性メモリやバックアップ機能を有するメモリを使用することが好ましい。
【００２６】
なお、搬送ロボットコントローラ３６Ａ，スピンコータコントローラ３１Ａ，スピンデベロッパコントローラ３２Ａ，熱処理機器コントローラ３３Ａ，３４Ａ，３５Ａについては、その構成が同様であるためその説明を省略する。また、以下では、特記する必要がある場合をのぞいて、各コントローラの名称をスレーブコントローラと呼ぶことにする。
【００２７】
Ｂ．プログラムダウンロードの手順：
次に、各スレーブコントローラで実行される制御プログラムを新しい制御プログラムに変更するために、新しい制御プログラムをダウンロードする手順について以下で説明する。制御プログラムのダウンロードのモードとしては、起動時ダウンロードモードと、稼働時ダウンロードモードとがある。起動時ダウンロードモードとは、基板処理装置の起動時において、各スレーブコントローラに記憶保持されたプログラムをチェックし、「プログラム異常」が検出されたときにプログラムのダウンロードが実行されるモードである。稼働時ダウンロードモードとは、装置稼働中に、ユーザが任意に希望する場合にプログラムのダウンロードを実行するモードである。
【００２８】
Ｂ１．起動時ダウンロードの手順：
図５は、起動時ダウンロードの手順を示すフローチャートである。
【００２９】
マスタコントローラ５０では、基板処理装置の起動時には、ＲＯＭ５２に記憶されている起動プログラムにより、装置の初期設定を行うパワーオン起動シーケンスが実行され、その後、起動時ダウンロードのためのプログラム（起動時ダウンロードルーチン）が実行される。また、同時に、各スレーブコントローラ、例えば、スレーブコントローラ４１Ａにおいても、ＲＯＭ４１Ａ２  に記憶されている起動プログラムにより、パワーオン起動ルーチンが実行される。以下では、スレーブコントローラ４１Ａがスレーブコントローラを代表することとして説明を行う。
【００３０】
スレーブコントローラ４１Ａでは、パワーオン起動ルーチンが実行されると、まず、ステップＳ１０１ｂでダウンロード予約がされているか否かを判断する。装置起動時にはダウンロード予約がされていないので、ステップＳ１０２ｂに処理を移行する。なお、ダウンロード予約とステップＳ１０１ｂの詳細については、後述する。
【００３１】
ステップＳ１０２ｂでは、ＲＡＭ４１Ａ３  に記憶保持されているプログラムやデータに、異常があるか否かをチェックし（プログラムチェック）、その結果をマスタコントローラ５０に通知する。このチェックの方法はいろいろ考えられるが、例えば、一般的なチェックサム比較による方法が考えられる。
【００３２】
マスタコントローラ５０では、起動時ダウンロードルーチンが実行されると、まずステップＳ１０２ａにおいて、スレーブコントローラへプログラムをダウンロードするか否かを判断する。この判断は、各スレーブコントローラから通知される上記のチェック結果に基づいて判断する。また、起動の途中でユーザが所定のキーを押下することによって、割り込み処理を開始し、プログラムの更新を行いたいスレーブコントローラを任意に選択することも可能である。この場合にも、ユーザの選択に応じて、ステップＳ１０２ａにおいて、スレーブコントローラへのダウンロードを行うものと判断される。
【００３３】
マスタコントローラ５０は、すべてのスレーブコントローラからプログラム異常が通知されず、かつ、ユーザによる選択がなされなかった場合には、ダウンロードの必要がないと判断し、処理がステップＳ１０８ａに移行する。いずれかのスレーブコントローラからプログラム異常が通知されていたり、ユーザによる選択がされている場合には、マスタコントローラ５０はダウンロード要求があると判断し、処理がステップＳ１０３ａに移行する。そして、ステップＳ１０３ａでは、ダウンロード要求のあったスレーブコントローラ、例えば、スレーブコントローラ４１Ａにダウンロードを開始する旨の通知を行う。
【００３４】
スレーブコントローラ４１Ａは、ダウンロード開始の通知を受信すると、ステップＳ１０４ｂにおいてダウンロードの準備を行う。そして、ダウンロードの準備が完了すると、マスタコントローラ５０にダウンロードの準備が完了した旨の通知を行う。
【００３５】
マスタコントローラ５０は、準備完了の通知を受信すると、ステップＳ１０５ａにおいて新しいプログラムやデータをスレーブコントローラ４１Ａに送信（ダウンロード）する。一方、スレーブコントローラ４１Ａは、ステップＳ１０５ｂにおいてマスタコントローラ５０から送信されたプログラムやデータを受信して、ＲＡＭ４１Ａ３  に記憶保持する。このとき、スレーブコントローラ４１Ａは、ＲＯＭ４１Ａ２  に格納されている起動プログラムに従って、受信した制御プログラムをＲＡＭ４１Ａ３  に書き込む。従って、ＲＡＭ４１Ａ３  内に記憶されているすべての制御プログラムやデータを更新することが可能である。なお、スレーブコントローラにダウンロードされるプログラムやデータは、図２に示す第１の外部記憶装置５４にあらかじめ記憶されているものだけでなく、第２の外部記憶装置７０やサーバ６０、あるいは、公衆回線で接続された外部から供給されるプログラムやデータとすることも可能である。
【００３６】
マスタコントローラ５０は、ステップＳ１０５ａ，Ｓ１０５ｂにおけるプログラムやデータの送受信が終了すると、ステップＳ１０６ａにおいて、スレーブコントローラ４１Ａに対して更新されたプログラムでの実行（プログラム実行）の通知を行う。このとき、スレーブコントローラ４１Ａは、Ｓ１０６ｂにおいてプログラム実行の通知を受信すると、スレーブコントローラ４１のパワーオン起動ルーチンを終了し、ＲＡＭ４１Ａ３  に新しく記憶保持された制御プログラムによる動作ルーチンへ移行する。
【００３７】
マスタコントローラ５０は、ステップＳ１０６ａの処理を終了すると、ステップＳ１０７ａにおいて、他のスレーブコントローラに対してもプログラムをダウンロードする必要があるか否かを判断する。ステップＳ１０２ａにおけるダウンロード要求が複数である場合には、ダウンロード要求のあったすべてのスレーブコントローラに対して新しいプログラムをダウンロードするまで、ステップＳ１０３ａからステップＳ１０６ａまでの処理を繰り返し実行する。一方、ダウンロード要求のあったすべてのスレーブコントローラに対してダウンロードが終了していれば、処理をステップＳ１０８ａに移行する。
【００３８】
ステップＳ１０８ａでは、ステップＳ１０２ａにおいてダウンロード要求がないと判断されたスレーブコントローラに対して、プログラム実行を通知し、起動時ダウンロードルーチンを終了する。このとき、該当するスレーブコントローラは、ステップＳ１０８ｂにおいてプログラム実行の通知を受信すると、それぞれのパワーオン起動ルーチンを終了し、以前から記憶保持されている制御プログラムによる動作ルーチンへ移行する。
【００３９】
なお、本発明の保持状態通知手段４１Ａ２ａは、上記ステップＳ１０２ｂの処理を実行する手段に相当する。送信手段５２ａはステップＳ１０３ａからステップＳ１０５ｂを実行する手段に相当し、受信手段４１Ａ２ｂはステップＳ１０４ｂからステップＳ１０５ｂを実行する手段に相当する。また、本発明のプログラム転送手段は、上記送信手段５２ａと受信手段４１Ａ２ｂを含む手段に相当する。
【００４０】
上記のように、本発明を適用した基板処理装置では、各スレーブコントローラが装置起動時に行うプログラムチェックにより異常なプログラムが検出された場合には、そのプログラムを正常なプログラムに更新することが可能である。従って、プログラム異常に起因した装置の誤動作を防止可能である。また、装置稼働中に、プログラムに異常が発生して装置が誤動作した場合でも、基板処理装置を再起動（リセット）することによって、直ちに正常なプログラムに更新させて正常に動作させることが可能である。
【００４１】
Ｂ２．稼働時ダウンロードの手順：
図６は、稼働時ダウンロードの手順を示すフローチャートである。
【００４２】
マスタコントローラ５０では、ユーザが希望する場合には、装置の稼働中に任意に割り込みを行って、アプリケーションプログラムをダウンロードするためのルーチン（稼働時ダウンロードルーチン）が実行される。この割り込みは、簡単な割り込み監視によって実現可能である。
【００４３】
稼働時ダウンロードルーチンが実行されると、ユーザは、ステップＳ２０１ａにおいて、プログラムをダウンロードしたいスレーブコントローラの選択を行う。この結果、マスタコントローラ５０のメインメモリ（例えば、ＲＡＭ５３）内の所定の領域にスレーブコントローラの選択情報が登録される。ステップＳ２０２ａでは、ステップＳ２０１ａにおいてスレーブコントローラ選択が行われなければ、なにも処理が行われずに稼働時ダウンロードルーチンが終了する。一方、Ｓ２０１ａにおいてスレーブコントローラ選択が行われると、マスタコントローラ５０は、ステップＳ２０３ａにおいて、選択されたスレーブコントローラに対してダウンロード開始の通知を行う。例えば、まず、スレーブコントローラをスレーブコントローラ４１Ａに対してダウンロード開始を通知した場合を考える。
【００４４】
スレーブコントローラ４１Ａでは、ステップＳ２０３ｂにおいて、ダウンロード開始の通知を常時監視している常時監視ルーチンが実行されている。図７は、常時監視ルーチンを示すフローチャートである。常時監視ルーチンは、スレーブコントローラ４１Ａの常駐プログラムとして実行されている。そして、アプリケーションプログラムの動作中に、マスタコントローラ５０から通知されるダウンロード開始の通知を常時監視している。ステップＳ２０３ｂ１において、ダウンロード開始の通知を受信すると、ステップＳ２０３ｂ２において、スレーブコントローラのメインメモリ内の所定のメモリ領域にダウンロード予約が記憶される。図８は、スレーブコントローラ４１Ａのメモリマップを示す説明図である。上記ダウンロード予約は、ＲＡＭ４１Ａ３  に割り当てられたデータ領域のダウンロード予約記憶領域に記憶される。その後、スレーブコントローラ４１Ａは、再起動して前記したパワーオン起動ルーチンが実行される。
【００４５】
図６に示すように、スレーブコントローラ４１Ａは、パワーオン起動ルーチンが実行されると、まずステップＳ１０４ｂでダウンロード予約がされている否かを判断する。この判断は、上記ダウンロード予約領域にダウンロード予約が記憶されているか否かをチェックすることにより行われる。ダウンロード予約されていない場合には、通常の装置起動時の処理を実行すればよいので、ここでは省略する。ダウンロード予約されている場合には、ステップＳ１０４ｂにおいてダウンロードの準備を行う。そして、ダウンロードの準備が完了すると、マスタコントローラ５０に対して準備完了の通知を行う。
【００４６】
マスタコントローラ５０は、準備完了の通知を受信すると、ステップＳ２０５ａにおいて、新しいプログラムやデータをスレーブコントローラ４１Ａに送信する。スレーブコントローラ４１Ａは、ステップＳ１０５ｂにおいて、マスタコントローラ５０から送信されたプログラムやデータを受信して、ＲＡＭ４１Ａ３  に記憶保持する。このとき、スレーブコントローラ４１Ａは、ＲＯＭ４１Ａ２  に格納されている起動プログラムに従って、受信した制御プログラムをＲＡＭ４１Ａ３  に書き込む。従って、ＲＡＭ４１Ａ３  内に記憶されているすべての制御プログラムやデータを更新することが可能である。なお、スレーブコントローラにダウンロードされるプログラムやデータは、図２に示す第１の外部記憶装置５４にあらかじめ記憶されているものだけでなく、外部記憶装置７０や、サーバ６０、あるいは、公衆回線で接続された外部から供給されるプログラムやデータとすることも可能である。
【００４７】
マスタコントローラ５０は、ステップＳ２０５ａ，Ｓ１０５ｂにおけるマスタコントローラ５０とスレーブコントローラ４１Ａとの間のプログラムやデータの送受信が終了すると、ステップＳ２０６ａにおいて、スレーブコントローラ４１Ａに対して更新されたプログラムでの実行の通知が行われる。スレーブコントローラ４１Ａは、Ｓ１０６ｂにおいてプログラム実行の通知を受信すると、ＲＡＭ４１Ａ３  に新しく記憶保持された制御プログラムによる動作ルーチンへ移行する。
【００４８】
マスタコントローラ５０は、ステップＳ２０６ａの処理を終了すると、マスタステップＳ２０７ａにおいて、他のスレーブコントローラに対してもプログラムをダウンロードする必要があるか否かを判断する。ステップＳ２０１ａにおいて、複数のスレーブコントローラに関してスレーブコントローラ選択情報が登録されている場合には、スレーブコントローラ選択情報に含まれるすべてのスレーブコントローラに対して新しいプログラムをダウンロードするまで、ステップＳ２０３ａからステップＳ２０６ａまでの処理を繰り返し実行する。一方、スレーブコントローラ選択情報に含まれるすべてのスレーブコントローラに対してダウンロードを終了していれば、処理をステップＳ２０８ａに移行する。
【００４９】
ステップＳ２０８ａでは、基板処理装置全体の動作の同期を取り直すために、装置全体の動作の初期化を行う。そして、稼働時ダウンロードルーチンの実行を終了する。
【００５０】
なお、本発明の監視手段４１Ａ３ａは、上記ステップＳ２０３ｂの処理を実行する手段に相当する。送信手段５２ａはステップＳ２０３ａからステップＳ２０５ｂを実行する手段に相当し、受信手段４１Ａ２ｂはステップＳ１０４ｂからステップＳ１０５ｂを実行する手段に相当する。また、本発明のプログラム転送手段は、上記送信手段５２ａと受信手段４１Ａ２ｂを含む手段に相当する。
【００５１】
上記のように、本発明を適用した基板処理装置では、装置の稼働中において、ユーザが任意にアプリケーションプログラムやデータをダウンロードすることができる。  従って、ユーザが、プログラムやデータの更新のタイミングを装置の稼働の状態をみて決定し、即座に新しいプログラムへの変更を実行することができる。また、処理条件等を簡単に変更して実行させることも可能である。
【００５２】
なお、この発明は上記の実施例や実施形態に限られるものではなく、その要旨を逸脱しない範囲において種々の態様において実施することが可能である。例えば、上記実施例では、マスタコントローラとスレーブコントローラとの相互接続をネットワーク回線（ＬＡＮ回線）によって行っているが、これに限定されるものではなく、相互に接続可能なものであればよい。例えば、一般的なバス接続であってもよい。
【図面の簡単な説明】
【図１】この発明の実施例を適用する基板処理装置２０を示す斜視図。
【図２】基板処理装置２０の各構成機器を制御する制御回路を示したブロック図。
【図３】マスタコントローラ５０の概略構成を示すブロック図。
【図４】スレーブコントローラの一つであるインデクサコントローラ４１Ａの概略構成を示すブロック図。
【図５】「起動時ダウンロード」の手順を示すフローチャート。
【図６】「稼働時ダウンロード」の手順を示すフローチャート。
【図７】「常時監視ルーチン」を示すフローチャート。
【図８】スレーブコントローラ４１Ａのメモリマップを示す説明図。
【符号の説明】
２０…基板処理装置
３１…スピンコータ
３１Ａ…スピンコータコントローラ
３２…スピンデベロッパ
３２Ａ…スピンデベロッパコントローラ
３３，３４，３５…熱処理機器
３３Ａ，３４Ａ，３５Ａ…熱処理機器コントローラ
３６…搬送ロボット
３６Ａ…搬送ロボットコントローラ
３７…支持部材
３８…移動体
４０…インデクサ
４１…移載ロボット
４１Ａ１…ＣＰＵ
４１Ａ２…ＲＯＭ
４１Ａ２ａ…保持状態通知手段
４１Ａ２ｂ…受信手段
４１Ａ３…ＲＡＭ
４１Ａ３ａ…監視手段
４１Ａ５…バス
４１Ａ６…外部Ｉ／Ｆ
４１Ａ７…制御ポート
４１Ａ…インデクサコントローラ
４２…操作パネル
４２ａ…キーボード
４２ｂ…ディスプレイ
５０…マスタコントローラ
５１…ＣＰＵ
５２…ＲＯＭ
５２ａ…送信手段
５３…ＲＡＭ
５４…記憶装置
５５…バス
５６…外部Ｉ／Ｆ
６０…サーバ
７０…外部記憶装置
７０ａ…フロッピディスク装置
７０ｂ…ＲＯＭ装置
７３…モデム
Ａ…第１の処理ユニット群
Ｂ…第２の処理ユニット群
Ｃ…搬送領域
Ｃ１，Ｃ２，Ｃ３，Ｃ４…カセット
【図１】
0003592861.tif 000002
【図２】
0003592861.tif 000003
【図３】
0003592861.tif 000004
【図４】
0003592861.tif 000005
【図５】
0003592861.tif 000006
【図６】
0003592861.tif 000007
【図７】
0003592861.tif 000008
【図８】
0003592861.tif 000009