(57)【要約】【課題】複数の通信装置の間で時刻同期が完了したことを判断することが可能な通信システムを提供する。【解決手段】本開示の一例に係る通信システムは、ネットワークに複数の通信装置が接続された通信システムである。複数の通信装置は、通信システムの時刻を管理するマスタクロックを有する時刻マスタと、各々が、マスタクロックに時刻同期したスレーブクロックを有する複数の時刻スレーブとを含む。複数の時刻スレーブの各々は、ネットワーク上においてマスタ側に隣接して接続される他の通信装置との間で時刻同期するための同期手段と、同期手段で求められた自装置の時刻同期精度を示す時刻同期情報を時刻マスタへ通知するための通信手段とを含む。【選択図】図７
2019146060.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークに複数の通信装置が接続された通信システムであって、
前記複数の通信装置は、
前記通信システムの時刻を管理するマスタクロックを有する時刻マスタと、
各々が、前記マスタクロックに時刻同期したスレーブクロックを有する複数の時刻スレーブとを含み、
前記複数の時刻スレーブの各々は、
前記ネットワーク上においてマスタ側に隣接して接続される他の通信装置との間で時刻同期するための同期手段と、
前記同期手段で求められた自装置の時刻同期精度を示す時刻同期情報を前記時刻マスタへ通知するための通信手段とを含む、通信システム。
【請求項２】
前記同期手段は、前記他の通信装置の時刻と自装置の時刻との差分を時刻調整値として、自装置の時刻を補正し、
前記通信手段は、前記時刻同期情報として、前記時刻調整値を前記時刻マスタへ通知する、請求項１に記載の通信システム。
【請求項３】
前記通信手段は、前記ネットワーク上においてスレーブ側に隣接して接続される別の他の通信装置から前記時刻調整値を受信し、受信した前記時刻調整値および自装置の前記時刻調整値のうち、その絶対値が大きい方の前記時刻調整値を前記他の通信装置へ転送する、請求項２に記載の通信システム。
【請求項４】
前記通信手段は、前記ネットワーク上においてスレーブ側に隣接して接続される別の他の通信装置から前記時刻調整値を受信し、受信した前記時刻調整値および自装置の前記時刻調整値を前記他の通信装置へ転送する、請求項２に記載の通信システム。
【請求項５】
前記通信手段は、前記ネットワーク上においてスレーブ側に隣接して接続される別の他の通信装置から前記時刻調整値を受信し、受信した前記時刻調整値と自装置の前記時刻調整値との合計値を前記他の通信装置へ転送する、請求項２に記載の通信システム。
【請求項６】
前記同期手段は、前記他の通信装置との間で時刻同期用パケットを遣り取りすることにより、自装置の時刻を補正する時刻同期処理を定期的に実行し、
前記通信手段は、前記他の通信装置へ送信する時刻同期用パケット内に、前記他の通信装置へ転送する前記時刻調整値を格納する、請求項３から５のいずれか１項に記載の通信システム。
【請求項７】
前記時刻マスタは、前記ネットワーク内のデータ伝送を管理する制御装置であり、
前記複数の時刻スレーブの各々は、前記制御装置からの指令に従ってデータ伝送を実行するデバイスであり、
前記制御装置は、複数の前記デバイスから通知される前記時刻同期情報に基づいて、前記複数のデバイスとの間で時刻同期が完了したか否かを判定し、時刻同期が完了したと判定されたときに、前記ネットワーク内のデータ伝送を開始する、請求項１から６のいずれか１項に記載の通信システム。
【請求項８】
前記複数の時刻スレーブのうちの１つの時刻スレーブは、前記ネットワーク内のデータ伝送を管理する制御装置であり、
前記１つの時刻スレーブを除いた残りの時刻スレーブ、および前記時刻マスタの各々は、前記制御装置からの指令に従ってデータ伝送を実行するデバイスであり、
前記時刻マスタは、前記複数の時刻スレーブから通知される前記時刻同期情報に基づいて、前記複数の時刻スレーブとの間で時刻同期が完了したか否かを判定し、判定結果を前記制御装置に通知し、
前記制御装置は、前記判定結果から時刻同期が完了したと判定されたときに、前記ネットワーク内のデータ伝送を開始する、請求項１から６のいずれか１項に記載の通信システム。
【請求項９】
前記複数の時刻スレーブのうちの１つの時刻スレーブは、前記ネットワーク内のデータ伝送を管理する制御装置であり、
前記１つの時刻スレーブを除いた残りの時刻スレーブ、および前記時刻マスタの各々は、前記制御装置からの指令に従ってデータ伝送を実行するデバイスであり、
前記時刻マスタは、前記複数の時刻スレーブから通知される前記時刻同期情報を前記制御装置へ転送し、
前記制御装置は、前記時刻同期情報に基づいて、複数の前記デバイスとの間で時刻同期が完了したか否かを判定し、時刻同期が完了したと判定されたときに、前記ネットワーク内のデータ伝送を開始する、請求項１から６のいずれか１項に記載の通信システム。
【請求項１０】
前記同期手段は、前記他の通信装置との間で時刻同期用パケットを遣り取りすることにより、自装置の時刻を補正する時刻同期処理を定期的に実行し、
前記通信手段は、前記時刻同期処理の実行後において、前記時刻同期情報を前記時刻マスタへ通知する、請求項１または２項に記載の通信システム。
【請求項１１】
通信システムにネットワーク接続される通信装置であって、前記通信装置は、前記通信システムの時刻を管理するマスタクロックに時刻同期したスレーブクロックを有し、
前記ネットワーク上においてマスタ側に隣接して接続される他の通信装置との間で時刻同期するための同期手段と、
前記同期手段で求められた自装置の時刻同期精度を示す時刻同期情報を、前記マスタクロックを有する時刻マスタへ通知するための通信手段とを含む、通信装置。
【請求項１２】
ネットワークに複数の通信装置が接続された通信システムにおける通信方法であって、
前記複数の通信装置は、
前記通信システムの時刻を管理するマスタクロックを有する時刻マスタと、
各々が、前記マスタクロックに時刻同期したスレーブクロックを有する複数の時刻スレーブとを含み、
前記複数の時刻スレーブの各々が、前記ネットワーク上においてマスタ側に隣接して接続される他の通信装置との間で時刻同期するステップと、
前記複数の時刻スレーブの各々が、自装置の時刻同期精度を示す時刻同期情報を前記時刻マスタへ通知するステップとを備える、通信方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、ネットワークに複数の通信装置が接続された通信システム、その通信装置および通信方法に関する。
【背景技術】
【０００２】
様々なＦＡ（Factory Automation）を実現するための主たるコンポーネントとして、ＰＬＣ（プログラマブルコントローラ）などの制御装置が普及している。このような制御装置は、１または複数のデバイスとの間でバスまたはネットワークを介してデータを送受信する。
【０００３】
複数のデバイスがバスまたはネットワークを介して接続される場合、データが伝送されることによる遅延が生じる。このような伝送遅延の大きさはデバイスが接続される位置に応じてばらつく。このような遅延時間のばらつきに依存して、デバイスが入力データを取得する、および、出力データを出力するタイミングもばらつく可能性がある。
【０００４】
このような課題に対して、特開２０１６−１１６１４３号公報（特許文献１）は、時刻マスタとネットワークを介して接続される１または複数の時刻スレーブとを備える通信システムにおける時刻同期を監視する方法を開示する。特許文献１に開示される時刻同期監視方法は、ＩＥＥＥ（Institute of Electrical and Electronics Engineers）１５８８に規定されているＰＴＰ（Precision Time Protocol）という高精度時刻同期プロトコルを採用している。ＰＴＰでは、時刻マスタと時刻スレーブとの間で定期的に時刻同期用パケットを遣り取りし、その過程で得られた情報に基づいて、時刻スレーブの時刻を補正する。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１６−１１６１４３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、ＰＴＰには、時刻スレーブの時刻同期精度を時刻マスタに通知するシーケンスが存在しないため、時刻マスタは、時刻スレーブの時刻同期が完了したか否かを判定することができない。
【０００７】
そのため、特許文献１では、時刻スレーブから時刻マスタに送信する時刻同期用パケットに、時刻スレーブが当該パケットを送信した時刻を示す情報を含ませる。これにより、時刻マスタが、当該パケットを受信した時刻と、当該パケットを送信した時刻との差分に基づいて、時刻スレーブの時刻同期が完了したか否かを判定することを可能としている。
【０００８】
ここで、ＰＴＰの接続形態としては、Ｐ２Ｐ（Peer to Peer）がある。Ｐ２Ｐでは、隣接する２つの通信装置がマスタとスレーブとの関係になって時刻同期処理を実行する。Ｐ２Ｐでは、Peer delayメカニズムを用いて、各通信装置がマスタ側に隣接して位置する通信装置との間の遅延時間を計測し、計測された遅延時間に基づいて、自装置の時刻を補正する。
【０００９】
特許文献１に開示される時刻同期監視方法を、Ｐ２Ｐを用いた時刻同期処理に適用した場合、時刻マスタは、直近の時刻スレーブから時刻情報を含んだ時刻同期用パケットを受信することで、当該時刻スレーブの時刻同期が完了したか否かを判定することができる。一方で、時刻マスタと直接接続されていない他の時刻スレーブとの間では時刻同期用パケットの遣り取りが行なわれないため、時刻マスタは、他の時刻スレーブの時刻同期が完了したか否かを判定することができない。その結果、例えば、通信システムの電源投入後において、時刻マスタは、複数の時刻スレーブとの間でデータ伝送を開始することができるタイミングを判断することができない。
【００１０】
したがって、複数の通信装置の間で時刻同期が完了したことを判断することが可能な通信システムの提供が要望されている。
【課題を解決するための手段】
【００１１】
本開示の一例に係る通信システムは、ネットワークに複数の通信装置が接続された通信システムである。複数の通信装置は、通信システムの時刻を管理するマスタクロックを有する時刻マスタと、各々が、マスタクロックに時刻同期したスレーブクロックを有する複数の時刻スレーブとを含む。複数の時刻スレーブの各々は、ネットワーク上においてマスタ側に隣接して接続される他の通信装置との間で時刻同期するための同期手段と、同期手段で求められた自装置の時刻同期精度を示す時刻同期情報を時刻マスタへ通知するための通信手段とを含む。
【００１２】
本開示によれば、時刻マスタは、各時刻スレーブから通知される時刻同期情報に基づいて、自装置と複数の時刻スレーブとの間の時刻同期が完了しているか否かを判定することができる。この結果、通信システム全体において時刻同期が完了したタイミングで、データ伝送を開始することができる。したがって、通信システムの電源投入後、設定時間が経過したタイミングでデータ伝送を開始する構成に比べて、より迅速にデータ伝送を開始することができる。また、データ伝送の実行中、時刻マスタは、各時刻スレーブから通知される時刻同期情報に基づいて、複数の時刻スレーブの各々の時刻同期精度を監視することができるため、いずれかの時刻スレーブとの間に時刻ずれが発生したときには直ちにデータの伝送を停止することができる。したがって、時刻ずれに依存して、時刻スレーブが入力データを取得する、および、出力データを出力するタイミングがばらつく可能性を回避することができる。
【００１３】
上述の開示において、同期手段は、他の通信装置の時刻と自装置の時刻との差分を時刻調整値として、自装置の時刻を補正する。通信手段は、時刻同期情報として、時刻調整値を時刻マスタへ通知する。
【００１４】
この開示によれば、各時刻スレーブは、自装置の時刻同期処理で使用した時刻調整値を利用して、時刻マスタに自装置の時刻同期情報を通知することができる。
【００１５】
上述の開示において、通信手段は、ネットワーク上においてスレーブ側に隣接して接続される別の他の通信装置から時刻調整値を受信する。通信手段は、受信した時刻調整値および自装置の時刻調整値のうち、その絶対値が大きい方の時刻調整値を他の通信装置へ転送する。
【００１６】
この開示によれば、複数の時刻スレーブの時刻調整値のうちの最大値、すなわち、時刻同期精度の最悪値を、時刻マスタに通知することができる。したがって、時刻マスタは、時刻同期精度の最悪値に基づいて、複数の時刻スレーブの時刻同期が完了したか否かを判定することができる。
【００１７】
上述の開示において、通信手段は、ネットワーク上においてスレーブ側に隣接して接続される別の他の通信装置から時刻調整値を受信する。通信手段は、受信した時刻調整値および自装置の時刻調整値を他の通信装置へ転送する。
【００１８】
この開示によれば、全ての時刻スレーブの時刻調整値を時刻マスタに通知することができる。したがって、時刻マスタは、通知された時刻同期情報に基づいて、複数の時刻マスタの全ての時刻同期が完了しているか否かを判定することができる。
【００１９】
上述の開示において、通信手段は、ネットワーク上においてスレーブ側に隣接して接続される別の他の通信装置から時刻調整値を受信し、受信した時刻調整値と自装置の時刻調整値との合計値を他の通信装置へ転送する。
【００２０】
この開示によれば、各時刻スレーブと時刻マスタとの間の時刻差を、時刻マスタに通知することができる。時刻マスタは、自装置と各時刻スレーブとの時刻差に基づいて、複数の時刻スレーブの時刻同期が完了したか否かを判定することができる。
【００２１】
上述の開示において、同期手段は、他の通信装置との間で時刻同期用パケットを遣り取りすることにより、自装置の時刻を補正する時刻同期処理を定期的に実行する。通信手段は、他の通信装置へ送信する時刻同期用パケット内に、他の通信装置へ転送する時刻調整値を格納する。
【００２２】
この開示によれば、マスタ側に位置する通信装置に送信する時刻同期用パケットに時刻同期情報を含めることで、既存の時刻同期シーケンスを利用して、通信手段を実現することができる。これによると、通信手段を実現するために、時刻同期処理の実行中に通信装置間で遣り取りされるパケットが増えてしまうことを防止することができる。
【００２３】
上述の開示において、時刻マスタは、ネットワーク内のデータ伝送を管理する制御装置である。複数の時刻スレーブの各々は、制御装置からの指令に従ってデータ伝送を実行するデバイスである。制御装置は、複数のデバイスから通知される時刻同期情報に基づいて、複数のデバイスとの間で時刻同期が完了したか否かを判定し、時刻同期が完了したと判定されたときに、ネットワーク内のデータ伝送を開始する。
【００２４】
この開示によれば、通信システムにおける制御装置が時刻マスタとして機能することにより、制御装置は、時刻スレーブとして機能する複数のデバイスの時刻同期が完了したと判定されると、速やかにデータ伝送を開始することができる。
【００２５】
上述の開示において、複数の時刻スレーブのうちの１つの時刻スレーブは、ネットワーク内のデータ伝送を管理する制御装置である。上記１つの時刻スレーブを除いた残りの時刻スレーブおよび時刻マスタの各々は、制御装置からの指令に従ってデータ伝送を実行するデバイスである。時刻マスタは、複数の時刻スレーブから通知される時刻同期情報に基づいて、複数の時刻スレーブとの間で時刻同期が完了したか否かを判定し、判定結果を制御装置に通知する。制御装置は、判定結果から時刻同期が完了したと判定されたときに、ネットワーク内のデータ伝送を開始する。
【００２６】
この開示によれば、通信システムにおける制御装置以外のデバイスが時刻マスタとして機能する構成においても、制御装置は、当該デバイスから通知される、時刻同期完了の判定結果に従って、速やかにデータ伝送を開始することができる。
【００２７】
上述の開示において、複数の時刻スレーブのうちの１つの時刻スレーブは、ネットワーク内のデータ伝送を管理する制御装置である。上記１つの時刻スレーブを除いた残りの時刻スレーブおよび時刻マスタの各々は、制御装置からの指令に従ってデータ伝送を実行するデバイスである。時刻マスタは、複数の時刻スレーブから通知される時刻同期情報を制御装置へ転送する。制御装置は、時刻同期情報に基づいて、複数のデバイスとの間で時刻同期が完了したか否かを判定し、時刻同期が完了したと判定されたときに、ネットワーク内のデータ伝送を開始する。
【００２８】
この開示によれば、通信システムにおける制御装置以外のデバイスが時刻マスタとして機能する構成においても、制御装置は、当該デバイスから転送される時刻同期情報に基づいて時刻同期の完了が判定されると、速やかにデータ伝送を開始することができる。
【００２９】
上述の開示において、同期手段は、他の通信装置との間で時刻同期用パケットを遣り取りすることにより、自装置の時刻を補正する時刻同期処理を定期的に実行する。通信手段は、時刻同期処理の実行後において、時刻同期情報を時刻マスタへ通知する。
【００３０】
この開示によれば、時刻同期処理の実行中に、ネットワーク上において、時刻同期用パケットと、時刻同期情報を示すデータとが衝突してしまうことを防止することができる。
【００３１】
本開示の一例に係る通信装置は、通信システムにネットワーク接続される通信装置である。通信装置は、通信システムの時刻を管理するマスタクロックに時刻同期したスレーブクロックを有しており、ネットワーク上においてマスタ側に隣接して接続される他の通信装置との間で時刻同期するための同期手段と、同期手段で求められた自装置の時刻同期精度を示す時刻同期情報を、マスタクロックを有する時刻マスタへ通知するための通信手段とを含む。
【００３２】
この開示によれば、時刻マスタは、各通信装置から通知される時刻同期情報に基づいて、自装置と複数の通信装置との間の時刻同期が完了しているか否かを判定することができる。この結果、通信システム全体において時刻同期が完了したタイミングで、データ伝送を開始することができる。また、データ伝送の実行中、時刻マスタは、各通信装置から通知される時刻同期情報に基づいて、複数の通信装置の各々の時刻同期精度を監視することができるため、いずれかの通信装置との間に時刻ずれが発生したときには直ちにデータの伝送を停止することができる。したがって、時刻ずれに依存して、通信装置が入力データを取得する、および、出力データを出力するタイミングがばらつく可能性を回避することができる。
【００３３】
本開示の一例に係る通信方法は、ネットワークに複数の通信装置が接続された通信システムにおける通信方法である。複数の通信装置は、通信システムの時刻を管理するマスタクロックを有する時刻マスタと、各々が、マスタクロックに時刻同期したスレーブクロックを有する複数の時刻スレーブとを含む。通信方法は、複数の時刻スレーブの各々が、ネットワーク上においてマスタ側に隣接して接続される他の通信装置との間で時刻同期するステップと、記複数の時刻スレーブの各々が、自装置の時刻同期精度を示す時刻同期情報を時刻マスタへ通知するステップとを備える。
【００３４】
この開示によれば、時刻マスタは、各時刻スレーブから通知される時刻同期情報に基づいて、自装置と複数の時刻スレーブとの間の時刻同期が完了しているか否かを判定することができる。この結果、通信システム全体において時刻同期が完了したタイミングで、データ伝送を開始することができる。また、データ伝送の実行中、時刻マスタは、各時刻スレーブから通知される時刻同期情報に基づいて、複数の時刻スレーブの各々の時刻同期精度を監視することができるため、いずれかの時刻スレーブとの間に時刻ずれが発生したときには直ちにデータの伝送を停止することができる。したがって、時刻ずれに依存して、時刻スレーブが入力データを取得する、および、出力データを出力するタイミングがばらつく可能性を回避することができる。
【発明の効果】
【００３５】
本開示の一例によれば、ネットワークに複数の通信装置が接続された通信システムにおいて、複数の通信装置の間で時刻同期が完了したことを判断することができる。
【図面の簡単な説明】
【００３６】
【図１】本実施の形態に係る通信システムの構成を模式的に示す図である。
【図２】本実施の形態に従う通信システムのハードウェア構成の一例を示す模式図である。
【図３】ＰＴＰの時刻同期処理の一例を示すシーケンス図である。
【図４】Ｐ２Ｐトランスペアレントクロックを用いた時刻同期処理の一例を示す概念図である。
【図５】Ｐ２Ｐトランスペアレントクロックを用いた時刻同期処理の一例を示すシーケンス図である。
【図６】本実施の形態に係る通信手段の構成例１を模式的に示す図である。
【図７】本実施の形態に係る通信手段の構成例１を含む時刻同期処理を示すシーケンス図である。
【図８】本実施の形態に係る通信システムを構成する時刻スレーブによる処理手順を示すフローチャートである。
【図９】本実施の形態に係る通信システムを構成する時刻マスタによる処理手順を示すフローチャートである。
【図１０】本実施の形態に係る通信手段の構成例２を模式的に示す図である。
【図１１】本実施の形態に係る通信システムを構成する時刻スレーブによる処理手順を示すフローチャートである。
【図１２】本実施の形態に係る通信システムを構成する時刻マスタによる処理手順を示すフローチャートである。
【図１３】本実施の形態に係る通信手段の構成例３を模式的に示す図である。
【図１４】本実施の形態に係る通信システムを構成する時刻スレーブによる処理手順を示すフローチャートである。
【図１５】本実施の形態に係る通信システムを構成する時刻マスタによる処理手順を示すフローチャートである。
【図１６】本実施の形態に係る通信手段の第４例を含む時刻同期処理を示すシーケンス図である。
【図１７】本実施の形態に係る通信手段の第５例を含む時刻同期処理を示すシーケンス図である。
【図１８】本実施の形態に係る通信システムの変形例１が提供する時刻同期機能を示す模式図である。
【図１９】本実施の形態に係る通信システムの変形例１における時刻同期処理を示すシーケンス図である。
【図２０】本実施の形態に係る通信システムの変形例２が提供する時刻同期機能を示す模式図である。
【図２１】本実施の形態に係る通信システムの変形例２における時刻同期処理を示すシーケンス図である。
【図２２】本実施の形態に係る通信システムの変形例３の構成を模式的に示す図である。
【図２３】図２２に示す通信システムにおける各時刻スレーブの通信手段の構成例を模式的に示す図である。
【図２４】図２３に示す通信手段が適用される通信システムの第１の構成例を模式的に示す図である。
【図２５】図２３に示す通信手段が適用される通信システムの第２の構成例を模式的に示す図である。
【発明を実施するための形態】
【００３７】
以下、図面を参照しつつ、本発明に従う各本実施の形態について説明する。以下の説明では、同一の部品および構成要素には同一の符号を付してある。それらの名称および機能も同じである。したがって、これらについての詳細な説明は繰り返さない。なお、以下で説明される各本実施の形態および各変形例は、適宜選択的に組み合わされてもよい。
【００３８】
＜Ａ．適用例＞
まず、図１を参照して、本発明が適用される場面の一例について説明する。図１は、本実施の形態に係る通信システム１の構成を模式的に示す図である。
【００３９】
本実施の形態に係る通信システム１は、ネットワーク２に複数の通信装置（制御装置１００、デバイス２００Ａ〜２００Ｃ）が接続された通信システムである。
【００４０】
複数の通信装置は、時刻マスタと、複数の時刻スレーブとを含む。時刻マスタおよび複数の時刻スレーブの各々は、互いに時刻同期されたタイマを有している。時刻マスタは、通信システム１の時刻を管理する「マスタクロック」として機能するタイマを有しており、時刻同期プロトコルにおける同期手順に従って、ネットワーク接続されている時刻スレーブが有する「スレーブクロック」として機能するタイマを時刻同期する。
【００４１】
図１に示す例においては、制御装置１００は時刻マスタとして機能し、デバイス２００Ａ〜２００Ｃは時刻スレーブとして機能する。制御装置１００は、ネットワーク２を介してデバイス２００Ａ〜２００Ｃとの間でデータを送受信する。制御装置１００は、ネットワーク内のデータ伝送を管理する。デバイス２００Ａ〜２００Ｃは、制御装置１００からの指令に従ってデータ伝送を行なう。
【００４２】
本実施の形態に係る通信システム１のネットワークは、製造装置や生産設備などを制御する制御装置１００を含むものであり、いわゆる産業用ネットワークまたは産業用ネットワークに準拠する要件を充足するように構成される。そのような要件の１つとして、送信元から送出したデータが宛先に到着する時刻が保証される。
【００４３】
このような宛先への到着時刻を保証するために、互いに時刻同期された複数の通信装置がネットワーク接続された通信システム１が採用される。つまり、通信システム１のネットワークを構成する複数の通信装置の間では送受信タイミングが時刻同期されている。より具体的には、ネットワークを構成する複数の通信装置の各々は、時刻同期されたタイマ（あるいは、同期してインクリメントまたはデクリメントされるカウンタ）を有しており、それらの時刻同期されたタイマまたはカウンタに従って、各通信装置がデータの送信または受信のタイミングを決定する。
【００４４】
図１に示す例においては、制御装置１００はタイマ１０１を有しており、デバイス２００Ａ〜２００Ｃはタイマ２０１Ａ〜２０１Ｃをそれぞれ有している。例えば、制御装置１００のタイマ１０１が「マスタクロック」として機能し、デバイス２００Ａ〜２００Ｃのタイマがこのマスタクロックを基準としてタイミングを同期させる。このようなタイマ間の同期によって、通信システム１において、データの伝送タイミングなどを互いに一致させることができる。
【００４５】
本実施の形態に係る通信システム１は、時刻マスタおよび複数の時刻スレーブとの間で時刻同期を実現するために、各時刻スレーブに時刻同期機能が実装されている。この時刻同期機能として、各時刻スレーブは、ネットワーク上においてマスタ側に隣接して接続される通信装置の有するタイマを基準として、自装置の有するタイマを補正するための機能を有している。
【００４６】
具体的には、図１に示す通信システム１において、デバイス２００Ａは、マスタ側に隣接して接続される制御装置１００との間で時刻同期するために、制御装置１００のタイマ１０１（マスタクロック）を基準として、自装置のタイマ２０１Ａ（スレーブクロック）の時刻を補正する。具体的には、デバイス２００Ａは、制御装置１００との間で時刻同期用パケットを遣り取りする時刻同期処理を定期的に実行し、その過程で得られた情報に基づいて、タイマ１０１と自装置のタイマ２０１Ａとの差分を計算する。そして、デバイス２００Ａは、この差分を時刻調整値として自装置のタイマ２０１Ａを補正する。
【００４７】
デバイス２００Ｂは、マスタ側に隣接して接続されるデバイス２００Ａとの間で上述した時刻同期処理を定期的に実行する。デバイス２００Ｂは、デバイス２００Ａのタイマ２０１Ａと自装置のタイマ２０１Ｂとの差分を計算し、その差分を時刻調整値として自装置のタイマ２０１Ｂを補正する。
【００４８】
デバイス２００Ｃは、マスタ側に隣接して接続されるデバイス２００Ｂとの間で上述した時刻同期処理を定期的に実行する。デバイス２００Ｃは、デバイス２００Ｂのタイマ２０１Ｂと自装置のタイマ２０１Ｃとの差分を計算し、その差分を時刻調整値として自装置のタイマ２０１Ｃを補正する。
【００４９】
以上説明したように、通信システム１においては、隣接して接続される２つの通信装置がマスタとスレーブとの関係になって時刻同期処理を実行することにより、最終的にデバイス２００Ａ〜２００Ｃの各々のタイマ（スレーブクロック）を、制御装置１００のタイマ１０１（マスタクロック）に時刻同期させることができる。
【００５０】
しかしながら、上記の時刻同期処理では、各時刻スレーブの時刻同期精度を時刻マスタに通知するシーケンスが存在しないため、時刻マスタは、複数の時刻スレーブの時刻同期が完了したか否かを判定することができない。そのため、通信システム１の電源投入後において、時刻マスタは、複数の時刻スレーブとの間でデータ伝送を開始することができるタイミングを判断することができない。
【００５１】
これには、例えば、実際に時刻同期処理に費やされる時間よりも十分に長い時間を設定しておき、電源投入後、この設定時間が経過した後において、データ伝送を開始する構成を採用することができる。これによると、時刻同期が完了した状態でデータ伝送が実行されることが保証される。しかしながら、電源が投入されてからデータ伝送を開始するまでに必要以上に時間がかかってしまうことが懸念される。
【００５２】
また、上記の時刻同期処理では、データ伝送の実行中において、時刻マスタが時刻スレーブの時刻同期精度を監視するシーケンスが存在しない。そのため、時刻マスタのマスタクロックと時刻スレーブのスレーブクロックとの間に時刻ずれが発生した際に、これを検出することができない。
【００５３】
そこで、本実施の形態に従う通信システム１では、複数の時刻スレーブの各々は、自装置のスレーブクロックの時刻同期精度を示す時刻同期情報を時刻マスタへ通知するための「通信手段」を有する。これによると、図１に示す構成例においては、時刻マスタである制御装置１００には、デバイス２００Ａ〜２００Ｃの各々から時刻同期情報が通知されることになる。したがって、制御装置１００は、デバイス２００Ａ〜２００Ｃから通知された時刻同期情報に基づいて、自装置と各デバイスとの間の時刻同期が完了しているか否かを判断することができる。この結果、通信システム１全体において時刻同期が完了したタイミングで、データ伝送を開始することができる。したがって、電源投入後、設定時間が経過したタイミングでデータ伝送を開始する構成に比べて、より迅速にデータ伝送を開始することが可能となる。
【００５４】
また、データ伝送の実行中、制御装置１００は、デバイス２００Ａ〜２００Ｃから通知された時刻同期情報に基づいて、デバイス２００Ａ〜２００Ｃの各々の時刻同期精度を監視することができるため、いずれかのデバイスとの間に時刻ずれが発生したときには直ちにデータの伝送を停止することができる。よって、時刻ずれの発生に依存して、デバイスが入力データを取得する、および、出力データを出力するタイミングがばらつく可能性を回避することができる。
【００５５】
＜Ｂ．通信システムの全体構成例＞
まず、本実施の形態に従う通信システム１の全体構成について説明する。図１は、本実施の形態に係る通信システム１の構成を模式的に示す図である。
【００５６】
図１に示す構成例においては、ネットワーク２には、制御装置１００および複数のデバイス２００Ａ〜２００Ｃ（以下、「デバイス２００」と総称することもある。）が接続される。デバイス２００Ａ〜２００Ｃは、例えばデイジーチェーンで順次接続されている。図１では、ネットワーク２のデバイス２００と制御装置１００との接続形態は、ライン型としているが、ライン型に限定されない。例えば、リング型、バス型またはスター型を含む他の接続形態であってもよい。
【００５７】
通信システム１のネットワーク内においては、制御装置１００およびデバイス２００Ａ〜２００Ｃは、いずれも「データ転送機能を有する通信装置」とみなすことができる。図１に示す例においては、制御装置１００およびデバイス２００Ａ〜２００Ｃの各々は、隣接して接続されている他の通信装置から、ネットワーク上を転送されるデータ（以下では、１つの転送単位のデータを「フレーム」とも称す。）を受信すると、当該入来したフレームを必要に応じて、隣接して接続されている別の他の通信装置へ転送する機能を有している。なお、受信されたフレームが自装置宛てである場合には、当該受信したフレームを他の通信装置へ転送されることなく、当該フレームを受信した装置自体で当該フレームが処理される。
【００５８】
制御装置１００は、製造装置または生産ライン（以下、「フィールド」とも称す。）に備えられる各種の設備や装置などの制御対象を制御する産業用コントローラに相当する。以下では、制御装置１００を「制御マスタ」とも称す。制御装置１００は、制御演算を実行する一種のコンピュータであり、典型的には、ＰＬＣ（プログラマブルコントローラ）として具体化されてもよい。
【００５９】
制御装置１００には、センサ、アクチュエータといった制御対象が直接またはネットワーク２を介して接続され得る。本実施の形態では、図１に示すように、これら制御対象はデバイス２００およびネットワーク２を介して制御装置１００に接続され得る。
【００６０】
デバイス２００の各々は、フィールド信号を取得する入力デバイス、および、制御装置１００からの指示に従ってフィールドに対して何らかのアクションを行なう出力デバイスあるいはアクチュエータを含む。デバイス２００は、制御マスタによって制御される「制御スレーブ」の一実施例に対応する。ネットワーク２は、入力およびデバイス制御を主たる機能として提供する。ネットワーク２は、狭義の「フィールドネットワーク」に相当する。一般的に「フィールドネットワーク」は、「フィールドバス」とも称されるが、説明の簡単化のため、以下の説明においては、ネットワーク２は、「フィールドネットワーク」および「フィールドバス」の両方を含み得る概念である。
【００６１】
制御装置１００において実行される制御演算は、デバイス２００において収集または生成されたデータ（以下、「入力データ」とも称す。）を収集する処理（入力処理）、デバイス２００に対する指令などのデータ（以下、「出力データ」とも称す。）を生成する処理（演算処理）、生成した出力データを対象のデバイス２００へ送信する処理（出力処理）などを含む。
【００６２】
また、制御装置１００には、サポート装置５００が接続され得る。サポート装置５００は、制御装置１００がネットワーク２を管理するための必要な準備、および制御対象を制御するために必要な準備などを支援する装置である。サポート装置５００は、ネットワーク２の管理に関連して、例えば制御装置１００に接続されるデバイス２００のパラメータ（コンフィギュレーション）を設定するための設定環境などを提供する。サポート装置５００は、設定環境などを提供する設定ツールがインストールされたＰＣ（パーソナルコンピュータ）などを含み得る。
【００６３】
なお、図１に示す通信システム１においては、サポート装置５００は、制御装置１００と別体として備えられるが、サポート装置５００は、制御装置１００に一体的に備えられてもよい。すなわち、サポート装置５００が有する機能は、制御装置１００に内蔵され得る。
【００６４】
ネットワーク２には、任意のデバイス２００を接続することができる。デバイス２００は、フィールドに対して何らかの物理的な作用を与えるアクチュエータ、およびフィールドとの間で情報を遣り取りする入出力装置などを含む。
【００６５】
ネットワーク２を介して制御装置１００とデバイス２００との間でデータが遣り取りされることになるが、これらの遣り取りされるデータは、数１００μｓｅｃオーダ〜数１０ｍｓｅｃオーダのごく短い周期で更新されることになる。
【００６６】
＜Ｃ．伝送されるデータと通信性能＞
図１に示すネットワーク２においては、基本的には、製造装置または生産設備の制御に用いられるデータ（以下、「制御系データ」と総称することもある。）が周期的に伝送される。また、ネットワーク２においては、制御系データと異なる他のデータも伝送され得る。他のデータは、例えば「情報系データ」または「制御情報系データ」と称するデータを含む。これらは、制御系データのような高速なリアルタイム性が要求されないものの、ある程度の定時性が求められるデータである。
【００６７】
制御系データは、例えば、サーボ指令値、エンコーダ値、センサのＯＮ／ＯＦＦ値などが挙げられる。制御系データは、製造装置または生産設備の制御に用いられるため、制御装置１００から一定の通信周期で伝送される。通信システム１では、この通信周期を確実に保証する必要がある。
【００６８】
本実施の形態に係るネットワーク２は、データの到達時間が保証される、定周期通信を行なうバスまたはネットワークを採用することが好ましい。例えば、マシンコントロール用ネットワークの一例であるＥｔｈｅｒＣＡＴ（登録商標）、汎用的なＥｔｈｅｒｎｅｔ（登録商標）上に制御用プロトコルを実装した産業用オープンネットワークであるＥｔｈｅｒＮｅｔ／ＩＰ（登録商標）などの公知のプロトコルに係るネットワークを採用してもよい。
【００６９】
＜Ｄ．ハードウェア構成＞
図２は、本実施の形態に従う通信システム１のハードウェア構成の一例を示す模式図である。制御装置１００は、典型的には、ＰＬＣをベースとして構成されてもよい。
【００７０】
図２を参照して、制御装置１００は、主たるコンポーネントとして、プロセッサ１０２と、メモリ１０４と、ストレージ１０６と、ネットワークコントローラ１１０とを含む。制御装置１００は、サポート装置５００と通信するＩ／Ｆ（Interface）をさらに含む。
【００７１】
ストレージ１０６には、制御装置１００の各部を制御するためのシステムプログラム１０７、および制御対象などに応じて設計されるユーザアプリケーションプログラム１０８が格納される。プロセッサ１０２は、ストレージ１０６に格納されているシステムプログラム１０７およびユーザアプリケーションプログラム１０８をメモリ１０４に読み出して実行することで、後述するような処理を含む各種処理を実現する。メモリ１０４は、ＤＲＡＭ（Dynamic Random Access Memory）やＳＲＡＭ（Static Random Access Memory）などの揮発性記憶装置からなる。
【００７２】
ネットワークコントローラ１１０は、制御装置１００がネットワーク２を介して各デバイス２００との間でデータを遣り取りするためのインターフェイスを提供する。ネットワークコントローラ１１０は、主たるコンポーネントとして、受信回路（Ｒｘ）１１１と、受信バッファ１１２と、送受信コントローラ１１３と、送信バッファ１１４と、送信回路（Ｔｘ）１１５と、タイマ１０１とを含む。
【００７３】
受信回路１１１は、ネットワークコントローラ１１０上を定周期で伝送されるフレームを受信して、その受信したフレームに格納されているデータを受信バッファ１１２に書込む。送受信コントローラ１１３は、受信バッファ１１２に書込まれた受信フレームを順次読出す。送受信コントローラ１１３は、当該読出されたフレームから、制御装置１００での処理に必要なデータのみを抽出し、プロセッサ１０２へ出力する。送受信コントローラ１１３は、プロセッサ１０２からの指令に従って、デバイス２００へ送信すべきデータあるいはフレームを送信バッファ１１４へ順次書込む。送信回路１１５は、ネットワークコントローラ１１０上をフレームが伝送される周期に同期して、送信バッファ１１４に格納されているデータを順次ネットワーク２へ送出する。タイマ１０１は、送受信コントローラ１１３から通信フレームの送信などを指示するタイミングの基準となるパルスを発生するグランドマスタでもあり得る。
【００７４】
図２を参照して、デバイス２００は、通信システム１による様々な設備や装置の制御を実現するために必要な各種機能を実現する。典型的には、デバイス２００の各々は、制御対象の設備や装置などからのフィールド情報の収集や、制御対象の設備や装置などへの指令信号の出力を司る。デバイス２００の各々は、主たるコンポーネントとして、プロセッサ２０２と、メモリ２０４と、ストレージ２０６と、通信回路２１０とを含む。通信回路２１０は、ネットワーク２を伝送されるフレームを処理する。すなわち、通信回路２１０は、ネットワーク２を介して何らのフレームを受信すると、当該受信したフレームに対するデータ書込みおよび／またはフレームからのデータ読出しを行ない、その後、ネットワーク２上において次に位置するデバイス２００へ当該フレームを転送する。
【００７５】
より具体的には、通信回路２１０は、受信回路（Ｒｘ）２１１と、送受信コントローラ２１２と、送信回路（Ｔｘ）２１３と、タイマ２０１とを含む。受信回路２１１および送信回路２１３は、ネットワーク２と物理的に接続される部位であり、送受信コントローラ２１２からの指令に従って、ネットワーク２上を伝送されるフレームを受信し、受信フレームを処理し、処理後のフレームをネットワーク２に送出する。送受信コントローラ２１２は、ネットワーク２上を伝送されるフレームに対するデータ書込みおよび／または当該フレームからのデータ読出しを行なう。タイマ２０１は、送受信コントローラ２１２による指令出力のタイミングまたはデバイス２００による処理の実行のタイミングなどの基準となるクロックを発生する。これにより、制御装置１００および各デバイス２００を含む複数の通信装置を、互いに時刻同期させることができる。
【００７６】
＜Ｅ．時刻同期機能＞
図１に示す通信システム１において、制御装置１００はタイマ１０１を有し、デバイス２００Ａ〜２００Ｄはタイマ２０１Ａ〜２０１Ｃをそれぞれ有している。制御装置１００のタイマ１０１がマスタクロックとして機能し、デバイス２００Ａ〜２００Ｃのタイマがマスタクロックを基準としてタイミングを同期させることで、通信システム１において、データの伝送タイミングなどを互いに一致させることができる。
【００７７】
通信システム１における通信装置間の時刻同期は、例えばＩＥＥＥ１５８８、ＩＥＥＥ８０２．１ＡＳ，ＩＥＥＥ８０２．１ＡＳ−Ｒｅｖなどの高精度時刻同期プロトコルを採用することができる。
【００７８】
高精度時刻同期プロトコルとして、例えば、ＩＥＥＥ１５８８には、ＰＴＰ（Precision Time Protocol）が規定されている。ＰＴＰは、マスタクロックを持つ時刻マスタＭと、スレーブクロックを持つ時刻スレーブＳとを含む通信システムに適用され得る。ＰＴＰでは、時刻マスタＭと時刻スレーブＳとの間で定期的に時刻同期用パケットを遣り取りし、その過程で得られた情報に基づいて、時刻スレーブＳのスレーブクロックの時刻補正を行なう。
【００７９】
図３は、ＰＴＰの時刻同期処理の一例を示すシーケンス図である。図３に示すシーケンス図においては、時刻マスタＭと時刻スレーブＳとが連係することにより、マスタクロックとスレーブクロックとの間の時刻同期が実現される。
【００８０】
図３において、時刻マスタＭのマスタクロックの持つ時刻ＴＭと、時刻スレーブＳのスレーブクロックの持つ時刻ＴＳとの差分であるＯＦＦＳＥＴは、一般に次式（１）で表わされる。
【００８１】
ＯＦＦＳＥＴ＝ＴＳ−ＴＭ    …（１）
最初に、時刻マスタＭは、時刻スレーブＳへ時刻同期用パケット（Syncメッセージ）を送信する。時刻マスタＭがSyncメッセージを送信した時刻Ｔ１、時刻スレーブＳがSyncメッセージを受信した時刻Ｔ２、および時刻マスタＭから時刻スレーブＳへの方向の遅延時間ＤＭ／Ｓの間には、次式（２）の関係が成り立つ。
【００８２】
Ｔ２＝Ｔ１＋ＯＦＦＳＥＴ＋ＤＭ／Ｓ    …（２）
次に、時刻マスタＭは、時刻スレーブＳへ時刻同期用パケット（Follow_Upメッセージ）を送信する。Follow_Upメッセージは、時刻マスタＭからSyncメッセージを送信した時刻Ｔ１を示す情報を含んでいる。時刻スレーブＳは、時刻Ｔ１と時刻Ｔ２とを記録する。
【００８３】
次に、時刻スレーブＳは、時刻マスタＭへ時刻同期パケット（Delay_Reqメッセージ）を送信する。時刻マスタＭは、Delay_Reqメッセージを受信すると、時刻スレーブＳに時刻同期用パケット（Delay_Respメッセージ）を送信する。Delay＿Respメッセージは、Delay_Reqメッセージを受信した時刻Ｔ４を示す情報を含んでいる。時刻スレーブＳは、Delay_Respメッセージを受信すると、時刻マスタＭがDelay_Reqメッセージを受信したことを確認できるため、時刻Ｔ３と時刻Ｔ４とを記録する。
【００８４】
時刻スレーブＳがDelay_Reqメッセージを送信した時刻Ｔ３、時刻マスタＭがDelay_Reqメッセージを受信した時刻Ｔ４、および時刻スレーブＳから時刻マスタＭへの方向の遅延時間ＤＳ／Ｍの間には、次式（３）の関係が成り立つ。
【００８５】
Ｔ４＝Ｔ３−ＯＦＦＳＥＴ＋ＤＳ／Ｍ    …（３）
時刻スレーブＳは、時刻Ｔ１，Ｔ２，Ｔ３，Ｔ４（すなわち、４つのタイムスタンプ）を記録している。ここで、双方向の遅延時間ＤＭ／Ｓ、ＤＳ／Ｍが等しいと仮定すると（ＤＭ／Ｓ＝ＤＳ／Ｍ）、時刻スレーブＳは、式（２），（３）に基づいて、次式（４）によりＯＦＦＳＥＴを算出できる。
【００８６】
ＯＦＦＳＥＴ＝｛（Ｔ２−Ｔ４）−（Ｔ１−Ｔ３）｝／２    …（４）
このようなＰＴＰの時刻同期処理は、双方向の遅延時間が等しい場合は成り立つが、途中にスイッチ等を経由している場合、双方向の遅延時間は異なるために誤差を生じる。双方向の遅延時間の差によって生じる誤差を解決するためにＩＥＥＥ１５８８では、さらに、トランスペアレントクロック（Transparent Clock）と呼ばれる遅延管理機能が定義されている。
【００８７】
トランスペアレントクロックには、Ｅ２Ｅ（End to End）トランスペアレントクロックと、Ｐ２Ｐ（Peer to Peer）トランスペアレントクロックとがある。Ｅ２Ｅトランスペアレントクロックは、時刻マスタＭと時刻スレーブＳとの間に配置される各スイッチの入力部および出力部にタイムスタンプ付与機能を設置し、各スイッチのパケット通過時間を計測して補正する方式である。Ｅ２Ｅトランスペアレントクロックは、図３に示したDelay request-Delay responseメカニズムを用いて、時刻マスタＭと時刻スレーブＳとの間で遅延時間を計測する。
【００８８】
一方、Ｐ２Ｐトランスペアレントクロックは、図４に示すように、隣接する２つの通信装置がマスタとスレーブとの関係になって時計を合わせていく方式である。Ｐ２Ｐトランスペアレントクロックは、Peer delayメカニズムを用いて、各ピア間で遅延時間を計測する。図４の例では、時刻マスタＭおよび時刻スレーブＳ１〜Ｓ３がデイジーチェーンで順次接続されている。図１に示す通信システム１においては、制御装置１００が時刻マスタＭに対応し、デバイス２００Ａ〜２００Ｃが時刻スレーブＳ１〜Ｓ３にそれぞれ対応する。
【００８９】
時刻マスタＭおよび時刻スレーブＳ１〜Ｓ３の各々は、ポートＰ１，Ｐ２を有する。ポートＰ１，Ｐ２の各々は、マスタポートおよびスレーブポートのいずれかに指定され得るる。
【００９０】
ただし、制御装置１００を時刻マスタＭとして機能させる場合には、時刻マスタＭにおけるポートＰ１，Ｐ２の一方のポートがマスタポートに指定され、他方のポートが上位ネットワークまたは、同一ネットワーク上の他の制御装置に接続されることがある（図２４参照）。あるいは、時刻マスタＭおよび時刻スレーブＳ１〜Ｓ３の接続形態がリング型である場合には、時刻マスタＭのポートＰ１，Ｐ２はいずれもマスタポートに指定される。
【００９１】
なお、通信システム１を構成する複数の通信装置のうちのどの通信装置のタイマをマスタクロックとして機能させるかについては、ユーザが指定することができる。あるいは、マスタクロック選出アルゴリズムを用いて自動的に指定することができる。時刻スレーブＳ１〜Ｓ３の各々のポートＰ１，Ｐ２は、ユーザが指定することができる。あるいは、ツールで設計された通信システム１のトポロジー情報に基づいて、自動的に指定することができる。
【００９２】
本実施の形態に係る通信システム１では、Ｐ２Ｐトランスペアレントクロックを用いた時刻同期処理を実行することにより、時刻マスタＭのマスタクロックに時刻スレーブＳ１〜Ｓ３の各々のスレーブクロックを時刻同期させる。
【００９３】
図５は、Ｐ２Ｐトランスペアレントクロックを用いた時刻同期処理の一例を示すシーケンス図である。図５に示すシーケンス図において、スイッチＳＷ１，ＳＷ２は、Ｐ２Ｐトランスペアレントクロック機能を有するネットワークスイッチである。スイッチＳＷ１，ＳＷ２は、ネットワーク上において隣接して接続される。図５では、スイッチＳＷ２は、スイッチＳＷ１のマスタ側に隣接して位置するものとする。スイッチＳＷ１とスイッチＳＷ２との間で定期的に時刻同期用パケットを遣り取りし、その過程で得られた情報に基づいて、スイッチＳＷ１のクロックの時刻補正を行なう。
【００９４】
図５において、スイッチＳＷ１のクロックの持つ時刻ＴＳ１と、スイッチＳＷ２のクロックの持つ時刻ＴＳ２との差分をΔＴとすると、ΔＴは次式（５）で表される。
【００９５】
ΔＴ＝ＴＳ２−ＴＳ１    …（５）
最初に、スイッチＳＷ１は、スイッチＳＷ２へ時刻同期用パケット（Pdelay_Reqメッセージ）を送信する。スイッチＳＷ１がPdelay_Reqメッセージを送信した時刻Ｔ１、スイッチＳＷ２がPdelay_Reqメッセージを受信した時刻Ｔ２、およびスイッチＳＷ１からスイッチＳＷ２への方向の遅延時間Ｄ１／２の間には、次式（６）の関係が成り立つ。
【００９６】
Ｔ２＝Ｔ１＋ΔＴ＋Ｄ１／２    …（６）
次に、スイッチＳＷ２は、スイッチＳＷ１へ時刻同期用パケット（Pdelay_Respメッセージ）を送信する。Pdelay_Respメッセージは、スイッチＳＷ２がPdelay_Reqメッセージを受信した時刻Ｔ２を示す情報を含んでいる。スイッチＳＷ１は、時刻Ｔ１と時刻Ｔ２とを記録する。
【００９７】
次に、スイッチＳＷ２は、スイッチＳＷ１へ時刻同期用パケット（Pdelay_Resp_followupメッセージ）を送信する。Pdelay_Resp_followupメッセージは、スイッチＳＷ２がPdelay_Respメッセージを送信した時刻Ｔ３を示す情報を含んでいる。スイッチＳＷ１は、Pdelay_Resp_followupメッセージを送信した時刻Ｔ３と、Pdelay_Resp_followupメッセージを受信した時刻Ｔ４とを記録する。
【００９８】
スイッチＳＷ２がPdelay_Resp_followupメッセージを送信した時刻Ｔ３、スイッチＳＷ１がPdelay_Resp_followupメッセージを受信した時刻Ｔ４、およびスイッチＳＷ２からスイッチＳＷ１への方向の遅延時間Ｄ２／１の間には、次式（７）の関係が成り立つ。
【００９９】
Ｔ４＝Ｔ３−ΔＴ＋Ｄ２／１    …（７）
スイッチＳＷ１は、時刻Ｔ１，Ｔ２，Ｔ３，Ｔ４（すなわち、４つのタイムスタンプ）を記録している。ここで、双方向の遅延時間Ｄ１／２、Ｄ２／１が等しいと仮定すると（Ｄ１／２＝Ｄ２／１）、遅延時間Ｄを次式（８）により算出できる。
【０１００】
Ｄ＝｛（Ｔ４−Ｔ１）−（Ｔ３−Ｔ２）｝／２    …（８）
さらに、式（６），（８）に基づいて、スイッチＳＷ１の持つクロックの時刻とスイッチＳＷの持つクロックの時刻との差分ΔＴを次式（９）により算出できる。スイッチＳＷ１は、差分ΔＴを時刻調整値として、自装置のクロックの時刻補正を行なう。
【０１０１】
ΔＴ＝（Ｔ２−Ｔ１）−｛（Ｔ４−Ｔ１）−（Ｔ３−Ｔ２）｝／２    …（９）
図４に戻って、時刻スレーブＳ１は、スレーブポートに接続される時刻マスタＭとの間で図５に示す時刻同期処理を実行することにより、時刻マスタＭが持つクロック（マスタクロック）の時刻と自装置の持つクロック（スレーブクロック）の時刻との差分ΔＴを算出する。この場合、図５のシーケンス図において、時刻スレーブＳ１はスイッチＳＷ１に対応し、時刻マスタＭはスイッチＳＷ２に対応する。以下の説明では、時刻マスタＭの時刻に対する時刻スレーブＳ１の時刻の差分ΔＴを「ΔＴＭ−１」と表す。時刻スレーブＳ１は、差分ΔＴＭ−１を時刻調整値として、自装置のタイマを時刻補正する。
【０１０２】
時刻スレーブＳ２は、スレーブポートに接続される時刻スレーブＳ１との間で図５に示す時刻同期処理を実行することにより、時刻スレーブＳ１が時刻差ΔＴを計算する。時刻スレーブＳ２は図４のスイッチＳＷ１に対応し、時刻スレーブＳ１が持つクロックの時刻と自装置のクロックの時刻との差分ΔＴを算出する。この場合、図５のシーケンス図において、時刻スレーブＳ２はスイッチＳＷ１に対応し、時刻スレーブＳ１はスイッチＳＷ２に対応する。以下の説明では、時刻スレーブＳ１の時刻に対する時刻スレーブＳ２の時刻の差分ΔＴを「ΔＴ１−２」と表す。時刻スレーブＳ２は、差分ΔＴ１−２を時刻調整値として、自装置のクロックを時刻補正する。
【０１０３】
時刻スレーブＳ３は、スレーブポートに接続される時刻スレーブＳ２との間で図５に示す時刻同期処理を実行することにより、時刻スレーブＳ２が持つクロックの時刻と自装置が持つクロックの時刻との差分ΔＴを計算する。この場合、図５のシーケンス図において、時刻スレーブＳ３はスイッチＳＷ１に対応し、時刻スレーブＳ２はスイッチＳＷ２に対応する。以下の説明では、時刻スレーブＳ２の時刻に対する時刻スレーブＳ３の時刻の差分ΔＴを「ΔＴ２−３」と表す。時刻スレーブＳ３は、差分ΔＴ２−３を時刻調整値として、自装置のクロックを時刻補正する。
【０１０４】
このように、複数の通信装置の各々が、マスタ側に隣接して接続される通信装置のクロックの時刻と自装置のクロックの時刻との差分ΔＴを時刻調整値として、自装置のクロックを時刻補正することにより、最終的に、時刻マスタＭと全ての時刻スレーブＳ１〜Ｓ３との間で時刻同期が実現される。通信システム１全体の時刻同期が完了することにより、複数の通信装置の間で制御系データの伝送を開始することが可能となる。
【０１０５】
しかしながら、図５に示す時刻同期処理には、各時刻スレーブＳの時刻同期精度を時刻マスタＭに通知するシーケンスが存在しない。このため、時刻マスタＭは、各時刻スレーブＳの時刻同期が完了したか否かを判定することができず、通信システム１の電源投入後などにおいて、制御系データの伝送を開始することができるタイミングを判断することができない。
【０１０６】
これには、例えば、実際に時刻同期処理に費やされる時間よりも十分に長い時間を設定しておき、通信システム１の電源を投入してからこの設定時間が経過した時点で、制御系データの伝送を開始する構成を採用することができる。これによると、時刻同期が完了した状態で制御系データの伝送が実行されることが保証される。しかしながら、電源を投入してから制御系データの伝送を開始するまでに必要以上に時間がかかってしまうことが懸念される。
【０１０７】
また、データ伝送の実行中において、時刻マスタＭには、時刻スレーブＳのスレーブクロックを監視するシーケンスが存在しない。そのため、時刻マスタＭのマスタクロックと時刻スレーブＳのスレーブクロックとの間に時刻ずれが発生した際に、これを検出することができない。
【０１０８】
ここで、特許文献１には、図３に示したＥ２Ｅトランスペアレントクロックを用いた時刻同期処理において、時刻スレーブＳは、時刻マスタＭに送信する時刻同期用パケット（Delay_Reqメッセージ）に、Delay_Reqメッセージを送信した時刻Ｔ３を示す情報を含ませる技術が開示されている。この技術によれば、時刻マスタＭは、時刻Ｔ３と時刻Ｔ４との差分である監視用時刻差分（Ｔ４−Ｔ３）が予め決められた許容範囲内であるか否かを判定することにより、時刻スレーブＳの時刻同期が完了したか否かを判定することができる。
【０１０９】
この特許文献１の技術を、図５に示すＰ２Ｐトランスペアレントクロックを用いた時刻同期処理に適用した場合、時刻マスタＭは、直近の時刻スレーブＳ１から時刻情報を含んだ時刻同期用パケットを受信することで、時刻スレーブＳ１の時刻同期が完了したか否かを判定することができる。しかしながら、時刻マスタＭと時刻スレーブＳ２，Ｓ３との間では時刻同期用パケットの遣り取りが行なわれないため、時刻マスタＭは、時刻スレーブＳ２、Ｓ３の各々の時刻同期が完了したか否かを判定することができない。
【０１１０】
そこで、本実施の形態に従う通信システム１では、時刻スレーブＳは、自装置のスレーブクロックの時刻同期精度を示す情報（時刻同期情報）を時刻マスタＭへ通知するための「通信手段」を有する。これによると、時刻マスタＭは、時刻スレーブＳ１〜Ｓ３の各々から通知される時刻同期情報に基づいて、時刻スレーブＳ１〜Ｓ３の時刻同期が完了したか否かを判定することができる。
【０１１１】
＜Ｆ．通信手段＞
以下では、本実施の形態に係る通信システム１において、時刻スレーブＳが有する通信手段の構成例について説明する。
【０１１２】
（ｆ１．通信手段の構成例１）
図６は、本実施の形態に係る通信手段の構成例１を模式的に示す図である。本実施の形態に係る通信手段は、時刻同期情報として、自装置のスレーブクロックの時刻補正に用いた時刻調整値ΔＴを通知するように構成される。
【０１１３】
図６を参照して、時刻スレーブＳ３は、時刻スレーブＳ２との間で時刻同期処理（図５参照）を実行することにより、時刻スレーブＳ２の時刻に対する時刻スレーブＳ３の時刻の差分ΔＴ２−３を算出する。時刻スレーブＳ３は、算出した時刻調整値ΔＴ２−３を時刻スレーブＳ２へ通知する。
【０１１４】
時刻スレーブＳ２は、時刻スレーブＳ１との間で時刻同期処理を実行することにより、時刻スレーブＳ１の時刻に対する時刻スレーブＳ２の時刻の差分ΔＴ１−２を算出する。時刻スレーブＳ２は、時刻スレーブＳ３より受信した時刻調整値ΔＴ２−３と、算出した時刻調整値ΔＴ１−２とを比較する。具体的には、時刻スレーブＳ２は、時刻調整値ΔＴ２−３の絶対値｜ΔＴ２−３｜と、時刻調整値ΔＴ１−２の絶対値と｜ΔＴ１−２｜とを比較し、大きい方の絶対値（以下、「最大時刻調整値ΔＴｍａｘ」とも称す。）を選択する。時刻スレーブＳ２における最大時刻調整値をΔＴｍａｘ２とすると、最大時刻調整値ΔＴｍａｘ２は次式（１０）で与えられる。時刻スレーブＳ２は、最大時刻調整値ΔＴｍａｘ２を時刻スレーブＳ１へ通知する。
【０１１５】
ΔＴｍａｘ２＝Ｍａｘ｛｜ΔＴ２−３｜，｜ΔＴ１−２｜｝    …（１０）
時刻スレーブＳ１は、時刻マスタＭとの間で時刻同期処理を実行することにより、時刻マスタＭの時刻に対する時刻スレーブＳ１の時刻の差分ΔＴＭ−１を算出する。時刻スレーブＳ１は、時刻スレーブＳ２より受信した最大時刻調整値ΔＴｍａｘ２と、時刻調整値ΔＴＭ−１の絶対値｜ΔＴＭ−１｜とを比較し、大きい方の絶対値（最大時刻調整値ΔＴｍａｘ）を選択する。時刻スレーブＳ１における最大時刻調整値ΔＴｍａｘ１とすると、最大時刻調整値ΔＴｍａｘ１は次式（１１）で与えられる。時刻スレーブＳ１は、最大時刻調整値ΔＴｍａｘ１を時刻マスタＭへ通知する。
【０１１６】
ΔＴｍａｘ１＝Ｍａｘ｛｜ΔＴＭ−１｜，ΔＴｍａｘ２｝    …（１１）
ここで、式（１０），（１１）によると、最大時刻調整値ΔＴｍａｘ１は次式（１２）のように表わすことができる。
【０１１７】
ΔＴｍａｘ１＝Ｍａｘ｛｜ΔＴ２−３｜，｜ΔＴ１−２｜，｜ΔＴＭ−１｜｝    …（１２）
式（１２）から分かるように、時刻マスタＭには、時刻スレーブＳ１〜Ｓ３の時刻調整値ΔＴ２−３，ΔＴ１−２，ΔＴＭ−１の絶対値のうち最も大きいものが、最大時刻調整値ΔＴｍａｘ１として通知されることになる。
【０１１８】
時刻マスタＭは、最大時刻調整値ΔＴｍａｘ１に基づいて、時刻スレーブＳ１〜Ｓ３の時刻同期が完了したか否かを判定する。具体的には、時刻マスタＭは、時刻同期が完了したか否かを判定するための閾値を、通信システム１において予め定められた許容時刻精度を最大パス数で除算した値に設定する。この最大パス数とは、時刻マスタＭと末端の時刻スレーブＳ（図６の例では時刻スレーブＳ３に相当）との間に存在する伝送経路の総数に値する。図６の例では、最大パス数は３となる。したがって、閾値は許容時刻精度／３に設定される。例えば、許容時刻精度を１μｓとした場合、閾値は０．３３３μｓに設定される。
【０１１９】
図６の例では、時刻マスタＭと末端の時刻スレーブＳ３との間には、各時刻スレーブＳの差分ΔＴを足し合わせた時刻差が生じる。そのため、各時刻スレーブＳにおいて、隣接して接続される他の通信装置との時刻の差分ΔＴが許容時刻精度より小さくても、時刻マスタＭと末端の時刻スレーブＳ３との間には許容時刻精度を超える時刻差が発生している可能性がある。そこで、時刻同期の完了を判定するための閾値を、許容時刻精度を最大パス数で除算した値とすることで、時刻マスタＭと時刻スレーブＳ３との時刻差が許容時刻精度より小さいことを、時刻同期完了の判定条件としている。
【０１２０】
時刻マスタＭは、最大時刻調整値ΔＴｍａｘ１と上記閾値とを比較し、最大時刻調整値ΔＴｍａｘ１が閾値より小さい場合、時刻スレーブＳ１〜Ｓ３の時刻同期が完了したと判定する。時刻マスタＭは、時刻同期が完了したと判定されると、時刻スレーブＳ１〜Ｓ３の間で制御系データの伝送を開始する。一方、最大時刻調整値ΔＴｍａｘ１が閾値より大きい場合、時刻マスタＭは、時刻スレーブＳ１〜Ｓ３の時刻同期が完了していないと判定し、制御系データの伝送を開始しないこととする。
【０１２１】
通信システム１において、時刻同期処理は定期的に実行されるため、各時刻スレーブＳの時刻同期情報も時刻マスタＭに定期的に通知されることになる。したがって、時刻マスタＭは、データ伝送の実行中において、時刻スレーブＳ１〜Ｓ３の時刻同期精度を監視することができる。時刻スレーブＳ１〜Ｓ３のいずれか１つと時刻マスタＭとの間で時刻ずれが発生したことによって、時刻マスタＭに通知される最大時刻調整値ΔＴｍａｘ１が閾値を超えた場合、時刻マスタＭは、時刻マスタＭと時刻スレーブＳ１〜Ｓ３との間の時刻同期が破綻したものと判断し、制御系データの伝送を停止する。これによると、図１に示す通信システム１におけるデータ伝送において、制御装置１００は、複数のデバイス２００Ａ〜２００Ｃの制御系データの送受信のタイミングを安定的に管理することができる。
【０１２２】
図７は、本実施の形態に係る通信手段の構成例１を含む時刻同期処理を示すシーケンス図である。
【０１２３】
図７を参照して、通信システム１において時刻同期処理が開始されると、時刻スレーブＳ３は、時刻スレーブＳ２に対して、Pdelay_Reqメッセージを送信する。時刻スレーブＳ３は、時刻スレーブＳ２に送信するPdelay_Reqメッセージに、前回の時刻同期処理で算出された時刻調整値ΔＴ２−３を格納する。
【０１２４】
時刻スレーブＳ２は、Pdelay_Reqメッセージを受信すると、Pdelay_Reqメッセージに格納されている時刻調整値ΔＴ２−３を抽出する。時刻スレーブＳ２は、Pdelay_RespメッセージおよびPdelay_Resp_followupメッセージを時刻スレーブＳ３に送信する。時刻スレーブＳ３は、時刻調整値ΔＴ２−３を算出し、算出した時刻調整値ΔＴ２−３を用いて自装置のスレーブクロックの時刻を補正する。
【０１２５】
時刻スレーブＳ２は、時刻スレーブＳ３より受信した時刻調整値ΔＴ２−３と、前回の時刻同期処理で算出された時刻調整値ΔＴ１−２とを式（１０）に代入することにより、最大時刻調整値ΔＴｍａｘ２を算出する。時刻スレーブＳ２は、時刻スレーブＳ１に送信するPdelay_Reqメッセージに、算出した最大時刻調整値ΔＴｍａｘ２を格納する。
【０１２６】
時刻スレーブＳ１は、Pdelay_Reqメッセージを受信すると、Pdelay_Reqメッセージに格納されている最大時刻調整値ΔＴｍａｘ２を抽出する。時刻スレーブＳ１は、Pdelay_RespメッセージおよびPdelay_Resp_followupメッセージを時刻スレーブＳ２に送信する。時刻スレーブＳ２は、時刻調整値ΔＴ１−２を算出し、算出した時刻調整値ΔＴ１−２を用いて自装置のスレーブクロックの時刻を補正する。
【０１２７】
時刻スレーブＳ１は、時刻スレーブＳ２より受信した最大時刻調整値ΔＴｍａｘ２と、前回の時刻同期処理で算出された時刻調整値ΔＴＭ−１とを式（１１）に代入することにより、最大時刻調整値ΔＴｍａｘ１を算出する。時刻スレーブＳ１は、時刻マスタＭに送信するPdelay_Reqメッセージに、算出した最大時刻調整値ΔＴｍａｘ１を格納する。
【０１２８】
時刻マスタＭは、Pdelay_Reqメッセージを受信すると、Pdelay_Reqメッセージに格納されている最大時刻調整値ΔＴｍａｘ１を抽出する。時刻マスタＭは、Pdelay_RespメッセージおよびPdelay_Resp_followupメッセージを時刻スレーブＳ１に送信する。時刻スレーブＳ１は、時刻調整値ΔＴＭ−１を算出し、算出した時刻調整値ΔＴＭ−１を用いて自装置のスレーブクロックの時刻を補正する。
【０１２９】
時刻マスタＭは、時刻スレーブＳ１より受信した最大時刻調整値ΔＴｍａｘ１に基づいて、時刻スレーブＳ１〜Ｓ３の時刻同期が完了したか否かを判定する。時刻マスタＭは、最大時刻調整値ΔＴｍａｘ１が閾値（＝許容時刻精度／最大パス数）より小さい場合、時刻スレーブＳ１〜Ｓ３の時刻同期が完了していると判定し、時刻スレーブＳ１〜Ｓ３との間で制御系データの伝送を開始する。
【０１３０】
図７に示すように、マスタ側に位置する通信装置に送信する時刻同期用パケット（Pdelay_Reqメッセージ）に時刻同期情報（時刻調整値ΔＴ）を含めることで、既存の時刻同期シーケンスを利用して、通信手段を実現することができる。これによると、通信手段を実現するために、時刻同期処理の実行中に通信装置間で遣り取りされるパケットが増えてしまうことを防止することができる。
【０１３１】
図８は、本実施の形態に係る通信システム１を構成する時刻スレーブＳによる処理手順を示すフローチャートである。図８では、時刻マスタＭに順次接続される複数の時刻スレーブＳ１〜Ｓ３（Ｓ３は末端のスレーブに相当）のうちの１つの時刻スレーブＳｉ（１≦ｉ≦３）による処理手順が示されている。図８に示すフローチャートは所定周期で実行される。
【０１３２】
図８を参照して、時刻スレーブＳｉは、マスタ側ノード（時刻スレーブＳ（ｉ−１）または時刻マスタＭに相当）に対して、時刻同期用パケット（Pdelay_Reqメッセージ）を送信する（ステップＳ０１）。時刻スレーブＳｉは、Pdelay_Reqメッセージに、最大時刻調整値ΔＴｍａｘｉを格納する。時刻スレーブＳｉは、Pdelay_Reqメッセージを送信した時刻Ｔ１を記録する（図６参照）。
【０１３３】
続いて、時刻スレーブＳｉは、マスタ側ノードから時刻同期用パケット（Pdelay_Respメッセージ）を受信する（ステップＳ０２）。Pdelay_Respメッセージは、マスタ側ノードがPdelay_Reqメッセージを受信した時刻Ｔ２を含んでいる。時刻スレーブＳｉは、時刻Ｔ２を記録する。
【０１３４】
時刻スレーブＳｉは、さらに、マスタ側ノードから時刻同期用パケット（Pdelay_Resp followupメッセージ）を受信する（ステップＳ０３）。Pdelay_Resp followupメッセージは、マスタ側ノードがPdelay_Respメッセージを送信した時刻Ｔ３を含んでいる。時刻スレーブＳｉは、時刻Ｔ３および、Pdelay_Respメッセージを受信した時刻Ｔ４を記録する。
【０１３５】
次に、時刻スレーブＳｉは、４つの時刻Ｔ１，Ｔ２，Ｔ３，Ｔ４に基づいて、マスタ側ノードの時刻に対する時刻スレーブＳｉの時刻の差分（時刻調整値）ΔＴを算出する（ステップＳ０４）。時刻スレーブＳｉは、時刻調整値ΔＴを用いて、自装置のクロックの時刻を補正する（ステップＳ０５）。
【０１３６】
次に、時刻スレーブＳｉは、スレーブ側ノード（時刻スレーブＳ（ｉ＋１）に相当）から、時刻同期用パケット（Pdelay_Reqメッセージ）を受信する（ステップＳ０６）。Pdelay_Reqメッセージには、スレーブ側ノードで算出された最大時刻調整値ΔＴｍａｘ（ｉ＋１）が格納されている。
【０１３７】
時刻スレーブＳｉは、時刻調整値ΔＴの絶対値｜ΔＴ｜と、最大時刻調整値ΔＴｍａｘ（ｉ＋１）とを比較し、大きい方の絶対値を選択する。時刻スレーブＳｉは、選択した絶対値を、最大時刻調整値ΔＴｍａｘｉに設定する。時刻スレーブＳｉは、設定した最大時刻調整値ΔＴｍａｘｉを、次回の時刻同期処理においてマスタ側ノードに送信する時刻同期用パケット（Pdelay_Reqメッセージ）に格納する。したがって、更新された最大時刻調整値ΔＴｍａｘｉがマスタ側ノードに通知されることになる（ステップＳ０１）。
【０１３８】
図８に示す処理手順に従って、時刻スレーブＳ１〜Ｓｎの各々がマスタ側ノードに最大時刻調整値ΔＴｍａｘｉを通知することにより、最終的に、時刻スレーブＳ１から時刻マスタＭに最大時刻調整値ΔＴｍａｘ１が通知される。
【０１３９】
図９は、本実施の形態に係る通信システム１を構成する時刻マスタＭによる処理手順を示すフローチャートである。図９に示すフローチャートは所定周期で実行される。
【０１４０】
図９を参照して、時刻マスタＭは、スレーブ側ノード（時刻スレーブＳ１）から時刻同期用パケット（Pdelay_Reqメッセージ）を受信する（ステップＳ１１）。Pdelay_Reqメッセージには、時刻スレーブＳ１で算出された最大時刻調整値ΔＴｍａｘ１が格納されている。
【０１４１】
時刻マスタＭは、時刻スレーブＳ１へ時刻同期用パケット（Pdelay_Respメッセージ）を送信する（ステップＳ１２）。Pdelay_Respメッセージは、時刻マスタＭがPdelay_Reqメッセージを受信した時刻Ｔ２を含んでいる。
【０１４２】
時刻マスタＭは、さらに、時刻スレーブＳ１へ時刻同期用パケット（Pdelay_Resp followupメッセージ）を送信する（ステップＳ１３）。Pdelay_Resp followupメッセージは、時刻マスタＭがPdelay_Respメッセージを送信した時刻Ｔ３を含んでいる。
【０１４３】
続いて、時刻マスタＭは、時刻スレーブＳ１より受信した最大時刻調整値ΔＴｍａｘ１と、閾値（許容時刻精度／最大パス数）とを比較する（ステップＳ１４）。最大時刻調整値ΔＴｍａｘ１が閾値より小さい場合（Ｓ１４のＹＥＳ判定時）、時刻マスタＭは、時刻スレーブＳ１〜Ｓ３の時刻同期が完了したと判定し、時刻スレーブＳ１〜Ｓ３との間で制御系データの伝送を実行する（ステップＳ１５）。
【０１４４】
一方、最大時刻調整値ΔＴｍａｘ１が閾値以上である場合（Ｓ１４のＮＯ判定時）、時刻マスタＭは、さらに、制御系データの伝送を実行中であるか否かを判定する（ステップＳ１６）。制御系データの伝送を実行中であれば（Ｓ１６のＹＥＳ判定時）、時刻マスタＭは、制御系データの伝送を停止する（ステップＳ１７）。一方、制御系データの伝送を実行していなければ（Ｓ１６のＮＯ判定時）、時刻マスタＭは、制御系データの伝送を開始しない。
【０１４５】
（ｆ２．通信手段の構成例２）
図１０は、本実施の形態に係る通信手段の構成例２を模式的に示す図である。本構成例においても構成例１と同様に、通信手段は、時刻同期情報として、自装置のスレーブクロックの時刻補正に用いた時刻調整値ΔＴを通知するように構成される。
【０１４６】
図１０を参照して、時刻スレーブＳ３は、時刻スレーブＳ２との間で時刻同期処理（図５参照）を実行することにより、時刻スレーブＳ２の時刻に対する時刻スレーブＳ３の時刻の差分ΔＴ２−３を算出する。時刻スレーブＳ３は、算出した時刻調整値ΔＴ２−３を時刻スレーブＳ２へ通知する。
【０１４７】
時刻スレーブＳ２は、時刻スレーブＳ１との間で時刻同期処理を実行することにより、時刻スレーブＳ１の時刻に対する時刻スレーブＳ２の時刻の差分ΔＴ１−２を算出する。時刻スレーブＳ２は、時刻スレーブＳ３より受信した時刻調整値ΔＴ２−３と、算出した時刻調整値ΔＴ１−２とを時刻スレーブＳ１へ通知する。
【０１４８】
時刻スレーブＳ１は、時刻マスタＭとの間で時刻同期処理を実行することにより、時刻マスタＭの時刻に対する時刻スレーブＳ１の時刻の差分ΔＴＭ−１を算出する。時刻スレーブＳ１は、時刻スレーブＳ２より受信したΔＴ２−３，ΔＴ１−２と、時刻調整値ΔＴＭ−１とを時刻マスタＭへ通知する。
【０１４９】
時刻マスタＭは、時刻調整値ΔＴ２−３，ΔＴ１−２，ΔＴＭ−１に基づいて、時刻スレーブＳ１〜Ｓ３の時刻同期が完了したか否かを判定する。具体的には、時刻マスタＭは、時刻調整値ΔＴ１−２およびΔＴＭ−１を足し合わせることにより、時刻マスタＭの時刻に対する時刻スレーブＳ２の時刻の差分（時刻調整値）ΔＴＭ−２を算出する。時刻調整値ΔＴＭ−２は、次式（１３）で与えられる。
【０１５０】
ΔＴＭ−２＝ΔＴ１−２＋ΔＴＭ−１    …（１３）
時刻マスタＭは、さらに、時刻調整値ΔＴ２−３，ΔＴ１−２およびΔＴＭ−１を足し合わせることにより、時刻マスタＭの時刻に対する時刻スレーブＳ３の時刻の差分（時刻調整値）ΔＴＭ−３を算出する。時刻調整値ΔＴＭ−３は、次式（１４）で与えられる。
【０１５１】
ΔＴＭ−３＝ΔＴ２−３＋ΔＴ１−２＋ΔＴＭ−１    …（１４）
次に、時刻マスタＭは、時刻調整値ΔＴＭ−１，ΔＴＭ−２，ΔＴＭ−３のうち絶対値が最も大きいものを選択する。時刻マスタＭは、選択した時刻調整値の絶対値を最大時刻調整値ΔＴＭｍａｘに設定する。最大時刻調整値ΔＴＭｍａｘは、次式（１５）で与えられる。
【０１５２】
ΔＴＭｍａｘ＝Ｍａｘ｛｜ΔＴＭ−３｜，｜ΔＴＭ−２｜，｜ΔＴＭ−１｜｝    …（１５）
時刻マスタＭは、最大時刻調整値ΔＴＭｍａｘと許容時刻精度とを比較し、最大時刻調整値ΔＴＭｍａｘが許容時刻精度より小さい場合、時刻スレーブＳ１〜Ｓ３の時刻同期が完了したと判定する。時刻マスタＭは、時刻同期が完了したと判定されると、時刻スレーブＳ１〜Ｓ３の間で制御系データの伝送を開始する。一方、最大時刻調整値ΔＴＭｍａｘが許容時刻精度より大きい場合、時刻マスタＭは、時刻スレーブＳ１〜Ｓ３の時刻同期が完了していないと判定し、制御系データの伝送を開始しないこととする。なお、データ伝送の実行中において、最大時刻調整値ΔＴＭｍａｘが許容時刻精度を超えた場合、時刻マスタＭは、時刻マスタＭと時刻スレーブＳ１〜Ｓ３との間の時刻同期が破綻したものと判断し、制御系データの伝送を停止する。これによると、図１に示す通信システム１におけるデータ伝送において、制御装置１００は、複数のデバイス２００Ａ〜２００Ｃの制御系データの送受信のタイミングを安定的に管理することができる。
【０１５３】
図１１は、本実施の形態に係る通信システム１を構成する時刻スレーブＳによる処理手順を示すフローチャートである。図１１では、時刻マスタＭに順次接続される複数の時刻スレーブＳ１〜Ｓ３（Ｓ３は末端のスレーブに相当）のうちの１つの時刻スレーブＳｉ（１≦ｉ≦３）による処理手順が示されている。図１１に示すフローチャートは、図８に示したフローチャートと比較して、ステップＳ０１，Ｓ０６をステップＳ０１Ａ，Ｓ０６Ａにそれぞれ置き換えたものである。
【０１５４】
図１１を参照して、時刻スレーブＳｉは、マスタ側ノード（時刻スレーブＳ（ｉ−１）または時刻マスタＭに相当）に対して、時刻同期用パケット（Pdelay_Reqメッセージ）を送信する（ステップＳ０１Ａ）。時刻スレーブＳｉは、Pdelay_Reqメッセージに、自装置の時刻調整値ΔＴと、スレーブ側ノード（時刻スレーブＳ（ｉ＋１）に相当）より受信した時刻調整値ΔＴとを格納する。時刻スレーブＳｉは、Pdelay_Reqメッセージを送信した時刻Ｔ１を記録する（図６参照）。
【０１５５】
続いて、時刻スレーブＳｉは、マスタ側ノードから時刻同期用パケット（Pdelay_Respメッセージ）を受信する（ステップＳ０２）。時刻スレーブＳｉは、さらに、マスタ側ノードから時刻同期用パケット（Pdelay_Resp followupメッセージ）を受信する（ステップＳ０３）。時刻スレーブＳｉは、４つの時刻Ｔ１，Ｔ２，Ｔ３，Ｔ４に基づいて、マスタ側ノードの時刻に対する時刻スレーブＳｉの時刻の差分（時刻調整値）ΔＴを算出する（ステップＳ０４）。時刻スレーブＳｉは、時刻調整値ΔＴを用いて、自装置のクロックの時刻を補正する（ステップＳ０５）。
【０１５６】
次に、時刻スレーブＳｉは、スレーブ側ノードから、時刻同期用パケット（Pdelay_Reqメッセージ）を受信する（ステップＳ０６Ａ）。Pdelay_Reqメッセージには、スレーブ側ノードにおける時刻調整値ΔＴが格納されている。スレーブ側ノードにおける時刻調整値ΔＴは、自装置よりもスレーブ側に位置する全ての時刻スレーブＳの時刻調整値ΔＴを含んでいる。時刻スレーブＳｉは、受信した時刻調整値ΔＴおよび、自装置の時刻調整値ΔＴを、次回の時刻同期処理においてマスタ側ノードに送信する時刻同期用パケット（Pdelay_Reqメッセージ）に格納する。したがって、更新された時刻調整値ΔＴがマスタ側ノードに通知されることになる（ステップＳ０１Ａ）。
【０１５７】
図１１に示す処理手順に従って、時刻スレーブＳ１〜Ｓｎの各々がマスタ側ノードに時刻調整値ΔＴを通知することにより、最終的に、時刻スレーブＳ１〜Ｓ３の全ての時刻調整値ΔＴが時刻マスタＭに通知される。
【０１５８】
図１２は、本実施の形態に係る通信システム１を構成する時刻マスタＭによる処理手順を示すフローチャートである。図１２に示すフローチャートは、図９のフローチャートと比較して、ステップＳ１１をステップＳ１１Ａに置き換えるとともに、ステップＳ１８〜Ｓ２０を追加したものである。
【０１５９】
図１２を参照して、時刻マスタＭは、スレーブ側ノード（時刻スレーブＳ１）から時刻同期用パケット（Pdelay_Reqメッセージ）を受信する（ステップＳ１１Ａ）。Pdelay_Reqメッセージには、時刻スレーブＳ１〜Ｓ３の時刻調整値ΔＴ２−３，ΔＴ１−２，ΔＴＭ−１が格納されている。
【０１６０】
時刻マスタＭは、時刻スレーブＳ１へ時刻同期用パケット（Pdelay_Respメッセージ）を送信する（ステップＳ１２）。時刻マスタＭは、さらに、時刻スレーブＳ１へ時刻同期用パケット（Pdelay_Resp followupメッセージ）を送信する（ステップＳ１３）。
【０１６１】
次に、時刻マスタＭは、時刻スレーブＳ１より受信した時刻調整値ΔＴ２−３，ΔＴ１−２，ΔＴＭ−１に基づいて、時刻マスタＭの時刻に対する時刻スレーブＳ２，Ｓ３の時刻の差分（時刻調整値）ΔＴＭ−２，ΔＴＭ−３を算出する（ステップＳ１８）。続いて、時刻マスタＭは、算出した時刻調整値ΔＴＭ−３，ΔＴＭ−２，ΔＴＭ−１の絶対値の最大値（最大時刻調整値ΔＴＭｍａｘ）を求める（ステップＳ１９）。
【０１６２】
次に、時刻マスタＭは、最大時刻調整値ΔＴＭｍａｘと、許容時刻精度とを比較する（ステップＳ２０）。最大時刻調整値ΔＴＭｍａｘが許容時刻精度より小さい場合（Ｓ２０のＹＥＳ判定時）、時刻マスタＭは、時刻スレーブＳ１〜Ｓ３の時刻同期が完了したと判定し、時刻スレーブＳ１〜Ｓ３との間で制御系データの伝送を実行する（ステップＳ１５）。
【０１６３】
一方、最大時刻調整値ΔＴＭｍａｘが許容時刻精度以上である場合（Ｓ２０のＮＯ判定時）、時刻マスタＭは、さらに、制御系データの伝送を実行中であるか否かを判定する（ステップＳ１６）。制御系データの伝送を実行中であれば（Ｓ１６のＹＥＳ判定時）、時刻マスタＭは、制御系データの伝送を停止する（ステップＳ１７）。一方、制御系データの伝送を実行していなければ（Ｓ１６のＮＯ判定時）、時刻マスタＭは、制御系データの伝送を開始しない。
【０１６４】
（ｆ３．通信手段の構成例３）
図１３は、本実施の形態に係る通信手段の構成例３を模式的に示す図である。本構成例においても構成例１，２と同様に、通信手段は、時刻同期情報として、自装置のスレーブクロックの時刻補正に用いた時刻調整値ΔＴを通知するように構成される。
【０１６５】
図１３を参照して、時刻スレーブＳ３は、時刻スレーブＳ２との間で時刻同期処理（図６）を実行することにより、時刻スレーブＳ２の時刻に対する時刻スレーブＳ３の時刻の差分ΔＴ２−３を算出する。時刻スレーブＳ３は、算出した時刻調整値ΔＴ２−３を時刻スレーブＳ２へ通知する。
【０１６６】
時刻スレーブＳ２は、時刻スレーブＳ１との間で時刻同期処理を実行することにより、時刻スレーブＳ１の時刻に対する時刻スレーブＳ２の時刻の差分ΔＴ１−２を算出する。時刻スレーブＳ２は、時刻スレーブＳ３より受信した時刻調整値ΔＴ２−３と算出した時刻調整値ΔＴ１−２とを足し合わせる。時刻スレーブＳ２は、合算値（ΔＴ２−３＋ΔＴ１−２）と時刻調整値ΔＴ１−２とを時刻スレーブＳ１へ通知する。
【０１６７】
時刻スレーブＳ１は、時刻マスタＭとの間で時刻同期処理を実行することにより、時刻マスタＭの時刻に対する時刻スレーブＳ１の時刻の差分ΔＴＭ−１を算出する。時刻スレーブＳ１は、時刻スレーブＳ２より受信した合計値（ΔＴ２−３＋ΔＴ１−２）と、時刻調整値ΔＴＭ−１とを足し合わせる。時刻スレーブＳ１は、また、時刻スレーブＳ２より受信した時刻調整値ΔＴ１−２と、時刻調整値ΔＴＭ−１とを足し合わせる。時刻スレーブＳ１は、合算値（ΔＴ２−３＋ΔＴ１−２＋ΔＴＭ−１），（ΔＴ１−２＋ΔＴＭ−１）と、時刻調整値ΔＴＭ−１とを時刻マスタＭへ通知する。
【０１６８】
ここで、合計値（ΔＴ２−３＋ΔＴ１−２＋ΔＴＭ−１）は、式（１４）により、時刻マスタＭの時刻に対する時刻スレーブＳ３の時刻の差分（時刻調整値）ΔＴＭ−３に相当する。合算値（ΔΔＴ１−２＋ΔＴＭ−１）は、式（１３）により、時刻マスタＭの時刻に対する時刻スレーブＳ２の時刻の差分（時刻調整値）ΔＴＭ−２に相当する。
【０１６９】
時刻マスタＭは、式（１５）を用いて、時刻調整値ΔＴＭ−１，ΔＴＭ−２，ΔＴＭ−３のうち絶対値が最も大きいものを最大時刻調整値ΔＴＭｍａｘに設定する。時刻マスタＭは、最大時刻調整値ΔＴＭｍａｘと許容時刻精度とを比較し、最大時刻調整値ΔＴＭｍａｘが許容時刻精度より小さい場合、時刻スレーブＳ１〜Ｓ３の時刻同期が完了したと判定する。時刻マスタＭは、時刻同期が完了したと判定されると、時刻スレーブＳ１〜Ｓ３の間で制御系データの伝送を開始する。一方、最大時刻調整値ΔＴＭｍａｘが許容時刻精度より大きい場合、時刻マスタＭは、時刻スレーブＳ１〜Ｓ３の時刻同期が完了していないと判定し、制御系データの伝送を開始しないこととする。なお、データ伝送の実行中において、最大時刻調整値ΔＴＭｍａｘが許容時刻精度を超えた場合、時刻マスタＭは、時刻マスタＭと時刻スレーブＳ１〜Ｓ３との間の時刻同期が破綻したものと判断し、制御系データの伝送を停止する。これによると、図１に示す通信システム１におけるデータ伝送において、制御装置１００は、複数のデバイス２００Ａ〜２００Ｃの制御系データの送受信のタイミングを安定的に管理することができる。
【０１７０】
図１４は、本実施の形態に係る通信システム１を構成する時刻スレーブＳによる処理手順を示すフローチャートである。図１４では、時刻マスタＭに順次接続される複数の時刻スレーブＳ１〜Ｓ３（Ｓ３は末端のスレーブに相当）のうちの１つの時刻スレーブＳｉ（１≦ｉ≦３）による処理手順が示されている。図１４に示すフローチャートは、図８に示したフローチャートと比較して、ステップＳ０１，Ｓ０６をステップＳ０１Ｂ，Ｓ０６Ｂにそれぞれ置き換えるとともに、ステップＳ０８を追加したものである。
【０１７１】
図１４を参照して、時刻スレーブＳｉは、マスタ側ノード（時刻スレーブＳ（ｉ−１）または時刻マスタＭに相当）に対して、時刻同期用パケット（Pdelay_Reqメッセージ）を送信する（ステップＳ０１Ｂ）。時刻スレーブＳｉは、Pdelay_Reqメッセージに、自装置の時刻調整値ΔＴおよび、自装置の時刻調整値ΔＴとスレーブ側ノード（時刻スレーブＳ（ｉ＋１）に相当）より受信した時刻調整値ΔＴとの合算値を格納する。時刻スレーブＳｉは、Pdelay_Reqメッセージを送信した時刻Ｔ１を記録する（図６参照）。
【０１７２】
続いて、時刻スレーブＳｉは、マスタ側ノードから時刻同期用パケット（Pdelay_Respメッセージ）を受信する（ステップＳ０２）。時刻スレーブＳｉは、さらに、マスタ側ノードから時刻同期用パケット（Pdelay_Resp followupメッセージ）を受信する（ステップＳ０３）。時刻スレーブＳｉは、４つの時刻Ｔ１，Ｔ２，Ｔ３，Ｔ４に基づいて、マスタ側ノードの時刻に対する時刻スレーブＳｉの時刻の差分（時刻調整値）ΔＴを算出する（ステップＳ０４）。時刻スレーブＳｉは、時刻調整値ΔＴを用いて、自装置のクロックの時刻を補正する（ステップＳ０５）。
【０１７３】
次に、時刻スレーブＳｉは、スレーブ側ノードから、時刻同期用パケット（Pdelay_Reqメッセージ）を受信する（ステップＳ０６Ｂ）。Pdelay_Reqメッセージには、スレーブ側ノードにおける時刻調整値ΔＴと、スレーブ側ノードで算出された時刻調整値ΔＴの合算値とが格納されている。時刻スレーブＳｉは、受信した時刻調整値ΔＴと自装置の時刻調整値ΔＴとを加算する（ステップＳ０８）。時刻スレーブＳｉは、合算値および自装置の時刻調整値ΔＴを、次回の時刻同期処理においてマスタ側ノードに送信する時刻同期用パケット（Pdelay_Reqメッセージ）に格納する。したがって、更新された時刻調整値ΔＴおよび合算値がマスタ側ノードに通知されることになる（ステップＳ０１Ｂ）。
【０１７４】
図１４に示す処理手順に従って、スレーブ側ノードから送信される時刻調整値ΔＴの合算値に、自装置の時刻調整値ΔＴを加算した合算値をマスタ側ノードに通知することにより、最終的に、時刻マスタＭの時刻と時刻スレーブＳ１〜Ｓ３の各々の時刻との差分（時刻調整値）ΔＴＭ−１，ΔＴＭ−２，ΔＴＭ−３が時刻マスタＭに通知される。
【０１７５】
図１５は、本実施の形態に係る通信システム１を構成する時刻マスタＭによる処理手順を示すフローチャートである。図１５に示すフローチャートは、図９のフローチャートと比較して、ステップＳ１１をステップＳ１１Ｂに置き換えるとともに、ステップＳ１９，Ｓ２０を追加したものである。
【０１７６】
図１５を参照して、時刻マスタＭは、スレーブ側ノード（時刻スレーブＳ１）から時刻同期用パケット（Pdelay_Reqメッセージ）を受信する（ステップＳ１１Ｂ）。Pdelay_Reqメッセージには、時刻マスタＭの時刻と時刻スレーブＳ１〜Ｓ３の各々の時刻との差分である時刻調整値ΔＴＭ−３，ΔＴＭ−２，ΔＴＭ−１が格納されている。
【０１７７】
時刻マスタＭは、時刻スレーブＳ１へ時刻同期用パケット（Pdelay_Respメッセージ）を送信する（ステップＳ１２）。時刻マスタＭは、さらに、時刻スレーブＳ１へ時刻同期用パケット（Pdelay_Resp followupメッセージ）を送信する（ステップＳ１３）。
【０１７８】
時刻マスタＭは、時刻スレーブＳ１より受信した時刻調整値ΔＴＭ−３，ΔＴＭ−２，ΔＴＭ−１の絶対値の最大値（最大時刻調整値ΔＴＭｍａｘ）を求める（ステップＳ１９）。続いて、時刻マスタＭは、最大時刻調整値ΔＴＭｍａｘと、許容時刻精度とを比較する（ステップＳ２０）。最大時刻調整値ΔＴＭｍａｘが許容時刻精度より小さい場合（Ｓ２０のＹＥＳ判定時）、時刻マスタＭは、時刻スレーブＳ１〜Ｓ３の時刻同期が完了したと判定し、時刻スレーブＳ１〜Ｓ３との間で制御系データの伝送を実行する（ステップＳ１５）。
【０１７９】
一方、最大時刻調整値ΔＴＭｍａｘが許容時刻精度以上である場合（Ｓ２０のＮＯ判定時）、時刻マスタＭは、さらに、制御系データの伝送を実行中であるか否かを判定する（ステップＳ１６）。制御系データの伝送を実行中であれば（Ｓ１６のＹＥＳ判定時）、時刻マスタＭは、制御系データの伝送を停止する（ステップＳ１７）。一方、制御系データの伝送を実行していなければ（Ｓ１６のＮＯ判定時）、時刻マスタＭは、制御系データの伝送を開始しない。
【０１８０】
（ｆ４．通信手段の構成例４）
図１６は、本実施の形態に係る通信手段の第４例を含む時刻同期処理を示すシーケンス図である。
【０１８１】
図１６を参照して、通信システム１において時刻同期処理が開始されると、時刻スレーブＳ３は、時刻スレーブＳ２との間で時刻同期用パケットを遣り取りし、その過程で得られた情報に基づいて時刻調整値ΔＴ２−３を算出する。時刻スレーブＳ３は、算出した時刻調整値ΔＴ２−３を用いて、時刻スレーブＳ３のスレーブクロックの時刻補正を行なう。
【０１８２】
時刻スレーブＳ２は、時刻スレーブＳ１との間で時刻同期用パケットを遣り取りし、その過程で得られた情報に基づいて時刻調整値ΔＴ１−２を算出する。時刻スレーブＳ２は、算出した時刻調整値ΔＴ１−２を用いて、時刻スレーブＳ２のスレーブクロックの時刻補正を行なう。
【０１８３】
時刻スレーブＳ１は、時刻マスタＭとの間で時刻同期用パケットを遣り取りし、その過程で得られた情報に基づいて時刻調整値ΔＴＭ−１を算出する。時刻スレーブＳ１は、算出した時刻調整値ΔＴＭ−１を用いて、時刻スレーブＳ１のスレーブクロックの時刻補正を行なう。
【０１８４】
時刻同期処理を実行した後、時刻マスタＭは、時刻スレーブＳ１〜Ｓ３の各々に対して、時刻調整値ΔＴを問い合わせる。各時刻スレーブＳは、問い合わせに応答して、自装置の時刻調整値ΔＴを時刻マスタＭに通知する。
【０１８５】
時刻マスタＭは、時刻調整値ΔＴ２−３，ΔＴ１−２，ΔＴＭ−１に基づいて、時刻スレーブＳ１〜Ｓ３の時刻同期が完了したか否かを判定する。具体的には、時刻マスタＭは、時刻調整値ΔＴ１−２およびΔＴＭ−１を足し合わせることにより、時刻マスタＭの時刻に対する時刻スレーブＳ２の時刻の差分（時刻調整値）ΔＴＭ−２を算出する。時刻マスタＭは、さらに、時刻調整値ΔＴ２−３，ΔＴ１−２およびΔＴＭ−１を足し合わせることにより、時刻マスタＭの時刻に対する時刻スレーブＳ３の時刻の差分（時刻調整値）ΔＴＭ−３を算出する。
【０１８６】
次に、時刻マスタＭは、時刻調整値ΔＴＭ−１，ΔＴＭ−２，ΔＴＭ−３のうち絶対値が最も大きいものを選択する。時刻マスタＭは、選択した時刻調整値の絶対値を最大時刻調整値ΔＴＭｍａｘに設定する。時刻マスタＭは、最大時刻調整値ΔＴＭｍａｘと許容時刻精度とを比較し、最大時刻調整値ΔＴＭｍａｘが許容時刻精度より小さい場合、時刻スレーブＳ１〜Ｓ３の時刻同期が完了したと判定する。時刻マスタＭは、時刻同期が完了したと判定されると、時刻スレーブＳ１〜Ｓ３の間で制御系データの伝送を開始する。一方、最大時刻調整値ΔＴＭｍａｘが許容時刻精度より大きい場合、時刻マスタＭは、時刻スレーブＳ１〜Ｓ３の時刻同期が完了していないと判定し、制御系データの伝送を開始しないこととする。なお、データ伝送の実行中において、最大時刻調整値ΔＴＭｍａｘが許容時刻精度を超えた場合、時刻マスタＭは、時刻マスタＭと時刻スレーブＳ１〜Ｓ３との間の時刻同期が破綻したものと判断し、制御系データの伝送を停止する。これによると、図１に示す通信システム１におけるデータ伝送において、制御装置１００は、複数のデバイス２００Ａ〜２００Ｃの制御系データの送受信のタイミングを安定的に管理することができる。
【０１８７】
本構成例では、各時刻スレーブＳの通信手段は、時刻同期処理が実行された後に、当該処理で得られた自装置の時刻調整値ΔＴを時刻マスタＭに通知するように構成される。時刻同期処理の実行中に各時刻スレーブＳが時刻調整値ΔＴを時刻マスタＭに通知する構成とした場合、ネットワーク上において、時刻同期用パケットと、時刻調整値ΔＴを示すデータとが衝突してしまう虞が懸念される。本構成例によれば、このような衝突が発生することを防止することができる。
【０１８８】
（ｆ５．通信手段の構成例５）
図１７は、本実施の形態に係る通信手段の第５例を含む時刻同期処理を示すシーケンス図である。
【０１８９】
図１７を参照して、通信システム１において時刻同期処理が開始されると、時刻スレーブＳ３は、時刻スレーブＳ２との間で時刻同期用パケットを遣り取りし、その過程で得られた情報に基づいて時刻調整値ΔＴ２−３を算出する。時刻スレーブＳ３は、算出した時刻調整値ΔＴ２−３を用いて、時刻スレーブＳ３のスレーブクロックの時刻補正を行なう。
【０１９０】
時刻スレーブＳ２は、時刻スレーブＳ１との間で時刻同期用パケットを遣り取りし、その過程で得られた情報に基づいて時刻調整値ΔＴ１−２を算出する。時刻スレーブＳ２は、算出した時刻調整値ΔＴ１−２を用いて、時刻スレーブＳ２のスレーブクロックの時刻補正を行なう。
【０１９１】
時刻スレーブＳ１は、時刻マスタＭとの間で時刻同期用パケットを遣り取りし、その過程で得られた情報に基づいて時刻調整値ΔＴＭ−１を算出する。時刻スレーブＳ１は、算出した時刻調整値ΔＴＭ−１を用いて、時刻スレーブＳ１のスレーブクロックの時刻補正を行なう。
【０１９２】
時刻同期処理を実行した後、時刻スレーブＳ１〜Ｓ３の各々は、自装置の時刻調整値ΔＴを時刻マスタＭに通知する。時刻マスタＭは、時刻調整値ΔＴ２−３，ΔＴ１−２，ΔＴＭ−１に基づいて、時刻スレーブＳ１〜Ｓ３の時刻同期が完了したか否かを判定する。具体的には、時刻マスタＭは、時刻マスタＭの時刻に対する時刻スレーブＳ２の時刻の差分（時刻調整値）ΔＴＭ−２および、時刻マスタＭの時刻に対する時刻スレーブＳ３の時刻の差分（時刻調整値）ΔＴＭ−３を算出する。
【０１９３】
次に、時刻マスタＭは、時刻調整値ΔＴＭ−１，ΔＴＭ−２，ΔＴＭ−３のうち絶対値が最も大きいものを選択する。時刻マスタＭは、選択した時刻調整値の絶対値を最大時刻調整値ΔＴＭｍａｘに設定する。時刻マスタＭは、最大時刻調整値ΔＴＭｍａｘと許容時刻精度とを比較し、最大時刻調整値ΔＴＭｍａｘが許容時刻精度より小さい場合、時刻スレーブＳ１〜Ｓ３の時刻同期が完了したと判定する。時刻マスタＭは、時刻同期が完了したと判定されると、時刻スレーブＳ１〜Ｓ３の間で制御系データの伝送を開始する。一方、最大時刻調整値ΔＴＭｍａｘが許容時刻精度より大きい場合、時刻マスタＭは、時刻スレーブＳ１〜Ｓ３の時刻同期が完了していないと判定し、制御系データの伝送を開始しないこととする。なお、データ伝送の実行中において、最大時刻調整値ΔＴＭｍａｘが許容時刻精度を超えた場合、時刻マスタＭは、時刻マスタＭと時刻スレーブＳ１〜Ｓ３との間の時刻同期が破綻したものと判断し、制御系データの伝送を停止する。これによると、図１に示す通信システム１におけるデータ伝送において、制御装置１００は、複数のデバイス２００Ａ〜２００Ｃの制御系データの送受信のタイミングを安定的に管理することができる。
【０１９４】
本構成例によれば、上述した構成例４と同様に、通信手段は、時刻同期処理が実行された後に、当該処理で得られた自装置の時刻調整値ΔＴを時刻マスタＭに通知するように構成される。したがって、時刻同期処理の実行中、ネットワーク上において、時刻同期用パケットと、時刻調整値ΔＴを示すデータとが衝突することを防止することができる。
【０１９５】
なお、上述した通信手段の構成例１〜５においては、時刻スレーブＳ１〜Ｓ３の時刻同期処理が互いに等しいタイミングで実行される構成について説明したが、時刻同期処理を実行するタイミングが時刻スレーブ間で異なっていてもよい。この場合、時刻マスタＭは、全ての時刻スレーブＳの時刻同期情報が収集されたタイミングで、時刻同期の完了を判定することができる。
【０１９６】
＜Ｇ．通信システムの変形例＞
図１に示す通信システム１においては、制御装置１００（制御マスタ）を時刻マスタとして機能させる構成例について説明したが、制御装置１００を他の通信装置に時刻同期させるようにしてもよい。このとき、他の通信装置が時刻マスタとして機能し、制御装置１００（制御マスタ）が時刻スレーブとして機能することになる。例えば、図１に示す通信システム１において、デバイス２００Ａ〜２００Ｃのうちの１つのデバイス２００を時刻マスタとして機能させる構成例について説明する。
【０１９７】
（ｇ１．通信システム１の変形例１）
図１８は、本実施の形態に係る通信システム１の変形例１が提供する時刻同期機能を示す模式図である。
【０１９８】
図１８に示す構成例では、時刻スレーブＳ２が制御装置１００（制御マスタ）に対応し、時刻マスタＭおよび時刻スレーブＳ１，Ｓ３がデバイス２００Ａ〜２００Ｃにそれぞれ対応する。時刻スレーブＳ１〜Ｓ３の各々は、図７に示す時刻同期処理において算出された時刻調整値ΔＴ２−３，ΔＴ１−２，ΔＴＭ−１を時刻マスタＭへ通知する。図１８では、各時刻スレーブＳには、図６に示した通信手段の構成例１が適用される。したがって、時刻マスタＭとして機能するデバイス２００には、最大時刻調整値ΔＴｍａｘ１が通知される。
【０１９９】
時刻マスタＭであるデバイス２００は、図９に示す処理手順を実行することにより、最大時刻調整値ΔＴｍａｘ１に基づいて、時刻スレーブＳ１〜Ｓ３の時刻同期が完了したか否かを判定する。デバイス２００は、判定結果を時刻スレーブＳ２として機能する制御装置１００（制御マスタ）に通知する。
【０２００】
制御装置１００は、時刻スレーブＳ１〜Ｓ３の時刻同期が完了したと判定された場合、デバイス２００Ａ〜２００Ｃとの間で制御系データの伝送を開始する。一方、時刻スレーブＳ１〜Ｓ３の時刻同期が完了していないと判定された場合、制御装置１００は、制御系データの伝送を開始しないこととする。なお、データ伝送の実行中において、時刻マスタＭと時刻スレーブＳ１〜Ｓ３との間の時刻同期が破綻したものと判断された場合には、制御装置１００は、デバイス２００Ａ〜２００Ｃとの間の制御系データの伝送を停止する。これによると、図１に示す通信システム１におけるデータ伝送において、制御装置１００は、複数のデバイス２００Ａ〜２００Ｃの制御系データの送受信のタイミングを安定的に管理することができる。
【０２０１】
図１９は、本実施の形態に係る通信システム１の変形例１における時刻同期処理を示すシーケンス図である。
【０２０２】
図１９を参照して、通信システム１において時刻同期処理が開始されると、時刻スレーブＳ３は、時刻スレーブＳ２に対して、Pdelay_Reqメッセージを送信する。時刻スレーブＳ３は、時刻スレーブＳ２に送信するPdelay_Reqメッセージに、前回の時刻同期処理で算出された時刻調整値ΔＴ２−３を格納する。
【０２０３】
時刻スレーブＳ２は、Pdelay_Reqメッセージを受信すると、Pdelay_Reqメッセージに格納されている時刻調整値ΔＴ２−３を抽出する。時刻スレーブＳ２は、Pdelay_RespメッセージおよびPdelay_Resp_followupメッセージを時刻スレーブＳ３に送信する。時刻スレーブＳ３は、時刻調整値ΔＴ２−３を算出し、算出した時刻調整値ΔＴ２−３を用いて自装置のスレーブクロックの時刻を補正する。
【０２０４】
時刻スレーブＳ２は、時刻スレーブＳ３より受信した時刻調整値ΔＴ２−３と、前回の時刻同期処理で算出された時刻調整値ΔＴ１−２とを式（１０）に代入することにより、最大時刻調整値ΔＴｍａｘ２を算出する。時刻スレーブＳ２は、時刻スレーブＳ１に送信するPdelay_Reqメッセージに、算出した最大時刻調整値ΔＴｍａｘ２を格納する。
【０２０５】
時刻スレーブＳ１は、Pdelay_Reqメッセージを受信すると、Pdelay_Reqメッセージに格納されている最大時刻調整値ΔＴｍａｘ２を抽出する。時刻スレーブＳ１は、Pdelay_RespメッセージおよびPdelay_Resp_followupメッセージを時刻スレーブＳ２に送信する。時刻スレーブＳ２は、時刻調整値ΔＴ１−２を算出し、算出した時刻調整値ΔＴ１−２を用いて自装置のスレーブクロックの時刻を補正する。
【０２０６】
時刻スレーブＳ１は、時刻スレーブＳ２より受信した最大時刻調整値ΔＴｍａｘ２と、前回の時刻同期処理で算出された時刻調整値ΔＴＭ−１とを式（１１）に代入することにより、最大時刻調整値ΔＴｍａｘ１を算出する。時刻スレーブＳ１は、時刻マスタＭに送信するPdelay_Reqメッセージに、算出した最大時刻調整値ΔＴｍａｘ１を格納する。
【０２０７】
時刻マスタＭは、Pdelay_Reqメッセージを受信すると、Pdelay_Reqメッセージに格納されている最大時刻調整値ΔＴｍａｘ１を抽出する。時刻マスタＭは、Pdelay_RespメッセージおよびPdelay_Resp_followupメッセージを時刻スレーブＳ１に送信する。時刻スレーブＳ１は、時刻調整値ΔＴＭ−１を算出し、算出した時刻調整値ΔＴＭ−１を用いて自装置のスレーブクロックの時刻を補正する。
【０２０８】
時刻マスタＭは、時刻スレーブＳ１より受信した最大時刻調整値ΔＴｍａｘ１に基づいて、時刻スレーブＳ１〜Ｓ３の時刻同期が完了したか否かを判定する。時刻マスタＭは、最大時刻調整値ΔＴｍａｘ１が閾値（＝許容時刻精度／最大パス数）より小さい場合、時刻スレーブＳ１〜Ｓ３の時刻同期が完了していると判定し、判定結果を制御装置１００（制御マスタ）に通知する。制御装置１００は、時刻スレーブＳ１〜Ｓ３との間で制御系データの伝送を開始する。
【０２０９】
一方、時刻マスタＭは、最大時刻調整値ΔＴｍａｘ１が閾値より大きい場合、時刻スレーブＳ１〜Ｓ３の時刻同期が完了していないと判定し、判定結果を制御装置１００（制御マスタ）に通知する。制御装置１００は、制御系データの伝送を開始しない。データ伝送の実行中である場合、制御装置１００は、制御系データの伝送を停止する。
【０２１０】
（ｇ２．通信システム１の変形例２）
図２０は、本実施の形態に係る通信システム１の変形例２が提供する時刻同期機能を示す模式図である。
【０２１１】
図２０に示す構成例では、図１８に示す構成例と同様に、時刻スレーブＳ２が制御装置１００に対応し、時刻マスタＭおよび時刻スレーブＳ１，Ｓ３がデバイス２００Ａ〜２００Ｃにそれぞれ対応する。時刻スレーブＳ１〜Ｓ３の各々は、図７に示す時刻同期処理において算出された時刻調整値ΔＴ２−３，ΔＴ１−２，ΔＴＭ−１を時刻マスタＭへ通知する。図２０では、各時刻スレーブＳには、図６に示した通信手段の構成例１が適用される。時刻マスタＭとして機能するデバイス２００には、最大時刻調整値ΔＴｍａｘ１が通知される。
【０２１２】
本変形例では、時刻マスタＭは、通知された最大時刻調整値ΔＴｍａｘ１を制御装置１００（制御マスタ）に転送する。制御装置１００は、図９に示す処理手順を実行することにより、最大時刻調整値ΔＴｍａｘ１に基づいて、時刻スレーブＳ１〜Ｓ３の時刻同期が完了したか否かを判定する。制御装置１００は、時刻スレーブＳ１〜Ｓ３の時刻同期が完了したと判定された場合、デバイス２００Ａ〜２００Ｃとの間で制御系データの伝送を開始する。一方、時刻スレーブＳ１〜Ｓ３の時刻同期が完了していないと判定された場合、制御装置１００は、制御系データの伝送を開始しないこととする。なお、データ伝送の実行中において、時刻マスタＭと時刻スレーブＳ１〜Ｓ３との間の時刻同期が破綻したものと判断された場合には、制御装置１００は、デバイス２００Ａ〜２００Ｃとの間の制御系データの伝送を停止する。これによると、図１に示す通信システム１におけるデータ伝送において、制御装置１００は、複数のデバイス２００Ａ〜２００Ｃの制御系データの送受信のタイミングを管理することができる。
【０２１３】
図２１は、本実施の形態に係る通信システム１の変形例２における時刻同期処理を示すシーケンス図である。
【０２１４】
図２１を参照して、通信システム１において時刻同期処理が開始されると、時刻スレーブＳ３は、時刻スレーブＳ２に対して、Pdelay_Reqメッセージを送信する。時刻スレーブＳ３は、時刻スレーブＳ２に送信するPdelay_Reqメッセージに、前回の時刻同期処理で算出された時刻調整値ΔＴ２−３を格納する。
【０２１５】
時刻スレーブＳ２は、Pdelay_Reqメッセージを受信すると、Pdelay_Reqメッセージに格納されている時刻調整値ΔＴ２−３を抽出する。時刻スレーブＳ２は、Pdelay_RespメッセージおよびPdelay_Resp_followupメッセージを時刻スレーブＳ３に送信する。時刻スレーブＳ３は、時刻調整値ΔＴ２−３を算出し、算出した時刻調整値ΔＴ２−３を用いて自装置のスレーブクロックの時刻を補正する。
【０２１６】
時刻スレーブＳ２は、時刻スレーブＳ３より受信した時刻調整値ΔＴ２−３と、前回の時刻同期処理で算出された時刻調整値ΔＴ１−２とを式（１０）に代入することにより、最大時刻調整値ΔＴｍａｘ２を算出する。時刻スレーブＳ２は、時刻スレーブＳ１に送信するPdelay_Reqメッセージに、算出した最大時刻調整値ΔＴｍａｘ２を格納する。
【０２１７】
時刻スレーブＳ１は、Pdelay_Reqメッセージを受信すると、Pdelay_Reqメッセージに格納されている最大時刻調整値ΔＴｍａｘ２を抽出する。時刻スレーブＳ１は、Pdelay_RespメッセージおよびPdelay_Resp_followupメッセージを時刻スレーブＳ２に送信する。時刻スレーブＳ２は、時刻調整値ΔＴ１−２を算出し、算出した時刻調整値ΔＴ１−２を用いて自装置のスレーブクロックの時刻を補正する。
【０２１８】
時刻スレーブＳ１は、時刻スレーブＳ２より受信した最大時刻調整値ΔＴｍａｘ２と、前回の時刻同期処理で算出された時刻調整値ΔＴＭ−１とを式（１１）に代入することにより、最大時刻調整値ΔＴｍａｘ１を算出する。時刻スレーブＳ１は、時刻マスタＭに送信するPdelay_Reqメッセージに、算出した最大時刻調整値ΔＴｍａｘ１を格納する。
【０２１９】
時刻マスタＭは、Pdelay_Reqメッセージを受信すると、Pdelay_Reqメッセージに格納されている最大時刻調整値ΔＴｍａｘ１を抽出する。時刻マスタＭは、Pdelay_RespメッセージおよびPdelay_Resp_followupメッセージを時刻スレーブＳ１に送信する。時刻スレーブＳ１は、時刻調整値ΔＴＭ−１を算出し、算出した時刻調整値ΔＴＭ−１を用いて自装置のスレーブクロックの時刻を補正する。
【０２２０】
時刻マスタＭは、時刻スレーブＳ１より受信した最大時刻調整値ΔＴｍａｘ１を制御装置１００（制御マスタ）へ転送する。制御装置１００は、最大時刻調整値ΔＴｍａｘ１に基づいて、時刻スレーブＳ１〜Ｓ３の時刻同期が完了したか否かを判定する。制御装置１００は、最大時刻調整値ΔＴｍａｘ１が閾値より小さい場合、時刻スレーブＳ１〜Ｓ３の時刻同期が完了していると判定し、時刻スレーブＳ１〜Ｓ３との間で制御系データの伝送を開始する。
【０２２１】
一方、制御装置１００は、最大時刻調整値ΔＴｍａｘ１が閾値より大きい場合、時刻スレーブＳ１〜Ｓ３の時刻同期が完了していないと判定し、制御系データの伝送を開始しない。データ伝送の実行中である場合、制御装置１００は、制御系データの伝送を停止する。
【０２２２】
（ｇ３．通信システムの変形例３）
図１に示す通信システム１においては、ネットワーク２に、時刻マスタＭ（制御装置１００）および時刻スレーブＳ１〜Ｓ３（デバイス２００Ａ〜２００Ｃ）がデイジーチェーンで順次接続されている構成例について説明したが、ネットワーク２の時刻マスタＭと時刻スレーブＳ１〜Ｓ３との接続形態は、これに限定されない。例えば、ネットワーク２の時刻マスタＭと時刻スレーブＳ１〜Ｓ３との接続形態がスター型とした構成例について説明する。
【０２２３】
図２２は、本実施の形態に係る通信システム１の変形例３の構成を模式的に示す図である。図２２に示す構成例において、ネットワーク２には、時刻マスタＭおよび複数の時刻スレーブＳ１〜Ｓ５が接続される。時刻マスタＭおよび時刻スレーブＳ３〜Ｓ５の各々は、ポートＰ１，Ｐ２を有する。時刻スレーブＳ１，Ｓ２の各々は、ポートＰ１〜Ｐ４を有する。時刻スレーブＳ１のポートＰ１は時刻マスタＭのポートＰ２に接続され、時刻スレーブＳ１のポートＰ２は時刻スレーブＳ３のポートＰ２に接続され、時刻スレーブＳ１のポートＰ３は時刻スレーブＳ２のポートＰ１に接続される。時刻スレーブＳ２のポートＰ２は時刻スレーブＳ４のポートＰ２に接続され、時刻スレーブＳ２のポートＰ３は時刻スレーブＳ５のポートＰ１に接続される。
【０２２４】
図２２に示す構成例においても、Ｐ２Ｐトランスペアレントクロックを用いた時刻同期処理を実行することにより、時刻マスタＭの有するマスタクロックに各時刻スレーブＳ１〜Ｓ５の有するスレーブクロックを時刻同期させる。
【０２２５】
具体的には、時刻スレーブＳ１は、ポートＰ１（スレーブポート）に接続される時刻マスタＭとの間で図５に示す時刻同期処理を実行することにより、時刻マスタＭが持つクロック（マスタクロック）の時刻と自装置の持つクロック（スレーブクロック）の時刻との差分ΔＴＭ−１を算出する。時刻スレーブＳ１は、差分ΔＴＭ−１を時刻調整値として、自装置のタイマを時刻補正する。
【０２２６】
時刻スレーブＳ２は、ポートＰ１（スレーブポート）に接続される時刻スレーブＳ１との間で図５に示す時刻同期処理を実行することにより、時刻スレーブＳ１が持つクロックの時刻と自装置のクロックの時刻との差分ΔＴ１−２を算出する。時刻スレーブＳ２は、差分ΔＴ２−１を時刻調整値として、自装置のクロックを時刻補正する。
【０２２７】
時刻スレーブＳ３は、ポートＰ２（スレーブポート）に接続される時刻スレーブＳ１との間で図５に示す時刻同期処理を実行することにより、時刻スレーブＳ１が持つクロックの時刻と自装置が持つクロックの時刻との差分ΔＴ１−３を算出する。時刻スレーブＳ３は、差分ΔＴ１−３を時刻調整値として、自装置のクロックを時刻補正する。
【０２２８】
時刻スレーブＳ４は、ポートＰ２（スレーブポート）に接続される時刻スレーブＳ２との間で図５に示す時刻同期処理を実行することにより、時刻スレーブＳ２が持つクロックの時刻と自装置が持つクロックの時刻との差分ΔＴ２−４を算出する。時刻スレーブＳ４は、差分ΔＴ２−４を時刻調整値として、自装置のクロックを時刻補正する。
【０２２９】
時刻スレーブＳ５は、ポートＰ１（スレーブポート）に接続される時刻スレーブＳ２との間で図５に示す時刻同期処理を実行することにより、時刻スレーブＳ２が持つクロックの時刻と自装置が持つクロックの時刻との差分ΔＴ２−５を算出する。時刻スレーブＳ５は、差分ΔＴ２−５を時刻調整値として、自装置のクロックを時刻補正する。
【０２３０】
このように、時刻スレーブＳ１〜Ｓ５の各々が、マスタ側に隣接して接続される通信装置のクロックの時刻と自装置のクロックの時刻との差分ΔＴを時刻調整値として、自装置のクロックを時刻補正することにより、最終的に、時刻マスタＭと全ての時刻スレーブＳ１〜Ｓ５との間で時刻同期が実現される。通信システム１全体の時刻同期が完了することにより、複数の通信装置の間で制御系データの伝送を開始することが可能となる。
【０２３１】
時刻スレーブＳ１〜Ｓ５の各々は、自装置のスレーブクロックの時刻同期情報を時刻マスタＭへ通知するための「通信手段」を有する。これによると、時刻マスタＭは、時刻スレーブＳ１〜Ｓ５の各々から通知される時刻同期情報に基づいて、時刻スレーブＳ１〜Ｓ３との間の時刻同期が完了したか否かを判定することができる。
【０２３２】
図２３は、図２２に示す通信システム１における各スレーブの通信手段の構成例を模式的に示す図である。各スレーブの通信手段は、時刻同期情報として、自装置のスレーブクロックの時刻補正に用いた時刻調整値ΔＴを通知するように構成される。
【０２３３】
図２３を参照して、時刻スレーブＳ４は、時刻スレーブＳ２との間で時刻同期処理を実行することにより、時刻スレーブＳ２の時刻に対する時刻スレーブＳ４の時刻の差分ΔＴ２−４を算出する。時刻スレーブＳ４は、算出した時刻調整値ΔＴ２−４を時刻スレーブＳ２へ通知する。
【０２３４】
時刻スレーブＳ５は、時刻スレーブＳ２との間で時刻同期処理を実行することにより、時刻スレーブＳ２の時刻に対する時刻スレーブＳ５の時刻の差分ΔＴ２−５を算出する。時刻スレーブＳ５は、算出した時刻調整値ΔＴ２−５を時刻スレーブＳ２へ通知する。
【０２３５】
時刻スレーブＳ２は、時刻スレーブＳ１との間で時刻同期処理を実行することにより、時刻スレーブＳ１の時刻に対する時刻スレーブＳ２の時刻の差分ΔＴ１−２を算出する。時刻スレーブＳ２は、時刻スレーブＳ４より受信した時刻調整値ΔＴ２−４と、時刻スレーブＳ５より受信した時刻調整値ΔＴ２−５と、算出した時刻調整値ΔＴ１−２とを比較する。具体的には、時刻スレーブＳ２は、時刻調整値ΔＴ２−４の絶対値｜ΔＴ２−４｜と、時刻調整値ΔＴ２−５の絶対値｜ΔＴ２−５｜と、時刻調整値ΔＴ１−２の絶対値と｜ΔＴ１−２｜とを比較し、最も大きい絶対値（最大時刻調整値ΔＴｍａｘ２）を選択する。最大時刻調整値ΔＴｍａｘ２は次式（１６）で与えられる。時刻スレーブＳ２は、最大時刻調整値ΔＴｍａｘ２を時刻スレーブＳ１へ通知する。
【０２３６】
ΔＴｍａｘ２＝Ｍａｘ｛｜ΔＴ２−４｜，｜ΔＴ２−５｜，｜ΔＴ１−２｜｝    …（１６）
時刻スレーブＳ３は、時刻スレーブＳ１との間で時刻同期処理を実行することにより、時刻スレーブＳ１の時刻に対する時刻スレーブＳ３の時刻の差分ΔＴ１−３を算出する。時刻スレーブＳ３は、算出した時刻調整値ΔＴ１−３を時刻スレーブＳ１へ通知する。
【０２３７】
時刻スレーブＳ１は、時刻マスタＭとの間で時刻同期処理を実行することにより、時刻マスタＭの時刻に対する時刻スレーブＳ１の時刻の差分ΔＴＭ−１を算出する。時刻スレーブＳ１は、時刻スレーブＳ２より受信した最大時刻調整値ΔＴｍａｘ２と、時刻調整値ΔＴ１−３の絶対値｜ΔＴ１−３｜と、時刻調整値ΔＴＭ−１の絶対値｜ΔＴＭ−１｜とを比較し、最も大きい絶対値（最大時刻調整値ΔＴｍａｘ１）を選択する。最大時刻調整値ΔＴｍａｘ１は次式（１７）で与えられる。時刻スレーブＳ１は、最大時刻調整値ΔＴｍａｘ１を時刻マスタＭへ通知する。
【０２３８】
ΔＴｍａｘ１＝Ｍａｘ｛｜ΔＴＭ−１｜，｜ΔＴ１−３｜，ΔＴｍａｘ２｝    …（１７）
ここで、式（１６），（１７）よると、最大時刻調整値ΔＴｍａｘ１は次式（１８）のように表わすことができる。
【０２３９】
ΔＴｍａｘ１＝Ｍａｘ｛｜ΔＴ２−４｜，｜ΔＴ２−５｜，｜ΔＴ１−２｜，｜ΔＴ１−３｜，｜ΔＴＭ−１｜｝    …（１８）
式（１８）から分かるように、時刻マスタＭには、時刻スレーブＳ１〜Ｓ５の時刻調整値ΔＴ２−４，ΔＴ２−５，ΔＴ１−２，ΔＴ１−３，ΔＴＭ−１のうち絶対値が最も大きいものが、最大時刻調整値ΔＴｍａｘ１として時刻マスタＭに通知されることになる。
【０２４０】
時刻マスタＭは、最大時刻調整値ΔＴｍａｘ１に基づいて、時刻スレーブＳ１〜Ｓ５の時刻同期が完了したか否かを判定する。時刻マスタＭは、時刻同期が完了したか否かを判定するための閾値を、通信システム１において予め定められた許容時刻精度を最大パス数で除算した値に設定する。図２２の例では最大パス数は３となる。したがって、閾値は許容時刻精度／３に設定される。
【０２４１】
時刻マスタＭは、最大時刻調整値ΔＴｍａｘ１と上記閾値とを比較し、最大時刻調整値ΔＴｍａｘ１が閾値より小さい場合、時刻スレーブＳ１〜Ｓ５の時刻同期が完了したと判定する。時刻マスタＭは、時刻同期が完了したと判定されると、時刻スレーブＳ１〜Ｓ５の間で制御系データの伝送を開始する。一方、最大時刻調整値ΔＴｍａｘ１が閾値より大きい場合、時刻マスタＭは、時刻スレーブＳ１〜Ｓ５の時刻同期が完了していないと判定し、制御系データの伝送を開始しないこととする。
【０２４２】
時刻マスタＭは、また、データ伝送の実行中に、時刻マスタＭに通知される最大時刻調整値ΔＴｍａｘ１が閾値を超えた場合には、時刻マスタＭと時刻スレーブＳ１〜Ｓ５との間の時刻同期が破綻したものと判断し、制御系データの伝送を停止する。これによると、図２２に示す通信システム１におけるデータ伝送において、制御装置１００は、複数のデバイス２００の制御系データの送受信のタイミングを安定的に管理することができる。
【０２４３】
図２４は、図２２に示される接続形態が適用された通信システム１の第１の構成例を模式的に示す図である。
【０２４４】
図２４に示す第１の構成例においては、通信システム１は、複数の制御装置１００Ａ，１００Ｂと、複数のデバイス２００Ａ〜２００Ｄとを備える。制御装置１００Ａに接続されるネットワーク２（フィールドネットワーク）には、デバイス２００Ａ，２００Ｂがスター接続されており、制御装置１００Ｂに接続されるネットワーク２には、デバイス２００Ｃ，２００Ｄがスター接続されている。制御装置１００Ａ，１００Ｂの各々は、ネットワーク２内のデータ伝送を管理する制御マスタとして機能する。デバイス２００Ａ〜２００Ｄの各々は、対応する制御装置１００からの指令に従ってデータ伝送を行なう制御スレーブとして機能する。
【０２４５】
制御装置１００Ａと制御装置１００Ｂとは、ネットワーク３を介して接続される。ネットワーク３は、コントロールレベルのネットワークであり、制御装置１００Ａおよび１００Ｂ間でデータを伝送できるリンクを構築する。ネットワーク２は、制御系に係る情報の伝送を主たる機能として提供する。
【０２４６】
図２４に示す第１の構成例においては、各ネットワーク２に接続される制御装置１００と複数のデバイス２００との間を時刻同期させるとともに、複数の制御装置１００Ａ〜１００Ｄの間で時刻同期をとることにより、互いに異なる制御装置１００に接続される複数のデバイス２００Ａ〜２００Ｄを互いに時刻同期させる。これにより、互いに異なる制御装置１００に接続される複数のデバイス２００を連係して動作させることが可能となる。
【０２４７】
図２４に示す例においては、制御装置１００Ａ，１００Ｂがそれぞれ有するタイマ１０１Ａ，１０１Ｂのいずれかを、通信システム１全体のマスタクロック（時刻マスタＭ）として機能させる。一例として、図２４では、制御装置１００Ａのタイマ１０１Ａがマスタクロックに設定される。そして、残りの制御装置１００Ｂおよび複数のデバイス２００Ａ〜２００Ｄのタイマ（時刻スレーブＳ１〜Ｓ５に相当）を、この時刻マスタＭのマスタクロックに時刻同期させる。
【０２４８】
図２４に示す構成例においても、Ｐ２Ｐトランスペアレントクロックを用いた時刻同期処理を実行することにより、時刻マスタＭの有するマスタクロックに各時刻スレーブＳの有するスレーブクロックを時刻同期させる。これにより、制御装置１００Ａ，１００Ｂおよびデバイス２００Ａ〜２００Ｄを互いに時刻同期させることができる。
【０２４９】
各時刻スレーブＳは、マスタ側に隣接して接続される他の通信装置との間で時刻同期処理を実行するとともに、自装置の時刻精度情報（自装置の時刻調整値）を、時刻マスタＭである制御装置１００Ａに通知する。制御装置１００Ａは、各時刻スレーブＳから通知される時刻同期情報に基づいて、全ての時刻スレーブＳ（制御装置１００Ｂおよびデバイス２００Ａ〜２００Ｄ）の時刻同期が完了したか否かを判定する。制御装置１００Ａは、時刻同期が完了したと判定されると、複数の時刻スレーブＳの間で制御系データの伝送を開始する。
【０２５０】
これによると、ネットワーク３に接続される制御装置１００Ａ，１００Ｂの各々は、他の制御装置と互いに時刻同期されたタイマの時刻を基準として、ネットワーク２を介して複数のデバイス２００との間のデータ伝送を管理することができる。したがって、制御装置１００Ａ，１００Ｂの間で、入力データを収集するタイミングまたは出力データを送信するタイミングを互いに同期させることができる。また、制御装置１００Ａ，１００Ｂの間でデータを遣り取りするタイミングを互いに同期させることができる。この結果、複数のデバイス２００Ａ〜２００Ｄの間で制御タイミングを同期させることができるため、複数のデバイス２００Ａ〜２００Ｄの協調制御を実現することができる。
【０２５１】
図２５は、図２２に示される接続形態が適用された通信システム１の第２の構成例を模式的に示す図である。
【０２５２】
図２５に示す第２の構成例においては、通信システム１は、複数の制御装置１００Ａ〜１００Ｄと、複数のデバイス２００Ａ〜２００Ｊと、複数のスイッチ６００Ａ，６００Ｂとを備える。
【０２５３】
制御装置１００Ａに接続されるネットワーク２（フィールドネットワーク）には、デバイス２００Ａ，２００Ｂがデイジーチェーンで順次接続されており、制御装置１００Ｂに接続されるネットワーク２には、デバイス２００Ｃ〜２００Ｅがデイジーチェーンで順次接続されている。制御装置１００Ｃに接続されるネットワーク２には、デバイス２００Ｆ〜２００Ｈがデイジーチェーンで順次接続されており、制御装置１００Ｄに接続されるネットワーク２にはデバイス２００Ｉ，２００Ｊがデイジーチェーンで順次接続されている。
【０２５４】
制御装置１００Ａ〜１００Ｄの各々は、ネットワーク２内のデータ伝送を管理する制御マスタとして機能する。デバイス２００Ａ〜２００Ｊの各々は、対応する制御装置１００からの指令に従ってデータ伝送を行なう制御スレーブとして機能する。
【０２５５】
制御装置１００Ａ，１００Ｂは、ネットワーク３を介してスイッチ６００Ａに接続される。制御装置１００Ｃ，１００Ｄは、ネットワーク３を介してスイッチ６００Ｂに接続される。スイッチ６００Ａとスイッチ６００Ｂとは互いに接続されている。スイッチ６００Ａはタイマ６０１Ａを有しており、スイッチ６００Ｂはタイマ６０１Ｂを有している。
【０２５６】
ネットワーク３は、コントロールレベルのネットワークであり、制御装置１００Ａ〜１００Ｄ間でデータを伝送できるリンクを構築する。ネットワーク２は、制御系に係る情報の伝送を主たる機能として提供する。
【０２５７】
図２５に示す第２の構成例においては、各ネットワーク２に接続される制御装置１００と複数のデバイス２００との間を時刻同期させるとともに、複数の制御装置１００Ａ〜１００Ｄおよび複数のスイッチ６００Ａ，６００Ｂの間で時刻同期をとることにより、互いに異なる制御装置１００に接続される複数のデバイス２００Ａ〜２００Ｊを互いに時刻同期させる。これにより、互いに異なる制御装置１００に接続される複数のデバイス２００を連係して動作させることが可能となる。
【０２５８】
図２５に示す例においては、制御装置１００Ａ〜１００Ｄおよびスイッチ６００Ａ，６００Ｂがそれぞれ有するタイマ１０１Ａ〜１０１Ｄ，６０１Ａおよび６０１Ｂのいずれかを、通信システム１全体のマスタクロック（時刻マスタＭ）として機能させる。一例として、図２５では、制御装置１００Ａのタイマ１０１Ａがマスタクロックに設定される。そして、残りの制御装置１００Ｂ〜１００Ｄおよびスイッチ６００Ａ，６００Ｂのタイマ（時刻スレーブＳ１〜Ｓ５に相当）を、この時刻マスタのマスタクロックに時刻同期させる。
【０２５９】
図２５に示す構成例においても、Ｐ２Ｐトランスペアレントクロックを用いた時刻同期処理を実行することにより、時刻マスタＭの有するマスタクロックに各時刻スレーブＳ（制御装置１００Ｂ〜１００Ｄおよびスイッチ６００Ａ，６００Ｂ）の有するスレーブクロックを時刻同期させる。これにより、制御装置１００Ａ〜１００Ｄおよびスイッチ６００Ａ，６００Ｂを互いに時刻同期させることができる。
【０２６０】
上記時刻同期処理が完了すると、制御装置１００Ａ〜１００Ｄの各々は、ネットワーク２を介して接続されるデバイス２００との間で時刻同期処理を実行する。この時刻同期処理は、ネットワーク２に応じて、上述した時刻同期処理とは異なる時刻同期プロトコルが用いられる。例えば、マシンコントロール用ネットワークの一例であるＥｔｈｅｒＣＡＴ（登録商標）が採用され得る。
【０２６１】
第２の構成例においても、各時刻スレーブＳは、マスタ側に隣接して接続される他の通信装置との間で時刻同期処理を実行するとともに、自装置の時刻精度情報（自装置の時刻調整値）を、時刻マスタＭである制御装置１００Ａに通知する。制御装置１００Ａは、各時刻スレーブＳ（制御装置１００Ｂ〜１００Ｄおよびスイッチ６００Ａ，６００Ｂ）から通知される時刻同期情報に基づいて、全ての時刻スレーブＳの時刻同期が完了したか否かを判定する。制御装置１００Ａは、時刻同期が完了したと判定されると、複数の時刻スレーブＳの間で制御系データの伝送を開始する。
【０２６２】
これによると、ネットワーク３に接続される制御装置１００Ａ〜１００Ｄの各々は、他の制御装置と互いに時刻同期されたタイマの時刻を基準として、ネットワーク２を介して複数のデバイス２００との間のデータ伝送を管理することができる。したがって、制御装置１００Ａ〜１００Ｄの間で、入力データを収集するタイミングまたは出力データを送信するタイミングを互いに同期させることができる。また、制御装置１００Ａ〜１００Ｄの間でデータを遣り取りするタイミングを互いに同期させることができる。この結果、複数のデバイス２００Ａ〜２００Ｊの間で制御タイミングを同期させることができるため、複数のデバイス２００Ａ〜２００Ｊの協調制御を実現することができる。
【０２６３】
＜Ｈ．付記＞
上述したような本実施の形態は、以下のような技術思想を含む。
［構成１］
ネットワーク（２）に複数の通信装置（Ｍ，Ｓ１〜Ｓ３）が接続された通信システム（１）であって、
前記複数の通信装置は、
前記通信システムの時刻を管理するマスタクロックを有する時刻マスタ（Ｍ）と、
各々が、前記マスタクロックに時刻同期したスレーブクロックを有する複数の時刻スレーブ（Ｓ１〜Ｓ３）とを含み、
前記複数の時刻スレーブの各々は、
前記ネットワーク上においてマスタ側に隣接して接続される他の通信装置との間で時刻同期するための同期手段と、
前記同期手段で求められた自装置の時刻同期精度を示す時刻同期情報を前記時刻マスタへ通知するための通信手段とを含む、通信システム。
［構成２］
前記同期手段は、前記他の通信装置の時刻と自装置の時刻との差分を時刻調整値（ΔＴ）として、自装置の時刻を補正し、
前記通信手段は、前記時刻同期情報として、前記時刻調整値を前記時刻マスタへ通知する、構成１に記載の通信システム。
［構成３］
前記通信手段は、前記ネットワーク上においてスレーブ側に隣接して接続される別の他の通信装置から前記時刻調整値を受信し、受信した前記時刻調整値および自装置の前記時刻調整値のうち、その絶対値が大きい方の前記時刻調整値を前記他の通信装置へ転送する、構成２に記載の通信システム。
［構成４］
前記通信手段は、前記ネットワーク上においてスレーブ側に隣接して接続される別の他の通信装置から前記時刻調整値を受信し、受信した前記時刻調整値および自装置の前記時刻調整値を前記他の通信装置へ転送する、構成２に記載の通信システム。
［構成５］
前記通信手段は、前記ネットワーク上においてスレーブ側に隣接して接続される別の他の通信装置から前記時刻調整値を受信し、受信した前記時刻調整値と自装置の前記時刻調整値との合計値を前記他の通信装置へ転送する、構成２に記載の通信システム。
［構成６］
前記同期手段は、前記他の通信装置との間で時刻同期用パケットを遣り取りすることにより、自装置の時刻を補正する時刻同期処理を定期的に実行し、
前記通信手段は、前記他の通信装置へ送信する時刻同期用パケット内に、前記他の通信装置へ転送する前記時刻調整値を格納する、構成３から５のいずれか１に記載の通信システム。
［構成７］
前記時刻マスタは、前記ネットワーク内のデータ伝送を管理する制御装置であり、
前記複数の時刻スレーブの各々は、前記時刻マスタからの指令に従ってデータ伝送を実行するデバイスであり、
前記制御装置は、複数のデバイスから通知される前記時刻同期情報に基づいて、前記複数のデバイスとの間で時刻同期が完了したか否かを判定し、時刻同期が完了したと判定されたときに、前記ネットワーク内のデータ伝送を開始する、構成１から６のいずれか１に記載の通信システム。
［構成８］
前記複数の時刻スレーブのうちの１つの時刻スレーブは、前記ネットワーク内のデータ伝送を管理する制御装置であり、
前記１つの時刻スレーブを除いた残りの時刻スレーブおよび前記時刻マスタの各々は、前記制御装置からの指令に従ってデータ伝送を実行するデバイスであり、
前記時刻マスタは、前記複数の時刻スレーブから通知される前記時刻同期情報に基づいて、前記複数の時刻スレーブとの間で時刻同期が完了したか否かを判定し、判定結果を前記制御装置に通知し、
前記制御装置は、前記判定結果から時刻同期が完了したと判定されたときに、前記ネットワーク内のデータ伝送を開始する、構成１から６のいずれか１に記載の通信システム。
［構成９］
前記複数の時刻スレーブのうちの１つの時刻スレーブは、前記ネットワーク内のデータ伝送を管理する制御装置であり、
前記１つの時刻スレーブを除いた残りの時刻スレーブおよび前記時刻マスタの各々は、前記制御装置からの指令に従ってデータ伝送を実行するデバイスであり、
前記時刻マスタは、前記複数の時刻スレーブから通知される前記時刻同期情報を前記制御装置へ転送し、
前記制御装置は、前記同期情報に基づいて、複数のデバイスとの間で時刻同期が完了したか否かを判定し、時刻同期が完了したと判定されたときに、前記ネットワーク内のデータ伝送を開始する、構成１から６のいずれか１に記載の通信システム。
［構成１０］
前記同期手段は、前記他の通信装置との間で時刻同期用パケットを遣り取りすることにより、自装置の時刻を補正する時刻同期処理を定期的に実行し、
前記通信手段は、前記時刻同期処理の実行後において、前記時刻同期情報を前記マスタ装置へ通知する、構成１または２に記載の通信システム。
［構成１１］
通信システムにネットワーク接続される通信装置であって、前記通信装置は、前記通信システムの時刻を管理するマスタクロックに時刻同期したスレーブクロックを有し、
前記ネットワーク上においてマスタ側に隣接して接続される他の通信装置との間で時刻同期するための同期手段と、
前記同期手段で求められた自装置の時刻同期精度を示す時刻同期情報を、前記マスタクロックを有する時刻マスタへ通知するための通信手段とを含む、通信装置。
［構成１２］
ネットワークに複数の通信装置が接続された通信システムにおける通信方法であって、
前記複数の通信装置は、
前記通信システムの時刻を管理するマスタクロックを有する時刻マスタと、
各々が、前記マスタクロックに時刻同期したスレーブクロックを有する複数の時刻スレーブとを含み、
前記複数の時刻スレーブの各々が、前記ネットワーク上においてマスタ側に隣接して接続される他の通信装置との間で時刻同期するステップと、
前記複数のスレーブ装置の各々が、自装置の時刻同期精度を示す時刻同期情報を前記時刻マスタへ通知するステップとを備える、通信方法。
【０２６４】
＜Ｉ．利点＞
本実施の形態に従う通信システム１では、複数の時刻スレーブの各々は、自装置のスレーブクロックの時刻同期精度を示す時刻同期情報を時刻マスタへ通知するための「通信手段」を有する。これによると、時刻マスタは、各時刻スレーブから通知される時刻同期情報に基づいて、自装置と複数の時刻スレーブとの間の時刻同期が完了しているか否かを判断することができる。この結果、通信システム１全体において時刻同期が完了したタイミングで、データ伝送を開始することができる。したがって、電源投入後、設定時間が経過したタイミングでデータ伝送を開始する構成に比べて、より迅速にデータ伝送を開始することが可能となる。
【０２６５】
また、データ伝送の実行中、時刻マスタは、各時刻スレーブから通知される時刻同期情報に基づいて、複数の時刻スレーブの各々の時刻同期精度を監視することができるため、いずれかの時刻スレーブとの間に時刻ずれが発生したときには直ちにデータの伝送を停止することができる。したがって、時刻ずれに依存して、時刻スレーブが入力データを取得する、および、出力データを出力するタイミングがばらつく可能性を回避することができる。
【０２６６】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した説明ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【０２６７】
１  通信システム、２  ネットワーク、１００，１００Ａ〜１００Ｄ  制御装置、１０１，１０１Ａ〜１０１Ｄ，２０１Ａ〜２０１Ｊ，６０１Ａ，６０１Ｂ  タイマ、２００Ａ〜２００Ｊ  デバイス、Ｍ  時刻マスタ、Ｓ１〜Ｓ５  時刻スレーブ、１０２，２０２  プロセッサ、１０４，２０４  メモリ、１０６，２０６  ストレージ、１０７  システムプログラム、１０８  ユーザアプリケーションプログラム、１１０  ネットワークコントローラ、１１１，２１１  受信回路、１１２  受信バッファ、１１３，２１２  送受信コントローラ、１１５，２１３  送信回路、２１０  通信回路、５００  サポート装置、６００Ａ，６００Ｂ  スイッチ。
【図１】
2019146060.tif 000003
【図２】
2019146060.tif 000004
【図３】
2019146060.tif 000005
【図４】
2019146060.tif 000006
【図５】
2019146060.tif 000007
【図６】
2019146060.tif 000008
【図７】
2019146060.tif 000009
【図８】
2019146060.tif 000010
【図９】
2019146060.tif 000011
【図１０】
2019146060.tif 000012
【図１１】
2019146060.tif 000013
【図１２】
2019146060.tif 000014
【図１３】
2019146060.tif 000015
【図１４】
2019146060.tif 000016
【図１５】
2019146060.tif 000017
【図１６】
2019146060.tif 000018
【図１７】
2019146060.tif 000019
【図１８】
2019146060.tif 000020
【図１９】
2019146060.tif 000021
【図２０】
2019146060.tif 000022
【図２１】
2019146060.tif 000023
【図２２】
2019146060.tif 000024
【図２３】
2019146060.tif 000025
【図２４】
2019146060.tif 000026
【図２５】
2019146060.tif 000027