以下、図面を参照しつつ本発明の実施形態を説明する。
<第1実施形態>
(A:構成)
図1は、本発明の第1実施形態の冗長化制御システム1の一構成例を示す図である。図1では、IOネットワークに接続され産業施設内に設置された各種センサや制御対象装置などのIOスレーブ装置と制御装置の稼働状態等の監視を行うための監視システムの図示は省略されている。冗長化制御システム1は、前掲図19に示した冗長化制御システム3と同様、産業施設内に敷設された制御システムである。図1では図19におけるものと同一の構成要素には同一の符号が付されている。図1と図19とを対比すれば明らかなように、冗長化制御システム1は、以下の5つの点が図19に示す従来の冗長化制御システム3と異なる。第1に、制御装置10Aおよび制御装置10Bの代わりに制御装置100Aおよび制御装置100Bを有する点である。第2に、ネットワーク装置20Aおよびネットワーク装置20Bの代わりにネットワーク装置200Aおよびネットワーク装置200Bを有する点である。第3に、ネットワーク装置200Aとネットワーク装置200Bが等値化ケーブル500により接続されている点である。第4に、制御装置100Aとネットワーク装置200Bが冗長化接続バス600により接続されている点である。そして、第5に、制御装置100Bとネットワーク装置200Aが冗長化接続バス700により接続されている点である。
ネットワーク装置200Aとネットワーク装置200Bの各々は本発明の中継装置の一実施形態であり、等値化ケーブル500は当該中継装置同士の通信を仲介する中継装置間通信手段の役割を果たす。ネットワーク装置200Aおよびネットワーク装置200Bは、図19におけるネットワーク装置20Aやネットワーク装置20Bと同様にゲートウェイ装置である。図1に示す冗長化制御システム1では、図示しないIOスレーブ装置から送信された監視データは、IOネットワーク30およびネットワーク装置200Aを介して制御装置100Aに伝送されるとともに、IOネットワーク30およびネットワーク装置200Bを介して制御装置100Bに伝送される。制御装置100Aおよび制御装置100Bの各々は、図19における制御装置10Aおよび制御装置10Bと同様に、IOスレーブ装置からの監視データの収集、過去の演算結果を使用した演算(機器制御のための演算)、およびその演算結果の記憶を行う。制御装置100Aおよび制御装置100Bは、PLCであっても良いし、DCSであっても良い。
図1に示す冗長化制御システム1では、制御装置100Aと制御装置100Bのうちの一方が稼動系となって上記演算結果に基づく他の機器の制御を実行し、他方は待機系となって稼動系の停止(前述した2種類の停止など)に備える。そして、稼動系が停止するときには、待機系となっていた制御装置は、以降、稼動系として動作する。なお、稼動系と待機系の切り替えについては、従来の冗長化制御システム3と同様の方法により実現すれば良い。
前述したように、稼動系/待機系の切り替えの際には、演算結果の突変を回避するために監視データの等値化と演算結果の等値化が必要となる。図19に示す従来の冗長化制御システム3では、監視データの等値化と演算結果の等値化を制御装置10Aおよび制御装置10Bに行わせていたが、本実施形態では、監視データの等値化をネットワーク装置200Aおよびネットワーク装置200Bに行わせ、制御装置100Aおよび制御装置100Bには演算結果の等値化を行わせている。なお、制御装置100Aおよび制御装置100Bは同一の構成を有しているため、以下では両者を区別する必要がない場合には「制御装置100」と表記し、ネットワーク装置200Aおよびネットワーク装置200Bは同一の構成を有しているため、以下では両者を区別する必要がない場合には「ネットワーク装置200」と表記する。
本実施形態では、ネットワーク装置200についても稼動系と待機系の区別があり、稼働系と待機系で異なる動作を実行する。より詳細に説明すると、ネットワーク装置200は自身の接続先の制御装置100と通信し、接続先の制御装置100が稼動系であるか否かを判定する。そして、ネットワーク装置200は、接続先の制御装置100が稼動系であれば、稼動系のネットワーク装置として振る舞い、逆に接続先の制御装置100が待機系であれば、待機系のネットワーク装置として振る舞う。つまり、本実施形態では、ネットワーク装置200Aとネットワーク装置200Bのうち、稼動系の制御装置100に接続されている方が稼動系となり、待機系の制御装置100に接続されている方が待機系となる。制御装置100自体が故障して、制御装置100についての稼動系/待機系の切り替えが発生すると、ネットワーク装置200についても、その切り替えに従属して稼動系と待機系とが切り替えられる。
従来の冗長化制御システム3では、稼働系のネットワーク装置と稼働系の制御装置とを接続するネットワーク装置接続バスの切断が発生した場合、ネットワーク装置や制御装置の稼働系/待機系の切り替えが生じていた。しかし、本実施形態は、ネットワーク装置接続バス60Aの切断が発生しても、ネットワーク装置200や制御装置100の稼働系/待機系を切り替えることなく制御対象装置の制御を継続できるように構成されており、この点に本実施形態の特徴がある。
以下では、冗長化制御システム1の構成の特徴を顕著に表すネットワーク装置200および制御装置100の構成を中心に説明する。
まず、ネットワーク装置200の構成について説明する。図2は、ネットワーク装置200の構成例を示すブロック図である。ネットワーク装置200は、図2に示すように、制御部210、第1通信インタフェース(以下、「I/F」と略記)部220、第2通信I/F部230、第3通信I/F部240、第4通信I/F部250、記憶部260、およびこれら構成要素間のデータ授受を仲介するバス270を含む。
制御部210は、例えばCPU(Central Processing Unit)である。制御部210は記憶部260(より正確には不揮発性記憶部264)に記憶されている中継制御プログラム2642を実行することにより、ネットワーク装置200の制御中枢として機能する。制御部210が中継制御プログラム2642にしたがって実行する処理の詳細については後に明らかにする。第1通信I/F部220、第2通信I/F部230、第3通信I/F部240および第4通信I/F部250の各々は、例えばNIC(Network Interface Card)である。これら各通信I/F部の役割は以下の通りである。
第1通信I/F部220はIOネットワーク30に接続される。第1通信I/F部220は、接続先のIOネットワーク30から送信されてくる監視データの受信、および接続先の制御ネットワークへの演算データの送出を行う。第1通信I/F部220は、接続先のIOネットワーク30から受信した監視データや接続先のIOネットワーク30へ送信する演算データを蓄積する通信バッファを有する(図2では図示略)。
第2通信I/F部230はネットワーク装置接続バスを介して制御装置100に接続される。より詳細に説明すると、ネットワーク装置200Aの第2通信I/F部230は、ネットワーク装置接続バス60Aを介して制御装置100Aに接続される。同様にネットワーク装置200Bの第2通信I/F部230は、ネットワーク装置接続バス60Bを介して制御装置100Bに接続される。第2通信I/F部230は、その接続先の制御装置100から送信される演算データの受信、および接続先の制御装置100への監視データの送出を行う。第2通信I/F部230は、接続先の制御装置100から受信した演算データや接続先の制御装置100へ送信する監視データを蓄積する通信バッファを有する(図2では図示略)。
第3通信I/F部240は等値化ケーブルの接続されるポートを有し、当該ポートには等値化ケーブル500が接続される。第3通信I/F部240は、等値化ケーブル500を介して他方のネットワーク装置と監視データの等値化のための通信を行う。第3通信I/F部240は、接続先のネットワーク装置と通信するための監視データを蓄積する通信バッファを有する(図2では図示略)。
第4通信I/F部250は冗長化接続バスを介して制御装置100に接続される。より詳細に説明すると、ネットワーク装置200Aの第4通信I/F部250は、冗長化接続バス700を介して制御装置100Bに接続される。同様にネットワーク装置200Bの第4通信I/F部250は、冗長化接続バス600を介して制御装置100Aに接続される。第4通信I/F部250は、その接続先の制御装置100から送信される演算データの受信、および接続先の制御装置100への監視データの送出を行う。第4通信I/F部250は、接続先の制御装置100から受信した演算データや接続先の制御装置100へ送信する監視データを蓄積する通信バッファを有する(図2では図示略)。
記憶部260は、図2に示すように揮発性記憶部262と不揮発性記憶部264とを有する。揮発性記憶部262は、例えばRAM(Random Access Memory)である。揮発性記憶部262は、中継制御プログラム2642を実行するためのワークエリアとして使用される。また、揮発性記憶部262は、制御装置100へ伝送する監視データを一時的に蓄積する監視データバッファ2622の役割も果たす。さらに、揮発性記憶部262には、当該揮発性記憶部262を有するネットワーク装置200が稼働系として動作しているのか、それとも待機系として動作しているのかを示す稼働/待機フラグが格納される。不揮発性記憶部264は例えばフラッシュROMである。不揮発性記憶部264には中継制御プログラム2642が予め格納されている。
制御部210は、ネットワーク装置200の電源(図示略)の投入或いはリセットを契機として不揮発性記憶部264から揮発性記憶部262へ中継制御プログラム2642を読み出し、その実行を開始する。中継制御プログラム2642にしたがって作動している制御部210は、接続先の制御装置100の動作状態を監視しその監視結果に応じて稼働/待機フラグを設定する処理を実行する他、中継処理2642aと等値化/転送処理2642bを実行する。中継処理2642aおよび等値化/転送処理2642bの詳細については動作例において明らかにするが概略は以下の通りである。すなわち、等値化/転送処理2642bには、等値化ケーブル500を介した通信により、IOスレーブ装置から収集した監視データを等値化する処理と当該監視データを他方のネットワーク装置200に転送する処理が含まれる。一方、中継処理2642aは、大別すると2つの処理から構成される。1つの処理は、等値化/転送処理2642bにより等値化された監視データを、第2通信I/F部230に接続された制御装置100へ転送する処理である。もう1つの処理は、等値化/転送処理2642bにより他方のネットワーク装置200から転送された監視データを、第4通信I/F部250に接続された制御装置100へ転送する処理である。
次に、制御装置100の構成について説明する。図3は、制御装置100の構成例を示すブロック図である。制御装置100は、図3に示すように、制御部110、第1通信I/F部120、第2通信I/F部130、第3通信I/F部140、記憶部150、およびこれら構成要素間のデータ授受を仲介するバス160を含む。
制御部110は、例えばCPUである。制御部110は記憶部150(より正確には不揮発性記憶部154)に記憶されている制御プログラム1542を実行することにより、制御装置100の制御中枢として機能する。制御部110が制御プログラム1542にしたがって実行する処理の詳細については後に明らかにする。第1通信I/F部120、第2通信I/F部130、および第3通信I/F部140の各々は、例えばNIC(Network Interface Card)である。これら各通信I/F部の役割は以下の通りである。
第1通信I/F部120はネットワーク装置接続バスを介してネットワーク装置200に接続される。より詳細に説明すると、制御装置100Aの第1通信I/F部120はネットワーク装置接続バス60Aを介してネットワーク装置200Aに接続されている。同様に制御装置100Bの第1通信I/F部120はネットワーク装置接続バス60Bを介してネットワーク装置200Bに接続される。第1通信I/F部120は、その接続先のネットワーク装置200から送信される監視データの受信、および接続先のネットワーク装置200への演算データの送出を行う。第1通信I/F部120は、接続先のネットワーク装置200から受信した監視データや接続先のネットワーク装置200へ送信する演算データを蓄積する通信バッファを有する(図3では図示略)。
第2通信I/F部130は等値化ケーブルの接続されるポートを有し、当該ポートには等値化ケーブル400が接続される。第2通信I/F部130は、等値化ケーブル400を介して他方の制御装置と演算データの等値化のための通信を行う。第2通信I/F部130は、接続先の制御装置と通信するための演算データを蓄積する通信バッファを有する(図3では図示略)。
第3通信I/F部140は冗長化接続バスを介してネットワーク装置200に接続される。より詳細に説明すると、制御装置100Aの第3通信I/F部140は、冗長化接続バス600を介してネットワーク装置200Bに接続される。同様に制御装置100Bの第3通信I/F部140は、冗長化接続バス700を介してネットワーク装置200Aに接続される。第3通信I/F部140は、その接続先のネットワーク装置200から送信される監視データの受信、および接続先のネットワーク装置200への演算データの送出を行う。第3通信I/F部140は、接続先のネットワーク装置200から受信した監視データや接続先のネットワーク装置200へ送信する演算データを蓄積する通信バッファを有する(図3では図示略)。
記憶部150は、図3に示すように揮発性記憶部152と不揮発性記憶部154とを有する。揮発性記憶部152は、例えばRAM(Random Access Memory)である。揮発性記憶部152は、制御プログラム1542を実行するためのワークエリアとして使用される。また、揮発性記憶部152は、ネットワーク装置200へ伝送する演算データを一時的に蓄積する演算データバッファ1522の役割も果たす。さらに、揮発性記憶部152には、当該揮発性記憶部152を有する制御装置100が稼働系として動作しているのか、それとも待機系として動作しているのかを示す稼働/待機フラグが格納される。不揮発性記憶部154は例えばフラッシュROMである。不揮発性記憶部154には制御プログラム1542が予め格納されている。
制御部110は、制御装置100の電源(図示略)の投入或いはリセットを契機として不揮発性記憶部154から揮発性記憶部152へ制御プログラム1542を読み出し、その実行を開始する。制御プログラム1542にしたがって作動している制御部110は、等値化ケーブル400を介して接続している他方の制御装置100の動作状態を監視しその監視結果に応じて稼働/待機フラグを設定する処理を実行する他、演算処理1542aと等値化処理1542bを実行する。演算処理1542aおよび等値化処理1542bの詳細については動作例において明らかにするが概略は以下の通りである。すなわち、等値化処理1542bは、等値化ケーブル400を介した通信により、演算データを等値化する処理である。演算処理1542aは、接続されたネットワーク装置200A或いはネットワーク装置200Bから受信した監視データについて演算し、当該演算結果による演算データを生成し、当該演算データを第1通信I/F部120に接続されるネットワーク装置200へ転送する処理である。
以上が、冗長化制御システム1全体、ネットワーク装置200および制御装置100の構成である。
(B:動作)
次いで、図4〜図11を参照しつつ、本実施形態の動作を説明する。以下に説明する動作例では制御装置100Aおよびネットワーク装置200AよりなるA系が稼働系であり、制御装置100Bおよびネットワーク装置200BよりなるB系が待機系であるとする。また、以下に説明する動作例では、動作開始時点ではネットワーク装置200Aおよびネットワーク装置200Bの各々の監視データバッファ2622が空であり、さらに動作開始時点では制御装置100Aおよび制御装置100Bの各々の演算データバッファ1522が空である場合について説明する。さらに、以下ではネットワーク装置200Aに伝送される監視データを「監視データA」と呼び、ネットワーク装置200Bに伝送される監視データを「監視データB」と呼ぶ。監視データAと監視データBは基本的には同一のデータであるが、各々をサンプリングする際のサンプリングタイミングのズレにより微妙に異なる場合がある。そして、以下では制御装置100Aが演算し当該演算結果により生成した演算データを「演算データA」と呼び、制御装置100Bが演算し当該演算結果により生成した演算データを「演算データB」と呼ぶ。演算データAと演算データBは基本的には同一のデータであるが、各々の演算に関与する制御装置100が異なるので微妙に異なる場合がある。
(B−1:ネットワーク装置接続バス60Aが正常である場合の動作)
まず、図4に示すように、ネットワーク装置接続バス60Aが正常である場合の動作について説明する。ネットワーク装置接続バス60Aが正常であるとは、ネットワーク装置接続バス60Aが切断されておらず、ネットワーク装置200Aが制御装置100Aと正常に通信が行える状態にあるということである。
IOスレーブ装置は、入力信号(若しくはセンサ等の出力信号)をサンプリングして制御装置100Aおよび制御装置100Bの各々に送信する監視データを生成し、IOネットワーク30へ送信する。IOスレーブ装置が送信する監視データには、当該監視データの送信先および送信元を示す情報(通信アドレスやノード番号)と当該監視データを一意に示す識別子(例えば、シーケンス番号)とを含むヘッダが付与されている。IOスレーブ装置から送信された監視データは、IOネットワーク30を介してネットワーク装置200Aおよびネットワーク装置200Bの各々へと伝送される。
ネットワーク装置200Aの第1通信I/F部220は、IOネットワーク30から送信される監視データを受信すると、当該受信した監視データを第1通信I/F部220内の通信バッファに書き込む。ネットワーク装置200Bにおいても同様に、ネットワーク装置200Bの第1通信I/F部220内の通信バッファには、IOネットワーク30から受信した監視データが書き込まれる。つまり、本動作例では、ネットワーク装置200Aの第1通信I/F部220内の通信バッファには監視データAが格納され、ネットワーク装置200Bの第1通信I/F部220内の通信バッファには監視データBが格納される。
ネットワーク装置200Aの制御部210は、第1通信I/F部220内の通信バッファへの監視データの書き込み(換言すれば、接続先のIOネットワーク30からの監視データの受信)を契機として中継処理2642aを実行する。図5に示すように、中継処理2642aでは、制御部210は、第1通信I/F部220内の通信バッファから監視データを読み出し(図5(A):S100)、監視データバッファ2622へ当該監視データを書き込む(図5(A):S110)。このため、本動作例では、ネットワーク装置200Aの監視データバッファ2622には監視データAが格納される。ネットワーク装置200Bでも同様にS100およびS110の処理が実行され(図5(B)参照)、監視データバッファ2622には監視データBが格納される。なお、監視データバッファ2622への監視データの書き込みを行う際には、制御部210は、等値化済であるか否かを示すフラグに等値化済でないことを示す第1の値(例えば、0)をセットし、当該第1の値をセット済のフラグを上記監視データに付与して監視データバッファ2622に書き込む。
ネットワーク装置200Aでは、制御部210は、等値化済でないことを示すフラグを付与された監視データの監視データバッファ2622への書き込みを契機として、等値化/転送処理2642bを実行する。図6は、ネットワーク装置200の制御部210が中継制御プログラム2642にしたがって実行する等値化/転送処理2642bの流れを示すフローチャートである。図6に示すように、等値化/転送処理2642bでは、制御部210は、自装置が稼働系として動作しているのか否かを判定する(ステップSA100)。具体的には、制御部210は、揮発性記憶部262に格納されている稼働/待機フラグを参照し、当該フラグの値が稼働系を示す値であれば、自装置は稼働系として動作していると判定する。そして、ステップSA100の判定結果が“Yes”であれば、制御部210は、ステップSA110の処理を実行し、逆にステップSA100の判定結果が“No”であれば、制御部210はステップSA120の処理を実行する。前述したように、本動作例では、ネットワーク装置200Aは稼働系として動作している。このため、ネットワーク装置200Aの制御部210が実行する等値化/転送処理2642bではステップSA100の判定結果は“Yes”となり、ステップSA110の処理が実行される。
ステップSA110では、制御部210は監視データバッファ2622から等値化済でないことを示すフラグを付与された監視データを読み出し(図5(A):S120)、当該監視データのヘッダの送信先を示す情報を制御装置100Aからネットワーク装置200Bを示す情報に書き換え、当該監視データを第3通信I/F部240を介してその接続先のネットワーク装置200Bへ転送する(図5(A):S130)。前述したように、ネットワーク装置200Aの監視データバッファ2622には、等値化済でないことを示すフラグを付与された監視データとして監視データAが格納されている。このため、本動作例では、等値化ケーブル500を介してネットワーク装置200Aからネットワーク装置200Bへ監視データAが転送される。
ネットワーク装置200Bでは、制御部210は、等値化ケーブル500を介して送信されてくるデータを第3通信I/F部240により受信したことを契機として、等値化/転送処理2642bを実行する。ネットワーク装置200Bの制御部210が実行する等値化/転送処理2642bにおいても前述したステップSA100の判定が行われる。本動作例ではネットワーク装置200Bは待機系として動作しているため、ネットワーク装置200Bの制御部210が実行する等値化/転送処理2642bのステップSA100の判定結果は“No”になり、ステップSA120の処理が実行される。
ステップSA120では、図7に示すネットワーク装置受信処理が実行される。ネットワーク装置受信処理では、制御部210は、等値化ケーブル500を介して受信したデータが自装置宛てのデータであるか否かを判定する(ステップS601)。具体的には、制御部210は、第3通信I/F部240に格納されている監視データのヘッダの送信先を参照し、当該監視データが自装置宛てか否かを判定する。ステップS601の判定結果が“Yes”であれば、制御部210は、等値化処理を実行する(ステップS602)。ステップS602では、制御部210は、第3通信I/F部240により受信された監視データを当該第3通信I/F部240から取得し(図5(B):S140)、当該監視データで監視データバッファ2622に格納されている該当監視データ(図5(B)のS140にて取得した監視データと送信元が同一であり、かつ識別子が一致する監視データ)を上書きし(図5(B):S150)、当該監視データに付与されているフラグを等値化済であることを示す第2の値(例えば、1)に書き換える。これにより、ネットワーク装置200Bの監視データバッファ2622に格納されている監視データは監視データBから監視データAに更新される。
ネットワーク装置200Bの制御部210は、上記の要領で監視データの等値化を完了すると、等値化ケーブル500を介して等値化完了をネットワーク装置200Aへ通知する(ステップS603)。ネットワーク装置200Aの制御部210は、上記通知の受信を契機として、図5(A)のS130にて転送した監視データのフラグを上記第2の値に更新する。以上の動作が為される結果、ネットワーク装置200Aおよびネットワーク装置200Bの各々の監視データバッファ2622には、監視データAが格納され、当該監視データAには等値化済を示すフラグが付与された状態となる。
ネットワーク装置200Aの制御部210は、監視データバッファ2622に格納されている監視データに付与されているフラグが等値化済を示す値に更新されたことを契機として中継処理2642aを再開し、図5(A)のS160およびS170の各処理を実行する。S160の処理では、制御部210は、等値化済を示すフラグを付与されている監視データを監視データバッファ2622から読み出す。そして、S170の処理では、図8に示すネットワーク装置送信処理が実行される。
図8に示すネットワーク装置送信処理では、制御部210は、等値化済を示すフラグを付与されている監視データを監視データバッファ2622から読み出したことを契機に、前述したステップSA100と同様に、自装置が稼働系として動作しているのか否かを判定する(ステップS701)。そして、ステップS701の判定結果が“Yes”であれば、制御部210は、ステップS702以降の処理を実行し、逆にステップS701の判定結果が“No”であれば、制御部210はステップS703の処理を実行する。前述したように、本動作例では、ネットワーク装置200Aは稼働系として動作している。このため、ネットワーク装置200Aの制御部210が実行するネットワーク装置送信処理ではステップS701の判定結果は“Yes”となり、ステップS702以降の処理が実行される。ステップS702では、制御部210は、ネットワーク装置接続バス60Aが正常であるか否かを判定する。
本動作例ではネットワーク装置接続バス60Aは正常であるので、ステップS702の判定結果が“Yes”となり、制御部210は、ステップS703の処理を実行する。このステップS703では、制御部210は、S160の処理で読み出した監視データを第2通信I/F部230内の通信バッファに書き込み、接続先の制御装置100Aへ送信する。ステップS703の処理により、図4に示す一点鎖線のように、ネットワーク装置200Aから制御装置100Aへ監視データAが転送される。
ネットワーク装置200Bでは、等値化完了の通知を送信(ステップS603)したことを契機に中継処理2642aが再開され、図5(B)のS160およびS170の各処理が実行される。本動作例ではネットワーク装置200Bは待機系として動作するため、ネットワーク装置200Bの制御部210が実行するネットワーク装置送信処理ではステップS701の判定結果は“No”となり、ステップS703の処理が実行される。ステップS703の処理により、ネットワーク装置200Bから制御装置100Bへ監視データAが転送される。
なお、監視データの送受信に比較して上記通知の送受信は十分に高速に行うことができるため、ネットワーク装置200Aおよびネットワーク装置200Bの各々における上記フラグの更新は略同期して実行され、S160およびS170の各処理も略同期して実行される。このため、ネットワーク装置200Aから制御装置100Aへの監視データAの送信と、ネットワーク装置200Bから制御装置100Bへの監視データAの送信はほぼ同期して実行される。
次いで、図9および図10を参照しつつ制御装置100の動作を説明する。制御装置100Aの第1通信I/F部120は、ネットワーク装置接続バス60Aから送信されてくる監視データを受信すると、当該受信した監視データを第1通信I/F部120内の通信バッファに書き込む。制御装置100Bにおいても同様に、制御装置100Bの第1通信I/F部120内の通信バッファには、ネットワーク装置接続バス60Bから受信した監視データが書き込まれる。
制御装置100Aの制御部110は、第1通信I/F部120内の通信バッファへの監視データの書き込みを契機として演算処理1542aを実行する。図9に示すように、演算処理1542aでは、制御部110は、第1通信I/F部120内の通信バッファから監視データを読み出し(図9(A):S200)、監視データについて演算を行い、当該演算結果による演算データAを生成し、演算データバッファ1522へ当該演算データAを書き込む(図9(A):S210)。演算データAのヘッダには、当該演算データAの基となった監視データのヘッダに付与されていたものと同じ識別子が付与される。制御装置100Bにおいても同様にS200およびS210の処理が実行され(図9(B)参照)、演算データバッファ1522には演算データBが格納される。具体的には、制御装置100Bの制御部110は、第1通信I/F部120内の通信バッファへの監視データの書き込みを契機として演算処理1542aを実行する。制御装置100Bが生成した演算データBのヘッダにも、演算データAのヘッダと同様に、当該演算データBの基となった監視データのヘッダに付与されていた識別子が付与される。このため、一の監視データから生成された演算データAと演算データBの両者のヘッダには同じ識別子が付与される。なお、演算データバッファ1522への演算データの書き込みを行う際には、制御部110は、等値化済であるか否かを示すフラグに等値化済でないことを示す第1の値(例えば、0)をセットし、当該第1の値をセット済のフラグを上記演算データに付与して演算データバッファ1522に書き込む。
制御装置100Aでは、制御部110は、等値化済でないことを示すフラグを付与された演算データの演算データバッファ1522への書き込みを契機として、等値化処理1542bを実行する。図10は、等値化処理1542bの流れを示すフローチャートである。図10に示すように、等値化処理1542bでは、制御部110は、まず、自装置が稼働系として動作しているのか否かを判定する(ステップSA200)。具体的には、制御部110は、揮発性記憶部152に格納されている稼働/待機フラグを参照し、当該フラグの値が稼働系を示す値であれば、自装置は稼働系として動作していると判定する。そして、ステップSA200の判定結果が“Yes”であれば、制御部110は、ステップSA210の処理を実行し、逆にステップSA200の判定結果が“No”であれば、制御部110はステップSA220の処理を実行する。前述したように、本動作例では、制御装置100Aは稼働系として動作している。このため、制御装置100Aの制御部110が実行する等値化処理1542bではステップSA200の判定結果は“Yes”となり、ステップSA210の処理が実行される。
ステップSA210では、制御部110は演算データバッファ1522から等値化済でないことを示すフラグを付与された演算データを読み出し(図9(A):S220)、当該演算データを第2通信I/F部130を介してその接続先の制御装置へ転送する(図9(A):S230)。前述したように、制御装置100Aの演算データバッファ1522には、等値化済でないことを示すフラグを付与された演算データとして演算データAが格納されている。このため、本動作例では、等値化ケーブル400を介して制御装置100Aから制御装置100Bへ演算データAが転送される。
制御装置100Bでは、制御部110は、等値化ケーブル400を介して送信されてくるデータを第2通信I/F部130により受信したことを契機として、等値化処理1542bを実行する。制御装置100Bの制御部110が実行する等値化処理1542bにおいても前述したステップSA200の判定が行われる。本動作例では制御装置100Bは待機系として動作しているため、制御装置100Bの制御部110が実行する等値化処理1542bのステップSA200の判定結果は“No”になり、ステップSA220の処理が実行される。
ステップSA220では、演算データの等値化が実行される。より詳細に説明すると、ステップSA220では、制御部110は、第2通信I/F部130により受信された演算データを当該第2通信I/F部130から取得し(図9(B):S240)、当該演算データで演算データバッファ1522に格納されている該当演算データ(図9(B)のS240にて取得した演算データとヘッダに付与された識別子が一致する演算データ)を上書きし(図9(B):S250)、当該演算データに付与されているフラグを等値化済であることを示す第2の値(例えば、1)に書き換える。これにより、制御装置100Bの演算データバッファ1522に格納されている演算データは演算データBから演算データAに更新される。
制御装置100Bの制御部110は、上記の要領で監視データの等値化を完了すると、等値化ケーブル400を介して等値化完了を制御装置100Aへ通知する(ステップSA230)。制御装置100Aの制御部110は、上記通知の受信を契機として、図9(A)のS230にて転送した演算データのフラグを上記第2の値に更新する。以上の動作が為された結果、制御装置100Aおよび制御装置100Bの各々の演算データバッファ1522には、演算データAが格納され、当該演算データAには等値化済を示すフラグが付与された状態となる。
制御装置100Aの制御部110は、演算データバッファ1522に格納されている演算データに付与されているフラグが等値化済を示す値に更新されたことを契機として演算処理1542aを再開し、図9(A)のS260およびS270の各処理を実行する。S260の処理では、制御部110は、等値化済を示すフラグを付与されている演算データを演算データバッファ1522から読み出す。そして、S270の処理では、当該演算データにその送信先となる制御対象装置を示す情報を付与して第1通信I/F部120内の通信バッファに書き込む。
このようにして第1通信I/F部120内の通信バッファに書き込まれた演算データは、監視データと同じ通信経路を逆順(すなわち、制御装置100A→ネットワーク装置接続バス60A→ネットワーク装置200A→IOネットワーク30→制御対象装置の順)をたどり、当該演算データの送信先に到達する。制御対象装置は当該演算データに従った処理を実行する。これにより、制御対象装置の作動制御が実現される。
以上が、ネットワーク装置接続バス60Aが正常である場合の動作である。
(B−2:ネットワーク装置接続バス60Aが正常でない場合の動作)
次に、図11に示すように、ネットワーク装置接続バス60Aが正常でない(すなわち、ネットワーク装置接続バス60Aが切断されている)場合の動作について説明する。この場合、ネットワーク装置200Aの実行するネットワーク装置送信処理(図8参照)のステップS702の判定結果は“No”となる。ステップS702の判定結果が“No”となるため、ネットワーク装置200Aの制御部210は、S160の処理で読み出した監視データを第3通信I/F部240内の通信バッファに書き込み、接続先のネットワーク装置200Bへ送信する(ステップS704)。ステップS704では、制御部210は、監視データのヘッダの送信先を示す情報を書き換えない。そのため、ネットワーク装置200Aから等値化ケーブル500を介してネットワーク装置200Bへ転送される監視データのヘッダの送信先を示す情報は、制御装置100Aを示す情報のままである。
前述したように、ネットワーク装置200Bの制御部210は、第3通信I/F部240内の通信バッファに監視データが書き込まれたことを契機に等値化/転送処理2642bを実行する。本動作例ではネットワーク装置200Bは待機系として動作しているため、ステップSA100の判定結果は“No”となり、制御部210は、ステップSA120のネットワーク装置受信処理を実行する。ここでは、等値化ケーブル500を介して受信した監視データのヘッダの送信先を示す情報が自装置ではなく制御装置100Aを示す情報なので、図7に示すネットワーク装置受信処理のステップS601の判定結果は“No”となり、制御部210は、ステップS604の処理を実行する。このステップS604では、制御部210は、第3通信I/F部240内の通信バッファに格納されている監視データを読み出し(図5:S140)、第4通信I/F部250を介してその接続先の制御装置100Aへ転送する(図5(B):S180)。この動作により、IOスレーブ装置から制御装置100Aへ送信された監視データは、図11における一点鎖線で示すように、ネットワーク装置200A、等値化ケーブル500、ネットワーク装置200B、および冗長化接続バス600を経由して制御装置100Aに伝送される。
以上のような動作例により、ネットワーク装置200Aから制御装置100Aへ監視データAが送信され、ネットワーク装置200Bから制御装置100Bへも監視データAが送信される。
以上が、ネットワーク装置接続バス60Aが正常でない場合の動作である。
本実施形態では、稼働系の制御装置(すなわち、制御装置100A)と稼働系のネットワーク装置(すなわち、ネットワーク装置200A)とを接続するネットワーク装置接続バス60Aが切断された場合であっても、IOスレーブ装置から制御装置100Aへ向けて送信された監視データが、ネットワーク装置200A、等値化ケーブル500、ネットワーク装置200Bおよび冗長化接続バス600を経由して制御装置100Aに伝送されるため、制御装置100についての稼働系/待機系の切り替えを行う必要はない。そのため、本実施形態によれば、従来の冗長化制御システム3(図19参照)に比較して稼働系/待機系の切り替えの頻度を減らすことができるのである。
また、図19に示す従来の冗長化制御システム3では、監視データの等値化を制御装置(すなわち、制御装置10Aおよび制御装置10B)に行わせていたため、監視データのデータ量が増えると、その等値化の分だけ制御装置の処理負荷が高くなり、本来の演算の高速実行に支障が生じる虞があった。これに対して、本実施形態では、監視データの等値化は等値化ケーブル500を介した通信によりネットワーク装置200Aおよびネットワーク装置200Bによって実行される。このため、IOネットワーク30に接続されるIOスレーブ装置の増加等に起因して制御装置100Aおよび制御装置100Bへ転送される監視データのデータ量が増えたとしても、制御装置100Aおよび制御装置100Bにかかる処理負荷がその等値化の分だけ高くなることはなく、本来の演算の実行に何ら支障が発生することはない。
<第2実施形態>
本実施形態の冗長化制御システム1の構成は第1実施形態の冗長化制御システム1と同じであるため、同一の構成要素には同一の符号を付し、以下の説明では図1〜図10(ただし、図4および図8を除く)を援用する。第1実施形態の冗長化制御システム1と第2実施形態の冗長化制御システム1の違いは、制御装置100が揮発性記憶部262にデータ受信済みリストを有していることと、ネットワーク装置送信処理(図5:S170)の処理内容と、制御装置受信処理(図9:S200)の処理内容とである。以下では、これらについて説明する。
図12は、本実施形態のネットワーク装置送信処理の流れを示すフローチャートである。ネットワーク装置200Aの制御部210は、等値化済を示すフラグを付与されている監視データを監視データバッファ2622から読み出す処理(図5:S160)が完了したことを契機に、ネットワーク装置送信処理を開始する。制御部210は、当該監視データを第2通信I/F部230内の通信バッファに書き込み、制御装置100Aへ送信する(ステップS1201)。ステップS1201の処理が完了後、制御部210は、第2通信I/F部230内の通信バッファに書き込んだ監視データと同じ監視データを第3通信I/F部240内の通信バッファに書き込み、ネットワーク装置200Bへ送信する(ステップS1202)。
第1実施形態のネットワーク装置送信処理では、ネットワーク装置接続バス60Aが正常であるか否かにより、監視データを制御装置100Aとネットワーク装置200Bのいずれか一方に送信していたが、本実施形態のネットワーク装置送信処理では、ネットワーク装置接続バス60Aが正常であるか否かに関わらず、監視データを制御装置100Aとネットワーク装置200Bの両者に送信する。そのため、ネットワーク装置接続バス60Aに切断が発生していなければ、制御装置100Aは、同じ内容の2つの監視データを受信することになる。
図13は、制御装置100が実行する制御装置受信処理の流れを示すフローチャートである。第1通信I/F部120或いは第3通信I/F部140が監視データを受信したことを契機に、制御装置100Aの制御部110は、制御装置受信処理を開始する。この制御装置受信処理では、制御装置100Aの制御部110は、制御装置100Aの揮発性記憶部262に記憶されているデータ受信済みリストを参照して、受信したデータがデータ受信済みリストに登録されているか否かを判定する(ステップS1301)。データ受信済みリストとは、監視データのヘッダに付与されている当該監視データの送信元を示す情報と当該監視データを一意に示す識別子(例えば、IOスレーブ装置が監視データを生成した時のタイムスタンプおよび当該監視データのシーケンス番号)からなるリストである。
ステップS1301の判定結果が“No”であれば、制御装置100Aは、受信した監視データのヘッダを参照して当該監視データに関する情報をデータ受信済みリストに登録する(ステップS1302)。そして、制御装置100Aは、当該監視データに関する演算を行う受信処理を実行する(ステップS1303)。一方、ステップS1301の判定結果が“Yes”であれば、制御装置100Aは、受信した監視データを破棄する(ステップS1304)
図14は、ネットワーク装置接続バス60Aが正常である場合のIOスレーブ装置から制御装置100Aに送信された監視データの送信の流れを示す図である。図14では、監視データの流れは一点鎖線により示されている。図示しないIOスレーブ装置が生成した制御装置100A宛ての監視データは、ネットワーク装置200Aからネットワーク装置接続バス60Aを介して制御装置100Aに伝送される第1の伝送経路と、ネットワーク装置200Aから等値化ケーブル500、ネットワーク装置200B、および冗長化接続バス600を介して制御装置100Aに伝送される第2の伝送経路との両者で伝送される。制御装置100Aの制御部110は、データ受信済みリストを参照し、既受信の監視データを破棄する。本実施形態では、第1の伝送経路経由の監視データの方がネットワーク装置200Bを経由しない分だけ先に制御装置100Aに到達し、当該監視データの受信を契機として、制御装置100Aは当該監視データの送信元を示す情報と当該監視データを一意に示す識別子をデータ受信済みリストに登録する。制御装置100Aは、第2の伝送経路に沿って伝送された監視データを受信すると当該監視データを破棄し、同一の監視データに基づく演算が重複して行われることはない。なお、ネットワーク装置接続バス60Aが切断されると、前述した図11と同じ監視データの送信の流れとなるため、説明は省略する。第1実施形態の冗長化制御システム1と同様に、本実施形態の冗長化制御システム1も、稼働系の制御装置100と稼働系のネットワーク装置200を接続するネットワーク装置接続バス(本実施形態では、ネットワーク装置接続バス60A)の切断により、稼働系/待機系を切り替える必要がない。
本実施形態によっても、ネットワーク装置接続バスの切断により、第1実施形態と同じ効果が得られる。さらに、第1実施形態と異なり本実施形態では、接続先のネットワーク装置接続バスが正常であるか否かの判定をネットワーク装置200側で行わない分だけ稼働系のネットワーク装置200の処理負荷が軽減される。その一方、本実施形態では、受信した監視データが既受信であるか否かを判定する必要があるため、第1実施形態よりも稼働系の制御装置100の処理負荷が増える。したがって、ネットワーク装置200の処理負荷の軽減が優先される場合は第2実施形態を採用すればよく、その逆であれば第1実施形態を採用すればよい。
<変形例>
以上本発明の第1および第2実施形態について説明したが、これら実施形態に以下の変形を加えても勿論良い。
(1)上記各実施形態では、ネットワーク装置200Aとネットワーク装置200Bのうちの稼働系のネットワーク装置200から待機系のネットワーク装置200へ等値化ケーブル500を介して監視データを送信し記憶させるといったプッシュ型のデータ通信で監視データの等値化を実現する場合について説明した。しかし、等値化ケーブル500経由で稼働系のネットワーク装置200から監視データを取得して自装置の監視データを更新する処理を待機系のネットワーク装置200に実行させるプル型のデータ通信で監視データの等値化を実現しても良い。制御装置100Aおよび制御装置100Bについても同様にプル型のデータ通信で演算データの等値化を実現してもよい。
(2)上記各実施形態では、IOスレーブ装置から収集した監視データを制御装置100へ転送するゲートウェイ装置への本発明の適用例を説明した。しかし、本発明の適用対象はゲートウェイ装置に限定される訳ではなく、ルータやリピータ、スイッチングハブなどの他の種類の中継装置であっても良い。さらに、本発明の中継装置に接続されるネットワークはIOネットワークなどの制御系ネットワークやシリアルバスに限定される訳ではなく、TCPなどの汎用通信プロトコルにしたがったデータ通信を仲介する一般的な情報系ネットワークであっても良い。要は、監視データを収集し、当該監視データを使用した演算を実行する制御装置と、監視データを出力する機器に接続されたネットワークとに接続され、当該ネットワークを介して受信したデータを当該制御装置へ転送する中継装置であれば、本発明を適用可能である。
(3)上記各実施形態の通信システムに含まれるネットワーク装置(中継装置)や制御装置を単体で提供する(すなわち、製造・販売する)態様であっても良い。このようなネットワーク装置や制御装置を従来の冗長化制御システムにおけるネットワーク装置や制御装置と置き換え、中継装置間通信手段の役割を果たす第1の等値化ケーブル、制御装置間通信手段の役割を果たす第2の等値化ケーブル、および2つの冗長化接続バスでそれらネットワーク装置および制御装置を図1に示すように接続することで、従来の冗長化制御システムを上記各実施形態の通信システムとして機能させることが可能になるからである。
(4)上記各実施形態では、本発明の特徴を顕著に示す中継処理2642aおよび等値化/転送処理2642bをソフトウェアにより実現した。しかし、中継処理2642aを実行する中継手段および等値化/転送処理2642bを実行する等値化/転送手段の各々を電子回路で構成し、これら電子回路を組み合わせて上記各実施形態のネットワーク装置200を構成してもよい。同様に、本発明の特徴を顕著に示す演算処理1542aおよび等値化処理1542bの各処理を実行する演算手段および等値化手段の各々を電子回路で構成し、これら電子回路を組み合わせて上記各実施形態の制御装置100を構成してもよい。また、上記各実施形態では制御装置間通信手段、および中継装置間通信手段として等値化ケーブルを用いたが、無線LANインタフェースなどの無線通信手段を上記各通信手段として用いても良く、冗長化接続バスについても同様である。また、ネットワーク装置200Aとネットワーク装置200Bとが1つの筐体に実装される場合には、両装置の接続されるバスを中継装置間通信手段として用いても良い。制御装置間通信手段についても同様である。
(5)上記各実施形態では、制御装置100Aおよび制御装置100Bの各々が、稼働系であるか待機系であるかを問わずに、接続先のネットワーク装置200を介して受信した監視データを使用して機器制御のための演算を行う場合(すなわち、ホットスタンバイ方式の制御システムへの本発明の適用例)を説明した。しかし、本発明の適用対象はホットスタンバイ方式の制御システムに限定されるものではなく、ウォームスタンバイ方式の制御システムに本発明を適用しても良い。ウォームスタンバイ方式の制御システムは、二重化された制御装置の一方が稼働系となって上記演算を実行し、他方は待機系となって稼働系の故障に備える点ではホットスタンバイ方式の制御システムと同一であるが、待機系の制御装置では上記演算が実行されない点が異なる。また、上記実施形態では、待機系のネットワーク装置においても、第1通信I/F部220により受信した監視データを監視データバッファ2622に書き込む処理(図5(B):S100およびS110の各処理)を実行したが、待機系のネットワーク装置においては当該処理を省略しても良い。図5(B)のS100およびS110の各処理により監視データバッファ2622により書き込まれた監視データは、等値化/転送処理2642bのステップSA120の処理で上書きされてしまうからである。待機系の制御装置においても同様に、演算処理1542aを行った演算データを演算データバッファ1522に書き込む処理(図9(B):S200およびS210の各処理)を省略しても良い。図9(B)のS200およびS210の各処理により演算データバッファ1522により書き込まれた演算データは、等値化処理1542bのステップSA220の処理で上書きされてしまうからである。
(6)上記第1実施形態では、自装置に接続されているネットワーク装置接続バスが正常であるか否かを判定するための判定手段をネットワーク装置200が有しているが、制御装置100が当該判定手段を有していてもよい。判定手段を制御装置100に設けることで、制御装置100の処理負荷は増えるが、ネットワーク装置200の処理負荷を減らすことができる。そのため、判定手段を制御装置100に設ける態様は、ネットワーク装置200の処理負荷を減らしたい場合に有効である。また、判定手段をネットワーク装置200と制御装置100の両者が有していてもよい。この場合、ネットワーク装置200と制御装置100の何れか一方の判定手段が故障していても判定を行うことができる点に効果がある。なお、判定手段を制御装置100に設ける態様では、稼働系の制御装置100には、当該判定手段の判定結果を示す判定結果データを冗長化接続バスを介してその接続先のネットワーク装置200(すなわち、待機系のネットワーク装置)に送信する処理を実行させればよく、待機系のネットワーク装置200には、冗長化接続バスを介して受信した判定結果データを等値化ケーブル500を介して稼働系のネットワーク装置200に送信させるようにすればよい。また、稼働系の制御装置100には、判定結果データを等値化ケーブル400を介して待機系の制御装置100に送信する処理を実行させ、待機系の制御装置100には等値化ケーブル400を介して受信した判定結果データを、冗長化接続バスを介して稼働系のネットワーク装置200に送信する処理(或いは、待機系のネットワーク装置200および等値化ケーブル500経由で稼働系のネットワーク装置200へ送信する処理)を実行させるようにすればよい。
(7)上記第1実施形態では、自装置に接続されているネットワーク装置接続バスが正常であるか否かを判定するための判定手段をネットワーク装置200が有していたが、制御装置100やネットワーク装置200とは異なる判定装置を設けて、当該判定装置に当該判定手段の役割を担わせてもよい。この態様は、制御装置100とネットワーク装置200の両者の処理能力に余裕がない場合に有効である。
(8)上記第1実施形態では、稼働系の制御装置100(すなわち、制御装置100A)と稼働系のネットワーク装置200(すなわち、ネットワーク装置200A)とを接続するネットワーク装置接続バス(すなわち、ネットワーク装置接続バス60A)が切断されると、稼働系のネットワーク装置200、等値化ケーブル500、待機系のネットワーク装置200および冗長化接続バス600を経由して監視データを稼働系の制御装置100に送信したが、図15において一点鎖線で示すように、稼働系のネットワーク装置200、冗長化接続バス700、待機系の制御装置100および等値化ケーブル400を経由して監視データを稼働系の制御装置100に送信してもよい。この態様を実現するには、ネットワーク装置接続バス60Aの切断の検知を契機として、監視データを冗長化接続バス700を介して制御装置100Bに転送する処理をネットワーク装置200Aの制御部210に実行させ、さらに、制御装置100Bの制御部110には、冗長化接続バス700を介してネットワーク装置200Aから受信した監視データを等値化ケーブル400を介して制御装置100Aに転送する処理を実行させるようにすればよい。この態様は、等値化ケーブル500が切断された場合だけでなく、等値化ケーブル500が存在しない場合にも有効である。この態様は、上記第2実施形態にも適用可能であり、同様に、等値化ケーブル500が切断されたか、若しくは存在しない場合に有効である。なお、等値化ケーブル500が存在しない場合は、例えば、従来の冗長化制御システム3と同様に、制御装置100に監視データの等値化を行わせるようにすればよい。
(9)上記第2実施形態において、制御装置100が揮発性記憶部152に格納するデータ受信済みリストには、監視データのヘッダに付与されている当該監視データの送信元を示す情報と当該監視データを一意に示す識別子が登録されているが、既に受信した監視データと同一の監視データを再度受信してしまうことを防止するためのフィルタリング処理が行うことができればデータ受信済みリストは何でもよい。例えば、既に受信した監視データ全体を記憶しておくことでフィルタリング処理を実行してもよい。この場合、上記第2実施形態に比べてより正確なフィルタリング処理を実行することができる。
(10)図16に示すように、等値化ケーブル400を省略してもよい。図16の冗長化制御システム2では、等値化ケーブル400以外は第1実施形態の冗長化制御システム1と同一であるので、同一の構成要素には同一の符号が付されている。冗長化制御システム2が冗長化制御システム1と異なるのは、等値化ケーブル400を有していない点だけである。なお、演算データの等値化については、例えば、ネットワーク装置接続バス60A、ネットワーク装置200A、等値化ケーブル500、ネットワーク装置200B、およびネットワーク装置接続バス60Bを介した通信により行うようにすればよい。
図17および図18は、この態様の冗長化制御システム2において、IOスレーブ装から制御装置100Aへ宛てて送信された監視データの流れを示す図である。図17に示すように、ネットワーク装置接続バス60Aが正常である場合には、上記監視データは、IOネットワーク30、ネットワーク装置200A、およびネットワーク装置接続バス60Aを介して制御装置100Aに伝送される。ネットワーク装置接続バス60Aが切断されると、図18に示すように、上記監視データは、IOネットワーク30、ネットワーク装置200A、等値化ケーブル500、ネットワーク装置200B、および冗長化接続バス600を介して制御装置100Aに伝送される。また、上記第2実施形態のように、ネットワーク装置接続バス60Aが正常であるか否かに関わらず、ネットワーク装置200Aからネットワーク装置接続バス60Aおよび等値化ケーブル500の両者に監視データが送信されていてもよく、この場合は、制御装置100Aにデータ受信済みリストを記憶させておく必要があることが言うまでもない。
(11)上記各実施形態では、IOネットワーク30から受信した監視データを稼働系および待機系のネットワーク装置200において等値化し、等値化済の監視データを稼働系の制御装置100へ転送する場合について説明した。しかし、IOネットワーク30から受信した監視データを稼働系の制御装置100に転送した後に、当該監視データの等値化のために当該監視データを等値化ケーブル500を介して待機系のネットワーク装置200へ転送する処理を稼働系のネットワーク装置200に実行させても良い。また、稼働系の制御装置100への監視データの転送ができない場合にのみ当該監視データを等値化ケーブル500を介して待機系のネットワーク装置200へ転送する処理を稼働系のネットワーク装置200に実行させ、待機系のネットワーク装置200には、等値化ケーブル500を介して受信した監視データでIOネットワーク30を介して受信した監視データを等値化する処理と冗長化接続バスを介して当該監視データを稼働系の制御装置100へ転送する処理とを実行させても良い。また、上記第1実施形態では、稼働系の制御装置100との通信が可能であるか否かを判定し、可能であると判定した場合には監視データを稼働系の制御装置100へ転送する処理を、不可能である場合には当該監視データを等値化ケーブル500を介して待機系のネットワーク装置200へ転送する処理を、稼働系のネットワーク装置200に実行させた。しかし、上記判定を省略して稼働系の制御装置100への監視データの転送を実行し、転送に失敗した場合に当該監視データを等値化ケーブル500を介して待機系のネットワーク装置200へ転送する処理を、稼働系のネットワーク装置200に実行させても良い。
(12)上記各実施形態では、ネットワーク装置200の接続先のネットワークがIOネットワーク30である場合について説明したが、他のコントローラが接続された制御ネットワークであっても良く、制御ネットワークとIOネットワークの両者を含むネットワークであっても良い。このような態様においては、ネットワーク装置200による制御装置100への転送対象のデータはセンサ等のIOスレーブ装置から送信された監視データには限定されず、他のコントローラから送信された演算データも転送対象となる場合がある。他のコントローラから送信された演算データがネットワーク装置200による転送対象となる場合には、制御装置100はこれら演算データに基づいて新たな演算データを生成し、当該新たな演算データにしたがって制御対象装置の制御が行われることになる。