(57)【要約】【課題】  トークン・パッシング方式による安定した通信を行うノード装置を提供する。【解決手段】  ノード１０は、受信したトークンが、再発行されたことを表す再発行情報を含んだトークンであるリカバリトークンであり、かつ、ノード１０から前回送信したトークンがリカバリトークンでない場合に、リカバリトークンを送信する。ノード１０は、リカバリトークンを受信した場合に、自ノードから送信するフレームの送信時間間隔を調整する。ノード１０は、リカバリトークンが通信ネットワーク１を巡回している間に、タイムアウトトークンを受信した場合に、タイムアウトトークンを破棄する。【選択図】  図１
2005094329.tif 000002
【特許請求の範囲】
【請求項１】
トークンを予め定められた送信順に従って巡回させながらデータの授受を行う通信ネットワークが備えるノード装置であって、前の送信順のノード装置におけるトークン監視時間が経過しても前記前の送信順のノード装置よりトークンが送信されてこない場合に、トークンを再発行して次の送信順のノード装置に送信するノード装置において、
受信したトークンが、再発行されたことを表す情報を含んだトークンであるリカバリトークンであり、かつ、自装置から前回送信したトークンがリカバリトークンでない場合に、自装置よりリカバリトークンを送信するリカバリトークン送信手段と、
前記通信ネットワークが備えるノードが、前記リカバリトークン送信手段によりリカバリトークンを送信している間に、別のトークンを受信した場合に、該別のトークンを破棄するタイムアウトトークン破棄手段と
を備えることを特徴とするノード装置。
【請求項２】
前記リカバリトークンを受信したときに、自ノード装置からの送信時間間隔を、前回の送信時間間隔より長くする送信時間間隔調整手段をさらに備えることを特徴とする請求項１に記載のノード装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、トークン ・パッシング（Token Passing) 方式により通信を行うノード装置に関する。
【背景技術】
【０００２】
従来より、通信方式のひとつとして、トークン・パッシング方式が利用されている（例えば、特許文献１参照）。トークン ・パッシング方式とは、トークンと呼ばれるアクセス制御用フレームを、通信ネットワークが備えるノード間を予め定められた送信順で巡回させることにより、データの送信権をノード間で移譲していく方式である。ノードは、他ノードに送信すべきデータがある場合に、前の送信順のノードより巡回してきたトークンを自ノードに取り込んでデータの送信権を獲得し、データフレームを送信する。ノードは、データフレームを送信し終わった後、次の送信順のノード（以下、「次ノード」という）のノード番号を含んだトークンフレームを生成しブロードキャスト送信する。
【０００３】
なお、以下の説明では、送信するデータの最小単位を意味する場合には、「トークンフレーム」、「データフレーム」と表現し、概念を意味するには、単に「トークン」、「データ」と表現する。
このようなトークン・パッシング方式による通信を実現するために、ＦＡリンクプロトコルが採用されているものがある。このプロトコルによれば、各ノードはトークンを獲得してから、次ノードにトークンを送信するまでの最大時間が決められている。この時間をトークン監視時間という。ノードは、この時間以上に自ノードにおける内部処理が伸びる場合には、ネットワーク上にトークンが多重発生するのを防ぐために、トークンを送信しない。この場合には、トークン監視時間経過後に、次ノードがトークンを再発行する。
【０００４】
しかしながら、トークン監視時間が経過した後に、つまり、次ノードがトークンを再発行した後に、ノードがトークンを送信してしまう場合がある。この場合には、ネットワーク上に２つのトークンが巡回することになる。このような、トークンの多重発生は、ノードとして、汎用オペレーティングシステム（Ｏ／Ｓ）を採用したパーソナルコンピュータを使用した場合に多く見られる現象である。本現象が頻繁に発生すると、ノードの離脱が発生し、ネットワークの通信状態が不安定となってしまう。
【特許文献１】特開２００３−８７２５８号公報（図１）
【発明の開示】
【発明が解決しようとする課題】
【０００５】
以上のようなトークン・パッシング方式の通信ネットワークにおいて、ノードがトークンを送信するケースは３つに分類できる。まず、二つの正常ケースとしては、自ノード宛のトークンを受信した後に自ノードのトークン監視時間内にトークンを送信するケースと、あるノードのトークン監視時間内にトークンが送信されないために次ノードがトークンを再発行するケースとがある。このように、再発行されたトークンを、ここでは、リカバリトークンという。異常ケースとしては、自ノードのトークン監視時間後にトークンを送信するケースがある。このように、自ノードのトークン監視時間後に送信されたトークンを、ここでは、タイムアウトトークンという。
【０００６】
現状では、ネットワーク内にタイムアウトトークンが発生している状態であっても、各ノードはタイムアウトトークンを正常トークンと区別することができない。このため、各ノードがタイムアウトトークンを正常トークンとして処理するため、トークン順番のみだれが発生してしまい、ネットワークの通信状態が悪化することがあった。
本発明は、このような実情に鑑みてなされたものであり、その目的は、トークン・パッシング方式による安定した通信を行うノード装置を提供することである。
【課題を解決するための手段】
【０００７】
上記課題を解決するために、請求項１に記載の発明は、トークンを予め定められた送信順に従って巡回させながらデータの授受を行う通信ネットワークが備えるノード装置であって、前の送信順のノード装置におけるトークン監視時間が経過しても前記前の送信順のノード装置よりトークンが送信されてこない場合に、トークンを再発行して次の送信順のノード装置に送信するノード装置において、受信したトークンが、再発行されたことを表す再発行情報を含んだトークンであるリカバリトークンであり、かつ、自装置から前回送信したトークンがリカバリトークンでない場合に、自装置よりリカバリトークンを送信するリカバリトークン送信手段と、前記通信ネットワークが備えるノードが、前記リカバリトークン送信手段によりリカバリトークンを送信している間に、別のトークンを受信した場合に、該別のトークンを破棄するタイムアウトトークン破棄手段とを備えることを特徴とするノード装置を提供する。
【０００８】
請求項１に記載の発明によれば、ノード装置は、通信ネットワークが備えるノード装置がリカバリトークンを送信している間に別のトークンを受信した場合に、該別のトークンを破棄するので、トークンの多重発生を抑制することができる。このように、ノード装置は、トークンが多重発生した場合に、リカバリトークンと別のトークンとに優先順位付けをして別のトークンを破棄するために、トークンの乱れを防止し、通信ネットワークの安定性を向上させることができる。
【０００９】
請求項２に記載の発明は、請求項１に記載のノード装置において、前記リカバリトークンを受信したときに、自ノード装置からの送信時間間隔を、前回の送信時間間隔より長くする送信時間間隔調整手段をさらに備えることを特徴とする。
請求項２に記載の発明によれば、ノード装置は、リカバリトークンを受信したときに、自ノード装置からの送信時間間隔を、前回の送信時間間隔より長くするため、各ノード装置は、リカバリトークンが通信ネットワーク上を巡回している間は、データフレームやトークンフレームの送信タイミングを遅くすることができる。これにより、不安定となったノード装置にリカバリトークンが到達するタイミングを遅くすることができる。リカバリトークンが到達するタイミングが遅くなった分、不安定となったノード装置はデータ送信等の内部処理を開始するまでの時間が遅くなり、内部処理を開始するまでにノード装置が安定化することを期待できる。これにより、通信ネットワークの安定性を向上させることができる。
【発明の効果】
【００１０】
以上説明したように、ノード装置は、通信ネットワークが備えるノード装置がリカバリトークンを送信している間に別のトークンを受信した場合に、該別のトークンを破棄するので、ノード装置は、トークンの多重発生を抑制することができる。このように、ノード装置は、トークンが多重発生した場合に、リカバリトークンと別のトークンとに優先順位付けをして別のトークンを破棄するために、トークンの乱れを防止し、通信ネットワークの安定性を向上させることができる。
【００１１】
また、ノード装置は、リカバリトークンを受信したときに、自装置からの送信時間間隔を、前回の送信時間間隔より長くするため、各ノード装置は、リカバリトークンが通信ネットワーク上を巡回している間は、データフレームやトークンフレームの送信タイミングを遅くすることができ、これにより、不安定となったノード装置にリカバリトークンが到達するタイミングを遅くすることができる。リカバリトークンが到達するタイミングが遅くなった分、不安定となったノード装置はデータ送信等の内部処理を開始するまでの時間が遅くなり、内部処理を開始するまでにノード装置が安定化することを期待できる。これにより、通信ネットワークの安定性を向上させることができる。
【発明を実施するための最良の形態】
【００１２】
次に、図面を参照しながら、本発明の実施の形態について説明する。なお、以下の説明において参照する各図においては、他の図と同等部分に同一符号が付されている。
［１．構成］
まず、構成について説明する。
［１．１．全体構成］
図１は、本発明の一実施形態に係る通信ネットワーク１全体の構成を示すブロック図である。同図に示すように、この通信ネットワーク１は、汎用コンピュータ、パーソナルコンピュータ、ＦＡ（Factory Automation）用コントローラ、及び、入出力機器等の装置を表すノード１０ａ，１０ｂ，１０ｃ，１０ｄ，１０ｅと、これらの各ノードを接続する通信ケーブルとを備えている。なお、同図には、５つのノード１０ａ，１０ｂ，１０ｃ，１０ｄ，１０ｅを図示しているが、以下の説明では、特に各ノードを区別する必要がある場合を除いて、「ノード１０」として説明する。
【００１３】
この通信ネットワーク１は、トークン・バッシング方式でデータ転送を行う。ここでのトークン・パッシング方式には、周知のＦＡリンクプロトコルが採用されている。ＦＡリンクプロトコルは、以下の特徴を有する。
（１）マスタレス・トークン方式を採用し、一部のノード１０が故障してもネットワーク１が停止することがないように送出管理を行う。
（２）各ノード１０は、フレームをブロードキャスト（一斉同報）することにより、通信ネットワーク１全体で同じデータを共有する機能を有する。
（３）一定時間が経過してもトークンを保持したノード１０がトークンを送信しない場合に、次ノード１０がトークンを再発行する。
（４）トークンがノード１０間を巡回する順番は，ノード番号によって決定される。各ノード１０は各ノード１０に割り振られているノード番号の昇順で、トークンを巡回させる。また、最大ノード番号のノード１０は，最小ノード番号のノード１０にトークンを渡す。
【００１４】
［１．２．トークンフレーム］
次に、トークンフレームのデータ構成について説明する。トークンフレームは、図２に示すように、従来のデータ項目である、フレームの種類（トークンフレームかデータフレームか）を表す「フレーム種類」と、フレームの発信元ノード１０のノード番号を表す「発信元ノード番号」と、フレームの送信先ノード１０のノード番号を表す「送信先ノード番号」と、発信元ノード１０の「トークン監視時間」とに加えて、本発明に特徴的なデータ項目である「トークン種別」とを含んで構成される。
「トークン種別」“１”は、当該トークン種別を含んだトークンがリカバリトークンであることを表している。リカバリトークンとは、上述のように、あるノード１０のトークン監視時間内に当該ノード１０がトークンを発行しなかったために、次ノード１０によって再発行されたトークンである。
また、「トークン種別」“０”は、当該トークン種別を含んだトークンが正常トークンであることを表している。正常トークンとは、自ノード１０のトークン監視時間内に正常に発行されたトークンである。
【００１５】
［１．３．ノード］
次に、ノード１０の構成について説明する。ノード１０は、通常のコンピュータのハードウェア構成を備えている。すなわち、ノード１０は、ノード１０を制御するＣＰＵ（Central Processing Unit）と、ＲＯＭ（Read Only Memory）、ＲＡＭ（Random Access Memory）、及び、ハードディスク装置を含む記憶部と、通信ケーブルを介して他のノード１０とのフレームの授受を制御する通信制御部と、時刻を計時する内部時計とを備えている。
ノード１０の記憶部には、図３に示すように、通信ネットワーク１に参加しているノード１０を管理するノード管理テーブルが設けられている。同図に示すように、ノード管理テーブルには、「ノード番号」と、「トークン監視時間」と、フレームを送信する時間間隔を表す「フレーム間隔」とを表す情報が対応付けられて記憶されている。これらのデータは、他のノード１０から通信ネットワーク１に参加要求を行うための参加要求フレームを受信したときや、トークンフレームを受信したときに、当該フレームに含まれる情報内容で更新される。
【００１６】
また、記憶部には、図３に示すように、全ノード１０で共有するデータを記憶する共通エリアが設けられている。共通エリアには、トークン保持ノード情報や、平均送信フレーム数等が記憶される。トークン保持ノード情報とは、トークンフレームに含まれる情報が記憶されたものである。トークン保持ノード情報には、前述した「トークン種別」、トークンを保持しているノード１０の「ノード番号」、トークンを保持しているノード１０の「トークン監視時間」が含まれている。
また、記憶部には、図３に示すように、ログ情報を記憶するログエリアが設けられている。当該エリアには、例えば、自ノード１０が前回送信したトークンのトークン種別を表す「前回送信トークン種別」が記憶される。
また、記憶部には、ノード１０を制御するための基本プログラムと、上述したＦＡリンクプロトコルに従った通信を行うためのプログラムとが記憶されている。
【００１７】
ＣＰＵが、これらのプログラムを実行することにより、例えば、ＦＡリンクプロトコルに従った以下の機能が、ノード１０に実現される。
（１）トークンを保持しているノード１０がトークンを次ノード１０に渡すときに、「送信先ノード番号」を次ノード１０のノード番号としたトークンをブロードキャストする機能。各ノード１０は、受信したトークンに含まれる情報内容を共通エリアに記憶することにより、情報を共有する。
（２）トークン監視時間を監視するためのトークン監視タイマの機能。各ノード１０は、トークン監視タイマで監視されているトークン監視時間が経過（タイムアウト）したとき、または、トークンを他ノード１０から受信したときに、トークン監視タイマに、次の送信順のノード１０のトークン監視時間をセットする。
【００１８】
また、ノード１０は、前の送信順のトークン監視時間がタイムアウトしたときに、トークンの再発行を行う。
また、ノード１０の記憶部には、本発明に特徴的な、トークンにトークン種別を付加してリカバリトークンや正常トークンを送信するためのプログラムと、タイムアウトトークンを破棄するためのプログラムと、フレームの送信タイミングを調整するためのプログラムとが記憶されている。
これらのプログラムをノード１０のＣＰＵが実行することにより、図４に示すように、本発明の特徴的な機能手段である、リカバリトークン送信手段１０１、タイムアウトトークン破棄手段１０２、及び、送信時間間隔調整手段１０３が、ノード１０に実現される。
【００１９】
以下、これらの機能手段について説明する。
リカバリトークン送信手段１０１は、前の送信順のノード１０よりトークンを受信したときに、当該トークンの「トークン種別」が“１（リカバリトークン）”である場合に、ログエリアに記憶されている「前回送信トークン種別」を読み出す。「前回送信トークン種別」が“０（正常トークン）”である場合には、リカバリトークンは通信ネットワーク１上をまだ１周巡回していないことを表している。このため、リカバリトークン送信手段１０１は、「前回送信トークン種別」が“０”である場合には、リカバリトークンを１周巡回させるために、「トークン種別」が“１”のリカバリトークンを生成して次ノード１０宛に送信する。
【００２０】
タイムアウトトークン破棄手段１０２は、ノード１０が、リカバリトークン送信手段１０１によりリカバリトークンを送信している（リカバリトークンが通信ネットワーク１上を巡回している）間に、別のトークンを受信した場合に、トークンの多重発生を防ぐために、当該別のトークンを破棄する。ここで、「別のトークン」には、不安定なノード１０が当該ノード１０のトークン監視時間を超えてから送信したタイムアウトトークンが含まれる。なお、ここでは、タイムアウトトークンには、正常トークンと同様の「トークン種別」“０”が含まれており、トークン監視時間を超えてから送信されたことを表す情報は特に含まれていない。
【００２１】
送信時間間隔調整手段１０３は、ノード１０が前の送信順のノード１０からリカバリトークンを受信したときに、自ノード１０から送信するフレームの送信時間間隔を、前回の送信時間間隔より長くする。このように、フレーム送信時間間隔を長くするのは、処理負荷がかかったこと等により不安定となったノード１０に、リカバリトークンが到達するまでの時間を遅らせることにより、当該ノード１０を安定化させるためである。フレームの送信時間間隔の算出式としては、例えば、以下のものが考えられる。
フレーム送信時間間隔＝  前回のフレーム送信時間間隔＋｛不安定となったノード１０のトークン監視時間／（各ノード１０が送信する平均フレーム数×通信ネットワーク１の全ノード数）｝    ・・・（式１）
【００２２】
（式１）によれば、算出されるフレーム送信時間間隔は、不安定となったノード１０のトークン監視時間を、トークンが通信ネットワーク１を１周巡回する間に各ノード１０から送信されるフレーム総数で割った値だけ、前回（通常）のフレーム送信時間間隔より長くなる。すなわち、リカバリトークンが通信ネットワーク１を巡回して、不安定となったノード１０に到達するまでにかかる時間は、通常より、不安定となったノード１０のトークン監視時間だけ遅くなる。このため、リカバリトークンが１周巡回する間、通信ネットワーク１の負荷を一時的に軽減することができる。
【００２３】
［２．動作］
次に、図１を参照しながら、上記構成における動作について説明する。
図1に示すように、通信ネットワーク１は５つのノード１０ａ、ノード１０ｂ、ノード１０ｃ、ノード１０ｄ、及び、ノード１０ｅを備えている。ノード１０ａ、ノード１０ｂ、ノード１０ｃ、ノード１０ｄ、及び、ノード１０ｅには、各々ノード番号“１”、“２”、“３”、“４”及び“５”が割り当てられている。
また、記憶部のノード管理テーブルには、図３に示すように、各ノード１０の「トークン監視時間」や通常の「フレーム間隔」が記憶されているものとする。また、記憶部の共通エリアには、各ノード１０が送信する平均フレーム数が“３フレーム”であることを表すデータが記憶されているものとする。また、全ノード１０のログエリアの「前回送信トークン種別」には、“０（正常トークン）”が記憶されているものとする。
【００２４】
［２．１．リカバリトークン送信処理］
ここでは、ノード１０ｃがトークンを獲得した後、ノード１０ｃのトークン監視時間が経過してもトークンを送信しなかった場合の動作について説明する。なお、ノード１０ｄは、記憶部にノード１０ｅ宛の送信データを保持しているものとする。
まず、通信ネットワーク１が備えるノード１０全ての電源を投入すると、ノード番号が一番小さいノード１０ａからノード１０ｂ、ノード１０ｃへとトークンが送信されるが、ここでは、トークンを保持したノード１０ｂが、ノード１０ｂのトークン監視時間250ms（ミリセカンド）内に、次ノード１０ｃにトークンを渡す動作から説明する。
ノード１０ｂは、「フレーム種類」“トークン”、「トークン種別」“０（正常トークン）”、「発信元ノード番号」“２”、「送信先ノード番号」“３”、「トークン監視時間」“250ms（ノード１０ｂのトークン監視時間）”が含まれているトークンを、ブロードキャストにより送信する。
【００２５】
ノード１０ａ、１０ｃ、１０ｄ、１０ｅは、ノード１０ｂよりブロードキャストされたトークンフレームを受信する。ノード１０ａ、１０ｄ、１０ｅは、当該受信したトークンフレームに含まれる情報より、ノード１０ｃが正常トークンを獲得したことを認識する。そして、ノード１０ａ、１０ｄ、１０ｅは、トークン保持ノード情報の「トークン種別」を“０（正常トークン）”で更新する。ノード１０ｃ以外の各ノード１０は、トークン保持ノード情報に基づいてトークン監視タイマをセットし、ノード番号“３”で識別されるノード１０ｃから、トークン監視時間255ms以内にトークンが送信されるのを監視する。
【００２６】
［ノード１０ｃの動作］
一方、ノード１０ｃは、ノード１０ｂよりトークンフレームを受信すると、当該トークンフレームに含まれる「送信先ノード番号」“３”が自ノード１０ｃのノード番号“３”と一致しているため、当該トークンフレームを自ノード１０ｃに取り込む。
そして、ノード１０ｃは、データフレームを生成する処理や、次ノード１０ｄ宛のトークンを生成する等の内部処理を行うが、上述の通り、ノード１０ｃは、トークン監視時間“255ms”が経過してもトークンを発行しない（プロセスＰ１）。
このため、各ノード１０のトークン監視タイマはタイムアップする。各ノード１０は、トークン監視タイマの監視時間を、次ノード１０ｄのトークン監視時間255msに設定する。
【００２７】
［ノード１０ｄの動作］
ノード１０ｄは、前の送信順のノード１０ｃから、ノード１０ｃのトークン監視時間255msが経過してもトークンが送信されてこないため、送信時間間隔調整手段１０３ｄによりフレームの送信時間間隔を調整した上で、データフレーム送信処理と、リカバリトークン送信手段１０１によりリカバリトークン送信処理とを行う（プロセスＰ２）。
具体的には、まず、ノード１０ｄの送信時間間隔調整手段１０３ｄは、不安定となっているノード１０ｃのトークン監視時間“255ms”と、共通エリアに記憶されている平均送信フレーム数“３”と、ノード管理テーブルに記憶されているノード１０ｄの「フレーム間隔」“０”とを、上述した（式１）の算出式に代入して、フレーム送信時間間隔を算出する。
【００２８】
フレーム送信時間間隔＝  ０μs（マイクロセカンド）＋255ms／（3×5）＝17ms
次に、ノード１０ｄは、ノード１０ｅ宛に送信するためのデータフレームを生成する。具体的には、ノード１０ｄは、送信対象のデータに、「フレーム種類」“データ”と、「発信元ノード番号」“４”と、「送信先ノード番号」“５”とを付加して、データフレームを生成する。そして、ノード１０ｄは、送信時間間隔調整手段１０３ｄによりフレーム送信時間間隔を17msに調整した上で、生成したデータフレームを順次送信する。
【００２９】
ノード１０ｄは、データフレームを送信し終わると、リカバリトークン送信手段１０１ｄによりリカバリトークン送信処理を行う。具体的には、ノード１０ｄは、「フレーム種類」“トークン”、「トークン種別」“１（リカバリトークン）”、「発信元ノード番号」“４”、「送信先ノード番号」“５”を含んだトークンフレームを生成する。そして、リカバリトークン送信手段１０１ｄは、送信時間間隔調整手段１０３ｄによりフレーム送信時間間隔を17msに調整した上で、トークンフレームをブロードキャストにより順次送信する。また、ノード１０ｄは、送信したトークンフレームの「トークン種別」“１（リカバリトークン）”を、記憶部のログエリアに記憶する。
【００３０】
［ノード１０ｅ〜ノード１０ｃの動作］
ノード１０ａ、１０ｂ、１０ｃ、１０ｄは、ノード１０ｄよりブロードキャストされたトークンフレームを受信する。
ノード１０ａ、１０ｂ、１０ｃは、当該トークンフレームを受信すると、当該フレームに含まれる情報により、ノード１０ｄがリカバリトークンをノード１０ｅ宛に送信したこと、すなわち、リカバリトークンが通信ネットワーク１上を巡回していることを認識する。そして、ノード１０ａ、１０ｂ、１０ｃは、トークン保持ノード情報の「トークン種別」を“１（リカバリトークン）”で更新する。
【００３１】
一方、ノード１０ｅは、受信したトークンフレームに含まれる情報内容より、当該フレームが、前の送信順のノード１０ｄより自ノード１０ｅ宛に送信されたリカバリトークンのフレームであることを認識する。そして、ノード１０ｅは、当該トークンフレームを自ノード１０ｅに取り込んで送信権を獲得する。
また、ノード１０ｅは、ログエリアの「前回送信トークン種別」には“０（正常トークン）”が記憶されていることにより、前回（直近）には、自ノード１０ｅから正常トークンが発行されたことを認識する。このため、ノード１０ｅは、リカバリトークンを通信ネットワーク１上を一周巡回させるために、上述したノード１０ｄと同じ手順で、送信時間間隔調整手段１０３ｅによりフレーム送信時間間隔を調整しながら、データフレーム送信処理と、リカバリトークン送信処理とを実行する。ノード１０ａ、ノード１０ｂ、ノード１０ｃも、同様の手順で、データフレーム送信処理とリカバリトークン送信処理とを行う。
【００３２】
このように、リカバリトークンが、順次、ノード１０ａ、ノード１０ｂ、ノード１０ｃを巡回する。ノード１０ｄがリカバリトークンを受信したときには、ノード１０ｄのログエリアの「前回送信トークン種別」には“１（リカバリトークン）”が記憶されていることから、ノード１０ｄは、前回送信したトークンがリカバリトークンであることを認識する。ノード１０ｄが前回リカバリトークンを送信しているということは、リカバリトークンは既に通信ネットワーク１を一周巡回していることになるため、ノード１０ｄは、「送信トークン種別」“０”を含んだ正常トークンを生成して、ノード１０ｅ宛に送信する。
【００３３】
［２．２．タイムアウトトークン破棄処理］
次に、リカバリトークンが通信ネットワーク１を一周巡回している間に、ノード１０ｃが保持していたトークン（タイムアウトトークン）を送信したときの、ノード１０ｄのタイムアウトトークン破棄処理について説明する。
まず、ノード１０ｃは、自ノード１０ｃのトークン監視時間255msが経過した後に、ノード１０ｄ宛にタイムアウトトークンを送信する（プロセスＰ３）。
ノード１０ｄは、ノード１０ｃよりタイムアウトトークンを受信すると、記憶部の共通エリアに記憶されているトークン保持ノード情報を読み出す。当該情報の「トークン種別」が“１（リカバリトークン）”であるため、ノード１０ｄは、通信ネットワーク１上をリカバリトークンが巡回中であると判断する。これにより、ノード１０ｄは、ノード１０ｃが送信したタイムアウトトークンを破棄する（プロセスＰ４）。
このように、通信ネットワーク１上をリカバリトークンが巡回中である場合に、ノード１０ｄが、受信したトークンを破棄することで、動作不安定となったノード１０ｃから誤タイミングで送信されたトークンを無効とすることができる。これにより、トークンの多重発生を抑制できる。
【００３４】
［３．変形例］
以上、本発明の実施形態について説明したが、本発明は係る実施形態に限定されるものではなく、その技術思想の範囲内で様々な変形が可能である。変形例としては、例えば、以下のようなものが考えられる。
（１）上述した実施形態におけるトークン・パッシング方式は、ＦＡリンクプロトコルを採用しているとして説明したが、これに限定されず、ＦＡリンクプロトコルの仕様を多少カスタマイズすることもできるし、他のプロトコルを採用してもよい。
【００３５】
例えば、上述した実施形態においては、あるノード１０が次ノード１０にトークンを渡すときに、トークンをブロードキャストすることにより、他のノード１０がトークンの送信先ノード番号やトークン種別（正常トークン、リカバリトークン）を認識することができるようにしたが、これに限定されずに、例えば、ノード１０がトークンを獲得したときに、ブロードキャストにより、全ノード１０に、自ノード１０のノード番号やトークン種別を通知するためのフレームを送信するようにしてもよい。
また、上述した実施形態においては、各ノード１０が、トークンを保持しているノード１０の監視を行うとしたが、トークンを保持しているノード１０の次ノード１０のみが監視を行うようにしてもよい。また、マスターノードを設けて、当該マスターノードのみがトークンを獲得したノード１０を監視するようにしてもよい。
【００３６】
（２）上述した（式１）においては、フレーム送信時間間隔を通常より長くするための、送信フレーム時間間隔の算出式の一例を示したが、算出方法はこれに限定されない。
例えば、フレーム送信時間間隔を算出するノード１０が、ブロードキャストにより各ノード１０が送信するために保持しているデータ量を参照して、各ノード１０の送信予定フレーム数を算出し、以下の式によりフレーム送信時間間隔を求めるようにしてもよい。
フレーム送信時間間隔＝前回のフレーム送信時間間隔＋（不安定なノード１０のトークン監視時間／各ノード１０が送信するフレーム数の合計）
また、前回のフレーム送信時間間隔に定数を加えることによって、フレーム送信時間間隔を算出してもよい。
【図面の簡単な説明】
【００３７】
【図１】本発明の実施の形態に係る通信ネットワークの構成を示すブロック図である。
【図２】同実施の形態に係るトークンフレームのデータ構成を説明するための図である。
【図３】同実施の形態に係るノードの記憶部に記憶されるデータを説明するための図である。
【図４】同実施の形態に係るノードの機能構成を説明するための図である。
【符号の説明】
【００３８】
１        通信ネットワーク
１０、１０ａ，１０ｂ，１０ｃ，１０ｄ，１０ｅ    ノード
１０１    リカバリトークン送信手段
１０２    タイムアウトトークン破棄手段
１０３    送信時間間隔調整手段
【図１】
2005094329.tif 000003
【図２】
2005094329.tif 000004
【図３】
2005094329.tif 000005
【図４】
2005094329.tif 000006