(57)【特許請求の範囲】
【請求項１】
カウンタを有するデバイスから、前記デバイスで取得されたデータを受信する受信部と、
前記デバイスに制御情報を送信する送信部と、
前記デバイスで前記データが取得された時刻を算出する時刻算出部とを有し、
前記受信部は、
前記デバイスから、前記データと、前記デバイスでデータが取得された際の前記カウンタの値である取得カウンタ値と、前記デバイスから前記データが送信された際の前記カウンタの値である送信カウンタ値とを受信し、
前記送信部は、
前記受信部により前記データと前記取得カウンタ値と前記送信カウンタ値とが受信された後に、前記制御情報を前記デバイスに送信し、
前記受信部は、
前記送信部により前記制御情報が送信された後に、前記デバイスから、前記デバイスで前記制御情報が受信された際の前記カウンタの値である受信カウンタ値と、前記カウンタの周波数値とを受信し、
前記時刻算出部は、
前記受信部により受信された前記受信カウンタ値と前記取得カウンタ値と前記送信カウンタ値と前記カウンタの周波数値と、前記受信部により前記データが受信された時刻とに基づき、前記デバイスで前記データが取得された時刻を算出するデータ処理装置。
【請求項２】
カウンタを有し既定の周期でデータを取得するデバイスでデータが取得される度に前記カウンタで計数されたデータ取得の際のカウンタ値を用いて算出された時刻である算出データ取得時刻と、前記周期で定義されるデータ取得時刻である定義データ取得時刻とを比較し、前記算出データ取得時刻の前記定義データ取得時刻に対する誤差を解析し、誤差を補正するための前記カウンタに対する補正量を算出する補正量算出部と、
前記補正量算出部により算出された補正量を前記カウンタに適用するよう前記デバイスに指示する補正指示部とを有し、
前記補正量算出部は、
複数の算出データ取得時刻と複数の定義データ取得時刻とを時系列に比較し、誤差を解析した結果、前記算出データ取得時刻の前記定義データ取得時刻に対する誤差が周期的に発生していることが判明した場合に、前記カウンタに継続して適用する補正量を算出し、
前記補正指示部は、
前記補正量算出部により算出された補正量を前記カウンタに継続して適用するよう前記デバイスに指示するデータ処理装置。
【請求項３】
カウンタを有するデバイスであって、
制御情報を受信する受信部と、
データを取得するデータ取得部と、
前記データと、前記データ取得部によりデータが取得された際の前記カウンタの値である取得カウンタ値と、前記データを送信する際の前記カウンタの値である送信カウンタ値とを前記制御情報の送信元に送信する送信部とを有し、
前記受信部は、
前記送信部により前記データと前記取得カウンタ値と前記送信カウンタ値とが送信された後に、前記制御情報を受信し、
前記送信部は、
前記受信部により前記制御情報が受信された後に、前記受信部により前記制御情報が受信された際の前記カウンタの値である受信カウンタ値と、前記カウンタの周波数値とを前記制御情報の送信元に送信するデバイス。
【請求項４】
コンピュータが、カウンタを有するデバイスから、前記デバイスで取得されたデータを受信ステップと、
前記コンピュータが、前記デバイスに制御情報を送信する送信ステップと、
前記コンピュータが、前記デバイスで前記データが取得された時刻を算出する時刻算出ステップとを有し、
前記受信ステップにおいて、
前記コンピュータが、
前記デバイスから、前記データと、前記デバイスでデータが取得された際の前記カウンタの値である取得カウンタ値と、前記デバイスから前記データが送信された際の前記カウンタの値である送信カウンタ値とを受信し、
前記送信ステップにおいて、
前記コンピュータが、
前記受信ステップにより前記データと前記取得カウンタ値と前記送信カウンタ値とが受信された後に、前記制御情報を前記デバイスに送信し、
前記受信ステップにおいて、
前記コンピュータが、
前記送信ステップにより前記制御情報が送信された後に、前記デバイスから、前記デバイスで前記制御情報が受信された際の前記カウンタの値である受信カウンタ値と、前記カウンタの周波数値とを受信し、
前記時刻算出ステップにおいて、
前記コンピュータが、
前記受信ステップにより受信された前記受信カウンタ値と前記取得カウンタ値と前記送信カウンタ値と前記カウンタの周波数値と、前記受信ステップにより前記データが受信された時刻とに基づき、前記デバイスで前記データが取得された時刻を算出するデータ処理方法。
【請求項５】
コンピュータが、カウンタを有し既定の周期でデータを取得するデバイスでデータが取得される度に前記カウンタで計数されたデータ取得の際のカウンタ値を用いて算出された時刻である算出データ取得時刻と、前記周期で定義されるデータ取得時刻である定義データ取得時刻とを比較し、前記算出データ取得時刻の前記定義データ取得時刻に対する誤差を解析し、誤差を補正するための前記カウンタに対する補正量を算出する補正量算出ステップと、
前記コンピュータが、前記補正量算出ステップにより算出された補正量を前記カウンタに適用するよう前記デバイスに指示する補正指示ステップとを有し、
前記補正量算出ステップにおいて、
前記コンピュータが、
複数の算出データ取得時刻と複数の定義データ取得時刻とを時系列に比較し、誤差を解析した結果、前記算出データ取得時刻の前記定義データ取得時刻に対する誤差が周期的に発生していることが判明した場合に、前記カウンタに継続して適用する補正量を算出し、
前記補正指示ステップにおいて、
前記コンピュータが、
前記補正量算出ステップにより算出された補正量を前記カウンタに継続して適用するよう前記デバイスに指示するデータ処理方法。
【請求項６】
カウンタを有するコンピュータが、
制御情報を受信する受信ステップと、
データを取得するデータ取得ステップと、
前記データと、前記データ取得ステップによりデータが取得された際の前記カウンタの値である取得カウンタ値と、前記データを送信する際の前記カウンタの値である送信カウンタ値とを前記制御情報の送信元に送信する送信ステップとを有し、
前記受信ステップにおいて、
前記コンピュータが、
前記送信ステップにより前記データと前記取得カウンタ値と前記送信カウンタ値とが送信された後に、前記制御情報を受信し、
前記送信ステップにおいて、
前記コンピュータが、
前記受信ステップにより前記制御情報が受信された後に、前記受信ステップにより前記制御情報が受信された際の前記カウンタの値である受信カウンタ値と、前記カウンタの周波数値とを前記制御情報の送信元に送信するデータ処理方法。
【請求項７】
カウンタを有するデバイスから、前記デバイスで取得されたデータを受信する受信ステップと、
前記デバイスに制御情報を送信する送信ステップと、
前記デバイスで前記データが取得された時刻を算出する時刻算出ステップとをコンピュータに実行させるデータ処理プログラムであって、
前記受信ステップにおいて、
前記コンピュータに、
前記デバイスから、前記データと、前記デバイスでデータが取得された際の前記カウンタの値である取得カウンタ値と、前記デバイスから前記データが送信された際の前記カウンタの値である送信カウンタ値とを受信させ、
前記送信ステップにおいて、
前記コンピュータに、
前記受信ステップにより前記データと前記取得カウンタ値と前記送信カウンタ値とが受信された後に、前記制御情報を前記デバイスに送信させ、
前記受信ステップにおいて、
前記コンピュータに、
前記送信ステップにより前記制御情報が送信された後に、前記デバイスから、前記デバイスで前記制御情報が受信された際の前記カウンタの値である受信カウンタ値と、前記カウンタの周波数値とを受信させ、
前記時刻算出ステップにおいて、
前記コンピュータに、
前記受信ステップにより受信された前記受信カウンタ値と前記取得カウンタ値と前記送信カウンタ値と前記カウンタの周波数値と、前記受信ステップにより前記データが受信された時刻とに基づき、前記デバイスで前記データが取得された時刻を算出させるデータ処理プログラム。
【請求項８】
カウンタを有し既定の周期でデータを取得するデバイスでデータが取得される度に前記カウンタで計数されたデータ取得の際のカウンタ値を用いて算出された時刻である算出データ取得時刻と、前記周期で定義されるデータ取得時刻である定義データ取得時刻とを比較し、前記算出データ取得時刻の前記定義データ取得時刻に対する誤差を解析し、誤差を補正するための前記カウンタに対する補正量を算出する補正量算出ステップと、
前記補正量算出ステップにより算出された補正量を前記カウンタに適用するよう前記デバイスに指示する補正指示ステップとをコンピュータに実行させるデータ処理プログラムであって
前記補正量算出ステップにおいて、
前記コンピュータに、
複数の算出データ取得時刻と複数の定義データ取得時刻とを時系列に比較させ、誤差を解析した結果、前記算出データ取得時刻の前記定義データ取得時刻に対する誤差が周期的に発生していることが判明した場合に、前記カウンタに継続して適用する補正量を算出させ、
前記補正指示ステップにおいて、
前記コンピュータに、
前記補正量算出ステップにより算出された補正量を前記カウンタに継続して適用するよう前記デバイスに指示させるデータ処理プログラム。
【請求項９】
カウンタを有するコンピュータに、
制御情報を受信する受信ステップと、
データを取得するデータ取得ステップと、
前記データと、前記データ取得ステップによりデータが取得された際の前記カウンタの値である取得カウンタ値と、前記データを送信する際の前記カウンタの値である送信カウンタ値とを前記制御情報の送信元に送信する送信ステップとを実行させるデータ処理プログラムであって、
前記受信ステップにおいて、
前記コンピュータに、
前記送信ステップにより前記データと前記取得カウンタ値と前記送信カウンタ値とが送信された後に、前記制御情報を受信させ、
前記送信ステップにおいて、
前記コンピュータに、
前記受信ステップにより前記制御情報が受信された後に、前記受信ステップにより前記制御情報が受信された際の前記カウンタの値である受信カウンタ値と、前記カウンタの周波数値とを前記制御情報の送信元に送信させるデータ処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、デバイスでデータが取得された時刻を算出する技術に関する。
【背景技術】
【０００２】
デバイス（センサ）で採取した計測データを監視・制御センタに集約し、発生した事象の解釈を行うセンサー・フュージョンシステムがある。このようなシステムでは、計測データの取得時刻を正確に計測データに紐付ける必要がある。
デバイスは、低コスト化や設置される環境によりＲＴＣ（ｒｅａｌ−ｔｉｍｅ  ｃｌｏｃｋ）などのＧＰＳ（Ｇｌｏｂａｌ  Ｐｏｓｉｔｉｏｎｉｎｇ  Ｓｙｓｔｅｍ）やＮＴＰ（Ｎｅｔｗｏｒｋ  Ｔｉｍｅ  Ｐｒｏｔｏｃｏｌ）などの時刻同期機能を有さないものを想定する必要がある。
車両の監視や自動制御を行うシステムでは、加速度、位置などの車両自身のデータや、信号機の状態や地面の状態などの周囲環境のデータを収集する。
また、複数の計測データを取得した時刻で紐付する必要があるが、発生した事象を正しく認識するためには、計測データの時刻同士の誤差精度は１０［ｍｓ］程度とする必要がある。
計測データの取得時刻に誤差が発生する契機として、デバイス−センタ間の通信による誤差、デバイスの発振器の周囲の温度や個体差による周波数のずれ（ドリフト誤差と呼ぶ）、デバイスの起動タイミングによる計測データ取得タイミングのずれ（オフセット誤差と呼ぶ）が考えられる。
【０００３】
計測データの取得時刻を一元管理する方法として、特許文献１に、計測データをデバイスからセンタに送信する際にセンタから送信されたビーコン信号の受信時刻を付与して送信することで、センタ側にて計測データを取得した時刻を補正する技術が開示されている。
また、特許文献２に、計測データの送信側（デバイス）がセンタ側に時刻情報を要求し、センタから時刻情報を受け取るまでの時刻とデータに含まれている時刻情報から、伝送遅延を推定し、デバイス側で時刻を補正する技術が開示されている。
さらに、特許文献３に、センタは、デバイスに対して時刻同期情報を発行せず、デバイスより受信したデータへのＡＣＫに時刻情報を含めることで、デバイスの時刻を同期する技術が開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１０−１０２５４９号公報
【特許文献２】特開２００９−６５４４３号公報
【特許文献３】特開２０１１−１３５４９８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
特許文献１、特許文献２、特許文献３の方法では、デバイスにＲＴＣなどの時刻情報を管理する機能を実装する必要があるという課題がある。
本発明は、このような課題を解決することを主な目的としており、時刻情報を管理する機能がデバイスに実装されていなくても、デバイスでデータが取得された時刻を算出できるようにすることを主な目的とする。
【課題を解決するための手段】
【０００６】
本発明に係るデータ処理装置は、
カウンタを有するデバイスから、前記デバイスで取得されたデータを受信する受信部と、
前記デバイスに制御情報を送信する送信部と、
前記デバイスで前記制御情報が受信された際の前記カウンタの値である受信カウンタ値と、前記デバイスでデータが取得された際の前記カウンタの値である取得カウンタ値と、前記デバイスから前記データが送信された際の前記カウンタの値である送信カウンタ値と、前記カウンタの周波数値と、前記受信部により前記データが受信された時刻とに基づき、前記デバイスで前記データが取得された時刻を算出する時刻算出部とを有する。
【発明の効果】
【０００７】
本発明では、受信カウンタ値と取得カウンタ値と送信カウンタ値とカウンタの周波数値とデータが受信された時刻とに基づき、デバイスでデータが取得された時刻を算出できる。このため、時刻情報を管理する機能がデバイスに実装されていなくても、デバイスでデータが取得された時刻を算出することができる。
【図面の簡単な説明】
【０００８】
【図１】実施の形態１に係るデータ収集システムのシステム構成例とハードウェア構成例を示す図。
【図２】実施の形態１に係るデバイスの機能構成例を示す図。
【図３】実施の形態１に係るデータ処理装置の機能構成例を示す図。
【図４】実施の形態１に係るデバイスとデータ処理装置との間の通信シーケンス例を示す図。
【図５】実施の形態１に係るドリフト誤差の発生例を示す図。
【図６】実施の形態１に係るドリフト誤差の抑制方法の例を示す図。
【図７】実施の形態１に係るドリフト誤差の検出方法及び補正方法の例を示す図。
【図８】実施の形態１に係るオフセット誤差の発生例を示す図。
【図９】実施の形態１に係るオフセット誤差の抑制方法の例を示す図。
【図１０】実施の形態１に係るオフセット誤差の検出方法及び補正方法の例を示す図。
【図１１】実施の形態１に係るデバイスのメイン処理の例を示すフローチャート図。
【図１２】実施の形態１に係るデバイスの割込み処理の例を示すフローチャート図。
【図１３】実施の形態１に係るデータ処理装置のコア処理１の例を示すフローチャート図。
【図１４】実施の形態１に係るデータ処理装置のコア処理２の例を示すフローチャート図。
【図１５】実施の形態１に係るデータ処理装置のコア処理３の例を示すフローチャート図。
【図１６】実施の形態２に係るデバイスの機能構成例を示す図。
【図１７】実施の形態２に係るデバイスとデータ処理装置との間の通信シーケンス例を示す図。
【図１８】実施の形態２に係るデバイスのメイン処理の例を示すフローチャート図。
【図１９】実施の形態２に係るデータ処理装置のコア処理１の例を示すフローチャート図。
【図２０】実施の形態２に係るデータ処理装置のコア処理２の例を示すフローチャート図。
【図２１】実施の形態２に係るデータ処理装置のコア処理３の例を示すフローチャート図。
【発明を実施するための形態】
【０００９】
実施の形態１．
＊＊＊構成の説明＊＊＊
図１は、本実施の形態に係るデータ収集システムのシステム構成例とハードウェア構成例を示す。
【００１０】
本実施の形態に係るデータ収集システムは、複数のデバイス２００とセンタ１０で構成される。
センタ１０には、データ処理装置１００とデータ分析装置５００とストレージ６００が配置されている。
各デバイス２００にはセンサが接続されており、各デバイス２００はセンサからセンサで計測された計測データを取得し、取得した計測データをセンタ１０に対して送信する。
センタ１０内のデータ処理装置１００は各デバイス２００から送信された計測データを受信し、受信した計測データをストレージ６００に格納する。
また、データ処理装置１００は各デバイス２００で計測データが取得された時刻を算出する。
また、データ処理装置１００はドリフト誤差及びオフセット誤差の検出及び補正を行う。
データ分析装置５００は、ストレージ６００に格納されている計測データを用いた分析を行う。
ストレージ６００は、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）である。
デバイス２００、データ処理装置１００、データ分析装置５００はそれぞれコンピュータである。
以下では、主にデバイス２００とデータ処理装置１００について説明する。
【００１１】
デバイス２００は、ハードウェアとして、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）２１００、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）２２００、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）２３００、通信Ｉ／Ｆ（Ｉｎｔｅｒｆａｃｅ）２４００、センサＩ／Ｆ２５００を備える。
ＣＰＵ２１００は、後述するプログラムを実行する。
ＲＡＭ２２００には、ＣＰＵ２１００が実行するプログラムがロードされる。また、ＲＡＭ２２００には、センサからの計測データが格納される。
ＲＯＭ２３００には、ＣＰＵ２１００が実行するプログラムが記憶されている。
通信Ｉ／Ｆ２４００は、データ処理装置１００と通信するための通信ネットワークとのインタフェースである。通信ネットワークは有線ネットワーク、無線ネットワークのいずれでもよい。
通信Ｉ／Ｆ２４００は、通信チップ又はＮＩＣ（Ｎｅｔｗｏｒｋ  Ｉｎｔｅｒｆａｃｅ  Ｃａｒｄ）である。
センサＩ／Ｆ２５００は、センサとのインタフェースである。
【００１２】
データ処理装置１００は、ハードウェアとして、ＣＰＵ１１１０、ＲＡＭ１１２０、ストレージＩ／Ｆ１１３０、通信Ｉ／Ｆ（ＬＡＮ）１１４０、通信Ｉ／Ｆ（デバイス）１１５０、ＲＯＭ１１６０を備える。
ＣＰＵ１１１０は、後述するプログラムを実行する。
ＲＡＭ１１２０には、ＣＰＵ１１１０が実行するプログラムがロードされる。
ＲＯＭ１１６０には、ＣＰＵ１１１０が実行するプログラムが記憶されている。
ストレージＩ／Ｆ１１３０は、ストレージ６００とのインタフェースである。
通信Ｉ／Ｆ（ＬＡＮ）１１４０は、センタ１０内のＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）とのインタフェースである。
通信Ｉ／Ｆ（デバイス）１１５０は、デバイス２００と通信するための通信ネットワークとのインタフェースである。前述したように、通信ネットワークは有線ネットワーク、無線ネットワークのいずれでもよい。
通信Ｉ／Ｆ（ＬＡＮ）１１４０及び通信Ｉ／Ｆ（デバイス）１１５０は、通信チップ又はＮＩＣである。
【００１３】
図２はデバイス２００の機能構成例を示し、図３はデータ処理装置１００の機能構成例を示す。
前述したように、デバイス２００は、センサで取得された計測データをデータ処理装置１００に送信する。計測データに、計測データの取得時刻を付与する必要があるが、デバイス２００は、安価なデバイスとするため、ＲＴＣなどの時刻を保持する機能はない。
このため、デバイス２００は、計測データにカウンタ２５０の値を付与する。
また、計測データの取得周期は、取得周期管理部２４０で管理しており、外部からの変更が可能である。
データ処理装置１００は、デバイス２００がセンサから取得する計測データを周期的に取得し、計測時刻を補正してストレージ６００に格納する。
データ処理装置１００は、計測データに付与するべき時刻（計測データの取得時刻）を算出するために計測データ時刻算出部１５０を備えている。
また、データ処理装置１００は、デバイス２００の収集周期を補正するためのデバイス側取得タイミング補正部１４０も備えている。
【００１４】
図２において、受信部２１０は、通信Ｉ／Ｆ２４００を介して、データ処理装置１００からの電文を受信する。
受信部２１０で行われる処理は受信ステップに相当する。
【００１５】
送信部２８０は、通信Ｉ／Ｆ２４００を介して、データ処理装置１００に電文を送信する。
送信部２８０で行われる処理は送信ステップに相当する。
【００１６】
電文処理部２２０は、データ処理装置１００に送信する電文の生成とデータ処理装置１００から受信した電文の解釈を行う。
【００１７】
ＩＤ管理部２３０は、データ処理装置１００との一連の送受信動作に用いられるＩＤ（Ｉｄｅｎｔｉｆｉｅｒ）を管理する。
【００１８】
取得周期管理部２４０は、計測データの取得周期を管理している。
また、取得周期管理部２４０は、計測データの取得タイミングとしてカウンタ値上限値を保持しており、カウンタ２５０でカウントするカウンタ値がカウンタ値上限値となった場合に計測データ取得部２７０に計測データ取得指示を与える。
その後、カウンタ２５０は初期値から再度カウントを行う。
また、取得周期管理部２４０は、後述するように、受信部２１０がデータ処理装置１００から補正量を受信した場合に、補正量をカウンタ２５０に適用する。
取得周期管理部２４０は、補正適用部の例に相当する。
【００１９】
カウンタ２５０は、デバイス２００のシステムクロックなどであり、一定間隔で値をカウントしている。
【００２０】
計測データ記憶部２６０は、計測データ取得部２７０で取得した計測データを計測データ取得部２７０より受取り、保持する。
【００２１】
計測データ取得部２７０は、センサＩ／Ｆ２５００を介して、センサから計測データを取得する。
計測データの取得は、取得周期管理部２４０より計測データ取得指示を受けたタイミングで実施する。
計測データ取得部２７０は、計測データ取得指示を受けた際に、センサＩ／Ｆ２５００を介して、計測データ取得要求をセンサに出力し、センサから計測データを取得する。
計測データ取得部２７０はデータ取得部の例に相当する。
また、計測データ取得部２７０で行われる処理はデータ取得ステップに相当する。
【００２２】
図２に示す、受信部２１０、電文処理部２２０、ＩＤ管理部２３０、取得周期管理部２４０、カウンタ２５０、計測データ取得部２７０はプログラムにより実現される。
つまり、ＣＰＵ２１００が、これら受信部２１０、電文処理部２２０、ＩＤ管理部２３０、取得周期管理部２４０、カウンタ２５０、計測データ取得部２７０の機能を実現するプログラムを実行して、後述する受信部２１０、電文処理部２２０、ＩＤ管理部２３０、取得周期管理部２４０、カウンタ２５０、計測データ取得部２７０の動作を行う。
また、計測データ記憶部２６０は、ＲＡＭ２２００により実現される。
【００２３】
図３において、受信部１１０は、複数のデバイス２００からの電文を受信する。
受信部１１０で行われる処理は受信ステップに相当する。
【００２４】
送信部１７０は、複数のデバイス２００に電文を送信する。
送信部１７０で行われる処理は送信ステップに相当する。
【００２５】
電文処理部１２０は、デバイス２００に送信する電文の生成とデバイス２００から受信した電文の解釈を行う。
また、電文処理部１２０は、後述のデバイス側取得タイミング補正部１４０で算出された補正量をカウンタ２５０に適用するようデバイス２００に指示する。
電文処理部１２０は、補正指示部の例に相当する。
なお、電文処理部１２０で行われる処理は補正指示ステップに相当する。
【００２６】
ＩＤ管理部１３０は、デバイス２００との一連の送受信動作に用いられるＩＤを管理する。
【００２７】
デバイス側取得タイミング補正部１４０は、デバイス２００から収集される計測データから、計測データの取得周期のドリフト誤差とオフセット誤差を検出する。
また、デバイス側取得タイミング補正部１４０は、デバイス２００の取得周期管理部２４０で管理している計測データの取得周期の補正量を算出する。
デバイス側取得タイミング補正部１４０は、補正量算出部の例に相当する。
なお、デバイス側取得タイミング補正部１４０で行われる処理は補正量算出ステップに相当する。
【００２８】
計測データ時刻算出部１５０は、デバイス２００から受信した計測データのデバイス２００における取得時刻を算出する。
計測データ時刻算出部１５０は、時刻算出部の例に相当する。
なお、計測データ時刻算出部１５０で行われる処理は時刻算出ステップに相当する。
【００２９】
データ格納部１６０は、デバイス２００から受信した計測データを、計測データ時刻算出部１５０により算出された取得時刻とともにストレージ６００に格納する。
【００３０】
図３に示す、受信部１１０、電文処理部１２０、ＩＤ管理部１３０、デバイス側取得タイミング補正部１４０、計測データ時刻算出部１５０、送信部１７０はプログラムにより実現される。
つまり、ＣＰＵ１１１０が、これら受信部１１０、電文処理部１２０、ＩＤ管理部１３０、デバイス側取得タイミング補正部１４０、計測データ時刻算出部１５０、送信部１７０の機能を実現するプログラムを実行して、後述する受信部１１０、電文処理部１２０、ＩＤ管理部１３０、デバイス側取得タイミング補正部１４０、計測データ時刻算出部１５０、送信部１７０の動作を行う。
【００３１】
＊＊＊動作の説明＊＊＊
（通信シーケンスについて）
図４は、本実施の形態に係るデバイス２００とデータ処理装置１００との間で行われる通信シーケンスの例を示す。
図４を参照して、デバイス２００とデータ処理装置１００の動作例を説明する。
なお、図４において、「Ｃ」はデバイス２００のカウンタ２５０のカウンタ値を表す。
「Ｔ」は、データ処理装置１００で得られるタイムスタンプ（時刻）を表す。
「Ｒ」は、デバイス２００とデータ処理装置１００との間の通信路の片道の伝送遅延を表す。
なお、「Ｒ」の値は、上り方向（デバイス２００からデータ処理装置１００の方向）の通信でも下り方向（データ処理装置１００からデバイス２００の方向）の通信でも同じであるものとする。
「ｆ」は、デバイス２００のカウンタ２５０の周波数を表す。
「Ｄａｔａ」は、デバイス２００がセンサから取得する計測データである。
「Ｔｘ」は、デバイス２００が計測データを取得した時点のデータ処理装置１００での時刻を表す。
【００３２】
図４では、デバイス２００は、自律的にセンサからＤａｔａ１を取得し、Ｄａｔａ１をデータ処理装置１００に送信する。
データ処理装置１００は、Ｄａｔａ１を受信するとともに、デバイス２００がＤａｔａ１を取得した時点でのデータ処理装置１００での時刻Ｔｘを求める。
動作を以下に説明する。
（１）デバイス２００はＤａｔａ１をセンサから取得するとともに、同時にカウンタ値Ｃ１も取得する。
（２）次に、デバイス２００は、データ処理装置１００にＤａｔａ１を送信する際にカウンタ値Ｃ２を取得し、Ｄａｔａ１、Ｃ１及びＣ２を同時にデータ処理装置１００に送信する。
（３）次に、データ処理装置１００は、デバイス２００より送信されたＤａｔａ１、Ｃ１及びＣ２を受信する。また、データ処理装置１００は、Ｄａｔａ１、Ｃ１及びＣ２の受信時にタイムスタンプＴ１を取得する。更に、データ処理装置１００は、ＩＤ１を生成し、デバイス２００にカウンタ値の再取得要求を送信する。なお、カウンタ値の再取得要求にはＩＤ１が含まれる。ＩＤ１は制御情報である。
（４）デバイス２００は、カウンタ値の再取得要求を受信する。また、デバイス２００は、カウンタ値の再取得要求とともにカウンタ値Ｃ３を取得する。そして、デバイス２００は、カウンタ値の再取得要求に含まれるＩＤ１と、デバイス２００のカウンタ周波数ｆ（公称）と、カウンタ値Ｃ３を、ＩＤ１の送信元であるデータ処理装置１００に送信する。
（５）データ処理装置１００は、ＩＤ１とカウンタ値Ｃ３とデバイス２００のカウンタ周波数ｆを受信し、受信した時刻のタイムスタンプＴ２を取得する。
データ処理装置１００は、これらの情報を用いて、デバイス２００がセンサから計測データＤａｔａ１を取得した時刻Ｔｘを算出する。また、データ処理装置１００は、計測データＤａｔａ１を時刻Ｔｘとともにストレージ６００に格納する。
【００３３】
時刻Ｔｘの算出方法を説明する。
データ処理装置１００は、伝送遅延（片道分）Ｒとデバイス側でＤａｔａ１を取得してからデータの送信開始までに要した時間（Ｃ２−Ｃ１）の合計をカウンタ周波数ｆで除算し、時刻Ｔ１から除算値を減算する。
このため、データ処理装置１００は、Ｔｘを、
Ｔｘ＝Ｔ１−（（Ｒ＋（Ｃ２−Ｃ１））／ｆ）
（Ｒ＝（Ｃ３−Ｃ２）／２）で近似する）
で求める。
【００３４】
（ドリフト誤差について）
本実施の形態では、上記の通り、デバイス２００のカウンタ値をデータ処理装置１００の時刻に置き換えるが、デバイス２００のクロック周波数は、個体や温度によって誤差が発生する。このような誤差をドリフト誤差と呼ぶこととする。
図５にドリフト誤差の発生例を示す。
図５は、デバイス１及びデバイス２の取得周期管理部２４０が持つカウンタの値を示しており、カウンタ値が「９９９９」になった際に計測データ取得指示が発生するものとしている。
デバイス２のクロックは、ドリフト誤差により、１カウントあたり０．０００１［μｓ］の遅れが生じているものとすると、１０［ｓ］ごとに１ｍｓの誤差が生じることとなる。
【００３５】
（ドリフト誤差の抑制方法について）
このようなドリフト誤差を抑制する方法を図６に示す。
データ処理装置１００は、デバイス２００の取得周期管理部２４０が持つカウンタの上限値を変更することにより、ドリフト誤差を低減させる。
【００３６】
（ドリフト誤差の検出方法及び補正方法について）
図７にドリフト誤差の検出方法及び補正方法を示す。
以下で説明するドリフト誤差の検出及び補正は、デバイス側取得タイミング補正部１４０により行われる。
デバイス側取得タイミング補正部１４０は、図７に示すように、「一元管理時刻」と「計測時刻」と「誤差」と「前回誤差との差分」を管理している。
「一元管理時刻」は、デバイス２００がセンサから計測データを取得すべき時刻である。
つまり、「一元管理時刻」は、計測データの取得周期により定義されるデータ取得時刻であり、定義データ取得時刻に相当する。
「計測時刻」は、図３のシーケンスによりデバイス２００のカウンタ値から算出した、デバイス２００がセンサから計測データを取得した時刻である。
つまり、「計測時刻」は、デバイス２００で計測データが取得される度にカウンタ２５０で計数された計測データ取得の際のカウンタ値を用いて算出された時刻であり、算出データ取得時刻に相当する。
「誤差」は、「一元管理時刻」と「計測時刻」との差である。
「前回誤差の差分」は、前回の誤差と今回の誤差との差分である。
ドリフト誤差の検出については、デバイス２００においてドリフト誤差が発生している場合は、「前回誤差との差分」が周期的に変化するため、デバイス側取得タイミング補正部１４０は、「前回誤差との差分」をフーリエ変換することでドリフト誤差を検出することができる。
ここでフーリエ変換を実施する時間範囲は、任意である。時間範囲を広くとれば低周波数（ドリフト誤差が小さい）の誤差が検出可能であるが、デバイス側取得タイミング補正部１４０の処理量が増加する。一方、時間範囲を狭くとれば、高周波（ドリフト誤差が大きい）の誤差が検出可能である。
ドリフト誤差の補正については、デバイス側取得タイミング補正部１４０は、ドリフト誤差の検出時に取得した周期性から補正量を判断する。フーリエ変換を実施して得られたスペクトルが最も大きい周波数の周期とデバイスのカウンタ値の上限を用いて補正を行う。
センタ側で管理しているデータ取得周期をＴ＿ｇｅｔ、ドリフト誤差の周期をＴ＿ｄｅｒｒ、デバイス２００の取得周期管理部２４０のカウンタ値の補正前の上限をＣ＿ｏｌｄとすると、取得周期管理部２４０のカウンタ値の補正後の上限をＣ＿ｎｅｗは以下の通りとなる。
Ｃ＿ｎｅｗ＝Ｃ＿ｏｌｄ＊Ｔ＿ｇｅｔ／（Ｔ＿ｇｅｔ＋Ｔ＿ｄｅｒｒ）
【００３７】
このように、デバイス側取得タイミング補正部１４０は、複数の「一元管理時刻」と複数の「計測時刻」とを時系列に比較し、誤差を解析した結果、「計測時刻」の「一元管理時刻」に対する誤差が周期的に発生していることが判明した場合に、カウンタに継続して適用する補正量（ドリフト誤差の補正量）を算出する。
そして、電文処理部１２０が、デバイス側取得タイミング補正部１４０により算出されたドリフト誤差の補正量をカウンタ２５０に継続して適用するようデバイス２００に指示する電文を生成し、送信部１７０が当該電文をデバイス２００に送信する。
【００３８】
（オフセット誤差について）
本実施の形態では、上記の通り、デバイス２００のカウンタ値をデータ処理装置１００の時刻に置き換えるが、デバイス２００のクロックの周波数が低い場合、デバイス２００の起動タイミングにより、データ処理装置１００で管理する一元管理時刻の許容誤差を超える。このような誤差をオフセット誤差と呼ぶこととする。
図８にドリフト誤差の発生例を示す。
図８は、デバイス１及びデバイス２の取得周期管理部２４０が持つカウンタの値を示しており、カウンタ値が「９９９９」になった際に計測データ取得指示が発生するものとしている。
デバイス２のクロックは、オフセット誤差により、計測データ取得指示の発生が、毎回一定のカウント分の誤差が生じることが確認できる。
デバイス２００のカウンタ２５０の周波数が低い場合は、誤差は大きくなり、データ処理装置１００が管理する一元管理時刻の許容誤差を超えることがわかる。
【００３９】
（オフセット誤差の抑制方法について）
このようなオフセット誤差を抑制する方法を図９に示す。
データ処理装置１００は、デバイス２００の取得周期管理部２４０が持つカウンタの上限値を１度だけ変更することにより、オフセット誤差を低減させる。
【００４０】
（オフセット誤差の検出方法及び補正方法について）
図１０にオフセット誤差の検出方法及び補正方法を示す。
以下で説明するオフセット誤差の検出及び補正は、デバイス側取得タイミング補正部１４０により行われる。
図１０は、図７と同様に、デバイス側取得タイミング補正部１４０が「一元管理時刻」と「計測時刻」と「誤差」と「前回誤差との差分」を管理していることを示している。
図１０の「一元管理時刻」、「計測時刻」、「誤差」、「前回誤差との差分」の意味は、図７で説明した通りである。
オフセット誤差の検出について、オフセット誤差が発生している場合は、「誤差」が常に一定量発生しているとともに「前回誤差との差分」の変化が発生しない。
このため、デバイス側取得タイミング補正部１４０は、「前回誤差との差分」をフーリエ変換し、周期性が確認できないにも関わらず、「誤差」が発生している場合は、オフセット誤差であると検出することができる。
オフセット誤差の補正については、デバイス側取得タイミング補正部１４０は、オフセット誤差の誤差量から補正量を判断する。
オフセット誤差の量をＴ＿ｏｅｒｒ、デバイス２００のカウンタ２５０の周期をＴ、デバイス２００の取得周期管理部２４０のカウンタ値の補正前の上限をＣ＿ｏｌｄとすると、取得周期管理部２４０のカウンタ値の補正後の上限を１度だけ変更する値Ｃ＿ｏｎｃｅは以下の通りとなる。なお、Ｔ＿ｏｅｒｒに関しては、進みを＋、遅れを−として表現する。
Ｃ＿ｏｎｃｅ＝Ｃ＿ｏｌｄ＋（Ｔ／Ｔ＿ｅｒｒ）
【００４１】
このように、デバイス側取得タイミング補正部１４０は、複数の「一元管理時刻」と複数の「計測時刻」とを時系列に比較し、誤差を解析した結果、複数の「計測時刻」のうちの初期段階の「計測時刻」で誤差が発生した後は誤差が発生していないことが判明した場合に、期間を限定してカウンタ２５０に適用する補正量（オフセット誤差の補正量）を算出する。
そして、電文処理部１２０が、デバイス側取得タイミング補正部１４０により算出されたオフセット誤差の補正量を期間を限定してカウンタに適用するようデバイス２００に指示する電文を生成し、送信部１７０が当該電文をデバイス２００に送信する。
【００４２】
（デバイスの処理について）
図１１及び図１２は、デバイス２００の処理シーケンスを示している。
デバイス２００の処理には、計測データを収集するメインの処理と、データ処理装置１００からの電文受信時の割込み処理の２種類がある。
なお、図１１及び図１２に示される動作手順は、デバイス２００でのデータ処理方法及びデータ処理プログラムの例に相当する。
【００４３】
（１）メイン処理
まず、取得周期管理部２４０が、計測データ取得タイミングであるかを確認する（ＤＭ１）。
カウンタ２５０のカウンタ値がカウンタ値上限値であれば、計測データ取得部２７０は、計測データ取得タイミングであると判断する。
計測データの取得タイミングであれば（ＤＭ１でＹＥＳ）、取得周期管理部２４０は、計測データ取得部２７０に計測データ取得指示を発行する。
【００４４】
次に、計測データ取得部２７０が、計測データＤａｔａ及びＣ１の取得を行う（ＤＭ２）。
計測データ取得部２７０は、センサＩ／Ｆ２５００を介してセンサに計測データ取得要求を発行する。また、計測データ取得部２７０はその直後にカウンタ２５０よりカウンタ値Ｃ１を取得する。
センサは計測データ取得要求に応答して、計測データ取得部２７０に計測データＤａｔａを送信する。
計測データ取得部２７０は計測データＤａｔａを受信し、受信した計測データＤａｔａとカウンタ値Ｃ１を計測データ記憶部２６０を介して電文処理部２２０に送信する。
なお、カウンタ値Ｃ１は、計測データ取得部２７０により計測データが取得された際のカウンタ２５０の値であり、取得カウンタ値に相当する。
【００４５】
次に、電文処理部２２０が、Ｃ２の取得を行う（ＤＭ３）。
電文処理部２２０は、カウンタ値Ｃ１と計測データＤａｔａを取得すると、カウンタ２５０よりカウンタ値Ｃ２を取得する。
その後、電文処理部２２０は、送信部２８０を用いて、計測データＤａｔａとカウンタ値Ｃ１及びＣ２の送信を行う（ＤＭ４）。
電文処理部２２０は、計測データＤａｔａとカウンタ値Ｃ１及びＣ２を含む電文を生成し、送信部２８０と通信Ｉ／Ｆ２４００を介して電文をデータ処理装置１００に送信する。
なお、カウンタ値Ｃ２は、計測データを送信する際のカウンタ２５０の値であり、送信カウンタ値に相当する。
【００４６】
最後に、オフセット誤差の対応のためにデータ取得周期を変更していた場合（ＤＭ５でＹＥＳ）は、取得周期管理部２４０が、データ取得周期を元の周期に戻す（ＤＭ６）。
つまり、取得周期管理部２４０は、ＤＭ４の電文の送信後、データ取得周期のオフセットフラグを確認し、１であれば、オフセットフラグ値を０とし、カウンタ値上限値を前回の値に戻す。
【００４７】
（２）割込み処理
割込み処理は、データ処理装置１００から電文を受信した場合に発生する。
まず、電文処理部２２０が、データ処理装置１００から受信した電文の内容を確認する（ＤＩ１，ＤＩ２）。
受信部２１０が受信した電文は、受信部２１０を介して電文処理部２２０に渡される。
電文処理部２２０は、データ処理装置１００に送信した計測データに対する応答であるか、計測データの取得周期を補正する命令であるかを判断する。
【００４８】
データ処理装置１００に送信した計測データに対する応答であれば（ＤＩ２で応答）、電文処理部２２０は、データ処理装置１００から受信した電文からＩＤを抽出し（ＤＩ３）、ＩＤ管理部２３０に送付する。
その直後に、電文処理部２２０は、カウンタ２５０よりカウンタ値Ｃ３を取得する。
また、電文処理部２２０は、ＩＤ管理部２３０より、ＩＤを受け取る。
そして、電文処理部２２０は、ＩＤと、カウンタ値Ｃ３と、デバイス２００に予め設定されているカウンタ２５０の周波数ｆを含む電文を生成し、送信部２８０と通信Ｉ／Ｆ２４００を介して電文をデータ処理装置１００に送信する。
なお、カウンタ値Ｃ３は、受信部２１０が制御情報であるＩＤを受信した際のカウンタ２５０の値であり、受信カウンタ値に相当する。
【００４９】
一方、データ処理装置１００から受信した電文が計測データの取得周期を補正する命令であった場合（ＤＩ２で命令）は、電文処理部２２０は、オフセット誤差の補正命令であるか、ドリフト誤差の補正命令であるかを確認する（ＤＩ６）。
【００５０】
オフセット誤差の補正命令であった場合（ＤＩ６でＹＥＳ）は、電文処理部２２０は、オフセット対応処理を行う（ＤＩ７）。
具体的には、電文処理部２２０は、電文に記載されている補正量を、取得周期管理部２４０が保持しているデータ取得周期のカウンタ値上限値に設定する。また、オフセットフラグを１に設定し、前回のカウンタ値上限値を保管しておく。
【００５１】
ドリフト誤差の補正であった場合（ＤＩ６でＮＯ）は、電文処理部２２０は、ドリフト対応処理を行う（ＤＩ８）。
具体的には、電文処理部２２０は、電文に記載されている補正量を、取得周期管理部２４０が保持しているデータ取得周期のカウンタ値上限値に設定する。
【００５２】
（データ処理装置の処理）
図１３、図１４及び図１５は、データ処理装置１００の処理シーケンスを示している。
データ処理装置１００は、３つの処理を並列で実施している。
１つ目の処理（コア処理１）は、計測データを受信し、ＩＤを返送する処理であり、図１３に示されている。
２つ目の処理（コア処理２）は、ＩＤに対する応答を受信した後の処理であり、計測時刻を算出する処理であり、図１４に示されている。
３つ目の処理（コア処理３）は、デバイス２００の計測データ収集周期を補正するための処理であり、図１５に示されている。
なお、図１３〜図１５に示される動作手順は、データ処理装置１００でのデータ処理方法及びデータ処理プログラムの例に相当する。
【００５３】
（１）コア処理１（計測データの受信とＩＤの返送）
受信部１１０が、デバイス２００から送信された計測データＤａｔａとカウンタ値Ｃ１及びＣ２を受信した場合（Ｃｐ１でＹＥＳ）は、電文処理部１２０がセンタ側の時刻Ｔ１を取得する（Ｃｐ２）。
時刻Ｔ１は、受信部１１０が計測データＤａｔａとカウンタ値Ｃ１及びＣ２を受信した時刻である。
【００５４】
次に、電文処理部１２０は、ＩＤ管理部１３０よりＩＤを取得し、ＩＤを含む電文を生成し、送信部１７０が通信Ｉ／Ｆ（デバイス）１１５０を介して、電文をデバイス２００に送信する（Ｃｐ３）。
【００５５】
ＩＤの送信後は、データ格納部１６０が、計測データＤａｔａ、カウンタ値Ｃ１及びＣ２、時刻Ｔ１、ＩＤをストレージ６００に保存する（Ｃｐ４）。
【００５６】
（２）コア処理２（ＩＤに対する応答の受信後の処理）
受信部１１０が、デバイス２００から送信されたカウンタ周波数ｆ、カウンタ値Ｃ３、ＩＤを受信した場合（Ｃｐ５でＹＥＳ）は、電文処理部１２０がセンタ側の時刻Ｔ２を取得する（Ｃｐ６）。
時刻Ｔ２は、受信部１１０がカウンタ周波数ｆ、カウンタ値Ｃ３、ＩＤを受信した時刻である。
そして、電文処理部１２０は、計測データ時刻算出部１５０に通知を行う。
【００５７】
計測データ時刻算出部１５０は、ストレージ６００より計測データＤａｔａ、カウント値Ｃ１及びＣ２、時刻Ｔ１、ＩＤを読み出す（Ｃｐ７）。
また、計測データ時刻算出部１５０は、時刻の補正の実施、すなわち、デバイス２００で計測データを取得した時点でのセンタ側の時刻Ｔｘを算出する（Ｃｐ８）。
時刻Ｔｘの算出方法は前述した通りである。
【００５８】
最後に、データ格納部１６０が、計測データＤａｔａ、カウンタ値Ｃ１、Ｃ２及びＣ３、カウンタ周波数ｆ、時刻Ｔ１及びＴ２、ＩＤ、時刻Ｔｘを、ＩＤをキーとしてストレージ６００に格納する（Ｃｐ９）。
【００５９】
（３）コア処理３（デバイス２００の計測データ収集周期を補正するための処理）
デバイス側取得タイミング補正部１４０は、一定周期で各デバイス２００の計測データ取得タイミングの補正が必要であるかを確認する（Ｃｐ１０）。
ドリフト誤差又はオフセット誤差を補正する必要があれば（Ｃｐ１０で要）、デバイス側取得タイミング補正部１４０が補正量を算出し、電文処理部１２０がデバイス側取得タイミング補正部１４０が算出した補正量を通知する電文を生成し、送信部１７０が通信Ｉ／Ｆ（デバイス）１１５０を介して電文をデバイス２００に送信する（Ｃｐ１１）。
なお、Ｃｐ１０の補正の要否の確認方法及びＣｐ１１の補正量の算出方法は、前述の（ドリフト誤差の検出方法及び補正方法について）及び（オフセット誤差の検出方法及び補正方法について）に記載した通りである。
【００６０】
＊＊＊実施の形態の効果の説明＊＊＊
本実施の形態によれば、取得カウンタ値（ｃ１）と送信カウンタ値（ｃ２）と受信カウンタ値（ｃ３）とカウンタ周波数値（ｆ）とデータ受信された時刻（Ｔ１）とに基づき、デバイスでデータが取得された時刻（Ｔｘ）を算出できる。このため、時刻情報を管理する機能がデバイスに実装されていなくても、デバイスでデータが取得された時刻（Ｔｘ）を算出することができる。
つまり、本実施の形態では、ＮＴＰ、ＲＴＣなどの時刻機能が実装されていないデバイスのデータ取得時刻をセンタ側で補正して正確に得ることができる。
【００６１】
また、本実施の形態では、デバイスでデータが取得される度にカウンタで計数されたデータ取得の際のカウンタ値を用いて算出された時刻である「計測時刻」（算出データ取得時刻）と、データ取得周期で定義されるデータ取得時刻である「一元管理時刻」（定義データ取得時刻）とを比較し、「計測時刻」の「一元管理時刻」に対する誤差を解析し、誤差を補正するためのカウンタに対する補正量を算出する。更に、算出された補正量をカウンタに適用するようデバイスに指示する。
このため、本実施の形態によれば、ＮＴＰ、ＲＴＣなどの時刻機能が実装されていないデバイスで発生する計測タイミングのずれ（オフセット誤差及びドリフト誤差）を補正することができる。
【００６２】
実施の形態２．
実施の形態１ではデバイスが自律的に計測データをデータ処理装置に送信する仕組みであったが、本実施の形態では、データ処理装置がデバイスに計測データの送信を指示する例を説明する。
なお、以下では、実施の形態１との差異を中心に説明を行う。
以下で説明していない事項は、実施の形態１と同じである。
【００６３】
＊＊＊構成の説明＊＊＊
本実施の形態でも、データ収集システムのシステム構成例及びハードウェア構成例は図１に示す通りである。
また、データ処理装置１００の機能構成も図３に示す通りである。
図１６は、本実施の形態に係るデバイス２００の機能構成を示す。
図１６において、図２との違いは、取得周期管理部２４０が削除されている点である。
図１６に示す各要素は、図２に示したものと同様であるため、説明を省略する。
【００６４】
＊＊＊動作の説明＊＊＊
（通信シーケンスについて）
図１７は、本実施の形態に係るデバイス２００とデータ処理装置１００との間で行われる通信シーケンスの例を示す。
図１７を参照して、本実施の形態に係るデバイス２００とデータ処理装置１００の動作例を説明する。
【００６５】
（１）データ処理装置１００は、デバイス２００より計測データを取得したい場合は、センサ側の時刻Ｔ１を取得すると同時に制御情報であるＩＤ１を生成し、ＩＤ１が含まれる電文を計測データ取得命令として送信する。
（２）デバイス２００は、計測データ取得命令を受信すると、即座にカウンタ値Ｃ１を取得し、Ｄａｔａ１を取得する。
（３）また、デバイス２００は、Ｄａｔａ１を取得する際にカウンタ値Ｃ２を同時に取得しておく。
（４）更に、デバイス２００は、Ｄａｔａ１をデータ処理装置１００に送信する際にもカウンタ値Ｃ３を取得し、受信したＩＤ１と併せてカウンタ周波数ｆ、Ｄａｔａ１、カウンタ値Ｃ１、Ｃ２及びＣ３をＩＤ１の送信元であるデータ処理装置１００に送信（応答）する。
（５）データ処理装置１００は、Ｄａｔａ１等を受信した時刻のタイムスタンプＴ２を取得する。
データ処理装置１００は、これらの情報を用いて、デバイス２００がセンサから計測データＤａｔａ１を取得した時刻Ｔｘを算出する。
【００６６】
本実施の形態に係る時刻Ｔｘの算出方法を説明する。
データ処理装置１００は、伝送遅延（片道分）Ｒとデバイス側でＤａｔａ１を取得してからデータの送信開始までに要した時間（Ｃ３−Ｃ２）の合計をカウンタ周波数ｆで除算し、時刻Ｔ２から除算値を減算する。
このため、データ処理装置１００は、Ｔｘを、
Ｔｘ＝Ｔ２−（（Ｒ＋（Ｃ３−Ｃ２））／ｆ）
（Ｒ＝（（Ｔ２−Ｔ１）−（Ｃ３−Ｃ１））／２）で近似する）
で求める。
【００６７】
（デバイスの処理について）
図１８は、デバイス２００の処理シーケンスを示している。
本実施の形態では、デバイス２００の処理は、センタからの要求に応じて計測データを収集するメイン処理の１種類である。
なお、図１８に示される動作手順は、デバイス２００でのデータ処理方法及びデータ処理プログラムの例に相当する。
【００６８】
（１）メイン処理
まず、受信部２１０でデータ処理装置１００から受信した電文を電文処理部２２０で解釈し、計測データ取得の命令であるか否かを確認する（ＤＲ１）。
計測データ取得の命令であれば（ＤＲ１でＹＥＳ）、電文処理部２２０は、カウンタ２５０よりカウンタ値Ｃ１を取得する（ＤＲ２）。また、同時に、電文処理部２２０は、計測データ取得部２７０に計測データ取得指示を発行し、受信した電文に含まれるＩＤをＩＤ管理部２３０に送信する。
なお、本実施の形態では、カウンタ値Ｃ１は受信カウンタ値に相当する。
【００６９】
次に、計測データ取得部２７０は、センサＩ／Ｆ２５００を介してセンサに計測データ取得要求を発行する。また、計測データ取得部２７０はその直後にカウンタ２５０よりカウンタ値Ｃ２を取得する。
センサは計測データ取得要求に応答して、計測データ取得部２７０に計測データＤａｔａを送信する。
計測データ取得部２７０は計測データＤａｔａを受信し、受信した計測データＤａｔａとカウンタ値Ｃ２を計測データ記憶部２６０を介して電文処理部２２０に送信する（ＤＲ３）。
なお、本実施の形態では、カウンタ値Ｃ２は取得カウンタ値に相当する。
【００７０】
電文処理部２２０は、カウンタ値Ｃ２と計測データＤａｔａを取得すると、あらかじめ決められているカウンタ周波数ｆとＩＤ管理部２３０よりＩＤを取得し、カウンタ２５０よりカウンタ値Ｃ３を取得する（ＤＲ４）。
なお、本実施の形態では、カウンタ値Ｃ３は送信カウンタ値に相当する。
【００７１】
その後、電文処理部２２０は、計測データＤａｔａ、カウンタ値Ｃ１、Ｃ２及びＣ３、カウンタ周波数ｆ、ＩＤを含む電文を生成し、送信部２８０と通信Ｉ／Ｆ２４００を介して電文をデータ処理装置１００に送信する（ＤＲ５）。
【００７２】
（データ処理装置の処理）
図１９、図２０及び図２１は、データ処理装置１００の処理シーケンスを示している。
データ処理装置１００は、３つの処理を並列で実施している。
１つ目の処理（コア処理１）は、計測データ取得命令をデバイス２００に発行する処理であり、図１９に示されている。
２つ目の処理（コア処理２）は、ＩＤに対する応答を受信した後の処理であり、計測時刻を算出する処理であり、図２０に示されている。
３つ目の処理（コア処理３）は、計測データ取得命令の発行周期を補正するための処理であり、図２１に示されている。
なお、図１９〜図２１に示される動作手順は、データ処理装置１００でのデータ処理方法及びデータ処理プログラムの例に相当する。
【００７３】
（１）コア処理１（計測データ取得命令の発行）
計測データ取得命令の発行タイミングであれば（Ｃｒ１でＹＥＳ）、電文処理部１２０は、時刻Ｔ１を取得する（Ｃｒ２）。
そして、電文処理部１２０は、ＩＤ管理部１３０からＩＤを取得し、ＩＤを含む電文を生成し、送信部１７０が通信Ｉ／Ｆ（デバイス）１１５０を介して、電文を計測データ取得命令としてデバイス２００に送信する（Ｃｒ３）
その後、データ格納部１６０が、時刻Ｔ１、ＩＤをストレージ６００に保管する。
時刻Ｔ１は、送信部１７０が制御情報たるＩＤを送信した時刻である。
【００７４】
（２）コア処理２（ＩＤに対する応答を受信後の処理）
受信部１１０が、デバイス２００から送信された計測データＤａｔａ、カウンタ値Ｃ１、Ｃ２及びＣ３、カウンタ周波数ｆ、ＩＤを受信した場合（Ｃｒ５でＹＥＳ）は、電文処理部１２０がセンタ側の時刻Ｔ２を取得する（Ｃｒ６）。
時刻Ｔ２は、受信部１１０が計測データＤａｔａ、カウンタ値Ｃ１、Ｃ２及びＣ３、カウンタ周波数ｆ、ＩＤを受信した時刻である。
その後、電文処理部１２０は、計測データＤａｔａ、カウンタ値Ｃ１、Ｃ２及びＣ３、カウンタ周波数ｆ、ＩＤを計測データ時刻算出部１５０に送信する。
計測データ時刻算出部１５０は、ストレージ６００よりＩＤをキーに時刻Ｔ１を読み出し（Ｃｒ７）、時刻の補正の実施、すなわち、デバイス２００で計測データを取得した時点でのセンタ側の時刻Ｔｘを算出する（Ｃｒ８）。
時刻Ｔｘの算出方法は前述した通りである。
最後に、データ格納部１６０が、計測データＤａｔａ、カウンタ値Ｃ１、Ｃ２及びＣ３、カウンタ周波数ｆ、時刻Ｔ１及びＴ２、ＩＤ、時刻Ｔｘを、ＩＤをキーとしてストレージ６００に格納する（Ｃｒ９）。
【００７５】
（３）処理コア３（計測データ取得命令の発行周期を補正するための処理）
デバイス側取得タイミング補正部１４０は、一定周期で各デバイス２００への計測データ取得命令の発行タイミングの補正が必要であるかを確認する（Ｃｒ１０）。
デバイス側取得タイミング補正部１４０は、オフセット誤差を補正する必要があれば（Ｃｒ１０でＹＥＳ）、計測データ取得命令の発行タイミングの補正を行う（Ｃｒ１１）。
なお、Ｃｒ１０の補正の要否の確認方法及びＣｒ１１の補正量の算出方法は、前述の（ドリフト誤差の検出方法及び補正方法について）及び（オフセット誤差の検出方法及び補正方法について）に記載した通りである。
【００７６】
＊＊＊実施の形態の効果の説明＊＊＊
本実施の形態によれば、データ処理装置が計測データの収集を要求する場合でも、取得カウンタ値（ｃ２）と送信カウンタ値（ｃ３）と受信カウンタ値（ｃ１）とカウンタ周波数値（ｆ）と制御情報（ＩＤ）が送信された時刻（Ｔ１）とデータが受信された時刻（Ｔ２）とに基づき、デバイスでデータが取得された時刻（Ｔｘ）を算出できる。このため、時刻情報を管理する機能がデバイスに実装されていなくても、デバイスでデータが取得された時刻（Ｔｘ）を算出することができる。
つまり、本実施の形態では、ＮＴＰ、ＲＴＣなどの時刻機能が実装されていないデバイスのデータ取得時刻をセンタ側で補正して正確に得ることができる。
【００７７】
＊＊＊ハードウェア構成の説明＊＊＊
最後に、データ処理装置１００及びデバイス２００のハードウェア構成の補足説明を行う。
図１に示すＣＰＵ１１１０及びＣＰＵ２１００は、プロセッシングを行うＩＣ（Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）である。
ＣＰＵ１１１０及びＣＰＵ２１００は、ＤＳＰ（Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ）等のプロセッサであってもよい。
また、ＲＯＭ１１６０及びＲＯＭ２３００には、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）も記憶されている。
そして、ＯＳの少なくとも一部がＣＰＵ１１１０及びＣＰＵ２１００により実行される。
ＣＰＵ１１１０はＯＳの少なくとも一部を実行しながら、受信部１１０、電文処理部１２０、ＩＤ管理部１３０、デバイス側取得タイミング補正部１４０、計測データ時刻算出部１５０、データ格納部１６０、送信部１７０の機能を実現するプログラムを実行する。
また、ＣＰＵ２１００は、ＯＳの少なくとも一部を実行しながら、受信部２１０、電文処理部２２０、ＩＤ管理部２３０、取得周期管理部２４０、カウンタ２５０、計測データ取得部２７０、送信部２８０の機能を実現するプログラムを実行する。
図１では、データ処理装置１００及びデバイス２００ともに、１つのＣＰＵが図示されているが、複数のＣＰＵが配置されていてもよい。
また、データ処理装置１００では、受信部１１０、電文処理部１２０、ＩＤ管理部１３０、デバイス側取得タイミング補正部１４０、計測データ時刻算出部１５０、データ格納部１６０、送信部１７０の処理の結果を示す情報やデータや信号値や変数値が、ＲＡＭ１１２０、又は、ＣＰＵ１１１０内のレジスタ又はキャッシュメモリに記憶される。
また、デバイス２００では、受信部２１０、電文処理部２２０、ＩＤ管理部２３０、取得周期管理部２４０、カウンタ２５０、計測データ取得部２７０、送信部２８０の処理の結果を示す情報やデータや信号値や変数値が、ＲＡＭ２２００、又は、ＣＰＵ２１００内のレジスタ又はキャッシュメモリに記憶される。
また、データ処理装置１００の上記の要素及びデバイス２００の上記の要素の機能を実現するプログラムは、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ブルーレイ（登録商標）ディスク、ＤＶＤ等の可搬記憶媒体に記憶されてもよい。
【００７８】
また、データ処理装置１００の上記の要素及びデバイス２００の上記の要素を、「回路」又は「工程」又は「手順」又は「処理」に読み替えてもよい。
また、データ処理装置１００及びデバイス２００は、ロジックＩＣ（Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）、ＧＡ（Ｇａｔｅ  Ａｒｒａｙ）、ＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）、ＦＰＧＡ（Ｆｉｅｌｄ−Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）といった電子回路により実現されてもよい。
この場合は、データ処理装置１００の上記の要素及びデバイス２００の上記の要素は、それぞれ電子回路の一部として実現される。
なお、プロセッサ及び上記の電子回路を総称してプロセッシングサーキットリーともいう。
【００７９】
＊＊＊付記＊＊＊
なお、実施の形態１及び実施の形態２では、センサで計測された計測データを取得、収集する例を説明したが、対象とするデータは計測データに限定されない。
また、実施の形態１及び実施の形態２では、データ処理装置が、デバイスが計測データを取得した時刻を算出するが、センサからデータを取得するのではなくデバイス自身がデータを生成する場合は、データ処理装置は、デバイスがデータを生成した時刻を算出する。
すなわち、実施の形態１及び実施の形態２で説明したデータの「取得」には、データの「生成」も含まれる。
【符号の説明】
【００８０】
１０  センタ、１００  データ処理装置、１１０  受信部、１２０  電文処理部、１３０  ＩＤ管理部、１４０  デバイス側取得タイミング補正部、１５０  計測データ時刻算出部、１６０  データ格納部、１７０  送信部、２００  デバイス、２１０  受信部、２２０  電文処理部、２３０  ＩＤ管理部、２４０  取得周期管理部、２５０  カウンタ、２６０  計測データ記憶部、２７０  計測データ取得部、２８０  送信部、５００  データ分析装置、６００  ストレージ、１１１０  ＣＰＵ、１１２０  ＲＡＭ、１１３０  ストレージＩ／Ｆ、１１４０  通信Ｉ／Ｆ（ＬＡＮ）、１１５０  通信Ｉ／Ｆ（デバイス）、１１６０  ＲＯＭ、２１００  ＣＰＵ、２２００  ＲＡＭ、２３００  ＲＯＭ、２４００  通信Ｉ／Ｆ、２５００  センサＩ／Ｆ。
【図１】
0006465787.tif 000002
【図２】
0006465787.tif 000003
【図３】
0006465787.tif 000004
【図４】
0006465787.tif 000005
【図５】
0006465787.tif 000006
【図６】
0006465787.tif 000007
【図７】
0006465787.tif 000008
【図８】
0006465787.tif 000009
【図９】
0006465787.tif 000010
【図１０】
0006465787.tif 000011
【図１１】
0006465787.tif 000012
【図１２】
0006465787.tif 000013
【図１３】
0006465787.tif 000014
【図１４】
0006465787.tif 000015
【図１５】
0006465787.tif 000016
【図１６】
0006465787.tif 000017
【図１７】
0006465787.tif 000018
【図１８】
0006465787.tif 000019
【図１９】
0006465787.tif 000020
【図２０】
0006465787.tif 000021
【図２１】
0006465787.tif 000022