(57)【要約】      （修正有）【課題】制御装置において、制御処理を妨害しない時刻同期を実現する。【解決手段】スレーブ２をマスタ１に時刻同期させる時刻同期装置は、マスタ１とスレーブ２との通信による遅延時間を格納する遅延時間記憶部２５、マスタ１とスレーブ２のクロックの時刻差を格納する時刻差記憶部２７、制御処理中に第１の時刻情報をマスタ１へ送信する送信部２４、次の制御処理を開始する前までの空き時間に第２の時刻情報をマスタ１から受信する受信部、及び、受信した第２の時刻情報に含まれる差分情報が示す関係式および遅延時間に基づいて時刻差を算出する時刻差演算部２６を含むスレーブ２、並びに、スレーブ２から第１の時刻情報を受信する受信部１１、スレーブ２からの第１の時刻を受信した第２の時刻及び第２の時刻と第１の時刻との差分を示す差分情報を第２の時刻情報としてスレーブ２に送信する送信部１４を含むマスタ１を有する。【選択図】図１
2015203667.tif 000002
【特許請求の範囲】
【請求項１】
スレーブをマスタに時刻同期させる時刻同期装置であって、
予め算出した前記マスタと前記スレーブとの間の通信による遅延時間を格納する遅延時間記憶部、前記マスタのクロックと前記スレーブのクロックの時刻差を格納する時刻差記憶部、制御処理中の第１の時刻に、前記第１の時刻を示す第１の時刻情報を前記マスタへ送信する第１の送信部、前記制御処理を終了し、次の制御処理を開始する前までの空き時間に、第２の時刻情報を前記マスタから受信する第１の受信部、及び、受信した前記第２の時刻情報に含まれる差分情報が示す時間が前記遅延時間と前記時刻差との和に等しいという関係式および前記遅延時間に基づいて、前記時刻差を算出する時刻差演算部を含む前記スレーブ、並びに、
前記スレーブから前記第１の時刻を示す第１の時刻情報を受信する第２の受信部、及び、前記スレーブからの前記第１の時刻を受信した第２の時刻、及び前記第２の時刻と前記第１の時刻との差分を示す前記差分情報を前記第２の時刻情報として前記スレーブに送信する第２の送信部を含む前記マスタを有することを特徴とする時刻同期装置。
【請求項２】
前記スレーブは、さらに前記遅延時間を算出する遅延時間演算部を含み、
前記スレーブの立ち上げ処理中に、前記第１の送信部は、前記第１の時刻情報を前記マスタへ送信し、
前記第２の受信部は、前記第１の時刻情報を受信し、前記第２の送信部は、前記第１の時刻情報を受信した時刻と前記差分情報を、前記第２の時刻情報として前記スレーブに送信し、
前記第１の受信部は、前記第２の時刻情報を受信し、前記遅延時間演算部は、前記第２の時刻情報を受信した時刻と前記第１の時刻情報を送信した時刻との差分の２分の１が前記遅延時間に等しいという関係式に基づいて、前記遅延時間を算出することを特徴とする請求項１に記載の時刻同期装置。
【請求項３】
前記第１の時刻情報が示す前記第１の時刻は、前記第１の時刻と前記時刻差を加算した時刻であることを特徴とする請求項１に記載の時刻同期装置。
【請求項４】
スレーブをマスタに時刻同期させる時刻同期方法であって、
前記スレーブは、予め算出した前記マスタと前記スレーブとの間の通信による遅延時間を格納する遅延時間記憶部、および、前記マスタのクロックと前記スレーブのクロックの時刻差を格納する時刻差記憶部を含み、
前記スレーブは、制御処理中の第１の時刻に、前記第１の時刻を示す第１の時刻情報を前記マスタへ送信し、
前記マスタは、前記スレーブから前記第１の時刻を示す第１の時刻情報を受信し、
前記マスタは、前記スレーブからの前記第１の時刻を受信した第２の時刻、及び前記第２の時刻と前記第１の時刻との差分を示す差分情報を第２の時刻情報として前記スレーブに送信し、
前記スレーブは、前記制御処理を終了し、次の制御処理を開始する前までの空き時間に、前記第２の時刻情報を前記マスタから受信し、受信した前記第２の時刻情報に含まれる前記差分情報が示す時間が前記遅延時間と前記時刻差との和に等しいという関係式および前記遅延時間に基づいて、前記時刻差を算出することを特徴とする時刻同期方法。
【請求項５】
前記スレーブは、立ち上げ処理中に、前記第１の時刻情報を前記マスタへ送信し、
前記マスタは、前記第１の時刻情報を受信し、前記第１の時刻情報を受信した時刻と前記差分情報を、前記第２の時刻情報として前記スレーブに送信し、
前記スレーブは、前記第２の時刻情報を受信し、前記第２の時刻情報を受信した時刻と前記第１の時刻情報を送信した時刻との差分の２分の１が前記遅延時間に等しいという関係式に基づいて、前記遅延時間を算出することを特徴とする請求項４に記載の時刻同期方法。
【請求項６】
前記第１の時刻情報が示す前記第１の時刻は、前記第１の時刻と前記時刻差を加算した時刻であることを特徴とする請求項４に記載の時刻同期方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、時刻同期装置および方法に係り、特に正確な制御周期が必要とされる制御装置の時刻同期装置および方法に関する。
【背景技術】
【０００２】
本技術分野の背景技術として、特許文献１と特許文献２がある。特許文献１には、「送信装置１は、電文情報ＤＴ１中に送信装置１側の時計２によるデータ作成時刻としての標準時刻Ｔ１を記載して電文情報ＤＴ１を送信する。受信装置５では、記載され標準時刻Ｔ１と自装置受信時刻Ｔ２の差を求める。この時間差と、この時間差を複数の電文にわたり平均した値の差から、伝送遅延の揺らぎ分をもとめる。この揺らぎ時間ＴＵと、あらかじめ設定した平均遅延ＴＡΤを受信時刻Ｔ２から引くことで受信側の時計に置けるデータの送信時刻Ｔ０を求める。」と記載されている。特許文献２には、「マスタステーションの基準時刻に基づいて大きな時刻変動を伴うことなくスレーブステーションの時刻同期を行うことができ、例えばデータサンプリング処理やスケジュール制御等に適用して好適なネットワークステーションの時刻同期方式を提供する。」と記載されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００７−１７８２２６号公報
【特許文献２】特開平０３−２９６６８４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
一般的に、データの送受信を行う際には、伝送路での伝送遅延やデータの送信・受信処理による処理遅延などの遅れが発生する。時刻同期化は、マスタとスレーブが相互に時刻情報の送受信を行うことで実施しており、正確に時刻同期を行うためには、この遅延時間を排除する必要がある。時刻同期において遅延時間を排除することが、特許文献１に開示されている。特許文献１に開示されたマスタ（送信装置）とスレーブ（受信装置）の時刻同期化方法では、マスタの基準時刻からのスレーブの時刻差の平均値から遅延時間の揺らぎ分を求め、あらかじめ設定した平均遅延時間を受信時刻から引くことでスレーブの時計におけるデータの送信時刻を求める。しかし、特許文献１において、スレーブはマスタからのデータを受信する時刻を取得する必要があるため、スレーブはマスタにデータを送信してからマスタからデータが返ってくるまでの間、時刻の取得遅れが生じないように、他の処理をすることなく待機しなくてはならない。この待機時間は他の処理の開始を遅らせ、また待機時間のばらつきにより他の処理の開始時間がばらつくことになる。これらのことより、正確な制御周期が必要とされる制御装置においては、特許文献１の時刻同期方法の採用は困難である。
【０００５】
特許文献２に開示されたマスタとスレーブの時刻同期化方法では、マスタは、任意の時間ごとにスレーブから送られてくる時刻情報とマスタの基準時刻からスレーブの時刻差を求める。スレーブの時刻修正の前後でイベントのタイムスタンプを発行した際に、イベントの発生順番が入れ替わることを防ぐ方法として、特許文献２では、算出したマスタの基準時刻からスレーブの時刻差をN分割して、スレーブ時刻に加算することで、マスタ時刻に合わせて補正する。しかし、特許文献２の方法では、スレーブの時刻がマスタの時刻と一致するまでの遷移時間が発生する。この遷移時間中に、このスレーブが発行しタイムスタンプは、正確な時刻でないという問題がある。
【課題を解決するための手段】
【０００６】
開示する、スレーブをマスタに時刻同期させる時刻同期装置は、予め算出したマスタとスレーブとの間の通信による遅延時間を格納する遅延時間記憶部、マスタのクロックとスレーブのクロックの時刻差を格納する時刻差記憶部、制御処理中の第１の時刻に、第１の時刻を示す第１の時刻情報をマスタへ送信する第１の送信部、制御処理を終了し、次の制御処理を開始する前までの空き時間に、第２の時刻情報をマスタから受信する第１の受信部、及び、受信した第２の時刻情報に含まれる差分情報が示す時間が遅延時間と時刻差との和に等しいという関係式および遅延時間に基づいて、時刻差を算出する時刻差演算部を含むスレーブ、並びに、スレーブから第１の時刻を示す第１の時刻情報を受信する第２の受信部、及び、スレーブからの第１の時刻を受信した第２の時刻、及び第２の時刻と第１の時刻との差分を示す差分情報を第２の時刻情報としてスレーブに送信する第２の送信部を含むマスタを有する。
【発明の効果】
【０００７】
本発明によれば、制御装置において、制御処理を妨害しない時刻同期化が可能となる。
【図面の簡単な説明】
【０００８】
【図１】時刻同期装置の構成図の例である。
【図２】時刻同期装置のネットワークを介したシステム構成図の例である。
【図３】マスタとスレーブ間の時刻同期化通信における遅延時間及び、マスタとスレーブ間の時刻差を算出する処理フローの例である。
【図４】マスタとスレーブ間の時刻差を算出する処理フローの例である。
【図５】マスタとスレーブが実行する処理のタイムチャートである。
【発明を実施するための形態】
【０００９】
以下、実施例を図面を用いて説明する。
【００１０】
図１は、本実施例を示す時刻同期装置の構成図である。時刻同期装置は、マスタ１と、マスタ１に時刻同期させるスレーブ２を有する。マスタ１は、スレーブ２が送信するスレーブ２のデータ送信時刻を受信する受信部11、マスタ１のクロック12、受信部11で受信したスレーブ２のデータ送信時刻と、マスタ１のクロック12から取得したマスタ１のデータ受信時刻との差分を算出する演算部13、並びに、演算部13で算出した差分時間及び、スレーブ２からの時刻情報を受信したマスタ１の時刻を、スレーブ２に送信する送信部14を有する。
【００１１】
スレーブ２は、マスタ１が送信する時刻情報を受信する受信部21、マスタ１が送信する時刻情報を受信した時刻と、マスタ１に時刻情報を送信した時刻の差分から遅延時間を求める遅延時間演算部22、遅延時間演算部22が算出した遅延時間を格納する遅延時間記憶部25、遅延時間とマスタ１が送信する時刻情報からマスタとスレーブの時刻差を算出する時刻差演算部26、時刻差演算部26が算出した時刻差を格納する時刻差格納部27、スレーブ２のクロック22から取得したスレーブ２のデータ送信時刻に、マスタ１とスレーブ２の時刻差を加算してスレーブ時刻を算出するスレーブ時刻算出部28、並びに、算出したスレーブ時刻をマスタ１に送信する送信部24を有する。
【００１２】
図２は、時刻同期装置のシステムのネットワークを介した構成図の例である。時刻同期システムは、マスタ（マスタ制御装置）１とスレーブ（スレーブ制御装置）２を、ネットワーク3で接続した構成である。
【００１３】
図３は、マスタ１とスレーブ２間の時刻同期化通信における遅延時間とマスタとスレーブ間の時刻差を算出する処理フローを示した図である。この処理は、スレーブ２の制御装置の立ち上げ処理のタイミング、またはスレーブ２の制御処理が終了し次の制御処理が始まる前の空き時間に実行する。以下、時刻同期装置のマスタ１とスレーブ２の処理フローを説明する。
【００１４】
スレーブ２の送信部24は、クロック22が示すデータ送信時刻TS0をマスタ１に送信する（s22）。
【００１５】
マスタ１の受信部11は、TS0を受信する（s11）。マスタ１の演算部13は、TS0と、クロック12から取得したマスタ１がスレーブ２からデータを受信した時刻TM0との、差分tSM0（＝TM0−TS0）を算出する（s12）。マスタ１の送信部14は、TM0とtSM0をスレーブ２に送信する（s13）。
【００１６】
スレーブ２の受信部21は、TM0とtSM0を受信する（s23）。TM0とtSM0の受信時刻をTS1、時刻同期化通信における遅延時間をtdとすると2td=TS1−TS0の関係式より、スレーブ２の遅延時間演算部23は、tdを算出する（s24）。スレーブ２の遅延時間演算部23は、tdを遅延時間記憶部25に格納する（s25）。マスタ１とスレーブ２のクロック間の時刻差をt1とするとtSM0=t1+tdの関係式より、スレーブ２の演算部22は、t1を算出する（s26）。スレーブ２の時刻差演算部26は、t1を時刻差記憶部27に格納する（s27）。
【００１７】
図４は、マスタ１とスレーブ２間のクロック間の時刻差を算出する処理フローを示した図である。
【００１８】
スレーブ２のスレーブ時刻演算部28は、時刻差記憶部27から前回処理で算出したマスタ１とスレーブ２のクロック12、22間の時刻差ti-1(i:2以上の偶数)を取得し、スレーブ２のクロック22から取得したスレーブ２がデータを送信する時刻TSiにti-1を加算し、スレーブ２のデータ送信時刻TSi’（＝TSi＋ti-1）を算出する（s31）。スレーブ２の送信部24は、TSi’をマスタ１に送信する（s32）。
【００１９】
マスタ１の受信部11は、TSi’を受信する（s41）。マスタ１の演算部13は、TS1’と、クロック12から取得したマスタ１がスレーブ２からデータを受信した時刻TMiとの、差分tSMi（＝TMi−TS1’）を算出する（s42）。マスタ１の送信部14は、TMiとtSMiをスレーブ２に送信する（s43）。
【００２０】
スレーブ２の受信部21は、TMiとtSMiを受信する（s33）。スレーブ２の時刻差演算部26は遅延時間記憶部25に格納されているtdを取得する（s34）。マスタ１とスレーブ２のクロック12、22間の時刻差がti-1であるので、tSM(i+1)=ti-1+tdの関係式より、スレーブ２の演算部22は、ti+1を算出する（s35）。スレーブ２の時刻差演算部26は、今回求めた時刻差ti+1を時刻差記憶部27に格納する（s36）。
【００２１】
以上のように、スレーブ２はクロック22を補正せずに、マスタ１に時刻情報を送信するときは、クロック22が示す時刻TSiに、前回求めた時刻差ti-1を加算した時刻を送信する。
【００２２】
図５は、マスタ１及びスレーブ２が実行する処理のタイムチャートを示した図である。スレーブ２は、スレーブ２の立ち上げ処理中に、スレーブ２がマスタ１にデータを送信する時刻TS0をマスタ１に送信する。マスタ１は、マスタ１のクロック12から取得した、マスタ１がスレーブ２からのデータを受信した時刻TM0、及び、TM0とTS0との差分tSM0を、スレーブ２に送信する。スレーブ２は、マスタ１からの時刻情報を受信する。スレーブ２がマスタ１からの時刻情報を受信した時刻をTS1、時刻同期通信による遅延時間tdとして、2td=TS1−TS0の関係式より、スレーブ２はtdを算出し、マスタ１とスレーブ２のクロック間の時刻差t1として、tSM0=t1+tdの関係式より、スレーブ２はt1を算出する。スレーブ２は、算出したtd,t1をそれぞれ遅延時間記憶部25、時刻差記憶部27に格納する。
【００２３】
スレーブ２は、制御処理中に、スレーブ２のクロック22から取得したスレーブ２がデータを送信する時刻TS2に時刻差記憶部27に格納されているマスタ１とスレーブ２のクロック12、22間の時刻差t1を加算した時刻TS2’（＝TS2＋t1）を、マスタ１に送信する。
【００２４】
マスタ１は、マスタ１のクロック12から取得したマスタ１がスレーブ２からデータを受信した時刻TM2、及び、TM2とTS2’との差分tSM2（＝TM2−TS2’）を、スレーブ２に送信する。
【００２５】
スレーブ２は、制御処理が終了し、次の制御処理を開始する前の空き時間に、マスタ１が送信した時刻情報を受信バッファで受信する。スレーブ２は、受信した時刻情報と遅延時間記憶部25に格納されているtdから、マスタ１とスレーブ２のクロック12、22間の時刻差t2を算出し、時刻差記憶部27に格納する。以降、図４に示したように、時刻差tiを算出するシーケンスを繰り返す。
【００２６】
本実施形態によれば、正確な制御周期が必要とされる制御装置において、時刻同期化通信における待機時間を除去することで、制御処理を妨害しない時刻同期化が可能となる。
【符号の説明】
【００２７】
１：マスタ、２：スレーブ、３：ネットワーク、１１：受信部、１２：クロック、１３：演算部、１４：送信部、２１：受信部、２２：クロック、２３：遅延時間演算部、２４：送信部、２５：遅延時間記憶部、２６：時刻差演算部、２７：時刻差記憶部、２８：スレーブ時刻演算部。
【図１】
2015203667.tif 000003
【図２】
2015203667.tif 000004
【図３】
2015203667.tif 000005
【図４】
2015203667.tif 000006
【図５】
2015203667.tif 000007