JPWO2016208020A1 - 通信装置、時刻補正方法およびネットワークシステム - Google Patents
通信装置、時刻補正方法およびネットワークシステム Download PDFInfo
- Publication number
- JPWO2016208020A1 JPWO2016208020A1 JP2016566307A JP2016566307A JPWO2016208020A1 JP WO2016208020 A1 JPWO2016208020 A1 JP WO2016208020A1 JP 2016566307 A JP2016566307 A JP 2016566307A JP 2016566307 A JP2016566307 A JP 2016566307A JP WO2016208020 A1 JPWO2016208020 A1 JP WO2016208020A1
- Authority
- JP
- Japan
- Prior art keywords
- packet
- time
- periodic
- slave
- correction
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G04—HOROLOGY
- G04G—ELECTRONIC TIME-PIECES
- G04G5/00—Setting, i.e. correcting or changing, the time-indication
-
- G—PHYSICS
- G04—HOROLOGY
- G04G—ELECTRONIC TIME-PIECES
- G04G7/00—Synchronisation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L7/00—Arrangements for synchronising receiver with transmitter
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Synchronisation In Digital Transmission Systems (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Electric Clocks (AREA)
- Small-Scale Networks (AREA)
Abstract
通信装置20は、時間をカウントするためのカウンタ205と、自装置宛のパケットまたはブロードキャストされたパケットを受信した場合にカウンタのカウンタ値を記録するカウンタ値保持部206と、パケットがネットワーク内に定周期で送信されるパケットである周期パケットか否かを判定し、周期パケットである場合にはカウンタ値保持部が記憶しているカウンタ値と周期パケットの本来の受信時刻を示すカウンタ値との差分を算出するパケット解析部202と、差分に基づいて、自装置の時刻と周期パケットの送信元の装置の時刻とのずれを補正するための補正値を算出する補正時間算出部204と、を備える。
Description
本発明は、時刻同期が必要なネットワークシステムを構成する通信装置、時刻補正方法およびネットワークシステムに関する。
複数の通信装置が協調して一連の動作を行なうシステムでは、各通信装置の時刻すなわち各通信装置が個別に管理しているローカル時刻を同期させる必要がある。このようなシステムにおいては、基準となる通信装置であるマスタに他の通信装置であるスレーブが時刻を同期させることにより、各通信装置はある決められた時刻に正確に動作することが可能となる。
特許文献1には、通信装置間の時刻同期を実現するための発明が記載されている。特許文献1に記載された発明によれば、送信装置は、自身のデータ作成時刻としての標準時刻を電文情報に載せて受信装置に送信し、受信装置は受信した電文情報に記載されている標準時刻を用いて伝送遅延の揺らぎ分をもとめ、送信装置との間の時計誤差、伝送遅延を補正している。
また、非特許文献1には、マスタとスレーブの間で時刻を同期させる手順について規定されている。非特許文献1に記載された時刻同期手順では、マスタは送信時刻の情報が格納されたSyncメッセージを送信し、スレーブは、Syncメッセージを受信すると、メッセージに格納されている情報が示す送信時刻t1と、メッセージを受信した時刻t2とを記憶する。さらに、スレーブは、送信時刻t3の情報が格納されたDelay_Reqメッセージをマスタへ送信し、マスタは、Delay_Reqメッセージを受信すると、Delay_Reqメッセージの受信時刻t4の情報をDelay_Respメッセージに格納してスレーブへ送信する。スレーブは、Delay_Respメッセージを受信すると、t1、t2、t3およびt4を用いて自身の時刻とマスタの時刻との差を算出し、算出した差に基づいて自身の時刻を補正してマスタの時刻に同期させる。
IEEE1588
特許文献1および非特許文献1に記載された手順で時刻同期を実現する場合、通信装置間で時刻同期用のパケットを送受信する必要がある。
ここで、通信装置間の時刻同期が必要なシステムとして、工作機械、半導体製造装置、産業用ロボット等の複数の軸を使用した高精度なモーション動作が必要とされるモーションコントロールシステムが存在する。モーションコントロールシステムでは、マスタは、装置間で動作を同期させる際の基準となるパケット(以下、同期パケットと称する)を定周期で送信する。また、マスタとスレーブは同期パケットが送信されないタイミングで通信を行っている。このようなシステムに対して特許文献1および非特許文献1に記載された時刻同期手順、すなわち、時刻同期用のパケットを使用して時刻同期を実現する手法を適用する場合、時刻同期手順の実行がシステムに悪影響を与える可能性がある。具体的には、マスタとスレーブが連続して通信しているなど、多くのパケットが送受信され、ネットワークの負荷が高くなっている状態において時刻同期手順を実行すると、時刻同期用のパケットが送信されることによりネットワークの負荷がさらに高くなってしまい、モーション動作の制御のために送受信されるパケットの処理に遅延を生じさせるなどの悪影響を与える可能性がある。そのため、時刻同期手順がネットワークに与える負荷の削減、すなわち、時刻同期手順の実行時に発生するトラフィックの削減が望まれる。
本発明は、上記に鑑みてなされたものであって、自装置の時刻を他の装置の時刻に同期させる処理で必要なトラフィックを削減可能な通信装置を得ることを目的とする。
上述した課題を解決し、目的を達成するために、本発明にかかる通信装置は、時間をカウントするためのカウンタと、自装置宛のパケットまたはブロードキャストされたパケットを受信した場合にカウンタのカウンタ値を記録するカウンタ値保持部と、を備える。また、受信したパケットがネットワーク内に定周期で送信されるパケットである周期パケットか否かを判定し、周期パケットである場合にはカウンタ値保持部が記憶しているカウンタ値と周期パケットの本来の受信時刻を示すカウンタ値との差分を算出するパケット解析部と、差分に基づいて、自装置の時刻と周期パケットの送信元の装置の時刻とのずれを補正するための補正値を算出する補正時間算出部と、を備える。
本発明にかかる通信装置は、自装置の時刻を他の装置の時刻に同期させる処理で必要なトラフィックを削減できるという効果を奏する。
以下に、本発明の実施の形態にかかる通信装置、時刻補正方法およびネットワークシステムを図面に基づいて詳細に説明する。なお、この実施の形態によりこの発明が限定されるものではない。
実施の形態1.
図1は、実施の形態1にかかるネットワークシステムの構成例を示す図である。
図1は、実施の形態1にかかるネットワークシステムの構成例を示す図である。
図1に示したネットワークシステムは、時刻同期のマスタとして動作する通信装置10と、時刻同期のスレーブとして動作する通信装置20、30および40とを含んで構成されている。通信装置10、20、30および40の内部構成は同じである。以下の説明では、通信装置10をマスタ10、通信装置20,30,40をスレーブ20,30,40と称する。マスタ10は、モーションコントロールシステムのモーションコントローラなどである。スレーブ20、30および40は、モーションコントロールシステムのI/O(Input/Output)装置である。なお、図1では、時刻同期のスレーブとして動作する通信装置を3台としているが、一例であり、3台以外でも構わない。
マスタ10とスレーブ20は論理インタフェース1で接続されている。スレーブ20とスレーブ30は論理インタフェース2で接続されている。スレーブ30とスレーブ40は論理インタフェース3で接続されている。論理インタフェース1から3は、Ethernetのような有線伝送路であってもよいし、無線LAN(Local Area Network)のような無線伝送路であってもよい。また、物理的な接続は、マスタ10を頂点としてスレーブ20、30および40がスター型に配置されているケース、マスタ10とスレーブ20、30および40とが全てリング状に接続されているケースなど、どのようなものでもよい。図1では、マスタ10とスレーブ20、30および40とをカスケード接続し、マスタ10から送信されたパケットがスレーブ20、30、40に順番に転送される接続形態としている。
図2は、実施の形態1にかかる通信装置、すなわち、マスタ10、スレーブ20、30および40の構成例を示す図である。なお、図2では、論理インタフェース1および2に接続されているスレーブ20の構成を示している。図2において、矢印はパケットの流れを示している。
スレーブ20は、Ethernetなどの物理層およびMAC(Media Access Control)層を実現する物理インタフェース部201と、時刻補正に必要なパケット解析処理を実施するパケット解析部202と、時刻補正に必要な情報を蓄積しておく補正情報蓄積部203と、補正時間を算出する補正時間算出部204と、プロセッサのクロックなどで実現され、時間をカウントするためのカウンタ205と、受信パケットの受信時刻を示すカウンタ値を記憶するカウンタ値保持部206と、周期通信の開始タイミングを示す開始カウンタ値、周期通信を行う期間の長さを示す通信周期、補正閾値などを保持しておくパラメータ記憶部207と、を備える。なお、カウンタ205は通信装置が持つ時計であってもよく、時間に換算できる情報を得ることが可能なものであれば何でもよい。周期通信とは、マスタ10が通信相手のスレーブをある一定の周期で切り替えながら各スレーブと順番に通信を行うような通信である。
ここで、図2に示した実施の形態1にかかる通信装置、すなわち、マスタ10、スレーブ20、30および40の各部を実現するためのハードウェア構成について説明する。図3は、実施の形態1にかかる通信装置の各部を実現するためのハードウェア構成例を示す図である。
実施の形態1にかかる通信装置の各部は、CPU(Central Processing Unit)、システムLSI(Large Scale Integration)などのプロセッサ301と、RAM(Random Access Memory)、ROM(Read Only Memory)などで構成されるメモリ302と、各種ネットワークに接続するための入出力インタフェース303とにより実現することが可能である。プロセッサ301、メモリ302および入出力インタフェース303はバス300に接続され、バス300を介してデータ、制御情報などの受け渡しを相互に行うことが可能である。
物理インタフェース部201は、入出力インタフェース303により実現される。パケット解析部202は、プロセッサ301およびメモリ302に格納されているプログラムにより実現される。具体的には、プロセッサ301が、パケット解析部202として動作するためのプログラムをメモリ302から読み出して実行することにより、パケット解析部202を実現する。補正時間算出部204は、プロセッサ301およびメモリ302に格納されているプログラムにより実現される。具体的には、プロセッサ301が、補正時間算出部204として動作するためのプログラムをメモリ302から読み出して実行することにより、補正時間算出部204を実現する。補正情報蓄積部203、カウンタ値保持部206およびパラメータ記憶部207は、メモリ302により実現される。カウンタ205はプロセッサが有しているクロックを利用して実現される。
次に、図2を用いて、スレーブ20におけるパケット処理、具体的には、マスタ10が送信したパケットをスレーブ20が受信してスレーブ30へ転送する処理について説明する。マスタ10から送信されたパケットであるパケット11は、論理的なインタフェースである論理インタフェース1から物理インタフェース部201に入力される。なお、パケット11は、論理インタフェース1においてはフレームとして伝送される。物理インタフェース部201は、既知のビット列を検出することによりパケットの先頭を把握し、パケットを受信する。例えば、パケット11が図4に示すようなEthernetフレームの場合は、「プリアンブル/SFD(Start of Frame Delimiter)」がパケットの先頭である。「プリアンブル/SFD」は7バイト長のプリアンブルおよび1バイト長のSFDからなる合計8バイトの情報であり、固定のビットパターンとなっている。なお、Ethernetフレームは、「プリアンブル/SFD」に加えて、フレームの宛先を示す「宛先アドレス」と、フレームの送信元を示す「送信元アドレス」と、フレームを受け取る上位プロトコルのタイプまたはフレームの長さを示す「タイプ/長さ」と、データを格納する「データ部」と、フレームの誤りチェックを行うための「FCS(Frame Check Sequence)」とを含んでいる。「データ部」には、図5に示した構成のIP(Internet Protocol)パケットなどがデータとして格納される。本実施の形態では、IPパケットがデータとしてデータ部に格納されているものとする。
IPパケットは、IPのバージョンおよびIPパケットのヘッダの長さを示す「バージョン/IHL(Internet Header Length)」と、IPパケットの優先度などを示す「ToS(Type of Service)」と、上位プロトコルを示す「プロトコル」と、ヘッダの誤りチェックを行うための「ヘッダチェックサム」と、IPパケットの送信元を示す「送信元アドレス」と、IPパケットの宛先を示す「宛先アドレス」と、データを格納する「データ部」とを含んでいる。
パケット処理の説明に戻り、物理インタフェース部201は、図4に示した構成のパケット11を受信すると、データ部に格納されているIPパケットを取り出し、取り出したIPパケットを受信パケットとしてパケット解析部202へ転送する。パケット解析部202は、物理インタフェース部201から受信パケットを受け取ると、自通信装置宛か他の通信装置宛かを判別し、他の通信装置宛の場合、物理インタフェース部201へ出力する。すなわち、パケット解析部202は、受信パケット内の宛先アドレスが自装置以外を示していれば、他の通信装置宛と判断し、受信パケットを物理インタフェース部201へ出力する。物理インタフェース部201は、パケット解析部202で他の通信装置宛と判断された受信パケットを受け取ると、パケット12として論理インタフェース2へ出力する。このとき、物理インタフェース部201は、パケット解析部202から受け取った受信パケットであるIPパケットを図4に示したフレームの「データ部」に格納し、論理インタフェース2へ出力する。
また、パケット解析部202は、物理インタフェース部201から受け取った受信パケットが自装置宛の場合、図2では記載を省略している上位プロトコルにパケットを転送するなど、受信パケットの内容に応じた処理を実施する。
なお、パケット11が自装置宛か否かをパケット解析部202で判別することとしたが、物理インタフェース部201で判別することも可能である。物理インタフェース部201で判別する場合、物理インタフェース部201は、図4に示したEthernetフレームの宛先アドレスを確認し、自装置以外を示している場合、論理インタフェース2へ転送する。
ここで、本実施の形態にかかるネットワークシステムは、モーションコントロールシステムなど、規定のパケットがマスタ10から定周期で各スレーブへ送信されるシステムに適用されることを前提とする。また、本実施の形態にかかるネットワークシステムでは、マスタ10が定周期で送信するパケットを利用して各スレーブが自装置の時刻を補正することにより、時刻同期手順がネットワークに与える負荷の低減を実現する。
各スレーブが自装置の時刻を補正する動作について説明する。各スレーブにおける時刻補正動作は同じである。ここでは、スレーブ20が時刻を補正する場合について説明する。なお、スレーブ20は、何らかの方法により、自装置の時刻をマスタ10の時刻に同期させた後、マスタ10が定周期で送信するパケットを利用して自装置の時刻を補正する。スレーブ20が自装置の時刻をマスタ10の時刻に同期させる方法としては、非特許文献1に記載された方法を利用できるが、この方法に限定するものではない。
スレーブ20は、自装置の時刻をマスタ10の時刻に同期させる処理が終了した後、マスタ10から定周期で送信されるパケットを受信した時刻に基づいて、自装置の時刻を補正する。具体的には、スレーブ20は、マスタ10から定周期で送信されるパケットを受信すると、パケットを受信した時刻と、定周期で送信されるパケットの送信周期から推定した時刻すなわちパケットの到着予想時刻とを比較することにより、自装置の時刻とマスタ10の時刻のずれを推定する。そして、スレーブ20は、時刻のずれが0に近づくよう、自装置の時刻を補正する。
ネットワークシステム全体の時刻同期処理および時刻補正処理は図6に示したものとなる。
まず、マスタ10、スレーブ20、30および40は、システム起動時、システムの実動作の休止時など、定周期で送信されるパケットの送信をマスタ10が開始する前に、従来からある時刻同期処理100を使用して時刻同期を行う。時刻同期処理100としては、非特許文献1で規定されている方法などを使用する。時刻同期処理100は、補正時間算出部204が実行するものとするがこれに限定されない。時刻同期処理100を行うための処理部を備えるようにしても構わない。以下、定周期で送信されるパケットを「周期パケット」と称する。なお、ネットワークシステムの負荷が低い状態においては、後述する時刻補正処理に代えて、時刻同期処理100を定期的に、または不定期に、マスタ10、スレーブ20、30および40が実行し、時刻が同期した状態を維持するようにしてもよい。マスタ10がモーションコントロールシステムのモーションコントローラの場合、周期パケットは、システム全体の同期タイミングを指定してシステム内の装置間で同期制御を実現するためのパケットに相当する。
時刻同期処理100が終了した後、マスタ10は、周期通信開始パケット110をスレーブ20、30および40へ送信する。周期通信開始パケット110は、マスタ10が周期パケットの送信を開始することをネットワークシステム内に通知するためのパケットである。周期通信開始パケット110は、マスタ10が周期パケットの送信を開始する時刻である、周期パケットの送信開始時刻の情報を含んでいるものとする。本実施の形態では、マスタ10が周期パケットの送信を開始する時刻はマスタ10が周期通信を開始する時刻と一致する。周期パケットの送信周期は、ネットワークシステムを構築する際にマスタ10、スレーブ20、30および40に設定しておいてもよいし、周期通信開始パケット110によりマスタ10がスレーブ20、30および40に通知するようにしてもよい。
マスタ10は、周期通信開始パケット110を送信した後、周期通信開始パケット110で各スレーブに通知した、周期パケットの送信開始時刻になると、周期パケット60を送信する。
スレーブ20は、周期パケット60を受信すると、周期パケット60をスレーブ30へ転送するとともに、周期パケット60の受信時刻、周期パケットの送信開始時刻および周期パケットの送信周期に基づいて、自装置の時刻を補正する。時刻を補正する動作の詳細については後述する。
スレーブ30は、スレーブ20と同様に、周期パケット60を受信すると、周期パケット60をスレーブ40へ転送するとともに、周期パケット60の受信時刻、周期パケットの送信開始時刻および周期パケットの送信周期に基づいて、自装置の時刻を補正する。
スレーブ40は、周期パケット60を受信すると、周期パケット60の受信時刻、周期パケットの送信開始時刻および周期パケットの送信周期に基づいて、自装置の時刻を補正する。
マスタ10は、周期パケット60を送信した後、規定時間すなわち周期パケットの送信周期が経過すると、周期パケット70を送信する。スレーブ20、30および40は、周期パケット70を受信すると、周期パケット60を受信した場合と同様の処理を行い、自装置の時刻を補正する。なお、図6では、説明を簡単化するため、スレーブ20、30および40が周期パケットを受信するごとに時刻補正を行う場合の例を示しているが、周期パケットを規定回数受信した場合に時刻補正を行うようにしてもよい。一般的に、周期パケットの送信周期は短く、1送信周期の間に時刻がずれる量は、モーションコントロール等を行う上で問題とはならない。そのため、処理負荷が必要以上に増大することがないよう、各スレーブは周期パケットを規定回数受信した場合に時刻補正を実施することが望ましい。
マスタ10は、周期パケット70を送信した後、規定時間が経過するごとに、周期パケットを送信する。また、マスタ10は、周期パケットの送信タイミング以外において、通常パケットを送信する。図6では、マスタ10が周期パケット60と周期パケット70の間に通常パケット55を送信する場合を示している。通常パケットは、周期パケットに該当しないパケットであり、不定期に送信される。マスタ10が軸制御に必要な制御データをスレーブ20,30,40へ送信するためのパケットなどが通常パケットに該当する。図6では、周期パケットの送信タイミングの間に通常パケットが1つだけ送信される例を示しているが、通常パケットが複数送信される場合もある。また、スレーブ20,30,40からマスタ10へ通常パケットが送信される場合もある。
マスタ10、スレーブ20、30および40が時刻を補正する動作の具体例を示す。スレーブ20、30および40は、時刻同期処理100を行い自装置の時刻を調整すると、調整後の時刻に対応したカウンタ値を周期通信の先頭位置として設定する。カウンタ値はカウンタ205の値であり、マスタ10のカウンタ値、すなわちマスタ10のカウンタ205のカウンタ値をM10_C、スレーブ20のカウンタ値をS20_C、スレーブ30のカウンタ値をS30_C、スレーブ40のカウンタ値をS40_Cとする。また、カウンタ205の値は1μ秒ごとに1増加するのものとする。
時刻同期処理100によって、マスタ10、スレーブ20、30および40の時刻を10時0分0秒000m秒000μ秒に一致させ、この時のマスタ10、各スレーブのカウンタ値がカウンタ値M10_C=500、カウンタ値S20_C=70000、カウンタ値S30_C=3000、カウンタ値S40_C=200であるものとする。
マスタ10が周期通信開始パケット110により、周期通信、すなわち周期パケットの送信を10時0分0秒010m秒000μ秒から開始する旨をスレーブ20、30および40に通知した場合について考える。この場合、最初の周期パケット60が送信される時刻に対応する、マスタ10、スレーブ20、30および40のカウンタ値は、それぞれ、M10_C=10500、S20_C=80000、S30_C=13000、S40_C=10200となる。また、周期パケットの送信周期が1m秒であれば、周期パケットの送信周期と一致する通信周期は1000となる。なお、上述したように、通信周期は周期通信を行う期間の長さを示す。この場合、周期パケット70が送信される時刻に対応する、マスタ10、スレーブ20、30および40のカウンタ値は、それぞれ、M10_C=11500、S20_C=81000、S30_C=14000、S40_C=11200となる。各スレーブが周期パケット70を受信したときのカウンタ値がこれらと一致している場合、時刻が同期しているといえる。
次に、スレーブ20、30および40が時刻を補正する動作について、図2および図7を用いて説明する。図7は、スレーブ20における時刻補正動作を示すフローチャートである。なお、スレーブ30および40における時刻補正動作はスレーブ20における時刻補正動作と同じである。ここでは、スレーブ20が図4に示した構成のEthernetフレームをパケット11として受信し、Ethernetフレームの「データ部」には、図5に示した構成のIPパケットが格納されているものとして説明を行う。
スレーブ20は、まず、周期通信の開始カウンタ値CS、通信周期Pおよび周期回数Mを設定する(ステップS10)。各設定値は、パラメータ記憶部207が保持する。
このステップS10で設定する開始カウンタ値CSは、周期通信の先頭位置に対応する、カウンタ205のカウンタ値である。すなわち、ここでの開始カウンタ値CSは、スレーブ20が周期通信開始パケット110を受信した後、最初の周期パケットの受信時刻を示すカウンタ値である。スレーブ20の時刻がマスタ10の時刻に同期しており、かつマスタ10における周期パケットの送信処理などにおいて処理遅延が発生していない場合、周期パケットは、カウンタ205のカウンタ値が開始カウンタ値CSとなるタイミングでスレーブ20に到着する。なお、詳細については後述するが、開始カウンタ値CSは、補正時間算出部204によって適宜補正される。補正後の開始カウンタ値CSは、次に受信する周期パケットの受信予想時刻を示す。
周期回数Mは、通信周期Pが経過するごとに1インクリメントされる情報である。周期回数Mは、ステップS10においてM=0に設定される。スレーブ20は、図6に示した時刻同期処理100を実行して自装置の時刻をマスタ10の時刻に同期させた後、周期通信開始パケット110を受信すると、図7のステップS10を実行する。時刻同期処理100では、マスタ10から送信されたパケットがスレーブ20に到着するまでの所要時間である伝送遅延時間を測定するため、スレーブ20は、この伝送遅延時間と、周期通信開始パケット110で通知される周期パケットの送信開始時刻とに基づいて、上記開始カウンタ値CSを算出する。
スレーブ20は、ステップS10を実行後、補正情報記録回数nをn=0に初期化する(ステップS11)。スレーブ20においては、補正時間算出部204がステップS10およびS11を実行する。
ステップS11を実行後、スレーブ20は、通信周期Pが経過したか否か、および、パケットを受信したか否かを継続して監視する(ステップS12からS14)。具体的には、スレーブ20は、まず、通信周期Pが経過したか否かを確認し(ステップS12)、通信周期Pが経過した場合には(ステップS12:Yes)、パラメータ記憶部207で保持している周期回数Mを1インクリメントする(ステップS13)。通信周期Pが経過していない場合(ステップS12:No)、および、ステップS13を実行した場合、スレーブ20は、パケットを受信したか否かを確認する(ステップS14)。スレーブ20は、パケットを受信した場合(ステップS14:Yes)、ステップS15およびこれに続く処理を実行し、パケットを受信していない場合には(ステップS14:No)、ステップS12に戻る。これらのステップS12からS14のうち、ステップS12およびS13については補正時間算出部204が実行し、ステップS14については物理インタフェース部201が実行する。
パケット解析部202は、カウンタを利用して通信周期Pが経過したか否かを判断する。パケット解析部202は、通信周期カウント用の専用のカウンタを使用して通信周期Pのカウントを行ってもよいし、図2に示したカウンタ205を利用してカウントを行ってもよい。
物理インタフェース部201は、論理インタフェース1からパケット11が入力され、パケット11が自装置で処理すべきパケットかつパケットに誤りがない場合、パケットを受信したと判断する(ステップS14:Yes)。物理インタフェース部201は、宛先アドレスがブロードキャストアドレスまたは自装置を示すアドレスであり、かつFCSによる誤り判定で誤りが検出されなければ、パケットを受信したと判断する。
パケットを受信した場合(ステップS14:Yes)、物理インタフェース部201は、カウンタ205に対してカウンタ値をカウンタ値保持部206へ出力するよう指示するとともに、受信したパケットをパケット解析部202へ出力する。物理インタフェース部201から上記の指示を受けたカウンタ205はカウンタ値をカウンタ値保持部206へ出力する。カウンタ値保持部206は、カウンタ205から出力されたカウンタ値をパケットの受信タイミングすなわち受信時刻を示すカウンタ値CNとして記録する(ステップS15)。なお、カウンタ値保持部206は、カウンタ205から出力されたカウンタ値をカウンタ値CNとして記録する際、それまで保持していたカウンタ値CNを削除する。すなわち、カウンタ値保持部206は、カウンタ205からカウンタ値が出力されるごとに、保持しているカウンタ値CNを更新する。また、物理インタフェース部201がパケット解析部202へ出力するパケットは、図5に示した構成のIPパケット、すなわち、図4に示したフレームの「データ部」から取り出されたIPパケットである。
パケット解析部202は、物理インタフェース部201からIPパケットを受け取ると、周期パケットか否かを確認する(ステップS16)。IPパケットが周期パケットか否かをパケット解析部202が判定する方法としては、周期パケットであることを示す情報が含まれているか否かによって判断する方法が考えられるが、他の方法で判定してもよい。周期パケットか否かをどのような方法で判定しても構わない。
パケット解析部202は、受け取ったパケットが周期パケットではない場合(ステップS16:No)、時刻補正のための処理としては何も行わない。この場合はステップS12に戻り、通信周期Pが経過したか否かを確認するとともに、物理インタフェース部201が次のパケットの受信を待つ。このとき、スレーブ20は受信したパケットの内容に応じた処理を行うが、図7では記載を省略している。パケット解析部202は、受け取ったパケットが周期パケットの場合(ステップS16:Yes)、パケット受信時のカウンタ値CNをカウンタ値保持部206から読み出し、読み出したカウンタ値と本来周期パケットを受信する時刻を示すカウンタ値との差分βを算出するとともに、差分βの絶対値が規定の補正閾値α以下か否かを確認する。すなわち、パケット解析部202は、「−α≦β≦α」を満たしているか否かを確認する(ステップS17)。ここで、本来周期パケットを受信する時刻を示すカウンタ値を基準カウンタ値とすると、基準カウンタ値は「基準カウンタ値=CS+P×M」で表される。補正閾値αは、スレーブ20の時刻がマスタ10の時刻からずれたことに伴う周期パケットの受信時刻の誤差の発生ではなく、他の要因により周期パケットの受信時刻に誤差が生じた場合に、時刻を誤って補正してしまうことを防止するためのものである。通常、スレーブ20の時刻はマスタ10の時刻から徐々にずれていくため、周期パケットを受信した時刻と本来周期パケットを受信する時刻の差分βが急に大きくなった場合、すなわち、差分βが補正閾値αよりも大きくなった場合、マスタ10の処理負荷が増大するなどの理由により処理遅延が発生し、周期パケットの受信時刻に誤差が生じたと推定することができる。よって、パケット解析部202は、差分βが補正閾値αよりも大きい場合、差分βを破棄する。補正閾値αは、パラメータ記憶部207に予め設定されているものとする。
パケット解析部202は、「−α≦β≦α」ではない場合(ステップS17:No)、何も行わない。この場合はステップS12に戻り、物理インタフェース部201が次のパケットの受信を待つ。パケット解析部202は、「−α≦β≦α」の場合(ステップS17:Yes)、補正情報記録回数nを1インクリメントし、差分βを補正情報蓄積部203に記録する(ステップS18)。
補正時間算出部204は、補正情報記録回数nが規定回数Nに達したかどうかを監視しており(ステップS19)、n<Nの場合(ステップS19:No)、何も行わない。この場合はステップS12に戻り、物理インタフェース部201が次のパケットの受信を待つ。なお、Nは1以上の整数とする。一方、n=Nの場合(ステップS19:Yes)、補正時間算出部204は、補正情報蓄積部203に記録されている差分βに基づいて、補正値γを計算する(ステップS20)。このステップS20において、補正時間算出部204は、補正値γを前回計算してから現在までの間に補正情報蓄積部203に記録された差分βの平均値を算出し、補正値γとする。すなわち、補正時間計算部204は、γ=Σβ/Nを計算する。Σβは、補正値γを前回計算してから現在までの間に補正情報蓄積部203に記録された差分βの和である。なお、補正時間計算部204は、ステップS20において補正値γを計算する際、補正情報蓄積部203で記録されているN個の差分βを削除する処理も併せて行う。
次に、補正時間算出部204は、ステップS20で計算した補正値γを用いて、パラメータ記憶部207で記憶されている開始カウンタ値CSを補正するとともに、時刻を補正する(ステップS21)。このステップS21において、補正時間算出部204は、開始カウンタ値CSに対し、γおよびP×Mを加算することにより、開始カウンタ値CSを補正する。補正後の開始カウンタ値CSは、次の周期パケットを正常に受信する場合の周期パケットの到着タイミングを示す、カウンタ205のカウンタ値である。「周期パケットを正常に受信する」とは、スレーブ20の時刻がマスタ10の時刻に同期しており、かつマスタ10における周期パケットの送信処理などにおいて処理遅延が発生することなく周期パケットを受信する、という意味である。時刻の補正は補正値γを用いて行う。時刻の補正方法は、スレーブ20における時刻の管理方法に依存する。例えば、スレーブ20がカウンタ205のカウンタ値と実際の時刻の対応テーブルを保持している場合、対応テーブルを更新することにより時刻を補正する。例えば、スレーブ20が、「カウンタ205のカウンタ値=500の場合、時刻=10時0分0秒000m秒000μ秒」であることを示す対応テーブルを保持している状態において、補正時間算出部204が補正値γ=15を算出した場合、対応テーブルを「カウンタ205のカウンタ値=515の場合、時刻=10時0分0秒000m秒000μ秒」であることを示す内容に更新する。補正時間算出部204が補正値γ=15を算出した場合の対応テーブルの更新方法は一例であり、これに限定されない。対応テーブル内のカウンタ値を更新するのではなく、カウンタ値に対応する時刻の方を更新しても構わない。
なお、図7に示した例では補正情報の記録回数が規定値Nに達した場合、すなわち、補正情報蓄積部203が差分βをN個記録した場合に補正時間算出部204が補正値γを計算することとしたが、前回時刻補正を行ってから規定時間が経過した場合に補正値γを算出して時刻補正を行うようにしてもよい。
次に、図8を用いて、実施の形態1のネットワークシステム全体の時刻補正処理の具体例を説明する。図8では、図6に示した時刻同期処理100および周期通信開始パケット110の送信が実施された後の動作例を示している。
ネットワークシステムにおいて、マスタ10は、図6に示した時刻同期処理100を実行し、さらに、周期通信開始パケット110により周期パケットの送信開始時刻をスレーブ20、30および40に通知する。その後、マスタ10は、周期通信開始パケット110により各スレーブに通知した送信開始時刻になると、まず、周期パケット60を送信する。さらに、通信周期50が経過するごとに、周期パケット70、80および90を順次送信する。図8の例では、マスタ10は、時刻T1において周期パケット60を送信した後、時刻T6、T11およびT16において、周期パケット70、80および90を送信する。
時刻T1にマスタ10から送信された周期パケット60は、各スレーブにおいて時刻ずれが発生しておらず、かつ遅延揺らぎも発生していない状態で、スレーブ20、30および40に到着している。すなわち、周期パケット60は、各スレーブが保持している開始カウンタ値CSが示す本来の到着時刻に周期パケットが各スレーブに到着している。図8の例では、周期パケット60は、時刻T1にマスタ10から送信された後、時刻T2にスレーブ20に到着している。周期パケット60がマスタ10に送信されてからスレーブ20に到着するまでの伝送遅延時間は遅延61である。その後、周期パケット60はスレーブ20により転送され、時刻T3にスレーブ30に到着している。周期パケット60がマスタ10に送信されてからスレーブ30に到着するまでの伝送遅延時間は遅延62である。さらに、周期パケット60は、スレーブ30により転送され、時刻T4にスレーブ40に到着している。周期パケット60がマスタ10に送信されてからスレーブ40に到着するまでの伝送遅延時間は遅延63である。
周期パケット60が本来の到着時刻にスレーブ20、30および40に到着しているため、スレーブ20、30および40は、周期パケット60を受信すると、上述した差分βとして、0を補正情報蓄積部203にそれぞれ記録する。
時刻T6にマスタ10から送信された周期パケット70は、本来であれば、時刻T7にスレーブ20に到着する筈である。しかし、スレーブ20の時刻とマスタ10の時刻のずれ、または処理遅延の影響により、伝送遅延時間に揺らぎ71が発生し、本来とは異なる到着時刻に周期パケット70がスレーブ20に到着している。また、周期パケット70は、スレーブ20により転送された後、本来であれば、時刻T8にスレーブ30に到着する筈であるが、伝送遅延時間に揺らぎ72が発生し、本来とは異なる到着時刻にスレーブ30に到着している。また、周期パケット70は、スレーブ30により転送された後、本来の到着時刻である時刻T9にスレーブ40に到着している。よって、揺らぎ73は0となっている。ここで、スレーブ20への周期パケット70の到着時刻は、スレーブ20の時刻が少し進んだ、もしくは周期パケット70の到着が少し遅れたことにより、揺らぎ71が発生し、伝送遅延時間が少し増えたものとする。また、スレーブ30への周期パケット70の到着時刻は、スレーブ30の時刻が少し遅れた、もしくは周期パケット70の到着が少し早くなったことにより、遅延が少し減少した状態の揺らぎ72が発生したものとする。なお、伝送遅延時間が増える要因は、スレーブの時刻がマスタ10の時刻よりも遅れた場合、処理遅延の発生、が考えられる。一方、伝送遅延時間が減少する要因は、スレーブの時刻がマスタ10の時刻よりも進んだ場合が考えられる。
スレーブ20、30および40は、周期パケット70を受信すると、上述した差分βとして、揺らぎ71、72および73を補正情報蓄積部203にそれぞれ記録する。
時刻T11にマスタ10から送信された周期パケット80は、本来であれば、時刻T12にスレーブ20に到着する筈である。しかし、スレーブ20の時刻とマスタ10の時刻のずれ、または処理遅延の影響により、伝送遅延時間に揺らぎ81が発生し、本来とは異なる到着時刻に周期パケット80がスレーブ20に到着している。また、周期パケット80は、スレーブ20により転送された後、本来であれば、時刻T13にスレーブ30に到着する筈であるが、伝送遅延時間に揺らぎ82が発生し、本来とは異なる到着時刻にスレーブ30に到着している。また、周期パケット80は、スレーブ30により転送された後、本来の到着時刻である時刻T14にスレーブ40に到着している。よって、揺らぎ83は0となっている。
スレーブ20、30および40は、周期パケット80を受信すると、上述した差分βとして、揺らぎ81、82および83を補正情報蓄積部203にそれぞれ記録する。
時刻T16にマスタ10から送信された周期パケット90は、本来であれば、時刻T17にスレーブ20に到着する筈である。しかし、スレーブ20の時刻とマスタ10の時刻のずれ、または処理遅延の影響により、伝送遅延時間に揺らぎ91が発生し、本来とは異なる到着時刻に周期パケット90がスレーブ20に到着している。また、周期パケット90は、スレーブ20により転送された後、本来であれば、時刻T18にスレーブ30に到着する筈であるが、伝送遅延時間に揺らぎ92が発生し、本来とは異なる到着時刻にスレーブ30に到着している。また、周期パケット90は、スレーブ30により転送された後、本来の到着時刻である時刻T19にスレーブ40に到着している。よって、揺らぎ93は0となっている。
ここで、スレーブ20への周期パケット90の伝送遅延時間は揺らぎ91を含むが、補正閾値51より大きいものとする。このようなケースでは、スレーブ30および40は、周期パケット90を受信すると、上述した差分βとして、揺らぎ92および93を補正情報蓄積部203にそれぞれ記録する。一方、スレーブ20は、揺らぎ91を補正情報蓄積部203に記録しない。すなわち、スレーブ20は、周期パケット90を受信した場合には差分βを補正情報蓄積部203に記録しない。この場合、周期パケット90の受信が完了した時点では、スレーブ20の補正情報蓄積部203は、0、揺らぎ71および揺らぎ81を上述した差分βとして記録するとともに、揺らぎを記録した回数すなわち差分βを記録した回数(ここでは3回)を記録することになる。揺らぎ91に関しては、上述した補正閾値αに相当する補正閾値51を超えているため、スレーブ20の補正情報蓄積部203は記録しない。
以下、同様にして、マスタ10は周期パケットを送信し、スレーブ20、30および40は、周期パケットを受信するごとに、差分βを算出し、差分βが補正閾値α以下であれば、補正情報蓄積部203に記録し、差分βの記録回数nをインクリメントする。
スレーブ20、30および40は、記録回数nがNになると、以下の計算を行う。以下の計算はスレーブ20、30および40の補正時間算出部204が行う。マスタ10から周期パケット60が到着する本来の時刻を示す周期通信の開始カウンタ値をCS、周期パケットが送信される周期である通信周期をP、通信周期が経過した回数を示す周期回数をM、補正閾値をα、揺らぎ、すなわち本来の伝送遅延時間との差分をβ、差分の記録回数をN、補正値をγ、補正後のカウンタ値をCとすると、補正値を平均値で求めるとすれば、補正時間算出部204は、以下の式(1)および(2)に従い、周期回数Mのカウンタ値Cを算出する。カウンタ値Cは、時刻補正後に最初に受信する周期パケットの到着予想時刻を示す。補正値γは差分βの平均値である。
C=CS+P×M+γ …(1)
γ=Σβ/N、ただし−α≦β≦α …(2)
γ=Σβ/N、ただし−α≦β≦α …(2)
カウンタ205が1μ秒ごとに1増加するものとした場合、マスタ10の時刻との差である時刻の補正値は、γ(μ秒)となる。
なお、揺らぎは負の値になることがあるため、βおよびγは負の値となることもある。また、補正値γの算出方法は、平均値だけでなく中心値または最尤値としてもよい。補正に用いる回数は時間であってよい。すなわち、規定時間が経過するごとに、補正情報蓄積部203が記録している差分βおよび記録回数Nに基づいて補正値γを算出してもよい。本発明では補正値γを算出するためのアルゴリズムについては規定しない。
以上のように、本実施の形態のネットワークシステムにおいて、スレーブ20、30および40は自装置の時刻をマスタ10の時刻に同期させた後、マスタ10から定周期で送信される周期パケットを受信すると、自装置の時刻とマスタ10の時刻のずれを示す差分βを算出し、差分βに基づいて時刻の補正値を算出することとした。これにより、スレーブ20、30および40は、自装置の時刻をマスタの時刻に同期させた後、トラフィックが増加するのを回避しつつ時刻を補正することができる。すなわち、自装置の時刻をマスタの時刻に同期させる処理で必要なトラフィックを削減することができる。特に、マスタがスレーブの動作を制御するための送信を行っている状態での時刻補正動作ではトラフィックが増加しないため、マスタによるスレーブの制御動作に時刻補正動作が悪影響を与えるのを防止できる。
実施の形態2.
実施の形態2のネットワークシステムについて説明する。なお、ネットワークシステムの構成およびネットワークシステムを構成している通信装置の構成は実施の形態1と同様である。
実施の形態2のネットワークシステムについて説明する。なお、ネットワークシステムの構成およびネットワークシステムを構成している通信装置の構成は実施の形態1と同様である。
モーションコントロールシステムで使用される通信方式として、マスタと通信するスレーブを周期的に切り替えながら行う方式が存在する。図1に示した構成のネットワークシステムにおいて、例えば、図9に示したように、まず、マスタ10とスレーブ20がある通信周期で通信を行い、次の通信周期ではマスタ10とスレーブ30が通信を行う。さらに次の通信周期ではマスタ10とスレーブ40が通信を行い、マスタ10とスレーブ40の通信周期が終了すると、次の通信周期ではマスタ10とスレーブ20が通信する。以下、同様にして、各スレーブが順番にマスタ10と通信する。各通信周期ではマスタ10と決められた1台のスレーブが通信を行う。マスタ10は、各通信周期の開始時には、その通信周期で通信を行うスレーブ宛に周期パケットを送信する。
このような、マスタ10が通信相手のスレーブを一定周期(通信周期)で切り替えて各スレーブと順番に通信を行い、かつ各通信周期において周期パケットを最初に送信する構成の場合、スレーブ20は、受信したパケットのアドレスに基づいて、受信パケットが周期パケットか否かを判別できる。すなわち、連続して受信した2つのパケットの宛先アドレスが異なる場合、後から受信したパケットが周期パケットとなるので、スレーブ20は、マスタ10からパケットを受信するごとに、受信パケットの宛先アドレスを確認し、前回の受信パケットの宛先アドレスと異なる場合、受信パケットが周期パケットであると判別できる。スレーブ30も同様に、受信したパケットの宛先アドレスに基づいて、受信したパケットが周期パケットか否かを判別できる。
図9の例では、周期パケットの宛先アドレスにスレーブ20、30または40のアドレスを設定しているため、スレーブ40は受信したパケットの宛先アドレスのみに基づいて受信パケットが周期パケットか否かを判別することはできない。しかし、スレーブ40に周期パケットが到着する前は、通信周期の2倍以上の時間にわたってパケットがスレーブ40に到着しない状態が続く。そのため、スレーブ40は、例えば、パケットを受信しない状態が通信周期の2倍以上の時間にわたって続いた後に最初に受信したパケットを周期パケットと判別できる。
また、マスタ10が、周期パケットの宛先アドレスにブロードキャストアドレスを設定して送信する場合、各スレーブは、受信したパケットの宛先がユニキャストアドレスからブロードキャストアドレスに変化したか否かを監視することにより、受信したパケットが周期パケットか否かを判別できる。
以上のように、マスタ10が通信相手のスレーブを一定周期(通信周期)で切り替えて各スレーブと順番に通信を行い、かつ各通信周期において周期パケットを最初に送信する構成の場合、各スレーブは、受信したパケットの宛先アドレスに基づいて、周期パケットの受信を検知し、実施の形態1と同様の手順で時刻を補正することができる。
実施の形態3.
実施の形態3のネットワークシステムについて説明する。なお、ネットワークシステムの構成およびネットワークシステムを構成している通信装置の構成は実施の形態1と同様である。
実施の形態3のネットワークシステムについて説明する。なお、ネットワークシステムの構成およびネットワークシステムを構成している通信装置の構成は実施の形態1と同様である。
ネットワークシステムを構成している通信装置のうち、マスタ10が無線LANのアクセスポイント、スレーブ20、30および40が無線LANの端末の場合、実施の形態1で説明した周期パケットとしてビーコンを使用することができる。
IEEE802.11規格の無線LANでは、アクセスポイントが周期的にビーコンを送信する。そのため、ネットワークシステムを無線LANシステムのアクセスポイントおよび端末で実現する場合、端末であるスレーブ20、30および40は、アクセスポイントであるマスタ10から周期的に送信されるビーコンを実施の形態1で説明した周期パケットとして扱い、ビーコンの受信時刻に基づいて自装置の時刻を補正することが可能である。
また、ネットワークシステムをLANシステムとした場合、LANを構成している各通信装置が他の通信装置の状態確認などを行うために周期的に送信するハートビートパケットを実施の形態1で説明した周期パケットとして使用することも可能である。なお、LANシステムは、無線LANシステムであってもよいし有線LANシステムであってもよい。ハートビートパケットか否かは、スレーブとして動作する各通信装置のパケット解析部202が、受信したパケットのデータ部を解析することにより判別する。各スレーブが受信するパケットの構成は、実施の形態1で説明した構成、すなわち、図5に示した構成と同じである。
以上のように、無線LANのアクセスポイントおよび端末によりネットワークシステムを実現した場合、周期パケットとしてビーコンまたはハートビートパケットを使用することにより、実施の形態1と同様の手順で各スレーブが時刻を補正することができる。また、有線LANシステムでネットワークシステムを実現した場合、周期パケットとしてハートビートパケットを使用し、実施の形態1と同様の手順で各スレーブが時刻を補正することができる。
なお、無線LANのアクセスポイントおよび端末によりネットワークシステムを実現した場合、各スレーブは、ビーコンおよびハートビートパケットの双方を周期パケットとして扱い、これらの受信時刻に基づいて自装置の時刻を補正するようにしてもよい。
ここで、実施の形態1,2では、マスタと各スレーブが通信する通信周期の最初に周期パケットが送信させるものとして説明を行った。しかし、上記のハートビートパケットは、通信周期の最初以外で送信される周期パケットに該当する。また、通信周期の最後を示すパケットを送信するシステムも考えられる。このような、通信周期の最初以外で周期パケットが送信される場合であっても、周期パケットを利用した時刻補正が可能である。通信周期の最初以外で周期パケットが送信される場合であっても各スレーブが時刻補正を行う手順は実施の形態1と同様である。
上記のハートビートパケットを周期パケットとして使用する場合の例を説明する。周期パケットをハートビートパケットとする場合、マスタ1は、図6に示した周期通信開始パケット110を送信する際、周期通信の開始時刻である周期パケットの送信開始時刻の情報に代えて、周期通信開始パケット110を送信した後の最初のハートビートパケットの送信時刻の情報を送信する。なお、周期パケットの送信周期はハートビートパケットの送信周期とする。
ハートビートパケットの送信周期をP’、周期通信開始パケット110を送信した後の最初のハートビートパケットの送信時刻をCS、送信時刻CSと周期通信の開始時刻とのオフセットをkとすると、周期通信の開始カウンタ値CS’は、次式(3)で表される。また、実施の形態1において式(1)で示したカウンタ値Cは、次式(4)で表される。
CS’=CS+k …(3)
C=CS+k+P’×M+γ …(4)
C=CS+k+P’×M+γ …(4)
実施の形態4.
実施の形態4のネットワークシステムについて説明する。なお、ネットワークシステムの構成およびネットワークシステムを構成している通信装置の構成は実施の形態1と同様である。
実施の形態4のネットワークシステムについて説明する。なお、ネットワークシステムの構成およびネットワークシステムを構成している通信装置の構成は実施の形態1と同様である。
各実施の形態で説明した時刻補正動作は、従来の時刻同期手順で使用していた時刻同期を実現するための専用のパケットを使用して時刻を補正するのではなく、他の周期パケットを用いて時刻を補正するため、揺らぎを測定する周期パケットは毎回同じタイミングで受信される必要がある。すなわち、周期パケットが途中で紛失し再送パケットとして受信され、かつ再送かどうかを示す情報がなければ、周期パケットの実際の受信タイミングと本来受信すべきタイミングの誤差がどの程度であるかを正確に判断できなくなる。従って、実施の形態1で説明した補正閾値αは、本来周期パケットを受信する時刻である周期パケットの到着予想時刻よりも1パケット分以上前後しないようにするのが望ましい。例えば、図4のEthernetフレームを100Mbpsの回線を使用して最大負荷で通信する場合、最小フレーム長は84バイトであるから、このフレームの転送時間は6.72μ秒である。この場合には、補正閾値αを6.72μ秒より小さい値とするのが望ましい。補正閾値をこのように設定することで、再送された周期パケットの受信時刻を用いて時刻を補正するのを回避できる。転送時間とは、フレームを転送する処理の所要時間である。逆に、実効スループットが小さく、送信するパケットの間隔が大きければ、補正閾値αの値を大きくしてよいが、この値が大きすぎると再送パケットと区別しにくくなるため、時刻補正の精度が悪くなる。そのため、システムに要求される時刻同期精度が実現可能な値を補正閾値αに設定する。
このように、本実施の形態の各スレーブが時刻補正動作で使用する補正閾値αは、1パケットの転送処理の所要時間よりも小さな値に設定する。これにより、再送された周期パケットなど、遅延揺らぎが大きいパケットを受信した場合の差分βを除外し、遅延揺らぎが小さい周期パケットを受信した場合の差分βのみを補正情報蓄積部203に記録することができる。よって、遅延揺らぎが小さい周期パケットを受信した場合の差分βのみを用いて補正時間算出部204が補正値γを算出することになり、時刻補正の精度が劣化するのを防止できる。
実施の形態5.
実施の形態5のネットワークシステムについて説明する。なお、ネットワークシステムの構成およびネットワークシステムを構成している通信装置の構成は実施の形態1と同様である。
実施の形態5のネットワークシステムについて説明する。なお、ネットワークシステムの構成およびネットワークシステムを構成している通信装置の構成は実施の形態1と同様である。
実施の形態1のスレーブでは、周期回数Mのカウンタ値Cの補正で使用する補正値γの計算を、差分βをN回記録した場合に行うようにしていた。しかし、差分βをN回記録する前に時刻の同期ずれが大きくなり差分βが補正閾値αを継続して超えているような状態となる可能性がある。この場合、差分βの記録回数がNとならず、補正が実行されない。そのため、各スレーブは、差分βの直近の平均値、すなわち補正値γが補正閾値αを超えそうになった場合、または、差分βの増減の傾向が補正閾値αを超えそうになった場合にカウンタ値Cを補正するのが望ましい。
例えば、上記Nを細分化し、N(0)、N(1)、…、N(t)、…、とし、それぞれの補正値をγ(0)、γ(1)、…、γ(t)、…、とする。現在時間tにおける補正値γ(t)から次の時間t+1の補正値γ(t+1)を予測すると次式(5)となる。
γ(t+1)=γ(t)+(γ(t)−γ(t−1)) …(5)
γ(t+1)=γ(t)+(γ(t)−γ(t−1)) …(5)
そのため、各スレーブでは、予測した補正値γ(t+1)が次式(6)を満足するか否かを監視し、満足する場合には、補正処理、すなわち、図7に示したステップS20およびS21の処理を実行する。ステップS20では、補正時間算出部204が、補正情報蓄積部203がそれまで保持していた差分βを用いて補正値γを算出する。
|γ(t+1)|>α …(6)
|γ(t+1)|>α …(6)
また、各スレーブでは、差分βが規定回数にわたって補正閾値αよりも大きくなっている状態を検知した場合に補正処理を行うようにしてもよい。
このように、本実施の形態のスレーブは、時刻の同期ずれ、すなわち差分βが大きくなったと判断した場合、補正処理を実行する。これにより、補正処理が実行されなくなるのを回避できる。
なお、各実施の形態では、モーションコントロールシステムのマスタが時刻の発生源となり、マスタの時刻に各スレーブが時刻を合わせることとしたが、スレーブの中の1台を時刻の発生源とし、これに他のスレーブ、マスタが時刻を同期させるようにしてもよい。実施の形態3において周期パケットの例として説明したハートビートパケットは、無線LANを構成している各通信装置、すなわち、マスタに相当するアクセスポイントおよびスレーブに相当する端末のいずれからも送信される。従って、スレーブも周期パケットを送信することが可能な構成のシステムにおいては、スレーブを時刻の発生源とすることが可能である。スレーブを時刻の発生源とする場合、マスタは、時刻の発生源以外のスレーブと同様の手順で自装置の時刻を補正する。
以上の実施の形態に示した構成は、本発明の内容の一例を示すものであり、別の公知の技術と組み合わせることも可能であるし、本発明の要旨を逸脱しない範囲で、構成の一部を省略、変更することも可能である。
1,2,3 論理インタフェース、10 通信装置(マスタ)、20,30,40 通信装置(スレーブ)、11,12 パケット、201 物理インタフェース部、202 パケット解析部、203 補正情報蓄積部、204 補正時間算出部、205 カウンタ、206 カウンタ値保持部、207 パラメータ記憶部、300 バス、301 プロセッサ、302 メモリ、303 入出力インタフェース。
Claims (16)
- 時間をカウントするためのカウンタと、
自装置宛のパケットまたはブロードキャストされたパケットを受信した場合に前記カウンタのカウンタ値を記録するカウンタ値保持部と、
前記パケットがネットワーク内に定周期で送信されるパケットである周期パケットか否かを判定し、前記パケットが前記周期パケットである場合には前記カウンタ値保持部が記憶しているカウンタ値と前記周期パケットの本来の受信時刻を示すカウンタ値との差分を算出するパケット解析部と、
前記差分に基づいて、自装置の時刻と前記周期パケットの送信元の装置の時刻とのずれを補正するための補正値を算出する補正時間算出部と、
を備えることを特徴とする通信装置。 - 前記パケット解析部が算出した前記差分を記録する補正情報蓄積部、
を備え、
前記補正時間算出部は、前記補正情報蓄積部に蓄積された前記差分の個数が規定値に達した場合、前記補正情報蓄積部で記録されている差分を用いて前記補正値を算出する、
ことを特徴とする請求項1に記載の通信装置。 - 前記補正情報蓄積部は、前記パケット解析部で算出された差分に対応する時間が前記周期パケットの転送時間以下の場合に当該差分を記録する、
ことを特徴とする請求項2に記載の通信装置。 - 前記補正時間算出部は、前記差分に対応する時間が前記周期パケットの転送時間以上となることが予測される場合に前記補正値を算出することを特徴とする請求項1に記載の通信装置。
- 他の通信装置の時刻に自装置の時刻を同期させて動作する通信装置における時刻補正方法であって、
自装置宛のパケットまたはブロードキャストされたパケットを受信した場合に時刻をカウントするためのカウンタのカウンタ値を記録するカウンタ値記録ステップと、
前記パケットがネットワーク内に定周期で送信されるパケットである周期パケットか否かを判定するパケット判定ステップと、
前記パケットが前記周期パケットである場合に前記カウンタ値記録ステップで記録したカウンタ値と前記周期パケットの本来の受信時刻を示すカウンタ値との差分を算出する差分算出ステップと、
前記差分に基づいて、自装置の時刻と前記周期パケットの送信元の装置の時刻とのずれを補正するための補正値を算出する補正値算出ステップと、
を含むことを特徴とする時刻補正方法。 - 定周期でパケットを送信するマスタの通信装置と、
自装置の時刻を前記マスタの通信装置の時刻に同期させて動作するスレーブの通信装置と、
を備え、
前記スレーブの通信装置は、
時間をカウントするためのカウンタと、
自装置宛のパケットまたはブロードキャストされたパケットを受信した場合に前記カウンタのカウンタ値を記録するカウンタ値保持部と、
前記パケットが前記マスタの通信装置から定周期で送信されたパケットである周期パケットか否かを判定し、前記パケットが前記周期パケットである場合には前記カウンタ値保持部が記憶しているカウンタ値と前記周期パケットの本来の受信時刻を示すカウンタ値との差分を算出するパケット解析部と、
前記差分に基づいて、自装置の時刻と前記マスタの通信装置の時刻とのずれを補正するための補正値を算出する補正時間算出部と、
を備えることを特徴とするネットワークシステム。 - 前記マスタの通信装置が、一定周期で通信相手のスレーブの通信装置を切り替えながら前記スレーブの通信装置の各々と順番に通信し、かつ通信相手を切り替えた後に宛先がブロードキャストアドレスの前記周期パケットを送信する場合、
前記パケット解析部は、連続して受信したパケットの宛先アドレス同士を比較することにより、前記周期パケットを受信したか否かを判別する、
ことを特徴とする請求項6に記載のネットワークシステム。 - 前記マスタの通信装置を無線LANのアクセスポイント、
前記スレーブの通信装置を無線LANの端末、
前記周期パケットを無線LANのビーコンまたはハートビートパケットとする、
ことを特徴とする請求項6に記載のネットワークシステム。 - 前記マスタの通信装置および前記スレーブの通信装置がLANを構成し、
前記周期パケットをハートビートパケットとする、
ことを特徴とする請求項6に記載のネットワークシステム。 - 他の通信装置に接続する通信装置であって、
他の前記通信装置からデータを受信する受信部と、
他の前記通信装置にデータを送信する送信部と、
前記受信部による周期パケットの受信タイミングと前記送信部による周期パケットの送信タイミングとの間にずれが生じた場合、前記送信部による送信タイミングを補正する制御部と、
を備えることを特徴とする通信装置。 - 前記制御部は、前記ずれがフレーム転送時間を超えた場合に前記送信タイミングを補正することを特徴とする請求項10に記載の通信装置。
- 前記制御部は、前記ずれの積算値が所定値を超えた場合に前記送信タイミングを補正することを特徴とする請求項10に記載の通信装置。
- 前記制御部は、前記ずれの平均値が所定値を超えた場合に前記送信タイミングを補正することを特徴とする請求項10に記載の通信装置。
- 前記制御部は、前記受信部が受信したデータが前記周期パケットか否かを判断する周期パケット検出部を備えたことを特徴とする請求項10に記載の通信装置。
- 他の通信装置に接続する通信装置であって、
時刻カウンタに基づくタイミングで他の前記通信装置からデータを受信する受信部と、
前記受信部による周期パケットの受信タイミングと前記時刻カウンタとの間にずれが生じた場合、前記時刻カウンタを補正する制御部と、
を備えたことを特徴とする通信装置。 - 前記制御部は、前記受信部が受信したデータが前記周期パケットか否かを判断する周期パケット検出部を備えたことを特徴とする請求項15に記載の通信装置。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2015/068278 WO2016208020A1 (ja) | 2015-06-24 | 2015-06-24 | 通信装置、時刻補正方法およびネットワークシステム |
Publications (2)
Publication Number | Publication Date |
---|---|
JPWO2016208020A1 true JPWO2016208020A1 (ja) | 2017-06-29 |
JP6157760B2 JP6157760B2 (ja) | 2017-07-05 |
Family
ID=57586289
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2016566307A Expired - Fee Related JP6157760B2 (ja) | 2015-06-24 | 2015-06-24 | 通信装置、時刻補正方法およびネットワークシステム |
Country Status (3)
Country | Link |
---|---|
JP (1) | JP6157760B2 (ja) |
CN (1) | CN107111280B (ja) |
WO (1) | WO2016208020A1 (ja) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108770056B (zh) * | 2018-05-31 | 2020-12-04 | 成都精位科技有限公司 | 超宽带同步信号修正方法、装置及定位基站 |
WO2020059137A1 (ja) * | 2018-09-21 | 2020-03-26 | 三菱電機株式会社 | 通信装置、通信システム、通信方法および通信プログラム |
CN112703704B (zh) * | 2018-09-21 | 2022-07-29 | 三菱电机株式会社 | 通信装置、通信系统、通信方法及计算机可读取的记录介质 |
WO2020059139A1 (ja) * | 2018-09-21 | 2020-03-26 | 三菱電機株式会社 | 通信装置、通信システム、通信方法および通信プログラム |
WO2020217286A1 (ja) * | 2019-04-22 | 2020-10-29 | 三菱電機株式会社 | 時刻同期システム、マスタ装置、スレーブ装置およびプログラム |
CN112289429A (zh) * | 2019-07-25 | 2021-01-29 | 深圳市理邦精密仪器股份有限公司 | 中央监护站、监护系统及数据回顾方法和装置 |
WO2021196090A1 (zh) * | 2020-04-01 | 2021-10-07 | 深圳市汇顶科技股份有限公司 | 时间同步及广播设定方法、芯片、电子设备及存储介质 |
JP7243695B2 (ja) * | 2020-08-25 | 2023-03-22 | 横河電機株式会社 | 情報処理装置、情報処理システム、及び情報処理方法 |
CN113543303B (zh) * | 2021-06-30 | 2022-10-21 | 紫光展锐(重庆)科技有限公司 | 一种同步方法、装置、芯片及模组设备 |
CN114124284A (zh) * | 2021-12-06 | 2022-03-01 | 青岛鼎信通讯股份有限公司 | 一种应用于采集终端的分层时钟治理优化方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH09282046A (ja) * | 1996-04-09 | 1997-10-31 | Meidensha Corp | システムの時刻合わせ方式 |
JP2005184616A (ja) * | 2003-12-22 | 2005-07-07 | Yokogawa Electric Corp | 通信制御システム |
JP2010019566A (ja) * | 2008-07-08 | 2010-01-28 | Casio Comput Co Ltd | 時刻受信装置および時刻修正方法 |
JP2012147186A (ja) * | 2011-01-11 | 2012-08-02 | Denso Corp | 無線通信装置及び無線通信システム |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3698074B2 (ja) * | 2001-06-15 | 2005-09-21 | 日本電気株式会社 | ネットワーク同期方法、lsi、バスブリッジ、ネットワーク機器、およびプログラム |
-
2015
- 2015-06-24 CN CN201580058037.2A patent/CN107111280B/zh not_active Expired - Fee Related
- 2015-06-24 WO PCT/JP2015/068278 patent/WO2016208020A1/ja active Application Filing
- 2015-06-24 JP JP2016566307A patent/JP6157760B2/ja not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH09282046A (ja) * | 1996-04-09 | 1997-10-31 | Meidensha Corp | システムの時刻合わせ方式 |
JP2005184616A (ja) * | 2003-12-22 | 2005-07-07 | Yokogawa Electric Corp | 通信制御システム |
JP2010019566A (ja) * | 2008-07-08 | 2010-01-28 | Casio Comput Co Ltd | 時刻受信装置および時刻修正方法 |
JP2012147186A (ja) * | 2011-01-11 | 2012-08-02 | Denso Corp | 無線通信装置及び無線通信システム |
Also Published As
Publication number | Publication date |
---|---|
CN107111280B (zh) | 2019-05-07 |
JP6157760B2 (ja) | 2017-07-05 |
WO2016208020A1 (ja) | 2016-12-29 |
CN107111280A (zh) | 2017-08-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6157760B2 (ja) | 通信装置、時刻補正方法およびネットワークシステム | |
US10652160B2 (en) | On-vehicle system, gateway, relay, non-transitory computer-readable medium storing program, information processing method, information processing system, and vehicle | |
US10523352B2 (en) | Forward error correction for incomplete blocks | |
CN105723657B (zh) | 交换机、控制器、系统及链路质量检测方法 | |
US9906320B2 (en) | Industrial network apparatus and data communication method | |
JP6376229B2 (ja) | 通信システム、通信装置および通信方法 | |
JP5923430B2 (ja) | 通信制御装置 | |
JP6265058B2 (ja) | ネットワーク伝送システム、そのマスタノード、スレーブノード | |
WO2017101528A1 (zh) | 一种时钟链路切换方法、装置及基站 | |
WO2015117501A1 (zh) | 一种时间同步方法、可编程逻辑器件、单板及网元 | |
JP5127482B2 (ja) | タイミング同期方法、同期装置、同期システム及び同期プログラム | |
JP6848769B2 (ja) | 車載中継装置、情報処理システム、中継装置、情報処理方法、及びプログラム | |
EP3977692B1 (en) | Avoiding jitter in a communication system | |
US9730172B2 (en) | Base station device and method of updating counter of base station device | |
JP2022501892A (ja) | パケットの無線での送受信 | |
US11765094B2 (en) | Communication system with de-jitter buffer for reducing jitter | |
WO2020187422A1 (en) | Network entities and methods for a wireless network system for determining time information | |
US20230090803A1 (en) | Network Infrastructure Device, Communication Terminal and Method for Synchronizing Control Applications via a Communication Network for Transferring Time-Critical Data | |
JP6419340B2 (ja) | 非決定論的ネットワークを介してネットワークデバイス間でデータを送信する方法 | |
WO2015162763A1 (ja) | ネットワークシステム | |
JP5656306B1 (ja) | 同期確立方法 | |
US20220050440A1 (en) | Communication Device and Method for Data Transmission within an Industrial Communication Network | |
CN112867132B (zh) | 一种基于ptp的多链路时延抖动优化方法及装置 | |
JP7315980B2 (ja) | 基地局、通信システム、及び、基地局の制御方法 | |
WO2023119356A1 (ja) | 制御装置、制御方法およびプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20170331 |
|
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: 20170509 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20170606 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6157760 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |