(57)【要約】【課題】稼働側と待機側の親局コントローラ１Ａ，１Ｂ、親局別のＩ／Ｏ回線４Ａ，４Ｂ、各親局１Ａ，１Ｂの子局となる通信中継部５Ａ，５Ｂ、この５Ａ，５Ｂに共通のＩ／Ｏモジュール６を持ち、稼働側親局が該親局側のＩ／Ｏ回線及び通信中継部と内部バス７，モジュール６を介し各モジュール６の外部の末端機器を制御する二重化制御システムにて、稼働側と待機側の親局が入れ替わる二重化切換を必要最小時間で確実に行う。【解決手段】二重化切換開始時、稼働中の親局（１Ａとする）は二重化状態データ１０Ａを待機としハンドシェイクデータ（Ｈ／Ｓデータ）１１Ａの定周期更新を開始し、待機中の親局１Ｂも二重化状態データ１０Ｂを稼働としＨ／Ｓデータ１１Ｂの定周期更新を開始する。以後親局１Ａ，１Ｂはこの定周期更新のつど相手側Ｈ／Ｓデータを監視し、所定時間経過後読出した相手側二重化状態データが自身側データと正しく異なれば二重化切換完了とする。【選択図】　　　　図１
2004078425.tif 000002
【特許請求の範囲】
【請求項１】
一方が稼働側、他方が待機側に二重化され、等値化伝送路を介する交信により保持データを互いに等しく保つ親局の制御演算手段としての第１，第２のコントローラと、
この第１，第２のコントローラにそれぞれ接続された第１，第２のＩ／Ｏ回線と、
この第１のＩ／Ｏ回線にマルチドロップ状に接続され第１のコントローラの子局を構成する１または複数の第１の通信中継部と、
前記第２のＩ／Ｏ回線にマルチドロップ状に、且つそれぞれ前記第１の通信中継部と対をなして接続され、第２のコントローラの子局を構成する１または複数の第２の通信中継部と、
対をなす前記第１，第２の通信中継部を結合する内部バスにそれぞれ接続され、対応する該対の第１，第２の通信中継部に共通に属する１または複数のＩ／Ｏモジュールとを備え、
常時は稼働側となった前記コントローラが前記Ｉ／Ｏモジュールをそれぞれ指定しつつ、自身側の前記Ｉ／Ｏ回線を介し指定したＩ／Ｏモジュールに対応する自身側の前記通信中継部と交信し、さらに該通信中継部が前記内部バスを介して当該Ｉ／Ｏモジュールと交信することにより、稼働側の前記コントローラが、当該Ｉ／Ｏモジュールに対応する外部機器との間でデータを授受し、該外部機器の制御等を行う二重化制御システムにおいて、
これまで稼働してきたコントローラ側に生じた切換要因によって稼働側と待機側のコントローラが入れ替わる二重化切換の際における、第１のコントローラの二重化切換状態を判定するデータを格納する第１のデータ格納領域を前記第１の通信中継部内に、同じく第２のコントローラの二重化切換状態を判定するデータを格納する第２のデータ格納領域を前記第２の通信中継部内にそれぞれ設け、
二重化切換の際、前記第１のコントローラが前記第１のＩ／Ｏ回線および第１の通信中継部を介し前記第１のデータ格納領域に少なくとも自身がこれから向かうべき待機または稼働の二重化状態を示す二重化状態データを書込んで該当する二重化状態へ移行するモードに入り、同様に前記第２のコントローラが前記第２のＩ／Ｏ回線および第２の通信中継部を介し前記第２のデータ格納領域に自身がこれから向かうべき稼働または待機の二重化状態を示す二重化状態データを書込んで該当する二重化状態へ移行するモードに入るようにし、
その後所定時間を経て、前記第１のコントローラが前記第１のＩ／Ｏ回線、第１の通信中継部および内部バスを介し前記第２のデータ格納領域の二重化状態データを読出し、同様に前記第２のコントローラが前記第２のＩ／Ｏ回線、第２の通信中継部および内部バスを介し前記第１のデータ格納領域の二重化状態データを読出すようにし、
この読出の結果、前記第１のコントローラは前記第１のデータ格納領域に書込んだ二重化状態データと、全ての前記第２のデータ格納領域から読出した二重化状態データとが正しく異なることを判別して二重化切換後の通常動作に入り、同様に前記第２のコントローラは前記第２のデータ格納領域に書込んだ二重化状態データと、全ての前記第１のデータ格納領域から読出した二重化状態データとが正しく異なることを判別して二重化切換後の通常動作に入るようにしたことを特徴とする二重化制御システムの二重化切換方法。
【請求項２】
請求項１に記載の二重化制御システムの二重化切換方法において、
前記第１，第２のデータ格納領域にさらに、それぞれ第１，第２のコントローラが正常に二重化切換の動作をしていることを示すハンドシェイクデータを格納するようにし、
前記第１，第２のコントローラが前記のように第１，第２のデータ格納領域に二重化状態データを書込む際、それぞれ同時に当該データ格納領域のハンドシェイクデータのインクリメントを開始し、
前記第１，第２のコントローラがそれぞれ前記のように第２，第１のデータ格納領域から二重化状態データを読出す際、同時に当該データ格納領域のハンドシェイクデータを読出し、
この読出されたハンドシェイクデータが正しく更新されているとき、同時に読出された前記二重化状態データを有効とすることを特徴とする二重化制御システムの二重化切換方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は稼働側と待機側に二重化された親局の制御演算手段としてのコントローラが、コントローラ別に設けられたＩ／Ｏ伝送回線と、各コントローラに共通の子局としてのＩ／Ｏノードとを介して、外部の末端機器を制御する二重化制御システムにおいて、特に稼働中のコントローラ側の異常によって稼働中のコントローラが待機側に、待機中のコントローラが稼働側にそれぞれ切換わる（なお、この切換を二重化切換とよぶ）際の誤動作を防止する二重化切換方法としての、二重化制御システムの二重化切換方法に関する。
【０００２】
なお以下各図において同一の符号は同一もしくは相当部分を示す。
【０００３】
【従来の技術】
図２はこの種の二重化制御システムの要部の構成例を示す。なお、同図における＃０〜＃７の８台のＩ／Ｏノード２の内部の構成を＃０のＩ／Ｏノード２を代表にして示す。
図２において１Ａ，１Ｂは、図外の末端機器（センサ，バルブ等）に対する演算，制御を行う親局としてのコントローラで、一方が稼働側、他方が待機側に二重化されており、この二重化制御システムの制御演算装置０１を構成している。
【０００４】
３は２つのコントローラ１Ａ，１Ｂが保持するデータを常時、等しく保つために、稼働側コントローラ１Ａ（１Ｂ）から待機側コントローラ１Ｂ（１Ａ）へ常時、データを伝えたり、２つのコントローラ１Ａ，１Ｂそれぞれのシステム内の故障情報（換言すれば、稼働中のコントローラを待機側に、待機中のコントローラを稼働側に切換える、いわゆる二重化切換の要因となる情報）を常時、相互に交換したりするために用いられる等値化伝送路である。
【０００５】
２はコントローラ１Ａ，１Ｂの子局となり、且つ外部の末端機器に対する本システムの入出力インタフェースとなるＩ／Ｏノードで、本例では＃０〜＃７の８台のＩ／Ｏノード２によって、この二重化制御システムのＩ／Ｏ装置０２を構成している。
６は各Ｉ／Ｏノード２を構成し、外部の末端機器に直接接続されてアナログ信号やデジタル信号の入出力を行うＩ／Ｏモジュールで、本例では１台のＩ／Ｏノード２ごとに＃０〜＃７の８台のＩ／Ｏモジュール６が設けられているものとする。
【０００６】
５Ａ，５Ｂは各Ｉ／Ｏノード２を構成する、二重化された通信中継部で、８台の各Ｉ／Ｏノード２の通信中継部５Ａは、コントローラ１Ａから延びるデジタル伝送路としてのＩ／Ｏ回線４Ａにマルチドロップ状に接続され、同様に８台の各Ｉ／Ｏノード２の通信中継部５Ｂは、コントローラ１Ｂから延びるデジタル伝送路としてのＩ／Ｏ回線４Ｂにマルチドロップ状に接続されている。
【０００７】
そして、各Ｉ／Ｏノード２の通信中継部５Ａ，５Ｂは、それぞれ当該Ｉ／Ｏノード２内の８台のＩ／Ｏモジュール６と、内部バス７を介して接続されている。稼働側となったコントローラ１Ａ（１Ｂ）は、Ｉ／Ｏ回線４Ａ（４Ｂ）を介し各Ｉ／Ｏノード２の通信中継部５Ａ（５Ｂ）との間で、ホ°ーリング／セレクティング（コマンド／レスポンス）の伝送制御手順により交信する。
【０００８】
即ち、稼働側コントローラ１Ａ（１Ｂ）は、規則的に各Ｉ／Ｏノード２の各Ｉ／Ｏモジュール６を１つずつ順次指定して、当該Ｉ／Ｏノード２の通信中継部５Ａ（５Ｂ）に対し、指定したＩ／Ｏモジュール６のデータを稼働側コントローラ１Ａ（１Ｂ）へ送信することを要求し（ホ°ーリング）、また必要なＩ／Ｏモジュール６に送る稼働側コントローラ１Ａ（１Ｂ）のデータを、対応する通信中継部５Ａ（５Ｂ）に受信することを要求する（セレクティング）。
【０００９】
このようにして本例では、稼働側コントローラ１Ａ（１Ｂ）は、所定周期で各Ｉ／Ｏモジュール６を順次指定しつつ、当該Ｉ／Ｏモジュール６に対応する外部の末端機器からの入力データを送信することを、Ｉ／Ｏ回線４Ａ（４Ｂ）を介し対応する通信中継部５Ａ（５Ｂ）に要求する。
この送信要求を受信した当該Ｉ／Ｏモジュール６に対応する通信中継部５Ａ（５Ｂ）は、当該Ｉ／Ｏノード２内の内部バス７を介し、この送信要求を当該Ｉ／Ｏモジュール６に伝え、この送信要求に応じてＩ／Ｏモジュール６が外部末端機器から取り込み送信する入力データをＩ／Ｏ回線４Ａ（４Ｂ）を介してコントローラ１Ａ（１Ｂ）に送信する。
【００１０】
また、稼働側コントローラ１Ａ（１Ｂ）は、上記入力データ等を用いた自身が実行する処理に応じてＩ／Ｏモジュール６を指定し、外部の末端機器へ与える出力データの受信を要求する。
この受信要求をＩ／Ｏ回線４Ａ（４Ｂ）を介して受信した、当該Ｉ／Ｏモジュール６に対応する通信中継部５Ａ（５Ｂ）は、当該Ｉ／Ｏノード２内の内部バス７を介し、この受信要求を当該Ｉ／Ｏモジュール６に伝え、続いてコントローラ１Ａ（１Ｂ）から送信される出力データを同じ伝送経路で当該Ｉ／Ｏモジュール６に送信し、この出力データを外部末端機器へ出力させる。
【００１１】
また別に、稼働側コントローラ１Ａ（１Ｂ）は、等値化伝送路３を介し待機側コントローラ１Ｂ（１Ａ）とホ°ーリング／セレクティングにより交信する。
こうして、稼働側コントローラ１Ａ（１Ｂ）は、前述のようにＩ／Ｏモジュール６との通信によって変化した保持データを待機側コントローラ１Ｂ（１Ａ）に随時送信する。また、コントローラ１Ａと１Ｂは、それぞれ常時、自系内の故障情報を収集しており、前記した故障情報を相互に交換している。
【００１２】
次にこのシステムの二重化切換の手順を説明する。以下の例では今までコントローラ１Ａが稼働側となって動作しており、コントローラ１Ｂは待機中であったものとする。
▲１▼稼働中であったコントローラ１Ａに異常（切換要因）が発生し、待機中であったコントローラ１Ｂに異常（切換要因）がないものとすると、コントローラ１Ａは等値化伝送路３を介して制御権移動（つまり、コントローラ１Ｂが１Ａに代わって稼働側になるべき旨の指示）をコントローラ１Ｂに通知する。
【００１３】
▲２▼次にコントローラ１ＡはＩ／Ｏ回線４Ａを介し、８台の各Ｉ／Ｏノード２の通信中継部５Ａに待機側に切換わる指令（待機指示）を通知する。
▲２▼’前記▲１▼の通知に基づき、コントローラ１Ｂは、コントローラ１Ａとは非同期でＩ／Ｏ回線４Ｂを介し、８台の各Ｉ／Ｏノード２の通信中継部５Ｂに稼働側に切換わる指令（稼働指示）を通知し、続いて切換完了をアプリケーションに通知する。
【００１４】
▲３▼前記▲２▼におけるコントローラ１Ａからの待機指示により各Ｉ／Ｏノード２の通信中継部５Ａ（内の図外のＣＰＵ）は、自身内の二重化状態データ１０Ａを「稼働」から「待機」に書換えて待機状態となる。
▲３▼’前記▲２▼’におけるコントローラ１Ｂからの稼働指示により各Ｉ／Ｏノード２の通信中継部５Ｂ（内の図外のＣＰＵ）は、内部バス７を介して相手の通信中継部５Ａの二重化状態データ１０Ａを監視し、この二重化状態データ１０Ａが「待機」に書換わったことを確認して自身内の二重化状態データ１０Ｂを「待機」から「稼働」に書換え、稼働状態となる。
【００１５】
【発明が解決しようとする課題】
しかしながら、図２の二重化制御システムでは、二重化切換の際、上述の例では稼働側から待機側に切り換わるべきコントローラ１Ａが複数の通信中継部５Ａに与える待機指示と、待機側から稼働側に切り換わるべきコントローラ１Ｂが複数の通信中継部５Ｂに与える稼働指示とが非同期で発せられるため、前記▲３▼の手順で二重化状態データ１０Ａを「稼働」から「待機」に書換える動作が遅れる通信中継部５Ａが存在する場合がある。
【００１６】
このような場合、前記　▲３▼’の手順に示したように、当該通信中継部５Ａの相手の通信中継部５Ｂはコントローラ１Ｂからの稼働指示により自身内の二重化状態データ１０Ｂを「待機」から「稼働」に書換えようとするが、監視する相手の通信中継部５Ａの二重化状態データ１０Ａが「稼働」のまま「待機」に書換わらないため、自身内の二重化状態データ１０Ｂを「待機」のままとしているタイミングが存在する。
【００１７】
しかし一方、前記　▲２▼’の手順に示したように、コントローラ１Ｂは各通信中継部５Ｂに稼働指示を発行し、次いで切換完了をアプリケーションに通知するため、新たに稼働側となるコントローラ１Ｂに結ばれた通信中継部５Ｂの全てが稼働状態に移行しないうちに、コントローラ１Ｂによってアプリケーションが再開されることとなり、アプリケーションの処理が異常となる場合がある。
【００１８】
本発明の目的はこの問題を解消し、二重化切換に必要な最小の時間で確実な二重化切換を行うことができる二重化制御システムの二重化切換方法を提供することにある。
【００１９】
【課題を解決するための手段】
前記の課題を解決するために、請求項１の二重化制御システムの二重化切換方法では、
一方が稼働側、他方が待機側に二重化され、等値化伝送路（３）を介する交信により保持データを互いに等しく保つ親局の制御演算手段としての第１，第２のコントローラ（１Ａ，１Ｂ）と、
この第１，第２のコントローラにそれぞれ接続された第１，第２のＩ／Ｏ回線（４Ａ，４Ｂ）と、
この第１のＩ／Ｏ回線にマルチドロップ状に接続され第１のコントローラの子局を構成する１または複数の第１の通信中継部（５Ａ）と、
前記第２のＩ／Ｏ回線にマルチドロップ状に、且つそれぞれ前記第１の通信中継部と対をなして接続され、第２のコントローラの子局を構成する１または複数の第２の通信中継部（５Ｂ）と、
対をなす前記第１，第２の通信中継部を結合する内部バス（７）にそれぞれ接続され、対応する該対の第１，第２の通信中継部に共通に属する１または複数のＩ／Ｏモジュール（６）とを備え、
常時は稼働側となった前記コントローラ（本例では１Ａ）が前記Ｉ／Ｏモジュールをそれぞれ指定しつつ、自身側の前記Ｉ／Ｏ回線を介し指定したＩ／Ｏモジュールに対応する自身側の前記通信中継部と交信し、さらに該通信中継部が前記内部バスを介して当該Ｉ／Ｏモジュールと交信することにより、稼働側の前記コントローラが、当該Ｉ／Ｏモジュールに対応する外部機器との間でデータを授受し、該外部機器の制御等を行う二重化制御システムにおいて、
これまで稼働してきたコントローラ側に生じた切換要因によって稼働側と待機側のコントローラが入れ替わる二重化切換の際における、第１のコントローラの二重化切換状態を判定するデータを格納する第１のデータ格納領域（切換状態データ格納部８Ａ）を前記第１の通信中継部内に、同じく第２のコントローラの二重化切換状態を判定するデータを格納する第２のデータ格納領域（切換状態データ格納部８Ｂ）を前記第２の通信中継部内にそれぞれ設け、
二重化切換の際、前記第１のコントローラが前記第１のＩ／Ｏ回線および第１の通信中継部を介し前記第１のデータ格納領域に少なくとも自身がこれから向かうべき待機または稼働の二重化状態を示す二重化状態データ（１０Ａ、本例では「待機」を示す）を書込んで該当する二重化状態へ移行するモードに入り、同様に前記第２のコントローラが前記第２のＩ／Ｏ回線および第２の通信中継部を介し前記第２のデータ格納領域に自身がこれから向かうべき稼働または待機の二重化状態を示す二重化状態データ（１０Ｂ、本例では「稼働」を示す）を書込んで該当する二重化状態へ移行するモードに入るようにし、
その後所定時間を経て、前記第１のコントローラが前記第１のＩ／Ｏ回線、第１の通信中継部および内部バスを介し前記第２のデータ格納領域の二重化状態データを読出し、同様に前記第２のコントローラが前記第２のＩ／Ｏ回線、第２の通信中継部および内部バスを介し前記第１のデータ格納領域の二重化状態データを読出すようにし、
この読出の結果、前記第１のコントローラは前記第１のデータ格納領域に書込んだ二重化状態データと、全ての前記第２のデータ格納領域から読出した二重化状態データとが正しく異なることを判別して二重化切換後の通常動作（本例では待機側コントローラとしての動作）に入り、同様に前記第２のコントローラは前記第２のデータ格納領域に書込んだ二重化状態データと、全ての前記第１のデータ格納領域から読出した二重化状態データとが正しく異なることを判別して二重化切換後の通常動作（本例では稼働側コントローラとしての動作）に入るようにする。
【００２０】
また請求項２の二重化制御システムの二重化切換方法では、請求項１に記載の二重化制御システムの二重化切換方法において、
前記第１，第２のデータ格納領域にさらに、それぞれ第１，第２のコントローラがが正常に二重化切換の動作をしていることを示すハンドシェイクデータ（１１Ａ，１１Ｂ）を格納するようにし、
前記第１，第２のコントローラが前記のように第１，第２のデータ格納領域に二重化状態データを書込む際、それぞれ同時に当該データ格納領域のハンドシェイクデータのインクリメントを開始し、
前記第１，第２のコントローラがそれぞれ前記のように第２，第１のデータ格納領域から二重化状態データを読出す際、同時に当該データ格納領域のハンドシェイクデータを読出し、
この読出されたハンドシェイクデータが正しく更新されているとき、同時に読出された前記二重化状態データを有効とする。
【００２１】
即ち本発明の作用は、二重化切換制御をコントローラ部でのみ行うと共に、２つのコントローラが互いに相手側の二重化切換の進行状態を監視して二重化切換完了を判別し、二重化切換後の通常動作を開始するようにするものである。
【００２２】
【発明の実施の形態】
図１は本発明の一実施例としての二重化制御システムの構成を示し、この図は図２に対応している。なお、図１においても、各Ｉ／Ｏノード２内の要部の構成を、＃０のＩ／Ｏノード２を代表例にして示す。
図１の図２に対する相違は、図１においては各Ｉ／Ｏノード２の通信中継部５Ａ内に当該側コントローラ１Ａについての二重化状態データ１０Ａとハンドシェイクデータ１１Ａからなる切換状態データ格納部８Ａが、また同様に各Ｉ／Ｏノード２の通信中継部５Ｂ内に当該側コントローラ１Ｂについての二重化状態データ１０Ｂとハンドシェイクデータ１１Ｂからなる切換状態データ格納部８Ｂが、それぞれ設けられた点と、
この切換状態データ格納部８Ａの内容が、自身側のコントローラ１Ａの指令により通信中継部５Ａ（内の図外のＣＰＵ）を介して書き込まれ、且つ相手側のコントローラ１Ｂの指令により通信中継部５Ｂ（内の図外のＣＰＵ）を介し、内部バス７を経て読出されるようにし、また同様に切換状態データ格納部８Ｂの内容が、自身側のコントローラ１Ｂの指令により通信中継部５Ｂ（内の図外のＣＰＵ）を介して書き込まれ、且つ相手側のコントローラ１Ａの指令により通信中継部５Ａ（内の図外のＣＰＵ）を介し、内部バス７を経て読出されるようにした点である。
【００２３】
ここで、ハンドシェイクデータ１１Ａ，１１Ｂは、二重化切換の際、それぞれコントローラ１Ａ，１Ｂにより通信中継部５Ａ，５Ｂを介し所定周期でインクリメントされるカウンタの値であり、コントローラ１Ａ，１Ｂが異常なく二重化切換の動作をしていることを確認するためのデータとなる。
次に図１のシステムの二重化制御の切換わり手順を説明する。この例でも今までコントローラ１Ａが稼働側となって動作しており、コントローラ１Ｂは待機中であったものとする。
【００２４】
▲１▼コントローラローラ１Ａに異常（切換要因）が発生し、コントローラ１Ｂに異常（切換要因）がないものとすると、コントローラ１Ａは等値化伝送路３を介して制御権移動（つまり、コントローラ１Ｂが１Ａに代わって稼働側になるべき旨の指示）をコントローラ１Ｂに通知する。
▲２▼次にコントローラ１Ａは、Ｉ／Ｏ回線４Ａを通じ、８台の各Ｉ／Ｏノード２の通信中継部５Ａ（内の図外のＣＰＵ）を介して、各通信中継部５Ａ内の切換状態データ格納部８Ａにおける二重化状態データ１０Ａを「稼働」から「待機」に書換え、ハンドシェイクデータ１１Ａのインクリメントを開始して、待機側に移行するモードに入る。
【００２５】
そしてコントローラ１Ａは、この待機移行モード中、所定周期ごとに各通信中継部５Ａを介しハンドシェイクデータ１１Ａをインクリメントすると同時に、同通信中継部５Ａを介し内部バス７を経て相手通信中継部５Ｂ内の切換状態データ格納部８Ｂにおけるハンドシェイクデータ１１Ｂを読取り、相手コントローラ１Ｂの二重化切換動作と同期をとることで、両コントローラ１Ａ，１Ｂの二重化切換完了のタイミングを一致させる。
【００２６】
▲２▼’上記▲１▼の通知によりコントローラ１Ｂは、コントローラ１Ａとは非同期でＩ／Ｏ回線４Ｂを通じ、８台の各Ｉ／Ｏノード２の通信中継部５Ｂ（内の図外のＣＰＵ）を介して、各通信中継部５Ｂ内の切換状態データ格納部８Ｂにおける二重化状態データ１０Ｂを「待機」から「稼働」に書換え、ハンドシェイクデータ１１Ｂのインクリメントを開始して、稼働側に移行するモードに入る。
【００２７】
そしてコントローラ１Ｂは、この稼働移行モード中、所定周期ごとに各通信中継部５Ｂを介しハンドシェイクデータ１１Ｂをインクリメントすると同時に、同通信中継部５Ｂを介し内部バス７を経て相手通信中継部５Ａ内の切換状態データ格納部８Ａにおけるハンドシェイクデータ１１Ａを読取り、相手コントローラ１Ａの二重化切換動作と同期をとることで、両コントローラ１Ａ，１Ｂの二重化切換完了のタイミングを一致させる。
【００２８】
▲３▼上記▲２▼の処理における二重化状態データ１０Ａの書換え後、所定時間を経て、コントローラ１Ａは、Ｉ／Ｏ回線４Ａを通じ、８台の各Ｉ／Ｏノード２の通信中継部５Ａ（内の図外のＣＰＵ）を介し内部パス７を経て、当該通信中継部５Ａの相手側の通信中継部５Ｂ内の切換状態データ格納部８Ｂにおける二重化状態データ１０Ｂとハンドシェイクデータ１１Ｂを読出す。
【００２９】
そして、コントローラ１Ａは、読出した各通信中継部５Ｂごとの二重化状態データ１０Ｂが自系とは異なる「稼働」であり、且つハンドシェイクデータ１１Ｂが正しく更新されていれば切換完了と判断し、完全な待機状態に移る。
▲３▼’同様に上記▲２▼’の処理における二重化状態データ１０Ｂの書換え後、所定時間を経て、コントローラ１Ｂは、Ｉ／Ｏ回線４Ｂを通じ、各Ｉ／Ｏノード２の通信中継部５Ｂ（内の図外のＣＰＵ）を介し内部バス７を経て、当該通信中継部５Ｂの相手側の通信中継部５Ａ内の切換状態データ格納部８Ａにおける二重化状態データ１０Ａとハンドシェイクデータ１１Ａを読出す。
【００３０】
そして、コントローラ１Ｂは、読出した各通信中継部５Ａごとの二重化状態データ１０Ａが自系とは異なる「待機」であり、且つハンドシェイクデータ１１Ａが正しく更新されていれば切換完了と判断し、完全な稼働状態に移ってアプリケーションの処理を再開する。
なお、図１のシステムでは各通信中継部５Ａ，５Ｂはそれ自体「稼働」，「待機」を意識することなく、それぞれコントローラ１Ａ，１Ｂの指示のみに従って動作するものとする。
【００３１】
【発明の効果】
本発明によれば、二重化切換制御をコントローラ１Ａ，１Ｂでのみ行うと共に、通信中継部５Ａ内にコントローラ１Ａの二重化状態データ１０Ａとハンドシェイクデータ１１Ａを格納する切換状態データ格納部８Ａを、通信中継部５Ｂ内にコントローラ１Ｂの二重化状態データ１０Ｂとハンドシェイクデータ１１Ｂを格納する切換状態データ格納部８Ｂをそれぞれ設け、二重化切換動作中、コントローラ１Ａ，１Ｂが互いに相手側の切換状態データ格納部８Ｂ，８Ａの内容を読取ることで、相手コントローラの二重化切換の進行状態を監視し二重化切換完了を判別するようにしたので、
二重化切換に必要な最小の時間で確実な二重化切換を行うことができ、制御の継続性を保つことができる。
【図面の簡単な説明】
【図１】本発明の一実施例としてのシステム要部の構成図
【図２】図１に対応する従来の構成図
【符号の説明】
０１　　　　　　　制御演算装置
０２　　　　　　　Ｉ／Ｏ装置
１Ａ，１Ｂ　　　　コントローラ
２　　　　　　　　Ｉ／Ｏノード
３　　　　　　　　等値化伝送路
４Ａ，４Ｂ　　　　Ｉ／Ｏ回線
５Ａ，５Ｂ　　　　通信中継部
６　　　　　　　　Ｉ／Ｏモジュール
７　　　　　　　　内部バス
８Ａ，８Ｂ　　　　切換状態データ格納部
１０Ａ，１０Ｂ　　二重化状態データ
１１Ａ，１１Ｂ　　ハンドシェイクデータ
【図１】
2004078425.tif 000003
【図２】
2004078425.tif 000004