(57)【特許請求の範囲】
【請求項１】
リング型の物理トポロジに接続された複数のノード装置を経由してデータフレームが周回する第１のデータ伝送経路と逆向きに周回する第２のデータ伝送経路とを形成する場合と、前記第１のデータ伝送経路に前記第２のデータ伝送経路を接続して１つのデータ伝送経路を形成する場合とを動的に切り換え、
前記複数のノード装置のうちの１つがマスタとなる一方、他のノード装置は前記マスタからの指示に応じた処理を実行するスレーブとなって各ノード装置が有するタイマを同期させる際に、前記マスタはデータ伝送経路の変化に応じてタイマ同期のための通信制御を切り換え、
前記マスタは、
タイマ値のラッチを各ノード装置に指示するラッチ指示メッセージを前記第１のデータ伝送経路に沿って送信し、当該ラッチ指示メッセージが前記第１のデータ伝送経路のみを経由して戻ってきた場合には当該ラッチ指示メッセージを前記第２のデータ伝送経路へ転送するラッチ指示手段と、
前記ラッチ指示メッセージを受信する毎にスレーブにおいてラッチされたタイマ値を各スレーブから収集する収集手段と、
前記各スレーブについて、自装置との間の伝送遅延時間を前記収集手段により当該スレーブから収集されたタイマ値から算出する算出手段と、
前記各スレーブに対して、マスタにおける現在のタイマ値と前記算出手段により算出された当該スレーブについての伝送遅延時間とを通知してタイマ値の補正を指示する同期制御手段と、
を有し、
前記ラッチ指示メッセージは、タイマ値のラッチが行われたか否かを示すタイマ値有効フラグをノード装置毎およびデータ伝送経路毎に有し、
前記ラッチ指示手段は、前記第１のデータ伝送経路から戻ってきたラッチ指示メッセージにおいて、当該第１のデータ伝送経路に対応するタイマ値有効フラグのみがセットされていた場合に、当該ラッチ指示メッセージは前記第１のデータ伝送経路のみを経由したと判定する
ことを特徴とする通信システム。
【請求項２】
前記マスタは、
データ伝送経路の変化を検知する検知手段を備え、
データ伝送経路の変化を前記検知手段により検知したことを契機として前記ラッチ指示手段によるラッチ指示メッセージの送信を行う
ことを特徴とする請求項１に記載の通信システム。
【請求項３】
前記収集手段により収集されたタイマ値または当該タイマ値より算出されるノード装置間遅延時間を記憶する記憶手段を備え、
前記算出手段は、
前記各スレーブについての自装置との間の伝送遅延時間を、前記記憶手段の記憶内容を用いて算出する
ことを特徴とする請求項１に記載の通信システム。
【請求項４】
前記マスタは、
データ伝送経路の変化を検知する検知手段を備え、
データ伝送経路の変化を前記検知手段により検知した場合には、変化後のデータ伝送経路における各スレーブについての自装置との間の伝送遅延時間を、前記記憶手段の記憶内容を用いて前記算出手段により算出し、前記同期制御手段により通知する
ことを特徴とする請求項３に記載の通信システム。
【請求項５】
前記検知手段は前記物理トポロジの切断を検知する手段であり、
前記物理トポロジに切断が発生していない場合には前記第１および前記第２のデータ伝送経路が形成され、前記物理トポロジに切断が発生した場合にはその切断箇所を挟む各ノード装置において前記第１のデータ伝送経路に前記第２のデータ伝送経路が接続される
ことを特徴とする請求項２または請求項４に記載の通信システム。
【請求項６】
前記検知手段は前記物理トポロジの回復を検知し、
前記同期制御手段は、前記検知手段により前記物理トポロジの回復が検知された場合には、前記マスタにおける現在のタイマ値のみを前記各スレーブへ通知してタイマ値の補正を指示し、
前記各スレーブは、
前記物理トポロジに切断が発生していない状況下で前記マスタから通知された伝送遅延時間を保持する保持手段を備え、前記マスタにおける現在のタイマ値のみを通知された場合には前記保持手段に保持されている伝送遅延時間と当該タイマ値とを用いて自装置のタイマのタイマ値を補正する
ことを特徴とする請求項５に記載の通信システム。
【請求項７】
データフレームが各ノード装置を経由して周回する第１のデータ伝送経路と逆向きに周回する第２のデータ伝送経路とを形成する場合と、前記第１のデータ伝送経路に前記第２のデータ伝送経路を接続して１つのデータ伝送経路を形成する場合と、を動的に切り換える通信システムを１または複数の他のノード装置とともに構成するノード装置であって、
タイマ値のラッチを前記１または複数の他のノード装置の各々に指示するラッチ指示メッセージを前記第１のデータ伝送経路に沿って送信し、当該ラッチ指示メッセージが前記第１のデータ伝送経路のみを経由して戻ってきた場合には当該ラッチ指示メッセージを前記第２のデータ伝送経路へ転送するラッチ指示手段と、
前記１または複数の他のノード装置の各々において前記ラッチ指示メッセージを受信する毎にラッチされたタイマ値を収集する収集手段と、
前記１または複数の他のノード装置の各々について、自装置との間の伝送遅延時間を前記収集手段により当該他のノード装置から収集されたタイマ値から算出する算出手段と、
前記１または複数の他のノード装置の各々について、自装置における現在のタイマ値と前記算出手段により算出された当該他のノード装置についての伝送遅延時間とを通知してタイマ値の補正を指示する同期制御手段と、
を有し、
前記ラッチ指示メッセージは、タイマ値のラッチが行われたか否かを示すタイマ値有効フラグをノード装置毎およびデータ伝送経路毎に有し、
前記ラッチ指示手段は、前記第１のデータ伝送経路から戻ってきたラッチ指示メッセージにおいて、当該第１のデータ伝送経路に対応するタイマ値有効フラグのみがセットされていた場合に、当該ラッチ指示メッセージは前記第１のデータ伝送経路のみを経由したと判定する
を有することを特徴とするノード装置。
【請求項８】
コンピュータを、
データフレームが各ノード装置を経由して周回する第１のデータ伝送経路と逆向きに周回する第２のデータ伝送経路とを形成する場合と、前記第１のデータ伝送経路に前記第２のデータ伝送経路を接続して１つのデータ伝送経路を形成する場合と、を動的に切り換える通信システムを１または複数の他のノード装置とともに構成するノード装置として機能させるプログラムであって、
前記コンピュータを、
タイマ値のラッチを前記１または複数の他のノード装置の各々に指示するラッチ指示メッセージを前記第１のデータ伝送経路に沿って送信し、当該ラッチ指示メッセージが前記第１のデータ伝送経路のみを経由して戻ってきた場合には当該ラッチ指示メッセージを前記第２のデータ伝送経路へ転送するラッチ指示手段と、
前記１または複数の他のノード装置の各々において前記ラッチ指示メッセージを受信する毎にラッチされたタイマ値を収集する収集手段と、
前記１または複数の他のノード装置の各々について、自装置との間の伝送遅延時間を前記収集手段により当該他のノード装置から収集されたタイマ値から算出する算出手段と、
前記１または複数の他のノード装置の各々について、自装置における現在のタイマ値と前記算出手段により算出された当該他のノード装置についての伝送遅延時間とを通知してタイマ値の補正を指示する同期制御手段と、して機能させ、
前記ラッチ指示メッセージは、タイマ値のラッチが行われたか否かを示すタイマ値有効フラグをノード装置毎およびデータ伝送経路毎に有し、
前記ラッチ指示手段は、前記第１のデータ伝送経路から戻ってきたラッチ指示メッセージにおいて、当該第１のデータ伝送経路に対応するタイマ値有効フラグのみがセットされていた場合に、当該ラッチ指示メッセージは前記第１のデータ伝送経路のみを経由したと判定する
ことを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のノード装置を含む通信システムにおける各ノード装置のタイマの時刻合わせを行うタイマ同期技術に関し、特にリング型の論理トポロジを有する通信システムにおけるタイマ同期技術に関する。
【背景技術】
【０００２】
論理トポロジとは、通信システムにおけるデータ伝送経路の論理的な形態のことを言う。通信システムにおける論理トポロジは、通信システムにおける各ノード装置の物理的な接続形態である物理トポロジとは必ずしも一致しない。例えば、各ノード装置を一直線に接続するバス型の物理トポロジを有する通信システムであったとしても、両端のノード装置においてデータ伝送経路を折り返し、各ノード装置においてデータを往きと戻りの２回中継することで、リング型の論理トポロジを実現することができる。リング型の論理トポロジを有する通信システムの一例としては、工場やプラントなどの産業施設内に敷設され、当該施設における操業を支援するための制御システムが挙げられる。
【０００３】
制御システムには、産業施設内に設置されたセンサからの監視データの収集やその収集結果に応じて電動機等の駆動制御を行う制御装置や、センサ等と制御装置との間のデータ通信を中継する中継装置がノード装置として含まれている。制御システムでは、通信の不通に起因する操業停止を回避するために、リング型の物理トポロジが採用されることが多い。バス型の物理トポロジの場合、ノード装置間の通信線の１箇所に断線が発生すると、システム全体の機能が損なわれる一方、リング型の物理トポロジであれば、その物理トポロジにおいて断線箇所を挟んで並ぶ各ノード装置において折り返しを行うことにより、バス型として運用を継続することが可能だからである。以下では、リング型の物理トポロジを有するシステムを「リング型のシステム」と呼び、バス型の物理トポロジを有するシステムを「バス型のシステム」と呼ぶ。
【０００４】
制御システムにおいては複数のノード装置が連携して処理を実行するため、タイマ同期技術が極めて重要となる。例えば、印刷所において多色刷りの印刷機器等の制御を行う制御システムであれば、タイマ同期が実現されていないことに起因して色ずれ等が発生する虞がある。この種の制御システムは一般に大規模であるため、機械的な仕組みでタイマ同期を実現することは困難である。このため、制御システムにおけるタイマ同期は、通信ネットワーク経由で実現されることが多い。通信ネットワークにおける一般的なタイマ同期技術としては、Network  Time  Protocol  (NTP)やIEEE1588などが広く知られている。また、制御システムにおけるタイマ同期に関する先行技術文献としては、特許文献１や特許文献２が挙げられる。特許文献１には、データ伝送方向が互いに逆向きの２つのリング型のデータ伝送経路が形成されるリング型の制御システムにおけるタイマ同期技術が開示されている。より詳細に説明すると、特許文献１に開示の技術では、２つのデータ伝送経路の各々に沿ってタイマ同期のマスタ局から同期対象のターゲット局宛てにメッセージを流し、ターゲット局までのメッセージ到達時間差を基にターゲット局のタイマ同期が行われる。特許文献２には、リング型の論理トポロジを１つだけ有するバス型の制御システムにおけるタイマ同期技術が開示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平６−２１４０６０号公報
【特許文献２】特開２０１１−９８２９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
リング型のシステムでは、通信線等の断線等に起因して論理トポロジを切り換えることで通信の信頼性を向上させることができるのであるが、このように論理トポロジが動的に切り換わるシステムにおけるノード装置間のタイマ同期を実現する技術は従来なかった。例えば特許文献１に開示の技術はデータ伝送方向が互いに逆向きの２つのリング型のデータ伝送経路を有することを前提とした技術であるため、物理トポロジがバス型に切り換わり、上記２つのデータ伝送経路が１つに接続された場合には対応できない。同様に、特許文献２に開示の技術は、リング型のデータ伝送経路を１つだけ有することを前提とした技術であり、リング型のデータ伝送経路が２つ形成されるリング型の物理トポロジには対応できない。
【０００７】
本発明は以上に説明した事情に鑑みて為されたものであり、論理トポロジが動的に変化する通信システムにおいて、ノード装置間のタイマ同期を実現する技術を提供することを目的とする。
【課題を解決するための手段】
【０００８】
上記課題を解決するために本発明は以下の通信システムを提供する。この通信システムは、リング型の物理トポロジに接続された複数のノード装置を含む。この通信システムでは、データフレームが各ノード装置を経由して周回する第１のデータ伝送経路と逆向きに周回する第２のデータ伝送経路とを形成する場合と、第１のデータ伝送経路に第２のデータ伝送経路を接続して１つのデータ伝送経路を形成する場合とが動的に切り換わる。この通信システムでは、複数のノード装置のうちの１つがマスタとなる一方、他のノード装置はマスタからの指示に応じた処理を実行するスレーブとなって各ノード装置が有するタイマを同期させる。マスタはデータ伝送経路の変化に応じてタイマ同期のための通信制御を切り換える。リング型の通信システムにおいてデータ伝送経路の変化が発生する要因の典型例としては、ノード装置間の通信線の断線やノード装置の故障等による脱落等に起因する物理トポロジの切断、すなわちリング型からバス型への物理トポロジの変化が挙げられるが、これに限られるものではない。例えば、ネットワーク管理者等が各ノード装置の設定等を変更することで、通信システムにおけるデータ伝送経路、すなわち通信システムにおける論理トポロジを強制的に変化させる場合も考えられる。
【０００９】
例えば、タイマ同期技術として特許文献１に開示の技術を利用する場合、第１および第２のデータ伝送経路が別個に存在している場合には、上記マスタおよびスレーブには特許文献１に開示の処理をそのまま実行させ、第１および第２のデータ伝送経路が接続されて一つのリング型のデータ伝送経路が形成された状況下では、上記マスタには第１のデータ伝送経路と第２のデータ伝送経路の何れか一方のみにタイマ同期用のメッセージを送出させるようにすれば良い。
【００１０】
また、タイマ同期技術として特許文献２に開示の技術を利用する場合には、マスタに、以下のラッチ指示手段、収集手段、算出手段および同期制御手段を設けるようにすれば良い。ラッチ指示手段は、タイマ値のラッチを各ノード装置に指示するラッチ指示メッセージを第１のデータ伝送経路に沿って送信し、当該ラッチ指示メッセージが第１のデータ伝送経路のみを経由して戻ってきた場合には当該ラッチ指示メッセージを第２のデータ伝送経路へ転送する。収集手段は、ラッチ指示メッセージを受信する毎にスレーブにおいてラッチされたタイマ値を、各スレーブから収集する。算出手段は、各スレーブについて、自装置（マスタ）との間の伝送遅延時間を、収集手段により当該スレーブから収集されたタイマ値から算出する。そして、同期制御手段は、各スレーブに対して、マスタにおける現在のタイマ値と算出手段により算出された当該スレーブについての伝送遅延時間とを通知してタイマ値の補正を指示する。
【００１１】
上記マスタから送信される「ラッチ指示メッセージ」は特許文献２におけるものと同様であり、収集手段によるタイマ値の収集方法、算出手段による伝送遅延時間の算出方法、同期制御手段によるタイマ値の補正指示に関しても特許文献２におけるものと同様である。つまり、本発明の通信システムでは、特許文献２に開示の技術を利用して各ノード装置間のタイマ同期が実現される。前述したように特許文献２に開示の技術は、バス型の物理トポロジを前提とした技術ではあるが、本発明では、ラッチ指示手段により送信したラッチ指示メッセージが第１のデータ伝送経路のみを経由して戻ってきた場合に第２のデータ伝送経路へ転送する処理をラッチ指示手段に行わせるため、特段の問題は生じない。理由は以下の通りである。
【００１２】
マスタから第１のデータ伝送経路へ送出したラッチ指示メッセージが当該第１のデータ伝送経路のみを経由してマスタに戻ってくるのは、第１および第２のデータ伝送経路が別個独立に存在している場合である。例えば、物理トポロジに切断が発生していない場合には、第１および第２のデータ伝送経路が形成される。この場合、特許文献２に開示の技術をそのまま用いると、第２のデータ伝送経路に沿ってラッチ指示メッセージが伝送されることはなく、伝送遅延時間を算出できなくなる。しかし、本発明では、リング型の物理トポロジに切断が発生していない場合のように第１および第２のデータ伝送経路が別個独立に存在している場合には、第１のデータ伝送経路経由で受信したラッチ指示メッセージを第２のデータ伝送経路へ転送する処理がラッチ指示手段によって実行されるため、特許文献２に開示の技術を利用して各スレーブの伝送遅延時間を問題なく算出することができる。
【００１３】
本発明によれば、論理トポロジが動的に切り換わるリング型の通信システムにおいて、ノード装置間のタイマ同期を実現できるようになる。
【００１４】
より好ましい態様においては、マスタは、データ伝送経路の変化を検知する検知手段を備え、データ伝送経路の変化を検知手段により検知したことを契機としてラッチ指示手段によるラッチ指示メッセージの送信を行うことを特徴とする。このような態様によれば、データ伝送経路に変化が発生した時点から遅滞なく各スレーブの伝送遅延時間を再計算し、新たに計算された伝送遅延時間に基づいてタイマ同期を行うことが可能になる。
【００１５】
上記収集手段により収集されたタイマ値または当該タイマ値より算出されるノード装置間遅延時間を記憶する記憶手段を上記通信システムに設け、上記マスタの算出手段には、各スレーブについての自装置との間の伝送遅延時間を記憶手段の記憶内容を用いて算出させても良い。さらに好ましい態様においては、上記検知手段をマスタに設け、マスタに以下の処理を実行させる態様が考えられる。すなわち、マスタは、データ伝送経路の変化を検知手段により検知した場合には、変化後のデータ伝送経路における各スレーブについての自装置との間の伝送遅延時間を記憶手段の記憶内容を用いて算出手段により算出し、同期制御手段により各スレーブへ通知する。このような態様によれば、データ伝送経路に変化が発生したことを契機とするタイマ同期の際には、タイマ値のラッチおよびタイマ値の収集を行うことなくタイマ同期を実現でき、データ伝送経路に変化が発生した時点からタイマ同期完了までの所要時間を短縮することが可能になる。
【００１６】
例えば、物理トポロジに切断が発生していない場合には、第１および第２のデータ伝送経路が形成される一方、物理トポロジに切断が発生した場合にはその切断箇所を挟む各ノード装置において第１のデータ伝送経路に第２のデータ伝送経路を接続する通信システムであれば、上記検知手段として物理トポロジの切断を検知する手段を用いるようにすれば良い。そして、さらに好ましい態様としては以下の態様が考えられる。検知手段は物理トポロジの回復を検知し、同期制御手段は、検知手段により物理トポロジの回復が検知された場合には、マスタにおける現在のタイマ値のみを各スレーブへ通知してタイマ値の補正を指示する。一方、各スレーブは、物理トポロジに切断が発生していない状況下でマスタから通知された伝送遅延時間を保持する保持手段を備え、マスタにおける現在のタイマ値のみを通知された場合には保持手段に保持されている伝送遅延時間と当該タイマ値とを用いて自装置のタイマのタイマ値を補正する。このような態様によれば、物理トポロジの切断が回復された際にラッチ指示メッセージの送信、タイマ値の収集および伝送遅延時間の算出を省略してタイマ同期を行うことが可能になる。物理トポロジに切断が発生する前の状態と、切断が回復された後の状態では、各スレーブについての伝送遅延時間に大差は無いと考えられるからである。
【００１７】
また、本発明の別の態様としては、上記タイマ同期技術におけるマスタとして機能するノード装置として、上記ラッチ指示手段、上記収集手段、上記算出手段および上記同期制御手段を有するノード装置を提供する態様が考えられる。特許文献２に開示の技術によりタイマ同期を行うバス型の通信システムの接続形態をリング型に変更し、さらに当該システムにおけるマスタを本発明のノード装置に置き換えるだけで、タイマ同期に支障を発生させることなく、上記通信システムの物理トポロジをリング型に変更して障害耐性を高めることが可能になる。また、本発明のさらに別の態様としては、ＣＰＵ（Central Processing Unit）などの一般的なコンピュータを上記ラッチ指示手段、上記収集手段、上記算出手段および上記同期制御手段として機能させるプログラムを提供する態様が考えられる。一般的なノード装置のＣＰＵを上記プログラムにしたがって作動させることで、当該ノード装置を本発明のノード装置として機能させることができる。なお、上記プログラムの具体的な提供態様としては、フラッシュＲＯＭ（read Only Memory）などのコンピュータ読み取り可能な記録媒体に書き込んで配布する態様や、インターネットなどの電気通信回線経由のダウンロードにより配布する態様が考えられる。
【００１８】
また、本発明の別の態様としては、上記タイマ同期技術におけるスレーブとして機能するノード装置として、タイマと、以下の第１および第２のラッチ回路と、同期制御手段と、保持手段と、を備えるノード装置を提供する態様が考えられる。第１のラッチ回路は、ラッチ指示メッセージを第１のデータ伝送経路経由で受信する毎にタイマのタイマ値をラッチする。第２のラッチ回路は、ラッチ指示メッセージを第２のデータ伝送経路経由で受信する毎にタイマのタイマ値をラッチする。同期制御手段は、マスタからの収集要求に応じて第１および第２のラッチ回路にラッチされているタイマ値を返信する一方、マスタから通知されたタイマ値と伝送遅延時間とに応じてタイマのタイマ値を補正する。保持手段は、物理トポロジに切断が発生していない状況下でマスタから通知された伝送遅延時間を保持する。そして、同期制御手段は、マスタからタイマ値のみを通知された場合には、保持手段に保持されている伝送遅延時間と当該タイマ値とを用いてタイマのタイマ値を補正する。
【発明の効果】
【００１９】
本発明によれば、論理トポロジが動的に切り換わるリング型の通信システムにおいて、ノード装置間のタイマ同期を実現することが可能になる。
【図面の簡単な説明】
【００２０】
【図１】本発明の第１実施形態による通信システム１の構成例を示す図である。
【図２】同通信システム１に含まれるノード装置１０の構成例を示すブロック図である。
【図３】同通信システム１における論理トポロジを説明するための図である。
【図４】マスタとして機能するノード装置１０において実行されるタイマ同期処理の流れを示すフローチャートである。
【図５】同タイマ同期処理のステップＳＡ０１０にて実行される遅延設定処理の流れ示すフローチャートである。
【図６】物理トポロジがリング型である場合のマスタの動作を説明するための図である。
【図７】物理トポロジがリング型である場合の通信シーケンスの一例を示す図である。
【図８】遅延設定処理のステップＳＡ１３０において実行される遅延時間計算処理の流れを示すフローチャートである。
【図９】本発明の第３実施形態のノード装置１０に記憶されるノード装置間遅延時間管理テーブルの一例を示す図である。
【発明を実施するための形態】
【００２１】
以下、図面を参照しつつ本発明の実施形態を説明する。
（Ａ：第１実施形態）
図１は、本発明の第１実施形態による通信システム１の構成例を示す図である。通信システム１は、工場やプラントなどの産業施設内に敷設され、その産業施設における操業を制御する制御システムである。図１に示すように通信システム１は、ノード装置１０Ａ、１０Ｂ、１０Ｃ、１０Ｄおよび１０Ｅを含んでいる。ノード装置１０Ａ、１０Ｂ、１０Ｃ、１０Ｄおよび１０Ｅの各々は、図１に示すようにネットワーク接続部ＮＷ１とＮＷ２の２つのネットワーク接続部を有しており、ネットワーク接続部ＮＷ１およびＮＷ２の各々には通信線が接続される。図１に示すように、通信システム１に含まれる５台のノード装置は、リング型の物理トポロジに接続されている。通信システム１では、上記５台のノード装置のうち、ノード装置１０Ａがマスタとなり、他の４台は当該マスタからの指示に応じた処理を実行するスレーブとなってタイマ同期が行われる。以下では、上記５つのノード装置の各々を区別する必要がない場合には「ノード装置１０」と表記する。
【００２２】
図２は、ノード装置１０の構成例を示すブロック図である。
ノード装置１０は、ネットワーク接続部ＮＷ１およびＮＷ２の他に、タイマ３２と、ラッチ回路（図２では、「ラッチ」と表記）３３および３４と、処理部３５と、を有する。ネットワーク接続部ＮＷ１とネットワーク接続部ＮＷ２の各々は入力端子と出力端子を夫々１つずつ有する。図２に示すように、ネットワーク接続部ＮＷ１の入力端子ＮＷ１−ｉｎは、ラッチ回路３３および処理部３５を介してネットワーク接続部ＮＷ２の出力端子ＮＷ２−ｏｕｔに接続されている。ネットワーク接続部ＮＷ２の入力端子ＮＷ２−ｉｎは、ラッチ回路３４を介してネットワーク接続部ＮＷ１の出力端子ＮＷ１−ｏｕｔに接続されている。
【００２３】
通信システム１では、物理トポロジに沿って互いに隣接する２つのノード装置１０のうちの一方の出力端子ＮＷ２−ｏｕｔと他方の入力端子ＮＷ１−ｉｎとが接続されるとともに、上記一方の入力端子ＮＷ２−ｉｎと他方の出力端子ＮＷ１−ｏｕｔとが接続されるように、ノード装置１０間の通信線が配線されている。例えば、ノード装置１０Ａの出力端子ＮＷ２−ｏｕｔはノード装置１０Ｂの入力端子ＮＷ１−ｉｎに接続されており、ノード装置１０Ａの入力端子ＮＷ２−ｉｎはノード装置１０Ｂの出力端子ＮＷ１−ｏｕｔに接続されている。ノード装置１０Ｂの出力端子ＮＷ２−ｏｕｔはノード装置１０Ｃの入力端子ＮＷ１−ｉｎに接続されており、ノード装置１０Ｂの入力端子ＮＷ２−ｉｎはノード装置１０Ｃの出力端子ＮＷ１−ｏｕｔに接続されている。ノード装置１０Ｃとノード装置１０Ｄ、ノード装置１０Ｄとノード装置１０Ｅ、ノード装置１０Ｅとノード装置１０Ａについても同様である。
【００２４】
これにより、通信システム１では、図３にて実線で示す第１のデータ伝送経路Ｄ１と同点線で示す第２のデータ伝送経路Ｄ２が形成される。図３を参照すれば明らかように第１のデータ伝送経路Ｄ１および第２のデータ伝送経路Ｄ２の論理トポロジは何れもリング型である。第１のデータ伝送経路Ｄ１は、ノード装置１０Ａの出力端子ＮＷ２−ｏｕｔ→ノード装置１０Ｂの入力端子ＮＷ１−ｉｎ→ノード装置１０Ｂの出力端子ＮＷ２−ｏｕｔ→ノード装置１０Ｃの入力端子ＮＷ１−ｉｎ→・・・ノード装置１０Ｅの出力端子ＮＷ２−ｏｕｔ→ノード装置１０Ａの入力端子ＮＷ１−ｉｎといったデータ伝送経路である。一方、第２のデータ伝送経路Ｄ２は、ノード装置１０Ａの出力端子ＮＷ１−ｏｕｔ→ノード装置１０Ｅの入力端子ＮＷ２−ｉｎ→ノード装置１０Ｅの出力端子ＮＷ１−ｏｕｔ→ノード装置１０Ｄの入力端子ＮＷ２−ｉｎ→・・・ノード装置１０Ｂの出力端子ＮＷ１−ｏｕｔ→ノード装置１０Ａの入力端子ＮＷ２−ｉｎといったデータ伝送経路である。
【００２５】
第１のデータ伝送経路Ｄ１では、ノード装置１０Ａ→ノード装置１０Ｂ→・・・ノード装置１０Ｅ→ノード装置１０Ａといった順に各種通信メッセージ等のデータを内包したデータフレームの伝送が行われる。これに対して第２のデータ伝送経路Ｄ２では、第１のデータ伝送経路Ｄ１とは逆順にデータフレームの伝送が行われる。図３を参照すれば明らかなように第１のデータ伝送経路Ｄ１は、各ノード装置１０の処理部３５を経由するデータ伝送経路であり、この点が第２のデータ伝送経路Ｄ２と異なる。このため、本実施形態では、ノード装置１０間のデータの送受信は、原則的に第１のデータ伝送経路Ｄ１に沿って行われる。
【００２６】
ラッチ回路３３および３４の各々は、その接続先の入力端子から特定の通信メッセージを受信したことを契機としてその受信時刻を示すタイマ値をタイマ３２から取得してラッチする。本実施形態では、上記特定の通信メッセージのことを「ラッチ指示メッセージ」と呼ぶ。図２では詳細な図示を省略したが、ネットワーク接続部ＮＷ１およびＮＷ２と、ラッチ回路３３および３４と、タイマ３２は、処理部３５とは別個の通信用ＬＳＩ（Large-Scale
Integration）として実装される。ラッチ回路３３および３４は、受信メッセージを監視し、受信メッセージがラッチ指示メッセージであった場合にタイマ値を取得するだけの回路であり、通信メッセージの伝送制御には影響しない。ラッチ回路３３および３４は、処理部３５の動作とは無関係にタイマ値のラッチのみを行うのでノード装置１０全体の処理時間に対する影響も小さい。また、上記通信用ＬＳＩは、ネットワーク接続部ＮＷ１およびＮＷ２の各々についてその接続先との通信の不通が検出された場合に、入力端子と出力端子とを短絡する処理、すなわち、第１のデータ伝送経路Ｄ１に第２のデータ伝送経路Ｄ２を接続して１つのリング型のデータ伝送経路にする処理も行う。
【００２７】
処理部３５は、例えばＣＰＵであり、図示せぬ記憶部に記憶されたファームウェア等のソフトウェアにしたがって各種処理を実行する。処理部３５が実行する処理の具体例としては、ノード装置１０の上位の処理系からの要求に応じて通信メッセージを生成する処理や、入力端子ＮＷ１−ｉｎから受信した通信メッセージが削除対象であるか否かを判定する処理、削除対象である場合に当該通信メッセージを削除する処理、削除対象ではないと判定した場合には上記受信メッセージを出力端子ＮＷ２−ｏｕｔへ転送する処理等が挙げられる。
【００２８】
上記ソフトウェアには、本発明の特徴を顕著に示すタイマ同期処理を処理部３５に実行させるタイマ同期プログラムが含まれている。タイマ同期処理の処理内容は、マスタとスレーブとで異なり、スレーブにおいて実行されるタイマ同期処理は特許文献２に開示の技術におけるスレーブの処理と同一である。よって、以下では、マスタ、すなわちノード装置１０Ａにおいて実行されるタイマ同期処理を中心に説明する。
【００２９】
図４は、マスタにおいて実行されるタイマ同期処理の流れを示すフローチャートである。図４に示すように、マスタにおけるタイマ同期処理は、遅延設定処理（ステップＳＡ０１０）とマスタタイマ配布処理（ステップＳＡ０２０）とに大別される。なお、図４では、図面が煩雑になることを避けるために、前者は「遅延設定」と表記されており、後者は「マスタタイマ配布」と表記されている。遅延設定処理およびマスタタイマ配布処理の処理内容は以下の通りである。
【００３０】
遅延設定処理とは、マスタから各スレーブまでの伝送遅延時間をスレーブ毎に設定する処理である。マスタからスレーブまでの伝送遅延時間とは、マスタから送信された通信メッセージがスレーブに到達するまでに要した時間のことを言う。マスタからスレーブまでの伝送遅延時間は基本的には変化しないが、（Ａ）ノード装置の脱落や通信線の断線などに起因する物理トポロジの切断、（Ｂ）温度等の周囲環境変化に起因する通信線やノード装置上の伝送時間の変化などにより変わる可能性がある。このため、本実施形態では、遅延設定処理ＳＡ０１０は、タイマ同期処理の開始後、予め設定された遅延再設定タイミング毎に周期的に、すなわち、ステップＳＡ０３０の判定結果が“Ｙｅｓ”となる毎に実行される。
【００３１】
図５は、遅延設定処理の流れを示すフローチャートである。図５に示すように、遅延設定処理は、ラッチ指示処理（ステップＳＡ１１０）、タイマ値収集処理（ステップＳＡ１２０）、遅延時間計算処理（ステップＳＡ１３０）、遅延時間設定処理（ステップＳＡ１４０）に大別される。ラッチ指示処理とは、ラッチ指示メッセージを出力端子ＮＷ２−ｏｕｔからブロードキャストする処理、すなわち、第１のデータ伝送経路Ｄ１へラッチ指示メッセージを送出する処理である。上記の要領で第１のデータ伝送経路Ｄ１へ送出されたラッチ指示メッセージは入力端子ＮＷ１−ｉｎへと戻って来る。ラッチ指示処理では、処理部３５は、入力端子ＮＷ１−ｉｎを介して受信したラッチ指示メッセージが第１のデータ伝送経路Ｄ１のみを経由して戻ってきたものであるか否かを判定する。そして、処理部３５は、第１のデータ伝送経路Ｄ１のみを経由してきたものであると判定した場合には、入力端子ＮＷ１−ｉｎを介して受信したラッチ指示メッセージを入力端子ＮＷ１−ｏｕｔへ転送、すなわち、第２のデータ伝送経路Ｄ２へ転送する。これに対して、上記受信したラッチ指示メッセージが第１のデータ伝送経路Ｄ１および第２のデータ伝送経路Ｄ２を経由してきた場合には、処理部３５は当該ラッチ指示メッセージを破棄する。
【００３２】
入力端子ＮＷ１−ｉｎを介して受信したラッチ指示メッセージが第１のデータ伝送経路Ｄ１のみを経由して戻ってきたものである場合に当該ラッチ指示メッセージを第２のデータ伝送経路Ｄ２へと転送する理由は以下の通りである。まず、入力端子ＮＷ１−ｉｎを介して受信したラッチ指示メッセージが第１のデータ伝送経路Ｄ１のみを経由して戻ってくるのは、通信システム１の物理トポロジがリング型であり、第１のデータ伝送経路Ｄ１および第２のデータ伝送経路Ｄ２が各々別個に存在している場合である。この場合、マスタから第１のデータ伝送経路Ｄ１へ送出されたラッチ指示メッセージは第２のデータ伝送経路Ｄ２を経由しておらず、各スレーブではラッチ回路３３によるタイマ値のラッチは行われているものの、ラッチ回路３４によるタイマ値のラッチは行われていない。
【００３３】
本実施形態では特許文献２に開示の技術を利用して各ノード装置１０のタイマ同期が実現される。しかし、特許文献２に開示の技術では、ラッチ回路３３とラッチ回路３４の各々によってタイマ値のラッチが行われていることが前提となっており、このため、リング型の物理トポロジを有する通信システムにおけるタイマ同期に特許文献２に開示の技術をそのまま適用できなかった。本実施形態では、通信システム１の物理トポロジがリング型であるかバス型であるかを問わずに特許文献２に開示の技術を用いてタイマ同期を行えるようにするために、ラッチ指示メッセージが第１のデータ伝送経路のみを経由してマスタに戻ってきた場合には当該ラッチ指示メッセージを第２のデータ伝送経路Ｄ２へ転送するのである。これにより、図６に示すように、第１のデータ伝送経路Ｄ１と第２のデータ伝送経路Ｄ２はマスタ内において経路１０１により短絡され、図７に示すように、ノード装置１０Ｂ〜１０Ｅの各々においてラッチ回路３３とラッチ回路３４とでタイマ値のラッチが行われる。なお、図７において、符号Ｔｘ１（ｘはＡ〜Ｅの何れか）は、ノード装置１０ｘのラッチ回路３３によってラッチされたタイマ値を表し、符号Ｔｘ２は、ノード装置１０ｘのラッチ回路３４によってラッチされたタイマ値を表す。
【００３４】
入力端子ＮＷ１−ｉｎを介して受信したラッチ指示メッセージが第１のデータ伝送経路Ｄ１のみを経由して戻ってきたものであるか否かの具体的な判定方法としては種々の方法が考えられる。例えば、マスタにおいて、ラッチ指示メッセージの送信を契機として所定の初期値をラッチ回路３３および３４に設定させる。そして、入力端子ＮＷ１−ｉｎを介してラッチ指示メッセージを受信した時点においてラッチ回路３４にラッチされているタイマ値が上記初期値である場合には、上記ラッチ指示メッセージは第１のデータ伝送経路Ｄ１のみを経由してきたと処理部３５に判定させる態様が考えられる。
【００３５】
また、ラッチ指示メッセージに、ラッチ回路３３および３４の各々について、すなわち、データ伝送経路毎に、タイマ値のラッチを行ったか否かを示すタイマ値有効フラグをノード装置１０毎に設けて置き、マスタの処理部３５には上記タイマ値有効フラグを全てゼロクリアしたラッチ指示メッセージを送信させる一方、各ノード装置１０のラッチ回路３３或いはラッチ回路３４にはタイマ値のラッチを行う毎に該当するタイマ値有効フラグを１に更新する処理を実行させる態様が考えられる。この態様の場合、マスタの処理部３５には、入力端子ＮＷ１−ｉｎを介して受信したラッチ指示メッセージにおける全てのタイマ値有効フラグが１である場合には、当該メッセージは第１のデータ伝送経路Ｄ１および第２のデータ伝送経路Ｄ２を経由してきたと判定させ、その他の場合は第１のデータ伝送経路Ｄ１のみを経由してきたと判定させれば良い。
以上がラッチ指示処理の処理内容である。
【００３６】
タイマ値収集処理は、各スレーブ装置からラッチ回路３３によりラッチされたタイマ値とラッチ回路３４によりラッチされたタイマ値とを収集する処理である。このタイマ値収集処理は、タイマ値収集メッセージと呼ばれる特定の通信メッセージを第１の伝送経路Ｄ１へ送信することで実現される。タイマ値収集処理の処理内容およびタイマ値収集メッセージについては特許文献２におけるものと何ら変わるところはないため、詳細な説明を省略する。
【００３７】
次いで、遅延時間計算処理の処理内容を説明する。
図８は、遅延時間計算処理の流れを示すフローチャートである。図８に示すように、遅延時間計算処理では、処理部３５は、まず、通信システム１の物理トポロジがリング型であるか否かを判定する（ステップＳＡ１３１０）。ステップＳＡ１３１０における判定については、前述したラッチ指示処理ＳＡ１１０における判定結果を記録しておき、その記録内容を利用する態様が考えられる。
【００３８】
図８に示すように、処理部３５は、ステップＳＡ１３１０の判定結果がＹｅｓである場合には、ノード間遅延計算処理（１）（ステップＳＡ１３２０）およびノード間遅延計算処理（２）（ステップＳＡ１３３０）を実行した後に各局遅延計算処理（ステップＳＡ１３５０）を実行する。各局遅延計算処理とは、ノード間のデータ伝送に要する時間（以下、ノード装置間遅延時間）に基づいてマスタから各スレーブまでの伝送遅延時間をスレーブ毎に計算する処理である。逆に、ステップＳＡ１３１０の判定結果がＮｏである場合には、処理部３５はノード間遅延計算処理（３）（ステップＳＡ１３４０）を実行した後に各局遅延計算処理（ステップＳＡ１３５０）を実行する。つまり、本実施形態では、通信システム１の物理トポロジがリング型である場合とバス型である場合とで、ノード装置間遅延時間の計算が異なるのである。ノード間遅延計算処理（１）〜（３）のうちのノード間遅延計算処理（３）と各局遅延計算処理については、特許文献２に開示の技術における該当処理と変わるところはない。よって、以下では、ノード間遅延計算処理（１）とノード間遅延計算処理（２）を中心に説明する。
【００３９】
前述したように、通信システム１の物理トポロジがリング型である場合には、第１のデータ伝送経路Ｄ１および第２のデータ伝送経路Ｄ２を図６の経路１０１により短絡させて、疑似的にバス型として扱われる。ノード間遅延計算処理（１）は、第１のデータ伝送経路Ｄ１上で上記短絡箇所より手前（すなわち、マスタ側）に存在するノード装置１０間の伝送時間差分を算出する処理である。ノード間遅延計算処理（１）の処理内容はノード間遅延計算処理（３）の処理内容と同一である。例えば、「ノード装置１０Ｂが第１のデータ伝送経路Ｄ１の上流からメッセージを受け付けてからノード装置１０Ｃに当該メッセージが到達するまでの時間」と「ノード装置１０Ｃが下流からメッセージを受け付けてからノード装置１０Ｂに到達するまでの時間」（換言すれば、ノード装置１０Ｃが第２のデータ伝送経路の上流からメッセージを受け取ってからノード装置１０Ｂに到達するまでの時間）の和ＤＩＦＦBCは、以下の式（１）により表される。
ＤＩＦＦBC  ＝  (ＴＢ２−ＴＢ１)−（ＴＣ２−ＴＣ１）・・・（１）
【００４０】
式（１）左辺のＤＩＦＦBCは、ノード装置１０Ｂとノード装置１０Ｃ間のノード装置間遅延時間(各ノード装置における中継処理時間を含む)ＬBCとノード装置１０Ｂの処理部３５でのメッセージ処理時間Ｅの組合せで表現できる。具体的には、式（１）の左辺ＤＩＦＦBCは、以下の式（２）のように表される。なお、メッセージ処理時間Ｅについては予め計測しその計測値を上記記憶部に記憶させておけば良い。
ＤＩＦＦBC  =  ２×ＬBC＋Ｅ・・・（２）
【００４１】
式（１）および（２）から、ノード装置１０Ｂとノード装置１０Ｃの間のノード装置間遅延時間ＬBCは、以下の式（３）により表される。
ＬBC  ＝  ｛(ＴＢ2−ＴＢ１)−（ＴＣ２−ＴＣ１）−Ｅ｝／２      （３）
ノード間遅延計算処理（１）では、処理部３５は、上記と同様の演算により、マスタ−ノード装置１０Ｂ間のノード装置間遅延時間ＬAB、ノード装置１０Ｃ−ノード装置１０Ｄ間のノード装置間遅延時間ＬCD、ノード装置１０Ｄ−ノード装置１０Ｅ間のノード装置間遅延時間ＬDEを算出する。
【００４２】
次いで、ノード間遅延計算処理（２）について説明する。
ノード間遅延計算処理（２）は、前述した短絡箇所から先に存在するスレーブについてのノード装置間遅延時間を算出する処理であり、本実施形態では、ノード装置１０Ｅとマスタとの間のノード装置間遅延時間ＬEAは当該ノード間遅延計算処理（２）により算出される。ノード間遅延計算処理（２）とノード間遅延計算処理（１）とを分けたのは、短絡経路１０１では、処理部３５におけるメッセージ処理時間が通常のメッセージ処理時間Ｅとは異なる可能性があるからである。短絡経路１０１に関するメッセージ処理時間Ｆが通常のメッセージ処理時間Ｅとは異なる場合には、当該通過時間Ｆを別途計測しておき、式（３）におけるメッセージ処理時間Ｅに代えて当該メッセージ処理時間Ｆを用いてノード装置間遅延時間ＬEAを算出するようにすれば良い。なお、メッセージ処理時間Ｆがメッセージ処理時間Ｅと同じである場合には、ノード間遅延計算処理（２）を別途設ける必要はなく、全てのノード装置間遅延時間をノード間遅延計算処理（１）により算出すれば良い。また、メッセージが１周する時間を測定し、この時間から、マスタからノード装置１０Ｅまでの伝送遅延時間（マスタから第１のデータ伝送経路Ｄ１に沿ってノード装置Ｅに至るまでの各ノード装置１０間のノード装置間遅延時間の総和）を減算することでマスタ−ノード装置１０Ｅ間のノード装置間遅延時間ＬEAを算出しても良い。
以上が遅延時間計算処理ＳＡ１３０の処理内容である。遅延時間計算処理ＳＡ１３０に後続して実行される遅延時間設定処理ＳＡ１４０では、各局遅延計算処理ＳＡ１３５０にてスレーブ毎に計算された伝送遅延時間を各スレーブの遅延として設定する。
【００４３】
前掲図４に戻って、遅延設定処理ＳＡ０１０に後続して実行されるマスタタイマ配布処理ＳＡ０２０とは、マスタノードのタイマ値（以下、マスタタイマ値）と伝送遅延時間とを各スレーブへ通知する処理である。各スレーブは、マスタタイマ値と伝送遅延時間とを用いて自身のタイマ３２のタイマ値をマスタタイマ値に伝送遅延時間を加算した値に補正することで、各スレーブのタイマ３２とマスタのタイマ３２の同期が実現する。マスタおよび各スレーブのタイマ３２は各々自装置に実装された水晶発振器等の発振器の発振に基づいてタイマ値のカウントを行っているのであるが、発振器の個体差や各ノード装置の置かれた温度などの周囲環境により発振誤差が発生し得る。本実施形態では、各スレーブのタイマ３２とマスタのタイマ３２とを正確に同期させるために、マスタタイマ配布処理ＳＡ０２０は遅延設定処理ＳＡ０１０よりも短い周期で定期的に実行される。図４におけるステップＳＡ０３０の判定処理は、マスタタイマ配布処理ＳＡ０２０を遅延設定処理ＳＡ０１０よりも短い周期で定期的に実行する制御を実現するための処理である。
以上がノード装置１０の構成である。
【００４４】
通信システム１の物理トポロジはノード装置１０間の通信線の断線によってリング型からバス型に切り換わり、物理トポロジの切り換わりに追従して論理トポロジも切り換わるのであるが、ノード装置１０を上記のような構成としたため、本実施形態によれば、通信システム１における物理トポロジがバス型あるいはリング型の何れであっても、各スレーブとマスタとの間の伝送遅延時間を特許文献２に開示の手法により測定することができ、各ノード装置１０のタイマを同期することが可能となる。
【００４５】
このように、本実施形態によれば、通信システム１における論理トポロジが動的に切り換わる場合であっても、特許文献２に開示の手法を用いてノード装置間のタイマ同期を実現することが可能となる。なお、本実施形態では、リング型の通信システムにおける物理トポロジの切断を契機として論理トポロジが変化する場合について説明したが、ネットワーク管理者等が各ノード装置の設定等を変更することで、論理トポロジを強制的に変化させても良い。
【００４６】
（Ｂ：第２実施形態）
上記第１実施形態では、タイマ同期処理が周期的に実行された。しかし、このような態様では、タイマの同期タイミングの直後にデータ伝送経路の変化が発生した場合、次の同期タイミングまでの間、ノード装置１０Ａ〜１０Ｅのタイマ同期が保証されない、といった問題が生じる。そこで、本実施形態では、論理トポロジ、すなわちデータ伝送経路の変化を検知する検知処理をノード装置１０の処理部３５に実行させ、マスタとして動作しているノード装置１０には、データ伝送経路の変化を上記検知処理により検知したことを契機としてラッチ指示メッセージの送信を行わせる。このような態様によれば、データ伝送経路に変化が発生したことを契機として各スレーブについての伝送遅延時間を再計算し、新たに計算された伝送遅延時間に基づいてタイマ同期を行うことが可能になる。なお、第１実施形態のような周期的なタイマ同期と、データ伝送経路に変化が発生したことの検知を契機とするタイマ同期の両方を組み合わせてマスタに実行させても良い。
【００４７】
上記検知処理の具体的な処理内容は次の通りである。ネットワーク管理者等の操作によって強制的にデータ伝送経路を変化させる態様であれば、上記検知処理としては、各ノード装置の設定変更を検知する処理が考えられる。また、物理トポロジの切断に応じて論理トポロジが変化する通信システムであれば、上記検知処理としては、物理トポロジの切断を検知する処理が考えられる。具体的には、スレーブには、接続先との通信の不通を検知した場合にその旨をマスタへ通知する処理を実行させ、マスタには、当該メッセージを受信した場合にデータ伝送経路に変化が発生したと判定させるようにすれば良い。
【００４８】
上記検知処理として物理トポロジの切断を検知する処理を採用する態様においては、以下のようにするとさらに好ましい。すなわち、検知処理では物理トポロジの回復を検知し、マスタには、物理トポロジの回復が検知されたことを契機として当該マスタにおける現在のタイマ値のみを各スレーブへ通知してタイマ値の補正を指示する処理、を実行させる。一方、各スレーブには、物理トポロジに切断が発生していない状況下でマスタから通知された伝送遅延時間を保持する保持手段を設ける。例えば、メモリなど、ノード装置１０における記憶部に上記保持手段の役割を担わせれば良い。そして、各スレーブには、マスタにおける現在のタイマ値のみを通知された場合には保持手段に保持されている伝送遅延時間と当該タイマ値とを用いて自装置のタイマのタイマ値を補正する処理、を実行させる。このような態様によれば、物理トポロジの切断が回復された際にラッチ指示メッセージの送信、タイマ値の収集および伝送遅延時間の算出を省略してタイマ同期を行うことが可能になる。物理トポロジに切断が発生する前の状態と切断が回復された後の状態とでは、各スレーブについての伝送遅延時間に大差は無く、特段の問題が生じることは無いと考えられるからである。
【００４９】
（Ｃ：第３実施形態）
上記第２実施形態では、データ伝送経路に変化が発生したことの検知を契機としてタイマ同期のための通信が行われる。このため、上記第２実施形態によれば、データ伝送経路の変化が発生した時点から、新たに計算された伝送遅延時間に基づくタイマ同期が完了するまでの遅延を第１実施形態よりも小さくすることができる。しかし、マスタのタイマ値とスレーブのタイマ値との誤差が極めて小さいこと（例えば、マイクロ秒単位であること）を要求されるような状況下では、第２実施形態でも不十分な場合がある。そこで、本実施形態におけるマスタ（ノード装置１０Ａ）は、ノード間遅延算出処理（１）および（２）によりノード装置間遅延時間を算出する毎に、図９（Ａ）に示すノード装置間遅延時間管理テーブルに当該算出したノード装置間遅延時間を書き込む。そして、マスタは、データ伝送経路に変化が発生した場合には、各スレーブについての伝送遅延時間をノード装置間遅延時間管理テーブルの格納内容に基づいてスレーブ毎に再計算して各スレーブへ通知する。以降、マスタは、当該通知を行った時点を同期周期の起算点に再設定する。
【００５０】
ノード装置間遅延時間管理テーブルについては、マスタとして機能するノード装置１０の記憶部（図示略）に記憶させておけば良い。図９（Ａ）に示すノード装置間遅延時間管理テーブルにおける「局間」は、ノード装置間の伝送経路を意味する。例えば、図９（Ａ）における局間「Ａ：Ｂ」はノード装置１０Ａとノード装置１０Ｂ間の伝送経路を意味する。また、図９（Ａ）における局間「Ａ：Ａ」はノード装置１０Ａからノード装置１０Ａに至る伝送経路、すなわち１周分の伝送経路を意味する。図９（Ａ）に示す格納内容はノード装置１０Ａからノード装置１０Ａに至る１周分のノード装置間遅延時間がＬAAであることを意味する。以下、ノード装置１０Ｄとノード装置１０Ｅの間で断線が発生した場合を例にとってマスタが実行する処理を説明する。
【００５１】
図９（Ａ）に示すノード装置間遅延時間管理テーブルに格納されているノード装置間遅延時間から各スレーブについての伝送遅延時間を算出する処理の内容は、データ伝送経路Ｄ１に沿ってマスタから断線の発生箇所に至るまでのスレーブと、断線の発生箇所以降のスレーブとで異なる。データ伝送経路Ｄ１に沿って当該マスタから断線の発生箇所に至るまでのスレーブについては、マスタの処理部３５は、当該スレーブに至るまでの各ノード装置間遅延時間の総和に、マスタから当該スレーブまでのスレーブ数×メッセージ処理時間Ｅ、を加算して伝送遅延時間を算出する。ノード装置１０Ｄとノード装置１０Ｅとの間で断線が発生した場合には、マスタの処理部３５は、ノード装置１０Ｂ、１０Ｃおよび１０Ｄについては上記の要領で伝送遅延時間を算出する。例えば、ノード装置１０Ｃについての伝送遅延時間ＴACは下記式（４）のように算出される。
ＴAC＝ＬAB＋ＬBC＋Ｅ×２      （４）
【００５２】
これに対して、データ伝送経路Ｄ１上で断線の発生箇所以降に存在するスレーブであるノード装置１０Ｅについては、処理部３５は、以下の式（５）により表される１周遅延時間ＴＡＡからデータ伝送経路Ｄ２に沿って当該スレーブに至るまでの各ノード装置間遅延時間の総和および当該スレーブに至るまでの各スレーブにおけるメッセージ処理時間Ｅの総和を減算して伝送遅延時間を算出する。ノード装置１０Ｅについての遅延時間ＴACは下記式（６）のように算出される。
ＴAA＝２×ＬAA＋５×Ｅ      （５）
ＴAE＝ＴAA−（ＬEA＋Ｅ）      （６）
【００５３】
式（４）〜式（６）に示す演算処理は、何れもノード装置間遅延時間管理テーブルに格納されているデータおよび定数を用いた算術演算（加減算および乗算）であるから、これら演算処理の実行によってマスタの処理部３５の処理負荷が過剰になることはない。つまり、本実施形態によれば、タイマラッチ指示メッセージおよびタイマ値収集メッセージの送受信およびノード装置間遅延時間の再計算を行わない分だけ、各ノード装置１０の処理負荷を軽減し、データ伝送経路の変化が発生した時点から、新たに計算された伝送遅延時間に基づくタイマ同期を完了するまでの所要時間を上記第２実施形態よりも短縮することが可能になる。本実施形態では、データ伝送経路の変化が発生したことを契機とするタイマ同期においてのみ、ノード装置間遅延時間管理テーブルの格納内容を参照して各スレーブについての伝送遅延時間を算出したが、データ伝送経路の変化が発生した時点からＭ（Ｍは２以上の自然数）回目までのノード装置間遅延時間管理テーブルの格納内容を参照して各スレーブについての伝送遅延時間を算出しても良い。ただし、各スレーブにおけるタイマ値の誤差は、周囲の温度などの動作環境の相違や装置の個体差等によりスレーブ毎に異なり得るため、ノード装置間遅延時間管理テーブルの格納内容を更新せずに使い続けることは好ましくない。このため、上記Ｍの値については、各スレーブにおけるタイマ値の誤差の発生状況に応じて定めることが好ましい。
【００５４】
本実施形態では、図９（Ａ）に示すように、ノード装置間の伝送経路の各々についてノード装置間遅延時間を１つだけ格納したが、図９（Ｂ）に示すように複数のノード装置間遅延時間（ノード装置間遅延時間（１）〜ノード装置間遅延時間（Ｎ）：Ｎは２以上の自然数、図９（Ｂ）に示す例では、Ｎ＝３）を格納しても良い。具体的には、マスタは、ノード間遅延算出処理（１）およびノード間遅延算出処理（２）を初めて実行する場合は、算出した各ノード間遅延時間をノード装置間遅延時間（１）列に書き込み、次にノード間遅延算出処理（１）およびノード間遅延算出処理（２）を実行する際には、算出した各ノード間遅延時間をノード装置間遅延時間（２）列に書き込む。そして、ノード装置間遅延時間（Ｎ）列に各ノード装置間遅延時間を書き込んだ後にノード間遅延算出処理（１）およびノード間遅延算出処理（２）を実行する際には、マスタは、ノード装置間遅延時間（１）列の格納内容を新たに算出したノード装置間遅延時間で上書きする。このように、ノード装置間遅延時間管理テーブルの各列を巡回的に使用すれば良い。
【００５５】
そして、データ伝送経路に変化が発生したことの検知を契機としてタイマ同期を行う際には、マスタは、伝送経路毎にノード装置間遅延時間（１）〜ノード間遅延時間（Ｎ）の平均値を算出し、その平均値を用いてスレーブ毎に伝送遅延時間を算出する。なお、上記平均値の算出方法は単純平均（すなわち、加算平均）であっても良く、直近のものほど重みを重くした重み付け平均であっても良い。直近のものほど重みを重くするのは、動作環境の相違や装置の個体差等に起因する誤差を考慮して遅延時間を算出するためである。加えて、このような態様によれば、ノード装置間遅延時間（１）〜ノード装置間遅延時間（Ｎ）を比較することで、上記誤差の発生傾向を分析することも可能になる。なお、図９（Ａ）或いは図９（Ｂ）に示すように、ノード装置間遅延時間を記録するのではなく、図９（Ｃ）に示すように各ノード装置１０にてラッチされた２種類のタイマ値をノード装置毎に記憶しておいても良い。図９（Ｃ）に示すように、各ノード装置にてラッチされた２種類のタイマ値を記憶しておけば、各ノード装置間遅延時間を算出することは可能だからである。
【００５６】
本実施形態では、マスタとして機能するノード装置１０Ａの記憶部にノード装置間遅延時間管理テーブルを記憶させたが、ノード装置１０Ａ〜１０Ｅのうちマスタとして機能し得るノード装置１０の全てにノード装置間遅延時間管理テーブルを記憶させておいても良い。図１に示すリング型のシステムの場合、ノード装置間遅延時間の値はノード装置１０Ａ〜１０Ｅのうちの何れがマスタであるかとは無関係と考えられ、このような態様によれば、マスタの交代が発生した場合に新たなマスタと各スレーブとの間の伝送遅延時間を迅速に算出することができ、マスタの交代直後のタイマ同期を迅速に実現することができる。また、ノード装置１０の記憶部にノード装置間遅延時間管理テーブルを記憶させるのではなく、ノード装置１０Ａ〜１０Ｅの何れとも異なる記憶装置であって、ノード装置１０Ａ〜１０Ｅの各々からアクセス可能な記憶装置にノード装置間遅延時間管理テーブルを記憶させておいても良い。このような記憶装置の具体例としてはネットワーク対応のハードディスク装置等が挙げられる。このような態様によっても、マスタの交代直後のタイマ同期を迅速に実現することが可能になる。
【００５７】
（Ｄ：変形）
以上本発明の第１、第２および第３実施形態について説明したが、これら実施形態に以下の変形を加えても良い。
（１）上記各実施形態では、制御システムへの本発明の適用例を説明したが、本発明の適用対象は制御システムに限定されるものではなく、事務処理用の通信システムであっても良い。要は、リング型の物理トポロジに接続された複数のノード装置を含み、データフレームが各ノード装置を経由して周回する第１のデータ伝送経路と逆向きに周回する第２のデータ伝送経路とを形成する場合と、第１のデータ伝送経路に第２のデータ伝送経路を接続して１つのデータ伝送経路を形成する場合とが動的に切り換わる通信システムであって、複数のノード装置のうちの１つがマスタとなる一方、他のノード装置はマスタからの指示に応じた処理を実行するスレーブとなって各ノード装置が有するタイマを同期させる通信システムであれば、本発明を適用可能である。具体的には、通信システムにおけるデータ伝送経路の変化に応じてタイマ同期のための通信制御をマスタに切り換えさせれば良い。また、上記実施形態では、通信システムに５台のノード装置が含まれる場合について説明したが、通信システムに含まれるノード装置の数は２〜４であっても良く、また、６以上であっても良い。
【００５８】
（２）上記第１実施形態では、本発明の特徴を顕著に示すラッチ指示処理、タイマ値収集処理、遅延時間計算処理およびマスタタイマ配布処理をソフトウェアにより実現したが、ラッチ指示処理を実行するラッチ指示手段、タイマ値収集処理を実行する収集手段、遅延時間計算処理を実行する算出手段、およびマスタタイマ配布処理を実行する同期制御手段の各手段をＡＳＩＣなどの電気回路により構成し、これら各手段を組み合わせてノード装置１０を構成しても良い。第２実施形態或いは第３実施形態のノード装置１０についても同様である。例えば、上記第２実施形態のノード装置１０であれば、上記検知処理を実行する検知手段を電気回路等のハードウェアで構成し、当該検知手段を、ラッチ指示手段、収集手段、算出手段、および同期制御手段と組み合わせて当該ノード装置１０を構成すれば良い。
【００５９】
（３）上記各実施形態では、本発明の一実施形態による通信システムについて説明したが、この通信システムに含まれるノード装置１０を単体、すなわちマスタ或いはスレーブ単体で提供（製造・販売）しても良い。また、ＣＰＵなどの一般的なコンピュータを上記ノード装置１０の処理部として機能させるプログラムを提供する態様であっても良い。
【符号の説明】
【００６０】
１…通信システム、１０，１０Ａ，１０Ｂ、１０Ｃ，１０Ｄ，１０Ｅ…ノード装置、ＮＷ１，ＮＷ２…ネットワーク接続部、ＮＷ１−ｉｎ，ＮＷ２−ｉｎ…入力端子、ＮＷ１−ｏｕｔ，ＮＷ２−ｏｕｔ…出力端子、３２…タイマ、３３，３４…ラッチ回路、３５…処理部。
【図１】
0006729040.tif 000002
【図２】
0006729040.tif 000003
【図３】
0006729040.tif 000004
【図４】
0006729040.tif 000005
【図５】
0006729040.tif 000006
【図６】
0006729040.tif 000007
【図７】
0006729040.tif 000008
【図８】
0006729040.tif 000009
【図９】
0006729040.tif 000010