(57)【特許請求の範囲】
【請求項１】
マスタノードとスレーブノードを含む複数のノード各々が共有メモリを有し、各ノードが、定周期の通信サイクル内の自ノードに割当てられた送信帯域において、自ノードの共有メモリデータを他ノードへ送信するシステムであって、
前記各スレーブノードは、前記システムへの加入／再加入の際に、前記マスタノードに対して、要求帯域量を含む加入要求を送信する加入要求手段を有し、
前記マスタノードは、
前記加入要求に応じて、各スレーブノードに対して、前記通信サイクル内における任意の送信帯域を割当てる帯域割当管理手段と、
該各ノードへの送信帯域割当結果が登録される割当管理テーブルを記憶する割当管理テーブル記憶手段と、
前記割当管理テーブルを定期的に各スレーブノードに送信して記憶させる割当管理情報通知手段と、を有し、
前記帯域割当管理手段は、前記割当管理テーブルを参照して、前記送信帯域の割当てを行うことを特徴とするネットワーク通信システム。
【請求項２】
前記帯域割当管理手段は、前記送信帯域の割当てを行う毎に空き帯域量を更新し、前記要求帯域量が空き帯域量を超える場合には、加入を許可しないことを特徴とする請求項１記載のネットワーク通信システム。
【請求項３】
前記割当管理テーブル記憶手段には、登録されている各ノードの現在の状態も記憶され、
前記マスタノードは、前記割当管理テーブルに登録されているノードのなかで任意のノードが脱落したことを検出すると、該ノードに係わる前記現在の状態を脱落中とする状態監視手段を更に有し、
前記帯域割当管理手段は、前記加入要求の送信元ノードが、前記割当管理テーブルに登録されており且つ前記現在の状態が脱落中である場合、該ノードが脱落後に復帰したものと判定することを特徴とする請求項１または２記載のネットワーク通信システム。
【請求項４】
前記帯域割当管理手段は、前記脱落後に復帰したものと判定したノードからの前記加入要求に対しては、前記割当管理テーブルに登録されている、該ノードに割当て済みの送信帯域を再度割当てることを特徴とする請求項３記載のネットワーク通信システム。
【請求項５】
前記帯域割当管理手段は、前記脱落後に復帰したものと判定したノードからの前記加入要求の前記要求帯域量が、前記割当管理テーブルに登録されている、該ノードに割当て済みの送信帯域の帯域量と同じである場合には、該ノードに対しては該割当て済みの送信帯域を再度割当てることを特徴とする請求項３記載のネットワーク通信システム。
【請求項６】
前記マスタノードの脱落に応じて新たな該マスタノードである代替マスタノードになったスレーブノードは、前記割当管理情報通知手段によって自ノードに記憶していた前記割当管理テーブルを用いて、前記送信帯域の割当てを行うことを特徴とする請求項１〜５の何れかに記載のネットワーク通信システム。
【請求項７】
前記各スレーブノードは、
前記マスタノードが脱落したか否かを判定するマスタ監視手段と、
該マスタ監視手段によってマスタノードが脱落したと判定された場合、自ノードを前記代替マスタノードとするか否かを判定する代替マスタ化判定手段とを更に有し、
前記帯域割当管理手段は、前記代替マスタ化判定手段の判定によって自ノードを前記代替マスタノードとした場合、前記自ノードに記憶していた前記割当管理テーブルを用いて、前記送信帯域の割当てを行うことを特徴とする請求項６記載のネットワーク通信システム。
【請求項８】
前記帯域割当管理手段は、前記加入要求と前記自ノードに記憶していた割当管理テーブルとに基づいて、既に登録済みのノードが脱落後に復帰したものと判定した場合には、脱落前と同じ送信帯域を割当てることを特徴とする請求項７記載のネットワーク通信システム。
【請求項９】
前記代替マスタ化判定手段は、代替マスタ化確認用フレームを所定回数送信できた場合には自ノードを前記代替マスタノードとすると判定するが、該所定回数に達する前に自ノードより優先度が高いスレーブノードからの前記代替マスタ化確認用フレームを受信した場合には自ノードを前記代替マスタノードとしないと判定することを特徴とする請求項７または８記載のネットワーク通信システム。
【請求項１０】
前記通信サイクルには、前記各ノードが前記共有メモリデータを相互に送受信する帯域であるコモンメモリ帯域が含まれており、
該コモンメモリ帯域の長さは、予め固定的に決められており、
前記送信帯域は、該コモンメモリ帯域を分割する形で割当てられることを特徴とする請求項１〜９の何れかに記載のネットワーク通信システム。
【請求項１１】
各々が共有メモリを有する複数のノードから成り、各ノードが、定周期の通信サイクル内の自ノードに割当てられた送信帯域において、自ノードの共有メモリデータを他ノードへ送信するシステムであって、前記各ノードのうち１台がマスタノードとなり、他がスレーブノードとなるネットワーク通信システムにおける該マスタノードにおいて、
各スレーブノードがシステム加入の際に送信してくる加入要求に応じて、各スレーブノードに対して、前記通信サイクル内における任意の送信帯域を割当てる帯域割当管理手段と、
該各ノードへの送信帯域割当結果が登録される割当管理テーブルを記憶する割当管理テーブル記憶手段と、
前記割当管理テーブルを定期的に各スレーブノードに送信して記憶させる割当管理情報通知手段と、
を有することを特徴とするマスタノード。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信帯域を時分割し、各ノードが自局の送信タイミングで自局データをブロードキャスト送信することで各ノード上に共通のデータを持つネットワークシステムに関する。
【背景技術】
【０００２】
プラント制御用伝送システムにおいては、システムを構成する各機器が相互に大容量データ交換を行う必要がある。これに関して、各機器に搭載されるアプリケーションによるアクセス要求の発生に応じてイベント的に相互アクセスを行う伝送方式を採用していると、ネットワーク負荷がアプリケーションに依存してしまいリアルタイム性を保証することができない。
【０００３】
尚、リアルタイム性を保証するとは、例えば後述するＴＳ帯域内で全てのノードのコモンメモリデータ送信処理が完了すると共に、これが後述する定周期Ｔの通信サイクルで繰り返し実行されることである。
【０００４】
そこで、各機器（各局；各ノード）に共有メモリ（コモンメモリ）を備えさせて、各ノードが、自ノードの更新タイミングで、自局の共有メモリデータをネットワーク上の全局へ送信し、このデータを受信した各局が、この受信データを自己の共有メモリの該当領域に上書き格納することで、高速なデータ交換方式を実現する通信手法がある。
【０００５】
尚、上記共有メモリの記憶領域は、各局それぞれに割当てられた各記憶領域に分割されており、各ノードは、そのアプリケーション実行に伴って、自局用の記憶領域のデータを任意に更新するが、他局用の記憶領域のデータは参照のみ行い更新はしない。他局用の記憶領域のデータは、上記他局から送信されてくるデータを受信する毎に、受信データを上書きすることで更新される。
【０００６】
また、例えば特許文献１には、各局に任意のタイムスロットが割り当てられ、各局が自己に割り当てられたタイムスロットのタイミングでデータ送信等を行うこと等が開示されている。特許文献１では、各局がそれぞれ、周期Ｔの通信サイクルを生成するサイクルタイマと、上記自己に割り当てられたタイムスロットのタイミングを生成するセンドタイマとを有する。また、マスタ局が同期化フレームを送信することで、全ての局のサイクルタイマを同期化させることができる。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００５−１５９７５４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
従来では、ブロードキャスト通信の送信タイミングの生成に、ネットワーク上での各局のユニークな情報としてのネットワーク局番を使用しているが、ネットワーク局番を用いる場合には以下の課題がある。
【０００９】
すなわち、ネットワーク局番に基づく送信帯域の割付け方法では、ネットワークの更新周期が最大局番に依存して決定されることになり、各局の送信データ量を予め見込んでからでなければ局番が決定できない。
【００１０】
これについて、図１４を参照して説明する。
まず、図１４（ａ）に、局番に応じたコモンメモリにおける各局用の記憶領域割当の一例を示す。図示の例では、記憶領域の割当て単位は、１００ワード（番地）単位としており、各局への割当て領域の先頭アドレスを、「局番×１００」番地としている。これより、各局で扱うコモンメモリデータ量に応じて、各局の局番を例えば手動で設定している。図示の例では、最初の局は２００ワード、次の局が３００ワード分のデータ量を必要としているものとし、これに応じて、図示のように、最初の局は局番＝‘０’、次の局は局番＝‘２’、次の次の局は局番＝‘５’としている。換言すれば、この例の場合、局番＝‘１’、‘３’、‘４’は、不使用とすることになり、仮にこれらの何れかの局番が割り当てられたノードが存在した場合、問題が生じることになる。
【００１１】
一方、図１４（ｂ）に示すように、通信サイクル（その後述するＴＳ帯域）における各局への帯域割当ては、１以上のタイムスロットが割り当てられる。ここでは、上記１００ワード分のデータ送信の為に１タイムスロットが必要となるものとする。よって、図示のように、例えば上記局番＝‘０’の局に対しては、図示のように、２つのタイムスロットが割り当てられることになり、上記局番＝‘２’の局に対しては、図示のように、３つのタイムスロットが割り当てられることになる。
【００１２】
この様にして、例えば局番＝‘Ｎ’（Ｎは任意の整数）が最大の局番であるものとし、仮にこのノードには２つのタイムスロットが割り当てられるとした場合、全体でのタイムスロット数は“Ｎ＋２”個となる。この様に、最大の局番（＋その送信データ量）によって、システム全体のタイムスロット数が決まることになり、以って通信サイクルの長さが決定されることになる。
【００１３】
ここで、通常、送信データ量は、その局上で動作するアプリケーション等に依存するため、システム構築の終盤で確定される場合が多い。一方で、上記局番のようなパラメータは、アプリケーションにおいてデータアクセスの際のパラメータとして利用されることが多く、アプリケーション構築時にはあらかじめ決めておく必要があり、システム構築の終盤での局番変更はアプリケーション作成への影響が大きい。
【００１４】
この為、各局で扱うコモンメモリデータ量（≒送信データ量）を、多めに設定しておく場合が多い。例えば、上記局番＝‘０’の局は実際には１つのタイムスロットで済むかもしれないが、上記のように２つのタイムスロットが割り当てられることになり、他の局についても同様のことを行うと、上記最大の局番Ｎが非常に大きくなる。
【００１５】
このように本来よりも大きな局番をあらかじめ設定しておくことで、送信帯域に無駄な空き帯域を作ってしまい、通信効率が悪化する。効率的に割付けを行うためには全アプリケーションのデータ量を事前に正しく見積もる必要があるが、現実には非常に困難である。
【００１６】
本発明の課題は、システムへの加入に応じた動的な送信帯域割付けを行うことで、送信帯域の適切な割当てを実現でき、あるいは更にマスタ交代した場合でも送信帯域の適切な再割当てを実現できるネットワーク通信システム等を提供することである。
【課題を解決するための手段】
【００１７】
本例のネットワーク通信システムは、マスタノードとスレーブノードを含む複数のノード各々が共有メモリを有し、各ノードが、定周期の通信サイクル内の自ノードに割当てられた送信帯域において、自ノードの共有メモリデータを他ノードへ送信するシステムにおいて、下記の構成要素を有する。
【００１８】
各スレーブノードは、前記システムへの加入／再加入の際に、前記マスタノードに対して、要求帯域量を含む加入要求を送信する加入要求手段を有する。
マスタノードは、前記加入要求に応じて、各スレーブノードに対して、前記通信サイクル内における任意の送信帯域を割当てる帯域割当管理手段と、該各ノードへの送信帯域割当結果が登録される割当管理テーブルを記憶する割当管理テーブル記憶手段とを有する。
【００１９】
そして、上記帯域割当管理手段は、該割当管理テーブルを参照して、前記送信帯域の割当てを行う。
【発明の効果】
【００２０】
本発明のネットワーク通信システム等によれば、システムへの加入に応じた動的な送信帯域割付けを行うことで、送信帯域の適切な割当てを実現でき、あるいは更にマスタ交代した場合でも送信帯域の適切な再割当てを実現できる。
【図面の簡単な説明】
【００２１】
【図１】ネットワーク通信システムの概略構成の一例を示す図である。
【図２】先願の例に基づく帯域区分例である。
【図３】マスタノードの処理フローチャート図である。
【図４】（ａ）、（ｂ）は、送信時間帯域割付情報の一例（その１）、（その２）である。
【図５】５つのタイミングにおける各ノードの加入／脱落状況や、タイムスロット割当て状態を示す図である。
【図６Ａ】実施例２のマスタノードの処理フローチャート図（その１）である。
【図６Ｂ】実施例２のマスタノードの処理フローチャート図（その２）である。
【図７】実施例２における５つのタイミングにおける各ノードの加入／脱落状況や、タイムスロット割当て状態を示す図である。
【図８】ノード種別決定処理であってマスタノードとなる場合を示す図である。
【図９】ノード種別決定処理であってスレーブノードとなる場合を示す図である。
【図１０】マスタ交代に関わる処理を示す図である。
【図１１】ノードのハードウェア構成を示す図である。
【図１２】ノードの基本機能の機能ブロック図を示す。
【図１３】本手法に係わるノードの機能ブロック図である。
【図１４】（ａ）、（ｂ）は、従来のタイムスロット割当てについて説明する為の図である。
【発明を実施するための形態】
【００２２】
以下、図面を参照して、本発明の実施の形態について説明する。
図１は、本実施形態におけるネットワーク通信システムの概略構成の一例を示す図である。
【００２３】
図１に示すネットワーク通信システム１０は、一例として、複数のノード装置１１と、１又は複数のＨＵＢ（ハブ）１２等を有する。また、図１の例では、ＨＵＢ１２は、ＨＵＢ１２−１〜１２−４の４台があるものとする。また、ノード装置１１は、ノード装置１１−１、ノード装置１１−２、ノード装置１１−３、ノード装置１１−４、ノード装置１１−５の５台あるものとし、以下、基本的にこれらをノードＡ、ノードＢ、ノードＣ、ノードＤ、ノードＥと記すものとする。但し、特に区別しない場合にはノード装置１１と記すものとする。なお、ノード装置や中継装置の数や種類、接続方法については、図示の例に限定されるものではない。また、ＨＵＢ１２は、中継装置の一例であり、この例に限るものではない。
【００２４】
ここで、後述する一例の説明では、基本的にはノードＡがマスタノード（マスタ局）となるものとし、ノードＢ、ノードＣ、ノードＤ、ノードＥをスレーブノード（スレーブ局）とする。これより、マスタノードＡ、スレーブノードＢ、Ｃ，Ｄ，Ｅ等と記す場合もあるものとする。但し、後述するように、マスタノードＡが脱落した場合には、スレーブノードの何れか１台が代替のマスタノードとなる。本手法では、この様な場合において発生する後述する問題も、解消することができる。詳しくは後述する。
【００２５】
また、図１の例では、ネットワーク通信システム１０の通信路は、各ノード間に中継装置（ＨＵＢ１２）を有するスター型である。各ノード装置１１は、通信路を介して相互に接続されている。各中継装置（ＨＵＢ１２）においてデータ中継の際に遅延が生じるので、任意のノード装置１１間の通信は、中継装置の段数が多いほど遅延が大きくなることになる。
【００２６】
なお、中継装置は、一例としてＨＵＢ１２を示すが、この例に限定されるものではなく、例えばルータ、リピータ、光コンバータ等であってもよい。
また、各ノード装置１１は、例えばプログラマブルコントローラ（ＰＬＣ）、ＰＣ（Ｐｅｒｓｏｎａｌ Ｃｏｍｐｕｔｅｒ）、サーバ、入出力（Ｉ／Ｏ）モジュール、ドライブ装置（例えば、インバータ、サーボ等）等であるが、これらの例に限らない。
【００２７】
ここで、ネットワーク通信システム１０は、上記背景技術で説明した共有メモリ方式が用いられているものとする。よって、各ノードＡ，Ｂ、Ｃ，Ｄ，Ｅは、図１では図示しない共有メモリ（コモンメモリ）を有している。そして、各ノードは、所定の周期Ｔの通信サイクルで、ネットワーク上の全局へ自局の共有メモリデータの送信を行うことを繰り返す。このデータを受信した各ノードは、当該受信データによって自ノードの共有メモリの格納データを更新する。この様にして、リアルタイム性を保証したデータ交換方式を実現している。
【００２８】
尚、各ノードにおいて、任意のアプリケーションの処理実行に伴って、共有メモリにアクセスするが、上記処理によってリアルタイムの最新の更新データにアクセスできることになる。上記アプリケーションは、例えばプラント等の各種機器の制御用のアプリケーションであるが、この例に限らない。
【００２９】
また、各ノードの共有メモリデータの送信タイミングが相互に異なるように、上述したタイムスロットの割当てが行われている。すなわち、上述したように、各ノードには１以上の帯域（タイムスロット）が割り当てられるが、これは例えば図２に示すようなＴＳ帯域内において割り当てられる。ＴＳ帯域は、複数のタイムスロットに分割されており、本手法ではこのタイムスロット数は予め決められている。換言すれば、ＴＳ帯域の長さは、予め決まっており、以って通信サイクルの長さも予め決まっている。つまり、本手法では通信サイクルの長さ（周期Ｔ）が変動するようなことはない。そして、本手法では、上記各ノードへのタイムスロットの割当ては、動的に行われる。例えば、マスタノードは、ネットワークへの加入順に、各ノードへタイムスロットを割当てる。詳しくは後述する。
【００３０】
以下、図２の例について説明する。
図２の例は、例えば先願（WO 2013121568 A1）の例に基づく帯域区分例である。
ここで、先願（WO 2013121568 A1）について簡単に説明する。
【００３１】
先願では、まず、各ノードがサイクルタイマとセンドタイマの２つのタイマを有しており、サイクルタイマには予め所定の周期Ｔが設定されている。これより、サイクルタイマに、タイマアップ後直ちに再起動する動作を繰り返させることで、図２に示す周期Ｔの通信サイクルが生成される。そして、先願では、通信サイクルを、図示のＴＣ帯域、ＴＳ帯域の２つの帯域に分割している。
【００３２】
尚、本例では、更に図２に示すＭＳＧ帯域が加わっているが、これは一例であり、ＭＳＧ帯域は無くてもよい。但し、本例ではＭＳＧ帯域も設けるものとする。ＭＳＧ帯域は、主に１対１の通信にて使用され、本例では後述する加入要求（スレーブ局からマスタ局へのネットワーク参加要求）も、このＭＳＧ帯域でメッセージ通信される。このネットワーク参加要求メッセージには、送信元局番、要求送信時間帯域数（要求する帯域量（タイムスロット数）や送信データ量など）等が含まれる。
【００３３】
また、先願と同様、図示のＴＣ帯域は、同期化フレーム送受信の為の帯域である。先願と同様に、この同期化フレーム等に基づいて、各スレーブノードが、自己のサイクルタイマを、マスタノードのサイクルタイマに同期させるようにしてもよいが、この例に限らない。尚、本説明における“同期”とは、例えば各ノードのタイマのカウンタ動作（起動タイミング；位相等）が合っている状態をいうが、これに限定されるものではない。但し、ＴＣ帯域も必須の構成要素ではない。
【００３４】
一例としては、上記帯域（タイムスロット）は、このＴＳ帯域を分割したものと見做してよい。そして、各ノードには、１以上のタイムスロットが割り当てられる。図２に示す例では、ノードＡ，Ｃ，Ｅには１つのタイムスロットが割り当てられ、ノードＢには２つ、ノードＤには３つのタイムスロットが、それぞれ割り当てられているものとする。但し、従来では事前に固定的にタイムスロットが割り当てられていたが、本手法では、運用中に動的にタイムスロットが割り当てられる。特に、加入順にタイムスロットが割り当てられる。
【００３５】
本手法では、ＴＳ帯域の長さは、予め固定的に決められている。そして、マスタノードは、任意のスレーブノードからのシステムへの加入要求がある毎に、タイムスロットを割り当てて加入許可を出す。但し、要求を満たす数の未割当タイムスロットが残っていない場合には、加入許可を出さない。
【００３６】
これについて、以下、図３を参照して説明する。
図３は、マスタノードの処理フローチャート図（その１）である。
また、図４（ａ）、（ｂ）は、マスタノードが生成・保持する送信時間帯域割付情報の一例（その１）、（その２）である。尚、マスタノードは、図４（ａ）、（ｂ）に示す例の何れか一方のみを生成・保持するものであってもよいし、両方とも生成・保持するものであっても構わない。図３の説明の前に、図４について説明する。
【００３７】
まず、図４（ａ）に示す例では、送信時間帯域割付情報３０は、送信帯域３１、状態３２、局番３３等から成る。送信帯域３１は、例えば上記各タイムスロットの識別番号等であり、ここでは図示の‘１’から‘Ｎ’まである。換言すれば、タイムスロット数はＮ個である。尚、上記の通り、ＴＳ帯域の長さは予め固定的に決められているので、Ｎの値もこれに応じて予め決まっている。
【００３８】
状態３２には、例えば、送信帯域３１の識別番号のタイムスロットが、任意のノードに割付け済みか否かを示す情報が格納され、図示の例では「割付け済み」、「未割付け」等が格納される。「割付け済み」の場合には、割付けたノードの局番が、局番３３に格納される。一方、「未割付け」の場合には、局番３３には例えば“ＮＵＬＬ”や‘０’等が格納されるものとする。
【００３９】
また、図４（ｂ）に示す例では、送信時間帯域割付情報４０は、局番４１、状態４２、送信開始時間４３、データ占有量４４等から成る。
局番４１には、各ノードの局番が格納される。換言すれば、各ノードの識別情報が格納される。局番４１には、その時点でシステムに加入しているか否かは関係なく、加入し得るノード全ての局番が格納されてもよいが、この例に限らない。尚、本手法の場合、上記図１４に示した従来技術のような「局番‘１’、‘３’、‘４’は使用不可」等の制約はないので、重複しない限り、各局番は自由に決めて構わない。また、“使用不可の局番を、誤って設定してしまう”等という事態は、生じ得ない。
【００４０】
状態４２には、局番４１のノードが、その時点で「加入済み」、「未加入」、「脱落」の何れの状態であるのかが、格納される。ここで、「加入済み」、「未加入」については特に説明は要しないが、「脱落」について説明しておく。
【００４１】
すなわち、ノードは、一旦システムに加入した後に、例えばメンテナンス、故障、更新等の理由で、一時的にシステムから切り離される（例えば電源ＯＦＦなどする）場合がある。この様な場合、再度、システムに接続（例えば電源ＯＮした）するはずである。この様な場合があることを考慮して、システムに加入していたノードが、システムから切り離されたと見做される場合には（このノードからの送信データを、一定時間以上連続して受信しなかった場合等）、「脱落」と見做すものとしている。そして、その後に、同ノードからの加入要求があった場合には、“復帰した”と見做すものとしている。
【００４２】
局番４１のノードに対して既に任意の１以上のタイムスロットを割当て済みの場合には（「脱落」の状態も含む）、送信開始時間４３には割り当てたタイムスロット群の最初のタイムスロットの識別番号が格納され、データ占有量４４には割り当てたタイムスロットの数が格納される。
【００４３】
以下、図３の処理について説明するが、その際に参照／更新する送信時間帯域割付情報は、ここでは上記図４（ａ）に示す送信時間帯域割付情報３０であるものとする。但し、この例に限らない。
【００４４】
マスタノードは、任意のスレーブノードからの加入要求を受信する毎に（ステップＳ１１，ＹＥＳ）、ステップＳ１２〜Ｓ１６の処理を実行する。ここで、加入要求には、要求元ノードの局番、要求元ノードの送信データ量（あるいは必要とするタイムスロット数）等の情報が含まれている。本処理は、既に運用中に行うので、要求元では送信データ量（あるいは必要とするタイムスロット数）が、明確に分かっていることになる。よって、従来のように多めにタイムスロットが割り当てられることはなく、無駄な帯域が生じることはない。
【００４５】
マスタノードは、上記受信した加入要求の上記各種情報を参照することで、まず、要求元ノードの局番が、既に加入済みのノードの局番と、重複してないかを確認する（ステップＳ１２）。もし、局番重複している場合には（ステップＳ１２，ＹＥＳ）、加入は認めず、例えば異常終了する（ステップＳ１５）。
【００４６】
尚、上記ステップＳ１５の際に要求元ノードに対して異常応答を返信してもよいが、重複局番宛のメッセージは正しく到達しない可能性があるので異常応答は返信しないようにしてもよい。この場合、加入要求局は、例えば複数回の要求を行っても正常応答がマスタ局から返信されない場合、自身で加入失敗を判定する。
【００４７】
ここで、各ノードには、作業員等が手動で局番を設定できる構成（後述する局番ＳＷなど）が設けられている。この為、作業員のミスにより、システムに新規追加するノードに対して、既存のノードと同じ局番を設定する可能性がある。例えば、この様な状況である場合に上記ステップＳ１２の判定がＹＥＳとなる。
【００４８】
但し、要求元ノードの局番が送信時間帯域割付情報３０に登録されていても、必ずしもステップＳ１５の処理を行うとは限らない。すなわち、要求元ノードが上記「脱落」状態から復帰したノードである場合には、ステップＳ１５の処理ではなく、不図示の復帰処理を実行するようにしてもよい。この例の場合、送信時間帯域割付情報３０においても、送信時間帯域割付情報４０と同様に、状態３２に「脱落」も格納されるようにする。そして、ステップＳ１２の判定がＹＥＳとなるのは、要求元ノードの局番が、送信時間帯域割付情報３０に登録されており、且つ、この局番３３に対応する状態３２が「割付け済」となっている場合だけとする。
【００４９】
これに対して、要求元ノードの局番が、送信時間帯域割付情報３０に登録されているが、この局番３３に対応する状態３２が「脱落」である場合には、上記復帰処理を行う。この復帰処理は、その局番３３が要求元ノードの局番と同じである１以上のレコードにおける送信帯域３１を、要求元ノードに割当てる。つまり、要求元ノードに対して以前に（脱落前に）割当てていた帯域と同じ帯域を、再度、割当てる。そして、このレコードにおける状態３２を、上記「脱落」から「割付け済」へと変更する。
【００５０】
但し、後述するように、実質的に上記復帰処理が行えない場合もある。例えば、マスタノードが後述する代替マスタであり送信時間帯域割付情報３０を持たない状態である場合（あるいはマスタとなった後に新規に送信時間帯域割付情報３０を作成した場合）、上記脱落から復帰したノードであることが分からず、新規加入要求であると見做す場合がある。この場合、例えば後述する図５に示す例のような問題が生じる場合があるが、これについては後述する。
【００５１】
要求元ノードの局番が送信時間帯域割付情報３０に登録されていない場合には（ステップＳ１２，ＮＯ）、未加入ノードからの新規加入要求であると判定して、要求された分のタイムスロットを割当て可能である場合には、加入許可する。
【００５２】
すなわち、まず、加入要求に含まれる要求帯域量（上記送信データ量や、必要とするタイムスロット数など）が、現在の“残り帯域”（未使用タイムスロットの数など）以下であるか否かを判定する（ステップＳ１３）。ここで、変数“残り帯域”の初期値は、予め決められて全ノードに登録されている。図４の例の場合であれば、例えば、“残り帯域”の初期値＝“Ｎ”となっている。
【００５３】
上記要求帯域が、現在の“残り帯域”を越えている場合には（ステップＳ１３、ＮＯ）、要求元のノードに対して必要なタイムスロットを割り当てることができないことになるので、加入不可と判定する（ステップＳ１５）。
【００５４】
一方、上記要求帯域が、現在の“残り帯域”以下である場合には（ステップＳ１３、ＹＥＳ）、“残り帯域”を更新したうえで（“残り帯域”＝“残り帯域”−要求帯域）（ステップＳ１４）、要求元ノードのネットワークへの加入を許可し、これに応じた所定の処理を実行する（ステップＳ１６）。この所定の処理は、例えば送信時間帯域割付情報３０への新規登録処理である。これは、状態３２が「未割付け」であるレコードのなかで上記要求帯域の数の分のレコードについて、その状態３２を「割付け済」とし、その局番３３に加入要求局の局番を格納する処理等である。更に、加入要求元ノードに対して、これら割付けを行ったレコードの送信帯域３１を、加入許可と共に通知する。これによって、加入要求局は、以後、上記ＴＳ帯域内においてこの送信帯域３１のタイムスロットにおいて、自己のコモンメモリデータを送信することになる。
【００５５】
尚、上記“残り帯域”の初期値は、例えばネットワーク運用周期を決める際に一意に決まる数値であり、パソコン等の設定ツールからあらかじめ全機器（ノード）にダウンロードされているものとする。ネットワーク運用周期は、ノードのアプリケーションとは独立に決定可能なパラメータであるので、後で周期を変更することは容易である。
【００５６】
ここで、マスタノードが、上記送信時間帯域割付情報（３０、４０）を、保持していない場合がある。これは、本来のマスタノードが故障する等した為に、スレーブノードのなかの１台が新たなマスタノード（代替マスタ）となった場合等である。尚、本来のマスタノードが復帰して、その後に再度マスタになった場合でも、代替マスタになったものと言うものとする。
【００５７】
代替マスタは、上記のように送信時間帯域割付情報（３０、４０）を保持していなくても、ＴＳ帯域において実際に受信する上記コモンメモリデータなどに基づいて、上記図３の処理を行うことができる。
【００５８】
すなわち、まず、コモンメモリデータには、アプリケーションが使用するデータ以外に、ネットワーク管理のため、送信元局番、送信開始時間や送信データ量（あるいは、送信元ノードに割当てられている帯域（使用するタイムスロット）の識別番号等）などの情報が付加されている(不図示)。尚、送信開始時間や送信データ量は、たとえば上記送信開始時間４３やデータ占有量４４に相当するデータである。
【００５９】
従って、スレーブノードであっても、各ノードから送信されるコモンメモリデータの受信タイミングや、これら付加情報によって、どの局にどのタイムスロットが割り当てられているのか、分かることになる。また、スレーブノードであっても、他のノードが脱落した場合、このノードからのコモンメモリデータを受信しなくなったことを以って、このノードが脱落したものと推定できる。
【００６０】
この様に、スレーブノードであっても、ネットワークに加入中のノードや、脱落したノードを認識できる。また、加入中ノードだけでなく脱落したノードに関しても、そのノードに割当てられたタイムスロットを認識できる。従って、スレーブノードが代替マスタになった場合、送信時間帯域割付情報（３０、４０）を保持していなくても、図３の処理を実行できる。特に、脱落していたノードが復帰して加入要求を送信してきた場合でも、要求元が脱落ノードであることを認識でき、以前と同じタイムスロットを割当てることができる。
【００６１】
しかしながら、例えば任意のノードが脱落中に他のノードが脱落した場合、その後に復帰した任意のノードは、上記脱落した他のノードの存在自体を認識できない。これは、任意のノードが送信時間帯域割付情報（３０、４０）を保持したマスタノードであっても同様である。これは、脱落によって送信時間帯域割付情報（３０、４０）が消えてしまう為である。あるいは、脱落しても送信時間帯域割付情報（３０、４０）が消えない構成とした場合でも、脱落中にタイムスロット割当て状況が変わっている可能性があるので、送信時間帯域割付情報（３０、４０）は使えない。この為、上記のように受信するコモンメモリデータに基づいて、タイムスロット割当て状況を推測するしかない。上記脱落した他のノードは、コモンメモリデータを送ってこないので、その存在自体を認識できないことになる。尚、上記説明は、上記脱落した他のノードが、未だ復帰していない状況であることを前提とする。
【００６２】
例えば上述した状況となった場合、以下に説明する問題が生じる可能性がある。
すなわち、まず、例えばプラント制御システムで適用されるネットワークにおいては、システムを部分保守するためにネットワークから一部の機器（ノード）を一時的に切り離したり、制御アプリケーションを更新するために一時的にノードの電源をＯＦＦする場合がある。この場合、その後、ノードを再接続したり電源ＯＮすることで、ネットワークに再加入させることになる。
【００６３】
本手法のようにネットワークへの加入順による動的な送信帯域割付けを行う場合、ネットワークへの再加入時の送信帯域割付けを実施していくうちに送信帯域が断片化し、送信データ総量では加入可能な局が参加不能となるケースが考えられる。これについて、以下、図５に示す一例を用いて説明する。
【００６４】
図５において、縦軸は時間軸ｔであり、図上上側が古く、下側が新しい。この時間軸上の５つのタイミングにおける各ノードＡ，Ｂ，Ｃ，Ｄ，Ｅの加入／脱落状況や、タイムスロット割当て状態を、図５に示している。
【００６５】
尚、ここでは図２の例に則して、ノードＡ，Ｃ，Ｅにはそれぞれ１つ、ノードＢには２つ、ノードＤには３つのタイムスロットが、必要となるものとする。そして、ノードＡにはタイムスロット１が割当てられ、ノードＢにはタイムスロット２，３が割当てられ、ノードＣにはタイムスロット４が割当てられ、ノードＤにはタイムスロット５，６，７が割当てられ、ノードＤにはタイムスロット８が割当てられているものとする。
【００６６】
最も古い状態では、ノードＡ，Ｂ，Ｃ，Ｄ，Ｅ全てが加入済みの状態であり、且つ、正常に機能しているものとする。尚、矩形内に斜線があるノードが、そのときのマスタノードを意味し、従って最も古い状態ではノードＡがマスタノードである。また、矩形が点線であるノードは、そのときに脱落中であるものとして管理されているノードである。また、矩形が無いタイムスロットは、空き帯域として管理されているものとする。例えば、図示の最も新しいタイミングでは、タイムスロット３とタイムスロット８が、空き帯域であるとされている。尚、これら管理を行うのはそのときのマスタノードである。
【００６７】
上記最も古い状態では、マスタノードＡは、送信時間帯域割付情報（３０，４０）を参照することで、図示の各ノードのタイムスロット割当て状況を把握できる。但し、この状況では、全てのノードがＴＳ帯域で正常にコモンメモリデータ送信を行っているので、上述したことから、各スレーブノードＢ，Ｃ，Ｄ，Ｅも、マスタノードＡと略同様に、図示の各ノードのタイムスロット割当て状況を把握できている。また、各スレーブノードＢ，Ｃ，Ｄ，Ｅは、このタイムスロット割当て状況を記録しているものとする。但し、これは、揮発性メモリに記憶されている為、電源ＯＦＦ等により消去される。これは、送信時間帯域割付情報３０も同様であるものとする。
【００６８】
そして、任意のときに、上記最も古い状態から２番目に古い状態になったものとする。すなわち、ノードＡ，Ｂ，Ｅが脱落し、マスタノードが脱落したことからノードＣが新たなマスタノード（代替マスタ）になったものとする。
【００６９】
代替マスタノードＣは、送信時間帯域割付情報３０を有さないが、上記の通り、全てのノードＡ，Ｂ，Ｃ，Ｄ，Ｅのタイムスロット割当て状況を把握できている。そのうえで、この場合、ＴＳ帯域において、ノードＤからのコモンメモリデータは受信するが、ノードＡ，Ｂ，Ｅからのコモンメモリデータは受信しない状況となるので、ノードＡ，Ｂ，Ｅは脱落中と推測できる。尚、ノードＣは、この様な割当て状況の推測結果に基づいて、送信時間帯域割付情報３０を新規作成することも可能である。但し、推測結果が必ずしも正しいとは限らない。
【００７０】
この状況で、ノードＡが復帰したものとする。このとき、ノードＡは、マスタノードＣに対して上記加入要求を送信することになり、ノードＣは、脱落中であったノードＡからの加入要求があったものと認識できるので、ノードＡに割り当てられていたタイムスロット１を、再び、ノードＡに割り当てることができる。これにより、図示の３番目に古い状態となる。
【００７１】
この状態で運用中に、ノードＡ，Ｃ，Ｄは、それぞれ、ＴＳ帯域において自局の送信タイミング（割当てタイムスロット）でコモンメモリデータの送信を行うので、ノードＡは、ノードＣ，Ｄのタイムスロット割当て状況は把握できている。しかしながら、ノードＢ，Ｅについては、ノードＡは、そもそもその存在自体を、知らないことになる。つまり、スレーブ局は、現在有効なデータを送信している局の情報のみを認識できるものである。
【００７２】
尚、この様な脱落→復帰後のノードＡは、図示のようにノードＡ’と記すことで、脱落前と区別して示すものとする。
この様な状況でノードＣが脱落して、ノードＡ’が代替マスタになった場合、図示の４番目に古い状態（下から２番目）となる。
【００７３】
この場合、上記の通り、ノードＡ’は、そもそもノードＢ，Ｅの存在自体を、知らない。この為、図示の４番目に古い状態（下から２番目）に示すように、ノードＢ，Ｅに割り当てられていたタイムスロットは、空き領域と見做されることになる。この状態で、例えばノードＥが復帰して上記加入要求を出した場合、完全に新規のノードとして扱われることになるので、元々ノードＥに割付けられていたタイムスロット８ではなく、空き領域の先頭に割付けられることになる。この為、図示の最新の状態（最も下）に示す状態となる。すなわち、元々ノードＢに割り当てられていた帯域の一部（タイムスロット２）が、ノードＥに割り当てられることになる。
【００７４】
この状態で、ノードＢが復帰した場合、仮に最大８つのタイムスロットまで割当て可能であるとした場合、２つ分のタイムスロットが残っているが図示のように断片化している為、ノードＢに割り当てることが出来ないことになる。このように、ノードＢが復帰しようとしても、連続した割付け可能領域がなく、復帰できなくなってしまう。
【００７５】
以下、この様な問題を解消する実施例２について説明する。
上述したように、送信時間帯域割付情報（３０、４０）を持たないスレーブ局は、そのコモンメモリデータを受信した局（有効な局）は認識するが、自局が加入してから一度もそのコモンメモリデータを受信していない局は、その存在自体を認識できない。この為、スレーブ局が新たなマスタ局となった場合に、上述した問題が生じる。
【００７６】
そこで、実施例２では、マスタノードは、図６Ａに示すように、自己が保持する送信時間帯域割付情報（３０、４０）を、例えば定期的に（ステップＳ２１，ＹＥＳ）全てのスレーブノードに対して通知する（ステップＳ２２）。これによって、各スレーブノードも、ほぼ最新の送信時間帯域割付情報（３０、４０）を保持することになる。送信時間帯域割付情報（３０、４０）の通知処理は、例えばＴＣ帯域において同期化フレームに付加する形で行えばよいが、この例に限らない。尚、上述したように、割付情報３０、割付情報４０の両方を保持してもよいし、何れか一方のみを保持する形態であっても構わない。
【００７７】
また、マスタノードは、例えば図６Ｂの加入処理を実行する。
尚、ここでは、図４（ｂ）に示す送信時間帯域割付情報４０を参照するものとして説明する。
【００７８】
図６Ｂの処理は、任意のスレーブノードからの加入要求を受信する毎に（ステップＳ３１，ＹＥＳ）、ステップＳ３２〜Ｓ４０の処理を実行するものである。
まず、加入要求に含まれる送信元ノードの局番が、送信時間帯域割付情報４０に登録済みか否かを判定する（ステップＳ３２）。もし、未登録である場合には（ステップＳ３２，ＮＯ）、新規加入時の処理であるステップＳ３６，Ｓ３７，Ｓ３９ｏｒＳ４０の処理を実行する。尚、ステップＳ３６，Ｓ３７，Ｓ３９ｏｒＳ４０の処理は、上記図３のステップＳ１３、Ｓ１４，Ｓ１５ｏｒＳ１６の処理と略同様であるので、ここでの説明は省略する。
【００７９】
一方、加入要求元ノードが送信時間帯域割付情報４０に登録済みであるならば（ステップＳ３２，ＹＥＳ）、まず、脱落していた局が復帰したのか、設定ミス等により別の機器が同一局番で加入要求してきたのかを判定する（ステップＳ３３）。つまり、送信時間帯域割付情報４０における加入要求元ノードに対応するレコード（該当レコード）における上記状態４２が、「脱落」である場合には脱落していた局が復帰したものと見做して（ステップＳ３３，ＮＯ）、ステップＳ３４の処理へ移行する。一方、上記該当レコードにおける上記状態４２が「加入済」である場合には、誤って別の機器が同一局番で加入要求してきたものと見做して（ステップＳ３３，ＹＥＳ）、加入を許可しないものと判定する（ステップＳ３９）。
【００８０】
ステップＳ３４では、上記加入要求に含まれる要求タイムスロット数等が、上記該当レコードのデータ占有量４４と一致するか否かを判定する。そして、一致した場合すなわち要求する帯域量に変化がない場合には（ステップＳ３４，ＹＥＳ）、脱落局の復帰処理を行う（ステップＳ３８）。つまり、加入要求局に対して、以前と同じタイムスロットを割り当てる。すなわち、上記該当レコードにおける上記送信開始時間４３とデータ占有量４４によって示されるタイムスロットを割り当てる。更に、該当レコードの状態４２を、「脱落」から「加入済」へと変更する。
【００８１】
この様に、ステップＳ３３とＳ３４とによって、脱落していた局が復帰して且つ以前と同じ帯域量を要求していると判定した場合に限り、元々割り当てていた帯域（タイムスロット）を再度割り当てることになる。
【００８２】
一方、要求される送信帯域量に変化がある場合には（ステップＳ３４，ＮＯ）、加入は許可しない（ステップＳ３９）。これは、例えば、全く別の新規加入局に対して、誤って脱落中の局と同じ局番が設定される場合等を想定した処理である。つまり、新規加入局に関して、偶然、脱落局と同じ送信帯域量となっていない限り、ステップＳ３４の判定がＮＯとなることで、誤って脱落局のタイムスロットが割当てられてしまう事態を防止できる。
【００８３】
あるいは、故障等で機器交換する場合、通常、故障機器と入れ替える新しい機器（交換機器と呼ぶ）には、故障機器と同じ局番が設定される共に、故障機器と同じアプリケーションがインストールされる。故障機器と同じアプリケーションであるので、“要求される送信帯域量”も故障機器と同じとなる。よって、この場合には、上記ステップＳ３４の判定はＹＥＳとなり、交換機器に対して、故障機器に割当てられていたタイムスロットと同じタイムスロットが割当てられることになる。つまり、交換機器が故障機器の後を正常に引き継ぐことが出来ることになる。
【００８４】
尚、上記の例では、局番を用いたが、この例に限らない。例えば、EthernetであればＭＡＣアドレス等、機器個体を一意に識別できる番号（機器識別番号と呼ぶ）を用いても構わない。但し、この場合、上記交換機器と故障機器とでは、当然、機器識別番号が異なるので、交換機器が故障機器の後を正常に引き継がなくなる可能性がある。
【００８５】
上述した実施例２の処理によれば、上記図５に示すケースにおいて、図７に示すようなタイムスロット割当てが行われることになる。
図７も、図５と同様に、図上上側から古い順に、５つのタイミングにおけるタイムスロット割当て状況を示している。そして、最も古い、２番目に古い、及び３番目に古いタイミングに関しては、図５と同様であるので、説明は省略する。
【００８６】
そして、４番目に古いタイミング（下から２番目）では、図５と同様にマスタノードＣが脱落したことでノードＡ’が新たなマスタノードとなるが、図５とは異なり、ノードＡ’は、脱落中であるノードＢ，Ｅの存在を認識出来ており、以前にノードＢ，Ｅに割り当てていたタイムスロットも認識出来ている。これは、上記の通り、スレーブノードであったノードＡ’も、送信時間帯域割付情報４０を保持しているからである。このとき、ノードＢ，Ｅに関する情報も、送信時間帯域割付情報４０に登録されているはずである。勿論、その状態４２は「脱落」となっているはずである。
【００８７】
尚、上記のことは、ノードＡが、復帰後に最低１回はマスタノードＣから上記ステップＳ２２の処理によって送信時間帯域割付情報４０が通知されていることを前提とする。
これより、この状態で上記図５と同様にノードＥが復帰して加入要求を出すと、この加入要求を受信したノードＡ’が図６Ｂの処理を実行したとき、上記ステップＳ３２の判定はＹＥＳとなり、更に上記ステップＳ３３の判定はＮＯとなることになる。そして、ノードＥが以前と同じタイムスロット数（＝‘１’）を要求したならば、ステップＳ３４の判定がＹＥＳとなるので、上記ステップＳ３８の処理が実行されることになる。
【００８８】
これより、図７の最新のタイミング（最も下）に示すように、ノードＡ’は、ノードＥに対して、以前に割り当てた帯域（タイムスロット８）を割り当てることになる。つまり、図５のように、以前にノードＢに割り当てた帯域の一部（タイムスロット２）を、ノードＥに割り当ててしまうようなことはない。これより、図７には示していないが、その後に、復帰したノードＢから加入要求があった場合、ノードＡ’は、上記図６Ｂの処理を実行することで、ノードＢに対して、以前に割り当てた帯域（タイムスロット２，３）を割り当てることができる。
【００８９】
ここで、上述したように、本手法では、マスタノードが脱落した場合に、スレーブノードの何れかが新たなマスタノード（代替マスタ）となる。これについて、以下、詳細に説明する。
【００９０】
各ノードは、それぞれ、立ち上げ時に自ノードをマスタノードとするかスレーブノードとするかを決定する処理を行う。この処理自体は、１つのアプリケーション処理であるが、マスタとなる場合の処理の流れを図８に示し、スレーブとなる場合の処理の流れを図９に示すものとする。
【００９１】
まず、図８、図９とも、開始直後の処理は同じであり、状況に応じて処理が分岐することになる。すなわち、図８、図９とも、まずリソース初期化処理を行う（ステップＳ４１、Ｓ５１）。リソース初期化処理自体は、ここでは関係ないので、説明は省略する。図８、図９とも、続いて、回線監視処理を行う（ステップＳ４２，Ｓ５２）。この処理は、例えば、予め所定時間がセットされている監視タイマを起動した後、ネットワークを介してコモンメモリデータまたはＴＣフレーム（同期化フレーム）またはイニシャルＴＣを受信するか否かを監視する処理である。
【００９２】
もし、監視タイマがタイマアップする前に他ノードからのコモンメモリデータまたはＴＣフレームを受信した場合には、自己をスレーブ局とする処理すなわち図９のステップＳ５３、Ｓ５４、Ｓ５５の処理を実行することになる。
【００９３】
更に、監視タイマがタイマアップする前に他ノードからのイニシャルＴＣを受信し、且つ、その送信元ノードが自局よりも優先度が高い場合にも、自己をスレーブ局とする処理すなわち図９のステップＳ５３、Ｓ５４、Ｓ５５の処理を実行することになる。尚、イニシャルＴＣや優先度については後述する。
【００９４】
一方、コモンメモリデータとＴＣフレーム（同期化フレーム）の何れも受信せず、且つ、自ノードより優先度が高い局からのイニシャルＴＣも受信しないまま、監視タイマがタイマアップした場合には、自己をマスタ局とする為の処理を実行する。すなわち、図８のステップＳ４３、Ｓ４４の処理を実行する。つまり、自局を一旦仮のマスタとし、その後、状況次第で自局をマスタとして確定させるか、スレーブ局とするかを決定する。よって、この処理中に、上記自己をスレーブ局とする処理に移行する場合もある。
【００９５】
このように、機器立上り時にネットワークを監視し、基本的には他局が既にマスタとなっていない場合にまず仮のマスタとして動作する。あるいは、他局が仮のマスタとして動作しているが自局よりも優先度が低い場合にも、仮のマスタとして動作する。他局が既にマスタとなっている場合、このマスタ局がＴＣフレームを周期Ｔで繰り返し送信しているはずである。また、他局が既にマスタとなっている場合、このマスタ局や他のスレーブ局が、コモンメモリデータ送信を繰り返し実行しているはずである。
【００９６】
これより、上記の通り、コモンメモリデータまたはＴＣフレームを受信した場合には、他局が既にマスタとなっていると見做して、自局をスレーブとする処理を実行する。
一方、上記のように自局を仮マスタとした場合には、仮マスタとしての所定の処理を実行する（ステップＳ４３）。すなわち、例えば所定周期で上記イニシャルＴＣ（ＩＴＣ）を所定回数（例えば３回）まで繰り返し送信する。イニシャルＴＣには、例えば、それがＩＴＣであることを示す情報と、送信元ノードの局番などが含まれる。上記優先度は、ここでは、局番が小さいほど高いものとする。これより、このＩＴＣを受信した他局は、ＩＴＣの局番と、自局の局番とを比較することで、優先度が自局よりも高いか低いかを判定する。
【００９７】
ステップＳ４３の処理中にＴＣフレームまたは自局よりも優先度が高い局からのＩＴＣを受信した場合には、自局をスレーブとする処理へ移行する。一方、これらを受信することなくＩＴＣを上記所定回数送信した場合には、自局がマスタであるものと確定させる。そして、マスタとしての動作を行う。すなわち、例えば上記ＴＣフレームを定周期Ｔで繰り返し送信する処理や、他局からの加入要求に対して上述した図３や図６Ｂの処理を実行する。
【００９８】
一方、上記自己をスレーブ局とする処理（図９のステップＳ５３、Ｓ５４、Ｓ５５の処理）については、まず、上記のようにＴＣフレーム受信等によって既に他局がマスタノードとなっていると見做せる場合には、例えばＴＣフレームの送信元ノードをマスタノードと見做して（ステップＳ５３）、当該マスタノードに対して上記加入要求を送信して、スレーブ運用確定待ちの状態となる（ステップＳ５４）。
【００９９】
あるいは、上記自局よりも優先度が高いＩＴＣを、所定回数（例えば３回）連続して受信した場合にも、送信元は上記図８の処理によりマスタ運用開始するはずであるので、当該マスタノードに対して上記加入要求を送信して、スレーブ運用確定待ちの状態となる（ステップＳ５４）。
【０１００】
そして、スレーブ運用確定待ちの状態において、マスタノードから加入許可が返信されてきたら、自局をスレーブとして運用開始する。その際、例えばマスタから割り当てられたタイムスロットに対応する時間を、センドタイマにセットする（ステップＳ５５）。尚、その際、先願（WO 2013121568 A1）と同様にして、マスタから通知される伝送遅延時間に基づいて、自己のサイクルタイマをマスタのサイクルタイマに同期させるようにしてもよい。尚、センドタイマ、サイクルタイマについては、先願と同様であってよく、ここでは特に説明しない。
【０１０１】
ここで、図１０に、マスタ交代に関わる処理を示す。
各スレーブノードは、運用中（ステップＳ６１）に任意のときにマスタの脱落を検出した場合、まず、コモンメモリデータ送信の際に問合せビットをＯＮして送信する（ステップＳ６２）。そして、仮マスタとして動作する（ステップＳ６３）。
【０１０２】
ここで、ステップＳ６１の処理に関しては、例えば上記ＴＣフレームを所定回数以上連続して受信しなかった場合に、マスタ脱落と判定する。また、特に図示しないが、コモンメモリデータフレームには上記問合せビットが含まれており、通常はビットＯＦＦして送信している。また、各ノードは、他局からのコモンメモリデータを受信する毎に、その問合せビットのＯＮ／ＯＦＦをチェックしている。
【０１０３】
また、上記マスタの脱落を検出した後に上記コモンメモリデータ送信タイミングとなる前に、他のノードからＴＣフレームが送信されてきた場合、あるいは自ノードよりも優先度が高い他のノードからＩＴＣフレームが送信されてきた場合には、上記ステップＳ６２の処理を行うことなく、マスタ切り替え待ちの状態となる（ステップＳ６４）。
【０１０４】
また、上記ステップＳ６３の処理は、上記ステップＳ４３の処理と同じであってよい。すなわち、ＩＴＣフレームを所定回数（例えば３回）送信出来たら、自ノードを代替マスタに確定して、マスタノードとしての運用を開始する（ステップＳ６５）。
【０１０５】
但し、ＩＴＣフレームを所定回数送信する前に、他のノードからＴＣフレームが送信されてきた場合、あるいは自ノードよりも優先度が高い他のノードからＩＴＣフレームが送信されてきた場合には、上記マスタ切り替え待ちの状態となる（ステップＳ６４）。
【０１０６】
そして、上記マスタ切り替え待ちの状態において、ＴＣフレームを受信した場合には、自ノード以外のノードが代替マスタになったことになるので、再びスレーブノートとしての運用に戻る。
【０１０７】
例えば上述した処理によって、マスタ／スレーブが動的に決定され、またマスタの脱落の際に代替マスタが動的に決定される。
ここで、図１１に各ノードのハードウェア構成を示す。
【０１０８】
尚、本例のマスタノードは、スレーブノードに比べて、タイムスロット割付けの機能と周期Ｔの同期化の為の機能等が加わっているが、これらの機能はソフトウェアにて構成可能であるので、マスタノードとスレーブノードとは同じハードウェア構成で実現可能である。よって、図１１は、マスタノードとスレーブノードに共通のハードウェア構成図と見做してよい。
【０１０９】
図１１に示す例では、各ノードは、ＣＰＵ５１、ネットワークＩ／Ｆ（インタフェース）５２、フラッシュメモリ（Flash MEM）５３、ＳＲＡＭ５４、ＳＤＲＡＭ５５、局番ＳＷ（スイッチ）５６、ＵＳＢ Ｉ／Ｆ(インタフェース)５７等を備える。尚、ＳＲＡＭはStatic Random Access Memoryの略であり、ＳＤＲＡＭはSynchronous Dynamic Random Access Memoryの略であり、ＵＳＢはUniversal Serial Busの略である。
【０１１０】
ネットワークＩ／Ｆ５２は、ネットワークに接続して、他のノードとの通信を行う為のインタフェースである。ＵＳＢ Ｉ／Ｆ５７は、不図示のパソコンなどからのネットワーク設定データのダウンロードのためのインタフェースである。局番ＳＷ５６は、作業員等が任意の局番を手作業で設定する為の構成である。設定された局番は、ＳＲＡＭ５４等に記憶され、上記のように他ノードへ送信するフレームには送信元ノードの局番が含まれる。
【０１１１】
ノードの上述した各種処理機能を実現させる為のソフトウェア（アプリケーションプログラム）は、予めフラッシュメモリ（Flash MEM）５３に格納されている。ＣＰＵ５１が、このソフトウェアを実行することで、上述した各種処理機能（例えば図３、図６Ａ、図６Ｂ、図８、図９、図１０などに示す処理）や後述する図１２、図１３に示す処理機能等が実現される。尚、その際、例えば処理の高速化のためＳＤＲＡＭ５５などにブートされ実行される構成であってもよい。
【０１１２】
尚、例えば、上記送信データ量（必要とするタイムスロット数）などのパラメータは、パソコン(不図示)上の設定ツールなどを用いてＵＳＢ Ｉ／Ｆ５７を介して入力されて、フラッシュメモリ（Flash MEM）５３に格納される。
【０１１３】
また、尚、上記の通り、各ノードは、マスタとスレーブのどちらにも成り得ると共に、予めどちらかに決まっているわけではないので、上記ソフトウェアは、マスタ用とスレーブ用が存在する。当然、自己をマスタとした場合には、マスタ用のソフトウェアを実行することになる。
【０１１４】
また、図１２には、ノードの基本機能の機能ブロック図を示す。
図示の例では、ノードは、ネットワーク管理部６１、システム管理部６２、ローダコマンドサーバ部６３、ストレージ管理部６４、通信Ｉ／Ｆ部６５、ＳＷ監視部６６等の各種機能部を有する。
【０１１５】
ネットワーク管理部６１は、ネットワークを介した他のノードとのデータの送受信、ネットワーク状態管理等を実行制御する。ローダコマンドサーバ部６３は、不図示のパソコン等の上位機器との通信を管理する。尚、上位機器との通信は、例えば通信Ｉ／Ｆ部６５を介して行われる。ストレージ管理部６４は、ソフトウェアのブート、各種設定値の格納、読み出しなどを行う。これらの各種機能を統括的に管理し、ノード全体を管理制御するのが、システム管理部６２である。
【０１１６】
また、ＳＷ監視部６６は、上記局番ＳＷ５６が操作されると、当該操作で設定された局番を、例えばシステム管理部６２に通知する。これによって、システム管理部６２は、自ノードの局番を認識・記憶する。
【０１１７】
尚、図１２には、主にネットワーク動作に関連する機能を示しているのであり、ノードの機能は図示の機能に限らず、これら以外の機能が含まれることもある。
また、図１３には、本手法に係わるノードの機能ブロック図を示す。
【０１１８】
本手法に係わるネットワーク通信システムは、各々が共有メモリを有する複数のノードから成り、各ノードが、所定の通信サイクルでネットワークを介して自ノードの共有メモリのデータを相互に送受信することで、共有メモリの格納データを同一とするシステムである。そして、各ノードのうち１台がマスタノード７０となり、他がスレーブノード８０となる。
【０１１９】
上記各スレーブノード８０は、上記ネットワーク通信システムへの加入／再加入の際に、上記マスタノード７０に対して、要求帯域量を含む加入要求を送信する加入要求部８１を有する。
【０１２０】
上記マスタノード７０は、上記加入要求に応じて、各スレーブノード８０に対して、上記通信サイクル内における任意の送信帯域を割当てる帯域割当管理部７１、該各スレーブノードへの送信帯域割当結果が登録される割当管理テーブルを記憶する割当管理テーブル記憶部７２等を有する。そして、帯域割当管理部７１は、割当管理テーブルを参照して、上記送信帯域の割当てを行う。これは、例えば、その時点での空き帯域の中から割当てる帯域を決定する。つまり、空き帯域の一部または全部を割当てる。また、例えば、基本的には、空き領域の先頭から順次割当てる。換言すれば、間が空かないようにして詰めて割当てる。
【０１２１】
また、帯域割当管理部７１は、例えば、送信帯域の割当てを行う毎に空き帯域量を更新し、上記要求帯域量が空き帯域量を超える場合には、加入を許可しない。
また、例えば、上記割当管理テーブル記憶部７２には、登録されている各ノードの現在の状況も記憶される。そして、マスタノード７０は、例えば、上記割当管理テーブルに登録されているノードのなかで任意のノードが脱落したことを検出すると、該ノードに係わる上記現在の状態を脱落中とする状態監視部７３を更に有する。
【０１２２】
また、例えば、上記帯域割当管理部７１は、上記加入要求の送信元ノードが、上記割当管理テーブルに登録されており且つ上記現在の状態が脱落中である場合、該ノードが脱落後に復帰したものと判定する。
【０１２３】
そして、帯域割当管理部７１は、脱落後に復帰したものと判定したノードからの加入要求に対しては、割当管理テーブルに登録されている、該ノードに割当て済みの送信帯域を再度割当てる。
【０１２４】
あるいは、帯域割当管理部７１は、脱落後に復帰したものと判定したノードからの加入要求の要求帯域量が、割当管理テーブルに登録されている、該ノードに割当て済みの送信帯域の帯域量と同じである場合には、該ノードに対しては該割当て済みの送信帯域を再度割当てる。
【０１２５】
また、例えば、上記マスタノードは、上記割当管理テーブルを定期的に各スレーブノードに送信して記憶させる割当管理情報通知部７４を更に有する。そして、例えば、上記マスタノードの脱落に応じて新たなマスタノードになったスレーブノードは、上記割当管理情報通知部７４によって自ノードに記憶していた上記割当管理テーブルを用いて、上記送信帯域の割当てを行う。
【０１２６】
また、例えば、上記各スレーブノードは、更に、マスタ監視部８２、代替マスタ化部８３等を有するものであってもよい。
マスタ監視部８２は、マスタノードが脱落したか否かを判定する。これは、例えば、上記のように、ＴＣフレーム（同期化フレーム）を受信しなくなったことをもって、マスタノードが脱落したと判定する。
【０１２７】
代替マスタ化部８３は、該マスタ監視部８２がマスタノードが脱落したと判定した場合、状況に応じて自ノードを新たな上記マスタノード（代替マスタ）とする場合がある。これは、例えば、代替マスタ化確認用フレームを所定回数送信できた場合に自ノードを、上記代替マスタとする。一方、所定回数に達する前に自ノードより優先度が高いスレーブノードからの上記代替マスタ化確認用フレームを受信した場合には代替マスタ化確認用フレームの送信を中止する。つまり、この場合には自ノードは代替マスタとはならない。
【０１２８】
そして、任意のスレーブノードは、自ノードが新たな上記マスタノードとなった場合、その上記帯域割当管理部７１は、旧マスタノードの上記割当管理情報通知部７４によって自ノードに記憶していた上記割当管理テーブルを用いて、上記送信帯域の割当てを行う。
【０１２９】
また、例えば、上記帯域割当管理部７１は、上記加入要求と上記割当管理テーブルとに基づいて、既に登録済みのノードが脱落後に復帰したものと判定した場合には、脱落前と同じ送信帯域を割当てる。
【０１３０】
また、例えば、上記通信サイクルには、上記各ノードが上記共有メモリデータを相互に送受信する帯域であるコモンメモリ帯域が含まれており、該コモンメモリ帯域の長さは、予め固定的に決められている。そして、上記送信帯域は、該コモンメモリ帯域を分割する形で割当てられるものである。
【０１３１】
以上説明したように、本手法によれば、時分割帯域を用いたコモンメモリ型ネットワークにおける送信帯域の効率的活用を実現できる。例えば、ネットワークへの加入順による動的な送信帯域割付けを行うことで、送信帯域の適切な割当てを実現できる。更に、ネットワーク構成機器（ノード）の脱落、復旧に対応することが可能となる。例えば、マスタノードが保持する各ノードの帯域割当情報を、定期的に各ノードに通知して共有させることにより、マスタノードが脱落した場合でも、代替マスタが過去に加入実績のある局の情報を引き継ぐことができ、以って脱落復旧局と新規加入局とを区別できると共に脱落復旧局に割当て済みの帯域を認識できる。これによって、特に脱落復旧局に関して、帯域の割付けを適切に行うことができ、脱落復旧を正しく行えるようになる。
【符号の説明】
【０１３２】
１０  ネットワーク通信システム
１１  ノード装置
１２  ＨＵＢ（ハブ）
３０  送信時間帯域割付情報
３１  送信帯域
３２  状態
３３  局番
４０  送信時間帯域割付情報
４１  局番
４２  状態
４３  送信開始時間
４４  データ占有量
５１  ＣＰＵ
５２  ネットワークＩ／Ｆ（インタフェース）
５３  フラッシュメモリ（Flash MEM）
５４  ＳＲＡＭ
５５  ＳＤＲＡＭ
５６  局番ＳＷ（スイッチ）
５７  ＵＳＢ Ｉ／Ｆ(インタフェース)
６１  ネットワーク管理部
６２  システム管理部
６３  ローダコマンドサーバ部
６４  ストレージ管理部
６５  通信Ｉ／Ｆ部
６６  ＳＷ監視部
７０  マスタノード
７１  帯域割当管理部
７２  割当管理テーブル記憶部
７３  状態監視部
７４  割当管理情報通知部
８０  スレーブノード
８１  加入要求部
８２  マスタ監視部
８３  代替マスタ化部
【図１】
0006287621.tif 000002
【図２】
0006287621.tif 000003
【図３】
0006287621.tif 000004
【図４】
0006287621.tif 000005
【図５】
0006287621.tif 000006
【図６Ａ】
0006287621.tif 000007
【図６Ｂ】
0006287621.tif 000008
【図７】
0006287621.tif 000009
【図８】
0006287621.tif 000010
【図９】
0006287621.tif 000011
【図１０】
0006287621.tif 000012
【図１１】
0006287621.tif 000013
【図１２】
0006287621.tif 000014
【図１３】
0006287621.tif 000015
【図１４】
0006287621.tif 000016