(57)【特許請求の範囲】
【請求項１】
通信回線により接続される第１の制御装置と第２の制御装置を立ち上げたとき、前記第１の制御装置と前記第２の制御装置とが前記通信回線を介して通信を行い、一方を運用系に、他方を非運用系に設定して縮退運転を行う二重系システムであって、
前記第１の制御装置および前記第２の制御装置は、
相手制御装置に対して生存確認データを送信し、その応答データを待つ前記通信の応答待ち時間に、前記第１の制御装置と前記第２の制御装置との間で時間差を設け、前記応答待ち時間の短い相手制御装置を優先的に立ち上げる運用系に設定し、他方を非運用系に設定して縮退運転を実行するため、
前記相手制御装置へ生存確認データを送信し、その応答を受信する通信制御部と、
前記通信制御部により、前記相手制御装置からの応答を、自制御装置の応答待ち時間が経過しても、受信しなかったことを検出したとき、前記自制御装置を運用系として設定し、前記自制御装置の系の状態が前記運用系である旨を示す応答を前記相手制御装置へ送信し、前記通信制御部により、前記相手制御装置から前記自制御装置の系の状態が前記運用系である旨を示す応答を受信したとき、自制御装置を非運用系として設定する信号処理部とを有する系切替え制御手段を備え、
前記信号処理部は、
前記通信制御部により、前記自制御装置の応答待ち時間以内に、前記相手制御装置からの応答を受信したとき、前記応答に含まれる相手制御装置に設定された応答待ち時間と、前記自制御装置の応答待ち時間とを比較し、前記相手制御装置に設定された応答待ち時間が前記自制御装置の応答待ち時間より短い場合に自制御装置を非運用系として設定し、前記相手制御装置に設定された応答待ち時間が前記自制御装置の応答待ち時間より長い場合に自制御装置を運用系として設定すること
を特徴とする二重系システム。
【請求項２】
前記系切替え制御手段は、
前記通信回線から前記第１の制御装置または前記第２の制御装置が切り離されたとき、前記第１の制御装置と第２の制御装置とを非運用系に設定して縮退運転を実行すること、
を特徴とする請求項１に記載の二重系システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信回線により接続される第１の制御装置と第２の制御装置を立ち上げたとき、第１の制御装置と第２の制御装置が通信回線を介して通信を行い、一方を運用系に、他方を非運用系に設定して縮退運転を行う二重系システムに関する。
【背景技術】
【０００２】
プラント制御等、高信頼性を要求される制御環境にあっては、一方を運用系、他方を待機系（非運用系）とする冗長構成を持つ二重系として計算機システムを構築し、運用系に異常が発見された場合に即時待機系に切替え、継続して制御が実行される。
【０００３】
前記した二重系システムの立ち上げ時、相手制御装置が運用未確定状態で自制御装置も運用未確定状態である時、自制御装置と相手制御装置とが同時に運用系になるのを防止するため、乱数により設定した一定時間経過後に相手装置の状態を監視し、そのときの状態で自制御装置が運用系になるか否かを決定する技術が知られている。前記した技術によれば、二重系システムの立ち上げ時、相手制御装置からの情報が接続回線の断線等により通信異常等の信用できない事態を検出した場合には、現在の状態を保持するようにしている。ただし、自制御装置が非運用系の場合は両方の制御装置が非運用となるのを回避するため、自制御装置を運用系に遷移するようにしている（例えば、特許文献１参照）。
【０００４】
また、二重化システムにおいて、運用系（マスタ状態）、非運用系（スレーブ状態）の切替えをＣＰＵ（Central Processing Unit）に依存せずハードウェアで自律的に行うために、例えば、故障が無く、リセットされず、スイッチがＯＦＦ状態で、他の制御装置がスレーブ状態にあったときの自制御装置を、運用系として動作させる技術も知られている。前記した技術によれば、二重系システムのリセット時、各制御装置の出力遅延時間に差を設け、短い時間が設定された制御装置が運用系に、他方の制御装置が非運用系に遷移するようにしている（例えば、特許文献２参照）
【特許文献１】特開平７−２３０７９号公報（段落「００１２」〜「００１８」、図１、図５）
【特許文献２】特開平５−２３３５７９号公報（段落「００１０」、「００２０」、図１）
【発明の開示】
【発明が解決しようとする課題】
【０００５】
前記した特許文献１に開示された技術によれば、二重系システムの運用系を決定する際に乱数を使用しているため、どちらの制御装置が運用系になるかをユーザが予測できないという欠点を持つ。この欠点により、制御装置毎に改造を行う時の保全作業において、まだ改造を施していない制御装置がプラントの制御を行う恐れがある。また、自制御装置が非運用系である状態において、相手制御装置からの情報に基づき接続回線の断線等により通信異常等の信用できない状態を検出した場合に、両方の制御装置が非運用系となるのを回避するために自制御装置を運用系にすることになり、この場合、プラントに対して両方の制御装置から制御が行われ、プラントを誤制御する危険性を有している。
【０００６】
一方、前記した特許文献２に開示された技術によれば、二重系システムの立ち上げ時、制御装置の出力遅延時間に差を設け、短い時間が設定された制御装置が運用系に、他方が非運用系に遷移するようにしているが、前記した出力遅延時間の差と、運用系と非運用系の制御装置を電源投入等により立ち上げる時間の差とが同じになった場合、制御装置が同時に立ち上がるため両方の制御装置が運用系となり、この場合、特許文献１に開示された技術同様、制御装置が制御しているプラントに対して両方の制御装置から制御が行われ、プラントを誤制御する危険性を有している。
【０００７】
本発明は、前記した課題を解決するためになされたものであり、プラントを誤制御することなく、システムの状態に応じて最適かつ安全に二重系システムの立ち上げを実現する、二重系システムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
前記した課題を解決するために本発明は、二重系システムの運用系を決定する際に、系を構成する第１の制御装置と、第２の制御装置が持つ、相手制御装置の状態を取り込む通信制御処理において、乱数を使用することなく、相手制御装置から応答を待つ時に使用する応答待ち時間にそれぞれの制御装置間で差を設けることにより、第１の制御装置と第２の制御装置のいずれを運用系として立ち上げるかについて決定する構成としたものである。そして、この第１の制御装置および第２の制御装置は、相手制御装置へ生存確認データを送信し、その応答を受信する通信制御部と、通信制御部により、相手制御装置からの応答を、自制御装置の応答待ち時間が経過しても、受信しなかったことを検出したとき、自制御装置を運用系として設定し、自制御装置の系の状態が運用系である旨を示す応答を相手制御装置へ送信し、通信制御部により、相手制御装置から自制御装置の系の状態が運用系である旨を示す応答を受信したとき、自制御装置を非運用系として設定する信号処理部とを有する系切替え制御手段を備える。また、信号処理部は、通信制御部により、自制御装置の応答待ち時間以内に、相手制御装置からの応答を受信したとき、応答に含まれる相手制御装置に設定された応答待ち時間と、自制御装置の応答待ち時間とを比較する。そして、相手制御装置に設定された応答待ち時間が自制御装置の応答待ち時間より短い場合に自制御装置を非運用系として設定し、相手制御装置に設定された応答待ち時間が自制御装置の応答待ち時間より長い場合に自制御装置を運用系として設定する。
【発明の効果】
【０００９】
本発明によれば、プラントを誤制御することなく、システムの状態に応じて最適かつ安全に二重系システムの立ち上げを実現することができる。
【発明を実施するための最良の形態】
【００１０】
以下、本発明を実施するための最良の形態（以下、実施の形態という）を、第１の実施の形態ないし第３の実施の形態に分けて説明する。
【００１１】
＜第１の実施の形態＞
図１は、第１の実施の形態における二重系システムのシステム構成の一例を示す図である。
【００１２】
図１において、符号１０は、第１の制御装置としての制御装置、符号３０は、第２の制御装置としての制御装置を示す。また、符号１２，３２は、状態遷移テーブルを示す。この状態遷移テーブル１２,３２は、相手制御装置の状態をもとに次に遷移させる自制御装置の状態を決定するときに参照される。また、符号１１，３１は、制御装置１０，３０それぞれの信号処理部を示す。この通信処理部１１,３１は、状態遷移テーブル１２，３２に基づいた状態遷移を実行する。第１の実施の形態では、制御装置１０、制御装置３０間を接続する通信回線を、専用接続回線４０と基幹ネットワーク５０とで二重化している。
【００１３】
制御装置１０，３０が専用接続回線４０に接続されている場合、停止前に自制御装置の状態が運用系であったときは、自制御装置を優先的に運用系とする優先系として立ち上げる。一方、停止前に自制御装置の状態が非運用系であった場合は相手制御装置を運用系とする非優先系として立ち上げると判断する。なお、停止前に自制御装置の状態が運用系であったか非運用系であったか否かは、自制御装置情報記憶部１３，３３に記録される。
【００１４】
一方、制御装置１０，３０が専用接続回線４０に接続されていない場合、それぞれの制御装置１０，３０が所有するネットワーク接続監視部１５，３５が、基幹ネットワーク５０の接続状態を監視し、自制御装置の基幹ネットワーク５０への接続状態を信号処理部１１，３１へ通知する。信号処理部１１，３１は、自制御装置が基幹ネットワーク５０に接続されている場合、それぞれの制御装置１０，３０が所有する通信制御部１４，３４を使用し、基幹ネットワーク５０を介して相手制御装置と通信を行い、相手制御装置の状態を取得する。相手制御装置の状態を取得した通信制御部１４，３４は、相手制御装置の状態を信号処理部１１，３１へ通知し、それを受け取った信号処理部１１，３１は、状態遷移テーブル１２，３２に基づいた状態遷移を実行する。
【００１５】
また、信号処理部１１，３１は、自制御装置が基幹ネットワーク５０に接続されていない場合、状態遷移テーブル１２，３２（詳細は後記）に基づいた状態遷移を実行する。なお、制御装置１０,３０のハードウェア構成はここでは図示を省略するが、専用接続回線４０および基幹ネットワーク５０により通信を行うための通信インタフェースと、状態遷移テーブル１２,３２、自制御装置情報記憶部１３,３３を所定領域に備える記憶部と、各種演算処理を実行する演算処理部とを備える。演算処理部は、専用の回路により実現するようにしてもよいし、ＣＰＵ等が記憶部に記憶されたプログラムを実行することで実現するようにしてもよい。前記した通信制御部１４,３４、信号処理部１１,３１およびネットワーク接続監視部１５,３５をまとめて系切替え制御手段とする。
【００１６】
図２は、図１の状態遷移テーブルを表形式で例示した図である。以下、図２に例示する状態遷移テーブルを参照しながら、本実施の形態の二重系システムにおける系切替え制御方法について説明する。
【００１７】
図２に例示するように、自制御装置の状態が優先系で、自制御装置が専用接続回線４０に接続されている場合、自制御装置は、相手制御装置の状態を、専用接続回線４０を使用して取得する。ここで、相手制御装置の状態が非運用系である場合、自制御装置を運用系として立ち上げ、二重系システムの縮退運転を開始する（符合２１，２３参照）。また、相手制御装置の状態が運用系である場合、自制御装置を非運用系として立ち上げ、二重系システムの運転を開始する（符合２２，２４参照）。
【００１８】
一方、専用接続回線４０が切断状態であるが、基幹ネットワーク５０に接続されている場合、自制御装置は、基幹ネットワーク５０を使用した通信で相手制御装置の状態を取得する。ここで、相手制御装置から応答が無かった場合、自制御装置は、相手制御装置が非運用系であると判定し、自制御装置を運用系として立ち上げ、二重系システムの縮退運転を開始する（符合２５参照）。また、相手制御装置から応答が返ってきた場合は、相手制御装置が運用系であると判定し、自制御装置を非運用系とすることで二重系システムを縮退運転とする（符号２６参照）。ここで、相手制御装置から応答が無かった場合、自制御装置を非運用系としたのは、自制御装置を運用系としてしまうと、相手制御装置が既に運用系として立ち上がっている場合、プラントに対して両方の制御装置から制御が行われ、プラントを誤制御する可能性があるからである。
【００１９】
また、専用接続回線４０が切断状態であり、かつ、基幹ネットワーク５０も切断状態の場合、自制御装置を非運用系とすることで二重系システムを縮退運転とする（符号２７，２８参照）。この場合も、自制御装置を非運用系としたのは、自制御装置を運用系としてしまうと、相手制御装置が既に運用系として立ち上がっている場合、プラントに対して両方の制御装置から制御が行われ、プラントを誤制御する可能性があるからである。
【００２０】
なお、自制御装置の状態が非優先系である場合も、自制御装置の専用接続回線４０への接続状態、基幹ネットワーク５０の接続状態による状態遷移先は、自制御装置の状態が優先系である場合と同じであるので説明を省略する。
【００２１】
図３は、第１の実施の形態における二重系システムの動作を示すシーケンス図である。以下、図１、図２を参照しつつ、図３を用いて第１の実施の形態における二重系システムの動作を説明する。
【００２２】
＜動作概要＞
ここでは、制御装置１０の応答待ち時間を制御装置３０の応答待ち時間より短く設定することで、制御装置１０を制御装置３０よりも優先的に立ち上げる優先系として設定し、制御装置３０を非優先系として設定している。なお、ここでの応答待ち時間とは、制御装置１０，３０に電源投入あるいはリセットがされた後、この制御装置１０，３０が生存確認データを送信してから、相手制御装置からの生存確認データに対する応答データを送信する処理を実行するまでの時間を指す。
【００２３】
図３中、符号Ｍ１は、相手制御装置の生存を確認する専用の通信データ（生存確認データ）であり、符号Ｍ２はＭ１に対する専用の応答データ（応答データ）である。なお、この応答データには、対応する生存確認データのシーケンス番号が含まれ、制御装置１０，３０は、この応答データに含まれるシーケンス番号により、確かに当該応答データが相手制御装置からの応答データであることを確認するものとする。
【００２４】
また、優先系である制御装置１０の応答待ち時間は、非優先系である制御装置３０の応答待ち時間よりも短い時間に設定する。ここでは、制御装置１０，３０とも、応答データＭ２の受信処理を開始してから、この処理をタイムアウトするまでの時間（タイムアウト値）を同じ時間とし、制御装置１０，３０のうち、運用系である制御装置１０のタイムアウト回数を非運用系である制御装置３０のタイムアウト回数よりも少ない値とすることで、応答待ち時間に差を設ける。
【００２５】
すなわち、通信制御部１４，３４は、相手制御装置に生存確認データＭ１を送信し、その応答データＭ２の受信を待つ処理を行う。信号処理部１１，３１は、応答データＭ２の受信ができたか否かにより相手制御装置の生存判定を行う。ここで、通信制御部１４，３４により応答データＭ２の受信待ちのタイムアウトをｎ回検出したとき、相手制御装置を非運用系と判定し、自制御装置を運用系に決定する。
この後、通信制御部１４，３４を介して、相手制御装置からの生存確認データＭ１の受信を待つ処理を行う。そして、相手制御装置から、生存確認データＭ１を受信すると、信号処理部１１，３１は、この生存確認データＭ１に対する自制御装置の状態を示した応答データＭ２を相手制御装置へ送信し、自制御装置を運用系に決定したことを相手制御装置へ通知する。このような応答データＭ２を受信した相手制御装置は、自身を非運用系として決定する。
【００２６】
＜動作詳細＞
図３において、まず、優先系とした制御装置１０と、非優先系とした制御装置３０の電源を同時に投入して両方を同時に立ち上げた場合（Ｓ１０，Ｓ３０：電源投入）、制御装置１０と制御装置３０は、ともに相手制御装置が運用系として立ち上がっているか否かを確認するため、生存確認データＭ１の送信を実行し（Ｓ１１，Ｓ３１）、その応答データＭ２の受信処理（受信待ちの処理）を実行する。具体的には、信号処理部１１，３１は、生存確認データＭ１を生成して通信制御部１４，３４に引渡し、通信制御部１４，３４は、その生存確認データＭ１を基幹ネットワーク５０へ送信する。
【００２７】
なお、制御装置１０，３０の信号処理部１１，３１は前記した応答待ち時間が経過しないと通信制御部３４を起動させ、応答データＭ２の送信処理を実行させない。つまり、制御装置１０，３０は、応答待ち時間が経過しないと、相手制御装置から生存確認データＭ１を受信しても、これに対する応答データＭ２を送信しない。よって、制御装置１０，３０は、生存確認データＭ１に対する応答データＭ２のタイムアウトを検出し、信号処理部１１，３１へ報告する（Ｓ１２，Ｓ３２）。
【００２８】
続いて、信号処理部１１，３１は、通信制御部１４，３４からタイムアウト報告を受け、相手制御装置からの応答が無いことを認識する（Ｓ１３，Ｓ３３）。つまり、１回目のタイムアウトを認識する。
【００２９】
次に、再度、制御装置１０と制御装置３０は、生存確認データＭ１の送信処理を実行し、その応答データＭ２の受信処理を実行する。そして、前記したＳ１２，Ｓ３２と同様に通信制御部１４，３４は、応答データＭ２の受信処理のタイムアウトを検出し、信号処理部１１，３１へ報告する（Ｓ１４,Ｓ３４）。信号処理部１１,３１は、通信制御部１４，３４からタイムアウト報告を受け、相手制御装置から応答が無いことを認識する（Ｓ１５，Ｓ３５）。つまり、２回目のタイムアウトを認識する。
【００３０】
次に、再度、制御装置１０と制御装置３０の信号処理部１１，３１は、前記と同様の手順により３回目のタイムアウト報告を受ける（Ｓ１６,Ｓ３６）。
【００３１】
以上により、制御装置１０は、タイムアウトを３回認識したため、つまり、生存確認データＭ１を合計３回送信し、応答データＭ２の応答を３回待ったが、制御装置３０から応答データＭ２が送信されてこなかったため、応答待ち時間が経過したと判断する。そして、制御装置１０は、制御装置３０を非運用系と判定し（Ｓ１７）、生存確認データＭ１の送信を停止して、自制御装置１０を運用系に決定する。そして、応答データＭ２の送信処理を起動させ（Ｓ１８）、制御装置３０からの生存確認データＭ１を受信する処理を実行する。また、制御装置３０の信号処理部３１は、３回目のタイムアウト報告を受けると、相手制御装置からの応答無しを認識する（Ｓ３７）。
【００３２】
前記したＳ１８における処理の詳細を、図４を用いて詳細に説明する。図４に示すように、制御装置１０の信号処理部１１は、応答待ち時間が経過したことを認識すると（つまり、タイムアウトを３回認識すると）、通信制御部１４が備える応答データＭ２の送信処理を起動する（Ｓ１８）。ここで、応答データＭ２とは、自制御装置の系の状態（ここでは、運用系）を、相手装置からの生存確認データＭ１に対する応答として送信するデータである。また、応答データＭ２の送信処理は、相手制御装置（制御装置３０）から送信される生存確認データＭ１の受信を待って（Ｓ１８１）、応答データＭ２を送信する処理である（Ｓ１８２）。
なお、ここでは説明を省略するが、制御装置３０の信号処理部３１も、同様に応答待ち時間が経過したことを認識すると（つまり、タイムアウトを１０回認識すると）、通信制御部３４が備える応答データＭ２の送信処理を起動する。
【００３３】
図３の説明に戻る。図３のＳ１７において、制御装置１０は、自制御装置を運用系と決定し、立ち上げようとするが、ここで、制御装置１０は、相手制御装置（制御装置３０）が運用系として立ち上がっているか否かを確認する必要がある。そこで、再度、相手制御装置生存確認判定処理のリトライ処理を実行する（Ｓ１９）。つまり、制御装置１０は、再度、生存確認データＭ１を合計３回送信する。ここでのリトライ処理により相手制御装置（制御装置３０）が非運用系であることが確認できると、自制御装置（制御装置１０）は、運用系として立ち上げる（Ｓ２０）。
【００３４】
一方、制御装置３０は、相手制御装置（制御装置１０）が運用系として立ち上がっているか否かを判定するため、生存確認データＭ１を送信し（Ｓ３８）、その応答データＭ２を待つ。この段階で、制御装置１０の応答データＭ２送信処理は起動されているため、制御装置３０は、応答データＭ２を受信し（Ｓ３９）、その受信データＭ２から制御装置１０が運用系であることを認識する（Ｓ４０）。そして、制御装置３０は、自身を非運用系に決定する。
【００３５】
前記した第１の実施の形態によれば、優先系とした制御装置１０と非優先系とした制御装置３０を同時に立ち上げても、応答待ち時間の短い制御装置１０を運用系とし、応答待ち時間が長い制御装置３０を非運用系として設定し、制御することで、二重系システムを安全な状態に維持することができる。
【００３６】
＜第２の実施の形態＞
図５は、第２の実施の形態における二重系システムの動作を示すシーケンス図である。以下、図１〜図４を参照しつつ、図５を用いて第２の実施の形態における二重系システムの動作を説明する。二重系システムのシステム構成は、図１に示す第１の実施の形態と同じ構成を用いることとする。ここでも、制御装置１０を優先系とし、制御装置３０を非優先系とする。また、制御装置１０の応答待ち時間を、制御装置３０の応答待ち時間よりも短く設定しておく。具体的には、制御装置１０が応答データ受信のタイムアウトを３回認識したとき、応答データＭ１の送信処理を実行し、制御装置３０が、応答データ受信のタイムアウトを１０回認識したとき、応答データＭ１の送信処理を実行するものとする。
【００３７】
本実施の形態は、制御装置１０，３０の電源投入等により立ち上げる時間差が、制御装置１０と制御装置３０の応答待ち時間差（タイムアウト７回分）と同じ場合においても、応答待ち時間の短い制御装置１０を運用系として決定することを特徴とする。
【００３８】
まず、制御装置３０の電源が投入されてから（Ｓ３００）、応答待ち時間差と同じ時間が経過した後に、制御装置１０の電源が投入されたとする（Ｓ１００）。そして、前記した図３のＳ１１，Ｓ３１と同様に、制御装置１０と制御装置３０は、相手制御装置が運用系として立ち上がっているか否かを確認するために生存確認データＭ１を送信する（Ｓ１０１，３０１）。そして、その応答データＭ２を待つ。次に、前記した第１の実施の形態と同様に、制御装置１０，３０の信号処理部１１，３１は、タイムアウト報告を受け、相手制御装置から応答が無かったことを制御装置１０は３回（Ｓ１０２〜Ｓ１０４）、制御装置３０は１０回認識する（Ｓ３０２〜Ｓ３０４）。
【００３９】
制御装置１０は、生存確認データＭ１を合計３回送信し、応答データＭ２の応答を３回待ったが、制御装置３０から応答データＭ２が送信されてこなかったため、相手制御装置（制御装置３０）を非運用系と判定する（Ｓ１０５）。そして、前記した図４のＳ１８と同様に、応答データＭ２の送信処理を起動する（Ｓ１０６）。一方、制御装置３０も、生存確認データＭ１を合計１０回送信し、応答データＭ２の応答を１０回待ったが、制御装置１０から応答データＭ２が送信されてこなかったため、相手制御装置を非運用系と判定する（Ｓ３０５）。そして、前記した図４のＳ１８と同様に、応答データＭ２の送信処理を起動する（Ｓ３０６）。
【００４０】
次に、制御装置１０，３０は相手制御装置が運用系として立ち上がっているか否かを判定するため、再度、生存確認データＭ１を送信するリトライ処理を実行する（Ｓ１０７，３０７）。すなわち、制御装置１０，３０は、生存確認データＭ１を送信し（Ｓ１０８,Ｓ３０８）、その応答データＭ２を待つ。ここでは、既に制御装置１０，３０の応答データＭ２送信処理は起動されているため、お互いに応答データＭ２を送信する。なお、この応答データＭ２には、自身の制御装置に設定された応答待ち時間を含める。
【００４１】
制御装置１０,３０は、相手制御装置からの応答データＭ２を受信すると、この応答データＭ２に含まれる相手制御装置の応答待ち時間を取得し、この相手制御装置の応答待ち時間と、自制御装置情報記憶部１３，３３にあらかじめ格納されてある自制御装置の応答待ち時間とを比較する（Ｓ１０９,Ｓ３０９）。
【００４２】
ここで、制御装置１０は、応答待ち時間を比較した結果、自制御装置の応答待ち時間の方が短いことを認識すると、自制御装置と相手制御装置との立ち上げの時間差が、制御装置３０の応答時間と制御装置１０の応答時間の差と等しい場合の立ち上げと判定し、信号処理部１１による制御の下、自制御装置を運用系として立ち上げる。つまり、リトライした結果、相手制御装置から応答があり、かつ伝文（応答データＭ２）内に設定された相手制御装置の応答待ち時間が自制御装置の応答待ち時間よりも長いとき、自制御装置を運用系として立ち上げる（Ｓ１１０）。
【００４３】
また、制御装置３０は、応答待ち時間を比較した結果、自制御装置の応答待ち時間の方が長いことを認識すると、自制御装置と相手制御装置との立ち上げの時間差が、制御装置３０の応答時間と制御装置１０の応答時間の差と等しい場合の立ち上げと判定し、制信号処理部３１による制御の下、自制御装置３０を非運用系として立ち上げる。つまり、リトライした結果、相手制御装置から応答があり、かつ伝文（応答データＭ２）内に設定された相手制御装置（制御装置１０）の応答待ち時間が自制御装置（制御装置３０）の応答待ち時間よりも短いとき、自制御装置を非運用系として立ち上げる（Ｓ３１０）。
【００４４】
前記した第２の実施の形態によれば、優先系とした制御装置１０を非優先系とした制御装置３０の後、特に、制御装置１０と制御装置３０の応答時間差と同じ時間経過後に立ち上げた場合でも、応答待ち時間が短い制御装置１０が運用系となり、応答待ち時間が長い制御装置３０が非運用系となる。したがって、二重系システムを安全な状態に設定することができる。
【００４５】
＜第３の実施の形態＞
図６は、第３の実施の形態における二重系システムの動作を示すシーケンス図である。以下、図１〜図５を参照しつつ、図６を用いて第３の実施の形態における二重系システムの動作を説明する。二重系システムのシステム構成は、図１に示す第１の実施の形態と同じ構成を用いることとする。第３の実施の形態は、応答時間の短い制御装置１０が電源未投入、故障等の理由で、運用系にならならなかった場合、応答時間の長い制御装置３０が運用系になることを特徴とする。
【００４６】
制御装置３０が電源投入等により立ち上がると（Ｓ６００）、制御装置３０は、相手制御装置（制御装置１０）が運用系として立ち上がっているか否かを判定するため、生存確認データＭ１を送信し（Ｓ６０１）、その応答データＭ２を待つ。そして、制御装置３０は、前記した実施の形態と同様に、相手制御装置から応答が無かったことを合計１０回認識する（Ｓ６１２〜Ｓ６１４）。そして、制御装置３０は、相手制御装置（制御装置１０）が非運用系と判定する（Ｓ６１５）。そして、応答データＭ２の送信処理を起動し（Ｓ６１６）、前記したリトライ処理を実行する（Ｓ６１７）。つまり、再度、相手制御装置（制御装置１０）へ生存確認データを送信する。そして、リトライ処理に基づき、Ｓ６１８,Ｓ６１９の処理を実行した後、１０回目のタイムアウトの報告を受けたとき（Ｓ６２０）、制御装置３０は、相手制御装置が非運用系であると判定する（Ｓ６２１）。そして、制御装置３０は、自制御装置を運用系に決定し、運用系として立ち上がる。
【００４７】
前記した第３の実施の形態によれば、優先系とした制御装置１０が運用系とならない場合においても、非優先系とした制御装置３０を運用系とすることで、二重系システムを安全な状態とすることができる。
【００４８】
以上説明のように、本実施の形態によれば、二重系システムの運用系を決定する際に、乱数を使用しないため、二重系システムを構成するいずれの制御装置が運用系になるか明確になる。したがって、ユーザが制御装置毎に改造を行う時の保全作業が容易になる。また、二重系システムを構成する制御装置の立ち上げ時間の差がいかなる状態にあっても、二重系システムを構成する制御装置の１つを運用系とし、他方を非運用系とすることで、二重系システムを安全な状態に設定することができる。さらに、接続回線４０が故障等の原因により一方の制御装置が接続回線４０から切り離された状態においては、両方の制御装置１０,３０を非運用系とすることにより、両系が運用系となり、プラントに対して両方の制御装置から制御が行われる事態は回避される。したがって、プラントの誤制御を防止することができる。
【００４９】
さらに、前記した実施の形態では、二重系システムのみ例示したが、制御装置を３以上とする多重系システムにも同様に応用が可能である。また、前記した実施の形態によれば、いずれも相手制御装置に生存確認データＭ１を送信する回数を、優先系とした制御装置１０は３回、非優先系とした制御装置３０は１０回としたが、優先系とした制御装置１０の応答待ち時間を非優先系とした制御装置３０よりも短く設定すれば、この回数は任意である。
【図面の簡単な説明】
【００５０】
【図１】本実施の形態における二重系システムのシステム構成の一例を示す図である。
【図２】図１の状態遷移テーブルを表形式で例示した図である。
【図３】第１の実施の形態における二重系システムの動作を示すシーケンス図である。
【図４】本実施の形態における、応答データの送信処理手順を示す図である。
【図５】第２の実施の形態における二重系システムの動作を示すシーケンス図である。
【図６】第３の実施の形態における二重系システムの動作を示すシーケンス図である。
【符号の説明】
【００５１】
１０  制御装置（第１の制御装置）
１１,３１  信号処理部
１２,３２  状態遷移テーブル
１３,３３  自制御装置情報記憶部
１４,３４  通信制御部
１５,３５  ネットワーク接続監視部
３０  制御装置（第２の制御装置）
４０  接続回線
５０  基幹ネットワーク
Ｍ１  生存確認データ
Ｍ２  応答データ
【図１】
0004630234.tif 000002
【図２】
0004630234.tif 000003
【図３】
0004630234.tif 000004
【図４】
0004630234.tif 000005
【図５】
0004630234.tif 000006
【図６】
0004630234.tif 000007