以下、図面を参照しつつ本発明の実施形態を説明する。
(A:第1実施形態)
図1は本発明の第1実施形態の通信システム1Aの構成例を示す図である。
この通信システム1Aは、前掲図17に示したシステムと同様、産業施設内に敷設された制御システムである。図1では図17におけるものと同一の構成要素には同一の符号が付されている。図1と図17とを対比すれば明らかなように、通信システム1Aは、以下の3つの点が図17に示す従来の冗長化制御システムと異なる。第1に、制御装置10Aおよび制御装置10Bの代わりに制御装置100Aおよび制御装置100Bを有する点である。第2に、ネットワーク装置20Aおよびネットワーク装置20Bの代わりにネットワーク装置200Aおよびネットワーク装置200Bを有する点である。そして、第3に、ネットワーク装置200Aとネットワーク装置200Bが等値化ケーブル400により接続されている点である。
ネットワーク装置200Aとネットワーク装置200Bの各々は本発明の中継装置の一実施形態であり、等値化ケーブル400は当該中継装置同士の通信を仲介する中継装置間通信手段の役割を果たす。ネットワーク装置200Aおよびネットワーク装置200Bは、図17におけるネットワーク装置20Aやネットワーク装置20Bと同様にゲートウェイ装置である。図1に示す通信システム1Aでは、IOスレーブ装置S1、S1・・・Snの各々から送信された監視データは、IOネットワーク30Aおよびネットワーク装置200Aを介して制御装置100Aに伝送されるとともに、IOネットワーク30Bおよびネットワーク装置200Bを介して制御装置100Bに伝送される。制御装置100Aおよび制御装置100Bの各々は、図17における制御装置10Aおよび制御装置10Bと同様に、IOスレーブ装置S1、S1・・・Snから収集した監視データおよび過去の演算結果を使用した演算(機器制御のための演算)、およびその演算結果の記憶を行う。制御装置100Aおよび制御装置100Bは、PLCであっても良いし、DCSであっても良い。
図1に示す通信システム1Aでは、制御装置100Aと制御装置100Bのうちの一方が稼動系となって上記演算結果に基づく他の機器の制御を実行し、他方は待機系となって稼動系の停止(前述した2種類の停止など)に備える。そして、稼動系が停止するときには、待機系となっていた制御装置は、以降、稼動系として動作する。なお、稼動系と待機系の切り替えについては、従来の冗長化制御システムと同様の方法により実現すれば良い。
前述したように、稼動系/待機系の切り替えの際には、演算結果の突変を回避するために監視データの等値化と演算結果の等値化が必要となる。図17に示す従来の冗長化制御システムでは、監視データの等値化と演算結果の等値化を制御装置10Aと制御装置10Bに行わせていた。これに対して、本実施形態では、監視データの等値化をネットワーク装置200Aおよびネットワーク装置200Bに行わせ、制御装置100Aと制御装置100Bには、演算結果の等値化のみを行わせる点が異なる。以下、本実施形態の特徴を顕著に示すネットワーク装置200Aおよびネットワーク装置200Bを中心に説明する。なお、ネットワーク装置200Aおよびネットワーク装置200Bは同一の構成を有しているため、以下では両者を区別する必要がない場合には「ネットワーク装置200」と表記する。
本実施形態では、ネットワーク装置200についても稼動系と待機系の区別がある。より詳細に説明すると、ネットワーク装置200は自身の接続先の制御装置と通信し、接続先の制御装置が稼動系であるか否かを判定する。そして、ネットワーク装置200は、接続先の制御装置が稼動系であれば、稼動系のネットワーク装置として振る舞い、逆に接続先の制御装置が待機系であれば、待機系のネットワーク装置として振る舞う。つまり、本実施形態では、ネットワーク装置200Aとネットワーク装置200Bのうち、稼動系の制御装置に接続されている方が稼動系となり、待機系の制御装置に接続されている方が待機系となる。そして、制御装置についての稼動系/待機系の切り替えが発生すると、ネットワーク装置200についても、その切り替えに従属して稼動系と待機系とが切り替えられる。本実施形態では、ネットワーク装置200についての稼働系/待機系に切り替えを制御装置についての稼動系/待機系の切り替えに従属させる場合について説明するが、等値化ケーブル400を介した状態データの送受信により他方の状態を監視し、制御装置についての稼働系/待機系の切り替えとは独立に、この状態監視の結果に応じて稼働系/待機系を切り替えるようにしても良い。
図2は、ネットワーク装置200の構成例を示すブロック図である。
ネットワーク装置200は、図2に示すように、制御部210、第1通信インタフェース(以下、「I/F」と略記)部220、第2通信I/F部230、第3通信I/F部240、記憶部250、およびこれら構成要素間のデータ授受を仲介するバス260を含んでいる。
制御部210は、例えばCPUである。制御部210は記憶部250(より正確には不揮発性記憶部254)に記憶されている中継制御プログラム2542を実行することにより、ネットワーク装置200の制御中枢として機能する。制御部210が中継制御プログラム2542にしたがって実行する処理の詳細については後に明らかにする。第1通信I/F部220、第2通信I/F部230および第3通信I/F部240の各々は、例えばNIC(Network Interface Card)である。これら各通信I/F部の役割は以下の通りである。
第1通信I/F部220はIOネットワークに接続されている。より詳細に説明すると、ネットワーク装置200Aの第1通信I/F部220はIOネットワーク30Aに接続されており、ネットワーク装置200Bの第1通信I/F部220はIOネットワーク30Bに接続されている。第1通信I/F部220は、接続先のIOネットワークから送信されてくるデータの受信、および接続先のIOネットワークへのデータの送出を行う。第1通信I/F部220は、接続先のIOネットワークから受信したデータを蓄積する通信バッファを有している(図2では図示略)。
第2通信I/F部230は通信線を介して制御装置に接続されている。より詳細に説明すると、ネットワーク装置200Aの第2通信I/F部230は制御装置100Aに接続されており、ネットワーク装置200Bの第2通信I/F部230は制御装置100Bに接続されている。第2通信I/F部230は、その接続先の制御装置から送信されてくるデータの受信、および接続先の制御装置へのデータの送出を行う。第2通信I/F部230は、接続先の制御装置へ送信するデータを蓄積する通信バッファを有している(図2では図示略)。
第3通信I/F部240は等値化ケーブルの接続されるポートを有しており、当該ポートには等値化ケーブル400が接続される。第3通信I/F部240は、等値化ケーブル400を介して他方のネットワーク装置と監視データの等値化のための通信を行う。
記憶部250は、図2に示すように揮発性記憶部252と不揮発性記憶部254とを有している。揮発性記憶部252は、例えばRAM(Random Access Memory)である。揮発性記憶部252は、中継制御プログラム2542を実行するためのワークエリアとして使用される。また、揮発性記憶部252は、制御装置へ伝送する監視データを一時的に蓄積する監視データバッファ2522の役割も果たす。さらに、揮発性記憶部252には、当該揮発性記憶部252を有するネットワーク装置200が稼働系として動作しているのか、それとも待機系として動作しているのかを示す稼働/待機フラグが格納される。不揮発性記憶部254は例えばフラッシュROMである。不揮発性記憶部254には中継制御プログラム2542が予め格納されている。
制御部210は、ネットワーク装置200の電源(図示略)の投入或いはリセットを契機として不揮発性記憶部254から揮発性記憶部252へ中継制御プログラム2542を読み出し、その実行を開始する。中継制御プログラム2542にしたがって作動している制御部210は、接続先の制御装置の動作状態を監視しその監視結果に応じて稼働/待機フラグを設定する処理を実行する他、中継処理2542aと等値化処理2542bを実行する。中継処理2542aおよび等値化処理2542bの詳細については動作例において明らかにするが概略は以下の通りである。すなわち、等値化処理2542bは、等値化ケーブル400を介した通信により、IOスレーブ装置S1〜Snの各々から収集した監視データを等値化する処理である。図3は、等値化処理2542bの流れを示すフローチャートである。図3を参照すれば明らかなように、等値化処理2542bの処理内容は、稼働系として動作している場合と待機系として動作している場合とで異なっている。この等値化処理2542bの処理内容の詳細については動作例の説明において明らかにする。中継処理2542aは、等値化処理2542bにより等値化された監視データを、第2通信I/F部230に接続されている制御装置へ転送する処理である。
以上がネットワーク装置200の構成である。
次いで、図3および図4を参照しつつネットワーク装置200の動作を説明する。なお、以下に説明する動作例では制御装置100Aおよびネットワーク装置200Aが稼働系であり、制御装置100Bおよびネットワーク装置200Bが待機系であるとする。また、以下に説明する動作例では、動作開始時点ではネットワーク装置200Aおよびネットワーク装置200Bの各々の監視データバッファ2522が空である場合について説明する。
IOスレーブ装置S1〜Snの各々は、入力信号(若しくはセンサ等の出力信号)をサンプリングして制御装置100Aおよび制御装置100Bの各々に送信する監視データを生成し、IOネットワーク30AおよびIOネットワーク30Bの各々へ送信する。IOスレーブ装置S1〜Snが送信する監視データには、当該監視データの送信先および送信元を示す情報(通信アドレスやノード番号)と当該監視データを一意に示す識別子等とを含むヘッダが付与されている。IOスレーブ装置S1〜Snの各々から送信された監視データは、IOネットワーク30AおよびIOネットワーク30Bの各々を介してネットワーク装置200Aおよびネットワーク装置200Bの各々へと伝送される。以下ではネットワーク装置200Aに伝送される監視データを「監視データA」と呼び、ネットワーク装置200Bに伝送される監視データを「監視データB」と呼ぶ。監視データAと監視データBは基本的には同一のデータであるが、各々をサンプリングする際のサンプリングタイミングのズレにより微妙に異なる場合がある。
ネットワーク装置200Aの第1通信I/F部220はIOネットワーク30Aから送信されてくる監視データを受信すると、当該受信した監視データを第1通信I/F部220内の通信バッファに書き込む。ネットワーク装置200Bにおいても同様に、ネットワーク装置200Bの第1通信I/F部220の通信バッファには、IOネットワーク30Bから受信した監視データが書き込まれる。つまり、本動作例では、ネットワーク装置200Aの第1通信I/F部220内の通信バッファには監視データAが格納され、ネットワーク装置200Bの第1通信I/F部220内の通信バッファには監視データBが格納される。
ネットワーク装置200Aの制御部210は、第1通信I/F部220内の通信バッファへの監視データの書き込み(換言すれば、接続先のIOネットワーク30Aからの監視データの受信)を契機として中継処理2542aを実行する。図4に示すように、中継処理2542aでは、制御部210は、第1通信I/F部220内の通信バッファから監視データを読み出し(図4(A):S100)、監視データバッファ2522へ当該監視データを書き込む(図4(A):S110)。このため、本動作例では、ネットワーク装置200Aの監視データバッファ2522には監視データAが格納される。ネットワーク装置200Bにおいても同様にS100およびS110の処理が実行され(図4(B)参照)、監視データバッファ2522には監視データBが格納される。なお、監視データバッファ2522への監視データの書き込みを行う際には、制御部210は、等値化済であるか否かを示すフラグに等値化済でないことを示す第1の値(例えば、0)をセットし、当該第1の値をセット済のフラグを上記監視データに付与して監視データバッファ2522に書き込む。
ネットワーク装置200Aでは、制御部210は、等値化済でないことを示すフラグを付与された監視データの監視データバッファ2522への書き込みを契機として、等値化処理2542bを実行する。図3に示すように、等値化処理2542bでは、制御部210は、まず、自装置が稼働系として動作しているのか否かを判定する(ステップSA100)。具体的には、制御部210は、揮発性記憶部252に格納されている稼働/待機フラグを参照し、当該フラグの値が稼働系を示す値であれば、自装置は稼働系として動作していると判定する。そして、ステップSA100の判定結果が“Yes”であれば、制御部210は、ステップSA110の処理を実行し、逆にステップSA100の判定結果が“No”であれば、制御部210はステップSA120以降の処理を実行する。前述したように、本動作例では、ネットワーク装置200Aは稼働系として動作している。このため、ネットワーク装置200Aの制御部210が実行する等値化処理2542bではステップSA100の判定結果は“Yes”となり、ステップSA110の処理が実行される。
ステップSA100の判定結果が“Yes”である場合に実行されるステップSA110では、制御部210は監視データバッファ2522から等値化済でないことを示すフラグを付与された監視データを読み出し(図4(A):S120)、当該監視データを第3通信I/F部240を介してその接続先のネットワーク装置へ転送する(図4(A):S130)。前述したように、ネットワーク装置200Aの監視データバッファ2522には、等値化済でないことを示すフラグを付与された監視データとして監視データAが格納されている。このため、本動作例では、等値化ケーブル400を介してネットワーク装置200Aからネットワーク装置200Bへ監視データAが転送される。
ネットワーク装置200Bでは、制御部210は、等値化ケーブル400を介して送信されてくるデータを第3通信I/F部240により受信したことを契機として、等値化処理2542bを実行する。ネットワーク装置200Bの制御部210が実行する等値化処理2542bにおいても前述したステップSA100の判定が行われる。本動作例ではネットワーク装置200Bは待機系として動作しているため、ネットワーク装置200Bの制御部210が実行する等値化処理2542bのステップSA100の判定結果は“No”になり、ステップSA120以降の処理が実行される。ステップSA120では、制御部210は、第3通信I/F部240により受信された監視データを当該第3通信I/F部240から取得し(図4(B):S140)、当該監視データで監視データバッファ2522に格納されている該当監視データ(図4(B)のS140にて取得した監視データと送信元が同一であり、かつ識別子が一致する監視データ)を上書きし(図4(B):S150)、当該監視データに付与されているフラグを等値化済であることを示す第2の値(例えば、1)に書き換える。これにより、ネットワーク装置200Bの監視データバッファ2522に格納されている監視データは監視データBから監視データAに更新される。
ネットワーク装置200Bの制御部210は、上記の要領で監視データの等値化を完了すると、等値化ケーブル400を介して等値化完了をネットワーク装置200Aへ通知する(図3:ステップSA130)。ネットワーク装置200Aの制御部210は、上記通知の受信を契機として、図4(A)のS130にて転送した監視データのフラグを上記第2の値に更新する。以上の動作が為される結果、ネットワーク装置200Aおよびネットワーク装置200Bの各々の監視データバッファ2522には、監視データAが格納され、当該監視データAには等値化済を示すフラグが付与された状態となる。
ネットワーク装置200Aの制御部210は、監視データバッファ2522に格納されている監視データに付与されているフラグが等値化済を示す値に更新されたことを契機として中継処理2542aを再開し、図4(A)のS160およびS170の各処理を実行する。S160の処理では、制御部210は、等値化済を示すフラグを付与されている監視データを監視データバッファ2522から読み出す。そして、S170の処理では、制御部210は、S160で読み出した監視データを第2通信I/F部230の通信バッファに書き込む。ネットワーク装置200Bにおいても、等値化完了の通知を送信したことを契機として中継処理2542aが再開され、図4(B)のS160およびS170の各処理が実行される。
ネットワーク装置200Aの第2通信I/F部230は、上記の要領で通信バッファに書き込まれた監視データをその接続先の制御装置へ送信する。ネットワーク装置200Bの第2通信I/F部230も、同様に、上記の要領で通信バッファに書き込まれた監視データをその接続先の制御装置へ送信する。このため、本動作例では、ネットワーク装置200Aから制御装置100Aへは監視データAが送信され、ネットワーク装置200Bから制御装置100Bへも監視データAが送信される。なお、監視データの送受信に比較して上記通知の送受信は十分に高速に行えるため、ネットワーク装置200Aおよびネットワーク装置200Bの各々における上記フラグの更新は略同期して実行され、S160およびS170の各処理も略同期して実行される。このため、ネットワーク装置200Aから制御装置100Aへの監視データAの送信と、ネットワーク装置200Bから制御装置100Bへの監視データAの送信はほぼ同期して実行される。
以上が本実施形態の動作である。
図17に示す従来の冗長化制御システムでは、監視データの等値化を制御装置(すなわち、制御装置10Aおよび制御装置10B)に行わせていたため、監視データのデータ量が増えると、その等値化の分だけ制御装置の処理負荷が高くなり、本来の演算の高速実行に支障が生じるといった問題があった。これに対して、本実施形態では、図5に示すように、監視データの等値化は等値化ケーブル400を介した通信によりネットワーク装置200Aおよびネットワーク装置200によって実行される。このため、IOネットワークに接続されるIOスレーブ装置の増加等に起因して制御装置100Aおよび制御装置100Bへ転送される監視データのデータ量が増えたとしても、制御装置100Aおよび制御装置100Bにかかる処理負荷がその等値化の分だけ高くなることはなく、本来の演算の実行に何ら支障が発生することはない。
さらに、本実施形態では、制御装置100Aおよび制御装置100Bには等値化済の監視データが転送されてくるのであるから、稼働系の制御装置の停止に起因して稼働系/待機系の切り替えを行う場合であっても、制御装置において監視データの等値化完了を待つ必要はなく、即座に切り替えを行うことができる。つまり、本実施形態によれば、稼働系/待機系の切り替えスピードの低下を招くこともない。
以上説明したように、本実施形態によれば、冗長化制御システムにおいて、制御装置に転送される監視データのデータ量が増加しても、制御装置本来の演算の実行に何ら支障を発生させず、かつ稼働系/待機系の切り替えスピードの低下を招かないようにすることが可能になる。
また、図17に示す従来の冗長化制御システムでは、稼動系と待機系との間のデータ通信を仲介する手段は、制御装置同士の通信を仲介する制御装置間通信手段である等値化ケーブル40のみであるため、等値化ケーブル40の切断が発生すると稼動系と待機系のデータ通信が不能となり、互いの状態監視のための通信すら行えなくなった。このため、従来の冗長化制御システムでは、等値化ケーブル40の切断が発生すると、最早、稼動系/待機系の切り替えを行えず、さらに稼動系の制御装置に故障が発生するといった多重故障発生すると、機器の制御を全く行えなくなるといった問題があった。
これに対して、本実施形態では、稼動系と待機系との間のデータ通信を仲介する手段は等値化ケーブル40と等値化ケーブル400により二重化されているため、等値化ケーブル40の切断が発生したとしても、互いの状態監視のための通信を行えなくなることはない。具体的には、等値化ケーブル40に切断が発生した場合には、図6にて点線矢印で示すように、制御装置100Aには、自装置の状態を示す状態データをネットワーク装置200A、等値化ケーブル400、およびネットワーク装置200Bを介して制御装置100Bに送信する処理を実行させ、制御装置100Bには、自装置の状態を示す状態データをネットワーク装置200B、等値化ケーブル400、およびネットワーク装置200Aを介して制御装置100Aに送信する処理を実行させるようにすれば良い。
なお、以上説明した実施形態では、1台の制御装置に1台のネットワーク装置が接続されていたが、図7に示すように、1台の制御装置に複数台(図7に示す例では2台)のネットワーク装置を接続するように変形しても良い。従来の冗長化制御システムでは、制御装置に複数のネットワーク装置を接続すると、制御装置に転送される監視データのデータ量が増加し、制御装置本来の演算の実行に支障が生じたり、稼働系/待機系の切り替えスピードが低下するなどの不具合が発生したが、本実施形態では、このような不具合が発生することはないからである。
図7に示すように、1台の制御装置に複数台のネットワーク装置200が接続される場合であっても、ネットワーク装置200Aおよびネットワーク装置200Bの各々により制御装置100Aおよび制御装置100Bの各々へ転送される監視データの等値化は、等値化ケーブル400Aを介した通信によってこれらネットワーク装置によって実行され、ネットワーク装置200Cおよびネットワーク装置200Dの各々を介して制御装置100Aおよび制御装置100Bの各々へ転送される監視データの等値化は、等値化ケーブル400Bを介した通信によってこれらネットワーク装置によって実行される。このため、1台の制御装置に複数台のネットワーク装置を接続することで制御装置に転送される監視データのデータ量が増加したとしても、その等値化の分だけ当該制御装置の処理負荷が高くなることはないのである。
(B:第2実施形態)
上記第1実施形態では、等値化ケーブル400を介した通信によりネットワーク装置200Aとネットワーク装置200Bに監視データの等値化を行わせる場合について説明した。しかし、このような態様では等値化ケーブル400の切断が発生すると、監視データの等値化を行えなくなるといった問題がある。そこで、ネットワーク装置200Aとネットワーク装置200Bの各々に、等値化ケーブル400を介したデータ通信が可能であるか否かを判定する判定手段を設け、可能であると判定された場合には等値化ケーブル400を介したデータ通信により監視データの等値化を行い、不能である場合には、図8にて点線矢印で示すように、制御装置100A、等値化ケーブル40および制御装置100Bを介した通信により監視データの等値化を行う処理を、ネットワーク装置200Aとネットワーク装置200Bの各々の制御部に実行させるようにしても良い。
このような態様であっても、制御装置100Aおよび制御装置100Bは等値化のためのデータ通信を仲介する単なるデータ伝送路として機能するだけであるから、従来の冗長化制御システムにおける場合に比較してこれら制御装置にかかる処理負荷を軽減できる。なお、上記判定手段の具体例としては、等値化ケーブル400を介して相手装置へpingを送信し、所定時間内に応答があれば通信可能と判定し、応答がなれば通信不能と判定する処理を各ネットワーク装置の制御部に実行させることが挙げられる。
また、監視データの等値化のためのデータ通信を等値化ケーブル400経由で行うのか、それとも等値化ケーブル40経由で行うのかの切り替えを、等値化ケーブル400を介したデータ通信の可否に応じて切り替えるのではなく、制御装置の処理負荷に応じて切り替える態様であっても良い。例えば、ネットワーク装置200にその接続先の制御装置の処理負荷を計測させ、計測された処理負荷が所定の閾値未満である場合には、稼動系および待機系の各制御装置および等値化ケーブル40経由のデータ通信により監視データの等値化を行い、制御装置の処理負荷が所定の閾値以上である場合には等値化ケーブル400経由のデータ通信により監視データの等値化を行う処理を、稼動系および待機系の各ネットワーク装置の制御部に実行させるようにしても良い。ここで、制御装置の処理負荷の具体的な計測方法としては、制御装置におけるCPU使用率やメモリ使用率等を表すデータを接続先の制御装置から取得する処理をネットワーク装置200に実行させる態様が考えられる。
また、監視データの送信元となるIOスレーブ装置毎に、監視データの等値化を制御装置側で行うのか、それともネットワーク装置側(中継装置側)で行うのかの振り分けパターンを予め定めて置き、監視データの等値化に関する処理負荷を制御装置とネットワーク装置との間で分散することも考えられる。例えば、IOスレーブ装置S1から送信された監視データについては制御装置側で等値化を行い、IOスレーブ装置S2から送信された監視データについてはネットワーク装置側で監視を行う、といった具合である。このようなことは、各IOスレーブ装置の通信アドレスに対応付けて、制御装置側とネットワーク装置側の何れで監視データの等値化を行うのかを示すフラグを格納したテーブル(以下、振り分けパターンテーブル)を制御装置100Aおよび100Bとネットワーク装置200Aおよび200Bに予め記憶させておく。そして、ネットワーク装置200Aおよび200Bには当該振り分けテーブルにおいて中継装置側で等値化を行うと定められた監視データについてのみ等値化を行わせ、制御装置100Aおよび100Bには当該振り分けテーブルにおいて制御装置側で等値化を行うと定められた監視データについて等値化を行わせるようにすれば良い。また、上記振り分けテーブルを制御装置の処理負荷に応じて複数用意しておき、高い処理負荷に対応するテーブルほど、中継装置側で等値化を行う監視データが多くなる格納内容としておいても良い。
(C:第3実施形態)
図9は、本発明の第3実施形態の通信システム1Cの構成例を示す図である。
この通信システム1Cも産業施設内に敷設される制御システムである。図9では、図1におけるものと同一の要素には同一の符号が付されている。図9と図1を対比すれば明らかように、通信システム1Cは、以下の3つの点で通信システム1Aと異なる。第1に、制御装置100Aおよび制御装置100Bに替えて制御装置100A´および制御装置100B´を設けた点である。第2にネットワーク装置200Aおよびネットワーク装置200Bに代えてネットワーク装置200A´およびネットワーク装置200B´を設けた点である。そして、第3にネットワーク装置200A´がIOネットワーク30Cにも接続されている点である。
IOネットワーク30Cには、IOスレーブ装置S1´〜Sn´が接続されている。IOネットワーク30Cは、IOスレーブ装置S1´〜Sn´とネットワーク装置200A´の間のデータ通信を仲介する。前述したように、IOスレーブ装置S1〜Snから送信されたデータを制御装置へ伝送するネットワークはIOネットワーク30AおよびIOネットワーク30Bにより二重化されていたが、IOスレーブ装置S1´〜Sn´から送信されたデータを制御装置へ伝送するネットワークについてはこのような二重化は施されていない。つまり、ネットワーク装置200A´は二重化されたネットワークと二重化されていないネットワーク(以下、シングルネットワーク)に接続されている。
ネットワーク装置200A´は第1実施形態におけるネットワーク装置200Aと同様にIOネットワーク30Aと制御装置100A´との間のデータ通信を中継し、ネットワーク装置200B´は第1実施形態におけるネットワーク装置200Bと同様にIOネットワーク30Bと制御装置100B´との間のデータ通信を中継する。また、ネットワーク装置200A´とネットワーク装置200B´は、第1実施形態におけるネットワーク装置200Aおよびネットワーク装置200Bと同様に、等値化ケーブル400を介したデータ通信により監視データの等値化を行う。ただし、ネットワーク装置200A´とネットワーク装置200B´は、接続先の制御装置が稼働系であるか待機系であるかとは無関係に互いの状態監視により稼働系/待機系の切り替えを行う点がネットワーク装置200Aおよびネットワーク装置200Bと異なる。
これに加えて、ネットワーク装置200A´とネットワーク装置200B´は、等値化ケーブル400を介したデータ通信により、IOネットワーク30Cから受信した監視データについても上記等値化と同様の処理を行う。すなわち、ネットワーク装置200A´の制御部は、IOネットワーク30Cから受信した監視データを等値化ケーブル400を介してネットワーク装置200B´へ送信し、ネットワーク装置200B´の制御部は当該監視データを監視データバッファに書き込む。そして、ネットワーク装置200A´とネットワーク装置200B´の各々は、IOネットワーク30Cから送信されてきた監視データを各々の接続先の制御装置へ送信する。
制御装置100A´と制御装置100B´は、IOスレーブ装置S1〜Snから送信されたデータの受信を契機として、そのデータを使用した演算(以下、第1の演算)およびその演算結果に応じた機器の制御を実行する。これに加えて、稼動系の制御装置は、IOスレーブ装置S1´〜Sn´から送信されたデータの受信を契機として、そのデータを使用した演算(以下、第2の演算)を実行する。つまり、本実施形態における稼動系の制御装置は、IOスレーブ装置S1〜Snからデータを収集して第1の演算を行う役割と、IOスレーブ装置S1´〜Sn´からデータを収集して第2の演算を行う役割とを兼ねている。
冗長化制御システムにおいて二重化されたネットワーク経由でIOスレーブ装置からデータを収集し何らかの演算を行う制御装置に、シングルネットワーク経由でデータを収集して他の演算を実行する役割を兼ねさせることができれば、二重化ネットワーク用とシングルネットワーク用のシステムを各々別個に構築する必要がなく、システムの開発運用コストを低減できると期待されるのであるが、従来の冗長化制御システムではこのような期待に応えることは難しかった。その理由は以下の通りである。
例えば、図17におけるネットワーク装置20Aにのみシングルネットワークが接続されていたとする。この場合、ネットワーク装置20Aから制御装置10Aには、シングルネットワークから受信したデータと二重化されたネットワークから受信したデータとが与えられる一方、ネットワーク装置20Bから制御装置10Bには、二重化されたネットワークから受信したデータのみが与えられる。制御装置10Aと制御装置10Bに与えられるデータに不一致があると、冗長化制御システムのなかにはエラーと判定するものもあり、このようなシステムでは、そもそも上記のような接続形態を採用することはできない。
また、上記のような不一致がエラーと判定されない場合であっても、上記のような接続形態において稼働系の制御装置の故障等により稼動系/待機系の切り替えが発生すると、切り替え後の稼動系の制御装置にはシングルネットワークからの受信データが与えられることはなく、シングルネットワークから送信されてくるデータの収集およびそのデータを用いた演算を継続することはできなくなる。つまり、従来の冗長化制御システムに含まれる二重化された制御装置の一方にシングルネットワーク経由のデータを与えて所定の演算を行わせることが仮にできたとしても、演算の安定実行を保証できないのである。
これに対して本実施形態によれば、制御装置についての稼動系/待機系の切り替えが発生しても、切り替え後の稼動系の制御装置には引き続きシングルネットワークから受信した監視データが与えられ、当該監視データの収集およびそのデータを用いて演算を何ら問題なく継続することができる。例えば、図9に示す通信システム1Cにおいて制御装置100A´から制御装置100B´に稼働系が切り替わったとしても、ネットワーク装置200A´は依然として稼働系の中継装置であり、ネットワーク装置200B´は依然として待機系の中継装置である。このため、IOスレーブ装置S1´〜Sn´の各々から送信された監視データは、IOネットワーク30C→ネットワーク装置200A´→等値化ケーブル400→ネットワーク装置200B´→制御装置100B´といった具合に制御装置100Bへ伝送される。つまり、本実施形態によれば、冗長化制御システムにおいて二重化されたネットワーク経由でIOスレーブ装置からデータを収集し何等かの演算を行う制御装置にシングルネットワーク経由でデータを収集して他の演算を実行する役割を兼ねさせることが可能になり、二重化ネットワーク用とシングルネットワーク用のシステムを各々別個に構築する場合に比較してシステムの開発運用コストを低減させることができる。なお、ネットワーク装置についての稼働系/待機系の切り替えを制御装置についての稼働系/待機系の切り替えに従属させる場合には、シングルネットワークに接続されたネットワーク装置には、当該ネットワーク装置が稼働系であるか否かを問わずに当該シングルネットワークを介して受信した監視データを中継装置間通信手段を介して他方のネットワーク装置へ転送し、当該監視データの等値化を行わせる処理を実行させるようにすれば良い。
(D:第4実施形態)
図10は、本発明の第4実施形態の通信システム1Dの構成例を示す図である。
この通信システム1Dも産業施設内に敷設された制御システムである。図10では、図1におけるものと同一の要素には同一の符号が付されている。図10ではIOネットワーク30Aおよび30Bに対するIOスレーブ装置S1〜S3の詳細な接続態様が図示されており、この点が図1と異なる。図10に示すように、IOスレーブ装置Sn(n=1〜3)の各々はIOマスタ(図10では、「IOM」と略記)MAnを介してIOネットワーク30Aに接続されており、IOマスタMBnを介してIOネットワーク30Bに接続されている。IOマスタMAnは、IOスレーブ装置Snの出力する監視データをIOネットワーク30Aに送出する。IOマスタMBnは、IOスレーブ装置Snの出力する監視データをIOネットワーク30Bに送出する。なお、図1では、IOスレーブ装置S1〜Snの詳細な接続形態の図示は省略されていたが、図10におけるものと同一である。
図10と図1を対比すれば明らかように、通信システム1Dは、ネットワーク装置200Aおよびネットワーク装置200Bに代えてネットワーク装置200A´´およびネットワーク装置200B´´を設けた点が第1実施形態の通信システム1Aと異なる。本実施形態のネットワーク装置200A´´およびネットワーク装置200B´´も、一方は稼働系として振る舞い、他方は待機系として振る舞う。本実施形態では、前述した第1実施形態と同様に、ネットワーク装置200A´´およびネットワーク装置200B´´のうち、稼働系の制御装置100に接続されている方が稼働系として振る舞う。以下では、第1実施形態についての説明と同様にネットワーク装置200A´´とネットワーク装置200B´´とを区別する必要がない場合には、「ネットワーク装置200´´」と表記する。
図17に示す従来の冗長化制御システムでは、稼働系の制御装置に何らかの障害が発生した場合は勿論、ネットワーク装置を介して稼働系の制御装置に接続されているIOネットワークや当該IOネットワークにIOスレーブ装置を接続するIOマスタに何らかの障害が発生した場合も稼働系/待機系の切り替えを行う必要があった。上記IOネットワークやIOマスタに障害が発生すると、そのIOネットワークまたはIOマスタ経由の監視データは稼働系の制御装置に届かなくなるからである。これに対して本実施形態では、ネットワーク装置200´´に本実施形態特有の処理を実行させることで、上記IOネットワークやIOマスタに何らかの障害が発生したとしても、稼働系/待機系の切り替えを行うことなく制御対象装置の制御を継続できるように構成されており、この点に本実施形態の特徴がある。以下、本実施形態の特徴を顕著に示すネットワーク装置200´´について説明する。
図11は、ネットワーク装置200´´の構成例を示す図である。図11では、図2におけるものと同一の構成要素には同一の符号が付されている。図11と図2を対比すれば明らかように、ネットワーク装置200´´の構成は、中継制御プログラム2542に代えて中継制御プログラム2542´´が不揮発性記憶部254に記憶されている点がネットワーク装置200の構成と異なる。中継制御プログラム2542´´は、等値化処理2542bに代えて等値化送信処理2542b1および等値化受信処理2542b2を制御部210に実行させる点が第1実施形態の中継制御プログラム2542と異なる。
ネットワーク装置200´´の制御部210は、ネットワーク装置200´´の電源(図示略)の投入或いはリセットを契機として不揮発性記憶部254から揮発性記憶部252へ中継制御プログラム2542´´を読み出し、その実行を開始する。図12は、ネットワーク装置200´´の制御部210が中継制御プログラム2542´´にしたがって実行する動作を説明するための図である。図12では、図3におけるものと同一の処理には同一の符号が付されている。中継制御プログラム2542´´にしたがって作動している制御部210は、前述した第1実施形態における制御部210と同様に第1通信I/F部220内の通信バッファへの監視データの書き込み(すなわち、接続先のIOネットワーク30からの監視データの受信)を契機として中継処理2542aを実行する。前述したように中継処理2542aでは、制御部210は第1通信I/F部220内の通信バッファから監視データを読み出し(図12:S100)、監視データバッファ2522へ当該監視データを書き込む(図12:S110)。なお、監視データバッファ2522への監視データの書き込みを行う際に、等値化済でないことを示す第1の値をセットしフラグを付与して監視データバッファ2522に書き込む点も第1実施形態と同様である。
図12と図3とを対比すれば明らかように、等値化送信処理2542b1と等値化受信処理2542b2との組み合わせは、等値化処理2542bに対応する。第1実施形態における等値化処理2542bの実行契機は、稼働系のネットワーク装置と待機系のネットワーク装置とで異なっていた。例えば、稼働系においては等値化済でないことを示すフラグを付与された監視データの監視データバッファ2522への書き込みを契機として等値化処理2542bが実行され、待機系においては等値化ケーブル400を介して監視データを受信したことを契機として等値化処理2542bが実行された。これに対して等値化送信処理2542b1の実行契機は稼働系のネットワーク装置と待機系のネットワーク装置とで違いはなく、等値化受信処理2542b2の実行契機にも違いはない。
より詳細に説明すると、ネットワーク装置200´´の制御部210は、稼働系として動作しているか否かを問わず、等値化済でないことを示すフラグを付与された監視データの監視データバッファ2522への書き込みを契機として等値化送信処理2542b1を実行する。等値化送信処理2542b1では、制御部210は監視データバッファ2522から等値化済でないことを示すフラグを付与された監視データを読み出し(図12:S120)、当該監視データを第3通信I/F部240に与え(図12:S130)、他方のネットワーク装置へ転送する。このため、本実施形態では、ネットワーク装置200A´´がIOネットワーク30Aから受信した監視データAは等値化ケーブル400を介してネットワーク装置200B´´に転送され、ネットワーク装置200B´´がIOネットワーク30Bから受信した監視データBも等値化ケーブル400を介してネットワーク装置200A´´に転送される。
中継制御プログラム2542´´にしたがって作動している制御部210は、等値化ケーブル400を介して他方のネットワーク装置200´´から監視データを受信したことを契機として等値化受信処理2542b2を実行する。図13は、等値化受信処理2542b2の流れを示すフローチャートである。図13に示すように、制御部210は、まず、等値化ケーブル400を介して他方のネットワーク装置200´´から受信した監視データの送信元のIOスレーブ装置との通信が可能であるか否かを判定する(ステップSB100)。上記監視データの送信元のIOスレーブ装置との通信が可能であるか否かの具体的な判定方法としては、例えばpingなどの既存技術を利用する方法が考えられる。
ステップSB100の判定結果が“No”であった場合(通信不能であった場合)には、制御部210は、等値化ケーブル400を介して他方のネットワーク装置200´´から受信した監視データで、自装置の接続先のIOネットワーク30を介して受信するはずであった監視データ(自装置に接続されている制御装置100へ宛てて送信された監視データ)を補完する(ステップSB110)。IOスレーブ装置との通信が不能であるため、そのIOスレーブ装置からの監視データを受信することはなく、ステップSB110はこの監視データの欠落を補うための処理である。より詳細に説明すると、ステップSB110では、制御部210は、等値化ケーブル400を介して受信した監視データのヘッダ部の送信先を示す情報を自装置に接続されている制御装置100を示す情報に書き換え、等値化済でないことを示す第1の値をセットしたフラグを付与して監視データバッファ2522に書き込む。次いで、制御部210は、ステップSB110にて監視データバッファ2522に書き込んだ監視データのフラグを等値化済を示す第2の値に更新するとともに等値化完了を他方のネットワーク装置へ通知し(ステップSB150)、等値化受信処理2542b2を完了する。なお、上記のようにステップSB100の判定結果がNoとなる場合には、他方のネットワーク装置200´´に対して等値化ケーブル400経由の監視データの転送が行われることはないため、当該他方のネットワーク装置では上記通知の受信を契機として等値化完了を検出し、該当する監視データのフラグを更新するようにすれば良い。
これに対してステップSB100の判定結果が“Yes”であった場合(通信可能であった場合)には、制御部210は、前述したステップSA100と同様に、自装置が稼働系であるか否かを判定する(ステップSB120)。ステップSB120の判定結果が“Yes”であった場合(すなわち、自装置が稼働系であった場合)には、制御部210は、等値化ケーブル400を介して他方のネットワーク装置200´´から受信した監視データを破棄し(ステップSB130)、さらに、当該監視データに対応するものとして監視データバッファ2522に書き込まれている監視データの等値化フラグを第2の値に更新(ステップSB150)して等値化受信処理2542b2を終了する。逆にステップSB120の判定結果が“No”であった場合(すなわち、自装置が待機系であった場合)には、制御部210は、前述したステップSA120の処理と同様に、等値化ケーブル400を介して他方のネットワーク装置200´´から受信した監視データで当該監視データに対応するものとして監視データバッファ2522に書き込まれている監視データを置き換え(ステップSB140)、その後、ステップSB150の処理を実行して等値化受信処理2542b2を終了する。
以上がネットワーク装置200´´の構成である。
次いで、制御装置100Aが稼働系であり、制御装置100Bが待機系である場合(すなわち、ネットワーク装置200A´´が稼働系であり、ネットワーク装置200B´´が待機系である場合)を例にとって本実施形態の動作を説明する。IOマスタMAn(n=1〜3)とIOマスタMBn(n=1〜3)が全て健全に動作しており、かつ、IOネットワーク30AおよびIOネットワーク30Bの何れにも断線等の障害が発生していなければ、IOスレーブ装置Sn(n=1〜3)から送信された監視データAnは、IOネットワーク30Aを介してネットワーク装置200A´´に到達し、同IOスレーブ装置Snから送信された監視データBnは、IOネットワーク30Bを介してネットワーク装置200B´´に到達する。
前述したようにネットワーク装置200A´´およびネットワーク装置200B´´の各々では、第1通信I/F部220を介して監視データを受信したことを契機として中継処理2542aが実行される。その結果、図14(A)に示すように、ネットワーク装置200A´´の監視データバッファ2522には監視データAnが格納され、ネットワーク装置200B´´の監視データバッファ2522には監視データBnが格納される。また、等値化済でない監視データの監視データバッファ2522への書き込みを契機としてネットワーク装置200´´では等値化送信処理2542b1が実行される。その結果、図14(A)に示すように、ネットワーク装置200A´´からネットワーク装置200B´´へ等値化ケーブル400経由で監視データAnが転送され、ネットワーク装置200B´´からネットワーク装置200A´´へ等値化ケーブル400経由で監視データBnが転送される。
前述したようにネットワーク装置200´´の制御部210は第3通信I/F部240を介して監視データを受信する毎に等値化受信処理2542b2を実行する。具体的には、ネットワーク装置200A´´の制御部210は、第3通信I/F部240を介して監視データBnを受信する毎に等値化受信処理2542b2を実行する。本動作例では、IOマスタMAn(n=1〜3)は全て健全に動作しており、かつ、IOネットワーク30Aに断線等の障害は発生していない。このため、ネットワーク装置200A´´の制御部210の実行する等値化受信処理2542b2では、ステップSB100の判定結果は“Yes”となり、ステップSB120以降の処理が実行される。ネットワーク装置200A´´は稼働系であるため、ステップSB120の判定結果は“Yes”となり、ステップSB130の処理が実行される。すなわち、第3通信I/F部240を介してネットワーク装置200A´´が受信した監視データBnは全て破棄される。
ネットワーク装置200B´´においても同様に第3通信I/F部240を介して監視データAnを受信する毎に等値化受信処理2542b2が実行される。ネットワーク装置200B´´の制御部210の実行する等値化受信処理2542b2においてもステップSB100の判定結果は“Yes”となり、ステップSB120以降の処理が実行される。ネットワーク装置200B´´は待機系であるため、ステップSB120の判定結果は“No”となり、ステップSB140の処理が実行される。すなわち、ネットワーク装置200B´´の監視データバッファ2522に格納されていた監視データBnは全て第3通信I/F部240を介してネットワーク装置200A´´から受信した監視データAnに置き換えられる(図14(B)参照)。その結果、制御装置100Aにはネットワーク装置200A´´経由で監視データAnが転送され、制御装置100Bにもネットワーク装置200B´´経由で監視データAnが転送される。
これに対して、IOマスタMA1とIOマスタMB2になんらかの障害が発生した場合には、図15(A)に示すように、ネットワーク装置200A´´が受信するはずであった監視データA1は欠落し、ネットワーク装置200B´´が受信するはずであった監視データB2も欠落する。なお、図15(A)におけるNULLは監視データの欠落を意味している。この場合、図15(A)に示すように、ネットワーク装置200A´´からネットワーク装置200B´´へ等値化ケーブル400経由で監視データA2およびA3が転送され、ネットワーク装置200B´´からネットワーク装置200A´´へ等値化ケーブル400経由で監視データB1およびB3が転送される。
第3通信I/F部240を介して監視データB1を受信したことを契機としてネットワーク装置200A´´において実行される等値化受信処理2542b2では、ステップSB100の判定結果は“No”となり、ステップSB110の処理が実行される。その結果、図15(B)に示すように、ネットワーク装置200A´´が受信するはずであった監視データA1は監視データB1で補完される。同様に、第3通信I/F部240を介して監視データA2を受信したことを契機としてネットワーク装置200B´´で実行される等値化受信処理2542b2においてもステップSB100の判定結果は“No”となり、ステップSB110の処理が実行される。その結果、図15(B)に示すように、ネットワーク装置200B´´が受信するはずであった監視データB2は監視データA2で補完される。本動作例では、制御装置100Aには、等値化済の監視データとして監視データB1、監視データA2および監視データA3がネットワーク装置200A´´から転送され、制御装置100Bには等値化済の監視データとして監視データB1、監視データA2および監視データA3がネットワーク装置200B´´から転送される。稼働系の制御装置(本動作例では、制御装置100A)には、ネットワーク装置200A´´から等値化済みの監視データが転送されてくるので、何ら問題なく制御対象装置の制御等を継続することができる。
このように本実施形態によれば、ネットワーク装置を介して稼働系の制御装置に接続されているIOネットワーク(或いは、当該IOネットワークに接続されている複数のIOマスタの何れか)に故障が発生したとしても、制御装置についての稼働系/待機系の切り替えを行う必要はなく、冗長化制御システムにおける稼働系/待機系の切り替えの発生頻度を低減させることができる、といった効果が奏される。さらに、本実施形態によれば、ネットワーク装置を介して稼働系の制御装置に接続されているIOネットワークに接続されているIOマスタに故障が発生し、ネットワーク装置を介して待機系の制御装置に接続されているIOネットワークに接続されているIOマスタにも故障が発生するといった、多重故障が発生した場合であっても、それらIOマスタが同一のIO機器に接続されているものでない限り、制御対象装置の制御を継続することができ、前述した第1実施形態に比較して多重故障に対する耐性をさらに高めることができる、といった効果が奏される。なお、本実施形態では、待機系のネットワーク装置には、IOネットワークから受信した全ての監視データをネットワーク装置間の等値化ケーブル(本実施形態では、等値化ケーブル400)経由で稼働系のネットワーク装置へ転送させたが、稼働系において欠落した監視データのみを転送するようにしても良い。稼働系における監視データの欠落を待機系のネットワーク装置に検出させる方法については種々の方法が考えられる。例えば、稼働系のネットワーク装置からネットワーク装置間の等値化ケーブル経由で待機系のネットワーク装置へ当該稼働系のネットワーク装置が受信済の監視データの識別子情報のリストを送信し、当該リストに基づいて稼働系における監視データの欠落を待機系のネットワーク装置に検出させるようにすれば良い。また、待機系のネットワーク装置がIOネットワーク経由で監視データを受信してから所定時間が経過しても当該監視データに対応するデータをネットワーク装置間の等値化ケーブル経由で受信しなかった場合に、稼働系における監視データの欠落が発生したと待機系のネットワーク装置に判定させても良い。
また、IOスレーブ装置S1〜S3に制御対象装置が含まれている場合には、制御装置100から制御対象装置へ送信された演算データ(等値化済の監視データに基づく演算の結果を表すデータ)の転送制御についても、その制御対象装置をIOネットワーク30に接続するIOマスタの故障の有無に応じて同様に行えば良い。例えば図15(B)におけるIOスレーブ装置S1〜S3の其々が制御対象装置である場合には、IOスレーブ装置S1に対しては、制御装置100A→ネットワーク装置200A´´→等値化ケーブル400→ネットワーク装置200B´´→IOネットワーク30Bといった伝送経路に沿って演算データを転送すれば良い。同様に、IOスレーブ装置S2およびS3に対しては、制御装置100A→ネットワーク装置200A´´→IOネットワーク30Aといった伝送経路に沿って演算データを転送すれば良い。
加えて、本実施形態においても、監視データの等値化はネットワーク装置200´´で行われるため、前述した第1実施形態と同様に、制御装置に転送される監視データのデータ量が増加しても、制御装置本来の演算の実行に何ら支障を発生させず、かつ稼働系/待機系の切り替えスピードの低下を招かないようにすることが可能になる、といった効果が奏されることは勿論である。
上記実施形態では、IOマスタに何らかの障害が発生した場合について説明したが、IOネットワーク30(或いはIOネットワーク30とネットワーク装置200´´とを接続する通信線)に断線等の障害が発生した場合には、当該IOネットワーク30経由で受信するはずであった全ての監視データについて上記補完が行われることは言うまでもない。また、上記実施形態では、ネットワーク装置200´´に二重化されたIOネットワークが1つだけ接続されていたが、図16に示すように二重化されたIOネットワークが複数(図16に示す例では2つ)接続されていても良い。
一般に冗長化制御システムにおいては、IOスレーブ装置から稼働系の制御装置100に至るデータの転送経路(或いは逆方向の転送経路)が変動することは好ましくない。そこで、ステップSB100にて通信不能であると判定された送信元を示す識別情報を揮発性記憶部252の所定の記憶領域に書き込み、以降、当該記憶領域に識別情報が記憶されてくる機器からの監視データについては常に等値化ケーブル400経由で受信した監視データによる補完または置き換えを行い、自装置の電源断またはリセットを契機として上記記憶領域を初期化する処理をネットワーク装置200´´の制御部210に実行させるようにしても良い。このような態様によれば、上記補完等の発生後にIOマスタ等の修理が行われ、補完等を行う必要がなくなったとしても、ネットワーク装置200´´の電源断またはリセットが為されるまでは、IOスレーブ装置から稼働系の制御装置100に至るデータの転送経路が上記補完等の行われない経路に切り替えられることはなく、経路切り替えに起因する影響を回避することができる。
(D:変形)
以上本発明の第1、第2、第3および第4実施形態について説明したが、これら実施形態に以下の変形を加えても勿論良い。
(1)上記第1実施形態では、ネットワーク装置200Aとネットワーク装置200Bのうちの稼働系のネットワーク装置から待機系のネットワーク装置へ等値化ケーブル400を介して監視データを送信し記憶させるといったプッシュ型のデータ通信で監視データの等値化を実現する場合について説明した。しかし。等値化ケーブル400経由で稼働系のネットワーク装置から監視データを取得して自装置の監視データを更新する処理を待機系のネットワーク装置に実行させるプル型のデータ通信で監視データの等値化を実現しても良い。
(2)上記各実施形態では、IOスレーブ装置から収集した監視データを制御装置へ転送するゲートウェイ装置への本発明の適用例を説明した。しかし、本発明の適用対象はゲートウェイ装置に限定される訳ではなく、ルータやリピータ、スイッチングハブなどの他の種類の中継装置であっても良い。さらに、本発明の中継装置に接続されるネットワークはIOネットワークなどの制御系ネットワークやシリアルバスに限定される訳ではなく、TCPなどの汎用通信プロトコルにしたがったデータ通信を仲介する一般的な情報系ネットワークであっても良い。要は、監視データを収集し、当該監視データを使用した演算を実行する制御装置と、監視データを出力する機器に接続されたネットワークとに接続され、当該ネットワークを介して受信したデータを当該制御装置へ転送する中継装置であれば、本発明を適用可能である。
(3)上記各実施形態の通信システムに含まれるネットワーク装置(中継装置)を単体で提供する(すなわち、製造・販売する)態様であっても良い。このようなネットワーク装置を従来の冗長化制御システムにおけるネットワーク装置と置き換え、中継装置間等値化ケーブルでそれらネットワーク装置を互いに接続することで、従来の冗長化制御システムを上記各実施形態の通信システムとして機能させることが可能になるからである。
(4)上記各実施形態では、本発明の特徴を顕著に示す中継処理2542aおよび等値化処理2542b(第4実施形態では、等値化送信処理2542b1および等値化受信処理2542b2)をソフトウェアにより実現した。しかし、中継処理2542aを実行する中継手段と等値化処理2542bを実行する等値化手段の各々を電子回路で構成し、これら電子回路を組み合わせて上記第1〜第3の各実施形態のネットワーク装置を構成しても良い。第4実施形態のネットワーク装置200´´についても同様である。また、上記実施形態では中継装置間通信手段として等値化ケーブルを用いたが、無線LANインタフェースなどの無線通信手段を中継装置間通信手段として用いても良い。また、ネットワーク装置200Aとネットワーク装置200Bとが1つの筐体に実装される場合には、両装置の接続されるバスを中継装置間通信手段として用いても良い。制御装置間通信手段についても同様である。
(5)上記各実施形態では、制御装置100Aおよび制御装置100Bの各々が、稼働系であるか待機系であるかを問わずに、接続先のネットワーク装置200を介して受信した監視データを使用して機器制御のための演算を行う場合(すなわち、ホットスタンバイ方式の制御システムへの本発明の適用例)を説明した。しかし、本発明の適用対象はホットスタンバイ方式の制御システムに限定されるものではなく、ウォームスタンバイ方式の制御システムに本発明を適用しても良い。ウォームスタンバイ方式の制御システムは、二重化された制御装置の一方が稼働系となって上記演算を実行し、他方は待機系となって稼働系の故障に備える点ではホットスタンバイ方式の制御システムと同一であるが、待機系の制御装置では上記演算が実行されない点が異なる。また、上記第1〜第3実施形態では、待機系のネットワーク装置においても、第1通信I/F部220により受信した監視データを監視データバッファ2522に書き込む処理(図4(B):S100およびS110の各処理)を実行したが、待機系のネットワーク装置においては当該処理を省略しても良い。図4(B)のS100およびS110の各処理により監視データバッファ2522により書き込まれた監視データは、等値化処理2542bのステップSA120の処理で上書きされてしまうからである。