(57)【特許請求の範囲】
【請求項１】
ネットワークを介して１または複数の機器から監視データを収集し、該監視データに基づいて制御を行う制御システムにおいて、
第１および第２の制御装置と、
前記第１の制御装置に接続された第１の中継装置と、
前記第２の制御装置に接続された第２の中継装置と、
前記第１の中継装置と前記第２の中継装置の通信を仲介する中継装置間通信手段と、
前記第１の制御装置と前記第２の制御装置の通信を仲介する制御装置間通信手段と、
を有し、
前記第１の制御装置および前記第１の中継装置の組と、前記第２の制御装置および前記第２の中継装置の組は、一方の組が稼働系、他方の組が待機系となり、
前記第１および第２の中継装置の各々は、前記１または複数の機器からネットワークを介して監視データを収集し、この監視データを前記中継装置間通信手段を介した通信により等値化し、等値化済の監視データを各々の接続先の制御装置へ転送し、
前記第１の制御装置と前記第２の制御装置のうち稼働系となっている方は、接続先の中継装置から受信した等値化済の監視データを用いて前記制御を行い、
前記稼働系の制御装置は、稼働系および待機系の切り替えを行う場合に、前記制御装置間通信手段を介して前記待機系の制御装置に稼働系への切り替え指示を送信し、
前記制御装置間通信手段を介した通信が通信不能状態となったことを前記待機系の制御装置が検知した場合に、前記待機系の中継装置は、前記中継装置間通信手段を経由した通信により取得した情報に基づいて、前記待機系の制御装置による待機系から稼働系への切り替えを抑制する制御を行うことを特徴とする制御システム。
【請求項２】
前記制御装置間通信手段を介した通信が通信不能状態となったことを前記待機系の制御装置が検知した場合に、前記待機系の中継装置は、前記中継装置間通信手段を介して状態問い合わせを前記稼働系の中継装置に送り、前記稼働系の中継装置は、この状態問い合わせに応答して稼働系の状態を示す状態データを前記中継装置間通信手段を介して前記待機系の中継装置に送り、前記待機系の中継装置は、前記状態データに基づいて、前記待機系の制御装置による待機系から稼働系への切り替えを抑制する制御を行うことを特徴とする請求項１に記載の制御システム。
【請求項３】
前記待機系の中継装置は、前記制御装置間通信手段を介した通信が通信不能状態となったことを前記待機系の制御装置が検知した場合に、前記状態問い合わせを前記稼働系の中継装置に繰り返し送り、所定の制限時間内に前記稼働系の中継装置から稼働系から待機系への切り替えを示す状態データを受け取らなかった場合に、前記待機系の制御装置による稼働系への切り替えを抑制することを特徴とする請求項２に記載の制御システム。
【請求項４】
前記稼働系の中継装置は、稼働系の状態を示す状態データを前記中継装置間通信手段を介して前記待機系の中継装置に定期的にまたは非定期的に繰り返し送り、
前記待機系の中継装置は、前記制御装置間通信手段を介した通信が通信不能状態となったことを前記待機系の制御装置が検知した後、前記稼働系の中継装置から稼働系から待機系への切り替えを示す状態データを受け取らなかった場合に、前記待機系の制御装置による稼働系への切り替えを抑制することを特徴とする請求項１に記載の制御システム。
【請求項５】
ネットワークを介して１または複数の機器から監視データを収集し、該監視データに基づいて制御を行う制御システムにおいて、
第１および第２の制御装置と、
前記第１の制御装置に接続された第１の中継装置と、
前記第２の制御装置に接続された第２の中継装置と、
前記第１の中継装置と前記第２の中継装置の通信を仲介する中継装置間通信手段と、
前記第１の制御装置と前記第２の制御装置の通信を仲介する制御装置間通信手段と、
を有し、
前記第１の制御装置および前記第１の中継装置の組と、前記第２の制御装置および前記第２の中継装置の組は、一方の組が稼働系、他方の組が待機系となり、
前記第１および第２の中継装置の各々は、前記１または複数の機器からネットワークを介して監視データを収集し、この監視データを前記中継装置間通信手段を介した通信により等値化し、等値化済の監視データを各々の接続先の制御装置へ転送し、
前記第１の制御装置と前記第２の制御装置のうち稼働系となっている方は、接続先の中継装置から受信した等値化済の監視データを用いて前記制御を行い、
稼働系および待機系の切り替えを行う場合には、当該切り替えを示す情報を、前記制御装置間通信手段を介した前記第１および第２の制御装置間の通信と、前記中継装置間通信手段を介した前記第１および第２の中継装置間の通信の両方を通じて前記稼働系から前記待機系に送信し、
前記待機系の制御装置は、前記制御装置間通信手段を介した前記第１および第２の制御装置間の通信と、前記中継装置間通信手段を介した前記第１および第２の中継装置間の通信の少なくとも一方を通じて前記稼働系の前記待機系への切り替えを検知した場合に、前記待機系の制御装置および前記待機系の中継装置の稼働系への切り替え制御を行うことを特徴とする制御システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、稼働系と待機系の制御装置を含む制御システム、その制御装置および中継装置に関する。
【背景技術】
【０００２】
工場や各種プラント等の産業施設においては、各種操業を制御するために制御システムと呼ばれる通信システムが構築されることが多い。制御システムには、産業施設内に設置されたセンサからの監視データの収集し、その収集結果に応じて電動機等の駆動制御を行う制御装置が含まれている。このような制御装置としては、ＤＣＳ（Distributed Control System：分散型制御システム或いは分散型制御装置）やプログラマブルロジックコントローラ（以下、ＰＬＣ）が用いられる。一般的なＦＡ（Factory Automation）システムでは制御装置としてＰＬＣが用いられることが多く、高信頼性を要求されるプラント設備では制御装置としてＤＣＳが用いられることが多い。ＤＣＳはＰＬＣに比較して信頼性が高いからである。上記センサのように制御装置による監視データの収集対象となる装置や電動機などの制御対象装置（以下、これらの装置をＩＯスレーブ装置という）は、ＩＯネットワークと呼ばれるネットワーク（或いはシリアルバス）に接続される。制御装置は、中継装置（例えば、ゲートウェイ装置）等のネットワーク装置を介してＩＯネットワークに接続される。
【０００３】
この種の制御システムでは、制御装置等の故障に起因する操業停止を回避するために、制御装置の二重化および監視データのデータ伝送経路の二重化が行われることが一般的である。制御装置の二重化とは、２台の制御装置を設け、その一方を稼働系、他方を待機系として動作させることを言う。これら２台の制御装置の各々は、監視データを収集し、収集した監視データ（或いは収集した監視データと過去の演算結果）を用いて機器制御のための制御データを求める演算を実行する。稼働系の制御装置は演算により得られた制御データに基づく制御を行い、待機系の制御装置は、演算により得られた制御データを保持して稼働系の制御装置の停止に備える。そして、待機系の制御装置は、稼働系が停止するとき（或いは停止したとき）には、稼働系として動作し、機器制御を継続する。ここで、稼働系の制御装置の停止の具体例としては、何らかの故障や不具合の発生に起因する予期せぬ停止や、保守メンテナンス等による予め計画された停止などが考えられる。待機系の制御装置はこれら２種類の停止の両方に備える。データ伝送経路の二重化とは、例えばＩＯスレーブ装置から二重化された制御装置の一方へ至るデータ伝送経路と、他方へ至るデータ伝送経路とを各々別個に設けることを言う。以下では、制御装置とデータ伝送経路の両方が二重化された制御システムのことを「冗長化制御システム」と呼ぶ。
【０００４】
図９は、冗長化制御システムの構成例を示す図である。この制御システムは、制御装置１０Ａおよび制御装置１０Ｂの２台の制御装置と、ネットワーク装置２０Ａおよびネットワーク装置２０Ｂの２台のネットワーク装置とを有している。そして、この制御システムでは、制御装置１０Ａと制御装置１０Ｂのうちの一方が稼働系となり、他方は待機系となって稼働系の停止に備える。制御装置１０Ａおよび制御装置１０Ｂにはその稼働状態等の監視を行うための監視システム５０が接続されている。また、制御装置１０Ａはネットワーク装置２０Ａを介してＩＯネットワーク３０Ａに接続されており、制御装置１０Ｂはネットワーク装置２０Ｂを介してＩＯネットワーク３０Ｂに接続されている。ＩＯスレーブ装置Ｓ１〜Ｓｎの各々は、ＩＯネットワーク３０ＡおよびＩＯネットワーク３０Ｂの両方に接続されている。
【０００５】
図９に示すシステムでは、制御装置１０Ａと制御装置１０Ｂの各々は、他方の状態監視を行えるようにするために、等値化ケーブル４０により接続されている。前述したように待機系の制御装置は、稼働系の制御装置について故障等に起因する予期せぬ停止や保守メンテナンス等の計画的な停止などに備えるのであるが、以下では故障により停止する場合を例にとって説明する。制御装置１０Ａと制御装置１０Ｂの各々は、自装置の状態（故障の有無）を示す状態データを等値化ケーブル４０を介して他方に送信する。例えば、制御装置１０Ａが稼働系となっている場合、待機系である制御装置１０Ｂは等値化ケーブル４０を介して制御装置１０Ａから送信されてくる状態データを参照して制御装置１０Ａにおける故障発生を監視する。そして、制御装置１０Ｂは、等値化ケーブル４０を介して受信した状態データから制御装置１０Ａの故障発生を検出すると、以降、稼働系としての動作を開始する。一方、制御装置１０Ａは制御装置１０Ｂが稼働系としての動作を開始したことを等値化ケーブル４０を介した通信により検出し、以降、待機系として動作する。
【０００６】
冗長化制御システムでは、稼働系の制御装置に故障が発生しても稼働系／待機系の切り替えを行うことで、ＩＯスレーブ装置Ｓ１〜Ｓｎの各々からのデータ収集、その収集結果に応じた演算、およびその演算結果に応じた機器の制御を継続することができる。しかし、単に稼働系／待機系の切り替えを行うだけでは、その切り替え前後で上記演算結果が突変するなどの不具合が発生する場合がある。これは、ＩＯスレーブ装置Ｓ１〜Ｓｎの各々から制御装置１０Ａと制御装置１０Ｂに送られる監視データが完全に同一であるとは限らないことに起因している。
【０００７】
このような不具合の発生を回避するため、冗長化制御システムでは、ＩＯスレーブ装置Ｓ１〜Ｓｎの各々から各制御装置へ送信されてくる監視データの等値化や、演算結果の等値化といった処理を各制御装置に実行させることが一般的である。監視データの等値化とは、稼働系の制御装置がネットワーク装置経由で受信した監視データを等値化ケーブル４０を介して待機系の制御装置へ送信し、当該監視データで待機系の制御装置がネットワーク経由で受信した監視データを上書きすることを言う。また、演算結果の等値化とは、稼働系における演算結果を示すデータを等値化ケーブル４０を介して待機系の制御装置に送信し、当該データで待機系における演算結果を上書きすることを言う。稼働系の制御装置は、待機系での演算結果の等値化に用いられた制御データをネットワーク装置、ＩＯネットワークを介してＩＯスレーブ装置Ｓ１〜Ｓｎに供給し、制御対象装置の制御を行う。一方、待機系の制御装置は、等値化された制御データを保持し、系の切り替えに備える。このような冗長化制御システムおよび等値化に関する従来技術の一例としては特許文献１に開示の技術が挙げられる。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２０１３−１５２６３１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
近年では、制御システムに含まれるＩＯスレーブ装置の多様化や数の増加、ＩＯネットワークにおけるデータ伝送速度の向上に伴い、単位時間当たりにネットワーク装置経由で制御装置に送信されてくる監視データのデータ量が大幅に増加している。ネットワーク装置経由で制御装置が受信する監視データのデータ量が増加すると、それら監視データについての等値化処理の処理負荷が高くなり、制御装置の本来の役割である機器制御のための演算の実行やその演算結果に応じた機器制御に充分なリソースを割り当てることが困難になる場合がある。また、ネットワーク装置経由で制御装置が受信する単位時間当たりの監視データのデータ量が増えると、稼働系の故障発生時に稼働系／待機系の切り替えを迅速に行えなくなるといった問題もある。前述したように、ネットワーク装置経由で制御装置が受信する監視データについての等値化が完了した後でなければ、演算結果の突変の発生を回避しつつ稼働系／待機系の切り替えを行うことはできないからである。
【００１０】
また、上述した従来の冗長化制御システムは、等値化ケーブル４０を介した通信が通信不能状態となった場合に、待機系の制御装置が稼働系の制御装置の状態監視を行うことができなくなる問題がある。ここで、通信不能状態とは、等値化ケーブル４０を介した制御装置１０Ａおよび１０Ｂ間の通信が正常に行われない状態をいう。そのような等値化ケーブル４０を介した通信が通信不能状態となる原因として、２つの原因が考えられる。１つは稼働系に故障が発生し、この故障に起因して待機系への状態データの送信が途絶えている場合である。もう１つは、稼働系に故障は発生していないが、等値化ケーブル４０の断線、等値化ケーブル４０のプラグの制御装置からの脱落、ノイズ等の影響による通信品質の著しい低下等により状態データが待機系の制御装置に届かなくなっている場合である。前者の場合、故障の程度によっては、稼働系の制御装置が当該制御装置および当該制御装置に接続されたネットワーク装置を稼働系から待機系へ切り替える可能性がある。この場合、待機系の制御装置は、当該制御装置および当該制御装置に接続されたネットワーク装置を待機系から稼働系へ切り替える必要がある。しかし、後者の場合に待機系の制御装置がこのような待機系から稼働系への切り替えを行うと、２つの系統の制御装置およびネットワーク装置の両方が稼働系となり、両方の稼働系によってＩＯスレーブ装置Ｓ１〜Ｓｎの制御が行われ、ＩＯスレーブ装置Ｓ１〜Ｓｎの誤動作を招く虞がある。
【００１１】
特許文献１は、この問題に鑑み、次のような冗長化制御システムを開示している。まず、冗長化制御システムを構成する２つの制御装置は、トラッキングバスを介して互いに接続されている。各制御装置は、定期的に自系の状態を判定し、状態判定結果をトラッキング信号としてトラッキングバスを介して他の制御装置に送信する。各制御装置は、トラッキングバスを介してトラッキング信号が受信されない場合、トラッキング信号の伝送路をトラッキングバスから制御用伝送路に切り替える。この制御用伝送路は、エンジニアリング装置が２台の制御装置に指令を送るために使用する伝送路である。待機系の制御装置は、トラッキング信号の伝送路を制御用伝送路に切り替えた後も稼働系からトラッキング信号が受信されない場合に、稼働系に異常が発生したとみなし、自系を稼働系に切り替える。
【００１２】
この特許文献１に開示の技術によれば、トラッキングバスを介した通信が通信不能状態になった場合、待機系の制御装置は、制御用伝送路を介して稼働系の制御装置からトラッキング信号を受け取ることができる。従って、待機系の制御装置は、トラッキングバスを介した通信が通信不能状態になっても、稼働系の状態監視を継続し、稼働系に真に故障が発生した場合に、待機系から稼働系への切り替えを行うことができる。従って、２つの系統の両方が稼働系となるのを回避することができる。
【００１３】
しかし、この特許文献１に開示の技術は、稼働系の制御装置に何等かの故障が発生してトラッキングバスを介した通信が途絶えている場合に、この故障した稼働系の制御装置に制御用伝送路を介したトラッキング信号の送信を強いることになるので、当該稼働系の制御装置に与える負担が大きいという問題がある。
【００１４】
稼働系の制御装置に大きな負担を与えないために、トラッキングバスを介した通信が通信不能状態になったことを検知した待機系の制御装置が待機系から稼働系への切り替えを行うことも考えられる。しかし、トラッキングバスを介した通信が通信不能状態になったことを検知した待機系の制御装置が待機系から稼働系への切り替えを行うとなると、単にトラッキングバスを介した通信が通信不能状態になっているだけであって、稼働系において待機系への切り替えが行われない場合に、稼働系が重複して発生する問題が起こり得る。
【００１５】
この発明は以上に説明した事情に鑑みて為されたものであり、その目的は、冗長化制御システムにおいて、ネットワーク経由で各制御装置に転送されてくる監視データのデータ量が増加しても、制御装置本来の演算の実行に何ら支障を発生させず、かつ、制御装置間の通信が通信不能状態になった場合に不要に待機系が稼働系に切り替えられるのを抑制することにある。
【課題を解決するための手段】
【００１６】
上記課題を解決するために、この発明は、ネットワークを介して１または複数の機器から監視データを収集し、該監視データに基づいて制御を行う制御システムにおいて、第１および第２の制御装置と、前記第１の制御装置に接続された第１の中継装置と、前記第２の制御装置に接続された第２の中継装置と、前記第１の中継装置と前記第２の中継装置の通信を仲介する中継装置間通信手段と、前記第１の制御装置と前記第２の制御装置の通信を仲介する制御装置間通信手段と、を有し、前記第１の制御装置および前記第１の中継装置の組と、前記第２の制御装置および前記第２の中継装置の組は、一方の組が稼働系、他方の組が待機系となり、前記第１および第２の中継装置の各々は、前記１または複数の機器からネットワークを介して監視データを収集し、この監視データを前記中継装置間通信手段を介した通信により等値化し、等値化済の監視データを各々の接続先の制御装置へ転送し、前記第１の制御装置と前記第２の制御装置のうち稼働系となっている方は、接続先の中継装置から受信した等値化済の監視データを用いて前記制御を行い、前記制御装置間通信手段を介した通信が通信不能状態となったことを前記待機系の制御装置が検知した場合に、前記待機系の中継装置は、前記中継装置間通信手段を経由した通信により取得した情報に基づいて、前記待機系の制御装置による待機系から稼働系への切り替えを抑制する制御を行うことを特徴とする制御システムを提供する。
【００１７】
この制御システムにおいては、各機器から第１および第２の制御装置へ送信される監視データの等値化は第１および第２の中継装置によって行われる。したがって、監視データのデータ量が増加しても、監視データの等値化によって第１および第２の制御装置の各々の処理負荷が過剰に高くなることはなく、第１および第２の制御装置の各々における上記演算の実行に何らの支障が生じることはない。また、第１および第２の制御装置の各々には第１および第２の中継装置により等値化済のデータが与えられる。このため、第１および第２の制御装置の一方を稼働系として機能させ、他方を待機系として機能させるとともに、稼働系の停止に起因して稼働系／待機系の切り替えを行う場合に監視データの等値化完了を待つ必要はなく、稼働系／待機系の切り替えを迅速に行うことができる。
【００１８】
また、この制御システムにおいて、制御装置間通信手段を介した通信が通信不能状態となったことを待機系の制御装置が検知した場合に、待機系の中継装置は、中継装置間通信手段を経由した通信により取得した情報に基づいて、待機系の制御装置による待機系から稼働系への切り替えを抑制する制御を行う。従って、制御装置間通信手段を介した通信が通信不能状態となることにより稼働系と待機系との切り替えが不要に行われるのを抑制することができる。また、この制御装置間通信手段を介した通信は、第１および第２の中継装置間で行われるため、第１および第２の制御装置の稼働系／待機系の切り替え制御のための通信の負担を軽くすることができる。
【発明の効果】
【００１９】
以上説明したように、この発明によれば、冗長化制御システムにおいて、ネットワーク経由で各制御装置に転送される監視データのデータ量が増加しても、制御装置本来の演算の実行に何ら支障を発生させず、かつ稼働系／待機系の切り替えスピードの低下を招かないようにすることが可能になる。また、この発明によれば、制御装置間通信手段を介した通信が通信不能状態となっても、第１および第２の制御装置の負担を増加させることなく、第１の制御装置および第１の中継装置の組と第２の制御装置および第２の中継装置の組の両方が稼働系となるのを回避し、稼働系／待機系切り替え制御を適切に行うことができる。
【図面の簡単な説明】
【００２０】
【図１】この発明の一実施形態である制御システム１Ａの構成例を示す図である。
【図２】同制御システム１Ａに含まれる制御装置１００の構成例を示す図である。
【図３】同制御システム１Ａに含まれるネットワーク装置２００の構成例を示す図である。
【図４】同ネットワーク装置２００の動作を示すフローチャートである。
【図５】同制御装置１００の動作を示すフローチャートである。
【図６】同制御システム１Ａにおいて等値化バス４０を介した通信が通信不能状態になった場合の動作を示すシーケンス図である。
【図７】同制御システム１Ａにおいて等値化ケーブル４０を介した通信により行われる稼働系／待機系切り替え制御を示すシーケンス図である。
【図８】この発明の他の実施形態である制御システムにおける稼働系／待機系切り替え制御を示すシーケンス図である。
【図９】制御システムの従来例を示す図である。
【発明を実施するための形態】
【００２１】
以下、図面を参照しつつ本発明の実施形態を説明する。
図１はこの発明の一実施形態である制御システム１Ａの構成例を示す図である。
この制御システム１Ａは、前掲図９の制御システムと同様、産業施設内に敷設された制御システムである。図１では図９におけるものと同一の構成要素には同一の符号が付されている。本実施形態による制御システム１Ａは、以下の３つの点が図９に示す従来の冗長化制御システムと異なる。第１に、制御システム１Ａは、制御装置１０Ａおよび制御装置１０Ｂの代わりに制御装置１００Ａおよび制御装置１００Ｂを有する。第２に、制御システム１Ａは、ネットワーク装置２０Ａおよびネットワーク装置２０Ｂの代わりにネットワーク装置２００Ａおよびネットワーク装置２００Ｂを有する。そして、第３に、制御システム１Ａは、ネットワーク装置２００Ａとネットワーク装置２００Ｂを接続する等値化ケーブル４００を有する。
【００２２】
ネットワーク装置２００Ａは、制御装置１００ＡとＩＯネットワーク３０Ａとの間の通信を中継する中継装置であり、ネットワーク装置２００Ｂは、制御装置１００ＢとＩＯネットワーク３０Ｂとの間の通信を中継する中継装置である。等値化ケーブル４００は、ネットワーク装置２００Ａおよび２００Ｂ間の通信を仲介する中継装置間通信手段の役割を果たす。ネットワーク装置２００Ａおよびネットワーク装置２００Ｂは、図９におけるネットワーク装置２０Ａやネットワーク装置２０Ｂと同様にゲートウェイ装置である。図１に示す制御システム１Ａでは、ＩＯスレーブ装置Ｓ１〜Ｓｎの各々から送信された監視データは、ＩＯネットワーク３０Ａおよびネットワーク装置２００Ａを介して制御装置１００Ａに伝送されるとともに、ＩＯネットワーク３０Ｂおよびネットワーク装置２００Ｂを介して制御装置１００Ｂに伝送される。制御装置１００Ａおよび制御装置１００Ｂの各々は、図９における制御装置１０Ａおよび制御装置１０Ｂと同様に、ＩＯスレーブ装置Ｓ１〜Ｓｎから収集した監視データおよび過去の演算結果を使用した演算を行うことにより、ＩＯスレーブ装置Ｓ１〜Ｓｎにおける制御対象装置の制御のための制御データを求めて保持する。制御装置１００Ａおよび制御装置１００Ｂは、ＰＬＣであっても良いし、ＤＣＳであっても良い。
【００２３】
本実施形態では、便宜上、制御装置１００Ａおよびネットワーク装置２００Ａの組をＡ系、制御装置１００Ｂおよびネットワーク装置２００Ｂの組をＢ系と呼ぶ。また、以下では、便宜上、例えばＡ系の制御装置１００Ａ（ネットワーク装置２００Ａ）にとってのＡ系のネットワーク装置２００Ａ（制御装置１００Ａ）を同系のネットワーク装置（制御装置）という。また、Ａ系にとってのＢ系、Ｂ系にとってのＡ系をペア系という。
【００２４】
本実施形態では、Ａ系とＢ系のうちの一方が稼動系となり、一方が待機系となる。そして、稼動系が停止するときには、待機系となっていた制御装置は、以降、稼動系として動作する。稼動系／待機系の切り替えの際には、演算結果である制御データの突変が生じる可能性がある。そこで、この稼働系／待機系の切り替え時の制御データの突変を回避するために、監視データの等値化と演算結果の等値化が必要となる。図９に示す従来の冗長化制御システムでは、監視データの等値化と演算結果の等値化を制御装置１０Ａと制御装置１０Ｂに行わせていた。これに対して、本実施形態では、監視データの等値化をネットワーク装置２００Ａおよびネットワーク装置２００Ｂで行わせ、制御装置１００Ａおよび１００Ｂ間では、演算結果の等値化のみを行わせる。
【００２５】
次に、制御装置１００Ａおよび１００Ｂの構成、ネットワーク装置２００Ａおよび２００Ｂの構成を順に説明する。なお、制御装置１００Ａおよび１００Ｂは同一の構成を有しているため、以下では両者を区別する必要がない場合には「制御装置１００」と表記する。また、ネットワーク装置２００Ａおよび２００Ｂも、同一の構成を有しているため、以下では両者を区別する必要がない場合には「ネットワーク装置２００」と表記する。
【００２６】
図２は、制御装置１００の構成例を示すブロック図である。
制御装置１００は、図２に示すように、制御部１１０、第１通信インタフェース（以下、「Ｉ／Ｆ」と略記）部１２０、第２通信Ｉ／Ｆ部１３０、第３通信Ｉ／Ｆ部１４０、記憶部１５０、およびこれら構成要素間のデータ授受を仲介するバス１６０を含んでいる。
【００２７】
制御部１１０は、例えばＣＰＵである。制御部１１０は記憶部１５０（より正確には不揮発性記憶部１５４）に記憶されている制御プログラム１５４２を実行することにより、制御装置１００の制御中枢として機能する。第１通信Ｉ／Ｆ部１２０、第２通信Ｉ／Ｆ部１３０および第３通信Ｉ／Ｆ部１４０の各々は、例えばＮＩＣ（Network Interface Card）である。これら各通信Ｉ／Ｆ部の役割は以下の通りである。
【００２８】
第１通信Ｉ／Ｆ部１２０は同系のネットワーク装置２００に接続されている。第１通信Ｉ／Ｆ部１２０は、同系のネットワーク装置から送信されてくるデータの受信、および同系のネットワーク装置へのデータの送出を行う。第１通信Ｉ／Ｆ部１２０は、同系のネットワーク装置から受信したデータを蓄積する通信バッファを有している（図示略）。
【００２９】
第２通信Ｉ／Ｆ部１３０は通信線を介して監視システム５０に接続されている。第２通信Ｉ／Ｆ部１３０は、監視システム５０から送信されてくるデータの受信、および監視システム５０へのデータの送出を行う。第２通信Ｉ／Ｆ部２３０は、監視システム５０へ送信するデータを蓄積する通信バッファを有している（図示略）。
【００３０】
第３通信Ｉ／Ｆ部１４０は、ケーブル接続用のポートを有しており、同ポートには等値化ケーブル４０が接続される。第３通信Ｉ／Ｆ部１４０は、等値化ケーブル４０を介してペア系の制御装置と制御データの等値化のための通信を行う。第３通信Ｉ／Ｆ部１４０は、ペア系の制御装置との間で授受するデータを蓄積する通信バッファを有している（図示略）。
【００３１】
記憶部１５０は、図２に示すように揮発性記憶部１５２と不揮発性記憶部１５４とを有している。不揮発性記憶部１５４は例えばフラッシュＲＯＭである。この不揮発性記憶部１５４には制御プログラム１５４２が予め格納されている。この制御プログラム１５４２は、制御部１１０により実行される。制御プログラム１５４２は、制御演算部１５４２ａ、等値化処理部１５４２ｂおよび二重化動作制御部１５４２ｃを含む。これらは制御プログラム１５４２のサブルーチンである。
【００３２】
揮発性記憶部１５２は、例えばＲＡＭ（Random Access Memory）である。この揮発性記憶部１５２は、制御プログラム１５４２を実行するためのワークエリアとして使用される。このワークエリアとして、揮発性記憶部１５２には、制御データ領域１５２２ａと、ＩＯデータ領域１５２２ｂと、状態データ領域１５２２ｃがある。ＩＯデータ領域１５２２ｂは、ＩＮデータ領域とＯＵＴデータ領域に区分されている。ＩＮデータ領域は、同系のネットワーク装置から受信した監視データを格納するための記憶領域である。ＯＵＴデータ領域は同系のネットワーク装置に送信する制御データを格納するための記憶領域である。なお、これらのワークエリアを利用することにより行われる制御プログラム１５４２の各サブルーチンの処理内容については、説明の重複を避けるため、本実施形態の動作説明において詳細を明らかにする。
以上が制御装置１００の構成である。
【００３３】
図３は、ネットワーク装置２００の構成例を示すブロック図である。
ネットワーク装置２００は、図３に示すように、制御部２１０、第１通信Ｉ／Ｆ部２２０、第２通信Ｉ／Ｆ部２３０、第３通信Ｉ／Ｆ部２４０、記憶部２５０、およびこれら構成要素間のデータ授受を仲介するバス２６０を含んでいる。
【００３４】
制御部２１０は、例えばＣＰＵである。制御部２１０は記憶部２５０（より正確には不揮発性記憶部２５４）に記憶されている制御プログラム２５４２を実行することにより、ネットワーク装置２００の制御中枢として機能する。第１通信Ｉ／Ｆ部２２０、第２通信Ｉ／Ｆ部２３０および第３通信Ｉ／Ｆ部２４０の各々は、例えばＮＩＣである。これら各通信Ｉ／Ｆ部の役割は以下の通りである。
【００３５】
第１通信Ｉ／Ｆ部２２０はＩＯネットワークに接続されている。より詳細に説明すると、ネットワーク装置２００Ａの第１通信Ｉ／Ｆ部２２０はＩＯネットワーク３０Ａに接続されており、ネットワーク装置２００Ｂの第１通信Ｉ／Ｆ部２２０はＩＯネットワーク３０Ｂに接続されている。第１通信Ｉ／Ｆ部２２０は、接続先のＩＯネットワークから送信されてくるデータの受信、および接続先のＩＯネットワークへのデータの送出を行う。第１通信Ｉ／Ｆ部２２０は、接続先のＩＯネットワークから受信したデータを蓄積する通信バッファを有している（図示略）。
【００３６】
第２通信Ｉ／Ｆ部２３０は通信線を介して同系の制御装置に接続されている。第２通信Ｉ／Ｆ部２３０は、同系の制御装置から送信されてくるデータの受信、および同系の制御装置へのデータの送出を行う。第２通信Ｉ／Ｆ部２３０は、同系の制御装置へ送信するデータを蓄積する通信バッファを有している（図示略）。
【００３７】
第３通信Ｉ／Ｆ部２４０は、ケーブル接続用のポートを有しており、同ポートには等値化ケーブル４００が接続される。第３通信Ｉ／Ｆ部２４０は、等値化ケーブル４００を介してペア系のネットワーク装置と監視データの等値化のための通信を行う。
【００３８】
記憶部２５０は、図３に示すように揮発性記憶部２５２と不揮発性記憶部２５４とを有している。この不揮発性記憶部２５４には制御プログラム２５４２が予め格納されている。この制御プログラム２５４２は、制御部２１０により実行される。制御プログラム２５４２は、ＩＯマスタ機器部２５４２ａ、中継処理部２５４２ｂ、等値化処理部２５４２ｃおよび二重化動作監視部２５４２ｄを含む。これらは制御プログラム２５４２のサブルーチンである。
【００３９】
揮発性記憶部２５２は、例えばＲＡＭである。揮発性記憶部２５２は、制御プログラム２５４２を実行するためのワークエリアとして使用される。ワークエリアとして、揮発性記憶部２５２には、制御装置１００のものと同様なＩＯデータ領域２５２２ｂと、状態データ領域２５２２ｃがある。なお、これらのワークエリアを利用することにより行われる制御プログラム２５４２の各サブルーチンの処理内容については、説明の重複を避けるため、本実施形態の動作説明において詳細を明らかにする。
以上がネットワーク装置２００の構成である。
【００４０】
次に本実施形態の動作を説明する。
図４は本実施形態におけるネットワーク装置２００の動作を示すフローチャートである。また、図５は本実施形態における制御装置１００の動作を示すフローチャートである。以下、図４および図５を参照し、本実施形態の動作例を説明する。なお、以下説明する動作例では、Ａ系が稼働系であり、Ｂ系が待機系であるとする。
【００４１】
ＩＯスレーブ装置Ｓ１〜Ｓｎの各々は、入力信号（若しくはセンサの出力信号）をサンプリングして制御装置１００Ａおよび制御装置１００Ｂの各々に送信する監視データを生成し、ＩＯネットワーク３０ＡおよびＩＯネットワーク３０Ｂの各々へ送信する。ＩＯスレーブ装置Ｓ１〜Ｓｎが送信する監視データには、当該監視データの送信先および送信元を示す情報（通信アドレスやノード番号）と当該監視データを一意に示す識別子等とを含むヘッダが付与されている。ＩＯスレーブ装置Ｓ１〜Ｓｎの各々から送信された監視データは、ＩＯネットワーク３０ＡおよびＩＯネットワーク３０Ｂの各々を介してネットワーク装置２００Ａおよびネットワーク装置２００Ｂの各々へと伝送される。以下ではネットワーク装置２００Ａに伝送される監視データを「監視データＡ」と呼び、ネットワーク装置２００Ｂに伝送される監視データを「監視データＢ」と呼ぶ。監視データＡと監視データＢは基本的には同一のデータであるが、各々をサンプリングする際のサンプリングタイミングのズレにより微妙に異なる場合がある。
【００４２】
ネットワーク装置２００Ａでは、第１通信Ｉ／Ｆ部２２０がＩＯネットワーク３０Ａから送信されてくる監視データＡを受信すると、ＩＯマスタ機器部２５４２ａが当該監視データＡをＩＯデータ領域２５２２ｂのＩＮデータ領域に書き込む。ここで、ＩＯマスタ機器部２５４２ａは、個々の監視データＡをＩＮデータ領域に書き込む際、等値化済であるか否かを示すフラグに等値化済でないことを示す第１の値（例えば、０）をセットし、当該第１の値をセット済のフラグを各監視データＡに付与してＩＮデータ領域に書き込む。ネットワーク装置２００Ｂにおいても同様に、ネットワーク装置２００ＢのＩＯデータ領域２５２２ｂのＩＮデータ領域には、ＩＯネットワーク３０Ｂから受信した監視データＢとフラグが書き込まれる。
【００４３】
ネットワーク装置２００Ａでは、等値化処理部２５４２ｃが繰り返し起動される。この等値化処理部２５４２ｃの起動は、タイマ割り込み等により定周期で行われてもよいし、ＩＯデータ領域２５２２ｂのＩＮデータ領域への監視データの書き込みを契機として行われてもよい。
【００４４】
ネットワーク装置２００Ａにおいて等値化処理部２５４２ｃは、図４に示すように、まず、状態データ領域２５２２ｃ内の状態データを参照し、自装置が稼働系として動作しているのか否かを判定する（ステップＳＡ２００）。そして、ステップＳＡ２００の判定結果が“Ｙｅｓ”であれば、等値化処理部２５４２ｃは、ステップＳＡ２１０の処理を実行し、逆にステップＳＡ２００の判定結果が“Ｎｏ”であれば、ステップＳＡ２２０以降の処理を実行する。本動作例では、Ａ系が稼働系であるため、ネットワーク装置２００Ａにおける等値化処理部２５４２ｃの実行時に、ステップＳＡ２００の判定結果は“Ｙｅｓ”となり、ステップＳＡ２１０の処理が実行される。
【００４５】
ステップＳＡ２１０において等値化処理部２５４２ｃは、ＩＯデータ領域２５２２ｂのＩＮデータ領域から等値化済でないことを示すフラグの付与された監視データＡを読み出し、当該監視データＡを第３通信Ｉ／Ｆ部２４０を介してペア系のネットワーク装置（この場合、ネットワーク装置２００Ｂ）へ転送する。前述したように、ネットワーク装置２００ＡのＩＯデータ領域２５２２ｂのＩＮデータ領域には、等値化済でないことを示すフラグを付与された監視データＡが格納されている。このため、本動作例では、等値化ケーブル４００を介してネットワーク装置２００Ａからネットワーク装置２００Ｂへ監視データＡが転送される。
【００４６】
ネットワーク装置２００Ｂにおいて等値化処理部２５４２ｃが起動されると、この等値化処理部２５４２ｃは、ネットワーク装置２００Ａの等値化処理部２５４２ｃと同様、自装置が稼働系として動作しているのか否かを判定する（ステップＳＡ２００）。本動作例ではＢ系が待機系であるため、このステップＳＡ１００の判定結果は“Ｎｏ”になり、ステップＳＡ２２０以降の処理が実行される。
【００４７】
ステップＳＡ２２０において等値化処理部２５４２ｃは、ネットワーク装置２００Ａからの監視データＡを第３通信Ｉ／Ｆ部２４０から取得し、当該監視データＡに対応した監視データＢ、すなわち、ＩＯデータ領域２５２２ｂのＩＮデータ領域に格納されている監視データＢであって、当該監視データＡと送信元が同一であり、かつ識別子が一致する監視データを当該監視データＡにより上書きし、当該監視データＢに付与されているフラグを等値化済であることを示す第２の値（例えば、１）に書き換える（ステップＳＡ２２０）。これにより、ネットワーク装置２００ＢのＩＯデータ領域２５２２ｂのＩＮデータ領域に格納されている監視データは監視データＢから監視データＡに更新される。
【００４８】
ネットワーク装置２００Ｂの等値化処理部２５４２ｃは、上記の要領で監視データの等値化を完了すると、等値化ケーブル４００を介して等値化完了をネットワーク装置２００Ａへ通知する（ステップＳＡ２３０）。ネットワーク装置２００Ａの等値化処理部２５４２ｃは、上記通知の受信を契機として、図４のステップＳＡ２１０において転送した監視データＡのフラグを上記第２の値に更新する。以上の動作が為される結果、ネットワーク装置２００Ａおよびネットワーク装置２００Ｂの各々のＩＯデータ領域２５２２ｂのＩＮデータ領域には、監視データＡが格納され、当該監視データＡには等値化済を示すフラグが付与された状態となる。
【００４９】
ネットワーク装置２００Ａでは、ＩＯデータ領域２５２２ｂのＩＮデータ領域に格納されている監視データに付与されているフラグが等値化済を示す値に更新されたことを契機として中継処理部２５４２ｂが起動される。この中継処理部２５４２ｂは、等値化済を示すフラグを付与されている監視データをＩＯデータ領域２５２２ｂのＩＮデータ領域から読み出し、読み出した監視データを第２通信Ｉ／Ｆ部２３０により同系の制御装置１００Ａに転送する。ネットワーク装置２００Ｂにおいても、等値化完了の通知を送信したことを契機として中継処理部２５４２ｂが起動され、等値化済を示すフラグを付与されている監視データがＩＯデータ領域２５２２ｂのＩＮデータ領域から読み出され、第２通信Ｉ／Ｆ部２３０により同系の制御装置１００Ｂに転送される。
【００５０】
このようにして本動作例では、ネットワーク装置２００Ａから制御装置１００Ａへ監視データＡが送信され、ネットワーク装置２００Ｂから制御装置１００Ｂへも監視データＡが送信される。なお、監視データの送受信に比較して上記通知の送受信は十分に高速に行えるため、ネットワーク装置２００Ａおよびネットワーク装置２００Ｂの各々における上記フラグの更新は略同期して実行される。このため、ネットワーク装置２００Ａから制御装置１００Ａへの監視データＡの送信と、ネットワーク装置２００Ｂから制御装置１００Ｂへの監視データＡの送信はほぼ同期して実行される。
【００５１】
制御装置１００Ａでは、第１通信Ｉ／Ｆ部１２０がネットワーク装置２００Ａから送信されてくる監視データＡを受信すると、制御演算部１５４２ａが当該監視データＡをＩＯデータ領域１５２２ｂのＩＮデータ領域に書き込む。そして、稼働系である制御装置１００Ａにおいて、制御演算部１５４２ａは、ＩＯデータ領域１５２２ｂのＩＮデータ領域内の監視データＡを用いてＩＯスレーブ装置Ｓ１〜Ｓｎの制御対象装置の制御のための制御データを算出する演算を行い、演算結果である制御データを制御データ領域１５２２ａに書き込む。ここで、制御演算部１５４２ａは、個々の制御データを制御データ領域１５２２ａに書き込む際、等値化済であるか否かを示すフラグに等値化済でないことを示す第１の値（例えば、０）をセットし、当該第１の値をセット済のフラグを各制御データに付与して制御データ領域１５２２ａに書き込む。
【００５２】
待機系においても、同様にネットワーク装置２００Ｂから制御装置１００Ｂに監視データＡが転送される。そして、制御装置１００ＢのＩＯデータ領域１５２２ｂには、ネットワーク装置２００Ｂから受信された監視データＡが書き込まれる。しかし、待機系である制御装置１００Ｂでは、制御データを算出する演算、演算結果である制御データの制御データ領域１５２２ａへの書き込みは行われるが、ネットワーク装置２００Ｂへの送信は行われない。
【００５３】
制御装置１００Ａでは、等値化処理部１５４２ｂが繰り返し起動される。この等値化処理部１５４２ｂの起動は、タイマ割り込み等により定周期で行われてもよいし、制御データの制御データ領域１５２２ａへの書き込みを契機として行われてもよい。
【００５４】
制御装置１００Ａにおいて等値化処理部１５４２ｂは、図５に示すように、まず、状態データ領域１５２２ｃ内の状態データを参照し、自装置が稼働系として動作しているのか否かを判定する（ステップＳＡ１００）。そして、ステップＳＡ１００の判定結果が“Ｙｅｓ”であれば、等値化処理部１５４２ｂは、ステップＳＡ１１０の処理を実行し、逆にステップＳＡ１００の判定結果が“Ｎｏ”であれば、ステップＳＡ１２０以降の処理を実行する。前述したように、本動作例では、Ａ系が稼働系であるため、制御装置１００Ａにおける等値化処理部１５４２ｂの実行時に、ステップＳＡ１００の判定結果は“Ｙｅｓ”となり、ステップＳＡ１１０の処理が実行される。
【００５５】
ステップＳＡ１１０では、等値化処理部１５４２ｂは制御データ領域１５２２ａから等値化済でないことを示すフラグの付与された制御データを読み出し、当該制御データを第３通信Ｉ／Ｆ部１４０を介してペア系（この場合、待機系）の制御装置１００Ｂへ転送する。
【００５６】
制御装置１００Ｂにおいても等値化処理部１５４２ｂが繰り返し起動される。この等値化処理部１５４２ｂは、制御装置１００Ａの等値化処理部１５４２ｂと同様、自装置が稼働系として動作しているのか否かを判定する（ステップＳＡ１００）。本動作例ではＢ系が待機系であるため、このステップＳＡ１００の判定結果は“Ｎｏ”になり、ステップＳＡ１２０以降の処理が実行される。ステップＳＡ１２０において、制御装置１００Ｂの等値化処理部１５４２ｂは、ペア系の制御装置１００Ａからの制御データを第３通信Ｉ／Ｆ部１４０から取得し、制御データ領域１５２２ａにおいて当該制御データに対応した制御データを当該制御データにより上書きすることにより制御データの等値化を実行する（ステップＳＡ１２０）。
【００５７】
制御装置１００Ｂの等値化処理部１５４２ｂは、上記の要領で制御データの等値化を完了すると、等値化ケーブル４０を介して等値化完了をペア系（この場合、稼働系）の制御装置１００Ａへ通知する（ステップＳＡ１３０）。制御装置１００Ａの等値化処理部１５４２ｂは、上記通知の受信を契機として、図５のステップＳＡ１１０において転送した制御データのフラグを上記第２の値に更新する。以上の動作が為される結果、制御装置１００Ａおよび制御装置１００Ｂの各々の制御データ領域１５２２ａには、等値化された制御データが格納される。
【００５８】
稼働系の制御装置１００Ａにおいて、制御演算部１５４２ａは、制御データ領域１５２２ａ内の制御データのうち等値化済みであることを示すフラグの付与された制御データをＩＯデータ領域のＯＵＴデータ領域に一旦格納する。そして、制御演算部１５４２ａは、このＯＵＴデータ領域内の制御データを第１通信Ｉ／Ｆ部１２０により同系のネットワーク装置２００Ａに送信する。
【００５９】
稼働系のネットワーク装置２００Ａにおいて、中継処理部２５４２ｂは、同系の制御装置１００Ａからの制御データを第２通信Ｉ／Ｆ部２３０が受信すると、この制御データをＩＯデータ領域２５２２ｂのＯＵＴデータ領域に格納する。稼働系のネットワーク装置２００ＡのＩＯマスタ機器部２５４２ａは、このＯＵＴデータ領域内の制御データをＩＯネットワーク３０Ａを介してＩＯスレーブ装置Ｓ１〜Ｓｎに送信する。
【００６０】
一方、待機系の制御装置１００Ｂは、上述した通り、制御データの演算および等値化までは行うが、制御データの同系のネットワーク装置２００Ｂへの送信は行わない。待機系の制御装置１００Ｂは、等値化済みの制御データを制御データ領域１５２２ａに保持し、系の切り替えに備える。
以上が本実施形態による制御システム１Ａの通常時の動作例である。
【００６１】
図６は本実施形態による制御システム１Ａにおいて等値化ケーブル４０を介した通信が通信不能状態になった場合の動作例を示すシーケンス図である。この動作例においても、Ａ系が稼働系、Ｂ系が待機系となっている。
【００６２】
稼働系の制御装置１００Ａの二重化動作制御部１５４２ｃは、状態データ領域１５２２ｃ内の状態データを第３通信Ｉ／Ｆ部１４０により等値化ケーブル４０を介してペア系（待機系）の制御装置１００Ｂに繰り返し送信する。この状態データの送信は、定周期で行うようにしてもよく、状態データ領域１５２２ｃ内の状態データの内容が変わったときに行うようにしてもよい。待機系の制御装置１００Ｂの二重化動作制御部１５４２ｃは、等値化ケーブル４０を介して受信される状態データに基づき、稼働系の状態を監視する。
【００６３】
図６に示す動作例において、待機系の制御装置１００Ｂの二重化動作制御部１５４２ｃは、等値化ケーブル４０を介した通信が通信不能状態となったことを検知している（ステップＳ３１０）。等値化ケーブル４０を介した通信が通信不能状態になると、待機系の制御装置１００Ｂの二重化動作制御部１５４２ｃは、もはや稼働系の状態を監視することができなくなる。そこで、待機系の制御装置１００Ｂの二重化動作制御部１５４２ｃは、等値化ケーブル４０経由の通信が通信不能状態になったことを検知した場合、初回指示としての稼働系への切り替え指示を第１通信Ｉ／Ｆ部１２０により同系のネットワーク装置２００Ｂに送信する（ステップＳ３３０）。
【００６４】
ここで、等値化ケーブル４０を介した通信が通信不能状態となる原因として、稼働系が故障した場合と、稼働系は正常に動作しているが、等値化ケーブル４０の断線、等値化ケーブル４０のプラグの制御装置からの脱落、ノイズ等の影響による通信品質の著しい低下等により通信不能状態となっている場合とが考えられる。
【００６５】
そこで、以下では、まず、後者の原因により等値化ケーブル４０を介した通信が通信不能状態となった場合の動作を説明し、その後、前者の原因により等値化ケーブル４０を介した通信が通信不能状態となった場合の動作を説明する。
【００６６】
ネットワーク装置２００Ｂの二重化動作監視部２５４２ｄは、初回指示としての稼働系への切り替え指示を第２通信Ｉ／Ｆ部２３０が受信すると、ネットワーク装置２００Ｂを待機系に維持した状態で（すなわち、待機系を示すデータを状態データ領域２５２２ｃに残したまま）、第３通信Ｉ／Ｆ部２４０および等値化ケーブル４００を介して状態問い合わせをネットワーク装置２００Ａに送信する（ステップＳ３４０）。この状態問い合わせは、状態データ領域２５２２ｃ内の状態データの送信を要求するコマンドである。
【００６７】
この状態問い合わせがネットワーク装置２００Ａの第３通信Ｉ／Ｆ部２４０により受信されると、ネットワーク装置２００Ａの二重化動作監視部２５４２ｄは、状態データ領域２５２２ｃから状態データを読み出し、第３通信Ｉ／Ｆ部２４０および等値化ケーブル４００を介してネットワーク装置２００Ｂに送信する（ステップＳ３４２）。
【００６８】
ネットワーク装置２００Ｂの第３通信Ｉ／Ｆ部２４０が状態データを受信すると、ネットワーク装置２００Ｂの二重化動作監視部２５４２ｄは、当該状態データの内容を判定する。
【００６９】
ネットワーク装置２００Ａが待機系への遷移期間中である旨またはネットワーク装置２００Ａが待機系である旨のいずれをも当該状態データが示していない場合、ネットワーク装置２００Ｂの二重化動作監視部２５４２ｄは、初回指示としての稼働系への切り替え指示の受信タイミングを基準とした制限時間の範囲内で、状態問い合わせの送信（ステップＳ３４０）および状態データの受信（ステップＳ３４２）を繰り返す。なお、この制限時間は、予め定められた固定値であってもよいし、制御装置１００Ｂが初回指示としての稼働系への切り替え指示において指定してもよい。
【００７０】
そして、ネットワーク装置２００Ａが待機系への遷移期間中である旨またはネットワーク装置２００Ａが待機系である旨を示す状態データをネットワーク装置２００Ｂの第３通信Ｉ／Ｆ部２４０が制限時間内に受信しなかった場合、ネットワーク装置２００Ｂの二重化動作監視部２５４２ｄは、制御装置１００Ｂからの稼働系への切り替え指示には応じることができない旨の拒絶応答を制御装置１００Ｂに送信する（ステップＳ３４５）。これにより待機系の制御装置１００Ｂの二重化動作制御部１５４２ｃは、稼働系への切り替えを行わず、待機系を維持する（ステップＳ３５１）。
【００７１】
このように本実施形態によれば、等値化ケーブル４０を介した通信が通信不能状態となった場合に、待機系の制御装置１００Ｂによって不要に待機系から稼働系への切り替えが行われるのを抑制することができる。
【００７２】
次に稼働系の故障により等値化ケーブル４０を介した通信が通信不能状態となった場合の動作を説明する。図６ではこの動作が破線により示されている。
【００７３】
稼働系において、稼働系としての動作を継続することができないような故障が発生した場合、稼働系の制御装置１００Ａは、稼働系の故障内容を示すとともに、稼働系から待機系への遷移期間中であることを示す内容に状態データ領域１５２２ｃ内の状態データを書き替える。そして、稼働系の制御装置１００Ａの二重化動作制御部１５４２ｃは、この状態データ領域１５２２ｃ内の状態データを第３通信Ｉ／Ｆ部１４０によりペア系（待機系）の制御装置１００Ｂに送信する。この稼働系の待機系への切り替えを示す状態データは、稼働系への切り替え指示として、等値化ケーブル４０を介して待機系の制御装置１００Ｂに送信される。しかし、図６に示す例では、稼働系の故障により等値化ケーブル４０を介した通信が通信不能状態となっているため、稼働系への切り替え指示は待機系の制御装置１００Ｂに届かない。
【００７４】
また、稼働系としての動作を維持することができない故障が稼働系に発生した場合、稼働系の制御装置１００Ａの二重化動作制御部１５４２ｃは、第１通信Ｉ／Ｆ部１２０によりネットワーク装置２００Ａに待機系への切り替え指示を送る（ステップＳ３１２）。
【００７５】
そして、稼働系の制御装置１００Ａの二重化動作制御部１５４２ｃは、制御装置１００Ａを待機系に切り替えるための制御を開始する。具体的には、二重化動作制御部１５４２ｃは、制御演算部１５４２ａに稼働系としての処理（制御データの送信）を停止させ、等値化処理部１５４２ｂに稼働系としての処理（制御データの送信）を停止させ、待機系としての処理（制御データの受信および等値化）を開始させるための制御を開始する。この制御が終了したとき、制御装置１００Ａの二重化動作制御部１５４２ｃは、状態データ領域１５２２ｃ内の状態データを待機系であることを示す内容に書き替える（以上、ステップＳ３２０）。
【００７６】
稼働系のネットワーク装置２００Ａでは、第２通信Ｉ／Ｆ部２３０が待機系への切り替え指示を受信すると、二重化動作監視部２５４２ｄは、状態データ領域２５２２ｃ内の状態データを稼働系から待機系への遷移期間中であることを示す内容に書き替え、ネットワーク装置２００Ａを待機系に切り替えるための制御を開始する。具体的には、二重化動作監視部２５４２ｄは、ＩＯマスタ機器部２５４２ａに稼働系としての処理（制御データの送信）を停止させ、等値化処理部２５４２ｃに稼働系としての処理（監視データの送信）を停止させ、待機系としての処理（監視データの受信および等値化）を開始させるための制御を開始する。この制御が終了したとき、ネットワーク装置２００Ａの二重化動作監視部２５４２ｄは、状態データ領域２５２２ｃ内の状態データを待機系であることを示す内容に書き替える（ステップＳ３２２）。
【００７７】
ここで、稼働系の故障の態様の１つとして、例えば制御装置１００Ａの電源が遮断される等の故障の態様もあり得る。このような故障が起こった場合、等値化ケーブル４０を介した制御装置１００Ａおよび１００Ｂ間の通信が通信不能状態になるだけではなく、稼働系の制御装置１００Ａから同系のネットワーク装置２００Ａへの待機系への切り替え指示（ステップＳ３２２）も行われない。そこで、本実施形態において稼働系のネットワーク装置２００Ａの二重化動作監視部２５４２ｄは、第２通信Ｉ／Ｆ部２３０を介した同系の制御装置１００Ａとの通信を監視する。そして、同制御装置１００Ａとの通信が通信不能状態になったのを検知したとき、二重化動作監視部２５４２ｄは、ステップＳ３２２の処理を実行し、状態データ領域２５２２ｃ内の状態データを稼働系から待機系への遷移期間中であることを示す内容に書き替え、待機系への切り替えが終わると、待機系であることを示す内容に書き替える。
【００７８】
一方、稼働系の故障により等値化ケーブル４０を介した通信が通信不能状態になると、上述したように待機系の制御装置１００Ｂの二重化動作制御部１５４２ｃからネットワーク装置２００Ｂに初回指示としての稼働系への切り替え指示が送られ（ステップＳ３３０）、ネットワーク装置２００Ｂの二重化動作監視部２５４２ｄから稼働系のネットワーク装置２００Ａに等値化ケーブル４００を介して状態問い合わせが送られる（ステップＳ３４０）。
【００７９】
この状態問い合わせがネットワーク装置２００Ａの第３通信Ｉ／Ｆ部２４０により受信されると、ネットワーク装置２００Ａの二重化動作監視部２５４２ｄは、状態データ領域２５２２ｃから状態データを読み出し、第３通信Ｉ／Ｆ部２４０および等値化ケーブル４００を介してネットワーク装置２００Ｂに送信する（ステップＳ３４２）。この例では、稼働系から待機系への遷移期間中であることを示す状態データが等値化ケーブル４００を介してネットワーク装置２００Ｂに送信されることとなる。
【００８０】
ネットワーク装置２００Ｂの第３通信Ｉ／Ｆ部２４０が状態データを受信すると、ネットワーク装置２００Ｂの二重化動作監視部２５４２ｄは、当該状態データの内容を判定する。
【００８１】
この例のようにネットワーク装置２００Ａが待機系への遷移期間中である旨を当該状態データが示している場合またはネットワーク装置２００Ａが待機系である旨を当該状態データが示している場合、ネットワーク装置２００Ｂの二重化動作監視部２５４２ｄは、当該制御データを第２通信Ｉ／Ｆ部２３０により制御装置１００Ｂに転送する（ステップＳ３４４）。
【００８２】
制御装置１００Ｂの二重化動作制御部１５４２ｃは、ネットワーク装置２００Ａが待機系への遷移期間中である旨またはネットワーク装置２００Ａが待機系である旨を示す状態データを第１通信Ｉ／Ｆ部１２０が制限時間内に受信した場合、最終指示としての稼働系への切り替え指示を第１通信Ｉ／Ｆ部１２０によりネットワーク装置２００Ｂに送信する（ステップＳ３５０）。
【００８３】
そして、制御装置１００Ｂの二重化動作制御部１５４２ｃは、待機系から稼働系への遷移期間中である旨を示す状態データを状態データ領域１５２２ｃに書き込み、制御装置１００Ｂを稼働系に切り替えるための制御を開始する。具体的には、二重化動作制御部１５４２ｃは、制御演算部１５４２ａに稼働系としての処理（監視データに基づく制御データの算出）を開始させ、等値化処理部１５４２ｂに稼働系としての処理（制御データの送信）を開始させ、待機系としての処理（制御データの受信および等値化）を停止させるための制御を開始する。この制御が終了したとき、制御装置１００Ｂの二重化動作制御部１５４２ｃは、稼働系である旨を示す状態データを状態データ領域１５２２ｃに書き込む（ステップＳ３５２）。
【００８４】
ネットワーク装置２００Ｂにおいて、第２通信Ｉ／Ｆ部２３０が最終指示としての稼働系への切り替え指示を受信すると、二重化動作監視部２５４２ｄは、待機系から稼働系への遷移期間中である旨を示す状態データを状態データ領域２５２２ｃに書き込み、ネットワーク装置２００Ｂを稼働系に切り替えるための制御を開始する。具体的には、二重化動作監視部２５４２ｄは、ＩＯマスタ機器部２５４２ａに稼働系としての処理（制御データの送信）を開始させ、等値化処理部２５４２ｃに稼働系としての処理（監視データの送信）を開始させ、待機系としての処理（監視データの受信および等値化）を停止させるための制御を開始する。この制御が終了したとき、ネットワーク装置２００Ｂの二重化動作監視部２５４２ｄは、稼働系である旨を示す状態データを状態データ領域２５２２ｃに書き込む（ステップＳ３５４）。
【００８５】
以上のように稼働系の故障により等値化ケーブル４０を介した通信が通信不能状態となった場合には、等値化ケーブル４００を介した状態データの受信により待機系の制御装置１００Ｂおよびネットワーク装置２００Ｂが稼働系に切り替えられる。
【００８６】
図７は本実施形態において等値化ケーブル４０を介した通信により現状の稼働系を待機系とし、現状の待機系を稼働系とする稼働系／待機系切り替え制御が行われる動作例を示すシーケンス図である。この動作例においても、初期状態では、Ａ系が稼働系、Ｂ系が待機系となっている。
【００８７】
この動作例において、ステップＳ３１２、Ｓ３２０、Ｓ３２２、Ｓ３５２、Ｓ３５４の動作は図６に示すものと同様である。稼働系の制御装置１００Ａから等値化ケーブル４０を介して待機系の制御装置１００Ｂに稼働系への切り替え指示が送信され（ステップＳ３１１）、待機系の制御装置１００Ｂがこの稼働系への切り替え指示を受信した場合、待機系の制御装置１００Ｂの二重化動作制御部１５４２ｃは、直ちに稼働系への切り替え指示を同系のネットワーク装置２００Ｂに送る（ステップＳ３５０）。そして、制御装置１００Ｂおよびネットワーク装置２００Ｂでは待機系から稼働系への切り替えが行われる（ステップＳ３５２およびＳ３５４）。
以上が本実施形態の動作である。
【００８８】
次に本実施形態の効果を説明する。
図９に示す従来の冗長化制御システムでは、監視データの等値化を制御装置（すなわち、制御装置１０Ａおよび制御装置１０Ｂ）に行わせていたため、監視データのデータ量が増えると、その等値化の分だけ制御装置の処理負荷が高くなり、本来の演算の高速実行に支障が生じるといった問題があった。これに対して、本実施形態では、監視データの等値化は等値化ケーブル４００を介した通信によりネットワーク装置２００Ａおよびネットワーク装置２００Ｂによって実行される。このため、ＩＯネットワークに接続されるＩＯスレーブ装置の増加等に起因して制御装置１００Ａおよび制御装置１００Ｂへ転送される監視データのデータ量が増えたとしても、制御装置１００Ａおよび制御装置１００Ｂにかかる処理負荷がその等値化の分だけ高くなることはなく、本来の演算の実行に何ら支障が発生することはない。
【００８９】
また、本実施形態では、制御装置１００Ａおよび制御装置１００Ｂに等値化済の監視データが転送されてくるので、稼働系の制御装置の停止に起因して稼働系／待機系の切り替えを行う場合であっても、制御装置において監視データの等値化完了を待つ必要はなく、即座に切り替えを行うことができる。すなわち、本実施形態によれば、稼働系／待機系の切り替えスピードの低下を招くこともない。
【００９０】
また、図９に示す従来の冗長化制御システムでは、稼動系と待機系との間のデータ通信を仲介する手段は、制御装置同士の通信を仲介する制御装置間通信手段である等値化ケーブル４０のみである。従って、従来の冗長化制御システムでは、等値化ケーブル４０を介した通信が通信不能状態になると、稼働系の制御装置と待機系の制御装置は互いの状態監視を適切に行うことができない。この場合、等値化ケーブル４０を介した通信が通信不能状態になったことを検知した待機系の制御装置が待機系から稼働系への切り替えを行うと、稼働系が正常に動作しているにも拘わらず、待機系が稼働系に切り替えられ、これにより稼働系が重複して発生し、制御対象装置が誤動作する可能性がある。
【００９１】
これに対して、本実施形態では、等値化ケーブル４０を介した通信が通信不能状態になったことを検知した待機系の制御装置が初回の切り替え指示を待機系のネットワーク装置２００Ｂに送ると、待機系のネットワーク装置２００Ｂは、等値化ケーブル４００を介して稼働系のネットワーク装置２００Ａに状態問い合わせを送る。ここで、稼働系において待機系への切り替えが行われていない場合、待機系のネットワーク装置２００Ｂは、状態問い合わせに対する応答として、稼働系を示す内容の状態データを受け取る。この場合、待機系のネットワーク装置２００Ｂは、待機系の制御装置１００Ｂに対して拒絶応答を送り、制御装置１００Ｂによる待機系から稼働系への切り替えを抑制する。従って、本実施形態によれば、等値化ケーブル４０を介した通信が通信不能状態になったことを検知した待機系の制御装置によって、待機系から稼働系への切り替えが不要に行われるのを防止することができる。
【００９２】
また、本実施形態において待機系のネットワーク装置２００Ｂは、状態問い合わせに対する応答として、待機系を示す内容または待機系への遷移中であることを示す内容の状態データを受け取った場合に、その状態データを待機系の制御装置１００Ｂに送る。そして、この状態データを受け取った待機系の制御装置１００Ｂは待機系から稼働系への切り替え制御を開始する。従って、本実施形態によれば、等値化ケーブル４０を介した通信が通信不能状態となっても、稼働系の待機系への切り替えを検知し、Ａ系およびＢ系の両方が稼働系となるのを回避しつつ、稼働系／待機系切り替えを適切に行うことができる。
【００９３】
また、本実施形態によれば、稼働系のネットワーク装置２００Ａは、同系の制御装置１００との通信を監視する。そして、制御装置１００Ａの電源遮断等の故障により、制御装置１００との通信が通信不能状態になったことを検知した場合に、ネットワーク装置２００Ａは、自身が保持する状態データを待機系への遷移中である旨の内容に書き替え、次いで待機系を示す内容に書き替える。従って、稼働系の制御装置１００Ａが待機系への切り替え指示を稼働系のネットワーク装置２００Ａに送ることができない状況でも、稼働系のネットワーク装置２００Ａが待機系への切り替えを示す状態データを待機系のネットワーク装置２００Ｂに送り、待機系の制御装置１００Ｂおよびネットワーク装置２００Ｂの稼働系への切り替えを行わせることができる。
【００９４】
また、本実施形態では、ネットワーク装置２００Ａおよび２００Ｂが稼働系／待機系の切り替え制御のために通信を行うため、制御装置１００Ａおよび１００Ｂの稼働系／待機系の切り替え制御のための通信の負担を減らすことができる。
【００９５】
＜他の実施形態＞
以上、この発明の一実施形態について説明したが、この発明には他にも実施形態が考えられる。例えば次の通りである。
【００９６】
（１）上記実施形態において、待機系の制御装置１００は、稼働系への切り替え指示が等値化ケーブル４０を介して受信された場合には最終指示としての稼働系への切り替え指示を同系のネットワーク装置２００に送り、等値化ケーブル４０を経由した通信が通信不能状態となった場合には初回指示としての稼働系への切り替え指示を同系のネットワーク装置２００に送った。しかし、そのようにするのではなく、稼働系への切り替え指示が等値化ケーブル４０を介して受信された場合と等値化ケーブル４０を経由した通信が通信不能状態になった場合の両方において、初回指示としての稼働系への切り替え指示を待機系の制御装置１００から待機系のネットワーク装置２００へ送り、待機系のネットワーク装置２００に稼働系の状態データを収集させてもよい。この態様によれば、例えばノイズの影響等により稼働系への切り替え指示が誤って待機系の制御装置１００に送信された場合に、待機系の制御装置１００によって待機系から稼働系への切り替えが不要に行われるのを防止することができる。
【００９７】
（２）現状の稼働系を待機系とし、現状の待機系を稼働系とする稼働系／待機系切り替え制御を図８に示すシーケンス図に従って進めてもよい。
【００９８】
図８に示す動作例において、初期状態では、制御装置１００Ａおよびネットワーク装置２００Ａが稼働系、制御装置１００Ｂおよびネットワーク装置２００Ｂが待機系となっている。
【００９９】
稼働系において、稼働系としての動作を継続することができないような故障が発生した場合、稼働系の制御装置１００Ａは、稼働系への切り替え指示を等値化ケーブル４０を介して待機系の制御装置１００Ｂに送信する（ステップＳ４１０）。また、稼働系の制御装置１００Ａは、待機系への切り替え指示を稼働系のネットワーク装置２００Ａへ送信する（ステップＳ４１２）。そして、稼働系の制御装置１００Ａは、自装置を待機系に切り替える制御を行う（ステップＳ４２０）。
【０１００】
待機系への切り替え指示を受信した稼働系のネットワーク装置２００Ａは、稼働系への切り替え指示を等値化ケーブル４００を介して待機系のネットワーク装置２００Ｂに送信する（ステップＳ４１４）。そして、稼働系のネットワーク装置２００Ａは、自装置を待機系に切り替える制御を行う（ステップＳ４２２）。
【０１０１】
待機系のネットワーク装置２００Ｂは、等値化ケーブル４００を介して稼働系への切り替え指示を受信すると、稼働系への切り替え指示を待機系の制御装置１００Ｂに送る（ステップＳ４１６）。
【０１０２】
待機系の制御装置１００Ｂは、等値化ケーブル４０を介して稼働系の制御装置１００Ａから稼働系への切り替え指示を受信する（第１の通知）という条件と、待機系のネットワーク装置２００Ｂから稼働系の切り替え指示を受信する（第２の通信）という条件の少なくとも一方の条件が満たされたとき、稼働系への切り替え指示をネットワーク装置２００Ｂに送信する（ステップＳ４３０）。そして、待機系の制御装置１００Ｂは、自装置を稼働系に切り替えるための制御を行う（ステップＳ４３２）。また、稼働系への切り替え指示を制御装置１００Ｂから受け取ったネットワーク装置２００Ｂは、自装置を稼働系に切り替えるための制御を行う（ステップＳ４３４）。
【０１０３】
この態様によれば、等値化ケーブル４０を経由した通信が通信不能状態となっている状況においても、等値化ケーブル４００を介して稼働系のネットワーク装置から待機系のネットワーク装置に稼働系への切り替え指示が送信される。従って、上記実施形態と同様、等値化ケーブル４０を経由した通信が通信不能状態になっている状況においても、制御装置１００Ａおよびネットワーク装置２００Ａの組と制御装置１００Ｂおよびネットワーク装置２００Ｂの組の両方が稼働系となるのを回避することができる。
【０１０４】
（３）上記実施形態では、ＩＯスレーブ装置から収集した監視データを制御装置へ転送するゲートウェイ装置へ本発明を適用した。しかし、本発明の適用対象はゲートウェイ装置に限定される訳ではなく、ルータやリピータ、スイッチングハブなどの他の種類の中継装置であっても良い。さらに、本発明の中継装置に接続されるネットワークはＩＯネットワークなどの制御系ネットワークやシリアルバスに限定される訳ではなく、ＴＣＰなどの汎用通信プロトコルにしたがったデータ通信を仲介する一般的な情報系ネットワークであっても良い。要は、監視データを収集し、当該監視データを使用した演算を実行する制御装置と、監視データを出力する機器に接続されたネットワークとに接続され、当該ネットワークを介して受信したデータを当該制御装置へ転送する中継装置であれば、本発明を適用可能である。
【０１０５】
（４）上記実施形態におけるネットワーク装置（中継装置）を単体で提供（すなわち、製造・販売）してもよい。このようなネットワーク装置を従来の冗長化制御システムにおけるネットワーク装置と置き換え、中継装置間等値化ケーブルでそれらネットワーク装置を互いに接続することで、従来の冗長化制御システムを上記実施形態の制御システムとして機能させることが可能になるからである。上記実施形態における制御装置も同様である。
【０１０６】
（５）上記実施形態において、稼働系のネットワーク装置２００Ａは、待機系のネットワーク装置２００Ｂからの状態問い合わせに応答して状態データを送信した。しかし、稼働系のネットワーク装置２００Ａは、常時、状態データを待機系のネットワーク装置２００Ｂに送信してもよい。この場合の状態データの送信は、定期的に行ってもよく、状態データに変化があったときに行ってもよい。すなわち、稼働系のネットワーク装置２００Ａは、等値化ケーブル４００を介して待機系のネットワーク装置２００Ｂに状態データを定期的にまたは非定期的に繰り返し送信するのである。
【０１０７】
この態様において、待機系のネットワーク装置２００Ｂは、等値化ケーブル４０を介した通信が通信不能状態になったことを検知した待機系の制御装置１００Ｂから初回指示としての稼働系への切り替え指示を受け取った後、稼働系から待機系への切り替えを示す状態データを稼働系のネットワーク装置２００Ｂから受信した場合、当該状態データを待機系の制御装置１００Ｂに転送する。これにより待機系の制御装置１００Ｂは、待機系の制御装置１００Ｂおよびネットワーク装置２００Ｂを稼働系に切り替える制御を開始する。
【０１０８】
一方、待機系のネットワーク装置２００Ｂは、待機系の制御装置１００Ｂから初回指示としての稼働系への切り替え指示を受け取った後、稼働系が稼働系を維持していることを示す状態データを待機系のネットワーク装置２００Ｂが受信した場合、拒絶応答を待機系の制御装置１００Ｂに送る。すなわち、この態様では、初回指示としての稼働系への切り替え指示が待機系のネットワーク装置２００Ｂに出力された後、稼働系から待機系への切り替えを示す状態データが待機系のネットワーク装置２００Ｂによって受信されない限り、待機系の稼働系への切り替えは行われない。この態様においても上記実施形態と同様な効果が得られる。
【０１０９】
（６）上記実施形態において、待機系のネットワーク装置２００Ｂは、拒絶応答を送ることにより待機系の制御装置１００Ｂによる待機系から稼働系への切り替えを抑制した。しかし、待機系のネットワーク装置２００Ｂにこのような拒絶応答を送信させなくてもよい。この場合、待機系の制御装置１００Ｂは、待機系から稼働系への切り替え指示（初回指示）を待機系のネットワーク装置２００Ｂに送った後、所定の制限時間内に同ネットワーク装置２００Ｂから切り替え指示に対する応答がない場合に、待機系から稼働系への切り替えを取り止めればよい。この態様においても上記実施形態と同様な効果が得られる。
【符号の説明】
【０１１０】
１Ａ…制御システム、１００Ａ，１００Ｂ…制御装置、２００Ａ，２００Ｂ…ネットワーク装置、１１０，２１０…制御部、１２０，２２０…第１通信Ｉ／Ｆ部、１３０，２３０…第２通信Ｉ／Ｆ部、１４０，２４０…第３通信Ｉ／Ｆ部、１５０，２５０…記憶部、１５２，２５２…揮発性記憶部、１５２２ａ…制御データ領域、１５２２ｂ，２５２２ｂ…ＩＯデータ領域、１５２２ｃ，２５２２ｃ…状態データ領域、１５４，２５４…不揮発性記憶部、２５４２…制御プログラム、１５４２ａ…制御演算部、１５４２ｂ…等値化処理部、１５４２ｃ…二重化動作制御部、２５４２ａ…ＩＯマスタ機器部、２５４２ｂ…中継処理部、２５４２ｃ…等値化処理部、２５４２ｄ…二重化動作監視部、１６０，２６０…バス、３０Ａ，３０Ｂ…ＩＯネットワーク、４０，４００…等値化ケーブル、５０…監視システム、Ｓ１〜Ｓｎ…ＩＯスレーブ装置。
【図１】
0006350154.tif 000002
【図２】
0006350154.tif 000003
【図３】
0006350154.tif 000004
【図４】
0006350154.tif 000005
【図５】
0006350154.tif 000006
【図６】
0006350154.tif 000007
【図７】
0006350154.tif 000008
【図８】
0006350154.tif 000009
【図９】
0006350154.tif 000010