(57)【特許請求の範囲】
【請求項１】
制御プログラムを保持し、前記保持した制御プログラムを実行することにより、制御対象プロセスを制御する主系コントローラと、
前記主系コントローラが保持した制御プログラムと同じ制御プログラム、または、その制御プログラムの一部を改訂した制御プログラムを保持し、前記主系コントローラに同期して前記保持した制御プログラムを実行するとともに、前記主系コントローラに異常が生じた場合に、前記主系コントローラに代わって、前記制御対象プロセスを制御する待機系コントローラと、
前記主系コントローラおよび前記待機系コントローラのそれぞれが自身の制御プログラムを実行することによって取得される制御データのうち、一致化の対象となる制御データを指定する一致化指示データを、前記それぞれの制御プログラムのソースプログラムに基づき作成し、その作成したそれぞれの一致化指示データを前記主系コントローラおよび前記待機系コントローラのそれぞれに設定する保守支援装置と、
を含んで構成された２重化プロセス制御装置であって、
前記保守支援装置が作成する一致化指示データは、
前記一致化対象の制御データを一意に識別する識別情報と、前記一致化対象の制御データが前記主系コントローラまたは前記待機系コントローラの制御データメモリに格納されるときのアドレス情報と、を対応付けた情報によって構成され、
前記主系コントローラは、
前記制御プログラムによる所定の制御サイクルごとに、自装置にあらかじめ設定された前記一致化指示データに基づき、前記制御プログラムの実行によって取得される制御データの中から前記一致化対象の制御データを選択し、その選択した一致化対象の制御データと、その制御データの識別情報と、を対応付けて構成された一致化用制御データを作成し、その作成した一致化用制御データを待機系コントローラへ転送し、
前記待機系コントローラは、
前記主系コントローラと同期した所定の制御サイクルごとに、前記主系コントローラから転送される前記一致化用制御データの中から、自装置にあらかじめ設定された一致化指示データに含まれる識別情報と同じ識別情報を有する一致化用制御データを選択し、その選択した一致化用制御データに含まれる制御データを用いて、前記一致化指示データに含まれるアドレス情報で指定される前記制御データメモリ上のアドレスに格納されている制御データを書き換えること
を特徴とする２重化プロセス制御装置。
【請求項２】
前記保守支援装置は、
前記主系コントローラおよび前記待機系コントローラのそれぞれがオンライン運転中に、そのそれぞれが保持する前記制御プログラムおよび前記一致化指示データを更新する場合には、
前記待機系コントローラに対し、オンライン運転停止要求を送信して、その待機系コントローラのオンライン運転を停止させ、
前記待機系コントローラがオンライン運転を停止した状態で、その待機系コントローラの改訂された制御プログラムとその改訂された制御プログラムに応じた前記一致化指示データとを、前記待機系コントローラへ送信して、その待機系コントローラに保持された前記制御プログラムおよび前記一致化指示データを更新し、
前記待機系コントローラに対し、オンライン運転要求を送信して、その待機系コントローラのオンライン運転を再開させ、
前記主系コントローラに対し、主系放棄要求を送信して、その主系コントローラを交替後の待機系コントローラとしてオンライン運転させ、それまでの待機系コントローラを交代後の主系コントローラとしてオンライン運転させ、
前記交替後の待機系コントローラに対し、オンライン運転停止要求を送信して、その交替後の待機系コントローラのオンライン運転を停止させ、
前記交替後の待機系コントローラがオンライン運転を停止した状態で、その交替後の待機系コントローラの改訂された制御プログラムとその制御プログラムに応じた前記一致化指示データとを、前記交替後の待機系コントローラへ送信して、その交替後の待機系コントローラに保持された前記制御プログラムおよび前記一致化指示データを更新すること
を特徴とする請求項１に記載の２重化プロセス制御装置。
【請求項３】
制御プログラムを保持し、前記保持した制御プログラムを実行することにより、制御対象プロセスを制御する主系コントローラと、
前記主系コントローラが保持した制御プログラムと同じ制御プログラム、または、その制御プログラムの一部を改訂した制御プログラムを保持し、前記主系コントローラに同期して前記保持した制御プログラムを実行するとともに、前記主系コントローラに異常が生じた場合に、前記主系コントローラに代わって、前記制御対象プロセスを制御する待機系コントローラと、
前記主系コントローラおよび前記待機系コントローラのそれぞれが自身の制御プログラムを実行することによって取得される制御データのうち、一致化の対象となる制御データを指定する一致化指示データを、前記それぞれの制御プログラムのソースプログラムに基づき作成し、その作成したそれぞれの一致化指示データを前記主系コントローラおよび前記待機系コントローラのそれぞれに設定する保守支援装置と、
を含んで構成された２重化プロセス制御装置における制御データ一致化方法であって、
前記保守支援装置が作成する一致化指示データは、
前記一致化対象の制御データを一意に識別する識別情報と、前記一致化対象の制御データが前記主系コントローラまたは前記待機系コントローラの制御データメモリに格納されるときのアドレス情報と、を対応付けた情報によって構成され、
前記主系コントローラは、
前記制御プログラムによる所定の制御サイクルごとに、自装置にあらかじめ設定された前記一致化指示データに基づき、前記制御プログラムの実行によって取得される制御データの中から前記一致化対象の制御データを選択し、その選択した一致化対象の制御データと、その制御データの識別情報と、を対応付けて構成された一致化用制御データを作成し、その作成した一致化用制御データを待機系コントローラへ転送する処理を実行し、
前記待機系コントローラは、
前記主系コントローラと同期した所定の制御サイクルごとに、前記主系コントローラから転送される前記一致化用制御データの中から、自装置にあらかじめ設定された一致化指示データに含まれる識別情報と同じ識別情報を有する一致化用制御データを選択し、その選択した一致化用制御データに含まれる制御データを用いて、前記一致化指示データに含まれるアドレス情報で指定される前記制御データメモリ上のアドレスに格納されている制御データを書き換える処理を実行すること
を特徴とする制御データ一致化方法。
【請求項４】
前記保守支援装置は、
前記主系コントローラおよび前記待機系コントローラのそれぞれがオンライン運転中に、そのそれぞれが保持する前記制御プログラムおよび前記一致化指示データを更新する場合には、
前記待機系コントローラに対し、オンライン運転停止要求を送信して、その待機系コントローラのオンライン運転を停止させる処理と、
前記待機系コントローラがオンライン運転を停止した状態で、その待機系コントローラの改訂された制御プログラムとその改訂された制御プログラムに応じた前記一致化指示データとを、前記待機系コントローラへ送信して、その待機系コントローラに保持された前記制御プログラムおよび前記一致化指示データを更新する処理と、
前記待機系コントローラに対し、オンライン運転要求を送信して、その待機系コントローラのオンライン運転を再開させる処理と、
前記主系コントローラに対し、主系放棄要求を送信して、その主系コントローラを交替後の待機系コントローラとしてオンライン運転させ、それまでの待機系コントローラを交代後の主系コントローラとしてオンライン運転させる処理と、
前記交替後の待機系コントローラに対し、オンライン運転停止要求を送信して、その交替後の待機系コントローラのオンライン運転を停止させる処理と、
前記交替後の待機系コントローラがオンライン運転を停止した状態で、その交替後の待機系コントローラの改訂された制御プログラムとその制御プログラムに応じた前記一致化指示データとを、前記交替後の待機系コントローラへ送信して、その交替後の待機系コントローラに保持された前記制御プログラムおよび前記一致化指示データを更新する処理と、
を実行すること
を特徴とする請求項３に記載の制御データ一致化方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、主系コントローラと待機系コントローラと含んで構成される２重化プロセス制御装置、および、その２重化プロセス制御装置において、待機系コントローラの制御データを主系コントローラの制御データに一致化させる制御データ一致化方法に関する。
【背景技術】
【０００２】
近年では、発電所や工場などにおける各種のプラント装置を制御するプロセス制御装置は、一般的に２重化構成が採られるようになった。プロセス制御装置が２重化されると、一方の制御装置に異常が発生しても、他方の制御装置でプロセスの制御動作を継続して行うことができるので、プラント装置の稼動停止を防止することができる。
【０００３】
このような２重化されたプロセス制御装置では、制御動作を主系の制御装置から待機系の制御装置に切替えたときにしばしば生じる現象である、制御データの突変を防止する必要がある。２重化されたプロセス制御装置では、２つの制御装置が全く同じであっても、プロセスデータの入力値や入力タイミングのわずかな違いが時間の経過とともに積み重なっていくと、その２つの制御装置による制御動作に時間的なずれや相違が生じる。そのとき、その制御動作が主系の制御装置から待機系の制御装置へ切替えられると、制御対象プロセスを制御する制御データが急に変化（突変）する。その結果、突変した制御データを受けた制御対象プロセスは、しばしば擾乱することになる。
【０００４】
そこで、２重化されたプロセス制御装置では、制御データの突変を防止するために、主系および待機系の２つの制御装置の間で、プロセスへ出力する制御データや内部演算素子の演算に使用する内部データ（以下、内部データ含めて制御データと総称する）を一致させることが行われている。
【０００５】
例えば、特許文献１に開示された２重化プロセス制御装置では、２つの制御装置のそれぞれの記憶装置上に一致化データエリアが設けられている。その主系の制御装置は、演算周期ごとに一致化すべき制御データをその一致化データエリアに書き込むとともに、所定の一致化処理周期ごとに、その一致化データエリアのデータを待機系の制御装置の一致化データエリアに転写する。待機系の制御装置は、その一致化データエリアのデータを読み出すことにより、自装置の制御データを主系の制御装置の制御データに一致化させることができる。
【０００６】
さらに、発電所や工場などでは、プラントの操業停止は、即、製品の生産量の低下、ひいては、売上高や収益の低下をもたらす。そのため、その制御装置のプログラム更新をする際にも、できる限り制御動作を停止させることなく、つまり、プラントの操業停止に至ることなくプログラム更新することが望まれている。
【０００７】
特許文献２に開示された２重化制御システムでは、一方の制御装置が継続運転している状態で、他方のコントローラを停止させ、保守ツールから新しいプログラムがその停止した制御装置にダウンロードされる。従って、プログラム更新のために制御動作が途切れることはない。また、この２重化制御システムでは、それぞれの制御装置は、自系と相手系の制御データおよび自系と相手系の故障状態を記憶するトラッキングメモリを有し、プログラムのダウンロード完了後に、そのトラッキングメモリの内容を相互に送受信し合う初期トラッキング処理を実行する。そして、初期トラッキング処理により、その２つの制御装置の制御データの一致化が行われる。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開平９−６２３０４号公報
【特許文献２】特開２００７−１７２０７９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
しかしながら、特許文献２に開示された２重化制御システムにおいては、主系および待機系の２つの制御装置の制御プログラムは同じものであり、かつ、その初期トラッキング処理で一致化される制御データも同じであることが前提となっている。従って、制御プログラムを改訂する場合などには、両者の間で互いに相違する制御データが現れることがあるので、特許文献２に記載の初期トラッキング処理では、制御データの一致化が必ずしもうまく行われるとは限らない。
【００１０】
そこで、本発明の目的は、制御プログラムの改訂に際し、改訂前後の制御プログラムに互いに相違する制御データが存在し、主系の制御装置および待機系の制御装置のそれぞれにおいて、改訂前および改訂後の制御プログラムが別々に実行される場合であっても、制御データの一致化をプロセスの制御を停止させることなく行うことが可能な２重化プロセス制御装置および制御データ一致化方法を提供することにある。
【課題を解決するための手段】
【００１１】
本発明に係る主系コントローラと待機系コントローラと保守支援装置とを含んで構成された２重化プロセス制御装置では、主系コントローラと待機系コントローラとの間での制御データの一致化を行うために、一致化指示データおよび一致化用制御データなる概念を導入する。
【００１２】
ここで、一致化指示データは、一致化の対象となる制御データを指定するデータであり、その一致化の対象となる制御データを一意に識別する識別情報と、その制御データが主系コントローラまたは待機系コントローラの制御データメモリに格納されるときのアドレス情報と、が対応付けられて構成される。この一致化指示データは、主系コントローラおよび待機系コントローラそれぞれの制御プログラムのソースプログラムに基づき、保守支援装置により作成され、その作成された一致化指示データは、主系コントローラおよび待機系コントローラそれぞれに送信され、設定される。
【００１３】
また、一致化用制御データは、主系コントローラに設定された一致化指示データに基づき、主系コントローラによって作成され、主系コントローラから待機系コントローラへ転送される。この一致化用制御データは、一致化の対象となる制御データとその制御データを識別する識別情報とが対応付けられて構成される。
【００１４】
以上のような一致化指示データおよび一致化用制御データを用いた２重化プロセス制御装置では、主系コントローラは、所定の制御サイクルごとに、あらかじめ設定された一致化指示データに基づき、制御プログラムの実行によって取得される制御データの中から一致化対象のデータを選択して、一致化用制御データを作成し、その作成した一致化用制御データを待機系コントローラへ転送する。そして、待機系コントローラは、主系コントローラから転送された一致化用制御データの中から、自装置にあらかじめ設定された一致化指示データに含まれる識別情報と同じ識別情報を有する一致化用制御データを選択し、その選択した一致化用制御データに含まれる制御データを用いて、自装置の一致化指示データに含まれるアドレス情報で指定される制御データメモリ上のアドレスに格納されている制御データを書き換える。
【００１５】
以上、本発明に係る２重化プロセス制御装置では、主系コントローラと待機系コントローラとで、別々に一致化指示データを設定することができるので、両者の制御プログラムの一部に相違があっても相違する制御信号の一致化を回避させることが容易にできる。従って、主系コントローラおよび待機系コントローラのそれぞれにおいて、改訂前および改訂後の制御プログラムが別々に実行される場合であっても、両者の同じ制御データを用いて、制御データの一致化を行うことが可能となり、そのとき、プロセスの制御が停止されることもない。
【発明の効果】
【００１６】
本発明によれば、２重化プロセス制御装置において、その制御プログラムの改訂に際し、改訂前後の制御プログラムに互いに相違する制御データが存在し、主系の制御装置および待機系の制御装置のそれぞれにおいて、改訂前および改訂後の制御プログラムが別々に実行される場合であっても、制御データの一致化をプロセスの制御を停止させることなく行うことが可能になる。
【図面の簡単な説明】
【００１７】
【図１】本発明の実施形態に係る２重化プロセス制御装置の構成の例を示した図。
【図２】本発明の実施形態に係る２重化プロセス制御装置における制御サイクルの例を示した図。
【図３】主系のＡ系コントローラと待機系のＢ系コントローラとで行われる制御データの一致化動作を模式的に説明するための図。
【図４】主系のＡ系コントローラおよび待機系のＢ系コントローラが実行するプロセス制御処理および制御データの一致化処理の処理フローの例を示した図。
【図５】本発明の実施形態に係る２重化プロセス制御装置において、制御プログラムを更新するためのＡ系コントローラおよびＢ系コントローラに対する状態切り替えの手順の例を示した図。
【図６】保守支援装置での制御プログラム変数定義画面の例を示した図。
【図７】保守支援装置における一致化指示データ作成処理手順の概略を模式的に示した図。
【図８】保守支援装置における一致化指示データ作成処理の処理フローの例を示した図。
【発明を実施するための形態】
【００１８】
以下、本発明の実施形態について、図面を参照して詳細に説明する。
【００１９】
図１は、本発明の実施形態に係る２重化プロセス制御装置１００の構成の例を示した図である。図１に示すように、２重化プロセス制御装置１００は、プロセス入出力装置２を介して制御対象プロセス３を制御する主系と待機系の２つのコントローラ１と、通信ネットワーク４を介して前記２つのコントローラ１に接続された保守支援装置５と、を含んで構成される。なお、説明の便宜上、以下、図１の左側のコントローラ１をＡ系コントローラ１ａと呼び、右側のコントローラ１をＢ系コントローラ１ｂと呼ぶ。そして、この時点では、Ａ系コントローラ１ａは、主系のコントローラ１として機能し、また、Ｂ系コントローラ１ｂは、待機系のコントローラ１として機能するものとする。
【００２０】
Ａ系コントローラ１ａまたはＢ系コントローラ１ｂとなるコントローラ１は、制御処理部１０と、制御データ一致化処理部１３と、一致化用制御データ転送部１４と、保守データダウンロード部１５と、一致化指示データ記憶部１６と、一致化用制御データ記憶部１７と、を含んで構成される。
【００２１】
図１では、制御処理部１０は、説明の便宜上、制御プログラム１１と制御データメモリ１２とを含んで構成されるとしているが、実際のハードウエアでは、制御処理部１０は、例えば、汎用のマイクロプロセッサやＦＰＧＡ（Field-Programmable Gate Array）を用いた演算処理装置（図示省略）と半導体メモリによる記憶装置（図示省略）とによって構成されている。そして、制御プログラム１１は、その記憶装置に記憶された情報であり、演算処理装置は、その制御プログラム１１を実行することによって、所定の制御動作を実現する。また、制御データメモリ１２は、制御データが記憶された前記記憶装置の一部を指している。
【００２２】
この制御処理部１０の機能は、主系のＡ系コントローラ１ａと待機系のＢ系コントローラ１ｂとで、その機能が一部異なっている。すなわち、主系のＡ系コントローラ１ａの制御処理部１０ａは、制御プログラム１１ａの指示に従って、制御対象プロセス３からプロセス入出力装置２を介してプロセスデータを入力し、制御データを演算し、その演算した制御データを制御データメモリ１２ａへ格納し、その制御データの一部を、プロセス入出力装置２を介して制御対象プロセス３へ出力する。
【００２３】
一方、待機系のＢ系コントローラ１ｂの制御処理部１０ｂは、制御プログラム１１ｂの指示に従って、制御対象プロセス３からプロセス入出力装置２を介してプロセスデータを入力し、制御データを演算し、その演算した制御データを制御データメモリ１２ｂへ格納するが、その制御データをプロセス入出力装置２、すなわち、制御対象プロセス３へ出力しない。ただし、制御処理部１０ｂが実行する制御プログラム１１ｂは、基本的には、制御処理部１０ａが実行する制御プログラム１１ａと同じである。
【００２４】
以上の通り、制御対象プロセス３に対する制御データは、主系のＡ系コントローラ１ａから出力されるので、制御対象プロセス３は、主系のＡ系コントローラ１ａによって制御されることになる。一方で、待機系のＢ系コントローラ１ｂは、制御データを制御対象プロセス３へ出力することを除き、主系のＡ系コントローラ１ａと同じ制御処理を実行しているので、主系のＡ系コントローラ１ａに異常が生じた場合には、直ちに、Ａ系コントローラ１ａに代わって、制御データを制御対象プロセス３へ出力することができる。
【００２５】
図１において、Ａ系コントローラ１ａおよびＢ系コントローラ１ｂのそれぞれに含まれる制御データ一致化処理部１３、一致化用制御データ転送部１４、一致化指示データ記憶部１６および一致化用制御データ記憶部１７は、待機系のＢ系コントローラ１ｂの制御データを主系のＡ系コントローラ１ａの制御データに一致化させる機能を担う。
【００２６】
また、保守データダウンロード部１５は、制御プログラム１１の更新や保守のために保守支援装置５から送信される、新たな制御プログラムおよび一致化指示データを受信し、その受信した制御プログラムおよび一致化指示データで、制御プログラム１１、および、一致化指示データ記憶部１６に記憶されている一致化指示データを更新する。
【００２７】
一方、図１において、保守支援装置５は、保守データ記憶部５０、制御プログラムエディタ部５１、一致化指示データ作成部５２、制御プログラムコンパイラ部５３、保守データ配信部５４などの機能ブロックを含んだ一般的なコンピュータによって構成され、キーボードやマウスなどの入力装置６０、ＬＣＤ（Liquid Crystal Display）などの表示装置６１などが付属している。
【００２８】
ここで、制御プログラムエディタ部５１は、表示装置６１などに対するグラフィカルなユーザインタフェースを有し、入力装置６０を介してユーザの操作入力を受付けて、制御プログラムソース５５ａ，５５ｂを作成する。また、一致化指示データ作成部５２は、ユーザによる操作入力を受付けて、一致化指示データ５６ａ，５６ｂを作成する。また、制御プログラムコンパイラ部５３は、制御プログラムソース５５ａ，５５ｂをコンパイルして、Ａ系コントローラ１ａおよびＢ系コントローラ１ｂにおける実行プログラムモジュールである制御プログラム５７ａ，５７ｂを作成する。
【００２９】
こうして作成された制御プログラムソース５５ａ，５５ｂ、一致化指示データ５６ａ，５６ｂ、制御プログラム５７ａ，５７ｂは、いったん保守支援装置５の記憶装置である保守データ記憶部５０に記憶される。そして、このうち、制御プログラム５７ａ，５７ｂおよび一致化指示データ５６ａ，５６ｂは、保守データ配信部５４により、Ａ系コントローラ１ａおよびＢ系コントローラ１ｂへ配信（送信）される。
【００３０】
図２は、本発明の実施形態に係る２重化プロセス制御装置１００における制御サイクルの例を示した図である。図２に示すように、Ａ系コントローラ１ａおよびＢ系コントローラ１ｂは、所定の周期（例えば、数ｍ秒〜数１００ｍ秒）の制御サイクルで互いに同期しながら制御処理を実行する。そして、その単位となる制御サイクルは、Ｐｈ−１〜Ｐｈ−４の４つのフェーズによって構成されている。
【００３１】
主系のＡ系コントローラ１ａの場合、その制御サイクルは、プロセス入力（Ｐｈ−１）、プログラム演算（Ｐｈ−２）、プロセス出力（Ｐｈ−３）および一致化用制御データ送信（Ｐｈ−４）の各フェーズによって構成されている。また、待機系のＢ系コントローラ１ｂは、プロセス入力（Ｐｈ−１）、プログラム演算（Ｐｈ−２）、無処理（Ｐｈ−３）および一致化用制御データ受信（Ｐｈ−４）の各フェーズによって構成されている。
【００３２】
Ｐｈ−１およびＰｈ−２における動作は、主系のＡ系コントローラ１ａと待機系のＢ系コントローラ１ｂとで同じである。すなわち、Ｐｈ−１（プロセス入力）において、制御処理部１０ａ，１０ｂは、プロセス入出力装置２を介して制御対象プロセス３からプロセスデータを入力する。また、Ｐｈ−２（プログラム演算）において、制御処理部１０ａ，１０ｂは、制御プログラム１１ａ，１１ｂに従って演算処理を実行し、その結果を制御データメモリ１２ａ，１２ｂに格納する。
【００３３】
Ｐｈ−３およびＰｈ−４における動作は、主系のＡ系コントローラ１ａと待機系のＢ系コントローラ１ｂとで相違する。すなわち、主系のＡ系コントローラ１ａの場合、Ｐｈ−３（プロセス出力）で、制御処理部１０ａは、制御データメモリ１２ａに格納された制御データを、プロセス入出力装置２を介して制御対象プロセス３へ出力する。そして、Ｐｈ−４（一致化用制御データ送信）で、制御データ一致化処理部１３ａは、一致化対象の制御データを制御データメモリ１２ａから取り出し、一致化用制御データ転送部１４ａを介して待機系のＢ系コントローラ１ｂへ送信する。
【００３４】
一方、待機系のＢ系コントローラ１ｂの場合、Ｐｈ−３（無処理）は、ダミーフェーズであり、実行される処理はない。また、Ｐｈ−４（一致化用制御データ受信）では、制御データ一致化処理部１３ｂは、一致化用制御データ転送部１４ｂを介して受信した一致化対象の制御データを受信し、受信した制御データ（主系）を、制御データメモリ１２ｂのその制御データ（主系）に対応する待機系の制御データの格納アドレスに上書きする。
【００３５】
図３は、主系のＡ系コントローラ１ａと待機系のＢ系コントローラ１ｂとで行われる制御データの一致化動作を模式的に説明するための図である。図３において、制御データメモリ１２ａ，１２ｂには、制御プログラム１１ａ，１１ｂにしたがって実行された演算処理の結果が制御データとして格納される。このとき、制御データおよびその制御データが制御データメモリ１２ａ，１２ｂに格納されるアドレスは、制御プログラム１１ａ，１１ｂによって定められる。
【００３６】
例えば、図３において、制御プログラム１１ａ，１１ｂに含まれるｉｎ１，ｉｎ２を入力データとしてｏｕｔ１を演算する演算素子ＦＡ（例えば、加算演算素子）の演算結果を、ＦＡという名称の制御データで表し、その値がｄａｔａ＿ＦＡであったとする。その場合には、制御データの値ｄａｔａ＿ＦＡは、制御データメモリ１２ａ，１２ｂのあらかじめ定められたアドレスａｄｄｒ＿ＦＡに格納される。
【００３７】
同様に、図３において、制御プログラム１１ａ，１１ｂに含まれるｉｎ３，１ｎ４を入力データとしてｏｕｔ３，ｏｕｔ４を演算する演算素子ＴＰ（例えば、オンタイマディレー素子）の演算結果を、ＴＰいう名称の制御データで表し、その値がｄａｔａ＿ＴＰ（例えば、ｏｕｔ３およびｏｕｔ４を連結した値）であったとする。その場合には、制御データの値ｄａｔａ＿ＴＰは、制御データメモリ１２ａ，１２ｂのあらかじめ定められたアドレスａｄｄｒ＿ＴＰに格納される。
【００３８】
また、一致化指示データ記憶部１６ａ，１６ｂに保持される一致化指示データは、制御プログラム１１ａ，１１ｂが保守支援装置５（図１参照）で作成されるときに併せて作成され、制御プログラム１１ａ，１１ｂとともに保守支援装置５からダウンロードされる。この一致化指示データは、制御データを一意に識別するＩＤが格納されるＩＤフィールドと、その制御データが格納されている制御データメモリ１２ａ，１２ｂ上のアドレス情報（アドレスの値）格納されるアドレスフィールドと、を含んで構成されている。
【００３９】
すなわち、図３において、一致化指示データ記憶部１６ａ，１６ｂのデータ構成の例として記載された「５」、「１２」は、制御データＦＡ，ＴＰそれぞれに割り当てられた識別番号（ＩＤ）を表し、「ａｄｄｒ＿ＦＡ」、「ａｄｄｒ＿ＴＰ」は、制御データＦＡ，ＴＰのそれぞれが制御データメモリ１２ａ，１２ｂに格納されたアドレスを表している。
【００４０】
また、一致化用制御データ記憶部１７ａ，１７ｂに保持される一致化用制御データは、一致化対象の制御データであり、制御データを一意に識別するＩＤが格納されるＩＤフィールドと、その制御データの値が格納されるデータフィールドと、を含んで構成されている。
【００４１】
すなわち、図３において、一致化用制御データ記憶部１７ａ，１７ｂのデータ構成の例として記載された「５」、「１２」は、一致化対象の制御データＦＡ，ＴＰのそれぞれに割り当てられた識別番号（ＩＤ）を表し、「ｄａｔａ＿ＦＡ」、「ｄａｔａ＿ＴＰ」は、一致化対象の制御データの値を表している。
【００４２】
ここで、Ａ系コントローラ１ａの制御データ一致化処理部１３ａは、各制御サイクルのＰｈ−４（図２参照）で、一致化指示データ記憶部１６ａ，１６ｂのアドレスフィールドに格納されているアドレス情報（ａｄｄｒ＿ＦＡ，ａｄｄｒ＿ＴＰなど）を読み出す。そして、制御データメモリ１２を参照して、そのアドレス情報が示すアドレスから、制御データの値（ｄａｔａ＿ＦＡ，ｄａｔａ＿ＴＰなど）を読み出す。さらに、制御データ一致化処理部１３ａは、当該制御データのＩＤと制御データメモリ１２から読み出した制御データの値とを対応付けたデータを、一致化用制御データとして、一致化用制御データ記憶部１７ａに格納する。このようにして、作成された一致化用制御データは、一致化用制御データ転送部１４ａを介して、Ｂ系コントローラ１ｂへ転送される。
【００４３】
一方、Ｂ系コントローラ１ｂの一致化用制御データ転送部１４ｂは、同じＰｈ−４で、Ａ系コントローラ１ａから送信されてくる一致化用制御データを受信し、一致化用制御データ記憶部１７ｂに格納する。また、制御データ一致化処理部１３ｂは、一致化用制御データ記憶部１７ｂからＩＤフィールドを読み出し、そのＩＤフィールドに含まれるＩＤと同じＩＤを有する一致化指示データを一致化指示データ記憶部１６から読み出す。そして、制御データ一致化処理部１３ｂは、その読み出した一致化指示データのアドレスフィールドに含まれるアドレス情報によって指定される制御データメモリ１２ｂに格納されている制御データの値を、当該ＩＤを有する一致化用制御データのデータフィールドに含まれている制御データで書き換える（上書きする）。
【００４４】
以上のようにして、Ｂ系コントローラ１ｂの制御データメモリ１２ｂに格納されている制御データは、Ａ系コントローラ１ａの制御データメモリ１２ａに格納されている制御データに一致化される。ただし、以上の手順によって一致化されるのは、Ａ系コントローラ１ａの一致化指示データ記憶部１６ａおよびＢ系コントローラ１ｂの一致化指示データ記憶部１６ｂのそれぞれに設定された一致化指示データの両方で、一致化の対象とすることが指示された制御データだけである。
【００４５】
図４は、本発明の実施形態に係る２重化プロセス制御装置１００における主系のＡ系コントローラ１ａおよび待機系のＢ系コントローラ１ｂが実行するプロセス制御処理および制御データの一致化処理の処理フローの例を示した図である。
【００４６】
主系のＡ系コントローラ１ａ（制御処理部１０ａ）は、まず、制御サイクルのＰｈ−１（図２参照）の処理として、プロセス入出力装置２を介して制御対象プロセス３のプロセスデータを取得する（ステップＳ１１）。次に、Ａ系コントローラ１ａ（制御処理部１０ａ）は、Ｐｈ−２の処理として、その取得したプロセスデータと制御データメモリ１２ａに記憶されている制御データ（各種の制御状態データを含む）を用いて、制御プログラム１１ａで定められた演算処理を実行し（ステップＳ１２）、その演算処理結果を制御データメモリ１２ａに格納する（ステップＳ１３）。さらに、Ａ系コントローラ１ａ（制御処理部１０ａ）は、Ｐｈ−３の処理として、制御データメモリ１２ａに格納された制御データのうち、あらかじめ定められた制御対象データを、プロセス入出力装置２を介して制御対象プロセス３へ出力する（ステップＳ１４）。
【００４７】
続いて、Ａ系コントローラ１ａ（制御データ一致化処理部１３ａ）は、Ｐｈ−４の処理として、一致化指示データ記憶部１６ａから一致化指示データを読み出し、そのＩＤフィールドに含まれるＩＤと、そのアドレスフィールドに含まれるアドレスで指定される制御データメモリ１２ａから読み出した制御データと、を対応付けたデータを、一致化用制御データとして、一致化用制御データ記憶部１７ａに格納する（ステップＳ１５）。続けて、Ａ系コントローラ１ａ（制御データ一致化処理部１３ａ）は、一致化用制御データ記憶部１７ａに格納された一致化用制御データを、一致化用制御データ転送部１４ａを介してＢ系コントローラ１ｂへ送信する（ステップＳ１６）。
【００４８】
一方、待機系のＢ系コントローラ１ｂ（制御データ一致化処理部１３ｂ）は、Ｐｈ−４の処理として、Ａ系コントローラ１ａから送信される一致化用制御データを、一致化用制御データ転送部１４ｂを介して受信し（ステップＳ２１）、その受信した一致化用制御データを一致化用制御データ記憶部１７ｂへ格納する。そして、Ｂ系コントローラ１ｂ（制御データ一致化処理部１３ｂ）は、その受信した一致化用制御データのＩＤフィールドに含まれるＩＤと同じＩＤを含んだ一致化指示データが、一致化指示データ記憶部１６ｂの中に存在するか否かを判定する（ステップＳ２２）。その判定の結果、同じＩＤを含んだ一致化指示データが存在した場合には（ステップＳ２２でＹｅｓ）、受信した一致化用制御データのデータフィールドに含まれる制御データを用いて、そのＩＤが同じ一致化指示データのアドレスフィールドで指定されるアドレスの制御データメモリ１２ｂの制御データを書き換える（ステップＳ２３）。また、同じＩＤを含んだ一致化指示データが存在しない場合には（ステップＳ２２でＮｏ）、ステップＳ２３の処理をスキップする。
【００４９】
続いて、Ｂ系コントローラ１ｂ（制御処理部１０ｂ）は、次の制御サイクルのＰｈ−１の処理として、プロセス入出力装置２を介して制御対象プロセス３のプロセスデータを取得する（ステップＳ２４）。次に、Ｂ系コントローラ１ｂ（制御処理部１０ｂ）は、Ｂ系コントローラ１ｂ（制御処理部１０ｂ）は、Ｐｈ−２の処理として、その取得したプロセスデータと制御データメモリ１２ｂに記憶されている制御データ（各種の制御状態データを含む）を用いて、制御プログラム１１ｂで定められた演算処理を実行し（ステップＳ２５）、その演算処理結果を制御データメモリ１２ｂに格納する（ステップＳ２６）。なお、待機系のＢ系コントローラ１ｂは、Ｐｈ−３では、何も処理しない。
【００５０】
次に、Ａ系コントローラ１ａおよびＢ系コントローラ１ｂにおける制御プログラム１１ａ，１１ｂの更新手順について説明する。図１に示したように、Ａ系コントローラ１ａおよびＢ系コントローラ１ｂは、保守データダウンロード部１５ａ、１５ｂを有している。保守データダウンロード部１５ａ、１５ｂは、保守支援装置５から通信ネットワーク４を介して送信される制御プログラム５７ａ，５７ｂおよび一致化指示データ５６ａ，５６ｂを受信し、その受信した制御プログラム５７ａ，５７ｂおよび一致化指示データ５６ａ，５６ｂにより、制御処理部１０ａ，１０ｂにおける制御プログラム１１ａ，１１ｂおよび一致化指示データ記憶部１６ａ，１６ｂに記憶されている一致化指示データを更新する。
【００５１】
ただし、主系のＡ系コントローラ１ａの制御プログラム１１ａは、制御対象プロセス３の制御動作に用いられているので、そのとき、その制御プログラム１１ａを更新することはできない。待機系のＢ系コントローラ１ｂは、制御対象プロセス３に制御データを出力していないので、制御プログラム１１ｂの更新が可能である。そこで、制御プログラム１１ａ，１１ｂの更新は、それぞれ待機系の状態であるときに行われる。
【００５２】
図５は、本発明の実施形態に係る２重化プロセス制御装置１００において、制御プログラム１１ａ，１１ｂを更新するためのＡ系コントローラ１ａおよびＢ系コントローラ１ｂに対する状態切り替えの手順の例を示した図である。なお、前記したように制御プログラム１１ａ，１１ｂの更新時には、一致化指示データ記憶部１６ａ，１６ｂに記憶されている一致化指示データも併せて更新されるが、ここでは、制御プログラム１１ａ，１１ｂだけの更新として説明する。また、更新後の制御プログラム５７ａ，５７ｂは、更新前の制御プログラム１１ａ，１１ｂを小幅に改訂したプログラムであるとする。
【００５３】
まず、状態Ｃ０では、Ａ系コントローラ１ａ、Ｂ系コントローラ１ｂともにオンライン運転されているとする。ここで、オンライン運転状態とは、主系の場合、制御対象プロセス３に対し制御データの出力動作を行っている状態、待機系の場合、主系と同じ制御プログラムを実行していつでも主系への切り替えが可能な状態をいう。
【００５４】
保守支援装置５は、状態Ｃ０のときに、待機系のＢ系コントローラ１ｂへ停止要求を送信する（ステップＳ３１）。Ｂ系コントローラ１ｂは、その停止要求を受信すると、自装置を停止状態にする（状態Ｃ１）。ここで、停止状態とは、制御プログラム１１ｂの実行を停止した状態をいう。従って、状態Ｃ１では、Ｂ系コントローラ１ｂのいわゆるホットスタンバイが解除された状態になる。
【００５５】
保守支援装置５は、状態Ｃ１の待機系のＢ系コントローラ１ｂへ改訂された制御プログラム５７ｂを送信する（ステップＳ３２）。Ｂ系コントローラ１ｂは、その制御プログラム５７ｂを受信して、制御プログラム１１ｂを制御プログラム５７ｂに更新する。
【００５６】
次に、保守支援装置５は、待機系のＢ系コントローラ１ｂへオフライン運転要求を送信する（ステップＳ３３）。Ｂ系コントローラ１ｂは、そのオフライン運転要求を受信すると、自装置を待機系オフライン運転状態にする（状態Ｃ２）。ここで、オフライン運転状態とは、待機系のＢ系コントローラ１ｂが制御プログラム１１ｂの実行を開始し、その動作の正否を確認している状態をいう。その動作の正否は、例えば、Ｂ系コントローラ１ｂがＡ系コントローラ１ａから送信される一致化用制御データを自装置で得られた制御データで比較することによって行うことができる。
【００５７】
保守支援装置５は、その正否動作の確認で、Ｂ系コントローラ１ｂの動作が正しいことを確認できなかった場合には（ステップＳ３４でＮｏ）、制御プログラム５７ｂをさらに改訂するなどして、ステップＳ３１以下の処理を再度実行する。また、Ｂ系コントローラ１ｂの動作が正しいことを確認できた場合には（ステップＳ３４でＹｅｓ）、保守支援装置５は、待機系のＢ系コントローラ１ｂへオンライン運転要求を送信する（ステップＳ３５）。Ｂ系コントローラ１ｂは、そのオンライン運転要求を受信すると、自装置を待機系オンライン運転状態にする（状態Ｃ３）。
【００５８】
この状態Ｃ３では、Ｂ系コントローラ１ｂの制御プログラム５７ｂは、改訂後のものであり、Ａ系コントローラ１ａの制御プログラム５７ａは、改訂前のものであるが、両者は、いずれもオンライン運転状態であるので、両者の間では、制御データの一致化が行われる。
【００５９】
次に、保守支援装置５は、主系のＡ系コントローラ１ａへ主系放棄要求を送信する（ステップＳ３６）。その主系放棄要求を受信したＡ系コントローラ１ａは、主系を放棄して、待機系オンライン運転状態になり、それに伴い、Ｂ系コントローラ１ｂが主系オンライン運転状態になる（状態Ｃ４）。ここで、Ａ系コントローラ１ａおよびＢ系コントローラ１ｂは、主系および待機系を交替したことになる。
【００６０】
以下、ステップＳ４１〜Ｓ４６までの処理は、Ａ系コントローラ１ａとＢ系コントローラ１ｂが入れ替わった場合のステップＳ３１〜Ｓ３６までの処理と同じ処理であるので、その処理の説明を省略する。
【００６１】
以上のようにして、Ａ系コントローラ１ａおよびＢ系コントローラ１ｂの制御プログラム１１ａ，１１ｂは、保守支援装置５から送信された改訂された制御プログラム５７ａ，５７ｂに更新される。そして、Ａ系コントローラ１ａおよびＢ系コントローラ１ｂの状態は、もとの状態Ｃ０に戻る。
【００６２】
続いて、保守支援装置５における各種の処理について説明する。図６は、本発明の実施形態に係る２重化プロセス制御装置における保守支援装置５での制御プログラム変数定義画面の例を示した図であり、（ａ）は、改訂前の制御プログラムＣの制御プログラム変数定義画面の例、（ｂ）は、改訂後の制御プログラムＤの制御プログラム変数定義画面の例である。また、それぞれの制御プログラム変数定義画面で、その上部には制御データ一覧表６２が表示され、下部には、制御プログラム図面６３が表示される。
【００６３】
ここで、制御プログラムＣおよび制御プログラムＤは、国際規格ＩＥＣ６１１３１−３で標準化されたＦＢＤ（Function Block Diagram）言語で作成されるものとする。ＦＢＤ言語のプログラムは、プログラムの実行単位であるタスク、単位プログラムであるＰＯＵ（Program Organization Unit）、演算子であるＦＢ（Function Block）やＦＮ（Function）の三層構造である。タスクは複数のＰＯＵから成り、ＰＯＵは複数の演算子から成り、その演算子が保持するデータが制御データである。制御データの名称はそのデータに固有のものであるので、名称が違えば違うＩＤが割り当てられ、また、名称が同じ制御データには同じＩＤが割り当てられる。ただし、制御プログラムの中に複数のタスクが存在する場合、および、タスクの中に複数のＰＯＵが存在する場合には、制御データの名称と、タスク名称、ＰＯＵ名称が同じ制御データに対して同じＩＤを割り当てることで、ＩＤを固有にすることが可能である。なお、ここでいうＩＤとは、制御データを一意に識別する識別情報である。
【００６４】
以下、本明細書では、タスクＮｏが「ｘ」で、ＰＯＵ  Ｎｏが「ｙ」で、制御データ名称が「Ｚ」で、制御データ種別が「ｗ」である制御データ（演算子）のことを、便宜上、「ｘｙＺｗ」という文字列で表す。
【００６５】
図６に示した制御データ一覧表６２には、一致化対象のデータにチェックボックスが設けられており、ユーザがそのチェックボックスにチェックマークを入れることで、一致化対象の制御データを指定する。その場合、一致化対象の制御データとしては、改訂前後の制御プログラムで、「ｘｙＺｗ」が同じ制御データを選択するものとした。すなわち、両者の制御プログラム間で、タスクＮｏ、ＰＯＵ  Ｎｏ、制御データ名称、制御データ種別がすべて一致する制御データを一致化対象の制御データとする。図６の例では、実線の丸で囲んだ制御データは、一致化する制御データの例であり、破線の丸で囲んだ制御データは、一致化しない制御データの例である。
【００６６】
なお、本実施形態の場合、ユーザが一致化すべきでない制御データを一致化対象として選択した場合であっても、両者の制御データに別々のＩＤが付される限り問題はない。これは、制御データの一致化を実施する待機系のＢ系コントローラ１ｂは、ＩＤが一致する制御信号でなければ、制御データの一致化、すなわち上書きは行われないからである。
【００６７】
次に、図７および図８を参照して、一致化指示データ作成部５２による一致化指示データ作成処理フローの例について説明する。ここで、図７は、保守支援装置５における一致化指示データ作成処理手順の概略を模式的に示した図、図８は、保守支援装置５における一致化指示データ作成処理の処理フローの例を示した図である。
【００６８】
一致化指示データ作成部５２（図１参照）は、保守データ記憶部５０から制御プログラムソース５５ａ，５５ｂを読み込んで、制御プログラム変数定義画面（図６参照）を用いて設定された制御データ一覧表６２の基づき、図７に示すような制御データ一覧テーブル５８ａ，５８ｂを作成する。ここで、フラグ欄のチェックマークは、Ａ系、Ｂ系それぞれでその制御信号が一致化対象の制御信号として選択されていることを表す。ここでは、制御プログラムソース５５ａに対する制御データ一覧テーブル５８ａが先に作成されているので、そのＢ系に対するフラグ欄は、空欄となっている。また、制御プログラムソース５５ｂに対する制御データ一覧テーブル５８ｂにおいて、制御データのＩＤは、ｘｙＺｗが同じ制御データについては同じＩＤが付されている。
【００６９】
こうして作成された制御データ一覧テーブル５８ａ，５８ｂを用いて、一致化指示データ作成部５２は、制御データのＩＤと、その制御データが格納される制御データメモリ１２ａ、１２ｂ上でのアドレスと、から構成される一致化指示データ５６ａ，５６ｂを作成する。さらに、その一致化指示データ５６ａ，５６ｂは、それぞれ、制御プログラム５７ａ，５７ｂとともに、Ａ系コントローラ１ａおよびＢ系コントローラ１ｂへ送信される。
【００７０】
さらに、図８を用いて、一致化指示データ作成処理を詳しく説明する。なお、図８に示した一致化指示データ作成処理では、ユーザが図６に示した制御プログラム変数定義画面を用いて、一致化対象の制御データを選択しなくても、一致化対象の制御データが選択され、制御データ一覧テーブル５８ａ，５８ｂが作成される。
【００７１】
一致化指示データ作成部５２は、まず、Ａ系用の制御プログラムソース５５ａから演算制御行を１行読み取り（ステップＳ５１）、その演算制御行に含まれる演算子（演算素子ともいう）のｘｙＺｗがユニークであるか否かを判定する（ステップＳ５２）。
【００７２】
その判定で、ｘｙＺｗがユニークであった場合には（ステップＳ５２でＹｅｓ）、一致化指示データ作成部５２は、ｘｙＺｗを制御データ一覧テーブル５８ａに追加し、ｘｙＺｗに新しいＩＤを付与する（ステップＳ５３）。ここで、制御データ一覧テーブル５８ａは、初期状態ですべて空欄のデータであり、ＩＤは、ｘｙＺｗが追加されるたびに、その順序を表す数が付与されるものとする。また、ステップＳ５２の判定で、ｘｙＺｗがユニークでなかった場合には（ステップＳ５２でＮｏ）、ステップＳ５３の処理は、スキップされる。
【００７３】
次に、一致化指示データ作成部５２は、制御データ一覧テーブル５８ａにおいてＡ系コントローラ１ａでの一致化対象データであることを示すフラグＡをセットする（ステップＳ５４）、すなわち、フラグＡの欄にチェックマークを入れる。
【００７４】
次に、一致化指示データ作成部５２は、Ａ系用の制御プログラムソース５５ａから演算制御行の読み取りが終了したか否かを判定し（ステップＳ５５）、演算制御行の読み取りが終了していなかった場合には（ステップＳ５５でＮｏ）、ステップＳ５１へ戻って、ステップＳ５１以下の処理を再度実行する。また、演算制御行の読み取りが終了した場合には（ステップＳ５５でＹｅｓ）、一致化指示データ作成部５２は、それまでに作成された制御データ一覧テーブル５８ａから一致化指示データ５６ａを作成し（ステップＳ５６）、保守データ配信部５４を介して、その作成した一致化指示データ５６ａをＡ系コントローラ１ａへ送信する（ステップＳ５７）。
【００７５】
次に、一致化指示データ作成部５２は、Ｂ系用の制御プログラムソース５５ｂから演算制御行を１行読み取り（ステップＳ５８）、その演算制御行に含まれる演算子のｘｙＺｗがＡ系用の制御プログラムソース５５ａに存在したか否かを判定し（ステップＳ５９）、Ａ系用の制御プログラムソース５５ａに存在した場合には（ステップＳ５９でＹｅｓ）、制御データ一覧テーブル５８ｂにおいてＢ系コントローラ１ｂでの一致化対象データであることを示すフラグＢをセットする（ステップＳ６２）。なお、制御データ一覧テーブル５８ｂは、実体として、制御データ一覧テーブル５８ａと同じものであり、ステップＳ５６直前までに作成された制御データ一覧テーブル５８ａを継続して使用したものである。
【００７６】
一方、ステップＳ５９の判定で、演算子のｘｙＺｗがＡ系用の制御プログラムソース５５ａに存在しなかった場合には、一致化指示データ作成部５２は、さらに、その演算子のｘｙＺｗがＢ系用の制御プログラムソース５５ｂだけに存在するか否かを判定する（ステップＳ６０）。
【００７７】
そして、そのｘｙＺｗがＢ系用の制御プログラムソース５５ｂだけに存在した場合には（ステップＳ６０でＹｅｓ）、制御データ一覧テーブル５８ｂに、そのｘｙＺｗを制御データ一覧テーブル５８ｂに追加し、ｘｙＺｗに新しいＩＤを付与し（ステップＳ６１）、さらに、制御データ一覧テーブル５８ｂのフラグＢをセットする（ステップＳ６２）。また、ステップＳ６０の判定で、ｘｙＺｗがＢ系用の制御プログラムソース５５ｂだけに存在した場合でないときには（ステップＳ６０でＮｏ）、一致化指示データ作成部５２は、その処理の実行をステップＳ６３へ移す。
【００７８】
また、ステップＳ６２に引き続いて、一致化指示データ作成部５２は、Ｂ系用の制御プログラムソース５５ｂから演算制御行の読み取りが終了したか否かを判定し（ステップＳ６３）、演算制御行の読み取りが終了していなかった場合には（ステップＳ６３でＮｏ）、ステップＳ５８へ戻って、ステップＳ５８以下の処理を再度実行する。また、演算制御行の読み取りが終了した場合には（ステップＳ６３でＹｅｓ）、一致化指示データ作成部５２は、それまでに作成された制御データ一覧テーブル５８ｂから一致化指示データ５６ｂを作成し（ステップＳ６４）、保守データ配信部５４を介して、その作成した一致化指示データ５６ｂをＢ系コントローラ１ｂへ送信する（ステップＳ６５）。
【００７９】
なお、ここでは、Ｂ系コントローラ１ｂの一致化指示データ５６ｂがＡ系コントローラ１ａの一致化指示データ５６ａに引き続いて送信されるとしたが、一般的には、Ａ系コントローラ１ａにはすでに一致化指示データ５６ａが送信されており、そのあと、制御プログラム１１ａ，１１ｂを改訂する場合に、その改訂された制御プログラム５７ａ，５７ｂを送信するときに併せて送信される。
【００８０】
また、以上の説明では、制御データのＩＤは、制御データ一覧テーブル５８ａ，５８ｂに登録された順序に従って、その順序数が割当てられるものとしたが、制御信号のタスクＮｏ、ＰＯＵ  Ｎｏ、制御データ名称、制御データ種別を表す文字列ｘｙＺｗを、ＣＲＣ（Cyclic Redundancy Check Code）で符号化したデータであっても、特定の処理でハッシュ化したデータであってもよい。
【００８１】
以上、本発明の実施形態によれば、主系のＡ系コントローラ１ａおよび待機系のＢ系コントローラ１ｂの一致化指示データ記憶部１６ａ，１６ｂには、別々に作成された一致化指示データ５６ａ，５６ｂを設定することができ、また、その一致化指示データには、一致化対象の制御データを識別するＩＤが付されている。また、主系のＡ系コントローラ１ａは、制御データの一致化を実施する待機系のＢ系コントローラ１ｂに対して、制御データを識別するＩＤを付した制御データを一致化用制御データとして送信する。そして、Ｂ系コントローラ１ｂは、Ａ系コントローラ１ａから送信された一致化用制御データのうち、自装置があらかじめ一致化指示データ記憶部１６ｂに保持している一致化指示データで指示される制御データについてのみ、制御データの一致化を行う。そのため、Ｂ系コントローラ１ｂは、Ａ系コントローラ１ａから送信された一致化用制御データと、一致化指示データとの間で一致化する制御データが相違しても、その一致化処理に支障を致すことがない。
【００８２】
従って、２重化プロセス制御装置１００において、その制御プログラム１１ａ，１１ｂの改訂に際し、改訂前後の制御プログラムに互いに相違する制御データが存在し、主系のＡ系コントローラ１ａおよび待機系のＢ系コントローラ１ｂのそれぞれにおいて、改訂前および改訂後の制御プログラムが別々にロードされ、実行される場合であっても、制御データの一致化を主系のＡ系コントローラ１ａによる制御対象プロセス３の制御を停止させることなく行うことが可能になる。
【符号の説明】
【００８３】
１      コントローラ
１ａ    Ａ系コントローラ（主系コントローラ）
１ｂ    Ｂ系コントローラ（待機系コントローラ）
２      プロセス入出力装置
３      制御対象プロセス
４      通信ネットワーク
５      保守支援装置
１０，１０ａ，１０ｂ    制御処理部
１１，１１ａ，１１ｂ    制御プログラム
１２，１２ａ，１２ｂ    制御データメモリ
１３，１３ａ，１３ｂ    制御データ一致化処理部
１４，１４ａ，１４ｂ    一致化用制御データ転送部
１５，１５ａ，１５ｂ    保守データダウンロード部
１６，１６ａ，１６ｂ    一致化指示データ記憶部
１７，１７ａ，１７ｂ    一致化用制御データ記憶部
５０    保守データ記憶部
５１    制御プログラムエディタ部
５２    一致化指示データ作成部
５３    制御プログラムコンパイラ部
５４    保守データ配信部
５５ａ，５５ｂ  制御プログラムソース
５６ａ，５６ｂ  一致化指示データ
５７ａ，５７ｂ  制御プログラム
５８ａ，５８ｂ  制御データ一覧テーブル
６０    入力装置
６１    表示装置
６３    制御プログラム図面
１００  ２重化プロセス制御装置
【図１】
0005421894.tif 000002
【図２】
0005421894.tif 000003
【図３】
0005421894.tif 000004
【図４】
0005421894.tif 000005
【図５】
0005421894.tif 000006
【図６】
0005421894.tif 000007
【図７】
0005421894.tif 000008
【図８】
0005421894.tif 000009