以下、図面を参照して、本発明の実施の形態について説明する。
図1、図2は、本手法を適用するネットワークシステムの一例を示す図である。
本手法は、上述した論理トポロジがリング型のネットワークシステムを前提とし、論理トポロジは常にリング型であって変化しないものとする。本説明では以後、この前提については逐一述べないものとし、以下の本説明において「バス型」と「リング型」は、物理トポロジを意味するものとする。
図1、図2は、「リング型のネットワーク」の一例を示すものである。この「リング型のネットワーク」は、本例では例えばデータ伝送方向が互いに逆向きの2つのリング型のデータ伝送経路が形成されるネットワーク等である。また、「リング型のネットワーク」が、後述する様に断線発生により「バス型ネットワーク」に変わる場合がある。尚、上記の通り、ここでの「バス型」「リング型」は全て物理トポロジを意味し、これは以後の説明でも同じである(以後は逐一述べない)。
本例での「リング型のネットワーク」は、断線が発生しても、「バス型のネットワーク」として継続運用が可能なものである。すなわち、本例で前提とする「リング型のネットワーク」は、例えば、2本の通信ラインを有し、2つのリングを形成している。そして、断線発生したら、断線箇所に隣接する2つのノード装置それぞれで2本の通信ラインを接続する(ループバック状態にする)ことで、1つのリングを形成させ、以ってバス型のネットワーク構成とする。
図1、図2の例のネットワークシステム1は、5台のノード装置10(10A、10B,10C,10D,10E)を有している。各ノード装置10は、それぞれ、通信線2(2a,2b,2c,2d,2e)によって、他の2台のノード装置10と接続されている。例えば、ノード装置10Aは、図示の通信線2aによってノード装置10Bと接続されると共に、通信線2eによってノード装置10Eと接続される。
ここでは、任意のノード装置10にとって通信線2によって直接接続される他のノード装置10を、「隣接局」や「隣接ノード」などと呼ぶものとする。上記の例では、ノード装置10Aにとっての隣接局は、ノード装置10Bとノード装置10Eということになる。
また、各ノード装置10は、ネットワーク接続部NW1、NW2を有する。ネットワーク接続部NW1、NW2は、それぞれ、不図示の入力端子と出力端子を有する。そして、上記各通信線2(任意の2つのノード装置10間を接続する通信線)は、それぞれ、その一端が一方のノード装置10のネットワーク接続部NW1に接続され、その他端は他方のノード装置10のネットワーク接続部NW2に接続される。上記一例であれば、図示のように、通信線2aは、その一端がノード装置10Aのネットワーク接続部NW2に接続され、その他端はノード装置10Bのネットワーク接続部NW1に接続されている。
また、図示していないが、通信線2は、2本の通信ラインから成り、各通信ラインがそれぞれ上記ネットワーク接続部NW1、NW2の不図示の入力端子と出力端子とに接続されている。上記一例であれば、通信線2aは、その一端がノード装置10Aのネットワーク接続部NW2の不図示の入力端子と出力端子とに接続され、その他端はノード装置10Bのネットワーク接続部NW1の不図示の入力端子と出力端子とに接続されている。
また、2本の通信ラインは、それぞれ、その一端が入力端子に接続され、他端が出力端子に接続される。上記一例であれば、通信線2aの2本の通信ラインの一方は、その一端がノード装置10Aのネットワーク接続部NW2の不図示の入力端子に接続され、その他端はノード装置10Bのネットワーク接続部NW1の不図示の出力端子に接続されている。通信線2aの2本の通信ラインの他方は、その一端がノード装置10Aのネットワーク接続部NW2の不図示の出力端子に接続され、その他端はノード装置10Bのネットワーク接続部NW1の不図示の入力端子に接続されている。
上記通信線2の接続により、図1のネットワークシステムでは、図2にて実線で示す第1のデータ伝送経路D1と、点線で示す第2のデータ伝送経路D2とが形成される。つまり、2つのリングが形成される。そして、例えば、通常時(断線なし;リング型のとき)で通常の動作の場合、2つのリングのうち一方のリングのみを用いて(本例ではデータ伝送経路D1のみを用いて)、通信処理が行われる。ここでは、第1のデータ伝送経路D1では時計廻り方向、第2のデータ伝送経路D2では反時計廻り方向に伝送されるものとして説明するが、この例に限らない。但し、基本的に、第1のデータ伝送経路D1と第2のデータ伝送経路D2とで相互に逆方向に伝送される。
図2に示すように、ここでは一例としては、各ノード装置10は、それぞれ処理部を有する。ここではマスタとスレーブとで図示のように処理部の符号を変えている。これは、マスタとスレーブとで処理部の処理内容が異なるからである。尚、ここでは、ノード装置10Aがマスタ、それ以外(10B,10C,10D,10E)がスレーブであるものとする。
これより、図示のように、マスタであるノード装置10Aのみが処理部11aと記し、スレーブであるノード装置10B,10C,10D,10Eは全て処理部11と記す。処理部11の処理内容は、基本的に、全てのスレーブで同じである。処理部11aの処理内容は処理部11とは異なる。一例としては後述する図9や図12の左側が処理部11a、図10や図13の左側が処理部11の処理を示す。
図2において、第1のデータ伝送経路D1によるデータ送受信は処理部11や11aを介するが、第2のデータ伝送経路D2によるデータ送受信は処理部11や11bを介さない(そのまま転送される)。
図3(a)(b)に、上記通常時の通常の動作の一例を示す。
図3(a)に示すように、上記一例の場合、パケットは第1のデータ伝送経路D1を介して時計廻りでネットワークを一巡し、以って全てのノード装置10がこのパケットを受信する。つまり、例えばマスタであるノード装置10Aから送信されたパケットは、ノード装置10A→ノード装置10B→ノード装置10C→ノード装置10D→ノード装置10E→ノード装置10Aの順で第1のデータ伝送経路D1を介してネットワークを一巡して送信元(ノード装置10A)に戻ってくる。つまり、各ノード装置10が順次リレー形式でパケットを中継していくことで、パケットがネットワークを一巡し、以って全てのノード装置10がパケットを受信できる。
また、図3(b)に示すように、各ノード装置10において、パケット中継(上流側から受信してから下流側に転送するまで)には、一定の処理時間が掛かる。これは主に処理部11または処理部11aにおける所定の処理を実行するのに(例えば、パケットからデータを取得したり、パケットに自局のデータ(例えば最新のセンサ測定値など)を格納する処理など)掛かる時間である。
尚、図3(a)では第2のデータ伝送経路D2は省略して示している。
尚、第2のデータ伝送経路D2を介する場合には、処理部11または処理部11aを介さないので(そのまま中継・転送されるので)上記一定の処理時間が掛かることはない。第2のデータ伝送経路D2は、断線によってバス型に変わった場合に使用されることになる。
上記図1、図2、図3に示した構成・動作のネットワークシステムにおいて、任意の箇所で断線が発生した場合、上記の通り、物理トポロジはバス型に変わるが、運用継続できる。
図4は、図1等のネットワークシステムにおける断線発生例を示す図である。
図4には、断線発生後であってループバック状態への移行が完了した後の状態を示している。つまり、バス型に変わった後の状態を示している。また、この状態におけるパケットの転送状況を矢印で示している。
図4に示す一例では、ノード装置10Eとノード装置10Dとの間で(通信線2dで)断線が発生したものとする。この例では、断線箇所に隣接するノード装置10は、ノード装置10Eとノード装置10Dということになる。
上記の通り、以前より、各局(各ノード装置)は、物理層のリンク状態に基づいて自局が直接接続する通信線の断線有無を検出する機能と、断線検出した側をループバック状態にすることで通信経路を再確立する機能を有することで、バス型のネットワークシステムとして運用を継続できるようにしている。これより、図4の例において、以前に考えられた手法(前手法と呼ぶものとする)の場合では、断線が発生すると、ノード装置10Eとノード装置10Dとが、それぞれ、独自に断線を検出してループバック状態となる。尚、本手法においても、最終的にはノード装置10Eとノード装置10Dとがループバック状態になる点では上記前手法と同様であるが、各装置10E,10D“独自”ではなく、マスタ局の主導に基づいてループバック状態になる点で前手法とは異なる。
自己がループバック状態となった局は、上記データ伝送経路D1,D2の何れか一方のデータ伝送経路からパケットを受信すると、このパケットを他方のデータ伝送経路へ送信することで送信元隣接局へループバックする。ノード装置10Dであれば、ノード装置10Cから第1のデータ伝送経路D1を介して伝送されたパケットを、当該ノード装置10Cへ第2のデータ伝送経路D2を介して送信する(ループバックする)。
これより、図4の例では、ノード装置10Eとノード装置10Dとがループバック状態となることで、ノード装置10Aからの送信パケットは、下記の手順で伝送される。
パケットは、まず、第1のデータ伝送経路D1によって、ノード装置10A→ノード装置10B→ノード装置10C→ノード装置10Dと伝送される。そして、ノード装置10Dでループバックされて、今度は第2のデータ伝送経路D2によって、ノード装置10D→ノード装置10C→ノード装置10B→ノード装置10A→ノード装置10Eとパケットが伝送される。そして、ノード装置10Eでループバックされて、今度は第1のデータ伝送経路D1によって、ノード装置10E→ノード装置10Aと伝送されることで、ノード装置10Aの処理部11に渡され、この処理部11が自己が送信したパケットが戻ってきたと判定することを以ってパケット伝送が完了する。
この様に断線によって、物理トポロジが「リング型ネットワーク」から「バス型ネットワーク」に変わること自体は、上記前手法も本手法も同様である。前手法も本手法も最終的には図4の様になる点では同じであるが、そのプロセスが異なる(前手法では該当ノード装置10が独自にループバック状態に移行したが、本手法ではマスタ主導で該当ノード装置10がループバック状態に移行する)。これについて、図5、図6、図7を参照して説明する。
まず、ここでは、具体例として、上記図4の代わりに図5を用いるものとするが、図示のように図4と同一構成には同一符合(10,11、11a等)を付してある。
図5では、1台のマスタ局(M局)と4台のスレーブ局から成るリング型のネットワークシステムの例を示す。これら各局は、上記ノード装置10と同じであってよい。4台のスレーブ局は、図示のスレーブ1(S1局)、スレーブ2(S2局)、スレーブ3(S3局)、スレーブ4(S4局)である。
また、図5でもパケットの転送状況を矢印で示すが、図5では図4とは異なり断線発生前の状況を示す。
図5では、断線発生前には、マスタ局からの送信パケットは、第1のデータ伝送経路D1によって、マスタ局→スレーブ1→スレーブ2→スレーブ3→スレーブ4の順に伝送され、マスタ局に戻ることで、パケット伝送が完了する。断線発生前には「リング型のネットワーク」であるので、本例では第2のデータ伝送経路D2は使用されていない。
一方、図5において、例えば図示のようにスレーブ2−スレーブ3間で断線発生した場合には、スレーブ2、スレーブ3でそれぞれループバックが行われることで、図5には図示していないが伝送経路は下記のようになる。
マスタ局からの送信パケットは、第1のデータ伝送経路D1によって、マスタ局→スレーブ1→スレーブ2の順に伝送され、スレーブ2でループバックされ、今度は第2のデータ伝送経路D2によって、スレーブ2→スレーブ1→マスタ局→スレーブ4→スレーブ3の順に伝送される。そして、スレーブ3でループバックされて、第1のデータ伝送経路D1によってスレーブ3→スレーブ4→マスタ局の順に伝送され、マスタ局に戻ることで、パケット伝送が完了する。
最終的に、この様な状態になること自体は、前手法でも本手法でも同じである。但し、その為のプロセスが、図6(b)と図7(b)に示すように、前手法と本手法とでは異なる。
尚、図5には、各ノード装置10には、更に通信部16、通信部18を示す。通信部16、18は、それぞれ例えば上記ネットワーク接続部NW1,NW2に対応する通信機能部であり、入力端子と出力端子を有し、接続先の隣接局との通信を行うものである。
ここで、図6(a)に、前手法における図5のネットワークシステムの電源投入時からの概略動作を示す。そして、この概略動作中の任意のタイミングで断線が発生したときの前手法の詳細動作を図6(b)に示す。
図6(a)に示すように、各ノード装置10では、電源投入されると、まず、所定のイニシャル処理が実行され、続いて同期シーケンスが実施される。この同期シーケンスは、既存技術であってよく、例えば特許文献1等のタイマ同期技術を用いればよい。同期シーケンスの結果、各スレーブ局は、マスタ局−自局間の伝送遅延時間(マスタ局から自局までのパケット伝送に掛かる時間)を、保持した状態になる。これより、各局は、自局のタイマをマスタ局のタイマに同期させることができる。その後は、運用開始となり、所定の周期的な処理が繰り返し実行され、定期的にマスタ時刻配布が行われることで、正確なタイマ同期を維持できる。
そして、この様な運用中に断線が発生した場合の前手法の詳細動作を、図6(b)に示す。
図6(b)に示すように、運用中の動作は、所定のタクト周期ごとに、TFフレームの送受信→MCフレームの送受信→MSGフレームの送受信が行われる。また、定期的に、MSGフレーム送受信帯域を利用して、マスタ時刻配布が行われる。
尚、TFフレームは、マスタ局が各スレーブ局のデータを入力する為のフレームである。各スレーブ局は、TFフレームを受信すると、このTFフレームに自局のデータ(センサ計測値などの現在データなど)を付加してから隣接局へ転送する。TFフレームがネットワークを一巡してマスタ局に戻ることで、マスタ局は全てのスレーブ局のデータを取得することができ、これに基づいて所定の演算を行って出力データを得ることができる。この出力データは、MCフレームによって各スレーブ局に伝達される。
各スレーブ局は、MCフレームを受信すると、このMCフレームに含まれるマスタ局の上記出力データを取得してから隣接局へ転送する。これより、MCフレームがネットワークを一巡することで、全てのスレーブ局が上記マスタ局の上記出力データを取得することができる。
また、MSGフレームは、任意のメッセージを伝達する為のフレームであるので、メッセージが発生したときのみ送信してもよい。また、TFフレームやMCフレームとは異なり、現在の状態データ等をリアルタイムで送信する必要があるわけではないので、MSGフレーム送受信帯域を利用して別のデータを送信してもよい(よって、例えばマスタ時刻配布が行われる)。
各スレーブは、配布されたマスタ時刻と、配布受信時の自局の時刻(自局のタイマの値等)と、自局とマスタ局との上記伝送遅延時間とに基づいて、必要に応じて自局のタイマを補正することで、自局のタイマをマスタ局のタイマに同期させる。例えば、S3局を例にして、仮に、配布されたマスタ時刻が0分00秒00で、伝送遅延時間が00秒07で、配布受信時の自局の時刻が0分00秒07であったならば、「配布されたマスタ時刻+伝送遅延時間(=0分00秒00+00秒07=0分00秒07)」と一致するので、自局のタイマを補正する必要はないことになる。
そして、任意の時に図示のようにS2局−S3局間で断線が発生すると、断線箇所の隣接局であるこれらS2局、S3局は、それぞれ直ちに(たとえば数μs〜数ms程度で)断線検出してループバック状態となる。図示の例では、断線開始からループバック開始までの間に伝送されていたTFフレームは、途中で(S2局からS3局へ転送される際に)消失することになるが、それ以降は(その後のMCフレームなどは)ループバックにより図示のように正常に伝送されている。但し、伝送経路は変わっている。
すなわち、図6(b)においてループバック状態の伝送経路は、図示の実線矢印と点線矢印とで示すように、M局→S1局→S2局→S2局でループバック→S1局→M局→S4局→S3局→S3局でループバック→S4局→M局となる。尚、図示の実線矢印はデータ伝送経路D1によるデータ伝送、点線矢印はデータ伝送経路D2によるデータ伝送を示す。
この様に、パケットは全局を一巡し、以って断線後も運用継続できているのであるが、上記の通り伝送経路が変わっているため、ループバック状態で図示のようにマスタ時刻配布が行われると、上述した問題が生じることになる。
例えばS3局において、上記具体例における“配布受信時の自局の時刻”が変わることになる。上記のように、S3局においては、断線後は断線前よりもマスタ局からの経路が長くなるので、“配布受信時の自局の時刻”は断線後の方が断線前よりも遅くなる。仮に、上記具体例において、ループバック状態では“配布受信時の自局の時刻”が0分00秒11であったならば、「配布されたマスタ時刻+遅延時間(=0分00秒00+00秒07=0分00秒07)」とは不一致なので、自局のタイマを補正することになる(ズレ量(=00秒04の分だけ補正する)。しかしながら、実際には上記の通りタイマは同期状態であり補正の必要はないので、補正することで、タイマ同期が狂ってしまう。
一方で、断線箇所の上流側の局(この例ではS1局とS2局)では、断線前と断線後とで伝送遅延時間(換言すればマスタ局から自局までの経路)が変わらないので、この様な問題は生じない。断線箇所の下流側の局で、この様な問題が生じ得る。
ここで、図7(a)に、本手法における図5のネットワークシステムの電源投入時からの概略動作を示す。そして、この概略動作中の任意のタイミングで断線が発生したときの本手法の詳細動作を図7(b)に示す。
まず、図7(a)に示す全体の概略動作自体は、上記図6(a)に示す前手法とほぼ同様であるので、特に説明しない。
図7(b)に示すように、任意のときに断線が生じると、その直後のタクト周期におけるM局の動作自体は、図6(b)と同じである。すなわち、この段階ではM局は未だ断線発生を認識していないので、通常動作を維持し、この例では偶然、マスタ時刻配布タイミングであったものとする。これより、M局は図示のように、3種類のフレーム(TFフレーム、MCフレーム、時刻配布フレーム)を、順次、送出する。上記の通り、この動作自体は図6(b)と同じであるが、これら各フレームの伝送状態は図示の通り図6(b)とは異なる。
すなわち、本手法では、各スレーブ局が独自にループバックを行わないようにしているので、このタイミングでは未だS2局、S3局はループバック状態となっていない。よって、S2局は、受信したフレームを、通常通り、下流側のS3局に転送するが、断線がある為、S3局には届かない(途中で消失することになる)。この為、上記3種類のフレームは、何れも、断線箇所より下流側の局(S3局、S4局)には届かない。このように、時刻配布フレームが、断線箇所より下流側の局(S3局、S4局)には届かないことで、上述したタイマ同期が狂う問題が生じないことになる。
そして、本手法では、マスタ局(M局)は、複数のフレームが戻ってこないことを以って、ネットワーク全体の何処かで断線が発生したものと判定する。これより、ここでは断線発生直後のタクト周期の上記3種類のフレームが、戻ってこないことで、ネットワーク全体の何処かで断線ありと判定し、次のタクト周期では通常動作を一時的に中止して、新たな伝送経路構築の為の動作モードとなる。
マスタ局は、この動作モードでは、予め決められた特定のフレーム(LLDフレームと呼ぶ)を、MSG帯域において両系に送信する。両系に送信するとは、データ伝送経路D1とデータ伝送経路D2の両方に送信することであり、換言すれば隣接局の両方に送信することである。これより、図示の例では、マスタ局(M局)は、上記LLDフレームを、データ伝送経路D1を介してS1局(スレーブ1)へ送信すると共に、データ伝送経路D2を介してS4局(スレーブ4)へ送信する。
ここで、上記の通り、各スレーブ局は、データ伝送経路D1を介して受信したフレームは処理部11を介して中継・転送し、データ伝送経路D2を介して受信したフレームは、処理部11を介さずに、そのまま中継・転送する。但し、これらは通常の動作であり、例外がある。まず、各スレーブ局は、受信したフレームを一旦ラッチして、その種別等をチェックする機能を有している。例えば、受信したフレームが上記特定のフレーム(LLDフレーム)であるか否かをチェックしている。
そして、各スレーブ局は、受信したフレームが上記特定のフレーム(LLDフレーム)である場合には、上記通常の動作とは異なる下記の動作を実行する。
・一方の隣接局からのLLDフレームを受信すると、この一方の隣接局へ所定の応答フレームを返信すると共に、他方の隣接局へLLDフレームを送信(転送)する。そして、他方の隣接局から上記応答フレームが返信されるのを待つ。一定時間待っても応答フレームの返信が無かった場合、他方の隣接局との間に断線ありと判定し、ループバック状態にする。
尚、図では、LLDフレームを太線実線矢印で示し、応答フレームを太線点線矢印で示す。
また、TFフレーム、MCフレーム、MSGフレームに関しては、図6(b)と同様、実線矢印はデータ伝送経路D1によるデータ伝送、点線矢印はデータ伝送経路D2によるデータ伝送を示す。
図示の例では、M局からS1局へ送信されるLLDフレームに対しては、S1局からM局へ応答フレームが返信され、S1局からS2局へ送信されるLLDフレームに対しては、S2局からS1局へ応答フレームが返信される。しかし、S2局からS3局へ送信されるLLDフレームは、断線のためS3局に届かないので、S3局からS2局への応答フレームの返信は無い。これより、S2局は、S3局との間に断線ありと判定し、ループバック状態にする。
同様にして、図示の例では、M局からS4局へ送信されるLLDフレームに対しては、S4局からM局へ応答フレームが返信され、S4局からS3局へ送信されるLLDフレームに対しては、S3局からS4局へ応答フレームが返信される。しかし、S3局からS2局へ送信されるLLDフレームは、断線のためS2局に届かないので、S2局からS3局への応答フレームの返信は無い。これより、S3局は、S2局との間に断線ありと判定し、ループバック状態にする。
以上のことから、図示の例では、S3局とS2局が、ループバック状態となる。マスタ局は、次のタクト周期以降は通常動作に戻るが(但し、このときは未だマスタ時刻配布は中断したまま)、図示のように、図6(b)に示す前手法と同様に、S3局とS2局のループバックにより新たな伝送経路が形成されて、フレームが全局を一巡できることになり、以って正常に運用できることになる。
その後は、図7(a)に示すように、同期シーケンスを再実施して、新たな伝送経路に応じた各伝送遅延時間が求められて各スレーブ局に設定される。ここで、当該再実施される同期シーケンスは、上記通常時の(イニシャル処理後の)同期シーケンスとは異なる。詳しくは後述するが、通常時は必ずリング型であるのでリング型に応じた同期シーケンスが行われるが、断線発生後は上記ループバック状態になってバス型に変わる場合がある。バス型であればバス型に応じた同期シーケンスを行う必要がある。詳しくは後述する。
上記同期シーケンスの再実施が完了したら、マスタ時刻配布を再開する。この状態では、マスタ時刻配布を行っても、上述した問題は生じない。なぜなら、上記のように、各スレーブ局には、それぞれ、新たな伝送経路に応じた伝送遅延時間(自局−マスタ局間のデータ伝送に掛かる時間)が、設定されているからである。
図7に示す本手法の動作が、図6に示す前手法の動作と異なる点は、まず、本手法では必ず、マスタ時刻配布を一時中止した後でなければ、ループバック状態にはならない点である。更に、ループバック状態になった後、同期シーケンスの再実施を実行完了した後に(すなわち、新たな伝送経路に応じた伝送遅延時間が算出されて各スレーブ局に設置された後に)、マスタ時刻配布の一時中止を解除することである。この様にすることで、マスタ時刻配布による誤動作発生を防止することができる。
以下、図8、図9、図10、図12、図13のフローチャート図を参照して、上記本手法を実現する各局(各ノード装置10)の処理について説明する。
上記の通り、複数のノード装置10の1台をマスタ局とし、それ以外をスレーブ局としている。
図8には、ネットワークシステム全体の処理の流れを示す。この処理の流れに従ってマスタ局、スレーブ局それぞれの処理動作を、図9、図10または図12、図13に示す。
図8において、まず、マスタ局は、常時、自局が送信したフレームが自局に戻ってきたか否かをチェックしている。そして、例えば複数回連続してフレームが戻ってこなかった場合には、ネットワーク全体の何処かで断線が発生したと判定して(ステップS1)、ステップS2以降の処理を実行する。
マスタ局は、まず、マスタ時刻配布を一時停止する(ステップS2)。
続いて、ステップS3の処理を行う。ステップS3は、マスタ局から始めて各局が順次、上記LLDフレームを自局の隣接局へ送信して応答フレーム返信の有無を確認する。ステップS3では、例えば、まず、マスタ局が、上記LLDフレームを両系(両方の隣接局)へ送信し、応答フレームの返信を待つ。各スレーブ局は、一方の隣接局からのLLDフレームを受信すると、応答フレームを返信すると共に他方の隣接局へLLDフレームを送信(転送)して、応答フレームの返信を待つ。マスタ局、各スレーブ局は、何れも、LLDフレーム送信時から一定時間経過しても上記応答フレームの返信が無ければ、隣接局との間に断線ありと見做して、ループバック状態となる。この様にすることで、断線箇所に隣接する2つの局が、ループバック状態となる。
そして、マスタ局は、上記LLDフレーム送信から所定時間経過したら、時刻同期処理(同期シーケンス)を再実施する(ステップS4)。尚、この“所定時間”は予め任意に設定されるが、例えば、ネットワークを構成する全ての局が上記LLDフレームの送信と応答フレーム返信の有無を確認完了するまでに掛かる時間(この時間に更に多少のマージンを加えた時間であってもよい)が、開発者等によって設定される。
ステップS4の処理によって、上記の通り、上記ループバックにより形成される新たな伝送経路に応じた新たな伝送遅延時間が算出されて、各スレーブ局に設定されることになる。
そして、マスタ局は、ステップS4の処理が完了したら、マスタ時刻配布を再開する(ステップS5)。上記の通り、この状態でマスタ時刻配布が行われても、問題が生じることはない。
上記図8の処理の流れは、例えば、図9に示すマスタ局の処理と、図10に示すスレーブ局の処理とにより実現される。尚、この例では、マスタ局の処理は主に上記処理部11aが実行し、スレーブ局の処理は主に上記処理部11が実行する。
まず、図9において、マスタ局は、ネットワーク全体の何処かで断線発生したと判定すると(ステップS11)、ステップS12以降の処理を実行する。ステップS12では、マスタ時刻配布を一時的に停止する。ステップS11,S12は、上記ステップS1,S2と同じであってよく、説明は省略する。
マスタ局は、続いて、特定のフレームである確認要求フレーム(上記LLDフレームに相当)を、両系(両方の隣接局)へ送信して(ステップS13)、確認応答フレーム(上記応答フレームに相当)の返信を待つ(ステップS14)。一定時間内に隣接局から確認応答フレームの返信があった場合(ステップS14,YES)、自局−隣接局間は結線状態(断線なし)と判定する(ステップS17)。一方、一定時間経過しても隣接局から確認応答フレームの返信が無かった場合には(ステップS14,NO)、自局−隣接局間に断線ありと判定して(ステップS15)、ループバック状態にする(ステップS16)。
尚、ステップS14〜S17の処理は、両系それぞれについて実行される。従って、一方の系に関しては結線と判定され他方の系に関しては断線ありと判定される場合も起こり得る。
ここで、上記一定時間は、例えば、隣接局との通信(送信と返信)に通常掛かる時間に、所定のマージンを加算した値であり、予め開発者等が任意に決めて設定しておく。一方、以下に説明するステップS18の所定時間は、上記ステップS4で説明した所定時間と同じであってよい。つまり、ステップS18の所定時間は、この所定時間が経過した時点ではネットワーク上の何処で断線があっても断線箇所の隣接局でループバック状態になっているはずである時間が設定されることが望ましいのであり、予め開発者等が任意に決めて設定しておく。
マスタ局は、上記両系への確認要求フレームの送信時点から所定時間経過したら(ステップS18,YES)、時刻同期処理を再実施し(ステップS19)、再実施完了したらマスタ時刻配布を再開する(ステップS20)。ステップS19、S20の処理は、上記ステップS4、S5と同じであってよく、説明は省略する。
一方、各スレーブ局は、例えば図10に示すように、2つの隣接局のうち一方の隣接局から上記確認要求フレームが送られてくると(ステップS31,YES)、まず、当該一方の隣接局に対して上記確認応答フレームを返信する(ステップS32)。続いて、他方の隣接局に対して確認要求フレームを送信(転送)する(ステップS33)。そして、一定時間内に他方の隣接局から上記確認応答フレームが返信されてきた場合には(ステップS34、YES)、自局と他方の隣接局との間は断線無し(結線)と判定して(ステップS36)、そのまま本処理を終了する。一方、一定時間経過しても他方の隣接局から上記確認応答フレームの返信が無かった場合には(ステップS34,NO)、自局と他方の隣接局との間に断線ありと判定して(ステップS35)、ループバック状態にする(ステップS37)。
尚、本処理を実行するスレーブ局がマスタ局の隣接局である場合には、上記ステップS31の“一方の隣接局”はマスタ局であることになる。
処理部11,11aは、例えばCPU等の演算プロセッサやメモリ等の記憶部を有している。記憶部には予め所定のアプリケーションプログラムが記憶されている。演算プロセッサがこのアプリケーションプログラムを実行することで、例えば上記図9の処理あるいは上記図10の処理が実現される。
図12、図13は、ノード装置10の構成が図11に示す例であった場合のマスタ局、スレーブ局の処理フローチャート図である。
ここでは、図12、図13の説明の前に、図11に示すノード装置10の構成例について説明する。
図示の例では、ノード装置10は、処理部(11または11a)、タイマ12、2つのラッチ13、14と、一方の隣接局に係わる構成である論理接続確認部15及び通信部16と、他方の隣接局に係わる構成である論理接続確認部17及び通信部18などを有する。尚、一例としては、一方の隣接局に係わるとは例えば上記ネットワーク接続部NW1に係わることに相当し、他方の隣接局に係わるとは例えば上記ネットワーク接続部NW2に係わることに相当すると見做してもよい。尚、これらの構成のなかで、図2や図5等に示した構成と略同様の構成には、同一符号を付してある。よって、処理部に関しては、マスタ局としてのノード装置10は処理部11aを有し、スレーブ局としてのノード装置10は処理部11を備えることになる。
但し、図11の構成例における処理部(11a、11)は、上記図9、図10の処理ではなく、例えば後述する図12、図13における左側の処理を実行する。これは、主に、図11の構成例の場合には、処理部(11a、11)とは別に、上記特定フレーム(LLDフレームなど)に係わる処理を専門に行う構成である論理接続確認部15,17が、設けられている為である。
また、図示の構成のうち、通信部16、18、論理接続確認部15,17以外の構成は、1つの演算プロセッサ上に備えられていてもよい。つまり、マスタ局であれば、処理部11a、タイマ12、2つのラッチ13、14、及び論理接続確認部15,17が、1つの演算プロセッサ上に備えられていてもよい。同様にして、スレーブ局であれば、処理部11、タイマ12、2つのラッチ13、14、及び論理接続確認部15,17が、1つの演算プロセッサ上に備えられていてもよい。そして、図示の実線矢印、短点線矢印、長点線矢印、一点鎖線矢印等で示す各種データの受け渡しは、この演算プロセッサが備える不図示の機能により実現されるものであってもよい。
但し、この例に限るものではなく、例えば、論理接続確認部15,17は上記1つの演算プロセッサとは別のプロセッサ上に備えられていても良い。
ここで、論理接続確認部15、17は、断線発生時の処理のときだけ機能し、通常時は機能しない。これより、以下に図11の構成についてまず通常時の動作を説明するが、論理接続確認部15、17は存在しないものとして扱うものとする。
通信部16,18は、それぞれ、隣接局との通信処理を行う。ここでは、上記のことから、通信部16は一方の隣接局との通信を行い、通信部18は他方の隣接局との通信を行うものと表現する。
また、各通信部16,18は、伝送媒体(電気信号や光)上にてビット転送を行うための物理コネクションを監視し、物理リンク状態を処理部(11,11a)に通知している。この他に、伝送媒体からノード内へまたはその逆の信号変換を実施している。
通信部16,18は、それぞれ、入力端子と出力端子を有する。図示の例では通信部16は上記第1のデータ伝送経路D1に係わる入力端子を有し、通信部18は第1のデータ伝送経路D1に係わる出力端子を有する。これより、通信部16の入力端子から受信されたフレームは、図示の実線矢印で示すようにラッチ回路13を介して処理部(11,11a)に渡され、処理部(11,11a)はこのフレームを通信部18の出力端子から出力させる。既に述べたように、本例では、第1のデータ伝送経路D1に係わるフレーム中継は、処理部(11,11a)を介して行われるからである。
一方、通信部18の入力端子から受信されたフレームは、基本的には処理部(11,11a)を介することなく、図示の実線矢印で示すように、ラッチ回路14を介して通信部16の出力端子から出力される。
但し、上記動作はリング型(断線発生前)の動作であり、ループバック状態では上記動作とは異なる動作となる。また、ラッチ回路13、14は、基本的には受信フレームを一時的にラッチ(保持)すると共に受信フレームの種別等を監視する機能を有する。そして、上記受信されたフレームがラッチ回路13またはラッチ回路14を介する際、ラッチ回路13,14がこのフレームの種別を判別するものであってもよい。尚、タイマ12が、上述した同期対象のタイマである。
また、通信部16側と通信部18側の何れかがループバック状態になったときの動作を、以下、説明する。
まず、通信部18側がループバック状態になった場合、すなわち上記他方の隣接局との間の断線が検出された場合には、処理部(11,11a)は、通信部16の入力端子を介して受信されたフレームを受け取ると、(一点鎖線矢印と実線矢印で示すように)通信部16の出力端子からフレームを出力させる。これは、換言すれば、上記一方の隣接局からデータ伝送経路D1を介して送られてきたフレームを、ループバックして、データ伝送経路D2を介して当該一方の隣接局へ送信する。
一方、上記一方の隣接局との間の断線が検出されたことで通信部16側がループバック状態になった場合には、通信部18の入力端子を介して受信されてラッチ回路14にラッチされたフレームを、(図示の一点鎖線矢印で示すように)処理部(11,11a)に取り込むようにする。この制御は例えば上記不図示の演算プロセッサが行う。処理部(11,11a)は、取り込んだフレームを(図示の実線矢印で示すように)通信部18の出力端子から出力させる。これは、換言すれば、上記他方の隣接局からデータ伝送経路D2を介して送られてきたフレームを、ループバックして、データ伝送経路D1を介して当該他方の隣接局へ送信する。
処理部(11,11a)では、各ノード装置10に存在する上位の処理系(不図示)からの要求による送信フレームの生成や、上記入力端子から受信したフレームの中継または削除などの判定と処理を行っている。
尚、図11に示す処理部(11,11a)−論理接続確認部(15、17)間の6本の点線矢印については、単に、処理部(11,11a)−論理接続確認部(15、17)間のデータのやり取りのイメージを示しているだけであり、ここでは特に説明しない。
ここで、上記の通り、断線発生時には、論理接続確認部15、17が機能することになる。論理接続確認部15、17は、処理部(11,11a)から特定の要求があった場合には、この要求に応じた動作を行う。また、論理接続確認部15、17は、常時、受信フレームを監視している。つまり、論理接続確認部15は、通信部16の入力端子から入力されるフレームを監視し、論理接続確認部17は、通信部18の入力端子から入力されるフレームを監視している。そして、この監視により、論理接続確認部15、17は、受信フレームが特定の種別のフレームであった場合には、この種別に応じた処理を行う。
尚、論理接続確認部15、17は、受信フレームが上記特定の種別のフレームであった場合には、この受信フレームをラッチ(13,14)にラッチさせないようにする(処理部(11,11a)が取得しないようにする)機能も有していても良い。
また、論理接続確認部15、17は、図12、図13に示すように、スレーブ局の場合とマスタ局の場合とで処理内容が異なる。尚、ここでは、処理内容は異なっても同一符合(15,17)を付すものとする。
図11に示す構成のノード装置10の処理例を、図12、図13に示す。図12はマスタ局の処理例、図13はスレーブ局の処理例である。
まず、図12に示すように、マスタ局の処理部11aは、ネットワーク全体の何処かで断線発生したと判定すると(ステップS41)、まず、マスタ時刻配布を一時的に停止する(ステップS42)。尚、ステップS41,S42の処理は、上記ステップS11,S12と同じであってよく、説明は省略する。
マスタ局の処理部11aは、続いて、両系の確認部(つまり、論理接続確認部15、17の両方)に対して、接続確認要求を通知する(ステップS43)。そして、この通知に対する各確認部からの応答待ち状態となる(ステップS44)。
論理接続確認部15、17は、それぞれ、上記のように処理部11aから接続確認要求が通知されると、この要求に応じて自己が係わる隣接局の論理接続確認部に対して確認要求フレームを送信する(ステップS51)。この処理は、論理接続確認部15の場合、通信部16の出力端子から上記確認要求フレームを送信させることで、上記一方の隣接局に対して確認要求フレームを通知する。論理接続確認部17の場合、通信部18の出力端子から上記確認要求フレームを送信させることで、上記他方の隣接局に対して確認要求フレームを通知する。
そして、応答待ち状態となる。隣接局との間に断線が無ければ、上記確認要求フレームに対して隣接局から一定時間内に確認応答フレームが返信されるようになっている。これより、一定時間内に隣接局から確認応答フレームが返信されてきた場合には(ステップS52,YES)、結線(断線なし)と判定し(ステップS54)、返信が無かった場合には(ステップS52,NO)断線ありと判定する(ステップS53)。
そして、上記断線有無判定結果を処理部11aへ通知する(ステップS55)。また、確認応答フレームを受信した場合には、これを削除する(ステップS56)。
処理部11aは、ステップS55による各論理接続確認部からの上記断線有無判定結果の通知を受けると(ステップS44,YES)、何れか一方でも断線の判定があった場合には(ステップS45,YES)、当該断線があった側をループバック状態にする(ステップS46)。ループバック状態における動作は、既に述べており、ここでは説明しない。そして、ステップS47へ移行する。一方、2つの論理接続確認部15,17の両方とも結線の判定であった場合には、そのままステップS47へ移行する。
処理部11aは、上記ステップS43の通知時点から所定時間経過したか否かを判定し(ステップS47)、所定時間経過したら(ステップS47,YES)、時刻同期処理を再実施し(ステップS48)、再実施完了した後にマスタ時刻配布を再開する(ステップS49)。尚、ステップS47における所定時間は上記ステップS18における所定時間と同じであってよく、ステップS48は上記ステップS19と同じ、ステップS49は上記ステップS20と同じであってよく、説明は省略する。
また、図13に示す例では、スレーブ局の各論理接続確認部15,17の処理は、概略的には、ステップS71がYESになったときにはステップS72,S73の処理を実行し、ステップS74がYESとなったときにはステップS75〜S80の処理を実行するものである。尚、上記の通り、各論理接続確認部15,17は、常時、受信フレームの種別を監視しており、受信フレームが確認要求フレームであった場合にはステップS71がYESとなり、受信フレームが確認応答フレームであった場合にはステップS76がYESとなる。各論理接続確認部15,17は、受信フレームの種別がこれら確認要求フレーム、確認応答フレーム以外の場合には、特に何も行わない(機能しない)。
基本的には、2つの論理接続確認部15、17の何れか一方でステップS71がYESになると、その後、他方の論理接続確認部でステップS74がYESとなることになる。
2つの論理接続確認部15、17の何れか一方が、隣接局の論理接続確認部から送信された確認要求フレームを受信すると(ステップS71,YES)、この隣接局に対して確認応答フレームを返信すると共に(ステップS72)、確認要求フレーム受信した旨を処理部11へ通知する(ステップS73)。
尚、上記ステップS71では、隣接局がマスタ局であれば上記ステップS51で送信された確認要求フレームを受信することになり、隣接局がスレーブ局であれば後述するステップS75で送信された確認要求フレームを受信することになる。
また、上記ステップS72の確認応答フレームの返信により、隣接局では上記ステップS52または後述するステップS76がYESとなることになる。
処理部11は、何れか一方の論理接続確認部から上記ステップS73による確認要求フレームの受信通知があると(ステップS62,YES)、他方の論理接続確認部に対して接続確認要求を通知する(ステップS63)。
論理接続確認部15,17は、処理部11から上記ステップS63による通知があると(ステップS74,YES)、自己が係わる隣接局に対して確認要求フレームを送信する(ステップS75)。もし、隣接局との間に断線が無ければ、隣接局の論理接続確認部が上記ステップS72によって確認応答フレームを返信してくることになる。
これより、ステップS75の処理時点から一定時間以内に確認応答フレームの返信があった場合には(ステップS76,YES)、隣接局との間は結線状態(断線無し)と判定する(ステップS77)。一定時間以内に確認応答フレームの返信が無ければ(ステップS76,NO)、隣接局との間に断線有りと判定する(ステップS78)。そして、判定結果を処理部11へ通知する(ステップS79)。尚、受信した確認応答フレームは削除する(ステップS80)。
処理部11では、上記ステップS79による判定結果の通知を受けると(ステップS64,YES)、判定結果が断線有りの場合には(ステップS65,YES)、通知元の論理接続確認部側をループバック状態にする(ステップS66)。判定結果が結線であれば(ステップS65,NO)、ステップS66の処理は行われない。
以上の図12、図13の処理によって、マスタ局の主導の元、各スレーブ局が順次、自装置に接続された通信線の結線状態を判定して、断線している場合にはループバック状態となる。勿論、マスタ局自身も、自装置に接続された通信線の結線状態を判定して、断線している場合にはループバック状態となる。この様にして各スレーブ局はマスタ局のコントロール下でループバック状態になるので、マスタ局がマスタ時刻配布を一時的に停止した後に、該当する局がループバック状態になる。よって、マスタ時刻配布による上記問題が生じることはない。
ここで、上記同期シーケンス再実施について説明する。
同期シーケンス再実施自体は、基本的には、既存の処理を用いればよい。
但し、本手法で想定している状況は、物理トポロジがリング型からバス型に変化する場合が有り得る。物理トポロジがリング型であれば例えば上記特許文献1のタイマ同期技術を用いればよい。物理トポロジがバス型であれば例えば上記特許文献2のタイマ同期技術を用いればよい。これより、現在のネットワークの物理トポロジがリング型であるかバス型であるかを判別すれば、既存技術を用いて同期シーケンス再実施を実現することができる。
これより、以下、現在のネットワークの物理トポロジがリング型であるかバス型であるかを判別する手法について説明する。
尚、上述した説明では、必ずループバック状態になるものとして説明したが、これは実際に断線が発生していることを前提としている。実際には断線が発生していないにも係わらず、ノイズ等の何等かの原因で一時的に通信が途絶するケースがあり、これによってマスタ局が「ネットワーク全体の何処かで断線が発生した」と判定する場合が起こり得る。そして、これによって例えば図9と図10の処理が行われた場合、既に上記通信途絶が解消しているならば、ステップS16やステップS37の処理が行われる局(ループバック状態になる局)は、1つもないことになる。従って、この場合には、物理トポロジはリング型のままとなる。
以上説明した事情により、必ずしもバス型に変わっているとは限らないので、現在のネットワークの物理トポロジがリング型であるかバス型であるかを判別する必要がある。
尚、以上のことから、上述した各種説明において、該当するノード装置10(断線箇所に隣接するノード装置10)はループバック状態に移行する旨の説明には、「本当に断線が発生している場合には」という前提が付くものとする。
まず、各ノード装置10は、それぞれ、上述した処理により、両系の隣接局との論理接続確認結果を認識している。つまり、マスタ局は、上記の通り両系の隣接局へそれぞれ上記確認要求フレームを送信して、これに対する上記確認応答フレームの返信(応答)の有無により論理接続確認結果を認識している。また、各スレーブ局は、一方の隣接局に関しては当該隣接局から送信される確認要求フレーム受信により論理接続確認結果(=隣接局の接続あり)を認識できるが、更に当該隣接局へ確認要求フレームを送信して応答の有無を論理接続確認するようにしてもよい。また、他方の隣接局に対しては、上記確認要求フレームを送信して、これに対する上記確認応答フレームの返信(応答)の有無により論理接続確認結果を認識している。
また、上記の通り、従来でも物理層のリンク状態に基づいて断線有無を検出しており、本例でも例えば各通信部16,18が物理リンク状態を検出している(例えば下位のPHY(物理層;レイヤ1)等から常時取得する)。
以上の処理のイメージを図14に示す。
図14(a)はリング型/バス型判別の為の処理のイメージ、図14(b)は当該処理により得られるデータのイメージである。
図14(a)に示すように、処理部11は、A系の論理接続確認部15、通信部16からA系の論理接続確認結果や物理リンク状態を取得し、B系の論理接続確認部17、通信部18からB系の論理接続確認結果や物理リンク状態を取得する。尚、物理リンク状態は、論理接続確認結果とは異なり、常時取得することができる。
尚、ここでは図示のように、通信部16側をA系、通信部18側をB系と定義する。
各ノード装置10は、上記論理接続確認結果や物理リンク状態に基づいて、自局の論理リンク状態を、A系、B系それぞれについて下記のように判定している。
・論理接続確認結果=“応答(返信)なし”、または、物理リンク状態=“未リンク”の場合は、論理リンク状態=“未リンク”とする。この様に判定する理由は、論理接続と物理リンクのどちらか一方でも駄目な場合には、どちらにせよ通信できないからである。
・論理接続確認結果=“応答(返信)あり”、且つ、物理リンク状態=“リンクあり”の場合は、論理リンク状態=“リンク有り”とする。
上記の通り、論理リンク状態の判定は、両系(2つの隣接局それぞれ)について行い、A系の論理リンク状態とB系の論理リンク状態とを得る。
尚、上記論理リンク状態の判定処理は、マスタ局の場合には、例えば図9のステップS19の処理を実行する前、あるいは図12のステップS48の処理を実行する前に、実行する。上記論理リンク状態の判定処理は、スレーブ局の場合には、例えば図10においてステップS37またはS36の処理を実行した後、あるいは図13のステップS65の判定処理を実行した後に、実行する。
マスタ局の処理部11は、上記論理リンク状態の判定処理を実行したら、続いて、各局の論理リンク状態を収集する為の特定のフレーム(論理リンク状態情報収集フレームと記す)を、例えばデータ伝送経路D1を介して送信する。各スレーブ局の処理部11は、受信したフレームが上記論理リンク状態情報収集フレームであった場合には、この論理リンク状態情報収集フレームに上記判定した自局の論理リンク状態を付加して、下流の隣接局へ中継する。これより、上記論理リンク状態情報収集フレームがネットワークを一巡してマスタ局に戻ってくると、最後にマスタ局が自局の上記論理リンク状態を論理リンク状態情報収集フレームに付加することで、論理リンク状態情報収集フレームにはネットワーク上の全てのノード装置10の上記論理リンク状態が格納された状態となっている。
図14(b)に論理リンク状態情報収集フレームのデータ構成例と、これが各局を一巡した後の状態例を示す。
各局は、受信した論理リンク状態情報収集フレームに、図示のように自局の局番と、上記判定したA系の論理リンク状態とB系の論理リンク状態とを付加・格納する。一例としては、論理リンク状態情報収集フレームは、ノード装置10Aから送信されると、ノード装置10B→ノード装置10C→ノード装置10D→ノード装置10Eの順にネットワークを一巡して、ノード装置10Aに戻ってくる。この順番で各局の局番と論理リンク状態が論理リンク状態情報収集フレームに付加されていき、最後のノード装置10Aが自局の局番と論理リンク状態を付加することで、論理リンク状態情報収集フレームは図14(b)の右側に示す状態となる。
これより、マスタ局の処理部11は、上記論理リンク状態情報収集フレームの格納データに基づいて、下記のように物理トポロジを判定する。
・全局で両系とも論理リンク状態=“リンク有り”の場合、リング型トポロジと判定する。
・一部でも論理リンク状態=“未リンク”があった場合には、バス型トポロジと判定する。
そして、判定したトポロジに応じた算出方法で、伝送遅延時間を算出する。これは、既存の方法を利用すればよい。つまり、現状がバス型トポロジであると判定した場合には、例えば上記特許文献2に記載の伝送遅延時間の算出方法を用いればよい。
一方、現状がリング型トポロジであると判定された場合には、例えば上記特許文献1に記載の伝送遅延時間の算出方法を用いればよい。尚、この場合、各ノード装置10は、所定のコマンド(特許文献1における時刻問合せコマンドなど)を通信部18の入力端子から入力した場合には、処理部11がこのコマンドを取得して所定の処理を行った後に、通信部16の出力端子から出力させるようにしてもよい。つまり、この所定のコマンドがネットワークを一巡するのに要する時間が、第1のデータ伝送経路D1の場合と第2のデータ伝送経路D2の場合とで同じとなるようにしてもよい。
この前提で上記特許文献1に記載の伝送遅延時間の算出方法を用いる場合、概略的には、例えば下記のようになる。
マスタ局は、メインルート(D1)、サブルート(D2)の両方に同時に時刻問合せコマンドQA,QBを送信する。ここでは一例としてこれらのコマンドは特定の宛先局を指定するものとする。各スレーブ局は、これら時刻問合せコマンドQA,QBを受信すると、下流側へ中継・転送するが、宛先局の場合には、受信時の自己のタイマ12のタイマ値を付加して中継・転送する。上記前提より2つの時刻問合せコマンドQA,QBは、ネットワークを一巡して同時にマスタ局に戻ってくることになり、マスタ局は、これらコマンドの送信から戻ってくるまでに掛かる時間tLを計測している。また、マスタ局は、上記宛先局のメインルートに係わる上記タイマ値であるタイマ値TAと、サブルートに係わる上記タイマ値であるタイマ値TBを取得することになる。
これらのデータから、下記の式により、メインルートに係わる宛先局への伝送遅延時間tAを求めることができる。
tA ={tL +(|TA −TB |)}/2
勿論、これらの例に限るものではなく、既存の何等かの算出方法を用いればよい。
例えば、上記特許文献2に記載の伝送遅延時間の算出方法を用いる場合、概略的には、例えば下記のようになる。
まず、上記各ラッチ回路13,14は、特許文献2におけるラッチ回路と同様に、受信フレームがタイマラッチ指示メッセージである場合にはタイマ12のタイマ値を獲得し、タイマ値及びフラグ“1”として処理部(11,11a)に通知する機能も有する。また、処理部(11,11a)は、タイマ値収集メッセージを受信した場合には、上記各ラッチ回路13,14の何れか一方又は両方によって取得した上記タイマ値及びフラグ“1”を、タイマ値収集メッセージの所定の領域に格納する(先頭から順に格納する)。
マスタ局は、まず、上記タイマラッチ指示メッセージをデータ伝送経路D1上に送信し、その後、上記タイマ値収集メッセージをデータ伝送経路D1上に送信する。戻ってきたタイマ値収集メッセージに、自局のタイマ値及びフラグ“1”を追加することで、タイマ値収集メッセージには全局のタイマ値が含まれている状態になる。
これより、タイマ値収集メッセージの格納データより、各局のタイマ値と順番が分かるので、どの局同士が隣接局であるの分かる。これより、各隣接局間の伝送時間を、下記のように求めることができる。
一例としては相互に隣接局であるノード装置10Bとノード装置10Cを例にし、ノード装置10Bのタイマ値がTB1,TB2、ノード装置10Cのタイマ値がTC1,TC2、ノード装置10Bの処理部11の処理時間をTαとした場合、ノード装置10B−ノード装置10C間の伝送時間LBCは、下式のように算出できる。
LBC={(TB2−TB1)−(TC2−TC1)−Tα}/2
全ての隣接局間の伝送時間を、同様にして算出する。
上記各隣接局間の伝送時間を用いることで、マスタ局と各スレーブ局間の伝送遅延時間を、求めることができる。
図15は、本例のネットワークシステムの機能ブロック図である。
尚、ここでは、マスタ局と複数のスレーブ局を有し論理トポロジがリング型のネットワークにおいて、マスタ局と各スレーブ局間の通信時間である各伝送遅延時間と、マスタ局から各スレーブへの定期的なマスタ時刻配布とにより、各スレーブ局のタイマをマスタ局のタイマに同期させるネットワークシステムを、前提とする。
図示の例では、マスタ局20は、全体断線判定部21、断線結線確認要求部22、再開制御部23、トポロジ判定部24、断線結線確認部25、ループバック部26等を有する。
スレーブ局30は、断線結線確認部31、ループバック部32等を有する。
マスタ局20において、全体断線判定部21は、ネットワーク全体での断線の有無(ネットワーク全体における何処かで断線があったか否か;断線発生箇所までは分からない)を判定する。
断線結線確認要求部22は、該全体断線判定部21によってネットワーク全体での断線ありと判定された場合、マスタ時刻配布を一時的に中止状態とした後、各スレーブ局30に隣接局との断線結線状態を確認させる。これは、例えば断線結線状態を確認させる為の所定の要求をリレー形式で各スレーブ局30に伝達する。つまり、例えば、マスタ局は上記要求を自局の隣接局に出し、この隣接局が自局の隣接局へ上記要求を中継する。これを繰り返すことで全てのスレーブ局30が上記要求を受信することになる。
各スレーブ局30において、断線結線確認部31は、上記断線結線確認要求部22に応じて(例えば上記要求を受信すると)、自局の隣接局との断線結線状態を確認する。
ループバック部32は、該断線結線確認部31で隣接局との断線結線状態を確認した結果、断線ありと判定した場合には、ループバック状態にする。ループバック状態では、当該断線ありの隣接局へのパケット中継は行わず、他方の隣接局からのパケットを受信したらこの他方の隣接局へパケットを返す(ループバックする)。
また、マスタ局20も、上記スレーブ局30の断線結線確認部31、ループバック部32と同様の処理機能である断線結線確認部25、ループバック部26を有する。但し、断線結線確認部25は、上記要求を受けなくても全体断線判定部21による断線ありの判定により断線結線状態を確認する。そして、断線ありを確認した場合には、ループバック部26によりループバック状態に移行する。
そして、マスタ局20において、上記再開制御部23は、断線箇所に該当する局(スレーブ局だけでなく自局も含む)が上記ループバック状態になった後に、上記伝送遅延時間を再度求めて各スレーブ局30に設定させ、その後に上記マスタ時刻配布を再開する。再開制御部23は、例えば、断線結線確認要求部22が上記要求を出した後、予め設定された所定時間経過したら、断線箇所に該当する局(自局も含む)はループバック状態になったものと見做す。
上記ループバック状態になったことで、断線箇所を避ける伝送経路が新たに構築され、上記再開制御部23は、該新たな伝送経路に応じた伝送遅延時間を求めることになる。
図15の本例のネットワークシステムでは、上記マスタ局20とスレーブ局30の処理機能によって、マスタ時刻配布を一時的に中止状態としている間に、該当する局がループバック状態となって新たな伝送経路が形成され、更に新たな伝送経路に応じた伝送遅延時間が各スレーブ局に設定される。これより、マスタ時刻配布によってタイマ同期が狂う事態を防止できる。
また、上記新たな伝送経路が構築されることで、上記ネットワークは物理トポロジがリング型からバス型に変わる場合がある。これより、マスタ局は、上記新たな伝送経路が構築されたネットワークの物理トポロジが、リング型であるかバス型であるかを判定する上記トポロジ判定部24を更に有するものであってもよい。そして、上記再開制御部23は、該判定された物理トポロジに応じた算出方法を用いて伝送遅延時間を再度求めることになる。
但し、この例に限らず、トポロジ判定部24で判定することなく、断線発生後にループバック状態になったと見做したら、バス型になったと見做して、バス型に応じた算出方法を用いて伝送遅延時間を再度求めるようにしてもよい。
また、例えば、上記マスタ局の断線結線確認要求部22が、自局の隣接局に対して特定パケットを送信する形態であってもよい。この形態の場合、例えば、上記スレーブ局の断線結線確認部31は、上記特定パケットを一方の隣接局から受信すると、該一方の隣接局へ特定の応答パケットを返信すると共に他方の隣接局へ特定パケットを送信し、該送信した特定パケットに対する該他方の隣接局からの前記特定の応答パケットの返信の有無により、自局と該他方の隣接局との間の断線結線状態を確認するものであってもよい。
更に上記形態の場合、上記マスタ局の断線結線確認要求部22が、上記送信した特定パケットに対する上記隣接局からの上記特定の応答パケットの返信の有無により、自局と該隣接局との間の断線結線状態を確認するようにしてもよい。つまり、断線結線確認要求部22が、上記断線結線確認部25の代わりに、断線結線状態を確認するようにしてもよい。勿論、この形態では断線結線確認部25は必要ない。
そして、この形態の場合には、上記マスタ局のループバック部26は、上記断線結線確認要求部22によって隣接局との断線結線状態を確認した結果、隣接局との断線ありと判定した場合には、ループバック状態にする。
また、別の形態としては、例えば、上記マスタ局とスレーブ局それぞれは、自局の隣接局との断線結線状態確認用の論理接続確認部(不図示)を2つ有する構成であってもよい。この構成の場合、例えば、マスタ局で上記ネットワーク全体での断線ありと判定した場合に、該マスタ局の上記不図示の2つの論理接続確認部は、それぞれ、隣接局の不図示の論理接続確認部に対して特定パケットを送信して、応答があった場合には隣接局との断線無しと判定する。
この構成の場合、上記スレーブ局は、自局における一方の上記論理接続確認部が上記特定パケットを受信すると、該一方の論理接続確認部が送信元に対して特定の応答パケットを返信すると共に、自局の他方の前記論理接続確認部が上記特定パケットを送信(下流側に中継)し、該送信した特定パケットに対して特定の応答パケットの返信が無かった場合に隣接局との断線ありと判定する。
尚、マスタ局20、スレーブ局30は、不図示のCPU、MPU等の演算プロセッサやメモリ等の記憶部を有し、記憶部に予め記憶されている所定のアプリケーションプログラムを、演算プロセッサが実行することにより、図15に示す各種機能部の処理機能が実現される。
本発明によれば、バス型あるいはリング型の構成を取りうるネットワークシステムにおいて、一か所断線発生した場合でも、各ノードのタイマを同期することが可能となる。
前手法では、断線時に、断線箇所の局(特にスレーブ局)が物理層のリンク状態監視により断線を検出し、自動でループバックして通信経路を再確立していた。
しかし、マスタ局は、この通信経路の再確立を直ちには知らないので、マスタ時刻配布を行ってしまい、結果、断線箇所の下流局全てで間違った同期補正が行われる可能性がある。
この問題に対して、本発明では、スレーブ局が勝手にループバックして通信経路を再確立することはなく、マスタ局主導で通信経路を再確立する。その際、マスタ時刻配布は一時的に中断する。
すなわち、マスタ局は、自局の送信フレームが戻ってこないことで、ネットワークの何処かで断線が発生したと判断し、マスタ時刻配布は一時的に中断すると共に、各スレーブ局に断線有無判定と、断線ありの場合にはループバックを行わせることで、通信経路を再確立させる。その後、再確立された通信経路に応じた伝送遅延時間を求めて各スレーブ局に設定してから、マスタ時刻配布を再開する。これより、各スレーブ局は、再確立された通信経路に応じた正しい伝送遅延時間と、マスタ時刻配布とによって、タイマ同期を行うことになるので、タイマ同期が狂うことはない。
このように、本発明のネットワークシステム等によれば、論理トポロジがリング型のネットワーク等において、断線発生により経路変更が行われる場合でも、間違った同期補正が行われることを防止できる。