(57)【特許請求の範囲】
【請求項１】
通信装置であって、
第１周期毎にネットワークを介して他の通信装置と通信する通信部と、
前記第１周期毎に、前記通信装置及び前記他の通信装置間の通信の往路通信時間及び復路通信時間を算出し、当該往路通信時間及び当該復路通信時間に基づいて、前記通信装置及び前記他の通信装置間の通信遅延時間を推定する推定部と、
前記通信遅延時間が所定精度を満たすか否かを判定する判定部と、
第２周期毎にアプリケーションデータを生成するアプリ部と、
前記第２周期毎に当該第２周期内の前記判定部の判定結果に応じたタイミングで前記アプリケーションデータを前記ネットワークに送信する送信部と、を備え、
前記送信部は、前記通信遅延時間が前記所定精度を満たさない場合、前記第２周期内の前回とは異なるタイミングで前記アプリケーションデータを前記ネットワークに送信する、
通信装置。
【請求項２】
通信装置であって、
第１周期毎にネットワークを介して他の通信装置と通信する通信部と、
前記第１周期毎に、前記通信装置及び前記他の通信装置間の通信の往路通信時間及び復路通信時間を算出し、当該往路通信時間及び当該復路通信時間に基づいて、前記通信装置及び前記他の通信装置間の通信遅延時間を推定する推定部と、
前記通信遅延時間が所定精度を満たすか否かを判定する判定部と、
第２周期毎にアプリケーションデータを生成するアプリ部と、
前記第２周期毎に当該第２周期内の前記判定部の判定結果に応じたタイミングで前記アプリケーションデータを前記ネットワークに送信する送信部と、を備え、
前記送信部は、前記通信遅延時間が前記所定精度を満たす場合、前記第２周期内の前回と同一のタイミングで前記アプリケーションデータを前記ネットワークに送信する、
通信装置。
【請求項３】
前記推定部は、前記往路通信時間及び前記復路通信時間の合計である往復通信時間の１／２を前記通信遅延時間に推定する請求項１または２に記載の通信装置。
【請求項４】
前記他の通信装置は、時刻の同期元となるマスター装置であり、
前記通信部は、前記他の通信装置と時刻同期用の同期データを通信し、
前記他の通信装置から送信される前記同期データは、前記他の通信装置により計時された基準時刻を示す第１タイムスタンプを含み、
前記通信遅延時間と前記第１タイムスタンプとに基づいて、時刻同期を行う同期部を更に備える請求項１または２に記載の通信装置。
【請求項５】
ローカル時刻を計時するクロック部を更に備え、
前記同期部は、前記通信遅延時間、前記第１タイムスタンプ、及び前記同期データ受信時のローカル時刻を用いて、前記基準時刻と前記ローカル時刻とのオフセットを算出し、算出した前記オフセットを用いて、前記クロック部に、計時するローカル時刻を補正させる請求項４に記載の通信装置。
【請求項６】
前記アプリ部は、電気量を計測し、
前記アプリケーションデータは、前記アプリケーションデータ生成時のローカル時刻を示す第２タイムスタンプ及び計測された前記電気量を含む請求項１または２に記載の通信装置。
【請求項７】
第１通信装置と第２通信装置とを備える通信システムであって、
前記第１通信装置は、
第１周期毎にネットワークを介して前記第２通信装置と通信する第１通信部と、
前記第１周期毎に、前記第１通信装置及び前記第２通信装置間の通信の往路通信時間及び復路通信時間を算出し、当該往路通信時間及び当該復路通信時間に基づいて、前記第１通信装置及び前記第２通信装置間の通信遅延時間を推定する推定部と、
前記通信遅延時間が所定精度を満たすか否かを判定する判定部と、
第２周期毎にアプリケーションデータを生成するアプリ部と、
前記第２周期毎に当該第２周期内の前記判定部の判定結果に応じたタイミングで前記アプリケーションデータを前記ネットワークに送信する送信部と、
を備え、
前記第２通信装置は、
前記第１周期毎に前記ネットワークを介して前記第１通信装置と通信する第２通信部
を備え、
前記送信部は、前記通信遅延時間が前記所定精度を満たさない場合、前記第２周期内の前回とは異なるタイミングで前記アプリケーションデータを前記ネットワークに送信する、
通信システム。
【請求項８】
第１通信装置と第２通信装置とを備える通信システムであって、
前記第１通信装置は、
第１周期毎にネットワークを介して前記第２通信装置と通信する第１通信部と、
前記第１周期毎に、前記第１通信装置及び前記第２通信装置間の通信の往路通信時間及び復路通信時間を算出し、当該往路通信時間及び当該復路通信時間に基づいて、前記第１通信装置及び前記第２通信装置間の通信遅延時間を推定する推定部と、
前記通信遅延時間が所定精度を満たすか否かを判定する判定部と、
第２周期毎にアプリケーションデータを生成するアプリ部と、
前記第２周期毎に当該第２周期内の前記判定部の判定結果に応じたタイミングで前記アプリケーションデータを前記ネットワークに送信する送信部と、
を備え、
前記第２通信装置は、
前記第１周期毎に前記ネットワークを介して前記第１通信装置と通信する第２通信部
を備え、
前記送信部は、前記通信遅延時間が前記所定精度を満たす場合、前記第２周期内の前回と同一のタイミングで前記アプリケーションデータを前記ネットワークに送信する、
通信システム。
【請求項９】
複数の第１通信装置と第２通信装置と管理装置とを備える通信システムであって、
前記複数の第１通信装置それぞれは、
第１周期毎にネットワークを介して前記第２通信装置と通信する第１通信部と、
前記第１周期毎に、前記第１通信装置及び前記第２通信装置間の通信の往路通信時間及び復路通信時間を算出し、当該往路通信時間及び当該復路通信時間に基づいて、前記第１通信装置及び前記第２通信装置間の通信遅延時間を推定する推定部と、
前記通信遅延時間を前記管理装置に送信し、前記管理装置から再設定命令を受信する第２通信部と、
第２周期毎に第１アプリケーションデータを生成する第１アプリ部と、
前記第２周期毎に当該第２周期内の前記再設定命令の受信の有無に応じたタイミングで前記第１アプリケーションデータを前記ネットワークに送信する第１送信部と、
を備え、
前記第２通信装置は、
前記第１周期毎に前記ネットワークを介して前記第１通信装置と通信する第３通信部
を備え、
前記管理装置は、
前記複数の第１通信装置から前記通信遅延時間を受信する第１受信部と、
前記複数の通信遅延時間が所定精度を満たすか否かを判定する判定部と、
前記複数の通信遅延時間が前記所定精度を満たさない場合、前記複数の第１通信装置の中から前記再設定命令送信対象の１以上の装置を決定する決定部と、
前記１以上の第１通信装置に前記再設定命令を送信する第２送信部と、
を備える通信システム。
【請求項１０】
前記第２通信装置は、
前記管理装置から前記再設定命令を受信する第２受信部と、
第３周期毎に第２アプリケーションデータを生成する第２アプリ部と、
前記第３周期毎に当該第３周期内の前記再設定命令の受信の有無に応じたタイミングで前記第２アプリケーションデータを前記ネットワークに送信する第３送信部と、
を更に備え、
前記決定部は、前記複数の第１通信装置及び前記第２通信装置の中から前記１以上の装置を決定する請求項９に記載の通信システム。
【請求項１１】
第３通信装置を更に備え、
前記第３通信装置は、
前記管理装置から前記再設定命令を受信する第３受信部と、
第４周期毎に第３アプリケーションデータを生成する第３アプリ部と、
前記第４周期毎に当該第４周期内の前記再設定命令の受信の有無に応じたタイミングで前記第３アプリケーションデータを前記ネットワークに送信する第４送信部と、
を備え、
前記決定部は、前記複数の第１通信装置、前記第２通信装置、及び前記第３通信装置の中から前記１以上の装置を決定する請求項９に記載の通信システム。
【請求項１２】
第３通信装置と転送装置とを更に備え、
前記第３通信装置は、
第４周期毎に第３アプリケーションデータを生成する第３アプリ部と、
前記第３アプリケーションデータを前記転送装置に送信する第４送信部と、
を備え、
前記転送装置は、
前記第３通信装置から前記第３アプリケーションデータを受信するとともに、前記管理装置から前記再設定命令を受信する第４受信部と、
前記第４周期毎に当該第４周期内かつ前記第３アプリケーションデータ受信後の前記再設定命令の受信の有無に応じたタイミングで前記第３アプリケーションデータを前記ネットワークに送信する第５送信部と、
を備え、
前記決定部は、前記複数の第１通信装置、前記第２通信装置、及び前記転送装置の中から前記１以上の装置を決定する請求項９に記載の通信システム。
【請求項１３】
通信装置で実行される推定方法であって、
第１周期毎にネットワークを介して他の通信装置と通信する通信ステップと、
前記第１周期毎に、前記通信装置及び前記他の通信装置間の通信の往路通信時間及び復路通信時間を算出し、当該往路通信時間及び当該復路通信時間に基づいて、前記通信装置及び前記他の通信装置間の通信遅延時間を推定する推定ステップと、
前記通信遅延時間が所定精度を満たすか否かを判定する判定ステップと、
第２周期毎にアプリケーションデータを生成する生成ステップと、
前記第２周期毎に当該第２周期内の前記判定ステップの判定結果に応じたタイミングで前記アプリケーションデータを前記ネットワークに送信する送信ステップと、を含み、
前記送信ステップは、前記通信遅延時間が前記所定精度を満たさない場合、前記第２周期内の前回とは異なるタイミングで前記アプリケーションデータを前記ネットワークに送信する、
推定方法。
【請求項１４】
通信装置で実行される推定方法であって、
第１周期毎にネットワークを介して他の通信装置と通信する通信ステップと、
前記第１周期毎に、前記通信装置及び前記他の通信装置間の通信の往路通信時間及び復路通信時間を算出し、当該往路通信時間及び当該復路通信時間に基づいて、前記通信装置及び前記他の通信装置間の通信遅延時間を推定する推定ステップと、
前記通信遅延時間が所定精度を満たすか否かを判定する判定ステップと、
第２周期毎にアプリケーションデータを生成する生成ステップと、
前記第２周期毎に当該第２周期内の前記判定ステップの判定結果に応じたタイミングで前記アプリケーションデータを前記ネットワークに送信する送信ステップと、を含み、
前記送信ステップは、前記通信遅延時間が前記所定精度を満たす場合、前記第２周期内の前回と同一のタイミングで前記アプリケーションデータを前記ネットワークに送信する、
推定方法。
【請求項１５】
通信装置のコンピュータに、
第１周期毎にネットワークを介して他の通信装置と通信する通信ステップと、
前記第１周期毎に、前記通信装置及び前記他の通信装置間の通信の往路通信時間及び復路通信時間を算出し、当該往路通信時間及び当該復路通信時間に基づいて、前記通信装置及び前記他の通信装置間の通信遅延時間を推定する推定ステップと、
前記通信遅延時間が所定精度を満たすか否かを判定する判定ステップと、
第２周期毎にアプリケーションデータを生成する生成ステップと、
前記第２周期毎に当該第２周期内の前記判定ステップの判定結果に応じたタイミングで前記アプリケーションデータを前記ネットワークに送信する送信ステップと、を実行させ、
前記送信ステップは、前記通信遅延時間が前記所定精度を満たさない場合、前記第２周期内の前回とは異なるタイミングで前記アプリケーションデータを前記ネットワークに送信する、
プログラム。
【請求項１６】
通信装置のコンピュータに、
第１周期毎にネットワークを介して他の通信装置と通信する通信ステップと、
前記第１周期毎に、前記通信装置及び前記他の通信装置間の通信の往路通信時間及び復路通信時間を算出し、当該往路通信時間及び当該復路通信時間に基づいて、前記通信装置及び前記他の通信装置間の通信遅延時間を推定する推定ステップと、
前記通信遅延時間が所定精度を満たすか否かを判定する判定ステップと、
第２周期毎にアプリケーションデータを生成する生成ステップと、
前記第２周期毎に当該第２周期内の前記判定ステップの判定結果に応じたタイミングで前記アプリケーションデータを前記ネットワークに送信する送信ステップと、を実行させ、
前記送信ステップは、前記通信遅延時間が前記所定精度を満たす場合、前記第２周期内の前回と同一のタイミングで前記アプリケーションデータを前記ネットワークに送信する、
プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、通信装置、通信システム、推定方法及びプログラムに関する。
【背景技術】
【０００２】
従来から、ネットワーク内で第１種類のデータの通信と当該第１種類以外のデータの通信とが競合してしまうことを回避するため、当該第１種類のデータの通信に先立ち当該第１種類以外のデータの通信を禁止させる技術が知られている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平０９−９３２７５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、上述したような従来技術では、第１種類以外のデータの通信が禁止されるため、通信が禁止されるデータが周期的な通信が必要となるデータである場合、周期的な通信が保障されなくなってしまう。
【０００５】
本発明が解決しようとする課題は、ネットワーク内での通信の競合を回避しつつ、データの周期的な通信を保障することができる通信装置、通信システム、推定方法及びプログラムを提供することである。
【課題を解決するための手段】
【０００６】
実施形態の通信装置は、通信部と、推定部と、判定部と、アプリ部と、送信部と、を備える。通信部は、第１周期毎にネットワークを介して他の通信装置と通信する。推定部は、前記第１周期毎に、前記通信装置及び前記他の通信装置間の通信の往路通信時間及び復路通信時間を算出し、当該往路通信時間及び当該復路通信時間に基づいて、前記通信装置及び前記他の通信装置間の通信遅延時間を推定する。判定部は、前記通信遅延時間が所定精度を満たすか否かを判定する。アプリ部は、第２周期毎にアプリケーションデータを生成する。送信部は、前記第２周期毎に当該第２周期内の前記判定部の判定結果に応じたタイミングで前記アプリケーションデータを前記ネットワークに送信する。
【図面の簡単な説明】
【０００７】
【図１】第１実施形態の通信システムの構成例を示す図。
【図２】第１実施形態のスレーブ装置の構成例を示す図。
【図３】第１実施形態のマスター装置の構成例を示す図。
【図４】第１実施形態のアプリデータ生成処理例を示すフローチャート。
【図５】第１実施形態のアプリデータ送信処理例を示すフローチャート。
【図６】第１実施形態の同期処理例を示すシーケンス図。
【図７】第１実施形態の再設定処理例を示すフローチャート。
【図８】第２実施形態の通信システムの構成例を示す図。
【図９】第２実施形態のスレーブ装置の構成例を示す図。
【図１０】第２実施形態のマスター装置の構成例を示す図。
【図１１】第２実施形態の通信装置の構成例を示す図。
【図１２】第２実施形態の管理装置の構成例を示す図。
【図１３】第２実施形態の管理装置の処理例を示すフローチャート。
【図１４】第２実施形態の再設定処理例を示すフローチャート。
【図１５】第３実施形態の通信システムの構成例を示す図。
【図１６】第３実施形態の通信装置の構成例を示す図。
【図１７】第３実施形態の転送装置の構成例を示す図。
【図１８】第３実施形態の通信装置の処理例を示すフローチャート。
【図１９】第３実施形態の転送装置の処理例を示すフローチャート。
【図２０】各実施形態の各装置のハードウェア構成例を示す図。
【発明を実施するための形態】
【０００８】
以下、添付図面を参照しながら、実施形態を詳細に説明する。
【０００９】
（第１実施形態）
図１は、第１実施形態の通信システム１０１の構成の一例を示す図である。図１に示すように、通信システム１０１は、スレーブ装置１１０（通信装置及び第１通信装置の一例）と、マスター装置１２０（他の通信装置及び第２通信装置の一例）と、を備える。
【００１０】
スレーブ装置１１０とマスター装置１２０とは、ネットワーク１０２を介して接続されている。ネットワーク１０２は、例えば、スイッチ装置などの通信を中継する１以上のネットワーク装置により実現できる。
【００１１】
マスター装置１２０は、時刻同期用の基準時刻を計時するものであり、時刻同期元となるサーバ装置などのコンピュータである。スレーブ装置１１０は、ネットワーク１０２を介してマスター装置１２０との間で時刻同期用の同期データを通信（送受信）することで、マスター装置１２０により計時された基準時刻を取得し、取得した基準時刻を用いて、自身のローカル時刻を同期する。スレーブ装置１１０は、例えば、産業用機器などが挙げられるが、これに限定されるものではない。
【００１２】
なお、通信システム１０１は、スレーブ装置１１０及びマスター装置１２０以外のネットワーク１０２に接続される通信装置を含んでいてもよい。
【００１３】
図２は、第１実施形態のスレーブ装置１１０の構成の一例を示す図である。図２に示すように、スレーブ装置１１０は、クロック部１１１と、アプリ部１１２と、送信部１１３と、通信部１１４（第１通信部の一例）と、推定部１１５と、判定部１１６と、記憶部１１７と、同期部１１８と、を備える。
【００１４】
クロック部１１１、アプリ部１１２、送信部１１３、通信部１１４、推定部１１５、判定部１１６、及び同期部１１８は、例えば、ＣＰＵ（Central  Processing  Unit）などの処理装置にプログラムを実行させること、即ち、ソフトウェアにより実現してもよいし、ＩＣ（Integrated  Circuit）などのハードウェアにより実現してもよいし、ソフトウェア及びハードウェアを併用して実現してもよい。記憶部１１７は、例えば、ＨＤＤ（Hard  Disk  Drive）、ＳＳＤ（Solid  State  Drive）、メモリカード、光ディスク、ＲＡＭ（Random  Access  Memory）、及びＲＯＭ（Read  Only  Memory）などの磁気的、光学的、又は電気的に記憶可能な記憶装置により実現できる。
【００１５】
クロック部１１１は、スレーブ装置１１０内の時刻であるローカル時刻を計時する。ここで、クロック部１１１は、自身が計時するローカル時刻を用いて、第１周期を計時する第１周期タイマー、第２周期を計時する第２周期タイマー、及び第２周期内で設定時間を計時する設定時間タイマー、としても機能する。
【００１６】
第１周期は、スレーブ装置１１０がマスター装置１２０との間で行う時刻同期の同期周期であり、第２周期は、アプリ部１１２が生成するアプリケーションデータ（以下、「アプリデータ」と称する）の送信周期であり、第１周期と第２周期とは、異なる周期であっても同一周期であってもよい。設定時間については後述する。
【００１７】
通信部１１４は、第１周期タイマーにより第１周期が計時される毎に、ネットワーク１０２を介してマスター装置１２０と通信する。具体的には、通信部１１４は、第１周期毎に、ネットワーク１０２を介してマスター装置１２０との間で時刻同期用の同期データの同期フレームを通信する。
【００１８】
例えば、通信部１１４は、第１周期毎に、クロック部１１１により計時されたローカル時刻（第１周期が計時された時点でのローカル時刻）を示すタイムスタンプｔ１を含む第１同期フレームを、ネットワーク１０２を介してマスター装置１２０に送信する。
【００１９】
その後、通信部１１４は、ネットワーク１０２を介してマスター装置１２０から第２同期フレームを受信し、第２同期フレームを受信した際にクロック部１１１により計時されたローカル時刻を示すタイムスタンプをタイムスタンプｔ４とする。
【００２０】
第２同期フレームは、マスター装置１２０により第１同期フレームが受信された基準時刻を示すタイムスタンプｔ２及びマスター装置１２０が第２同期フレームを送信した基準時刻を示すタイムスタンプｔ３（第１タイムスタンプの一例）を含む。なお、基準時刻は、マスター装置１２０により計時される時刻である。
【００２１】
推定部１１５は、第１周期毎に、スレーブ装置１１０及びマスター装置１２０間の通信の往路通信時間及び復路通信時間を算出し、当該往路通信時間及び当該復路通信時間に基づいて、スレーブ装置１１０及びマスター装置１２０間の通信遅延時間を推定する。
【００２２】
ここで、通信遅延時間とは、スレーブ装置１１０がマスター装置１２０により計時された基準時刻で自身のローカル時刻を同期する際に、マスター装置１２０がスレーブ装置１１０へ基準時刻を送信することに伴い、基準時刻が遅延する分の時間である。通信遅延時間は、例えば、マスター装置１２０が第２同期フレームを送信してからスレーブ装置１１０が受信するまでの復路通信時間が該当する。
【００２３】
但し、マスター装置１２０が第２同期フレームを送信する時刻は、マスター装置１２０の基準時刻で計時され、スレーブ装置１１０が第２同期フレームを受信する時刻は、スレーブ装置１１０のローカル時刻で計時され、この時点では、基準時刻とローカル時刻との誤差が分からないため、通信遅延時間を直接計測することはできない。
【００２４】
このため第１実施形態では、スレーブ装置１１０が第１同期フレームを送信してからマスター装置１２０が受信するまでの往路通信時間、及びマスター装置１２０が第２同期フレームを送信してからスレーブ装置１１０が受信するまでの復路通信時間の合計である往復通信時間の１／２を通信遅延時間に推定する推定手法を採用する。
【００２５】
このように、往路通信時間と復路通信時間とを合算すれば、基準時刻とローカル時刻との誤差が相殺されるため、基準時刻とローカル時刻との誤差の影響を受けずに通信遅延時間を推定できる。
【００２６】
つまり第１実施形態では、推定部１１５は、算出した往路通信時間及び復路通信時間の合計である往復通信時間の１／２を通信遅延時間に推定する。例えば、推定部１１５は、数式（１）を用いて、通信遅延時間を推定する。
【００２７】
通信遅延時間＝｛（ｔ４‐ｔ３）＋（ｔ２‐ｔ１）｝／２      …（１）
【００２８】
但し、通信遅延時間を上述したように推定する場合、往路通信時間と復路通信時間とが一致しなければ、通信遅延時間を正しく推定することができない。
【００２９】
しかしながら、同期フレームを中継するネットワーク１０２（詳細には、１以上のネットワーク装置）では、同期フレームがアプリフレームなどの同期フレーム以外の通信フレームと競合すると、同期フレームをキューイングする時間に揺らぎが生じるため、同期フレームの往路通信時間と復路通信時間とが一致しない事態が生じ得る。
【００３０】
つまり、往路通信時間及び復路通信時間とも時間が短いほどキューイング時間に揺らぎが生じていないことになり、往路通信時間と復路通信時間との差も小さくなるため、通信遅延時間を正しく推定するためには、いずれも時間が短い往路通信時間及び復路通信時間を用いることが好ましい。
【００３１】
このため、推定部１１５は、複数の往路通信時間及び複数の復路通信時間から最小の往路通信時間及び最小の復路通信時間を抽出し、抽出した最小の往路通信時間及び最小の復路通信時間の合計である往復通信時間の１／２を通信遅延時間に推定するようにしてもよい。
【００３２】
この場合、推定部１１５は、通信部１１４からタイムスタンプｔ１〜タイムスタンプｔ４の組を取得する。また、推定部１１５が過去に通信部１１４から取得した複数のタイムスタンプｔ１〜タイムスタンプｔ４の組を取得する。過去に通信部１１４から取得した複数のタイムスタンプｔ１〜タイムスタンプｔ４の組は、例えば、記憶部１１７に記憶しておけばよい。
【００３３】
そして、取得されたタイムスタンプｔ１〜タイムスタンプｔ４の組の数をＮ（Ｎは２以上の整数）とすると、推定部１１５は、数式（２）を用いて、通信遅延時間を推定する。
【００３４】
通信遅延時間＝｛ｍｉｎ（ｔ４ｉ‐ｔ３ｉ）＋ｍｉｎ（ｔ２ｊ‐ｔ１ｊ）｝／２      …（２）
【００３５】
ｉ及びｊは、変数であり、１〜Ｎの間の自然数を取り得る。ｍｉｎ（ｔ４ｉ‐ｔ３ｉ）は、最小の復路通信時間を返す関数であり、ｍｉｎ（ｔ２ｊ‐ｔ１ｊ）は、最小の往路通信時間を返す関数である。
【００３６】
同期部１１８は、推定部１１５により推定された通信遅延時間とタイムスタンプｔ３とに基づいて、時刻同期を行う。
【００３７】
具体的には、同期部１１８は、推定部１１５により推定された通信遅延時間、タイムスタンプｔ３、及びタイムスタンプｔ４を用いて、マスター装置１２０により計時される基準時刻とクロック部１１１により計時されるローカル時刻とのオフセット（時刻差）を算出し、算出したオフセットを用いて、クロック部１１１に、計時するローカル時刻を補正させる。
【００３８】
例えば、同期部１１８は、数式（３）を用いて、オフセットを算出し、算出したオフセットをクロック部１１１に設定させることで、計時するローカル時刻を補正させる。これにより、クロック部１１１が計時するローカル時刻がオフセット分ずれ、マスター装置１２０により計時される基準時刻と同期される。
【００３９】
オフセット＝ｔ４−｛ｔ３＋通信遅延時間｝      …（３）
【００４０】
なお、推定部１１５が数式（２）を用いて通信遅延時間を推定した場合、同期部１１８は、数式（４）を用いて、オフセットを算出し、算出したオフセットをクロック部１１１に設定させることで、計時するローカル時刻を補正させる。
【００４１】
オフセット＝ｔ４ａｒｇｍｉｎ（ｔ４ｉ‐ｔ３ｉ）−｛ｔ３ａｒｇｍｉｎ（ｔ４ｉ‐ｔ３ｉ）＋通信遅延時間｝      …（４）
【００４２】
ａｒｇｍｉｎ（ｔ４ｉ‐ｔ３ｉ）は、ｔ４ｉ‐ｔ３ｉが最小となる場合の変数ｉを返す関数である。つまり、数式（４）では、推定部１１５により推定された通信遅延時間、並びに最小の復路通信時間となる場合のタイムスタンプｔ３及びタイムスタンプｔ４を用いて、マスター装置１２０により計時される基準時刻とクロック部１１１により計時されるローカル時刻とのオフセットを算出する。
【００４３】
判定部１１６は、推定部１１５により推定された通信遅延時間が所定精度を満たすか否かを判定する。
【００４４】
例えば、判定部１１６は、推定部１１５から通信遅延時間を取得する。また、記憶部１１７には、判定部１１６が過去に推定部１１５から取得した通信遅延時間が複数記憶されており、判定部１１６は、記憶部１１７から最小の通信遅延時間を取得する。
【００４５】
そして判定部１１６は、記憶部１１７から取得した最小の通信遅延時間に予め定められた時間を加算し、推定部１１５から取得した通信遅延時間が、最小の通信遅延時間に予め定められた時間を加算した時間よりも短いか否かを判定する。ここで、最小の通信遅延時間に予め定められた時間を加算するのは、判定にある程度の幅を持たせるためである。
【００４６】
判定の結果、判定部１１６は、推定部１１５から取得した通信遅延時間の方が短ければ、所定精度を満たすと判定し、推定部１１５から取得した通信遅延時間の方が短くなければ、所定精度を満たさないと判定する。
【００４７】
なお、判定部１１６は、通信遅延時間を判定すると、推定部１１５から取得した通信遅延時間を記憶部１１７に記憶する。
【００４８】
ここで、クロック部１１１の設定時間について説明する。クロック部１１１は、判定部１１６により通信遅延時間が所定精度を満たさないと判定された場合、設定時間を再設定する。設定時間は、第２周期未満の時間であり、例えば、クロック部１１１が、乱数値などで決定してもよいし、第２周期内で所定分の位相をずらすことで決定してもよい。なお、クロック部１１１は、判定部１１６により通信遅延時間が所定精度を満たすと判定された場合、設定時間を再設定せず、前回の設定時間をそのまま使用する。
【００４９】
このため、設定時間は、判定部１１６により通信遅延時間が所定精度を満たすと判定されている間は変化せず、判定部１１６により通信遅延時間が所定精度を満たさないと判定されると変化する。
【００５０】
設定時間タイマーは、このようにして設定される設定時間を計時する。具体的には、設定時間タイマーは、第２周期タイマーにより第２周期が計時されると、設定時間の計時を開始し、第２周期内で設定時間を計時する。
【００５１】
アプリ部１１２は、第２周期タイマーにより第２周期が計時される毎に、アプリデータを生成する。
【００５２】
第１実施形態では、アプリ部１１２が電気量を計測するアプリケーションである場合を例に取り説明するが、これに限定されるものではない。この場合、アプリ部１１２は、第２周期毎に、電気量を計測し、計測した電気量に、クロック部１１１により計時されたローカル時刻（第２周期が計時された時点でのローカル時刻であり、アプリデータ生成時のローカル時刻）を示すタイムスタンプｔα（第２タイムスタンプの一例）を付加（打刻）し、アプリデータとする。
【００５３】
送信部１１３は、第２周期毎に当該第２周期内の判定部１１６の判定結果に応じたタイミングで、アプリ部１１２により生成されたアプリデータをネットワーク１０２に送信する。具体的には、送信部１１３は、設定時間タイマーにより設定時間が計時されると、アプリ部１１２により生成されたアプリデータのアプリフレームをネットワーク１０２に送信する。
【００５４】
なお、判定部１１６により通信遅延時間が所定精度を満たさないと判定された場合、設定時間は再設定されているため、送信部１１３は、第２周期内の前回とは異なるタイミングでアプリフレームをネットワーク１０２に送信する。一方、判定部１１６により通信遅延時間が所定精度を満たすと判定された場合、設定時間は再設定されていないため、送信部１１３は、第２周期内の前回と同一のタイミングでアプリフレームをネットワーク１０２に送信する。
【００５５】
図３は、第１実施形態のマスター装置１２０の構成の一例を示す図である。図３に示すように、マスター装置１２０は、クロック部１２１と、アプリ部１２２と、送信部１２３と、通信部１２４（第２通信部の一例）と、を備える。
【００５６】
クロック部１２１、アプリ部１２２、送信部１２３、及び通信部１２４は、例えば、ＣＰＵなどの処理装置にプログラムを実行させること、即ち、ソフトウェアにより実現してもよいし、ＩＣなどのハードウェアにより実現してもよいし、ソフトウェア及びハードウェアを併用して実現してもよい。
【００５７】
クロック部１２１は、マスター装置１２０内の時刻である基準時刻を計時する。ここで、クロック部１２１は、自身が計時する基準時刻を用いて、第３周期を計時する第３周期タイマーとしても機能する。
【００５８】
第３周期は、アプリ部１２２が生成するアプリデータの送信周期である。第１実施形態では、第３周期は、第２周期と同一周期であるものとするが、異なる周期であってもよい。
【００５９】
アプリ部１２２は、第３周期タイマーにより第３周期が計時される毎に、アプリデータを生成する。
【００６０】
第１実施形態では、アプリ部１２２が電気量を計測するアプリケーションである場合を例に取り説明するが、これに限定されるものではない。この場合、アプリ部１２２は、第３周期毎に、電気量を計測し、計測した電気量に、クロック部１２１により計時された基準時刻（第３周期が計時された時点での基準時刻であり、アプリデータ生成時の基準時刻）を示すタイムスタンプｔβを付加（打刻）し、アプリデータとする。
【００６１】
送信部１２３は、アプリ部１２２により生成されたアプリデータをネットワーク１０２に送信する。
【００６２】
通信部１２４は、第１周期毎に、ネットワーク１０２を介してスレーブ装置１１０と通信する。具体的には、通信部１２４は、第１周期毎に、ネットワーク１０２を介してスレーブ装置１１０との間で時刻同期用の同期データの同期フレームを通信する。
【００６３】
例えば、通信部１２４は、第１周期毎に、スレーブ装置１１０から、ネットワーク１０２を介して、タイムスタンプｔ１を含む第１同期フレームを受信し、第１同期フレームを受信した際にクロック部１２１により計時された基準時刻を示すタイムスタンプをタイムスタンプｔ２とする。
【００６４】
そして通信部１２４は、第２同期フレームを送信する際にクロック部１２１により計時された基準時刻を示すタイムスタンプをタイムスタンプｔ３とし、タイムスタンプｔ２及びタイムスタンプｔ３を含む第２同期フレームを、ネットワーク１０２を介してスレーブ装置１１０に送信する。
【００６５】
図４は、第１実施形態のスレーブ装置１１０で行われるアプリデータ生成処理の手順の流れの一例を示すフローチャートである。
【００６６】
アプリ部１１２は、第２周期タイマーにより第２周期が計時（計測）されるまで待機する（ステップＳ１０１でＮｏ）。
【００６７】
そしてアプリ部１１２は、第２周期タイマーにより第２周期が計時されると（ステップＳ１０１でＹｅｓ）、電気量を計測し、計測した電気量に、クロック部１１１により計時されたローカル時刻を示すタイムスタンプｔαを付加（打刻）し、アプリデータを生成する（ステップＳ１０３）。そして、ステップＳ１０１へ戻る。
【００６８】
図５は、第１実施形態のスレーブ装置１１０で行われるアプリデータ送信処理の手順の流れの一例を示すフローチャートである。
【００６９】
設定時間タイマーは、第２周期タイマーにより第２周期が計時（計測）されるまで待機し（ステップＳ２０１でＮｏ）、第２周期タイマーにより第２周期が計時されると（ステップＳ２０１でＹｅｓ）、設定時間の計時を開始する（ステップＳ２０３）。
【００７０】
そして送信部１１３は、設定時間タイマーにより設定時間が計時されるまで待機し（ステップＳ２０５でＮｏ）、設定時間タイマーにより設定時間が計時されると（ステップＳ２０５でＹｅｓ）、アプリ部１１２により生成されたアプリデータのアプリフレームをネットワーク１０２に送信する（ステップＳ２０７）。そして、ステップＳ２０１へ戻る。
【００７１】
図６は、第１実施形態の通信システム１０１で行われる同期処理の手順の流れの一例を示すシーケンス図である。
【００７２】
まず、スレーブ装置１１０の通信部１１４は、第１周期タイマーにより第１周期が計時されると、クロック部１１１により計時されたローカル時刻を示すタイムスタンプｔ１を含む第１同期フレームを、ネットワーク１０２を介してマスター装置１２０に送信する（ステップＳ３０１）。
【００７３】
続いて、マスター装置１２０の通信部１２４は、スレーブ装置１１０からネットワーク１０２を介して第１同期フレームを受信し、第１同期フレームを受信した際にクロック部１２１により計時された基準時刻を示すタイムスタンプｔ２を第２同期フレームに打刻する（ステップＳ３０３）。
【００７４】
続いて、通信部１２４は、第２同期フレームを送信する際にクロック部１２１により計時された基準時刻を示すタイムスタンプｔ３を第２同期フレームに打刻し（ステップＳ３０５）、タイムスタンプｔ２及びタイムスタンプｔ３を含む第２同期フレームを、ネットワーク１０２を介してスレーブ装置１１０に送信する（ステップＳ３０７）。
【００７５】
続いて、通信部１１４は、マスター装置１２０からネットワーク１０２を介して第２同期フレームを受信し、スレーブ装置１１０の推定部１１５は、通信部１１４から、最新の往復通信時間として、最新のタイムスタンプｔ１〜タイムスタンプｔ４の組を取得する（ステップＳ３０９）。
【００７６】
続いて、推定部１１５は、数式（１）を用いて、通信遅延時間を算出（推定）する（ステップＳ３１１）。
【００７７】
続いて、判定部１１６及びクロック部１１１は、設定時間の再設定処理を行う（ステップＳ３１３）。再設定処理の詳細については、後述する。
【００７８】
続いて、同期部１１８は、数式（３）を用いて、マスター装置１２０により計時される基準時刻とクロック部１１１により計時されるローカル時刻とのオフセットを算出し（ステップＳ３１５）、算出したオフセットを用いて、クロック部１１１に、計時するローカル時刻を補正させる（ステップＳ３１７）。
【００７９】
図７は、第１実施形態のスレーブ装置１１０で行われる再設定処理の手順の流れの一例を示すフローチャートである。
【００８０】
まず、判定部１１６は、推定部１１５から通信遅延時間を取得するとともに、記憶部１１７から最小の通信遅延時間を取得し、最小の通信遅延時間に予め定められた時間Ｘを加算し、推定部１１５から取得した通信遅延時間が、最小の通信遅延時間に予め定められた時間Ｘを加算した時間よりも短いか否かを判定する（ステップＳ４０１）。
【００８１】
判定の結果、判定部１１６は、推定部１１５から取得した通信遅延時間の方が短ければ（ステップＳ４０１でＮｏ）、所定精度を満たすと判定し、クロック部１１１は、設定時間を再設定しない。
【００８２】
一方、判定の結果、判定部１１６は、推定部１１５から取得した通信遅延時間の方が短くなければ（ステップＳ４０１でＹｅｓ）、所定精度を満たさないと判定し、設定時間を再設定する（ステップＳ４０３）。
【００８３】
以上のように第１実施形態によれば、通信遅延時間が所定の精度を満たさなければ、アプリフレームの送信タイミングが第２周期内で変更され、通信遅延時間が所定の精度を満たせば、アプリフレームの送信タイミングが第２周期内で変更されない。
【００８４】
つまり、第１実施形態によれば、通信遅延時間が所定の精度を満たさず、ネットワーク１０２上でアプリフレームと同期フレームとの競合が発生し易く、同期フレームのキューイング時間に揺らぎが生じ易い場合には、アプリフレームの送信タイミングが変更され、通信遅延時間が所定の精度を満たし、ネットワーク１０２上でアプリフレームと同期フレームとの競合が発生しにくく、同期フレームのキューイング時間に揺らぎが生じにくい場合には、アプリフレームの送信タイミングが固定される。
【００８５】
従って第１実施形態によれば、時間が経過するほど通信遅延時間が所定の精度を満たすことが期待でき、このような推定精度の高い通信遅延時間を用いて時刻同期を行うため、時刻同期精度の向上も期待できる。
【００８６】
つまり、第１実施形態によれば、ネットワーク１０２内での通信の競合を回避して時刻同期を行うことが期待できるため、時刻同期精度の向上が期待できるとともに、アプリデータの周期的な通信も保障することができる。
【００８７】
（第２実施形態）
第２実施形態では、管理装置が集約して通信遅延時間が所定の精度を満たすか否かを判定する例について説明する。以下では、第１実施形態との相違点の説明を主に行い、第１実施形態と同様の機能を有する構成要素については、第１実施形態と同様の名称・符号を付し、その説明を省略する。
【００８８】
図８は、第２実施形態の通信システム２０１の構成の一例を示す図であり、スレーブ装置２１０−１、２１０−２、マスター装置２２０、通信装置２３０、及び管理装置２５０が第１実施形態と相違する。
【００８９】
以下の説明では、スレーブ装置２１０−１、２１０−２を各々区別する必要がない場合は、単にスレーブ装置２１０と称する場合がある。また、図８に示す例では、スレーブ装置２１０の台数が２台、通信装置２３０の台数が１台である場合を例示しているが、各装置の台数はこれに限定されるものではない。
【００９０】
図９は、第２実施形態のスレーブ装置２１０の構成の一例を示す図である。図９に示すように、スレーブ装置２１０は、通信部２１４及び推定部２１５が第１実施形態と相違する。なお第２実施形態では、通信部２１４が第１通信部及び第２通信部の一例となり、アプリ部１１２が第１アプリ部の一例となり、アプリ部１１２が生成するアプリデータが第１アプリケーションデータの一例となり、送信部１１３が第１送信部の一例となる。
【００９１】
通信部２１４は、推定部２１５により通信遅延時間が推定されると、推定部２１５から当該通信遅延時間を取得し、管理装置２５０へ送信する。また通信部２１４は、管理装置２５０から再設定命令を受信する。
【００９２】
クロック部１１１は、通信部２１４により再設定命令が受信されると、設定時間を再設定し、通信部２１４により再設定命令が受信されなければ、設定時間を再設定せず、前回の設定時間をそのまま使用する。
【００９３】
なお、通信部２１４により再設定命令が受信された場合、設定時間は再設定されているため、送信部１１３は、第２周期内の前回とは異なるタイミングでアプリフレームをネットワーク１０２に送信する。一方、通信部２１４により再設定命令が受信されなかった場合、設定時間は再設定されていないため、送信部１１３は、第２周期内の前回と同一のタイミングでアプリフレームをネットワーク１０２に送信する。
【００９４】
図１０は、第２実施形態のマスター装置２２０の構成の一例を示す図である。図１０に示すように、マスター装置２２０は、クロック部２２１、送信部２２３、及び受信部２２５が第１実施形態と相違する。なお第２実施形態では、アプリ部１２２が第２アプリ部の一例となり、アプリ部１２２が生成するアプリデータが第２アプリケーションデータの一例となり、送信部２２３が第３送信部の一例となり、通信部１２４が第３通信部の一例となり、受信部２２５が第２受信部の一例となる。
【００９５】
受信部２２５は、管理装置２５０から再設定命令を受信する。
【００９６】
クロック部２２１は、自身が計時する基準時刻を用いて、第３周期内で設定時間を計時する設定時間タイマーとしても機能する。クロック部２２１は、受信部２２５により再設定命令が受信されると、設定時間を再設定し、受信部２２５により再設定命令が受信されなければ、設定時間を再設定せず、前回の設定時間をそのまま使用する。設定時間は、第３周期未満の時間であり、例えば、クロック部２２１が、乱数値などで決定してもよいし、第３周期内で所定分の位相をずらすことで決定してもよい。
【００９７】
設定時間タイマーは、このようにして設定される設定時間を計時する。具体的には、設定時間タイマーは、第３周期タイマーにより第３周期が計時されると、設定時間の計時を開始し、第３周期内で設定時間を計時する。
【００９８】
送信部２２３は、第３周期毎に当該第３周期内の再設定命令の受信の有無に応じたタイミングで、アプリ部１２２により生成されたアプリデータをネットワーク１０２に送信する。具体的には、送信部２２３は、設定時間タイマーにより設定時間が計時されると、アプリ部１２２により生成されたアプリデータのアプリフレームをネットワーク１０２に送信する。
【００９９】
なお、受信部２２５により再設定命令が受信された場合、設定時間は再設定されているため、送信部２２３は、第３周期内の前回とは異なるタイミングでアプリフレームをネットワーク１０２に送信する。一方、受信部２２５により再設定命令が受信されなかった場合、設定時間は再設定されていないため、送信部２２３は、第３周期内の前回と同一のタイミングでアプリフレームをネットワーク１０２に送信する。
【０１００】
図１１は、第２実施形態の通信装置２３０の構成の一例を示す図である。図１１に示すように、通信装置２３０は、クロック部２３１と、アプリ部２３２（第３アプリ部の一例）と、送信部２３３（第４送信部の一例）と、受信部２３４（第３受信部の一例）と、を備える。
【０１０１】
クロック部２３１、アプリ部２３２、送信部２３３、及び受信部２３４は、例えば、ＣＰＵなどの処理装置にプログラムを実行させること、即ち、ソフトウェアにより実現してもよいし、ＩＣなどのハードウェアにより実現してもよいし、ソフトウェア及びハードウェアを併用して実現してもよい。
【０１０２】
受信部２３４は、管理装置２５０から再設定命令を受信する。
【０１０３】
クロック部２３１は、通信装置２３０内の時刻であるローカル時刻を計時する。ここで、クロック部２３１は、自身が計時するローカル時刻を用いて、第４周期を計時する第４周期タイマー、及び第４周期内で設定時間を計時する設定時間タイマーとしても機能する。
【０１０４】
第４周期は、アプリ部２３２が生成するアプリデータ（第３アプリケーションデータの一例）の送信周期である。第２実施形態では、第４周期は、第２周期及び第３周期と同一周期であるものとするが、異なる周期であってもよい。
【０１０５】
クロック部２３１は、受信部２３４により再設定命令が受信されると、設定時間を再設定し、受信部２３４により再設定命令が受信されなければ、設定時間を再設定せず、前回の設定時間をそのまま使用する。設定時間は、第４周期未満の時間であり、例えば、クロック部２３１が、乱数値などで決定してもよいし、第４周期内で所定分の位相をずらすことで決定してもよい。
【０１０６】
設定時間タイマーは、このようにして設定される設定時間を計時する。具体的には、設定時間タイマーは、第４周期タイマーにより第４周期が計時されると、設定時間の計時を開始し、第４周期内で設定時間を計時する。
【０１０７】
アプリ部２３２は、第４周期タイマーにより第４周期が計時される毎に、アプリデータを生成する。第２実施形態では、アプリ部２３２が電気量を計測するアプリケーションである場合を例に取り説明するが、これに限定されるものではない。この場合、アプリ部２３２は、第４周期毎に、電気量を計測し、計測した電気量に、クロック部２３１により計時されたローカル時刻（第４周期が計時された時点での基準時刻であり、アプリデータ生成時の基準時刻）を示すタイムスタンプｔγを付加（打刻）し、アプリデータとする。
【０１０８】
送信部２３３は、第４周期毎に当該第４周期内の再設定命令の受信の有無に応じたタイミングで、アプリ部２３２により生成されたアプリデータをネットワーク１０２に送信する。具体的には、送信部２３３は、設定時間タイマーにより設定時間が計時されると、アプリ部２３２により生成されたアプリデータのアプリフレームをネットワーク１０２に送信する。
【０１０９】
なお、受信部２３４により再設定命令が受信された場合、設定時間は再設定されているため、送信部２３３は、第４周期内の前回とは異なるタイミングでアプリフレームをネットワーク１０２に送信する。一方、受信部２３４により再設定命令が受信されなかった場合、設定時間は再設定されていないため、送信部２３３は、第４周期内の前回と同一のタイミングでアプリフレームをネットワーク１０２に送信する。
【０１１０】
図１２は、第２実施形態の管理装置２５０の構成の一例を示す図である。図１２に示すように、管理装置２５０は、受信部２５１（第１受信部の一例）と、記憶部２５２と、判定部２５３と、決定部２５４と、送信部２５５（第２送信部の一例）と、を備える。
【０１１１】
受信部２５１、判定部２５３、決定部２５４、及び送信部２５５は、例えば、ＣＰＵなどの処理装置にプログラムを実行させること、即ち、ソフトウェアにより実現してもよいし、ＩＣなどのハードウェアにより実現してもよいし、ソフトウェア及びハードウェアを併用して実現してもよい。記憶部２５２は、例えば、ＨＤＤ、ＳＳＤ、メモリカード、光ディスク、ＲＡＭ、及びＲＯＭなどの磁気的、光学的、又は電気的に記憶可能な記憶装置により実現できる。
【０１１２】
受信部２５１は、スレーブ装置２１０それぞれから、通信遅延時間を受信する。
【０１１３】
判定部２５３は、受信部２５１により受信された複数の通信遅延時間が所定精度を満たすか否かを判定する。ここで、記憶部２５２には、判定部２５３が過去に受信部２５１から取得したスレーブ装置２１０毎の通信遅延時間が記憶されている。
【０１１４】
このため判定部２５３は、第１実施形態のスレーブ装置１１０の判定部１１６と同様の手法で、受信部２５１により受信された通信遅延時間毎に、所定精度を満たすか否かを判定してもよいし、第１実施形態のスレーブ装置１１０の判定部１１６と同様の手法で、通信遅延時間の合計時間同士を比較して、所定精度を満たすか否かを判定してもよい。前者の場合、判定部２５３は、全ての通信遅延時間で所定精度を満たせば、所定精度を満たすと判定する。
【０１１５】
なお、判定部２５３は、通信遅延時間を判定すると、受信部２５１から取得した通信遅延時間を記憶部２５２に記憶する。
【０１１６】
決定部２５４は、複数の通信遅延時間が所定精度を満たさない場合、複数のスレーブ装置２１０の中から再設定命令送信対象の１以上の装置を決定する。例えば、決定部２５４は、通信遅延時間が所定精度を満たさなかったスレーブ装置２１０を再設定命令送信対象に決定する。
【０１１７】
なお決定部２５４は、複数のスレーブ装置２１０、マスター装置２２０、及び通信装置２３０の中から再設定命令送信対象の１以上の装置を決定してもよい。この場合、決定部２５４は、複数のスレーブ装置２１０、マスター装置２２０、及び通信装置２３０の中から、ランダムに再設定命令送信対象の１以上の装置を決定してもよいし、予め定められた順番で再設定命令送信対象の１以上の装置を決定してもよい。
【０１１８】
送信部２５５は、決定部２５４により決定された１以上の装置に再設定命令を送信する。
【０１１９】
図１３は、第２実施形態の管理装置２５０で行われる処理の手順の流れの一例を示すフローチャートである。
【０１２０】
まず、受信部２５１は、スレーブ装置２１０それぞれから、通信遅延時間を収集（受信）する（ステップＳ５０１）。
【０１２１】
続いて、判定部２５３は、受信部２５１により受信された複数の通信遅延時間が所定精度を満たすか否かより、設定時間の再設定が必要か否かを判定する（ステップＳ５０３）。
【０１２２】
複数の通信遅延時間が所定精度を満たさず、設定時間の再設定が必要な場合（ステップＳ５０３でＹｅｓ）、決定部２５４は、複数のスレーブ装置２１０、マスター装置２２０、及び通信装置２３０の中から再設定命令送信対象の１以上の装置を決定する（ステップＳ５０５）。
【０１２３】
続いて、送信部２５５は、決定部２５４により決定された対象の１以上の装置に再設定命令を送信する（ステップＳ５０７）。
【０１２４】
なお、設定時間の再設定が不要な場合（ステップＳ５０３でＮｏ）、処理は終了となる。
【０１２５】
図１４は、第２実施形態のスレーブ装置２１０で行われる再設定処理の手順の流れの一例を示すフローチャートである。
【０１２６】
通信部２１４は、管理装置２５０から再設定命令を受信すると（ステップＳ６０１）、
クロック部１１１は、設定時間を再設定する（ステップＳ６０３）。
【０１２７】
なお、マスター装置２２０の場合、受信部２２５は、管理装置２５０から再設定命令を受信すると、クロック部２２１は、設定時間を再設定する。また、通信装置２３０の場合、受信部２３４は、管理装置２５０から再設定命令を受信すると、クロック部２３１は、設定時間を再設定する。
【０１２８】
以上のように第２実施形態によれば、通信遅延時間が所定の精度を満たさなければ、マスター装置や通信装置もアプリフレームの送信タイミングが周期内で変更されるため、通信遅延時間が所定の精度を満たすまでの時間が短縮されることが期待できる。
【０１２９】
（第３実施形態）
第３実施形態では、通信装置が転送装置を利用してアプリデータを周期内でランダムなタイミングで送信する例について説明する。以下では、第２実施形態との相違点の説明を主に行い、第２実施形態と同様の機能を有する構成要素については、第１実施形態と同様の名称・符号を付し、その説明を省略する。
【０１３０】
図１５は、第３実施形態の通信システム３０１の構成の一例を示す図であり、転送装置３４０がネットワーク１０２に接続され、通信装置３３０が転送装置３４０に接続されている点で第２実施形態と相違する。転送装置３４０としては、例えば、通信装置３３０のネットワークカードやＵＳＢ（Universal  Serial  Bus）型のコンバータなど通信装置３３０に直接接続される装置が挙げられるが、これに限定されず、ネットワーク１０２を介して通信装置３３０に接続されるものであってもよい。
【０１３１】
図１６は、第３実施形態の通信装置３３０の構成の一例を示す図である。図１６に示すように、通信装置３３０は、クロック部３３１及び送信部３３３が第２実施形態と相違する。
【０１３２】
第３実施形態では、クロック部３３１は、設定時間タイマーとしては機能しない。
【０１３３】
送信部３３３は、アプリ部２３２によりアプリデータが生成されると、当該アプリデータを転送装置３４０に送信する。
【０１３４】
図１７は、第３実施形態の転送装置３４０の構成の一例を示す図である。図１７に示すように、転送装置３４０は、受信部３４１（第４受信部の一例）と、クロック部３４２と、送信部３４３（第５送信部の一例）と、を備える。
【０１３５】
受信部３４１、クロック部３４２、及び送信部３４３は、例えば、ＣＰＵなどの処理装置にプログラムを実行させること、即ち、ソフトウェアにより実現してもよいし、ＩＣなどのハードウェアにより実現してもよいし、ソフトウェア及びハードウェアを併用して実現してもよい。
【０１３６】
受信部３４１は、通信装置３３０からアプリデータを受信する。また受信部３４１は、管理装置２５０から再設定命令を受信する。
【０１３７】
クロック部３４２は、転送装置３４０内の時刻であるローカル時刻を計時する。ここで、クロック部３４２は、自身が計時するローカル時刻を用いて、第４周期を計時する第４周期タイマー、及び第４周期内で設定時間を計時する設定時間タイマーとしても機能する。
【０１３８】
なお、第４周期タイマーは、通信装置３３０のクロック部３３１の第４周期タイマーと同期しているものとする。つまり、クロック部３３１の第４周期タイマーとクロック部３４２の第４周期タイマーとは、同一のタイミングで第４周期を計時する。
【０１３９】
クロック部３４２は、受信部３４１により再設定命令が受信されると、設定時間を再設定し、受信部３４１により再設定命令が受信されなければ、設定時間を再設定せず、前回の設定時間をそのまま使用する。設定時間は、第４周期未満の時間であり、詳細には、受信部３４１によりアプリデータが受信されてから第４周期となるまでよりも短い時間であり、例えば、クロック部３４２が、乱数値などで決定してもよいし、第４周期内で所定分の位相をずらすことで決定してもよい。
【０１４０】
設定時間タイマーは、このようにして設定される設定時間を計時する。具体的には、設定時間タイマーは、受信部３４１によりアプリデータが受信されると、設定時間の計時を開始し、第４周期内で設定時間を計時する。
【０１４１】
送信部３４３は、第４周期毎に当該第４周期内かつ受信部３４１によるアプリデータ受信後の再設定命令の受信の有無に応じたタイミングで、受信部３４１により受信されたアプリデータをネットワーク１０２に送信する。具体的には、送信部３４３は、設定時間タイマーにより設定時間が計時されると、受信部３４１により受信されたアプリデータのアプリフレームをネットワーク１０２に送信する。
【０１４２】
なお、受信部３４１により再設定命令が受信された場合、設定時間は再設定されているため、送信部３４３は、第４周期内の前回とは異なるタイミングでアプリフレームをネットワーク１０２に送信する。一方、受信部３４１により再設定命令が受信されなかった場合、設定時間は再設定されていないため、送信部３４３は、第４周期内の前回と同一のタイミングでアプリフレームをネットワーク１０２に送信する。
【０１４３】
第３実施形態では、決定部２５４は、複数のスレーブ装置２１０、マスター装置２２０、及び転送装置３４０の中から再設定命令送信対象の１以上の装置を決定してもよい。
【０１４４】
図１８は、第３実施形態の通信装置３３０で行われる処理の手順の流れの一例を示すフローチャートである。
【０１４５】
アプリ部２３２は、第４周期タイマーにより第４周期が計時（計測）されるまで待機する（ステップＳ７０１でＮｏ）。
【０１４６】
そしてアプリ部２３２は、第４周期タイマーにより第４周期が計時されると（ステップＳ７０１でＹｅｓ）、電気量を計測し、計測した電気量に、クロック部３３１により計時されたローカル時刻を示すタイムスタンプｔγを付加（打刻）し、アプリデータを生成する（ステップＳ７０３）。
【０１４７】
続いて、送信部３３３は、アプリ部２３２により生成されたアプリデータのアプリフレームを転送装置３４０に送信する（ステップＳ７０５）。そして、ステップＳ７０１へ戻る。
【０１４８】
図１９は、第３実施形態の転送装置３４０で行われる処理の手順の流れの一例を示すフローチャートである。
【０１４９】
受信部３４１は、通信装置３３０からアプリフレームを受信するまで待機し（ステップＳ８０１でＮｏ）、アプリフレームを受信すると（ステップＳ８０１でＹｅｓ）、設定時間タイマーが設定時間の計時を開始する（ステップＳ８０３）。
【０１５０】
そして送信部３４３は、設定時間タイマーにより設定時間が計時されるまで待機し（ステップＳ８０５でＮｏ）、設定時間タイマーにより設定時間が計時されると（ステップＳ８０５でＹｅｓ）、受信部３４１により受信されたアプリフレームをネットワーク１０２に送信する（ステップＳ８０７）。そして、ステップＳ８０１へ戻る。
【０１５１】
なお、転送装置３４０で行われる再設定処理の手順の流れは、図１４を参照すると、受信部３４１は、管理装置２５０から再設定命令を受信し、クロック部３４２は、設定時間を再設定する。
【０１５２】
以上のように第３実施形態によれば、アプリフレームの送信タイミングを変更できない通信装置であっても、転送装置によりアプリフレームの送信タイミングを変更できるため、通信遅延時間が所定の精度を満たすまでの時間が短縮されることが期待できる。
【０１５３】
（ハードウェア構成）
図２０は、各実施形態のスレーブ装置、マスター装置、管理装置、通信装置、及び転送装置（以下、各実施形態の各装置と称する）のハードウェア構成の一例を示す図である。図２０に示すように、各実施形態の各装置は、ＣＰＵなどの制御装置９０１と、ＲＯＭやＲＡＭなどの主記憶装置９０２と、ＨＤＤやＳＳＤなどの補助記憶装置９０３と、ディスプレイなどの表示装置９０４と、キーボードやマウスなどの入力装置９０５と、通信インタフェースなどの通信装置９０６と、を備えており、通常のコンピュータを利用したハードウェア構成となっている。
【０１５４】
各実施形態の各装置で実行されるプログラムは、インストール可能な形式又は実行可能な形式のファイルでＣＤ−ＲＯＭ、ＣＤ−Ｒ、メモリカード、ＤＶＤ（Digital  Versatile  Disk）、フレキシブルディスク（ＦＤ）等のコンピュータで読み取り可能な記憶媒体に記憶されて提供される。
【０１５５】
また、各実施形態の各装置で実行されるプログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するようにしてもよい。また、各実施形態の各装置で実行されるプログラムを、インターネット等のネットワーク経由で提供または配布するようにしてもよい。また、各実施形態の各装置で実行されるプログラムを、ＲＯＭ等に予め組み込んで提供するようにしてもよい。
【０１５６】
各実施形態の各装置で実行されるプログラムは、上述した各部をコンピュータ上で実現させるためのモジュール構成となっている。実際のハードウェアとしては、ＣＰＵがＲＯＭやＨＤＤなどからプログラムをＲＡＭ上に読み出して実行することにより、上記各部がコンピュータ上で実現されるようになっている。なお、上記各部の少なくとも一部をＩＣなどのハードウェアで実現する場合、各実施形態の各装置は、当該ＩＣなどを更に備えればよい。
【０１５７】
本発明は、上記各実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化することができる。また、上記各実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成することができる。例えば、実施形態に示される全構成要素からいくつかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせても良い。
【０１５８】
例えば、各実施形態のフローチャートにおける各ステップを、その性質に反しない限り、実行順序を変更し、複数同時に実施し、あるいは実施毎に異なった順序で実施してもよい。
【０１５９】
以上のように、各実施形態によれば、ネットワーク内での通信の競合を回避しつつ、データの周期的な通信を保障することができる。
【符号の説明】
【０１６０】
１０１、２０１、３０１  通信システム
１０２  ネットワーク
１１０、２１０−１、２１０−２（２１０）  スレーブ装置
１１１  クロック部
１１２  アプリ部
１１３  送信部
１１４、２１４  通信部
１１５、２１５  推定部
１１６  判定部
１１７  記憶部
１１８  同期部
１２０、２２０  マスター装置
１２１、２２１  クロック部
１２２  アプリ部
１２３、２２３  送信部
１２４  通信部
２２５  受信部
２３０、３３０  通信装置
２３１、３３１  クロック部
２３２  アプリ部
２３３、３３３  送信部
２３４  受信部
２５０  管理装置
２５１  受信部
２５２  記憶部
２５３  判定部
２５４  決定部
２５５  送信部
３４０  転送装置
３４１  受信部
３４２  クロック部
３４３  送信部
【図１】
0006499018.tif 000002
【図２】
0006499018.tif 000003
【図３】
0006499018.tif 000004
【図４】
0006499018.tif 000005
【図５】
0006499018.tif 000006
【図６】
0006499018.tif 000007
【図７】
0006499018.tif 000008
【図８】
0006499018.tif 000009
【図９】
0006499018.tif 000010
【図１０】
0006499018.tif 000011
【図１１】
0006499018.tif 000012
【図１２】
0006499018.tif 000013
【図１３】
0006499018.tif 000014
【図１４】
0006499018.tif 000015
【図１５】
0006499018.tif 000016
【図１６】
0006499018.tif 000017
【図１７】
0006499018.tif 000018
【図１８】
0006499018.tif 000019
【図１９】
0006499018.tif 000020
【図２０】
0006499018.tif 000021