(57)【要約】【課題】起動から目標水準の同期精度に達するまでの時間の短縮を図る。【解決手段】同期装置１０は、同期部２０Ａと、決定部２０Ｌと、を備える。同期部２０Ａは、同期周期毎に同期対象装置１２と通信することによって受信した時刻情報に応じて、時刻同期を行う。決定部２０Ｌは、同期装置１０の起動からの経過時間が判定時間を未超過である場合、同期精度が目標水準以上であるときの第１同期周期より短い第２同期周期を、同期周期として決定する。【選択図】図２
2018110326.tif 000002
【特許請求の範囲】
【請求項１】
同期周期毎に同期対象装置と通信することによって受信した時刻情報に応じて時刻同期を行う同期部と、
当該同期装置の起動からの経過時間が判定時間を未超過である場合、同期精度が目標水準以上であるときの第１同期周期より短い第２同期周期を、前記同期周期として決定する決定部と、
を備える同期装置。
【請求項２】
前記決定部は、
前記経過時間が前記判定時間を超過している場合、前記第１同期周期を前記同期周期として決定する、請求項１に記載の同期装置。
【請求項３】
前記判定時間を取得する判定時間取得部を備え、
前記決定部は、該判定時間を用いて、前記同期周期を決定する、
請求項１または請求項２に記載の同期装置。
【請求項４】
前記同期対象装置で計時される基準時刻と当該同期装置のローカル時刻との時刻差の変化が急変を示すか否かを判定する急変判定部を備え、
前記決定部は、
前記同期装置の起動からの経過時間が前記判定時間を超過している場合で、且つ、前記急変を示すと判定された場合、前記第２同期周期を前記同期周期として決定する、
請求項１〜請求項３の何れか１項に記載の同期装置。
【請求項５】
前記同期対象装置で計時される基準時刻と当該同期装置のローカル時刻との時刻差を補正するための補正率を取得する補正率取得部を更に備え、
前記決定部は、
前記補正率に応じて、前記第２同期周期を決定する、
請求項１〜請求項４の何れか１項に記載の同期装置。
【請求項６】
前記補正率は、０より大きく且つ１未満の値であり、
前記決定部は、
前記判定時間と前記補正率との積を、前記第２同期周期として決定する、
請求項５に記載の同期装置。
【請求項７】
前記補正率取得部は、
ＰＩＤ制御における比例ゲイン、積分ゲイン、および微分ゲインによって表される前記補正率を取得し、
前記決定部は、
前記補正率に対する第３同期周期との対応関係を示す関係情報における、取得した前記補正率に対応する前記第３同期周期を、前記第２同期周期として決定する、
請求項５に記載の同期装置。
【請求項８】
当該同期装置と前記同期対象装置との間の通信遅延時間に応じて、前記補正率を導出する補正率導出部を備え、
前記補正率取得部は、前記補正率導出部から前記補正率を取得する、
請求項５に記載の同期装置。
【請求項９】
前記補正率導出部は、
前記通信遅延時間の統計値に応じて前記補正率を決定する、
請求項８に記載の同期装置。
【請求項１０】
同期装置で実行される同期方法であって、
同期周期毎に同期対象装置と通信することによって受信した時刻情報に応じて時刻同期を行うステップと、
決定部が、前記同期装置の起動からの経過時間が判定時間を未超過である場合、同期精度が目標水準以上であるときの第１同期周期より短い第２同期周期を、前記同期周期として決定するステップと、
を含む同期方法。
【請求項１１】
同期装置のコンピュータに、
同期周期毎に同期対象装置と通信することによって受信した時刻情報に応じて時刻同期を行うステップと、
前記同期装置の起動からの経過時間が判定時間を未超過である場合、同期精度が目標水準以上であるときの第１同期周期より短い第２同期周期を、前記同期周期として決定するステップと、
を実行させるための同期プログラム。
【請求項１２】
同期装置と同期対象装置とを備える同期システムであって、
前記同期装置は、
同期周期毎に同期対象装置と通信することによって受信した時刻情報に応じて時刻同期を行う同期部と、
前記同期装置の起動からの経過時間が判定時間を未超過である場合、同期精度が目標水準以上であるときの第１同期周期より短い第２同期周期を、前記同期周期として決定する決定部と、
を備える、同期システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施の形態は、同期装置、同期方法、同期プログラム、および同期システムに関する。
【背景技術】
【０００２】
複数の機器間で時刻同期を行うシステムが知られている。例えば、一定の周期で他の機器に対して時刻合せの要求信号を送信し、該要求信号に対して受信した応答信号を用いて、時刻同期を行う機器が開示されている。また、時刻同期後の時刻とサーバの時刻との誤差が所定値以内である場合に、同期周期を初期設定より大きくする技術が開示されている。
【０００３】
しかしながら、従来では、機器の起動から目標水準の同期精度に達するまでに要する時間を制限できず、目標水準を満たす時刻同期までに時間を要する場合があった。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００３−１１０５６２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
本発明が解決しようとする課題は、目標水準の同期精度に達するまでの時間の短縮を図ることができる、同期装置、同期方法、同期プログラム、および同期システムを提供することである。
【課題を解決するための手段】
【０００６】
実施の形態の同期装置は、同期部と、決定部と、を備える。同期部は、同期周期毎に同期対象装置と通信することによって受信した時刻情報に応じて時刻同期を行う。決定部は、当該同期装置の起動からの経過時間が判定時間を未超過である場合、同期精度が目標水準以上であるときの第１同期周期より短い第２同期周期を、前記同期周期として決定する。
【図面の簡単な説明】
【０００７】
【図１】同期システムの構成例を示す図。
【図２】同期装置の構成例を示す図。
【図３】同期メッセージの通信手順の一例を示すシーケンス図。
【図４】情報処理の手順の一例を示すフローチャート。
【図５】同期システムの構成の一例を示す図。
【図６】情報処理の手順の一例を示すフローチャート。
【図７】同期システムの構成例を示す図。
【図８】情報処理の手順の一例を示すフローチャート。
【図９】ハードウェア構成の一例を示す図。
【発明を実施するための形態】
【０００８】
以下、添付図面を参照しながら、実施の形態を詳細に説明する。
【０００９】
（第１の実施の形態）
図１は、本実施の形態の同期システム１０００の構成の一例を示す図である。図１に示すように、同期システム１０００は、同期対象装置１２と、同期装置１０と、を備える。同期対象装置１２と同期装置１０とは、ネットワーク１４を介して接続されている。
【００１０】
ネットワーク１４は、例えば、スイッチ装置などの通信を中継する１以上のネットワーク装置により実現できる。
【００１１】
同期対象装置１２は、時刻同期用の基準時刻を計時する。同期対象装置１２は、例えば、時刻同期元となるサーバ装置などのコンピュータである。
【００１２】
同期装置１０は、サーバ装置である同期対象装置１２に対するクライアント装置である。同期装置１０は、ネットワーク１４を介して同期対象装置１２との間で時刻同期用の同期メッセージを通信（送受信）する。そして、同期装置１０は、同期対象装置１２から受信した同期メッセージに含まれる時刻情報を用いて、自身のローカル時刻を同期する。同期装置１０は、例えば、産業用機器である。
【００１３】
なお、同期システム１０００は、同期対象装置１２と通信する複数の同期装置１０を備えた構成であってもよい。また、同期システム１０００は、同期対象装置１２および同期装置１０以外の複数の装置を含んでいてもよい。
【００１４】
図２は、本実施の形態の同期装置１０の構成の一例を示す図である。同期装置１０は、制御部２０と、ＵＩ部２２と、を備える。制御部２０とＵＩ部２２とは、通信可能に接続されている。
【００１５】
ＵＩ部２２は、ユーザによる操作指示を受付ける入力機能と、各種画像を表示する表示機能と、を備える。なお、ＵＩ部２２は、少なくとも入力機能を備えた構成であればよい。入力機能は、例えば、キーボード、マウス、などによって実現する。表示機能は、例えば、ディスプレイによって実現する。なお、ＵＩ部２２は、入力機能と表示機能とを一体的に構成した、タッチパネルなどであってもよい。
【００１６】
制御部２０は、同期装置１０を制御する。制御部２０は、同期部２０Ａと、クロック部２０Ｂと、同期周期決定部２０Ｃと、を含む。同期部２０Ａは、通信部２０Ｄと、遅延時間推定部２０Ｅと、時刻差推定部２０Ｆと、時刻同期部２０Ｇと、を含む。同期周期決定部２０Ｃは、判定時間取得部２０Ｈと、水準判定部２０Ｉと、引込状態管理部２０Ｊと、急変判定部２０Ｋと、決定部２０Ｌと、を含む。
【００１７】
同期部２０Ａ、クロック部２０Ｂ、同期周期決定部２０Ｃ、通信部２０Ｄ、遅延時間推定部２０Ｅ、時刻差推定部２０Ｆ、時刻同期部２０Ｇ、判定時間取得部２０Ｈ、水準判定部２０Ｉ、引込状態管理部２０Ｊ、急変判定部２０Ｋ、および、決定部２０Ｌは、例えば、１または複数のプロセッサにより実現される。例えば上記各部は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）などのプロセッサにプログラムを実行させること、すなわちソフトウェアにより実現してもよい。上記各部は、専用のＩＣ（Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）などのプロセッサ、すなわちハードウェアにより実現してもよい。上記各部は、ソフトウェアおよびハードウェアを併用して実現してもよい。複数のプロセッサを用いる場合、各プロセッサは、各部のうち１つを実現してもよいし、各部のうち２つ以上を実現してもよい。
【００１８】
クロック部２０Ｂは、同期装置１０内の時刻であるローカル時刻を計時する。ここで、クロック部２０Ｂは、自身が計時するローカル時刻を用いて同期周期を計時するタイマーや、ローカル時刻を用いて経過時間を計時するタイマーとしても機能する。経過時間は、同期装置１０の起動からの経過時間である。
【００１９】
同期周期は、同期装置１０から同期対象装置１２へ送信する同期メッセージの送信周期である。同期周期は、同期周期決定部２０Ｃによって決定される（詳細後述）。
【００２０】
同期部２０Ａは、同期周期決定部２０Ｃによって決定された同期周期ごとに同期対象装置１２と通信することによって、同期対象装置１２から時刻情報を受信する。そして、同期部２０Ａは、受信した時刻情報に応じて、クロック部２０Ｂに対して時刻同期を行う。
【００２１】
図３は、同期装置１０と同期対象装置１２との同期メッセージの通信手順の一例を示すシーケンス図である。
【００２２】
同期装置１０と同期対象装置１２の間で通信（送受信）する同期メッセージには、同期要求メッセージと、該同期要求メッセージに対する応答である応答メッセージと、がある。
【００２３】
本実施の形態では、同期装置１０の同期部２０Ａが、同期周期決定部２０Ｃで決定された同期周期ごとに、同期要求メッセージを同期対象装置１２へ送信する。この同期要求メッセージには、例えば、同期装置１０のクロック部２０Ｂで計時されたローカル時刻を示すタイムスタンプＴ１が含まれる。
【００２４】
同期要求メッセージを受信した同期対象装置１２は、該同期要求メッセージに対する応答メッセージを、同期装置１０へ送信する。
【００２５】
応答メッセージは、タイムスタンプＴ２と、タイムスタンプＴ３と、を含む。タイムスタンプＴ２は、同期要求メッセージを受信した基準時刻を示す。タイムスタンプＴ３は、該同期要求メッセージに対する応答メッセージを送信した基準時刻を示す。タイムスタンプＴ２およびタイムスタンプＴ３が、同期対象装置１２から受信した時刻情報に相当する。
【００２６】
基準時刻は、同期対象装置１２により計時される時刻である。同期対象装置１２は、同期対象装置１２内の時刻である基準時刻を計時するクロック部を備える。同期対象装置１２は、同期装置１０から同期要求メッセージを受信した基準時刻を示すタイムスタンプＴ２と、該同期要求メッセージに対する応答メッセージを送信する基準時刻を示すタイムスタンプＴ３と、を含む該応答メッセージを、同期装置１０へ送信する。
【００２７】
同期装置１０の同期部２０Ａは、同期対象装置１２から応答メッセージを受信する。同期部２０Ａは、応答メッセージを受信した際に、同期装置１０のクロック部２０Ｂにより計時されたローカル時刻を示すタイムスタンプＴ４も管理する。
【００２８】
この、同期装置１０と同期対象装置１２との間の同期メッセージの往復は、同期周期ごとに周期的に行われる。そして、１回の同期メッセージの往復ごとに、同期装置１０が、同期・決定処理を実行する（ステップＳ１００）。
【００２９】
同期・決定処理は、同期処理と、決定処理と、を含む。同期処理は、応答メッセージに含まれる時刻情報（タイムスタンプＴ２、タイムスタンプＴ３）に応じた時刻同期を行う処理である。決定処理は、同期周期の決定を行う処理である。
【００３０】
同期・決定処理は、同期装置１０の同期部２０Ａおよび同期周期決定部２０Ｃの各々によって実行される（詳細後述）。
【００３１】
なお、図３には、同期装置１０から同期対象装置１２へ同期要求メッセージを送信し、同期対象装置１２から同期装置１０へ応答メッセージを送信する場合を示した。
【００３２】
しかし、同期対象装置１２から同期装置１０へ同期を督促するメッセージを送信し、そのメッセージをきっかけに同期装置１０から同期対象装置１２へ同期要求メッセージを送信してもよい。
【００３３】
なお、本実施の形態では、同期装置１０が同期・決定処理を実行する場合を一例として説明する。
【００３４】
図２に戻り説明を続ける。同期部２０Ａは、通信部２０Ｄと、遅延時間推定部２０Ｅと、時刻差推定部２０Ｆと、時刻同期部２０Ｇと、を含む。
【００３５】
通信部２０Ｄは、同期対象装置１２と通信する。具体的には、通信部２０Ｄは、同期周期決定部２０Ｃで決定された同期周期ごとに、同期メッセージを同期対象装置１２へ送信する。詳細には、通信部２０Ｄは、同期対象装置１２へ同期要求メッセージを前回送信した送信時間から、同期周期決定部２０Ｃで決定された同期周期に応じた時間を経過したときに、同期要求メッセージを同期対象装置１２へ送信する。そして、通信部２０Ｄは、同期要求メッセージを送信した際に、クロック部２０Ｂによって計時されたローカル時刻を、タイムスタンプＴ１とする（図３参照）。
【００３６】
また、通信部２０Ｄは、同期対象装置１２から応答メッセージを受信する。そして、通信部２０Ｄは、応答メッセージを受信した際に、クロック部２０Ｂによって計時されたローカル時刻を、タイムスタンプＴ４とする（図３参照）。
【００３７】
遅延時間推定部２０Ｅは、同期装置１０と同期対象装置１２との間の通信遅延時間を推定する。通信遅延時間とは、同期装置１０が、同期対象装置１２によって計時された基準時刻に応じて自身のローカル時刻を同期する際に発生する、実際の基準時刻からの遅延時間である。通信遅延時間は、例えば、同期対象装置１２による応答メッセージの送信から同期装置１０による該応答メッセージの受信までの通信に要する時間である。
【００３８】
しかし、同期対象装置１２が応答メッセージを送信する時刻（タイムスタンプＴ３）は、同期対象装置１２の基準時刻で計時された時刻である。一方、同期装置１０が応答メッセージを受信する時刻（タイムスタンプＴ４）は、同期装置１０のローカル時刻で計時された時刻である。同期装置１０側では、基準時刻とローカル時刻との誤差の実測値を得ることは出来ないため、通信遅延時間を直接計測することはできない。
【００３９】
このため、本実施の形態では、遅延時間推定部２０Ｅは、例えば、下記式（１）によって通信遅延時間を推定する。
【００４０】
通信遅延時間＝｛（Ｔ４−Ｔ１）−（Ｔ３−Ｔ２）｝／２      ・・・式（１）
【００４１】
式（１）中、Ｔ１〜Ｔ４の各々は、タイムスタンプＴ１〜タイムスタンプＴ４の各々を示す。なお、遅延時間推定部２０Ｅによる通信遅延時間の推定方法は、上記式（１）を用いる方法に限定されない。
【００４２】
次に、時刻差推定部２０Ｆについて説明する。時刻差推定部２０Ｆは、同期対象装置１２の基準時刻と、同期装置１０のクロック部２０Ｂによって計時されたローカル時刻と、の時刻差を推定する。ここで、同期装置１０が同期対象装置１２から応答メッセージを受信するタイミングと、同期対象装置１２が該応答メッセージを送信したタイミングと、の間には、上記通信遅延時間に相当するタイミング差が発生する。
【００４３】
すなわち、同期装置１０では、同期対象装置１２の基準時刻を直接実測することが出来ない。このため、同期装置１０の時刻差推定部２０Ｆは、同期対象装置１２の基準時刻を推定し、推定した基準時刻と、クロック部２０Ｂによって計時されたローカル時刻と、の時刻差を推定する。具体的には、時刻差推定部２０Ｆは、下記式（２）によって、時刻差を推定する。
【００４４】
時刻差＝（Ｔ３＋通信遅延時間）−Ｔ４    ・・・式（２）
【００４５】
上記式（２）中、Ｔ３およびＴ４は、上記式（１）と同様である。また、上記式（２）中の通信遅延時間は、上記式（１）によって推定された値である。すなわち、時刻差推定部２０Ｆは、タイムスタンプＴ３に通信遅延時間を加算した時間を、同期対象装置１２が応答メッセージを送信した基準時刻として推定する。そして、時刻差推定部２０Ｆは、推定した基準時刻と、該応答メッセージを受信したローカル時刻であるタイムスタンプＴ４との差を、時刻差として推定する。
【００４６】
次に、時刻同期部２０Ｇについて説明する。時刻同期部２０Ｇは、時刻差推定部２０Ｆで推定された時刻差を用いて、クロック部２０Ｂの時刻同期を行う。
【００４７】
例えば、時刻同期部２０Ｇは、時刻差推定部２０Ｆで推定された時刻差をクロック部２０Ｂに設定させる。これによって、クロック部２０Ｂは、計時するローカル時刻を補正する。この補正によって、クロック部２０Ｂによって経時されるローカル時刻が該時刻差分ずれ、同期対象装置１２により計時される基準時刻に時刻同期される。
【００４８】
次に、同期周期決定部２０Ｃについて説明する。上述したように、本実施の形態の同期装置１０では、同期周期決定部２０Ｃが、同期部２０Ａによる同期周期を決定する。
【００４９】
同期周期決定部２０Ｃは、判定時間取得部２０Ｈと、水準判定部２０Ｉと、引込状態管理部２０Ｊと、急変判定部２０Ｋと、決定部２０Ｌと、を含む。
【００５０】
判定時間取得部２０Ｈは、判定時間を取得する。
【００５１】
判定時間とは、同期装置１０の起動から目標水準を満たす同期精度の時刻同期が同期部２０Ａによってなされるまでに要する、目標時間である。目標水準を満たす同期精度とは、同期装置１０のローカル時刻と同期対象装置１２の基準時刻との時刻差が所定値以下であることを示す。この所定値は、予め設定すればよい。なお、目標水準を満たす、とは、目標水準以上であることと同じ意味である。
【００５２】
判定時間は、ユーザの任意の時間であればよい。なお、判定時間は、少なくとも第２周期以上であることが好ましい。
【００５３】
本実施の形態では、判定時間取得部２０Ｈは、ＵＩ部２２から判定時間を取得する。具体的には、ユーザが、ＵＩ部２２を操作することで、任意の判定時間を入力する。すると、ＵＩ部２２は、ユーザによる操作によって受付けた判定時間を、制御部２０へ出力する。これによって、制御部２０の判定時間取得部２０Ｈが、ＵＩ部２２から判定時間を取得する。
【００５４】
なお、判定時間取得部２０Ｈは、ＨＤＤ（ハードディスクドライブ）などの記憶部から、判定時間を取得してもよい。この場合、記憶部に記憶されている判定時間は、ユーザによるＵＩ部２２の操作指示などによって変更可能としてもよい。また、判定時間取得部２０Ｈは、ネットワーク１４を介して他の装置から判定時間を受信することで、判定時間を取得してもよい。
【００５５】
水準判定部２０Ｉは、同期装置１０の起動からの経過時間が、判定時間取得部２０Ｈで取得した判定時間を超過しているか否かを判定する。言い換えると、本実施の形態では、水準判定部２０Ｉは、同期装置１０の起動からの経過時間が判定時間を超過している場合、時刻同期部２０Ｇによるクロック部２０Ｂの同期精度が目標水準以上であると判別する。また、水準判定部２０Ｉは、同期装置１０の起動からの経過時間が判定時間を未経過である場合、時刻同期部２０Ｇによるクロック部２０Ｂの同期精度が目標水準未満であると判別する。
【００５６】
すなわち、本実施の形態では、水準判定部２０Ｉが、同期装置１０の起動からの経過時間と判定時間を用いて、クロック部２０Ｂの同期精度が目標水準以上であるか目標水準未満であるかを判別する。同期精度が目標水準以上である、とは、クロック部２０Ｂのローカル時刻の基準時刻に対する同期精度が目標水準を満たす状態であることを示す。同期精度が目標水準未満であるとは、クロック部２０Ｂのローカル時刻の基準時刻に対する同期精度が目標水準を満たしていない状態であることを示す。
【００５７】
本実施の形態では、水準判定部２０Ｉは、引込状態管理部２０Ｊによって管理されている引込状態が引込中である場合に、起動からの経過時間が判定時間を超過しているか否かを判定する。
【００５８】
引込状態とは、クロック部２０Ｂによって計時されるローカル時刻の基準時刻に対する同期精度が目標水準を満たした状態であるか否かを示す。引込状態には、引込中と、引込完了と、の２種類の状態がある。引込中とは、クロック部２０Ｂで計時されるローカル時刻の基準時刻に対する同期精度が、目標水準未満の状態であることを示す。引込完了とは、クロック部２０Ｂで計時されるローカル時刻の基準時刻に対する同期精度が、目標水準以上の状態であることを示す。
【００５９】
引込状態管理部２０Ｊは、同期装置１０のクロック部２０Ｂの引込状態が、引込中と引込完了の何れであるかを管理する。なお、引込状態管理部２０Ｊは、同期装置１０の起動時に、引込状態を引込中に設定する。そして、引込状態管理部２０Ｊは、後述する処理によって、引込状態を引込中から引込完了または、引込完了から引込中に遷移させる。
【００６０】
水準判定部２０Ｉは、引込状態管理部２０Ｊによって管理されている引込状態が引込中である場合に、同期装置１０の起動からの経過時間が判定時間を超過しているか否かを判定する。
【００６１】
決定部２０Ｌは、同期周期を決定する。本実施の形態では、決定部２０Ｌは、同期周期として、２種類の同期周期を予め用意している。本実施の形態では、決定部２０Ｌは、第１同期周期と、第２同期周期と、を予め記憶する。
【００６２】
第１同期周期は、同期精度が目標水準以上であるときの同期周期である。第２同期周期は、同期周期が目標水準未満であるときの同期周期である。第２同期周期は、第１同期周期より短い。
【００６３】
本実施の形態では、決定部２０Ｌは、判定時間を用いて同期周期を決定する。具体的には、水準判定部２０Ｉによって経過時間が判定時間を未超過であると判定された場合、決定部２０Ｌは、同期精度が目標水準未満であるとして、第２同期周期を同期周期として決定する。そして、決定部２０Ｌは、決定した同期周期を同期部２０Ａへ出力する。
【００６４】
そして、水準判定部２０Ｉによって経過時間が判定時間を超過していると判定された場合、引込状態管理部２０Ｊは、引込状態を引込完了に遷移させる。そして、この場合、決定部２０Ｌは、同期精度が目標水準以上であるとして、第１同期周期を同期周期として決定する。そして、決定部２０Ｌは、決定した同期周期を同期部２０Ａへ出力する。
【００６５】
なお、決定部２０Ｌは、第１同期周期および第２同期周期の各々として、それぞれ１つの値を予め記憶する形態に限定されない。例えば、決定部２０Ｌは、第１同期周期および第２同期周期の各々として、それぞれ、複数の値を予め記憶してもよい。
【００６６】
この場合、例えば、決定部２０Ｌは、第１同期周期としての複数の値と、経過時間と、を対応付けて予め記憶する。また、決定部２０Ｌは、第２同期周期としての複数の値と、経過時間と、を対応付けて予め記憶する。第２同期周期としての複数の値は、第１同期周期としての複数の値より小さい値であればよい。そして、決定部２０Ｌは、経過時間に対応する値として、経過時間に応じて段階的または連続的に大きくまたは小さくなる値を、予め設定すればよい。また、決定部２０Ｌは、これらの複数の値と経過時間との関係を示す関数を予め記憶してもよい。
【００６７】
そして、決定部２０Ｌは、経過時間に対応する値を記憶部から読取ることによって、第１同期周期および第２同期周期を決定してもよい。
【００６８】
一方、引込状態管理部２０Ｊによって管理されている引込状態が引込完了である場合には、急変判定部２０Ｋが、上記時刻差の変化が急変を示すか否かを判定する。急変判定部２０Ｋは、時刻差推定部２０Ｆで推定された時刻差を用いて、時刻差の変化が急変を示すか否かを判定する。
【００６９】
具体的には、急変判定部２０Ｋは、時刻差推定部２０Ｆで推定された時刻差と、前回時刻差推定部２０Ｆで推定された時刻差と、の差が急変閾値を連続して超えた回数が回数閾値以上となったときに、急変を示すと判定する。急変閾値および回数閾値は、予め設定すればよい。また、これらの急変閾値および回数閾値は、ユーザによるＵＩ部２２の操作指示などによって、変更可能としてもよい。
【００７０】
急変判定部２０Ｋによって時刻差の変化が急変を示すと判定された場合、引込状態管理部２０Ｊは、引込状態を引込完了から引込中に遷移させる。
【００７１】
そして、決定部２０Ｌは、急変判定部２０Ｋによって時刻差の変化が急変を示すと判定された場合、同期精度が目標水準未満であるとして、第２同期周期を同期周期として決定する。このため、決定部２０Ｌは、同期装置１０の起動からの経過時間が判定時間を超過している場合であっても、急変を示すと判定された場合、第２同期周期を同期周期として決定する。そして、決定部２０Ｌは、決定した同期周期を同期部２０Ａへ出力する。
【００７２】
同期部２０Ａは、決定部２０Ｌで決定された同期周期で、同期対象装置１２へ同期要求メッセージを送信する。すなわち、同期部２０Ａは、同期対象装置１２へ同期要求メッセージを前回送信してから経過した時間が、直前に決定部２０Ｌで決定された同期周期となったときに、同期メッセージ（同期要求メッセージ）を同期対象装置１２へ送信する。
【００７３】
次に、同期装置１０で実行する情報処理の手順の一例を説明する。
【００７４】
図４は、同期装置１０で実行する情報処理の手順の一例を示す、フローチャートである。同期装置１０は、同期装置１０の各部に電力が供給されて起動すると、図４に示す手順を繰り返し実行する。
【００７５】
まず、通信部２０Ｄが、決定部２０Ｌから同期周期を取得する（ステップＳ２００）。なお、制御部２０の起動後であって、且つ、同期対象装置１２へ同期要求メッセージを未だ送信していない段階の場合、ステップＳ２００の処理を省略してよい。
【００７６】
次に、通信部２０Ｄが、ステップＳ２００で取得した同期周期で、同期要求メッセージを同期対象装置１２へ送信する（ステップＳ２０２）。上述したように、通信部２０Ｄは、同期対象装置１２へ同期要求メッセージを前回送信してから、同期周期決定部２０Ｃで直前に決定された同期周期に応じた時間を経過したときに、同期要求メッセージを同期対象装置１２へ送信する。なお、制御部２０の起動後であって、且つ、同期対象装置１２へ同期要求メッセージを未だ送信していない段階（すなわち、起動後の初回の同期要求メッセージの送信の段階）の場合、同期周期に拘らず、同期要求メッセージを同期対象装置１２へ送信すればよい。
【００７７】
次に、通信部２０Ｄは、同期対象装置１２から応答メッセージを受信する（ステップＳ２０４）。次に、遅延時間推定部２０Ｅが、通信遅延時間を推定する（ステップＳ２０６）。上述したように、遅延時間推定部２０Ｅは、ステップＳ２０２で同期要求メッセージを送信した際のローカル時刻であるタイムスタンプＴ１と、ステップＳ２０４で応答メッセージを受信した際のローカル時刻であるタイムスタンプＴ４と、該応答メッセージに含まれるタイムスタンプＴ２およびタイムスタンプＴ３と、を用いて、通信遅延時間を推定する。
【００７８】
次に、時刻差推定部２０Ｆが、同期対象装置１２の基準時刻と、同期装置１０のクロック部２０Ｂによるローカル時刻と、の時刻差を推定する（ステップＳ２０８）。上述したように、時刻差推定部２０Ｆは、ステップＳ２０４で応答メッセージを受信した際のローカル時刻であるタイムスタンプＴ４と、該応答メッセージに含まれるタイムスタンプＴ２およびタイムスタンプＴ３と、ステップＳ２０６で推定した通信遅延時間と、を用いて、時刻差を推定する。
【００７９】
次に、時刻同期部２０Ｇが、ステップＳ２０８で推定された時刻差を用いて、クロック部２０Ｂの時刻同期を行う（ステップＳ２１０）。ステップＳ２１０では、時刻同期部２０Ｇは、ステップＳ２０８で推定された時刻差をクロック部２０Ｂに設定させる。これによって、クロック部２０Ｂによって計時されるローカル時刻が該時刻差分ずれ、同期対象装置１２により計時される基準時刻に時刻同期される。
【００８０】
次に、判定時間取得部２０Ｈが、判定時間を取得する（ステップＳ２１２）。次に、水準判定部２０Ｉが、引込状態管理部２０Ｊによって管理されている引込状態が引込完了であるか否かを判断する（ステップＳ２１４）。なお、上述したように、引込状態管理部２０Ｊによって管理されている引込状態は、起動直後の初期状態では引込中となっているものとする。
【００８１】
引込状態が引込中である場合（ステップＳ２１４：Ｎｏ）、ステップＳ２１６へ進む。
【００８２】
ステップＳ２１６では、水準判定部２０Ｉが、同期装置１０の起動からの経過時間がステップＳ２１２で取得した判定時間を超過しているか否かを判定する（ステップＳ２１６）。未超過である場合（ステップＳ２１６：Ｎｏ）、ステップＳ２１８へ進む。
【００８３】
ステップＳ２１８では、決定部２０Ｌが第２同期周期を同期周期として決定する（ステップＳ２１８）。そして、決定部２０Ｌは、決定した同期周期を通信部２０Ｄへ出力する。そして、ステップＳ２２０へ進む。
【００８４】
ステップＳ２２０では、制御部２０が、同期処理を終了するか否かを判断する（ステップＳ２２０）。例えば、制御部２０は、ユーザによるＵＩ部２２の操作指示などによって、同期装置１０のシャットダウンを示す信号を受付けたか否を判別することで、ステップＳ２２０の判断を行う。
【００８５】
ステップＳ２２０で肯定判断すると（ステップＳ２２０：Ｙｅｓ）、本ルーチンを終了する。一方、ステップＳ２２０で否定判断すると（ステップＳ２２０：Ｎｏ）、上記ステップＳ２００へ戻る。
【００８６】
一方、上記ステップＳ２１６の処理によって、水準判定部２０Ｉが、同期装置１０の起動からの経過時間がステップＳ２１２で取得した判定時間を超過していると判定すると（ステップＳ２１６：Ｙｅｓ）、ステップＳ２２２へ進む。
【００８７】
ステップＳ２２２では、引込状態管理部２０Ｊが、引込状態を引込中から引込完了へ遷移させる（ステップＳ２２２）。次に、水準判定部２０Ｉが、第１同期周期を同期周期として決定する（ステップＳ２２４）。そして、決定部２０Ｌは、決定した同期周期を通信部２０Ｄへ出力し、上記ステップＳ２２０へ進む。
【００８８】
一方、上記ステップＳ２１４で、引込状態管理部２０Ｊによって管理されている引込状態が引込完了であると判定されると（ステップＳ２１４：Ｙｅｓ）、ステップＳ２２６へ進む。
【００８９】
ステップＳ２２６では、急変判定部２０Ｋが、ステップＳ２０８で推定された時刻差の変化が急変を示すか否かを判定する（ステップＳ２２６）。急変を示すと判定した場合（ステップＳ２２６：Ｙｅｓ）、ステップＳ２２８へ進む。ステップＳ２２８では、引込状態管理部２０Ｊが、引込状態を引込完了から引込中へ遷移させる（ステップＳ２２８）。次に、水準判定部２０Ｉが、第２同期周期を同期周期として決定する（ステップＳ２３０）。そして、決定部２０Ｌは、決定した同期周期を通信部２０Ｄへ出力し、上記ステップＳ２２０へ進む。
【００９０】
一方、上記ステップＳ２２６で、急変を示さないと判定されると（ステップＳ２２６：Ｎｏ）、ステップＳ２３２へ進む。ステップＳ２３２では、水準判定部２０Ｉが、第１同期周期を同期周期として決定する（ステップＳ２３２）。そして、決定部２０Ｌは、決定した同期周期を通信部２０Ｄへ出力し、上記ステップＳ２２０へ進む。
【００９１】
以上説明したように、本実施の形態の同期装置１０は、同期部２０Ａと、決定部２０Ｌと、を備える。同期部２０Ａは、同期周期毎に同期対象装置１２と通信することによって受信した時刻情報（タイムスタンプＴ２、タイムスタンプＴ３）に応じて、時刻同期を行う。決定部２０Ｌは、同期装置１０の起動からの経過時間が判定時間を未超過である場合、同期精度が目標水準以上であるときの第１同期周期より短い第２同期周期を、同期周期として決定する。
【００９２】
このように、同期装置１０は、同期装置１０の起動からの経過時間が判定時間を未超過である場合、第２同期周期で同期要求メッセージを同期対象装置１２へ送信し、時刻同期を行う。第２同期周期は、同期精度が目標水準以上であるときの同期周期である第１同期周期より短い。すなわち、同期装置１０は、同期装置１０の起動からの経過時間が判定時間を未超過である場合、同期精度が目標水準未満であるとして、目標水準以上であるときの第１同期周期より短い第２同期周期を、同期周期として決定する。
【００９３】
このため、本実施の形態の同期装置１０は、目標水準の同期精度に達するまでに要する時間を制限することができ、目標水準の同期精度に達するまでの時間を短縮することができる。
【００９４】
従って、本実施の形態の同期装置１０は、起動から目標水準の同期精度に達するまでの時間の短縮を図ることができる。
【００９５】
また、従来技術では、通信遅延時間の推定時や時刻差の推定時に、実際の実測値とは異なる値が算出された場合であっても、同期周期を大きくする調整のなされる場合があった。このため、従来技術では、起動から目標水準の同期精度に達するまでの時間が長くなる場合があった。
【００９６】
一方、本実施の形態では、同期装置１０は、同期装置１０の起動からの経過時間が判定時間を未超過である場合、第２同期周期で同期要求メッセージを同期対象装置１２へ送信し、時刻同期を行う。このため、本実施の形態の同期装置１０は、起動から目標水準の同期精度に達するまでの時間の短縮を図ることができる。
【００９７】
また、本実施の形態の同期装置１０は、時刻差の変化が急変を示すと判別した場合、同期装置１０の起動からの経過時間が判定時間を超過している場合であっても、第２同期周期で同期要求メッセージを送信する。
【００９８】
このため、本実施の形態の同期装置１０は、上記効果が得られると共に、同期精度の低下を抑制することができる。
【００９９】
（第２の実施の形態）
本実施の形態では、同期対象装置１２で計時される基準時刻と、同期装置１０のクロック部２０Ｂで計時されるローカル時刻と、の時刻差を補正するための補正率に応じて、第２同期周期を決定する形態を説明する。
【０１００】
以下では、上記実施の形態との相違点の説明を主に行い、上記実施の形態と同様の機能を有する構成要素については、上記実施の形態と同じ名称および符号を付し、その説明を省略する。
【０１０１】
図５は、本実施の形態の同期システム１０００Ａの構成の一例を示す図である。同期システム１０００Ａは、同期装置１０に代えて同期装置１１を備える点が、第１の実施の形態と相違する。
【０１０２】
同期装置１１は、制御部２４と、ＵＩ部２２と、を備える。同期装置１１は、制御部２０に代えて制御部２４を備える点が、第１の実施の形態の同期装置１０と相違する。
【０１０３】
制御部２４は、同期部２４Ａと、クロック部２０Ｂと、同期周期決定部２４Ｃと、を備える。制御部２４は、同期部２０Ａに代えて同期部２４Ａ、同期周期決定部２０Ｃに代えて同期周期決定部２４Ｃ、を備える点が、第１の実施の形態の同期装置１０の制御部２０と相違する。
【０１０４】
同期部２４Ａは、時刻同期部２０Ｇに代えて時刻同期部２４Ｇを備える点が、第１の実施の形態の同期部２０Ａに相違する。時刻同期部２４Ｇについては後述する。
【０１０５】
同期周期決定部２４Ｃは、判定時間取得部２０Ｈと、水準判定部２０Ｉと、引込状態管理部２０Ｊと、急変判定部２０Ｋと、決定部２４Ｌと、補正率取得部２４Ｍと、を備える。同期周期決定部２４Ｃは、決定部２０Ｌに代えて決定部２４Ｌを備え、補正率取得部２４Ｍを更に備える点が、第１の実施の形態の同期装置１０における同期周期決定部２０Ｃと相違する。
【０１０６】
補正率取得部２４Ｍは、補正率を取得する。補正率は、時刻差を補正するための補正率である。時刻差は、同期対象装置１２の基準時刻と、同期装置１１のクロック部２０Ｂによって計時されるローカル時刻と、の時刻差であり、第１の実施の形態と同様に、時刻差推定部２０Ｆによって推定される。
【０１０７】
例えば、クロック部２０Ｂによって計時されるローカル時刻を上記時刻差がゼロになるように補正するための補正回数をＮとすると、補正率は、１／Ｎで表される。なお、Ｎは、１より大きい整数である。例えば、補正回数を１０回とする場合、補正率は０．１である。また、補正回数を１回とする場合、補正率は１．０である。
【０１０８】
本実施の形態では、補正率取得部２４Ｍは、ＵＩ部２２から補正率を取得する。ユーザは、ＵＩ部２２を操作することで、補正率を入力する。これにより、補正率取得部２４Ｍは、ＵＩ部２２から、ユーザによって入力された補正率を取得する。
【０１０９】
補正率は、具体的には、０より大きく、且つ、１未満の値であることが好ましい。
【０１１０】
なお、補正率取得部２４Ｍは、ＰＩＤ制御（Ｐｒｏｐｏｒｔｉｏｎａｌ−Ｉｎｔｅｇｒａｌ−Ｄｉｆｆｅｒｅｎｔｉａｌ  Ｃｏｎｔｒｏｌｌｅｒ）における比例ゲイン、積分ゲイン、および微分ゲインによって表される補正率を取得してもよい。すなわち、補正率取得部２４Ｍは、補正率を変えたときの、経過時間に対する通信遅延時間の偏差を縮小するように、ＰＩＤ制御によりフィードバックを行うことで、補正率を取得してもよい。
【０１１１】
決定部２４Ｌは、第１の実施の形態の決定部２０Ｌと同様にして、第１同期周期、または、第２同期周期を、同期周期として決定し、通信部２０Ｄへ出力する。
【０１１２】
なお、本実施の形態では、決定部２４Ｌは、補正率取得部２４Ｍで取得した補正率に応じて、第２同期周期を決定する。なお、上述したように、第２同期周期は、第１同期周期より短い。このため、決定部２４Ｌは、第１同期周期より短い同期周期であって、且つ、補正率取得部２４Ｍで取得した補正率に応じた、第２同期周期を決定する。
【０１１３】
詳細には、決定部２４Ｌは、判定時間取得部２０Ｈで取得した判定時間と、補正率取得部２４Ｍで取得した補正率と、の積を、第２同期周期として決定する。例えば、補正率が０．１である場合、決定部２４Ｌは、判定時間の１／１０の時間を、第２同期周期として決定する。
【０１１４】
なお、決定部２４Ｌは、補正率と、判定時間に該補正率を乗算した値（積）としての第２同期周期と、の対応関係を示すデータベースまたは関数を予め記憶してもよい。そして、決定部２４Ｌは、補正率取得部２４Ｍで取得した補正率に対応する第２同期周期を、該データベースまたは該関数から導出することで、第２同期周期を決定してもよい。
【０１１５】
なお、補正率取得部２４Ｍが、ＰＩＤ制御における比例ゲイン、積分ゲイン、および微分ゲインによって表される補正率を取得した場合、決定部２４Ｌは、以下の方法で第２同期周期を決定すればよい。具体的には、決定部２４Ｌは、比例ゲイン、積分ゲイン、および微分ゲインによって表される補正率と、第３同期周期と、の対応関係を示す関係情報を予め記憶する。関係情報は、関数であってもよいし、データベースであってもよい。
【０１１６】
第３同期周期は、比例ゲイン、積分ゲイン、および微分ゲインによって表される補正率で補正した時刻差（すなわち推定した時刻差）と、実際の時刻差との誤差が最小となるような同期周期を設定すればよい。なお、第３同期周期は、第１同期周期より短い。実際の時刻差とは、同期装置１１のクロック部２０Ｂによるローカル時刻と、同期対象装置１２で計時された基準時刻と、の実際の時刻の差の実測値である。第３同期周期は、予め実測して定めればよい。
【０１１７】
そして、決定部２４Ｌは、関係情報における、補正率取得部２４Ｍで取得した補正率に対応する第３同期周期を、第２同期周期として決定すればよい。
【０１１８】
同期部２４Ａの時刻同期部２４Ｇは、時刻差推定部２０Ｆで推定された時刻差と、補正率取得部２４Ｍで取得した補正率と、の積を用いて、クロック部２０Ｂの時刻同期を行う。
【０１１９】
例えば、時刻同期部２０Ｇは、時刻差推定部２０Ｆで推定された時刻差と補正率取得部２４Ｍで取得した補正率との積を、をクロック部２０Ｂに設定させる。これによって、クロック部２０Ｂは、計時するローカル時刻を補正する。この補正によって、クロック部２０Ｂによって計時されるローカル時刻が、時刻差推定部２０Ｆで推定された時刻差に該補正率を乗算した値（積）分ずれ、同期対象装置１２により計時される基準時刻に向かって、該補正率分、時刻同期される。
【０１２０】
次に、同期装置１１で実行する情報処理の手順の一例を説明する。
【０１２１】
図６は、同期装置１１で実行する情報処理の手順の一例を示す、フローチャートである。同期装置１１は、同期装置１１の各部に電力が供給されて起動すると、図６に示す手順を繰り返し実行する。
【０１２２】
まず、同期装置１１は、第１の実施の形態のステップＳ２００〜ステップＳ２０８と同様にして（図４参照）、ステップＳ３００〜ステップＳ３０８の処理を行う。
【０１２３】
次に、時刻同期部２４Ｇが、ステップＳ３０８で推定された時刻差と、補正率取得部２４Ｍで前回取得した補正率と、の積を用いて、クロック部２０Ｂの時刻同期を行う（ステップＳ３１０）。これによって、クロック部２０Ｂによって計時されるローカル時刻が、ステップＳ３０８で推定された時刻差に、補正率取得部２４Ｍで前回取得した補正率を乗算した値分ずれ、同期対象装置１２により計時される基準時刻に向かって、該補正率分、時刻同期される。
【０１２４】
次に、制御部２４は、第１の実施の形態のステップＳ２１２〜ステップＳ２１６と同様にして、ステップＳ３１２〜ステップＳ３１６の処理を行う。ステップＳ３１６では、水準判定部２０Ｉが、同期装置１１の起動からの経過時間がステップＳ３１２で取得した判定時間を超過しているか否かを判定する（ステップＳ３１６）。未超過である場合（ステップＳ３１６：Ｎｏ）、ステップＳ３１８へ進む。
【０１２５】
ステップＳ３１８では、補正率取得部２４Ｍが補正率を取得する（ステップＳ３１８）。次に、決定部２４Ｌが、ステップＳ３１８で取得した補正率に応じた第２同期周期を、同期周期として決定する（ステップＳ３２０）。そして、ステップＳ３２２へ進む。
【０１２６】
ステップＳ３２２では、制御部２４が、同期処理を終了するか否かを判断する（ステップＳ３２２）。ステップＳ３２２の処理は、上記ステップＳ２２０と同様である。ステップＳ３２２で肯定判断すると（ステップＳ３２２：Ｙｅｓ）、本ルーチンを終了する。一方、ステップＳ３２２で否定判断すると（ステップＳ３２２：Ｎｏ）、上記ステップＳ３００へ戻る。
【０１２７】
一方、上記ステップＳ３１６で肯定判断すると（ステップＳ３１６：Ｙｅｓ）、制御部２４は、ステップＳ３２４およびステップＳ３２６の処理を実行し、上記ステップＳ３２２へ進む。ステップＳ３２４およびステップＳ３２６は、上記実施の形態のステップＳ２２２およびステップＳ２２４と同様である。
【０１２８】
一方、ステップＳ３１４で肯定判断すると（ステップＳ３１４：Ｙｅｓ）、ステップＳ
３２８へ進む。ステップＳ３２８では、急変判定部２０Ｋが、テップＳ３０８で推定された時刻差の変化が急変を示すか否かを判定する（ステップＳ３２８）。急変を示すと判定した場合（ステップＳ３２８：Ｙｅｓ）、ステップＳ３３０へ進む。ステップＳ３３０では、引込状態管理部２０Ｊが、引込状態を引込完了から引込中へ遷移させる（ステップＳ３３０）。
【０１２９】
次に、補正率取得部２４Ｍが補正率を取得する（ステップＳ３３２）。ステップＳ３３２の処理は、ステップＳ３１８と同様である。
【０１３０】
次に、決定部２４Ｌが、ステップＳ３３２で取得した補正率に応じた第２同期周期を、同期周期として決定する（ステップＳ３３４）。そして、上記ステップＳ３２２へ進む。
【０１３１】
一方、ステップＳ３２８で否定判断すると（ステップＳ３２８：Ｎｏ）、ステップＳ３３６へ進む。ステップＳ３３６は、第１の実施の形態のステップＳ２３２と同様である。そして、上記ステップＳ３２２へ進む。
【０１３２】
以上説明したように、本実施の形態の同期装置１１では、決定部２４Ｌが、補正率取得部２４Ｍで取得した、時刻差を補正するための補正率を用いて、第２同期周期を決定する。従って、本実施の形態の同期装置１１では、第１の実施の形態の効果に加えて、同期精度の向上を図ることができる。
【０１３３】
（第３の実施の形態）
本実施の形態では、第２の実施の形態で用いた補正率を、通信遅延時間に応じて導出する形態を説明する。
【０１３４】
以下では、上記実施の形態との相違点の説明を主に行い、上記実施の形態と同様の機能を有する構成要素については、上記実施の形態と同じ名称および符号を付し、その説明を省略する。
【０１３５】
図７は、本実施の形態の同期システム１０００Ｂの構成の一例を示す図である。同期システム１０００Ｂは、同期装置１０または同期装置１１に代えて、同期装置１３を備える点が、第１の実施の形態および第２の実施の形態と相違する。
【０１３６】
同期装置１３は、制御部２８と、ＵＩ部２２と、を備える。同期装置１３は、制御部２０に代えて制御部２８を備える点が、第１の実施の形態の同期装置１０と相違する。
【０１３７】
制御部２８は、同期部２４Ａと、クロック部２０Ｂと、同期周期決定部２８Ｃと、を備える。制御部２４は、同期部２０Ａに代えて同期部２４Ａ、同期周期決定部２０Ｃに代えて同期周期決定部２８Ｃ、を備える点が、第１の実施の形態の同期装置１０の制御部２０と相違する。なお、同期部２４Ａは、第２の実施の形態と同様である。すなわち、制御部２８は、同期周期決定部２４Ｃに代えて同期周期決定部２８Ｃを備える点が、第２の実施の形態の制御部２４と相違する。
【０１３８】
同期周期決定部２８Ｃは、判定時間取得部２０Ｈと、水準判定部２０Ｉと、引込状態管理部２０Ｊと、急変判定部２０Ｋと、決定部２８Ｌと、補正率取得部２８Ｍと、遅延時間記憶部２８Ｎと、補正率導出部２８Ｏと、を備える。同期周期決定部２８Ｃは、補正率取得部２４Ｍおよび決定部２４Ｌに代えて、補正率取得部２８Ｍおよび決定部２８Ｌを備え、更に、補正率導出部２８Ｏおよび遅延時間記憶部２８Ｎを備える点が、第２の実施の形態の同期周期決定部２４Ｃと相違する。
【０１３９】
補正率取得部２８Ｍは、補正率を取得する。本実施の形態では、補正率取得部２８Ｍは、補正率導出部２８Ｏから補正率を取得する。
【０１４０】
補正率導出部２８Ｏは、補正率を導出する。補正率導出部２８Ｏは、遅延時間推定部２０Ｅで推定された通信遅延時間の統計値に応じて、補正率を決定する。具体的には、遅延時間記憶部２８Ｎが、遅延時間推定部２０Ｅで推定された通信遅延時間を記憶する。遅延時間記憶部２８Ｎには、遅延時間推定部２０Ｅで推定された、最新の通信遅延時間から過去に遡って予め定めた数の通信遅延時間が順次記憶される。
【０１４１】
補正率導出部２８Ｏは、遅延時間記憶部２８Ｎに記憶されている複数の通信遅延時間から、通信遅延時間の統計値を算出する。例えば、補正率導出部２８Ｏは、複数の通信遅延時間の加算値、平均値、重み付けにより算出した値、などを、統計値として算出する。
【０１４２】
また、補正率導出部２８Ｏは、統計値と、同期誤差を小さくするための補正率と、を予め対応づけて記憶する。同期誤差とは、時刻同期部２４Ｇによってクロック部２０Ｂが時刻同期された後のローカル時刻と、同期対象装置１２の基準時刻の実測値と、の差を示す。同期誤差を小さくするための補正率は、統計値ごとに予め計測し、予め対応づけて記憶しておけばよい。
【０１４３】
そして、補正率導出部２８Ｏは、遅延時間記憶部２８Ｎに記憶されている複数の通信遅延時間から算出した統計値に対応する、同期誤差を小さくするための補正率を読取ることで、補正率を導出する。このように、補正率導出部２８Ｏは、遅延時間記憶部２８Ｎに記憶されている複数の通信遅延時間の分布の母数に応じて、補正率を導出する。
【０１４４】
なお、補正率導出部２８Ｏは、統計値から、同期誤差を小さくするための補正率を導出するための関数を予め作成し、記憶しておいてもよい。この場合、補正率導出部２８Ｏは、遅延時間記憶部２８Ｎに記憶されている複数の通信遅延時間から算出した統計値を、該関数にあてはめることで、補正値を導出すればよい。
【０１４５】
そして、補正率取得部２８Ｍは、補正率導出部２８Ｏで導出された補正率を取得し、決定部２８Ｌへ出力すればよい。
【０１４６】
決定部２８Ｌは、補正率取得部２８Ｍから受付けた補正率を用いる点以外は、第２の実施の形態の決定部２４Ｌと同様にして、同期周期を決定する。また、本実施の形態では、時刻同期部２４Ｇは、補正率取得部２４Ｍに代えて、補正率取得部２８Ｍで取得した補正率を用いて、時刻同期を行えばよい。
【０１４７】
次に、同期装置１３で実行する情報処理の手順の一例を説明する。
【０１４８】
図８は、同期装置１３で実行する情報処理の手順の一例を示す、フローチャートである。同期装置１３は、同期装置１３の各部に電力が供給されて起動すると、図８に示す手順を繰り返し実行する。
【０１４９】
まず、同期装置１３は、第１の実施の形態のステップＳ２００〜ステップＳ２０６と同様にして（図４参照）、ステップＳ４００〜ステップＳ４０６の処理を行う。なお、ステップＳ４０６において、遅延時間推定部２０Ｅは、算出した通信遅延時間を遅延時間記憶部２８Ｎに記憶する。
【０１５０】
次に、補正率導出部２８Ｏが、遅延時間記憶部２８Ｎに記憶されている通信遅延時間を用いて、補正率を導出する（ステップＳ４０８）。
【０１５１】
次に、時刻差推定部２０Ｆが時刻差を推定する（ステップＳ４１０）。ステップＳ４１０の処理は、第１の実施の形態のステップＳ２０８と同様である。
【０１５２】
次に、時刻同期部２４Ｇが、ステップＳ４１０で推定された時刻差と、ステップＳ４０８で導出された補正率と、の積を用いて、クロック部２０Ｂの時刻同期を行う（ステップＳ４１２）。これによって、クロック部２０Ｂによって計時されるローカル時刻が、ステップＳ４１０で推定された時刻差に、ステップＳ４０８で補正率導出部２８Ｏによって導出された補正率を乗算した値分、ずらされる。よって、クロック部２０Ｂによって計時されるローカル時刻が、同期対象装置１２により計時される基準時刻に向かって、該補正率分、同期される。
【０１５３】
次に、制御部２８は、第１の実施の形態のステップＳ２１２〜ステップＳ２１６と同様にして、ステップＳ４１４〜ステップＳ４１８の処理を行う。ステップＳ４１８では、水準判定部２０Ｉが、同期装置１３の起動からの経過時間がステップＳ４１４で取得した判定時間を超過しているか否かを判定する（ステップＳ４１８）。未超過である場合（ステップＳ４１８：Ｎｏ）、ステップＳ４２０へ進む。
【０１５４】
ステップＳ４２０では、補正率取得部２８Ｍが、ステップＳ４０８で導出された補正率を取得する（ステップＳ４２０）。次に、決定部２８Ｌが、ステップＳ４２０で取得した補正率に応じた第２同期周期を、同期周期として決定する（ステップＳ４２２）。そして、ステップＳ４２４へ進む。
【０１５５】
ステップＳ４２４では、制御部２８が、同期処理を終了するか否かを判断する（ステップＳ４２４）。ステップＳ４２４の処理は、上記ステップＳ２２０と同様である。ステップＳ４２４で肯定判断すると（ステップＳ４２４：Ｙｅｓ）、本ルーチンを終了する。一方、ステップＳ４２４で否定判断すると（ステップＳ４２４：Ｎｏ）、上記ステップＳ４００へ戻る。
【０１５６】
一方、上記ステップＳ４１８で肯定判断すると（ステップＳ４１８：Ｙｅｓ）、制御部２８は、ステップＳ４２６およびステップＳ４２８の処理を実行し、上記ステップＳ４２４へ進む。ステップＳ４２６およびステップＳ４２８は、上記実施の形態のステップＳ２２２およびステップＳ２２４と同様である。
【０１５７】
一方、ステップＳ４１６で肯定判断すると（ステップＳ４１６：Ｙｅｓ）、ステップＳ４３０へ進む。ステップＳ４３０では、急変判定部２０Ｋが、テップＳ４１０で推定された時刻差の変化が急変を示すか否かを判定する（ステップＳ４３０）。急変を示すと判定した場合（ステップＳ４３０：Ｙｅｓ）、ステップＳ４３２へ進む。ステップＳ４３２では、引込状態管理部２０Ｊが、引込状態を引込完了から引込中へ遷移させる（ステップＳ４３２）。
【０１５８】
次に、補正率取得部２８Ｍが、ステップＳ４０８で導出された補正率を取得する（ステップＳ４３４）。ステップＳ４３４の処理は、ステップＳ４２０と同様である。
【０１５９】
次に、決定部２８Ｌが、ステップＳ４３４で取得した補正率に応じた第２同期周期を、同期周期として決定する（ステップＳ４３６）。そして、上記ステップＳ４２４へ進む。
【０１６０】
一方、ステップＳ４３０で否定判断すると（ステップＳ４３０：Ｎｏ）、ステップＳ４３８へ進む。ステップＳ４３８は、第１の実施の形態のステップＳ２３２と同様である。そして、上記ステップＳ４２４へ進む。
【０１６１】
以上説明したように、本実施の形態の同期装置１３では、補正率導出部２８Ｏが、通信遅延時間に応じて補正率を導出する。そして、決定部２８Ｌは、導出された補正率を用いて、第２同期周期を決定する。
【０１６２】
すなわち、本実施の形態の同期装置１３では、ネットワーク１４の通信負荷状態に応じた補正率を導出する。このため、本実施の形態の同期装置１３では、ネットワーク１４の通信負荷状態に応じた第２同期周期を決定することができる。
【０１６３】
従って、本実施の形態の同期装置１３では、第１の実施の形態の効果に加えて、同期精度の向上と、通信負荷状態に応じた時刻同期と、を図ることができる。
【０１６４】
（ハードウェア構成）
図９は、各実施の形態の同期装置１０、同期装置１１、同期装置１３、および同期対象装置１２（以下、各実施の形態の各装置と称する）のハードウェア構成の一例を示す図である。各実施の形態の各装置は、ＣＰＵなどの制御装置９０１と、ＲＯＭやＲＡＭなどの主記憶装置９０２と、ＨＤＤやＳＳＤなどの補助記憶装置９０３と、ディスプレイなどの表示装置９０４と、キーボードやマウスなどの入力装置９０５と、通信インタフェースなどの通信装置９０６と、を備えており、通常のコンピュータを利用したハードウェア構成となっている。
【０１６５】
各実施の形態の各装置で実行されるプログラムは、インストール可能な形式又は実行可能な形式のファイルでＣＤ−ＲＯＭ、ＣＤ−Ｒ、メモリカード、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）、フレキシブルディスク（ＦＤ）等のコンピュータで読み取り可能な記憶媒体に記憶されて提供される。
【０１６６】
また、各実施の形態の各装置で実行されるプログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するようにしてもよい。また、各実施の形態の各装置で実行されるプログラムを、インターネット等のネットワーク経由で提供または配布するようにしてもよい。また、各実施の形態の各装置で実行されるプログラムを、ＲＯＭ等に予め組み込んで提供するようにしてもよい。
【０１６７】
各実施の形態の各装置で実行されるプログラムは、上述した各部をコンピュータ上で実現させるためのモジュール構成となっている。実際のハードウェアとしては、ＣＰＵがＲＯＭやＨＤＤなどからプログラムをＲＡＭ上に読み出して実行することにより、上記各部がコンピュータ上で実現されるようになっている。なお、上記各部の少なくとも一部をＩＣなどのハードウェアで実現する場合、各実施の形態の各装置は、当該ＩＣなどを更に備えればよい。
【０１６８】
本発明は、上記各実施の形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化することができる。また、上記各実施の形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成することができる。例えば、実施の形態に示される全構成要素からいくつかの構成要素を削除してもよい。さらに、異なる実施の形態にわたる構成要素を適宜組み合わせてもよい。
【０１６９】
例えば、各実施の形態のフローチャートにおける各ステップを、その性質に反しない限り、実行順序を変更し、複数同時に実施し、あるいは実施毎に異なった順序で実施してもよい。
【符号の説明】
【０１７０】
１０００、１０００Ａ、１０００Ｂ  同期システム
１０、１１、１３  同期装置
１２  同期対象装置
２０Ａ、２４Ａ  同期部
２０Ｈ  判定時間取得部
２０Ｉ  水準判定部
２０Ｋ  急変判定部
２０Ｌ、２４Ｌ、２８Ｌ  決定部
２４Ｍ、２８Ｍ  補正率取得部
２８Ｏ  補正率導出部
【図１】
2018110326.tif 000003
【図２】
2018110326.tif 000004
【図３】
2018110326.tif 000005
【図４】
2018110326.tif 000006
【図５】
2018110326.tif 000007
【図６】
2018110326.tif 000008
【図７】
2018110326.tif 000009
【図８】
2018110326.tif 000010
【図９】
2018110326.tif 000011