(57)【要約】【課題】  複数のノードの各々が、他ノードとのデータの送受信結果を示す通信状態情報を基に他ノードの異常の有無を判断すること。【解決手段】  ネットワークを介してデータの送受信を行う複数のノードの各々は、他ノードとデータの送受信を時分割で行うと共に、他ノードとのデータの送受信結果を示す通信状態情報を各ノードに対応づけて記録し、記録した通信状態情報を他ノードに１送信周期内に送信し、正常なノードは、データの送受信時に、自ノードに記録された通信状態情報と、少なくとも２以上の他ノードから受信した通信状態情報とを比較し、当該比較結果を基に複数のノードの各々の異常の有無を判断する。【選択図】  図１
2019220800.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークを介してデータの送受信を行う複数のノードを備えたネットワークシステムにおけるネットワーク異常検出方法であって、
前記複数のノードの各々が、他ノードと前記データの送受信を時分割で行うと共に、前記他ノードとの前記データの送受信結果を示す通信状態情報を前記各ノードに対応づけて記録し、記録した前記通信状態情報を前記他ノードに１送信周期内に送信する送信ステップと、
前記複数のノードのうち正常なノードが、前記データの送受信時に、自ノードに記録された前記通信状態情報と、少なくとも２以上の前記他ノードから受信した前記通信状態情報とを比較し、当該比較結果を基に前記複数のノードの各々の異常の有無を判断する判断ステップと、を含むことを特徴とするネットワーク異常検出方法。
【請求項２】
請求項１に記載のネットワーク異常検出方法であって、
前記正常なノードは、
前記判断ステップでは、前記自ノードに記録された前記通信状態情報と前記少なくとも２以上の前記他ノードから受信した前記通信状態情報にそれぞれ同一のノードについて異常を示す情報が存在することを条件に、前記異常を示す情報で特定されるノードを異常と判断することを特徴とするネットワーク異常検出方法。
【請求項３】
請求項１に記載のネットワーク異常検出方法であって、
前記正常なノードは、
前記判断ステップでは、前記自ノードに記録された前記通信状態情報と前記少なくとも２以上の前記他ノードから受信した前記通信状態情報にそれぞれ同一の２以上のノードについて前記異常を示す情報が存在する場合、前記異常を示す情報で特定される前記２以上のノードを異常と判断することを特徴とするネットワーク異常検出方法。
【請求項４】
請求項３に記載のネットワーク異常検出方法であって、
前記正常なノードは、
前記判断ステップでは、前記異常と判断された前記２以上のノードの間に存在するノードを、孤立したノードと判断することを特徴とネットワーク異常検出方法。
【請求項５】
ネットワークを介してデータの送受信を行う複数のノードを備え、
前記複数のノードの各々は、
他ノードと前記データの送受信を時分割で行うと共に、前記他ノードとの前記データの送受信結果を示す通信状態情報を前記各ノードに対応づけて記録し、記録した前記通信状態情報を前記他ノードに１送信周期内に送信し、
前記複数のノードのうち正常なノードは、
前記データの送受信時に、自ノードに記録された前記通信状態情報と、少なくとも２以上の前記他ノードから受信した前記通信状態情報とを比較し、当該比較結果を基に前記複数のノードの各々の異常の有無を判断することを特徴とするネットワークシステム。
【請求項６】
請求項５に記載のネットワークシステムであって、
前記正常なノードは、
前記自ノードに記録された前記通信状態情報と前記少なくとも２以上の前記他ノードから受信した前記通信状態情報にそれぞれ同一のノードについて異常を示す情報が存在することを条件に、前記異常を示す情報で特定されるノードを異常と判断することを特徴とするネットワークシステム。
【請求項７】
請求項５に記載のネットワークシステムであって、
前記正常なノードは、
前記自ノードに記録された前記通信状態情報と前記少なくとも２以上の前記他ノードから受信した前記通信状態情報にそれぞれ同一の２以上のノードについて前記異常を示す情報が存在する場合、前記異常を示す情報で特定される前記２以上のノードを異常と判断することを特徴とするネットワークシステム。
【請求項８】
請求項７に記載のネットワークシステムであって、
前記正常なノードは、
前記異常と判断された前記２以上のノードの間に存在するノードを、孤立したノードと判断することを特徴とするネットワークシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワーク異常検出方法およびネットワークシステムに関する。
【背景技術】
【０００２】
ネットワークシステムとして、例えば、複数のノードのうちいずれかのノードをマスタ用ノードとして用い、マスタ用ノードから他ノードにデータを送信し、データを受信した他ノードが、応答をマスタ用ノードに返信する、マスタ付きネットワークシステムがある。この種の技術として、例えば、特許文献１、２に記載されている技術が挙げられる。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００７−１２６１２７号公報
【特許文献２】特開２０１５−１４９７０１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
マスタ付きネットワークシステムにおいて、ネットワークの異常を検出する場合、マスタ用ノードは、他ノードに電文（通常電文）を送信し、他ノードから通常電文に対する応答が返送されない場合、リトライを開始し、再度他ノードに通常電文を送信し、他ノードから応答が返送されないことを条件に、監視用電文を通常電文とは逆方向に他ノードに送信し、監視用電文を受信した他ノードからの応答を基に、他ノードのいずれかの異常を検出する方法が採用されている。この場合、マスタ用ノードは、他ノードの異常を検出するのに、１送信周期以上の時間を要していた。
【０００５】
本発明の目的は、複数のノードの各々が、他ノードとのデータの送受信結果を示す通信状態情報を基に他ノードの異常の有無を判断することにある。
【課題を解決するための手段】
【０００６】
上記課題を解決するために、本発明は、ネットワークを介してデータの送受信を行う複数のノードを備えたネットワークシステムにおけるネットワーク異常検出方法であって、前記複数のノードの各々が、他ノードと前記データの送受信を時分割で行うと共に、前記他ノードとの前記データの送受信結果を示す通信状態情報を前記各ノードに対応づけて記録し、記録した前記通信状態情報を前記他ノードに１送信周期内に送信する送信ステップと、前記複数のノードのうち正常なノードが、前記データの送受信時に、自ノードに記録された前記通信状態情報と、少なくとも２以上の前記他ノードから受信した前記通信状態情報とを比較し、当該比較結果を基に前記複数のノードの各々の異常の有無を判断する判断ステップと、を含むことを特徴とする。
【発明の効果】
【０００７】
本発明によれば、複数のノードの各々が、他ノードとのデータの送受信結果を示す通信状態情報を基に他ノードの異常の有無を判断することができる。
【図面の簡単な説明】
【０００８】
【図１】本発明に係る実施例のネットワークシステムの構成例を示すブロック図。
【図２】本発明に係る実施例のノードの構成例を示す構成図。
【図３】本発明に係る実施例の正常時のデータの流れを示す説明図。
【図４】本発明に係る実施例のノードのデータ送受信時の処理を示す説明図。
【図５】本発明に係る実施例の異常時のデータの流れを示す説明図。
【図６】本発明に係る実施例の共有メモリ内部の通信状態マトリクスの概念図。
【図７】本発明に係る実施例におけるノード異常時の各ノードの通信状態の概念図。
【図８】本発明に係る実施例におけるノード異常の検出処理を示す概念図。
【図９】本発明に係る実施例における異常ノード判断処理を示すフローチャート。
【発明を実施するための形態】
【０００９】
以下、本発明の実施例を図面に基づいて説明する。
【実施例】
【００１０】
図１は、本発明に係る実施例のネットワークシステムの構成例を示すブロック図である。図１において、ネットワークシステムは、複数のノード１〜５を有し、各ノード１〜５が、ネットワーク１００に接続されている。各ノード１〜５は、ループ状のネットワーク１００を介して互いに接続され、ネットワーク１００を介してデータ（情報）の送受信を双方向で行う。各ノード１〜５は、例えば、ＣＰＵ（Central  Processing  Unit）、入力装置、出力装置（表示装置）、通信装置（通信インターフェース）および記憶装置を備えたコンピュータ装置で構成される。
【００１１】
ＣＰＵは、装置全体の動作を統括的に制御する中央処理装置として構成される。入力装置は、キーボードまたはマウスから構成され、出力装置は、ディスプレイまたはプリンタから構成される。また通信装置は、無線ＬＡＮ又は有線ＬＡＮに接続するためのＮＩＣ（Network  Interface  Card）を備えて構成される。さらに記憶装置は、ＲＡＭ（Random  Access  Memory）およびＲＯＭ（Read  Only  Memory）などの記憶媒体から構成される。
【００１２】
図２は、本発明に係る実施例のノードの構成例を示す構成図である。図２において、各ノード１〜５は、隣接ノード受信２０１、隣接ノード送信２０２、メインプロセス２０３、共有メモリ２０４を含む。隣接ノード受信２０１は、隣接ノードからのデータを受信し、受信したデータを受信データ２１０としてメインプロセス２０３に転送する通信インターフェースである。メインプロセス２０３は、ＣＰＵのメインの処理を示す機能であり、受信データ２１０を処理し、処理したデータ２１１を共有メモリ２０４に書き込み、共有メモリ２０４からデータ２１２を読み出して処理し、処理したデータを送信データ２１３として隣接ノード送信２０２に転送する。隣接ノード送信２０２は、送信データ２１３を隣接ノードに送信する通信インターフェースである。共有メモリ２０４は、ノード間の情報を共有するために、各ノードの送受信データ、通信状態マトリクスの情報、送受信時刻テーブルの情報を格納する記憶デバイスである。
【００１３】
図３は、本発明に係る実施例の時分割伝送方式の正常時のデータの流れを示す説明図である。図３において、各ノード１〜５は、時分割伝送方式で他ノードとデータの送受信を行う。例えば、ノード１は、データ送信処理Ｓ１として、時刻Ｔ１に、他ノード２〜５にデータを送信する。ノード２は、データ送信処理Ｓ２として、時刻Ｔ１からΔｔ秒後の時刻Ｔ２に、他ノード１、３〜５にデータを送信する。ノード３は、データ送信処理Ｓ３として、時刻Ｔ２からΔt秒後の時刻Ｔ３に、他ノード１、２、４、５にデータを送信する。ノード４は、データ送信処理Ｓ４として、時刻Ｔ３からΔt秒後の時刻Ｔ４に、他ノード１〜３、５にデータを送信する。ノード５は、データ送信処理Ｓ５として、時刻Ｔ４からΔｔ秒後の時刻Ｔ５に、他ノード１〜４にデータを送信する。以下、同様に、ノード１〜５は、データ送信処理Ｓ６〜Ｓ１０として、時刻Ｔ６〜Ｔ１０に、他ノードにデータを送信する。
【００１４】
この際、各ノード１〜５は、データ送受信時の時刻を送受信時刻管理テーブル３００の各ブロックＢ１〜Ｂ５に記録して管理している。例えば、ノード１は、データ送信時の時刻Ｔ１と、他ノード２〜ノード５からデータを受信した時刻Ｔ２〜Ｔ５を送受信時刻管理テーブル３００のブロックＢ１〜Ｂ５に記録し、データ送信時の時刻Ｔ６と、他ノード２〜５からデータを受信した時刻Ｔ７〜Ｔ１０を送受信時刻管理テーブル３００のブロックＢ１〜Ｂ５に記録する。なお、ノード１がデータを受信した時刻Ｔ２〜Ｔ５、Ｔ７〜Ｔ１０は、他ノード２〜５のデータ送信時刻であり、説明の便宜上、データの送受信による時間遅れはないものとしている。
【００１５】
ここで、時刻Ｔ１〜時刻Ｔ６までが１送信周期Ｔである。ノード１の時刻Ｔ１後の次の送信時刻（１送信周期Ｔ後の送信時刻Ｔ６）は、以下の方法（ａ）〜（ｅ）で算出することができる。
【００１６】
（ａ）時刻Ｔ１を記録した場合、Ｔ１＋５×Δｔ秒後
（ｂ）時刻Ｔ２を記録した場合、Ｔ２＋４×Δｔ秒後
（ｃ）時刻Ｔ３を記録した場合、Ｔ３＋３×Δｔ秒後
（ｄ）時刻Ｔ４を記録した場合、Ｔ４＋２×Δｔ秒後
（ｅ）時刻Ｔ５を記録した場合、Ｔ５＋１×Δｔ秒後
【００１７】
各ノード１〜５が正常時の場合、ノード１は、ノード５からのデータを受信し、受信したデータの時刻Ｔ５を送受信時刻管理テーブル３００のブロックＢ５に記録した後、Δｔ秒後の時刻Ｔ６に再び他ノード２〜５にブロードキャストでデータを送信する。ノード１がデータを送信した後、他ノード２〜５は、Δｔ秒の時間間隔で他ノードにデータを送信する処理を繰り返す。これにより、各ノード１〜５は、一定周期Ｔで、データを他ノードに順次送信するブロードキャスト送信、時分割でデータの受信という、情報収集、配信を実現することができる。
【００１８】
図４は、本発明に係る実施例のノードのデータ送受信時の処理を示す説明図である。図４において、ノード１は、データ送信処理Ｓ１として、時刻Ｔ１に、他ノード２〜５にデータを送信する際に、送受信時刻管理テーブル３００のブロックＢ１に、送信時の時刻Ｔ１を記録し、ブロックＢ２〜Ｂ５のデータをクリアして、例えば、時刻なしを意味する「無」のデータをブロックＢ２〜Ｂ５に記録する。この後、ノード１は、他ノード２〜５から送信されるデータ（他ノード２〜５のデータ送信処理Ｓ２〜Ｓ５によって送信されるデータ）を受信するデータ受信処理Ｒ１を実行し、受信したデータの受信時刻がそれぞれ時刻Ｔ２〜Ｔ５である場合、時刻Ｔ２〜Ｔ５を送受信時刻管理テーブル３００のブロックＢ２〜Ｂ５に記録する。以降、ノード１は、同様の処理を繰り返す。また、他ノード２〜５も、ノード１と同様の処理を繰り返す。
【００１９】
図５は、本発明に係る実施例の異常時のデータの流れを示す説明図である。図５において、ノード５が異常で停止した場合、ノード１〜４は、正常時と同様に、データ送信処理Ｓ１〜Ｓ４、Ｓ６〜Ｓ９を実行するが、ノード５は、データ送信処理Ｓ５、Ｓ１０を実行できない。このため、ノード１は、他ノード２〜５にデータを送信した時刻Ｔ１、Ｔ６と、他ノード２〜４からデータを受信した時刻Ｔ２〜Ｔ４、Ｔ７〜Ｔ９を送受信時刻管理テーブル３００のブロックＢ１〜Ｂ４にそれぞれ記録し、ブロックＢ５に、「無」を記録する。この際、ノード１は、送受信時刻管理テーブル３００のブロックＢ４に、ノード４からデータを受信した時刻Ｔ４を記録した後、ノード５からのデータを受信できないので、時刻Ｔ４から２×Δｔ秒後に、他ノード２〜５にデータを送信する。この場合、停止したノード５以外は、データの送受信を継続することができる。すなわち、停止したノード５以外のノード１〜４は、一定周期Ｔで、データ（電文）を他ノードに順次送信するブロードキャスト送信、時分割でデータ（電文）の受信という、情報収集、配信を実現することができる。なお、ノード１が、時刻Ｔ６〜Ｔ９を送受信時刻管理テーブル３００のブロックＢ１〜Ｂ４に記録するに際して、図５では、１送信周期Ｔ前の時刻Ｔ１〜Ｔ４が、時刻Ｔ６〜Ｔ９に更新されることを想定している。
【００２０】
図６は、本発明に係る実施例の共有メモリ内部の通信状態マトリクスの概念図である。
図６において、通信状態マトリスク６００は、共有メモリ２０４内に格納される情報であって、ノード１〜５と、送受信時刻管理テーブル３００のブロックＢ１〜Ｂ５に対応した時間ｔ１〜ｔ５との関係を、マトリクス状に管理するテーブルである。通信状態マトリスク６００には、各ノードが、他ノードとデータの送受信を時分割で行う際に、他ノードとのデータの送受信結果を示す通信状態情報が各ノードに対応づけて記録される。例えば、通信状態マトリスク６００の各要素には、正常である場合、即ち、時間ｔ１〜ｔ５に対応した送受信時刻管理テーブル３００のブロックＢ１〜Ｂ５に、時刻が記録されている場合、「○」の情報が記録される。また、通信状態マトリスク６００の各要素には、異常である場合、即ち、時間ｔ１〜ｔ５に対応した送受信時刻管理テーブル３００のブロックＢ１〜Ｂ５に、時刻が記録されず、「無」が記録されている場合、「×」の情報が記録される。なお、通信状態マトリスク６００の各要素には、不明である場合、すなわち、他ノードから通信状態情報を受信できない場合、「-」の情報が記録される。
【００２１】
通信状態マトリスク６００に記録された通信状態情報は、各ノード間で送受信される。例えば、ノード１は、時間ｔ１〜ｔ５に、送受信時刻管理テーブル３００のブロックＢ１〜Ｂ５を参照し、ブロックＢ１〜Ｂ４に時刻Ｔ１〜Ｔ４が記録され、ブロックＢ５に「無」が記録されている場合、通信状態マトリスク６００のうちノード１に対応する行に、時間ｔ１〜ｔ５に対応づけて、「○」、「○」、「○」、「○」、「×」を記録すると共に、記録した通信状態情報を他ノード２〜５に送信する。ノード１から見て、１送信周期Ｔを終了すると、通信状態マトリスク６００の通信状態情報が完成することになる。
【００２２】
次に、ノード２は、時間ｔ１〜ｔ５に、送受信時刻管理テーブル３００のブロックＢ１〜Ｂ５を参照し、ブロックＢ１〜Ｂ４に時刻Ｔ１〜Ｔ４が記録され、ブロックＢ５に「無」が記録されている場合、通信状態マトリスク６００のうちノード２に対応する行に、時間ｔ１〜ｔ５に対応づけて、「○」、「○」、「○」、「○」、「×」を記録すると共に、記録した通信状態情報を他ノード１、３〜５に送信する。
【００２３】
また、ノード３は、時間ｔ１〜ｔ５に、送受信時刻管理テーブル３００のブロックＢ１〜Ｂ５を参照し、ブロックＢ１〜Ｂ４に時刻Ｔ１〜Ｔ４が記録され、ブロックＢ５に「無」が記録されている場合、通信状態マトリスク６００のうちノード３に対応する行に、時間ｔ１〜ｔ５に対応づけて、「○」、「○」、「○」、「○」、「×」を記録すると共に、記録した通信状態情報を他ノード１、２、４、５に送信する。
【００２４】
さらに、ノード４は、時間ｔ１〜ｔ５に、送受信時刻管理テーブル３００のブロックＢ１〜Ｂ５を参照し、ブロックＢ１〜Ｂ４に時刻Ｔ１〜Ｔ４が記録され、ブロックＢ５に「無」が記録されている場合、通信状態マトリスク６００のうちノード４に対応する行に、時間ｔ１〜ｔ５に対応づけて、「○」、「○」、「○」、「○」、「×」を記録すると共に、記録した通信状態情報を他ノード１〜３、５に送信する。なお、ノード５は、他ノード１〜４から、通信状態情報を受信できないので、ノード５の通信状態マトリスク６００の行には、全て「-」の情報が記録される。
【００２５】
図７は、本発明に係る実施例におけるノード異常時の各ノードの通信状態の概念図である。図７において、ノード１は、データ送信処理Ｓ１において、時刻Ｔ１で他ノード２〜５にデータを送信し、送受信時刻管理テーブル３００のブロックＢ１に時刻Ｔ１を記録し、その後、他ノード２〜４から時分割でデータを受信し、送受信時刻管理テーブル３００のブロックＢ２〜Ｂ４にそれぞれ時刻Ｔ２〜Ｔ４を記録した場合、通信状態マトリスク６００の時間ｔ１〜ｔ４に「○」の情報を記録すると共に、記録した通信状態情報を他ノード２〜４に送信し、他ノード５からデータや通信状態情報を受信しない場合、通信状態マトリスク６００の時間ｔ５に「×」の情報を記録すると共に、記録した通信状態情報を他ノード２〜５に送信する。
【００２６】
ノード２は、データ送信処理Ｓ２において、時刻Ｔ２で他ノード１、３〜５にデータを送信し、送受信時刻管理テーブル３００のブロックＢ２に時刻Ｔ２を記録し、その後、他ノード１、３、４からデータを時分割で受信し、送受信時刻管理テーブル３００のブロックＢ１、Ｂ３、Ｂ４にそれぞれ時刻Ｔ１、Ｔ３、Ｔ４を記録した場合、通信状態マトリスク６００の時間ｔ１〜ｔ４に「○」の情報を記録すると共に、記録した通信状態情報を他ノード１、３、４に送信し、他ノード５からデータや通信状態情報を受信しない場合、通信状態マトリスク６００の時間ｔ５に「×」の情報を記録すると共に、記録した通信状態情報を他ノード１、３、４に送信する。
【００２７】
ノード３は、データ送信処理Ｓ３において、時刻Ｔ３で他ノード１、２、４、５にデータを送信し、送受信時刻管理テーブル３００のブロックＢ３に時刻Ｔ３を記録し、その後、他ノード１、２、４から時分割でデータを受信し、送受信時刻管理テーブル３００のブロックＢ１、Ｂ２、Ｂ４にそれぞれ時刻Ｔ１、Ｔ２、Ｔ４を記録した場合、通信状態マトリスク６００の時間ｔ１〜ｔ４に「○」の情報を記録すると共に、記録した通信状態情報を他ノード１、２、４に送信し、他ノード５からデータや通信状態情報を受信しない場合、通信状態マトリスク６００の時間ｔ５に「×」の情報を記録すると共に、記録した通信状態情報を他ノード１、２、４に送信する。なお、ノード５は、他ノード１〜４から通信状態情報を受信できないので、通信状態マトリスク６００の時間ｔ１〜ｔ４に「-」の情報を記録し、また、他ノード１〜４に通信状態情報を送信できないので、通信状態マトリスク６００の時間ｔ５に「×」の情報を記録する。
【００２８】
図８は、本発明に係る実施例におけるノード異常の検出処理を示す概念図である。図８において、ノード１は、データ送信処理Ｓ１において、時刻Ｔ１で他ノード２〜５にデータを送信し、送受信時刻管理テーブル３００のブロックＢ１に時刻Ｔ１を記録し、その後、他ノード２〜４から時分割でデータを受信し、送受信時刻管理テーブル３００のブロックＢ２〜Ｂ４にそれぞれ時刻Ｔ２〜Ｔ４を記録した場合、通信状態マトリスク６００の時間ｔ１〜ｔ４に「○」の情報を記録すると共に、記録した通信状態情報を他ノード２〜４に送信し、他ノード５からデータや通信状態情報を受信しない場合、通信状態マトリスク６００の時間ｔ５に「×」の情報を記録すると共に、記録した通信状態情報を他ノード２〜５に送信する。
【００２９】
ノード２は、データ送信処理Ｓ２において、時刻Ｔ２で他ノード１、３〜５にデータを送信し、送受信時刻管理テーブル３００のブロックＢ２に時刻Ｔ２を記録し、その後、時刻Ｔ１からΔｔ秒後に他ノード１、３、４からデータを時分割で受信し、送受信時刻管理テーブル３００のブロックＢ１、Ｂ３、Ｂ４にそれぞれ時刻Ｔ１、Ｔ３、Ｔ４を記録した場合、通信状態マトリスク６００の時間ｔ１〜ｔ４に「○」の情報を記録すると共に、記録した通信状態情報を他ノード１、３、４に送信し、他ノード５からデータや通信状態情報を受信しない場合、通信状態マトリスク６００の時間ｔ５に「×」の情報を記録すると共に、記録した通信状態情報を他ノード１、３、４に送信する。
【００３０】
ノード３は、データ送信処理Ｓ３において、時刻Ｔ３で他ノード１、２、４、５にデータを送信し、送受信時刻管理テーブル３００のブロックＢ３に時刻Ｔ３を記録し、その後、他ノード１、２、４からデータを時分割で受信し、送受信時刻管理テーブル３００のブロックＢ１、Ｂ２、Ｂ４に時刻Ｔ１、Ｔ２、Ｔ４をそれぞれ記録した場合、通信状態マトリスク６００の時間ｔ１〜ｔ４に「○」の情報を記録すると共に、記録した通信状態情報を他ノード１、２、４に送信し、他ノード５からデータや通信状態情報を受信しない場合、通信状態マトリスク６００の時間ｔ５に「×」の情報を記録すると共に、記録した通信状態情報を他ノード１、２、４に送信する。
【００３１】
この際、ノード１〜３は、自ノードに記録された通信状態情報と、少なくとも２以上の他ノードから受信した通信状態情報を基にノード５の異常を判定することができる。すなわち、通信状態マトリスク６００の時間ｔ１〜ｔ５に記録された通信状態情報が、ノード１〜３で一致するので、時間ｔ１からΔｔ×２秒後に、ノード５が異常であることを判定することができる。
【００３２】
図９は、本発明に係る実施例における異常ノード判断処理を示すフローチャートである。図９において、まず、ノード１は、データ送信処理Ｓ１において、時刻Ｔ１で他ノード２〜５にデータを送信し、送受信時刻管理テーブル３００のブロックＢ１に時刻Ｔ１を記録し、その後、他ノード２〜５から送信されるデータの受信の有無を送受信時刻管理テーブル３００の各ブロックＢ２〜Ｂ５に記録したことを条件に、自ノード１の通信状態マトリスク６００の作成を実行する（ステップ９００）。この際、ノード１は、例えば、他ノード２〜４からデータを受信した場合、送受信時刻管理テーブル３００のブロックＢ２〜Ｂ４に時刻Ｔ２〜Ｔ４を記録し、通信状態マトリスク６００の時間ｔ１〜ｔ４に「○」の情報を記録し、他ノード５からデータや通信状態情報を受信しない場合、ノード１は、送受信時刻管理テーブル３００のブロックＢ５に「無」の情報を記録し、通信状態マトリスク６００の時間ｔ５に「×」の情報を記録する。この際、ノード１は、通信状態マトリスク６００の時間ｔ１〜ｔ５に記録した通信状態情報を他ノード２〜４に送信する。これにより、通信状態マトリスク６００のうち、ノード１に対応した行の通信状態情報が作成されると共に、作成された通信状態情報が他ノード２〜４に送信される。
【００３３】
次に、ノード２は、データ送信処理Ｓ２において、時刻Ｔ２で他ノード１、３〜５にデータを送信し、送受信時刻管理テーブル３００のブロックＢ２に時刻Ｔ２を記録し、その後、他ノード１、３〜５から送信されるデータの受信の有無を送受信時刻管理テーブル３００の各ブロックＢ１、Ｂ３〜Ｂ５に記録したことを条件に、ノード２の通信状態マトリスク６００の作成を実行し、作成した通信状態マトリスク６００の通信状態情報を他ノード１、３〜５に送信する。これにより、ノード１、３〜５は、正常であれば、他ノード２からの通信状態マトリスク６００に記録された情報（通信状態情報）を受信する（ステップ９０１）。この際、ノード２は、例えば、他ノード１、３、４からデータを受信した場合、送受信時刻管理テーブル３００のブロックＢ１、Ｂ３、Ｂ４に時刻Ｔ１、Ｔ３、Ｔ４を記録し、通信状態マトリスク６００の時間ｔ１〜ｔ４に「○」の情報を記録し、他ノード５からデータや通信状態情報を受信しない場合、送受信時刻管理テーブル３００のブロックＢ５に「無」の情報を記録し、通信状態マトリスク６００の時間ｔ５に「×」の情報を記録し、通信状態マトリスク６００の時間ｔ１〜ｔ５に記録した通信状態情報を他ノード１、３、４に送信する。これにより、通信状態マトリスク６００のうち、ノード２に対応した行の通信状態に関する情報が作成されると共に、作成された通信状態情報が他ノード１、３、４に送信される。
【００３４】
次に、ノード３は、データ送信処理Ｓ３において、時刻Ｔ３で他ノード１、２、４、５にデータを送信し、送受信時刻管理テーブル３００のブロックＢ３に時刻Ｔ３を記録し、その後、他ノード１、２、４、５から送信されるデータの受信の有無を送受信時刻管理テーブル３００の各ブロックＢ１、Ｂ２、Ｂ４、Ｂ５に記録したことを条件に、ノード３の通信状態マトリスク６００の作成を実行し、作成した通信状態マトリスク６００の通信状態情報を他ノード１、２、４、５に送信する。これにより、ノード１、２、４、５は、正常であれば、他ノード３からの通信状態マトリスク６００に記録された情報（通信状態情報）を受信する（ステップ９０２）。この際、ノード３は、例えば、他ノード１、２、４からデータを受信した場合、送受信時刻管理テーブル３００のブロックＢ１、Ｂ２、Ｂ４に時刻Ｔ１、Ｔ２、Ｔ４を記録し、通信状態マトリスク６００の時間ｔ１〜ｔ４に「○」の情報を記録し、他ノード５からデータや通信状態情報を受信しない場合、送受信時刻管理テーブル３００のブロックＢ５に「無」の情報を記録し、通信状態マトリスク６００の時間ｔ５に「×」の情報を記録し、通信状態マトリスク６００の時間ｔ１〜ｔ５に記録した通信状態情報を他ノード１、２、４に送信する。これにより、通信状態マトリスク６００のうち、ノード３に対応した行の通信状態情報が作成されると共に、作成された通信状態情報が他ノード１、２、４に送信される。
【００３５】
次に、ノード１、２、３で、通信状態マトリスク６００に記録された通信状態情報を基に、異常ノードは、ノード５で一致か否かを判断（判定）する（ステップ９０３）。この際、ノード１〜３で管理される、通信状態マトリスク６００の時間ｔ１〜時間ｔ５に対応した通信状態情報が、それぞれ「○」、「○」、「○」、「○」、「×」で一致するので、ノード１、２、３は、ノード５（ノード５に接続されるネットワーク１００を含む）を異常として判断し（ステップ９０４）、このルーチンでの処理を終了する。
【００３６】
一方、ステップ９０３で、ノード１〜３で管理される、通信状態マトリスク６００の時間ｔ１〜時間ｔ５に対応した通信状態情報が全て一致しない場合、ノード１、２、３は、ノード５を異常（異常ノード）ではないと判断し、このルーチンでの処理を終了する。
【００３７】
ここで、従来のマスタ付きネットワークシステムの構成を採用した場合、マスタ用ノードとなるノード１がノード５の異常を検出するには、送信周期Ｔ秒以上の時間を要することになる。例えば、マスタ用ノードとなるノード１は、他ノード２〜５に通常電文のデータを送信し、他ノード２〜５から応答が返送されない場合、送信周期Ｔ×リトライ回数で他ノード２〜５に通常電文を繰り返し送信し、他ノード２〜５から応答が返送されないことを条件に、監視用電文を通常電文とは逆方向に送信し、監視用電文を受信した他ノードから返信される応答を基に、ノード５の異常を検出することなる。このため、ノード１は、ノード５の異常を検出するには、１送信周期Ｔ秒以上の時間を要することになる。
【００３８】
これに対して、本実施例の場合、ノード１〜３は、自ノードに記録された通信状態情報と少なくとも２以上の他ノードから受信する通信状態情報を基に、例えば、ノード１の通信状態の作成処理の時間ｔ１から、Δｔ×２秒で、ノード５の異常を検出できるため、１送信周期Ｔ以内で、他ノード５の異常を早期に検出することができる。
【００３９】
本実施例によれば、複数のノードの各々が、他ノードとのデータの送受信結果を示す通信状態情報を基に他ノードの異常の有無を判断することができる。すなわち、複数のノードのうちいずれかのノードをマスタ用ノードとすることなく、どのノードが異常になっても、正常なノードによって、異常ノードを１送信周期Ｔ以内に早期に検出することができる。結果として、復旧処理の高速化が可能となる。また、監視用電文が不要となるので、監視用電文によって伝送負荷が変動することなく、伝送負荷を安定にした状態で異常ノードを検出することができる。さらに、電文伝送用の迂回経路を用いる必要がないので、異常ノードを検出する処理中でも、電文の伝送が途切れるのを防止することができる。
【００４０】
また、本実施例によれば、ノード１〜５のうち、２個のノードの異常を同時に検出することもできる。例えば、ノード１、３が同時に異常になっても、ノード２、４、５は、自ノードに記録された通信状態情報と２以上の他ノードから受信する通信状態情報（ノード１、３の異常を含む通信状態マトリクスの情報）を基に、１送信周期Ｔ以内（Ｔ秒未満）で、ノード１、３の異常を検出することができる。また、ノード１〜５のうち、ノード１、３が同時に異常になり、ノード１とノード３との間に存在する、正常なノード２が孤立した状態でも、ノード２、４、５は、自ノードに記録された通信状態情報と２以上の他ノードから受信する通信状態情報（ノード１、３の異常を含む通信状態マトリクスの情報）を基に、１送信周期Ｔ以内（Ｔ秒未満）で、ノード１、３の異常を検出することができ、且つ、正常なノード２を、異常ノードと判断することなく、孤立したノードと判断することができる。
【００４１】
なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。例えば、通信状態マトリクス６００に記録される通信状態情報を各ノードの表示装置の画面上の表示し、異常ノードが発生した旨を作業員等に報知することもできる。上記した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、実施例の構成の一部について、他の構成の追加・削除・置換をすることが可能である。
【００４２】
また、上記の各構成、機能等は、それらの一部又は全部を、例えば、集積回路で設計する等によりハードウェアで実現してもよい。また、上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリや、ハードディスク、ＳＳＤ（Solid  State  Drive）等の記録装置、または、ＩＣ（Integrated  Circuit）カード、ＳＤ（Secure  Digital）メモリカード、ＤＶＤ（Digital  Versatile  Disc）等の記録媒体に記録して置くことができる。
【符号の説明】
【００４３】
１〜５  ノード、１００  ネットワーク、２０３  メインプロセス、２０４  共有メモリ、３００  送受信時刻管理テーブル、６００  通信状態マトリクス
【図１】
2019220800.tif 000003
【図２】
2019220800.tif 000004
【図３】
2019220800.tif 000005
【図４】
2019220800.tif 000006
【図５】
2019220800.tif 000007
【図６】
2019220800.tif 000008
【図７】
2019220800.tif 000009
【図８】
2019220800.tif 000010
【図９】
2019220800.tif 000011