(58)【調査した分野】(Int.Cl.,DB名)
前記処理部は、いずれかのスレーブ装置のネットワーク接続が有効になった場合、または、いずれかのスレーブ装置が前記ネットワーク上に存在するようになった場合に、前記バックアップデータに含まれる対応する設定情報をリストアする、請求項1または2に記載の制御装置。
前記処理部は、前記バックアップ処理において、前記制御装置のCPUユニットに保持されているデータと、それぞれの前記スレーブ装置についての設定情報とをパッケージ化することで、前記バックアップデータを生成する、請求項1〜4のいずれか1項に記載の制御装置。
【発明を実施するための形態】
【0014】
本発明の実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰返さない。
【0015】
<A.制御システムの適用例>
まず、本実施の形態に係る制御システムを用いて制御するデバイス構成の一例について説明する。
図1は、本実施の形態に係る制御システムを用いて制御するデバイス構成の一例を説明するための図である。
図1には、マルチチャンバー式の半導体製造装置の構成例を示す。具体的には、
図1(a)に示す半導体製造装置1は、搬送チャンバー10を中心として、複数のプロセスチャンバー20,22,24,26が設けられた構成を示す。各プロセスチャンバーにおいては、基板に対する真空処理が実行される。プロセスチャンバー20,22,24,26と搬送チャンバー10との間には、それぞれゲートバルブ21,23,25,27が設けられており、搬送チャンバー10との間で連通状態/遮断状態とを切替える。搬送チャンバー10には、搬送ロボット12が設けられている。搬送ロボット12は、処理前の基板をプロセスチャンバー20,22,24,26のいずれかに挿入し、あるいは、プロセスチャンバー20,22,24,26から処理後の基板を取り出す。
【0016】
搬送チャンバー10には、ロードロック室30および34が設けられている。ロードロック室30および34は、処理対象の基板の出し入れを行うとともに、搬送チャンバー10およびプロセスチャンバー20,22,24,26の内部を真空に維持する。より具体的には、ロードロック室30は、連通部33を介して搬送チャンバー10に接続されており、搬送チャンバー10の入側および出側には、ゲートバルブ31および32が設けられている。同様に、ロードロック室34は、連通部37を介して搬送チャンバー10に接続されており、搬送チャンバー10の入側および出側には、ゲートバルブ35および36が設けられている。処理対象の基板の出し入れには、ロードロック室30および34が交互に用いられる。
【0017】
図1(a)に示す半導体製造装置1を基本構成として、バリエーションとして、
図1(b)に示す半導体製造装置2および
図1(c)に示す半導体製造装置3が存在するとする。より具体的には、
図1(b)に示す半導体製造装置2は、
図1(a)に示す半導体製造装置1に比較して、第1プロセスチャンバー20およびゲートバルブ21を取り除いたものに相当し、
図1(c)に示す半導体製造装置3は、
図1(a)に示す半導体製造装置1に比較して、第4プロセスチャンバー26およびゲートバルブ27を取り除いたものに相当する。
【0018】
このようなバリエーションの半導体製造装置2および3に係る制御システムを構築するにあたって、半導体製造装置1に係る制御システムの資産を最大限利用したいというニーズが存在する。より具体的には、ある装置に向けられた制御システムを構築するために必要なプログラムおよび設定情報(以下、これらの構築に必要なデータ群を「プロジェクト」と総称する。)を用いて、異なる構成を有する装置に向けられた制御システムを構築したいというニーズがある。
【0019】
例えば、
図1(a)〜(c)に示す半導体製造装置1〜3を、1つのプロジェクトを用いて管理したいというニーズがある。あるいは、あるプロセスチャンバーを物理的に取り外して、別のプロセスチャンバーを取り付けることができる半導体製造装置を、1つのプロジェクトで管理したいというニーズがある。
【0020】
このようなニーズに対して、1つのプロジェクトを作成し、この作成したプロジェクトを適宜手直しすることで、類似した制御システムを構築するという方法がとられる。
【0021】
本実施の形態は、典型的には、このような部分的に共通するプロジェクトを用いて構築された制御システムや、状況に応じて構成が変更される装置に適用される制御システムに対して、バックアップ処理やリストア処理を柔軟に行うことができる構成を提供する。
【0022】
<B.制御システムの全体構成例>
本実施の形態に係るバックアップ処理およびリストア処理の詳細について説明する前に、本実施の形態に係る制御システムの全体構成例について説明する。
図2は、本実施の形態に係る制御システムの構成例を示す模式図である。
図2に示す制御システムは、
図1(a)に示す半導体製造装置1に向けられたものである。
【0023】
図2を参照して、制御システムSYSは、PLC100と、ネットワークを介してPLC100に接続される、サーボモータドライバ210およびリモートIOターミナル200とを含む。本実施の形態においては、ネットワークとしてフィールドネットワーク108が採用されている。PLC100は、フィールドネットワーク108において、通信処理を管理する「マスタ装置」として機能する。このマスタ装置は、「親局」や「管理局」と称されることもある。マスタ装置であるPLC100との対比の意味で、フィールドネットワーク108を介してPLC100に接続されるサーボモータドライバ210やリモートIOターミナル200を「スレーブ装置」または「デバイス」と称する。フィールドネットワーク108上の各スレーブ装置は、ノード番号によって識別されるとする。このように、マスタ装置であるPLC100は、ネットワークにおいてマスタ装置として機能するとともに、当該ネットワークを介して1または複数のスレーブ装置を制御する。
【0024】
このようなフィールドネットワーク108としては、各種の産業用のイーサネット(登録商標)を用いることができる。産業用のイーサネット(登録商標)としては、例えば、EtherCAT(登録商標)、PROFINET(登録商標)、MECHATROLINK(登録商標)−III、Powerlink、SERCOS(登録商標)−III、CIP Motionなどがある。さらに、産業用のイーサネット(登録商標)以外のフィールドネットワークを用いてもよい。例えば、DeviceNet、CompoNet(登録商標)などを用いてもよい。
【0025】
PLC100は、CPUユニット110と、IOユニット120と、電源ユニット130とを含む。CPUユニット110は、主たる演算処理を実行する処理部であり、後述するようなプログラムおよび設定情報などに基づいて演算処理を実行する。IOユニット120は、CPUユニット110と図示しないPLC内部バスを介してデータを互いに遣り取りできるように構成された機能ユニットの一例である。より具体的には、IOユニット120は、一般的な入出力処理に関するユニットであり、オン/オフといった2値化されたデータの入出力を司る。すなわち、IOユニット120は、検出スイッチなどのセンサが何らかの対象物を検出している状態(オン)、および、何らの対象物も検出していない状態(オフ)のいずれであるかという情報を収集する。また、IOユニット120は、リレーやアクチュエータといった出力先に対して、活性化するための指令(オン)および不活性化するための指令(オフ)のいずれかを出力する。
【0026】
IOユニット120に代えて、あるいは、加えて、アナログデータの入出力、温度制御、特定の通信方式による通信といった、IOユニット120ではサポートしない機能を有する特殊ユニットを装着することもできる。
【0027】
電源ユニット130は、CPUユニット110やIOユニット120に対して、適切な電圧の電源を供給する。
【0028】
PLC100には、接続ケーブルなどを介してサポート装置300が接続される。より具体的には、PLC100のCPUユニット110には、サポート装置300と接続するためのUSB(Universal Serial Bus)コネクタ102が設けられている。後述するように、サポート装置300において各種処理を実現するためのプログラムは、CD−ROM(Compact Disk-Read Only Memory)390などの光学記録媒体に格納されて流通する。
【0029】
また、PLC100のCPUユニット110には、メモリカード380を装着するためのメモリカードインターフェイス106が設けられている。メモリカード380には、後述するようなバックアップデータが格納される。
【0030】
図2には、
図1(a)に示す半導体製造装置1を構成する搬送チャンバー10およびプロセスチャンバー20,22,24,26の各々を制御するためのデバイスの一例を示す。このようなデバイスの一例として、搬送チャンバー10は、2つのサーボモータドライバ210およびリモートIOターミナル200を含む。これらの識別情報は、それぞれノード1,2,3であるとする。
【0031】
サーボモータドライバ210は、フィールドネットワーク108を介してCPUユニット110と接続されるとともに、CPUユニット110からの指令値に従ってサーボモータ212を駆動する。
【0032】
リモートIOターミナル200は、IOユニット120と同様に、一般的な入出力処理に関する処理を行う。より具体的には、リモートIOターミナル200は、フィールドネットワーク108でのデータ伝送に係る処理を行うための通信カプラ202と、1つ以上のIOユニット204とを含む。
【0033】
第1プロセスチャンバー20は、搬送チャンバー10と同様に、2つのサーボモータドライバ210およびリモートIOターミナル200を含む。これらの識別情報は、それぞれノード11,12,13であるとする。一方、第4プロセスチャンバー26は、1つのサーボモータドライバ210およびリモートIOターミナル200を含む。これらの識別情報は、それぞれノード41,42であるとする。
【0034】
<C.CPUユニット110の構成例>
次に、PLC100において主たる演算処理を実行するCPUユニット110の構成例について説明する。
図3は、本実施の形態に係るPLC100のCPUユニット110のハードウェア構成を示す模式図である。
【0035】
図3を参照して、PLC100のCPUユニット110は、上述のUSBコネクタ102およびメモリカードインターフェイス106に加えて、チップセット111と、マイクロプロセッサ112と、メインメモリ113と、不揮発性メモリ114と、フィールドネットワークコントローラ116と、PLCシステムバスコントローラ117とを含む。チップセット111と各コンポーネントとの間は、各種のバスを介してそれぞれ結合されている。
【0036】
チップセット111およびマイクロプロセッサ112は、典型的には、汎用的なコンピュータアーキテクチャに準じて構成される。すなわち、マイクロプロセッサ112は、チップセット111から内部クロックに従って順次供給される命令コードを解釈して実行する。チップセット111は、接続されている各コンポーネントとの間で内部的なデータを遣り取りするとともに、マイクロプロセッサ112に必要な命令コードを与える。チップセット111は、マイクロプロセッサ112での演算処理の実行の結果得られたデータなどをキャッシュする機能を有する。
【0037】
CPUユニット110は、記憶部として、メインメモリ113および不揮発性メモリ114を有する。メインメモリ113は、揮発性の記憶領域であり、マイクロプロセッサ112で実行されるプログラムを保持するとともに、プログラムの実行時の作業用メモリとしても使用される。不揮発性メモリ114は、後述するようなプログラムおよび設定情報などを不揮発的に保持する。
【0038】
USBコネクタ102は、サポート装置300とCPUユニット110とを接続するためのインターフェイスである。典型的には、サポート装置300から転送される実行可能なプログラムなどは、USBコネクタ102を介してCPUユニット110に取込まれる。
【0039】
CPUユニット110は、通信部として、フィールドネットワークコントローラ116およびPLCシステムバスコントローラ117を有する。これらのコントローラは、データの送信および受信を行う。
【0040】
フィールドネットワークコントローラ116は、フィールドネットワークコネクタ104を介してフィールドネットワーク108と接続される。PLCシステムバスコントローラ117は、内部バスを介して、IOユニット120(
図2)などと接続される。
【0041】
図4は、本実施の形態に係るPLC100のCPUユニット110のソフトウェア構成を示す模式図である。
図4を参照して、CPUユニット110の不揮発性メモリ114には、システム構成情報150と、ユーザプログラム160と、ライブラリプログラム170と、リアルタイムOS(Operating System)180と、ファームウェア190とを含む。
【0042】
システム構成情報150は、PLC100を含む制御システムの構成や設定を定義する情報を含む。具体的には、システム構成情報150は、デバイス構成情報152およびスレーブ設定情報154を含む。
【0043】
デバイス構成情報152は、フィールドネットワーク108のメンバとして登録されているスレーブ装置の各々についてのネットワーク接続の有効/無効の情報を含む。すなわち、デバイス構成情報152は、コントローラであるPLC100が管理するスレーブ装置についての有無の情報および接続形態の情報を含む。具体的には、
図2に示すような制御システムの構成、つまり、どのようなスレーブ装置が接続されており、かつ各スレーブ装置に対していずれのアドレス(ノード番号)が割り当てられているかが定義される。言い換えれば、デバイス構成情報152は、スレーブ装置の接続状態の情報、および/または、有効状態または無効状態の情報を含む。デバイス構成情報152のデータ構造の一例については、後述する。
【0044】
スレーブ設定情報154は、PLC100(CPUユニット110)でのプログラムの実行に必要なスレーブ装置毎の設定情報(パラメータや割当情報など)を含む。具体的には、スレーブ設定情報154は、各スレーブ装置について関連付けられた、ユーザプログラムや設定値を含む。すなわち、スレーブ設定情報154は、当該登録されているスレーブ装置を制御するために必要なパラメータを含む。さらに、スレーブ装置の内部にユーザプログラムや設定値を保持するものもあり、この場合には、スレーブ設定情報154は、各スレーブ装置に格納されるユーザプログラムや設定値を含み得る。
【0045】
ユーザプログラム160は、サポート装置300を用いてユーザが作成プログラムであり、制御対象の機械や設備に応じて任意に作成される。このユーザプログラム160は、典型的には、サポート装置300からPLC100(CPUユニット110)へ転送される。
【0046】
ライブラリプログラム170は、CPUユニット110がユーザプログラム160を実行する際に必要になる実行モジュールやサブルーチンを含む。ライブラリプログラム170は、PLC100(CPUユニット110)においてユーザプログラムを実行するための環境を提供するためのプログラムである。より具体的には、ライブラリプログラム170は、モーション演算モジュール172と、シーケンス命令処理モジュール174と、入出力処理モジュール176と、スケジューラ178とを含む。
【0047】
モーション演算モジュール172は、サーボモータドライバ210に対して各種指令を与えるためのモーション演算に係る関数を提供する。シーケンス命令処理モジュール174は、シーケンス制御に係る命令を処理するための関数を提供する。入出力処理モジュール176は、外部データの取得および内部データの出力に係る関数を提供する。
【0048】
スケジューラ178は、ユーザプログラム160に含まれる複数のタスクについて、それぞれの優先度や割込レベルに応じて、実行順序を最適化するための関数を提供する。
【0049】
なお、サポート装置300において必要なライブラリを組み込んだユーザプログラム(ダイナミックリンクにて作成された実行プログラム)を生成した場合には、これらのライブラリプログラム170をPLC100で保持しておく必要はない。
【0050】
リアルタイムOS180は、ユーザプログラム160を実行するための環境を提供する。より具体的には、リアルタイムOS180は、スケジューラ178と協働して、各タスクが予め定められた処理時間内に完了するように、ユーザプログラム160の実行順序などを最適化する。
【0051】
ファームウェア190は、リアルタイムOS180が起動する初期段階において実行されるプリミティブなプログラムである。典型的には、本実施の形態に係るバックアップ処理およびリストア処理については、ファームウェア190によって実現される。
【0052】
<D.サーボモータドライバ210の構成例>
次に、スレーブ装置の一例としてサーボモータドライバ210の構成例について説明する。
図5は、本実施の形態に係るサーボモータドライバ210のハードウェア構成を示す模式図である。サーボモータドライバ210は、フィールドネットワーク108を介してPLC100から送信される指令に従って、サーボモータ212を駆動する。より具体的には、サーボモータドライバ210は、通信部250と、入出力部252と、ドライブ回路254と、演算処理部260とを含む。
【0053】
通信部250は、フィールドネットワーク108を流れるデータを送受信する。すなわち、通信部250は、フィールドネットワーク108を介して受信したデータを演算処理部260へ出力するとともに、演算処理部260からのデータをフィールドネットワーク108を介して送信する。
【0054】
入出力部252は、IOユニット120(
図2)と同様に、一般的な入出力処理を実行する。すなわち、入出力部252は、検出スイッチなどの各種センサからの情報を収集するとともに、リレーやアクチュエータといった出力先に対して指令を与える。
【0055】
ドライブ回路254は、演算処理部260からの内部指令に従って、サーボモータ212を駆動するための駆動パルス列などを図示しない外部電源から生成する。より具体的には、ドライブ回路254は、インバータ回路やPWM(Pulse Width Modulation)変換回路などを含む。
【0056】
演算処理部260は、サーボモータドライバ210の主たる演算処理を実行する制御主体であり、プロセッサ262と、メモリ264とを含む。プロセッサ262は、メモリ264が保持しているプログラムや設定値に従って演算処理を実行し、通信部250、入出力部252、およびドライブ回路254に対して、必要な指令や演算結果を出力する。メモリ264は、プロセッサ262での演算処理に必要な各種データを保持する。このメモリ264が保持するデータは、フィールドネットワーク108を介して、PLC100(CPUユニット110)から送信されるものもある。
【0057】
なお、リモートIOターミナル200については、主たる部分において、PLC100に類似しているので、詳細な説明は行わない。
【0058】
<E.サポート装置300>
次に、本実施の形態に係るPLC100に接続されるサポート装置300について説明する。
図6は、本実施の形態に係るPLC100に接続されるサポート装置300のハードウェア構成を示す模式図である。サポート装置300は、典型的には、汎用のコンピュータで構成される。
【0059】
図6を参照して、サポート装置300は、OS(Operating System)を含む各種プログラムを実行するCPU302と、BIOS(Basic Input Output System)や各種データを格納するROM(Read Only Memory)304と、CPU302でのプログラムの実行に必要なデータを保持するための作業領域を提供するメモリRAM306と、CPU302で実行されるプログラムなどを不揮発的に保持するハードディスク(HDD)308とを含む。
【0060】
サポート装置300は、さらに、ユーザからの操作を受け付けるキーボード310およびマウス312と、情報をユーザに提示するためのディスプレイ314とを含む。さらに、サポート装置300は、PLC100(CPUユニット110)などと通信するための通信インターフェイス(IF)318を含む。
【0061】
後述するように、サポート装置300で実行されるサポートプログラム(
図7参照)は、CD−ROM390に格納されて流通する。このCD−ROM390に格納されたプログラムは、CD−ROM駆動装置316によって読取られ、ハードディスク308などへ格納される。あるいは、上位のホストコンピュータなどからネットワークを通じてプログラムをダウンロードするように構成してもよい。
【0062】
サポート装置300を構成する各コンポーネントは、バス320を介して互いに結合されている。
【0063】
図7は、本実施の形態に係るPLC100に接続されるサポート装置300のソフトウェア構成を示す模式図である。
図7を参照して、サポート装置300のハードディスク308には、典型的には、OS350と、サポートプログラム360と、プロジェクト370とが格納されている。
【0064】
OS350は、CPU302でプログラムを実行する環境を提供する。
サポートプログラム360は、PLC100での処理を制御するためのプログラムである。典型的には、サポートプログラム360は、デバッガプログラム362と、コンパイラプログラム364と、エディタプログラム366とを含む。
【0065】
デバッガプログラム362は、作成されたユーザプログラムの正当性を評価するとともに、不具合の修正を支援する。コンパイラプログラム364は、作成されたユーザプログラム(ソースプログラム)から実行可能なユーザプログラムを生成する。エディタプログラム366は、ユーザプログラムを生成するためのインターフェイスを提供する。
【0066】
プロジェクト370は、ある制御システムを構築するために必要なプログラムや設定値を含む。具体的には、プロジェクト370は、ユーザプログラム376と、デバイス構成情報372と、スレーブ装置毎のスレーブ設定情報374とを含む。これらのデータは、サポート装置300からPLC100へ転送されて、それぞれユーザプログラム160、デバイス構成情報152、およびスレーブ設定情報154として格納される。
【0067】
<F.制御システムの構築手順>
次に、
図1(a)〜(c)に示すような類似したデバイス構成に係る制御システムを構築する手順の一例について説明する。
図8は、本実施の形態に係る制御システムの構築手順について説明するための模式図である。
【0068】
図8を参照して、まず、ユーザ(システム開発者)は、基本的なデバイス構成(例えば、
図1(a)に示す半導体製造装置1)に係るプロジェクトを作成する((1)プロジェクト作成)。具体的には、ユーザは、目的に応じた処理を実現するためのユーザプログラム376(ソースプログラム)を作成するとともに、制御システムに含まれるスレーブ装置に係るデバイス構成情報372およびスレーブ設定情報374を設定する。
【0069】
これらの一連の設計・作成が完了すると、プロジェクト370のユーザプログラム376はコンパイルされて、デバイス構成情報372およびスレーブ設定情報374とともに、デバイス構成1に係る制御システムへ転送される((2)コンパイル+転送)。
【0070】
続いて、ユーザは、デバイス構成1に類似したデバイス構成2に応じて、先に作成したプロジェクト370を更新する((3)プロジェクト更新)。より具体的には、システム構成の違いに応じて、デバイス構成情報372およびスレーブ設定情報374が更新されたり、要求される処理内容の違いに応じてユーザプログラム376のロジックが変更されたりする。
【0071】
これらの更新が完了すると、プロジェクト370のユーザプログラム376はコンパイルされて、デバイス構成情報372およびスレーブ設定情報374とともに、デバイス構成2に係る制御システムへ転送される((4)コンパイル+転送)。
【0072】
同様に、ユーザは、デバイス構成1に類似したデバイス構成3に応じて、先に作成したプロジェクト370を更新する((5)プロジェクト更新)。より具体的には、システム構成の違いに応じて、デバイス構成情報372およびスレーブ設定情報374が更新されたり、要求される処理内容の違いに応じてユーザプログラム376のロジックが変更されたりする。これらの更新が完了すると、プロジェクト370のユーザプログラム376はコンパイルされて、デバイス構成情報372およびスレーブ設定情報374とともに、デバイス構成2に係る制御システムへ転送される((6)コンパイル+転送)。
【0073】
このように、本実施の形態に係るサポート装置300(サポートプログラム360)を用いることで、類似したデバイス構成に対する制御システムを容易に構築できる。
【0074】
図1に示すように、デバイス構成1には存在するが、デバイス構成2には存在しないスレーブ装置に関しては、デバイス構成情報372(最終的には、デバイス構成情報152としてPLC100に格納される)において「無効」に設定することで、関連する処理を無効化できる。すなわち、デバイス構成の相違を吸収できる。
【0075】
図9は、本実施の形態に係るデバイス構成情報372のデータ構造の一例を示す模式図である。
図9を参照して、デバイス構成情報372は、フィールドネットワーク108のメンバとして登録されているスレーブ装置の情報、および、スレーブ装置の各々についてのネットワーク接続の有効/無効の情報を含む。すなわち、
図9に示すデバイス構成情報372においては、フィールドネットワーク2のノード番号に区分された複数のエントリを含み、各エントリには、スレーブ装置を特定するための識別情報と、ネットワーク接続の有効/無効の情報とを含む。なお、識別情報としては、スレーブ装置の機器番号などを含む。
【0076】
ここで、ネットワーク接続の「無効」とは、マスタ装置であるPLC100とデータ通信を行うことを無視(don't care)することを意味する。「無効」状態においては、登録されている識別情報に一致する識別情報を有するスレーブ装置がフィールドネットワーク2に接続されているか否かについても判断されない。これに対して、ネットワーク接続の「有効」とは、マスタ装置であるPLC100とデータ通信を行うことが予定されていることを意味する。そのため、「有効」状態においては、登録されている識別情報に一致する識別情報を有するスレーブ装置がフィールドネットワーク2に接続されていなければ、エラーと判断される。
【0077】
つまり、あるスレーブ装置を「無効」に設定することで、当該スレーブ装置がフィールドネットワーク2に接続されていなくとも、エラーと判断されることはなく、この有効/無効の設定を利用することで、デバイス構成の相違をプロジェクト上で吸収することができる。
【0078】
次に、具体例を挙げて、制御システムの構築手順の一例について説明する。
図10は、
図8に示すデバイス構成1の一例を示す図である。
図11は、
図8に示すデバイス構成2および3の一例を示す図である。なお、
図10および
図11に示すデバイス構成の例は、
図2に示す制御システムに類似させている。
図12は、
図9に示すデバイス構成情報372の変更内容の一例を示す図である。
【0079】
図10に示すデバイス構成1においては、マスタ装置として機能するPLC100のスレーブ装置として、スレーブ装置A〜C(ノード1〜3)、スレーブ装置J〜L(ノード11〜13)、スレーブ装置S,T(ノード41,42)が接続されているとする。
図11(a)に示すデバイス構成2においては、
図10に示すデバイス構成1に比較してスレーブ装置J〜Lが取り除かれており、
図11(b)に示すデバイス構成3においては、
図10に示すデバイス構成1に比較してスレーブ装置S,Tが取り除かれているとする。
【0080】
図10に示すデバイス構成1については、
図9に示すようなデバイス構成情報372が設定される。これに対して、
図11(a)に示すデバイス構成2については、
図12(a)に示すようなデバイス構成情報372が設定される。つまり、存在しないスレーブ装置J〜Lの状態値が「有効」から「無効」に変更される。同様に、
図11(b)に示すデバイス構成3については、
図12(b)に示すようなデバイス構成情報372が設定される。つまり、存在しないスレーブ装置S,Tの状態値が「有効」から「無効」に変更される。
【0081】
図10および
図11に示すように、実際にスレーブ装置が存在しなくとも、デバイス構成情報372において、そのスレーブ装置の識別情報自体を削除する必要はない。それに代えて、存在しないスレーブ装置の状態値が「無効」に設定されるだけで済む。このようなデバイス構成情報372を採用することで、類似した複数のデバイス構成に対して制御システムを容易に構成できる。あるいは、状況に応じてデバイス構成が随時変更されるような場合に、PLC100で実行されるプログラムの変更を容易化できる。
【0082】
つまり、ユーザ(システム開発者)は、すべてのデバイス構成を含む基本的なプロジェクトを作成するとともに、デバイス構成情報372に対する設定を行うことで、各デバイスについて使用するか否かを選択する。このように、対象となる装置のデバイス構成に応じてデバイス構成情報372を適宜変更し、PLC100(CPUユニット110)へ転送することで実現できる。
【0083】
但し、上述の方法は、サポート装置300を用いてデバイス構成情報372を変更する必要があるため、プログラミングスキルの乏しいエンドユーザにとってみれば、この方法を行うことは難しい場合もある。このような場合には、デバイス構成情報372を動的に変更するようなモジュール(関数)を用いて、ユーザプログラムで、デバイス構成に応じてデバイス構成情報372を適宜変更するようにしてもよい。このとき、デバイス構成を変更したことは、ユーザ(オペレータ)が表示器などを操作してPLC100へ指示することになる。このようなデバイス構成情報372を動的に変更する方法を採用することで、制御システムを停止することなく、デバイス構成の変更に対応させることもできる。
【0084】
<G.バックアップ処理/リストア処理の概要>
次に、本実施の形態に係るPLC100に実装されているバックアップ処理/リストア処理の概要について説明する。
【0085】
図13は、本実施の形態に係るPLC100に実装されているバックアップ処理/リストア処理の概要を説明するための模式図である。
図13(a)はバックアップ処理の概要を示し、
図13(b)はリストア処理の概要を示す。
【0086】
[g1:バックアップ処理/リストア処理の利用例]
一般的に、機械や設備には、しばしばトラブルが発生し得る。例えば、連続休暇中に電源が遮断されており、その休暇明けに電源が投入されると、何らかの理由で正しく動作しない場合が発生し得る。その原因としては、機械的な故障も挙げられるが、バッテリで保持されるべきデータが消去しているとか、意図しないタイミングで上位計算機からデータが書き換えられているといった理由が挙げられる。
【0087】
このような場合、ユーザ(サポート装置300を用いた複雑な操作はできないエンドユーザを想定)は、以前に取得したバックアップデータを用いて、必要なデータなどの復元(リストア処理)を行う。つまり、本実施の形態に係るバックアップデータは、典型的には、制御システムの不具合などを解消するために用いられる。
【0088】
この実行方法として、例えば、SD(Secure Digital)カードなどのメモリカード380をPLC100に挿入することをトリガとしてリストア処理が開始される、あるいは、PLC100に設けられたボタンなどを操作するとリストア処理が開始される、といった簡単な処理が想定されている。
【0089】
[g2:バックアップ処理]
まず、
図13(a)に示すバックアップ処理について説明する。バックアップ処理においては、PLC100(CPUユニット110)が保持しているデータおよび各スレーブ装置が保持しているデータからバックアップデータ400が生成される。この生成されたバックアップデータ400は、CPUユニット110の不揮発性メモリ114やメモリカード380に保持される。あるいは、CPUユニット110からサポート装置300へ転送され、サポート装置300内またはサポート装置300に接続された各種記録媒体に保持されてもよい。
【0090】
より具体的には、CPUユニット110の不揮発性メモリ114(
図3)に保持されているデータの複製であるCPUデータ402と、各スレーブ装置に保持されているデータの複製であるスレーブ設定情報404とに基づいて、バックアップデータ400が生成される。なお、バックアップデータ400に含まれるデータは、これに限られることなく、CPUユニット110のメインメモリ113(
図3)に保持されているデータを含めてもよい。
【0091】
バックアップデータ400のCPUデータ402は、一例として、以下のようなデータを含む。
【0092】
・PLC100(CPUユニット110)内に格納されているユーザプログラム160や設定値(パラメータ)
・PLC100(CPUユニット110)内に格納されているデバイス構成情報152
・PLC100(CPUユニット110)内に格納されているデバイス毎のネットワーク接続の有効/無効の情報
バックアップデータ400のスレーブ設定情報404は、一例として、以下のようなデータを含む。
【0093】
・スレーブ装置内に格納されているユーザプログラムや設定値(パラメータ)
このように、バックアップデータ400は、マスタ装置であるPLC100(CPUユニット110)が保持するデータ、および/または、スレーブ装置が保持するデータを含む。また、PLC100(CPUユニット110)は、メモリカード380およびスレーブ装置からのデータを用いてバックアップデータ400を生成するバックアップ処理を実行可能に構成されている。
【0094】
[g3:リストア処理]
まず、
図13(b)に示すリストア処理について説明する。リストア処理において、PLC100(CPUユニット110)は、予め用意されたバックアップデータ400からCPUデータ402およびスレーブ設定情報404を生成するとともに、CPUデータ402で不揮発性メモリ114の内容を上書きする。PLC100(CPUユニット110)に保持されているスレーブ設定情報154は、スレーブ設定情報404で上書きされる。また、PLC100(CPUユニット110)は、必要に応じて、スレーブ設定情報404(上書き後のスレーブ設定情報154)の内容を対象のスレーブ装置へ転送する。
【0095】
上述したように、このリストア処理は、(1)バックアップデータ400を格納するメモリカード380がCPUユニット110に装着されたこと、(2)予め定められた操作(例えば、CPUユニット110に設けられたボタンの押下)がなされたこと、(3)サポート装置300が明示的な指示があったこと、などをトリガとして開始される。
【0096】
このように、本実施の形態に係る処理部に相当するCPUユニット110は、スレーブ装置毎の設定情報を含むバックアップデータ400を用いてリストア処理を実行可能になっている。そして、本実施の形態に係るリストア処理は、PLC100(CPUユニット110)からリストア対象のスレーブ装置に対して、必要なデータを送信する処理を含む。
【0097】
<H.背景技術・課題>
次に、本実施の形態に関連する背景技術およびその課題について説明する。
【0098】
図14は、本実施の形態に関連するバックアップ処理/リストア処理について説明するための模式図である。
図14には、デバイス構成が互いに異なる2つの設備が存在する例を示す。すなわち、搬送チャンバー10と第1プロセスチャンバー20とからなるデバイス構成と、搬送チャンバー10と第4プロセスチャンバー26とからなるデバイス構成とを想定する。説明の便宜上、スレーブ装置の数を簡素化しているが、いずれのデバイス構成とも、さらなるスレーブ装置を含んでいてもよい。
【0099】
搬送チャンバー10と第1プロセスチャンバー20とからなる制御システムにおいて取得されるバックアップデータ400−1は、搬送チャンバー10および第1プロセスチャンバー20に関する設定情報やプログラムを含むことになる。また、搬送チャンバー10と第4プロセスチャンバー26とからなる制御システムにおいて取得されるバックアップデータ400−2は、搬送チャンバー10および第4プロセスチャンバー26に関する設定情報やプログラムを含むことになる。
【0100】
関連技術においては、バックアップデータ400を用いたリストア処理を行う場合には、リストア対象の制御システムのデバイス構成が当該バックアップデータ400を生成したときのデバイス構成と同一であることが条件とされる。そのため、搬送チャンバー10に関する設定情報やプログラムについては、制御システムに共通であるが、搬送チャンバー10と第4プロセスチャンバー26とからなる制御システムに対して、バックアップデータ400−1を用いてリストア処理を行うことはできない。同様に、搬送チャンバー10と第1プロセスチャンバー20とからなる制御システムに対して、バックアップデータ400−2を用いてリストア処理を行うことはできない。
【0101】
このように関連技術においては、制御システムにおけるデバイス構成の変更は想定されておらず、バックアップ処理時とリストア時において、デバイス構成が同一である必要がある。つまり、デバイス構成が異なれば、リストア処理の開始または途中でエラーとなる。
【0102】
なお、サポート装置300を用いて、デバイス構成を強制的に一致させるとともに、バックアップデータ400に含まれる一部のデータを選択してリストア処理に用いることもできなくはないが、非常に手続きが煩雑となり、リストア処理を失敗する可能性も高い。
【0103】
したがって、一般的には、それぞれの制御システムについて、バックアップデータを生成および管理する必要がある。
【0104】
<I.解決手段の概要>
本実施の形態は、このような課題を解決することを目的とする。より具体的には、処理部に相当するCPUユニット110は、リストア処理実行時に、デバイス構成情報を読み出し、バックアップデータ400に含まれる対象のスレーブ装置のうち、読み出したデバイス構成情報の中でネットワーク接続が有効になっているスレーブ装置、または、フィールドネットワーク108上に存在しているスレーブ装置を特定し、特定されたスレーブ装置に対応する設定情報をリストアする。つまり、本実施の形態に係るCPUユニット110は、バックアップデータ400のうち、対象の制御システムに有効に含まれるスレーブ装置に関する設定情報やプログラムを選択的に抽出し、リストア処理を実行する。
【0105】
すなわち、本実施の形態に係るCPUユニット110は、バックアップデータ400の作成時とはデバイス構成が異なっていても、ネットワーク接続が有効になっているスレーブ装置、および、ネットワーク上に存在しているスレーブ装置に対して、選択的にリストア処理を実行する。
【0106】
ここで、「ネットワーク接続が有効になっているスレーブ装置」とは、典型的には、フィールドネットワーク108に接続されることになっているスレーブ装置を意味し、
図9に示すデバイス構成情報372(または、デバイス構成情報152)において、状態値が「有効」に設定されているスレーブ装置を含む。あるいは、CPUユニット110がフィールドネットワーク108を介して実際に問合せを行った結果、正常な動作が可能であるスレーブ装置を含むようにしてもよい。
【0107】
また、「ネットワーク上に存在しているスレーブ装置」とは、典型的には、フィールドネットワーク108に実際に接続されているスレーブ装置を意味する。このとき、デバイス構成情報372(または、デバイス構成情報152)での状態値には影響を受けない。つまり、フィールドネットワーク108に接続されてさえいれば、その動作状態などには影響を受けず、リストア処理の対象とされる。
【0108】
以下、対象の制御システムに応じた適用例について、実施の形態1〜3として説明する。但し、実施の形態1〜3のいずれについても、上述の基本的な処理を含む。
【0109】
<J.実施の形態1>
実施の形態1として、上述の
図14を参照して説明したように、デバイス構成が互いに異なる2つの設備が存在する場合の適用例について説明する。
【0110】
[j1:処理概要]
図15は、実施の形態1に係るバックアップ処理/リストア処理について説明するための模式図である。
図15には、上述の
図14と同様に、搬送チャンバー10と第1プロセスチャンバー20とからなる制御システムにおいてバックアップデータ400−1が生成され、搬送チャンバー10と第4プロセスチャンバー26とからなる制御システムにおいてバックアップデータ400−2が生成されるとする。
【0111】
実施の形態1においては、バックアップデータ400の生成時におけるデバイス構成とは異なっている場合(すなわち、バックアップ処理時とリストア時との間でデバイス構成が同一ではない場合)であっても、バックアップデータ400から対応するスレーブ装置に関するデータのみがリストアされる。
【0112】
図15には、搬送チャンバー10と第1プロセスチャンバー20とからなる制御システムで生成されたバックアップデータ400−1を用いて、搬送チャンバー10と第4プロセスチャンバー26とからなる制御システムに対してリストア処理を行う例を示す。このとき、PLC100(CPUユニット110)は、バックアップデータ400−1のうち、搬送チャンバー10に関する設定情報および/またはプログラムを抽出し、リストア処理を実行する。
【0113】
また、
図15には、搬送チャンバー10と第4プロセスチャンバー26とからなる制御システムで生成されたバックアップデータ400−2を用いて、搬送チャンバー10と第1プロセスチャンバー20とからなる制御システムに対してリストア処理を行う例を示す。このとき、PLC100(CPUユニット110)は、バックアップデータ400−2のうち、搬送チャンバー10に関する設定情報および/またはプログラムを抽出し、リストア処理を実行する。
【0114】
このように、実施の形態1に係るPLC100(CPUユニット110)は、バックアップデータ400からリストア処理を実行するに際して、ネットワーク接続が有効になっているスレーブ装置、および/または、ネットワーク上に存在しているスレーブ装置を対象とする。すなわち、実施の形態1に係るPLC100(CPUユニット110)は、ネットワーク接続が有効になっていないスレーブ装置、および/または、ネットワーク上に存在していないスレーブ装置に対しては、リストア処理を実行しない。
【0115】
言い換えれば、リストア処理が実行されない(あるいは、リストア処理を実行できない)スレーブ装置が存在していたとしても、実施の形態1に係るPLC100(CPUユニット110)は、リストア処理の開始または途中で処理を停止することはない。
【0116】
なお、リストア処理の対象にならなかったスレーブ装置に関しては、エラーを出力しないようにしてもよい。但し、リストア処理の対象にならなかったことを通知することが好ましい場合には、リストア処理の対象にならなかったスレーブ装置をユーザに通知するようにしてもよい。この通知方法としては、リストア処理に係るログファイルにその内容を出力する、接続されているサポート装置300の画面上にその内容を通知する、対象のスレーブ装置に搭載されている表示デバイス(例えば、LED(Light Emitting Diode)インジケータなど)を点灯/点滅させる、サポート装置300またはCPUユニット110から音声ガイダンスを発するといった方法を用いることができる。
【0117】
[j2:処理手順]
次に、実施の形態1に係るバックアップ処理およびリストア処理の手順について説明する。
図16は、実施の形態1に係るバックアップ処理の手順を示すフローチャートである。
図17は、実施の形態1に係るリストア処理の手順を示すフローチャートである。
図16および
図17に示す各ステップは、典型的には、CPUユニット110のマイクロプロセッサ112(
図3)がファームウェア190(
図4)を実行することで実現される。但し、これらの処理の一部または全部をASIC(Application Specific Integrated Circuit)などの集積回路を用いて実現してもよい。
【0118】
図16を参照して、マイクロプロセッサ112は、バックアップ処理の開始条件が成立したか否かを判断する(ステップS100)。このバックアップ処理の開始条件は、サポート装置300などから明示的な指示を受けた場合や、メモリカード380が装着された場合などを含む。バックアップ処理の開始条件が成立していなければ(ステップS100においてNO)、ステップS100の処理が繰返される。
【0119】
これに対して、バックアップ処理の開始条件が成立していれば(ステップS100においてYES)、マイクロプロセッサ112は、不揮発性メモリ114にテンポラリフォルダを作成し、不揮発性メモリ114に保持されているデータをコピーする(ステップS102)。不揮発性メモリ114に保持されているデータは、CPUデータ402およびスレーブ設定情報404を含む。
【0120】
続いて、マイクロプロセッサ112は、デバイス構成情報152を参照して、フィールドネットワーク108のメンバとして登録されている1つのスレーブ装置をバックアップ対象として選択する(ステップS104)。そして、マイクロプロセッサ112は、バックアップ対象のスレーブ装置がフィールドネットワーク108上に存在しているか否かを判断する(ステップS106)。バックアップ対象のスレーブ装置がフィールドネットワーク108上に存在していれば(ステップS106においてYES)、マイクロプロセッサ112は、フィールドネットワーク108を介して、バックアップ対象のスレーブ装置から格納されているデータを読み出し、その読み出したデータをテンポラリフォルダにコピーする(ステップS108)。
【0121】
マイクロプロセッサ112は、フィールドネットワーク108のメンバとして登録されているすべてのスレーブ装置についてバックアップ対象としての選択が完了したか否かを判断する(ステップS110)。フィールドネットワーク108のメンバとして登録されているすべてのスレーブ装置についてバックアップ対象としての選択が完了していなければ(ステップS110においてNO)、または、バックアップ対象のスレーブ装置がフィールドネットワーク108上に存在していなければ(ステップS106においてNO)、マイクロプロセッサ112は、フィールドネットワーク108のメンバとして登録されている未選択のスレーブ装置をバックアップ対象として選択する(ステップS112)。そして、ステップS106以下の処理が繰返される。
【0122】
これに対して、フィールドネットワーク108のメンバとして登録されているすべてのスレーブ装置についてバックアップ対象としての選択が完了していれば(ステップS110においてYES)、バックアップデータ400の生成に必要なデータの収集が完了する。基本的には、テンポラリフォルダ内のデータをそのままバックアップデータ400として出力することができる。但し、実施の形態1においては、バックアップデータ400に対してパッケージ化処理を行い、その結果として得られるパッケージファイルをバックアップデータ400として出力する。つまり、マイクロプロセッサ112は、テンポラリフォルダ内のデータに対してパッケージ化処理を行い、バックアップデータ400を生成する(ステップS114)。
【0123】
続いて、マイクロプロセッサ112は、バックアップデータ400の出力先を判断する(ステップS116)。なお、このバックアップデータ400の出力先は、サポート装置300から予め通知されていてもよいし、CPUユニット110に設けられたディップスイッチなどの設定に基づいて判断されてもよい。
【0124】
バックアップデータ400の出力先がメモリカード380である場合(ステップS116において「メモリカード」)、マイクロプロセッサ112は、バックアップデータ400をメモリカード380に格納する(ステップS118)。そして、バックアップ処理は終了する。
【0125】
これに対して、バックアップデータ400の出力先がサポート装置300である場合(ステップS116において「サポート装置」)、マイクロプロセッサ112は、バックアップデータ400をサポート装置300へ転送する(ステップS120)。そして、バックアップ処理は終了する。
【0126】
図17を参照して、マイクロプロセッサ112は、リストア処理の開始条件が成立したか否かを判断する(ステップS200)。このリストア処理の開始条件は、サポート装置300などから明示的な指示を受けた場合や、メモリカード380が装着された場合などを含む。リストア処理の開始条件が成立していなければ(ステップS200においてNO)、ステップS200の処理が繰返される。
【0127】
これに対して、リストア処理の開始条件が成立していれば(ステップS200においてYES)、マイクロプロセッサ112は、バックアップデータ400の入力先を判断する(ステップS202)。なお、このバックアップデータ400の入力先は、成立したリストア処理の開始条件に関連付けて判断されてもよい。
【0128】
バックアップデータ400の入力先がメモリカード380である場合(ステップS202において「メモリカード」)、マイクロプロセッサ112は、不揮発性メモリ114にテンポラリフォルダを作成し、メモリカード380に格納されているバックアップデータ400を読み出して、テンポラリフォルダにコピーする(ステップS204)。
【0129】
これに対して、バックアップデータ400の入力先がサポート装置300である場合(ステップS202において「サポート装置」)、マイクロプロセッサ112は、不揮発性メモリ114にテンポラリフォルダを作成し、サポート装置300から転送されるバックアップデータ400をテンポラリフォルダにコピーする(ステップS206)。
【0130】
続いて、マイクロプロセッサ112は、テンポラリフォルダ内のバックアップデータ400に対して分解処理を行う(ステップS208)。この分解処理によって、テンポラリフォルダ内には、CPUデータ402およびスレーブ設定情報404がリストアされる。そして、マイクロプロセッサ112は、テンポラリフォルダ内のCPUデータ402で不揮発性メモリ114の内容を上書きする(ステップS210)。
【0131】
続いて、マイクロプロセッサ112は、CPUデータ402に含まれるデバイス構成情報152と現在のデバイス構成(実機構成)とを比較し、両者が一致しているか否かを判断する(ステップS212)。デバイス構成情報152と実機構成とが一致していなければ(ステップS212においてNO)、マイクロプロセッサ112は、バックアップデータ400の生成時におけるデバイス構成と実機構成とが一致していないことを出力する(ステップS214)。この出力形態としては、リストア処理に係るログファイルにその内容を出力する、接続されているサポート装置300の画面上にその内容を通知する、サポート装置300またはCPUユニット110から音声ガイダンスを発するといった方法を用いることができる。
【0132】
デバイス構成情報152と実機構成とが一致していれば(ステップS212においてYES)、ステップS214の処理はスキップされる。
【0133】
続いて、マイクロプロセッサ112は、バックアップデータ400から得られたCPUデータ402に含まれるデバイス構成情報152を参照して、フィールドネットワーク108のメンバとして登録されている1つのスレーブ装置をリストア対象として選択する(ステップS216)。そして、マイクロプロセッサ112は、リストア対象のスレーブ装置に対して、リストア処理を適切に実行できるか否かを判断する(ステップS218)。より具体的には、マイクロプロセッサ112は、リストア対象のスレーブ装置について、ネットワーク接続が有効になっているか、および/または、フィールドネットワーク108上に存在しているかを判断する。
【0134】
リストア対象のスレーブ装置に対して、リストア処理を適切に実行できると判断されると(ステップS218においてYES)、マイクロプロセッサ112は、テンポラリフォルダ内のリストア対象のスレーブ装置についてのスレーブ設定情報404で不揮発性メモリ114の内容を上書きする(ステップS220)。続いて、マイクロプロセッサ112は、リストア対象のスレーブ装置に対して転送すべきデータ(例えば、プログラムなど)がテンポラリフォルダ内に存在するか否かを判断する(ステップS222)。すなわち、スレーブ装置の中には、その内部にユーザプログラムや設定値を保持するスレーブ装置も存在し、そのようなスレーブ装置については、CPUユニット110から必要なデータ(ユーザプログラムや設定値)へ送信される。リストア対象のスレーブ装置に対して転送すべきデータがテンポラリフォルダ内に存在していれば(ステップS222においてYES)、マイクロプロセッサ112は、フィールドネットワーク108を介して、リストア対象のスレーブ装置に対して対応するデータを送信する(ステップS224)。リストア対象のスレーブ装置に対して転送すべきデータがテンポラリフォルダ内に存在していなければ(ステップS222においてNO)、ステップS224の処理はスキップされる。
【0135】
そして、マイクロプロセッサ112は、フィールドネットワーク108のメンバとして登録されているすべてのスレーブ装置についてリストア対象としての選択が完了したか否かを判断する(ステップS226)。フィールドネットワーク108のメンバとして登録されているすべてのスレーブ装置についてリストア対象としての選択が完了していなければ(ステップS226においてNO)、または、リストア対象のスレーブ装置に対して、リストア処理を適切に実行できると判断されなければ(ステップS218においてNO)、マイクロプロセッサ112は、フィールドネットワーク108のメンバとして登録されている未選択のスレーブ装置をリストア対象として選択する(ステップS228)。そして、ステップS218以下の処理が繰返される。
【0136】
これに対して、フィールドネットワーク108のメンバとして登録されているすべてのスレーブ装置についてリストア対象としての選択が完了していれば(ステップS226においてYES)、リストア処理は終了する。
【0137】
[j3:利点]
実施の形態1によれば、共通のデバイスを有する複数の設備(制御システム)に生じた何らかの異常を復旧させる必要がある場合に、少なくとも共通のデバイスについては、他の設備(制御システム)から生成したバックアップデータを用いてリストアすることができる。そのため、制御システムを復旧させるためのリストア処理をより簡素化できる。
【0138】
<K.実施の形態2>
実施の形態2として、リストア時には存在しなかったスレーブ装置(デバイス)が事後的に追加された場合に、追加的にリストア処理を実行できる適用例について説明する。すなわち、実施の形態2においては、リストア時に存在しなかったスレーブ装置が追加された場合、当該追加されたスレーブ装置対して自動的にリストアを行う。
【0139】
[k1:処理概要]
図18は、実施の形態2に係るリストア処理について説明するための模式図である。
図18(a)に示すデバイス構成においては、マスタ装置として機能するPLC100のスレーブ装置として、スレーブ装置A〜C(搬送チャンバー10)およびスレーブ装置J〜L(第1プロセスチャンバー20)が接続されているとする。このとき、本来存在すべきスレーブ装置S,T(第4プロセスチャンバー26)については、存在していないとする。但し、バックアップデータ400は、すべてのスレーブ装置に関するデータ(搬送チャンバー10、第1プロセスチャンバー20、第4プロセスチャンバー26)を含む。
【0140】
図18(a)に示すデバイス構成において、リストア処理が実行されると、スレーブ装置A〜C(搬送チャンバー10)およびスレーブ装置J〜L(第1プロセスチャンバー20)がリスト対象になる。つまり、バックアップデータ400のうち、搬送チャンバー10および第1プロセスチャンバー20に関するデータを用いてリストア処理が実行される。
【0141】
その後、
図18(b)に示すように、スレーブ装置S,T(第4プロセスチャンバー26)が追加されたとする。このような状況は、第4プロセスチャンバー26に係る設備が保守や修理などで電源が遮断されているような場合や、装置そのものが取り外されているような場合に生じ得る。
【0142】
実施の形態2においては、
図18(a)に示すデバイス構成から
図18(b)に示すデバイス構成に変更されたことをトリガとして、リストア処理が追加的に実行される。つまり、バックアップデータ400に含まれる第4プロセスチャンバー26に関するデータを用いてリストア処理が実行される。
【0143】
実施の形態2に係るリストア処理は、スレーブ装置の追加によって、追加のリストア処理が自動的に実行されるので、知識の乏しいエンドユーザであっても、適切なリストア処理を実現できる。すなわち、実施の形態2に係る自動的なリストア処理が実装されていなければ、ユーザは、変更後のデバイス構成を考慮して、サポート装置300上で対象となるデータを個別に選択して、リストア処理を実行する必要があるが、このような操作は非常に手間であり、そのユーザの知識によってはリストア処理を適切に行えないという問題があった。
【0144】
バックアップデータ400は、典型的には、CPUユニット110の不揮発性メモリ114(
図3)に予め保持されているとする。あるいは、CPUユニット110に装着されるメモリカード380に、バックアップデータ400を保持しておいてもよい。
【0145】
図18に示す追加的なリストア処理は、典型的には、スレーブ装置が追加されたことをCPUユニット110が検知した場合、および/または、ネットワーク接続が無効から有効へ変更された場合に、実行される。すなわち、PLC100(CPUユニット110)は、いずれかのスレーブ装置のネットワーク接続が有効になった場合、および、いずれかのスレーブ装置がフィールドネットワーク108上に存在するようになった場合のうち少なくとも一方において、バックアップデータ400に含まれる対応するスレーブ設定情報154をリストアする。
【0146】
[k2:処理手順]
次に、実施の形態2に係るバックアップ処理およびリストア処理の手順について説明する。バックアップ処理については、上述の実施の形態1(
図16)と同様であるので、詳細な説明は繰返さない。
【0147】
リストア処理については、追加されたスレーブ装置に対するリストア処理が未実施である場合に限って、追加的なリストア処理を実行する場合(以下に説明する「未実施の場合に限って追加的なリストア処理を実施」)と、何らかのスレーブ装置が追加されると、当該追加されたスレーブ装置に対してリストア処理を常に実行する場合(以下に説明する「常に追加的なリストア処理を実施」)とが考えられる。以下、各場合の処理について、その詳細を説明する。
【0148】
[k3:リストア処理(その1:未実施の場合に限って追加的なリストア処理を実施)]
図19は、実施の形態2に係るリストア処理(その1)の手順を示すフローチャートである。
図19および後述の
図21に示す各ステップは、典型的には、CPUユニット110のマイクロプロセッサ112(
図3)がファームウェア190(
図4)を実行することで実現される。但し、これらの処理の一部または全部をASICなどの集積回路を用いて実現してもよい。
【0149】
図19に示すフローチャートは、
図17に示す実施の形態1に係るリストア処理の手順を示すフローチャートに比較して、ステップS224とステップS226の後にステップS225の処理が実行される点のみが異なっている。すなわち、マイクロプロセッサ112は、リストア対象のスレーブ装置に対して対応するデータを送信する(ステップS224)と、または、リストア対象のスレーブ装置に対して転送すべきデータがテンポラリフォルダ内に存在していなければ(ステップS222においてNO)、リストア対象のスレーブ装置に対するリストア処理の完了を記録する(ステップS225)。
【0150】
図20は、実施の形態2に係るリストア処理(その1)におけるリストア処理の完了の記録に係る情報の一例を示す模式図である。
図20を参照して、ノード番号およびメンバとして登録されているスレーブ装置の情報に関連付けて、リストア処理の完了の有無が記録される。すなわち、各スレーブ装置について、リストア処理が実施済であるか否かを示す情報が記録される。
図20に示す例では、「Y」はリストア処理が実施済であることを示し、「N」はリストア処理が未実施であることを示す。何らかのスレーブ装置が追加されると、このリストア処理の完了の記録に係る情報が参照されて、追加的なリストア処理が実行される。
【0151】
図21は、実施の形態2に係る追加的なリストア処理(その1)の手順を示すフローチャートである。
図21を参照して、マイクロプロセッサ112は、追加的なリストア処理を実行すべきか否かを判断する(ステップS250)。具体的には、マイクロプロセッサ112は、スレーブ装置が追加されたか否か、および/または、ネットワーク接続が無効から有効へ変更されたか否かを判断する。なお、マスタ装置として機能するPLC100(CPUユニット110)がフィールドネットワーク108の状態を常時監視しているので、この常時監視の情報に基づいて、スレーブ装置が追加されたか否かを判断できる。また、ネットワーク接続が無効から有効へ変更されたか否かについては、デバイス構成情報152が変更されたか否かに基づいて判断できる。
【0152】
追加的なリストア処理を実行すべきと判断されなければ(ステップS250においてNO)、ステップS250の処理が繰返される。
【0153】
これに対して、追加的なリストア処理を実行すべきと判断されれば(ステップS250においてYES)、マイクロプロセッサ112は、追加されたスレーブ装置のうち1つのスレーブ装置を追加的なリストア対象として選択する(ステップS252)。そして、マイクロプロセッサ112は、追加的なリストア対象のスレーブ装置について、リストア処理を実施済であるか否かを判断する(ステップS254)。この判断は、
図20に示すようなリストア処理の完了の記録に係る情報に基づいて実施される。
【0154】
リストア処理を実施済でなければ(ステップS254においてNO)、マイクロプロセッサ112は、追加的なリストア対象のスレーブ装置に対して転送すべきデータ(例えば、プログラムなど)がテンポラリフォルダ内に存在するか否かを判断する(ステップS256)。追加的なリストア対象のスレーブ装置に対して転送すべきデータがテンポラリフォルダ内に存在していれば(ステップS256においてYES)、マイクロプロセッサ112は、フィールドネットワーク108を介して、追加的なリストア対象のスレーブ装置に対して対応するデータを送信する(ステップS258)。追加的なリストア対象のスレーブ装置に対して転送すべきデータがテンポラリフォルダ内に存在していなければ(ステップS256においてNO)、ステップS258の処理はスキップされる。
【0155】
続いて、マイクロプロセッサ112は、追加的なリストア対象のスレーブ装置に対するリストア処理の完了を記録する(ステップS260)。この時点で、当該スレーブ装置のネットワーク接続を有効化できる。
【0156】
ステップS260の実行後、または、リストア処理を実施済である場合(ステップS254においてYES)に、マイクロプロセッサ112は、追加されたすべてのスレーブ装置について追加的なリストア対象としての選択が完了したか否かを判断する(ステップS262)。追加されたすべてのスレーブ装置について追加的なリストア対象としての選択が完了していなければ(ステップS262においてNO)、マイクロプロセッサ112は、追加されたスレーブ装置のうち未選択のスレーブ装置を追加的なリストア対象として選択する(ステップS264)。そして、ステップS254以下の処理が繰返される。
【0157】
追加されたすべてのスレーブ装置について追加的なリストア対象としての選択が完了していれば(ステップS262においてYES)、処理は終了する。
【0158】
[k4:リストア処理(その2:常に追加的なリストア処理を実施)]
実施の形態2に係るリストア処理(その2)の手順は、
図17に示す実施の形態1に係るリストア処理の手順を示すフローチャートと同様であるので、詳細な説明は繰返さない。つまり、常に追加的なリストア処理を実施する場合には、リストア処理が未実施であるか否かを記録しておく必要がないので、リストア処理の完了が記録されない。
【0159】
図22は、実施の形態2に係る追加的なリストア処理(その2)の手順を示すフローチャートである。
図22に示すフローチャートは、
図21に示す実施の形態2に係るリストア処理(その2)の手順を示すフローチャートをより簡素化したものである。なお、
図22に示す処理のうち、
図21に示す処理と実質的に同一であるものについては、同一のステップ番号を付与している。
【0160】
図22を参照して、マイクロプロセッサ112は、追加的なリストア処理を実行すべきか否かを判断する(ステップS250)。追加的なリストア処理を実行すべきと判断されなければ(ステップS250においてNO)、ステップS250の処理が繰返される。
【0161】
追加的なリストア処理を実行すべきと判断されれば(ステップS250においてYES)、マイクロプロセッサ112は、追加されたスレーブ装置のうち1つのスレーブ装置を追加的なリストア対象として選択する(ステップS252)。マイクロプロセッサ112は、追加的なリストア対象のスレーブ装置に対して転送すべきデータ(例えば、プログラムなど)がテンポラリフォルダ内に存在するか否かを判断する(ステップS256)。追加的なリストア対象のスレーブ装置に対して転送すべきデータがテンポラリフォルダ内に存在していれば(ステップS256においてYES)、マイクロプロセッサ112は、フィールドネットワーク108を介して、追加的なリストア対象のスレーブ装置に対して対応するデータを送信する(ステップS258)。
【0162】
ステップS258の実行後、または、追加的なリストア対象のスレーブ装置に対して転送すべきデータがテンポラリフォルダ内に存在していない場合(ステップS256においてNO)に、マイクロプロセッサ112は、追加されたすべてのスレーブ装置について追加的なリストア対象としての選択が完了したか否かを判断する(ステップS262)。追加されたすべてのスレーブ装置について追加的なリストア対象としての選択が完了していなければ(ステップS262においてNO)、マイクロプロセッサ112は、追加されたスレーブ装置のうち未選択のスレーブ装置を追加的なリストア対象として選択する(ステップS264)。そして、ステップS256以下の処理が繰返される。
【0163】
追加されたすべてのスレーブ装置について追加的なリストア対象としての選択が完了していれば(ステップS262においてYES)、処理は終了する。
【0164】
[k5:利点]
実施の形態2によれば、リストア処理の後、事後的に追加されたデバイスに対するリストア処理が自動的に実行される。そのため、予め用意されたバックアップデータに含まれるデバイスの範囲であれば、リストア処理の実行後に追加されたデバイスであっても、必要な設定情報を転送することができる。よって、知識の乏しいエンドユーザであっても、デバイスの交換や設備の保全の後に、制御システムを即座にアクティブな状態にできる。
【0165】
<L.実施の形態3>
実施の形態3として、上述の
図8〜
図12を参照して説明したように、互いに類似したデバイス構成を有する制御システムを複数構築するような場合には、すべてのスレーブ装置を含む制御システム(基本的なデバイス構成)に対応するバックアップデータ400をサポート装置300にて予め用意しておき、各制御システム(PLC100)に格納しておく。すなわち、バックアップデータ400は、サポート装置300から提供される。そして、各制御システムでは、サポート装置300からのバックアップデータ400のうち、各デバイス構成に応じて必要なデータのみを使用してリストア処理を実行する。
【0166】
このような方法を採用することで、共通のバックアップデータ400(すべてのデバイスに関する設定情報を含む)のみを管理しておけばよく、管理手続を簡素化できる。
【0167】
図23は、実施の形態3に係るバックアップ処理/リストア処理の概要を説明するための模式図である。
図23には、搬送チャンバー10と第1プロセスチャンバー20とからなる第1制御システム(第1PLC100を含む)と、搬送チャンバー10と第4プロセスチャンバー26とからなる第4制御システム(第4PLC100)とが存在している例を示す。
【0168】
この場合には、サポート装置300にて、すべてのデバイスを含むバックアップデータ400が生成される。バックアップデータ400の生成には、実際のPLC100やスレーブ装置は必要なく、いわゆるオフラインで生成できる。すなわち、サポート装置300単独でバックアップデータ400を生成できる。このバックアップデータ400は、搬送チャンバー10、第1プロセスチャンバー20、および第4プロセスチャンバー26に関する設定情報を含む。
【0169】
第1制御システム(第1PLC100)は、バックアップデータ400に含まれる搬送チャンバー10および第1プロセスチャンバー20に関する設定情報のみを用いて、リストア処理を実行する。すなわち、第1PLC100は、第4プロセスチャンバー26に関する設定情報を無視する。
【0170】
一方、第4制御システム(第4PLC100)は、バックアップデータ400に含まれる搬送チャンバー10および第4プロセスチャンバー26に関する設定情報のみを用いて、リストア処理を実行する。すなわち、第4PLC100は、第1プロセスチャンバー20に関する設定情報を無視する。
【0171】
なお、サポート装置300単体ではなく、搬送チャンバー10、第1プロセスチャンバー20、および第4プロセスチャンバー26のすべてを含む実際の制御システムからバックアップデータ400を生成してもよい。
【0172】
図23を参照して、より具体的な処理手順の一例を説明する。まず、ユーザ(システム開発者)は、サポート装置300にて、基本的なデバイス構成(搬送チャンバー10、第1プロセスチャンバー20、および第4プロセスチャンバー26を含む制御システム)に係るプロジェクトを作成する(シーケンスSQ100)。このプロジェクトが完成した時点で、ユーザは、サポート装置300上でバックアップデータ400を生成する(シーケンスSQ102)。
【0173】
続いて、ユーザは、シーケンスSQ100において作成した基本的なデバイス構成に係るプロジェクトを、第1制御システムに適合するように更新する(シーケンスSQ104)。そして、ユーザは、更新後のプロジェクトをコンパイルすることで生成されるユーザプログラム、デバイス構成情報、およびスレーブ設定情報を第1PLC100へ送信する(シーケンスSQ106)。
【0174】
同様に、ユーザは、シーケンスSQ100において作成した基本的なデバイス構成に係るプロジェクトを、第4制御システムに適合するように更新する(シーケンスSQ108)。そして、ユーザは、更新後のプロジェクトをコンパイルすることで生成されるユーザプログラム、デバイス構成情報、およびスレーブ設定情報を第4PLC100へ送信する(シーケンスSQ110)。
【0175】
そして、ユーザは、シーケンスSQ102において作成したバックアップデータ400を第1PLC100および第4PLC100へ送信する(シーケンスSQ112)。
【0176】
第1PLC100は、バックアップデータ400を格納するとともに、要求に応じて、バックアップデータ400を用いてリストア処理を実行する(シーケンスSQ114)。このリストア処理において、第1PLC100は、バックアップデータ400に含まれる搬送チャンバー10および第1プロセスチャンバー20に係る設定情報のみを使用する。
【0177】
同様に、第4PLC100は、バックアップデータ400を格納するとともに、要求に応じて、バックアップデータ400を用いてリストア処理を実行する(シーケンスSQ116)。このリストア処理において、第1PLC100は、バックアップデータ400に含まれる搬送チャンバー10および第4プロセスチャンバー26に係る設定情報のみを使用する。
【0178】
実施の形態3によれば、すべてのデバイスを含む共通のバックアップデータを生成しておけば、それらのデバイスの全部または一部を含むいずれの制御システム(デバイス構成)に対しても、当該共通のバックアップデータを用いてリストア処理を行える。そのため、バックアップデータの管理手続を簡素化できる。また、共通のバックアップデータはサポート装置によって生成できるので、たとえ、すべてのデバイスを含む制御システム(デバイス構成)が存在しない場合であっても、当該共通のバックアップデータを生成できる。
【0179】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。