説明

二重化システムおよび制御切り換え方法

【課題】入出力装置の制御権の切り換えを演算装置の制御権の切り換え処理と同時に行うことにより、入出力装置の制御権の切り換えを高速に実行できる二重化システムを提供する。
【解決手段】演算停止検出手段は、当該演算装置が待機側に設定されている場合に、制御権がある相手方の演算装置の停止または再起動を検出する。割り込み動作指示手段は、演算停止検出手段により相手方の演算装置の停止または再起動が検出された場合には、割り込み動作を指示する。切り換え手段は、割り込み動作指示手段による指示に応じて、自らの演算装置に制御権を移動させるとともに、制御側となる入出力装置を切り換える。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、演算装置およびその演算装置に接続される入出力装置の両者を二重化して構成された二重化システム、およびこのような二重化システムにおける制御切り換え方法に関する。
【背景技術】
【0002】
プロセス制御を行う分散型制御システムでは、プラントにコントローラが分散配置され、このコントローラ群を介してフィールド機器の制御、監視が行われる。また、このようなコントローラによる制御の信頼性向上を目的として、コントローラを二重化したシステムが開発されている。二重化されたコントローラでは、CPU(中央処理装置)カードと、I/O(入出力)カードを二重化し、CPUカードの一方を制御側、他方を待機側として使用するとともに、I/Oカードの一方を制御側、他方を待機側として使用する。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2002−268959号公報
【特許文献2】特開2010−198274号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
CPUカードとI/Oカードの両者を二重化する場合、従来のシステムでは、CPUカードの制御権はハードウェアのフリップフリップ回路で決定されており、制御側のCPUカードの動作が停止すると非常に高速に制御権が切り替わる。
【0005】
一方、I/Oカードについては専用の診断タスクが定期的に(例えば、1秒程度の周期で)I/Oカードの状態(例えば、電源の状態、カードスロット装着状態)などの診断を行い、異常があった場合には診断タスクによって制御権の切り換え処理を行なっている。
【0006】
このように、従来のシステムでは、I/Oカードに対する制御権の切り替え処理は、基本的にCPUカードの制御権の切り換え処理と独立した診断タスクによる定期的な診断処理において行われる。このため、I/Oカードに異常(例えば、故障、停電、カード抜け)などが発生してからI/Oカードの制御権の切り換えが行われるまでの間に、最大で診断タスクの診断周期と同等の時間を費やすこととなり、この期間ではI/Oカードを使用した通信ができなくなる。この通信不能となる期間がシステムにとって許容できない場合には、診断タスクの診断周期を短くするという対応が考えられるが、診断タスクの動作時間の増加によりCPUの空き時間が減ってしまう。したがって、制御権の切り換え速度とCPUの負荷とのトレードオフで診断周期を決めざるを得ない。
【0007】
本発明の目的は、入出力装置の制御権の切り換えを演算装置の制御権の切り換え処理と同時に行うことにより、入出力装置の制御権の切り換えを高速に実行できる二重化システムを提供することにある。
【課題を解決するための手段】
【0008】
本発明の二重化システムは、演算装置およびその演算装置に接続される入出力装置の両者を二重化して構成された二重化システムにおいて、
演算装置は、
当該演算装置に制御権がある場合に、制御側となっている入出力装置の停止を検出する入出力停止検出手段と、
前記入出力停止検出手段により前記入出力装置の停止が検出された場合には、当該演算装置を自ら再起動させる再起動手段と、
当該演算装置が待機側に設定されている場合に、制御権がある相手方の演算装置の停止または再起動を検出する演算停止検出手段と、
前記演算停止検出手段により前記相手方の演算装置の停止または再起動が検出された場合には、割り込み動作を指示する割り込み動作指示手段と、
前記割り込み動作指示手段による指示に応じて、自らの演算装置に制御権を移動させるとともに、制御側となる入出力装置を切り換える切り換え手段と、
を備えることを特徴とする。
この二重化システムによれば、割込み動作の指示に応じて自らの演算装置に制御権を移動させるとともに、制御側となる入出力装置を切り換えるので、入出力装置の制御権の切り換えを高速に実行できる。
【0009】
互いに二重化された演算装置としての第1の演算装置および第2の演算装置と、
互いに二重化された入出力装置としての第1の入出力装置および第2の入出力装置と、
前記第1の演算装置および前記第1の入出力装置に電力を供給する第1の電源装置と、
前記第1の電源装置と独立して機能し、前記第2の演算装置および前記第2の入出力装置に電力を供給する第2の電源装置と、
を備えてもよい。
【0010】
前記演算装置は、分散制御システムにおけるコントローラであってもよい。
【0011】
本発明の制御切り換え方法は、演算装置およびその演算装置に接続される入出力装置の両者を二重化して構成された二重化システムにおける制御切り換え方法において、
演算装置は、
当該演算装置に制御権がある場合に、制御側となっている入出力装置の停止を検出する入出力停止検出ステップと、
前記入出力停止検出ステップにより前記入出力装置の停止が検出された場合には、当該演算装置を自ら再起動させる再起動ステップと、
当該演算装置が待機側に設定されている場合に、制御権がある相手方の演算装置の停止または再起動を検出する演算停止検出ステップと、
前記演算停止検出ステップにより前記相手方の演算装置の停止または再起動が検出された場合には、割り込み動作を指示する割り込み動作指示ステップと、
前記割り込み動作指示ステップによる指示に応じて、自らの演算装置に制御権を移動させるとともに、制御側となる入出力装置を切り換える切り換えステップと、
を備えることを特徴とする。
この制御切り換え方法によれば、割込み動作の指示に応じて自らの演算装置に制御権を移動させるとともに、制御側となる入出力装置を切り換えるので、入出力装置の制御権の切り換えを高速に実行できる。
【0012】
前記二重化システムは、
互いに二重化された演算装置としての第1の演算装置および第2の演算装置と、
互いに二重化された入出力装置としての第1の入出力装置および第2の入出力装置と、
前記第1の演算装置および前記第1の入出力装置に電力を供給する第1の電源装置と、
前記第1の電源装置と独立して機能し、前記第2の演算装置および前記第2の入出力装置に電力を供給する第2の電源装置と、
を備えてもよい。
【0013】
前記演算装置は、分散制御システムにおけるコントローラであってもよい。
【発明の効果】
【0014】
本発明の二重化システムによれば、割込み動作の指示に応じて自らの演算装置に制御権を移動させるとともに、制御側となる入出力装置を切り換えるので、入出力装置の制御権の切り換えを高速に実行できる。
【0015】
また、本発明の制御切り換え方法によれば、割込み動作の指示に応じて自らの演算装置に制御権を移動させるとともに、制御側となる入出力装置を切り換えるので、入出力装置の制御権の切り換えを高速に実行できる。
【図面の簡単な説明】
【0016】
【図1】制御側のCPUカードが停止した場合の制御権切り換えの手順を示す図。
【図2】制御側のI/Oカードが停止した場合の制御権切り換えの手順を示す図。
【図3】図1〜図2に示す二重化システムに適用される電源の構成例を示すブロック図。
【図4】一方の電源ユニットからの電源供給が失われた場合の制御権切り換え動作を示す図。
【発明を実施するための形態】
【0017】
以下、本発明による二重化システムの一実施形態について説明する。本実施形態は、本発明による二重化システムを分散型フィールド制御システムのフィールドコントローラに適用したものである。本実施形態のCPU(中央処理装置)カードおよびI/O(入出力)カードが、本発明における「演算装置」および「入出力装置」に、それぞれ相当する。
【0018】
図1は、制御側のCPUカードが停止した場合の制御権切り換えの手順を示す図、図2は、制御側のI/Oカードが停止した場合の制御権切り換えの手順を示す図である。
【0019】
図1に示すように、本発明による二重化システムの一実施形態としてのフィールドコントローラは、互いに二重化されたCPUカード1A,1Bと、互いに二重化されたI/Oカード2A,2Bとを備える。
【0020】
このフィールドコントローラでは、CPUカード1A,1Bのうちの一方が制御側として機能し、他方が待機側として機能する。両者は基本的に並行して同一処理を実行するが、制御側のみが制御側に設定されているI/Oカードを介してデータ出力を行う。他方のI/Oカードは待機側となる。
【0021】
なお、図1では、左側のCPUカード1AとI/Oカード2Aとが隣接し、右側のCPUカード1BとI/Oカード2Bとが隣接して描かれているが、CPUカードとI/Oカードとの間の接続は、I/Oカードによって変わらない。すなわち、CPUカード1Aから見てI/Oカード2AとI/Oカード2Bは等価であり、CPUカード1AとI/Oカード2Bの組み合わせで制御側あるいは待機側として動作可能である。同様に、CPUカード1Bから見てI/Oカード2AとI/Oカード2Bは等価であり、CPUカード1BとI/Oカード2Bとの組み合わせでの動作も可能とされている。
【0022】
制御権の切り換えに関して、CPUカード1A,1Bにおける動作手順は以下のように定められている。制御権が与えられているCPUカードは、以下の(手順1)および(手順2)に従って動作する。
【0023】
(手順1)制御権が与えられているCPUカードは、現在、制御側となっているI/Oカードの状態を監視し、I/Oカードの動作が停止した場合には、その動作の停止(正常に動作していないこと)を検出する。このI/Oカードを監視する処理は、実行頻度が高い処理、例えば、CPUカード同士の同期処理の中で実行される。この監視処理は負荷の軽い処理であるため、この処理に依るCPUの空き時間の減少量は軽微である。
【0024】
(手順2)I/Oカードの動作停止を検出(手順1)した場合、他方の待機側のCPUカードとI/Oカードの動作が正常であると判断できれば、制御権が与えられているCPUカードは自ら再起動する。
【0025】
また、待機側にある、すなわち制御権が与えられていないCPUカードは、以下の(手順3)〜(手順5)に従って動作する。
【0026】
(手順3)待機側にあるCPUカードは、制御権がある他方のCPUカードの動作状況を監視し、他方のCPUカードの動作停止(正常に動作していないこと)または再起動があった場合にはこれを検出する。
【0027】
(手順4)待機側にあるCPUカードは、制御権がある他方のCPUカードの動作停止または再起動を検出(手順3)した場合、自らのCPUカードについて割り込み動作を指示する。
【0028】
(手順5)割り込み動作が指示(手順4)されると、待機側にあるCPUカードは、その指示に応じて自らのCPUカードに制御権を移動させ、他方のCPUカードを待機側に設定する。また、待機側となっているI/Oカードが有効であれば、このI/Oカードを制御側に設定し、他方のI/Oカード(今まで制御側であったI/Oカード)を待機側に設定する。このように割込み動作としてCPUカードおよびI/Oカードの制御側の切り換えを行うため、実質的にCPUカードとI/Oカードが同一のタイミングで制御側となる。
【0029】
次に、図1を参照しつつ、制御側のCPUカードの動作が停止した場合の制御権切り替え動作について説明する。
【0030】
CPUカード1BおよびI/Oカード2Bが制御側にある状態で、CPUカード1Bの動作が故障、その他の何らかの原因で停止した場合(図1の「状態A1」)には、上記の(手順4)により、待機側のCPUカード1Aは、CPUカード1Bの動作停止を検出し、割込みが発生する(図1の「状態A2」)。次に、上記の(手順5)により、CPUカード1Aは、割込み動作として、自らのCPUカード1Aに制御権を移動させ、CPUカード1Bを待機側に設定する。また、CPUカード1Aは、待機側となっているI/Oカード2Aが有効と判断できれば、このI/Oカード2Aを制御側に設定し、他方のI/Oカード2Bを待機側に設定する(図1の「状態A3」)。なお、I/Oカード2Aが無効でI/Oカード2Bが有効と判断されれば、I/Oカード2Bを制御側として維持することもできる。
【0031】
以上の一連の処理は、ハードウェアのフリップフリップ回路の動作に基づいており、非常に高速(例えば、μ秒オーダー)で実行される。このため、実質的にCPUカード1AとI/Oカード2Aが同一のタイミングで制御側に切り替わる。
【0032】
次に、図2を参照しつつ、制御側のI/Oカードの動作が停止した場合の制御権切り替え動作について説明する。
【0033】
CPUカード1BおよびI/Oカード2Bが制御側にある状態で、I/Oカード2Bの動作が故障、停電、カード抜け、その他の何らかの原因で停止した場合(図2の「状態B1」)には、上記の(手順2)により、制御側のCPUカード1Bは、I/Oカード2Bの動作停止を検出し、自ら再起動する(図2の「状態B2」)。
【0034】
CPUカード1Bの動作停止(再起動前の動作停止)または再起動は、上記の(手順3)により、待機側のCPUカード1Aにより検出され、上記の(手順4)により割込みが発生する(図2の「状態B3」)。次に、上記の(手順5)により、CPUカード1Aは、割込み動作として、自らのCPUカード1Aに制御権を移動させ、CPUカード1Bを待機側に設定する。また、CPUカード1Aは、待機側となっているI/Oカード2Aが有効と判断できれば、このI/Oカード2Aを制御側に設定する(図2の「状態B4」)。
【0035】
このように、実行頻度の高い処理の中で行われるI/Oカードの監視処理(上記の(手順1))で制御側のI/Oカード2Bの異常が検知されると、待機側のI/Oカード2Aが正常でCPUカードが二重化で動いている場合には即座に制御側のCPUカード1Bの再起動処理が実行される(上記の(手順2))。このため、図2の「状態B1」から「状態B2」までの処理は、実行頻度の高い処理同士の時間間隔に応じた時間を要し、図2の「状態B2」から「状態B4」に至る処理は、ハードウェアのフリップフリップ回路の動作に基づいており、非常に高速(例えば、μ秒オーダー)で実行される。このため、実質的にCPUカード1AとI/Oカード2Aが同一のタイミングで制御側に切り替わる。
【0036】
以上のように、本実施形態の二重化システムでは、CPUカードの制御権切り換えとI/Oカードの制御権切り換えとが実質的に同じタイミングで行われるため、I/Oカードの制御権が存在しない期間が大幅に短縮される。これにより、I/Oカードを使用した通信が不通になる時間を短縮できる。
【0037】
また、上記のように、従来のシステムでは、I/Oカードの診断タスクの診断周期を短くすると、CPU空き時間が大きく減少するという問題があるが、本実施形態のシステムではI/Oカードの監視処理のみを抜き出してこれを実行頻度の高い処理の中で行うことにより、I/Oカードの動作停止を発見するまでの時間短縮を低負荷で実現することができる。さらに、I/Oカードの動作停止が発見された場合、I/Oカードの制御権を切り換える処理を行うのではなく、制御側のCPUカードの再起動を行うだけでよいため、実装も簡単に行える。
【0038】
図3は、図1〜図2に示す二重化システムに適用される電源の構成例を示すブロック図である。
【0039】
図3に示す例では、CPUカード1AおよびI/Oカード2Aに直流電圧を与える電源ユニット3Aと、CPUカード1BおよびI/Oカード2Bに直流電圧を与える電源ユニット3Bと、が使用されている。通常、電源ユニットが二重化される場合には、二重化されたCPUカードおよびI/Oカードの両方にそれぞれの電源ユニットから電源供給を可能とすることで、電源の二重化を図ることが一般的である。しかし、実装上の都合等により、図3に示すような構成が採られる場合もある。
【0040】
図4は、図3の構成において、一方の電源ユニットからの電源供給が失われた場合の制御権切り換え動作を示す図である。
【0041】
図4の例では、制御側となっているCPUカード1BおよびI/Oカード2Bに直流電圧を与える電源ユニット3Bからの電源供給が失われた場合を示している。
【0042】
CPUカード1BおよびI/Oカード2Bが制御側にある状態で、電源ユニット3Bからの電源供給がなくなると、CPUカード1BおよびI/Oカード2Bの動作が停止する(図4の「状態C1」)。この場合、上記の(手順4)により、待機側のCPUカード1Aは、CPUカード1Bの動作停止を検出し、割込みが発生する(図4の「状態C2」)。次に、上記の(手順5)により、CPUカード1Aは、割込み動作として、自らのCPUカード1Aに制御権を移動させる。また、CPUカード1Aは、待機側となっているI/Oカード2Aが有効と判断できれば、このI/Oカード2Aを制御側に設定する(図1の「状態A3」)。
【0043】
以上の一連の処理は、非常に高速(例えば、μ秒オーダー)で実行される。このため、実質的にCPUカード1AとI/Oカード2Aが同一のタイミングで制御側に切り替わる。
【0044】
このように、本実施形態の二重化システムによれば、CPUカードの制御権切り換えとI/Oカードの制御権切り換えとが実質的に同じタイミングで行われるため、I/Oカードの制御権が存在しない期間が大幅に短縮される。これにより、I/Oカードを使用した通信が不通になる時間を短縮できる。また、CPUカードの制御権切り換えとI/Oカードの制御権切り換えとを一連の処理で実行することにより、様々なモードでの異常に対応した制御権の切り換えが可能となる。
【0045】
以上のように、本発明の二重化システムによれば、割込み動作の指示に応じて自らの演算装置に制御権を移動させるとともに、制御側となる入出力装置を切り換えるので、入出力装置の制御権の切り換えを高速に実行できる。
【0046】
本発明の適用範囲は上記実施形態に限定されることはない。本発明は、演算装置およびその演算装置に接続される入出力装置の両者を二重化して構成された二重化システムに対し、広く適用することができる。
【符号の説明】
【0047】
1A、1B CPUカード(演算装置)
2A、2B I/Oカード(入出力装置)
3A、3B 電源ユニット(電源装置)

【特許請求の範囲】
【請求項1】
演算装置およびその演算装置に接続される入出力装置の両者を二重化して構成された二重化システムにおいて、
演算装置は、
当該演算装置に制御権がある場合に、制御側となっている入出力装置の停止を検出する入出力停止検出手段と、
前記入出力停止検出手段により前記入出力装置の停止が検出された場合には、当該演算装置を自ら再起動させる再起動手段と、
当該演算装置が待機側に設定されている場合に、制御権がある相手方の演算装置の停止または再起動を検出する演算停止検出手段と、
前記演算停止検出手段により前記相手方の演算装置の停止または再起動が検出された場合には、割り込み動作を指示する割り込み動作指示手段と、
前記割り込み動作指示手段による指示に応じて、自らの演算装置に制御権を移動させるとともに、制御側となる入出力装置を切り換える切り換え手段と、
を備えることを特徴とする二重化システム。
【請求項2】
互いに二重化された演算装置としての第1の演算装置および第2の演算装置と、
互いに二重化された入出力装置としての第1の入出力装置および第2の入出力装置と、
前記第1の演算装置および前記第1の入出力装置に電力を供給する第1の電源装置と、
前記第1の電源装置と独立して機能し、前記第2の演算装置および前記第2の入出力装置に電力を供給する第2の電源装置と、
を備えることを特徴とする請求項1に記載の二重化システム。
【請求項3】
前記演算装置は、分散制御システムにおけるコントローラであることを特徴とする請求項1または2に記載の二重化システム。
【請求項4】
演算装置およびその演算装置に接続される入出力装置の両者を二重化して構成された二重化システムにおける制御切り換え方法において、
演算装置は、
当該演算装置に制御権がある場合に、制御側となっている入出力装置の停止を検出する入出力停止検出ステップと、
前記入出力停止検出ステップにより前記入出力装置の停止が検出された場合には、当該演算装置を自ら再起動させる再起動ステップと、
当該演算装置が待機側に設定されている場合に、制御権がある相手方の演算装置の停止または再起動を検出する演算停止検出ステップと、
前記演算停止検出ステップにより前記相手方の演算装置の停止または再起動が検出された場合には、割り込み動作を指示する割り込み動作指示ステップと、
前記割り込み動作指示ステップによる指示に応じて、自らの演算装置に制御権を移動させるとともに、制御側となる入出力装置を切り換える切り換えステップと、
を備えることを特徴とする制御切り換え方法。
【請求項5】
前記二重化システムは、
互いに二重化された演算装置としての第1の演算装置および第2の演算装置と、
互いに二重化された入出力装置としての第1の入出力装置および第2の入出力装置と、
前記第1の演算装置および前記第1の入出力装置に電力を供給する第1の電源装置と、
前記第1の電源装置と独立して機能し、前記第2の演算装置および前記第2の入出力装置に電力を供給する第2の電源装置と、
を備えることを特徴とする請求項4に記載の制御切り換え方法。
【請求項6】
前記演算装置は、分散制御システムにおけるコントローラであることを特徴とする請求項4または5に記載の制御切り換え方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate


【公開番号】特開2013−114649(P2013−114649A)
【公開日】平成25年6月10日(2013.6.10)
【国際特許分類】
【出願番号】特願2011−263378(P2011−263378)
【出願日】平成23年12月1日(2011.12.1)
【出願人】(000006507)横河電機株式会社 (4,443)
【Fターム(参考)】