(57)【特許請求の範囲】
【請求項１】
共通の電源に接続された複数のノードがネットワーク構築機能を有するスタートアップノードとしてネットワーク上に存在し、これら各スタートアップノードが、電源が投入されると自ノードの通信開始準備処理を行った後、予め定められた所定の待機時間の間、他のスタートアップノードからネットワーク起動信号を受信したか否かを監視して、前記待機時間の間に他のスタートアップノードからのネットワーク起動信号を受信しない場合は、ネットワーク構築牽引ノードとしてネットワーク起動信号をネットワーク上に送出してネットワーク構築処理を行い、前記待機時間の間に他のスタートアップノードからのネットワーク起動信号を受信した場合には、ネットワーク構築追従ノードとして前記ネットワーク構築牽引ノードとなったスタートアップノードによるネットワーク構築処理に追従する通信ネットワークシステムにおいて、
前記各スタートアップノードが、自ノードが過去に前記ネットワーク構築牽引ノードとなったと判断される場合に前記ネットワーク起動信号の送出処理を遅延させる遅延手段を備えることを特徴とする通信ネットワークシステム。
【請求項２】
前記遅延手段による前記ネットワーク起動信号の送出処理の遅延時間は、複数のスタートアップノード間における前記通信開始準備処理に要する時間の差に基づいて設定されることを特徴とする請求項１に記載の通信ネットワークシステム。
【請求項３】
前記遅延手段による前記ネットワーク起動信号の送出処理の遅延時間は、複数のスタートアップノードの前記通信開始準備処理に要する時間のうちで最も短い時間と最も長い時間の差以上の時間に設定されることを特徴とする請求項２に記載の通信ネットワークシステム。
【請求項４】
前記複数のスタートアップノードが、各スタートアップノードにおける前記通信開始準備処理に要する時間を基準として複数のグループにグループ分けされ、
前記遅延手段による前記ネットワーク起動信号の送出処理の遅延時間が、各グループごとに異なる値に設定されることを特徴とする請求項２又は３に記載の通信ネットワークシステム。
【請求項５】
前記各スタートアップノードは、過去に前記ネットワーク構築牽引ノードとなったか否かを示すネットワーク構築牽引実行フラグを書き換え可能に保持するフラグ保持手段を備え、
前記遅延手段は、前記フラグ保持手段に保持されているネットワーク構築牽引実行フラグに基づいて、自ノードが過去に前記ネットワーク構築牽引ノードとなったか否かを判断することを特徴とする請求項１乃至４の何れかに記載の通信ネットワークシステム。
【請求項６】
前記各スタートアップノードは、前記ネットワーク構築処理が行われた回数をカウントするカウント手段と、前記ネットワーク上に存在するスタートアップノードの数を記憶する記憶手段と、前記ネットワーク構築処理が行われた回数が前記ネットワーク上に存在するスタートアップノードの数と一致したときに前記フラグ保持手段に保持されているネットワーク構築牽引実行フラグをリセットするフラグリセット手段とを備えることを特徴とする請求項５に記載の通信ネットワークシステム。
【請求項７】
前記各スタートアップノードは、前記ネットワーク構築処理が行われた回数をカウントするカウント手段と、前記ネットワーク上に存在するスタートアップノードの数を記憶する記憶手段と、前記ネットワーク構築処理が行われた回数が前記ネットワーク上に存在するスタートアップノードの数と一致したときに、前記フラグ保持手段に保持されているネットワーク構築牽引実行フラグが前記ネットワーク構築牽引ノードとなったことを示す値となっているか否によって、自ノードのネットワーク構築機能に障害が発生しているか否かを判定する診断手段とを備えることを特徴とする請求項５に記載の通信ネットワークシステム。
【請求項８】
前記各スタートアップノードは、前記ネットワーク構築処理が行われた回数をカウントするカウント手段と、自ノードが前記ネットワーク構築牽引ノードとなる順番を記憶する記憶手段と、前記ネットワーク構築処理が行われた回数が前記記憶手段に記憶されている順番と一致したときに、前記フラグ保持手段に保持されているネットワーク構築牽引実行フラグが前記ネットワーク構築牽引ノードとなったことを示す値となったか否によって、自ノードのネットワーク構築機能に障害が発生しているか否かを判定する診断手段とを備えることを特徴とする請求項５に記載の通信ネットワークシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワーク構築機能を有するスタートアップノードがネットワーク上に複数存在し、これら複数のスタートアップノードのうちの何れかがネットワーク構築牽引ノードとなってネットワーク構築処理を行う通信ネットワークシステムに関する。
【背景技術】
【０００２】
車両に搭載される通信ネットワークシステムのプロトコルの１種として、ＦｌｅｘＲａｙ（Daimler Chrysler AGの登録商標）と呼ばれる通信プロトコルが知られている。このＦｌｅｘＲａｙは、高い信頼性を確保しながら最大１０Ｍｂｐｓ程度の通信速度を実現するものであり、車両走行に直接関わる部分の電子化制御（Ｘ−ｂｙ−ｗｉｒｅ）を実用化する上での重要な技術として注目されている。
【０００３】
ＦｌｅｘＲａｙは同期式ネットワークであるため、ネットワーク上の各ノードは他のノードとの間で同期を取って通信を行う必要がある。このため、ＦｌｅｘＲａｙでは、ネットワーク起動時に、実際にネットワーク上での通信を行う前の準備段階での処理としてスタートアップと呼ばれる処理が行われ、その中のネットワーク構築処理によって各ノード間での同期が確保される。このようなネットワーク構築処理を行う機能を有するノードはスタートアップノードと呼ばれ、通常、１つのネットワーク上に複数のスタートアップノードが存在している。そして、これら複数のスタートアップノードのうちの何れかが、ネットワーク構築牽引ノード（Ｌｅａｄｉｎｇノード）となってネットワーク構築処理を行い、他のスタートアップノードはネットワーク構築追従ノード（Ｆｏｌｌｏｗｉｎｇノード）となって、ネットワーク構築牽引ノードとなったスタートアップノードによるネットワーク構築処理に追従するようになっている。
【０００４】
具体的に説明すると、ネットワーク上に複数存在するスタートアップノードの各々は、電源が投入されると、自ノードの起動や通信機能の設定などの通信開始準備処理を行った後、予め定められた所定の待機時間の間、他のスタートアップノードからネットワーク起動信号を受信したか否かを監視する。そして、所定の待機時間の間に他のスタートアップノードからのネットワーク起動信号を受信しない場合は、自ノードがネットワーク構築牽引ノードとなり、ネットワーク起動信号をネットワーク上に送出し、その後、同期信号を送出し続ける。一方、所定の待機時間の間に他のスタートアップノードからのネットワーク起動信号を受信したスタートアップノードは、ネットワーク構築追従ノードとなって、ネットワーク構築牽引ノードからの同期信号を４回受信した後、ネットワーク構築牽引ノードからの同期信号に合わせて同期信号を送出し続ける。さらに、スタートアップノード以外の他のノードは、２つ以上の同期信号を４回受信したら、これらに合わせて同期信号の送出を行い、ネットワーク上の全てのノードの同期が完了するとネットワーク構築処理が終了する。
【０００５】
このようなＦｌｅｘＲａｙにおけるネットワーク構築処理の詳細は、下記非特許文献１に記載されている。なお、下記非特許文献１に記載されている「ready」の部分が各ノードで実施する通信開始準備処理であり、「coldstart Listen」が各スタートアップノードが所定の待機時間の間、他のスタートアップノードからのネットワーク起動信号の受信を監視する処理である。また、「CAS symbol」がネットワーク起動信号であり、「startup frame」が各ノードが送出する同期信号である。
【非特許文献１】「FlexRay Communication System Protocol Specification Version2.1」，２００５年５月，ｐ．１５８
【発明の開示】
【発明が解決しようとする課題】
【０００６】
ところで、車両に搭載される通信ネットワークシステムにおいて、ネットワークのノードとなる機器は、通常、共通の電源となる車両のバッテリに接続されて、このバッテリからの電力供給を受けて動作する。このため、上述したＦｌｅｘＲａｙのネットワーク構築処理においては、以下のような問題が懸念される。
【０００７】
すなわち、各ノードが電源投入されてから通信開始準備処理が完了するまでの時間は、各ノードのハードウェアやソフトウェアの構成によって決まり、ノード間でその所要時間に差はでてくるものの、同一ノードにおいてはほぼ一定の時間となる。そのため、ネットワーク構築処理を行う際に、ネットワーク上に存在する複数のスタートアップノードの中で、通信開始準備処理に要する時間が最も短いノードが常にネットワーク構築牽引ノードになるという現象が生じ、他のスタートアップノードはネットワーク構築牽引ノードとなる機会がないために、ネットワーク構築機能に障害が生じていたとしてもその障害を事前に検知することが難しい。そして、常にネットワーク構築牽引ノードとなっていたスタートアップノードに何らかの障害が発生した場合などは、他のスタートアップノードがネットワーク構築牽引ノードとなる機会が生じるが、当該スタートアップノードのネットワーク構築機能の障害は、そのときになって初めて顕在化することになり、障害への迅速な対応を図ることが困難となる。
【０００８】
本発明は、以上のような従来技術が有する問題点を解消すべく創案されたものであって、ネットワーク上に存在する各スタートアップノードのネットワーク構築機能の障害の有無を事前にチェックできるようにして、障害が発生していればその障害に対する迅速な対応を図れるようにした通信ネットワークシステムを提供することを目的としている。
【課題を解決するための手段】
【０００９】
本発明の通信ネットワークシステムは、共通の電源に接続された複数のノードがネットワーク構築機能を有するスタートアップノードとしてネットワーク上に存在し、これら複数のスタートアップノードのうちの何れかがネットワーク構築牽引ノードとなってネットワーク構築処理を行うものである。各スタートアップノードは、電源が投入されると自ノードの通信開始準備処理を行った後、予め定められた所定の待機時間の間、他のスタートアップノードからネットワーク起動信号を受信したか否かを監視する。そして、各スタートアップノードは、所定の待機時間の間に他のスタートアップノードからのネットワーク起動信号を受信しない場合は、ネットワーク構築牽引ノードとしてネットワーク起動信号をネットワーク上に送出してネットワーク構築処理を行う。一方、所定の待機時間の間に他のスタートアップノードからのネットワーク起動信号を受信した場合には、ネットワーク構築追従ノードとして、ネットワーク構築牽引ノードとなったスタートアップノードによるネットワーク構築処理に追従する。本発明は、以上のような通信ネットワークシステムにおいて、各スタートアップノードに、自ノードが過去にネットワーク構築牽引ノードとなったと判断される場合にネットワーク起動信号の送出処理を遅延させる遅延手段を備えさせるようにしている。
【００１０】
これにより、過去にネットワーク構築牽引ノードとなったスタートアップノードは、遅延手段によってネットワーク起動信号の送出処理が遅延されるので、各スタートアップノードごとの通信開始準備処理に要する時間に偏りがあって、あるスタートアップノードの通信開始準備処理が常に最初に終了するといった状況であっても、他のスタートアップノードにネットワーク構築牽引ノードとなる機会が与えられることになる。
【発明の効果】
【００１１】
本発明によれば、各スタートアップノードごとの通信開始準備処理に要する時間の長さに拘わらず、ネットワーク上に存在する各スタートアップノードにネットワーク構築牽引ノードとなる機会が与えられるので、例えば出荷前にシステムの動作検証作業などを行うことで各スタートアップノードのネットワーク構築機能の障害の有無を事前にチェックすることができ、障害が発生していればその障害に対する迅速な対応を図ることが可能となる。
【発明を実施するための最良の形態】
【００１２】
以下、本発明の実施形態として、図１に示すようにノードＡ〜Ｅの５つのノードがネットワークに接続された通信ネットワークシステムに本発明を適用した例について、具体的に説明する。この図１に示す通信ネットワークシステムは、通信プロトコルとしてＦｌｅｘＲａｙを採用しており、ノードＡ，ノードＢ，ノードＣの３つのノードが、ネットワーク構築機能を有するスタートアップノードであり、ノードＤ，ノードＥの２つのノードが、ネットワーク構築機能を持たない非スタートアップノードである。なお、全てのノードＡ〜Ｅは共通の電源となる車両のバッテリに接続されており、ほぼ同じタイミングで電源オンされる。
【００１３】
スタートアップノードであるノードＡ〜Ｃは、それぞれ電源が投入されると、自ノードの起動や通信機能の設定などの通信開始準備処理を行って、通信開始準備処理が終了したスタートアップノードから順番に、予め定められた所定の待機時間の間、他のスタートアップノードからネットワーク起動信号を受信したか否かを監視するＬｉｓｔｅｎ処理（以下、受信監視処理という。）を行う。なお、この待機時間の長さはスタートアップノードであるノードＡ〜Ｃの全てで共通である。そして、ノードＡ〜Ｃのうちで、他のスタートアップノードからのネットワーク起動信号を受信することなく待機時間が経過したスタートアップノードがネットワーク構築牽引ノード（以下、Ｌｅａｄｉｎｇノードという。）となり、ネットワークの構築を牽引する。一方、ノードＡ〜Ｃのうちで、所定の待機時間の間に他のスタートアップノードからのネットワーク起動信号を受信した残りのスタートアップノードは、ネットワーク構築追従ノード（以下、Ｆｏｌｌｏｗｉｎｇノードという。）となって、Ｌｅａｄｉｎｇノードとなったスタートアップノードによるネットワーク構築処理に追従する。
【００１４】
例えば、ノードＡがノードＢやノードＣからのネットワーク起動信号を受信することなく受信監視処理を終了してＬｅａｄｉｎｇノードとなったとすると、ノードＡは、受信監視処理が終了した段階で、まず、ネットワーク上にネットワーク起動信号を送出し、その後、同期信号となるフレーム（スタートアップフレーム）を所定周期で送出し続ける。一方、ノードＢやノードＣは、受信監視処理によってノードＡからのネットワーク起動信号の受信を検知するのでＦｏｌｌｏｗｉｎｇノードとなり、受信監視処理が終了すると、ノードＡがネットワーク上に送出したスタートアップフレームを４回受信するまで待機し、ノードＡからのスタートアップフレームを４回受信したら、このノードＡからのスタートアップフレームに同期させて、同期信号となるスタートアップフレームをネットワーク上に送出し続ける。また、非スタートアップノードであるノードＤやノードＥは、スタートアップノードであるノードＡ〜Ｃがそれぞれ同期をとってネットワーク上に送出した３つのスタートアップフレームを４回受信するまで待機し、これらノードＡ〜Ｃからのスタートアップフレームを４回受信したら、これらノードＡ〜Ｃからのスタートアップフレームに同期させて、同期信号となるスタートアップフレームをネットワーク上に送出する。そして、ノードＡ〜Ｅの全ての同期が完了すると、ネットワーク構築処理が終了してネットワーク上での通信が可能となる。
【００１５】
本発明は、以上のような通信ネットワークシステムにおいて、スタートアップノードであるノードＡ〜Ｃでの処理に工夫を加えることで、ノードＡ〜Ｃごとの通信開始準備処理に要する時間の長さに拘わらず、ノードＡ〜Ｃの全てにＬｅａｄｉｎｇノードとなる機会が与えるようにしたものである。以下では、以上のような構成の通信ネットワークシステムを前提として、スタートアップノードとなるノードＡ〜Ｃ（以下、特にこれらを区別しないときはスタートアップノードＳＮと総称する。）での処理のバリエーションごとに分けて、本発明の実施形態を説明する。
【００１６】
［第１の実施形態］
まず、本発明の第１の実施形態について説明する。本実施形態は、各スタートアップノードＳＮが、ネットワークの構築を牽引するネットワーク構築牽引ノード（以下、Ｌｅａｄｉｎｇノードという。）となった場合に、その後の電源オン時にはネットワーク起動信号の送出を所定時間だけ遅延させる処理を行うことで、全てのスタートアップノードに対して最低１回はＬｅａｄｉｎｇノードとなる機会を与えるようにしたものである。
【００１７】
＜スタートアップノードの構成＞
図２は、本実施形態の通信ネットワークシステムにおけるスタートアップノードＳＮの内部構成を示す図である。本実施形態の通信ネットワークシステムにおいて、スタートアップノードＳＮは、図２に示すように、情報を記憶するための構成として、情報の書き換えが可能な不揮発性メモリ１１と、情報の読み出しのみが可能なＲＯＭ（Read Only Memory）１２とを備える。また、スタートアップノードＳＮは、各種の処理を実行する機能構成として、遅延処理部１３、受信監視部１４、ネットワーク構築処理部１５、受信部１６、送信部１７を備える。
【００１８】
不揮発性メモリ１１には、自ノードが過去にＬｅａｄｉｎｇノードとなったか否かを示すＬｅａｄｉｎｇノード実行フラグが書き換え可能に保持されている。また、ＲＯＭ１２には、遅延処理部１３の遅延タイマにセットする遅延時間が記憶されている。
【００１９】
不揮発性メモリ１１に保持されているＬｅａｄｉｎｇノード実行フラグは、値が”ＦＡＬＳＥ”の場合、前回のネットワーク構築処理までに未だ１度もＬｅａｄｉｎｇノードとなっていないことを示し、値が”ＴＲＵＥ”の場合、過去にＬｅａｄｉｎｇノードとなったことをがあることを示している。つまり、このＬｅａｄｉｎｇノード実行フラグは、初期状態では”ＦＡＬＳＥ”の値で不揮発性メモリ１１に保持されており、受信監視部１４によって自ノードがＬｅａｄｉｎｇノードとなったと判定されると、その値が”ＦＡＬＳＥ”から”ＴＲＵＥ”に書き換えられる。
【００２０】
また、ＲＯＭ１２に記憶されている遅延時間は、各スタートアップノードＳＮ間における通信開始準備処理（起動処理及び設定処理）に要する時間の差に基づいて事前に定められたものである。この遅延時間は、全てのスタートアップノードＳＮで同じ長さに設定され、各スタートアップノードＳＮのＲＯＭ１２に同じ値が格納されている。
【００２１】
遅延処理部１３は、不揮発性メモリ１１に保持されているＬｅａｄｉｎｇノード実行フラグの値に基づいて、自ノードが過去にＬｅａｄｉｎｇノードとなったか否かを判断し、自ノードが過去にＬｅａｄｉｎｇノードになっていれば、ＲＯＭ１２に記憶されている遅延時間を遅延タイマにセットして、遅延タイマがタイムアウトするまで受信監視部１４を動作させないようにすることで、結果的にネットワーク起動信号の送出処理を遅延させる。
【００２２】
受信監視部１４は、遅延処理部１３から遅延タイマのタイムアウトまたは遅延不要が通知されると動作を開始し、監視タイマをリセットして監視タイマがタイムアウトするまでの間に、受信部１６によって他のスタートアップノードＳＮからのネットワーク起動信号が受信されたか否かを監視する。また、受信監視部１４は、他のスタートアップノードＳＮからのネットワーク起動信号が受信されることなく監視タイマがタイムアウトした場合に、不揮発性メモリ１１に保持されているＬｅａｄｉｎｇノード実行フラグの値を”ＦＡＬＳＥ”から”ＴＲＵＥ”に書き換える。
【００２３】
ネットワーク構築処理部１５は、受信監視部１４から監視タイマのタイムアウトが通知されると、Ｌｅａｄｉｎｇノードとしてのネットワーク構築処理を実行し、送信部１７からネットワーク起動信号をネットワーク上に送出させるとともに、同期信号（スタートアップフレーム）をネットワーク上に送出させる。また、ネットワーク構築処理部１５は、受信監視部１４からネットワーク起動信号の受信があった旨が通知されると、Ｆｏｌｌｏｗｉｎｇノードとして、ネットワーク起動信号を送出した他のスタートアップノードＳＮが牽引するネットワーク構築処理に追従する処理を実行し、当該他のスタートアップノードＳＮに同期させて、送信部１７から同期信号（スタートアップフレーム）をネットワーク上に送出させる。
【００２４】
＜スタートアップノードの動作＞
図３は、以上のように構成されるスタートアップノードＳＮの動作の概要を示すフローチャートである。この図３に示すように、スタートアップノードＳＮは、電源がオンされると、まず、ステップＳ１０１において自ノードを起動させる起動処理を行い、ステップＳ１０２において自ノードの通信機能を設定する設定処理を行う。これらステップＳ１０１の起動処理及びステップＳ１０２の設定処理は、上述した通信開始準備処理に相当するものである。次に、スタートアップノードＳＮは、ステップＳ１０３において、ネットワーク上での通信を開始させる準備段階での一連のスタートアップ処理を行い、スタートアップ処理が終了すると、ステップＳ１０４において稼動状態となって、電源がオフされるまでネットワーク上での通信を行う。
【００２５】
図３のステップＳ１０３で行われるスタートアップ処理は、図４に示す一連の処理を含んでいる。すなわち、スタートアップノードＳＮは、スタートアップ処理を開始すると、まず、ステップＳ１１１において、遅延処理部１３による遅延処理を行い、その後、ステップＳ１１２において、受信監視部１４による受信監視処理を行う。そして、ステップＳ１１３において、ステップＳ１１２での受信監視処理の結果に応じて、ネットワーク構築処理部１５によるネットワーク構築処理を行う。
【００２６】
図５は、図４のステップＳ１１１における遅延処理の流れを示すフローチャートであり、図６は、図４のステップＳ１１２における受信監視処理の流れを示すフローチャートである。
【００２７】
図４のステップＳ１１１における遅延処理が開始されると、スタートアップノードＳＮの遅延処理部１３は、図５に示すように、まず、ステップＳ１２１において、不揮発性メモリ１１に保持されているＬｅａｄｉｎｇノード実行フラグの値を確認する。そして、Ｌｅａｄｉｎｇノード実行フラグの値が”ＴＲＵＥ”であれば、自ノードが過去にＬｅａｄｉｎｇノードとなっていると判断し、次のステップＳ１２２において、ＲＯＭ１２に記憶されている遅延時間を遅延タイマにセットして、遅延時間のカウントを開始する。そして、ステップＳ１２３で遅延タイマがタイムアウトすると、受信監視部１４に対してその旨を通知して、遅延処理を終了する。一方、ステップＳ１２１で確認したＬｅａｄｉｎｇノード実行フラグの値が”ＦＡＬＳＥ”であれば、受信監視部１４に対して遅延不要を通知して、遅延処理を終了する。
【００２８】
図４のステップＳ１１１における遅延処理が終了し、ステップＳ１１２における受信監視処理が開始されると、スタートアップノードＳＮの受信監視部１４は、図６に示すように、まず、ステップＳ１３１において、監視タイマをリセットして、上述した待機時間のカウントを開始する。そして、ステップＳ１３２において、監視タイマがタイムアウトするまでの間、すなわち所定の待機時間の間に、受信部１６が他のスタートアップノードＳＮからネットワーク上に送出されたネットワーク起動信号を受信したか否かを監視し、監視タイマがタイムアウトするまでの間に他のスタートアップノードＳＮからのネットワーク起動信号を受信した場合には、ネットワーク構築処理部１５に対してその旨を通知して、受信監視処理を終了する。一方、ネットワーク起動信号を受信することなくステップＳ１３３で監視タイマがタイムアウトすると、次のステップＳ１３４において、不揮発性メモリ１１に保持されているＬｅａｄｉｎｇノードの値を”ＦＡＬＳＥ”から”ＴＲＵＥ”に書き換え、ネットワーク構築処理部１５に対して監視タイマがタイムアウトした旨を通知して、受信監視処理を終了する。
【００２９】
＜遅延時間の設定＞
以上説明したスタートアップノードＳＮにおいて、遅延処理部１３がＲＯＭ１２から読み出して遅延タイマにセットする遅延時間は、通信開始準備処理としての起動処理（ステップＳ１０１）及び設定処理（ステップＳ１０２）が最も早く終了したスタートアップノードＳＮに対してその後の処理を遅らせるための時間である。このため、遅延時間をあまり長い時間に設定すると、ネットワーク上での通信が可能となるまでに長時間を要することになり望ましくない。一方、この遅延時間が短すぎると、全てのスタートアップノードＳＮにＬｅａｄｉｎｇノードとなる機会を与えるという本来の目的を達成できなくなる。
【００３０】
そこで、本実施形態では、スタートアップノードＳＮであるノードＡ〜Ｃそれぞれについて、通信開始準備処理としての起動処理及び設定処理に要する時間を予め調べておき、これらスタートアップノードＳＮであるノードＡ〜Ｃ間における通信開始準備処理に要する時間の差に基づいて遅延時間を設定して、ノードＡ〜ＣそれぞれのＲＡＭ１２に格納するようにしている。
【００３１】
具体的には、例えば図７に示すように、ノードＡ〜ＣのうちでノードＡでの通信開始準備処理に要する時間が最短時間Ｔ１であり、ノードＢでの通信開始処理に要する時間が最長時間Ｔ２であるとすると、遅延時間は、例えば、最長時間Ｔ２から最短時間Ｔ１を減算した時間に必要に応じて誤差許容量に相当する時間αを加算した値に設定される。なお、本実施形態では、スタートアップノードＳＮであるノードＡ〜Ｃの全てに対して最低１回はＬｅａｄｉｎｇノードとなる機会を与えることを前提として遅延時間を設定しているが、ネットワーク上での通信開始までの時間を短縮させることを優先する場合には、例えば図８に示すように、通信開始準備処理に要する時間が２番目に短いノードＣでの所要時間Ｔ３からノードＡでの所要時間（最短時間）Ｔ１を減算した時間に必要に応じて誤差許容量に相当する時間αを加算した値を、遅延時間として設定するようにしてもよい。この場合は、ノードＢにはＬｅａｄｉｎｇノードとなる機会は与えられないことになるが、図７の例に比べて遅延時間は短くなるので、ネットワーク上での通信開始までの時間を短縮させることができる。
【００３２】
＜ネットワーク起動時における各ノードの状態遷移＞
次に、本実施形態の通信ネットワークシステムにおいて、各ノードの状態遷移がネットワークの起動を繰り返すごとにどのように変化するかについて、図９を参照しながら説明する。
【００３３】
まず、１回目のネットワーク起動時は、図９（ａ）に示すように、スタートアップノードＳＮであるノードＡ〜Ｃのうち、電源がオンされた後に通信開始処理としての起動処理及び設定処理が最も早く終了するノードＡがＬｅａｄｉｎｇノードとなり、Ｌｅａｄｉｎｇノードとしてのスタートアップ処理を行ってネットワークの構築を牽引する。そして、他のスタートアップノードＳＮであるノードＢおよびノードＣは、ノードＡからのネットワーク起動信号を受信してＦｏｌｌｏｗｉｎｇノードとなり、Ｆｏｌｌｏｗｉｎｇノードとしてのスタートアップ処理を行って、ノードＡが牽引するネットワーク構築処理に追従する。そして、これらスタートアップノードＳＮであるノードＡ〜Ｃは、スタートアップ処理が終了すると稼動状態となる。また、非スタートアップノードであるノードＤおよびノードＥは、通信開始処理としての起動処理及び設定処理が終了した後、スタートアップノードＳＮであるノードＡ〜Ｃのスタートアップ処理が終了するまで稼動待ちの状態となり、ノードＡ〜Ｃのスタートアップ処理が終了してネットワークが構築されると、そのネットワークに加入して稼動状態となる。
【００３４】
次に、２回目のネットワーク起動時には、図９（ｂ）に示すように、一度ＬｅａｄｉｎｇノードとなったノードＡは、通信開始処理としての起動処理及び設定処理が終了した後に遅延処理が行われる。そして、このノードＡの遅延処理が終了する前に、ノードＣの起動処理及び設定処理が終了するので、ノードＣがＬｅａｄｉｎｇノードとなって、Ｌｅａｄｉｎｇノードとしてのスタートアップ処理を行い、ネットワークの構築を牽引する。また、ノードＡおよびノードＢは、ノードＣからのネットワーク起動信号を受信してＦｏｌｌｏｗｉｎｇノードとなり、Ｆｏｌｌｏｗｉｎｇノードとしてのスタートアップ処理を行って、ノードＣが牽引するネットワーク構築処理に追従する。そして、これらスタートアップノードＳＮであるノードＡ〜Ｃは、スタートアップ処理が終了すると稼動状態となる。また、非スタートアップノードであるノードＤおよびノードＥは、１回目のネットワーク起動時と同様に、通信開始処理としての起動処理及び設定処理が終了した後、スタートアップノードＳＮであるノードＡ〜Ｃのスタートアップ処理が終了するまで稼動待ちの状態となり、ノードＡ〜Ｃのスタートアップ処理が終了してネットワークが構築されると、そのネットワークに加入して稼動状態となる。
【００３５】
次に、３回目のネットワーク起動時には、図９（ｃ）に示すように、一度ＬｅａｄｉｎｇノードとなったノードＡおよびノードＣは、通信開始処理としての起動処理及び設定処理が終了した後に遅延処理が行われる。そして、これらノードＡおよびノードＣの遅延処理が終了する前に、ノードＢの起動処理及び設定処理が終了するので、ノードＢがＬｅａｄｉｎｇノードとなって、Ｌｅａｄｉｎｇノードとしてのスタートアップ処理を行い、ネットワークの構築を牽引する。また、ノードＡおよびノードＣは、ノードＢからのネットワーク起動信号を受信してＦｏｌｌｏｗｉｎｇノードとなり、Ｆｏｌｌｏｗｉｎｇノードとしてのスタートアップ処理を行って、ノードＢが牽引するネットワーク構築処理に追従する。そして、これらスタートアップノードＳＮであるノードＡ〜Ｃは、スタートアップ処理が終了すると稼動状態となる。また、非スタートアップノードであるノードＤおよびノードＥは、１回目および２回目のネットワーク起動時と同様に、通信開始処理としての起動処理及び設定処理が終了した後、スタートアップノードＳＮであるノードＡ〜Ｃのスタートアップ処理が終了するまで稼動待ちの状態となり、ノードＡ〜Ｃのスタートアップ処理が終了してネットワークが構築されると、そのネットワークに加入して稼動状態となる。
【００３６】
次に、４回目以降のネットワーク起動時には、図９（ｄ）に示すように、スタートアップノードＳＮであるノードＡ〜Ｃの全てにおいて、通信開始処理としての起動処理及び設定処理が終了した後に遅延処理が行われるので、遅延処理が最も早く終了するノードＡがＬｅａｄｉｎｇノードとなり、Ｌｅａｄｉｎｇノードとしてのスタートアップ処理を行ってネットワークの構築を牽引する。そして、他のスタートアップノードＳＮであるノードＢおよびノードＣは、ノードＡからのネットワーク起動信号を受信してＦｏｌｌｏｗｉｎｇノードとなり、Ｆｏｌｌｏｗｉｎｇノードとしてのスタートアップ処理を行って、ノードＡが牽引するネットワーク構築処理に追従する。そして、これらスタートアップノードであるノードＡ〜Ｃは、スタートアップ処理が終了すると稼動状態となる。また、非スタートアップノードであるノードＤおよびノードＥは、１回目乃至３回目のネットワーク起動時と同様に、通信開始処理としての起動処理及び設定処理が終了した後、スタートアップノードＳＮであるノードＡ〜Ｃのスタートアップ処理が終了するまで稼動待ちの状態となり、ノードＡ〜Ｃのスタートアップ処理が終了してネットワークが構築されると、そのネットワークに加入して稼動状態となる。
【００３７】
＜実施形態の効果＞
以上説明したように、本実施形態の通信ネットワークシステムでは、スタートアップノードＳＮであるノードＡ〜Ｃが、過去にＬｅａｄｉｎｇノードとなった場合に遅延処理を行ってネットワーク起動信号の送出処理を遅延させるので、ノードＡ〜Ｃの間で通信開始準備処理である起動処理や設定処理に要する時間に偏りがあって、特定のスタートアップノードＳＮの通信開始準備処理が常に最初に終了するといった状況であっても、他のスタートアップノードＳＮにもＬｅａｄｉｎｇノードとなる機会が与えられることになる。したがって、本実施形態の通信ネットワークシステムによれば、例えば出荷前にシステムの動作検証作業などを行って、各スタートアップノードＳＮを順次Ｌｅａｄｉｎｇノードとして動作させることにより、各スタートアップノードＳＮにおけるネットワーク構築機能の障害の有無を事前にチェックすることができ、障害が発生していればその障害に対する迅速な対応を図ることが可能となる。
【００３８】
［第２の実施形態］
次に、本発明の第２の実施形態について説明する。本実施形態は、各スタートアップノードＳＮに、第１の実施形態で説明した機能に加えて、スタートアップ処理が行なわれた回数（すなわち、ネットワーク構築処理が行われた回数）をカウントする機能と、スタートアップ処理が行われた回数がネットワーク上のスタートアップノードＳＮの数と一致したときに、Ｌｅａｄｉｎｇノード実行フラグの値が”ＴＲＵＥ”となっているか否かを確認することで、自ノードのネットワーク構築機能に障害が発生しているか否かを判定する機能と、ネットワーク構築機能の障害有無を判定した後に、Ｌｅａｄｉｎｇノード実行フラグの値を”ＦＡＬＳＥ”にリセットする機能とを持たせるようにしたものである。なお、以下では、本実施形態に特徴的な部分を中心に説明し、第１の実施形態と同様の部分については同一の符号を付して詳細な説明は省略する。
【００３９】
＜スタートアップノードの構成＞
図１０は、本実施形態の通信ネットワークシステムにおけるスタートアップノードＳＮの内部構成を示す図である。本実施形態では、スタートアップノードＳＮが、図１０に示すように、各種の処理を実行する機能構成として、遅延処理部１３、受信監視部１４、ネットワーク構築処理部１５、受信部１６、送信部１７に加えて、スタートアップ処理が行なわれた回数をカウントするスタートアップカウント処理部１８と、自ノードのネットワーク構築機能の障害有無を判定するスタートアップ診断処理部１９とを備える。また、不揮発性メモリ１１には、Ｌｅａｄｉｎｇノード実行フラグのほかに、スタートアップカウント処理部１８でカウントされた値を示すスタートアップカウンタ値や、自ノードのネットワーク構築機能に障害が発生しているか否かを示す障害発生フラグが書き換え可能に保持されている。また、ＲＯＭ１２には、遅延時間のほかに、ネットワーク上に存在するスタートアップノードＳＮの数を示すスタートアップノード数が記憶されている。
【００４０】
不揮発性メモリ１１に保持されている障害発生フラグは、値が”ＦＡＬＳＥ”の場合、自ノードのネットワーク構築処理に障害が発生していないことを示し、値が”ＴＲＵＥ”の場合、自ノードのネットワーク構築処理に障害が発生していることを示している。つまり、この障害発生フラグは、初期状態では”ＦＡＬＳＥ”の値で不揮発性メモリ１１に保持されており、スタートアップ診断処理部１９によって自ノードのネットワーク構築機能に障害が発生していると判定されると、その値が”ＦＡＬＳＥ”から”ＴＲＵＥ”に書き換えられる。
【００４１】
スタートアップカウント処理部１８は、受信監視部１４から監視タイマのタイムアウトまたはネットワーク起動信号の受信が通知されると、不揮発性メモリ１１からスタートアップカウンタ値、ＲＯＭ１２からスタートアップノード数をそれぞれ読み出して、スタートアップカウンタ値がスタートアップノード数−１となっているか否かを確認する。そして、スタートアップカウンタ値がスタートアップノード数−１よりも小さい値であれば、スタートアップカウンタ値をインクリメントして、新たな値で不揮発性メモリ１１に保持されているスタートアップカウンタ値を書き換える。また、スタートアップカウンタ値がスタートアップノード数−１となっていれば、スタートアップ診断処理部１９での処理が行われた後に、不揮発性メモリ１１に保持されているスタートアップカウンタ値を０にリセットするとともに、Ｌｅａｄｉｎｇノード実行フラグの値を”ＴＲＵＥ”から”ＦＡＬＳＥ”に書き換える。
【００４２】
スタートアップ診断処理部１９は、スタートアップカウント処理部１８により不揮発性メモリ１１から読み出されたスタートアップカウンタ値がスタートアップノード数−１となっていた場合に診断処理を開始し、不揮発性メモリ１１に保持されているＬｅａｄｉｎｇノード実行フラグの値を確認する。そして、Ｌｅａｄｉｎｇノード実行フラグの値が”ＦＡＬＳＥ”のままであれば、ネットワーク上に存在するスタートアップノードＳＮの数だけスタートアップ処理が行なわれたにも拘わらず自ノードがＬｅａｄｉｎｇノードとしての処理を行っていないので、自ノードのネットワーク構築機能に障害が発生しているものと判断して、不揮発性メモリ１１に保持されている障害発生フラグの値を”ＦＡＬＳＥ”から”ＴＲＵＥ”に書き換える。
【００４３】
＜スタートアップノードの動作＞
本実施形態におけるスタートアップノードＳＮは、第１の実施形態と同様に、起動処理および設定処理を行った後にスタートアップ処理を行い、スタートアップ処理が終了すると稼動状態となる（図３参照）。ただし、本実施形態では、スタートアップノードＳＮが実行するスタートアップ処理に、図１１に示すような一連の処理が含まれている。すなわち、スタートアップノードＳＮは、スタートアップ処理を開始すると、まず、ステップＳ２１１において、遅延処理部１３による遅延処理を行い、その後、ステップＳ２１２において、受信監視部１４による受信監視処理を行う。次に、本実施形態では、ステップＳ２１３において、スタートアップカウント処理部１８およびスタートアップ診断処理部１９により、スタートアップカウント・診断処理を行う。その後、ステップＳ２１４において、ステップＳ２１２での受信監視処理の結果に応じて、ネットワーク構築処理部１５によるネットワーク構築処理を行う。
【００４４】
図１２は、図１１のステップＳ２１３におけるスタートアップカウント・診断処理の流れを示すフローチャートである。図１１のステップＳ２１３におけるスタートアップカウント・診断処理が開始されると、図１２に示すように、まず、スタートアップノードＳＮのスタートアップカウント処理部１８が、ステップＳ２２１において、不揮発性メモリ１１に保持されているスタートアップカウンタ値が、ＲＯＭ１２に記憶されているスタートアップノード数から１を減算した値と等しくなっているか否かを確認する。そして、スタートアップカウンタ値がスタートアップノード数−１よりも小さい値であれば、スタートアップノード数分のスタートアップ処理が行われていないと判断し、次のステップＳ２２２において、スタートアップカウンタ値をインクリメント（＋１）して不揮発性メモリ１１に保持させる。一方、スタートアップカウンタ値がスタートアップノード数−１に達していれば、スタートアップノード数分のスタートアップ処理が行われたと判断して、ステップＳ２２３に移行する。ステップＳ２２３では、スタートアップ診断処理部１９が、不揮発性メモリ１１に保持されているＬｅａｄｉｎｇノード実行フラグの値が”ＴＲＵＥ”となっているか否かを確認する。そして、Ｌｅａｄｉｎｇノード実行フラグの値が”ＦＡＬＳＥ”のままであれば、自ノードのネットワーク構築機能に障害が発生しているものと判断して、ステップＳ２２４において、不揮発性メモリ１１に保持されている障害発生フラグの値を”ＦＡＬＳＥ”から”ＴＲＵＥ”に書き換える。次に、スタートアップカウント処理部１８が、ステップＳ２２５において、スタートアップカウンタ値を０にリセットし、ステップＳ２２６において、不揮発性メモリ１１に保持されているＬｅａｄｉｎｇノード実行フラグの値を”ＦＡＬＳＥ”にリセットして、スタートアップカウント・診断処理を終了する。
【００４５】
＜ネットワーク起動時における各ノードの状態遷移＞
次に、本実施形態の通信ネットワークシステムにおいて、各ノードの状態遷移がネットワークの起動を繰り返すごとにどのように変化するかについて、図１３を参照しながら説明する。
【００４６】
まず、１回目のネットワーク起動時は、図１３（ａ）に示すように、スタートアップノードＳＮであるノードＡ〜Ｃのうち、電源がオンされた後に通信開始処理としての起動処理及び設定処理が最も早く終了するノードＡがＬｅａｄｉｎｇノードとなり、Ｌｅａｄｉｎｇノードとしてのスタートアップ処理を行ってネットワークの構築を牽引する。そして、他のスタートアップノードＳＮであるノードＢおよびノードＣは、ノードＡからのネットワーク起動信号を受信してＦｏｌｌｏｗｉｎｇノードとなり、Ｆｏｌｌｏｗｉｎｇノードとしてのスタートアップ処理を行って、ノードＡが牽引するネットワーク構築処理に追従する。そして、これらスタートアップノードＳＮであるノードＡ〜Ｃは、スタートアップ処理が終了すると稼動状態となる。また、非スタートアップノードであるノードＤおよびノードＥは、通信開始処理としての起動処理及び設定処理が終了した後、スタートアップノードＳＮであるノードＡ〜Ｃのスタートアップ処理が終了するまで稼動待ちの状態となり、ノードＡ〜Ｃのスタートアップ処理が終了してネットワークが構築されると、そのネットワークに加入して稼動状態となる。
【００４７】
次に、２回目のネットワーク起動時には、図１３（ｂ）に示すように、一度ＬｅａｄｉｎｇノードとなったノードＡは、通信開始処理としての起動処理及び設定処理が終了した後に遅延処理が行われる。そして、このノードＡの遅延処理が終了する前に、ノードＣの起動処理及び設定処理が終了するので、ノードＣがＬｅａｄｉｎｇノードとなって、Ｌｅａｄｉｎｇノードとしてのスタートアップ処理を行い、ネットワークの構築を牽引する。また、ノードＡおよびノードＢは、ノードＣからのネットワーク起動信号を受信してＦｏｌｌｏｗｉｎｇノードとなり、Ｆｏｌｌｏｗｉｎｇノードとしてのスタートアップ処理を行って、ノードＣが牽引するネットワーク構築処理に追従する。そして、これらスタートアップノードＳＮであるノードＡ〜Ｃは、スタートアップ処理が終了すると稼動状態となる。また、非スタートアップノードであるノードＤおよびノードＥは、１回目のネットワーク起動時と同様に、通信開始処理としての起動処理及び設定処理が終了した後、スタートアップノードＳＮであるノードＡ〜Ｃのスタートアップ処理が終了するまで稼動待ちの状態となり、ノードＡ〜Ｃのスタートアップ処理が終了してネットワークが構築されると、そのネットワークに加入して稼動状態となる。
【００４８】
次に、３回目のネットワーク起動時には、図１３（ｃ）に示すように、一度ＬｅａｄｉｎｇノードとなったノードＡおよびノードＣは、通信開始処理としての起動処理及び設定処理が終了した後に遅延処理が行われる。ここで、スタートアップノードＳＮであるノードＢのネットワーク構築機能に障害が生じており、ノードＢの起動処理および設定処理が終了する前にこれらノードＡの遅延処理が終了したとすると、ノードＢはＬｅａｄｉｎｇノードとなる機会がなく、ノードＡが再度Ｌｅａｄｉｎｇノードとしてのスタートアップ処理を行い、ネットワークの構築を牽引する。そして、ノードＢおよびノードＣは、ノードＢからのネットワーク起動信号を受信してＦｏｌｌｏｗｉｎｇノードとなり、Ｆｏｌｌｏｗｉｎｇノードとしてのスタートアップ処理を行って、ノードＡが牽引するネットワーク構築処理に追従する。この場合、ノードＢの不揮発性メモリ１１に保持されている障害発生フラグの値は”ＦＡＬＳＥ”から”ＴＲＵＥ”に書き換えられ、ノードＢがＬｅａｄｉｎｇノードとして機能していないことが記憶される。そして、これらスタートアップノードＳＮであるノードＡ〜Ｃは、スタートアップ処理が終了すると稼動状態となる。また、非スタートアップノードであるノードＤおよびノードＥは、１回目および２回目のネットワーク起動時と同様に、通信開始処理としての起動処理及び設定処理が終了した後、スタートアップノードＳＮであるノードＡ〜Ｃのスタートアップ処理が終了するまで稼動待ちの状態となり、ノードＡ〜Ｃのスタートアップ処理が終了してネットワークが構築されると、そのネットワークに加入して稼動状態となる。
【００４９】
ここで、３回目のネットワークの起動により、スタートアップ処理を行った回数（すなわち、ネットワーク構築処理を行った回数）がネットワーク上に存在するスタートアップノードＳＮの数と一致し、スタートアップノードＳＮであるノードＡ〜Ｃのそれぞれが順番にＬｅａｄｉｎｇノードとしてのネットワーク構築処理を行ったので、ノードＡ〜Ｃの不揮発性メモリ１１に保持されているＬｅａｄｉｎｇノード実行フラグの値はそれぞれ”ＦＡＬＳＥ”にリセットされる。そして、４回目のネットワーク起動時には図１３（ａ）に示した１回目のネットワーク起動時と同様にスタートアップ処理が行われ、５回目のネットワーク起動時には図１３（ｂ）に示した２回目のネットワーク起動時と同様にスタートアップ処理が行われ、６回目のネットワーク起動時には図１３（ｃ）に示した３回目のネットワーク起動時と同様にスタートアップ処理が行われる。さらに、６回目のネットワーク起動時にはノードＡ〜Ｃの不揮発性メモリ１１に保持されているＬｅａｄｉｎｇノード実行フラグの値が再度”ＦＡＬＳＥ”にリセットされるので、７回目のネットワーク起動時は１回目および４回目、８回目のネットワーク起動時は２回目および５回目、９回目のネットワーク起動時は３回目および６回目と同様にスタートアップ処理が行われ、以降、３回のネットワーク起動を周期として、以上の動作が繰り返される。
【００５０】
＜実施形態の効果＞
以上説明したように、本実施形態の通信ネットワークシステムでは、第１の実施形態と同様に、スタートアップノードＳＮであるノードＡ〜Ｃが、過去にＬｅａｄｉｎｇノードとなった場合に遅延処理を行ってネットワーク起動信号の送出処理を遅延させるので、ノードＡ〜Ｃの間で通信開始準備処理である起動処理や設定処理に要する時間に偏りがあって、特定のスタートアップノードＳＮの通信開始準備処理が常に最初に終了するといった状況であっても、他のスタートアップノードＳＮにもＬｅａｄｉｎｇノードとなる機会が与えられることになり、各スタートアップノードＳＮにおけるネットワーク構築機能の障害の有無を事前にチェックすることができ、障害が発生していればその障害に対する迅速な対応を図ることが可能となる。
【００５１】
また、本実施形態の通信ネットワークシステムでは、全てのスタートアップノードＳＮに対してＬｅａｄｉｎｇノードとなる機会が繰り返し与えられるので、各スタートアップノードＳＮにおけるネットワーク構築機能の障害の有無のチェックをより確実に行うことができる。
【００５２】
さらに、本実施形態の通信ネットワークシステムでは、各スタートアップノードＳＮが自己診断によって自ノードのネットワーク構築機能に障害が発生していると判定した場合に、その旨の情報を保持するようにしているので、例えば、専用の診断機などをネットワークに接続して各スタートアップノードＳＮの自己診断の結果を読み出すことにより、どのスタートアップノードＳＮのネットワーク構築機能に障害が発生しているかの特定を容易に行うことができる。
【００５３】
［第３の実施形態］
次に、本発明の第３の実施形態について説明する。本実施形態は、各スタートアップノードＳＮがＬｅａｄｉｎｇノードとなる順番を予め決めておくことを前提に、各スタートアップノードＳＮに、スタートアップ処理が行なわれた回数（すなわち、ネットワーク構築処理が行われた回数）をカウントする機能と、スタートアップ処理が行われた回数が自ノードがＬｅａｄｉｎｇノードとなる順番と一致したときに、Ｌｅａｄｉｎｇノード実行フラグの値が”ＴＲＵＥ”となっているか否かを確認することで、自ノードのネットワーク構築機能に障害が発生しているか否かを判定する機能とを持たせるようにしたものである。すなわち、本実施形態における各スタートアップノードＳＮは、第２の実施形態で説明したスタートアップノードＳＮと同様に自ノードのネットワーク構築機能に障害が発生しているか否かの自己診断を行うが、その診断の手法が第２の実施形態とは異なっている。また、本実施形態における各スタートアップノードＳＮは、第１の実施形態で説明したスタートアップノードＳＮと同様にネットワーク起動信号の送出を遅延させるための遅延処理を行うが、その処理内容が第１の実施形態とは若干異なっている。なお、以下では、本実施形態に特徴的な部分を中心に説明し、第１の実施形態や第２の実施形態と同様の部分については同一の符号を付して詳細な説明は省略する。
【００５４】
＜スタートアップノードの構成＞
図１４は、本実施形態の通信ネットワークシステムにおけるスタートアップノードＳＮの内部構成を示す図である。本実施形態では、スタートアップノードＳＮが、図１４に示すように、第１の実施形態で説明した遅延処理部１３に代えて遅延処理部２１、第２の実施形態で説明したスタートアップ診断処理部１９に代えてスタートアップ診断処理部２２をそれぞれ備える。なお、受信監視部１４やネットワーク構築処理部１５、受信部１６、送信部１７は第１の実施形態で説明したものと同じであり、スタートアップカウント処理部１８は第２の実施形態で説明したものと同じである。また、本実施形態では、スタートアップノードＳＮのＲＯＭ１２に、遅延時間やスタートアップノード数のほかに、自ノードがＬｅａｄｉｎｇノードとなる順番を示すＬｅａｄｉｎｇノード順番が記憶されている。
【００５５】
遅延処理部２１は、不揮発性メモリ１１からスタートアップカウンタ値、ＲＯＭ１２からＬｅａｄｉｎｇノード順番をそれぞれ読み出して、スタートアップカウンタ値がリーディングノード順番−１となっているか否かを確認する。そして、スタートアップカウンタ値がＬｅａｄｉｎｇノード順番−１となっていなければ、ＲＯＭ１２に記憶されている遅延時間を遅延タイマにセットして、遅延タイマがタイムアウトするまで受信監視部１４を動作させないようにすることで、結果的にネットワーク起動信号の送出処理を遅延させる。そして、遅延タイマがタイムアウトしたらその旨を受信監視部１４に通知する。一方、遅延処理部２１は、スタートアップカウンタ値がＬｅａｄｉｎｇノード順番−１となっていれば今回のスタートアップ処理で自ノードがＬｅａｄｉｎｇノードとなるべきと判断し、遅延タイマのカウントは行わずに遅延不要を受信監視部１４に通知する。
【００５６】
スタートアップ診断処理部２２は、スタートアップカウント処理部１８によって不揮発性メモリ１１から読み出されたスタートアップカウンタ値がＬｅａｄｉｎｇノード順番−１となっていた場合に診断処理を開始し、不揮発性メモリ１１に保持されているＬｅａｄｉｎｇノード実行フラグの値を確認する。そして、Ｌｅａｄｉｎｇノード実行フラグの値が”ＦＡＬＳＥ”のままであれば、今回のスタートアップ処理で自ノードがＬｅａｄｉｎｇノードとなるべきであるにも拘わらず自ノードがＬｅａｄｉｎｇノードとしての処理を行っていないので、自ノードのネットワーク構築機能に障害が発生しているものと判断して、不揮発性メモリ１１に保持されている障害発生フラグの値を”ＦＡＬＳＥ”から”ＴＲＵＥ”に書き換える。
【００５７】
＜スタートアップノードの動作＞
本実施形態におけるスタートアップノードＳＮは、第１の実施形態および第２の実施形態と同様に、起動処理および設定処理を行った後にスタートアップ処理を行い、スタートアップ処理が終了すると稼動状態となる（図３参照）。そして、スタートアップ処理は、第２の実施形態と同様に、遅延処理、受信監視処理、スタートアップカウント・診断処理、ネットワーク構築処理の順番で行われる（図１１参照）。ただし、本実施形態では、スタートアップ処理の中の遅延処理が図１５に示す手順で行われ、また、スタートアップ処理の中のスタートアップカウント・診断処理が図１６に示す手順で行われる。
【００５８】
すなわち、本実施形態では遅延処理が開始されると、スタートアップノードＳＮの遅延処理部２１が、図１５に示すように、まず、ステップＳ３１１において、不揮発性メモリ１１に保持されているスタートアップカウンタ値が、ＲＯＭ１２に記憶されているＬｅａｄｉｎｇノード順番から１を減算した値と等しくなっているか否かを確認する。そして、スタートアップカウンタ値がＬｅａｄｉｎｇノード順番−１となっていなければ、今回のスタートアップ処理は自ノードがＦｏｌｌｏｗｉｎｇノードとなるべきと判断し、次のステップＳ３１２において、ＲＯＭ１２に記憶されている遅延時間を遅延タイマにセットして、遅延時間のカウントを開始する。そして、ステップＳ３１３で遅延タイマがタイムアウトすると、受信監視部１４に対してその旨を通知して、遅延処理を終了する。一方、ステップＳ３１１で確認したスタートアップカウンタ値がＬｅａｄｉｎｇノード順番−１となっていれば、今回のスタートアップ処理で自ノードがＬｅａｄｉｎｇノードとなるべきと判断し、遅延タイマのカウントは行わずに受信監視部１４に対して遅延不要を通知して、遅延処理を終了する。
【００５９】
また、本実施形態ではスタートアップカウント・診断処理が開始されると、図１６に示すように、まず、ステップＳ３２１において、スタートアップノードＳＮのスタートアップ診断処理部２２が、スタートアップカウント処理部１８によって不揮発性メモリ１１から読み出されたスタートアップカウンタ値が、ＲＯＭ１２に記憶されているＬｅａｄｉｎｇノード順番から１を減算した値と等しくなっているか否かを確認する。そして、スタートアップカウンタ値がスタートアップノード数−１となっていれば、次のステップＳ３２２において、不揮発性メモリ１１に保持されているＬｅａｄｉｎｇノード実行フラグの値が”ＴＲＵＥ”となっているか否かを確認する。そして、Ｌｅａｄｉｎｇノード実行フラグの値が”ＦＡＬＳＥ”のままであれば、自ノードのネットワーク構築機能に障害が発生しているものと判断して、ステップＳ３２３において、不揮発性メモリ１１に保持されている障害発生フラグの値を”ＦＡＬＳＥ”から”ＴＲＵＥ”に書き換える。
【００６０】
次に、ステップＳ３２４において、スタートアップカウント処理部１８が、不揮発性メモリ１１から読み出したスタートアップカウンタ値が、ＲＯＭ１２に記憶されているスタートアップノード数から１を減算した値と等しくなっているか否かを確認する。そして、スタートアップカウンタ値がスタートアップノード数−１よりも小さい値であれば、スタートアップノード数分のスタートアップ処理が行われていないと判断し、次のステップＳ３２５において、スタートアップカウンタ値をインクリメント（＋１）して不揮発性メモリ１１に保持させる。一方、スタートアップカウンタ値がスタートアップノード数−１に達していれば、スタートアップノード数分のスタートアップ処理が行われたと判断し、ステップＳ３２６において、スタートアップカウンタ値を０にリセットするとともに、ステップＳ３２７において、不揮発性メモリ１１に保持されているＬｅａｄｉｎｇノード実行フラグの値を”ＦＡＬＳＥ”にリセットして、スタートアップカウント・診断処理を終了する。
【００６１】
＜ネットワーク起動時における各ノードの状態遷移＞
次に、本実施形態の通信ネットワークシステムにおいて、各ノードの状態遷移がネットワークの起動を繰り返すごとにどのように変化するかについて、図１７を参照しながら説明する。なお、図１７に示す例は、スタートアップノードＳＮであるノードＡ〜Ｃのうち、Ｌｅａｄｉｎｇノードとなる順番がノードＡ→ノードＢ→ノードＣと予め決められており、ノードＡにはＬｅａｄｉｎｇノード順番として１、ノードＢにはＬｅａｄｉｎｇノード順番として２、ノードＣにはＬｅａｄｉｎｇノード順番として３がそれぞれ記憶されている場合の例である。
【００６２】
まず、１回目のネットワーク起動時は、図１７（ａ）に示すように、スタートアップノードＳＮであるノードＡ〜Ｃのうち、Ｌｅａｄｉｎｇノード順番として１が記憶されているノードＡがＬｅａｄｉｎｇノードとなり、通信開始処理としての起動処理及び設定処理が終了した後にＬｅａｄｉｎｇノードとしてのスタートアップ処理を行ってネットワークの構築を牽引する。また、他のスタートアップノードＳＮであるノードＢおよびノードＣは、通信開始処理としての起動処理及び設定処理が終了した後に遅延処理が行われ、ノードＡからのネットワーク起動信号を受信してＦｏｌｌｏｗｉｎｇノードとなり、Ｆｏｌｌｏｗｉｎｇノードとしてのスタートアップ処理を行って、ノードＡが牽引するネットワーク構築処理に追従する。そして、これらスタートアップノードＳＮであるノードＡ〜Ｃは、スタートアップ処理が終了すると稼動状態となる。また、非スタートアップノードであるノードＤおよびノードＥは、通信開始処理としての起動処理及び設定処理が終了した後、スタートアップノードＳＮであるノードＡ〜Ｃのスタートアップ処理が終了するまで稼動待ちの状態となり、ノードＡ〜Ｃのスタートアップ処理が終了してネットワークが構築されると、そのネットワークに加入して稼動状態となる。
【００６３】
次に、２回目のネットワーク起動時には、図１７（ｂ）に示すように、スタートアップノードＳＮであるノードＡ〜Ｃのうち、Ｌｅａｄｉｎｇノード順番として２が記憶されているノードＢがＬｅａｄｉｎｇノードとなり、通信開始処理としての起動処理及び設定処理が終了した後にＬｅａｄｉｎｇノードとしてのスタートアップ処理を行ってネットワークの構築を牽引する。また、他のスタートアップノードＳＮであるノードＡおよびノードＣは、通信開始処理としての起動処理及び設定処理が終了した後に遅延処理が行われ、ノードＢからのネットワーク起動信号を受信してＦｏｌｌｏｗｉｎｇノードとなり、Ｆｏｌｌｏｗｉｎｇノードとしてのスタートアップ処理を行って、ノードＢが牽引するネットワーク構築処理に追従する。そして、これらスタートアップノードＳＮであるノードＡ〜Ｃは、スタートアップ処理が終了すると稼動状態となる。また、非スタートアップノードであるノードＤおよびノードＥは、１回目のネットワーク起動時と同様に、通信開始処理としての起動処理及び設定処理が終了した後、スタートアップノードＳＮであるノードＡ〜Ｃのスタートアップ処理が終了するまで稼動待ちの状態となり、ノードＡ〜Ｃのスタートアップ処理が終了してネットワークが構築されると、そのネットワークに加入して稼動状態となる。
【００６４】
次に、３回目のネットワーク起動時には、図１７（ｃ）に示すように、スタートアップノードＳＮであるノードＡ〜Ｃのうち、Ｌｅａｄｉｎｇノード順番として３が記憶されているノードＣがＬｅａｄｉｎｇノードとなり、通信開始処理としての起動処理及び設定処理が終了した後にＬｅａｄｉｎｇノードとしてのスタートアップ処理を行ってネットワークの構築を牽引する。また、他のスタートアップノードＳＮであるノードＡおよびノードＢは、通信開始処理としての起動処理及び設定処理が終了した後に遅延処理が行われ、ノードＣからのネットワーク起動信号を受信してＦｏｌｌｏｗｉｎｇノードとなり、Ｆｏｌｌｏｗｉｎｇノードとしてのスタートアップ処理を行って、ノードＣが牽引するネットワーク構築処理に追従する。そして、これらスタートアップノードＳＮであるノードＡ〜Ｃは、スタートアップ処理が終了すると稼動状態となる。また、非スタートアップノードであるノードＤおよびノードＥは、１回目および２回目のネットワーク起動時と同様に、通信開始処理としての起動処理及び設定処理が終了した後、スタートアップノードＳＮであるノードＡ〜Ｃのスタートアップ処理が終了するまで稼動待ちの状態となり、ノードＡ〜Ｃのスタートアップ処理が終了してネットワークが構築されると、そのネットワークに加入して稼動状態となる。
【００６５】
ここで、３回目のネットワークの起動により、スタートアップ処理を行った回数（すなわち、ネットワーク構築処理を行った回数）がネットワーク上に存在するスタートアップノードＳＮの数と一致し、スタートアップノードＳＮであるノードＡ〜Ｃのそれぞれが順番にＬｅａｄｉｎｇノードとしてのネットワーク構築処理を行ったので、ノードＡ〜Ｃの不揮発性メモリ１１に保持されているＬｅａｄｉｎｇノード実行フラグの値はそれぞれ”ＦＡＬＳＥ”にリセットされる。そして、４回目のネットワーク起動時には図１７（ａ）に示した１回目のネットワーク起動時と同様にスタートアップ処理が行われ、５回目のネットワーク起動時には図１７（ｂ）に示した２回目のネットワーク起動時と同様にスタートアップ処理が行われ、６回目のネットワーク起動時には図１７（ｃ）に示した３回目のネットワーク起動時と同様にスタートアップ処理が行われる。さらに、６回目のネットワーク起動時にはノードＡ〜Ｃの不揮発性メモリ１１に保持されているＬｅａｄｉｎｇノード実行フラグの値が再度”ＦＡＬＳＥ”にリセットされるので、７回目のネットワーク起動時は１回目および４回目、８回目のネットワーク起動時は２回目および５回目、９回目のネットワーク起動時は３回目および６回目と同様にスタートアップ処理が行われ、以降、３回のネットワーク起動を周期として、以上の動作が繰り返される。
【００６６】
＜実施形態の効果＞
以上説明したように、本実施形態の通信ネットワークシステムでは、第１の実施形態や第２の実施形態と同様に、スタートアップノードＳＮであるノードＡ〜Ｃが、過去にＬｅａｄｉｎｇノードとなった場合に遅延処理を行ってネットワーク起動信号の送出処理を遅延させるので、ノードＡ〜Ｃの間で通信開始準備処理である起動処理や設定処理に要する時間に偏りがあって、特定のスタートアップノードＳＮの通信開始準備処理が常に最初に終了するといった状況であっても、他のスタートアップノードＳＮにもＬｅａｄｉｎｇノードとなる機会が与えられることになり、各スタートアップノードＳＮにおけるネットワーク構築機能の障害の有無を事前にチェックすることができ、障害が発生していればその障害に対する迅速な対応を図ることが可能となる。
【００６７】
また、本実施形態の通信ネットワークシステムでは、第２の実施形態と同様に、全てのスタートアップノードＳＮに対してＬｅａｄｉｎｇノードとなる機会が繰り返し与えられるので、各スタートアップノードＳＮにおけるネットワーク構築機能の障害の有無のチェックをより確実に行うことができる。
【００６８】
さらに、本実施形態の通信ネットワークシステムでは、第２の実施形態と同様に、各スタートアップノードＳＮが自己診断によって自ノードのネットワーク構築機能に障害が発生していると判定した場合に、その旨の情報を保持するようにしているので、例えば、専用の診断機などをネットワークに接続して各スタートアップノードＳＮの自己診断の結果を読み出すことにより、どのスタートアップノードＳＮのネットワーク構築機能に障害が発生しているかの特定を容易に行うことができる。
【００６９】
特に、本実施形態の通信ネットワークシステムでは、各スタートアップノードＳＮが、自ノードのネットワーク構築機能についての自己診断を自ノードがＬｅａｄｉｎｇノードとなるべきタイミングで実施するので、ネットワーク構築機能に障害が発生していればその障害を迅速に検知することが可能となる。
【００７０】
［第４の実施形態］
次に、本発明の第４の実施形態について説明する。本実施形態は、ネットワーク上に存在する複数のスタートアップノードＳＮを、各スタートアップノードＳＮの通信開始準備処理である起動処理および設定処理に要する時間の長さを基準としてグループ分けし、それぞれのグループごとに異なる長さの遅延時間を設定することで、ネットワーク全体として効率的な遅延処理を行えるようにしたものである。なお、以上の各実施形態の説明では、ネットワーク上のノードＡ〜ＥのうちのノードＡ〜ＣがスタートアップノードＳＮであり、ノードＤ，Ｅが非スタートアップノードであるものとして説明したが、本実施形態では、特徴を判りやすく説明するために、便宜上、ネットワーク上のノードＡ〜Ｅの全てがスタートアップノードＳＮであるものとして説明する。また、ノードＡ〜Ｃでの起動処理および設定処理に要する時間は互いに近く、ノードＤ，Ｅでの起動処理および設定処理に要する時間は互いに近いが、これらノードＡ〜ＣとノードＤ，Ｅとの間では、起動処理および設定処理に要する時間に大きな開きがあるものとし、スタートアップノードＳＮであるノードＡ〜Ｅが、ノードＡ〜Ｃで構成される甲グループ、ノードＥ，Ｄで構成される乙グループといったかたちでグループ分けされているものとする。
【００７１】
＜スタートアップノードの構成＞
図１４は、本実施形態の通信ネットワークシステムにおけるスタートアップノードＳＮの内部構成を示す図である。本実施形態では、スタートアップノードＳＮが、図１４に示すように、各種の処理を実行する機能構成として、第１の実施形態で説明した遅延処理部１３、受信監視部１４、ネットワーク構築処理部１５、受信部１６、送信部１７に加えて、スタートアップ処理が行なわれた回数をカウントしながら甲グループと乙グループとで異なる処理を行うスタートアップカウント処理部３１を備える。つまり、甲グループに属するノードＡ〜Ｃと、乙グループに属するノードＤ，Ｅとでは、このスタートアップカウント処理部３１での処理が異なるのみで、それ以外の各部の処理は、遅延処理部１３での処理に若干の違いはあるものの基本的には共通である。
【００７２】
また、不揮発性メモリ１１には、Ｌｅａｄｉｎｇノード実行フラグのほかに、スタートアップカウント処理部１８でカウントされた値を示すスタートアップカウンタ値や、ＬｅａｄｉｎｇノードとなるべきスタートアップノードＳＮが属するグループを指定するグループフラグが書き換え可能に保持されている。また、ＲＯＭ１２には、甲グループと乙グループとでそれぞれ異なる遅延時間が記憶されており、さらに甲グループでの遅延時間としては、２種類の遅延時間（以下、一方を標準遅延時間、他方を最大遅延時間とよぶ。）が記憶されている。また、ＲＯＭ１２には、上述したグループごとの遅延時間のほかに、甲グループに属するスタートアップノードＳＮの数を示す甲スタートアップノード数、乙グループに属するスタートアップノードＳＮの数を示す乙スタートアップノード数、甲グループに属するスタートアップノードＳＮが順番にＬｅａｄｉｎｇノードとなる処理を何回繰り返すかを示す甲繰り返し数、乙グループに属するスタートアップノードＳＮが順番にＬｅａｄｉｎｇノードとなる処理を何回繰り返すかを示す乙繰り返し数がそれぞれ記憶されている。
【００７３】
不揮発性メモリ１１に保持されているグループフラグは、値が”ＦＡＬＳＥ”の場合、甲グループに属するスタートアップノードＳＮがＬｅａｄｉｎｇノードとなるべきであることを示し、値が”ＴＲＵＥ”の場合、乙グループに属するスタートアップノードＳＮがＬｅａｄｉｎｇノードとなるべきであることを示している。つまり、このグループフラグは、ＬｅａｄｉｎｇノードとなるべきスタートアップノードＳＮが属するグループが甲グループから乙グループに切り替わると、その値が”ＦＡＬＳＥ”から”ＴＲＵＥ”に書き換えられ、ＬｅａｄｉｎｇノードとなるべきスタートアップノードＳＮが属するグループが乙グループから甲グループに切り替わると、その値が”ＴＲＵＥ”から”ＦＡＬＳＥ”に書き換えられる。
【００７４】
甲グループに属するスタートアップノードＳＮの遅延処理部１３は、第１の実施形態と同様、不揮発性メモリ１１に保持されているＬｅａｄｉｎｇノード実行フラグの値を確認して、Ｌｅａｄｉｎｇノード実行フラグの値が”ＴＲＵＥ”であれば、ＲＯＭ１２に記憶されている遅延時間を遅延タイマにセットして、遅延タイマがタイムアウトするまで受信監視部１４を動作させないようにするが、このとき、不揮発性メモリ１１に保持されているグループフラグの値も確認して、グループフラグの値が”ＦＡＬＳＥ”であれば、ＲＯＭ１２に記憶されている２種類の遅延時間のうちで標準遅延時間を遅延タイマにセットし、グループフラグの値が”ＴＲＵＥ”であれば、ＲＯＭ１２に記憶されている２種類の遅延時間のうちで最大遅延時間を遅延タイマにセットする。なお、乙グループに属するスタートアップノードＳＮの遅延処理部１３での処理は第１の実施形態と同じである。
【００７５】
スタートアップカウント処理部３１は、上述したように、甲グループに属するスタートアップノードＳＮと、乙グループに属するスタートアップノードＳＮとで、互いに異なる処理を行う。
【００７６】
甲グループに属するスタートアップノードＳＮのスタートアップカウント処理部３１は、受信監視部１４から監視タイマのタイムアウトまたはネットワーク起動信号の受信が通知されると、不揮発性メモリ１１からスタートアップカウンタ値を読み出すとともに、ＲＯＭ１２から甲スタートアップノード数、乙スタートアップノード数、甲繰り返し数、乙繰り返し数をそれぞれ読み出す。そして、これらＲＯＭ１２から読み出した各パラメータを用いて不揮発性メモリ１１から読み出したスタートアップカウンタ値が下記（１）〜（６）のいずれの条件に該当するかを判定し、下記（１）〜（６）の条件に応じて処理内容を決定する。
【００７７】
（１）スタートアップカウンタ値＜甲ノード数×任意の整数（ただし、甲繰り返し数より小さい値）−１
（２）スタートアップカウンタ値＝甲ノード数×任意の整数（ただし、甲繰り返し数より小さい値）−１
（３）甲ノード数×任意の整数（ただし、甲繰り返し数より小さい値）−１＜スタートアップカウンタ値＜甲ノード数×甲繰り返し数−１
（４）スタートアップカウンタ値＝甲ノード数×甲繰り返し数−１
（５）甲ノード数×甲繰り返し数−１＜スタートアップカウンタ値＜（甲ノード数×甲繰り返し数−１）＋（乙ノード数×乙繰り返し数−１）
（６）スタートアップカウンタ値＝（甲ノード数×甲繰り返し数−１）＋（乙ノード数×乙繰り返し数−１）
甲グループに属するスタートアップノードＳＮのスタートアップカウント処理３１は、スタートアップカウンタ値が条件（１）に該当する場合には、スタートアップカウンタ値をインクリメントして、新たな値で不揮発性メモリ１１に保持されているスタートアップカウンタ値を書き換える。また、スタートアップカウンタ値が条件（２）に該当する場合には、スタートアップカウンタ値をインクリメントして、新たな値で不揮発性メモリ１１に保持されているスタートアップカウンタ値を書き換えるとともに、不揮発性メモリ１１に保持されているＬｅａｄｉｎｇノード実行フラグの値を”ＴＲＵＥ”から”ＦＡＬＳＥ”にリセットする。
【００７８】
また、甲グループに属するスタートアップノードＳＮのスタートアップカウント処理３１は、スタートアップカウンタ値が条件（３）に該当する場合には、スタートアップカウンタ値をインクリメントして、新たな値で不揮発性メモリ１１に保持されているスタートアップカウンタ値を書き換える。また、スタートアップカウンタ値が条件（４）に該当する場合には、スタートアップカウンタ値をインクリメントして、新たな値で不揮発性メモリ１１に保持されているスタートアップカウンタ値を書き換えるとともに、不揮発性メモリ１１に保持されているグループフラグの値を”ＦＡＬＳＥ”から”ＴＲＵＥ”に書き換える。
【００７９】
また、甲グループに属するスタートアップノードＳＮのスタートアップカウント処理３１は、スタートアップカウンタ値が条件（５）に該当する場合には、スタートアップカウンタ値をインクリメントして、新たな値で不揮発性メモリ１１に保持されているスタートアップカウンタ値を書き換える。また、スタートアップカウンタ値が条件（６）に該当する場合には、不揮発性メモリ１１に保持されているスタートアップカウンタ値を０にリセットするとともに、Ｌｅａｄｉｎｇノード実行フラグの値を”ＴＲＵＥ”から”ＦＡＬＳＥ”にリセットし、さらにグループフラグの値を”ＴＲＵＥ”から”ＦＡＬＳＥ”にリセットする。
【００８０】
一方、乙グループに属するスタートアップノードＳＮのスタートアップカウント処理部３１は、受信監視部１４から監視タイマのタイムアウトまたはネットワーク起動信号の受信が通知されると、不揮発性メモリ１１からスタートアップカウンタ値を読み出すとともに、ＲＯＭ１２から甲スタートアップノード数、乙スタートアップノード数、甲繰り返し数、乙繰り返し数をそれぞれ読み出す。そして、これらＲＯＭ１２から読み出した各パラメータを用いて不揮発性メモリ１１から読み出したスタートアップカウンタ値が下記（７）〜（１２）のいずれの条件に該当するかを判定し、下記（７）〜（１２）の条件に応じて処理内容を決定する。
【００８１】
（７）スタートアップカウンタ値＜甲ノード数×甲繰り返し数−１
（８）スタートアップカウンタ値＝甲ノード数×甲繰り返し数−１
（９）甲ノード数×甲繰り返し数−１＜スタートアップカウンタ値＜（甲ノード数×甲繰り返し数−１）＋（乙ノード数×任意の整数（ただし、乙繰り返し数より小さい値）−１）
（１０）スタートアップカウンタ値＝（甲ノード数×甲繰り返し数−１）＋（乙ノード数×任意の整数（ただし、乙繰り返し数より小さい値）−１）
（１１）（甲ノード数×甲繰り返し数−１）＋（乙ノード数×任意の整数（ただし、乙繰り返し数より小さい値）−１）＜スタートアップカウンタ値＜（甲ノード数×甲繰り返し数−１）＋（乙ノード数×乙繰り返し数−１）
（１２）スタートアップカウンタ値＝（甲ノード数×甲繰り返し数−１）＋（乙ノード数×乙繰り返し数−１）
乙グループに属するスタートアップノードＳＮのスタートアップカウント処理３１は、スタートアップカウンタ値が条件（７）に該当する場合には、スタートアップカウンタ値をインクリメントして、新たな値で不揮発性メモリ１１に保持されているスタートアップカウンタ値を書き換える。また、スタートアップカウンタ値が条件（８）に該当する場合には、スタートアップカウンタ値をインクリメントして、新たな値で不揮発性メモリ１１に保持されているスタートアップカウンタ値を書き換えるとともに、不揮発性メモリ１１に保持されているグループフラグを”ＦＡＬＳＥ”から”ＴＲＵＥ”に書き換える。
【００８２】
また、乙グループに属するスタートアップノードＳＮのスタートアップカウント処理３１は、スタートアップカウンタ値が条件（９）に該当する場合には、スタートアップカウンタ値をインクリメントして、新たな値で不揮発性メモリ１１に保持されているスタートアップカウンタ値を書き換える。また、スタートアップカウンタ値が条件（１０）に該当する場合には、スタートアップカウンタ値をインクリメントして、新たな値で不揮発性メモリ１１に保持されているスタートアップカウンタ値を書き換えるとともに、不揮発性メモリ１１に保持されているＬｅａｄｉｎｇノード実行フラグの値を”ＴＲＵＥ”から”ＦＡＬＳＥ”にリセットする。
【００８３】
また、乙グループに属するスタートアップノードＳＮのスタートアップカウント処理３１は、スタートアップカウンタ値が条件（１１）に該当する場合には、スタートアップカウンタ値をインクリメントして、新たな値で不揮発性メモリ１１に保持されているスタートアップカウンタ値を書き換える。また、スタートアップカウンタ値が条件（１２）に該当する場合には、不揮発性メモリ１１に保持されているスタートアップカウンタ値を０にリセットするとともに、Ｌｅａｄｉｎｇノード実行フラグの値を”ＴＲＵＥ”から”ＦＡＬＳＥ”にリセットし、さらにグループフラグの値を”ＴＲＵＥ”から”ＦＡＬＳＥ”にリセットする。
【００８４】
＜遅延時間の設定＞
ここで、本実施形態での遅延時間の設定の仕方について説明する。
【００８５】
上述したように、甲グループに属するスタートアップノードＳＮであるノードＡ〜Ｃに対しては、標準遅延時間と最大遅延時間との２種類の遅延時間が設定されるが、このうち、標準遅延時間については、第１の実施形態と同様の手法で設定される。すなわち、図１９に示すように、ノードＡ〜ＣのうちでノードＡでの通信開始準備処理に要する時間が最短時間Ｔ１であり、ノードＢでの通信開始処理に要する時間が最長時間Ｔ２であるとすると、甲グループに属するスタートアップノードＳＮの標準遅延時間は、例えば、Ｔ２−Ｔ１＋α（αは誤差許容量に相当する時間）に設定される。また、乙グループに属するスタートアップノードＳＮであるノードＤ，Ｅの遅延時間も第１の実施形態と同様に設定され、ノードＤでの通信開始準備処理に要する時間がＴ３、ノードＥでの通信開始準備処理に要する時間がＴ４（ただし、Ｔ４＞Ｔ３）であるとすると、乙グループに属するスタートアップノードＳＮの遅延時間は、Ｔ４−Ｔ３＋αに設定される。
【００８６】
また、甲グループに属するスタートアップノードＳＮの最大遅延時間は、甲グループに属するスタートアップノードＳＮでの通信開始準備処理に要する時間と乙グループに属するスタートアップノードＳＮでの通信開始準備処理に要する時間との差の最大値に基づいて定められる。すなわち、図１９に示す例では、甲グループに属するスタートアップノードＳＮの最大遅延時間は、Ｔ４−Ｔ１＋αに設定される。
【００８７】
＜スタートアップノードの動作＞
本実施形態におけるスタートアップノードＳＮは、第１乃至第３の実施形態と同様に、起動処理および設定処理を行った後にスタートアップ処理を行い、スタートアップ処理が終了すると稼動状態となる（図３参照）。ただし、本実施形態では、スタートアップノードＳＮが実行するスタートアップ処理に、図２０に示すような一連の処理が含まれている。すなわち、スタートアップノードＳＮは、スタートアップ処理を開始すると、まず、ステップＳ４１１において、遅延処理部１３による遅延処理を行い、その後、ステップＳ４１２において、受信監視部１４による受信監視処理を行う。次に、本実施形態では、ステップＳ４１３において、スタートアップカウント処理部３１によりスタートアップカウント処理を行い、その後、ステップＳ４１４において、ステップＳ４１２での受信監視処理の結果に応じて、ネットワーク構築処理部１５によるネットワーク構築処理を行う。
【００８８】
これら図２０に示す一連のスタートアップ処理のうち、ステップＳ４１２での受信監視部１４による受信監視処理や、ステップＳ４１４でのネットワーク構築処理部１５によるネットワーク構築処理の内容は第１の実施形態で説明した内容と同じであり、また、乙グループに属するスタートアップノードＳＮで実行されるステップＳ４１１での遅延処理部１３による遅延処理の内容も、第１の実施形態で説明した内容と同じである。ただし、甲グループに属するスタートアップノードＳＮでは、ステップＳ４１１での遅延処理として、図２１のフローチャートで示す処理が行われる。
【００８９】
すなわち、甲グループに属するスタートアップノードＳＮでは、図２０のステップＳ４１１における遅延処理が開始されると、遅延処理部１３が、図２１に示すように、まず、ステップＳ４２１において、不揮発性メモリ１１に保持されているＬｅａｄｉｎｇノード実行フラグの値を確認する。そして、Ｌｅａｄｉｎｇノード実行フラグの値が”ＴＲＵＥ”であれば、次のステップＳ４２２において、不揮発性メモリ１１に保持されているグループフラグの値を確認する。ここで、グループフラグの値が”ＦＡＬＳＥ”であれば、ステップＳ４２３において、ＲＯＭ１２に記憶されている標準遅延時間を遅延タイマにセットして、遅延時間のカウントを開始する。一方、グループフラグの値が”ＴＲＵＥ”であれば、ステップＳ４２４において、ＲＯＭ１２に記憶されている最大遅延時間を遅延タイマにセットして、遅延時間のカウントを開始する。そして、ステップＳ４２５で遅延タイマがタイムアウトすると、受信監視部１４に対してその旨を通知して、遅延処理を終了する。また、ステップＳ４２１で確認したＬｅａｄｉｎｇノード実行フラグの値が”ＦＡＬＳＥ”であれば、受信監視部１４に対して遅延不要を通知して、遅延処理を終了する。
【００９０】
図２２は、図２０のステップＳ４１３におけるスタートアップカウント処理の流れを示すフローチャートであり、甲グループに属するスタートアップノードＳＮのスタートアップカウント処理部３１で実行されるものである。図２０のステップＳ４１３におけるスタートアップカウント処理が開始されると、甲グループに属するスタートアップノードＳＮのスタートアップカウント処理部３１は、図２２に示すように、不揮発性メモリ１１からスタートアップカウンタ値を読み出すとともに、ＲＯＭ１２から甲スタートアップノード数、乙スタートアップノード数、甲繰り返し数、乙繰り返し数をそれぞれ読み出して、スタートアップカウンタ値が、上述した条件（１）〜（６）のいずれの条件に該当するかを判定する（ステップＳ４３１〜ステップＳ４３５）。
【００９１】
そして、スタートアップカウンタ値が上述した条件（１）に該当すると判定（ステップＳ４３１で肯定判定）した場合には、ステップＳ４３６において、スタートアップカウンタ値をインクリメント（＋１）してその値を不揮発性メモリ１１に保持させる。
【００９２】
また、スタートアップカウンタ値が上述した条件（２）に該当すると判定（ステップＳ４３２で肯定判定）した場合には、ステップＳ４３７において、スタートアップカウンタ値をインクリメントしてその値を不揮発性メモリ１１に保持させるとともに、不揮発性メモリ１１に保持されているＬｅａｄｉｎｇノード実行フラグの値を”ＦＡＬＳＥ”にリセットする。
【００９３】
また、スタートアップカウンタ値が上述した条件（３）に該当すると判定（ステップＳ４３３で肯定判定）した場合には、ステップＳ４３８において、スタートアップカウンタ値をインクリメントしてその値を不揮発性メモリ１１に保持させる。
【００９４】
また、スタートアップカウンタ値が上述した条件（４）に該当すると判定（ステップＳ４３４で肯定判定）した場合には、ステップＳ４３９において、スタートアップカウンタ値をインクリメントしてその値を不揮発性メモリ１１に保持させるとともに、不揮発性メモリ１１に保持されているグループフラグの値を”ＦＡＬＳＥ”から”ＴＲＵＥ”に書き換える。
【００９５】
また、スタートアップカウンタ値が上述した条件（５）に該当すると判定（ステップＳ４３５で肯定判定）した場合には、ステップＳ４４０において、スタートアップカウンタ値をインクリメントしてその値を不揮発性メモリ１１に保持させる。
【００９６】
また、スタートアップカウンタ値が上述した条件（６）に該当すると判定（ステップＳ４３５で否定判定）した場合には、ステップＳ４４１において、スタートアップカウンタ値を０にリセットするとともに、Ｌｅａｄｉｎｇノード実行フラグの値を”ＦＡＬＳＥ”にリセットし、さらにグループフラグの値を”ＦＡＬＳＥ”にリセットして、スタートアップカウント処理を終了する。
【００９７】
図２３は、図２０のステップＳ４１３におけるスタートアップカウント処理の流れを示すフローチャートであり、乙グループに属するスタートアップノードＳＮのスタートアップカウント処理部３１で実行されるものである。図２０のステップＳ４１３におけるスタートアップカウント処理が開始されると、乙グループに属するスタートアップノードＳＮのスタートアップカウント処理部３１は、図２３に示すように、不揮発性メモリ１１からスタートアップカウンタ値を読み出すとともに、ＲＯＭ１２から甲スタートアップノード数、乙スタートアップノード数、甲繰り返し数、乙繰り返し数をそれぞれ読み出して、スタートアップカウンタ値が、上述した条件（７）〜（１２）のいずれの条件に該当するかを判定する（ステップＳ４５１〜ステップＳ４５５）。
【００９８】
そして、スタートアップカウンタ値が上述した条件（７）に該当すると判定（ステップＳ４５１で肯定判定）した場合には、ステップＳ４５６において、スタートアップカウンタ値をインクリメントしてその値を不揮発性メモリ１１に保持させる。
【００９９】
また、スタートアップカウンタ値が上述した条件（８）に該当すると判定（ステップＳ４５２で肯定判定）した場合には、ステップＳ４５７において、スタートアップカウンタ値をインクリメントしてその値を不揮発性メモリ１１に保持させるとともに、不揮発性メモリ１１に保持されているグループフラグの値を”ＦＡＬＳＥ”から”ＴＲＵＥ”に書き換える。
【０１００】
また、スタートアップカウンタ値が上述した条件（９）に該当すると判定（ステップＳ４５３で肯定判定）した場合には、ステップＳ４５８において、スタートアップカウンタ値をインクリメントしてその値を不揮発性メモリ１１に保持させる。
【０１０１】
また、スタートアップカウンタ値が上述した条件（１０）に該当すると判定（ステップＳ４５４で肯定判定）した場合には、ステップＳ４５９において、スタートアップカウンタ値をインクリメントしてその値を不揮発性メモリ１１に保持させるとともに、不揮発性メモリ１１に保持されているＬｅａｄｉｎｇノード実行フラグの値を”ＦＡＬＳＥ”にリセットする。
【０１０２】
また、スタートアップカウンタ値が上述した条件（１１）に該当すると判定（ステップＳ４５５で肯定判定）した場合には、ステップＳ４６０において、スタートアップカウンタ値をインクリメントしてその値を不揮発性メモリ１１に保持させる。
【０１０３】
また、スタートアップカウンタ値が上述した条件（１２）に該当すると判定（ステップＳ４５５で否定判定）した場合には、ステップＳ４６１において、スタートアップカウンタ値を０にリセットするとともに、Ｌｅａｄｉｎｇノード実行フラグの値を”ＦＡＬＳＥ”にリセットし、さらにグループフラグの値を”ＦＡＬＳＥ”にリセットして、スタートアップカウント処理を終了する。
【０１０４】
＜ネットワーク起動時における各ノードの状態遷移＞
次に、本実施形態の通信ネットワークシステムにおいて、各ノードの状態遷移がネットワークの起動を繰り返すごとにどのように変化するかについて、図２４および図２５を参照しながら説明する。なお、ここで説明する例では、甲グループに属するスタートアップノードＡ〜Ｃが順番にＬｅａｄｉｎｇノードとなる処理を２回繰り返し（甲繰り返し数が２）、乙グループに属するスタートアップノードＤ，Ｅが順番にＬｅａｄｉｎｇノードとなる処理は１回のみ（乙繰り返し数が１）であるものとする。
【０１０５】
まず、１回目のネットワーク起動時は、各スタートアップノードＳＮのグループフラグの値は”ＦＡＬＳＥ”となっており、甲グループに属するスタートアップノードＳＮであるノードＡ〜ＣのＬｅａｄｉｎｇノード実行フラグの値は全て”ＦＡＬＳＥ”となっているので、図２４（ａ）に示すように、甲グループに属するスタートアップノードＳＮであるノードＡ〜Ｃのうち、電源がオンされた後に通信開始処理としての起動処理及び設定処理が最も早く終了するノードＡがＬｅａｄｉｎｇノードとなり、Ｌｅａｄｉｎｇノードとしてのスタートアップ処理を行ってネットワークの構築を牽引する。そして、他のスタートアップノードＳＮであるノードＢ〜Ｅは、ノードＡからのネットワーク起動信号を受信してＦｏｌｌｏｗｉｎｇノードとなり、Ｆｏｌｌｏｗｉｎｇノードとしてのスタートアップ処理を行って、ノードＡが牽引するネットワーク構築処理に追従する。そして、これらスタートアップノードＳＮであるノードＡ〜Ｅは、スタートアップ処理が終了すると稼動状態となる。
【０１０６】
次に、２回目のネットワーク起動時には、各スタートアップノードＳＮのグループフラグの値は”ＦＡＬＳＥ”となっており、甲グループに属するスタートアップノードＳＮであるノードＡのＬｅａｄｉｎｇノード実行フラグの値は”ＴＲＵＥ”となっているので、図２４（ｂ）に示すように、ノードＡでは、通信開始処理としての起動処理及び設定処理が終了した後に標準遅延時間による遅延処理が行われる。そして、このノードＡの遅延処理が終了する前に、甲グループに属するノードＢの起動処理及び設定処理が終了するので、ノードＢがＬｅａｄｉｎｇノードとなって、Ｌｅａｄｉｎｇノードとしてのスタートアップ処理を行い、ネットワークの構築を牽引する。また、他のスタートアップノードであるノードＡ，Ｃ〜Ｅは、ノードＢからのネットワーク起動信号を受信してＦｏｌｌｏｗｉｎｇノードとなり、Ｆｏｌｌｏｗｉｎｇノードとしてのスタートアップ処理を行って、ノードＢが牽引するネットワーク構築処理に追従する。そして、これらスタートアップノードＳＮであるノードＡ〜Ｅは、スタートアップ処理が終了すると稼動状態となる。
【０１０７】
次に、３回目のネットワーク起動時には、各スタートアップノードＳＮのグループフラグの値は”ＦＡＬＳＥ”となっており、甲グループに属するスタートアップノードＳＮであるノードＡ，ＢのＬｅａｄｉｎｇノード実行フラグの値は”ＴＲＵＥ”となっているので、図２４（ｃ）に示すように、これらノードＡ，Ｂでは、通信開始処理としての起動処理及び設定処理が終了した後に標準遅延時間による遅延処理が行われる。そして、これらノードＡ，Ｂの遅延処理が終了する前に、甲グループに属するノードＣの起動処理及び設定処理が終了するので、ノードＣがＬｅａｄｉｎｇノードとなって、Ｌｅａｄｉｎｇノードとしてのスタートアップ処理を行い、ネットワークの構築を牽引する。また、他のスタートアップノードであるノードＡ，Ｂ，Ｄ，Ｅは、ノードＣからのネットワーク起動信号を受信してＦｏｌｌｏｗｉｎｇノードとなり、Ｆｏｌｌｏｗｉｎｇノードとしてのスタートアップ処理を行って、ノードＣが牽引するネットワーク構築処理に追従する。そして、これらスタートアップノードＳＮであるノードＡ〜Ｅは、スタートアップ処理が終了すると稼動状態となる。
【０１０８】
ここで、３回目のネットワークの起動により、スタートアップ処理を行った回数が甲グループに属するスタートアップノードＳＮの数（甲スタートアップノード数）に達したので、ノードＡ〜ＣのＬｅａｄｉｎｇノード実行フラグの値はそれぞれ”ＦＡＬＳＥ”にリセットされる。そして、４回目のネットワーク起動時には図２４（ａ）に示した１回目のネットワーク起動時と同様にスタートアップ処理が行われ、５回目のネットワーク起動時には図２４（ｂ）に示した２回目のネットワーク起動時と同様にスタートアップ処理が行われ、６回目のネットワーク起動時には図２４（ｃ）に示した３回目のネットワーク起動時と同様にスタートアップ処理が行われる。そして、６回目のネットワーク起動により、スタートアップ処理を行った回数が甲スタートアップノード数×甲繰り返し回数に達したので、各スタートアップノードＳＮのグループフラグの値が”ＦＡＬＳＥ”から”ＴＲＵＥ”に書き換えられる。
【０１０９】
次に、７回目のネットワーク起動時は、各スタートアップノードＳＮのグループフラグの値は”ＴＲＵＥ”となっており、甲グループに属するスタートアップノードＳＮであるノードＡ〜ＣのＬｅａｄｉｎｇノード実行フラグの値は全て”ＴＲＵＥ”となっているので、図２５（ａ）に示すように、甲グループに属するスタートアップノードＳＮであるノードＡ〜Ｃでは、通信開始処理としての起動処理及び設定処理が終了した後に最大遅延時間による遅延処理が行われる。そして、これらノードＡ〜Ｃの遅延処理が終了する前に、乙グループに属するノードＥの起動処理及び設定処理が終了するので、ノードＥがＬｅａｄｉｎｇノードとなって、Ｌｅａｄｉｎｇノードとしてのスタートアップ処理を行い、ネットワークの構築を牽引する。また、他のスタートアップノードであるノードＡ〜Ｄは、ノードＥからのネットワーク起動信号を受信してＦｏｌｌｏｗｉｎｇノードとなり、Ｆｏｌｌｏｗｉｎｇノードとしてのスタートアップ処理を行って、ノードＥが牽引するネットワーク構築処理に追従する。そして、これらスタートアップノードＳＮであるノードＡ〜Ｅは、スタートアップ処理が終了すると稼動状態となる。
【０１１０】
次に、８回目のネットワーク起動時は、各スタートアップノードＳＮのグループフラグの値は”ＴＲＵＥ”となっており、甲グループに属するスタートアップノードＳＮであるノードＡ〜ＣのＬｅａｄｉｎｇノード実行フラグの値は全て”ＴＲＵＥ”、乙グループに属するスタートアップノードＳＮであるノードＥのＬｅａｄｉｎｇノード実行フラグの値は”ＴＲＵＥ”となっているので、図２５（ｂ）に示すように、甲グループに属するスタートアップノードＳＮであるノードＡ〜Ｃでは、通信開始処理としての起動処理及び設定処理が終了した後に最大遅延時間による遅延処理が行われ、乙グループに属するスタートアップノードＳＮであるノードＥでも、通信開始処理としての起動処理及び設定処理が終了した後に遅延処理が行われる。そして、これらノードＡ〜Ｃ，Ｅの遅延処理が終了する前に、乙グループに属するノードＤの起動処理及び設定処理が終了するので、ノードＤがＬｅａｄｉｎｇノードとなって、Ｌｅａｄｉｎｇノードとしてのスタートアップ処理を行い、ネットワークの構築を牽引する。また、他のスタートアップノードであるノードＡ〜Ｃ，Ｅは、ノードＤからのネットワーク起動信号を受信してＦｏｌｌｏｗｉｎｇノードとなり、Ｆｏｌｌｏｗｉｎｇノードとしてのスタートアップ処理を行って、ノードＤが牽引するネットワーク構築処理に追従する。そして、これらスタートアップノードＳＮであるノードＡ〜Ｅは、スタートアップ処理が終了すると稼動状態となる。
【０１１１】
ここで、８回目のネットワーク起動により、スタートアップ処理を行った回数が甲スタートアップノード数×甲繰り返し回数＋乙スタートアップノード数＋乙繰り返し数に達したので、各スタートアップノードＳＮのＬｅａｄｉｎｇノード実行フラグの値は”ＦＡＬＳＥ”にリセットされ、また、グループフラグの値も”ＦＡＬＳＥ”にリセットされる。から”ＴＲＵＥ”に書き換えられる。そして、９回目のネットワーク起動時には、１回目と同様のスタートアップ処理が行われ、以降、８回のネットワーク起動を周期として、以上の動作が繰り返される。
【０１１２】
＜実施形態の効果＞
以上説明したように、本実施形態の通信ネットワークシステムでは、第１乃至第３の実施形態と同様に、スタートアップノードＳＮであるノードＡ〜Ｅが、過去にＬｅａｄｉｎｇノードとなった場合に遅延処理を行ってネットワーク起動信号の送出処理を遅延させるので、ノードＡ〜Ｅの間で通信開始準備処理である起動処理や設定処理に要する時間に偏りがあって、特定のスタートアップノードＳＮの通信開始準備処理が常に最初に終了するといった状況であっても、他のスタートアップノードＳＮにもＬｅａｄｉｎｇノードとなる機会が与えられることになり、各スタートアップノードＳＮにおけるネットワーク構築機能の障害の有無を事前にチェックすることができ、障害が発生していればその障害に対する迅速な対応を図ることが可能となる。
【０１１３】
また、本実施形態の通信ネットワークシステムでは、第２の実施形態や第３の実施形態と同様に、全てのスタートアップノードＳＮに対してＬｅａｄｉｎｇノードとなる機会が繰り返し与えられるので、各スタートアップノードＳＮにおけるネットワーク構築機能の障害の有無のチェックをより確実に行うことができる。
【０１１４】
さらに、本実施形態の通信ネットワークシステムでは、ネットワーク上の各スタートアップノードＳＮを、その通信開始準備処理に要する時間の長さを基準としてグループ分けし、それぞれのグループごとに異なる長さの遅延時間やグループごとの繰り返し数を設定するようにしているので、ネットワーク全体としての遅延処理を効率的に行って、遅延処理に伴うネットワークの起動の遅れを効果的に低減させることができる。
【０１１５】
なお、以上では、本発明を適用した通信ネットワークシステムの具体例として、第１乃至第４の実施形態を説明したが、以上の各実施形態は本発明の一適用例を例示したものであり、本発明の技術的範囲は、以上の各実施形態の説明で開示した内容に限定されるものではなく、これらの開示から容易に導き得る様々な代替技術も含まれることは勿論である。
【図面の簡単な説明】
【０１１６】
【図１】本発明を適用した通信ネットワークシステムの全体構成を示す図である。
【図２】第１の実施形態におけるスタートアップノードの内部構成を示す図である。
【図３】第１の実施形態のスタートアップノードで実行される一連の処理の流れを示すフローチャートである。
【図４】第１の実施形態のスタートアップノードで実行されるスタートアップ処理の概要を説明するフローチャートである。
【図５】前記スタートアップ処理に含まれる遅延処理の詳細を説明するフローチャートである。
【図６】前記スタートアップ処理に含まれる受信監視処理の詳細を説明するフローチャートである。
【図７】遅延時間を設定する手法を説明する図である。
【図８】遅延時間を設定する手法の他の例を説明する図である。
【図９】第１の実施形態の通信ネットワークシステムにおいて、各ノードの状態遷移がネットワークの起動を繰り返すごとにどのように変化するかを示す図であり、（ａ）は１回目のネットワーク起動時の様子、（ｂ）は２回目のネットワーク起動時の様子、（ｃ）は３回目のネットワーク起動時の様子、（ｄ）は４回目以降のネットワーク起動時の様子を示している。
【図１０】第２の実施形態におけるスタートアップノードの内部構成を示す図である。
【図１１】第２の実施形態のスタートアップノードで実行されるスタートアップ処理の概要を説明するフローチャートである。
【図１２】前記スタートアップ処理に含まれるスタートアップカウント・診断処理の詳細を説明するフローチャートである。
【図１３】第２の実施形態の通信ネットワークシステムにおいて、各ノードの状態遷移がネットワークの起動を繰り返すごとにどのように変化するかを示す図であり、（ａ）は１，４，７・・・回目のネットワーク起動時の様子、（ｂ）は２，５，８・・・回目のネットワーク起動時の様子、（ｃ）は３，６，９・・・回目のネットワーク起動時の様子を示している。
【図１４】第３の実施形態におけるスタートアップノードの内部構成を示す図である。
【図１５】第３の実施形態のスタートアップノードで実行されるスタートアップ処理に含まれる遅延処理の詳細を説明するフローチャートである。
【図１６】前記スタートアップ処理に含まれるスタートアップカウント・診断処理の詳細を説明するフローチャートである。
【図１７】第３の実施形態の通信ネットワークシステムにおいて、各ノードの状態遷移がネットワークの起動を繰り返すごとにどのように変化するかを示す図であり、（ａ）は１，４，７・・・回目のネットワーク起動時の様子、（ｂ）は２，５，８・・・回目のネットワーク起動時の様子、（ｃ）は３，６，９・・・回目のネットワーク起動時の様子を示している。
【図１８】第４の実施形態におけるスタートアップノードの内部構成を示す図である。
【図１９】第４の実施形態におけるスタートアップノードの遅延時間を設定する手法を説明する図である。
【図２０】第４の実施形態のスタートアップノードで実行されるスタートアップ処理の概要を説明するフローチャートである。
【図２１】前記スタートアップ処理に含まれる遅延処理であって、甲グループに属するスタートアップノードで実行される遅延処理の詳細を説明するフローチャートである。
【図２２】前記スタートアップ処理に含まれるスタートアップカウント処理であって、甲グループに属するスタートアップノードで実行されるスタートアップカウント処理の詳細を説明するフローチャートである。
【図２３】前記スタートアップ処理に含まれるスタートアップカウント処理であって、乙グループに属するスタートアップノードで実行されるスタートアップカウント処理の詳細を説明するフローチャートである。
【図２４】第４の実施形態の通信ネットワークシステムにおいて、各ノードの状態遷移がネットワークの起動を繰り返すごとにどのように変化するかを示す図であり、（ａ）は１回目，４回目・・・のネットワーク起動時の様子、（ｂ）は２回目，５回目・・・のネットワーク起動時の様子、（ｃ）は３回目，６回目・・・のネットワーク起動時の様子を示している。
【図２５】第４の実施形態の通信ネットワークシステムにおいて、各ノードの状態遷移がネットワークの起動を繰り返すごとにどのように変化するかを示す図であり、（ａ）は７回目・・・のネットワーク起動時の様子、（ｂ）は８回目・・・のネットワーク起動時の様子を示している。
【符号の説明】
【０１１７】
１１  不揮発性メモリ（フラグ保持手段）
１２  ＲＡＭ（記憶手段）
１３  遅延処理部
１４  受信監視部
１５  ネットワーク構築処理部
１６  受信部
１７  送信部
１８  スタートアップカウント処理部
１９  スタートアップ診断処理部
２１  遅延処理部
２２  スタートアップ診断処理部
３１  スタートアップカウント処理部
【図１】
0004760467.tif 000002
【図２】
0004760467.tif 000003
【図３】
0004760467.tif 000004
【図４】
0004760467.tif 000005
【図５】
0004760467.tif 000006
【図６】
0004760467.tif 000007
【図７】
0004760467.tif 000008
【図８】
0004760467.tif 000009
【図９】
0004760467.tif 000010
【図１０】
0004760467.tif 000011
【図１１】
0004760467.tif 000012
【図１２】
0004760467.tif 000013
【図１３】
0004760467.tif 000014
【図１４】
0004760467.tif 000015
【図１５】
0004760467.tif 000016
【図１６】
0004760467.tif 000017
【図１７】
0004760467.tif 000018
【図１８】
0004760467.tif 000019
【図１９】
0004760467.tif 000020
【図２０】
0004760467.tif 000021
【図２１】
0004760467.tif 000022
【図２２】
0004760467.tif 000023
【図２３】
0004760467.tif 000024
【図２４】
0004760467.tif 000025
【図２５】
0004760467.tif 000026