(57)【要約】【課題】プラントを制御・監視する制御用コントローラをＮ：１あるいはＮ：Ｍ方式でバックアップするシステムにおいて、障害発生時の制御・監視動作の引継ぎ時間を短縮する。【解決手段】複数の制御用コントローラ１〜３に対して設けたバックアップ用制御コントローラ４に、制御用コントローラ１〜３に搭載したプログラムのうち、制御用コントローラ１〜３で同一の処理を実行する制御用プログラムを搭載する。制御用データ保管装置８は、制御用コントローラ１〜３に搭載したプログラムのうち制御用コントローラ１〜３毎に異なる制御・監視機能の仕様を定義する制御用情報を保管し、制御用コントローラ１〜３の障害の発生の有無を監視して、障害の発生した制御用コントローラに対応する制御用情報をバックアップ用制御コントローラ４にダウンロードする。【選択図】図１
2011186664.tif 000002
【特許請求の範囲】
【請求項１】
プラントの制御・監視を行う複数の制御用コントローラと、
前記複数の制御用コントローラに対して設けられたバックアップ用制御コントローラと、
前記複数の制御用コントローラ及び前記バックアップ用制御コントローラが前記プラントとの間で信号の入出力を行うためのプロセス入出力装置と、
各々の前記制御用コントローラ毎に異なる制御・監視機能の仕様を定義するプログラムである制御用情報を保管する制御用データ保管装置と、を備え、
前記複数の制御用コントローラに搭載されるプログラムは、前記制御用情報と、前記複数の制御用コントローラで同一の処理を実行するプログラムである制御用プログラムとに分割されており、
前記バックアップ用制御コントローラには、前記制御用プログラムが搭載されており、
前記制御用データ保管装置は、前記複数の制御用コントローラの障害の発生の有無を監視し、いずれかの前記制御用コントローラに障害が発生した場合に、保管している前記制御用情報のうち障害の発生した前記制御用コントローラに対応する前記制御用情報を前記バックアップ用制御コントローラにダウンロードする
バックアップシステム。
【請求項２】
前記制御用コントローラは、正常動作時に生成した演算データを、前記制御用データ保管装置または前記制御用データ保管装置とは別に備えられた演算データ保管装置に通知し、
前記演算データを通知された前記制御用データ保管装置または前記演算データ保管装置は、前記演算データを保管し、いずれかの前記制御用コントローラに障害が発生した場合に、障害の発生した制御用コントローラから通知された前記演算データを前記バックアップ用制御コントローラにダウンロードする
請求項１記載のバックアップシステム。
【請求項３】
前記制御用データ保管装置は、前記制御用情報とともに誤り検出用符号を前記バックアップ用制御コントローラにダウンロードし、
前記バックアップ用制御コントローラは、前記誤り検出用符号を用いて、ダウンロードされた前記制御用情報の誤り検出を行い、誤りがない場合に前記制御用情報及び前記制御用プログラムを実行する
請求項２記載のバックアップシステム。
【請求項４】
前記制御用コントローラは、自己診断によって障害を検出した場合に、前記プロセス入出力装置との接続を切断する
請求項３記載のバックアップシステム。
【請求項５】
前記プロセス入出力装置は、前記制御用コントローラからのアクセスのタイムアウトを検出した後、前記バックアップ用制御コントローラからのアクセスのタイムアウトを検出するための所定のタイムアウト設定時間が経過するまで、前記プラントへの出力信号の値を、前記制御用コントローラからのアクセスのタイムアウトを検出する直前の値に維持する
請求項２記載のバックアップシステム。
【請求項６】
前記制御用プログラムを保管するプログラム保守装置をさらに備え、
前記プログラム保守装置は、前記複数の制御用コントローラ及び前記バックアップ用制御コントローラに前記制御用プログラムをダウンロードするとともに、前記複数の制御用コントローラに前記制御用プログラムをダウンロードしたことを前記制御用データ保管装置に通知し、
前記制御用データ保管装置は、前記プログラム保守装置から前記通知を受けたことに応じて、前記複数の制御用コントローラに、各々の前記制御用コントローラ毎の前記制御用情報をダウンロードする
請求項１記載のバックアップシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えば、発電所，下水処理プラント，化学プラント，鉄鋼プラントなどのプラントを制御・監視する制御用コントローラのバックアップシステムに関する。
【背景技術】
【０００２】
発電所，下水処理プラント，化学プラント，鉄鋼プラントなどのプラントは複数の工程（プロセス）で構成されており、各プロセスにはそれぞれ１または複数の機器や設備（以下、機器と総称する）が含まれている。そのため、プラントを制御・監視するシステムでは、プロセスの数に対応して複数の制御用コントローラを設け、それらの制御用コントローラによって各プロセスに含まれる機器を制御・監視している。
【０００３】
こうした制御・監視システムでは、信頼性を高めるために、従来から、個々の制御用コントローラに対してそれぞれバックアップ装置（バックアップ用制御コントローラ）を１台あるいは２台設けた２重化あるいは３重化したバックアップシステムが構築されてきた。しかし、これらの２重化あるいは３重化したバックアップシステムは、制御用コントローラの数に比例した冗長系設備を必要とするので、初期投資や設置スペース上の問題がある。
【０００４】
この問題を解消するために、Ｎ台（Ｎは２以上の整数）の制御用コントローラに対して１台あるいはＭ台（Ｍは１以上且つＮ未満の整数）のバックアップ装置を設けるＮ：１あるいはＮ：Ｍバックアップシステムを構築することにより、２台以上の制御用コントローラでバックアップ装置を共用化することは従来から提案されている。
【０００５】
しかし、各制御用コントローラはプラント内の互いに異なる機器を制御・監視するので、各制御用コントローラに搭載されるプログラムも互いに異なっている。そこで、Ｎ：１あるいはＮ：Ｍバックアップシステムによってバックアップ装置を共用化する際に、障害が発生した制御用コントローラに搭載されているのと同じプログラムをバックアップ装置に実行させるために以下の方法が提案されていた。
【０００６】
例えば、特許文献１には、いずれかの制御用コントローラに障害が発生してから、その制御用コントローラに搭載されているのと同じプログラムをバックアップ装置にダウンロードするという方法が記載されている。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開昭６０−２５２９０３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかし、多くのプログラムをバックアップ装置に搭載する必要があるので、バックアップ装置が制御用コントローラよりも複雑・大型・高価・低速になる。そのため、プラントを制御するのに適したバックアップ装置を提供することが困難である。
【０００９】
また、特許文献１に記載された方法では、制御用コントローラに搭載されているのと同じプログラムを全てバックアップ装置にダウンロードするので、ダウンロードに要する時間が長くなる。そのため、障害の発生後バックアップ装置が制御・監視動作を引き継ぐまでに長い時間がかかるので、制御・監視対象の機器に悪影響を与える可能性がある。
【００１０】
また、各制御用コントローラに搭載されているプログラムを全て搭載することのできるデータ保管装置をオンラインで稼動させておく必要があり、この用途には一般に大型・高価・複雑な計算機が採用されるが、更にこの計算機の冗長化が必要になるという問題もある。
【００１１】
本発明は、上述の点に鑑み、Ｎ：１あるいはＮ：Ｍバックアップシステムによってバックアップ装置を共用化する際に、プラント内の多数または全ての機器を制御・監視対象としたプログラムを予めバックアップ装置に搭載することなく、しかも、制御・監視動作の引き継ぎに長い時間がかかり且つ大型・高価・複雑な計算機をオンラインで稼動させなければならないという問題を解消することを目的とする。
【課題を解決するための手段】
【００１２】
本発明に係るバックアップシステムでは、複数の制御用コントローラに対して設けられたバックアップ用制御コントローラに、制御用コントローラに搭載されたプログラムのうち、複数の制御用コントローラで同一の処理を実行するプログラムである制御用プログラムが搭載されている。制御用コントローラに搭載されたプログラムのうち、制御用コントローラ毎に異なる制御・監視機能の仕様を定義するプログラムである制御用情報は、制御用データ保管装置が保管している。制御用データ保管装置は、各制御用コントローラの障害の発生の有無を監視し、いずれかの制御用コントローラに障害が発生した場合に、保管している制御用情報のうち障害の発生した制御用コントローラに対応する制御用情報をバックアップ用制御コントローラにダウンロードする。
【発明の効果】
【００１３】
本発明によれば、制御用コントローラに障害が発生した場合に、その制御用コントローラに搭載されているプログラム全体をバックアップ用制御コントローラにダウンロードする場合よりもダウンロードに要する時間が短くて済む。このため、バックアップ用制御コントローラが制御・監視動作を引き継ぐまでの時間を短縮することができる。また、制御用データ保管装置として、複数の制御用コントローラに搭載されているプログラム全体を搭載する場合のような大型・高価・複雑な計算機を採用する必要がなくなる。
【図面の簡単な説明】
【００１４】
【図１】本発明の一実施の形態に係るバックアップシステムの全体構成を示す図である。
【図２】制御用コントローラ及びバックアップ用制御コントローラにおけるプログラム配置を示す図である。
【図３】制御用プログラム及び制御用情報の構造を示す図である。
【図４】構築情報の構造を示す図である。
【図５】データイコライズ処理を示す図である。
【図６】障害発生時に制御用データ保管装置が実行する処理を示す図である。
【図７】バックアップ用制御コントローラが実行するダウンロード確認処理を示す図である。
【図８】障害発生時にプロセス入出力装置が実行する処理を示す図である。
【図９】制御用コントローラが自己の障害の検出時に実行する処理を示す図である。
【発明を実施するための形態】
【００１５】
以下、本発明を実施するための最良の形態（以下、実施の形態とする）について、図１〜図９を参照して説明する。
【００１６】
〈システムの概要〉
図１は、本発明の一実施の形態に係るバックアップシステム１０の全体構成を示す図である。
このバックアップシステム１０では、制御用コントローラ１,２,３と、バックアップ用制御コントローラ４とが、ネットワーク３０により、制御用データ保管装置８及びプログラム保守装置９に接続されている。
【００１７】
また、制御用コントローラ１，２，３と、バックアップ用制御コントローラ４とは、プロセス入出力ネットワーク３１により、プロセス入出力装置５，６，７に接続されている。プロセス入出力装置５，６，７には、制御・監視対象のプラントのうち、それぞれ異なるプロセスに含まれる機器（図示略）が接続されている。
【００１８】
このバックアップシステム１０では、制御用コントローラ１,２,３が全て正常に動作している場合は、制御コントローラ１が、プロセス入出力装置５を介して、機器に制御信号を出力し、機器の動作状態を示す信号を入力することにより、プロセス入出力装置５に接続された機器を制御・監視する。また、制御コントローラ２が、プロセス入出力装置６を介して、機器に制御信号を出力し、機器の動作状態を示す信号を入力することにより、プロセス入出力装置６に接続された機器を制御・監視する。また、制御コントローラ３が、プロセス入出力装置７を介して、機器に制御信号を出力し、機器の動作状態を示す信号を入力することにより、プロセス入出力装置７に接続された機器を制御・監視する。
【００１９】
制御用コントローラ１,２,３はプラント内の互いに異なるプロセスに含まれる機器を制御・監視するので、各制御用コントローラ１,２,３には互いに異なるプログラムを搭載しなければならない。ただし、このバックアップシステム１０では、このプログラムを、各制御用コントローラ１,２,３毎に異なる制御・監視機能の仕様を定義するプログラムである制御用情報と、各制御用コントローラ１,２,３で同一の処理を実行するプログラムである制御用プログラムとに分けて管理する。
【００２０】
プログラム保守装置９は、前述した制御用プログラムを保管する装置である。プログラム保守装置９は、各制御用コントローラ１,２,３に制御用プログラムをダウンロードするとともに、バックアップ用制御コントローラ４にも制御用プログラムを予めダウンロードする。そして、各制御用コントローラ１,２,３への制御用プログラムのダウンロードが完了すると、プログラム保守装置９は、ダウンロードが完了したことを制御用データ保管装置８に通知する。
【００２１】
制御用データ保管装置８は、前述した各制御用コントローラ１,２,３毎の制御用情報を保管する装置である。制御用データ保管装置８は、プログラム保守装置９から前述のダウンロード完了の通知を受けたことに応じて、各制御用コントローラ１,２,３に、それぞれに対応した制御用情報をダウンロードする。
【００２２】
また、各制御用コントローラ１,２,３は、正常動作時には、常に現在の演算データを制御用データ保管装置８に通知する。制御用データ保管装置８は、各制御用コントローラ１,２,３から通知された演算データを保管する。
【００２３】
バックアップ用制御コントローラ４は、制御用コントローラ１,２,３に共通に設けられたバックアップ装置である。制御用コントローラ１，２，３のうちのいずれかに障害が発生すると、制御用データ保管装置８は、障害の発生した制御用コントローラに対応する制御用情報を、バックアップ用制御コントローラ４にダウンロードする。その際、制御用データ保管装置８は、障害の発生した制御用コントローラから障害発生直前に通知された演算データもバックアップ用制御コントローラ４にダウンロードする。そして、バックアップ用制御コントローラ４が、障害の発生した制御用コントローラの制御・監視動作を引き継ぐ。
【００２４】
〈プログラム配置及びプログラムの構造〉
次に、制御用コントローラ１,２,３及びバックアップ用制御コントローラ４におけるプログラム配置と、プログラムの構造とについて説明する。
【００２５】
図２は、制御用コントローラ１,２,３及びバックアップ用制御コントローラ４におけるプログラム配置を示す図である。
システムプログラム２０は、ＯＳやドライバなどである。制御用プログラム２１は、前述のように、各制御用コントローラ１,２,３で同一の処理を実行するプログラムである。これらのシステムプログラム２０及び制御用プログラム２１は、図１のプログラム保守装置９から、制御用コントローラ１,２,３にダウンロードされるとともに、バックアップ用制御コントローラ４にも予めダウンロードされる。
【００２６】
コントローラ別情報２３は、各制御用コントローラ１,２,３毎に異なるプログラムである。このコントローラ別情報２３は、構築情報２２と、制御用情報２４と、イコライズデータアドレス２５と、誤り検出用のＣＲＣ（巡回冗長検査）コード２６とで構成される。
【００２７】
構築情報２２は、システム構成情報であり、当該制御用コントローラへのカードの実装情報や、図１のネットワーク３０及びプロセス入出力ネットワーク３１のアドレス情報や、図１のプロセス入出力装置５，６，７を指定する情報や、信号のレンジ・変換方法を示す情報などから成っている。
【００２８】
制御用情報２４は、前述のように、各制御用コントローラ１,２,３毎に異なる制御・監視機能の仕様を定義するプログラムであり、制御用プログラム２１に所定の制御・監視動作を実行させるための定数や接続情報から成っている。
【００２９】
イコライズデータアドレス２５は、制御用コントローラ１,２,３が正常動作時に生成した演算データのうち、障害発生時にバックアップ用制御コントローラ４に引き継ぐべき演算データを、ワークデータエリア２７内のどの領域に格納するかを示すアドレス情報である。
【００３０】
制御用コントローラ１,２,３には、それぞれの制御用コントローラ毎のコントローラ別情報２３が、図１の制御用データ保管装置８からダウンロードされる。また、バックアップ用制御コントローラ４には、制御用コントローラ１,２,３のうち障害の発生した制御用コントローラに対応するコントローラ別情報２３が、制御用データ保管装置８からダウンロードされる。
【００３１】
ワークデータエリア２７は、オンライン動作中に使用するスタックや変数領域などのメモリ上のエリアである。また前述のように、障害発生時にバックアップ用制御コントローラ４に引き継ぐべき演算データも、ワークデータエリア２７に格納される。
【００３２】
図３は、図２に示した制御用プログラム２１及び制御用情報２４の構造を示す図である。
制御用情報２４中には、制御用情報テーブル２４０が設けられている。制御用情報テーブル２４０は、１つ目の命令２４００，２つ目の命令２４０１，…最後の命令２４０２というように、実行する命令の順序を記述した順序仕様の制御用情報テーブルである。制御用コントローラ１,２,３やバックアップ用制御コントローラ４内のＣＰＵ（中央演算処理装置：Central Processing Unit）は、この制御用情報テーブル２４０の情報を上から順に取り出し、命令を解釈する。
【００３３】
制御用情報テーブル２４０の各命令２４００，２４０１，…２４０２には、当該命令における演算の内容を示す演算仕様の制御用情報テーブルが記述されている。図３には、２つ目の命令２４０１に記述された演算仕様の制御用情報テーブル２４１を示している。この制御用情報テーブル２４１では、命令の実行体を示すサブルーチン２４１０をコールする。また、図２のワークデータエリア２７においてデータ２７０１，２７０２，２７０３，…が格納されているアドレスのうち、サブルーチン２４１０に渡す引数としての入力値が格納されているアドレス２４１１、演算結果を出力すべきアドレス２４１２、演算中で使用する定数などが格納されているアドレス２４１３をサブルーチン２４１０に渡す。
【００３４】
制御用プログラム２１は、この命令の実行体を示すサブルーチン２４１０のサブルーチン群２１００，２１０１，…である。このサブルーチン群２１００，２１０１，…自体は定型的な演算を実行するものであるため、各制御用コントローラ１,２,３の制御・監視動作が異なっていても、制御用プログラム２１は各制御用コントローラ１,２,３で同一になっている。
【００３５】
プラントの制御・監視動作は、こうした構造のプログラムを繰り返し実行して、今回生成した演算データを次回の演算時に初期値として使用するように周期的に演算を行うことによって実現される。
【００３６】
図４は、図２の構築情報２２の構造を示す図である。
構築情報２２中には、構築情報テーブル２２１が設けられている。構築情報テーブル２２１には、図１のプロセス入出力装置５，６，７に設定するＰＩＯ（Process Input Output）情報２２１０，２２１１，２２１２，…（ユニットやアドレスなどの装置の位置情報、電圧や電流などのインターフェイス情報、入出力する信号のレンジ、その信号が異常となった時にどういう通知や処置をするかなどの仕様）が記述されている。
【００３７】
〈バックアップに関連する処理〉
次に、障害発生時のバックアップに関連して図１のシステムの各部が実行する処理を、図５〜図９を参照して説明する。
【００３８】
図５は、正常動作時に各制御用コントローラ１,２,３から制御用データ保管装置８に演算データを通知する処理を示す図である。
【００３９】
プログラムについては障害の発生した制御用コントローラと同一のものをバックアップ装置に搭載させて機能をバックアップさせることができても、その制御用コントローラの障害発生前の演算状態をバックアップ装置に再現させることができない。そのため、バックアップ装置は、制御・監視動作を引き継いだ際に、制御・監視対象の機器への出力値をスムーズに引き継ぐことができず、制御・監視対象の機器を意図した通りに動作させることができなくなる。
【００４０】
制御用コントローラ１，２，３のうちのいずれかに障害が発生したとき、障害の発生した制御用コントローラの制御・監視動作を引き継いだバックアップ用制御コントローラ４が、制御・監視対象の機器を意図した通りに動作させるためには、障害の発生した制御用コントローラに搭載されているプログラムだけでなく、その制御用コントローラが障害発生の直前に生成した演算データ（すなわち次回の演算時に初期値として使用する演算データ）も引き継ぐことが必要である。
【００４１】
例えば、タイマーの経過時間が引き継がれていなければ、制御・監視動作を引き継いだ後に経過時間を再カウントし、制御・監視対象の機器を所要の動作よりも長時間動作させてしまう可能性がある。また例えば、積分の積算値が引き継がれていなければ、制御・監視動作を引き継いだ際に制御・監視対象の機器への出力値が急に変化する可能性もある。このため、タイマーの経過時間，積分の積算値，フリップフロップのメモリ値などの引き継ぐべき演算データを、バックアップ用制御コントローラ４に通知する（以下、「データイコライズ」と呼ぶ）仕組みが必要になる。
【００４２】
しかし、各制御用コントローラ１，２，３が正常動作時に多数の演算データをバックアップ用制御コントローラ４に通知するとした場合には、バックアップ用制御コントローラ４のメモリエリアの増大と負荷の増加を招いてしまう。そこで、各制御用コントローラ１，２，３は、正常動作時に制御用データ保管装置８のほうに演算データを通知することにしている。図５に示した処理は、このようにして各制御用コントローラ１,２,３と制御用データ保管装置８との間で実行されるデータイコライズ処理である。
【００４３】
このデータイコライズ処理では、各制御用コントローラ１,２,３が、図２のワークデータエリア２７のうち前述のような引き継ぐべき演算データを格納する領域のアドレス２００１，２００２…を、図２のイコライズデータアドレス２５中に設けられたイコライズデータ登録テーブル２０００に登録しておく。なお、このイコライズデータ登録テーブル２０００にアドレス２００１，２００２…を登録する演算データは、各制御用コントローラ１,２,３が生成する全ての演算データではなく、制御・監視動作を引き継いだバックアップ用制御コントローラ４が制御・監視対象の機器を意図した通りに動作させるために必須な一部の演算データだけでよい。
【００４４】
そして、各制御用コントローラ１,２,３は、ステップＳ２０１〜Ｓ２０３から成る処理を周期的に実行する。すなわち、各制御用コントローラ１,２,３は、まず、イコライズデータ登録テーブル２０００から、アドレス２００１，２００２…を取り出す（ステップＳ２０１）。
【００４５】
続いて各制御用コントローラ１,２,３は、ワークデータエリア２７からこのアドレス２００１，２００２…に格納されている演算データ２７０１，２７０２，２７０３，…を取り出し、これらの演算データ２７０１，２７０２，２７０３，…をイコライズデータとして制御用データ保管装置８に通知するための通知用データを作成して、その通知用データを各制御用コントローラ１,２,３内のイコライズデータ送信バッファ２００３に格納する（ステップＳ２０２）。
【００４６】
続いて各制御用コントローラ１,２,３は、イコライズデータ送信バッファ２００３に格納された通知用データを、ネットワーク３０を介して制御用データ保管装置８に送信する（ステップＳ２０３）。
【００４７】
各制御用コントローラ１,２,３がこの処理を周期的に実行することにより、各制御用コントローラ１,２,３において次回の演算時に初期値として使用する最新の演算データが、制御用データ保管装置８に通知される。
【００４８】
制御用データ保管装置８は、各制御用コントローラ１,２,３から通知用データを受信する毎に、その通知用データによって通知されたイコライズデータを、制御用データ保管装置８内のイコライズデータ格納エリア８０２０に、制御用コントローラ１,２,３毎のイコライズデータ８０２１，８０２２，８０２３として分類して格納する（ステップＳ８０１）。
【００４９】
図６は、制御用コントローラ１，２，３のうちのいずれかに障害が発生したときに、制御用データ保管装置８が実行する処理を示す図である。
制御用データ保管装置８内には、どの制御用コントローラを監視対象とするかを登録するための監視有りコントローラ登録テーブル８０１０が設けられており、制御用コントローラ１，２，３が監視対象としてこの監視有りコントローラ登録テーブル８０１０に登録されている。
【００５０】
また、制御用データ保管装置８内には、コントローラ別制御用情報保存部８０００が設けられており、監視対象の制御用コントローラ１，２，３毎のコントローラ別情報８００１，８００２，８００３（図２のコントローラ別情報２３に相当するもの）がこのコントローラ別制御用情報保存部８０００に格納されている。
【００５１】
また、制御用データ保管装置８内のイコライズデータ格納エリア８０２０には、図５のデータイコライズ処理により、各制御用コントローラ１,２,３からそれぞれ通知された演算データであるイコライズデータ８０２１，８０２２，８０２３が格納されている。
【００５２】
制御用データ保管装置８は、監視有りコントローラ登録テーブル８０１０を参照することにより自己の監視対象の制御用コントローラ１，２，３を認識して、それらの制御用コントローラ１，２，３の生存を監視する（ステップＳ８０２）。そして制御用データ保管装置８は、制御用コントローラ１，２，３のうちのいずれかに障害が発生したか否を判定する（ステップＳ８０３）。
【００５３】
各制御用コントローラ１，２，３は、正常動作時にはネットワーク３０を介して周期的に制御用データ保管装置８にデータを送信するようになっている。ステップＳ８０２では、具体的にはこの送信データの受信タイムアウトを監視する。そしてステップＳ８０３では、制御用コントローラ１，２，３のうちのいずれかの制御用コントローラについてタイムアウトを検出したときに、その制御用コントローラに障害が発生したと判定する。
【００５４】
ステップＳ８０３で障害が発生したと判定した場合には、制御用データ保管装置８は、コントローラ別制御用情報保存部８０００から障害の発生した制御用コントローラに対応するコントローラ別情報を取出すとともに、イコライズデータ格納エリア８０２０から障害の発生した制御用コントローラに対応するイコライズデータを取出す（ステップＳ８０４）。そして制御用データ保管装置８は、取り出したコントローラ別情報及びイコライズデータを、バックアップ用制御コントローラ４にダウンロードする（ステップＳ８０５）。
【００５５】
なお、ここでは制御用データ保管装置８を１台だけ設けているが、制御用コントローラが多数存在する場合には、制御用データ保管装置８を複数台設置し、各制御用データ保管装置８に、それぞれ一部ずつの制御用コントローラについてのコントローラ別情報の保管処理や図５のデータイコライズ処理や図６の処理を分担して実行させることもできる。その場合には、各制御用データ保管装置８内の監視有りコントローラ登録テーブル８０１０には、それぞれその制御用データ保管装置８が分担する制御用コントローラのみを監視対象として登録することになる。
【００５６】
図７は、図６のステップＳ８０５の処理によって制御用データ保管装置８からバックアップ用制御コントローラ４へのダウンロードが行われた際に、バックアップ用制御コントローラ４が実行するダウンロード確認処理を示す図である。
【００５７】
制御用データ保管装置８からのダウンロードが行われると、バックアップ用制御コントローラ４は、ダウンロードされたコントローラ別情報中のＣＲＣコード（図２のＣＲＣコード２６）を用いて、コントローラ別情報の誤り検出を行う（ステップＳ４０１）。
【００５８】
誤り検出の結果、ダウンロードされたコントローラ別情報に誤りがなければ、バックアップ用制御コントローラ４は、ダウンロードに成功したことを制御用データ保管装置８へ通知する（ステップＳ４０２）。
【００５９】
そしてバックアップ用制御コントローラ４は、図５にイコライズデータ登録テーブル２０００として示したのと同じテーブルを用いて、図２のワークデータエリア２７の所定のアドレスに、ダウンロードされたイコライズデータ２７０１，２７０２，２７０３，…を格納する（ステップＳ４０３）。
【００６０】
なお、図示は省略しているが、ステップＳ４０１での誤り検出の結果、ダウンロードされたコントローラ別情報に誤りがあった場合は、バックアップ用制御コントローラ４は、再度のダウンロードの要求を制御用データ保管装置８へ通知する。
【００６１】
バックアップ用制御コントローラ４には図２のシステムプログラム２０及び制御用プログラム２１が予めダウンロードされている。このため、図６及び図７の処理によってコントローラ別情報（図２のコントローラ別情報２３）が誤りなくダウンロードされることにより、障害の発生した制御用コントローラに搭載されているプログラムと同じプログラムが全てバックアップ用制御コントローラ４にも搭載される。これにより、バックアップ用制御コントローラ４が、プログラムの実行を開始して、障害の発生した制御用コントローラの制御・監視動作を引き継ぐ。
【００６２】
そして、障害発生時にバックアップ用制御コントローラ４にダウンロードされるコントローラ別情報は、障害の発生した制御用コントローラに搭載されているプログラムのうちの一部である。このため、このプログラム全体をダウンロードする場合よりも、ダウンロードに要する時間が短くて済む。これにより、障害発生後、バックアップ用制御コントローラ４が制御・監視動作を引き継ぐまでの時間を短縮することができる。
【００６３】
また、オンラインでダウンロードのために待機する制御用データ保管装置８としては、各制御用コントローラ１，２，３に搭載されているプログラム全体を搭載する場合のような大型・高価・複雑な計算機を採用する必要はない。したがって、制御用データ保管装置８を小型化することができるとともに、制御用データ保管装置８内に設ける記憶装置を小型化することなどによりその信頼性を容易に高めることができる。
【００６４】
更に、図５〜図７の処理により、バックアップ用制御コントローラ４は、障害の発生した制御用コントローラが障害発生の直前に生成したタイマーの経過時間，積分の積算値，フリップフロップのメモリ値などの演算データ（すなわち次回の演算時に初期値として使用する演算データ）もイコライズデータとして引き継ぐことができる。これにより、バックアップ用制御コントローラ４は、障害発生直前の演算状態を再現することができるので、制御・監視対象の機器を所要の動作よりも長時間動作させてしまったり、その機器への出力値を急に変化させてしまったりすることなく、制御・監視対象の機器を意図した通りに動作させることができるようになる。
【００６５】
次に、図８は、プロセス入出力装置５，６，７が、それぞれ制御用コントローラ１，２，３に障害が発生した場合に実行する処理を示す図である。
制御用コントローラ１，２，３は、図１のプロセス入出力ネットワーク３１を介してそれぞれプロセス入出力装置５，６，７に周期的にアクセスするようになっている。プロセス入出力装置５，６，７は、それぞれ制御用コントローラ１，２，３からのアクセスを監視して（ステップＳ５０１）、アクセスのタイムアウトが検出されたか否を判定する（ステップＳ５０２）。
【００６６】
ステップＳ５０２でタイムアウトが検出されなければ、プロセス入出力装置５，６，７は、自己の制御用コントローラの要求による動作を実行する（ステップＳ５０３）。プロセス入出力装置５，６，７は、制御用コントローラ１，２，３の正常動作時にはそれぞれ制御用コントローラ１，２，３を自己の制御用コントローラとして登録している。したがって、ステップＳ５０２でタイムアウトが検出されなかった場合、ステップＳ５０３では、プロセス入出力装置５，６，７は、プロセス入出力装置５，６，７に接続されている機器にそれぞれ制御用コントローラ１，２，３からの制御信号を出力し、その機器から入力した動作状態を示す信号をそれぞれ制御用コントローラ１，２，３に通知する。
【００６７】
プロセス入出力装置５，６，７のうちのいずれかのプロセス入出力装置において、ステップＳ５０２でタイムアウトが検出された場合は、そのプロセス入出力装置は、バックアップ用制御コントローラ４からのアクセスを監視して（ステップＳ５０４）、アクセスのタイムアウトが検出されたか否を判定する（ステップＳ５０５）。
【００６８】
このステップＳ５０５では、図６及び図７の処理によるバックアップ用制御コントローラ４へのコントローラ別情報及びイコライズデータのダウンロードに要する時間を考慮して、ステップＳ５０２よりもタイムアウト設定時間を少し長くしている。
【００６９】
また、このステップＳ５０５でのタイムアウト設定時間が経過するまでは、プロセス入出力装置は、機器への出力信号の値を、ステップＳ５０２でタイムアウトが検出される直前の値のまま維持する。これにより、バックアップ用制御コントローラ４が、障害の発生した制御用コントローラから引き継いだ演算データを用いて制御・監視動作を実施する際に、プロセス入出力装置の出力値が急に変化することがないので、スムーズに制御・監視動作を継続することができるとともに、制御・監視動作の安全性を高めることができる。
【００７０】
ステップＳ５０５でタイムアウトが検出されなければ、そのプロセス入出力装置は、バックアップ用制御コントローラ４を次回以降の自己の制御用コントローラとして登録する（ステップＳ５０６）。
【００７１】
その後、そのプロセス入出力装置は、再びステップＳ５０３を実行する。今度はバックアップ用制御コントローラ４が自己の制御用コントローラとして登録されているので、ステップＳ５０３では、そのプロセス入出力装置は、そのプロセス入出力装置に接続されている機器にバックアップ用制御コントローラ４からの制御信号を出力し、その機器から入力した動作状態を示す信号をバックアップ用制御コントローラ４に通知する。
【００７２】
このとき、もしステップＳ５０２でタイムアウトが検出された制御用コントローラが、完全に動作を停止しておらず不正なアクセスや重複したアクセスを行ってきたとして、その制御用コントローラは自己の制御用コントローラとして登録されていないため、そうした不正なアクセスや重複したアクセスによってプロセス入出力装置が誤動作することはない。したがって、安全に制御・監視動作を行うことができる。
【００７３】
ステップＳ５０５でタイムアウトが検出された場合は、そのプロセス入出力装置にアクセスして機器の制御・監視を行う制御コントローラが不在であることを意味する。そこでその場合には、そのプロセス入出力装置は、そのプロセス入出力装置に接続されている機器への出力信号の値を、プラントの安全を考慮した値に移行させる（例えば、機器の動作を停止させるために、出力値をゼロにする）（ステップＳ５０７）。
【００７４】
図９は、制御用コントローラ１，２，３が、自己診断によって障害を検出した場合に実行する処理を示す図である。
制御用コントローラ１，２，３は、制御用コントローラ内のＣＰＵの異常を検出した場合（ステップＳ１００１）は、図１のプロセス入出力ネットワーク３１との接続を切断する（ステップＳ１００２）。
【００７５】
これにより、制御用コントローラが自己診断によって障害を検出した場合には、その制御用コントローラからプロセス入出力装置にアクセスされることがなくなるので、制御・監視動作の安全性を一層高めることができる。
【００７６】
以上説明した一実施の形態に係るバックアップシステムによれば、制御用コントローラに障害が発生した場合に、その制御用コントローラに搭載されているプログラム全体をバックアップ用制御コントローラにダウンロードする場合よりもダウンロードに要する時間が短くて済む。このため、バックアップ用制御コントローラが制御・監視動作を引き継ぐまでの時間を短縮することができる。また、制御用データ保管装置として、複数の制御用コントローラに搭載されているプログラム全体を搭載する場合のような大型・高価・複雑な計算機を採用する必要がなくなる。
【００７７】
更に、各制御用コントローラが、正常動作時に生成した演算データを、制御用データ保管装置または制御用データ保管装置とは別に備えられた演算データ保管装置に通知する。この演算データを通知された制御用データ保管装置または演算データ保管装置は、通知された演算データを保管し、いずれかの制御用コントローラに障害が発生した場合に、障害の発生した制御用コントローラから通知された演算データをバックアップ用制御コントローラにダウンロードする。このため、バックアップ用制御コントローラは、制御・監視動作を引き継いだ際に、障害発生前の演算状態を再現することができる。
【００７８】
〈変形例〉
なお、上述した一実施の形態では、制御用データ保管装置８が、コントローラ別情報を保管して障害発生時にコントローラ別情報をバックアップ用制御コントローラ４にダウンロードする役割と、制御用コントローラ１，２，３から演算データの通知を受けて障害発生時に演算データをバックアップ用制御コントローラ４にダウンロードする役割との両方を実行している。しかし、制御用コントローラ１，２，３から演算データの通知を受けて障害発生時に演算データをバックアップ用制御コントローラ４にダウンロードする役割のほうは、制御用データ保管装置８とは別の演算データ保管装置をネットワーク３０に接続して、その演算データ保管装置のほうに実行させてもよい。
【００７９】
また、上述した一実施の形態では、３台の制御用コントローラ１，２，３に対して１台のバックアップ用制御コントローラ４を設けたバックアップシステム１０に本発明を適用している。しかし、本発明は、Ｎ台（Ｎは２以上の整数）の制御用コントローラに対して１台あるいはＭ台（Ｍは１以上且つＮ未満の整数）のバックアップ装置を設けるあらゆるＮ：１あるいはＮ：Ｍバックアップシステムに適用することができる。
【００８０】
また、ネットワーク３０にイコライズデータを収集するイコライズデータ収集装置を設けても良い。これにより、定期的に制御用コントローラ１，２，３から収集したイコライズデータを蓄積しておき、障害発生時には、イコライズデータ収集装置から読出したイコライズデータに基づいてバックアップ制御を行うことができる。また、制御用データ保管装置８とイコライズデータ収集装置を併用することで、処理負荷を分散することができる。
【００８１】
また、本発明は上述した実施の形態に限られるものではなく、特許請求の範囲に記載した本発明の要旨を逸脱しない限りその他種々の応用例、変形例を取り得ることは勿論である。
【符号の説明】
【００８２】
１，２，３…制御用コントローラ，４…バックアップ用制御コントローラ，５，６，７…プロセス入出力装置，８…制御用データ保管装置，９…プログラム保守装置，１０…バックアップシステム，３０…ネットワーク，３１…プロセス入出力ネットワーク
【図１】
2011186664.tif 000003
【図２】
2011186664.tif 000004
【図３】
2011186664.tif 000005
【図４】
2011186664.tif 000006
【図５】
2011186664.tif 000007
【図６】
2011186664.tif 000008
【図７】
2011186664.tif 000009
【図８】
2011186664.tif 000010
【図９】
2011186664.tif 000011