以下に、本発明の実施の形態にかかる通信装置および通信ネットワークを図面に基づいて詳細に説明する。なお、この実施の形態によりこの発明が限定されるものではない。
実施の形態.
図1は、本発明にかかる通信装置のイメージ図である。本発明にかかる通信装置200は、通信ポートである複数の送受信ポート1〜4を備える。図1に示した「A」は通信装置200の識別情報である。なお、送受信ポートの数を4に限定するものではないが、以下の説明では、通信装置が備えている送受信ポートの数を4とする。また、4つの送受信ポートをP1〜P4とする。通信装置200は産業用ネットワークを形成する。
図2は、本発明にかかる通信装置の構成例を示す図である。通信装置200は、送受信ポート211〜214、送信部221〜224、受信部225〜228、受信フレーム解析部230、送信フレーム生成部231、状態管理部232、タイマ管理部233および情報記憶部234を備える。
送受信ポート211〜214は、図1に示した送受信ポート1〜4にそれぞれ対応する。各送受信ポート211〜214は、接続されている通信路へフレームを出力するとともに、通信路からフレームを受け取る。
送信部221〜224は、送信フレーム生成部231から入力されたフレームを他の通信装置へ送信する。
受信部225〜228は、他の通信装置が送信したフレームを受信し、受信したフレームを受信フレーム解析部230へ出力する。
受信フレーム解析部230は、ルーティング解析部241、同期精度解析部242および構成探索解析部243を備える。
ルーティング解析部241は、通常動作中に受信部225〜228から受け取ったフレームが、受信すべきフレームか、転送すべきフレームか、破棄すべきフレームかを判断する。通常動作中とは、産業用ネットワークを形成する他の通信装置との間の通信経路の設定が完了しており、設定済みの通信経路を介してフレームを送受信することが可能な状態である。受け取ったフレームが受信すべきフレームの場合、ルーティング解析部241は、フレームから情報を取り出して情報記憶部234へ出力し、情報記憶部234がこれを記憶する。受け取ったフレームが転送すべきフレームの場合、ルーティング解析部241は、フレームを送信フレーム生成部231の後述するフレーム転送部252へ出力する。この場合、ルーティング解析部241が出力したフレームは、フレーム転送部252により他の通信装置へ転送される。受け取ったフレームが破棄すべきフレームの場合、ルーティング解析部241は、フレームを破棄する。
同期精度解析部242は、ある通信装置までの通信経路が複数存在する場合に、各通信経路を使用してフレームを送信する場合の通信経路ごとの伝送遅延時間および伝送遅延時間の揺らぎを測定する。同期精度解析部242は、例えば、文献「国際公開第2015/162763号」に記載されている方法を使用して伝送遅延時間および揺らぎを測定する。
構成探索解析部243は、後述する送信フレーム生成部231のフレーム生成部251により生成される通信経路の探索用のフレームに対する応答フレームを他の通信装置から受信すると、受信した応答フレームを解析し、応答フレームが送信されてきた経路を特定する。
送信フレーム生成部231は、フレーム生成部251およびフレーム転送部252を備える。
フレーム生成部251は、他の通信装置へ送信するフレームを生成する。他の通信装置へ送信するフレームとしては、通信経路の探索用のフレーム、通信経路の探索用のフレームに対する応答フレーム、などが該当する。
フレーム転送部252は、受信フレーム解析部230のルーティング解析部241で転送すべきフレームと判断されたフレームに対して転送処理を実行する。また、フレーム転送部252は、他の通信装置から受信した通信経路の探索用のフレームに対しても転送処理を実行する。
状態管理部232は、通信装置200の動作状態、送受信ポート211〜214の各々の動作状態を管理する。通信装置200の動作状態の種類としては、産業用ネットワークを形成している他の通信装置との間の通信経路を設定する動作を行う設定状態と、設定済みの通信経路を介してフレームを送受信して他の通信装置と通信を行う通常状態とがある。設定状態には、他の通信装置との間の通信経路を探索する動作を行う状態と、探索した通信経路の各々における伝送遅延を測定し、測定結果に基づいて通信経路の選択および設定を行う状態とが含まれる。送受信ポート211〜214の各々の動作状態は、各送受信ポートがフレームの送受信を行っているか否か、すなわち、各送受信ポートに他の通信装置が接続されているか否かを表す。各送受信ポートに他の通信装置が接続されているか否かの判別は、例えば、送信フレーム生成部231のフレーム生成部251が、他の通信装置の存在を確認するためのフレームを生成して各送受信ポートから送信することにより行う。送信したフレームに対する応答フレームを受信した送受信ポートには他の通信装置が接続されていることになり、この送受信ポートは動作中となる。一方、送信したフレームに対する応答フレームを受信しなかった送受信ポートには他の通信装置が接続されていないことになり、この送受信ポートは非動作中となる。
タイマ管理部233は、時間を計測するためのタイマを保持し、状態管理部232からの要求に応じて、時間情報を出力する。なお、状態管理部232以外の構成要素、例えば、受信フレーム解析部230からの要求に応じて時間情報を出力するようにしてもよい。
情報記憶部234は、他の通信装置から収集した情報など、通信装置200が動作するために必要な各種情報を記憶する。
図3は、本実施の形態にかかる通信装置が適用される通信ネットワークの構成例を示す図である。図3では、通信ネットワークを形成する通信装置同士の物理的な接続関係を表している。図3に示した通信ネットワークは、本実施の形態にかかる通信装置である通信装置11、21、22、23および24を含んで構成されている。通信装置11、21、22、23および24は、図1に示した通信装置200に相当する。図3に示したA〜Eは、通信装置11、21、22、23および24の識別情報である。通信装置11は、通信ネットワークにおいてマスタとして動作し、その他の通信装置21〜24は通信装置11により制御されるスレーブとして動作する。以下の説明では、通信装置11をマスタ装置11と記載し、通信装置21〜24をスレーブ装置21〜24と記載する場合がある。通信ネットワークが産業用ネットワークの場合、マスタ装置11は制御装置であり、たとえば、PLC(Programmable Logic Controller)またはパーソナルコンピュータといった装置が該当する。スレーブ装置21〜24は、たとえば、ビジョンセンサまたは駆動装置といった装置が該当する。
図3に示した通信ネットワークにおいては、通信装置11の送受信ポートP1と通信装置23の送受信ポートP1とが通信線を介して接続され、通信装置11の送受信ポートP3と通信装置21の送受信ポートP1とが通信線を介して接続されている。また、通信装置21の送受信ポートP2と通信装置24の送受信ポートP4とが通信線を介して接続され、通信装置21の送受信ポートP3と通信装置22の送受信ポートP3とが通信線を介して接続されている。また、通信装置21の送受信ポートP4と通信装置23の送受信ポートP2とが通信線を介して接続され、通信装置22の送受信ポートP1と通信装置23の送受信ポートP3とが通信線を介して接続されている。
以下、図3に示した構成の通信ネットワークにおいてマスタ装置11がスレーブ装置21〜24の各々までの通信経路を選択して設定する動作について、図面を参照しながら説明する。本実施の形態では、マスタ装置11が、選択可能な経路を探索する動作(経路探索動作)と、マスタ装置11が、探索した経路から使用する経路を選択する動作(経路選択動作)とに分けて説明を行う。なお、これ以降の説明においては、送受信ポートを単に「ポート」と記載する。
(経路探索動作)
まず、マスタ装置11が、選択可能な経路を探索する動作について説明する。この動作について簡単に説明すると、マスタ装置11は、通信経路の探索用のフレームである探索フレームを動作中のポートから送信し、探索フレームを受信したスレーブ装置21〜24は、探索フレームを受信したポートの他にも動作中のポートがあればそのポートから探索フレームを出力、すなわち転送する。また、スレーブ装置21〜24は、探索フレームを受信したポートの他に動作中のポートが無い場合、探索フレームを受信したポートから、探索フレームを出力する。このとき、マスタ装置11は、自分の識別情報であるID(Identification)と、探索フレームを送信するポートの情報である送信ポート情報とを含んだ探索フレームを生成して動作中のポートから送信する。スレーブ装置21〜24は、自分のIDと、探索フレームを受信したポートの情報である受信ポート情報と、探索フレームを送信するポートの情報である送信ポート情報とを探索フレームに追加して転送する。ただし、スレーブ装置21〜24は、過去に転送した探索フレームを再度受信した場合など、一定の条件を満たしている探索フレームを受信した場合、自分のIDなどの上記情報を追加することなく転送する。この場合、スレーブ装置21〜24は、探索フレームが送信されてきた経路を逆方向に辿ってマスタ装置11まで到達するよう、受信した探索フレームを転送する。また、マスタ装置11は、自分が送信した探索フレームがスレーブ装置21〜24により転送されて戻ってきた場合、戻ってきた探索フレームに含まれているID、受信ポート情報および送信ポート情報を保持する。その後、マスタ装置11は、保持しているID、受信ポート情報および送信ポート情報を解析して、選択可能な通信経路を特定する。以上の動作の詳細については具体例を挙げながら別途説明する。
ここで、探索フレームに含まれる情報について説明する。図4は、探索フレームに含まれる情報の構成例を示す図である。図4は、マスタ装置11がスレーブ装置23へ送信する探索フレームに含まれる情報の例を示している。図4に示したように、マスタ装置11がスレーブ装置23へ送信する探索フレームは、探索フレームを受信したポートを示す情報5と、マスタ装置11のIDである識別情報6と、探索フレームを送信するポートを示す情報7と、を含む。探索フレームはマスタ装置11の内部で生成されるため、探索フレームを受信したポートを示す情報5にはダミーデータとして‘0’が設定される。なお、情報5に‘0’を設定するのは一例であり、他の情報を設定してもよい。識別情報6にはマスタ装置11を一意に表す‘A’が設定される。情報7にはスレーブ装置23が接続されているポートを表す‘P1’が設定される。情報5および情報7に設定する情報は、ポートが識別できる情報であればよく、数値を設定してもよい。なお、マスタ装置11がスレーブ装置21へ送信する探索フレームの場合、情報7には‘P3’が設定されることになる。探索フレーム構成は、図4に示した情報5、識別情報6および情報7に対してヘッダを付加したものとなる。ヘッダは、情報5の左側すなわち情報5の前に付加される。図4に示した構成は一例であり、探索フレームを送受信する通信装置、探索フレームを受信したポートおよび探索フレームを送信するポートが認識できる構成であればどのようなものでもよい。
図5は、スレーブ装置により転送された後の探索フレームに含まれる情報の一例を示す図である。図5は、マスタ装置11から送信された後、スレーブ装置23によりスレーブ装置22へ転送された後の探索フレームに含まれる情報の例を示している。図5に示したように、スレーブ装置23によりスレーブ装置22へ転送された後の探索フレームは、図4に示した情報、すなわち、スレーブ装置23が受信した探索フレームに含まれている情報‘0’,‘A’,‘P1’に加えて、‘P1’,‘D’,‘P3’を含んでいる。‘P1’,‘D’,‘P3’はスレーブ装置23が追加した情報である。‘P1’はスレーブ装置23が探索フレームを受信したポートの情報、‘D’はスレーブ装置23の識別情報、‘P3’はスレーブ装置23が探索フレームを送信したポートの情報である。
図6は、スレーブ装置により転送された後の探索フレームに含まれる情報の他の例を示す図である。図6は、マスタ装置11から送信された後、スレーブ装置23を介してスレーブ装置22で受信され、スレーブ装置21へ転送された後の探索フレームに含まれる情報の例を示している。図6に示したように、スレーブ装置22によりスレーブ装置21へ転送された後の探索フレームは、図5に示した情報に加えて、‘P1’,‘C’,‘P3’を含んでいる。‘P1’,‘C’,‘P3’はスレーブ装置22が追加した情報である。‘P1’はスレーブ装置22が探索フレームを受信したポートの情報、‘C’はスレーブ装置22の識別情報、‘P3’はスレーブ装置22が探索フレームを送信したポートの情報である。
なお、マスタ装置11においては、図2に示したフレーム生成部251が探索フレームの生成を行い、構成探索解析部243が、受信した探索フレームの解析を行う。また、フレーム転送部252が、受信した探索フレームの転送処理を行う。
図7は、本発明にかかる通信装置が経路探索を行う動作を示すフローチャートである。図3に示した通信装置11、21、22、23および24は、経路探索を行う場合、図7に示したフローチャートに従って動作する。すなわち、各通信装置は、自分がマスタの通信装置かスレーブの通信装置かに関係なく、図7に示したフローチャートに従って動作する。図7では、探索フレームを単に「フレーム」と記載している。すなわち、図7に記載した「フレーム」は「探索フレーム」を意味する。
通信装置は、探索フレームを受信すると(ステップS10)、探索フレームに含まれる情報を確認し、探索フレームに自分のIDが含まれている場合(ステップS11:Yes)、自分のIDが2つ含まれているか否かを確認する(ステップS12)。自分のIDが2つ含まれている場合(ステップS12:Yes)、通信装置は、探索フレームに含まれている先頭のIDが自分のIDか否かを確認する(ステップS13)。探索フレームに含まれている先頭のIDとは、探索フレームのヘッダに最も近い位置のIDであり、例えば、図5および図6に示した構成の情報が探索フレームに含まれている場合、‘A’が先頭のIDに該当する。先頭のIDが自分のIDの場合(ステップS13:Yes)、通信装置は、受信した探索フレームに含まれている情報を記憶する(ステップS14)。なお、受信した探索フレームに含まれている情報は、図2に示した情報記憶部234が記憶する。
先頭のIDが自分のIDではない場合(ステップS13:No)、通信装置は、受信した探索フレームを、当該探索フレームに含まれている2つの自分のIDのうち、先頭側の自分のIDのすぐ前の情報が示すポートから送信する(ステップS15)。このステップS15の処理は、ステップS10で受信した探索フレームを、探索フレームを最初に受信したポートへ転送する処理である。
探索フレームに含まれている自分のIDが1つの場合(ステップS12:No)、通信装置は、受信した探索フレームが、当該探索フレームに含まれている自分のIDのすぐ後ろの情報が示すポートから受信したものか否かを確認する(ステップS16)。すなわち、自分のIDのすぐ後ろの情報が示すポートと探索フレームを受信したポートが同じか否かを確認する。受信した探索フレームが自分のIDのすぐ後ろの情報が示すポートから受信したものである場合(ステップS16:Yes)、通信装置は、探索フレームに含まれている先頭のIDが自分のIDか否かを確認する(ステップS17)。先頭のIDが自分のIDの場合(ステップS17:Yes)、通信装置は、受信した探索フレームに含まれている情報を記憶する(ステップS18)。
先頭のIDが自分のIDではない場合(ステップS17:No)、通信装置は、受信した探索フレームを、自分のIDのすぐ前の情報が示すポートから送信する(ステップS19)。このステップS19の処理は、上述したステップS15の処理と同様に、ステップS10で受信した探索フレームを、探索フレームを最初に受信したポートへ転送する処理である。
受信した探索フレームが自分のIDのすぐ後ろの情報が示すポートから受信したものではない場合(ステップS16:No)、通信装置は、受信した探索フレームに対して、探索フレームを受信したポートの情報、自分のIDおよび探索フレームを送信するポートの情報を付加して、当該探索フレームを受信したポートから送信する(ステップS20)。このステップS20の処理は、ステップS10で受信した探索フレームに対して必要な情報を付加した後、受信したポートから送信すなわち返送する処理である。ステップS20で送信する探索フレームは、ステップS10で受信した探索フレームに対する応答フレームに該当する。応答フレームとは、受信した経路を逆方向に辿りながら中継される探索フレームであり、最終的には、探索フレームを最初に送信した通信装置まで到達するフレームである。
受信した探索フレームに自分のIDが含まれていない場合(ステップS11:No)、通信装置は、探索フレームを受信したポート以外に動作中のポートがあるか否かを確認する(ステップS21)。探索フレームを受信したポート以外に動作中のポートがある場合(ステップS21:Yes)、通信装置は、受信した探索フレームに対して、探索フレームを受信したポートの情報、自分のIDおよび探索フレームを送信するポートの情報を付加して、当該探索フレームを受信したポート以外の動作中のポートから送信する(ステップS22)。このとき、通信装置は、探索フレームを受信したポート以外の動作中のポートが複数存在する場合、全ての動作中のポート(探索フレームを受信したポートは除く)から探索フレームを送信する。
探索フレームを受信したポート以外に動作中のポートがない場合(ステップS21:No)、通信装置は、受信した探索フレームに対して、探索フレームを受信したポートの情報、自分のIDおよび探索フレームを送信するポートの情報を付加して、当該探索フレームを受信したポートから送信する(ステップS23)。このステップS23で送信する探索フレームは、ステップS10で受信した探索フレームに対する応答フレームに該当する。
つづいて、マスタ装置11が、選択可能な経路を探索する動作の具体例を説明する。まず、マスタ装置11は、通信経路の探索用のフレームである探索フレームを、動作中の各ポートから送信する。具体的には、図8に示したように、マスタ装置11は、スレーブ装置23が接続されているポートP1から探索フレームF101を送信し、スレーブ装置21が接続されているポートP3から探索フレームF103を送信する。図8は、探索フレームの送信元の通信装置の動作を示す図である。なお、図8では、探索フレームのヘッダ等の記載は省略し、フレームに含まれている情報のみを記載している。この後の説明に出てくる図9以降の図についても同様である。図4を用いて説明したように、探索フレームF101には、情報‘0’,‘A’,‘P1’が含まれる。同様に、探索フレームF103には、情報‘0’,‘A’,‘P3’が含まれる。
図9は、図8に示した各探索フレームを受信した通信装置の動作を示す図である。探索フレームF101を受信したスレーブ装置23および探索フレームF103を受信したスレーブ装置21は、図9に示したように、受信した探索フレームを、受信したポート以外の動作中のポートから転送する。この処理は、図7に示したフローチャートのステップS22の処理に相当する。
具体的には、スレーブ装置23は、受信した探索フレームF101を、探索フレームF1012としてポートP2から転送するとともに、探索フレームF1013としてポートP3から転送する。探索フレームF1012は、探索フレームF101に含まれていた情報に加えて、受信ポートの情報‘P1’、スレーブ装置23の識別情報‘D’および送信ポートの情報‘P2’を含む。探索フレームF1013は、探索フレームF101に含まれていた情報に加えて、受信ポートの情報‘P1’、スレーブ装置23の識別情報‘D’および送信ポートの情報‘P3’を含む。同様に、スレーブ装置21は、受信した探索フレームF103を、探索フレームF1032としてポートP2から転送するとともに、探索フレームF1033としてポートP3から転送する。スレーブ装置21は、さらに、受信した探索フレームF103を、探索フレームF1034としてポートP4から転送する。探索フレームF1032は、探索フレームF103に含まれていた情報に加えて、受信ポートの情報‘P1’、スレーブ装置21の識別情報‘B’および送信ポートの情報‘P2’を含む。探索フレームF1033は、探索フレームF103に含まれていた情報に加えて、受信ポートの情報‘P1’、スレーブ装置21の識別情報‘B’および送信ポートの情報‘P3’を含む。探索フレームF1034は、探索フレームF103に含まれていた情報に加えて、受信ポートの情報‘P1’、スレーブ装置21の識別情報‘B’および送信ポートの情報‘P4’を含む。
図10は、図9に示した各探索フレームを受信した通信装置の動作を示す図である。
図10に示した動作では、スレーブ装置21、22および23は、図9に示した動作と同様の動作、すなわち、図7に示したフローチャートのステップS22の処理に相当する処理を実行し、探索フレームを転送する。具体的には、スレーブ装置21は、ポートP4で受信した探索フレームF1012を、探索フレームF10121、F10122およびF10123として、それぞれをポートP1、ポートP2およびポートP3から転送する。スレーブ装置22は、ポートP1で受信した探索フレームF1013を、探索フレームF10133としてポートP3から転送するとともに、ポートP3で受信した探索フレームF1033を、探索フレームF10331としてポートP1から転送する。スレーブ装置23は、ポートP2で受信した探索フレームF1034を、探索フレームF10341およびF10343として、それぞれをポートP1およびポートP3から転送する。スレーブ装置21、22および23が転送する探索フレームは、受信した時に含まれていた情報に加えて、受信ポートの情報、通信装置の識別情報および送信ポートの情報を含む。
スレーブ装置23が転送した探索フレームF10341は、マスタ装置11により受信される。マスタ装置11は、探索フレームF10341を受信すると、先頭のIDが自分のIDであるため、探索フレームF10341に含まれている情報‘0’,‘A’,‘P3’,‘P1’,‘B’,‘P4’,‘P2’,‘D’,‘P1’を記憶する。この処理は、図7に示したフローチャートのステップS18の処理に相当する。
一方、スレーブ装置24には、探索フレームF1032を受信したポート以外に動作中のポートが存在しない。そのため、スレーブ装置24は、探索フレームF1032を、受信したポートP4へ探索フレームF10324として転送する。この場合にも、スレーブ装置24は、受信ポートの情報、スレーブ装置24の識別情報および送信ポートの情報を探索フレームF1032に追加してから、探索フレームF10324として転送する。具体的には、スレーブ装置24は、探索フレームF1032に対して、受信ポートの情報‘P4’、スレーブ装置24の識別情報‘E’および送信ポートの情報‘P4’を追加し、探索フレームF10324として転送する。図10に示したスレーブ装置24が実行する処理は、図7に示したフローチャートのステップS23の処理に相当する。
スレーブ装置24が送信した探索フレームF10324はスレーブ装置21により受信される。スレーブ装置21は、探索フレームF10324を受信すると、自分のID‘B’が1つ含まれ、かつ自分のIDのすぐ後ろの送信ポートの情報が‘P2’であり、探索フレームF10324を受信したポートP2と同じポートを示しているため、探索フレームF10324を、自分のIDのすぐ前の受信ポート情報‘P1’が示すポートから送信する。このとき、スレーブ装置21は、受信した探索フレームF10324に対して情報を追加することなく送信する。この処理は、図7に示したフローチャートのステップS19の処理に相当する。この結果、スレーブ装置21が送信した探索フレームF10324はマスタ装置11に到達する。マスタ装置11は、探索フレームF10324をポートP3で受信し、これに含まれている情報を確認する。マスタ装置11は、探索フレームF10324に自分のID‘A’が1つ含まれ、かつ先頭のIDが自分のIDであることを認識する。また、自分のIDのすぐ後ろの受信ポート情報が‘P3’であり探索フレームF10324を受信したポートP3を示しているがため、探索フレームF10324に含まれている情報‘0’,‘A’,‘P3’,‘P1’,‘B’,‘P2’,‘P4’,‘E’,‘P4’を記憶する。この処理は、図7に示したフローチャートのステップS18の処理に相当する。
図11は、図10に示した探索フレームを受信した通信装置の動作を示す第1の図である。図11では、図10に示した探索フレームのうち、探索フレームF10123、F10133、F10331およびF10343を受信した通信装置の動作を示している。
図10に示したように、探索フレームF10133はスレーブ装置21により受信され、探索フレームF10331はスレーブ装置23により受信される。探索フレームF10123およびF10343はスレーブ装置22により受信される。
スレーブ装置21、22および23は、それぞれ、受信した探索フレームに含まれている情報を確認し、受信した探索フレームには自分のIDが含まれていないと判断する。スレーブ装置21、22および23は、各探索フレームを受信したポートの他にも動作中のポートを有している。そのため、スレーブ装置21、22および23は、受信した探索フレームに受信ポートの情報、自分の識別情報および送信ポートの情報を追加し、探索フレームを受信したポート以外の動作中のポートから送信する。
具体的には、スレーブ装置21は、ポートP3で受信した探索フレームF10133を、探索フレームF101331、F101332およびF101334として、それぞれをポートP1、ポートP2およびポートP4から転送する。スレーブ装置22は、ポートP1で受信した探索フレームF10343を、探索フレームF103433としてポートP3から転送するとともに、ポートP3で受信した探索フレームF10123を、探索フレームF101231としてポートP1から転送する。スレーブ装置23は、ポートP3で受信した探索フレームF10331を、探索フレームF103311およびF103312として、それぞれをポートP1およびポートP2から転送する。
図12は、図10に示した探索フレームを受信した通信装置の動作を示す第2の図である。図12では、図10に示した探索フレームのうち、探索フレームF10121、F10122およびF10341を受信した通信装置の動作を示している。
図10に示したように、探索フレームF10121およびF10341はマスタ装置11により受信される。探索フレームF10122はスレーブ装置24により受信される。
マスタ装置11は、図10に示した探索フレームF10341を受信するとこれに含まれている情報を確認する。探索フレームF10341にはマスタ装置11のID‘A’が1つ含まれ、かつ、このIDのすぐ後ろの送信ポートの情報が‘P3’であり、探索フレームF10341を受信したポートP1とは異なるポートを示している。そのため、マスタ装置11は、受信ポートの情報、自分の識別情報および送信ポートの情報を探索フレームF10341に追加し、探索フレームF103411としてポートP1から送信する。この処理は、図7に示したフローチャートのステップS20の処理に相当する。
マスタ装置11が送信した探索フレームF103411はスレーブ装置23により受信される。スレーブ装置23は、探索フレームF103411を受信すると、自分のID‘D’が1つ含まれ、かつ自分のIDのすぐ後ろの送信ポートの情報が‘P1’であり、探索フレームF103411を受信したポートP1を示していることを確認する。そのため、スレーブ装置23は、探索フレームF103411を、自分のID‘D’のすぐ前の受信ポート情報‘P2’が示すポートから送信する。このとき、スレーブ装置23は、受信した探索フレームF103411に対して情報を追加することなく送信する。この処理は、図7に示したフローチャートのステップS19の処理に相当する。
スレーブ装置23が送信した探索フレームF103411は、スレーブ装置21により受信される。探索フレームF103411にはスレーブ装置21のID‘B’が1つ含まれ、かつスレーブ装置21のIDのすぐ後ろの送信ポートの情報が‘P4’であり、スレーブ装置21が探索フレームF103411を受信したポートP4を示している。そのため、スレーブ装置21は、スレーブ装置23と同様の処理を行い、探索フレームF103411を、自分のID‘B’のすぐ前の受信ポート情報‘P1’が示すポートから送信する。
スレーブ装置21が送信した探索フレームF103411は、マスタ装置11により受信される。マスタ装置11は、探索フレームF103411をポートP3で受信し、これに含まれている情報を確認する。マスタ装置11は、探索フレームF103411に自分のID‘A’が2つ含まれ、かつ先頭のIDが自分のIDであるため、探索フレームF103411に含まれている情報‘0’,‘A’,‘P3’,‘P1’,‘B’,‘P4’,‘P2’,‘D’,‘P1’,‘P1’,‘A’,‘P1’を記憶する。この処理は、図7に示したフローチャートのステップS14の処理に相当する。
また、マスタ装置11が図10に示した探索フレームF10121を受信した場合の動作は、探索フレームF10341を受信した場合の動作と同様である。すなわち、マスタ装置11は、探索フレームF10121を受信するとこれに含まれている情報を確認する。探索フレームF10121にはマスタ装置11のID‘A’が1つ含まれ、かつ、このIDのすぐ後ろの送信ポートの情報が‘P1’であり、探索フレームF10121を受信したポートP3とは異なるポートを示している。そのため、マスタ装置11は、探索フレームF10341を受信した場合の動作と同様に、受信ポートの情報、自分の識別情報および送信ポートの情報を探索フレームF10121に追加し、探索フレームF101213としてポートP3から送信する。この探索フレームF101213は、スレーブ装置21およびスレーブ装置23を経由し、最終的にマスタ装置11に到達する。マスタ装置11は、探索フレームF101213を受信すると、探索フレームF103411を受信した場合と同様に、探索フレームF101213に含まれている情報を記憶する。
また、スレーブ装置24は、図10に示した探索フレームF10122を受信するとこれに含まれている情報を確認する。探索フレームF10122にはスレーブ装置24のID‘E’が含まれていない。また、スレーブ装置24には、探索フレームF10122を受信したポートP4以外に動作中のポートが存在しない。そのため、スレーブ装置24は、受信ポートの情報、自分の識別情報および送信ポートの情報を探索フレームF10122に追加し、探索フレームF101224として、探索フレームF10122を受信したポートP4から送信する。この処理は、図7に示したフローチャートのステップS23の処理に相当する。
スレーブ装置24が送信した探索フレームF101224は、スレーブ装置21により受信される。スレーブ装置21は、探索フレームF101224を受信すると、自分のID‘B’が1つ含まれ、かつ自分のIDのすぐ後ろの送信ポートの情報が‘P2’であり、探索フレームF101224を受信したポートP2を示していることを確認する。そのため、スレーブ装置21は、受信した探索フレームF101224を、自分のID‘B’のすぐ前の受信ポート情報‘P4’が示すポートから送信する。このとき、スレーブ装置21は、受信した探索フレームF101224に対して情報を追加することなく送信する。
スレーブ装置21が送信した探索フレームF101224は、スレーブ装置23により受信される。スレーブ装置23は、探索フレームF101224を受信すると、自分のID‘D’が1つ含まれ、かつ自分のIDのすぐ後ろの送信ポートの情報が‘P2’であり、探索フレームF101224を受信したポートP2を示していることを確認する。そのため、スレーブ装置23は、スレーブ装置21と同様の処理を行い、探索フレームF101224を、自分のID‘D’のすぐ前の受信ポート情報‘P1’が示すポートから送信する。
スレーブ装置23が送信した探索フレームF101224は、マスタ装置11により受信される。マスタ装置11は、探索フレームF101224を受信するとこれに含まれている情報を確認する。探索フレームF101224には、マスタ装置11のID‘A’が1つ含まれ、かつ、マスタ装置11のIDのすぐ後ろの送信ポート情報が‘P1’であり、マスタ装置11が探索フレームF101224を受信したポートP1を示している。さらに、探索フレームF101224に含まれている先頭のIDがマスタ装置11のIDとなっている。そのため、マスタ装置11は、受信した探索フレームF101224に含まれている情報を記憶する。この処理は、図7に示したフローチャートのステップS18の処理に相当する。
図13は、図11に示した探索フレームを受信した通信装置の動作を示す第1の図である。図13では、図11に示した探索フレームのうち、探索フレームF101331、F101332、F101334およびF101231を受信した通信装置の動作を示している。
図11に示したように、探索フレームF101331はマスタ装置11により受信される。探索フレームF101332はスレーブ装置24により受信され、探索フレームF101334および探索フレームF101231はスレーブ装置23により受信される。
マスタ装置11は、探索フレームF101331を受信するとこれに含まれている情報を確認する。探索フレームF101331にはマスタ装置11のID‘A’が1つ含まれ、かつ、このIDのすぐ後ろの送信ポートの情報が‘P1’であり、探索フレームF101331を受信したポートP3とは異なるポートを示している。そのため、マスタ装置11は、受信ポートの情報、自分の識別情報および送信ポートの情報を探索フレームF101331に追加し、探索フレームF1013313として、探索フレームF101331を受信したポートP3から送信する。この処理は、図7に示したフローチャートのステップS20の処理に相当する。
マスタ装置11が送信した探索フレームF1013313はスレーブ装置21により受信される。スレーブ装置21は、探索フレームF1013313を受信すると、自分のID‘B’が1つ含まれ、かつ自分のIDのすぐ後ろの送信ポートの情報が‘P1’であり、探索フレームF1013313を受信したポートP1を示していることを確認する。そのため、スレーブ装置21は、受信した探索フレームF1013313を、自分のID‘B’のすぐ前の受信ポート情報‘P3’が示すポートから送信する。このとき、スレーブ装置21は、受信した探索フレームF1013313に対して情報を追加することなく送信する。
スレーブ装置21が送信した探索フレームF1013313は、スレーブ装置22により受信される。探索フレームF1013313にはスレーブ装置22のID‘C’が1つ含まれ、かつスレーブ装置22のIDのすぐ後ろの送信ポートの情報が‘P3’であり、スレーブ装置22が探索フレームF1013313を受信したポートP3を示している。そのため、スレーブ装置22は、スレーブ装置21と同様の処理を行い、探索フレームF1013313を、自分のID‘C’のすぐ前の受信ポート情報‘P1’が示すポートから送信する。
スレーブ装置22が送信した探索フレームF1013313は、スレーブ装置23により受信される。探索フレームF1013313にはスレーブ装置23のID‘D’が1つ含まれ、かつスレーブ装置23のIDのすぐ後ろの送信ポートの情報が‘P3’であり、スレーブ装置23が探索フレームF1013313を受信したポートP3を示している。そのため、スレーブ装置23は、スレーブ装置21,22と同様の処理を行い、探索フレームF1013313を、自分のID‘D’のすぐ前の受信ポート情報‘P1’が示すポートから送信する。
スレーブ装置23が送信した探索フレームF1013313は、マスタ装置11により受信される。マスタ装置11は、探索フレームF1013313を受信すると、自分のID‘A’が2つ含まれ、かつ先頭のIDが自分のIDであるため、探索フレームF1013313に含まれている情報を記憶する。
また、スレーブ装置24は、探索フレームF101332を受信するとこれに含まれている情報を確認する。探索フレームF101332にはスレーブ装置24のID‘E’が含まれていない。また、スレーブ装置24には、探索フレームF101332を受信したポートP4以外に動作中のポートが存在しない。そのため、スレーブ装置24は、受信ポートの情報、自分の識別情報および送信ポートの情報を探索フレームF101332に追加し、探索フレームF1013324として、探索フレームF101332を受信したポートP4から送信する。この処理は、図7に示したフローチャートのステップS23の処理に相当する。
スレーブ装置24が送信した探索フレームF1013324は、スレーブ装置21により受信される。スレーブ装置21は、探索フレームF1013324を受信すると、自分のID‘B’が1つ含まれ、かつ自分のIDのすぐ後ろの送信ポートの情報が‘P2’であり、探索フレームF1013324を受信したポートP2を示していることを確認する。そのため、スレーブ装置21は、受信した探索フレームF1013324を、自分のID‘B’のすぐ前の受信ポート情報‘P3’が示すポートから送信する。このとき、スレーブ装置21は、受信した探索フレームF1013324に対して情報を追加することなく送信する。
スレーブ装置21が送信した探索フレームF1013324は、スレーブ装置22により受信される。スレーブ装置22は、探索フレームF1013324を受信すると、自分のID‘C’が1つ含まれ、かつ自分のIDのすぐ後ろの送信ポートの情報が‘P3’であり、探索フレームF1013324を受信したポートP3を示していることを確認する。そのため、スレーブ装置22は、スレーブ装置21と同様の処理を行い、探索フレームF1013324を、自分のID‘C’のすぐ前の受信ポート情報‘P1’が示すポートから送信する。
スレーブ装置22が送信した探索フレームF1013324は、スレーブ装置23により受信される。スレーブ装置23は、探索フレームF1013324を受信すると、自分のID‘D’が1つ含まれ、かつ自分のIDのすぐ後ろの送信ポートの情報が‘P3’であり、探索フレームF1013324を受信したポートP3を示していることを確認する。そのため、スレーブ装置23は、スレーブ装置21,22と同様の処理を行い、探索フレームF1013324を、自分のID‘D’のすぐ前の受信ポート情報‘P1’が示すポートから送信する。
スレーブ装置23が送信した探索フレームF1013324は、マスタ装置11により受信される。マスタ装置11は、探索フレームF1013324を受信すると、自分のID‘A’が1つ含まれ、かつ自分のIDのすぐ後ろの情報が示すポートP1が受信ポートであり、さらに、先頭のIDが自分のIDであるため、探索フレームF1013324に含まれている情報を記憶する。
また、スレーブ装置23は、探索フレームF101334を受信するとこれに含まれている情報を確認する。探索フレームF101334にはスレーブ装置23のID‘D’が1つ含まれ、かつ、このIDのすぐ後ろの送信ポートの情報が‘P3’であり、探索フレームF101334を受信したポートP2とは異なるポートを示している。そのため、スレーブ装置23は、受信ポートの情報、自分の識別情報および送信ポートの情報を探索フレームF101334に追加し、探索フレームF1013342として、探索フレームF101334を受信したポートP2から送信する。この処理は、図7に示したフローチャートのステップS20の処理に相当する。
スレーブ装置23が送信した探索フレームF1013342は、スレーブ装置21により受信される。スレーブ装置21は、探索フレームF1013342を受信すると、自分のID‘B’が1つ含まれ、かつ自分のIDのすぐ後ろの送信ポートの情報が‘P4’であり、探索フレームF1013342を受信したポートP4を示していることを確認する。そのため、スレーブ装置21は、受信した探索フレームF1013342を、自分のID‘B’のすぐ前の受信ポート情報‘P3’が示すポートから送信する。このとき、スレーブ装置21は、受信した探索フレームF1013342に対して情報を追加することなく送信する。
スレーブ装置21が送信した探索フレームF1013342は、スレーブ装置22により受信される。スレーブ装置22は、探索フレームF1013342を受信すると、自分のID‘C’が1つ含まれ、かつ自分のIDのすぐ後ろの送信ポートの情報が‘P3’であり、探索フレームF1013342を受信したポートP3を示していることを確認する。そのため、スレーブ装置22は、スレーブ装置21と同様の処理を行い、探索フレームF1013342を、自分のID‘C’のすぐ前の受信ポート情報‘P1’が示すポートから送信する。
スレーブ装置22が送信した探索フレームF1013342は、スレーブ装置23により受信される。スレーブ装置23は、探索フレームF1013342を受信すると、自分のID‘D’が2つ含まれ、かつ先頭のIDが自分のIDではないことを確認する。そのため、スレーブ装置23は、受信した探索フレームF1013342を、先頭側の自分のID‘D’のすぐ前の受信ポート情報‘P1’が示すポートから送信する。このとき、スレーブ装置23は、探索フレームF1013342に対して情報を追加することなく送信する。この処理は、図7に示したフローチャートのステップS15の処理に相当する。
スレーブ装置23が送信した探索フレームF1013342は、マスタ装置11により受信される。マスタ装置11は、探索フレームF1013342を受信すると、自分のID‘A’が1つ含まれ、かつ自分のIDのすぐ後ろの情報が示すポートP1が受信ポートであり、さらに、先頭のIDが自分のIDであるため、探索フレームF1013342に含まれている情報を記憶する。
また、スレーブ装置23は、探索フレームF101231を受信すると、探索フレームF101334を受信した場合と同様の処理を行う。すなわち、スレーブ装置23は、探索フレームF101231に含まれている情報を確認する。探索フレームF101231にはスレーブ装置23のID‘D’が1つ含まれ、かつ、このIDのすぐ後ろの送信ポートの情報が‘P2’であり、探索フレームF101231を受信したポートP3とは異なるポートを示している。そのため、スレーブ装置23は、受信ポートの情報、自分の識別情報および送信ポートの情報を探索フレームF101231に追加し、探索フレームF1012313として、探索フレームF101231を受信したポートP3から送信する。
スレーブ装置23が送信した探索フレームF1012313は、スレーブ装置22により受信される。スレーブ装置22は、探索フレームF1012313を受信すると、自分のID‘C’が1つ含まれ、かつ自分のIDのすぐ後ろの送信ポートの情報が‘P1’であり、探索フレームF1012313を受信したポートP1を示していることを確認する。そのため、スレーブ装置22は、受信した探索フレームF1012313を、自分のID‘C’のすぐ前の受信ポート情報‘P3’が示すポートから送信する。このとき、スレーブ装置22は、受信した探索フレームF1012313に対して情報を追加することなく送信する。
スレーブ装置22が送信した探索フレームF1012313は、スレーブ装置21により受信される。スレーブ装置21は、探索フレームF1012313を受信すると、自分のID‘B’が1つ含まれ、かつ自分のIDのすぐ後ろの送信ポートの情報が‘P3’であり、探索フレームF1012313を受信したポートP3を示していることを確認する。そのため、スレーブ装置21は、スレーブ装置22と同様の処理を行い、探索フレームF1012313を、自分のID‘B’のすぐ前の受信ポート情報‘P4’が示すポートから送信する。
スレーブ装置21が送信した探索フレームF1012313は、スレーブ装置23により受信される。スレーブ装置23は、探索フレームF1012313を受信すると、自分のID‘D’が2つ含まれ、かつ先頭のIDが自分のIDではないことを確認する。そのため、スレーブ装置23は、受信した探索フレームF1012313を、先頭側の自分のID‘D’のすぐ前の受信ポート情報‘P1’が示すポートから送信する。このとき、スレーブ装置23は、探索フレームF1012313に対して情報を追加することなく送信する。
スレーブ装置23が送信した探索フレームF1012313は、マスタ装置11により受信される。マスタ装置11は、探索フレームF1012313を受信すると、自分のID‘A’が1つ含まれ、かつ自分のIDのすぐ後ろの情報が示すポートP1が受信ポートであり、さらに、先頭のIDが自分のIDであるため、探索フレームF1012313に含まれている情報を記憶する。
図14は、図11に示した探索フレームを受信した通信装置の動作を示す第2の図である。図14では、図11に示した探索フレームのうち、探索フレームF103311、F103312およびF103433を受信した通信装置の動作を示している。
図11に示したように、探索フレームF103311はマスタ装置11により受信される。探索フレームF103312およびF103433はスレーブ装置21により受信される。
マスタ装置11は、探索フレームF103311を受信するとこれに含まれている情報を確認する。探索フレームF103311にはマスタ装置11のID‘A’が1つ含まれ、かつ、このIDのすぐ後ろの送信ポートの情報が‘P3’であり、探索フレームF103311を受信したポートP1とは異なるポートを示している。そのため、マスタ装置11は、受信ポートの情報、自分の識別情報および送信ポートの情報を探索フレームF103311に追加し、探索フレームF1033111として、探索フレームF103311を受信したポートP1から送信する。
マスタ装置11が送信した探索フレームF1033111はスレーブ装置23により受信される。スレーブ装置23は、探索フレームF1033111を受信すると、自分のID‘D’が1つ含まれ、かつ自分のIDのすぐ後ろの送信ポートの情報が‘P1’であり、探索フレームF1033111を受信したポートP1を示していることを確認する。そのため、スレーブ装置23は、受信した探索フレームF1033111を、自分のID‘D’のすぐ前の受信ポート情報‘P3’が示すポートから送信する。このとき、スレーブ装置23は、受信した探索フレームF1033111に対して情報を追加することなく送信する。
スレーブ装置23が送信した探索フレームF1033111は、スレーブ装置22により受信される。探索フレームF1033111にはスレーブ装置22のID‘C’が1つ含まれ、かつスレーブ装置22のIDのすぐ後ろの送信ポートの情報が‘P1’であり、スレーブ装置22が探索フレームF1033111を受信したポートP1を示している。そのため、スレーブ装置22は、スレーブ装置23と同様の処理を行い、探索フレームF1033111を、自分のID‘C’のすぐ前の受信ポート情報‘P3’が示すポートから送信する。
スレーブ装置22が送信した探索フレームF1033111は、スレーブ装置21により受信される。探索フレームF1033111にはスレーブ装置21のID‘B’が1つ含まれ、かつスレーブ装置21のIDのすぐ後ろの送信ポートの情報が‘P3’であり、スレーブ装置21が探索フレームF1033111を受信したポートP3を示している。そのため、スレーブ装置21は、スレーブ装置23,22と同様の処理を行い、探索フレームF1033111を、自分のID‘B’のすぐ前の受信ポート情報‘P1’が示すポートから送信する。
スレーブ装置21が送信した探索フレームF1033111は、マスタ装置11により受信される。マスタ装置11は、探索フレームF1033111を受信すると、自分のID‘A’が2つ含まれ、かつ先頭のIDが自分のIDであるため、探索フレームF1033111に含まれている情報を記憶する。
また、スレーブ装置21は、探索フレームF103312を受信するとこれに含まれている情報を確認する。探索フレームF103312にはスレーブ装置21のID‘B’が1つ含まれ、かつ、このIDのすぐ後ろの送信ポートの情報が‘P3’であり、探索フレームF103312を受信したポートP4とは異なるポートを示している。そのため、スレーブ装置21は、受信ポートの情報、自分の識別情報および送信ポートの情報を探索フレームF103312に追加し、探索フレームF1033124として、探索フレームF103312を受信したポートP4から送信する。この処理は、図7に示したフローチャートのステップS20の処理に相当する。
スレーブ装置21が送信した探索フレームF1033124は、スレーブ装置23により受信される。スレーブ装置23は、探索フレームF1033124を受信すると、自分のID‘D’が1つ含まれ、かつ自分のIDのすぐ後ろの送信ポートの情報が‘P2’であり、探索フレームF1033124を受信したポートP2を示していることを確認する。そのため、スレーブ装置23は、受信した探索フレームF1033124を、自分のID‘D’のすぐ前の受信ポート情報‘P3’が示すポートから送信する。このとき、スレーブ装置23は、受信した探索フレームF1033124に対して情報を追加することなく送信する。
スレーブ装置23が送信した探索フレームF1033124は、スレーブ装置22により受信される。スレーブ装置22は、探索フレームF1033124を受信すると、自分のID‘C’が1つ含まれ、かつ自分のIDのすぐ後ろの送信ポートの情報が‘P1’であり、探索フレームF1033124を受信したポートP1を示していることを確認する。そのため、スレーブ装置22は、スレーブ装置23と同様の処理を行い、探索フレームF1033124を、自分のID‘C’のすぐ前の受信ポート情報‘P3’が示すポートから送信する。
スレーブ装置23が送信した探索フレームF1033124は、スレーブ装置21により受信される。スレーブ装置21は、探索フレームF1033124を受信すると、自分のID‘B’が2つ含まれ、かつ先頭のIDが自分のIDではないことを確認する。そのため、スレーブ装置21は、受信した探索フレームF1033124を、先頭側の自分のID‘B’のすぐ前の受信ポート情報‘P1’が示すポートから送信する。このとき、スレーブ装置21は、探索フレームF1033124に対して情報を追加することなく送信する。
スレーブ装置21が送信した探索フレームF1033124は、マスタ装置11により受信される。マスタ装置11は、探索フレームF1033124を受信すると、自分のID‘A’が1つ含まれ、かつ自分のIDのすぐ後ろの情報が示すポートP3が受信ポートであり、さらに、先頭のIDが自分のIDであるため、探索フレームF1033124に含まれている情報を記憶する。
また、スレーブ装置21は、探索フレームF103433を受信すると、探索フレームF103312を受信した場合と同様の処理を行う。すなわち、スレーブ装置21は、探索フレームF103433に含まれている情報を確認する。探索フレームF103433にはスレーブ装置21のID‘B’が1つ含まれ、かつ、このIDのすぐ後ろの送信ポートの情報が‘P4’であり、探索フレームF103433を受信したポートP3とは異なるポートを示している。そのため、スレーブ装置21は、受信ポートの情報、自分の識別情報および送信ポートの情報を探索フレームF103433に追加し、探索フレームF1034333として、探索フレームF103433を受信したポートP3から送信する。
スレーブ装置21が送信した探索フレームF1034333は、スレーブ装置22により受信される。スレーブ装置22は、探索フレームF1034333を受信すると、自分のID‘C’が1つ含まれ、かつ自分のIDのすぐ後ろの送信ポートの情報が‘P3’であり、探索フレームF1034333を受信したポートP3を示していることを確認する。そのため、スレーブ装置22は、受信した探索フレームF1034333を、自分のID‘C’のすぐ前の受信ポート情報‘P1’が示すポートから送信する。このとき、スレーブ装置22は、受信した探索フレームF1034333に対して情報を追加することなく送信する。
スレーブ装置22が送信した探索フレームF1034333は、スレーブ装置23により受信される。スレーブ装置23は、探索フレームF1034333を受信すると、自分のID‘D’が1つ含まれ、かつ自分のIDのすぐ後ろの送信ポートの情報が‘P3’であり、探索フレームF1034333を受信したポートP3を示していることを確認する。そのため、スレーブ装置23は、スレーブ装置22と同様の処理を行い、探索フレームF1034333を、自分のID‘D’のすぐ前の受信ポート情報‘P2’が示すポートから送信する。
スレーブ装置23が送信した探索フレームF1034333は、スレーブ装置21により受信される。スレーブ装置21は、探索フレームF1034333を受信すると、自分のID‘B’が2つ含まれ、かつ先頭のIDが自分のIDではないことを確認する。そのため、スレーブ装置21は、受信した探索フレームF1034333を、先頭側の自分のID‘B’のすぐ前の受信ポート情報‘P1’が示すポートから送信する。このとき、スレーブ装置21は、探索フレームF1034333に対して情報を追加することなく送信する。
スレーブ装置21が送信した探索フレームF1034333は、マスタ装置11により受信される。マスタ装置11は、探索フレームF1034333を受信すると、自分のID‘A’が1つ含まれ、かつ自分のIDのすぐ後ろの情報が示すポートP3が受信ポートであり、さらに、先頭のIDが自分のIDであるため、探索フレームF1034333に含まれている情報を記憶する。
図8〜図14を用いて説明した動作が完了すると、マスタ装置11による経路の探索動作が終了となり、マスタ装置11が図15に示した情報を記憶している状態となる。図15は、経路探索動作でマスタ装置11により収集された、選択可能な経路の情報の例を示す図である。横方向に連続した一連の情報(1)〜(11)の各々が、選択可能な経路の中の1つを表している。例えば、(1)の“0,A,P3,P1,B,P3,P3,C,P1,P3,D,P1,P1,A,P1”が1つの経路を表す情報である。
マスタ装置11は、図15に示した情報(1)〜(11)を解析することにより、通信ネットワークの全体構成を特定することが可能であり、スレーブ装置21〜24の各々との通信に使用可能な全ての通信経路すなわち選択可能な全ての通信経路を知ることができる。マスタ装置11において、図15に示した情報(1)〜(11)の解析は、図2に示した構成探索解析部243が行う。構成探索解析部243は、通信ネットワークの全体構成を特定する情報解析部である。図15に示した情報(1)〜(11)は、2つのIDに挟まれた2つの情報それぞれに対応する2つのポート同士が物理的に接続されていること、すなわち、ポートを表す連続する2つの情報の両隣にある2つのIDのそれぞれに対応する通信装置が物理的に接続されていることを示す。また、1つの経路を表す情報の中に同じIDが2つ存在する場合は、そのIDを起点としてループ構造となっていることを示す。また、1つの経路を表す情報の中に含まれているIDがすべて異なる場合、末尾のIDに対応する通信装置が経路の終端に位置することを示す。
経路がループ状となっている場合、例えば、ループを形成する通信装置の中で、IDが最も小さい通信装置またはIDが最も大きい通信装置において、当該ループに含まれるいずれかのポートをフレームが通過しないように論理的に設定することで、論理的なツリー構造の通信ネットワークを形成することが可能である。
(経路選択動作)
マスタ装置11は、経路探索動作を実行して図15に示す選択可能な経路の情報(1)〜(11)を収集した後、選択可能な全ての経路の中から、スレーブ装置21〜24の各々との通信で使用する経路を選択する。例えば、マスタ装置11は、各経路における伝送遅延時間を計測し、伝送遅延時間が最小となる経路を選択する。マスタ装置11において、伝送遅延時間の計測は、図2に示した受信フレーム解析部230および送信フレーム生成部231が連携して行う。例えば、送信フレーム生成部231のフレーム生成部251が、時間計測のためのフレームを生成してスレーブ装置へ送信し、このフレームに対する応答フレームを受信フレーム解析部230の同期精度解析部242が受信する。そして、同期精度解析部242が、フレーム生成部251から時間計測のためのフレームが送信された時間と、応答フレームを受信した時間とに基づいて、伝送遅延時間を計算する。
マスタ装置11は、図15に示した情報を解析し、まず、図15の情報(1)および(2)に基づいて、図16において直線で示した経路、具体的には、スレーブ装置21および22を経由してスレーブ装置23に至る通信経路における伝送遅延時間を計測する。このとき、マスタ装置11は、通信経路上の各々のスレーブ装置までの伝送遅延時間を計測する。図16は、伝送遅延時間の計測を行う第1の通信経路を示す図である。図16においては、計測対象の経路を直線で示しているが、これ以降の説明に出てくる図面においても同様である。図16に示した通信経路の場合、マスタ装置11は、スレーブ装置21までの伝送遅延時間と、スレーブ装置22までの伝送遅延時間と、スレーブ装置23までの伝送遅延時間とを計測する。この計測動作を第1の遅延時間計測とする。
マスタ装置11は、次に、図15の情報(3)および(4)に基づいて、図17に示した経路、すなわち、スレーブ装置21および23を経由してスレーブ装置22に至る通信経路における伝送遅延時間を計測する。図17は、伝送遅延時間の計測を行う第2の通信経路を示す図である。この場合にも、マスタ装置11は、通信経路上の各々のスレーブ装置までの伝送遅延時間を計測する。この計測動作を第2の遅延時間計測とする。
マスタ装置11は、次に、図15の情報(5)に基づいて、図18に示した経路、すなわち、スレーブ装置21を経由してスレーブ装置24に至る通信経路における伝送遅延時間を計測する。図18は、伝送遅延時間の計測を行う第3の通信経路を示す図である。この場合にも、マスタ装置11は、通信経路上の各々のスレーブ装置までの伝送遅延時間を計測する。この計測動作を第3の遅延時間計測とする。
マスタ装置11は、次に、図15の情報(6)および(7)に基づいて、図19に示した経路、すなわち、スレーブ装置23および21を経由してスレーブ装置22に至る通信経路における伝送遅延時間を計測する。図19は、伝送遅延時間の計測を行う第4の通信経路を示す図である。この場合にも、マスタ装置11は、通信経路上の各々のスレーブ装置までの伝送遅延時間を計測する。この計測動作を第4の遅延時間計測とする。
マスタ装置11は、次に、図15の情報(8)に基づいて、図20に示した経路、すなわち、スレーブ装置23および21を経由してスレーブ装置24に至る通信経路における伝送遅延時間を計測する。図20は、伝送遅延時間の計測を行う第5の通信経路を示す図である。この場合にも、マスタ装置11は、通信経路上の各々のスレーブ装置までの伝送遅延時間を計測する。この計測動作を第5の遅延時間計測とする。
マスタ装置11は、次に、図15の情報(9)〜(11)に基づいて、図21に示した経路、すなわち、スレーブ装置23、22および21を経由してスレーブ装置24に至る通信経路における伝送遅延時間を計測する。図21は、伝送遅延時間の計測を行う第6の通信経路を示す図である。この場合にも、マスタ装置11は、通信経路上の各々のスレーブ装置までの伝送遅延時間を計測する。この計測動作を第6の遅延時間計測とする。
マスタ装置11は、上記の第1の遅延時間計測〜第6の遅延時間計測が終了すると、得られた計測結果に基づいて、各スレーブ装置までの通信経路を選択する。具体的には、マスタ装置11は、各スレーブ装置までの伝送遅延時間が最小となる通信経路を選択する。
図22は、伝送遅延時間の計測結果の一例を示す図である。図22に示した‘B’〜‘E’はスレーブ装置21〜24のIDである。“B[時間]”は、IDが‘B’のスレーブ装置21までの伝送遅延時間を示す。同様に、“C[時間]”はスレーブ装置22までの伝送遅延時間を示し、“D[時間]”はスレーブ装置23までの伝送遅延時間を示し、“E[時間]”はスレーブ装置24までの伝送遅延時間を示す。
図22において、計測ルートが“A(P3)→(P1)B(P3)→(P3)C(P1)→(P3)D”とされている計測結果は、第1の遅延時間計測で得られた計測結果、計測ルートが“A(P3)→(P1)B(P4)→(P2)D(P3)→(P1)C”とされている計測結果は、第2の遅延時間計測で得られた計測結果である。また、計測ルートが“A(P3)→(P1)B(P2)→(P4)E”とされている計測結果は、第3の遅延時間計測で得られた計測結果、計測ルートが“A(P1)→(P1)D(P2)→(P4)B(P3)→(P3)C”とされている計測結果は、第4の遅延時間計測で得られた計測結果である。計測ルートが“A(P1)→(P1)D(P2)→(P4)B(P2)→(P4)E”とされている計測結果は、第5の遅延時間計測で得られた計測結果、計測ルートが“A(P1)→(P1)D(P3)→(P1)C(P3)→(P3)B(P2)→(P4)E”とされている計測結果は、第6の遅延時間計測で得られた計測結果である。
図22に示した計測結果に基づいて通信経路を選択する場合、マスタ装置11は、スレーブ装置21までの通信経路については、伝送遅延時間が最小値2となる通信経路、具体的には、マスタ装置11のポートP3からスレーブ装置21のポートP1に至る通信経路を選択する。また、マスタ装置11は、スレーブ装置22までの通信経路については、伝送遅延時間が最小値4となる通信経路、具体的には、マスタ装置11のポートP3からスレーブ装置21のポートP1に至り、さらに、スレーブ装置21のポートP3からスレーブ装置22のポートP3に至る通信経路を選択する。また、マスタ装置11は、スレーブ装置23までの通信経路については、伝送遅延時間が最小値4となる通信経路、具体的には、マスタ装置11のポートP1からスレーブ装置23のポートP1に至る通信経路を選択する。また、マスタ装置11は、スレーブ装置24までの通信経路については、伝送遅延時間が最小値5となる通信経路、具体的には、マスタ装置11のポートP3からスレーブ装置21のポートP1に至り、さらに、スレーブ装置21のポートP2からスレーブ装置24のポートP4に至る通信経路を選択する。この結果、図23に示した経路が選択される。図23において、実線は選択された経路、破線は選択されなかった経路を示している。マスタ装置11において、通信経路の選択は、例えば、図2に示した同期精度解析部242または構成探索解析部243が行う。この場合、同期精度解析部242または構成探索解析部243が経路選択部を構成する。
また、マスタ装置11は、通信経路を選択した後、選択した通信経路で通信が行われるよう、一部のスレーブ装置に対して、ポートの設定変更を指示する。例えば、選択した通信経路が図23に示したものである場合、マスタ装置11は、自分が送信したフレームがスレーブ装置21とスレーブ装置23との間で送受信されないよう、スレーブ装置21および23の少なくとも一方に対してポートの設定変更を指示する。同様に、マスタ装置11は、自分が送信したフレームがスレーブ装置22とスレーブ装置23との間で送受信されないよう、スレーブ装置22および23の少なくとも一方に対してポートの設定変更を指示する。スレーブ装置は、マスタ装置11からポートの設定変更の指示を受けた場合、指示内容に従い、ポートの設定を変更する。
なお、マスタ装置11がスレーブ装置21〜24との間の通信経路を選択する場合の動作について説明したが、同様の手順でスレーブ装置21〜24が通信経路を選択することも可能である。スレーブ装置21〜24は、通信経路を選択する場合、図4に示した構成の情報を含んだ探索フレームを送信し、各通信装置の物理的な接続形態の情報を収集すればよい。
また、本実施の形態において、マスタ装置11は、選択可能な通信経路の中から、伝送遅延時間が最も小さいものを選択することとしたが、これに限定されない。例えば、高精度な制御を実現するためには、マスタ装置11とスレーブ装置との通信が安定して行えることが重要であり、伝送遅延時間の長さよりも伝送遅延時間の揺らぎの大きさが重要となる場合がある。すなわち、伝送遅延時間の平均値は小さいが伝送遅延時間の揺らぎが大きい通信経路を使用して制御を行う場合よりも、伝送遅延時間の平均値は大きいが伝送遅延時間の揺らぎが小さい通信経路を使用して制御を行う場合の方が、結果として高精度な制御を実現できる場合がある。そのため、マスタ装置11は、選択可能な各通信経路について、伝送遅延時間の揺らぎを計測し、揺らぎが最も小さい通信経路を選択するようにしてもよい。
また、マスタ装置11は、図22に示したような伝送遅延時間の計測結果を保持しておき、スレーブ装置の故障または接続不良といった要因により、選択した通信経路での通信が遮断された場合には、経路探索動作を再度実施することなく、保持している計測結果を参照して新たな通信経路を選択することができる。例えば、マスタ装置11は、保持している計測結果が図22に示したものであるときに、IDが‘B’のスレーブ装置21を経由してIDが‘C’のスレーブ装置23と通信することができなくなった場合、スレーブ装置21を経由する経路の次に伝送遅延時間が小さい経路、具体的には、伝送遅延時間が‘6’となる経路を新たな通信経路として選択する。すなわち、マスタ装置11は、スレーブ装置23との通信経路として、IDが‘D’のスレーブ装置23を経由してスレーブ装置23に到達する経路を選択する。マスタ装置11とスレーブ装置22との間の通信経路を新たに選択する場合について説明したが、マスタ装置11とその他のスレーブ装置との間の通信経路を新たに選択する場合も同様である。このように、本実施の形態にかかるマスタ装置11を物理的なメッシュ構造のネットワークに適用して論理的なツリー構造のネットワークを構築する場合、伝送遅延時間を一度計測して理想的な論理ネットワークを構築した後は、ある通信経路で問題が発生して通信が遮断した場合に、経路探索を再度行うことなく、保持している測定結果を利用して、次に理想的な論理ネットワーク、すなわち、通信が遮断した経路を、この経路の次に伝送遅延時間が小さい経路に切り替えた論理ネットワークを構築することができる。
以上のように、本実施の形態にかかる通信ネットワークにおいて、通信装置は、通信経路の設定を行う場合、送信ポートの情報、受信ポートの情報および自分の識別情報を含んだ探索フレームを動作中の各通信ポートから送信し、通信ネットワークを形成している各通信装置同士の物理的な接続関係を表す情報を収集する。また、通信装置は、他の通信装置から探索フレームを受信した場合、探索フレームに含まれている情報に基づいて転送処理を実行する。このとき、通信装置は、必要に応じて、探索フレームを受信したポートの情報、自分の識別情報および探索フレームを送信するポートの情報を、転送する探索フレームに追加する。これにより、本実施の形態にかかる通信装置は、通信ネットワークの全体構成を把握することができる。この結果、通信装置は、選択可能な全ての通信経路の中から、産業用ネットワークに適した通信経路を選択することが可能となる。
ここで、通信装置を実現するハードウェアについて説明する。図24は、図2に示した構成の通信装置を実現するハードウェアの構成例を示す図である。
本実施の形態にかかる通信装置は、図24に示した制御回路100により実現することができる。制御回路100は、送信回路101、プロセッサ102、メモリ103および受信回路104を含んで構成されている。送信回路101は、図24では記載を省略している送受信ポートを介して信号を送信する回路である。プロセッサ102は、CPU(Central Processing Unit、中央処理装置、処理装置、演算装置、マイクロプロセッサ、マイクロコンピュータ、プロセッサ、DSP(Digital Signal Processor)ともいう)、システムLSI(Large Scale Integration)などである。メモリ103は、RAM(Random Access Memory)、ROM(Read Only Memory)、フラッシュメモリー、EPROM(Erasable Programmable Read Only Memory)、EEPROM(登録商標)(Electrically Erasable Programmable Read-Only Memory)等の、不揮発性または揮発性の半導体メモリ、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ミニディスクまたはDVD(Digital Versatile Disc)等である。受信回路104は、図24では記載を省略している送受信ポートを介して信号を受信する回路である。
受信フレーム解析部230、送信フレーム生成部231、状態管理部232およびタイマ管理部233は、それぞれに対応するプログラムをメモリ103から読み出してプロセッサ102が実行することにより実現できる。また、情報記憶部234は、メモリ103により実現される。メモリ103はプロセッサ102が実施する各処理における一時メモリとしても使用される。また、送信部221〜224は、送信回路101により実現され、受信部225〜228は、受信回路104により実現される。
なお、受信フレーム解析部230、送信フレーム生成部231、状態管理部232およびタイマ管理部233を専用のハードウェアで実現してもよい。
図25は、受信フレーム解析部230、送信フレーム生成部231、状態管理部232およびタイマ管理部233を専用のハードウェアで実現する場合のハードウェア構成図である。図25に示した制御回路100aは、図24に示したプロセッサ102およびメモリ103を処理回路105に置き換えたものである。処理回路105は、受信フレーム解析部230、送信フレーム生成部231、状態管理部232およびタイマ管理部233を実現する専用のハードウェアである。処理回路105は、単一回路、複合回路、プログラム化したプロセッサ、並列プログラム化したプロセッサ、ASIC(Application Specific Integrated Circuit)、FPGA(Field Programmable Gate Array)、またはこれらを組み合わせた回路である。
なお、受信フレーム解析部230、送信フレーム生成部231、状態管理部232およびタイマ管理部233の一部を処理回路105で実現し、残りを図24に示したプロセッサ102およびメモリ103で実現する構成としてもよい。
以上の実施の形態に示した構成は、本発明の内容の一例を示すものであり、別の公知の技術と組み合わせることも可能であるし、本発明の要旨を逸脱しない範囲で、構成の一部を省略、変更することも可能である。
上述した課題を解決し、目的を達成するために、本発明は、通信ネットワークを形成する通信装置であり、他の通信装置との通信経路を設定する場合に通信経路の探索用のフレームである探索フレームを生成するとともに、探索フレームを他の通信装置へ送信し、探索フレームが他の通信装置を経由して自己に戻るまでの情報に基づき、他の通信装置の各々との伝送遅延時間が最短となる通信経路を選択し、探索フレームを生成する際、探索フレームに自分の識別情報および探索フレームを送信するポートの情報を含ませ、他の通信装置で生成された探索フレームを受信した場合には、探索フレームを受信したポートの情報、自分の識別情報および探索フレームを送信するポートの情報を、受信した探索フレームに追加して転送し、探索フレームを受信したポートの他に動作中のポートが存在する場合は動作中のポートの各々から、探索フレームを受信したポートの情報、自分の識別情報および探索フレームを送信するポートの情報を追加した後の探索フレームを送信し、探索フレームを受信したポートの他に動作中のポートが存在しない場合は探索フレームを受信したポートから、探索フレームを受信したポートの情報、自分の識別情報および探索フレームを送信するポートの情報を追加した後の探索フレームを送信する。