(57)【特許請求の範囲】
【請求項１】
演算装置およびその演算装置に接続される入出力装置の両者を二重化して構成された二重化システムにおいて、
演算装置は、
当該演算装置に制御権がある場合に、制御側となっている入出力装置の停止を検出する入出力停止検出手段と、
前記入出力停止検出手段により前記入出力装置の停止が検出された場合には、当該演算装置を自ら再起動させる再起動手段と、
当該演算装置が待機側に設定されている場合に、制御権がある相手方の演算装置の停止または再起動を検出する演算停止検出手段と、
前記演算停止検出手段により前記相手方の演算装置の停止または再起動が検出された場合には、割り込み動作を指示する割り込み動作指示手段と、
前記割り込み動作指示手段による指示に応じて、自らの演算装置に制御権を移動させるとともに、制御側となる入出力装置を切り換える切り換え手段と、
を備え、
前記演算停止検出手段、前記割り込み動作指示手段および前記切り換え手段は、フリップフロップ回路の動作に基づいて処理を実行することを特徴とする二重化システム。
【請求項２】
互いに二重化された演算装置としての第１の演算装置および第２の演算装置と、
互いに二重化された入出力装置としての第１の入出力装置および第２の入出力装置と、
前記第１の演算装置および前記第１の入出力装置に電力を供給する第１の電源装置と、
前記第１の電源装置と独立して機能し、前記第２の演算装置および前記第２の入出力装置に電力を供給する第２の電源装置と、
を備えることを特徴とする請求項１に記載の二重化システム。
【請求項３】
前記演算装置は、分散制御システムにおけるコントローラであることを特徴とする請求項１または２に記載の二重化システム。
【請求項４】
演算装置およびその演算装置に接続される入出力装置の両者を二重化して構成された二重化システムにおける制御切り換え方法において、
演算装置は、
当該演算装置に制御権がある場合に、制御側となっている入出力装置の停止を検出する入出力停止検出ステップと、
前記入出力停止検出ステップにより前記入出力装置の停止が検出された場合には、当該演算装置を自ら再起動させる再起動ステップと、
当該演算装置が待機側に設定されている場合に、制御権がある相手方の演算装置の停止または再起動を検出する演算停止検出ステップと、
前記演算停止検出ステップにより前記相手方の演算装置の停止または再起動が検出された場合には、割り込み動作を指示する割り込み動作指示ステップと、
前記割り込み動作指示ステップによる指示に応じて、自らの演算装置に制御権を移動させるとともに、制御側となる入出力装置を切り換える切り換えステップと、
を備え、
前記演算停止検出ステップ、前記割り込み動作指示ステップおよび前記切り換えステップでは、フリップフロップ回路の動作に基づいて処理を実行することを特徴とする制御切り換え方法。
【請求項５】
前記二重化システムは、
互いに二重化された演算装置としての第１の演算装置および第２の演算装置と、
互いに二重化された入出力装置としての第１の入出力装置および第２の入出力装置と、
前記第１の演算装置および前記第１の入出力装置に電力を供給する第１の電源装置と、
前記第１の電源装置と独立して機能し、前記第２の演算装置および前記第２の入出力装置に電力を供給する第２の電源装置と、
を備えることを特徴とする請求項４に記載の制御切り換え方法。
【請求項６】
前記演算装置は、分散制御システムにおけるコントローラであることを特徴とする請求項４または５に記載の制御切り換え方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、演算装置およびその演算装置に接続される入出力装置の両者を二重化して構成された二重化システム、およびこのような二重化システムにおける制御切り換え方法に関する。
【背景技術】
【０００２】
プロセス制御を行う分散型制御システムでは、プラントにコントローラが分散配置され、このコントローラ群を介してフィールド機器の制御、監視が行われる。また、このようなコントローラによる制御の信頼性向上を目的として、コントローラを二重化したシステムが開発されている。二重化されたコントローラでは、ＣＰＵ（中央処理装置）カードと、Ｉ／Ｏ（入出力）カードを二重化し、ＣＰＵカードの一方を制御側、他方を待機側として使用するとともに、Ｉ／Ｏカードの一方を制御側、他方を待機側として使用する。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００２−２６８９５９号公報
【特許文献２】特開２０１０−１９８２７４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ＣＰＵカードとＩ／Ｏカードの両者を二重化する場合、従来のシステムでは、ＣＰＵカードの制御権はハードウェアのフリップフロップ回路で決定されており、制御側のＣＰＵカードの動作が停止すると非常に高速に制御権が切り替わる。
【０００５】
一方、Ｉ／Ｏカードについては専用の診断タスクが定期的に（例えば、１秒程度の周期で）Ｉ／Ｏカードの状態（例えば、電源の状態、カードスロット装着状態）などの診断を行い、異常があった場合には診断タスクによって制御権の切り換え処理を行なっている。
【０００６】
このように、従来のシステムでは、Ｉ／Ｏカードに対する制御権の切り替え処理は、基本的にＣＰＵカードの制御権の切り換え処理と独立した診断タスクによる定期的な診断処理において行われる。このため、Ｉ／Ｏカードに異常（例えば、故障、停電、カード抜け）などが発生してからＩ／Ｏカードの制御権の切り換えが行われるまでの間に、最大で診断タスクの診断周期と同等の時間を費やすこととなり、この期間ではＩ／Ｏカードを使用した通信ができなくなる。この通信不能となる期間がシステムにとって許容できない場合には、診断タスクの診断周期を短くするという対応が考えられるが、診断タスクの動作時間の増加によりＣＰＵの空き時間が減ってしまう。したがって、制御権の切り換え速度とＣＰＵの負荷とのトレードオフで診断周期を決めざるを得ない。
【０００７】
本発明の目的は、入出力装置の制御権の切り換えを演算装置の制御権の切り換え処理と同時に行うことにより、入出力装置の制御権の切り換えを高速に実行できる二重化システムを提供することにある。
【課題を解決するための手段】
【０００８】
本発明の二重化システムは、演算装置およびその演算装置に接続される入出力装置の両者を二重化して構成された二重化システムにおいて、
演算装置は、
当該演算装置に制御権がある場合に、制御側となっている入出力装置の停止を検出する入出力停止検出手段と、
前記入出力停止検出手段により前記入出力装置の停止が検出された場合には、当該演算装置を自ら再起動させる再起動手段と、
当該演算装置が待機側に設定されている場合に、制御権がある相手方の演算装置の停止または再起動を検出する演算停止検出手段と、
前記演算停止検出手段により前記相手方の演算装置の停止または再起動が検出された場合には、割り込み動作を指示する割り込み動作指示手段と、
前記割り込み動作指示手段による指示に応じて、自らの演算装置に制御権を移動させるとともに、制御側となる入出力装置を切り換える切り換え手段と、
を備え、
前記演算停止検出手段、前記割り込み動作指示手段および前記切り換え手段は、フリップフロップ回路の動作に基づいて処理を実行することを特徴とする。
この二重化システムによれば、割込み動作の指示に応じて自らの演算装置に制御権を移動させるとともに、制御側となる入出力装置を切り換えるので、入出力装置の制御権の切り換えを高速に実行できる。
【０００９】
互いに二重化された演算装置としての第１の演算装置および第２の演算装置と、
互いに二重化された入出力装置としての第１の入出力装置および第２の入出力装置と、
前記第１の演算装置および前記第１の入出力装置に電力を供給する第１の電源装置と、
前記第１の電源装置と独立して機能し、前記第２の演算装置および前記第２の入出力装置に電力を供給する第２の電源装置と、
を備えてもよい。
【００１０】
前記演算装置は、分散制御システムにおけるコントローラであってもよい。
【００１１】
本発明の制御切り換え方法は、演算装置およびその演算装置に接続される入出力装置の両者を二重化して構成された二重化システムにおける制御切り換え方法において、
演算装置は、
当該演算装置に制御権がある場合に、制御側となっている入出力装置の停止を検出する入出力停止検出ステップと、
前記入出力停止検出ステップにより前記入出力装置の停止が検出された場合には、当該演算装置を自ら再起動させる再起動ステップと、
当該演算装置が待機側に設定されている場合に、制御権がある相手方の演算装置の停止または再起動を検出する演算停止検出ステップと、
前記演算停止検出ステップにより前記相手方の演算装置の停止または再起動が検出された場合には、割り込み動作を指示する割り込み動作指示ステップと、
前記割り込み動作指示ステップによる指示に応じて、自らの演算装置に制御権を移動させるとともに、制御側となる入出力装置を切り換える切り換えステップと、
を備え、
前記演算停止検出ステップ、前記割り込み動作指示ステップおよび前記切り換えステップでは、フリップフロップ回路の動作に基づいて処理を実行することを特徴とする。
【００１２】
前記二重化システムは、
互いに二重化された演算装置としての第１の演算装置および第２の演算装置と、
互いに二重化された入出力装置としての第１の入出力装置および第２の入出力装置と、
前記第１の演算装置および前記第１の入出力装置に電力を供給する第１の電源装置と、
前記第１の電源装置と独立して機能し、前記第２の演算装置および前記第２の入出力装置に電力を供給する第２の電源装置と、
を備えてもよい。
【００１３】
前記演算装置は、分散制御システムにおけるコントローラであってもよい。
【発明の効果】
【００１４】
本発明の二重化システムによれば、割込み動作の指示に応じて自らの演算装置に制御権を移動させるとともに、制御側となる入出力装置を切り換えるので、入出力装置の制御権の切り換えを高速に実行できる。
【００１５】
また、本発明の制御切り換え方法によれば、割込み動作の指示に応じて自らの演算装置に制御権を移動させるとともに、制御側となる入出力装置を切り換えるので、入出力装置の制御権の切り換えを高速に実行できる。
【図面の簡単な説明】
【００１６】
【図１】制御側のＣＰＵカードが停止した場合の制御権切り換えの手順を示す図。
【図２】制御側のＩ／Ｏカードが停止した場合の制御権切り換えの手順を示す図。
【図３】図１〜図２に示す二重化システムに適用される電源の構成例を示すブロック図。
【図４】一方の電源ユニットからの電源供給が失われた場合の制御権切り換え動作を示す図。
【発明を実施するための形態】
【００１７】
以下、本発明による二重化システムの一実施形態について説明する。本実施形態は、本発明による二重化システムを分散型フィールド制御システムのフィールドコントローラに適用したものである。本実施形態のＣＰＵ（中央処理装置）カードおよびＩ／Ｏ（入出力）カードが、本発明における「演算装置」および「入出力装置」に、それぞれ相当する。
【００１８】
図１は、制御側のＣＰＵカードが停止した場合の制御権切り換えの手順を示す図、図２は、制御側のＩ／Ｏカードが停止した場合の制御権切り換えの手順を示す図である。
【００１９】
図１に示すように、本発明による二重化システムの一実施形態としてのフィールドコントローラは、互いに二重化されたＣＰＵカード１Ａ，１Ｂと、互いに二重化されたＩ／Ｏカード２Ａ，２Ｂとを備える。
【００２０】
このフィールドコントローラでは、ＣＰＵカード１Ａ，１Ｂのうちの一方が制御側として機能し、他方が待機側として機能する。両者は基本的に並行して同一処理を実行するが、制御側のみが制御側に設定されているＩ／Ｏカードを介してデータ出力を行う。他方のＩ／Ｏカードは待機側となる。
【００２１】
なお、図１では、左側のＣＰＵカード１ＡとＩ／Ｏカード２Ａとが隣接し、右側のＣＰＵカード１ＢとＩ／Ｏカード２Ｂとが隣接して描かれているが、ＣＰＵカードとＩ／Ｏカードとの間の接続は、Ｉ／Ｏカードによって変わらない。すなわち、ＣＰＵカード１Ａから見てＩ／Ｏカード２ＡとＩ／Ｏカード２Ｂは等価であり、ＣＰＵカード１ＡとＩ／Ｏカード２Ｂの組み合わせで制御側あるいは待機側として動作可能である。同様に、ＣＰＵカード１Ｂから見てＩ／Ｏカード２ＡとＩ／Ｏカード２Ｂは等価であり、ＣＰＵカード１ＢとＩ／Ｏカード２Ｂとの組み合わせでの動作も可能とされている。
【００２２】
制御権の切り換えに関して、ＣＰＵカード１Ａ，１Ｂにおける動作手順は以下のように定められている。制御権が与えられているＣＰＵカードは、以下の（手順１）および（手順２）に従って動作する。
【００２３】
（手順１）制御権が与えられているＣＰＵカードは、現在、制御側となっているＩ／Ｏカードの状態を監視し、Ｉ／Ｏカードの動作が停止した場合には、その動作の停止（正常に動作していないこと）を検出する。このＩ／Ｏカードを監視する処理は、実行頻度が高い処理、例えば、ＣＰＵカード同士の同期処理の中で実行される。この監視処理は負荷の軽い処理であるため、この処理に依るＣＰＵの空き時間の減少量は軽微である。
【００２４】
（手順２）Ｉ／Ｏカードの動作停止を検出（手順１）した場合、他方の待機側のＣＰＵカードとＩ／Ｏカードの動作が正常であると判断できれば、制御権が与えられているＣＰＵカードは自ら再起動する。
【００２５】
また、待機側にある、すなわち制御権が与えられていないＣＰＵカードは、以下の（手順３）〜（手順５）に従って動作する。
【００２６】
（手順３）待機側にあるＣＰＵカードは、制御権がある他方のＣＰＵカードの動作状況を監視し、他方のＣＰＵカードの動作停止（正常に動作していないこと）または再起動があった場合にはこれを検出する。
【００２７】
（手順４）待機側にあるＣＰＵカードは、制御権がある他方のＣＰＵカードの動作停止または再起動を検出（手順３）した場合、自らのＣＰＵカードについて割り込み動作を指示する。
【００２８】
（手順５）割り込み動作が指示（手順４）されると、待機側にあるＣＰＵカードは、その指示に応じて自らのＣＰＵカードに制御権を移動させ、他方のＣＰＵカードを待機側に設定する。また、待機側となっているＩ／Ｏカードが有効であれば、このＩ／Ｏカードを制御側に設定し、他方のＩ／Ｏカード（今まで制御側であったＩ／Ｏカード）を待機側に設定する。このように割込み動作としてＣＰＵカードおよびＩ／Ｏカードの制御側の切り換えを行うため、実質的にＣＰＵカードとＩ／Ｏカードが同一のタイミングで制御側となる。
【００２９】
次に、図１を参照しつつ、制御側のＣＰＵカードの動作が停止した場合の制御権切り替え動作について説明する。
【００３０】
ＣＰＵカード１ＢおよびＩ／Ｏカード２Ｂが制御側にある状態で、ＣＰＵカード１Ｂの動作が故障、その他の何らかの原因で停止した場合（図１の「状態Ａ１」）には、上記の（手順４）により、待機側のＣＰＵカード１Ａは、ＣＰＵカード１Ｂの動作停止を検出し、割込みが発生する（図１の「状態Ａ２」）。次に、上記の（手順５）により、ＣＰＵカード１Ａは、割込み動作として、自らのＣＰＵカード１Ａに制御権を移動させ、ＣＰＵカード１Ｂを待機側に設定する。また、ＣＰＵカード１Ａは、待機側となっているＩ／Ｏカード２Ａが有効と判断できれば、このＩ／Ｏカード２Ａを制御側に設定し、他方のＩ／Ｏカード２Ｂを待機側に設定する（図１の「状態Ａ３」）。なお、Ｉ／Ｏカード２Ａが無効でＩ／Ｏカード２Ｂが有効と判断されれば、Ｉ／Ｏカード２Ｂを制御側として維持することもできる。
【００３１】
以上の一連の処理は、ハードウェアのフリップフロップ回路の動作に基づいており、非常に高速（例えば、μ秒オーダー）で実行される。このため、実質的にＣＰＵカード１ＡとＩ／Ｏカード２Ａが同一のタイミングで制御側に切り替わる。
【００３２】
次に、図２を参照しつつ、制御側のＩ／Ｏカードの動作が停止した場合の制御権切り替え動作について説明する。
【００３３】
ＣＰＵカード１ＢおよびＩ／Ｏカード２Ｂが制御側にある状態で、Ｉ／Ｏカード２Ｂの動作が故障、停電、カード抜け、その他の何らかの原因で停止した場合（図２の「状態Ｂ１」）には、上記の（手順２）により、制御側のＣＰＵカード１Ｂは、Ｉ／Ｏカード２Ｂの動作停止を検出し、自ら再起動する（図２の「状態Ｂ２」）。
【００３４】
ＣＰＵカード１Ｂの動作停止（再起動前の動作停止）または再起動は、上記の（手順３）により、待機側のＣＰＵカード１Ａにより検出され、上記の（手順４）により割込みが発生する（図２の「状態Ｂ３」）。次に、上記の（手順５）により、ＣＰＵカード１Ａは、割込み動作として、自らのＣＰＵカード１Ａに制御権を移動させ、ＣＰＵカード１Ｂを待機側に設定する。また、ＣＰＵカード１Ａは、待機側となっているＩ／Ｏカード２Ａが有効と判断できれば、このＩ／Ｏカード２Ａを制御側に設定する（図２の「状態Ｂ４」）。
【００３５】
このように、実行頻度の高い処理の中で行われるＩ／Ｏカードの監視処理（上記の（手順１））で制御側のＩ／Ｏカード２Ｂの異常が検知されると、待機側のＩ／Ｏカード２Ａが正常でＣＰＵカードが二重化で動いている場合には即座に制御側のＣＰＵカード１Ｂの再起動処理が実行される（上記の（手順２））。このため、図２の「状態Ｂ１」から「状態Ｂ２」までの処理は、実行頻度の高い処理同士の時間間隔に応じた時間を要し、図２の「状態Ｂ２」から「状態Ｂ４」に至る処理は、ハードウェアのフリップフロップ回路の動作に基づいており、非常に高速（例えば、μ秒オーダー）で実行される。このため、実質的にＣＰＵカード１ＡとＩ／Ｏカード２Ａが同一のタイミングで制御側に切り替わる。
【００３６】
以上のように、本実施形態の二重化システムでは、ＣＰＵカードの制御権切り換えとＩ／Ｏカードの制御権切り換えとが実質的に同じタイミングで行われるため、Ｉ／Ｏカードの制御権が存在しない期間が大幅に短縮される。これにより、Ｉ／Ｏカードを使用した通信が不通になる時間を短縮できる。
【００３７】
また、上記のように、従来のシステムでは、Ｉ／Ｏカードの診断タスクの診断周期を短くすると、ＣＰＵ空き時間が大きく減少するという問題があるが、本実施形態のシステムではＩ／Ｏカードの監視処理のみを抜き出してこれを実行頻度の高い処理の中で行うことにより、Ｉ／Ｏカードの動作停止を発見するまでの時間短縮を低負荷で実現することができる。さらに、Ｉ／Ｏカードの動作停止が発見された場合、Ｉ／Ｏカードの制御権を切り換える処理を行うのではなく、制御側のＣＰＵカードの再起動を行うだけでよいため、実装も簡単に行える。
【００３８】
図３は、図１〜図２に示す二重化システムに適用される電源の構成例を示すブロック図である。
【００３９】
図３に示す例では、ＣＰＵカード１ＡおよびＩ／Ｏカード２Ａに直流電圧を与える電源ユニット３Ａと、ＣＰＵカード１ＢおよびＩ／Ｏカード２Ｂに直流電圧を与える電源ユニット３Ｂと、が使用されている。通常、電源ユニットが二重化される場合には、二重化されたＣＰＵカードおよびＩ／Ｏカードの両方にそれぞれの電源ユニットから電源供給を可能とすることで、電源の二重化を図ることが一般的である。しかし、実装上の都合等により、図３に示すような構成が採られる場合もある。
【００４０】
図４は、図３の構成において、一方の電源ユニットからの電源供給が失われた場合の制御権切り換え動作を示す図である。
【００４１】
図４の例では、制御側となっているＣＰＵカード１ＢおよびＩ／Ｏカード２Ｂに直流電圧を与える電源ユニット３Ｂからの電源供給が失われた場合を示している。
【００４２】
ＣＰＵカード１ＢおよびＩ／Ｏカード２Ｂが制御側にある状態で、電源ユニット３Ｂからの電源供給がなくなると、ＣＰＵカード１ＢおよびＩ／Ｏカード２Ｂの動作が停止する（図４の「状態Ｃ１」）。この場合、上記の（手順４）により、待機側のＣＰＵカード１Ａは、ＣＰＵカード１Ｂの動作停止を検出し、割込みが発生する（図４の「状態Ｃ２」）。次に、上記の（手順５）により、ＣＰＵカード１Ａは、割込み動作として、自らのＣＰＵカード１Ａに制御権を移動させる。また、ＣＰＵカード１Ａは、待機側となっているＩ／Ｏカード２Ａが有効と判断できれば、このＩ／Ｏカード２Ａを制御側に設定する（図１の「状態Ａ３」）。
【００４３】
以上の一連の処理は、非常に高速（例えば、μ秒オーダー）で実行される。このため、実質的にＣＰＵカード１ＡとＩ／Ｏカード２Ａが同一のタイミングで制御側に切り替わる。
【００４４】
このように、本実施形態の二重化システムによれば、ＣＰＵカードの制御権切り換えとＩ／Ｏカードの制御権切り換えとが実質的に同じタイミングで行われるため、Ｉ／Ｏカードの制御権が存在しない期間が大幅に短縮される。これにより、Ｉ／Ｏカードを使用した通信が不通になる時間を短縮できる。また、ＣＰＵカードの制御権切り換えとＩ／Ｏカードの制御権切り換えとを一連の処理で実行することにより、様々なモードでの異常に対応した制御権の切り換えが可能となる。
【００４５】
以上のように、本発明の二重化システムによれば、割込み動作の指示に応じて自らの演算装置に制御権を移動させるとともに、制御側となる入出力装置を切り換えるので、入出力装置の制御権の切り換えを高速に実行できる。
【００４６】
本発明の適用範囲は上記実施形態に限定されることはない。本発明は、演算装置およびその演算装置に接続される入出力装置の両者を二重化して構成された二重化システムに対し、広く適用することができる。
【符号の説明】
【００４７】
１Ａ、１Ｂ  ＣＰＵカード（演算装置）
２Ａ、２Ｂ  Ｉ／Ｏカード（入出力装置）
３Ａ、３Ｂ  電源ユニット（電源装置）
【図１】
0005846369.tif 000002
【図２】
0005846369.tif 000003
【図３】
0005846369.tif 000004
【図４】
0005846369.tif 000005