(57)【特許請求の範囲】
【請求項１】
ネットワークに接続された機器から監視データを収集し、該監視データに基づいて制御を行う制御システムにおいて、
一方は稼働系、他方は待機系となる第１および第２の制御装置と、
前記ネットワークに接続されているとともに前記第１の制御装置に接続され、前記第１の制御装置が稼働系であれば稼働系となり、前記第１の制御装置が待機系であれば待機系となる第１の中継装置と、
前記ネットワークに接続されているとともに前記第２の制御装置に接続され、前記第２の制御装置が稼働系であれば稼働系となり、前記第２の制御装置が待機系であれば待機系となる第２の中継装置と、
前記第１の制御装置と前記第２の中継装置の通信を仲介するとともに前記第２の制御装置と前記第１の中継装置の通信を仲介する冗長化通信手段と、
前記第１の中継装置と前記第２の中継装置の通信を仲介する中継装置間通信手段と、
を有し、
前記稼働系の中継装置は、
前記ネットワークを介して受信した監視データを稼働系の制御装置へ転送する第１の処理と当該監視データを前記中継装置間通信手段を介して待機系の中継装置へ転送する第２の処理のうち、少なくとも前記第１の処理を実行し、
前記待機系の中継装置は、
前記中継装置間通信手段を介して受信した監視データを前記冗長化通信手段を介して前記稼働系の制御装置へ転送し、
前記稼働系の制御装置は、
前記稼働系の中継装置から受信した監視データと、前記冗長化通信手段を介して前記待機系の中継装置から受信した監視データの何れかに基づいて前記制御を行う
ことを特徴とする制御システム。
【請求項２】
前記第１および第２の中継装置の各々は、前記中継装置間通信手段を介した通信により、前記ネットワークから受信した監視データの等値化を行うことを特徴とする請求項１に記載の制御システム。
【請求項３】
前記稼働系の中継装置は、前記第１の処理による監視データの転送ができない場合に前記第２の処理を実行する
ことを特徴とする請求項１または請求項２に記載の制御システム。
【請求項４】
前記稼働系の中継装置は、前記第１の処理と前記第２の処理の両者を実行し、
前記稼働系の制御装置は、接続先の中継装置から転送されてきた監視データと前記冗長化通信手段を介して前記待機系の中継装置から転送されてきた監視データの各々について既受信であるか否かを判定し、既受信であれば当該受信した監視データを破棄する一方、既受信でなければ当該受信した監視データに基づいて前記制御を実行する
ことを特徴とする請求項１または請求項２に記載の制御システム。
【請求項５】
前記第１および第２の制御装置間の通信を仲介する制御装置間通信手段を有し、
前記稼働系の制御装置は、受信した監視データを基に演算データを生成し、
前記第１および第２の制御装置の各々は、前記制御装置間通信手段を介した通信により、前記演算データの等値化を行う
ことを特徴とする請求項１〜請求項４の何れか１の請求項に記載の制御システム。
【請求項６】
ネットワークに接続された機器から監視データを収集し、該監視データに基づいて制御を行う制御システムにおいて、
一方は稼働系、他方は待機系となる第１および第２の制御装置と、
前記ネットワークに接続されているとともに前記第１の制御装置に接続され、前記第１の制御装置が稼働系であれば稼働系となり、前記第１の制御装置が待機系であれば待機系となる第１の中継装置と、
前記ネットワークに接続されているとともに前記第２の制御装置に接続され、前記第２の制御装置が稼働系であれば稼働系となり、前記第２の制御装置が待機系であれば待機系となる第２の中継装置と、
前記第１の制御装置と前記第２の中継装置の通信を仲介するとともに前記第２の制御装置と前記第１の中継装置の通信を仲介する冗長化通信手段と、
前記第１の制御装置と前記第２の制御装置の通信を仲介する制御装置間通信手段と、
を有し、
前記稼働系の中継装置は、
前記ネットワークを介して受信した監視データを接続先の制御装置へ転送する第１の処理と当該監視データを前記冗長化通信手段を介して待機系の制御装置へ転送する第２の処理のうち、少なくとも前記第１の処理を実行し、
前記待機系の制御装置は、
前記冗長化通信手段を介して前記稼働系の中継装置から受信した監視データを前記制御装置間通信手段を介して前記稼働系の制御装置へ転送し、
前記稼働系の制御装置は、
前記稼働系の中継装置から受信した監視データと、前記制御装置間通信手段を介して前記待機系の制御装置から受信した監視データの何れかに基づいて前記制御を行う
ことを特徴とする制御システム。
【請求項７】
前記稼働系の制御装置は、受信した監視データを基に演算データを生成し、
前記第１および第２の制御装置の各々は、前記制御装置間通信手段を介した通信により、前記演算データの等値化を行う
ことを特徴とする請求項６に記載の制御システム。
【請求項８】
前記稼働系の中継装置は、前記第１の処理による監視データの転送ができない場合に前記第２の処理を実行することを特徴とする請求項６または請求項７に記載の制御システム。
【請求項９】
前記稼働系の中継装置は、前記第１の処理と前記第２の処理の両者を実行し、
前記稼働系の制御装置は、接続先の中継装置から転送されてきた監視データと前記制御装置間通信手段を介して前記待機系の制御装置から転送されてきた監視データの各々について既受信であるか否かを判定し、既受信であれば当該受信した監視データを破棄する一方、既受信でなければ当該受信した監視データに基づいて前記制御を実行する
ことを特徴とする請求項６または請求項７に記載の制御システム。
【請求項１０】
前記第１および第２の中継装置間の通信を仲介する中継装置間通信手段を有し、
前記第１および第２の中継装置の各々は、前記中継装置間通信手段を介した通信により、前記ネットワークから受信した監視データの等値化を行うことを特徴とする請求項６〜請求項９の何れか１の請求項に記載の制御システム。
【請求項１１】
一方が稼働系となって制御を行い他方が待機系となる第１および第２の制御装置の一方に制御装置中継装置間通信手段を介して接続されるとともに、監視データを送信する機器が接続されたネットワークに接続される中継装置において、
前記第１および第２の制御装置の他方に冗長化通信手段を介して接続されるととともに、当該他方の制御装置に接続された他の中継装置と中継装置間通信手段を介して接続され、
前記ネットワークを介して受信した監視データを前記制御装置中継装置間通信手段の接続先へ転送する第１の処理手段と、
前記ネットワークを介して受信した監視データを前記中継装置間通信手段の接続先へ転送する第２の処理手段と、
前記中継装置間通信手段を介して受信した監視データを前記冗長化通信手段を介して他方の制御装置へ転送する第３の処理手段と、を有し、
前記制御装置中継装置間通信手段の接続先が稼働系である場合には、前記第１の処理手段と前記第２の処理手段のうち少なくとも前記第１の処理手段による転送を実行し、待機系である場合には前記第３の処理手段による転送を行う
ことを特徴とする中継装置。
【請求項１２】
一方が稼働系となって制御を行い他方が待機系となる第１および第２の制御装置の一方に制御装置中継装置間通信手段を介して接続されるとともに、監視データを送信する機器が接続されたネットワークに接続される中継装置において、
前記第１および第２の制御装置の他方と冗長化通信手段を介して接続され、
前記ネットワークを介して受信した監視データを前記制御装置中継装置間通信手段の接続先へ転送する第１の処理手段と、
前記ネットワークを介して受信した監視データを前記冗長化通信手段を介して他方の制御装置へ転送する第２の処理手段と、を有し、
前記制御装置中継装置間通信手段の接続先が稼働系である場合には、少なくとも前記第１の処理手段による転送を行う
ことを特徴とする中継装置。
【請求項１３】
一方が稼働系となって制御を行い、他方が待機系となる２つの制御装置を含む制御システムにおける制御装置において、
監視データを送信する機器が接続されたネットワークに各々接続された２つの中継装置の一方に制御装置中継装置間通信手段を介して接続され、他方に冗長化通信手段を介して接続され、
前記制御装置中継装置間通信手段の接続先から受信した監視データに基づいて前記制御を行う第１の処理手段と、
前記冗長化通信手段の接続先から受信した監視データに基づいて前記制御を行う第２の処理手段と、を有し、
稼働系となっている場合には、前記第１の処理手段と前記第２の処理手段の何れか一方により前記制御を行う
ことを特徴とする制御装置。
【請求項１４】
一方が稼働系となって制御を行い、他方が待機系となるとともに制御装置間通信手段を介して互いに接続された２つの制御装置を含む制御システムにおける制御装置において、
監視データを送信する機器が接続されたネットワークに各々接続された２つの中継装置の一方に制御装置中継装置間通信手段を介して接続され、他方に冗長化通信手段を介して接続され、
前記制御装置中継装置間通信手段の接続先から受信した監視データに基づいて前記制御を行う第１の処理手段と、
前記制御装置間通信手段の接続先から受信した監視データに基づいて前記制御を行う第２の処理手段と、
前記冗長化通信手段の接続先から受信した監視データを前記制御装置間通信手段を介して他方の制御装置へ転送する第３の処理手段と、を有し、
稼働系となっている場合には、前記第１の処理手段と前記第２の処理手段のうちの何れか一方により前記制御を行い、待機系となっている場合には、前記第３の処理手段による転送を行う
ことを特徴とする制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、稼働系と待機系の制御装置および中継装置を含む制御システムに関する。
【背景技術】
【０００２】
工場や各種プラント等の産業施設においては、各種操業を制御するために制御システムと呼ばれる通信システムが構築されることが多い。制御システムには、産業施設内に設置されたセンサからの監視データの収集やその収集結果に応じて電動機等の駆動制御を行う制御装置が含まれている。このような制御装置としては、ＤＣＳ（Distributed Control
System：分散型制御システム或いは分散型制御装置）やプログラマブルロジックコントローラ（以下、ＰＬＣ）が用いられる。一般的なＦＡ（Factory Automation）システムでは制御装置としてＰＬＣが用いられることが多く、高信頼性を要求されるプラント設備では制御装置としてＤＣＳが用いられることが多い。ＤＣＳはＰＬＣに比較して信頼性が高いからである。上記センサのように制御装置による監視データの収集対象となる装置や電動機などの制御対象装置（以下、両者をまとめて「ＩＯスレーブ装置」と呼ぶ）は、ＩＯネットワークと呼ばれるネットワーク（或いはシリアルバス）や制御ネットワーク（ＦＬ−ｎｅｔなどの専用プロトコルに準拠した通信を行うネットワーク）に接続される。制御装置は、中継装置（例えば、ゲートウェイ装置）等のネットワーク装置を介してＩＯネットワークに接続される。
【０００３】
この種の制御システムでは、制御装置等の故障に起因する操業停止を回避するために、制御装置の二重化および監視データのデータ伝送経路の二重化が行われることが一般的である。制御装置の二重化とは、２台の制御装置を設け、その一方を稼働系、他方を待機系として動作させることを言う。これら２台の制御装置の各々は、監視データを収集し、収集した監視データ（或いは収集した監視データと過去の演算結果）を用いて機器制御のための所定の演算を行う。稼働系の制御装置は当該演算結果に基づく制御を行い、待機系の制御装置は、稼働系の制御装置の停止に備える。そして、待機系の制御装置は、稼働系が停止するとき（或いは停止したとき）には、稼働系として動作し、機器制御を継続する。ここで、稼働系の制御装置の停止の具体例としては、何らかの故障や不具合の発生に起因する予期せぬ停止や、保守メンテナンス等による予め計画された停止などが考えられる。待機系の制御装置はこれら２種類の停止の両方に備える。データ伝送経路の二重化とは、例えばＩＯスレーブ装置から二重化された制御装置の一方へ至るデータ伝送経路と、他方へ至るデータ伝送経路とを各々別個に設けることを言う。以下では、制御装置とデータ伝送経路の両方が二重化された制御システムのことを「冗長化制御システム」と呼ぶ。
【０００４】
図１９は、従来の冗長化制御システム３の構成例を示す図である。図１９に示す冗長化制御システム３では、ＩＯネットワークに接続され産業施設内に設置された各種センサなどのＩＯスレーブ装置、制御ネットワークに接続された電動機等の制御対象装置および制御装置の稼働状態等の監視を行うための監視システムの図示は省略している。図１９の冗長化制御システム３は、制御装置１０Ａおよび制御装置１０Ｂの２台の制御装置と、ネットワーク装置２０Ａおよびネットワーク装置２０Ｂの２台のネットワーク装置とを有している。制御装置１０Ａと制御装置１０Ｂのうちの一方が稼働系となり、他方は待機系となって稼働系の停止に備える。また、制御装置１０Ａはネットワーク装置接続バス６０Ａを介してネットワーク装置２０Ａに接続されており、制御装置１０Ｂはネットワーク装置接続バス６０Ｂを介してネットワーク装置２０Ｂに接続されている。ネットワーク装置２０Ａおよびネットワーク装置２０Ｂはネットワーク３０’に接続されている。ネットワーク３０’はＩＯネットワークである。
【０００５】
図１９に示す冗長化制御システム３では、制御装置１０Ａと制御装置１０Ｂの各々は、他方の状態監視を行えるようにするために、等値化ケーブル４０により接続されている。前述したように待機系の制御装置は、稼働系の制御装置について故障等に起因する予期せぬ停止や保守メンテナンス等の計画的な停止などに備えるのであるが、以下では故障により停止する場合を例にとって制御装置について説明する。制御装置１０Ａと制御装置１０Ｂの各々は、自装置の状態（故障の有無）を示す状態データを等値化ケーブル４０を介して他方に送信する。例えば、制御装置１０Ａが稼働系となっている場合、待機系である制御装置１０Ｂは、等値化ケーブル４０を介して制御装置１０Ａから送信されてくる状態データを参照して制御装置１０Ａにおける故障発生を監視する。そして、制御装置１０Ｂは、等値化ケーブル４０を介して受信した状態データから制御装置１０Ａの故障発生を検出すると、以降、稼働系としての動作を開始する。一方、制御装置１０Ａは制御装置１０Ｂが稼働系としての動作を開始したことを等値化ケーブル４０を介した通信により検出し、以降、待機系として動作する。
【０００６】
冗長化制御システムでは、稼働系の制御装置に故障が発生しても稼働系／待機系の切り替えを行うことで、ＩＯスレーブ装置からのデータ収集、その収集結果に応じた演算、およびその演算結果に応じた制御を継続することができる。しかし、単に稼働系／待機系の切り替えを行うだけでは、その切り替え前後で上記演算結果が突変するなどの不具合が発生する場合がある。これは、ＩＯスレーブ装置から制御装置１０Ａと制御装置１０Ｂの各々に送られる監視データや、制御装置１０Ａと制御装置１０Ｂの各々から制御対象装置に送られる演算結果を表す演算データが完全に同一であるとは限らないことに起因している。
【０００７】
このような不具合の発生を回避するため、冗長化制御システムでは、ＩＯスレーブ装置の各々から各制御装置へ送信されてくる監視データの等値化や、当該監視データによる演算結果の等値化といった処理を各制御装置に実行させることが一般的である。監視データの等値化とは、稼働系の制御装置がネットワーク装置経由で受信した監視データを等値化ケーブル４０を介して待機系の制御装置へ送信し、当該監視データで待機系の制御装置がネットワーク３０’経由で受信した監視データを上書きすることを言う。また、演算結果の等値化とは、稼働系における演算結果を示す演算データを等値化ケーブル４０を介して待機系の制御装置に送信し、当該演算データで待機系における演算結果を上書きすることを言う。このような冗長化制御システムおよび等値化に関する従来技術の一例としては特許文献１や特許文献２に開示の技術が挙げられる。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２０１３−１２０９４号公報
【特許文献２】特開２０１３−１５２６３１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
図１９に示す冗長化制御システム３において、制御装置１０Ａとネットワーク装置２０ＡよりなるＡ系が稼働系として動作しており、制御装置１０Ｂとネットワーク装置２０ＢよりなるＢ系が待機系として動作している場合について説明する。制御装置１０Ａとネットワーク装置２０Ａとを接続しているネットワーク装置接続バス６０Ａが切断されると、制御装置１０Ａとネットワーク装置２０Ａとの間ではデータの送受信が行えなくなり、制御装置１０Ａは故障発生を示す状態データを等値化ケーブル４０を介して制御装置１０Ｂに送信する。制御装置１０Ｂは、受け取った状態データから制御装置１０Ａの故障を検出すると稼働系としての動作を開始し、制御装置１０Ｂが稼働系としての動作を開始したことを示す状態データを等値化ケーブル４０を介して制御装置１０Ａに送信する。制御装置１０Ａは、制御装置１０Ｂが稼働系としての動作を開始したこと示す状態データを等値化ケーブル４０を介して受信し、以降、待機系として動作する。このように、制御装置１０Ａとネットワーク装置２０Ａとを接続するネットワーク装置接続バス６０Ａが切断されても、稼働系／待機系の切り替えが発生するため、特段の問題は生じないかに見える。しかし、制御装置１０Ａと制御装置１０Ｂの稼働系／待機系の切り替えが完了するまでは、それまで稼働系であった制御装置１０Ａ自体には何ら問題が無いにも拘らず、制御対象装置の制御を行うことはできない、といった問題が生じる。
【００１０】
本発明は以上に説明した課題に鑑みて為されたものであり、従来よりも稼働系／待機系の切り替えの発生頻度を減らし、冗長化制御システムの可用性を向上させることを可能にする技術を提供することを目的とする。
【課題を解決するための手段】
【００１１】
上記課題を解決するために本発明は、ネットワークに接続された機器から監視データを収集し、該監視データに基づいて制御を行う制御システムとして、以下の第１および第２の制御装置と第１および第２の中継装置とを有する制御システムを提供する。第１および第２の制御装置のうちの一方は稼働系、他方は待機系となる。第１および第２の中継装置の具体例としては、前述したネットワーク装置が挙げられる。第１の中継装置は上記ネットワークに接続されているとともに、第１の制御装置に接続されている。第１の中継装置は、その接続先である第１の制御装置が稼働系であれば稼働系の中継装置として機能し、当該第１の制御装置が待機系であれば待機系の中継装置として機能する。第２の中継装置は、上記ネットワークに接続されているとともに第２の制御装置に接続されている。第２の中継装置も、その接続先である第２の制御装置が稼働系であれば稼働系の中継装置として機能し、当該第２の制御装置が待機系であれば待機系の中継装置として機能する。上記制御システムは、第１の制御装置と第２の中継装置の通信を仲介するとともに第２の制御装置と第１の中継装置の通信を仲介する冗長化通信手段と、第１の中継装置と第２の中継装置の通信を仲介する中継装置間通信手段と、を有している。上記第１および第２の中継装置の各々は、ネットワークを介して受信した監視データを接続先の制御装置へ転送する第１の処理を実行する第１の処理手段と、ネットワークを介して受信した監視データを中継装置間通信手段を介して他方の中継装置へ転送する第２の処理を実行する第２の処理手段と、中継装置間通信手段を介して他方の中継装置から受信した監視データを冗長化通信手段を介して他方の制御装置へ転送する第３の処理を実行する第３の処理手段と、を有している。そして、稼働系の中継装置は、上記第１の処理と第２の処理のうち、少なくとも第１の処理を実行し、待機系の中継装置は、上記第３の処理を実行する。稼働系の制御装置は、接続先の中継装置から受信した監視データと、冗長化通信手段を介して待機系の中継装置から受信した監視データの何れかに基づいて上記制御を行う。
【００１２】
本発明によれば稼働系の制御装置は、接続先の中継装置と、冗長化通信手段を介して他方の中継装置との少なくとも一方から監視データを受信し、当該監視データに基づいて制御を行う。そのため、稼働系の制御装置と稼働系の中継装置との接続が切断されても監視データを受信することができ、制御装置について稼働系／待機系の切り替えを行う必要はない。したがって、本発明によれば、従来の冗長化制御システムに比較して稼働系／待機系の切り替えの発生頻度を減らすことができ、可用性を向上させることができる。
【００１３】
より好ましい態様においては、前記第１および第２の中継装置の各々は、前記中継装置間通信手段を介した通信により、前記ネットワークから受信した監視データの等値化を行う。上記第２の処理は、監視データの等値化のための処理の一部であっても良いし、監視データの等値化のための処理とは別個の処理であっても良い。この態様によれば、監視データの等値化が第１および第２の中継装置により行われる。このため、監視データの等値化を制御装置側で行う従来の冗長化制御システムに比較して、第１および第２の制御装置にかかる処理負荷を軽減することができる。
【００１４】
より好ましい態様においては、稼働系の中継装置は、前記第１の処理による監視データの転送ができない場合に前記第２の処理を実行する。前記第１の処理による監視データの転送ができない場合には、前記第１の処理を実行しその結果転送不能であった場合と、前記第１の処理の実行に先立って監視データの転送先との通信が可能であるか否かを判定し、通信不能と判定された場合とが含まれる。この態様によれば、稼働系の制御装置への監視データの転送ができない場合にのみ第２の処理が実行されるため、稼働系の制御装置への監視データの転送が可能であるか否かを問わず常に第１および第２の処理の両者を実行する態様に比較して中継装置間通信手段におけるデータ伝送帯域の無駄使いを回避することができる。
【００１５】
また別の好ましい態様においては、稼働系の中継装置は、前記第１の処理と前記第２の処理の両者を実行し、稼働系の制御装置は、接続先の中継装置から転送されてきた監視データと、冗長化通信手段を介して待機系の中継装置から転送されてきた監視データの各々について既受信であるか否かを判定し、既受信であれば当該受信した監視データを破棄する一方、既受信でなければ当該受信した監視データに基づいて前記制御を実行する。この態様によれば、接続先の制御装置との通信が可能であるか否かの判定を中継装置に行わせないため、中継装置にかかる処理負荷を軽減することができる。なお、稼働系の制御装置は、監視データが既受信であるか否かを判定するため、同じ監視データに基づく演算を重複して実行することはない。
【００１６】
より好ましい態様においては、第１および第２の制御装置間の通信を仲介する制御装置間通信手段を有し、稼働系の制御装置は、受信した監視データを基に演算データを生成し、第１および第２の制御装置の各々は、制御装置間通信手段を介した通信により、前記演算データの等値化を行う。この態様によれば、第１および第２の制御装置間において演算データの等値化を行い、稼働系の制御装置は、等値化済の演算データを対象として制御対象装置の制御を行うので、第１および第２の制御装置が各々演算した演算データが突変して異なる演算データとなることを防止することができる。
【００１７】
また上記課題を解決するために本発明は、ネットワークに接続された機器から監視データを収集し、該監視データに基づいて制御を行う制御システムとして、以下の第１および第２の制御装置と第１および第２の中継装置とを有する制御システムを提供する。第１および第２の制御装置のうちの一方は稼働系、他方は待機系となる。第１の中継装置は上記ネットワークに接続されているとともに、第１の制御装置に接続されている。第１の中継装置は、その接続先である第１の制御装置が稼働系であれば稼働系の中継装置として機能し、当該第１の制御装置が待機系であれば待機系の中継装置として機能する。第２の中継装置は、上記ネットワークに接続されているとともに第２の制御装置に接続されている。第２の中継装置も、その接続先である第２の制御装置が稼働系であれば稼働系の中継装置として機能し、当該第２の制御装置が待機系であれば待機系の中継装置として機能する。上記制御システムは、第１の制御装置と第２の中継装置の通信を仲介するとともに第２の制御装置と第１の中継装置の通信を仲介する冗長化通信手段と、第１の制御装置と第２の制御装置の通信を仲介する制御装置間通信手段と、を有している。第１および第２の中継装置の各々は、前記ネットワークを介して受信した監視データを接続先の制御装置へ転送する第１の処理を実行する第１の処理手段と、前記ネットワークを介して受信した監視データを冗長化通信手段を介して他方の制御装置へ転送する第２の処理を実行する第２の処理手段と、を有している。稼働系の中継装置は、少なくとも前記第１の処理を実行する。待機系の制御装置は、冗長化通信手段を介して稼働系の中継装置から受信した監視データを制御装置間通信手段を介して稼働系の制御装置へ転送する。稼働系の制御装置は、接続先の中継装置から受信した監視データと、制御装置間通信手段を介して待機系の制御装置から受信した監視データの何れかに基づいて前記制御を行う。この態様によれば、稼働系の制御装置は、接続先の中継装置からと、制御装置間通信手段を介して待機系の制御装置からとの少なくとも一方から監視データを受信し、当該監視データに基づいて制御を行う制御システムを提供する。本態様によっても、制御装置と中継装置の稼働系／待機系の切り替えの頻度を減らすことができる。
【００１８】
より好ましい態様においては、稼働系の制御装置は、受信した監視データを基に演算データを生成し、第１および第２の制御装置の各々は、制御装置間通信手段を介した通信により、前記演算データの等値化を行う。この態様によれば、第１および第２の制御装置間において演算データの等値化を行い、稼働系の制御装置は、等値化済の演算データを対象として制御対象装置の制御を行うので、第１および第２の制御装置が各々演算した演算データが突変して異なる演算データとなることを防止することができる。
【００１９】
より好ましい態様においては、稼働系の中継装置は、前記第１の処理による監視データの転送ができない場合に第２の処理を実行する。この態様によれば、稼働系の制御装置への監視データの転送ができない場合にのみ第２の処理が実行されるため、稼働系の制御装置への監視データの転送ができるか否を問わず常に第１および第２の処理の両者を実行する態様に比較して制御装置間通信手段におけるデータ伝送帯域の無駄使いを回避することができる。
【００２０】
また別の好ましい態様においては、稼働系の中継装置は、第１の処理と第２の処理の両者を実行し、稼働系の制御装置は、接続先の中継装置から転送されてきた監視データと、制御装置間通信手段を介して待機系の制御装置から転送されてきた監視データの各々について既受信であるか否かを判定し、既受信であれば当該受信した監視データを破棄する一方、既受信でなければ当該受信した監視データに基づいて前記制御を実行する。この態様によれば、接続先の制御装置との通信が可能であるか否かの判定を中継装置に行わせないため、中継装置にかかる処理負荷を軽減することができる。なお、稼働系の制御装置は、監視データが既受信であるか否かを判定するため、同じ監視データに基づく演算を重複して実行することはない。
【００２１】
より好ましい態様においては、第１および第２の中継装置間の通信を仲介する中継装置間通信手段を有し、第１および第２の中継装置の各々は、中継装置間通信手段を介した通信により、前記ネットワークから受信した監視データの等値化を行う。この態様によれば、第１および第２の中継装置間において監視データの等値化が行われるので、第１および第２の中継装置が各々収集した監視データが突変して異なる監視データとなることを防止することができる。
【００２２】
また、上記課題を解決するための本発明は、一方が稼働系となって制御を行い他方が待機系となる第１および第２の制御装置の一方に制御装置中継装置間通信手段を介して接続されるとともに、監視データを送信する機器の接続されたネットワークに接続される中継装置として、以下の第１、第２および第３の処理手段を有する中継装置と提供する。この中継装置は、第１および第２の制御装置の他方に冗長化通信手段を介して接続されるとともに、当該他方の制御装置に接続された他の中継装置と中継装置間通信手段を介して接続される。第１の処理手段は、前記ネットワークを介して受信した監視データを制御装置中継装置間通信手段の接続先へ転送する手段である。第２の処理手段は、前記ネットワークを介して受信した監視データを中継装置間通信手段の接続先へ転送する手段である。第３の処理手段は、中継装置間通信手段を介して受信した監視データを冗長化通信手段を介して他方の制御装置へ転送する手段である。そして、当該中継装置は、制御装置中継装置間通信手段の接続先が稼働系である場合には、前記第１の処理手段と前記第２の処理手段のうち、少なくとも前記第１の処理手段による転送を行い、待機系であれば、前記第３の処理手段による転送を行う。本態様によっても、制御装置と中継装置の稼働系／待機系の切り替えの頻度を減らすことができる。
【００２３】
また上記課題を解決するために本発明は  一方が稼働系となって制御を行い他方が待機系となる第１および第２の制御装置の一方に制御装置中継装置間通信手段を介して接続されるとともに、監視データを送信する機器の接続されたネットワークに接続される中継装置として、以下の第１および第２の処理手段を有する中継装置を提供する。この中継装置は、第１および第２の制御装置の他方と冗長化通信手段を介して接続される。第１の処理手段は、前記ネットワークを介して受信した監視データを制御装置中継装置間通信手段の接続先へ転送する手段である。第２の処理手段は、前記ネットワークを介して受信した監視データを冗長化通信手段を介して他方の制御装置へ転送する手段である。そして、当該中継装置は、制御装置中継装置間通信手段の接続先が稼働系である場合には少なくとも前記第１の処理手段による転送を実行する。本態様によっても、制御装置と中継装置の稼働系／待機系の切り替えの頻度を減らすことができる。
【００２４】
また、上記課題を解決するための本発明は、一方が稼働系となって制御を行い、他方が待機系となる２つの制御装置を含む制御システムにおける制御装置として以下の第１および第２の処理手段を有する制御装置を提供する。この制御装置は、監視データを送信する機器が接続されたネットワークに各々接続された２つの中継装置の一方に制御装置中継装置間通信手段を介して接続され、他方に冗長化通信手段を介して接続される。第１の処理手段は、制御装置中継装置間通信手段の接続先から受信した監視データに基づいて前記制御を行う手段である。第２の処理手段は、前記冗長化通信手段の接続先から受信した監視データに基づいて前記制御を行う手段である。この制御装置は、稼働系となっている場合には、前記第１の処理手段と前記第２の処理手段の何れか一方により前記制御を行う。本態様によっても、制御装置と中継装置の稼働系／待機系の切り替えの頻度を減らすことができる。
【００２５】
また上記課題を解決するために本発明は、一方が稼働系となって制御を行い、他方が待機系となるとともに制御装置間通信手段を介して互いに接続された２つの制御装置を含む制御システムにおける制御装置として第１、第２および第３の処理手段を有する制御装置を提供する。この制御装置は、監視データを送信する機器が接続されたネットワークに各々接続された２つの中継装置の一方に制御装置中継装置間通信手段を介して接続され、他方に冗長化通信手段を介して接続される。第１の処理手段は、制御装置中継装置間通信手段の接続先から受信した監視データに基づいて前記制御を行う手段である。第２の処理手段は、制御装置間通信手段の接続先から受信した監視データに基づいて前記制御を行う手段である。そして、第３の処理手段は、冗長化通信手段の接続先から受信した監視データを制御装置間通信手段の接続先に転送する手段である。この制御装置は、稼働系となっている場合には、前記第１の処理手段と前記第２の処理手段うちの何れか一方により前記制御を行い、待機系となっている場合には、前記第３の処理手段による転送を実行する。本態様によっても、制御装置と中継装置の稼働系／待機系の切り替えの頻度を減らすことができる。
【発明の効果】
【００２６】
以上説明したように、本発明によれば、冗長化制御システムにおける稼働系／待機系の切り替えの発生頻度を従来よりも減らし、冗長化制御システムの可用性を向上させることが可能になる。
【図面の簡単な説明】
【００２７】
【図１】本発明の中継装置の一例のネットワーク装置２００を含む冗長化制御システム（本発明の第１実施形態の冗長化制御システム１）の構成例を示す図である。
【図２】同冗長化制御システム１のネットワーク装置２００の構成例を示すブロック図である。
【図３】同冗長化制御システム１の制御装置１００の構成例を示すブロック図である。
【図４】ネットワーク装置接続バス６０Ａが正常である場合の同冗長化制御システム１の監視データの送信の流れを示す図である。
【図５】同ネットワーク装置２００の制御部２１０が中継制御プログラム２６４２にしたがって実行する動作を説明するための図である。
【図６】同ネットワーク装置２００の制御部２１０が中継制御プログラム２６４２にしたがって実行する等値化／転送処理２６４２ｂの流れを示すフローチャートである。
【図７】同ネットワーク装置２００が実行するネットワーク装置受信処理の流れを示すフローチャートである。
【図８】同ネットワーク装置２００が実行するネットワーク装置送信処理の流れを示すフローチャートである。
【図９】同制御装置１００の制御部１１０が制御プログラム１５４２にしたがって実行する動作を説明するための図である。
【図１０】同制御装置１００の制御部１１０が制御プログラム１５４２にしたがって実行する等値化処理１５４２ｂの流れを示すフローチャートである。
【図１１】ネットワーク装置接続バス６０Ａが正常でない場合の同冗長化制御システム１の監視データの送信の流れを示す図である。
【図１２】本発明の第２実施形態の冗長化制御システム１のネットワーク装置２００が実行するネットワーク装置送信処理の流れを示すフローチャートである。
【図１３】同冗長化制御システム１の制御装置１００が実行する制御装置受信処理の流れを示すフローチャートである。
【図１４】ネットワーク装置接続バス６０Ａが正常である場合の同冗長化制御システム１の監視データの送信の流れを示す図である。
【図１５】変形例（８）の冗長化制御システム１において、ネットワーク装置接続バス６０Ａが正常でない場合の監視データの送信の流れを示す図である。
【図１６】変形例（１０）の冗長化制御システム２の構成例を示す図である。
【図１７】ネットワーク装置接続バス６０Ａが正常である場合の同冗長化制御システム２における監視データの送信の流れを示す図である。
【図１８】ネットワーク装置接続バス６０Ａが正常でない場合の同冗長化制御システム２における監視データの送信の流れを示す図である。
【図１９】従来の冗長化制御システム３の構成例を示す図である。
【発明を実施するための形態】
【００２８】
以下、図面を参照しつつ本発明の実施形態を説明する。
＜第１実施形態＞
（Ａ：構成）
図１は、本発明の第１実施形態の冗長化制御システム１の一構成例を示す図である。図１では、ＩＯネットワークに接続され産業施設内に設置された各種センサや制御対象装置などのＩＯスレーブ装置と制御装置の稼働状態等の監視を行うための監視システムの図示は省略されている。冗長化制御システム１は、前掲図１９に示した冗長化制御システム３と同様、産業施設内に敷設された制御システムである。図１では図１９におけるものと同一の構成要素には同一の符号が付されている。図１と図１９とを対比すれば明らかなように、冗長化制御システム１は、以下の５つの点が図１９に示す従来の冗長化制御システム３と異なる。第１に、制御装置１０Ａおよび制御装置１０Ｂの代わりに制御装置１００Ａおよび制御装置１００Ｂを有する点である。第２に、ネットワーク装置２０Ａおよびネットワーク装置２０Ｂの代わりにネットワーク装置２００Ａおよびネットワーク装置２００Ｂを有する点である。第３に、ネットワーク装置２００Ａとネットワーク装置２００Ｂが等値化ケーブル５００により接続されている点である。第４に、制御装置１００Ａとネットワーク装置２００Ｂが冗長化接続バス６００により接続されている点である。そして、第５に、制御装置１００Ｂとネットワーク装置２００Ａが冗長化接続バス７００により接続されている点である。
【００２９】
ネットワーク装置２００Ａとネットワーク装置２００Ｂの各々は本発明の中継装置の一実施形態であり、等値化ケーブル５００は当該中継装置同士の通信を仲介する中継装置間通信手段の役割を果たす。ネットワーク装置２００Ａおよびネットワーク装置２００Ｂは、図１９におけるネットワーク装置２０Ａやネットワーク装置２０Ｂと同様にゲートウェイ装置である。図１に示す冗長化制御システム１では、図示しないＩＯスレーブ装置から送信された監視データは、ＩＯネットワーク３０およびネットワーク装置２００Ａを介して制御装置１００Ａに伝送されるとともに、ＩＯネットワーク３０およびネットワーク装置２００Ｂを介して制御装置１００Ｂに伝送される。制御装置１００Ａおよび制御装置１００Ｂの各々は、図１９における制御装置１０Ａおよび制御装置１０Ｂと同様に、ＩＯスレーブ装置からの監視データの収集、過去の演算結果を使用した演算（機器制御のための演算）、およびその演算結果の記憶を行う。制御装置１００Ａおよび制御装置１００Ｂは、ＰＬＣであっても良いし、ＤＣＳであっても良い。
【００３０】
図１に示す冗長化制御システム１では、制御装置１００Ａと制御装置１００Ｂのうちの一方が稼動系となって上記演算結果に基づく他の機器の制御を実行し、他方は待機系となって稼動系の停止（前述した２種類の停止など）に備える。そして、稼動系が停止するときには、待機系となっていた制御装置は、以降、稼動系として動作する。なお、稼動系と待機系の切り替えについては、従来の冗長化制御システム３と同様の方法により実現すれば良い。
【００３１】
前述したように、稼動系／待機系の切り替えの際には、演算結果の突変を回避するために監視データの等値化と演算結果の等値化が必要となる。図１９に示す従来の冗長化制御システム３では、監視データの等値化と演算結果の等値化を制御装置１０Ａおよび制御装置１０Ｂに行わせていたが、本実施形態では、監視データの等値化をネットワーク装置２００Ａおよびネットワーク装置２００Ｂに行わせ、制御装置１００Ａおよび制御装置１００Ｂには演算結果の等値化を行わせている。なお、制御装置１００Ａおよび制御装置１００Ｂは同一の構成を有しているため、以下では両者を区別する必要がない場合には「制御装置１００」と表記し、ネットワーク装置２００Ａおよびネットワーク装置２００Ｂは同一の構成を有しているため、以下では両者を区別する必要がない場合には「ネットワーク装置２００」と表記する。
【００３２】
本実施形態では、ネットワーク装置２００についても稼動系と待機系の区別があり、稼働系と待機系で異なる動作を実行する。より詳細に説明すると、ネットワーク装置２００は自身の接続先の制御装置１００と通信し、接続先の制御装置１００が稼動系であるか否かを判定する。そして、ネットワーク装置２００は、接続先の制御装置１００が稼動系であれば、稼動系のネットワーク装置として振る舞い、逆に接続先の制御装置１００が待機系であれば、待機系のネットワーク装置として振る舞う。つまり、本実施形態では、ネットワーク装置２００Ａとネットワーク装置２００Ｂのうち、稼動系の制御装置１００に接続されている方が稼動系となり、待機系の制御装置１００に接続されている方が待機系となる。制御装置１００自体が故障して、制御装置１００についての稼動系／待機系の切り替えが発生すると、ネットワーク装置２００についても、その切り替えに従属して稼動系と待機系とが切り替えられる。
【００３３】
従来の冗長化制御システム３では、稼働系のネットワーク装置と稼働系の制御装置とを接続するネットワーク装置接続バスの切断が発生した場合、ネットワーク装置や制御装置の稼働系／待機系の切り替えが生じていた。しかし、本実施形態は、ネットワーク装置接続バス６０Ａの切断が発生しても、ネットワーク装置２００や制御装置１００の稼働系／待機系を切り替えることなく制御対象装置の制御を継続できるように構成されており、この点に本実施形態の特徴がある。
以下では、冗長化制御システム１の構成の特徴を顕著に表すネットワーク装置２００および制御装置１００の構成を中心に説明する。
【００３４】
まず、ネットワーク装置２００の構成について説明する。図２は、ネットワーク装置２００の構成例を示すブロック図である。ネットワーク装置２００は、図２に示すように、制御部２１０、第１通信インタフェース（以下、「Ｉ／Ｆ」と略記）部２２０、第２通信Ｉ／Ｆ部２３０、第３通信Ｉ／Ｆ部２４０、第４通信Ｉ／Ｆ部２５０、記憶部２６０、およびこれら構成要素間のデータ授受を仲介するバス２７０を含む。
【００３５】
制御部２１０は、例えばＣＰＵ（Central Processing Unit）である。制御部２１０は記憶部２６０（より正確には不揮発性記憶部２６４）に記憶されている中継制御プログラム２６４２を実行することにより、ネットワーク装置２００の制御中枢として機能する。制御部２１０が中継制御プログラム２６４２にしたがって実行する処理の詳細については後に明らかにする。第１通信Ｉ／Ｆ部２２０、第２通信Ｉ／Ｆ部２３０、第３通信Ｉ／Ｆ部２４０および第４通信Ｉ／Ｆ部２５０の各々は、例えばＮＩＣ（Network Interface Card）である。これら各通信Ｉ／Ｆ部の役割は以下の通りである。
【００３６】
第１通信Ｉ／Ｆ部２２０はＩＯネットワーク３０に接続される。第１通信Ｉ／Ｆ部２２０は、接続先のＩＯネットワーク３０から送信されてくる監視データの受信、および接続先の制御ネットワークへの演算データの送出を行う。第１通信Ｉ／Ｆ部２２０は、接続先のＩＯネットワーク３０から受信した監視データや接続先のＩＯネットワーク３０へ送信する演算データを蓄積する通信バッファを有する（図２では図示略）。
【００３７】
第２通信Ｉ／Ｆ部２３０はネットワーク装置接続バスを介して制御装置１００に接続される。より詳細に説明すると、ネットワーク装置２００Ａの第２通信Ｉ／Ｆ部２３０は、ネットワーク装置接続バス６０Ａを介して制御装置１００Ａに接続される。同様にネットワーク装置２００Ｂの第２通信Ｉ／Ｆ部２３０は、ネットワーク装置接続バス６０Ｂを介して制御装置１００Ｂに接続される。第２通信Ｉ／Ｆ部２３０は、その接続先の制御装置１００から送信される演算データの受信、および接続先の制御装置１００への監視データの送出を行う。第２通信Ｉ／Ｆ部２３０は、接続先の制御装置１００から受信した演算データや接続先の制御装置１００へ送信する監視データを蓄積する通信バッファを有する（図２では図示略）。
【００３８】
第３通信Ｉ／Ｆ部２４０は等値化ケーブルの接続されるポートを有し、当該ポートには等値化ケーブル５００が接続される。第３通信Ｉ／Ｆ部２４０は、等値化ケーブル５００を介して他方のネットワーク装置と監視データの等値化のための通信を行う。第３通信Ｉ／Ｆ部２４０は、接続先のネットワーク装置と通信するための監視データを蓄積する通信バッファを有する（図２では図示略）。
【００３９】
第４通信Ｉ／Ｆ部２５０は冗長化接続バスを介して制御装置１００に接続される。より詳細に説明すると、ネットワーク装置２００Ａの第４通信Ｉ／Ｆ部２５０は、冗長化接続バス７００を介して制御装置１００Ｂに接続される。同様にネットワーク装置２００Ｂの第４通信Ｉ／Ｆ部２５０は、冗長化接続バス６００を介して制御装置１００Ａに接続される。第４通信Ｉ／Ｆ部２５０は、その接続先の制御装置１００から送信される演算データの受信、および接続先の制御装置１００への監視データの送出を行う。第４通信Ｉ／Ｆ部２５０は、接続先の制御装置１００から受信した演算データや接続先の制御装置１００へ送信する監視データを蓄積する通信バッファを有する（図２では図示略）。
【００４０】
記憶部２６０は、図２に示すように揮発性記憶部２６２と不揮発性記憶部２６４とを有する。揮発性記憶部２６２は、例えばＲＡＭ（Random Access Memory）である。揮発性記憶部２６２は、中継制御プログラム２６４２を実行するためのワークエリアとして使用される。また、揮発性記憶部２６２は、制御装置１００へ伝送する監視データを一時的に蓄積する監視データバッファ２６２２の役割も果たす。さらに、揮発性記憶部２６２には、当該揮発性記憶部２６２を有するネットワーク装置２００が稼働系として動作しているのか、それとも待機系として動作しているのかを示す稼働／待機フラグが格納される。不揮発性記憶部２６４は例えばフラッシュＲＯＭである。不揮発性記憶部２６４には中継制御プログラム２６４２が予め格納されている。
【００４１】
制御部２１０は、ネットワーク装置２００の電源（図示略）の投入或いはリセットを契機として不揮発性記憶部２６４から揮発性記憶部２６２へ中継制御プログラム２６４２を読み出し、その実行を開始する。中継制御プログラム２６４２にしたがって作動している制御部２１０は、接続先の制御装置１００の動作状態を監視しその監視結果に応じて稼働／待機フラグを設定する処理を実行する他、中継処理２６４２ａと等値化／転送処理２６４２ｂを実行する。中継処理２６４２ａおよび等値化／転送処理２６４２ｂの詳細については動作例において明らかにするが概略は以下の通りである。すなわち、等値化／転送処理２６４２ｂには、等値化ケーブル５００を介した通信により、ＩＯスレーブ装置から収集した監視データを等値化する処理と当該監視データを他方のネットワーク装置２００に転送する処理が含まれる。一方、中継処理２６４２ａは、大別すると２つの処理から構成される。１つの処理は、等値化／転送処理２６４２ｂにより等値化された監視データを、第２通信Ｉ／Ｆ部２３０に接続された制御装置１００へ転送する処理である。もう１つの処理は、等値化／転送処理２６４２ｂにより他方のネットワーク装置２００から転送された監視データを、第４通信Ｉ／Ｆ部２５０に接続された制御装置１００へ転送する処理である。
【００４２】
次に、制御装置１００の構成について説明する。図３は、制御装置１００の構成例を示すブロック図である。制御装置１００は、図３に示すように、制御部１１０、第１通信Ｉ／Ｆ部１２０、第２通信Ｉ／Ｆ部１３０、第３通信Ｉ／Ｆ部１４０、記憶部１５０、およびこれら構成要素間のデータ授受を仲介するバス１６０を含む。
【００４３】
制御部１１０は、例えばＣＰＵである。制御部１１０は記憶部１５０（より正確には不揮発性記憶部１５４）に記憶されている制御プログラム１５４２を実行することにより、制御装置１００の制御中枢として機能する。制御部１１０が制御プログラム１５４２にしたがって実行する処理の詳細については後に明らかにする。第１通信Ｉ／Ｆ部１２０、第２通信Ｉ／Ｆ部１３０、および第３通信Ｉ／Ｆ部１４０の各々は、例えばＮＩＣ（Network Interface Card）である。これら各通信Ｉ／Ｆ部の役割は以下の通りである。
【００４４】
第１通信Ｉ／Ｆ部１２０はネットワーク装置接続バスを介してネットワーク装置２００に接続される。より詳細に説明すると、制御装置１００Ａの第１通信Ｉ／Ｆ部１２０はネットワーク装置接続バス６０Ａを介してネットワーク装置２００Ａに接続されている。同様に制御装置１００Ｂの第１通信Ｉ／Ｆ部１２０はネットワーク装置接続バス６０Ｂを介してネットワーク装置２００Ｂに接続される。第１通信Ｉ／Ｆ部１２０は、その接続先のネットワーク装置２００から送信される監視データの受信、および接続先のネットワーク装置２００への演算データの送出を行う。第１通信Ｉ／Ｆ部１２０は、接続先のネットワーク装置２００から受信した監視データや接続先のネットワーク装置２００へ送信する演算データを蓄積する通信バッファを有する（図３では図示略）。
【００４５】
第２通信Ｉ／Ｆ部１３０は等値化ケーブルの接続されるポートを有し、当該ポートには等値化ケーブル４００が接続される。第２通信Ｉ／Ｆ部１３０は、等値化ケーブル４００を介して他方の制御装置と演算データの等値化のための通信を行う。第２通信Ｉ／Ｆ部１３０は、接続先の制御装置と通信するための演算データを蓄積する通信バッファを有する（図３では図示略）。
【００４６】
第３通信Ｉ／Ｆ部１４０は冗長化接続バスを介してネットワーク装置２００に接続される。より詳細に説明すると、制御装置１００Ａの第３通信Ｉ／Ｆ部１４０は、冗長化接続バス６００を介してネットワーク装置２００Ｂに接続される。同様に制御装置１００Ｂの第３通信Ｉ／Ｆ部１４０は、冗長化接続バス７００を介してネットワーク装置２００Ａに接続される。第３通信Ｉ／Ｆ部１４０は、その接続先のネットワーク装置２００から送信される監視データの受信、および接続先のネットワーク装置２００への演算データの送出を行う。第３通信Ｉ／Ｆ部１４０は、接続先のネットワーク装置２００から受信した監視データや接続先のネットワーク装置２００へ送信する演算データを蓄積する通信バッファを有する（図３では図示略）。
【００４７】
記憶部１５０は、図３に示すように揮発性記憶部１５２と不揮発性記憶部１５４とを有する。揮発性記憶部１５２は、例えばＲＡＭ（Random Access Memory）である。揮発性記憶部１５２は、制御プログラム１５４２を実行するためのワークエリアとして使用される。また、揮発性記憶部１５２は、ネットワーク装置２００へ伝送する演算データを一時的に蓄積する演算データバッファ１５２２の役割も果たす。さらに、揮発性記憶部１５２には、当該揮発性記憶部１５２を有する制御装置１００が稼働系として動作しているのか、それとも待機系として動作しているのかを示す稼働／待機フラグが格納される。不揮発性記憶部１５４は例えばフラッシュＲＯＭである。不揮発性記憶部１５４には制御プログラム１５４２が予め格納されている。
【００４８】
制御部１１０は、制御装置１００の電源（図示略）の投入或いはリセットを契機として不揮発性記憶部１５４から揮発性記憶部１５２へ制御プログラム１５４２を読み出し、その実行を開始する。制御プログラム１５４２にしたがって作動している制御部１１０は、等値化ケーブル４００を介して接続している他方の制御装置１００の動作状態を監視しその監視結果に応じて稼働／待機フラグを設定する処理を実行する他、演算処理１５４２ａと等値化処理１５４２ｂを実行する。演算処理１５４２ａおよび等値化処理１５４２ｂの詳細については動作例において明らかにするが概略は以下の通りである。すなわち、等値化処理１５４２ｂは、等値化ケーブル４００を介した通信により、演算データを等値化する処理である。演算処理１５４２ａは、接続されたネットワーク装置２００Ａ或いはネットワーク装置２００Ｂから受信した監視データについて演算し、当該演算結果による演算データを生成し、当該演算データを第１通信Ｉ／Ｆ部１２０に接続されるネットワーク装置２００へ転送する処理である。
以上が、冗長化制御システム１全体、ネットワーク装置２００および制御装置１００の構成である。
【００４９】
（Ｂ：動作）
次いで、図４〜図１１を参照しつつ、本実施形態の動作を説明する。以下に説明する動作例では制御装置１００Ａおよびネットワーク装置２００ＡよりなるＡ系が稼働系であり、制御装置１００Ｂおよびネットワーク装置２００ＢよりなるＢ系が待機系であるとする。また、以下に説明する動作例では、動作開始時点ではネットワーク装置２００Ａおよびネットワーク装置２００Ｂの各々の監視データバッファ２６２２が空であり、さらに動作開始時点では制御装置１００Ａおよび制御装置１００Ｂの各々の演算データバッファ１５２２が空である場合について説明する。さらに、以下ではネットワーク装置２００Ａに伝送される監視データを「監視データＡ」と呼び、ネットワーク装置２００Ｂに伝送される監視データを「監視データＢ」と呼ぶ。監視データＡと監視データＢは基本的には同一のデータであるが、各々をサンプリングする際のサンプリングタイミングのズレにより微妙に異なる場合がある。そして、以下では制御装置１００Ａが演算し当該演算結果により生成した演算データを「演算データＡ」と呼び、制御装置１００Ｂが演算し当該演算結果により生成した演算データを「演算データＢ」と呼ぶ。演算データＡと演算データＢは基本的には同一のデータであるが、各々の演算に関与する制御装置１００が異なるので微妙に異なる場合がある。
【００５０】
（Ｂ−１：ネットワーク装置接続バス６０Ａが正常である場合の動作）
まず、図４に示すように、ネットワーク装置接続バス６０Ａが正常である場合の動作について説明する。ネットワーク装置接続バス６０Ａが正常であるとは、ネットワーク装置接続バス６０Ａが切断されておらず、ネットワーク装置２００Ａが制御装置１００Ａと正常に通信が行える状態にあるということである。
【００５１】
ＩＯスレーブ装置は、入力信号（若しくはセンサ等の出力信号）をサンプリングして制御装置１００Ａおよび制御装置１００Ｂの各々に送信する監視データを生成し、ＩＯネットワーク３０へ送信する。ＩＯスレーブ装置が送信する監視データには、当該監視データの送信先および送信元を示す情報（通信アドレスやノード番号）と当該監視データを一意に示す識別子（例えば、シーケンス番号）とを含むヘッダが付与されている。ＩＯスレーブ装置から送信された監視データは、ＩＯネットワーク３０を介してネットワーク装置２００Ａおよびネットワーク装置２００Ｂの各々へと伝送される。
【００５２】
ネットワーク装置２００Ａの第１通信Ｉ／Ｆ部２２０は、ＩＯネットワーク３０から送信される監視データを受信すると、当該受信した監視データを第１通信Ｉ／Ｆ部２２０内の通信バッファに書き込む。ネットワーク装置２００Ｂにおいても同様に、ネットワーク装置２００Ｂの第１通信Ｉ／Ｆ部２２０内の通信バッファには、ＩＯネットワーク３０から受信した監視データが書き込まれる。つまり、本動作例では、ネットワーク装置２００Ａの第１通信Ｉ／Ｆ部２２０内の通信バッファには監視データＡが格納され、ネットワーク装置２００Ｂの第１通信Ｉ／Ｆ部２２０内の通信バッファには監視データＢが格納される。
【００５３】
ネットワーク装置２００Ａの制御部２１０は、第１通信Ｉ／Ｆ部２２０内の通信バッファへの監視データの書き込み（換言すれば、接続先のＩＯネットワーク３０からの監視データの受信）を契機として中継処理２６４２ａを実行する。図５に示すように、中継処理２６４２ａでは、制御部２１０は、第１通信Ｉ／Ｆ部２２０内の通信バッファから監視データを読み出し（図５（Ａ）：Ｓ１００）、監視データバッファ２６２２へ当該監視データを書き込む（図５（Ａ）：Ｓ１１０）。このため、本動作例では、ネットワーク装置２００Ａの監視データバッファ２６２２には監視データＡが格納される。ネットワーク装置２００Ｂでも同様にＳ１００およびＳ１１０の処理が実行され（図５（Ｂ）参照）、監視データバッファ２６２２には監視データＢが格納される。なお、監視データバッファ２６２２への監視データの書き込みを行う際には、制御部２１０は、等値化済であるか否かを示すフラグに等値化済でないことを示す第１の値（例えば、０）をセットし、当該第１の値をセット済のフラグを上記監視データに付与して監視データバッファ２６２２に書き込む。
【００５４】
ネットワーク装置２００Ａでは、制御部２１０は、等値化済でないことを示すフラグを付与された監視データの監視データバッファ２６２２への書き込みを契機として、等値化／転送処理２６４２ｂを実行する。図６は、ネットワーク装置２００の制御部２１０が中継制御プログラム２６４２にしたがって実行する等値化／転送処理２６４２ｂの流れを示すフローチャートである。図６に示すように、等値化／転送処理２６４２ｂでは、制御部２１０は、自装置が稼働系として動作しているのか否かを判定する（ステップＳＡ１００）。具体的には、制御部２１０は、揮発性記憶部２６２に格納されている稼働／待機フラグを参照し、当該フラグの値が稼働系を示す値であれば、自装置は稼働系として動作していると判定する。そして、ステップＳＡ１００の判定結果が“Ｙｅｓ”であれば、制御部２１０は、ステップＳＡ１１０の処理を実行し、逆にステップＳＡ１００の判定結果が“Ｎｏ”であれば、制御部２１０はステップＳＡ１２０の処理を実行する。前述したように、本動作例では、ネットワーク装置２００Ａは稼働系として動作している。このため、ネットワーク装置２００Ａの制御部２１０が実行する等値化／転送処理２６４２ｂではステップＳＡ１００の判定結果は“Ｙｅｓ”となり、ステップＳＡ１１０の処理が実行される。
【００５５】
ステップＳＡ１１０では、制御部２１０は監視データバッファ２６２２から等値化済でないことを示すフラグを付与された監視データを読み出し（図５（Ａ）：Ｓ１２０）、当該監視データのヘッダの送信先を示す情報を制御装置１００Ａからネットワーク装置２００Ｂを示す情報に書き換え、当該監視データを第３通信Ｉ／Ｆ部２４０を介してその接続先のネットワーク装置２００Ｂへ転送する（図５（Ａ）：Ｓ１３０）。前述したように、ネットワーク装置２００Ａの監視データバッファ２６２２には、等値化済でないことを示すフラグを付与された監視データとして監視データＡが格納されている。このため、本動作例では、等値化ケーブル５００を介してネットワーク装置２００Ａからネットワーク装置２００Ｂへ監視データＡが転送される。
【００５６】
ネットワーク装置２００Ｂでは、制御部２１０は、等値化ケーブル５００を介して送信されてくるデータを第３通信Ｉ／Ｆ部２４０により受信したことを契機として、等値化／転送処理２６４２ｂを実行する。ネットワーク装置２００Ｂの制御部２１０が実行する等値化／転送処理２６４２ｂにおいても前述したステップＳＡ１００の判定が行われる。本動作例ではネットワーク装置２００Ｂは待機系として動作しているため、ネットワーク装置２００Ｂの制御部２１０が実行する等値化／転送処理２６４２ｂのステップＳＡ１００の判定結果は“Ｎｏ”になり、ステップＳＡ１２０の処理が実行される。
【００５７】
ステップＳＡ１２０では、図７に示すネットワーク装置受信処理が実行される。ネットワーク装置受信処理では、制御部２１０は、等値化ケーブル５００を介して受信したデータが自装置宛てのデータであるか否かを判定する（ステップＳ６０１）。具体的には、制御部２１０は、第３通信Ｉ／Ｆ部２４０に格納されている監視データのヘッダの送信先を参照し、当該監視データが自装置宛てか否かを判定する。ステップＳ６０１の判定結果が“Ｙｅｓ”であれば、制御部２１０は、等値化処理を実行する（ステップＳ６０２）。ステップＳ６０２では、制御部２１０は、第３通信Ｉ／Ｆ部２４０により受信された監視データを当該第３通信Ｉ／Ｆ部２４０から取得し（図５（Ｂ）：Ｓ１４０）、当該監視データで監視データバッファ２６２２に格納されている該当監視データ（図５（Ｂ）のＳ１４０にて取得した監視データと送信元が同一であり、かつ識別子が一致する監視データ）を上書きし（図５（Ｂ）：Ｓ１５０）、当該監視データに付与されているフラグを等値化済であることを示す第２の値（例えば、１）に書き換える。これにより、ネットワーク装置２００Ｂの監視データバッファ２６２２に格納されている監視データは監視データＢから監視データＡに更新される。
【００５８】
ネットワーク装置２００Ｂの制御部２１０は、上記の要領で監視データの等値化を完了すると、等値化ケーブル５００を介して等値化完了をネットワーク装置２００Ａへ通知する（ステップＳ６０３）。ネットワーク装置２００Ａの制御部２１０は、上記通知の受信を契機として、図５（Ａ）のＳ１３０にて転送した監視データのフラグを上記第２の値に更新する。以上の動作が為される結果、ネットワーク装置２００Ａおよびネットワーク装置２００Ｂの各々の監視データバッファ２６２２には、監視データＡが格納され、当該監視データＡには等値化済を示すフラグが付与された状態となる。
【００５９】
ネットワーク装置２００Ａの制御部２１０は、監視データバッファ２６２２に格納されている監視データに付与されているフラグが等値化済を示す値に更新されたことを契機として中継処理２６４２ａを再開し、図５（Ａ）のＳ１６０およびＳ１７０の各処理を実行する。Ｓ１６０の処理では、制御部２１０は、等値化済を示すフラグを付与されている監視データを監視データバッファ２６２２から読み出す。そして、Ｓ１７０の処理では、図８に示すネットワーク装置送信処理が実行される。
【００６０】
図８に示すネットワーク装置送信処理では、制御部２１０は、等値化済を示すフラグを付与されている監視データを監視データバッファ２６２２から読み出したことを契機に、前述したステップＳＡ１００と同様に、自装置が稼働系として動作しているのか否かを判定する（ステップＳ７０１）。そして、ステップＳ７０１の判定結果が“Ｙｅｓ”であれば、制御部２１０は、ステップＳ７０２以降の処理を実行し、逆にステップＳ７０１の判定結果が“Ｎｏ”であれば、制御部２１０はステップＳ７０３の処理を実行する。前述したように、本動作例では、ネットワーク装置２００Ａは稼働系として動作している。このため、ネットワーク装置２００Ａの制御部２１０が実行するネットワーク装置送信処理ではステップＳ７０１の判定結果は“Ｙｅｓ”となり、ステップＳ７０２以降の処理が実行される。ステップＳ７０２では、制御部２１０は、ネットワーク装置接続バス６０Ａが正常であるか否かを判定する。
【００６１】
本動作例ではネットワーク装置接続バス６０Ａは正常であるので、ステップＳ７０２の判定結果が“Ｙｅｓ”となり、制御部２１０は、ステップＳ７０３の処理を実行する。このステップＳ７０３では、制御部２１０は、Ｓ１６０の処理で読み出した監視データを第２通信Ｉ／Ｆ部２３０内の通信バッファに書き込み、接続先の制御装置１００Ａへ送信する。ステップＳ７０３の処理により、図４に示す一点鎖線のように、ネットワーク装置２００Ａから制御装置１００Ａへ監視データＡが転送される。
【００６２】
ネットワーク装置２００Ｂでは、等値化完了の通知を送信（ステップＳ６０３）したことを契機に中継処理２６４２ａが再開され、図５（Ｂ）のＳ１６０およびＳ１７０の各処理が実行される。本動作例ではネットワーク装置２００Ｂは待機系として動作するため、ネットワーク装置２００Ｂの制御部２１０が実行するネットワーク装置送信処理ではステップＳ７０１の判定結果は“Ｎｏ”となり、ステップＳ７０３の処理が実行される。ステップＳ７０３の処理により、ネットワーク装置２００Ｂから制御装置１００Ｂへ監視データＡが転送される。
【００６３】
なお、監視データの送受信に比較して上記通知の送受信は十分に高速に行うことができるため、ネットワーク装置２００Ａおよびネットワーク装置２００Ｂの各々における上記フラグの更新は略同期して実行され、Ｓ１６０およびＳ１７０の各処理も略同期して実行される。このため、ネットワーク装置２００Ａから制御装置１００Ａへの監視データＡの送信と、ネットワーク装置２００Ｂから制御装置１００Ｂへの監視データＡの送信はほぼ同期して実行される。
【００６４】
次いで、図９および図１０を参照しつつ制御装置１００の動作を説明する。制御装置１００Ａの第１通信Ｉ／Ｆ部１２０は、ネットワーク装置接続バス６０Ａから送信されてくる監視データを受信すると、当該受信した監視データを第１通信Ｉ／Ｆ部１２０内の通信バッファに書き込む。制御装置１００Ｂにおいても同様に、制御装置１００Ｂの第１通信Ｉ／Ｆ部１２０内の通信バッファには、ネットワーク装置接続バス６０Ｂから受信した監視データが書き込まれる。
【００６５】
制御装置１００Ａの制御部１１０は、第１通信Ｉ／Ｆ部１２０内の通信バッファへの監視データの書き込みを契機として演算処理１５４２ａを実行する。図９に示すように、演算処理１５４２ａでは、制御部１１０は、第１通信Ｉ／Ｆ部１２０内の通信バッファから監視データを読み出し（図９（Ａ）：Ｓ２００）、監視データについて演算を行い、当該演算結果による演算データＡを生成し、演算データバッファ１５２２へ当該演算データＡを書き込む（図９（Ａ）：Ｓ２１０）。演算データＡのヘッダには、当該演算データＡの基となった監視データのヘッダに付与されていたものと同じ識別子が付与される。制御装置１００Ｂにおいても同様にＳ２００およびＳ２１０の処理が実行され（図９（Ｂ）参照）、演算データバッファ１５２２には演算データＢが格納される。具体的には、制御装置１００Ｂの制御部１１０は、第１通信Ｉ／Ｆ部１２０内の通信バッファへの監視データの書き込みを契機として演算処理１５４２ａを実行する。制御装置１００Ｂが生成した演算データＢのヘッダにも、演算データＡのヘッダと同様に、当該演算データＢの基となった監視データのヘッダに付与されていた識別子が付与される。このため、一の監視データから生成された演算データＡと演算データＢの両者のヘッダには同じ識別子が付与される。なお、演算データバッファ１５２２への演算データの書き込みを行う際には、制御部１１０は、等値化済であるか否かを示すフラグに等値化済でないことを示す第１の値（例えば、０）をセットし、当該第１の値をセット済のフラグを上記演算データに付与して演算データバッファ１５２２に書き込む。
【００６６】
制御装置１００Ａでは、制御部１１０は、等値化済でないことを示すフラグを付与された演算データの演算データバッファ１５２２への書き込みを契機として、等値化処理１５４２ｂを実行する。図１０は、等値化処理１５４２ｂの流れを示すフローチャートである。図１０に示すように、等値化処理１５４２ｂでは、制御部１１０は、まず、自装置が稼働系として動作しているのか否かを判定する（ステップＳＡ２００）。具体的には、制御部１１０は、揮発性記憶部１５２に格納されている稼働／待機フラグを参照し、当該フラグの値が稼働系を示す値であれば、自装置は稼働系として動作していると判定する。そして、ステップＳＡ２００の判定結果が“Ｙｅｓ”であれば、制御部１１０は、ステップＳＡ２１０の処理を実行し、逆にステップＳＡ２００の判定結果が“Ｎｏ”であれば、制御部１１０はステップＳＡ２２０の処理を実行する。前述したように、本動作例では、制御装置１００Ａは稼働系として動作している。このため、制御装置１００Ａの制御部１１０が実行する等値化処理１５４２ｂではステップＳＡ２００の判定結果は“Ｙｅｓ”となり、ステップＳＡ２１０の処理が実行される。
【００６７】
ステップＳＡ２１０では、制御部１１０は演算データバッファ１５２２から等値化済でないことを示すフラグを付与された演算データを読み出し（図９（Ａ）：Ｓ２２０）、当該演算データを第２通信Ｉ／Ｆ部１３０を介してその接続先の制御装置へ転送する（図９（Ａ）：Ｓ２３０）。前述したように、制御装置１００Ａの演算データバッファ１５２２には、等値化済でないことを示すフラグを付与された演算データとして演算データＡが格納されている。このため、本動作例では、等値化ケーブル４００を介して制御装置１００Ａから制御装置１００Ｂへ演算データＡが転送される。
【００６８】
制御装置１００Ｂでは、制御部１１０は、等値化ケーブル４００を介して送信されてくるデータを第２通信Ｉ／Ｆ部１３０により受信したことを契機として、等値化処理１５４２ｂを実行する。制御装置１００Ｂの制御部１１０が実行する等値化処理１５４２ｂにおいても前述したステップＳＡ２００の判定が行われる。本動作例では制御装置１００Ｂは待機系として動作しているため、制御装置１００Ｂの制御部１１０が実行する等値化処理１５４２ｂのステップＳＡ２００の判定結果は“Ｎｏ”になり、ステップＳＡ２２０の処理が実行される。
【００６９】
ステップＳＡ２２０では、演算データの等値化が実行される。より詳細に説明すると、ステップＳＡ２２０では、制御部１１０は、第２通信Ｉ／Ｆ部１３０により受信された演算データを当該第２通信Ｉ／Ｆ部１３０から取得し（図９（Ｂ）：Ｓ２４０）、当該演算データで演算データバッファ１５２２に格納されている該当演算データ（図９（Ｂ）のＳ２４０にて取得した演算データとヘッダに付与された識別子が一致する演算データ）を上書きし（図９（Ｂ）：Ｓ２５０）、当該演算データに付与されているフラグを等値化済であることを示す第２の値（例えば、１）に書き換える。これにより、制御装置１００Ｂの演算データバッファ１５２２に格納されている演算データは演算データＢから演算データＡに更新される。
【００７０】
制御装置１００Ｂの制御部１１０は、上記の要領で監視データの等値化を完了すると、等値化ケーブル４００を介して等値化完了を制御装置１００Ａへ通知する（ステップＳＡ２３０）。制御装置１００Ａの制御部１１０は、上記通知の受信を契機として、図９（Ａ）のＳ２３０にて転送した演算データのフラグを上記第２の値に更新する。以上の動作が為された結果、制御装置１００Ａおよび制御装置１００Ｂの各々の演算データバッファ１５２２には、演算データＡが格納され、当該演算データＡには等値化済を示すフラグが付与された状態となる。
【００７１】
制御装置１００Ａの制御部１１０は、演算データバッファ１５２２に格納されている演算データに付与されているフラグが等値化済を示す値に更新されたことを契機として演算処理１５４２ａを再開し、図９（Ａ）のＳ２６０およびＳ２７０の各処理を実行する。Ｓ２６０の処理では、制御部１１０は、等値化済を示すフラグを付与されている演算データを演算データバッファ１５２２から読み出す。そして、Ｓ２７０の処理では、当該演算データにその送信先となる制御対象装置を示す情報を付与して第１通信Ｉ／Ｆ部１２０内の通信バッファに書き込む。
【００７２】
このようにして第１通信Ｉ／Ｆ部１２０内の通信バッファに書き込まれた演算データは、監視データと同じ通信経路を逆順（すなわち、制御装置１００Ａ→ネットワーク装置接続バス６０Ａ→ネットワーク装置２００Ａ→ＩＯネットワーク３０→制御対象装置の順）をたどり、当該演算データの送信先に到達する。制御対象装置は当該演算データに従った処理を実行する。これにより、制御対象装置の作動制御が実現される。
以上が、ネットワーク装置接続バス６０Ａが正常である場合の動作である。
【００７３】
（Ｂ−２：ネットワーク装置接続バス６０Ａが正常でない場合の動作）
次に、図１１に示すように、ネットワーク装置接続バス６０Ａが正常でない（すなわち、ネットワーク装置接続バス６０Ａが切断されている）場合の動作について説明する。この場合、ネットワーク装置２００Ａの実行するネットワーク装置送信処理（図８参照）のステップＳ７０２の判定結果は“Ｎｏ”となる。ステップＳ７０２の判定結果が“Ｎｏ”となるため、ネットワーク装置２００Ａの制御部２１０は、Ｓ１６０の処理で読み出した監視データを第３通信Ｉ／Ｆ部２４０内の通信バッファに書き込み、接続先のネットワーク装置２００Ｂへ送信する（ステップＳ７０４）。ステップＳ７０４では、制御部２１０は、監視データのヘッダの送信先を示す情報を書き換えない。そのため、ネットワーク装置２００Ａから等値化ケーブル５００を介してネットワーク装置２００Ｂへ転送される監視データのヘッダの送信先を示す情報は、制御装置１００Ａを示す情報のままである。
【００７４】
前述したように、ネットワーク装置２００Ｂの制御部２１０は、第３通信Ｉ／Ｆ部２４０内の通信バッファに監視データが書き込まれたことを契機に等値化／転送処理２６４２ｂを実行する。本動作例ではネットワーク装置２００Ｂは待機系として動作しているため、ステップＳＡ１００の判定結果は“Ｎｏ”となり、制御部２１０は、ステップＳＡ１２０のネットワーク装置受信処理を実行する。ここでは、等値化ケーブル５００を介して受信した監視データのヘッダの送信先を示す情報が自装置ではなく制御装置１００Ａを示す情報なので、図７に示すネットワーク装置受信処理のステップＳ６０１の判定結果は“Ｎｏ”となり、制御部２１０は、ステップＳ６０４の処理を実行する。このステップＳ６０４では、制御部２１０は、第３通信Ｉ／Ｆ部２４０内の通信バッファに格納されている監視データを読み出し（図５：Ｓ１４０）、第４通信Ｉ／Ｆ部２５０を介してその接続先の制御装置１００Ａへ転送する（図５（Ｂ）：Ｓ１８０）。この動作により、ＩＯスレーブ装置から制御装置１００Ａへ送信された監視データは、図１１における一点鎖線で示すように、ネットワーク装置２００Ａ、等値化ケーブル５００、ネットワーク装置２００Ｂ、および冗長化接続バス６００を経由して制御装置１００Ａに伝送される。
【００７５】
以上のような動作例により、ネットワーク装置２００Ａから制御装置１００Ａへ監視データＡが送信され、ネットワーク装置２００Ｂから制御装置１００Ｂへも監視データＡが送信される。
以上が、ネットワーク装置接続バス６０Ａが正常でない場合の動作である。
【００７６】
本実施形態では、稼働系の制御装置（すなわち、制御装置１００Ａ）と稼働系のネットワーク装置（すなわち、ネットワーク装置２００Ａ）とを接続するネットワーク装置接続バス６０Ａが切断された場合であっても、ＩＯスレーブ装置から制御装置１００Ａへ向けて送信された監視データが、ネットワーク装置２００Ａ、等値化ケーブル５００、ネットワーク装置２００Ｂおよび冗長化接続バス６００を経由して制御装置１００Ａに伝送されるため、制御装置１００についての稼働系／待機系の切り替えを行う必要はない。そのため、本実施形態によれば、従来の冗長化制御システム３（図１９参照）に比較して稼働系／待機系の切り替えの頻度を減らすことができるのである。
【００７７】
また、図１９に示す従来の冗長化制御システム３では、監視データの等値化を制御装置（すなわち、制御装置１０Ａおよび制御装置１０Ｂ）に行わせていたため、監視データのデータ量が増えると、その等値化の分だけ制御装置の処理負荷が高くなり、本来の演算の高速実行に支障が生じる虞があった。これに対して、本実施形態では、監視データの等値化は等値化ケーブル５００を介した通信によりネットワーク装置２００Ａおよびネットワーク装置２００Ｂによって実行される。このため、ＩＯネットワーク３０に接続されるＩＯスレーブ装置の増加等に起因して制御装置１００Ａおよび制御装置１００Ｂへ転送される監視データのデータ量が増えたとしても、制御装置１００Ａおよび制御装置１００Ｂにかかる処理負荷がその等値化の分だけ高くなることはなく、本来の演算の実行に何ら支障が発生することはない。
【００７８】
＜第２実施形態＞
本実施形態の冗長化制御システム１の構成は第１実施形態の冗長化制御システム１と同じであるため、同一の構成要素には同一の符号を付し、以下の説明では図１〜図１０（ただし、図４および図８を除く）を援用する。第１実施形態の冗長化制御システム１と第２実施形態の冗長化制御システム１の違いは、制御装置１００が揮発性記憶部２６２にデータ受信済みリストを有していることと、ネットワーク装置送信処理（図５：Ｓ１７０）の処理内容と、制御装置受信処理（図９：Ｓ２００）の処理内容とである。以下では、これらについて説明する。
【００７９】
図１２は、本実施形態のネットワーク装置送信処理の流れを示すフローチャートである。ネットワーク装置２００Ａの制御部２１０は、等値化済を示すフラグを付与されている監視データを監視データバッファ２６２２から読み出す処理（図５：Ｓ１６０）が完了したことを契機に、ネットワーク装置送信処理を開始する。制御部２１０は、当該監視データを第２通信Ｉ／Ｆ部２３０内の通信バッファに書き込み、制御装置１００Ａへ送信する（ステップＳ１２０１）。ステップＳ１２０１の処理が完了後、制御部２１０は、第２通信Ｉ／Ｆ部２３０内の通信バッファに書き込んだ監視データと同じ監視データを第３通信Ｉ／Ｆ部２４０内の通信バッファに書き込み、ネットワーク装置２００Ｂへ送信する（ステップＳ１２０２）。
【００８０】
第１実施形態のネットワーク装置送信処理では、ネットワーク装置接続バス６０Ａが正常であるか否かにより、監視データを制御装置１００Ａとネットワーク装置２００Ｂのいずれか一方に送信していたが、本実施形態のネットワーク装置送信処理では、ネットワーク装置接続バス６０Ａが正常であるか否かに関わらず、監視データを制御装置１００Ａとネットワーク装置２００Ｂの両者に送信する。そのため、ネットワーク装置接続バス６０Ａに切断が発生していなければ、制御装置１００Ａは、同じ内容の２つの監視データを受信することになる。
【００８１】
図１３は、制御装置１００が実行する制御装置受信処理の流れを示すフローチャートである。第１通信Ｉ／Ｆ部１２０或いは第３通信Ｉ／Ｆ部１４０が監視データを受信したことを契機に、制御装置１００Ａの制御部１１０は、制御装置受信処理を開始する。この制御装置受信処理では、制御装置１００Ａの制御部１１０は、制御装置１００Ａの揮発性記憶部２６２に記憶されているデータ受信済みリストを参照して、受信したデータがデータ受信済みリストに登録されているか否かを判定する（ステップＳ１３０１）。データ受信済みリストとは、監視データのヘッダに付与されている当該監視データの送信元を示す情報と当該監視データを一意に示す識別子（例えば、ＩＯスレーブ装置が監視データを生成した時のタイムスタンプおよび当該監視データのシーケンス番号）からなるリストである。
【００８２】
ステップＳ１３０１の判定結果が“Ｎｏ”であれば、制御装置１００Ａは、受信した監視データのヘッダを参照して当該監視データに関する情報をデータ受信済みリストに登録する（ステップＳ１３０２）。そして、制御装置１００Ａは、当該監視データに関する演算を行う受信処理を実行する（ステップＳ１３０３）。一方、ステップＳ１３０１の判定結果が“Ｙｅｓ”であれば、制御装置１００Ａは、受信した監視データを破棄する（ステップＳ１３０４）
【００８３】
図１４は、ネットワーク装置接続バス６０Ａが正常である場合のＩＯスレーブ装置から制御装置１００Ａに送信された監視データの送信の流れを示す図である。図１４では、監視データの流れは一点鎖線により示されている。図示しないＩＯスレーブ装置が生成した制御装置１００Ａ宛ての監視データは、ネットワーク装置２００Ａからネットワーク装置接続バス６０Ａを介して制御装置１００Ａに伝送される第１の伝送経路と、ネットワーク装置２００Ａから等値化ケーブル５００、ネットワーク装置２００Ｂ、および冗長化接続バス６００を介して制御装置１００Ａに伝送される第２の伝送経路との両者で伝送される。制御装置１００Ａの制御部１１０は、データ受信済みリストを参照し、既受信の監視データを破棄する。本実施形態では、第１の伝送経路経由の監視データの方がネットワーク装置２００Ｂを経由しない分だけ先に制御装置１００Ａに到達し、当該監視データの受信を契機として、制御装置１００Ａは当該監視データの送信元を示す情報と当該監視データを一意に示す識別子をデータ受信済みリストに登録する。制御装置１００Ａは、第２の伝送経路に沿って伝送された監視データを受信すると当該監視データを破棄し、同一の監視データに基づく演算が重複して行われることはない。なお、ネットワーク装置接続バス６０Ａが切断されると、前述した図１１と同じ監視データの送信の流れとなるため、説明は省略する。第１実施形態の冗長化制御システム１と同様に、本実施形態の冗長化制御システム１も、稼働系の制御装置１００と稼働系のネットワーク装置２００を接続するネットワーク装置接続バス（本実施形態では、ネットワーク装置接続バス６０Ａ）の切断により、稼働系／待機系を切り替える必要がない。
【００８４】
本実施形態によっても、ネットワーク装置接続バスの切断により、第１実施形態と同じ効果が得られる。さらに、第１実施形態と異なり本実施形態では、接続先のネットワーク装置接続バスが正常であるか否かの判定をネットワーク装置２００側で行わない分だけ稼働系のネットワーク装置２００の処理負荷が軽減される。その一方、本実施形態では、受信した監視データが既受信であるか否かを判定する必要があるため、第１実施形態よりも稼働系の制御装置１００の処理負荷が増える。したがって、ネットワーク装置２００の処理負荷の軽減が優先される場合は第２実施形態を採用すればよく、その逆であれば第１実施形態を採用すればよい。
【００８５】
＜変形例＞
以上本発明の第１および第２実施形態について説明したが、これら実施形態に以下の変形を加えても勿論良い。
（１）上記各実施形態では、ネットワーク装置２００Ａとネットワーク装置２００Ｂのうちの稼働系のネットワーク装置２００から待機系のネットワーク装置２００へ等値化ケーブル５００を介して監視データを送信し記憶させるといったプッシュ型のデータ通信で監視データの等値化を実現する場合について説明した。しかし、等値化ケーブル５００経由で稼働系のネットワーク装置２００から監視データを取得して自装置の監視データを更新する処理を待機系のネットワーク装置２００に実行させるプル型のデータ通信で監視データの等値化を実現しても良い。制御装置１００Ａおよび制御装置１００Ｂについても同様にプル型のデータ通信で演算データの等値化を実現してもよい。
【００８６】
（２）上記各実施形態では、ＩＯスレーブ装置から収集した監視データを制御装置１００へ転送するゲートウェイ装置への本発明の適用例を説明した。しかし、本発明の適用対象はゲートウェイ装置に限定される訳ではなく、ルータやリピータ、スイッチングハブなどの他の種類の中継装置であっても良い。さらに、本発明の中継装置に接続されるネットワークはＩＯネットワークなどの制御系ネットワークやシリアルバスに限定される訳ではなく、ＴＣＰなどの汎用通信プロトコルにしたがったデータ通信を仲介する一般的な情報系ネットワークであっても良い。要は、監視データを収集し、当該監視データを使用した演算を実行する制御装置と、監視データを出力する機器に接続されたネットワークとに接続され、当該ネットワークを介して受信したデータを当該制御装置へ転送する中継装置であれば、本発明を適用可能である。
【００８７】
（３）上記各実施形態の通信システムに含まれるネットワーク装置（中継装置）や制御装置を単体で提供する（すなわち、製造・販売する）態様であっても良い。このようなネットワーク装置や制御装置を従来の冗長化制御システムにおけるネットワーク装置や制御装置と置き換え、中継装置間通信手段の役割を果たす第１の等値化ケーブル、制御装置間通信手段の役割を果たす第２の等値化ケーブル、および２つの冗長化接続バスでそれらネットワーク装置および制御装置を図１に示すように接続することで、従来の冗長化制御システムを上記各実施形態の通信システムとして機能させることが可能になるからである。
【００８８】
（４）上記各実施形態では、本発明の特徴を顕著に示す中継処理２６４２ａおよび等値化／転送処理２６４２ｂをソフトウェアにより実現した。しかし、中継処理２６４２ａを実行する中継手段および等値化／転送処理２６４２ｂを実行する等値化／転送手段の各々を電子回路で構成し、これら電子回路を組み合わせて上記各実施形態のネットワーク装置２００を構成してもよい。同様に、本発明の特徴を顕著に示す演算処理１５４２ａおよび等値化処理１５４２ｂの各処理を実行する演算手段および等値化手段の各々を電子回路で構成し、これら電子回路を組み合わせて上記各実施形態の制御装置１００を構成してもよい。また、上記各実施形態では制御装置間通信手段、および中継装置間通信手段として等値化ケーブルを用いたが、無線ＬＡＮインタフェースなどの無線通信手段を上記各通信手段として用いても良く、冗長化接続バスについても同様である。また、ネットワーク装置２００Ａとネットワーク装置２００Ｂとが１つの筐体に実装される場合には、両装置の接続されるバスを中継装置間通信手段として用いても良い。制御装置間通信手段についても同様である。
【００８９】
（５）上記各実施形態では、制御装置１００Ａおよび制御装置１００Ｂの各々が、稼働系であるか待機系であるかを問わずに、接続先のネットワーク装置２００を介して受信した監視データを使用して機器制御のための演算を行う場合（すなわち、ホットスタンバイ方式の制御システムへの本発明の適用例）を説明した。しかし、本発明の適用対象はホットスタンバイ方式の制御システムに限定されるものではなく、ウォームスタンバイ方式の制御システムに本発明を適用しても良い。ウォームスタンバイ方式の制御システムは、二重化された制御装置の一方が稼働系となって上記演算を実行し、他方は待機系となって稼働系の故障に備える点ではホットスタンバイ方式の制御システムと同一であるが、待機系の制御装置では上記演算が実行されない点が異なる。また、上記実施形態では、待機系のネットワーク装置においても、第１通信Ｉ／Ｆ部２２０により受信した監視データを監視データバッファ２６２２に書き込む処理（図５（Ｂ）：Ｓ１００およびＳ１１０の各処理）を実行したが、待機系のネットワーク装置においては当該処理を省略しても良い。図５（Ｂ）のＳ１００およびＳ１１０の各処理により監視データバッファ２６２２により書き込まれた監視データは、等値化／転送処理２６４２ｂのステップＳＡ１２０の処理で上書きされてしまうからである。待機系の制御装置においても同様に、演算処理１５４２ａを行った演算データを演算データバッファ１５２２に書き込む処理（図９（Ｂ）：Ｓ２００およびＳ２１０の各処理）を省略しても良い。図９（Ｂ）のＳ２００およびＳ２１０の各処理により演算データバッファ１５２２により書き込まれた演算データは、等値化処理１５４２ｂのステップＳＡ２２０の処理で上書きされてしまうからである。
【００９０】
（６）上記第１実施形態では、自装置に接続されているネットワーク装置接続バスが正常であるか否かを判定するための判定手段をネットワーク装置２００が有しているが、制御装置１００が当該判定手段を有していてもよい。判定手段を制御装置１００に設けることで、制御装置１００の処理負荷は増えるが、ネットワーク装置２００の処理負荷を減らすことができる。そのため、判定手段を制御装置１００に設ける態様は、ネットワーク装置２００の処理負荷を減らしたい場合に有効である。また、判定手段をネットワーク装置２００と制御装置１００の両者が有していてもよい。この場合、ネットワーク装置２００と制御装置１００の何れか一方の判定手段が故障していても判定を行うことができる点に効果がある。なお、判定手段を制御装置１００に設ける態様では、稼働系の制御装置１００には、当該判定手段の判定結果を示す判定結果データを冗長化接続バスを介してその接続先のネットワーク装置２００（すなわち、待機系のネットワーク装置）に送信する処理を実行させればよく、待機系のネットワーク装置２００には、冗長化接続バスを介して受信した判定結果データを等値化ケーブル５００を介して稼働系のネットワーク装置２００に送信させるようにすればよい。また、稼働系の制御装置１００には、判定結果データを等値化ケーブル４００を介して待機系の制御装置１００に送信する処理を実行させ、待機系の制御装置１００には等値化ケーブル４００を介して受信した判定結果データを、冗長化接続バスを介して稼働系のネットワーク装置２００に送信する処理（或いは、待機系のネットワーク装置２００および等値化ケーブル５００経由で稼働系のネットワーク装置２００へ送信する処理）を実行させるようにすればよい。
【００９１】
（７）上記第１実施形態では、自装置に接続されているネットワーク装置接続バスが正常であるか否かを判定するための判定手段をネットワーク装置２００が有していたが、制御装置１００やネットワーク装置２００とは異なる判定装置を設けて、当該判定装置に当該判定手段の役割を担わせてもよい。この態様は、制御装置１００とネットワーク装置２００の両者の処理能力に余裕がない場合に有効である。
【００９２】
（８）上記第１実施形態では、稼働系の制御装置１００（すなわち、制御装置１００Ａ）と稼働系のネットワーク装置２００（すなわち、ネットワーク装置２００Ａ）とを接続するネットワーク装置接続バス（すなわち、ネットワーク装置接続バス６０Ａ）が切断されると、稼働系のネットワーク装置２００、等値化ケーブル５００、待機系のネットワーク装置２００および冗長化接続バス６００を経由して監視データを稼働系の制御装置１００に送信したが、図１５において一点鎖線で示すように、稼働系のネットワーク装置２００、冗長化接続バス７００、待機系の制御装置１００および等値化ケーブル４００を経由して監視データを稼働系の制御装置１００に送信してもよい。この態様を実現するには、ネットワーク装置接続バス６０Ａの切断の検知を契機として、監視データを冗長化接続バス７００を介して制御装置１００Ｂに転送する処理をネットワーク装置２００Ａの制御部２１０に実行させ、さらに、制御装置１００Ｂの制御部１１０には、冗長化接続バス７００を介してネットワーク装置２００Ａから受信した監視データを等値化ケーブル４００を介して制御装置１００Ａに転送する処理を実行させるようにすればよい。この態様は、等値化ケーブル５００が切断された場合だけでなく、等値化ケーブル５００が存在しない場合にも有効である。この態様は、上記第２実施形態にも適用可能であり、同様に、等値化ケーブル５００が切断されたか、若しくは存在しない場合に有効である。なお、等値化ケーブル５００が存在しない場合は、例えば、従来の冗長化制御システム３と同様に、制御装置１００に監視データの等値化を行わせるようにすればよい。
【００９３】
（９）上記第２実施形態において、制御装置１００が揮発性記憶部１５２に格納するデータ受信済みリストには、監視データのヘッダに付与されている当該監視データの送信元を示す情報と当該監視データを一意に示す識別子が登録されているが、既に受信した監視データと同一の監視データを再度受信してしまうことを防止するためのフィルタリング処理が行うことができればデータ受信済みリストは何でもよい。例えば、既に受信した監視データ全体を記憶しておくことでフィルタリング処理を実行してもよい。この場合、上記第２実施形態に比べてより正確なフィルタリング処理を実行することができる。
【００９４】
（１０）図１６に示すように、等値化ケーブル４００を省略してもよい。図１６の冗長化制御システム２では、等値化ケーブル４００以外は第１実施形態の冗長化制御システム１と同一であるので、同一の構成要素には同一の符号が付されている。冗長化制御システム２が冗長化制御システム１と異なるのは、等値化ケーブル４００を有していない点だけである。なお、演算データの等値化については、例えば、ネットワーク装置接続バス６０Ａ、ネットワーク装置２００Ａ、等値化ケーブル５００、ネットワーク装置２００Ｂ、およびネットワーク装置接続バス６０Ｂを介した通信により行うようにすればよい。
【００９５】
図１７および図１８は、この態様の冗長化制御システム２において、ＩＯスレーブ装から制御装置１００Ａへ宛てて送信された監視データの流れを示す図である。図１７に示すように、ネットワーク装置接続バス６０Ａが正常である場合には、上記監視データは、ＩＯネットワーク３０、ネットワーク装置２００Ａ、およびネットワーク装置接続バス６０Ａを介して制御装置１００Ａに伝送される。ネットワーク装置接続バス６０Ａが切断されると、図１８に示すように、上記監視データは、ＩＯネットワーク３０、ネットワーク装置２００Ａ、等値化ケーブル５００、ネットワーク装置２００Ｂ、および冗長化接続バス６００を介して制御装置１００Ａに伝送される。また、上記第２実施形態のように、ネットワーク装置接続バス６０Ａが正常であるか否かに関わらず、ネットワーク装置２００Ａからネットワーク装置接続バス６０Ａおよび等値化ケーブル５００の両者に監視データが送信されていてもよく、この場合は、制御装置１００Ａにデータ受信済みリストを記憶させておく必要があることが言うまでもない。
【００９６】
（１１）上記各実施形態では、ＩＯネットワーク３０から受信した監視データを稼働系および待機系のネットワーク装置２００において等値化し、等値化済の監視データを稼働系の制御装置１００へ転送する場合について説明した。しかし、ＩＯネットワーク３０から受信した監視データを稼働系の制御装置１００に転送した後に、当該監視データの等値化のために当該監視データを等値化ケーブル５００を介して待機系のネットワーク装置２００へ転送する処理を稼働系のネットワーク装置２００に実行させても良い。また、稼働系の制御装置１００への監視データの転送ができない場合にのみ当該監視データを等値化ケーブル５００を介して待機系のネットワーク装置２００へ転送する処理を稼働系のネットワーク装置２００に実行させ、待機系のネットワーク装置２００には、等値化ケーブル５００を介して受信した監視データでＩＯネットワーク３０を介して受信した監視データを等値化する処理と冗長化接続バスを介して当該監視データを稼働系の制御装置１００へ転送する処理とを実行させても良い。また、上記第１実施形態では、稼働系の制御装置１００との通信が可能であるか否かを判定し、可能であると判定した場合には監視データを稼働系の制御装置１００へ転送する処理を、不可能である場合には当該監視データを等値化ケーブル５００を介して待機系のネットワーク装置２００へ転送する処理を、稼働系のネットワーク装置２００に実行させた。しかし、上記判定を省略して稼働系の制御装置１００への監視データの転送を実行し、転送に失敗した場合に当該監視データを等値化ケーブル５００を介して待機系のネットワーク装置２００へ転送する処理を、稼働系のネットワーク装置２００に実行させても良い。
【００９７】
（１２）上記各実施形態では、ネットワーク装置２００の接続先のネットワークがＩＯネットワーク３０である場合について説明したが、他のコントローラが接続された制御ネットワークであっても良く、制御ネットワークとＩＯネットワークの両者を含むネットワークであっても良い。このような態様においては、ネットワーク装置２００による制御装置１００への転送対象のデータはセンサ等のＩＯスレーブ装置から送信された監視データには限定されず、他のコントローラから送信された演算データも転送対象となる場合がある。他のコントローラから送信された演算データがネットワーク装置２００による転送対象となる場合には、制御装置１００はこれら演算データに基づいて新たな演算データを生成し、当該新たな演算データにしたがって制御対象装置の制御が行われることになる。
【符号の説明】
【００９８】
１，２，３…冗長化制御システム、１０Ａ，１０Ｂ，１００，１００Ａ，１００Ｂ…制御装置、２０Ａ，２０Ｂ，２００，２００Ａ，２００Ｂ…ネットワーク装置、１１０，２１０…制御部、１２０，２２０…第１通信Ｉ／Ｆ部、１３０，２３０…第２通信Ｉ／Ｆ部、１４０，２４０…第３通信Ｉ／Ｆ部、２５０…第４通信Ｉ／Ｆ部、１５０，２６０…記憶部、１５２，２６２…揮発性記憶部、１５２２，２６２２…監視データバッファ、１５４，２６４…不揮発性記憶部、１５４２…制御プログラム、２６４２…中継制御プログラム、１５４２ａ…演算処理、２６４２ａ…中継処理、１５４２ｂ…等値化処理、２６４２ｂ…等値化／転送処理、１６０，２７０…バス、３０…ＩＯネットワーク、３０’…ネットワーク、４０，４００，５００…等値化ケーブル、６０Ａ，６０Ｂ…ネットワーク装置接続バス、６００，７００…冗長化接続バス。
【図１】
0006269404.tif 000002
【図２】
0006269404.tif 000003
【図３】
0006269404.tif 000004
【図４】
0006269404.tif 000005
【図５】
0006269404.tif 000006
【図６】
0006269404.tif 000007
【図７】
0006269404.tif 000008
【図８】
0006269404.tif 000009
【図９】
0006269404.tif 000010
【図１０】
0006269404.tif 000011
【図１１】
0006269404.tif 000012
【図１２】
0006269404.tif 000013
【図１３】
0006269404.tif 000014
【図１４】
0006269404.tif 000015
【図１５】
0006269404.tif 000016
【図１６】
0006269404.tif 000017
【図１７】
0006269404.tif 000018
【図１８】
0006269404.tif 000019
【図１９】
0006269404.tif 000020