説明

バックアップシステム

【課題】プラントを制御・監視する制御用コントローラをN:1あるいはN:M方式でバックアップするシステムにおいて、障害発生時の制御・監視動作の引継ぎ時間を短縮する。
【解決手段】複数の制御用コントローラ1〜3に対して設けたバックアップ用制御コントローラ4に、制御用コントローラ1〜3に搭載したプログラムのうち、制御用コントローラ1〜3で同一の処理を実行する制御用プログラムを搭載する。制御用データ保管装置8は、制御用コントローラ1〜3に搭載したプログラムのうち制御用コントローラ1〜3毎に異なる制御・監視機能の仕様を定義する制御用情報を保管し、制御用コントローラ1〜3の障害の発生の有無を監視して、障害の発生した制御用コントローラに対応する制御用情報をバックアップ用制御コントローラ4にダウンロードする。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、例えば、発電所,下水処理プラント,化学プラント,鉄鋼プラントなどのプラントを制御・監視する制御用コントローラのバックアップシステムに関する。
【背景技術】
【0002】
発電所,下水処理プラント,化学プラント,鉄鋼プラントなどのプラントは複数の工程(プロセス)で構成されており、各プロセスにはそれぞれ1または複数の機器や設備(以下、機器と総称する)が含まれている。そのため、プラントを制御・監視するシステムでは、プロセスの数に対応して複数の制御用コントローラを設け、それらの制御用コントローラによって各プロセスに含まれる機器を制御・監視している。
【0003】
こうした制御・監視システムでは、信頼性を高めるために、従来から、個々の制御用コントローラに対してそれぞれバックアップ装置(バックアップ用制御コントローラ)を1台あるいは2台設けた2重化あるいは3重化したバックアップシステムが構築されてきた。しかし、これらの2重化あるいは3重化したバックアップシステムは、制御用コントローラの数に比例した冗長系設備を必要とするので、初期投資や設置スペース上の問題がある。
【0004】
この問題を解消するために、N台(Nは2以上の整数)の制御用コントローラに対して1台あるいはM台(Mは1以上且つN未満の整数)のバックアップ装置を設けるN:1あるいはN:Mバックアップシステムを構築することにより、2台以上の制御用コントローラでバックアップ装置を共用化することは従来から提案されている。
【0005】
しかし、各制御用コントローラはプラント内の互いに異なる機器を制御・監視するので、各制御用コントローラに搭載されるプログラムも互いに異なっている。そこで、N:1あるいはN:Mバックアップシステムによってバックアップ装置を共用化する際に、障害が発生した制御用コントローラに搭載されているのと同じプログラムをバックアップ装置に実行させるために以下の方法が提案されていた。
【0006】
例えば、特許文献1には、いずれかの制御用コントローラに障害が発生してから、その制御用コントローラに搭載されているのと同じプログラムをバックアップ装置にダウンロードするという方法が記載されている。
【先行技術文献】
【特許文献】
【0007】
【特許文献1】特開昭60−252903号公報
【発明の概要】
【発明が解決しようとする課題】
【0008】
しかし、多くのプログラムをバックアップ装置に搭載する必要があるので、バックアップ装置が制御用コントローラよりも複雑・大型・高価・低速になる。そのため、プラントを制御するのに適したバックアップ装置を提供することが困難である。
【0009】
また、特許文献1に記載された方法では、制御用コントローラに搭載されているのと同じプログラムを全てバックアップ装置にダウンロードするので、ダウンロードに要する時間が長くなる。そのため、障害の発生後バックアップ装置が制御・監視動作を引き継ぐまでに長い時間がかかるので、制御・監視対象の機器に悪影響を与える可能性がある。
【0010】
また、各制御用コントローラに搭載されているプログラムを全て搭載することのできるデータ保管装置をオンラインで稼動させておく必要があり、この用途には一般に大型・高価・複雑な計算機が採用されるが、更にこの計算機の冗長化が必要になるという問題もある。
【0011】
本発明は、上述の点に鑑み、N:1あるいはN:Mバックアップシステムによってバックアップ装置を共用化する際に、プラント内の多数または全ての機器を制御・監視対象としたプログラムを予めバックアップ装置に搭載することなく、しかも、制御・監視動作の引き継ぎに長い時間がかかり且つ大型・高価・複雑な計算機をオンラインで稼動させなければならないという問題を解消することを目的とする。
【課題を解決するための手段】
【0012】
本発明に係るバックアップシステムでは、複数の制御用コントローラに対して設けられたバックアップ用制御コントローラに、制御用コントローラに搭載されたプログラムのうち、複数の制御用コントローラで同一の処理を実行するプログラムである制御用プログラムが搭載されている。制御用コントローラに搭載されたプログラムのうち、制御用コントローラ毎に異なる制御・監視機能の仕様を定義するプログラムである制御用情報は、制御用データ保管装置が保管している。制御用データ保管装置は、各制御用コントローラの障害の発生の有無を監視し、いずれかの制御用コントローラに障害が発生した場合に、保管している制御用情報のうち障害の発生した制御用コントローラに対応する制御用情報をバックアップ用制御コントローラにダウンロードする。
【発明の効果】
【0013】
本発明によれば、制御用コントローラに障害が発生した場合に、その制御用コントローラに搭載されているプログラム全体をバックアップ用制御コントローラにダウンロードする場合よりもダウンロードに要する時間が短くて済む。このため、バックアップ用制御コントローラが制御・監視動作を引き継ぐまでの時間を短縮することができる。また、制御用データ保管装置として、複数の制御用コントローラに搭載されているプログラム全体を搭載する場合のような大型・高価・複雑な計算機を採用する必要がなくなる。
【図面の簡単な説明】
【0014】
【図1】本発明の一実施の形態に係るバックアップシステムの全体構成を示す図である。
【図2】制御用コントローラ及びバックアップ用制御コントローラにおけるプログラム配置を示す図である。
【図3】制御用プログラム及び制御用情報の構造を示す図である。
【図4】構築情報の構造を示す図である。
【図5】データイコライズ処理を示す図である。
【図6】障害発生時に制御用データ保管装置が実行する処理を示す図である。
【図7】バックアップ用制御コントローラが実行するダウンロード確認処理を示す図である。
【図8】障害発生時にプロセス入出力装置が実行する処理を示す図である。
【図9】制御用コントローラが自己の障害の検出時に実行する処理を示す図である。
【発明を実施するための形態】
【0015】
以下、本発明を実施するための最良の形態(以下、実施の形態とする)について、図1〜図9を参照して説明する。
【0016】
〈システムの概要〉
図1は、本発明の一実施の形態に係るバックアップシステム10の全体構成を示す図である。
このバックアップシステム10では、制御用コントローラ1,2,3と、バックアップ用制御コントローラ4とが、ネットワーク30により、制御用データ保管装置8及びプログラム保守装置9に接続されている。
【0017】
また、制御用コントローラ1,2,3と、バックアップ用制御コントローラ4とは、プロセス入出力ネットワーク31により、プロセス入出力装置5,6,7に接続されている。プロセス入出力装置5,6,7には、制御・監視対象のプラントのうち、それぞれ異なるプロセスに含まれる機器(図示略)が接続されている。
【0018】
このバックアップシステム10では、制御用コントローラ1,2,3が全て正常に動作している場合は、制御コントローラ1が、プロセス入出力装置5を介して、機器に制御信号を出力し、機器の動作状態を示す信号を入力することにより、プロセス入出力装置5に接続された機器を制御・監視する。また、制御コントローラ2が、プロセス入出力装置6を介して、機器に制御信号を出力し、機器の動作状態を示す信号を入力することにより、プロセス入出力装置6に接続された機器を制御・監視する。また、制御コントローラ3が、プロセス入出力装置7を介して、機器に制御信号を出力し、機器の動作状態を示す信号を入力することにより、プロセス入出力装置7に接続された機器を制御・監視する。
【0019】
制御用コントローラ1,2,3はプラント内の互いに異なるプロセスに含まれる機器を制御・監視するので、各制御用コントローラ1,2,3には互いに異なるプログラムを搭載しなければならない。ただし、このバックアップシステム10では、このプログラムを、各制御用コントローラ1,2,3毎に異なる制御・監視機能の仕様を定義するプログラムである制御用情報と、各制御用コントローラ1,2,3で同一の処理を実行するプログラムである制御用プログラムとに分けて管理する。
【0020】
プログラム保守装置9は、前述した制御用プログラムを保管する装置である。プログラム保守装置9は、各制御用コントローラ1,2,3に制御用プログラムをダウンロードするとともに、バックアップ用制御コントローラ4にも制御用プログラムを予めダウンロードする。そして、各制御用コントローラ1,2,3への制御用プログラムのダウンロードが完了すると、プログラム保守装置9は、ダウンロードが完了したことを制御用データ保管装置8に通知する。
【0021】
制御用データ保管装置8は、前述した各制御用コントローラ1,2,3毎の制御用情報を保管する装置である。制御用データ保管装置8は、プログラム保守装置9から前述のダウンロード完了の通知を受けたことに応じて、各制御用コントローラ1,2,3に、それぞれに対応した制御用情報をダウンロードする。
【0022】
また、各制御用コントローラ1,2,3は、正常動作時には、常に現在の演算データを制御用データ保管装置8に通知する。制御用データ保管装置8は、各制御用コントローラ1,2,3から通知された演算データを保管する。
【0023】
バックアップ用制御コントローラ4は、制御用コントローラ1,2,3に共通に設けられたバックアップ装置である。制御用コントローラ1,2,3のうちのいずれかに障害が発生すると、制御用データ保管装置8は、障害の発生した制御用コントローラに対応する制御用情報を、バックアップ用制御コントローラ4にダウンロードする。その際、制御用データ保管装置8は、障害の発生した制御用コントローラから障害発生直前に通知された演算データもバックアップ用制御コントローラ4にダウンロードする。そして、バックアップ用制御コントローラ4が、障害の発生した制御用コントローラの制御・監視動作を引き継ぐ。
【0024】
〈プログラム配置及びプログラムの構造〉
次に、制御用コントローラ1,2,3及びバックアップ用制御コントローラ4におけるプログラム配置と、プログラムの構造とについて説明する。
【0025】
図2は、制御用コントローラ1,2,3及びバックアップ用制御コントローラ4におけるプログラム配置を示す図である。
システムプログラム20は、OSやドライバなどである。制御用プログラム21は、前述のように、各制御用コントローラ1,2,3で同一の処理を実行するプログラムである。これらのシステムプログラム20及び制御用プログラム21は、図1のプログラム保守装置9から、制御用コントローラ1,2,3にダウンロードされるとともに、バックアップ用制御コントローラ4にも予めダウンロードされる。
【0026】
コントローラ別情報23は、各制御用コントローラ1,2,3毎に異なるプログラムである。このコントローラ別情報23は、構築情報22と、制御用情報24と、イコライズデータアドレス25と、誤り検出用のCRC(巡回冗長検査)コード26とで構成される。
【0027】
構築情報22は、システム構成情報であり、当該制御用コントローラへのカードの実装情報や、図1のネットワーク30及びプロセス入出力ネットワーク31のアドレス情報や、図1のプロセス入出力装置5,6,7を指定する情報や、信号のレンジ・変換方法を示す情報などから成っている。
【0028】
制御用情報24は、前述のように、各制御用コントローラ1,2,3毎に異なる制御・監視機能の仕様を定義するプログラムであり、制御用プログラム21に所定の制御・監視動作を実行させるための定数や接続情報から成っている。
【0029】
イコライズデータアドレス25は、制御用コントローラ1,2,3が正常動作時に生成した演算データのうち、障害発生時にバックアップ用制御コントローラ4に引き継ぐべき演算データを、ワークデータエリア27内のどの領域に格納するかを示すアドレス情報である。
【0030】
制御用コントローラ1,2,3には、それぞれの制御用コントローラ毎のコントローラ別情報23が、図1の制御用データ保管装置8からダウンロードされる。また、バックアップ用制御コントローラ4には、制御用コントローラ1,2,3のうち障害の発生した制御用コントローラに対応するコントローラ別情報23が、制御用データ保管装置8からダウンロードされる。
【0031】
ワークデータエリア27は、オンライン動作中に使用するスタックや変数領域などのメモリ上のエリアである。また前述のように、障害発生時にバックアップ用制御コントローラ4に引き継ぐべき演算データも、ワークデータエリア27に格納される。
【0032】
図3は、図2に示した制御用プログラム21及び制御用情報24の構造を示す図である。
制御用情報24中には、制御用情報テーブル240が設けられている。制御用情報テーブル240は、1つ目の命令2400,2つ目の命令2401,…最後の命令2402というように、実行する命令の順序を記述した順序仕様の制御用情報テーブルである。制御用コントローラ1,2,3やバックアップ用制御コントローラ4内のCPU(中央演算処理装置:Central Processing Unit)は、この制御用情報テーブル240の情報を上から順に取り出し、命令を解釈する。
【0033】
制御用情報テーブル240の各命令2400,2401,…2402には、当該命令における演算の内容を示す演算仕様の制御用情報テーブルが記述されている。図3には、2つ目の命令2401に記述された演算仕様の制御用情報テーブル241を示している。この制御用情報テーブル241では、命令の実行体を示すサブルーチン2410をコールする。また、図2のワークデータエリア27においてデータ2701,2702,2703,…が格納されているアドレスのうち、サブルーチン2410に渡す引数としての入力値が格納されているアドレス2411、演算結果を出力すべきアドレス2412、演算中で使用する定数などが格納されているアドレス2413をサブルーチン2410に渡す。
【0034】
制御用プログラム21は、この命令の実行体を示すサブルーチン2410のサブルーチン群2100,2101,…である。このサブルーチン群2100,2101,…自体は定型的な演算を実行するものであるため、各制御用コントローラ1,2,3の制御・監視動作が異なっていても、制御用プログラム21は各制御用コントローラ1,2,3で同一になっている。
【0035】
プラントの制御・監視動作は、こうした構造のプログラムを繰り返し実行して、今回生成した演算データを次回の演算時に初期値として使用するように周期的に演算を行うことによって実現される。
【0036】
図4は、図2の構築情報22の構造を示す図である。
構築情報22中には、構築情報テーブル221が設けられている。構築情報テーブル221には、図1のプロセス入出力装置5,6,7に設定するPIO(Process Input Output)情報2210,2211,2212,…(ユニットやアドレスなどの装置の位置情報、電圧や電流などのインターフェイス情報、入出力する信号のレンジ、その信号が異常となった時にどういう通知や処置をするかなどの仕様)が記述されている。
【0037】
〈バックアップに関連する処理〉
次に、障害発生時のバックアップに関連して図1のシステムの各部が実行する処理を、図5〜図9を参照して説明する。
【0038】
図5は、正常動作時に各制御用コントローラ1,2,3から制御用データ保管装置8に演算データを通知する処理を示す図である。
【0039】
プログラムについては障害の発生した制御用コントローラと同一のものをバックアップ装置に搭載させて機能をバックアップさせることができても、その制御用コントローラの障害発生前の演算状態をバックアップ装置に再現させることができない。そのため、バックアップ装置は、制御・監視動作を引き継いだ際に、制御・監視対象の機器への出力値をスムーズに引き継ぐことができず、制御・監視対象の機器を意図した通りに動作させることができなくなる。
【0040】
制御用コントローラ1,2,3のうちのいずれかに障害が発生したとき、障害の発生した制御用コントローラの制御・監視動作を引き継いだバックアップ用制御コントローラ4が、制御・監視対象の機器を意図した通りに動作させるためには、障害の発生した制御用コントローラに搭載されているプログラムだけでなく、その制御用コントローラが障害発生の直前に生成した演算データ(すなわち次回の演算時に初期値として使用する演算データ)も引き継ぐことが必要である。
【0041】
例えば、タイマーの経過時間が引き継がれていなければ、制御・監視動作を引き継いだ後に経過時間を再カウントし、制御・監視対象の機器を所要の動作よりも長時間動作させてしまう可能性がある。また例えば、積分の積算値が引き継がれていなければ、制御・監視動作を引き継いだ際に制御・監視対象の機器への出力値が急に変化する可能性もある。このため、タイマーの経過時間,積分の積算値,フリップフロップのメモリ値などの引き継ぐべき演算データを、バックアップ用制御コントローラ4に通知する(以下、「データイコライズ」と呼ぶ)仕組みが必要になる。
【0042】
しかし、各制御用コントローラ1,2,3が正常動作時に多数の演算データをバックアップ用制御コントローラ4に通知するとした場合には、バックアップ用制御コントローラ4のメモリエリアの増大と負荷の増加を招いてしまう。そこで、各制御用コントローラ1,2,3は、正常動作時に制御用データ保管装置8のほうに演算データを通知することにしている。図5に示した処理は、このようにして各制御用コントローラ1,2,3と制御用データ保管装置8との間で実行されるデータイコライズ処理である。
【0043】
このデータイコライズ処理では、各制御用コントローラ1,2,3が、図2のワークデータエリア27のうち前述のような引き継ぐべき演算データを格納する領域のアドレス2001,2002…を、図2のイコライズデータアドレス25中に設けられたイコライズデータ登録テーブル2000に登録しておく。なお、このイコライズデータ登録テーブル2000にアドレス2001,2002…を登録する演算データは、各制御用コントローラ1,2,3が生成する全ての演算データではなく、制御・監視動作を引き継いだバックアップ用制御コントローラ4が制御・監視対象の機器を意図した通りに動作させるために必須な一部の演算データだけでよい。
【0044】
そして、各制御用コントローラ1,2,3は、ステップS201〜S203から成る処理を周期的に実行する。すなわち、各制御用コントローラ1,2,3は、まず、イコライズデータ登録テーブル2000から、アドレス2001,2002…を取り出す(ステップS201)。
【0045】
続いて各制御用コントローラ1,2,3は、ワークデータエリア27からこのアドレス2001,2002…に格納されている演算データ2701,2702,2703,…を取り出し、これらの演算データ2701,2702,2703,…をイコライズデータとして制御用データ保管装置8に通知するための通知用データを作成して、その通知用データを各制御用コントローラ1,2,3内のイコライズデータ送信バッファ2003に格納する(ステップS202)。
【0046】
続いて各制御用コントローラ1,2,3は、イコライズデータ送信バッファ2003に格納された通知用データを、ネットワーク30を介して制御用データ保管装置8に送信する(ステップS203)。
【0047】
各制御用コントローラ1,2,3がこの処理を周期的に実行することにより、各制御用コントローラ1,2,3において次回の演算時に初期値として使用する最新の演算データが、制御用データ保管装置8に通知される。
【0048】
制御用データ保管装置8は、各制御用コントローラ1,2,3から通知用データを受信する毎に、その通知用データによって通知されたイコライズデータを、制御用データ保管装置8内のイコライズデータ格納エリア8020に、制御用コントローラ1,2,3毎のイコライズデータ8021,8022,8023として分類して格納する(ステップS801)。
【0049】
図6は、制御用コントローラ1,2,3のうちのいずれかに障害が発生したときに、制御用データ保管装置8が実行する処理を示す図である。
制御用データ保管装置8内には、どの制御用コントローラを監視対象とするかを登録するための監視有りコントローラ登録テーブル8010が設けられており、制御用コントローラ1,2,3が監視対象としてこの監視有りコントローラ登録テーブル8010に登録されている。
【0050】
また、制御用データ保管装置8内には、コントローラ別制御用情報保存部8000が設けられており、監視対象の制御用コントローラ1,2,3毎のコントローラ別情報8001,8002,8003(図2のコントローラ別情報23に相当するもの)がこのコントローラ別制御用情報保存部8000に格納されている。
【0051】
また、制御用データ保管装置8内のイコライズデータ格納エリア8020には、図5のデータイコライズ処理により、各制御用コントローラ1,2,3からそれぞれ通知された演算データであるイコライズデータ8021,8022,8023が格納されている。
【0052】
制御用データ保管装置8は、監視有りコントローラ登録テーブル8010を参照することにより自己の監視対象の制御用コントローラ1,2,3を認識して、それらの制御用コントローラ1,2,3の生存を監視する(ステップS802)。そして制御用データ保管装置8は、制御用コントローラ1,2,3のうちのいずれかに障害が発生したか否を判定する(ステップS803)。
【0053】
各制御用コントローラ1,2,3は、正常動作時にはネットワーク30を介して周期的に制御用データ保管装置8にデータを送信するようになっている。ステップS802では、具体的にはこの送信データの受信タイムアウトを監視する。そしてステップS803では、制御用コントローラ1,2,3のうちのいずれかの制御用コントローラについてタイムアウトを検出したときに、その制御用コントローラに障害が発生したと判定する。
【0054】
ステップS803で障害が発生したと判定した場合には、制御用データ保管装置8は、コントローラ別制御用情報保存部8000から障害の発生した制御用コントローラに対応するコントローラ別情報を取出すとともに、イコライズデータ格納エリア8020から障害の発生した制御用コントローラに対応するイコライズデータを取出す(ステップS804)。そして制御用データ保管装置8は、取り出したコントローラ別情報及びイコライズデータを、バックアップ用制御コントローラ4にダウンロードする(ステップS805)。
【0055】
なお、ここでは制御用データ保管装置8を1台だけ設けているが、制御用コントローラが多数存在する場合には、制御用データ保管装置8を複数台設置し、各制御用データ保管装置8に、それぞれ一部ずつの制御用コントローラについてのコントローラ別情報の保管処理や図5のデータイコライズ処理や図6の処理を分担して実行させることもできる。その場合には、各制御用データ保管装置8内の監視有りコントローラ登録テーブル8010には、それぞれその制御用データ保管装置8が分担する制御用コントローラのみを監視対象として登録することになる。
【0056】
図7は、図6のステップS805の処理によって制御用データ保管装置8からバックアップ用制御コントローラ4へのダウンロードが行われた際に、バックアップ用制御コントローラ4が実行するダウンロード確認処理を示す図である。
【0057】
制御用データ保管装置8からのダウンロードが行われると、バックアップ用制御コントローラ4は、ダウンロードされたコントローラ別情報中のCRCコード(図2のCRCコード26)を用いて、コントローラ別情報の誤り検出を行う(ステップS401)。
【0058】
誤り検出の結果、ダウンロードされたコントローラ別情報に誤りがなければ、バックアップ用制御コントローラ4は、ダウンロードに成功したことを制御用データ保管装置8へ通知する(ステップS402)。
【0059】
そしてバックアップ用制御コントローラ4は、図5にイコライズデータ登録テーブル2000として示したのと同じテーブルを用いて、図2のワークデータエリア27の所定のアドレスに、ダウンロードされたイコライズデータ2701,2702,2703,…を格納する(ステップS403)。
【0060】
なお、図示は省略しているが、ステップS401での誤り検出の結果、ダウンロードされたコントローラ別情報に誤りがあった場合は、バックアップ用制御コントローラ4は、再度のダウンロードの要求を制御用データ保管装置8へ通知する。
【0061】
バックアップ用制御コントローラ4には図2のシステムプログラム20及び制御用プログラム21が予めダウンロードされている。このため、図6及び図7の処理によってコントローラ別情報(図2のコントローラ別情報23)が誤りなくダウンロードされることにより、障害の発生した制御用コントローラに搭載されているプログラムと同じプログラムが全てバックアップ用制御コントローラ4にも搭載される。これにより、バックアップ用制御コントローラ4が、プログラムの実行を開始して、障害の発生した制御用コントローラの制御・監視動作を引き継ぐ。
【0062】
そして、障害発生時にバックアップ用制御コントローラ4にダウンロードされるコントローラ別情報は、障害の発生した制御用コントローラに搭載されているプログラムのうちの一部である。このため、このプログラム全体をダウンロードする場合よりも、ダウンロードに要する時間が短くて済む。これにより、障害発生後、バックアップ用制御コントローラ4が制御・監視動作を引き継ぐまでの時間を短縮することができる。
【0063】
また、オンラインでダウンロードのために待機する制御用データ保管装置8としては、各制御用コントローラ1,2,3に搭載されているプログラム全体を搭載する場合のような大型・高価・複雑な計算機を採用する必要はない。したがって、制御用データ保管装置8を小型化することができるとともに、制御用データ保管装置8内に設ける記憶装置を小型化することなどによりその信頼性を容易に高めることができる。
【0064】
更に、図5〜図7の処理により、バックアップ用制御コントローラ4は、障害の発生した制御用コントローラが障害発生の直前に生成したタイマーの経過時間,積分の積算値,フリップフロップのメモリ値などの演算データ(すなわち次回の演算時に初期値として使用する演算データ)もイコライズデータとして引き継ぐことができる。これにより、バックアップ用制御コントローラ4は、障害発生直前の演算状態を再現することができるので、制御・監視対象の機器を所要の動作よりも長時間動作させてしまったり、その機器への出力値を急に変化させてしまったりすることなく、制御・監視対象の機器を意図した通りに動作させることができるようになる。
【0065】
次に、図8は、プロセス入出力装置5,6,7が、それぞれ制御用コントローラ1,2,3に障害が発生した場合に実行する処理を示す図である。
制御用コントローラ1,2,3は、図1のプロセス入出力ネットワーク31を介してそれぞれプロセス入出力装置5,6,7に周期的にアクセスするようになっている。プロセス入出力装置5,6,7は、それぞれ制御用コントローラ1,2,3からのアクセスを監視して(ステップS501)、アクセスのタイムアウトが検出されたか否を判定する(ステップS502)。
【0066】
ステップS502でタイムアウトが検出されなければ、プロセス入出力装置5,6,7は、自己の制御用コントローラの要求による動作を実行する(ステップS503)。プロセス入出力装置5,6,7は、制御用コントローラ1,2,3の正常動作時にはそれぞれ制御用コントローラ1,2,3を自己の制御用コントローラとして登録している。したがって、ステップS502でタイムアウトが検出されなかった場合、ステップS503では、プロセス入出力装置5,6,7は、プロセス入出力装置5,6,7に接続されている機器にそれぞれ制御用コントローラ1,2,3からの制御信号を出力し、その機器から入力した動作状態を示す信号をそれぞれ制御用コントローラ1,2,3に通知する。
【0067】
プロセス入出力装置5,6,7のうちのいずれかのプロセス入出力装置において、ステップS502でタイムアウトが検出された場合は、そのプロセス入出力装置は、バックアップ用制御コントローラ4からのアクセスを監視して(ステップS504)、アクセスのタイムアウトが検出されたか否を判定する(ステップS505)。
【0068】
このステップS505では、図6及び図7の処理によるバックアップ用制御コントローラ4へのコントローラ別情報及びイコライズデータのダウンロードに要する時間を考慮して、ステップS502よりもタイムアウト設定時間を少し長くしている。
【0069】
また、このステップS505でのタイムアウト設定時間が経過するまでは、プロセス入出力装置は、機器への出力信号の値を、ステップS502でタイムアウトが検出される直前の値のまま維持する。これにより、バックアップ用制御コントローラ4が、障害の発生した制御用コントローラから引き継いだ演算データを用いて制御・監視動作を実施する際に、プロセス入出力装置の出力値が急に変化することがないので、スムーズに制御・監視動作を継続することができるとともに、制御・監視動作の安全性を高めることができる。
【0070】
ステップS505でタイムアウトが検出されなければ、そのプロセス入出力装置は、バックアップ用制御コントローラ4を次回以降の自己の制御用コントローラとして登録する(ステップS506)。
【0071】
その後、そのプロセス入出力装置は、再びステップS503を実行する。今度はバックアップ用制御コントローラ4が自己の制御用コントローラとして登録されているので、ステップS503では、そのプロセス入出力装置は、そのプロセス入出力装置に接続されている機器にバックアップ用制御コントローラ4からの制御信号を出力し、その機器から入力した動作状態を示す信号をバックアップ用制御コントローラ4に通知する。
【0072】
このとき、もしステップS502でタイムアウトが検出された制御用コントローラが、完全に動作を停止しておらず不正なアクセスや重複したアクセスを行ってきたとして、その制御用コントローラは自己の制御用コントローラとして登録されていないため、そうした不正なアクセスや重複したアクセスによってプロセス入出力装置が誤動作することはない。したがって、安全に制御・監視動作を行うことができる。
【0073】
ステップS505でタイムアウトが検出された場合は、そのプロセス入出力装置にアクセスして機器の制御・監視を行う制御コントローラが不在であることを意味する。そこでその場合には、そのプロセス入出力装置は、そのプロセス入出力装置に接続されている機器への出力信号の値を、プラントの安全を考慮した値に移行させる(例えば、機器の動作を停止させるために、出力値をゼロにする)(ステップS507)。
【0074】
図9は、制御用コントローラ1,2,3が、自己診断によって障害を検出した場合に実行する処理を示す図である。
制御用コントローラ1,2,3は、制御用コントローラ内のCPUの異常を検出した場合(ステップS1001)は、図1のプロセス入出力ネットワーク31との接続を切断する(ステップS1002)。
【0075】
これにより、制御用コントローラが自己診断によって障害を検出した場合には、その制御用コントローラからプロセス入出力装置にアクセスされることがなくなるので、制御・監視動作の安全性を一層高めることができる。
【0076】
以上説明した一実施の形態に係るバックアップシステムによれば、制御用コントローラに障害が発生した場合に、その制御用コントローラに搭載されているプログラム全体をバックアップ用制御コントローラにダウンロードする場合よりもダウンロードに要する時間が短くて済む。このため、バックアップ用制御コントローラが制御・監視動作を引き継ぐまでの時間を短縮することができる。また、制御用データ保管装置として、複数の制御用コントローラに搭載されているプログラム全体を搭載する場合のような大型・高価・複雑な計算機を採用する必要がなくなる。
【0077】
更に、各制御用コントローラが、正常動作時に生成した演算データを、制御用データ保管装置または制御用データ保管装置とは別に備えられた演算データ保管装置に通知する。この演算データを通知された制御用データ保管装置または演算データ保管装置は、通知された演算データを保管し、いずれかの制御用コントローラに障害が発生した場合に、障害の発生した制御用コントローラから通知された演算データをバックアップ用制御コントローラにダウンロードする。このため、バックアップ用制御コントローラは、制御・監視動作を引き継いだ際に、障害発生前の演算状態を再現することができる。
【0078】
〈変形例〉
なお、上述した一実施の形態では、制御用データ保管装置8が、コントローラ別情報を保管して障害発生時にコントローラ別情報をバックアップ用制御コントローラ4にダウンロードする役割と、制御用コントローラ1,2,3から演算データの通知を受けて障害発生時に演算データをバックアップ用制御コントローラ4にダウンロードする役割との両方を実行している。しかし、制御用コントローラ1,2,3から演算データの通知を受けて障害発生時に演算データをバックアップ用制御コントローラ4にダウンロードする役割のほうは、制御用データ保管装置8とは別の演算データ保管装置をネットワーク30に接続して、その演算データ保管装置のほうに実行させてもよい。
【0079】
また、上述した一実施の形態では、3台の制御用コントローラ1,2,3に対して1台のバックアップ用制御コントローラ4を設けたバックアップシステム10に本発明を適用している。しかし、本発明は、N台(Nは2以上の整数)の制御用コントローラに対して1台あるいはM台(Mは1以上且つN未満の整数)のバックアップ装置を設けるあらゆるN:1あるいはN:Mバックアップシステムに適用することができる。
【0080】
また、ネットワーク30にイコライズデータを収集するイコライズデータ収集装置を設けても良い。これにより、定期的に制御用コントローラ1,2,3から収集したイコライズデータを蓄積しておき、障害発生時には、イコライズデータ収集装置から読出したイコライズデータに基づいてバックアップ制御を行うことができる。また、制御用データ保管装置8とイコライズデータ収集装置を併用することで、処理負荷を分散することができる。
【0081】
また、本発明は上述した実施の形態に限られるものではなく、特許請求の範囲に記載した本発明の要旨を逸脱しない限りその他種々の応用例、変形例を取り得ることは勿論である。
【符号の説明】
【0082】
1,2,3…制御用コントローラ,4…バックアップ用制御コントローラ,5,6,7…プロセス入出力装置,8…制御用データ保管装置,9…プログラム保守装置,10…バックアップシステム,30…ネットワーク,31…プロセス入出力ネットワーク

【特許請求の範囲】
【請求項1】
プラントの制御・監視を行う複数の制御用コントローラと、
前記複数の制御用コントローラに対して設けられたバックアップ用制御コントローラと、
前記複数の制御用コントローラ及び前記バックアップ用制御コントローラが前記プラントとの間で信号の入出力を行うためのプロセス入出力装置と、
各々の前記制御用コントローラ毎に異なる制御・監視機能の仕様を定義するプログラムである制御用情報を保管する制御用データ保管装置と、を備え、
前記複数の制御用コントローラに搭載されるプログラムは、前記制御用情報と、前記複数の制御用コントローラで同一の処理を実行するプログラムである制御用プログラムとに分割されており、
前記バックアップ用制御コントローラには、前記制御用プログラムが搭載されており、
前記制御用データ保管装置は、前記複数の制御用コントローラの障害の発生の有無を監視し、いずれかの前記制御用コントローラに障害が発生した場合に、保管している前記制御用情報のうち障害の発生した前記制御用コントローラに対応する前記制御用情報を前記バックアップ用制御コントローラにダウンロードする
バックアップシステム。
【請求項2】
前記制御用コントローラは、正常動作時に生成した演算データを、前記制御用データ保管装置または前記制御用データ保管装置とは別に備えられた演算データ保管装置に通知し、
前記演算データを通知された前記制御用データ保管装置または前記演算データ保管装置は、前記演算データを保管し、いずれかの前記制御用コントローラに障害が発生した場合に、障害の発生した制御用コントローラから通知された前記演算データを前記バックアップ用制御コントローラにダウンロードする
請求項1記載のバックアップシステム。
【請求項3】
前記制御用データ保管装置は、前記制御用情報とともに誤り検出用符号を前記バックアップ用制御コントローラにダウンロードし、
前記バックアップ用制御コントローラは、前記誤り検出用符号を用いて、ダウンロードされた前記制御用情報の誤り検出を行い、誤りがない場合に前記制御用情報及び前記制御用プログラムを実行する
請求項2記載のバックアップシステム。
【請求項4】
前記制御用コントローラは、自己診断によって障害を検出した場合に、前記プロセス入出力装置との接続を切断する
請求項3記載のバックアップシステム。
【請求項5】
前記プロセス入出力装置は、前記制御用コントローラからのアクセスのタイムアウトを検出した後、前記バックアップ用制御コントローラからのアクセスのタイムアウトを検出するための所定のタイムアウト設定時間が経過するまで、前記プラントへの出力信号の値を、前記制御用コントローラからのアクセスのタイムアウトを検出する直前の値に維持する
請求項2記載のバックアップシステム。
【請求項6】
前記制御用プログラムを保管するプログラム保守装置をさらに備え、
前記プログラム保守装置は、前記複数の制御用コントローラ及び前記バックアップ用制御コントローラに前記制御用プログラムをダウンロードするとともに、前記複数の制御用コントローラに前記制御用プログラムをダウンロードしたことを前記制御用データ保管装置に通知し、
前記制御用データ保管装置は、前記プログラム保守装置から前記通知を受けたことに応じて、前記複数の制御用コントローラに、各々の前記制御用コントローラ毎の前記制御用情報をダウンロードする
請求項1記載のバックアップシステム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate


【公開番号】特開2011−186664(P2011−186664A)
【公開日】平成23年9月22日(2011.9.22)
【国際特許分類】
【出願番号】特願2010−49772(P2010−49772)
【出願日】平成22年3月5日(2010.3.5)
【出願人】(000005108)株式会社日立製作所 (27,607)
【Fターム(参考)】