"演算装置およびその演算装置に接続される入出力装置の両者を二重化して構成された二重化システムにおいて、演算装置は、当該演算装置に制御権がある場合に、制御側となっている入出力装置の停止を検出する入出力停止検出手段と、前記入出力停止検出手段により前記入出力装置の停止が検出された場合には、当該演算装置を自ら再起動させる再起動手段と、当該演算装置が待機側に設定されている場合に、制御権がある相手方の演算装置の停止または再起動を検出する演算停止検出手段と、前記演算停止検出手段により前記相手方の演算装置の停止または再起動が検出された場合には、割り込み動作を指示する割り込み動作指示手段と、前記割り込み動作指示手段による指示に応じて、自らの演算装置に制御権を移動させるとともに、制御側となる入出力装置を切り換える切り換え手段と、を備えることを特徴とする二重化システム。互いに二重化された演算装置としての第1の演算装置および第2の演算装置と、互いに二重化された入出力装置としての第1の入出力装置および第2の入出力装置と、前記第1の演算装置および前記第1の入出力装置に電力を供給する第1の電源装置と、前記第1の電源装置と独立して機能し、前記第2の演算装置および前記第2の入出力装置に電力を供給する第2の電源装置と、を備えることを特徴とする請求項1に記載の二重化システム。前記演算装置は、分散制御システムにおけるコントローラであることを特徴とする請求項1または2に記載の二重化システム。演算装置およびその演算装置に接続される入出力装置の両者を二重化して構成された二重化システムにおける制御切り換え方法において、演算装置は、当該演算装置に制御権がある場合に、制御側となっている入出力装置の停止を検出する入出力停止検出ステップと、前記入出力停止検出ステップにより前記入出力装置の停止が検出された場合には、当該演算装置を自ら再起動させる再起動ステップと、当該演算装置が待機側に設定されている場合に、制御権がある相手方の演算装置の停止または再起動を検出する演算停止検出ステップと、前記演算停止検出ステップにより前記相手方の演算装置の停止または再起動が検出された場合には、割り込み動作を指示する割り込み動作指示ステップと、前記割り込み動作指示ステップによる指示に応じて、自らの演算装置に制御権を移動させるとともに、制御側となる入出力装置を切り換える切り換えステップと、を備えることを特徴とする制御切り換え方法。前記二重化システムは、互いに二重化された演算装置としての第1の演算装置および第2の演算装置と、互いに二重化された入出力装置としての第1の入出力装置および第2の入出力装置と、前記第1の演算装置および前記第1の入出力装置に電力を供給する第1の電源装置と、前記第1の電源装置と独立して機能し、前記第2の演算装置および前記第2の入出力装置に電力を供給する第2の電源装置と、を備えることを特徴とする請求項4に記載の制御切り換え方法。前記演算装置は、分散制御システムにおけるコントローラであることを特徴とする請求項4または5に記載の制御切り換え方法。CPUカードとI/Oカードの両者を二重化する場合、従来のシステムでは、CPUカードの制御権はハードウェアのフリップフリップ回路で決定されており、制御側のCPUカードの動作が停止すると非常に高速に制御権が切り替わる。一方、I/Oカードについては専用の診断タスクが定期的に例えば、1秒程度の周期でI/Oカードの状態例えば、電源の状態、カードスロット装着状態などの診断を行い、異常があった場合には診断タスクによって制御権の切り換え処理を行なっている。このように、従来のシステムでは、I/Oカードに対する制御権の切り替え処理は、基本的にCPUカードの制御権の切り換え処理と独立した診断タスクによる定期的な診断処理において行われる。このため、I/Oカードに異常例えば、故障、停電、カード抜けなどが発生してからI/Oカードの制御権の切り換えが行われるまでの間に、最大で診断タスクの診断周期と同等の時間を費やすこととなり、この期間ではI/Oカードを使用した通信ができなくなる。この通信不能となる期間がシステムにとって許容できない場合には、診断タスクの診断周期を短くするという対応が考えられるが、診断タスクの動作時間の増加によりCPUの空き時間が減ってしまう。したがって、制御権の切り換え速度とCPUの負荷とのトレードオフで診断周期を決めざるを得ない。本発明の目的は、入出力装置の制御権の切り換えを演算装置の制御権の切り換え処理と同時に行うことにより、入出力装置の制御権の切り換えを高速に実行できる二重化システムを提供することにある。本発明の二重化システムは、演算装置およびその演算装置に接続される入出力装置の両者を二重化して構成された二重化システムにおいて、演算装置は、当該演算装置に制御権がある場合に、制御側となっている入出力装置の停止を検出する入出力停止検出手段と、前記入出力停止検出手段により前記入出力装置の停止が検出された場合には、当該演算装置を自ら再起動させる再起動手段と、当該演算装置が待機側に設定されている場合に、制御権がある相手方の演算装置の停止または再起動を検出する演算停止検出手段と、前記演算停止検出手段により前記相手方の演算装置の停止または再起動が検出された場合には、割り込み動作を指示する割り込み動作指示手段と、前記割り込み動作指示手段による指示に応じて、自らの演算装置に制御権を移動させるとともに、制御側となる入出力装置を切り換える切り換え手段と、を備えることを特徴とする。この二重化システムによれば、割込み動作の指示に応じて自らの演算装置に制御権を移動させるとともに、制御側となる入出力装置を切り換えるので、入出力装置の制御権の切り換えを高速に実行できる。互いに二重化された演算装置としての第1の演算装置および第2の演算装置と、互いに二重化された入出力装置としての第1の入出力装置および第2の入出力装置と、前記第1の演算装置および前記第1の入出力装置に電力を供給する第1の電源装置と、前記第1の電源装置と独立して機能し、前記第2の演算装置および前記第2の入出力装置に電力を供給する第2の電源装置と、を備えてもよい。前記演算装置は、分散制御システムにおけるコントローラであってもよい。本発明の制御切り換え方法は、演算装置およびその演算装置に接続される入出力装置の両者を二重化して構成された二重化システムにおける制御切り換え方法において、演算装置は、当該演算装置に制御権がある場合に、制御側となっている入出力装置の停止を検出する入出力停止検出ステップと、前記入出力停止検出ステップにより前記入出力装置の停止が検出された場合には、当該演算装置を自ら再起動させる再起動ステップと、当該演算装置が待機側に設定されている場合に、制御権がある相手方の演算装置の停止または再起動を検出する演算停止検出ステップと、前記演算停止検出ステップにより前記相手方の演算装置の停止または再起動が検出された場合には、割り込み動作を指示する割り込み動作指示ステップと、前記割り込み動作指示ステップによる指示に応じて、自らの演算装置に制御権を移動させるとともに、制御側となる入出力装置を切り換える切り換えステップと、を備えることを特徴とする。この制御切り換え方法によれば、割込み動作の指示に応じて自らの演算装置に制御権を移動させるとともに、制御側となる入出力装置を切り換えるので、入出力装置の制御権の切り換えを高速に実行できる。前記二重化システムは、互いに二重化された演算装置としての第1の演算装置および第2の演算装置と、互いに二重化された入出力装置としての第1の入出力装置および第2の入出力装置と、前記第1の演算装置および前記第1の入出力装置に電力を供給する第1の電源装置と、前記第1の電源装置と独立して機能し、前記第2の演算装置および前記第2の入出力装置に電力を供給する第2の電源装置と、を備えてもよい。前記演算装置は、分散制御システムにおけるコントローラであってもよい。本発明の二重化システムによれば、割込み動作の指示に応じて自らの演算装置に制御権を移動させるとともに、制御側となる入出力装置を切り換えるので、入出力装置の制御権の切り換えを高速に実行できる。また、本発明の制御切り換え方法によれば、割込み動作の指示に応じて自らの演算装置に制御権を移動させるとともに、制御側となる入出力装置を切り換えるので、入出力装置の制御権の切り換えを高速に実行できる。以下、本発明による二重化システムの一実施形態について説明する。本実施形態は、本発明による二重化システムを分散型フィールド制御システムのフィールドコントローラに適用したものである。本実施形態のCPU中央処理装置カードおよびI/O入出力カードが、本発明における演算装置および入出力装置に、それぞれ相当する。図1は、制御側のCPUカードが停止した場合の制御権切り換えの手順を示す図、図2は、制御側のI/Oカードが停止した場合の制御権切り換えの手順を示す図である。図1に示すように、本発明による二重化システムの一実施形態としてのフィールドコントローラは、互いに二重化されたCPUカード1A,1Bと、互いに二重化されたI/Oカード2A,2Bとを備える。このフィールドコントローラでは、CPUカード1A,1Bのうちの一方が制御側として機能し、他方が待機側として機能する。両者は基本的に並行して同一処理を実行するが、制御側のみが制御側に設定されているI/Oカードを介してデータ出力を行う。他方のI/Oカードは待機側となる。なお、図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との組み合わせでの動作も可能とされている。制御権の切り換えに関して、CPUカード1A,1Bにおける動作手順は以下のように定められている。制御権が与えられているCPUカードは、以下の手順1および手順2に従って動作する。手順1制御権が与えられているCPUカードは、現在、制御側となっているI/Oカードの状態を監視し、I/Oカードの動作が停止した場合には、その動作の停止正常に動作していないことを検出する。このI/Oカードを監視する処理は、実行頻度が高い処理、例えば、CPUカード同士の同期処理の中で実行される。この監視処理は負荷の軽い処理であるため、この処理に依るCPUの空き時間の減少量は軽微である。手順2I/Oカードの動作停止を検出手順1した場合、他方の待機側のCPUカードとI/Oカードの動作が正常であると判断できれば、制御権が与えられているCPUカードは自ら再起動する。また、待機側にある、すなわち制御権が与えられていないCPUカードは、以下の手順3~手順5に従って動作する。手順3待機側にあるCPUカードは、制御権がある他方のCPUカードの動作状況を監視し、他方のCPUカードの動作停止正常に動作していないことまたは再起動があった場合にはこれを検出する。手順4待機側にあるCPUカードは、制御権がある他方のCPUカードの動作停止または再起動を検出手順3した場合、自らのCPUカードについて割り込み動作を指示する。手順5割り込み動作が指示手順4されると、待機側にあるCPUカードは、その指示に応じて自らのCPUカードに制御権を移動させ、他方のCPUカードを待機側に設定する。また、待機側となっているI/Oカードが有効であれば、このI/Oカードを制御側に設定し、他方のI/Oカード今まで制御側であったI/Oカードを待機側に設定する。このように割込み動作としてCPUカードおよびI/Oカードの制御側の切り換えを行うため、実質的にCPUカードとI/Oカードが同一のタイミングで制御側となる。次に、図1を参照しつつ、制御側のCPUカードの動作が停止した場合の制御権切り替え動作について説明する。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を制御側として維持することもできる。以上の一連の処理は、ハードウェアのフリップフリップ回路の動作に基づいており、非常に高速例えば、μ秒オーダーで実行される。このため、実質的にCPUカード1AとI/Oカード2Aが同一のタイミングで制御側に切り替わる。次に、図2を参照しつつ、制御側のI/Oカードの動作が停止した場合の制御権切り替え動作について説明する。CPUカード1BおよびI/Oカード2Bが制御側にある状態で、I/Oカード2Bの動作が故障、停電、カード抜け、その他の何らかの原因で停止した場合図2の状態B1には、上記の手順2により、制御側のCPUカード1Bは、I/Oカード2Bの動作停止を検出し、自ら再起動する図2の状態B2。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。このように、実行頻度の高い処理の中で行われるI/Oカードの監視処理上記の手順1で制御側のI/Oカード2Bの異常が検知されると、待機側のI/Oカード2Aが正常でCPUカードが二重化で動いている場合には即座に制御側のCPUカード1Bの再起動処理が実行される上記の手順2。このため、図2の状態B1から状態B2までの処理は、実行頻度の高い処理同士の時間間隔に応じた時間を要し、図2の状態B2から状態B4に至る処理は、ハードウェアのフリップフリップ回路の動作に基づいており、非常に高速例えば、μ秒オーダーで実行される。このため、実質的にCPUカード1AとI/Oカード2Aが同一のタイミングで制御側に切り替わる。以上のように、本実施形態の二重化システムでは、CPUカードの制御権切り換えとI/Oカードの制御権切り換えとが実質的に同じタイミングで行われるため、I/Oカードの制御権が存在しない期間が大幅に短縮される。これにより、I/Oカードを使用した通信が不通になる時間を短縮できる。また、上記のように、従来のシステムでは、I/Oカードの診断タスクの診断周期を短くすると、CPU空き時間が大きく減少するという問題があるが、本実施形態のシステムではI/Oカードの監視処理のみを抜き出してこれを実行頻度の高い処理の中で行うことにより、I/Oカードの動作停止を発見するまでの時間短縮を低負荷で実現することができる。さらに、I/Oカードの動作停止が発見された場合、I/Oカードの制御権を切り換える処理を行うのではなく、制御側のCPUカードの再起動を行うだけでよいため、実装も簡単に行える。図3は、図1~図2に示す二重化システムに適用される電源の構成例を示すブロック図である。図3に示す例では、CPUカード1AおよびI/Oカード2Aに直流電圧を与える電源ユニット3Aと、CPUカード1BおよびI/Oカード2Bに直流電圧を与える電源ユニット3Bと、が使用されている。通常、電源ユニットが二重化される場合には、二重化されたCPUカードおよびI/Oカードの両方にそれぞれの電源ユニットから電源供給を可能とすることで、電源の二重化を図ることが一般的である。しかし、実装上の都合等により、図3に示すような構成が採られる場合もある。図4は、図3の構成において、一方の電源ユニットからの電源供給が失われた場合の制御権切り換え動作を示す図である。図4の例では、制御側となっているCPUカード1BおよびI/Oカード2Bに直流電圧を与える電源ユニット3Bからの電源供給が失われた場合を示している。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。以上の一連の処理は、非常に高速例えば、μ秒オーダーで実行される。このため、実質的にCPUカード1AとI/Oカード2Aが同一のタイミングで制御側に切り替わる。このように、本実施形態の二重化システムによれば、CPUカードの制御権切り換えとI/Oカードの制御権切り換えとが実質的に同じタイミングで行われるため、I/Oカードの制御権が存在しない期間が大幅に短縮される。これにより、I/Oカードを使用した通信が不通になる時間を短縮できる。また、CPUカードの制御権切り換えとI/Oカードの制御権切り換えとを一連の処理で実行することにより、様々なモードでの異常に対応した制御権の切り換えが可能となる。以上のように、本発明の二重化システムによれば、割込み動作の指示に応じて自らの演算装置に制御権を移動させるとともに、制御側となる入出力装置を切り換えるので、入出力装置の制御権の切り換えを高速に実行できる。本発明の適用範囲は上記実施形態に限定されることはない。本発明は、演算装置およびその演算装置に接続される入出力装置の両者を二重化して構成された二重化システムに対し、広く適用することができる。"