JP2019146060A - 通信システム、通信装置および通信方法 - Google Patents

通信システム、通信装置および通信方法 Download PDF

Info

Publication number
JP2019146060A
JP2019146060A JP2018029471A JP2018029471A JP2019146060A JP 2019146060 A JP2019146060 A JP 2019146060A JP 2018029471 A JP2018029471 A JP 2018029471A JP 2018029471 A JP2018029471 A JP 2018029471A JP 2019146060 A JP2019146060 A JP 2019146060A
Authority
JP
Japan
Prior art keywords
time
slave
master
adjustment value
communication
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2018029471A
Other languages
English (en)
Other versions
JP6984482B2 (ja
Inventor
光宏 米田
Mitsuhiro Yoneda
光宏 米田
成憲 澤田
Shigenori Sawada
成憲 澤田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Omron Corp
Original Assignee
Omron Corp
Omron Tateisi Electronics Co
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Omron Corp, Omron Tateisi Electronics Co filed Critical Omron Corp
Priority to JP2018029471A priority Critical patent/JP6984482B2/ja
Priority to US16/643,586 priority patent/US11095382B2/en
Priority to EP19757701.8A priority patent/EP3758271A4/en
Priority to PCT/JP2019/002983 priority patent/WO2019163443A1/ja
Priority to CN201980004261.1A priority patent/CN111052669B/zh
Publication of JP2019146060A publication Critical patent/JP2019146060A/ja
Application granted granted Critical
Publication of JP6984482B2 publication Critical patent/JP6984482B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04JMULTIPLEX COMMUNICATION
    • H04J3/00Time-division multiplex systems
    • H04J3/02Details
    • H04J3/06Synchronising arrangements
    • H04J3/0635Clock or time synchronisation in a network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04JMULTIPLEX COMMUNICATION
    • H04J3/00Time-division multiplex systems
    • H04J3/02Details
    • H04J3/06Synchronising arrangements
    • H04J3/0635Clock or time synchronisation in a network
    • H04J3/0638Clock or time synchronisation among nodes; Internode synchronisation
    • H04J3/0658Clock or time synchronisation among packet nodes
    • H04J3/0661Clock or time synchronisation among packet nodes using timestamps
    • H04J3/0667Bidirectional timestamps, e.g. NTP or PTP for compensation of clock drift and for compensation of propagation delays
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/042Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
    • G05B19/0423Input/output
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04JMULTIPLEX COMMUNICATION
    • H04J3/00Time-division multiplex systems
    • H04J3/02Details
    • H04J3/06Synchronising arrangements
    • H04J3/0635Clock or time synchronisation in a network
    • H04J3/0638Clock or time synchronisation among nodes; Internode synchronisation
    • H04J3/0658Clock or time synchronisation among packet nodes
    • H04J3/0673Clock or time synchronisation among packet nodes using intermediate nodes, e.g. modification of a received timestamp before further transmission to the next packet node, e.g. including internal delay time or residence time into the packet
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04JMULTIPLEX COMMUNICATION
    • H04J3/00Time-division multiplex systems
    • H04J3/02Details
    • H04J3/14Monitoring arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/33Director till display
    • G05B2219/33252Real time synchronous transmission, model
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L7/00Arrangements for synchronising receiver with transmitter
    • H04L7/0004Initialisation of the receiver
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02PCLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
    • Y02P90/00Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
    • Y02P90/02Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Automation & Control Theory (AREA)
  • Synchronisation In Digital Transmission Systems (AREA)
  • Electric Clocks (AREA)
  • Small-Scale Networks (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

【課題】複数の通信装置の間で時刻同期が完了したことを判断することが可能な通信システムを提供する。【解決手段】本開示の一例に係る通信システムは、ネットワークに複数の通信装置が接続された通信システムである。複数の通信装置は、通信システムの時刻を管理するマスタクロックを有する時刻マスタと、各々が、マスタクロックに時刻同期したスレーブクロックを有する複数の時刻スレーブとを含む。複数の時刻スレーブの各々は、ネットワーク上においてマスタ側に隣接して接続される他の通信装置との間で時刻同期するための同期手段と、同期手段で求められた自装置の時刻同期精度を示す時刻同期情報を時刻マスタへ通知するための通信手段とを含む。【選択図】図7

Description

本開示は、ネットワークに複数の通信装置が接続された通信システム、その通信装置および通信方法に関する。
様々なFA(Factory Automation)を実現するための主たるコンポーネントとして、PLC(プログラマブルコントローラ)などの制御装置が普及している。このような制御装置は、1または複数のデバイスとの間でバスまたはネットワークを介してデータを送受信する。
複数のデバイスがバスまたはネットワークを介して接続される場合、データが伝送されることによる遅延が生じる。このような伝送遅延の大きさはデバイスが接続される位置に応じてばらつく。このような遅延時間のばらつきに依存して、デバイスが入力データを取得する、および、出力データを出力するタイミングもばらつく可能性がある。
このような課題に対して、特開2016−116143号公報(特許文献1)は、時刻マスタとネットワークを介して接続される1または複数の時刻スレーブとを備える通信システムにおける時刻同期を監視する方法を開示する。特許文献1に開示される時刻同期監視方法は、IEEE(Institute of Electrical and Electronics Engineers)1588に規定されているPTP(Precision Time Protocol)という高精度時刻同期プロトコルを採用している。PTPでは、時刻マスタと時刻スレーブとの間で定期的に時刻同期用パケットを遣り取りし、その過程で得られた情報に基づいて、時刻スレーブの時刻を補正する。
特開2016−116143号公報
しかしながら、PTPには、時刻スレーブの時刻同期精度を時刻マスタに通知するシーケンスが存在しないため、時刻マスタは、時刻スレーブの時刻同期が完了したか否かを判定することができない。
そのため、特許文献1では、時刻スレーブから時刻マスタに送信する時刻同期用パケットに、時刻スレーブが当該パケットを送信した時刻を示す情報を含ませる。これにより、時刻マスタが、当該パケットを受信した時刻と、当該パケットを送信した時刻との差分に基づいて、時刻スレーブの時刻同期が完了したか否かを判定することを可能としている。
ここで、PTPの接続形態としては、P2P(Peer to Peer)がある。P2Pでは、隣接する2つの通信装置がマスタとスレーブとの関係になって時刻同期処理を実行する。P2Pでは、Peer delayメカニズムを用いて、各通信装置がマスタ側に隣接して位置する通信装置との間の遅延時間を計測し、計測された遅延時間に基づいて、自装置の時刻を補正する。
特許文献1に開示される時刻同期監視方法を、P2Pを用いた時刻同期処理に適用した場合、時刻マスタは、直近の時刻スレーブから時刻情報を含んだ時刻同期用パケットを受信することで、当該時刻スレーブの時刻同期が完了したか否かを判定することができる。一方で、時刻マスタと直接接続されていない他の時刻スレーブとの間では時刻同期用パケットの遣り取りが行なわれないため、時刻マスタは、他の時刻スレーブの時刻同期が完了したか否かを判定することができない。その結果、例えば、通信システムの電源投入後において、時刻マスタは、複数の時刻スレーブとの間でデータ伝送を開始することができるタイミングを判断することができない。
したがって、複数の通信装置の間で時刻同期が完了したことを判断することが可能な通信システムの提供が要望されている。
本開示の一例に係る通信システムは、ネットワークに複数の通信装置が接続された通信システムである。複数の通信装置は、通信システムの時刻を管理するマスタクロックを有する時刻マスタと、各々が、マスタクロックに時刻同期したスレーブクロックを有する複数の時刻スレーブとを含む。複数の時刻スレーブの各々は、ネットワーク上においてマスタ側に隣接して接続される他の通信装置との間で時刻同期するための同期手段と、同期手段で求められた自装置の時刻同期精度を示す時刻同期情報を時刻マスタへ通知するための通信手段とを含む。
本開示によれば、時刻マスタは、各時刻スレーブから通知される時刻同期情報に基づいて、自装置と複数の時刻スレーブとの間の時刻同期が完了しているか否かを判定することができる。この結果、通信システム全体において時刻同期が完了したタイミングで、データ伝送を開始することができる。したがって、通信システムの電源投入後、設定時間が経過したタイミングでデータ伝送を開始する構成に比べて、より迅速にデータ伝送を開始することができる。また、データ伝送の実行中、時刻マスタは、各時刻スレーブから通知される時刻同期情報に基づいて、複数の時刻スレーブの各々の時刻同期精度を監視することができるため、いずれかの時刻スレーブとの間に時刻ずれが発生したときには直ちにデータの伝送を停止することができる。したがって、時刻ずれに依存して、時刻スレーブが入力データを取得する、および、出力データを出力するタイミングがばらつく可能性を回避することができる。
上述の開示において、同期手段は、他の通信装置の時刻と自装置の時刻との差分を時刻調整値として、自装置の時刻を補正する。通信手段は、時刻同期情報として、時刻調整値を時刻マスタへ通知する。
この開示によれば、各時刻スレーブは、自装置の時刻同期処理で使用した時刻調整値を利用して、時刻マスタに自装置の時刻同期情報を通知することができる。
上述の開示において、通信手段は、ネットワーク上においてスレーブ側に隣接して接続される別の他の通信装置から時刻調整値を受信する。通信手段は、受信した時刻調整値および自装置の時刻調整値のうち、その絶対値が大きい方の時刻調整値を他の通信装置へ転送する。
この開示によれば、複数の時刻スレーブの時刻調整値のうちの最大値、すなわち、時刻同期精度の最悪値を、時刻マスタに通知することができる。したがって、時刻マスタは、時刻同期精度の最悪値に基づいて、複数の時刻スレーブの時刻同期が完了したか否かを判定することができる。
上述の開示において、通信手段は、ネットワーク上においてスレーブ側に隣接して接続される別の他の通信装置から時刻調整値を受信する。通信手段は、受信した時刻調整値および自装置の時刻調整値を他の通信装置へ転送する。
この開示によれば、全ての時刻スレーブの時刻調整値を時刻マスタに通知することができる。したがって、時刻マスタは、通知された時刻同期情報に基づいて、複数の時刻マスタの全ての時刻同期が完了しているか否かを判定することができる。
上述の開示において、通信手段は、ネットワーク上においてスレーブ側に隣接して接続される別の他の通信装置から時刻調整値を受信し、受信した時刻調整値と自装置の時刻調整値との合計値を他の通信装置へ転送する。
この開示によれば、各時刻スレーブと時刻マスタとの間の時刻差を、時刻マスタに通知することができる。時刻マスタは、自装置と各時刻スレーブとの時刻差に基づいて、複数の時刻スレーブの時刻同期が完了したか否かを判定することができる。
上述の開示において、同期手段は、他の通信装置との間で時刻同期用パケットを遣り取りすることにより、自装置の時刻を補正する時刻同期処理を定期的に実行する。通信手段は、他の通信装置へ送信する時刻同期用パケット内に、他の通信装置へ転送する時刻調整値を格納する。
この開示によれば、マスタ側に位置する通信装置に送信する時刻同期用パケットに時刻同期情報を含めることで、既存の時刻同期シーケンスを利用して、通信手段を実現することができる。これによると、通信手段を実現するために、時刻同期処理の実行中に通信装置間で遣り取りされるパケットが増えてしまうことを防止することができる。
上述の開示において、時刻マスタは、ネットワーク内のデータ伝送を管理する制御装置である。複数の時刻スレーブの各々は、制御装置からの指令に従ってデータ伝送を実行するデバイスである。制御装置は、複数のデバイスから通知される時刻同期情報に基づいて、複数のデバイスとの間で時刻同期が完了したか否かを判定し、時刻同期が完了したと判定されたときに、ネットワーク内のデータ伝送を開始する。
この開示によれば、通信システムにおける制御装置が時刻マスタとして機能することにより、制御装置は、時刻スレーブとして機能する複数のデバイスの時刻同期が完了したと判定されると、速やかにデータ伝送を開始することができる。
上述の開示において、複数の時刻スレーブのうちの1つの時刻スレーブは、ネットワーク内のデータ伝送を管理する制御装置である。上記1つの時刻スレーブを除いた残りの時刻スレーブおよび時刻マスタの各々は、制御装置からの指令に従ってデータ伝送を実行するデバイスである。時刻マスタは、複数の時刻スレーブから通知される時刻同期情報に基づいて、複数の時刻スレーブとの間で時刻同期が完了したか否かを判定し、判定結果を制御装置に通知する。制御装置は、判定結果から時刻同期が完了したと判定されたときに、ネットワーク内のデータ伝送を開始する。
この開示によれば、通信システムにおける制御装置以外のデバイスが時刻マスタとして機能する構成においても、制御装置は、当該デバイスから通知される、時刻同期完了の判定結果に従って、速やかにデータ伝送を開始することができる。
上述の開示において、複数の時刻スレーブのうちの1つの時刻スレーブは、ネットワーク内のデータ伝送を管理する制御装置である。上記1つの時刻スレーブを除いた残りの時刻スレーブおよび時刻マスタの各々は、制御装置からの指令に従ってデータ伝送を実行するデバイスである。時刻マスタは、複数の時刻スレーブから通知される時刻同期情報を制御装置へ転送する。制御装置は、時刻同期情報に基づいて、複数のデバイスとの間で時刻同期が完了したか否かを判定し、時刻同期が完了したと判定されたときに、ネットワーク内のデータ伝送を開始する。
この開示によれば、通信システムにおける制御装置以外のデバイスが時刻マスタとして機能する構成においても、制御装置は、当該デバイスから転送される時刻同期情報に基づいて時刻同期の完了が判定されると、速やかにデータ伝送を開始することができる。
上述の開示において、同期手段は、他の通信装置との間で時刻同期用パケットを遣り取りすることにより、自装置の時刻を補正する時刻同期処理を定期的に実行する。通信手段は、時刻同期処理の実行後において、時刻同期情報を時刻マスタへ通知する。
この開示によれば、時刻同期処理の実行中に、ネットワーク上において、時刻同期用パケットと、時刻同期情報を示すデータとが衝突してしまうことを防止することができる。
本開示の一例に係る通信装置は、通信システムにネットワーク接続される通信装置である。通信装置は、通信システムの時刻を管理するマスタクロックに時刻同期したスレーブクロックを有しており、ネットワーク上においてマスタ側に隣接して接続される他の通信装置との間で時刻同期するための同期手段と、同期手段で求められた自装置の時刻同期精度を示す時刻同期情報を、マスタクロックを有する時刻マスタへ通知するための通信手段とを含む。
この開示によれば、時刻マスタは、各通信装置から通知される時刻同期情報に基づいて、自装置と複数の通信装置との間の時刻同期が完了しているか否かを判定することができる。この結果、通信システム全体において時刻同期が完了したタイミングで、データ伝送を開始することができる。また、データ伝送の実行中、時刻マスタは、各通信装置から通知される時刻同期情報に基づいて、複数の通信装置の各々の時刻同期精度を監視することができるため、いずれかの通信装置との間に時刻ずれが発生したときには直ちにデータの伝送を停止することができる。したがって、時刻ずれに依存して、通信装置が入力データを取得する、および、出力データを出力するタイミングがばらつく可能性を回避することができる。
本開示の一例に係る通信方法は、ネットワークに複数の通信装置が接続された通信システムにおける通信方法である。複数の通信装置は、通信システムの時刻を管理するマスタクロックを有する時刻マスタと、各々が、マスタクロックに時刻同期したスレーブクロックを有する複数の時刻スレーブとを含む。通信方法は、複数の時刻スレーブの各々が、ネットワーク上においてマスタ側に隣接して接続される他の通信装置との間で時刻同期するステップと、記複数の時刻スレーブの各々が、自装置の時刻同期精度を示す時刻同期情報を時刻マスタへ通知するステップとを備える。
この開示によれば、時刻マスタは、各時刻スレーブから通知される時刻同期情報に基づいて、自装置と複数の時刻スレーブとの間の時刻同期が完了しているか否かを判定することができる。この結果、通信システム全体において時刻同期が完了したタイミングで、データ伝送を開始することができる。また、データ伝送の実行中、時刻マスタは、各時刻スレーブから通知される時刻同期情報に基づいて、複数の時刻スレーブの各々の時刻同期精度を監視することができるため、いずれかの時刻スレーブとの間に時刻ずれが発生したときには直ちにデータの伝送を停止することができる。したがって、時刻ずれに依存して、時刻スレーブが入力データを取得する、および、出力データを出力するタイミングがばらつく可能性を回避することができる。
本開示の一例によれば、ネットワークに複数の通信装置が接続された通信システムにおいて、複数の通信装置の間で時刻同期が完了したことを判断することができる。
本実施の形態に係る通信システムの構成を模式的に示す図である。 本実施の形態に従う通信システムのハードウェア構成の一例を示す模式図である。 PTPの時刻同期処理の一例を示すシーケンス図である。 P2Pトランスペアレントクロックを用いた時刻同期処理の一例を示す概念図である。 P2Pトランスペアレントクロックを用いた時刻同期処理の一例を示すシーケンス図である。 本実施の形態に係る通信手段の構成例1を模式的に示す図である。 本実施の形態に係る通信手段の構成例1を含む時刻同期処理を示すシーケンス図である。 本実施の形態に係る通信システムを構成する時刻スレーブによる処理手順を示すフローチャートである。 本実施の形態に係る通信システムを構成する時刻マスタによる処理手順を示すフローチャートである。 本実施の形態に係る通信手段の構成例2を模式的に示す図である。 本実施の形態に係る通信システムを構成する時刻スレーブによる処理手順を示すフローチャートである。 本実施の形態に係る通信システムを構成する時刻マスタによる処理手順を示すフローチャートである。 本実施の形態に係る通信手段の構成例3を模式的に示す図である。 本実施の形態に係る通信システムを構成する時刻スレーブによる処理手順を示すフローチャートである。 本実施の形態に係る通信システムを構成する時刻マスタによる処理手順を示すフローチャートである。 本実施の形態に係る通信手段の第4例を含む時刻同期処理を示すシーケンス図である。 本実施の形態に係る通信手段の第5例を含む時刻同期処理を示すシーケンス図である。 本実施の形態に係る通信システムの変形例1が提供する時刻同期機能を示す模式図である。 本実施の形態に係る通信システムの変形例1における時刻同期処理を示すシーケンス図である。 本実施の形態に係る通信システムの変形例2が提供する時刻同期機能を示す模式図である。 本実施の形態に係る通信システムの変形例2における時刻同期処理を示すシーケンス図である。 本実施の形態に係る通信システムの変形例3の構成を模式的に示す図である。 図22に示す通信システムにおける各時刻スレーブの通信手段の構成例を模式的に示す図である。 図23に示す通信手段が適用される通信システムの第1の構成例を模式的に示す図である。 図23に示す通信手段が適用される通信システムの第2の構成例を模式的に示す図である。
以下、図面を参照しつつ、本発明に従う各本実施の形態について説明する。以下の説明では、同一の部品および構成要素には同一の符号を付してある。それらの名称および機能も同じである。したがって、これらについての詳細な説明は繰り返さない。なお、以下で説明される各本実施の形態および各変形例は、適宜選択的に組み合わされてもよい。
<A.適用例>
まず、図1を参照して、本発明が適用される場面の一例について説明する。図1は、本実施の形態に係る通信システム1の構成を模式的に示す図である。
本実施の形態に係る通信システム1は、ネットワーク2に複数の通信装置(制御装置100、デバイス200A〜200C)が接続された通信システムである。
複数の通信装置は、時刻マスタと、複数の時刻スレーブとを含む。時刻マスタおよび複数の時刻スレーブの各々は、互いに時刻同期されたタイマを有している。時刻マスタは、通信システム1の時刻を管理する「マスタクロック」として機能するタイマを有しており、時刻同期プロトコルにおける同期手順に従って、ネットワーク接続されている時刻スレーブが有する「スレーブクロック」として機能するタイマを時刻同期する。
図1に示す例においては、制御装置100は時刻マスタとして機能し、デバイス200A〜200Cは時刻スレーブとして機能する。制御装置100は、ネットワーク2を介してデバイス200A〜200Cとの間でデータを送受信する。制御装置100は、ネットワーク内のデータ伝送を管理する。デバイス200A〜200Cは、制御装置100からの指令に従ってデータ伝送を行なう。
本実施の形態に係る通信システム1のネットワークは、製造装置や生産設備などを制御する制御装置100を含むものであり、いわゆる産業用ネットワークまたは産業用ネットワークに準拠する要件を充足するように構成される。そのような要件の1つとして、送信元から送出したデータが宛先に到着する時刻が保証される。
このような宛先への到着時刻を保証するために、互いに時刻同期された複数の通信装置がネットワーク接続された通信システム1が採用される。つまり、通信システム1のネットワークを構成する複数の通信装置の間では送受信タイミングが時刻同期されている。より具体的には、ネットワークを構成する複数の通信装置の各々は、時刻同期されたタイマ(あるいは、同期してインクリメントまたはデクリメントされるカウンタ)を有しており、それらの時刻同期されたタイマまたはカウンタに従って、各通信装置がデータの送信または受信のタイミングを決定する。
図1に示す例においては、制御装置100はタイマ101を有しており、デバイス200A〜200Cはタイマ201A〜201Cをそれぞれ有している。例えば、制御装置100のタイマ101が「マスタクロック」として機能し、デバイス200A〜200Cのタイマがこのマスタクロックを基準としてタイミングを同期させる。このようなタイマ間の同期によって、通信システム1において、データの伝送タイミングなどを互いに一致させることができる。
本実施の形態に係る通信システム1は、時刻マスタおよび複数の時刻スレーブとの間で時刻同期を実現するために、各時刻スレーブに時刻同期機能が実装されている。この時刻同期機能として、各時刻スレーブは、ネットワーク上においてマスタ側に隣接して接続される通信装置の有するタイマを基準として、自装置の有するタイマを補正するための機能を有している。
具体的には、図1に示す通信システム1において、デバイス200Aは、マスタ側に隣接して接続される制御装置100との間で時刻同期するために、制御装置100のタイマ101(マスタクロック)を基準として、自装置のタイマ201A(スレーブクロック)の時刻を補正する。具体的には、デバイス200Aは、制御装置100との間で時刻同期用パケットを遣り取りする時刻同期処理を定期的に実行し、その過程で得られた情報に基づいて、タイマ101と自装置のタイマ201Aとの差分を計算する。そして、デバイス200Aは、この差分を時刻調整値として自装置のタイマ201Aを補正する。
デバイス200Bは、マスタ側に隣接して接続されるデバイス200Aとの間で上述した時刻同期処理を定期的に実行する。デバイス200Bは、デバイス200Aのタイマ201Aと自装置のタイマ201Bとの差分を計算し、その差分を時刻調整値として自装置のタイマ201Bを補正する。
デバイス200Cは、マスタ側に隣接して接続されるデバイス200Bとの間で上述した時刻同期処理を定期的に実行する。デバイス200Cは、デバイス200Bのタイマ201Bと自装置のタイマ201Cとの差分を計算し、その差分を時刻調整値として自装置のタイマ201Cを補正する。
以上説明したように、通信システム1においては、隣接して接続される2つの通信装置がマスタとスレーブとの関係になって時刻同期処理を実行することにより、最終的にデバイス200A〜200Cの各々のタイマ(スレーブクロック)を、制御装置100のタイマ101(マスタクロック)に時刻同期させることができる。
しかしながら、上記の時刻同期処理では、各時刻スレーブの時刻同期精度を時刻マスタに通知するシーケンスが存在しないため、時刻マスタは、複数の時刻スレーブの時刻同期が完了したか否かを判定することができない。そのため、通信システム1の電源投入後において、時刻マスタは、複数の時刻スレーブとの間でデータ伝送を開始することができるタイミングを判断することができない。
これには、例えば、実際に時刻同期処理に費やされる時間よりも十分に長い時間を設定しておき、電源投入後、この設定時間が経過した後において、データ伝送を開始する構成を採用することができる。これによると、時刻同期が完了した状態でデータ伝送が実行されることが保証される。しかしながら、電源が投入されてからデータ伝送を開始するまでに必要以上に時間がかかってしまうことが懸念される。
また、上記の時刻同期処理では、データ伝送の実行中において、時刻マスタが時刻スレーブの時刻同期精度を監視するシーケンスが存在しない。そのため、時刻マスタのマスタクロックと時刻スレーブのスレーブクロックとの間に時刻ずれが発生した際に、これを検出することができない。
そこで、本実施の形態に従う通信システム1では、複数の時刻スレーブの各々は、自装置のスレーブクロックの時刻同期精度を示す時刻同期情報を時刻マスタへ通知するための「通信手段」を有する。これによると、図1に示す構成例においては、時刻マスタである制御装置100には、デバイス200A〜200Cの各々から時刻同期情報が通知されることになる。したがって、制御装置100は、デバイス200A〜200Cから通知された時刻同期情報に基づいて、自装置と各デバイスとの間の時刻同期が完了しているか否かを判断することができる。この結果、通信システム1全体において時刻同期が完了したタイミングで、データ伝送を開始することができる。したがって、電源投入後、設定時間が経過したタイミングでデータ伝送を開始する構成に比べて、より迅速にデータ伝送を開始することが可能となる。
また、データ伝送の実行中、制御装置100は、デバイス200A〜200Cから通知された時刻同期情報に基づいて、デバイス200A〜200Cの各々の時刻同期精度を監視することができるため、いずれかのデバイスとの間に時刻ずれが発生したときには直ちにデータの伝送を停止することができる。よって、時刻ずれの発生に依存して、デバイスが入力データを取得する、および、出力データを出力するタイミングがばらつく可能性を回避することができる。
<B.通信システムの全体構成例>
まず、本実施の形態に従う通信システム1の全体構成について説明する。図1は、本実施の形態に係る通信システム1の構成を模式的に示す図である。
図1に示す構成例においては、ネットワーク2には、制御装置100および複数のデバイス200A〜200C(以下、「デバイス200」と総称することもある。)が接続される。デバイス200A〜200Cは、例えばデイジーチェーンで順次接続されている。図1では、ネットワーク2のデバイス200と制御装置100との接続形態は、ライン型としているが、ライン型に限定されない。例えば、リング型、バス型またはスター型を含む他の接続形態であってもよい。
通信システム1のネットワーク内においては、制御装置100およびデバイス200A〜200Cは、いずれも「データ転送機能を有する通信装置」とみなすことができる。図1に示す例においては、制御装置100およびデバイス200A〜200Cの各々は、隣接して接続されている他の通信装置から、ネットワーク上を転送されるデータ(以下では、1つの転送単位のデータを「フレーム」とも称す。)を受信すると、当該入来したフレームを必要に応じて、隣接して接続されている別の他の通信装置へ転送する機能を有している。なお、受信されたフレームが自装置宛てである場合には、当該受信したフレームを他の通信装置へ転送されることなく、当該フレームを受信した装置自体で当該フレームが処理される。
制御装置100は、製造装置または生産ライン(以下、「フィールド」とも称す。)に備えられる各種の設備や装置などの制御対象を制御する産業用コントローラに相当する。以下では、制御装置100を「制御マスタ」とも称す。制御装置100は、制御演算を実行する一種のコンピュータであり、典型的には、PLC(プログラマブルコントローラ)として具体化されてもよい。
制御装置100には、センサ、アクチュエータといった制御対象が直接またはネットワーク2を介して接続され得る。本実施の形態では、図1に示すように、これら制御対象はデバイス200およびネットワーク2を介して制御装置100に接続され得る。
デバイス200の各々は、フィールド信号を取得する入力デバイス、および、制御装置100からの指示に従ってフィールドに対して何らかのアクションを行なう出力デバイスあるいはアクチュエータを含む。デバイス200は、制御マスタによって制御される「制御スレーブ」の一実施例に対応する。ネットワーク2は、入力およびデバイス制御を主たる機能として提供する。ネットワーク2は、狭義の「フィールドネットワーク」に相当する。一般的に「フィールドネットワーク」は、「フィールドバス」とも称されるが、説明の簡単化のため、以下の説明においては、ネットワーク2は、「フィールドネットワーク」および「フィールドバス」の両方を含み得る概念である。
制御装置100において実行される制御演算は、デバイス200において収集または生成されたデータ(以下、「入力データ」とも称す。)を収集する処理(入力処理)、デバイス200に対する指令などのデータ(以下、「出力データ」とも称す。)を生成する処理(演算処理)、生成した出力データを対象のデバイス200へ送信する処理(出力処理)などを含む。
また、制御装置100には、サポート装置500が接続され得る。サポート装置500は、制御装置100がネットワーク2を管理するための必要な準備、および制御対象を制御するために必要な準備などを支援する装置である。サポート装置500は、ネットワーク2の管理に関連して、例えば制御装置100に接続されるデバイス200のパラメータ(コンフィギュレーション)を設定するための設定環境などを提供する。サポート装置500は、設定環境などを提供する設定ツールがインストールされたPC(パーソナルコンピュータ)などを含み得る。
なお、図1に示す通信システム1においては、サポート装置500は、制御装置100と別体として備えられるが、サポート装置500は、制御装置100に一体的に備えられてもよい。すなわち、サポート装置500が有する機能は、制御装置100に内蔵され得る。
ネットワーク2には、任意のデバイス200を接続することができる。デバイス200は、フィールドに対して何らかの物理的な作用を与えるアクチュエータ、およびフィールドとの間で情報を遣り取りする入出力装置などを含む。
ネットワーク2を介して制御装置100とデバイス200との間でデータが遣り取りされることになるが、これらの遣り取りされるデータは、数100μsecオーダ〜数10msecオーダのごく短い周期で更新されることになる。
<C.伝送されるデータと通信性能>
図1に示すネットワーク2においては、基本的には、製造装置または生産設備の制御に用いられるデータ(以下、「制御系データ」と総称することもある。)が周期的に伝送される。また、ネットワーク2においては、制御系データと異なる他のデータも伝送され得る。他のデータは、例えば「情報系データ」または「制御情報系データ」と称するデータを含む。これらは、制御系データのような高速なリアルタイム性が要求されないものの、ある程度の定時性が求められるデータである。
制御系データは、例えば、サーボ指令値、エンコーダ値、センサのON/OFF値などが挙げられる。制御系データは、製造装置または生産設備の制御に用いられるため、制御装置100から一定の通信周期で伝送される。通信システム1では、この通信周期を確実に保証する必要がある。
本実施の形態に係るネットワーク2は、データの到達時間が保証される、定周期通信を行なうバスまたはネットワークを採用することが好ましい。例えば、マシンコントロール用ネットワークの一例であるEtherCAT(登録商標)、汎用的なEthernet(登録商標)上に制御用プロトコルを実装した産業用オープンネットワークであるEtherNet/IP(登録商標)などの公知のプロトコルに係るネットワークを採用してもよい。
<D.ハードウェア構成>
図2は、本実施の形態に従う通信システム1のハードウェア構成の一例を示す模式図である。制御装置100は、典型的には、PLCをベースとして構成されてもよい。
図2を参照して、制御装置100は、主たるコンポーネントとして、プロセッサ102と、メモリ104と、ストレージ106と、ネットワークコントローラ110とを含む。制御装置100は、サポート装置500と通信するI/F(Interface)をさらに含む。
ストレージ106には、制御装置100の各部を制御するためのシステムプログラム107、および制御対象などに応じて設計されるユーザアプリケーションプログラム108が格納される。プロセッサ102は、ストレージ106に格納されているシステムプログラム107およびユーザアプリケーションプログラム108をメモリ104に読み出して実行することで、後述するような処理を含む各種処理を実現する。メモリ104は、DRAM(Dynamic Random Access Memory)やSRAM(Static Random Access Memory)などの揮発性記憶装置からなる。
ネットワークコントローラ110は、制御装置100がネットワーク2を介して各デバイス200との間でデータを遣り取りするためのインターフェイスを提供する。ネットワークコントローラ110は、主たるコンポーネントとして、受信回路(Rx)111と、受信バッファ112と、送受信コントローラ113と、送信バッファ114と、送信回路(Tx)115と、タイマ101とを含む。
受信回路111は、ネットワークコントローラ110上を定周期で伝送されるフレームを受信して、その受信したフレームに格納されているデータを受信バッファ112に書込む。送受信コントローラ113は、受信バッファ112に書込まれた受信フレームを順次読出す。送受信コントローラ113は、当該読出されたフレームから、制御装置100での処理に必要なデータのみを抽出し、プロセッサ102へ出力する。送受信コントローラ113は、プロセッサ102からの指令に従って、デバイス200へ送信すべきデータあるいはフレームを送信バッファ114へ順次書込む。送信回路115は、ネットワークコントローラ110上をフレームが伝送される周期に同期して、送信バッファ114に格納されているデータを順次ネットワーク2へ送出する。タイマ101は、送受信コントローラ113から通信フレームの送信などを指示するタイミングの基準となるパルスを発生するグランドマスタでもあり得る。
図2を参照して、デバイス200は、通信システム1による様々な設備や装置の制御を実現するために必要な各種機能を実現する。典型的には、デバイス200の各々は、制御対象の設備や装置などからのフィールド情報の収集や、制御対象の設備や装置などへの指令信号の出力を司る。デバイス200の各々は、主たるコンポーネントとして、プロセッサ202と、メモリ204と、ストレージ206と、通信回路210とを含む。通信回路210は、ネットワーク2を伝送されるフレームを処理する。すなわち、通信回路210は、ネットワーク2を介して何らのフレームを受信すると、当該受信したフレームに対するデータ書込みおよび/またはフレームからのデータ読出しを行ない、その後、ネットワーク2上において次に位置するデバイス200へ当該フレームを転送する。
より具体的には、通信回路210は、受信回路(Rx)211と、送受信コントローラ212と、送信回路(Tx)213と、タイマ201とを含む。受信回路211および送信回路213は、ネットワーク2と物理的に接続される部位であり、送受信コントローラ212からの指令に従って、ネットワーク2上を伝送されるフレームを受信し、受信フレームを処理し、処理後のフレームをネットワーク2に送出する。送受信コントローラ212は、ネットワーク2上を伝送されるフレームに対するデータ書込みおよび/または当該フレームからのデータ読出しを行なう。タイマ201は、送受信コントローラ212による指令出力のタイミングまたはデバイス200による処理の実行のタイミングなどの基準となるクロックを発生する。これにより、制御装置100および各デバイス200を含む複数の通信装置を、互いに時刻同期させることができる。
<E.時刻同期機能>
図1に示す通信システム1において、制御装置100はタイマ101を有し、デバイス200A〜200Dはタイマ201A〜201Cをそれぞれ有している。制御装置100のタイマ101がマスタクロックとして機能し、デバイス200A〜200Cのタイマがマスタクロックを基準としてタイミングを同期させることで、通信システム1において、データの伝送タイミングなどを互いに一致させることができる。
通信システム1における通信装置間の時刻同期は、例えばIEEE1588、IEEE802.1AS,IEEE802.1AS−Revなどの高精度時刻同期プロトコルを採用することができる。
高精度時刻同期プロトコルとして、例えば、IEEE1588には、PTP(Precision Time Protocol)が規定されている。PTPは、マスタクロックを持つ時刻マスタMと、スレーブクロックを持つ時刻スレーブSとを含む通信システムに適用され得る。PTPでは、時刻マスタMと時刻スレーブSとの間で定期的に時刻同期用パケットを遣り取りし、その過程で得られた情報に基づいて、時刻スレーブSのスレーブクロックの時刻補正を行なう。
図3は、PTPの時刻同期処理の一例を示すシーケンス図である。図3に示すシーケンス図においては、時刻マスタMと時刻スレーブSとが連係することにより、マスタクロックとスレーブクロックとの間の時刻同期が実現される。
図3において、時刻マスタMのマスタクロックの持つ時刻Tと、時刻スレーブSのスレーブクロックの持つ時刻Tとの差分であるOFFSETは、一般に次式(1)で表わされる。
OFFSET=T−T …(1)
最初に、時刻マスタMは、時刻スレーブSへ時刻同期用パケット(Syncメッセージ)を送信する。時刻マスタMがSyncメッセージを送信した時刻T1、時刻スレーブSがSyncメッセージを受信した時刻T2、および時刻マスタMから時刻スレーブSへの方向の遅延時間DM/Sの間には、次式(2)の関係が成り立つ。
T2=T1+OFFSET+DM/S …(2)
次に、時刻マスタMは、時刻スレーブSへ時刻同期用パケット(Follow_Upメッセージ)を送信する。Follow_Upメッセージは、時刻マスタMからSyncメッセージを送信した時刻T1を示す情報を含んでいる。時刻スレーブSは、時刻T1と時刻T2とを記録する。
次に、時刻スレーブSは、時刻マスタMへ時刻同期パケット(Delay_Reqメッセージ)を送信する。時刻マスタMは、Delay_Reqメッセージを受信すると、時刻スレーブSに時刻同期用パケット(Delay_Respメッセージ)を送信する。Delay_Respメッセージは、Delay_Reqメッセージを受信した時刻T4を示す情報を含んでいる。時刻スレーブSは、Delay_Respメッセージを受信すると、時刻マスタMがDelay_Reqメッセージを受信したことを確認できるため、時刻T3と時刻T4とを記録する。
時刻スレーブSがDelay_Reqメッセージを送信した時刻T3、時刻マスタMがDelay_Reqメッセージを受信した時刻T4、および時刻スレーブSから時刻マスタMへの方向の遅延時間DS/Mの間には、次式(3)の関係が成り立つ。
T4=T3−OFFSET+DS/M …(3)
時刻スレーブSは、時刻T1,T2,T3,T4(すなわち、4つのタイムスタンプ)を記録している。ここで、双方向の遅延時間DM/S、DS/Mが等しいと仮定すると(DM/S=DS/M)、時刻スレーブSは、式(2),(3)に基づいて、次式(4)によりOFFSETを算出できる。
OFFSET={(T2−T4)−(T1−T3)}/2 …(4)
このようなPTPの時刻同期処理は、双方向の遅延時間が等しい場合は成り立つが、途中にスイッチ等を経由している場合、双方向の遅延時間は異なるために誤差を生じる。双方向の遅延時間の差によって生じる誤差を解決するためにIEEE1588では、さらに、トランスペアレントクロック(Transparent Clock)と呼ばれる遅延管理機能が定義されている。
トランスペアレントクロックには、E2E(End to End)トランスペアレントクロックと、P2P(Peer to Peer)トランスペアレントクロックとがある。E2Eトランスペアレントクロックは、時刻マスタMと時刻スレーブSとの間に配置される各スイッチの入力部および出力部にタイムスタンプ付与機能を設置し、各スイッチのパケット通過時間を計測して補正する方式である。E2Eトランスペアレントクロックは、図3に示したDelay request-Delay responseメカニズムを用いて、時刻マスタMと時刻スレーブSとの間で遅延時間を計測する。
一方、P2Pトランスペアレントクロックは、図4に示すように、隣接する2つの通信装置がマスタとスレーブとの関係になって時計を合わせていく方式である。P2Pトランスペアレントクロックは、Peer delayメカニズムを用いて、各ピア間で遅延時間を計測する。図4の例では、時刻マスタMおよび時刻スレーブS1〜S3がデイジーチェーンで順次接続されている。図1に示す通信システム1においては、制御装置100が時刻マスタMに対応し、デバイス200A〜200Cが時刻スレーブS1〜S3にそれぞれ対応する。
時刻マスタMおよび時刻スレーブS1〜S3の各々は、ポートP1,P2を有する。ポートP1,P2の各々は、マスタポートおよびスレーブポートのいずれかに指定され得るる。
ただし、制御装置100を時刻マスタMとして機能させる場合には、時刻マスタMにおけるポートP1,P2の一方のポートがマスタポートに指定され、他方のポートが上位ネットワークまたは、同一ネットワーク上の他の制御装置に接続されることがある(図24参照)。あるいは、時刻マスタMおよび時刻スレーブS1〜S3の接続形態がリング型である場合には、時刻マスタMのポートP1,P2はいずれもマスタポートに指定される。
なお、通信システム1を構成する複数の通信装置のうちのどの通信装置のタイマをマスタクロックとして機能させるかについては、ユーザが指定することができる。あるいは、マスタクロック選出アルゴリズムを用いて自動的に指定することができる。時刻スレーブS1〜S3の各々のポートP1,P2は、ユーザが指定することができる。あるいは、ツールで設計された通信システム1のトポロジー情報に基づいて、自動的に指定することができる。
本実施の形態に係る通信システム1では、P2Pトランスペアレントクロックを用いた時刻同期処理を実行することにより、時刻マスタMのマスタクロックに時刻スレーブS1〜S3の各々のスレーブクロックを時刻同期させる。
図5は、P2Pトランスペアレントクロックを用いた時刻同期処理の一例を示すシーケンス図である。図5に示すシーケンス図において、スイッチSW1,SW2は、P2Pトランスペアレントクロック機能を有するネットワークスイッチである。スイッチSW1,SW2は、ネットワーク上において隣接して接続される。図5では、スイッチSW2は、スイッチSW1のマスタ側に隣接して位置するものとする。スイッチSW1とスイッチSW2との間で定期的に時刻同期用パケットを遣り取りし、その過程で得られた情報に基づいて、スイッチSW1のクロックの時刻補正を行なう。
図5において、スイッチSW1のクロックの持つ時刻TS1と、スイッチSW2のクロックの持つ時刻TS2との差分をΔTとすると、ΔTは次式(5)で表される。
ΔT=TS2−TS1 …(5)
最初に、スイッチSW1は、スイッチSW2へ時刻同期用パケット(Pdelay_Reqメッセージ)を送信する。スイッチSW1がPdelay_Reqメッセージを送信した時刻T1、スイッチSW2がPdelay_Reqメッセージを受信した時刻T2、およびスイッチSW1からスイッチSW2への方向の遅延時間D1/2の間には、次式(6)の関係が成り立つ。
T2=T1+ΔT+D1/2 …(6)
次に、スイッチSW2は、スイッチSW1へ時刻同期用パケット(Pdelay_Respメッセージ)を送信する。Pdelay_Respメッセージは、スイッチSW2がPdelay_Reqメッセージを受信した時刻T2を示す情報を含んでいる。スイッチSW1は、時刻T1と時刻T2とを記録する。
次に、スイッチSW2は、スイッチSW1へ時刻同期用パケット(Pdelay_Resp_followupメッセージ)を送信する。Pdelay_Resp_followupメッセージは、スイッチSW2がPdelay_Respメッセージを送信した時刻T3を示す情報を含んでいる。スイッチSW1は、Pdelay_Resp_followupメッセージを送信した時刻T3と、Pdelay_Resp_followupメッセージを受信した時刻T4とを記録する。
スイッチSW2がPdelay_Resp_followupメッセージを送信した時刻T3、スイッチSW1がPdelay_Resp_followupメッセージを受信した時刻T4、およびスイッチSW2からスイッチSW1への方向の遅延時間D2/1の間には、次式(7)の関係が成り立つ。
T4=T3−ΔT+D2/1 …(7)
スイッチSW1は、時刻T1,T2,T3,T4(すなわち、4つのタイムスタンプ)を記録している。ここで、双方向の遅延時間D1/2、D2/1が等しいと仮定すると(D1/2=D2/1)、遅延時間Dを次式(8)により算出できる。
D={(T4−T1)−(T3−T2)}/2 …(8)
さらに、式(6),(8)に基づいて、スイッチSW1の持つクロックの時刻とスイッチSWの持つクロックの時刻との差分ΔTを次式(9)により算出できる。スイッチSW1は、差分ΔTを時刻調整値として、自装置のクロックの時刻補正を行なう。
ΔT=(T2−T1)−{(T4−T1)−(T3−T2)}/2 …(9)
図4に戻って、時刻スレーブS1は、スレーブポートに接続される時刻マスタMとの間で図5に示す時刻同期処理を実行することにより、時刻マスタMが持つクロック(マスタクロック)の時刻と自装置の持つクロック(スレーブクロック)の時刻との差分ΔTを算出する。この場合、図5のシーケンス図において、時刻スレーブS1はスイッチSW1に対応し、時刻マスタMはスイッチSW2に対応する。以下の説明では、時刻マスタMの時刻に対する時刻スレーブS1の時刻の差分ΔTを「ΔTM−1」と表す。時刻スレーブS1は、差分ΔTM−1を時刻調整値として、自装置のタイマを時刻補正する。
時刻スレーブS2は、スレーブポートに接続される時刻スレーブS1との間で図5に示す時刻同期処理を実行することにより、時刻スレーブS1が時刻差ΔTを計算する。時刻スレーブS2は図4のスイッチSW1に対応し、時刻スレーブS1が持つクロックの時刻と自装置のクロックの時刻との差分ΔTを算出する。この場合、図5のシーケンス図において、時刻スレーブS2はスイッチSW1に対応し、時刻スレーブS1はスイッチSW2に対応する。以下の説明では、時刻スレーブS1の時刻に対する時刻スレーブS2の時刻の差分ΔTを「ΔT1−2」と表す。時刻スレーブS2は、差分ΔT1−2を時刻調整値として、自装置のクロックを時刻補正する。
時刻スレーブS3は、スレーブポートに接続される時刻スレーブS2との間で図5に示す時刻同期処理を実行することにより、時刻スレーブS2が持つクロックの時刻と自装置が持つクロックの時刻との差分ΔTを計算する。この場合、図5のシーケンス図において、時刻スレーブS3はスイッチSW1に対応し、時刻スレーブS2はスイッチSW2に対応する。以下の説明では、時刻スレーブS2の時刻に対する時刻スレーブS3の時刻の差分ΔTを「ΔT2−3」と表す。時刻スレーブS3は、差分ΔT2−3を時刻調整値として、自装置のクロックを時刻補正する。
このように、複数の通信装置の各々が、マスタ側に隣接して接続される通信装置のクロックの時刻と自装置のクロックの時刻との差分ΔTを時刻調整値として、自装置のクロックを時刻補正することにより、最終的に、時刻マスタMと全ての時刻スレーブS1〜S3との間で時刻同期が実現される。通信システム1全体の時刻同期が完了することにより、複数の通信装置の間で制御系データの伝送を開始することが可能となる。
しかしながら、図5に示す時刻同期処理には、各時刻スレーブSの時刻同期精度を時刻マスタMに通知するシーケンスが存在しない。このため、時刻マスタMは、各時刻スレーブSの時刻同期が完了したか否かを判定することができず、通信システム1の電源投入後などにおいて、制御系データの伝送を開始することができるタイミングを判断することができない。
これには、例えば、実際に時刻同期処理に費やされる時間よりも十分に長い時間を設定しておき、通信システム1の電源を投入してからこの設定時間が経過した時点で、制御系データの伝送を開始する構成を採用することができる。これによると、時刻同期が完了した状態で制御系データの伝送が実行されることが保証される。しかしながら、電源を投入してから制御系データの伝送を開始するまでに必要以上に時間がかかってしまうことが懸念される。
また、データ伝送の実行中において、時刻マスタMには、時刻スレーブSのスレーブクロックを監視するシーケンスが存在しない。そのため、時刻マスタMのマスタクロックと時刻スレーブSのスレーブクロックとの間に時刻ずれが発生した際に、これを検出することができない。
ここで、特許文献1には、図3に示したE2Eトランスペアレントクロックを用いた時刻同期処理において、時刻スレーブSは、時刻マスタMに送信する時刻同期用パケット(Delay_Reqメッセージ)に、Delay_Reqメッセージを送信した時刻T3を示す情報を含ませる技術が開示されている。この技術によれば、時刻マスタMは、時刻T3と時刻T4との差分である監視用時刻差分(T4−T3)が予め決められた許容範囲内であるか否かを判定することにより、時刻スレーブSの時刻同期が完了したか否かを判定することができる。
この特許文献1の技術を、図5に示すP2Pトランスペアレントクロックを用いた時刻同期処理に適用した場合、時刻マスタMは、直近の時刻スレーブS1から時刻情報を含んだ時刻同期用パケットを受信することで、時刻スレーブS1の時刻同期が完了したか否かを判定することができる。しかしながら、時刻マスタMと時刻スレーブS2,S3との間では時刻同期用パケットの遣り取りが行なわれないため、時刻マスタMは、時刻スレーブS2、S3の各々の時刻同期が完了したか否かを判定することができない。
そこで、本実施の形態に従う通信システム1では、時刻スレーブSは、自装置のスレーブクロックの時刻同期精度を示す情報(時刻同期情報)を時刻マスタMへ通知するための「通信手段」を有する。これによると、時刻マスタMは、時刻スレーブS1〜S3の各々から通知される時刻同期情報に基づいて、時刻スレーブS1〜S3の時刻同期が完了したか否かを判定することができる。
<F.通信手段>
以下では、本実施の形態に係る通信システム1において、時刻スレーブSが有する通信手段の構成例について説明する。
(f1.通信手段の構成例1)
図6は、本実施の形態に係る通信手段の構成例1を模式的に示す図である。本実施の形態に係る通信手段は、時刻同期情報として、自装置のスレーブクロックの時刻補正に用いた時刻調整値ΔTを通知するように構成される。
図6を参照して、時刻スレーブS3は、時刻スレーブS2との間で時刻同期処理(図5参照)を実行することにより、時刻スレーブS2の時刻に対する時刻スレーブS3の時刻の差分ΔT2−3を算出する。時刻スレーブS3は、算出した時刻調整値ΔT2−3を時刻スレーブS2へ通知する。
時刻スレーブS2は、時刻スレーブS1との間で時刻同期処理を実行することにより、時刻スレーブS1の時刻に対する時刻スレーブS2の時刻の差分ΔT1−2を算出する。時刻スレーブS2は、時刻スレーブS3より受信した時刻調整値ΔT2−3と、算出した時刻調整値ΔT1−2とを比較する。具体的には、時刻スレーブS2は、時刻調整値ΔT2−3の絶対値|ΔT2−3|と、時刻調整値ΔT1−2の絶対値と|ΔT1−2|とを比較し、大きい方の絶対値(以下、「最大時刻調整値ΔTmax」とも称す。)を選択する。時刻スレーブS2における最大時刻調整値をΔTmax2とすると、最大時刻調整値ΔTmax2は次式(10)で与えられる。時刻スレーブS2は、最大時刻調整値ΔTmax2を時刻スレーブS1へ通知する。
ΔTmax2=Max{|ΔT2−3|,|ΔT1−2|} …(10)
時刻スレーブS1は、時刻マスタMとの間で時刻同期処理を実行することにより、時刻マスタMの時刻に対する時刻スレーブS1の時刻の差分ΔTM−1を算出する。時刻スレーブS1は、時刻スレーブS2より受信した最大時刻調整値ΔTmax2と、時刻調整値ΔTM−1の絶対値|ΔTM−1|とを比較し、大きい方の絶対値(最大時刻調整値ΔTmax)を選択する。時刻スレーブS1における最大時刻調整値ΔTmax1とすると、最大時刻調整値ΔTmax1は次式(11)で与えられる。時刻スレーブS1は、最大時刻調整値ΔTmax1を時刻マスタMへ通知する。
ΔTmax1=Max{|ΔTM−1|,ΔTmax2} …(11)
ここで、式(10),(11)によると、最大時刻調整値ΔTmax1は次式(12)のように表わすことができる。
ΔTmax1=Max{|ΔT2−3|,|ΔT1−2|,|ΔTM−1|} …(12)
式(12)から分かるように、時刻マスタMには、時刻スレーブS1〜S3の時刻調整値ΔT2−3,ΔT1−2,ΔTM−1の絶対値のうち最も大きいものが、最大時刻調整値ΔTmax1として通知されることになる。
時刻マスタMは、最大時刻調整値ΔTmax1に基づいて、時刻スレーブS1〜S3の時刻同期が完了したか否かを判定する。具体的には、時刻マスタMは、時刻同期が完了したか否かを判定するための閾値を、通信システム1において予め定められた許容時刻精度を最大パス数で除算した値に設定する。この最大パス数とは、時刻マスタMと末端の時刻スレーブS(図6の例では時刻スレーブS3に相当)との間に存在する伝送経路の総数に値する。図6の例では、最大パス数は3となる。したがって、閾値は許容時刻精度/3に設定される。例えば、許容時刻精度を1μsとした場合、閾値は0.333μsに設定される。
図6の例では、時刻マスタMと末端の時刻スレーブS3との間には、各時刻スレーブSの差分ΔTを足し合わせた時刻差が生じる。そのため、各時刻スレーブSにおいて、隣接して接続される他の通信装置との時刻の差分ΔTが許容時刻精度より小さくても、時刻マスタMと末端の時刻スレーブS3との間には許容時刻精度を超える時刻差が発生している可能性がある。そこで、時刻同期の完了を判定するための閾値を、許容時刻精度を最大パス数で除算した値とすることで、時刻マスタMと時刻スレーブS3との時刻差が許容時刻精度より小さいことを、時刻同期完了の判定条件としている。
時刻マスタMは、最大時刻調整値ΔTmax1と上記閾値とを比較し、最大時刻調整値ΔTmax1が閾値より小さい場合、時刻スレーブS1〜S3の時刻同期が完了したと判定する。時刻マスタMは、時刻同期が完了したと判定されると、時刻スレーブS1〜S3の間で制御系データの伝送を開始する。一方、最大時刻調整値ΔTmax1が閾値より大きい場合、時刻マスタMは、時刻スレーブS1〜S3の時刻同期が完了していないと判定し、制御系データの伝送を開始しないこととする。
通信システム1において、時刻同期処理は定期的に実行されるため、各時刻スレーブSの時刻同期情報も時刻マスタMに定期的に通知されることになる。したがって、時刻マスタMは、データ伝送の実行中において、時刻スレーブS1〜S3の時刻同期精度を監視することができる。時刻スレーブS1〜S3のいずれか1つと時刻マスタMとの間で時刻ずれが発生したことによって、時刻マスタMに通知される最大時刻調整値ΔTmax1が閾値を超えた場合、時刻マスタMは、時刻マスタMと時刻スレーブS1〜S3との間の時刻同期が破綻したものと判断し、制御系データの伝送を停止する。これによると、図1に示す通信システム1におけるデータ伝送において、制御装置100は、複数のデバイス200A〜200Cの制御系データの送受信のタイミングを安定的に管理することができる。
図7は、本実施の形態に係る通信手段の構成例1を含む時刻同期処理を示すシーケンス図である。
図7を参照して、通信システム1において時刻同期処理が開始されると、時刻スレーブS3は、時刻スレーブS2に対して、Pdelay_Reqメッセージを送信する。時刻スレーブS3は、時刻スレーブS2に送信するPdelay_Reqメッセージに、前回の時刻同期処理で算出された時刻調整値ΔT2−3を格納する。
時刻スレーブS2は、Pdelay_Reqメッセージを受信すると、Pdelay_Reqメッセージに格納されている時刻調整値ΔT2−3を抽出する。時刻スレーブS2は、Pdelay_RespメッセージおよびPdelay_Resp_followupメッセージを時刻スレーブS3に送信する。時刻スレーブS3は、時刻調整値ΔT2−3を算出し、算出した時刻調整値ΔT2−3を用いて自装置のスレーブクロックの時刻を補正する。
時刻スレーブS2は、時刻スレーブS3より受信した時刻調整値ΔT2−3と、前回の時刻同期処理で算出された時刻調整値ΔT1−2とを式(10)に代入することにより、最大時刻調整値ΔTmax2を算出する。時刻スレーブS2は、時刻スレーブS1に送信するPdelay_Reqメッセージに、算出した最大時刻調整値ΔTmax2を格納する。
時刻スレーブS1は、Pdelay_Reqメッセージを受信すると、Pdelay_Reqメッセージに格納されている最大時刻調整値ΔTmax2を抽出する。時刻スレーブS1は、Pdelay_RespメッセージおよびPdelay_Resp_followupメッセージを時刻スレーブS2に送信する。時刻スレーブS2は、時刻調整値ΔT1−2を算出し、算出した時刻調整値ΔT1−2を用いて自装置のスレーブクロックの時刻を補正する。
時刻スレーブS1は、時刻スレーブS2より受信した最大時刻調整値ΔTmax2と、前回の時刻同期処理で算出された時刻調整値ΔTM−1とを式(11)に代入することにより、最大時刻調整値ΔTmax1を算出する。時刻スレーブS1は、時刻マスタMに送信するPdelay_Reqメッセージに、算出した最大時刻調整値ΔTmax1を格納する。
時刻マスタMは、Pdelay_Reqメッセージを受信すると、Pdelay_Reqメッセージに格納されている最大時刻調整値ΔTmax1を抽出する。時刻マスタMは、Pdelay_RespメッセージおよびPdelay_Resp_followupメッセージを時刻スレーブS1に送信する。時刻スレーブS1は、時刻調整値ΔTM−1を算出し、算出した時刻調整値ΔTM−1を用いて自装置のスレーブクロックの時刻を補正する。
時刻マスタMは、時刻スレーブS1より受信した最大時刻調整値ΔTmax1に基づいて、時刻スレーブS1〜S3の時刻同期が完了したか否かを判定する。時刻マスタMは、最大時刻調整値ΔTmax1が閾値(=許容時刻精度/最大パス数)より小さい場合、時刻スレーブS1〜S3の時刻同期が完了していると判定し、時刻スレーブS1〜S3との間で制御系データの伝送を開始する。
図7に示すように、マスタ側に位置する通信装置に送信する時刻同期用パケット(Pdelay_Reqメッセージ)に時刻同期情報(時刻調整値ΔT)を含めることで、既存の時刻同期シーケンスを利用して、通信手段を実現することができる。これによると、通信手段を実現するために、時刻同期処理の実行中に通信装置間で遣り取りされるパケットが増えてしまうことを防止することができる。
図8は、本実施の形態に係る通信システム1を構成する時刻スレーブSによる処理手順を示すフローチャートである。図8では、時刻マスタMに順次接続される複数の時刻スレーブS1〜S3(S3は末端のスレーブに相当)のうちの1つの時刻スレーブSi(1≦i≦3)による処理手順が示されている。図8に示すフローチャートは所定周期で実行される。
図8を参照して、時刻スレーブSiは、マスタ側ノード(時刻スレーブS(i−1)または時刻マスタMに相当)に対して、時刻同期用パケット(Pdelay_Reqメッセージ)を送信する(ステップS01)。時刻スレーブSiは、Pdelay_Reqメッセージに、最大時刻調整値ΔTmaxiを格納する。時刻スレーブSiは、Pdelay_Reqメッセージを送信した時刻T1を記録する(図6参照)。
続いて、時刻スレーブSiは、マスタ側ノードから時刻同期用パケット(Pdelay_Respメッセージ)を受信する(ステップS02)。Pdelay_Respメッセージは、マスタ側ノードがPdelay_Reqメッセージを受信した時刻T2を含んでいる。時刻スレーブSiは、時刻T2を記録する。
時刻スレーブSiは、さらに、マスタ側ノードから時刻同期用パケット(Pdelay_Resp followupメッセージ)を受信する(ステップS03)。Pdelay_Resp followupメッセージは、マスタ側ノードがPdelay_Respメッセージを送信した時刻T3を含んでいる。時刻スレーブSiは、時刻T3および、Pdelay_Respメッセージを受信した時刻T4を記録する。
次に、時刻スレーブSiは、4つの時刻T1,T2,T3,T4に基づいて、マスタ側ノードの時刻に対する時刻スレーブSiの時刻の差分(時刻調整値)ΔTを算出する(ステップS04)。時刻スレーブSiは、時刻調整値ΔTを用いて、自装置のクロックの時刻を補正する(ステップS05)。
次に、時刻スレーブSiは、スレーブ側ノード(時刻スレーブS(i+1)に相当)から、時刻同期用パケット(Pdelay_Reqメッセージ)を受信する(ステップS06)。Pdelay_Reqメッセージには、スレーブ側ノードで算出された最大時刻調整値ΔTmax(i+1)が格納されている。
時刻スレーブSiは、時刻調整値ΔTの絶対値|ΔT|と、最大時刻調整値ΔTmax(i+1)とを比較し、大きい方の絶対値を選択する。時刻スレーブSiは、選択した絶対値を、最大時刻調整値ΔTmaxiに設定する。時刻スレーブSiは、設定した最大時刻調整値ΔTmaxiを、次回の時刻同期処理においてマスタ側ノードに送信する時刻同期用パケット(Pdelay_Reqメッセージ)に格納する。したがって、更新された最大時刻調整値ΔTmaxiがマスタ側ノードに通知されることになる(ステップS01)。
図8に示す処理手順に従って、時刻スレーブS1〜Snの各々がマスタ側ノードに最大時刻調整値ΔTmaxiを通知することにより、最終的に、時刻スレーブS1から時刻マスタMに最大時刻調整値ΔTmax1が通知される。
図9は、本実施の形態に係る通信システム1を構成する時刻マスタMによる処理手順を示すフローチャートである。図9に示すフローチャートは所定周期で実行される。
図9を参照して、時刻マスタMは、スレーブ側ノード(時刻スレーブS1)から時刻同期用パケット(Pdelay_Reqメッセージ)を受信する(ステップS11)。Pdelay_Reqメッセージには、時刻スレーブS1で算出された最大時刻調整値ΔTmax1が格納されている。
時刻マスタMは、時刻スレーブS1へ時刻同期用パケット(Pdelay_Respメッセージ)を送信する(ステップS12)。Pdelay_Respメッセージは、時刻マスタMがPdelay_Reqメッセージを受信した時刻T2を含んでいる。
時刻マスタMは、さらに、時刻スレーブS1へ時刻同期用パケット(Pdelay_Resp followupメッセージ)を送信する(ステップS13)。Pdelay_Resp followupメッセージは、時刻マスタMがPdelay_Respメッセージを送信した時刻T3を含んでいる。
続いて、時刻マスタMは、時刻スレーブS1より受信した最大時刻調整値ΔTmax1と、閾値(許容時刻精度/最大パス数)とを比較する(ステップS14)。最大時刻調整値ΔTmax1が閾値より小さい場合(S14のYES判定時)、時刻マスタMは、時刻スレーブS1〜S3の時刻同期が完了したと判定し、時刻スレーブS1〜S3との間で制御系データの伝送を実行する(ステップS15)。
一方、最大時刻調整値ΔTmax1が閾値以上である場合(S14のNO判定時)、時刻マスタMは、さらに、制御系データの伝送を実行中であるか否かを判定する(ステップS16)。制御系データの伝送を実行中であれば(S16のYES判定時)、時刻マスタMは、制御系データの伝送を停止する(ステップS17)。一方、制御系データの伝送を実行していなければ(S16のNO判定時)、時刻マスタMは、制御系データの伝送を開始しない。
(f2.通信手段の構成例2)
図10は、本実施の形態に係る通信手段の構成例2を模式的に示す図である。本構成例においても構成例1と同様に、通信手段は、時刻同期情報として、自装置のスレーブクロックの時刻補正に用いた時刻調整値ΔTを通知するように構成される。
図10を参照して、時刻スレーブS3は、時刻スレーブS2との間で時刻同期処理(図5参照)を実行することにより、時刻スレーブS2の時刻に対する時刻スレーブS3の時刻の差分ΔT2−3を算出する。時刻スレーブS3は、算出した時刻調整値ΔT2−3を時刻スレーブS2へ通知する。
時刻スレーブS2は、時刻スレーブS1との間で時刻同期処理を実行することにより、時刻スレーブS1の時刻に対する時刻スレーブS2の時刻の差分ΔT1−2を算出する。時刻スレーブS2は、時刻スレーブS3より受信した時刻調整値ΔT2−3と、算出した時刻調整値ΔT1−2とを時刻スレーブS1へ通知する。
時刻スレーブS1は、時刻マスタMとの間で時刻同期処理を実行することにより、時刻マスタMの時刻に対する時刻スレーブS1の時刻の差分ΔTM−1を算出する。時刻スレーブS1は、時刻スレーブS2より受信したΔT2−3,ΔT1−2と、時刻調整値ΔTM−1とを時刻マスタMへ通知する。
時刻マスタMは、時刻調整値ΔT2−3,ΔT1−2,ΔTM−1に基づいて、時刻スレーブS1〜S3の時刻同期が完了したか否かを判定する。具体的には、時刻マスタMは、時刻調整値ΔT1−2およびΔTM−1を足し合わせることにより、時刻マスタMの時刻に対する時刻スレーブS2の時刻の差分(時刻調整値)ΔTM−2を算出する。時刻調整値ΔTM−2は、次式(13)で与えられる。
ΔTM−2=ΔT1−2+ΔTM−1 …(13)
時刻マスタMは、さらに、時刻調整値ΔT2−3,ΔT1−2およびΔTM−1を足し合わせることにより、時刻マスタMの時刻に対する時刻スレーブS3の時刻の差分(時刻調整値)ΔTM−3を算出する。時刻調整値ΔTM−3は、次式(14)で与えられる。
ΔTM−3=ΔT2−3+ΔT1−2+ΔTM−1 …(14)
次に、時刻マスタMは、時刻調整値ΔTM−1,ΔTM−2,ΔTM−3のうち絶対値が最も大きいものを選択する。時刻マスタMは、選択した時刻調整値の絶対値を最大時刻調整値ΔTMmaxに設定する。最大時刻調整値ΔTMmaxは、次式(15)で与えられる。
ΔTMmax=Max{|ΔTM−3|,|ΔTM−2|,|ΔTM−1|} …(15)
時刻マスタMは、最大時刻調整値ΔTMmaxと許容時刻精度とを比較し、最大時刻調整値ΔTMmaxが許容時刻精度より小さい場合、時刻スレーブS1〜S3の時刻同期が完了したと判定する。時刻マスタMは、時刻同期が完了したと判定されると、時刻スレーブS1〜S3の間で制御系データの伝送を開始する。一方、最大時刻調整値ΔTMmaxが許容時刻精度より大きい場合、時刻マスタMは、時刻スレーブS1〜S3の時刻同期が完了していないと判定し、制御系データの伝送を開始しないこととする。なお、データ伝送の実行中において、最大時刻調整値ΔTMmaxが許容時刻精度を超えた場合、時刻マスタMは、時刻マスタMと時刻スレーブS1〜S3との間の時刻同期が破綻したものと判断し、制御系データの伝送を停止する。これによると、図1に示す通信システム1におけるデータ伝送において、制御装置100は、複数のデバイス200A〜200Cの制御系データの送受信のタイミングを安定的に管理することができる。
図11は、本実施の形態に係る通信システム1を構成する時刻スレーブSによる処理手順を示すフローチャートである。図11では、時刻マスタMに順次接続される複数の時刻スレーブS1〜S3(S3は末端のスレーブに相当)のうちの1つの時刻スレーブSi(1≦i≦3)による処理手順が示されている。図11に示すフローチャートは、図8に示したフローチャートと比較して、ステップS01,S06をステップS01A,S06Aにそれぞれ置き換えたものである。
図11を参照して、時刻スレーブSiは、マスタ側ノード(時刻スレーブS(i−1)または時刻マスタMに相当)に対して、時刻同期用パケット(Pdelay_Reqメッセージ)を送信する(ステップS01A)。時刻スレーブSiは、Pdelay_Reqメッセージに、自装置の時刻調整値ΔTと、スレーブ側ノード(時刻スレーブS(i+1)に相当)より受信した時刻調整値ΔTとを格納する。時刻スレーブSiは、Pdelay_Reqメッセージを送信した時刻T1を記録する(図6参照)。
続いて、時刻スレーブSiは、マスタ側ノードから時刻同期用パケット(Pdelay_Respメッセージ)を受信する(ステップS02)。時刻スレーブSiは、さらに、マスタ側ノードから時刻同期用パケット(Pdelay_Resp followupメッセージ)を受信する(ステップS03)。時刻スレーブSiは、4つの時刻T1,T2,T3,T4に基づいて、マスタ側ノードの時刻に対する時刻スレーブSiの時刻の差分(時刻調整値)ΔTを算出する(ステップS04)。時刻スレーブSiは、時刻調整値ΔTを用いて、自装置のクロックの時刻を補正する(ステップS05)。
次に、時刻スレーブSiは、スレーブ側ノードから、時刻同期用パケット(Pdelay_Reqメッセージ)を受信する(ステップS06A)。Pdelay_Reqメッセージには、スレーブ側ノードにおける時刻調整値ΔTが格納されている。スレーブ側ノードにおける時刻調整値ΔTは、自装置よりもスレーブ側に位置する全ての時刻スレーブSの時刻調整値ΔTを含んでいる。時刻スレーブSiは、受信した時刻調整値ΔTおよび、自装置の時刻調整値ΔTを、次回の時刻同期処理においてマスタ側ノードに送信する時刻同期用パケット(Pdelay_Reqメッセージ)に格納する。したがって、更新された時刻調整値ΔTがマスタ側ノードに通知されることになる(ステップS01A)。
図11に示す処理手順に従って、時刻スレーブS1〜Snの各々がマスタ側ノードに時刻調整値ΔTを通知することにより、最終的に、時刻スレーブS1〜S3の全ての時刻調整値ΔTが時刻マスタMに通知される。
図12は、本実施の形態に係る通信システム1を構成する時刻マスタMによる処理手順を示すフローチャートである。図12に示すフローチャートは、図9のフローチャートと比較して、ステップS11をステップS11Aに置き換えるとともに、ステップS18〜S20を追加したものである。
図12を参照して、時刻マスタMは、スレーブ側ノード(時刻スレーブS1)から時刻同期用パケット(Pdelay_Reqメッセージ)を受信する(ステップS11A)。Pdelay_Reqメッセージには、時刻スレーブS1〜S3の時刻調整値ΔT2−3,ΔT1−2,ΔTM−1が格納されている。
時刻マスタMは、時刻スレーブS1へ時刻同期用パケット(Pdelay_Respメッセージ)を送信する(ステップS12)。時刻マスタMは、さらに、時刻スレーブS1へ時刻同期用パケット(Pdelay_Resp followupメッセージ)を送信する(ステップS13)。
次に、時刻マスタMは、時刻スレーブS1より受信した時刻調整値ΔT2−3,ΔT1−2,ΔTM−1に基づいて、時刻マスタMの時刻に対する時刻スレーブS2,S3の時刻の差分(時刻調整値)ΔTM−2,ΔTM−3を算出する(ステップS18)。続いて、時刻マスタMは、算出した時刻調整値ΔTM−3,ΔTM−2,ΔTM−1の絶対値の最大値(最大時刻調整値ΔTMmax)を求める(ステップS19)。
次に、時刻マスタMは、最大時刻調整値ΔTMmaxと、許容時刻精度とを比較する(ステップS20)。最大時刻調整値ΔTMmaxが許容時刻精度より小さい場合(S20のYES判定時)、時刻マスタMは、時刻スレーブS1〜S3の時刻同期が完了したと判定し、時刻スレーブS1〜S3との間で制御系データの伝送を実行する(ステップS15)。
一方、最大時刻調整値ΔTMmaxが許容時刻精度以上である場合(S20のNO判定時)、時刻マスタMは、さらに、制御系データの伝送を実行中であるか否かを判定する(ステップS16)。制御系データの伝送を実行中であれば(S16のYES判定時)、時刻マスタMは、制御系データの伝送を停止する(ステップS17)。一方、制御系データの伝送を実行していなければ(S16のNO判定時)、時刻マスタMは、制御系データの伝送を開始しない。
(f3.通信手段の構成例3)
図13は、本実施の形態に係る通信手段の構成例3を模式的に示す図である。本構成例においても構成例1,2と同様に、通信手段は、時刻同期情報として、自装置のスレーブクロックの時刻補正に用いた時刻調整値ΔTを通知するように構成される。
図13を参照して、時刻スレーブS3は、時刻スレーブS2との間で時刻同期処理(図6)を実行することにより、時刻スレーブS2の時刻に対する時刻スレーブS3の時刻の差分ΔT2−3を算出する。時刻スレーブS3は、算出した時刻調整値ΔT2−3を時刻スレーブS2へ通知する。
時刻スレーブS2は、時刻スレーブS1との間で時刻同期処理を実行することにより、時刻スレーブS1の時刻に対する時刻スレーブS2の時刻の差分ΔT1−2を算出する。時刻スレーブS2は、時刻スレーブS3より受信した時刻調整値ΔT2−3と算出した時刻調整値ΔT1−2とを足し合わせる。時刻スレーブS2は、合算値(ΔT2−3+ΔT1−2)と時刻調整値ΔT1−2とを時刻スレーブS1へ通知する。
時刻スレーブS1は、時刻マスタMとの間で時刻同期処理を実行することにより、時刻マスタMの時刻に対する時刻スレーブS1の時刻の差分ΔTM−1を算出する。時刻スレーブS1は、時刻スレーブS2より受信した合計値(ΔT2−3+ΔT1−2)と、時刻調整値ΔTM−1とを足し合わせる。時刻スレーブS1は、また、時刻スレーブS2より受信した時刻調整値ΔT1−2と、時刻調整値ΔTM−1とを足し合わせる。時刻スレーブS1は、合算値(ΔT2−3+ΔT1−2+ΔTM−1),(ΔT1−2+ΔTM−1)と、時刻調整値ΔTM−1とを時刻マスタMへ通知する。
ここで、合計値(ΔT2−3+ΔT1−2+ΔTM−1)は、式(14)により、時刻マスタMの時刻に対する時刻スレーブS3の時刻の差分(時刻調整値)ΔTM−3に相当する。合算値(ΔΔT1−2+ΔTM−1)は、式(13)により、時刻マスタMの時刻に対する時刻スレーブS2の時刻の差分(時刻調整値)ΔTM−2に相当する。
時刻マスタMは、式(15)を用いて、時刻調整値ΔTM−1,ΔTM−2,ΔTM−3のうち絶対値が最も大きいものを最大時刻調整値ΔTMmaxに設定する。時刻マスタMは、最大時刻調整値ΔTMmaxと許容時刻精度とを比較し、最大時刻調整値ΔTMmaxが許容時刻精度より小さい場合、時刻スレーブS1〜S3の時刻同期が完了したと判定する。時刻マスタMは、時刻同期が完了したと判定されると、時刻スレーブS1〜S3の間で制御系データの伝送を開始する。一方、最大時刻調整値ΔTMmaxが許容時刻精度より大きい場合、時刻マスタMは、時刻スレーブS1〜S3の時刻同期が完了していないと判定し、制御系データの伝送を開始しないこととする。なお、データ伝送の実行中において、最大時刻調整値ΔTMmaxが許容時刻精度を超えた場合、時刻マスタMは、時刻マスタMと時刻スレーブS1〜S3との間の時刻同期が破綻したものと判断し、制御系データの伝送を停止する。これによると、図1に示す通信システム1におけるデータ伝送において、制御装置100は、複数のデバイス200A〜200Cの制御系データの送受信のタイミングを安定的に管理することができる。
図14は、本実施の形態に係る通信システム1を構成する時刻スレーブSによる処理手順を示すフローチャートである。図14では、時刻マスタMに順次接続される複数の時刻スレーブS1〜S3(S3は末端のスレーブに相当)のうちの1つの時刻スレーブSi(1≦i≦3)による処理手順が示されている。図14に示すフローチャートは、図8に示したフローチャートと比較して、ステップS01,S06をステップS01B,S06Bにそれぞれ置き換えるとともに、ステップS08を追加したものである。
図14を参照して、時刻スレーブSiは、マスタ側ノード(時刻スレーブS(i−1)または時刻マスタMに相当)に対して、時刻同期用パケット(Pdelay_Reqメッセージ)を送信する(ステップS01B)。時刻スレーブSiは、Pdelay_Reqメッセージに、自装置の時刻調整値ΔTおよび、自装置の時刻調整値ΔTとスレーブ側ノード(時刻スレーブS(i+1)に相当)より受信した時刻調整値ΔTとの合算値を格納する。時刻スレーブSiは、Pdelay_Reqメッセージを送信した時刻T1を記録する(図6参照)。
続いて、時刻スレーブSiは、マスタ側ノードから時刻同期用パケット(Pdelay_Respメッセージ)を受信する(ステップS02)。時刻スレーブSiは、さらに、マスタ側ノードから時刻同期用パケット(Pdelay_Resp followupメッセージ)を受信する(ステップS03)。時刻スレーブSiは、4つの時刻T1,T2,T3,T4に基づいて、マスタ側ノードの時刻に対する時刻スレーブSiの時刻の差分(時刻調整値)ΔTを算出する(ステップS04)。時刻スレーブSiは、時刻調整値ΔTを用いて、自装置のクロックの時刻を補正する(ステップS05)。
次に、時刻スレーブSiは、スレーブ側ノードから、時刻同期用パケット(Pdelay_Reqメッセージ)を受信する(ステップS06B)。Pdelay_Reqメッセージには、スレーブ側ノードにおける時刻調整値ΔTと、スレーブ側ノードで算出された時刻調整値ΔTの合算値とが格納されている。時刻スレーブSiは、受信した時刻調整値ΔTと自装置の時刻調整値ΔTとを加算する(ステップS08)。時刻スレーブSiは、合算値および自装置の時刻調整値ΔTを、次回の時刻同期処理においてマスタ側ノードに送信する時刻同期用パケット(Pdelay_Reqメッセージ)に格納する。したがって、更新された時刻調整値ΔTおよび合算値がマスタ側ノードに通知されることになる(ステップS01B)。
図14に示す処理手順に従って、スレーブ側ノードから送信される時刻調整値ΔTの合算値に、自装置の時刻調整値ΔTを加算した合算値をマスタ側ノードに通知することにより、最終的に、時刻マスタMの時刻と時刻スレーブS1〜S3の各々の時刻との差分(時刻調整値)ΔTM−1,ΔTM−2,ΔTM−3が時刻マスタMに通知される。
図15は、本実施の形態に係る通信システム1を構成する時刻マスタMによる処理手順を示すフローチャートである。図15に示すフローチャートは、図9のフローチャートと比較して、ステップS11をステップS11Bに置き換えるとともに、ステップS19,S20を追加したものである。
図15を参照して、時刻マスタMは、スレーブ側ノード(時刻スレーブS1)から時刻同期用パケット(Pdelay_Reqメッセージ)を受信する(ステップS11B)。Pdelay_Reqメッセージには、時刻マスタMの時刻と時刻スレーブS1〜S3の各々の時刻との差分である時刻調整値ΔTM−3,ΔTM−2,ΔTM−1が格納されている。
時刻マスタMは、時刻スレーブS1へ時刻同期用パケット(Pdelay_Respメッセージ)を送信する(ステップS12)。時刻マスタMは、さらに、時刻スレーブS1へ時刻同期用パケット(Pdelay_Resp followupメッセージ)を送信する(ステップS13)。
時刻マスタMは、時刻スレーブS1より受信した時刻調整値ΔTM−3,ΔTM−2,ΔTM−1の絶対値の最大値(最大時刻調整値ΔTMmax)を求める(ステップS19)。続いて、時刻マスタMは、最大時刻調整値ΔTMmaxと、許容時刻精度とを比較する(ステップS20)。最大時刻調整値ΔTMmaxが許容時刻精度より小さい場合(S20のYES判定時)、時刻マスタMは、時刻スレーブS1〜S3の時刻同期が完了したと判定し、時刻スレーブS1〜S3との間で制御系データの伝送を実行する(ステップS15)。
一方、最大時刻調整値ΔTMmaxが許容時刻精度以上である場合(S20のNO判定時)、時刻マスタMは、さらに、制御系データの伝送を実行中であるか否かを判定する(ステップS16)。制御系データの伝送を実行中であれば(S16のYES判定時)、時刻マスタMは、制御系データの伝送を停止する(ステップS17)。一方、制御系データの伝送を実行していなければ(S16のNO判定時)、時刻マスタMは、制御系データの伝送を開始しない。
(f4.通信手段の構成例4)
図16は、本実施の形態に係る通信手段の第4例を含む時刻同期処理を示すシーケンス図である。
図16を参照して、通信システム1において時刻同期処理が開始されると、時刻スレーブS3は、時刻スレーブS2との間で時刻同期用パケットを遣り取りし、その過程で得られた情報に基づいて時刻調整値ΔT2−3を算出する。時刻スレーブS3は、算出した時刻調整値ΔT2−3を用いて、時刻スレーブS3のスレーブクロックの時刻補正を行なう。
時刻スレーブS2は、時刻スレーブS1との間で時刻同期用パケットを遣り取りし、その過程で得られた情報に基づいて時刻調整値ΔT1−2を算出する。時刻スレーブS2は、算出した時刻調整値ΔT1−2を用いて、時刻スレーブS2のスレーブクロックの時刻補正を行なう。
時刻スレーブS1は、時刻マスタMとの間で時刻同期用パケットを遣り取りし、その過程で得られた情報に基づいて時刻調整値ΔTM−1を算出する。時刻スレーブS1は、算出した時刻調整値ΔTM−1を用いて、時刻スレーブS1のスレーブクロックの時刻補正を行なう。
時刻同期処理を実行した後、時刻マスタMは、時刻スレーブS1〜S3の各々に対して、時刻調整値ΔTを問い合わせる。各時刻スレーブSは、問い合わせに応答して、自装置の時刻調整値ΔTを時刻マスタMに通知する。
時刻マスタMは、時刻調整値ΔT2−3,ΔT1−2,ΔTM−1に基づいて、時刻スレーブS1〜S3の時刻同期が完了したか否かを判定する。具体的には、時刻マスタMは、時刻調整値ΔT1−2およびΔTM−1を足し合わせることにより、時刻マスタMの時刻に対する時刻スレーブS2の時刻の差分(時刻調整値)ΔTM−2を算出する。時刻マスタMは、さらに、時刻調整値ΔT2−3,ΔT1−2およびΔTM−1を足し合わせることにより、時刻マスタMの時刻に対する時刻スレーブS3の時刻の差分(時刻調整値)ΔTM−3を算出する。
次に、時刻マスタMは、時刻調整値ΔTM−1,ΔTM−2,ΔTM−3のうち絶対値が最も大きいものを選択する。時刻マスタMは、選択した時刻調整値の絶対値を最大時刻調整値ΔTMmaxに設定する。時刻マスタMは、最大時刻調整値ΔTMmaxと許容時刻精度とを比較し、最大時刻調整値ΔTMmaxが許容時刻精度より小さい場合、時刻スレーブS1〜S3の時刻同期が完了したと判定する。時刻マスタMは、時刻同期が完了したと判定されると、時刻スレーブS1〜S3の間で制御系データの伝送を開始する。一方、最大時刻調整値ΔTMmaxが許容時刻精度より大きい場合、時刻マスタMは、時刻スレーブS1〜S3の時刻同期が完了していないと判定し、制御系データの伝送を開始しないこととする。なお、データ伝送の実行中において、最大時刻調整値ΔTMmaxが許容時刻精度を超えた場合、時刻マスタMは、時刻マスタMと時刻スレーブS1〜S3との間の時刻同期が破綻したものと判断し、制御系データの伝送を停止する。これによると、図1に示す通信システム1におけるデータ伝送において、制御装置100は、複数のデバイス200A〜200Cの制御系データの送受信のタイミングを安定的に管理することができる。
本構成例では、各時刻スレーブSの通信手段は、時刻同期処理が実行された後に、当該処理で得られた自装置の時刻調整値ΔTを時刻マスタMに通知するように構成される。時刻同期処理の実行中に各時刻スレーブSが時刻調整値ΔTを時刻マスタMに通知する構成とした場合、ネットワーク上において、時刻同期用パケットと、時刻調整値ΔTを示すデータとが衝突してしまう虞が懸念される。本構成例によれば、このような衝突が発生することを防止することができる。
(f5.通信手段の構成例5)
図17は、本実施の形態に係る通信手段の第5例を含む時刻同期処理を示すシーケンス図である。
図17を参照して、通信システム1において時刻同期処理が開始されると、時刻スレーブS3は、時刻スレーブS2との間で時刻同期用パケットを遣り取りし、その過程で得られた情報に基づいて時刻調整値ΔT2−3を算出する。時刻スレーブS3は、算出した時刻調整値ΔT2−3を用いて、時刻スレーブS3のスレーブクロックの時刻補正を行なう。
時刻スレーブS2は、時刻スレーブS1との間で時刻同期用パケットを遣り取りし、その過程で得られた情報に基づいて時刻調整値ΔT1−2を算出する。時刻スレーブS2は、算出した時刻調整値ΔT1−2を用いて、時刻スレーブS2のスレーブクロックの時刻補正を行なう。
時刻スレーブS1は、時刻マスタMとの間で時刻同期用パケットを遣り取りし、その過程で得られた情報に基づいて時刻調整値ΔTM−1を算出する。時刻スレーブS1は、算出した時刻調整値ΔTM−1を用いて、時刻スレーブS1のスレーブクロックの時刻補正を行なう。
時刻同期処理を実行した後、時刻スレーブS1〜S3の各々は、自装置の時刻調整値ΔTを時刻マスタMに通知する。時刻マスタMは、時刻調整値ΔT2−3,ΔT1−2,ΔTM−1に基づいて、時刻スレーブS1〜S3の時刻同期が完了したか否かを判定する。具体的には、時刻マスタMは、時刻マスタMの時刻に対する時刻スレーブS2の時刻の差分(時刻調整値)ΔTM−2および、時刻マスタMの時刻に対する時刻スレーブS3の時刻の差分(時刻調整値)ΔTM−3を算出する。
次に、時刻マスタMは、時刻調整値ΔTM−1,ΔTM−2,ΔTM−3のうち絶対値が最も大きいものを選択する。時刻マスタMは、選択した時刻調整値の絶対値を最大時刻調整値ΔTMmaxに設定する。時刻マスタMは、最大時刻調整値ΔTMmaxと許容時刻精度とを比較し、最大時刻調整値ΔTMmaxが許容時刻精度より小さい場合、時刻スレーブS1〜S3の時刻同期が完了したと判定する。時刻マスタMは、時刻同期が完了したと判定されると、時刻スレーブS1〜S3の間で制御系データの伝送を開始する。一方、最大時刻調整値ΔTMmaxが許容時刻精度より大きい場合、時刻マスタMは、時刻スレーブS1〜S3の時刻同期が完了していないと判定し、制御系データの伝送を開始しないこととする。なお、データ伝送の実行中において、最大時刻調整値ΔTMmaxが許容時刻精度を超えた場合、時刻マスタMは、時刻マスタMと時刻スレーブS1〜S3との間の時刻同期が破綻したものと判断し、制御系データの伝送を停止する。これによると、図1に示す通信システム1におけるデータ伝送において、制御装置100は、複数のデバイス200A〜200Cの制御系データの送受信のタイミングを安定的に管理することができる。
本構成例によれば、上述した構成例4と同様に、通信手段は、時刻同期処理が実行された後に、当該処理で得られた自装置の時刻調整値ΔTを時刻マスタMに通知するように構成される。したがって、時刻同期処理の実行中、ネットワーク上において、時刻同期用パケットと、時刻調整値ΔTを示すデータとが衝突することを防止することができる。
なお、上述した通信手段の構成例1〜5においては、時刻スレーブS1〜S3の時刻同期処理が互いに等しいタイミングで実行される構成について説明したが、時刻同期処理を実行するタイミングが時刻スレーブ間で異なっていてもよい。この場合、時刻マスタMは、全ての時刻スレーブSの時刻同期情報が収集されたタイミングで、時刻同期の完了を判定することができる。
<G.通信システムの変形例>
図1に示す通信システム1においては、制御装置100(制御マスタ)を時刻マスタとして機能させる構成例について説明したが、制御装置100を他の通信装置に時刻同期させるようにしてもよい。このとき、他の通信装置が時刻マスタとして機能し、制御装置100(制御マスタ)が時刻スレーブとして機能することになる。例えば、図1に示す通信システム1において、デバイス200A〜200Cのうちの1つのデバイス200を時刻マスタとして機能させる構成例について説明する。
(g1.通信システム1の変形例1)
図18は、本実施の形態に係る通信システム1の変形例1が提供する時刻同期機能を示す模式図である。
図18に示す構成例では、時刻スレーブS2が制御装置100(制御マスタ)に対応し、時刻マスタMおよび時刻スレーブS1,S3がデバイス200A〜200Cにそれぞれ対応する。時刻スレーブS1〜S3の各々は、図7に示す時刻同期処理において算出された時刻調整値ΔT2−3,ΔT1−2,ΔTM−1を時刻マスタMへ通知する。図18では、各時刻スレーブSには、図6に示した通信手段の構成例1が適用される。したがって、時刻マスタMとして機能するデバイス200には、最大時刻調整値ΔTmax1が通知される。
時刻マスタMであるデバイス200は、図9に示す処理手順を実行することにより、最大時刻調整値ΔTmax1に基づいて、時刻スレーブS1〜S3の時刻同期が完了したか否かを判定する。デバイス200は、判定結果を時刻スレーブS2として機能する制御装置100(制御マスタ)に通知する。
制御装置100は、時刻スレーブS1〜S3の時刻同期が完了したと判定された場合、デバイス200A〜200Cとの間で制御系データの伝送を開始する。一方、時刻スレーブS1〜S3の時刻同期が完了していないと判定された場合、制御装置100は、制御系データの伝送を開始しないこととする。なお、データ伝送の実行中において、時刻マスタMと時刻スレーブS1〜S3との間の時刻同期が破綻したものと判断された場合には、制御装置100は、デバイス200A〜200Cとの間の制御系データの伝送を停止する。これによると、図1に示す通信システム1におけるデータ伝送において、制御装置100は、複数のデバイス200A〜200Cの制御系データの送受信のタイミングを安定的に管理することができる。
図19は、本実施の形態に係る通信システム1の変形例1における時刻同期処理を示すシーケンス図である。
図19を参照して、通信システム1において時刻同期処理が開始されると、時刻スレーブS3は、時刻スレーブS2に対して、Pdelay_Reqメッセージを送信する。時刻スレーブS3は、時刻スレーブS2に送信するPdelay_Reqメッセージに、前回の時刻同期処理で算出された時刻調整値ΔT2−3を格納する。
時刻スレーブS2は、Pdelay_Reqメッセージを受信すると、Pdelay_Reqメッセージに格納されている時刻調整値ΔT2−3を抽出する。時刻スレーブS2は、Pdelay_RespメッセージおよびPdelay_Resp_followupメッセージを時刻スレーブS3に送信する。時刻スレーブS3は、時刻調整値ΔT2−3を算出し、算出した時刻調整値ΔT2−3を用いて自装置のスレーブクロックの時刻を補正する。
時刻スレーブS2は、時刻スレーブS3より受信した時刻調整値ΔT2−3と、前回の時刻同期処理で算出された時刻調整値ΔT1−2とを式(10)に代入することにより、最大時刻調整値ΔTmax2を算出する。時刻スレーブS2は、時刻スレーブS1に送信するPdelay_Reqメッセージに、算出した最大時刻調整値ΔTmax2を格納する。
時刻スレーブS1は、Pdelay_Reqメッセージを受信すると、Pdelay_Reqメッセージに格納されている最大時刻調整値ΔTmax2を抽出する。時刻スレーブS1は、Pdelay_RespメッセージおよびPdelay_Resp_followupメッセージを時刻スレーブS2に送信する。時刻スレーブS2は、時刻調整値ΔT1−2を算出し、算出した時刻調整値ΔT1−2を用いて自装置のスレーブクロックの時刻を補正する。
時刻スレーブS1は、時刻スレーブS2より受信した最大時刻調整値ΔTmax2と、前回の時刻同期処理で算出された時刻調整値ΔTM−1とを式(11)に代入することにより、最大時刻調整値ΔTmax1を算出する。時刻スレーブS1は、時刻マスタMに送信するPdelay_Reqメッセージに、算出した最大時刻調整値ΔTmax1を格納する。
時刻マスタMは、Pdelay_Reqメッセージを受信すると、Pdelay_Reqメッセージに格納されている最大時刻調整値ΔTmax1を抽出する。時刻マスタMは、Pdelay_RespメッセージおよびPdelay_Resp_followupメッセージを時刻スレーブS1に送信する。時刻スレーブS1は、時刻調整値ΔTM−1を算出し、算出した時刻調整値ΔTM−1を用いて自装置のスレーブクロックの時刻を補正する。
時刻マスタMは、時刻スレーブS1より受信した最大時刻調整値ΔTmax1に基づいて、時刻スレーブS1〜S3の時刻同期が完了したか否かを判定する。時刻マスタMは、最大時刻調整値ΔTmax1が閾値(=許容時刻精度/最大パス数)より小さい場合、時刻スレーブS1〜S3の時刻同期が完了していると判定し、判定結果を制御装置100(制御マスタ)に通知する。制御装置100は、時刻スレーブS1〜S3との間で制御系データの伝送を開始する。
一方、時刻マスタMは、最大時刻調整値ΔTmax1が閾値より大きい場合、時刻スレーブS1〜S3の時刻同期が完了していないと判定し、判定結果を制御装置100(制御マスタ)に通知する。制御装置100は、制御系データの伝送を開始しない。データ伝送の実行中である場合、制御装置100は、制御系データの伝送を停止する。
(g2.通信システム1の変形例2)
図20は、本実施の形態に係る通信システム1の変形例2が提供する時刻同期機能を示す模式図である。
図20に示す構成例では、図18に示す構成例と同様に、時刻スレーブS2が制御装置100に対応し、時刻マスタMおよび時刻スレーブS1,S3がデバイス200A〜200Cにそれぞれ対応する。時刻スレーブS1〜S3の各々は、図7に示す時刻同期処理において算出された時刻調整値ΔT2−3,ΔT1−2,ΔTM−1を時刻マスタMへ通知する。図20では、各時刻スレーブSには、図6に示した通信手段の構成例1が適用される。時刻マスタMとして機能するデバイス200には、最大時刻調整値ΔTmax1が通知される。
本変形例では、時刻マスタMは、通知された最大時刻調整値ΔTmax1を制御装置100(制御マスタ)に転送する。制御装置100は、図9に示す処理手順を実行することにより、最大時刻調整値ΔTmax1に基づいて、時刻スレーブS1〜S3の時刻同期が完了したか否かを判定する。制御装置100は、時刻スレーブS1〜S3の時刻同期が完了したと判定された場合、デバイス200A〜200Cとの間で制御系データの伝送を開始する。一方、時刻スレーブS1〜S3の時刻同期が完了していないと判定された場合、制御装置100は、制御系データの伝送を開始しないこととする。なお、データ伝送の実行中において、時刻マスタMと時刻スレーブS1〜S3との間の時刻同期が破綻したものと判断された場合には、制御装置100は、デバイス200A〜200Cとの間の制御系データの伝送を停止する。これによると、図1に示す通信システム1におけるデータ伝送において、制御装置100は、複数のデバイス200A〜200Cの制御系データの送受信のタイミングを管理することができる。
図21は、本実施の形態に係る通信システム1の変形例2における時刻同期処理を示すシーケンス図である。
図21を参照して、通信システム1において時刻同期処理が開始されると、時刻スレーブS3は、時刻スレーブS2に対して、Pdelay_Reqメッセージを送信する。時刻スレーブS3は、時刻スレーブS2に送信するPdelay_Reqメッセージに、前回の時刻同期処理で算出された時刻調整値ΔT2−3を格納する。
時刻スレーブS2は、Pdelay_Reqメッセージを受信すると、Pdelay_Reqメッセージに格納されている時刻調整値ΔT2−3を抽出する。時刻スレーブS2は、Pdelay_RespメッセージおよびPdelay_Resp_followupメッセージを時刻スレーブS3に送信する。時刻スレーブS3は、時刻調整値ΔT2−3を算出し、算出した時刻調整値ΔT2−3を用いて自装置のスレーブクロックの時刻を補正する。
時刻スレーブS2は、時刻スレーブS3より受信した時刻調整値ΔT2−3と、前回の時刻同期処理で算出された時刻調整値ΔT1−2とを式(10)に代入することにより、最大時刻調整値ΔTmax2を算出する。時刻スレーブS2は、時刻スレーブS1に送信するPdelay_Reqメッセージに、算出した最大時刻調整値ΔTmax2を格納する。
時刻スレーブS1は、Pdelay_Reqメッセージを受信すると、Pdelay_Reqメッセージに格納されている最大時刻調整値ΔTmax2を抽出する。時刻スレーブS1は、Pdelay_RespメッセージおよびPdelay_Resp_followupメッセージを時刻スレーブS2に送信する。時刻スレーブS2は、時刻調整値ΔT1−2を算出し、算出した時刻調整値ΔT1−2を用いて自装置のスレーブクロックの時刻を補正する。
時刻スレーブS1は、時刻スレーブS2より受信した最大時刻調整値ΔTmax2と、前回の時刻同期処理で算出された時刻調整値ΔTM−1とを式(11)に代入することにより、最大時刻調整値ΔTmax1を算出する。時刻スレーブS1は、時刻マスタMに送信するPdelay_Reqメッセージに、算出した最大時刻調整値ΔTmax1を格納する。
時刻マスタMは、Pdelay_Reqメッセージを受信すると、Pdelay_Reqメッセージに格納されている最大時刻調整値ΔTmax1を抽出する。時刻マスタMは、Pdelay_RespメッセージおよびPdelay_Resp_followupメッセージを時刻スレーブS1に送信する。時刻スレーブS1は、時刻調整値ΔTM−1を算出し、算出した時刻調整値ΔTM−1を用いて自装置のスレーブクロックの時刻を補正する。
時刻マスタMは、時刻スレーブS1より受信した最大時刻調整値ΔTmax1を制御装置100(制御マスタ)へ転送する。制御装置100は、最大時刻調整値ΔTmax1に基づいて、時刻スレーブS1〜S3の時刻同期が完了したか否かを判定する。制御装置100は、最大時刻調整値ΔTmax1が閾値より小さい場合、時刻スレーブS1〜S3の時刻同期が完了していると判定し、時刻スレーブS1〜S3との間で制御系データの伝送を開始する。
一方、制御装置100は、最大時刻調整値ΔTmax1が閾値より大きい場合、時刻スレーブS1〜S3の時刻同期が完了していないと判定し、制御系データの伝送を開始しない。データ伝送の実行中である場合、制御装置100は、制御系データの伝送を停止する。
(g3.通信システムの変形例3)
図1に示す通信システム1においては、ネットワーク2に、時刻マスタM(制御装置100)および時刻スレーブS1〜S3(デバイス200A〜200C)がデイジーチェーンで順次接続されている構成例について説明したが、ネットワーク2の時刻マスタMと時刻スレーブS1〜S3との接続形態は、これに限定されない。例えば、ネットワーク2の時刻マスタMと時刻スレーブS1〜S3との接続形態がスター型とした構成例について説明する。
図22は、本実施の形態に係る通信システム1の変形例3の構成を模式的に示す図である。図22に示す構成例において、ネットワーク2には、時刻マスタMおよび複数の時刻スレーブS1〜S5が接続される。時刻マスタMおよび時刻スレーブS3〜S5の各々は、ポートP1,P2を有する。時刻スレーブS1,S2の各々は、ポートP1〜P4を有する。時刻スレーブS1のポートP1は時刻マスタMのポートP2に接続され、時刻スレーブS1のポートP2は時刻スレーブS3のポートP2に接続され、時刻スレーブS1のポートP3は時刻スレーブS2のポートP1に接続される。時刻スレーブS2のポートP2は時刻スレーブS4のポートP2に接続され、時刻スレーブS2のポートP3は時刻スレーブS5のポートP1に接続される。
図22に示す構成例においても、P2Pトランスペアレントクロックを用いた時刻同期処理を実行することにより、時刻マスタMの有するマスタクロックに各時刻スレーブS1〜S5の有するスレーブクロックを時刻同期させる。
具体的には、時刻スレーブS1は、ポートP1(スレーブポート)に接続される時刻マスタMとの間で図5に示す時刻同期処理を実行することにより、時刻マスタMが持つクロック(マスタクロック)の時刻と自装置の持つクロック(スレーブクロック)の時刻との差分ΔTM−1を算出する。時刻スレーブS1は、差分ΔTM−1を時刻調整値として、自装置のタイマを時刻補正する。
時刻スレーブS2は、ポートP1(スレーブポート)に接続される時刻スレーブS1との間で図5に示す時刻同期処理を実行することにより、時刻スレーブS1が持つクロックの時刻と自装置のクロックの時刻との差分ΔT1−2を算出する。時刻スレーブS2は、差分ΔT2−1を時刻調整値として、自装置のクロックを時刻補正する。
時刻スレーブS3は、ポートP2(スレーブポート)に接続される時刻スレーブS1との間で図5に示す時刻同期処理を実行することにより、時刻スレーブS1が持つクロックの時刻と自装置が持つクロックの時刻との差分ΔT1−3を算出する。時刻スレーブS3は、差分ΔT1−3を時刻調整値として、自装置のクロックを時刻補正する。
時刻スレーブS4は、ポートP2(スレーブポート)に接続される時刻スレーブS2との間で図5に示す時刻同期処理を実行することにより、時刻スレーブS2が持つクロックの時刻と自装置が持つクロックの時刻との差分ΔT2−4を算出する。時刻スレーブS4は、差分ΔT2−4を時刻調整値として、自装置のクロックを時刻補正する。
時刻スレーブS5は、ポートP1(スレーブポート)に接続される時刻スレーブS2との間で図5に示す時刻同期処理を実行することにより、時刻スレーブS2が持つクロックの時刻と自装置が持つクロックの時刻との差分ΔT2−5を算出する。時刻スレーブS5は、差分ΔT2−5を時刻調整値として、自装置のクロックを時刻補正する。
このように、時刻スレーブS1〜S5の各々が、マスタ側に隣接して接続される通信装置のクロックの時刻と自装置のクロックの時刻との差分ΔTを時刻調整値として、自装置のクロックを時刻補正することにより、最終的に、時刻マスタMと全ての時刻スレーブS1〜S5との間で時刻同期が実現される。通信システム1全体の時刻同期が完了することにより、複数の通信装置の間で制御系データの伝送を開始することが可能となる。
時刻スレーブS1〜S5の各々は、自装置のスレーブクロックの時刻同期情報を時刻マスタMへ通知するための「通信手段」を有する。これによると、時刻マスタMは、時刻スレーブS1〜S5の各々から通知される時刻同期情報に基づいて、時刻スレーブS1〜S3との間の時刻同期が完了したか否かを判定することができる。
図23は、図22に示す通信システム1における各スレーブの通信手段の構成例を模式的に示す図である。各スレーブの通信手段は、時刻同期情報として、自装置のスレーブクロックの時刻補正に用いた時刻調整値ΔTを通知するように構成される。
図23を参照して、時刻スレーブS4は、時刻スレーブS2との間で時刻同期処理を実行することにより、時刻スレーブS2の時刻に対する時刻スレーブS4の時刻の差分ΔT2−4を算出する。時刻スレーブS4は、算出した時刻調整値ΔT2−4を時刻スレーブS2へ通知する。
時刻スレーブS5は、時刻スレーブS2との間で時刻同期処理を実行することにより、時刻スレーブS2の時刻に対する時刻スレーブS5の時刻の差分ΔT2−5を算出する。時刻スレーブS5は、算出した時刻調整値ΔT2−5を時刻スレーブS2へ通知する。
時刻スレーブS2は、時刻スレーブS1との間で時刻同期処理を実行することにより、時刻スレーブS1の時刻に対する時刻スレーブS2の時刻の差分ΔT1−2を算出する。時刻スレーブS2は、時刻スレーブS4より受信した時刻調整値ΔT2−4と、時刻スレーブS5より受信した時刻調整値ΔT2−5と、算出した時刻調整値ΔT1−2とを比較する。具体的には、時刻スレーブS2は、時刻調整値ΔT2−4の絶対値|ΔT2−4|と、時刻調整値ΔT2−5の絶対値|ΔT2−5|と、時刻調整値ΔT1−2の絶対値と|ΔT1−2|とを比較し、最も大きい絶対値(最大時刻調整値ΔTmax2)を選択する。最大時刻調整値ΔTmax2は次式(16)で与えられる。時刻スレーブS2は、最大時刻調整値ΔTmax2を時刻スレーブS1へ通知する。
ΔTmax2=Max{|ΔT2−4|,|ΔT2−5|,|ΔT1−2|} …(16)
時刻スレーブS3は、時刻スレーブS1との間で時刻同期処理を実行することにより、時刻スレーブS1の時刻に対する時刻スレーブS3の時刻の差分ΔT1−3を算出する。時刻スレーブS3は、算出した時刻調整値ΔT1−3を時刻スレーブS1へ通知する。
時刻スレーブS1は、時刻マスタMとの間で時刻同期処理を実行することにより、時刻マスタMの時刻に対する時刻スレーブS1の時刻の差分ΔTM−1を算出する。時刻スレーブS1は、時刻スレーブS2より受信した最大時刻調整値ΔTmax2と、時刻調整値ΔT1−3の絶対値|ΔT1−3|と、時刻調整値ΔTM−1の絶対値|ΔTM−1|とを比較し、最も大きい絶対値(最大時刻調整値ΔTmax1)を選択する。最大時刻調整値ΔTmax1は次式(17)で与えられる。時刻スレーブS1は、最大時刻調整値ΔTmax1を時刻マスタMへ通知する。
ΔTmax1=Max{|ΔTM−1|,|ΔT1−3|,ΔTmax2} …(17)
ここで、式(16),(17)よると、最大時刻調整値ΔTmax1は次式(18)のように表わすことができる。
ΔTmax1=Max{|ΔT2−4|,|ΔT2−5|,|ΔT1−2|,|ΔT1−3|,|ΔTM−1|} …(18)
式(18)から分かるように、時刻マスタMには、時刻スレーブS1〜S5の時刻調整値ΔT2−4,ΔT2−5,ΔT1−2,ΔT1−3,ΔTM−1のうち絶対値が最も大きいものが、最大時刻調整値ΔTmax1として時刻マスタMに通知されることになる。
時刻マスタMは、最大時刻調整値ΔTmax1に基づいて、時刻スレーブS1〜S5の時刻同期が完了したか否かを判定する。時刻マスタMは、時刻同期が完了したか否かを判定するための閾値を、通信システム1において予め定められた許容時刻精度を最大パス数で除算した値に設定する。図22の例では最大パス数は3となる。したがって、閾値は許容時刻精度/3に設定される。
時刻マスタMは、最大時刻調整値ΔTmax1と上記閾値とを比較し、最大時刻調整値ΔTmax1が閾値より小さい場合、時刻スレーブS1〜S5の時刻同期が完了したと判定する。時刻マスタMは、時刻同期が完了したと判定されると、時刻スレーブS1〜S5の間で制御系データの伝送を開始する。一方、最大時刻調整値ΔTmax1が閾値より大きい場合、時刻マスタMは、時刻スレーブS1〜S5の時刻同期が完了していないと判定し、制御系データの伝送を開始しないこととする。
時刻マスタMは、また、データ伝送の実行中に、時刻マスタMに通知される最大時刻調整値ΔTmax1が閾値を超えた場合には、時刻マスタMと時刻スレーブS1〜S5との間の時刻同期が破綻したものと判断し、制御系データの伝送を停止する。これによると、図22に示す通信システム1におけるデータ伝送において、制御装置100は、複数のデバイス200の制御系データの送受信のタイミングを安定的に管理することができる。
図24は、図22に示される接続形態が適用された通信システム1の第1の構成例を模式的に示す図である。
図24に示す第1の構成例においては、通信システム1は、複数の制御装置100A,100Bと、複数のデバイス200A〜200Dとを備える。制御装置100Aに接続されるネットワーク2(フィールドネットワーク)には、デバイス200A,200Bがスター接続されており、制御装置100Bに接続されるネットワーク2には、デバイス200C,200Dがスター接続されている。制御装置100A,100Bの各々は、ネットワーク2内のデータ伝送を管理する制御マスタとして機能する。デバイス200A〜200Dの各々は、対応する制御装置100からの指令に従ってデータ伝送を行なう制御スレーブとして機能する。
制御装置100Aと制御装置100Bとは、ネットワーク3を介して接続される。ネットワーク3は、コントロールレベルのネットワークであり、制御装置100Aおよび100B間でデータを伝送できるリンクを構築する。ネットワーク2は、制御系に係る情報の伝送を主たる機能として提供する。
図24に示す第1の構成例においては、各ネットワーク2に接続される制御装置100と複数のデバイス200との間を時刻同期させるとともに、複数の制御装置100A〜100Dの間で時刻同期をとることにより、互いに異なる制御装置100に接続される複数のデバイス200A〜200Dを互いに時刻同期させる。これにより、互いに異なる制御装置100に接続される複数のデバイス200を連係して動作させることが可能となる。
図24に示す例においては、制御装置100A,100Bがそれぞれ有するタイマ101A,101Bのいずれかを、通信システム1全体のマスタクロック(時刻マスタM)として機能させる。一例として、図24では、制御装置100Aのタイマ101Aがマスタクロックに設定される。そして、残りの制御装置100Bおよび複数のデバイス200A〜200Dのタイマ(時刻スレーブS1〜S5に相当)を、この時刻マスタMのマスタクロックに時刻同期させる。
図24に示す構成例においても、P2Pトランスペアレントクロックを用いた時刻同期処理を実行することにより、時刻マスタMの有するマスタクロックに各時刻スレーブSの有するスレーブクロックを時刻同期させる。これにより、制御装置100A,100Bおよびデバイス200A〜200Dを互いに時刻同期させることができる。
各時刻スレーブSは、マスタ側に隣接して接続される他の通信装置との間で時刻同期処理を実行するとともに、自装置の時刻精度情報(自装置の時刻調整値)を、時刻マスタMである制御装置100Aに通知する。制御装置100Aは、各時刻スレーブSから通知される時刻同期情報に基づいて、全ての時刻スレーブS(制御装置100Bおよびデバイス200A〜200D)の時刻同期が完了したか否かを判定する。制御装置100Aは、時刻同期が完了したと判定されると、複数の時刻スレーブSの間で制御系データの伝送を開始する。
これによると、ネットワーク3に接続される制御装置100A,100Bの各々は、他の制御装置と互いに時刻同期されたタイマの時刻を基準として、ネットワーク2を介して複数のデバイス200との間のデータ伝送を管理することができる。したがって、制御装置100A,100Bの間で、入力データを収集するタイミングまたは出力データを送信するタイミングを互いに同期させることができる。また、制御装置100A,100Bの間でデータを遣り取りするタイミングを互いに同期させることができる。この結果、複数のデバイス200A〜200Dの間で制御タイミングを同期させることができるため、複数のデバイス200A〜200Dの協調制御を実現することができる。
図25は、図22に示される接続形態が適用された通信システム1の第2の構成例を模式的に示す図である。
図25に示す第2の構成例においては、通信システム1は、複数の制御装置100A〜100Dと、複数のデバイス200A〜200Jと、複数のスイッチ600A,600Bとを備える。
制御装置100Aに接続されるネットワーク2(フィールドネットワーク)には、デバイス200A,200Bがデイジーチェーンで順次接続されており、制御装置100Bに接続されるネットワーク2には、デバイス200C〜200Eがデイジーチェーンで順次接続されている。制御装置100Cに接続されるネットワーク2には、デバイス200F〜200Hがデイジーチェーンで順次接続されており、制御装置100Dに接続されるネットワーク2にはデバイス200I,200Jがデイジーチェーンで順次接続されている。
制御装置100A〜100Dの各々は、ネットワーク2内のデータ伝送を管理する制御マスタとして機能する。デバイス200A〜200Jの各々は、対応する制御装置100からの指令に従ってデータ伝送を行なう制御スレーブとして機能する。
制御装置100A,100Bは、ネットワーク3を介してスイッチ600Aに接続される。制御装置100C,100Dは、ネットワーク3を介してスイッチ600Bに接続される。スイッチ600Aとスイッチ600Bとは互いに接続されている。スイッチ600Aはタイマ601Aを有しており、スイッチ600Bはタイマ601Bを有している。
ネットワーク3は、コントロールレベルのネットワークであり、制御装置100A〜100D間でデータを伝送できるリンクを構築する。ネットワーク2は、制御系に係る情報の伝送を主たる機能として提供する。
図25に示す第2の構成例においては、各ネットワーク2に接続される制御装置100と複数のデバイス200との間を時刻同期させるとともに、複数の制御装置100A〜100Dおよび複数のスイッチ600A,600Bの間で時刻同期をとることにより、互いに異なる制御装置100に接続される複数のデバイス200A〜200Jを互いに時刻同期させる。これにより、互いに異なる制御装置100に接続される複数のデバイス200を連係して動作させることが可能となる。
図25に示す例においては、制御装置100A〜100Dおよびスイッチ600A,600Bがそれぞれ有するタイマ101A〜101D,601Aおよび601Bのいずれかを、通信システム1全体のマスタクロック(時刻マスタM)として機能させる。一例として、図25では、制御装置100Aのタイマ101Aがマスタクロックに設定される。そして、残りの制御装置100B〜100Dおよびスイッチ600A,600Bのタイマ(時刻スレーブS1〜S5に相当)を、この時刻マスタのマスタクロックに時刻同期させる。
図25に示す構成例においても、P2Pトランスペアレントクロックを用いた時刻同期処理を実行することにより、時刻マスタMの有するマスタクロックに各時刻スレーブS(制御装置100B〜100Dおよびスイッチ600A,600B)の有するスレーブクロックを時刻同期させる。これにより、制御装置100A〜100Dおよびスイッチ600A,600Bを互いに時刻同期させることができる。
上記時刻同期処理が完了すると、制御装置100A〜100Dの各々は、ネットワーク2を介して接続されるデバイス200との間で時刻同期処理を実行する。この時刻同期処理は、ネットワーク2に応じて、上述した時刻同期処理とは異なる時刻同期プロトコルが用いられる。例えば、マシンコントロール用ネットワークの一例であるEtherCAT(登録商標)が採用され得る。
第2の構成例においても、各時刻スレーブSは、マスタ側に隣接して接続される他の通信装置との間で時刻同期処理を実行するとともに、自装置の時刻精度情報(自装置の時刻調整値)を、時刻マスタMである制御装置100Aに通知する。制御装置100Aは、各時刻スレーブS(制御装置100B〜100Dおよびスイッチ600A,600B)から通知される時刻同期情報に基づいて、全ての時刻スレーブSの時刻同期が完了したか否かを判定する。制御装置100Aは、時刻同期が完了したと判定されると、複数の時刻スレーブSの間で制御系データの伝送を開始する。
これによると、ネットワーク3に接続される制御装置100A〜100Dの各々は、他の制御装置と互いに時刻同期されたタイマの時刻を基準として、ネットワーク2を介して複数のデバイス200との間のデータ伝送を管理することができる。したがって、制御装置100A〜100Dの間で、入力データを収集するタイミングまたは出力データを送信するタイミングを互いに同期させることができる。また、制御装置100A〜100Dの間でデータを遣り取りするタイミングを互いに同期させることができる。この結果、複数のデバイス200A〜200Jの間で制御タイミングを同期させることができるため、複数のデバイス200A〜200Jの協調制御を実現することができる。
<H.付記>
上述したような本実施の形態は、以下のような技術思想を含む。
[構成1]
ネットワーク(2)に複数の通信装置(M,S1〜S3)が接続された通信システム(1)であって、
前記複数の通信装置は、
前記通信システムの時刻を管理するマスタクロックを有する時刻マスタ(M)と、
各々が、前記マスタクロックに時刻同期したスレーブクロックを有する複数の時刻スレーブ(S1〜S3)とを含み、
前記複数の時刻スレーブの各々は、
前記ネットワーク上においてマスタ側に隣接して接続される他の通信装置との間で時刻同期するための同期手段と、
前記同期手段で求められた自装置の時刻同期精度を示す時刻同期情報を前記時刻マスタへ通知するための通信手段とを含む、通信システム。
[構成2]
前記同期手段は、前記他の通信装置の時刻と自装置の時刻との差分を時刻調整値(ΔT)として、自装置の時刻を補正し、
前記通信手段は、前記時刻同期情報として、前記時刻調整値を前記時刻マスタへ通知する、構成1に記載の通信システム。
[構成3]
前記通信手段は、前記ネットワーク上においてスレーブ側に隣接して接続される別の他の通信装置から前記時刻調整値を受信し、受信した前記時刻調整値および自装置の前記時刻調整値のうち、その絶対値が大きい方の前記時刻調整値を前記他の通信装置へ転送する、構成2に記載の通信システム。
[構成4]
前記通信手段は、前記ネットワーク上においてスレーブ側に隣接して接続される別の他の通信装置から前記時刻調整値を受信し、受信した前記時刻調整値および自装置の前記時刻調整値を前記他の通信装置へ転送する、構成2に記載の通信システム。
[構成5]
前記通信手段は、前記ネットワーク上においてスレーブ側に隣接して接続される別の他の通信装置から前記時刻調整値を受信し、受信した前記時刻調整値と自装置の前記時刻調整値との合計値を前記他の通信装置へ転送する、構成2に記載の通信システム。
[構成6]
前記同期手段は、前記他の通信装置との間で時刻同期用パケットを遣り取りすることにより、自装置の時刻を補正する時刻同期処理を定期的に実行し、
前記通信手段は、前記他の通信装置へ送信する時刻同期用パケット内に、前記他の通信装置へ転送する前記時刻調整値を格納する、構成3から5のいずれか1に記載の通信システム。
[構成7]
前記時刻マスタは、前記ネットワーク内のデータ伝送を管理する制御装置であり、
前記複数の時刻スレーブの各々は、前記時刻マスタからの指令に従ってデータ伝送を実行するデバイスであり、
前記制御装置は、複数のデバイスから通知される前記時刻同期情報に基づいて、前記複数のデバイスとの間で時刻同期が完了したか否かを判定し、時刻同期が完了したと判定されたときに、前記ネットワーク内のデータ伝送を開始する、構成1から6のいずれか1に記載の通信システム。
[構成8]
前記複数の時刻スレーブのうちの1つの時刻スレーブは、前記ネットワーク内のデータ伝送を管理する制御装置であり、
前記1つの時刻スレーブを除いた残りの時刻スレーブおよび前記時刻マスタの各々は、前記制御装置からの指令に従ってデータ伝送を実行するデバイスであり、
前記時刻マスタは、前記複数の時刻スレーブから通知される前記時刻同期情報に基づいて、前記複数の時刻スレーブとの間で時刻同期が完了したか否かを判定し、判定結果を前記制御装置に通知し、
前記制御装置は、前記判定結果から時刻同期が完了したと判定されたときに、前記ネットワーク内のデータ伝送を開始する、構成1から6のいずれか1に記載の通信システム。
[構成9]
前記複数の時刻スレーブのうちの1つの時刻スレーブは、前記ネットワーク内のデータ伝送を管理する制御装置であり、
前記1つの時刻スレーブを除いた残りの時刻スレーブおよび前記時刻マスタの各々は、前記制御装置からの指令に従ってデータ伝送を実行するデバイスであり、
前記時刻マスタは、前記複数の時刻スレーブから通知される前記時刻同期情報を前記制御装置へ転送し、
前記制御装置は、前記同期情報に基づいて、複数のデバイスとの間で時刻同期が完了したか否かを判定し、時刻同期が完了したと判定されたときに、前記ネットワーク内のデータ伝送を開始する、構成1から6のいずれか1に記載の通信システム。
[構成10]
前記同期手段は、前記他の通信装置との間で時刻同期用パケットを遣り取りすることにより、自装置の時刻を補正する時刻同期処理を定期的に実行し、
前記通信手段は、前記時刻同期処理の実行後において、前記時刻同期情報を前記マスタ装置へ通知する、構成1または2に記載の通信システム。
[構成11]
通信システムにネットワーク接続される通信装置であって、前記通信装置は、前記通信システムの時刻を管理するマスタクロックに時刻同期したスレーブクロックを有し、
前記ネットワーク上においてマスタ側に隣接して接続される他の通信装置との間で時刻同期するための同期手段と、
前記同期手段で求められた自装置の時刻同期精度を示す時刻同期情報を、前記マスタクロックを有する時刻マスタへ通知するための通信手段とを含む、通信装置。
[構成12]
ネットワークに複数の通信装置が接続された通信システムにおける通信方法であって、
前記複数の通信装置は、
前記通信システムの時刻を管理するマスタクロックを有する時刻マスタと、
各々が、前記マスタクロックに時刻同期したスレーブクロックを有する複数の時刻スレーブとを含み、
前記複数の時刻スレーブの各々が、前記ネットワーク上においてマスタ側に隣接して接続される他の通信装置との間で時刻同期するステップと、
前記複数のスレーブ装置の各々が、自装置の時刻同期精度を示す時刻同期情報を前記時刻マスタへ通知するステップとを備える、通信方法。
<I.利点>
本実施の形態に従う通信システム1では、複数の時刻スレーブの各々は、自装置のスレーブクロックの時刻同期精度を示す時刻同期情報を時刻マスタへ通知するための「通信手段」を有する。これによると、時刻マスタは、各時刻スレーブから通知される時刻同期情報に基づいて、自装置と複数の時刻スレーブとの間の時刻同期が完了しているか否かを判断することができる。この結果、通信システム1全体において時刻同期が完了したタイミングで、データ伝送を開始することができる。したがって、電源投入後、設定時間が経過したタイミングでデータ伝送を開始する構成に比べて、より迅速にデータ伝送を開始することが可能となる。
また、データ伝送の実行中、時刻マスタは、各時刻スレーブから通知される時刻同期情報に基づいて、複数の時刻スレーブの各々の時刻同期精度を監視することができるため、いずれかの時刻スレーブとの間に時刻ずれが発生したときには直ちにデータの伝送を停止することができる。したがって、時刻ずれに依存して、時刻スレーブが入力データを取得する、および、出力データを出力するタイミングがばらつく可能性を回避することができる。
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した説明ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
1 通信システム、2 ネットワーク、100,100A〜100D 制御装置、101,101A〜101D,201A〜201J,601A,601B タイマ、200A〜200J デバイス、M 時刻マスタ、S1〜S5 時刻スレーブ、102,202 プロセッサ、104,204 メモリ、106,206 ストレージ、107 システムプログラム、108 ユーザアプリケーションプログラム、110 ネットワークコントローラ、111,211 受信回路、112 受信バッファ、113,212 送受信コントローラ、115,213 送信回路、210 通信回路、500 サポート装置、600A,600B スイッチ。

Claims (12)

  1. ネットワークに複数の通信装置が接続された通信システムであって、
    前記複数の通信装置は、
    前記通信システムの時刻を管理するマスタクロックを有する時刻マスタと、
    各々が、前記マスタクロックに時刻同期したスレーブクロックを有する複数の時刻スレーブとを含み、
    前記複数の時刻スレーブの各々は、
    前記ネットワーク上においてマスタ側に隣接して接続される他の通信装置との間で時刻同期するための同期手段と、
    前記同期手段で求められた自装置の時刻同期精度を示す時刻同期情報を前記時刻マスタへ通知するための通信手段とを含む、通信システム。
  2. 前記同期手段は、前記他の通信装置の時刻と自装置の時刻との差分を時刻調整値として、自装置の時刻を補正し、
    前記通信手段は、前記時刻同期情報として、前記時刻調整値を前記時刻マスタへ通知する、請求項1に記載の通信システム。
  3. 前記通信手段は、前記ネットワーク上においてスレーブ側に隣接して接続される別の他の通信装置から前記時刻調整値を受信し、受信した前記時刻調整値および自装置の前記時刻調整値のうち、その絶対値が大きい方の前記時刻調整値を前記他の通信装置へ転送する、請求項2に記載の通信システム。
  4. 前記通信手段は、前記ネットワーク上においてスレーブ側に隣接して接続される別の他の通信装置から前記時刻調整値を受信し、受信した前記時刻調整値および自装置の前記時刻調整値を前記他の通信装置へ転送する、請求項2に記載の通信システム。
  5. 前記通信手段は、前記ネットワーク上においてスレーブ側に隣接して接続される別の他の通信装置から前記時刻調整値を受信し、受信した前記時刻調整値と自装置の前記時刻調整値との合計値を前記他の通信装置へ転送する、請求項2に記載の通信システム。
  6. 前記同期手段は、前記他の通信装置との間で時刻同期用パケットを遣り取りすることにより、自装置の時刻を補正する時刻同期処理を定期的に実行し、
    前記通信手段は、前記他の通信装置へ送信する時刻同期用パケット内に、前記他の通信装置へ転送する前記時刻調整値を格納する、請求項3から5のいずれか1項に記載の通信システム。
  7. 前記時刻マスタは、前記ネットワーク内のデータ伝送を管理する制御装置であり、
    前記複数の時刻スレーブの各々は、前記制御装置からの指令に従ってデータ伝送を実行するデバイスであり、
    前記制御装置は、複数の前記デバイスから通知される前記時刻同期情報に基づいて、前記複数のデバイスとの間で時刻同期が完了したか否かを判定し、時刻同期が完了したと判定されたときに、前記ネットワーク内のデータ伝送を開始する、請求項1から6のいずれか1項に記載の通信システム。
  8. 前記複数の時刻スレーブのうちの1つの時刻スレーブは、前記ネットワーク内のデータ伝送を管理する制御装置であり、
    前記1つの時刻スレーブを除いた残りの時刻スレーブ、および前記時刻マスタの各々は、前記制御装置からの指令に従ってデータ伝送を実行するデバイスであり、
    前記時刻マスタは、前記複数の時刻スレーブから通知される前記時刻同期情報に基づいて、前記複数の時刻スレーブとの間で時刻同期が完了したか否かを判定し、判定結果を前記制御装置に通知し、
    前記制御装置は、前記判定結果から時刻同期が完了したと判定されたときに、前記ネットワーク内のデータ伝送を開始する、請求項1から6のいずれか1項に記載の通信システム。
  9. 前記複数の時刻スレーブのうちの1つの時刻スレーブは、前記ネットワーク内のデータ伝送を管理する制御装置であり、
    前記1つの時刻スレーブを除いた残りの時刻スレーブ、および前記時刻マスタの各々は、前記制御装置からの指令に従ってデータ伝送を実行するデバイスであり、
    前記時刻マスタは、前記複数の時刻スレーブから通知される前記時刻同期情報を前記制御装置へ転送し、
    前記制御装置は、前記時刻同期情報に基づいて、複数の前記デバイスとの間で時刻同期が完了したか否かを判定し、時刻同期が完了したと判定されたときに、前記ネットワーク内のデータ伝送を開始する、請求項1から6のいずれか1項に記載の通信システム。
  10. 前記同期手段は、前記他の通信装置との間で時刻同期用パケットを遣り取りすることにより、自装置の時刻を補正する時刻同期処理を定期的に実行し、
    前記通信手段は、前記時刻同期処理の実行後において、前記時刻同期情報を前記時刻マスタへ通知する、請求項1または2項に記載の通信システム。
  11. 通信システムにネットワーク接続される通信装置であって、前記通信装置は、前記通信システムの時刻を管理するマスタクロックに時刻同期したスレーブクロックを有し、
    前記ネットワーク上においてマスタ側に隣接して接続される他の通信装置との間で時刻同期するための同期手段と、
    前記同期手段で求められた自装置の時刻同期精度を示す時刻同期情報を、前記マスタクロックを有する時刻マスタへ通知するための通信手段とを含む、通信装置。
  12. ネットワークに複数の通信装置が接続された通信システムにおける通信方法であって、
    前記複数の通信装置は、
    前記通信システムの時刻を管理するマスタクロックを有する時刻マスタと、
    各々が、前記マスタクロックに時刻同期したスレーブクロックを有する複数の時刻スレーブとを含み、
    前記複数の時刻スレーブの各々が、前記ネットワーク上においてマスタ側に隣接して接続される他の通信装置との間で時刻同期するステップと、
    前記複数の時刻スレーブの各々が、自装置の時刻同期精度を示す時刻同期情報を前記時刻マスタへ通知するステップとを備える、通信方法。
JP2018029471A 2018-02-22 2018-02-22 通信システム、通信装置および通信方法 Active JP6984482B2 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP2018029471A JP6984482B2 (ja) 2018-02-22 2018-02-22 通信システム、通信装置および通信方法
US16/643,586 US11095382B2 (en) 2018-02-22 2019-01-29 Communication system, communication device and communication method
EP19757701.8A EP3758271A4 (en) 2018-02-22 2019-01-29 COMMUNICATION SYSTEM, COMMUNICATION DEVICE AND COMMUNICATION METHOD
PCT/JP2019/002983 WO2019163443A1 (ja) 2018-02-22 2019-01-29 通信システム、通信装置および通信方法
CN201980004261.1A CN111052669B (zh) 2018-02-22 2019-01-29 通信系统、通信装置和通信方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018029471A JP6984482B2 (ja) 2018-02-22 2018-02-22 通信システム、通信装置および通信方法

Publications (2)

Publication Number Publication Date
JP2019146060A true JP2019146060A (ja) 2019-08-29
JP6984482B2 JP6984482B2 (ja) 2021-12-22

Family

ID=67687930

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018029471A Active JP6984482B2 (ja) 2018-02-22 2018-02-22 通信システム、通信装置および通信方法

Country Status (5)

Country Link
US (1) US11095382B2 (ja)
EP (1) EP3758271A4 (ja)
JP (1) JP6984482B2 (ja)
CN (1) CN111052669B (ja)
WO (1) WO2019163443A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021084771A1 (ja) * 2019-11-01 2021-05-06 オムロン株式会社 制御システム、制御システムの通信制御方法、および制御装置
WO2021131530A1 (ja) * 2019-12-25 2021-07-01 オムロン株式会社 制御システム

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6973427B2 (ja) * 2019-02-15 2021-11-24 株式会社安川電機 通信システム、通信方法、及びプログラム
US11283535B2 (en) * 2019-03-20 2022-03-22 Arris Enterprises Llc Method of remotely monitoring the timing performance of a PTP slave
US11502767B2 (en) * 2019-08-16 2022-11-15 Arista Networks, Inc. VLAN-aware clock synchronization
JP7359001B2 (ja) 2020-01-21 2023-10-11 富士通株式会社 通信時間算出方法および通信時間算出プログラム
US11435463B2 (en) * 2020-06-03 2022-09-06 Forkbeard Technologies AS Master-less device coordination in location positioning system

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160080100A1 (en) * 2013-05-23 2016-03-17 Huawei Technologies Co., Ltd. Method for precision time protocol synchronization network and apparatus
JP2016116143A (ja) * 2014-12-17 2016-06-23 三菱電機株式会社 時刻同期監視方法、通信システム、及びマスタ装置
JP2017050730A (ja) * 2015-09-02 2017-03-09 富士通株式会社 無線装置および基地局システム

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5184597B2 (ja) * 2010-09-06 2013-04-17 株式会社日立産機システム 通信制御装置及び通信・制御システム
WO2012118178A1 (ja) * 2011-03-03 2012-09-07 日本電気株式会社 同期システム、同期方法、第一の同期装置、第二の同期装置及びコンピュータプログラム
US9106353B2 (en) * 2011-12-13 2015-08-11 Jds Uniphase Corporation Time synchronization for network testing equipment
US9154292B2 (en) * 2012-11-28 2015-10-06 Mitsubishi Electric Corporation Communication apparatus, communication system, and time synchronization method
JP5844016B2 (ja) * 2013-07-19 2016-01-13 三菱電機株式会社 リング状同期ネットワークシステムおよびタイムスレーブ局
US9288112B2 (en) * 2013-11-21 2016-03-15 Rockwell Automation Technologies, Inc. Automatic network discovery in precision time protocol networks
CN105577349A (zh) * 2014-10-31 2016-05-11 中国飞行试验研究院 一种机载网络ieee1588协议主从时钟端口同步方法
US10333611B2 (en) * 2014-11-05 2019-06-25 Nec Corporation Communication system, time synchronization method, and radio relay device
CN104601269B (zh) * 2014-12-31 2016-12-28 国家电网公司 主从时钟同步方法及系统
JP6820586B2 (ja) * 2016-08-31 2021-01-27 株式会社メディアリンクス 時刻同期システム
US10341083B2 (en) * 2016-09-09 2019-07-02 Huawei Technologies Co., Ltd. System and methods for network synchronization
WO2018208197A1 (en) * 2017-05-12 2018-11-15 Telefonaktiebolaget Lm Ericsson (Publ) Methods and devices for synchronization in communication networks
US10484163B2 (en) * 2017-10-13 2019-11-19 Cisco Technology, Inc. Measure and improve clock synchronization using combination of transparent and boundary clocks
US10313103B1 (en) * 2018-01-24 2019-06-04 Ciena Corporation Systems and methods for precise time synchronization with optical modules

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160080100A1 (en) * 2013-05-23 2016-03-17 Huawei Technologies Co., Ltd. Method for precision time protocol synchronization network and apparatus
JP2016116143A (ja) * 2014-12-17 2016-06-23 三菱電機株式会社 時刻同期監視方法、通信システム、及びマスタ装置
JP2017050730A (ja) * 2015-09-02 2017-03-09 富士通株式会社 無線装置および基地局システム

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021084771A1 (ja) * 2019-11-01 2021-05-06 オムロン株式会社 制御システム、制御システムの通信制御方法、および制御装置
JP7404789B2 (ja) 2019-11-01 2023-12-26 オムロン株式会社 制御システム、制御システムの通信制御方法、および制御装置
WO2021131530A1 (ja) * 2019-12-25 2021-07-01 オムロン株式会社 制御システム
JP2021103439A (ja) * 2019-12-25 2021-07-15 オムロン株式会社 制御システム
JP7375532B2 (ja) 2019-12-25 2023-11-08 オムロン株式会社 制御システム

Also Published As

Publication number Publication date
CN111052669B (zh) 2022-08-16
EP3758271A4 (en) 2022-01-26
US11095382B2 (en) 2021-08-17
EP3758271A1 (en) 2020-12-30
US20200244381A1 (en) 2020-07-30
CN111052669A (zh) 2020-04-21
WO2019163443A1 (ja) 2019-08-29
JP6984482B2 (ja) 2021-12-22

Similar Documents

Publication Publication Date Title
WO2019163443A1 (ja) 通信システム、通信装置および通信方法
US8913514B2 (en) Communication control unit and communication control system
JP6820851B2 (ja) ネットワークデバイスのクロックを同期させる方法
US8126019B2 (en) Method for time synchronization in a cyclically operating communication system
JP2008135005A (ja) 動作制御タイミングモデル
JP7484912B2 (ja) 制御システム
WO2018104237A1 (en) Method, device, and computer program for improving synchronization of clocks in devices linked according to a daisy-chain topology
WO2020184086A1 (ja) 制御システム
WO2019107022A1 (ja) 制御装置および制御方法
JP7396393B2 (ja) 制御システム、装置および制御方法
JP2019068387A (ja) 通信システム、通信装置および通信方法
EP3851925B1 (en) A synchronised control system
WO2021131530A1 (ja) 制御システム
WO2020021597A1 (ja) 通信装置、通信システムおよび同期制御方法
WO2022185589A1 (ja) 情報処理装置、方法およびプログラム
US20220278871A1 (en) Method, system, and gateway for linking time-sensitive fieldbuses
WO2019176755A1 (ja) ネットワークシステム
JP7008894B1 (ja) 時刻同期従属装置、時刻共有システム、時刻共有方法及びプログラム
EP4149028A1 (en) Synchronization for backplane communication
CN114375552A (zh) 在基于以太网的网络中进行时间同步的方法
CN116805892A (zh) 时间同步方法、装置、系统、存储介质及网络设备
CN115801164A (zh) 网络中的时间同步
Fu et al. Delay characteristics and synchronization architecture of networked control system
CN116209959A (zh) 时刻同步系统、学习装置、推理装置和时刻同步装置
JP2011199603A (ja) クロック同期システム、クロック同期方法及びプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200305

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210525

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210716

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210817

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20211012

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20211026

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20211108

R150 Certificate of patent or registration of utility model

Ref document number: 6984482

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150