(57)【要約】      （修正有）【課題】データの作成時から、制御装置とネットワークを介して接続されるスレーブ装置が変更された場合であっても、可能な範囲でスレーブ装置に対するリストア処理を行うことができる制御装置およびその動作方法を提供する。【解決手段】制御装置１００は、デバイス構成情報と設定情報とを保持する記憶部と、前記設定情報を含むデータを用いてリストア処理を実行可能な処理部とを含む。前記処理部は、前記リストア処理実行時に、前記デバイス構成情報を読み出し、前記データに含まれる対象のスレーブ装置のうち、読み出したデバイス構成情報の中でネットワーク接続が有効になっているスレーブ装置、または、前記ネットワーク上に存在しているスレーブ装置を特定し、特定された前記スレーブ装置に対応する設定情報をリストアする。【選択図】図１５
2014146077.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークにおいてマスタ装置として機能するとともに、当該ネットワークを介して１または複数のスレーブ装置を制御する制御装置であって、
前記ネットワークのメンバとして登録されているスレーブ装置の各々についてのネットワーク接続の有効／無効の情報を含むデバイス構成情報と、当該登録されているスレーブ装置を制御するために必要なパラメータを含む設定情報と、を保持する記憶部と、
前記設定情報を含むデータを用いてリストア処理を実行可能な処理部とを備え、
前記処理部は、前記リストア処理実行時に、前記デバイス構成情報を読み出し、前記データに含まれる対象のスレーブ装置のうち、読み出したデバイス構成情報の中でネットワーク接続が有効になっているスレーブ装置、または、前記ネットワーク上に存在しているスレーブ装置を特定し、特定された前記スレーブ装置に対応する設定情報をリストアする、制御装置。
【請求項２】
前記リストア処理は、前記制御装置からリストア対象のスレーブ装置に対して、必要なデータを送信する処理を含む、請求項１に記載の制御装置。
【請求項３】
前記処理部は、いずれかのスレーブ装置のネットワーク接続が有効になった場合、または、いずれかのスレーブ装置が前記ネットワーク上に存在するようになった場合に、前記データに含まれる対応する設定情報をリストアする、請求項１に記載の制御装置。
【請求項４】
前記データは、サポート装置から提供される、請求項１に記載の制御装置。
【請求項５】
前記処理部は、前記記憶部および前記スレーブ装置からのデータを用いて前記データを生成するバックアップ処理をさらに実行可能に構成されている、請求項１に記載の制御装置。
【請求項６】
ネットワークにおいてマスタ装置として機能するとともに、当該ネットワークを介して１または複数のスレーブ装置を制御する制御装置の動作方法であって、
前記ネットワークのメンバとして登録されているスレーブ装置の各々についてのネットワーク接続の有効／無効の情報を含むデバイス構成情報と、当該登録されているスレーブ装置を制御するために必要なパラメータを含む設定情報と、を保持するステップと、
前記設定情報を含むデータを用いてリストア処理を実行するステップとを備え、
前記リストア処理を実行するステップは、前記デバイス構成情報を読み出し、前記データに含まれる対象のスレーブ装置のうち、読み出したデバイス構成情報の中でネットワーク接続が有効になっているスレーブ装置、または、前記ネットワーク上に存在しているスレーブ装置を特定し、特定された前記スレーブ装置に対応する設定情報をリストアするステップを含む、動作方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークにおいてマスタ装置として機能するとともに、当該ネットワークを介して１または複数のスレーブ装置を制御する制御装置およびその動作方法に関する。
【背景技術】
【０００２】
多くの生産現場で使用される機械や設備は、典型的には、プログラマブルコントローラ（Programmable Logic Controller；以下「ＰＬＣ」とも称す。）などの制御装置を含む制御システムによって制御される。このような制御システムでは、ＰＬＣは、フィールドバスなどと称されるネットワークを介して、１または複数のスレーブ装置（典型的には、リモートＩＯ(Input/Output)装置やサーボモータドライバなど）と接続される。
【０００３】
このような制御システムにおいては、パラメータなどの各種データをバックアップ／リストアするための機能が搭載されていることも多い。例えば、特開２０１１−２１５８１４号公報（引用文献１）は、通信機器の対象パラメータの設定値をバックアップまたはリストアすることができるプログラマブルコントローラを開示する。このプログラマブルコントローラは、バックアップ手順情報およびリストア手順情報を有し、バックアップ／リストアを行う際に当該手順情報に基づいて、バックアップ／リストアを行う。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１１−２１５８１４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
一般的な制御システムでは、デバイス構成を任意に変更することができる。そのため、バックアップ時とリストア時との間でデバイス構成が異なっている場合がある。上述の特開２０１１−２１５８１４号公報（引用文献１）に開示された構成においては、手順情報が予め用意されているので、バックアップ時とリストア時との間でデバイス構成が異なっているような場合には、リストアを適切に行うことができないという課題があった。
【０００６】
本発明は、上記のような点を考慮してなされたものであり、その目的は、データの作成時から、制御装置とネットワークを介して接続されるスレーブ装置が変更された場合であっても、可能な範囲でスレーブ装置に対するリストア処理を行うことができる制御装置およびその動作方法を提供することである。
【課題を解決するための手段】
【０００７】
本発明のある局面に従えば、ネットワークにおいてマスタ装置として機能するとともに、当該ネットワークを介して１または複数のスレーブ装置を制御する制御装置が提供される。制御装置は、ネットワークのメンバとして登録されているスレーブ装置の各々についてのネットワーク接続の有効／無効の情報を含むデバイス構成情報と、当該登録されているスレーブ装置を制御するために必要なパラメータを含む設定情報と、を保持する記憶部と、設定情報を含むデータを用いてリストア処理を実行可能な処理部とを含む。処理部は、リストア処理実行時に、デバイス構成情報を読み出し、データに含まれる対象のスレーブ装置のうち、読み出したデバイス構成情報の中でネットワーク接続が有効になっているスレーブ装置、または、ネットワーク上に存在しているスレーブ装置を特定し、特定されたスレーブ装置に対応する設定情報をリストアする。
【０００８】
好ましくは、リストア処理は、制御装置からリストア対象のスレーブ装置に対して、必要なデータを送信する処理を含む。
【０００９】
好ましくは、処理部は、いずれかのスレーブ装置のネットワーク接続が有効になった場合、または、いずれかのスレーブ装置がネットワーク上に存在するようになった場合に、データに含まれる対応する設定情報をリストアする。
【００１０】
好ましくは、データは、サポート装置から提供される。
好ましくは、処理部は、記憶部およびスレーブ装置からのデータを用いてデータを生成するバックアップ処理をさらに実行可能に構成されている。
【００１１】
本発明の別の局面に従えば、ネットワークにおいてマスタ装置として機能するとともに、当該ネットワークを介して１または複数のスレーブ装置を制御する制御装置の動作方法が提供される。動作方法は、ネットワークのメンバとして登録されているスレーブ装置の各々についてのネットワーク接続の有効／無効の情報を含むデバイス構成情報と、当該登録されているスレーブ装置を制御するために必要なパラメータを含む設定情報と、を保持するステップと、設定情報を含むデータを用いてリストア処理を実行するステップとを含む。リストア処理を実行するステップは、デバイス構成情報を読み出し、データに含まれる対象のスレーブ装置のうち、読み出したデバイス構成情報の中でネットワーク接続が有効になっているスレーブ装置、または、ネットワーク上に存在しているスレーブ装置を特定し、特定されたスレーブ装置に対応する設定情報をリストアするステップを含む。
【発明の効果】
【００１２】
本発明によれば、データの作成時から、制御装置とネットワークを介して接続されるスレーブ装置が変更された場合であっても、可能な範囲でスレーブ装置に対するリストア処理を行うことができる。
【図面の簡単な説明】
【００１３】
【図１】本実施の形態に係る制御システムを用いて制御するデバイス構成の一例を説明するための図である。
【図２】本実施の形態に係る制御システムの構成例を示す模式図である。
【図３】本実施の形態に係るＰＬＣのＣＰＵユニットのハードウェア構成を示す模式図である。
【図４】本実施の形態に係るＰＬＣのＣＰＵユニットのソフトウェア構成を示す模式図である。
【図５】本実施の形態に係るサーボモータドライバのハードウェア構成を示す模式図である。
【図６】本実施の形態に係るＰＬＣに接続されるサポート装置のハードウェア構成を示す模式図である。
【図７】本実施の形態に係るＰＬＣに接続されるサポート装置のソフトウェア構成を示す模式図である。
【図８】本実施の形態に係る制御システムの構築手順について説明するための模式図である。
【図９】本実施の形態に係るデバイス構成情報のデータ構造の一例を示す模式図である。
【図１０】図８に示すデバイス構成１の一例を示す図である。
【図１１】図８に示すデバイス構成２および３の一例を示す図である。
【図１２】図９に示すデバイス構成情報の変更内容の一例を示す図である。
【図１３】本実施の形態に係るＰＬＣに実装されているバックアップ処理／リストア処理の概要を説明するための模式図である。
【図１４】本実施の形態に関連するバックアップ処理／リストア処理について説明するための模式図である。
【図１５】実施の形態１に係るバックアップ処理／リストア処理について説明するための模式図である。
【図１６】実施の形態１に係るバックアップ処理の手順を示すフローチャートである。
【図１７】実施の形態１に係るリストア処理の手順を示すフローチャートである。
【図１８】実施の形態２に係るリストア処理について説明するための模式図である。
【図１９】実施の形態２に係るリストア処理（その１）の手順を示すフローチャートである。
【図２０】実施の形態２に係るリストア処理（その１）におけるリストア処理の完了の記録に係る情報の一例を示す模式図である。
【図２１】実施の形態２に係る追加的なリストア処理（その１）の手順を示すフローチャートである。
【図２２】実施の形態２に係る追加的なリストア処理（その２）の手順を示すフローチャートである。
【図２３】実施の形態３に係るバックアップ処理／リストア処理の概要を説明するための模式図である。
【発明を実施するための形態】
【００１４】
本発明の実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰返さない。
【００１５】
＜Ａ．制御システムの適用例＞
まず、本実施の形態に係る制御システムを用いて制御するデバイス構成の一例について説明する。図１は、本実施の形態に係る制御システムを用いて制御するデバイス構成の一例を説明するための図である。図１には、マルチチャンバー式の半導体製造装置の構成例を示す。具体的には、図１（ａ）に示す半導体製造装置１は、搬送チャンバー１０を中心として、複数のプロセスチャンバー２０，２２，２４，２６が設けられた構成を示す。各プロセスチャンバーにおいては、基板に対する真空処理が実行される。プロセスチャンバー２０，２２，２４，２６と搬送チャンバー１０との間には、それぞれゲートバルブ２１，２３，２５，２７が設けられており、搬送チャンバー１０との間で連通状態／遮断状態とを切替える。搬送チャンバー１０には、搬送ロボット１２が設けられている。搬送ロボット１２は、処理前の基板をプロセスチャンバー２０，２２，２４，２６のいずれかに挿入し、あるいは、プロセスチャンバー２０，２２，２４，２６から処理後の基板を取り出す。
【００１６】
搬送チャンバー１０には、ロードロック室３０および３４が設けられている。ロードロック室３０および３４は、処理対象の基板の出し入れを行うとともに、搬送チャンバー１０およびプロセスチャンバー２０，２２，２４，２６の内部を真空に維持する。より具体的には、ロードロック室３０は、連通部３３を介して搬送チャンバー１０に接続されており、搬送チャンバー１０の入側および出側には、ゲートバルブ３１および３２が設けられている。同様に、ロードロック室３４は、連通部３７を介して搬送チャンバー１０に接続されており、搬送チャンバー１０の入側および出側には、ゲートバルブ３５および３６が設けられている。処理対象の基板の出し入れには、ロードロック室３０および３４が交互に用いられる。
【００１７】
図１（ａ）に示す半導体製造装置１を基本構成として、バリエーションとして、図１（ｂ）に示す半導体製造装置２および図１（ｃ）に示す半導体製造装置３が存在するとする。より具体的には、図１（ｂ）に示す半導体製造装置２は、図１（ａ）に示す半導体製造装置１に比較して、第１プロセスチャンバー２０およびゲートバルブ２１を取り除いたものに相当し、図１（ｃ）に示す半導体製造装置３は、図１（ａ）に示す半導体製造装置１に比較して、第４プロセスチャンバー２６およびゲートバルブ２７を取り除いたものに相当する。
【００１８】
このようなバリエーションの半導体製造装置２および３に係る制御システムを構築するにあたって、半導体製造装置１に係る制御システムの資産を最大限利用したいというニーズが存在する。より具体的には、ある装置に向けられた制御システムを構築するために必要なプログラムおよび設定情報（以下、これらの構築に必要なデータ群を「プロジェクト」と総称する。）を用いて、異なる構成を有する装置に向けられた制御システムを構築したいというニーズがある。
【００１９】
例えば、図１（ａ）〜（ｃ）に示す半導体製造装置１〜３を、１つのプロジェクトを用いて管理したいというニーズがある。あるいは、あるプロセスチャンバーを物理的に取り外して、別のプロセスチャンバーを取り付けることができる半導体製造装置を、１つのプロジェクトで管理したいというニーズがある。
【００２０】
このようなニーズに対して、１つのプロジェクトを作成し、この作成したプロジェクトを適宜手直しすることで、類似した制御システムを構築するという方法がとられる。
【００２１】
本実施の形態は、典型的には、このような部分的に共通するプロジェクトを用いて構築された制御システムや、状況に応じて構成が変更される装置に適用される制御システムに対して、バックアップ処理やリストア処理を柔軟に行うことができる構成を提供する。
【００２２】
＜Ｂ．制御システムの全体構成例＞
本実施の形態に係るバックアップ処理およびリストア処理の詳細について説明する前に、本実施の形態に係る制御システムの全体構成例について説明する。図２は、本実施の形態に係る制御システムの構成例を示す模式図である。図２に示す制御システムは、図１（ａ）に示す半導体製造装置１に向けられたものである。
【００２３】
図２を参照して、制御システムＳＹＳは、ＰＬＣ１００と、ネットワークを介してＰＬＣ１００に接続される、サーボモータドライバ２１０およびリモートＩＯターミナル２００とを含む。本実施の形態においては、ネットワークとしてフィールドネットワーク１０８が採用されている。ＰＬＣ１００は、フィールドネットワーク１０８において、通信処理を管理する「マスタ装置」として機能する。このマスタ装置は、「親局」や「管理局」と称されることもある。マスタ装置であるＰＬＣ１００との対比の意味で、フィールドネットワーク１０８を介してＰＬＣ１００に接続されるサーボモータドライバ２１０やリモートＩＯターミナル２００を「スレーブ装置」または「デバイス」と称する。フィールドネットワーク１０８上の各スレーブ装置は、ノード番号によって識別されるとする。このように、マスタ装置であるＰＬＣ１００は、ネットワークにおいてマスタ装置として機能するとともに、当該ネットワークを介して１または複数のスレーブ装置を制御する。
【００２４】
このようなフィールドネットワーク１０８としては、各種の産業用のイーサネット（登録商標）を用いることができる。産業用のイーサネット（登録商標）としては、例えば、ＥｔｈｅｒＣＡＴ（登録商標）、ＰＲＯＦＩＮＥＴ（登録商標）、ＭＥＣＨＡＴＲＯＬＩＮＫ（登録商標）−ＩＩＩ、Ｐｏｗｅｒｌｉｎｋ、ＳＥＲＣＯＳ（登録商標）−ＩＩＩ、ＣＩＰ  Ｍｏｔｉｏｎなどがある。さらに、産業用のイーサネット（登録商標）以外のフィールドネットワークを用いてもよい。例えば、ＤｅｖｉｃｅＮｅｔ、ＣｏｍｐｏＮｅｔ（登録商標）などを用いてもよい。
【００２５】
ＰＬＣ１００は、ＣＰＵユニット１１０と、ＩＯユニット１２０と、電源ユニット１３０とを含む。ＣＰＵユニット１１０は、主たる演算処理を実行する処理部であり、後述するようなプログラムおよび設定情報などに基づいて演算処理を実行する。ＩＯユニット１２０は、ＣＰＵユニット１１０と図示しないＰＬＣ内部バスを介してデータを互いに遣り取りできるように構成された機能ユニットの一例である。より具体的には、ＩＯユニット１２０は、一般的な入出力処理に関するユニットであり、オン／オフといった２値化されたデータの入出力を司る。すなわち、ＩＯユニット１２０は、検出スイッチなどのセンサが何らかの対象物を検出している状態（オン）、および、何らの対象物も検出していない状態（オフ）のいずれであるかという情報を収集する。また、ＩＯユニット１２０は、リレーやアクチュエータといった出力先に対して、活性化するための指令（オン）および不活性化するための指令（オフ）のいずれかを出力する。
【００２６】
ＩＯユニット１２０に代えて、あるいは、加えて、アナログデータの入出力、温度制御、特定の通信方式による通信といった、ＩＯユニット１２０ではサポートしない機能を有する特殊ユニットを装着することもできる。
【００２７】
電源ユニット１３０は、ＣＰＵユニット１１０やＩＯユニット１２０に対して、適切な電圧の電源を供給する。
【００２８】
ＰＬＣ１００には、接続ケーブルなどを介してサポート装置３００が接続される。より具体的には、ＰＬＣ１００のＣＰＵユニット１１０には、サポート装置３００と接続するためのＵＳＢ(Universal Serial Bus)コネクタ１０２が設けられている。後述するように、サポート装置３００において各種処理を実現するためのプログラムは、ＣＤ−ＲＯＭ（Compact Disk-Read Only Memory）３９０などの光学記録媒体に格納されて流通する。
【００２９】
また、ＰＬＣ１００のＣＰＵユニット１１０には、メモリカード３８０を装着するためのメモリカードインターフェイス１０６が設けられている。メモリカード３８０には、後述するようなバックアップデータが格納される。
【００３０】
図２には、図１（ａ）に示す半導体製造装置１を構成する搬送チャンバー１０およびプロセスチャンバー２０，２２，２４，２６の各々を制御するためのデバイスの一例を示す。このようなデバイスの一例として、搬送チャンバー１０は、２つのサーボモータドライバ２１０およびリモートＩＯターミナル２００を含む。これらの識別情報は、それぞれノード１，２，３であるとする。
【００３１】
サーボモータドライバ２１０は、フィールドネットワーク１０８を介してＣＰＵユニット１１０と接続されるとともに、ＣＰＵユニット１１０からの指令値に従ってサーボモータ２１２を駆動する。
【００３２】
リモートＩＯターミナル２００は、ＩＯユニット１２０と同様に、一般的な入出力処理に関する処理を行う。より具体的には、リモートＩＯターミナル２００は、フィールドネットワーク１０８でのデータ伝送に係る処理を行うための通信カプラ２０２と、１つ以上のＩＯユニット２０４とを含む。
【００３３】
第１プロセスチャンバー２０は、搬送チャンバー１０と同様に、２つのサーボモータドライバ２１０およびリモートＩＯターミナル２００を含む。これらの識別情報は、それぞれノード１１，１２，１３であるとする。一方、第４プロセスチャンバー２６は、１つのサーボモータドライバ２１０およびリモートＩＯターミナル２００を含む。これらの識別情報は、それぞれノード４１，４２であるとする。
【００３４】
＜Ｃ．ＣＰＵユニット１１０の構成例＞
次に、ＰＬＣ１００において主たる演算処理を実行するＣＰＵユニット１１０の構成例について説明する。図３は、本実施の形態に係るＰＬＣ１００のＣＰＵユニット１１０のハードウェア構成を示す模式図である。
【００３５】
図３を参照して、ＰＬＣ１００のＣＰＵユニット１１０は、上述のＵＳＢコネクタ１０２およびメモリカードインターフェイス１０６に加えて、チップセット１１１と、マイクロプロセッサ１１２と、メインメモリ１１３と、不揮発性メモリ１１４と、フィールドネットワークコントローラ１１６と、ＰＬＣシステムバスコントローラ１１７とを含む。チップセット１１１と各コンポーネントとの間は、各種のバスを介してそれぞれ結合されている。
【００３６】
チップセット１１１およびマイクロプロセッサ１１２は、典型的には、汎用的なコンピュータアーキテクチャに準じて構成される。すなわち、マイクロプロセッサ１１２は、チップセット１１１から内部クロックに従って順次供給される命令コードを解釈して実行する。チップセット１１１は、接続されている各コンポーネントとの間で内部的なデータを遣り取りするとともに、マイクロプロセッサ１１２に必要な命令コードを与える。チップセット１１１は、マイクロプロセッサ１１２での演算処理の実行の結果得られたデータなどをキャッシュする機能を有する。
【００３７】
ＣＰＵユニット１１０は、記憶部として、メインメモリ１１３および不揮発性メモリ１１４を有する。メインメモリ１１３は、揮発性の記憶領域であり、マイクロプロセッサ１１２で実行されるプログラムを保持するとともに、プログラムの実行時の作業用メモリとしても使用される。不揮発性メモリ１１４は、後述するようなプログラムおよび設定情報などを不揮発的に保持する。
【００３８】
ＵＳＢコネクタ１０２は、サポート装置３００とＣＰＵユニット１１０とを接続するためのインターフェイスである。典型的には、サポート装置３００から転送される実行可能なプログラムなどは、ＵＳＢコネクタ１０２を介してＣＰＵユニット１１０に取込まれる。
【００３９】
ＣＰＵユニット１１０は、通信部として、フィールドネットワークコントローラ１１６およびＰＬＣシステムバスコントローラ１１７を有する。これらのコントローラは、データの送信および受信を行う。
【００４０】
フィールドネットワークコントローラ１１６は、フィールドネットワークコネクタ１０４を介してフィールドネットワーク１０８と接続される。ＰＬＣシステムバスコントローラ１１７は、内部バスを介して、ＩＯユニット１２０（図２）などと接続される。
【００４１】
図４は、本実施の形態に係るＰＬＣ１００のＣＰＵユニット１１０のソフトウェア構成を示す模式図である。図４を参照して、ＣＰＵユニット１１０の不揮発性メモリ１１４には、システム構成情報１５０と、ユーザプログラム１６０と、ライブラリプログラム１７０と、リアルタイムＯＳ(Operating System)１８０と、ファームウェア１９０とを含む。
【００４２】
システム構成情報１５０は、ＰＬＣ１００を含む制御システムの構成や設定を定義する情報を含む。具体的には、システム構成情報１５０は、デバイス構成情報１５２およびスレーブ設定情報１５４を含む。
【００４３】
デバイス構成情報１５２は、フィールドネットワーク１０８のメンバとして登録されているスレーブ装置の各々についてのネットワーク接続の有効／無効の情報を含む。すなわち、デバイス構成情報１５２は、コントローラであるＰＬＣ１００が管理するスレーブ装置についての有無の情報および接続形態の情報を含む。具体的には、図２に示すような制御システムの構成、つまり、どのようなスレーブ装置が接続されており、かつ各スレーブ装置に対していずれのアドレス（ノード番号）が割り当てられているかが定義される。言い換えれば、デバイス構成情報１５２は、スレーブ装置の接続状態の情報、および／または、有効状態または無効状態の情報を含む。デバイス構成情報１５２のデータ構造の一例については、後述する。
【００４４】
スレーブ設定情報１５４は、ＰＬＣ１００（ＣＰＵユニット１１０）でのプログラムの実行に必要なスレーブ装置毎の設定情報（パラメータや割当情報など）を含む。具体的には、スレーブ設定情報１５４は、各スレーブ装置について関連付けられた、ユーザプログラムや設定値を含む。すなわち、スレーブ設定情報１５４は、当該登録されているスレーブ装置を制御するために必要なパラメータを含む。さらに、スレーブ装置の内部にユーザプログラムや設定値を保持するものもあり、この場合には、スレーブ設定情報１５４は、各スレーブ装置に格納されるユーザプログラムや設定値を含み得る。
【００４５】
ユーザプログラム１６０は、サポート装置３００を用いてユーザが作成プログラムであり、制御対象の機械や設備に応じて任意に作成される。このユーザプログラム１６０は、典型的には、サポート装置３００からＰＬＣ１００（ＣＰＵユニット１１０）へ転送される。
【００４６】
ライブラリプログラム１７０は、ＣＰＵユニット１１０がユーザプログラム１６０を実行する際に必要になる実行モジュールやサブルーチンを含む。ライブラリプログラム１７０は、ＰＬＣ１００（ＣＰＵユニット１１０）においてユーザプログラムを実行するための環境を提供するためのプログラムである。より具体的には、ライブラリプログラム１７０は、モーション演算モジュール１７２と、シーケンス命令処理モジュール１７４と、入出力処理モジュール１７６と、スケジューラ１７８とを含む。
【００４７】
モーション演算モジュール１７２は、サーボモータドライバ２１０に対して各種指令を与えるためのモーション演算に係る関数を提供する。シーケンス命令処理モジュール１７４は、シーケンス制御に係る命令を処理するための関数を提供する。入出力処理モジュール１７６は、外部データの取得および内部データの出力に係る関数を提供する。
【００４８】
スケジューラ１７８は、ユーザプログラム１６０に含まれる複数のタスクについて、それぞれの優先度や割込レベルに応じて、実行順序を最適化するための関数を提供する。
【００４９】
なお、サポート装置３００において必要なライブラリを組み込んだユーザプログラム（ダイナミックリンクにて作成された実行プログラム）を生成した場合には、これらのライブラリプログラム１７０をＰＬＣ１００で保持しておく必要はない。
【００５０】
リアルタイムＯＳ１８０は、ユーザプログラム１６０を実行するための環境を提供する。より具体的には、リアルタイムＯＳ１８０は、スケジューラ１７８と協働して、各タスクが予め定められた処理時間内に完了するように、ユーザプログラム１６０の実行順序などを最適化する。
【００５１】
ファームウェア１９０は、リアルタイムＯＳ１８０が起動する初期段階において実行されるプリミティブなプログラムである。典型的には、本実施の形態に係るバックアップ処理およびリストア処理については、ファームウェア１９０によって実現される。
【００５２】
＜Ｄ．サーボモータドライバ２１０の構成例＞
次に、スレーブ装置の一例としてサーボモータドライバ２１０の構成例について説明する。図５は、本実施の形態に係るサーボモータドライバ２１０のハードウェア構成を示す模式図である。サーボモータドライバ２１０は、フィールドネットワーク１０８を介してＰＬＣ１００から送信される指令に従って、サーボモータ２１２を駆動する。より具体的には、サーボモータドライバ２１０は、通信部２５０と、入出力部２５２と、ドライブ回路２５４と、演算処理部２６０とを含む。
【００５３】
通信部２５０は、フィールドネットワーク１０８を流れるデータを送受信する。すなわち、通信部２５０は、フィールドネットワーク１０８を介して受信したデータを演算処理部２６０へ出力するとともに、演算処理部２６０からのデータをフィールドネットワーク１０８を介して送信する。
【００５４】
入出力部２５２は、ＩＯユニット１２０（図２）と同様に、一般的な入出力処理を実行する。すなわち、入出力部２５２は、検出スイッチなどの各種センサからの情報を収集するとともに、リレーやアクチュエータといった出力先に対して指令を与える。
【００５５】
ドライブ回路２５４は、演算処理部２６０からの内部指令に従って、サーボモータ２１２を駆動するための駆動パルス列などを図示しない外部電源から生成する。より具体的には、ドライブ回路２５４は、インバータ回路やＰＷＭ(Pulse Width Modulation)変換回路などを含む。
【００５６】
演算処理部２６０は、サーボモータドライバ２１０の主たる演算処理を実行する制御主体であり、プロセッサ２６２と、メモリ２６４とを含む。プロセッサ２６２は、メモリ２６４が保持しているプログラムや設定値に従って演算処理を実行し、通信部２５０、入出力部２５２、およびドライブ回路２５４に対して、必要な指令や演算結果を出力する。メモリ２６４は、プロセッサ２６２での演算処理に必要な各種データを保持する。このメモリ２６４が保持するデータは、フィールドネットワーク１０８を介して、ＰＬＣ１００（ＣＰＵユニット１１０）から送信されるものもある。
【００５７】
なお、リモートＩＯターミナル２００については、主たる部分において、ＰＬＣ１００に類似しているので、詳細な説明は行わない。
【００５８】
＜Ｅ．サポート装置３００＞
次に、本実施の形態に係るＰＬＣ１００に接続されるサポート装置３００について説明する。図６は、本実施の形態に係るＰＬＣ１００に接続されるサポート装置３００のハードウェア構成を示す模式図である。サポート装置３００は、典型的には、汎用のコンピュータで構成される。
【００５９】
図６を参照して、サポート装置３００は、ＯＳ(Operating System)を含む各種プログラムを実行するＣＰＵ３０２と、ＢＩＯＳ(Basic Input Output System)や各種データを格納するＲＯＭ(Read Only Memory)３０４と、ＣＰＵ３０２でのプログラムの実行に必要なデータを保持するための作業領域を提供するメモリＲＡＭ３０６と、ＣＰＵ３０２で実行されるプログラムなどを不揮発的に保持するハードディスク（ＨＤＤ）３０８とを含む。  
【００６０】
サポート装置３００は、さらに、ユーザからの操作を受け付けるキーボード３１０およびマウス３１２と、情報をユーザに提示するためのディスプレイ３１４とを含む。さらに、サポート装置３００は、ＰＬＣ１００（ＣＰＵユニット１１０）などと通信するための通信インターフェイス（ＩＦ）３１８を含む。
【００６１】
後述するように、サポート装置３００で実行されるサポートプログラム（図７参照）は、ＣＤ−ＲＯＭ３９０に格納されて流通する。このＣＤ−ＲＯＭ３９０に格納されたプログラムは、ＣＤ−ＲＯＭ駆動装置３１６によって読取られ、ハードディスク３０８などへ格納される。あるいは、上位のホストコンピュータなどからネットワークを通じてプログラムをダウンロードするように構成してもよい。
【００６２】
サポート装置３００を構成する各コンポーネントは、バス３２０を介して互いに結合されている。
【００６３】
図７は、本実施の形態に係るＰＬＣ１００に接続されるサポート装置３００のソフトウェア構成を示す模式図である。図７を参照して、サポート装置３００のハードディスク３０８には、典型的には、ＯＳ３５０と、サポートプログラム３６０と、プロジェクト３７０とが格納されている。
【００６４】
ＯＳ３５０は、ＣＰＵ３０２でプログラムを実行する環境を提供する。
サポートプログラム３６０は、ＰＬＣ１００での処理を制御するためのプログラムである。典型的には、サポートプログラム３６０は、デバッガプログラム３６２と、コンパイラプログラム３６４と、エディタプログラム３６６とを含む。
【００６５】
デバッガプログラム３６２は、作成されたユーザプログラムの正当性を評価するとともに、不具合の修正を支援する。コンパイラプログラム３６４は、作成されたユーザプログラム（ソースプログラム）から実行可能なユーザプログラムを生成する。エディタプログラム３６６は、ユーザプログラムを生成するためのインターフェイスを提供する。
【００６６】
プロジェクト３７０は、ある制御システムを構築するために必要なプログラムや設定値を含む。具体的には、プロジェクト３７０は、ユーザプログラム３７６と、デバイス構成情報３７２と、スレーブ装置毎のスレーブ設定情報３７４とを含む。これらのデータは、サポート装置３００からＰＬＣ１００へ転送されて、それぞれユーザプログラム１６０、デバイス構成情報１５２、およびスレーブ設定情報１５４として格納される。
【００６７】
＜Ｆ．制御システムの構築手順＞
次に、図１（ａ）〜（ｃ）に示すような類似したデバイス構成に係る制御システムを構築する手順の一例について説明する。図８は、本実施の形態に係る制御システムの構築手順について説明するための模式図である。
【００６８】
図８を参照して、まず、ユーザ（システム開発者）は、基本的なデバイス構成（例えば、図１（ａ）に示す半導体製造装置１）に係るプロジェクトを作成する（（１）プロジェクト作成）。具体的には、ユーザは、目的に応じた処理を実現するためのユーザプログラム３７６（ソースプログラム）を作成するとともに、制御システムに含まれるスレーブ装置に係るデバイス構成情報３７２およびスレーブ設定情報３７４を設定する。
【００６９】
これらの一連の設計・作成が完了すると、プロジェクト３７０のユーザプログラム３７６はコンパイルされて、デバイス構成情報３７２およびスレーブ設定情報３７４とともに、デバイス構成１に係る制御システムへ転送される（（２）コンパイル＋転送）。
【００７０】
続いて、ユーザは、デバイス構成１に類似したデバイス構成２に応じて、先に作成したプロジェクト３７０を更新する（（３）プロジェクト更新）。より具体的には、システム構成の違いに応じて、デバイス構成情報３７２およびスレーブ設定情報３７４が更新されたり、要求される処理内容の違いに応じてユーザプログラム３７６のロジックが変更されたりする。
【００７１】
これらの更新が完了すると、プロジェクト３７０のユーザプログラム３７６はコンパイルされて、デバイス構成情報３７２およびスレーブ設定情報３７４とともに、デバイス構成２に係る制御システムへ転送される（（４）コンパイル＋転送）。
【００７２】
同様に、ユーザは、デバイス構成１に類似したデバイス構成３に応じて、先に作成したプロジェクト３７０を更新する（（５）プロジェクト更新）。より具体的には、システム構成の違いに応じて、デバイス構成情報３７２およびスレーブ設定情報３７４が更新されたり、要求される処理内容の違いに応じてユーザプログラム３７６のロジックが変更されたりする。これらの更新が完了すると、プロジェクト３７０のユーザプログラム３７６はコンパイルされて、デバイス構成情報３７２およびスレーブ設定情報３７４とともに、デバイス構成２に係る制御システムへ転送される（（６）コンパイル＋転送）。
【００７３】
このように、本実施の形態に係るサポート装置３００（サポートプログラム３６０）を用いることで、類似したデバイス構成に対する制御システムを容易に構築できる。
【００７４】
図１に示すように、デバイス構成１には存在するが、デバイス構成２には存在しないスレーブ装置に関しては、デバイス構成情報３７２（最終的には、デバイス構成情報１５２としてＰＬＣ１００に格納される）において「無効」に設定することで、関連する処理を無効化できる。すなわち、デバイス構成の相違を吸収できる。
【００７５】
図９は、本実施の形態に係るデバイス構成情報３７２のデータ構造の一例を示す模式図である。図９を参照して、デバイス構成情報３７２は、フィールドネットワーク１０８のメンバとして登録されているスレーブ装置の情報、および、スレーブ装置の各々についてのネットワーク接続の有効／無効の情報を含む。すなわち、図９に示すデバイス構成情報３７２においては、フィールドネットワーク２のノード番号に区分された複数のエントリを含み、各エントリには、スレーブ装置を特定するための識別情報と、ネットワーク接続の有効／無効の情報とを含む。なお、識別情報としては、スレーブ装置の機器番号などを含む。
【００７６】
ここで、ネットワーク接続の「無効」とは、マスタ装置であるＰＬＣ１００とデータ通信を行うことを無視(don't care)することを意味する。「無効」状態においては、登録されている識別情報に一致する識別情報を有するスレーブ装置がフィールドネットワーク２に接続されているか否かについても判断されない。これに対して、ネットワーク接続の「有効」とは、マスタ装置であるＰＬＣ１００とデータ通信を行うことが予定されていることを意味する。そのため、「有効」状態においては、登録されている識別情報に一致する識別情報を有するスレーブ装置がフィールドネットワーク２に接続されていなければ、エラーと判断される。
【００７７】
つまり、あるスレーブ装置を「無効」に設定することで、当該スレーブ装置がフィールドネットワーク２に接続されていなくとも、エラーと判断されることはなく、この有効／無効の設定を利用することで、デバイス構成の相違をプロジェクト上で吸収することができる。
【００７８】
次に、具体例を挙げて、制御システムの構築手順の一例について説明する。
図１０は、図８に示すデバイス構成１の一例を示す図である。図１１は、図８に示すデバイス構成２および３の一例を示す図である。なお、図１０および図１１に示すデバイス構成の例は、図２に示す制御システムに類似させている。図１２は、図９に示すデバイス構成情報３７２の変更内容の一例を示す図である。
【００７９】
図１０に示すデバイス構成１においては、マスタ装置として機能するＰＬＣ１００のスレーブ装置として、スレーブ装置Ａ〜Ｃ（ノード１〜３）、スレーブ装置Ｊ〜Ｌ（ノード１１〜１３）、スレーブ装置Ｓ，Ｔ（ノード４１，４２）が接続されているとする。図１１（ａ）に示すデバイス構成２においては、図１０に示すデバイス構成１に比較してスレーブ装置Ｊ〜Ｌが取り除かれており、図１１（ｂ）に示すデバイス構成３においては、図１０に示すデバイス構成１に比較してスレーブ装置Ｓ，Ｔが取り除かれているとする。
【００８０】
図１０に示すデバイス構成１については、図９に示すようなデバイス構成情報３７２が設定される。これに対して、図１１（ａ）に示すデバイス構成２については、図１２（ａ）に示すようなデバイス構成情報３７２が設定される。つまり、存在しないスレーブ装置Ｊ〜Ｌの状態値が「有効」から「無効」に変更される。同様に、図１１（ｂ）に示すデバイス構成３については、図１２（ｂ）に示すようなデバイス構成情報３７２が設定される。つまり、存在しないスレーブ装置Ｓ，Ｔの状態値が「有効」から「無効」に変更される。
【００８１】
図１０および図１１に示すように、実際にスレーブ装置が存在しなくとも、デバイス構成情報３７２において、そのスレーブ装置の識別情報自体を削除する必要はない。それに代えて、存在しないスレーブ装置の状態値が「無効」に設定されるだけで済む。このようなデバイス構成情報３７２を採用することで、類似した複数のデバイス構成に対して制御システムを容易に構成できる。あるいは、状況に応じてデバイス構成が随時変更されるような場合に、ＰＬＣ１００で実行されるプログラムの変更を容易化できる。
【００８２】
つまり、ユーザ（システム開発者）は、すべてのデバイス構成を含む基本的なプロジェクトを作成するとともに、デバイス構成情報３７２に対する設定を行うことで、各デバイスについて使用するか否かを選択する。このように、対象となる装置のデバイス構成に応じてデバイス構成情報３７２を適宜変更し、ＰＬＣ１００（ＣＰＵユニット１１０）へ転送することで実現できる。
【００８３】
但し、上述の方法は、サポート装置３００を用いてデバイス構成情報３７２を変更する必要があるため、プログラミングスキルの乏しいエンドユーザにとってみれば、この方法を行うことは難しい場合もある。このような場合には、デバイス構成情報３７２を動的に変更するようなモジュール（関数）を用いて、ユーザプログラムで、デバイス構成に応じてデバイス構成情報３７２を適宜変更するようにしてもよい。このとき、デバイス構成を変更したことは、ユーザ（オペレータ）が表示器などを操作してＰＬＣ１００へ指示することになる。このようなデバイス構成情報３７２を動的に変更する方法を採用することで、制御システムを停止することなく、デバイス構成の変更に対応させることもできる。
【００８４】
＜Ｇ．バックアップ処理／リストア処理の概要＞
次に、本実施の形態に係るＰＬＣ１００に実装されているバックアップ処理／リストア処理の概要について説明する。
【００８５】
図１３は、本実施の形態に係るＰＬＣ１００に実装されているバックアップ処理／リストア処理の概要を説明するための模式図である。図１３（ａ）はバックアップ処理の概要を示し、図１３（ｂ）はリストア処理の概要を示す。
【００８６】
［ｇ１：バックアップ処理／リストア処理の利用例］
一般的に、機械や設備には、しばしばトラブルが発生し得る。例えば、連続休暇中に電源が遮断されており、その休暇明けに電源が投入されると、何らかの理由で正しく動作しない場合が発生し得る。その原因としては、機械的な故障も挙げられるが、バッテリで保持されるべきデータが消去しているとか、意図しないタイミングで上位計算機からデータが書き換えられているといった理由が挙げられる。
【００８７】
このような場合、ユーザ（サポート装置３００を用いた複雑な操作はできないエンドユーザを想定）は、以前に取得したバックアップデータを用いて、必要なデータなどの復元（リストア処理）を行う。つまり、本実施の形態に係るバックアップデータは、典型的には、制御システムの不具合などを解消するために用いられる。
【００８８】
この実行方法として、例えば、ＳＤ(Secure Digital)カードなどのメモリカード３８０をＰＬＣ１００に挿入することをトリガとしてリストア処理が開始される、あるいは、ＰＬＣ１００に設けられたボタンなどを操作するとリストア処理が開始される、といった簡単な処理が想定されている。
【００８９】
［ｇ２：バックアップ処理］
まず、図１３（ａ）に示すバックアップ処理について説明する。バックアップ処理においては、ＰＬＣ１００（ＣＰＵユニット１１０）が保持しているデータおよび各スレーブ装置が保持しているデータからバックアップデータ４００が生成される。この生成されたバックアップデータ４００は、ＣＰＵユニット１１０の不揮発性メモリ１１４やメモリカード３８０に保持される。あるいは、ＣＰＵユニット１１０からサポート装置３００へ転送され、サポート装置３００内またはサポート装置３００に接続された各種記録媒体に保持されてもよい。
【００９０】
より具体的には、ＣＰＵユニット１１０の不揮発性メモリ１１４（図３）に保持されているデータの複製であるＣＰＵデータ４０２と、各スレーブ装置に保持されているデータの複製であるスレーブ設定情報４０４とに基づいて、バックアップデータ４００が生成される。なお、バックアップデータ４００に含まれるデータは、これに限られることなく、ＣＰＵユニット１１０のメインメモリ１１３（図３）に保持されているデータを含めてもよい。
【００９１】
バックアップデータ４００のＣＰＵデータ４０２は、一例として、以下のようなデータを含む。
【００９２】
・ＰＬＣ１００（ＣＰＵユニット１１０）内に格納されているユーザプログラム１６０や設定値（パラメータ）
・ＰＬＣ１００（ＣＰＵユニット１１０）内に格納されているデバイス構成情報１５２
・ＰＬＣ１００（ＣＰＵユニット１１０）内に格納されているデバイス毎のネットワーク接続の有効／無効の情報
バックアップデータ４００のスレーブ設定情報４０４は、一例として、以下のようなデータを含む。
【００９３】
・スレーブ装置内に格納されているユーザプログラムや設定値（パラメータ）
このように、バックアップデータ４００は、マスタ装置であるＰＬＣ１００（ＣＰＵユニット１１０）が保持するデータ、および／または、スレーブ装置が保持するデータを含む。また、ＰＬＣ１００（ＣＰＵユニット１１０）は、メモリカード３８０およびスレーブ装置からのデータを用いてバックアップデータ４００を生成するバックアップ処理を実行可能に構成されている。
【００９４】
［ｇ３：リストア処理］
まず、図１３（ｂ）に示すリストア処理について説明する。リストア処理において、ＰＬＣ１００（ＣＰＵユニット１１０）は、予め用意されたバックアップデータ４００からＣＰＵデータ４０２およびスレーブ設定情報４０４を生成するとともに、ＣＰＵデータ４０２で不揮発性メモリ１１４の内容を上書きする。ＰＬＣ１００（ＣＰＵユニット１１０）に保持されているスレーブ設定情報１５４は、スレーブ設定情報４０４で上書きされる。また、ＰＬＣ１００（ＣＰＵユニット１１０）は、必要に応じて、スレーブ設定情報４０４（上書き後のスレーブ設定情報１５４）の内容を対象のスレーブ装置へ転送する。
【００９５】
上述したように、このリストア処理は、（１）バックアップデータ４００を格納するメモリカード３８０がＣＰＵユニット１１０に装着されたこと、（２）予め定められた操作（例えば、ＣＰＵユニット１１０に設けられたボタンの押下）がなされたこと、（３）サポート装置３００が明示的な指示があったこと、などをトリガとして開始される。
【００９６】
このように、本実施の形態に係る処理部に相当するＣＰＵユニット１１０は、スレーブ装置毎の設定情報を含むバックアップデータ４００を用いてリストア処理を実行可能になっている。そして、本実施の形態に係るリストア処理は、ＰＬＣ１００（ＣＰＵユニット１１０）からリストア対象のスレーブ装置に対して、必要なデータを送信する処理を含む。
【００９７】
＜Ｈ．背景技術・課題＞
次に、本実施の形態に関連する背景技術およびその課題について説明する。
【００９８】
図１４は、本実施の形態に関連するバックアップ処理／リストア処理について説明するための模式図である。図１４には、デバイス構成が互いに異なる２つの設備が存在する例を示す。すなわち、搬送チャンバー１０と第１プロセスチャンバー２０とからなるデバイス構成と、搬送チャンバー１０と第４プロセスチャンバー２６とからなるデバイス構成とを想定する。説明の便宜上、スレーブ装置の数を簡素化しているが、いずれのデバイス構成とも、さらなるスレーブ装置を含んでいてもよい。
【００９９】
搬送チャンバー１０と第１プロセスチャンバー２０とからなる制御システムにおいて取得されるバックアップデータ４００−１は、搬送チャンバー１０および第１プロセスチャンバー２０に関する設定情報やプログラムを含むことになる。また、搬送チャンバー１０と第４プロセスチャンバー２６とからなる制御システムにおいて取得されるバックアップデータ４００−２は、搬送チャンバー１０および第４プロセスチャンバー２６に関する設定情報やプログラムを含むことになる。
【０１００】
関連技術においては、バックアップデータ４００を用いたリストア処理を行う場合には、リストア対象の制御システムのデバイス構成が当該バックアップデータ４００を生成したときのデバイス構成と同一であることが条件とされる。そのため、搬送チャンバー１０に関する設定情報やプログラムについては、制御システムに共通であるが、搬送チャンバー１０と第４プロセスチャンバー２６とからなる制御システムに対して、バックアップデータ４００−１を用いてリストア処理を行うことはできない。同様に、搬送チャンバー１０と第１プロセスチャンバー２０とからなる制御システムに対して、バックアップデータ４００−２を用いてリストア処理を行うことはできない。
【０１０１】
このように関連技術においては、制御システムにおけるデバイス構成の変更は想定されておらず、バックアップ処理時とリストア時において、デバイス構成が同一である必要がある。つまり、デバイス構成が異なれば、リストア処理の開始または途中でエラーとなる。
【０１０２】
なお、サポート装置３００を用いて、デバイス構成を強制的に一致させるとともに、バックアップデータ４００に含まれる一部のデータを選択してリストア処理に用いることもできなくはないが、非常に手続きが煩雑となり、リストア処理を失敗する可能性も高い。
【０１０３】
したがって、一般的には、それぞれの制御システムについて、バックアップデータを生成および管理する必要がある。
【０１０４】
＜Ｉ．解決手段の概要＞
本実施の形態は、このような課題を解決することを目的とする。より具体的には、処理部に相当するＣＰＵユニット１１０は、リストア処理実行時に、デバイス構成情報を読み出し、バックアップデータ４００に含まれる対象のスレーブ装置のうち、読み出したデバイス構成情報の中でネットワーク接続が有効になっているスレーブ装置、または、フィールドネットワーク１０８上に存在しているスレーブ装置を特定し、特定されたスレーブ装置に対応する設定情報をリストアする。つまり、本実施の形態に係るＣＰＵユニット１１０は、バックアップデータ４００のうち、対象の制御システムに有効に含まれるスレーブ装置に関する設定情報やプログラムを選択的に抽出し、リストア処理を実行する。
【０１０５】
すなわち、本実施の形態に係るＣＰＵユニット１１０は、バックアップデータ４００の作成時とはデバイス構成が異なっていても、ネットワーク接続が有効になっているスレーブ装置、および、ネットワーク上に存在しているスレーブ装置に対して、選択的にリストア処理を実行する。
【０１０６】
ここで、「ネットワーク接続が有効になっているスレーブ装置」とは、典型的には、フィールドネットワーク１０８に接続されることになっているスレーブ装置を意味し、図９に示すデバイス構成情報３７２（または、デバイス構成情報１５２）において、状態値が「有効」に設定されているスレーブ装置を含む。あるいは、ＣＰＵユニット１１０がフィールドネットワーク１０８を介して実際に問合せを行った結果、正常な動作が可能であるスレーブ装置を含むようにしてもよい。
【０１０７】
また、「ネットワーク上に存在しているスレーブ装置」とは、典型的には、フィールドネットワーク１０８に実際に接続されているスレーブ装置を意味する。このとき、デバイス構成情報３７２（または、デバイス構成情報１５２）での状態値には影響を受けない。つまり、フィールドネットワーク１０８に接続されてさえいれば、その動作状態などには影響を受けず、リストア処理の対象とされる。
【０１０８】
以下、対象の制御システムに応じた適用例について、実施の形態１〜３として説明する。但し、実施の形態１〜３のいずれについても、上述の基本的な処理を含む。
【０１０９】
＜Ｊ．実施の形態１＞
実施の形態１として、上述の図１４を参照して説明したように、デバイス構成が互いに異なる２つの設備が存在する場合の適用例について説明する。
【０１１０】
［ｊ１：処理概要］
図１５は、実施の形態１に係るバックアップ処理／リストア処理について説明するための模式図である。図１５には、上述の図１４と同様に、搬送チャンバー１０と第１プロセスチャンバー２０とからなる制御システムにおいてバックアップデータ４００−１が生成され、搬送チャンバー１０と第４プロセスチャンバー２６とからなる制御システムにおいてバックアップデータ４００−２が生成されるとする。
【０１１１】
実施の形態１においては、バックアップデータ４００の生成時におけるデバイス構成とは異なっている場合（すなわち、バックアップ処理時とリストア時との間でデバイス構成が同一ではない場合）であっても、バックアップデータ４００から対応するスレーブ装置に関するデータのみがリストアされる。
【０１１２】
図１５には、搬送チャンバー１０と第１プロセスチャンバー２０とからなる制御システムで生成されたバックアップデータ４００−１を用いて、搬送チャンバー１０と第４プロセスチャンバー２６とからなる制御システムに対してリストア処理を行う例を示す。このとき、ＰＬＣ１００（ＣＰＵユニット１１０）は、バックアップデータ４００−１のうち、搬送チャンバー１０に関する設定情報および／またはプログラムを抽出し、リストア処理を実行する。
【０１１３】
また、図１５には、搬送チャンバー１０と第４プロセスチャンバー２６とからなる制御システムで生成されたバックアップデータ４００−２を用いて、搬送チャンバー１０と第１プロセスチャンバー２０とからなる制御システムに対してリストア処理を行う例を示す。このとき、ＰＬＣ１００（ＣＰＵユニット１１０）は、バックアップデータ４００−２のうち、搬送チャンバー１０に関する設定情報および／またはプログラムを抽出し、リストア処理を実行する。
【０１１４】
このように、実施の形態１に係るＰＬＣ１００（ＣＰＵユニット１１０）は、バックアップデータ４００からリストア処理を実行するに際して、ネットワーク接続が有効になっているスレーブ装置、および／または、ネットワーク上に存在しているスレーブ装置を対象とする。すなわち、実施の形態１に係るＰＬＣ１００（ＣＰＵユニット１１０）は、ネットワーク接続が有効になっていないスレーブ装置、および／または、ネットワーク上に存在していないスレーブ装置に対しては、リストア処理を実行しない。
【０１１５】
言い換えれば、リストア処理が実行されない（あるいは、リストア処理を実行できない）スレーブ装置が存在していたとしても、実施の形態１に係るＰＬＣ１００（ＣＰＵユニット１１０）は、リストア処理の開始または途中で処理を停止することはない。
【０１１６】
なお、リストア処理の対象にならなかったスレーブ装置に関しては、エラーを出力しないようにしてもよい。但し、リストア処理の対象にならなかったことを通知することが好ましい場合には、リストア処理の対象にならなかったスレーブ装置をユーザに通知するようにしてもよい。この通知方法としては、リストア処理に係るログファイルにその内容を出力する、接続されているサポート装置３００の画面上にその内容を通知する、対象のスレーブ装置に搭載されている表示デバイス（例えば、ＬＥＤ(Light Emitting Diode)インジケータなど）を点灯／点滅させる、サポート装置３００またはＣＰＵユニット１１０から音声ガイダンスを発するといった方法を用いることができる。
【０１１７】
［ｊ２：処理手順］
次に、実施の形態１に係るバックアップ処理およびリストア処理の手順について説明する。図１６は、実施の形態１に係るバックアップ処理の手順を示すフローチャートである。図１７は、実施の形態１に係るリストア処理の手順を示すフローチャートである。図１６および図１７に示す各ステップは、典型的には、ＣＰＵユニット１１０のマイクロプロセッサ１１２（図３）がファームウェア１９０（図４）を実行することで実現される。但し、これらの処理の一部または全部をＡＳＩＣ(Application Specific Integrated Circuit)などの集積回路を用いて実現してもよい。
【０１１８】
図１６を参照して、マイクロプロセッサ１１２は、バックアップ処理の開始条件が成立したか否かを判断する（ステップＳ１００）。このバックアップ処理の開始条件は、サポート装置３００などから明示的な指示を受けた場合や、メモリカード３８０が装着された場合などを含む。バックアップ処理の開始条件が成立していなければ（ステップＳ１００においてＮＯ）、ステップＳ１００の処理が繰返される。
【０１１９】
これに対して、バックアップ処理の開始条件が成立していれば（ステップＳ１００においてＹＥＳ）、マイクロプロセッサ１１２は、不揮発性メモリ１１４にテンポラリフォルダを作成し、不揮発性メモリ１１４に保持されているデータをコピーする（ステップＳ１０２）。不揮発性メモリ１１４に保持されているデータは、ＣＰＵデータ４０２およびスレーブ設定情報４０４を含む。
【０１２０】
続いて、マイクロプロセッサ１１２は、デバイス構成情報１５２を参照して、フィールドネットワーク１０８のメンバとして登録されている１つのスレーブ装置をバックアップ対象として選択する（ステップＳ１０４）。そして、マイクロプロセッサ１１２は、バックアップ対象のスレーブ装置がフィールドネットワーク１０８上に存在しているか否かを判断する（ステップＳ１０６）。バックアップ対象のスレーブ装置がフィールドネットワーク１０８上に存在していれば（ステップＳ１０６においてＹＥＳ）、マイクロプロセッサ１１２は、フィールドネットワーク１０８を介して、バックアップ対象のスレーブ装置から格納されているデータを読み出し、その読み出したデータをテンポラリフォルダにコピーする（ステップＳ１０８）。
【０１２１】
マイクロプロセッサ１１２は、フィールドネットワーク１０８のメンバとして登録されているすべてのスレーブ装置についてバックアップ対象としての選択が完了したか否かを判断する（ステップＳ１１０）。フィールドネットワーク１０８のメンバとして登録されているすべてのスレーブ装置についてバックアップ対象としての選択が完了していなければ（ステップＳ１１０においてＮＯ）、または、バックアップ対象のスレーブ装置がフィールドネットワーク１０８上に存在していなければ（ステップＳ１０６においてＮＯ）、マイクロプロセッサ１１２は、フィールドネットワーク１０８のメンバとして登録されている未選択のスレーブ装置をバックアップ対象として選択する（ステップＳ１１２）。そして、ステップＳ１０６以下の処理が繰返される。
【０１２２】
これに対して、フィールドネットワーク１０８のメンバとして登録されているすべてのスレーブ装置についてバックアップ対象としての選択が完了していれば（ステップＳ１１０においてＹＥＳ）、バックアップデータ４００の生成に必要なデータの収集が完了する。基本的には、テンポラリフォルダ内のデータをそのままバックアップデータ４００として出力することができる。但し、実施の形態１においては、バックアップデータ４００に対してパッケージ化処理を行い、その結果として得られるパッケージファイルをバックアップデータ４００として出力する。つまり、マイクロプロセッサ１１２は、テンポラリフォルダ内のデータに対してパッケージ化処理を行い、バックアップデータ４００を生成する（ステップＳ１１４）。
【０１２３】
続いて、マイクロプロセッサ１１２は、バックアップデータ４００の出力先を判断する（ステップＳ１１６）。なお、このバックアップデータ４００の出力先は、サポート装置３００から予め通知されていてもよいし、ＣＰＵユニット１１０に設けられたディップスイッチなどの設定に基づいて判断されてもよい。
【０１２４】
バックアップデータ４００の出力先がメモリカード３８０である場合（ステップＳ１１６において「メモリカード」）、マイクロプロセッサ１１２は、バックアップデータ４００をメモリカード３８０に格納する（ステップＳ１１８）。そして、バックアップ処理は終了する。
【０１２５】
これに対して、バックアップデータ４００の出力先がサポート装置３００である場合（ステップＳ１１６において「サポート装置」）、マイクロプロセッサ１１２は、バックアップデータ４００をサポート装置３００へ転送する（ステップＳ１２０）。そして、バックアップ処理は終了する。
【０１２６】
図１７を参照して、マイクロプロセッサ１１２は、リストア処理の開始条件が成立したか否かを判断する（ステップＳ２００）。このリストア処理の開始条件は、サポート装置３００などから明示的な指示を受けた場合や、メモリカード３８０が装着された場合などを含む。リストア処理の開始条件が成立していなければ（ステップＳ２００においてＮＯ）、ステップＳ２００の処理が繰返される。
【０１２７】
これに対して、リストア処理の開始条件が成立していれば（ステップＳ２００においてＹＥＳ）、マイクロプロセッサ１１２は、バックアップデータ４００の入力先を判断する（ステップＳ２０２）。なお、このバックアップデータ４００の入力先は、成立したリストア処理の開始条件に関連付けて判断されてもよい。
【０１２８】
バックアップデータ４００の入力先がメモリカード３８０である場合（ステップＳ２０２において「メモリカード」）、マイクロプロセッサ１１２は、不揮発性メモリ１１４にテンポラリフォルダを作成し、メモリカード３８０に格納されているバックアップデータ４００を読み出して、テンポラリフォルダにコピーする（ステップＳ２０４）。
【０１２９】
これに対して、バックアップデータ４００の入力先がサポート装置３００である場合（ステップＳ２０２において「サポート装置」）、マイクロプロセッサ１１２は、不揮発性メモリ１１４にテンポラリフォルダを作成し、サポート装置３００から転送されるバックアップデータ４００をテンポラリフォルダにコピーする（ステップＳ２０６）。
【０１３０】
続いて、マイクロプロセッサ１１２は、テンポラリフォルダ内のバックアップデータ４００に対して分解処理を行う（ステップＳ２０８）。この分解処理によって、テンポラリフォルダ内には、ＣＰＵデータ４０２およびスレーブ設定情報４０４がリストアされる。そして、マイクロプロセッサ１１２は、テンポラリフォルダ内のＣＰＵデータ４０２で不揮発性メモリ１１４の内容を上書きする（ステップＳ２１０）。
【０１３１】
続いて、マイクロプロセッサ１１２は、ＣＰＵデータ４０２に含まれるデバイス構成情報１５２と現在のデバイス構成（実機構成）とを比較し、両者が一致しているか否かを判断する（ステップＳ２１２）。デバイス構成情報１５２と実機構成とが一致していなければ（ステップＳ２１２においてＮＯ）、マイクロプロセッサ１１２は、バックアップデータ４００の生成時におけるデバイス構成と実機構成とが一致していないことを出力する（ステップＳ２１４）。この出力形態としては、リストア処理に係るログファイルにその内容を出力する、接続されているサポート装置３００の画面上にその内容を通知する、サポート装置３００またはＣＰＵユニット１１０から音声ガイダンスを発するといった方法を用いることができる。
【０１３２】
デバイス構成情報１５２と実機構成とが一致していれば（ステップＳ２１２においてＹＥＳ）、ステップＳ２１４の処理はスキップされる。
【０１３３】
続いて、マイクロプロセッサ１１２は、バックアップデータ４００から得られたＣＰＵデータ４０２に含まれるデバイス構成情報１５２を参照して、フィールドネットワーク１０８のメンバとして登録されている１つのスレーブ装置をリストア対象として選択する（ステップＳ２１６）。そして、マイクロプロセッサ１１２は、リストア対象のスレーブ装置に対して、リストア処理を適切に実行できるか否かを判断する（ステップＳ２１８）。より具体的には、マイクロプロセッサ１１２は、リストア対象のスレーブ装置について、ネットワーク接続が有効になっているか、および／または、フィールドネットワーク１０８上に存在しているかを判断する。
【０１３４】
リストア対象のスレーブ装置に対して、リストア処理を適切に実行できると判断されると（ステップＳ２１８においてＹＥＳ）、マイクロプロセッサ１１２は、テンポラリフォルダ内のリストア対象のスレーブ装置についてのスレーブ設定情報４０４で不揮発性メモリ１１４の内容を上書きする（ステップＳ２２０）。続いて、マイクロプロセッサ１１２は、リストア対象のスレーブ装置に対して転送すべきデータ（例えば、プログラムなど）がテンポラリフォルダ内に存在するか否かを判断する（ステップＳ２２２）。すなわち、スレーブ装置の中には、その内部にユーザプログラムや設定値を保持するスレーブ装置も存在し、そのようなスレーブ装置については、ＣＰＵユニット１１０から必要なデータ（ユーザプログラムや設定値）へ送信される。リストア対象のスレーブ装置に対して転送すべきデータがテンポラリフォルダ内に存在していれば（ステップＳ２２２においてＹＥＳ）、マイクロプロセッサ１１２は、フィールドネットワーク１０８を介して、リストア対象のスレーブ装置に対して対応するデータを送信する（ステップＳ２２４）。リストア対象のスレーブ装置に対して転送すべきデータがテンポラリフォルダ内に存在していなければ（ステップＳ２２２においてＮＯ）、ステップＳ２２４の処理はスキップされる。
【０１３５】
そして、マイクロプロセッサ１１２は、フィールドネットワーク１０８のメンバとして登録されているすべてのスレーブ装置についてリストア対象としての選択が完了したか否かを判断する（ステップＳ２２６）。フィールドネットワーク１０８のメンバとして登録されているすべてのスレーブ装置についてリストア対象としての選択が完了していなければ（ステップＳ２２６においてＮＯ）、または、リストア対象のスレーブ装置に対して、リストア処理を適切に実行できると判断されなければ（ステップＳ２１８においてＮＯ）、マイクロプロセッサ１１２は、フィールドネットワーク１０８のメンバとして登録されている未選択のスレーブ装置をリストア対象として選択する（ステップＳ２２８）。そして、ステップＳ２１８以下の処理が繰返される。
【０１３６】
これに対して、フィールドネットワーク１０８のメンバとして登録されているすべてのスレーブ装置についてリストア対象としての選択が完了していれば（ステップＳ２２６においてＹＥＳ）、リストア処理は終了する。
【０１３７】
［ｊ３：利点］
実施の形態１によれば、共通のデバイスを有する複数の設備（制御システム）に生じた何らかの異常を復旧させる必要がある場合に、少なくとも共通のデバイスについては、他の設備（制御システム）から生成したバックアップデータを用いてリストアすることができる。そのため、制御システムを復旧させるためのリストア処理をより簡素化できる。
【０１３８】
＜Ｋ．実施の形態２＞
実施の形態２として、リストア時には存在しなかったスレーブ装置（デバイス）が事後的に追加された場合に、追加的にリストア処理を実行できる適用例について説明する。すなわち、実施の形態２においては、リストア時に存在しなかったスレーブ装置が追加された場合、当該追加されたスレーブ装置対して自動的にリストアを行う。
【０１３９】
［ｋ１：処理概要］
図１８は、実施の形態２に係るリストア処理について説明するための模式図である。図１８（ａ）に示すデバイス構成においては、マスタ装置として機能するＰＬＣ１００のスレーブ装置として、スレーブ装置Ａ〜Ｃ（搬送チャンバー１０）およびスレーブ装置Ｊ〜Ｌ（第１プロセスチャンバー２０）が接続されているとする。このとき、本来存在すべきスレーブ装置Ｓ，Ｔ（第４プロセスチャンバー２６）については、存在していないとする。但し、バックアップデータ４００は、すべてのスレーブ装置に関するデータ（搬送チャンバー１０、第１プロセスチャンバー２０、第４プロセスチャンバー２６）を含む。
【０１４０】
図１８（ａ）に示すデバイス構成において、リストア処理が実行されると、スレーブ装置Ａ〜Ｃ（搬送チャンバー１０）およびスレーブ装置Ｊ〜Ｌ（第１プロセスチャンバー２０）がリスト対象になる。つまり、バックアップデータ４００のうち、搬送チャンバー１０および第１プロセスチャンバー２０に関するデータを用いてリストア処理が実行される。
【０１４１】
その後、図１８（ｂ）に示すように、スレーブ装置Ｓ，Ｔ（第４プロセスチャンバー２６）が追加されたとする。このような状況は、第４プロセスチャンバー２６に係る設備が保守や修理などで電源が遮断されているような場合や、装置そのものが取り外されているような場合に生じ得る。
【０１４２】
実施の形態２においては、図１８（ａ）に示すデバイス構成から図１８（ｂ）に示すデバイス構成に変更されたことをトリガとして、リストア処理が追加的に実行される。つまり、バックアップデータ４００に含まれる第４プロセスチャンバー２６に関するデータを用いてリストア処理が実行される。
【０１４３】
実施の形態２に係るリストア処理は、スレーブ装置の追加によって、追加のリストア処理が自動的に実行されるので、知識の乏しいエンドユーザであっても、適切なリストア処理を実現できる。すなわち、実施の形態２に係る自動的なリストア処理が実装されていなければ、ユーザは、変更後のデバイス構成を考慮して、サポート装置３００上で対象となるデータを個別に選択して、リストア処理を実行する必要があるが、このような操作は非常に手間であり、そのユーザの知識によってはリストア処理を適切に行えないという問題があった。
【０１４４】
バックアップデータ４００は、典型的には、ＣＰＵユニット１１０の不揮発性メモリ１１４（図３）に予め保持されているとする。あるいは、ＣＰＵユニット１１０に装着されるメモリカード３８０に、バックアップデータ４００を保持しておいてもよい。
【０１４５】
図１８に示す追加的なリストア処理は、典型的には、スレーブ装置が追加されたことをＣＰＵユニット１１０が検知した場合、および／または、ネットワーク接続が無効から有効へ変更された場合に、実行される。すなわち、ＰＬＣ１００（ＣＰＵユニット１１０）は、いずれかのスレーブ装置のネットワーク接続が有効になった場合、および、いずれかのスレーブ装置がフィールドネットワーク１０８上に存在するようになった場合のうち少なくとも一方において、バックアップデータ４００に含まれる対応するスレーブ設定情報１５４をリストアする。
【０１４６】
［ｋ２：処理手順］
次に、実施の形態２に係るバックアップ処理およびリストア処理の手順について説明する。バックアップ処理については、上述の実施の形態１（図１６）と同様であるので、詳細な説明は繰返さない。
【０１４７】
リストア処理については、追加されたスレーブ装置に対するリストア処理が未実施である場合に限って、追加的なリストア処理を実行する場合（以下に説明する「未実施の場合に限って追加的なリストア処理を実施」）と、何らかのスレーブ装置が追加されると、当該追加されたスレーブ装置に対してリストア処理を常に実行する場合（以下に説明する「常に追加的なリストア処理を実施」）とが考えられる。以下、各場合の処理について、その詳細を説明する。
【０１４８】
［ｋ３：リストア処理（その１：未実施の場合に限って追加的なリストア処理を実施）］
図１９は、実施の形態２に係るリストア処理（その１）の手順を示すフローチャートである。図１９および後述の図２１に示す各ステップは、典型的には、ＣＰＵユニット１１０のマイクロプロセッサ１１２（図３）がファームウェア１９０（図４）を実行することで実現される。但し、これらの処理の一部または全部をＡＳＩＣなどの集積回路を用いて実現してもよい。
【０１４９】
図１９に示すフローチャートは、図１７に示す実施の形態１に係るリストア処理の手順を示すフローチャートに比較して、ステップＳ２２４とステップＳ２２６の後にステップＳ２２５の処理が実行される点のみが異なっている。すなわち、マイクロプロセッサ１１２は、リストア対象のスレーブ装置に対して対応するデータを送信する（ステップＳ２２４）と、または、リストア対象のスレーブ装置に対して転送すべきデータがテンポラリフォルダ内に存在していなければ（ステップＳ２２２においてＮＯ）、リストア対象のスレーブ装置に対するリストア処理の完了を記録する（ステップＳ２２５）。
【０１５０】
図２０は、実施の形態２に係るリストア処理（その１）におけるリストア処理の完了の記録に係る情報の一例を示す模式図である。図２０を参照して、ノード番号およびメンバとして登録されているスレーブ装置の情報に関連付けて、リストア処理の完了の有無が記録される。すなわち、各スレーブ装置について、リストア処理が実施済であるか否かを示す情報が記録される。図２０に示す例では、「Ｙ」はリストア処理が実施済であることを示し、「Ｎ」はリストア処理が未実施であることを示す。何らかのスレーブ装置が追加されると、このリストア処理の完了の記録に係る情報が参照されて、追加的なリストア処理が実行される。
【０１５１】
図２１は、実施の形態２に係る追加的なリストア処理（その１）の手順を示すフローチャートである。図２１を参照して、マイクロプロセッサ１１２は、追加的なリストア処理を実行すべきか否かを判断する（ステップＳ２５０）。具体的には、マイクロプロセッサ１１２は、スレーブ装置が追加されたか否か、および／または、ネットワーク接続が無効から有効へ変更されたか否かを判断する。なお、マスタ装置として機能するＰＬＣ１００（ＣＰＵユニット１１０）がフィールドネットワーク１０８の状態を常時監視しているので、この常時監視の情報に基づいて、スレーブ装置が追加されたか否かを判断できる。また、ネットワーク接続が無効から有効へ変更されたか否かについては、デバイス構成情報１５２が変更されたか否かに基づいて判断できる。
【０１５２】
追加的なリストア処理を実行すべきと判断されなければ（ステップＳ２５０においてＮＯ）、ステップＳ２５０の処理が繰返される。
【０１５３】
これに対して、追加的なリストア処理を実行すべきと判断されれば（ステップＳ２５０においてＹＥＳ）、マイクロプロセッサ１１２は、追加されたスレーブ装置のうち１つのスレーブ装置を追加的なリストア対象として選択する（ステップＳ２５２）。そして、マイクロプロセッサ１１２は、追加的なリストア対象のスレーブ装置について、リストア処理を実施済であるか否かを判断する（ステップＳ２５４）。この判断は、図２０に示すようなリストア処理の完了の記録に係る情報に基づいて実施される。
【０１５４】
リストア処理を実施済でなければ（ステップＳ２５４においてＮＯ）、マイクロプロセッサ１１２は、追加的なリストア対象のスレーブ装置に対して転送すべきデータ（例えば、プログラムなど）がテンポラリフォルダ内に存在するか否かを判断する（ステップＳ２５６）。追加的なリストア対象のスレーブ装置に対して転送すべきデータがテンポラリフォルダ内に存在していれば（ステップＳ２５６においてＹＥＳ）、マイクロプロセッサ１１２は、フィールドネットワーク１０８を介して、追加的なリストア対象のスレーブ装置に対して対応するデータを送信する（ステップＳ２５８）。追加的なリストア対象のスレーブ装置に対して転送すべきデータがテンポラリフォルダ内に存在していなければ（ステップＳ２５６においてＮＯ）、ステップＳ２５８の処理はスキップされる。
【０１５５】
続いて、マイクロプロセッサ１１２は、追加的なリストア対象のスレーブ装置に対するリストア処理の完了を記録する（ステップＳ２６０）。この時点で、当該スレーブ装置のネットワーク接続を有効化できる。
【０１５６】
ステップＳ２６０の実行後、または、リストア処理を実施済である場合（ステップＳ２５４においてＹＥＳ）に、マイクロプロセッサ１１２は、追加されたすべてのスレーブ装置について追加的なリストア対象としての選択が完了したか否かを判断する（ステップＳ２６２）。追加されたすべてのスレーブ装置について追加的なリストア対象としての選択が完了していなければ（ステップＳ２６２においてＮＯ）、マイクロプロセッサ１１２は、追加されたスレーブ装置のうち未選択のスレーブ装置を追加的なリストア対象として選択する（ステップＳ２６４）。そして、ステップＳ２５４以下の処理が繰返される。
【０１５７】
追加されたすべてのスレーブ装置について追加的なリストア対象としての選択が完了していれば（ステップＳ２６２においてＹＥＳ）、処理は終了する。
【０１５８】
［ｋ４：リストア処理（その２：常に追加的なリストア処理を実施）］
実施の形態２に係るリストア処理（その２）の手順は、図１７に示す実施の形態１に係るリストア処理の手順を示すフローチャートと同様であるので、詳細な説明は繰返さない。つまり、常に追加的なリストア処理を実施する場合には、リストア処理が未実施であるか否かを記録しておく必要がないので、リストア処理の完了が記録されない。
【０１５９】
図２２は、実施の形態２に係る追加的なリストア処理（その２）の手順を示すフローチャートである。図２２に示すフローチャートは、図２１に示す実施の形態２に係るリストア処理（その２）の手順を示すフローチャートをより簡素化したものである。なお、図２２に示す処理のうち、図２１に示す処理と実質的に同一であるものについては、同一のステップ番号を付与している。
【０１６０】
図２２を参照して、マイクロプロセッサ１１２は、追加的なリストア処理を実行すべきか否かを判断する（ステップＳ２５０）。追加的なリストア処理を実行すべきと判断されなければ（ステップＳ２５０においてＮＯ）、ステップＳ２５０の処理が繰返される。
【０１６１】
追加的なリストア処理を実行すべきと判断されれば（ステップＳ２５０においてＹＥＳ）、マイクロプロセッサ１１２は、追加されたスレーブ装置のうち１つのスレーブ装置を追加的なリストア対象として選択する（ステップＳ２５２）。マイクロプロセッサ１１２は、追加的なリストア対象のスレーブ装置に対して転送すべきデータ（例えば、プログラムなど）がテンポラリフォルダ内に存在するか否かを判断する（ステップＳ２５６）。追加的なリストア対象のスレーブ装置に対して転送すべきデータがテンポラリフォルダ内に存在していれば（ステップＳ２５６においてＹＥＳ）、マイクロプロセッサ１１２は、フィールドネットワーク１０８を介して、追加的なリストア対象のスレーブ装置に対して対応するデータを送信する（ステップＳ２５８）。
【０１６２】
ステップＳ２５８の実行後、または、追加的なリストア対象のスレーブ装置に対して転送すべきデータがテンポラリフォルダ内に存在していない場合（ステップＳ２５６においてＮＯ）に、マイクロプロセッサ１１２は、追加されたすべてのスレーブ装置について追加的なリストア対象としての選択が完了したか否かを判断する（ステップＳ２６２）。追加されたすべてのスレーブ装置について追加的なリストア対象としての選択が完了していなければ（ステップＳ２６２においてＮＯ）、マイクロプロセッサ１１２は、追加されたスレーブ装置のうち未選択のスレーブ装置を追加的なリストア対象として選択する（ステップＳ２６４）。そして、ステップＳ２５６以下の処理が繰返される。
【０１６３】
追加されたすべてのスレーブ装置について追加的なリストア対象としての選択が完了していれば（ステップＳ２６２においてＹＥＳ）、処理は終了する。
【０１６４】
［ｋ５：利点］
実施の形態２によれば、リストア処理の後、事後的に追加されたデバイスに対するリストア処理が自動的に実行される。そのため、予め用意されたバックアップデータに含まれるデバイスの範囲であれば、リストア処理の実行後に追加されたデバイスであっても、必要な設定情報を転送することができる。よって、知識の乏しいエンドユーザであっても、デバイスの交換や設備の保全の後に、制御システムを即座にアクティブな状態にできる。
【０１６５】
＜Ｌ．実施の形態３＞
実施の形態３として、上述の図８〜図１２を参照して説明したように、互いに類似したデバイス構成を有する制御システムを複数構築するような場合には、すべてのスレーブ装置を含む制御システム（基本的なデバイス構成）に対応するバックアップデータ４００をサポート装置３００にて予め用意しておき、各制御システム（ＰＬＣ１００）に格納しておく。すなわち、バックアップデータ４００は、サポート装置３００から提供される。そして、各制御システムでは、サポート装置３００からのバックアップデータ４００のうち、各デバイス構成に応じて必要なデータのみを使用してリストア処理を実行する。
【０１６６】
このような方法を採用することで、共通のバックアップデータ４００（すべてのデバイスに関する設定情報を含む）のみを管理しておけばよく、管理手続を簡素化できる。
【０１６７】
図２３は、実施の形態３に係るバックアップ処理／リストア処理の概要を説明するための模式図である。図２３には、搬送チャンバー１０と第１プロセスチャンバー２０とからなる第１制御システム（第１ＰＬＣ１００を含む）と、搬送チャンバー１０と第４プロセスチャンバー２６とからなる第４制御システム（第４ＰＬＣ１００）とが存在している例を示す。
【０１６８】
この場合には、サポート装置３００にて、すべてのデバイスを含むバックアップデータ４００が生成される。バックアップデータ４００の生成には、実際のＰＬＣ１００やスレーブ装置は必要なく、いわゆるオフラインで生成できる。すなわち、サポート装置３００単独でバックアップデータ４００を生成できる。このバックアップデータ４００は、搬送チャンバー１０、第１プロセスチャンバー２０、および第４プロセスチャンバー２６に関する設定情報を含む。
【０１６９】
第１制御システム（第１ＰＬＣ１００）は、バックアップデータ４００に含まれる搬送チャンバー１０および第１プロセスチャンバー２０に関する設定情報のみを用いて、リストア処理を実行する。すなわち、第１ＰＬＣ１００は、第４プロセスチャンバー２６に関する設定情報を無視する。
【０１７０】
一方、第４制御システム（第４ＰＬＣ１００）は、バックアップデータ４００に含まれる搬送チャンバー１０および第４プロセスチャンバー２６に関する設定情報のみを用いて、リストア処理を実行する。すなわち、第４ＰＬＣ１００は、第１プロセスチャンバー２０に関する設定情報を無視する。
【０１７１】
なお、サポート装置３００単体ではなく、搬送チャンバー１０、第１プロセスチャンバー２０、および第４プロセスチャンバー２６のすべてを含む実際の制御システムからバックアップデータ４００を生成してもよい。
【０１７２】
図２３を参照して、より具体的な処理手順の一例を説明する。まず、ユーザ（システム開発者）は、サポート装置３００にて、基本的なデバイス構成（搬送チャンバー１０、第１プロセスチャンバー２０、および第４プロセスチャンバー２６を含む制御システム）に係るプロジェクトを作成する（シーケンスＳＱ１００）。このプロジェクトが完成した時点で、ユーザは、サポート装置３００上でバックアップデータ４００を生成する（シーケンスＳＱ１０２）。
【０１７３】
続いて、ユーザは、シーケンスＳＱ１００において作成した基本的なデバイス構成に係るプロジェクトを、第１制御システムに適合するように更新する（シーケンスＳＱ１０４）。そして、ユーザは、更新後のプロジェクトをコンパイルすることで生成されるユーザプログラム、デバイス構成情報、およびスレーブ設定情報を第１ＰＬＣ１００へ送信する（シーケンスＳＱ１０６）。
【０１７４】
同様に、ユーザは、シーケンスＳＱ１００において作成した基本的なデバイス構成に係るプロジェクトを、第４制御システムに適合するように更新する（シーケンスＳＱ１０８）。そして、ユーザは、更新後のプロジェクトをコンパイルすることで生成されるユーザプログラム、デバイス構成情報、およびスレーブ設定情報を第４ＰＬＣ１００へ送信する（シーケンスＳＱ１１０）。
【０１７５】
そして、ユーザは、シーケンスＳＱ１０２において作成したバックアップデータ４００を第１ＰＬＣ１００および第４ＰＬＣ１００へ送信する（シーケンスＳＱ１１２）。
【０１７６】
第１ＰＬＣ１００は、バックアップデータ４００を格納するとともに、要求に応じて、バックアップデータ４００を用いてリストア処理を実行する（シーケンスＳＱ１１４）。このリストア処理において、第１ＰＬＣ１００は、バックアップデータ４００に含まれる搬送チャンバー１０および第１プロセスチャンバー２０に係る設定情報のみを使用する。
【０１７７】
同様に、第４ＰＬＣ１００は、バックアップデータ４００を格納するとともに、要求に応じて、バックアップデータ４００を用いてリストア処理を実行する（シーケンスＳＱ１１６）。このリストア処理において、第１ＰＬＣ１００は、バックアップデータ４００に含まれる搬送チャンバー１０および第４プロセスチャンバー２６に係る設定情報のみを使用する。
【０１７８】
実施の形態３によれば、すべてのデバイスを含む共通のバックアップデータを生成しておけば、それらのデバイスの全部または一部を含むいずれの制御システム（デバイス構成）に対しても、当該共通のバックアップデータを用いてリストア処理を行える。そのため、バックアップデータの管理手続を簡素化できる。また、共通のバックアップデータはサポート装置によって生成できるので、たとえ、すべてのデバイスを含む制御システム（デバイス構成）が存在しない場合であっても、当該共通のバックアップデータを生成できる。
【０１７９】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【０１８０】
１  半導体製造装置、２  フィールドネットワーク、１０  搬送チャンバー、１２  搬送ロボット、２０，２２，２４，２６  プロセスチャンバー、２１，２３，２５，２７，３１，３５  ゲートバルブ、３０，３４  ロードロック室、３３，３７  連通部、１００  ＰＬＣ、１０２  ＵＳＢコネクタ、１０４  フィールドネットワークコネクタ、１０６  メモリカードインターフェイス、１１０  ＣＰＵユニット、１１１  チップセット、１１２  マイクロプロセッサ、１１３  メインメモリ、１１４  不揮発性メモリ、１１６  フィールドネットワークコントローラ、１１７  ＰＬＣシステムバスコントローラ、１２０，２０４  ＩＯユニット、１３０  電源ユニット、２００  リモートＩＯターミナル、２０２  通信カプラ、２１０  サーボモータドライバ、２１２  サーボモータ、２５０  通信部、２５２  入出力部、２５４  ドライブ回路、２６０  演算処理部、２６２  プロセッサ、２６４  メモリ、３００  サポート装置、３０２  ＣＰＵ、３０４  ＲＯＭ、３０６  ＲＡＭ、３０８  ハードディスク、３１０  キーボード、３１２  マウス、３１４  ディスプレイ、３１６  ＣＤ−ＲＯＭ駆動装置、３２０  バス、３８０  メモリカード、３９０  ＣＤ−ＲＯＭ。
【図１】
2014146077.tif 000003
【図２】
2014146077.tif 000004
【図３】
2014146077.tif 000005
【図４】
2014146077.tif 000006
【図５】
2014146077.tif 000007
【図６】
2014146077.tif 000008
【図７】
2014146077.tif 000009
【図８】
2014146077.tif 000010
【図９】
2014146077.tif 000011
【図１０】
2014146077.tif 000012
【図１１】
2014146077.tif 000013
【図１２】
2014146077.tif 000014
【図１３】
2014146077.tif 000015
【図１４】
2014146077.tif 000016
【図１５】
2014146077.tif 000017
【図１６】
2014146077.tif 000018
【図１７】
2014146077.tif 000019
【図１８】
2014146077.tif 000020
【図１９】
2014146077.tif 000021
【図２０】
2014146077.tif 000022
【図２１】
2014146077.tif 000023
【図２２】
2014146077.tif 000024
【図２３】
2014146077.tif 000025