(57)【要約】      （修正有）【課題】プラント監視制御システム等におけるリアルタイムデータのタイムスタンプの精度を、そのときの状況に応じて適宜適切な値に設定するタイムスタンプ付データ管理システムを提供する。【解決手段】装置１０Ａ，１０Ｂ，１０Ｃの定刻通知処理部２１は、定刻に定刻通知を他の装置へ送信し、その定刻通知応答を受信することで、他の装置との伝送遅延時間を求める。定刻通知受信処理部２２は、他の装置からの定刻通知の定刻と受信時間と、伝送遅延時間とに基づいて、自装置の内部時計と他の装置１０の内部時計との時差を求める。精度算定処理部２３は、これらの時差と、タイムスタンプ精度テーブル３０とに基づいて、タイムスタンプ精度を決定する。【選択図】図２
2015201194.tif 000002
【特許請求の範囲】
【請求項１】
複数の装置で各々自装置内の時計の時刻に基づいてタイムスタンプ付きデータを生成等するシステムであって、
前記各装置は、
自装置の時計と、各他の装置の時計との時差を、該各他の装置との通信に基づいて算出して、該各時差に基づいてシステムとしてのタイムスタンプ精度を求めるタイムスタンプ精度算出手段と、
任意のデータに係わるタイムスタンプを生成する際に、そのときの前記自装置の時計の時刻から前記タイムスタンプ精度に応じたタイムスタンプを生成して、該データに該生成したタイムスタンプを付与するタイムスタンプ生成・付与手段と、
を有することを特徴とするタイムスタンプ付データ管理システム。
【請求項２】
前記タイムスタンプ精度算出手段は、
前記各時差に基づいてシステム上の最大時差を求めて、該最大時差と、予め設定されている前記タイムスタンプ精度の複数の候補とに基づいて、該複数の候補のなから前記タイムスタンプ精度を決定することを特徴とする請求項１記載のタイムスタンプ付データ管理システム。
【請求項３】
前記タイムスタンプ精度算出手段は、
予め前記タイムスタンプ精度の前記複数の候補を記憶した候補記憶手段と、
任意の他の装置との通信に基づいて自装置と該他の装置との伝送遅延時間を求め、該他の装置から送信される所定の通知の該他の装置における送信時刻と、自装置における該通知の受信時刻と、前記伝送遅延時間とに基づいて、自装置の時計と該他の装置の時計との時差を算出する時差算出手段と、
前記時差算出手段によって前記各他の装置との各時差を算出したら、これら各時差から前記システム上の最大時差を求め、該最大時差に基づいて前記複数の候補のなかから前記タイムスタンプ精度を決定するタイムスタンプ精度決定手段と、
を有することを特徴とする請求項２記載のタイムスタンプ付データ管理システム。
【請求項４】
前記タイムスタンプ精度決定手段は、
前記複数の候補のなかで前記最大時差よりも大きく且つそのなかで最小の候補を、前記タイムスタンプ精度に決定することを特徴とする請求項２または３記載のタイムスタンプ付データ管理システム。
【請求項５】
前記タイムスタンプ生成・付与手段は、前記タイムスタンプ精度決定手段によって求められたタイムスタンプ精度に応じた正規化処理を、前記そのときの前記自装置の時計の時刻に対して施すことで、前記タイムスタンプを生成し、
前記タイムスタンプ精度は、前記時計の時刻精度よりも荒いことを特徴とする請求項１〜４の何れかに記載のタイムスタンプ付データ管理システム。
【請求項６】
前記各装置は、前記タイムスタンプ付きデータを記憶するデータ記憶手段を更に有し、
前記タイムスタンプ生成・付与手段は、新たに生成した前記タイムスタンプ付きデータと、該記憶手段に記憶されている既存のタイムスタンプ付きデータとの新旧関係を、両データのタイムスタンプに基づいて判定し、該新たに生成したタイムスタンプ付きデータの方が新しい場合に、該新たに生成したタイムスタンプ付きデータを該記憶手段に上書き格納することを特徴とする請求項１〜５の何れかに記載のタイムスタンプ付データ管理システム。
【請求項７】
前記各装置は、前記タイムスタンプ付きデータを記憶するデータ記憶手段を更に有し、
前記タイムスタンプ生成・付与手段は、新たに生成した前記タイムスタンプ付きデータと、該記憶手段に記憶されている既存のタイムスタンプ付きデータとで、タイムスタンプが同一時刻である場合には、予め設定されている装置間の相対的な優先順位に基づいて、前記新たに生成したタイムスタンプ付きデータの生成元装置の方が、前記既存のタイムスタンプ付きデータの生成元装置よりも優先順位が高い場合に、該新たに生成したタイムスタンプ付きデータを該記憶手段に上書き格納することを特徴とする請求項１〜５の何れかに記載のタイムスタンプ付データ管理システム。
【請求項８】
前記各装置は、前記タイムスタンプ生成・付与手段によって新たに生成された前記タイムスタンプ付きデータを、前記各他の装置へ送信する送信手段と、任意の前記他の装置の前記送信手段から送信される前記タイムスタンプ付きデータを受信する受信手段と、前記タイムスタンプ付きデータを記憶するデータ記憶手段とを更に有し、
前記受信手段は、前記受信したタイムスタンプ付きデータと、該記憶手段に記憶されている既存のタイムスタンプ付きデータとの新旧関係を、両データのタイムスタンプに基づいて判定し、該受信したタイムスタンプ付きデータの方が新しい場合に、該受信したタイムスタンプ付きデータを該記憶手段に上書き格納することを特徴とする請求項１〜７の何れかに記載のタイムスタンプ付データ管理システム。
【請求項９】
前記各装置は、前記タイムスタンプ生成・付与手段によって新たに生成された前記タイムスタンプ付きデータを、前記各他の装置へ送信する送信手段と、任意の前記他の装置の前記送信手段から送信される前記タイムスタンプ付きデータを受信する受信手段と、前記タイムスタンプ付きデータを記憶するデータ記憶手段とを更に有し、
前記受信手段は、前記受信したタイムスタンプ付きデータと、該記憶手段に記憶されている既存のタイムスタンプ付きデータとで、タイムスタンプが同一時刻である場合には、予め設定されている装置間の相対的な優先順位に基づいて、前記受信したタイムスタンプ付きデータの生成元装置の方が、前記既存のタイムスタンプ付きデータの生成元装置よりも優先順位が高い場合に、該受信したタイムスタンプ付きデータを該記憶手段に上書き格納することを特徴とする請求項１〜７の何れかに記載のタイムスタンプ付データ管理システム。
【請求項１０】
前記各装置は、前記タイムスタンプ生成・付与手段によって新たに生成された前記タイムスタンプ付きデータを、前記各他の装置へ送信する送信手段を更に有し、
前記候補記憶手段には、更に、前記各候補に対応付けて、該候補の時間より短い時間の送信周期が予め登録されており、
前記タイムスタンプ精度決定手段は、前記タイムスタンプ精度に決定した候補に対応する前記送信周期を、前記送信手段の送信周期に決定することを特徴とする請求項３記載のタイムスタンプ付データ管理システム。
【請求項１１】
前記各装置は、
前記タイムスタンプ付きデータを蓄積記憶するデータ蓄積記憶手段と、
任意の前記装置の該データ蓄積記憶手段に蓄積される任意のタイムスタンプ付きデータ群と、任意の他の装置の前記データ蓄積記憶手段に蓄積される他のタイムスタンプ付きデータ群とを、そのタイムスタンプに従って合成する合成手段とを更に有することを特徴とする請求項１〜５の何れかに記載のタイムスタンプ付データ管理システム。
【請求項１２】
前記タイムスタンプ精度算出手段は、
前記各時差に基づいてシステム上の最大時差を求めて、該最大時差と、予め設定されているタイムスタンプ精度間隔とに基づいて、前記タイムスタンプ精度を算出することを特徴とする請求項１記載のタイムスタンプ付データ管理システム。
【請求項１３】
前記タイムスタンプ精度算出手段は、
ｎ  ＝  (“前記最大時差÷前記タイムスタンプ精度間隔”の商) ＋ １
タイムスタンプ精度  ＝  前記タイムスタンプ精度間隔 × ｎ
によって、前記タイムスタンプ精度を算出することを特徴とする請求項１２記載のタイムスタンプ付データ管理システム。
【請求項１４】
複数の装置で各々自装置内の時計の時刻に基づいてタイムスタンプ付きデータを生成等するシステムにおける該各装置であって、
自装置の時計と、各他の装置の時計との時差を、該各他の装置との通信に基づいて算出して、該各時差に基づいてシステムとしてのタイムスタンプ精度を求めるタイムスタンプ精度算出手段と、
任意のデータに係わるタイムスタンプを生成する際に、そのときの前記自装置の時計の時刻から前記タイムスタンプ精度に応じたタイムスタンプを生成して、該データに該生成したタイムスタンプを付与するタイムスタンプ生成・付与手段と、
を有することを特徴とするタイムスタンプ付データ管理システムの装置。
【請求項１５】
前記タイムスタンプ精度算出手段は、
前記各時差に基づいてシステム上の最大時差を求めて、該最大時差と、予め設定されている前記タイムスタンプ精度の複数の候補とに基づいて、該複数の候補のなから前記タイムスタンプ精度を決定することを特徴とする請求項１４記載のタイムスタンプ付データ管理システムの装置。
【請求項１６】
複数の装置で各々自装置内の時計の時刻に基づいてタイムスタンプ付きデータを生成等するシステムにおける該各装置のコンピュータを、
自装置の時計と、各他の装置の時計との時差を、該各他の装置との通信に基づいて算出して、該各時差に基づいてシステムとしてのタイムスタンプ精度を求めるタイムスタンプ精度算出手段と、
任意のデータに係わるタイムスタンプを生成する際に、そのときの前記自装置の時計の時刻から前記タイムスタンプ精度に応じたタイムスタンプを生成して、該データに該生成したタイムスタンプを付与するタイムスタンプ生成・付与手段と、
として機能させる為のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の装置でタイムスタンプ付きデータを生成するシステムに関する。
【背景技術】
【０００２】
例えば、特許文献１に記載の従来技術が知られている。
特許文献１には、他局からファイル作成日時を受信すると（Ｓ２０）、該当する自局ファイルの作成日時と比較して（Ｓ２２）、他局の方が新しい場合には、転送要求を送って（Ｓ２３）、ファイル内容を送信させ（Ｓ１２）、該当する共有ファイルの内容を、送信されたファイルに置き換える（Ｓ２４）こと等が開示されている。
【０００３】
複数の装置でタイムスタンプ付きデータを生成・格納・管理するシステムとしては、例えば一例としてはプラント監視制御システム等がある。プラント監視制御システムでは、時系列的に変化し得る様々なデータ（リアルタイムデータ；各種測定値や何等かのカウント値など）を、複数の装置で各々取得／生成等している。この様なリアルタイムデータは、例えば相互に時系列的な前後関係（相対的に新しい／古いなど）が分かるようにする必要があり、各装置で各々自装置内の時計の時刻に基づいてタイムスタンプを生成してリアルタイムデータに付与している。
【０００４】
この様なタイムスタンプ付きリアルタイムデータの扱い方は、様々であり、例えばそのままタイムスタンプ付きデータを累積記憶して時系列データとして、後に何等かの処理や解析などに利用する場合や、タイムスタンプに基づいて例えば記憶データが常に最新データとなるようにデータ更新する場合等ある。
【０００５】
例えば、取得／生成したデータが既存データより新しい場合のみ、取得／生成データによってデータ更新する。あるいは、例えば、蓄積したデータ群を、それらに付加されているタイムスタンプに基づいて、例えば古いものから順に整列させる。あるいは、タイムスタンプに基づいて、複数のデータ群を合成した合成データを作成する。
【０００６】
一般的に、例えばプラント監視制御システム等におけるリアルタイムデータには、データの連続性が要求される。つまり、例えば古いデータから順に連続する時系列データを得ること等が要求される。また、データ時刻の整合性が要求される。データ時刻の整合性は、特に、複数の装置でそれぞれの時計に基づいてタイムスタンプが付与された複数の時系列データに関して、時系列データ相互の時間的な前後関係（相対的な新旧や同一タイミングであること等）が、タイムスタンプに基づいて正しく判定できることを意味する。
【０００７】
タイムスタンプの利用方法は、他にも様々な方法があってよいが、何れにしても、タイムスタンプが正しいものであれば、何等問題はない。
しかしながら、後述するように、タイムスタンプ生成元となる装置内の時計の時刻は、たとえ定期的に時刻補正を行っても多少は狂っているものである。それでも、１つの装置（その１つの時計）だけである場合には、各タイムスタンプは同じように狂っていることになるので、上記のように相対的な新旧を判定するうえでは、特に問題はないことになる。
【０００８】
しかしながら、複数の装置でそれぞれ自己の時計の現在時刻をタイムスタンプ時刻とする場合には、例えば上記新旧の判定結果が正しいとは限らないことになる。
例えば、プラント監視制御システムにおいて、複数の装置が伝送路を介して接続され、各装置が更新した共有ローカルデータ領域内のリアルタイムデータを相互に伝送路を介して等値化・共有するシステムがある。図８に、このようなプラント監視制御システムの一例を示す。
【０００９】
図８に示すシステムは、複数の装置２００（２００Ａ、２００Ｂ、・・・、２００Ｍ）が、伝送路に接続されており、相互にデータ送受信可能な構成となっている。
各装置２００は、コンピュータ等であり、例えばＰＬＣ等であり、特に図示しないがＣＰＵ、メモリ等を有しており、メモリに記憶されたプログラムをＣＰＵが実行することで、図示のアプリケーション処理、送信処理、受信処理等の各種処理機能を実現する。
【００１０】
また、各装置２００は、そのメモリ内に共通データローカル領域２０１を有している。また、各装置２００は、内部時計２０２を有している。
共通データローカル領域２０１には、基本的に全ての装置２００で共有するデータが格納される。この為、（多少のタイムラグはあるが）基本的に全ての装置２００の共通データローカル領域２０１の格納データが、同一となるように制御されている。これは、換言すれば、全ての装置２００の共通データローカル領域２０１の図示のデータ情報１、データ情報２、・・・データ情報ｎが、全て、（多少のタイムラグはあるが）最新の情報となるようにしている。
【００１１】
例えば、装置２００Ａが、例えばそのアプリケーション処理に伴って自己の共通データローカル領域２０１の図示のデータ情報１を、最新データ（データ情報１ａと記すものとする）に更新した場合、他の全ての装置２００においてもデータ情報１を最新データ１ａに更新させる為に、上記送信処理によって、データ情報１の最新データ１ａを他の全ての装置２００Ｂ、２００Ｃに送信する。
【００１２】
しかしながら、このとき、例えば、装置２００Ｂにおいても、自己の共通データローカル領域２０１のデータ情報１を、最新データ（データ情報１ｂと記すものとする）に更新したとする。この場合、最新データ１ａと最新データ１ｂのどちらがより新しいデータであるのかを判断して、より新しいデータによって「データ情報１」の更新を行うことになる。その為に、従来では、データ情報１ａ、１ｂにタイムスタンプを付与し、タイムスタンプに基づいて、より新しいデータはどちらであるのかを判定していた。このタイムスタンプは、各装置２００が自己の内部時計２０２の時刻に基づいて生成して付与する。
【００１３】
ここでは、上記データの受信側でタイムスタンプを付与する方式（従来方式１）と、データ送信側でタイムスタンプを付与する方式（従来方式２）について説明する。
まず、従来方式１について、図９、図１０（ａ）、（ｂ）を参照して説明する。
【００１４】
従来方式１では、図９に示すように、各装置２００は、自己のアプリケーション処理実行に伴って自己の共通データローカル領域２０１内の任意のデータを更新した場合、当該更新データを他の全ての装置２００へ伝送路を介して送信する。この送信データは、例えば「データ識別子＋リアルタイムデータ値」により構成される。データ識別子は、更新対象のデータの種別等を示すものであり、例えば上記「データ情報１」を示す識別ＩＤ等である。リアルタイムデータ値は、各データ種別に係わるデータ値そのものであり、上記データ１ａやデータ１ｂ等である。これによって、この送信データを受信した各装置２００では、データ識別子を参照することで、そのリアルタイムデータ値が例えば上記「データ情報１」に係わるデータ値であると認識できる。
【００１５】
尚、上記データ種別とは、例えば何等かのカウンタ値Ｊ、カウンタ値Ｋ、あるいは測定点pの電流値、測定点ｑの電流値、測定点ｐの電圧値、測定点ｑの電圧値等である。そして、例えばカウンタ値Ｊに関してアプリケーション処理によってその値が更新される毎に、当該更新後の値が上記共通データローカル領域２０１内の該当領域に上書き格納されることになる。この該当領域には、カウンタ値Ｊに関してそれまでの最新の値が既存データ値として格納されていることになる。アプリケーション処理では、この既存データ値を読み出して例えば＋インクリメントした値を上記更新後の値（更新データ）として、共通データローカル領域２０１の該当領域に上書き記憶することになる。勿論、これは単なる具体例に過ぎない。
【００１６】
ここで、上記送信データを受信した他の装置２００は、当該受信データに対してタイムスタンプを生成・付与する。これは、自己の内部時計２０２の現在時刻を当該受信データの受信時刻として、この受信時刻に基づいてタイムスタンプを生成して上記受信データに付与する。
【００１７】
尚、上記アプリケーション処理等に伴うデータ更新の際にも、そのときの時刻に基づいてタイムスタンプを生成して、これを当該自己が生成した更新データに付与する。
共通データローカル領域２０１に格納される各データは、基本的に全て上記のようにタイムスタンプが付与されたデータである。これより、上記受信データ又は自己が生成した更新データのタイムスランプと、例えば上記「データ情報１」に係わる既存データのタイムスタンプとを比較して、より新しい方が共通データローカル領域２０１に格納されるようにする。つまり、既存データの方が新しい場合には、現状のままとする（受信データ／更新データは例えば破棄する）。一方、受信データ／更新データの方が新しい場合には、受信データ／更新データを既存データに上書きする。勿論、逐一述べないが、これら受信データ／更新データは、上記タイムスタンプが付与された状態のまま共通データローカル領域２０１に格納する。
【００１８】
図１０（ａ）には、上記データ種別「データ情報１」に関して、まず装置２００Ａにおいて上記更新データとして上記データ情報１ａが生成され、その後、例えばある程度の時間後に、装置２００Ｂにおいて上記更新データとして上記データ情報１ｂが生成された場合の、各装置の各共通データローカル領域２０１の更新動作例を示す。
【００１９】
また、図１０（ｂ）には、上記装置２００Ａのデータ情報１ａの生成と上記装置２００Ｂのデータ情報１ｂの生成とが、同時に行われた場合の、共通データローカル領域２０１の更新動作例を示す。
【００２０】
尚、ここでは更新データはアプリケーション処理等で生成される場合を想定して説明するが、この例に限らず、更新データは例えば何等かの計測データを取得したもの等である場合もある。
【００２１】
また、尚、何れの例の場合も、不図示の既存データは、データ情報１ａ、１ｂよりも古いデータであるものとする。また、図では、簡単の為、装置２００Ａ、２００Ｂ、２００Ｃの３台の装置があるものとする。
【００２２】
まず、図１０（ａ）を参照して説明する。
この例の場合、まず装置２００Ａにおいて上記自己のアプリケーション処理に伴う更新データであるデータ情報１ａが、共通データローカル領域２０１に格納される。尚、以下の説明では逐一述べないが、更新データには例えば共通データローカル領域２０１に格納する際の時刻に応じたタイムスタンプが生成・付与される。そして、装置２００Ａは、このデータ情報１ａを他の全ての装置２００Ｂ，２００Ｃへ送信する。
【００２３】
各装置２００Ｂ、２００Ｃでは、それぞれ自己の内部時計２０２より、このデータ情報１ａの受信時刻に応じたタイムスタンプを生成する。そして、このタイムスタンプに基づいて受信したデータ情報１ａを自己の共通データローカル領域２０１に格納するか否かを判定する。上記のことからここでは格納することになるので、装置２００Ｂ、２００Ｃにおいて、その共通データローカル領域２０１の「データ情報１」は、上記データ情報１ａに更新されることになる。
【００２４】
その後、今度は、装置２００Ｂにおいて、上記自己のアプリケーション処理に伴う更新データであるデータ情報１ｂが生成され、この時刻に応じたタイムスタンプが生成・付与される。そして、共通データローカル領域２０１の「データ情報１」に係わる既存データ（このときは、上記データ情報１ａになっている）のタイムスタンプと比較することで、より新しい方が共通データローカル領域２０１に格納されるようにする。これより、共通データローカル領域２０１に「データ情報１」に係わる新たな最新データとしてデータ情報１ｂが格納されることになる。
【００２５】
また、装置２００Ｂは、上記データ情報１ｂを他の全ての装置２００Ａ、２００Ｃへ送信する。これより、各装置２００Ａ、２００Ｃでは、上記と同様、受信時刻に応じたタイムスタンプを生成して当該受信したデータ情報１ｂに付与して、既存データのタイムスタンプと比較することで、データ情報１ｂが既存データよりも新しいと判定することになるので、その共通データローカル領域２０１の「データ情報１」は、上記データ情報１ｂに更新されることになる。
【００２６】
この様にして、この例の場合、全ての装置２００において、その共通データローカル領域２０１の「データ情報１」の最新データとしてデータ情報１ｂが格納された状態となり、これは正常な状態と言える。
【００２７】
一方、図１０（ｂ）に示す例の場合、上記の通りデータ更新自体はデータ情報１ａとデータ情報１ｂとで同じタイミングであるが、受信データに係わるタイムスタンプは受信時刻を基準にして生成されるものである為、上記正常な状態とはならない。
【００２８】
すなわち、装置２００Ａは、上記のように自己のアプリケーション処理に伴う更新データであるデータ情報１ａを、その共通データローカル領域２０１に格納した後、上記データ情報１ｂを受信する。これより、データ情報１ｂのタイムスタンプは、データ情報１ａのタイムスタンプよりも新しいことになり、データ情報１ｂが上書き格納されることになる。
【００２９】
一方、装置２００Ｂは、上記のように自己のアプリケーション処理に伴う更新データであるデータ情報１ｂを、その共通データローカル領域２０１に格納した後、上記データ情報１ａを受信する。これより、データ情報１ａのタイムスタンプは、データ情報１ｂのタイムスタンプよりも新しいことになり、データ情報１ａが上書き格納されることになる。
【００３０】
この様に、装置２００Ａと、装置２００Ｂとで、共通データローカル領域２０１の格納データが異なる状態と成り得る。
尚、ここでは装置２００Ｃに関しては特に言及しないものとする。すなわち、装置２００Ｃでの場合、装置２００Ａからのデータ情報１ａ、装置２００Ｂからのデータ情報１ｂのどちらが最新データとなるかは不明である。より後に受信した情報が最新データとして扱われることになるが、伝送遅延によりどちらが後に受信されることになるのか不明だからである。
【００３１】
上記問題が生じる原因は、他の装置へ送信するデータに係わるタイムスタンプの生成を、受信側で受信時刻に基づいて行う為である。これより、以下に説明する従来方式２のように、タイムスタンプの生成を、送信側で送信時刻等に基づいて行う方法も提案されている。
【００３２】
以下、図１１、図１２を参照して、従来方式２について説明する。
図１１に示すように、従来方式２の場合、各装置２００は、自己のアプリケーション処理等に伴う任意の更新データがある場合、自己の内部時計２０２から得られた現在時刻等に基づいてタイムスタンプを生成して、これを当該更新データに付加する。このタイムスタンプ付きの更新データは、上記送信処理によって他の全ての装置２００へ通知される。これより、送信データは、上記「データ識別子＋リアルタイムデータ値」に、タイムスタンプが加わったものとする。すなわち、送信データ＝「データ識別子＋タイムスタンプ＋リアルタイムデータ値」となる。
【００３３】
また、上記生成されたタイムスタンプ付き更新データは、自己の共通データローカル領域２０１の既存データより新しければ、既存データに上書き格納される。勿論、この新旧判定は、タイムスタンプによって行うことになる。
【００３４】
また、上記送信データを受信した各装置２００は、受信したイムスタンプ付き更新データが、自己の共通データローカル領域２０１の既存データより新しければ、既存データに上書き格納される。勿論、この新旧判定は、タイムスタンプによって行うことになる。
【００３５】
上記処理は、図１１に示す例では、例えば装置２００Ａは、自装置において生成したタイムスタンプ付きデータ情報１ａを、自己の共通データローカル領域２０１に格納すると共に、他の全ての装置２００Ｂ、２００Ｃへ送信する。
【００３６】
また、装置２００Ｂも、自装置において生成したタイムスタンプ付きデータ情報１ｂを、自己の共通データローカル領域２０１に格納すると共に、他の全ての装置２００Ｃ、２００Ｃへ送信する。
【００３７】
これより、装置２００Ａは、上記タイムスタンプ付きデータ情報１ｂを受信すると、そのタイムスタンプと、自己の共通データローカル領域２０１に格納している上記データ情報１ａのタイムスタンプとに基づいて、どちらがより新しいか（最新データであるか）を判定する。図１１では、データ情報１ｂの方が新しいと判定し、データ情報１ｂを共通データローカル領域２０１に上書き格納する。
【００３８】
一方、装置２００Ｂは、上記タイムスタンプ付きデータ情報１ａを受信すると、そのタイムスタンプと、自己の共通データローカル領域２０１に格納している上記データ情報１ｂのタイムスタンプとに基づいて、どちらがより新しいか（最新データであるか）を判定する。図１１では、データ情報１ｂの方が新しいと判定し、現状のままとする。尚、これより、受信したデータ情報１ａは、例えば破棄する。
【００３９】
また、装置２００Ｃは、上記データ情報１ｂとデータ情報１ａとを受信し、これらのタイムスタンプに基づいて結果的により新しい方が自己の共通データローカル領域２０１に格納された状態となる。
【００４０】
ここで、例えば図１２（ａ）に示すように、まず装置２００Ａが上記データ情報１ａを他の装置２００Ｂ，２００Ｃへ送信し、ある程度時間が経ってから装置２００Ｂが上記データ情報１ｂを他の装置２００Ａ，２００Ｃへ送信する場合を考える。
【００４１】
この例では、明らかに、データ情報１ａに付加されるタイムスタンプは、データ情報１ｂに付加されるタイムスタンプよりも古いことになるので、最終的には全ての装置２００Ａ，２００Ｂ，２００Ｃにおいて、自己の共通データローカル領域２０１にはデータ情報１ｂが格納された状態となる。
【００４２】
一方、例えば図１２（ｂ）に示す例では、上記データ情報１ａ、１ｂが同一タイミングで生成され、以って同一タイミングでタイムスタンプが生成された場合を示す。この場合、理屈ではこれら２つのタイムスタンプ時刻は同一となるはずである。しかしながら、後に図１４等で説明するように、全ての装置２００においてその内部時計２０２は、たとえ定期的に時刻補正を行ったとしても、多少は狂っていることになる。これより、ここでは仮に、データ情報１ａのタイムスタンプが、データ情報１ｂのタイムスタンプよりも古いものとして説明する。勿論、これは、上記時計の狂いに応じた僅かな時間分（例えば数百ミリ秒程度など）、古いものとなっているものである。
【００４３】
この例の場合、図１２（ｂ）に示すように、まず装置２００Ａでは、自己の共通データローカル領域２０１に上記タイムスタンプ付きデータ情報１ａを格納している状態で上記タイムスタンプ付きデータ情報１ｂを受信することになる。そして、両者のタイムスタンプ時刻を比較することで、データ情報１ｂの方が新しいと判定し、データ情報１ｂをデータ情報１ａに上書きする。つまり、データ情報１ｂが「データ情報１」の最新データとして共通データローカル領域２０１に格納されている状態となる。
【００４４】
一方、装置２００Ｂでは、自己の共通データローカル領域２０１に上記タイムスタンプ付きデータ情報１ｂを格納している状態で上記タイムスタンプ付きデータ情報１ａを受信することになる。そして、両者のタイムスタンプ時刻を比較することで、データ情報１ｂの方が新しいと判定する。これより、現状のままとする。つまり、データ情報１ｂが「データ情報１」の最新データとして共通データローカル領域２０１に格納されている状態のままとする。尚、受信したデータ情報１ａは例えば破棄する。
【００４５】
また、装置２００Ｃでは、この例ではまず上記タイムスタンプ付きデータ情報１ｂを受信するものとし、これを自己の共通データローカル領域２０１に格納する。この状態で後に上記タイムスタンプ付きデータ情報１ａを受信することになり、よって上記装置２００Ｂと同様の判定・動作となる。
【００４６】
この様に、全ての装置２００において、最終的には、自己の共通データローカル領域２０１にデータ情報１ｂが格納された状態となる。つまり、上記図１０（ｂ）のような問題は解消されることになる。つまり、少なくとも全ての装置２００において同じデータが格納された状態にすることはできる。しかしながら、上記の通り、本来は、上記データ情報１ａ、１ｂは同一タイミングで生成されたものである。
【００４７】
ここで、上述したように、内部時計２０２の時刻の装置間の差異（時差）により、全く同一タイミングで更新された「データ情報」であっても異なるタイムスタンプが付与されることになる。これは、内部時計２０２が他装置より進んでいる装置２００が送信する「データ情報」が、共通データローカル領域２０１に残る結果となる。つまり、上記の例では装置２００Ｂの内部時計２０２が、装置２００Ａの内部時計２０２よりも進んでいることになり、装置２００Ａと装置２００Ｂとで同時にデータ更新があった場合には、常に、装置２００Ｂの更新データが、全ての装置２００の共通データローカル領域２０１に残る結果となる。
【００４８】
しかしながら、現実には、例えばシステム設計者の立場から考えて、例えば装置２００Ａと装置２００Ｂとで同時にデータ更新があった場合には、装置２００Ａの更新データの方を残したい、等という要望がある場合が起こり得る。
【先行技術文献】
【特許文献】
【００４９】
【特許文献１】特開昭６３−１３３２３９号公報
【発明の概要】
【発明が解決しようとする課題】
【００５０】
ここで、プラント監視制御システムの一例として、例えば電力系統監視システムにおいて、不図示の装置１００Ａ、１００Ｂが、それぞれ不図示の測定点Ａ，Ｂの電力計測を行ってこの計測結果を蓄積するシステムであって、後にこれらの計測結果に基づいて系統全体の電力を求める場合を例にする。
【００５１】
この例において、突発的・短期的な電力変動（以下、“ひげ”と記すものとする）があった場合、上記測定点Ａ，Ｂに関して例えば図１３（ａ）に示す計測データα、βが得られたとする。これより、後に、この２つの計測データに基づいて、例えば計測データα、βを合成することで、例えば図１３（ｂ）に示すような合成データγが系統全体の電力計測データとして得られることになる。
【００５２】
例えば、この様な短期的な電力変動であっても、これが電力のピークと見做せるのであれは、それに応じた何等かの対応が必要になる場合がある。よって、“ひげ”のピーク部分の電力を正しく知ることができるようにするために（“ひげ”を正しく検出できるようにする為に）、例えば図１３（ｂ）に示すような正しい合成データγが得られることが必要となる。
【００５３】
ここで、上記計測データα、βには、タイムスタンプが付与される。これは、例えば、上記測定点Ａ，Ｂの各装置１００Ａ、１００Ｂが、それぞれ、自装置内の不図示の内部時計の時刻から例えば図１３（ｂ）の図上下側に示すようなタイムスタンプを生成して、これを計測データα、βに付与して格納する。尚、これより、計測データα、βは、図上では連続したデータとして示すが、実際には図示のタイムスタンプｔ０，ｔ１、ｔ２、・・・、ｔ９、ｔ１０の各時刻に取得された１１個のデータから成るものと見做してもよい。
【００５４】
上記図１３（ｂ）に示す合成データγは、上記計測データα、βを、そのタイムスタンプに基づいて、同じ時刻のデータ同士を合成するものである。これは、両方のタイムスタンプが正しい場合には、問題がないものである。換言すれば、装置１００Ａ、１００Ｂの時計が、両方とも正しい場合には、問題ないものと言える。
【００５５】
しかしながら、通常、コンピュータ装置の時計は、殆ど常に多少は狂っているものである。これについて、図１４を参照して説明する。
図１４（ａ）、（ｂ）において、横軸は時間ｔであり、縦軸は正しい時間とのズレ量（ミリ秒など）を意味する。そして、ここでは、装置１００Ａ、１００Ｂの各内部時計について、正しい時間とのズレ量を示すものとする。
【００５６】
正しい時間とのズレ量が‘０’のとき、そのコンピュータ装置の時計が正しい状態と言えるが、図示のように殆どの場合において装置１００Ａ、１００Ｂの時計は多少のズレが生じている。ここで、一般的に、時計機能は、遅れる傾向か進む傾向の何れかとなる。ここでは、装置１００Ａの時計は進む傾向であり、装置１００Ｂの時計は遅れる傾向になる。そして、図１４（ａ）には、これら時計の時刻補正を行わずに放置した場合を示す。
【００５７】
図１４（ａ）に示すように、装置１００Ａの時計は、進む方向（＋方向）で徐々にズレ量が増大していく。同様に、装置１００Ｂの時計は、遅れる方向（−方向）で徐々にズレ量が増大していく。
【００５８】
この為、通常は、定期的に時刻補正を行う。図１４（ｂ）は、時刻補正を行う場合について示している。時刻補正方法については特に詳しくは説明しないが、基本的には、何等かの方法によって取得した正しい時刻と、自己の時計の時刻との差（ズレ量）を求めて、このズレ量に基づいて時刻補正を行う。例えばズレ量分を一気に補正する方法も考えられるが、図示の例ではある程度の時間を掛けて徐々にズレを修正していく。これは、例えば、ズレ量分を一気に補正すると、上記データの連続性が損なわれる可能性があるからである。
【００５９】
何れにしても、一時的には、時計は正しい時刻となる（ズレ量が‘０’）となる。しかしながら、その後、時間の経過と共に再びズレが増大していくことになる。この為、後に再び時刻補正が必要となる。この様にして、図示のように、ズレ量が‘０’となるのは一時的であり、殆どの場合、時計は多少は狂っていることになる。
【００６０】
更に、何れか一方の装置のズレ量が‘０’であっても、その時の他方の装置のズレ量も‘０’となっていなければ、相対的に両者の時計の時刻は異なっていることになり、この為、例えば上記合成データγの生成結果が、正しいものと成らない可能性がある。尚、常にズレ量がほぼ‘０’となるようにする為に頻繁に時刻補正を行うことは、現実的ではない。
【００６１】
上記のように時刻補正を行っても時計は多少は狂っているものである為、図１３（ａ）に示す計測データα、βは、実際には同時刻に得られたデータであってもタイムスタンプが異なる事態と成り得る。すなわち、実際には図１３（ａ）に示すような計測データα、βであるのに、タイムスタンプに基づくと図１５（ａ）に示すようなデータと見做される可能性がある。この為、合成データγ（系統全体の電力計測データ）が、図１５（ｂ）に示す合成データγ’のようになる可能性がある。つまり、正しい合成データが得られないことになる。
【００６２】
上記のような事態に対応する為、例えば、上記タイムスタンプの精度（時刻の粒度）を、時計の時刻精度よりも荒いものとすることが考えられている。例えば、時計の時刻精度がミリ秒単位（例えば、０１時２３分１７秒０５６ミリ秒など）であるのに対して、タイムスタンプの精度は秒単位や５００ミリ秒単位等とすることが考えられる。
【００６３】
仮に、タイムスタンプの精度を秒単位とした場合、更にこれに応じてミリ秒のデータ値は切り捨てるものとした場合、仮に上記計測データα、βにおける上記”ひげ”部分の時刻が、一方が例えば、０１時２３分１７秒１０６ミリ秒、他方が０１時２３分１７秒３４３ミリ秒であったとすると、両方ともタイムスタンプ時刻は例えば０１時２３分１７秒等となる。よって、タイムスタンプ上は同時刻のデータとして扱われるので、例えば図１５（ｃ）に示すような合成データγ”が得られることになる。これは、正しい合成データが得られたものと見做してよく、上記”ひげ”も正常に検出できることになる。
【００６４】
図１５（ｃ）では、図示のＴ１の範囲内の計測データに対してはタイムスタンプＴ１が付与され、図示のＴ２の範囲内の計測データに対してはタイムスタンプＴ２が付与される。よって、計測データα、βにおける図示のＴ１の範囲内の計測データは、同一タイミングのデータであると見做され、合成されるので、これらの合成データは、図１５（ｃ）に示す合成データγ”のようになる。つまり、ほぼ正常な合成が行われ、上記”ひげ”が正常に検出できることになる。Ｔ２についても同様である。但し、勿論、この方法では、タイムスタンプの時刻の精度は、実際の時計の時刻の精度より荒くなる（悪くなる）のであるから、図１５（ｃ）に示す合成データγ”は、図１３（ｂ）に示す合成データγと完全に同じになるわけではない。しかしながら、少なくとも図１５（ｂ）に示す合成データγ’に比べれば、正しい合成データが得られることになる。
【００６５】
例えばこの様にして上記問題を解消することが考えられるが、例えばタイムスタンプの精度を上記のような秒単位とした場合には、タイムスタンプの精度が荒くなり過ぎると見做せる場合もあり得る。つまり、本来は同一タイミングと見做すべきではないデータ値が、同一タイミングと見做されて、合成されてしまう場合もあり得る。例えば、図１５（ａ）に示す計測データα、βにおける４つの“ひげ”が全て同一タイミングと見做されるようなタイムスタンプ精度であった場合、その合成データには、これら４つの“ひげ”が全て合成されて成る、非常に電力ピーク値が大きい１つの“ひげ”が含まれることになる。
【００６６】
この為、この様な合成データを参考にしてシステム／設備設計を行う開発者等は、例えば、この様な高い電力ピーク値に耐えられるように設備を設計することになる可能性もあり、高価な設備となってしまい、コスト高を招くことになる。
【００６７】
一方で、上記の例に対してタイムスタンプの精度を例えば１００ミリ秒にすると、タイムスタンプ時刻は、それぞれ、０１時２３分１７．１秒、０１時２３分１７．３秒となり、両者は異なる時刻のデータとして扱われることになる。つまり、上記”ひげ”（電力ピーク値）が正常に検出できないことになる。
【００６８】
上記のように、タイムスタンプの精度が、荒すぎても細かすぎても、問題が生じることになり、適切なタイムスタンプの精度とすることが望ましい。しかしながら、適切なタイムスタンプの精度は、状況によって変わるものであり、予め固定的に設定できるようなものではない。
【００６９】
これは、上記のような電力系統監視システムの例に限らず、例えば図８〜図１２で説明したようなプラント監視制御システムについても同様である。あるいは、これらの例に限らず、複数の装置で各々自装置内の時計の時刻に基づいてタイムスタンプ付きデータを生成等するシステム（タイムスタンプ付データ管理システムと呼ぶものとする）において、何等かの理由で時計の精度よりも荒い精度のタイムスタンプを生成・付与する必要がある場合にも、上記のように適切なタイムスタンプの精度とすることに係わる課題がある。
【００７０】
ここで、例えばプラント監視制御システム等におけるリアルタイムデータのタイムスタンプの信頼性は、下記のように定義することもできる。
（タイムスタンプの信頼性定義１）；  リアルタイムデータが発生・更新された実時間と、リアルタイムデータに付与されているタイムスタンプとの差異が小さいほど、タイムスタンプの信頼性が高い。
（タイムスタンプの信頼性定義２）；  時系列に連続するリアルタイムデータに付与されるタイムスタンプの精度（時刻の粒度）が、「タイムスタンプの信頼性定義1」おける実時間との差異よりも大きい場合は、タイムスタンプの保証性は高いが、小さい場合は保証性が低い。尚、保証性とは、例えば複数の装置でほぼ同一タイミングで発生したリアルタイムデータは、タイムスタンプに基づいて同一タイミングであると見做されるようにすることである。例えば上記の例においてタイムスタンプ精度を秒単位とする場合には、保証性が高いことになる。
【００７１】
例えばプラント監視制御システム等におけるリアルタイムデータに係わるタイムスタンプは、従来では個々の装置の内部時計を使用して生成しているため、上述したように同一タイミングで発生・更新されたデータでも同一タイムスタンプにはならない場合が多い。この問題は、上記の通り、定期的に時計の時刻補正を行う場合でも解消されない。
【００７２】
しかしながら、上述したように、タイムスタンプは必ずしも正確な時間を示す必要はなく、タイムスタンプの精度を荒くすることで問題が解消する場合もあり得る。但し、上記の通り、適切なタイムスタンプ精度を設定することに関しては課題がある。
【００７３】
あるいは、上記「装置２００Ａと装置２００Ｂとで同時にデータ更新があった場合には、装置２００Ａの更新データの方を残したい、等という要望」を満たす為には、まず、同一タイミングで発生したデータには同一タイムスタンプが付与されるようにすることが必要と考えられる。そのうえで、タイムスタンプに基づいて同一タイミングであると判定された場合に、何等かの方法より装置２００Ａのデータを優先させることが考えられる。
【００７４】
何れにしても、これらは一例を説明しているものであり、基本的には、複数の装置で各々、時系列的に変化し得る様々なデータ（リアルタイムデータ）を取得／生成等すると共に自装置の内部時計に基づいてタイムスタンプを生成するシステムにおいて、これら各データの相対的な時系列関係（任意のデータ同士の時間的な前後関係が、前か後か同一タイミングか）を、適切に判定できるようにすることが望まれる。そして、その為に、上記のように適切なタイムスタンプ精度が設定されることが望まれている。尚、このようなタイムスタンプは、「システムとして“有意義な”タイムスタンプである」あるいは「システムで扱うリアルタイムデータの時刻精度において有意義なタイムスタンプである」等と言うこともできる。
【００７５】
例えば、同一タイミングで発生したデータには同一タイムスタンプが付与されるようにすることが必要であるが、これを実現するだけであれば、上記のようにタイムスタンプの精度を荒くすればよい（例えば、秒単位とすればよい）。しかしながら、この場合、上記信頼性定義１に係わる信頼性が、低くなる。
【００７６】
本発明の課題は、複数の装置で各々自装置内の時計の時刻に基づいてタイムスタンプ付きデータを生成等するシステムにおいて、タイムスタンプの精度を、そのときの状況に応じて適宜適切な値に設定することができ、以って各データの相対的な時系列関係を正しく判定できるようにするタイムスタンプ付データ管理システム等を提供することである。
【課題を解決するための手段】
【００７７】
本発明のタイムスタンプ付データ管理システムは、複数の装置で各々自装置内の時計の時刻に基づいてタイムスタンプ付きデータを生成等するシステムであって、前記各装置は、自装置の時計と、各他の装置の時計との時差を、該各他の装置との通信に基づいて算出して、該各時差に基づいてシステムとしてのタイムスタンプ精度を求めるタイムスタンプ精度算出手段と、任意のデータに係わるタイムスタンプを生成する際に、そのときの前記自装置の時計の時刻から前記タイムスタンプ精度に応じたタイムスタンプを生成して、該データに該生成したタイムスタンプを付与するタイムスタンプ生成・付与手段とを有する。
【発明の効果】
【００７８】
本発明のタイムスタンプ付データ管理システム等によれば、複数の装置で各々自装置内の時計の時刻に基づいてタイムスタンプ付きデータを生成等するシステムにおいて、タイムスタンプの精度を、そのときの状況に応じて適宜適切な値に設定することができ、以って各データの相対的な時系列関係を正しく判定できる。
【図面の簡単な説明】
【００７９】
【図１】本例のプラント監視制御システムの構成例である。
【図２】図１のタイムスタンプ精度算定処理部の詳細構成図である。
【図３】タイムスタンプ精度算定処理部の処理シーケンス例を示した図である。
【図４】決定されたタイムスタンプ精度等の例に応じた動作イメージを示す図である。
【図５】決定されたタイムスタンプ精度に応じたタイムスタンプの正規化処理例等を示す図である。
【図６】受信側の処理動作例を示す図である。
【図７】図１のタイムスタンプ精度算定処理部の詳細構成図（他の例）である。
【図８】既存のプラント監視制御システムの一例を示す図である。
【図９】図８のプラント監視制御システムの各装置間のデータの送受信動作例等（その１）である。
【図１０】（ａ）、（ｂ）は、図９に関するデータ更新に係わる動作例である。
【図１１】図８のプラント監視制御システムの各装置間のデータの送受信動作例等（その２）である。
【図１２】（ａ）、（ｂ）は、図１１に関するデータ更新に係わる動作例である。
【図１３】（ａ）は計測データ、（ｂ）はこれらの合成データの一例（その１）である。
【図１４】（ａ）は補正しない場合の時計の時刻ズレ、（ｂ）は補正する場合の時計の時刻ズレの一例を示す図である。
【図１５】（ａ）は計測データ、（ｂ）はこれらの合成データの一例（その２）である。
【発明を実施するための形態】
【００８０】
以下、図面を参照して、本発明の実施の形態について説明する。
ここで、本手法は、複数の装置で各々自装置内の時計の時刻に基づいてタイムスタンプ付きデータを生成等するシステムに関する。この様なシステムを、上記のようにタイムスタンプ付データ管理システムと呼ぶものとする。そして、上記のように、この様なシステムの一例として上記プラント監視制御システムがあるが、この例に限らない。但し、ここでは、上記図８に示した例のような構成のプラント監視制御システムを例にして説明する。また、この例は、上記の通り、タイムスタンプ付きデータは、時系列的に変化し得る様々なデータ（リアルタイムデータ；各種測定値や何等かのカウント値など）に対して、タイムスタンプを付与したものであるが、この例に限らない。また、この例では、上記の通り、メモリの所定の記憶領域には、各データ種別毎に最新データのみが格納されるようにし、その為に各データの相対的な時系列関係（時間的な前後関係；相対的な新旧関係）を判定するものであるが、この例に限らない。但し、以下の説明では、基本的に、この様な一例に応じて説明するものとする。
【００８１】
図１は、本例のプラント監視制御システムの構成例である。
尚、図１は、一例として、各装置毎に共有ローカルデータ領域を保有する複数の装置間で、その共有ローカルデータ領域に格納される時系列に変化するリアルタイムデータを相互に更新、参照、共有するシステムを示すが、この例に限らない。例えば、共有ローカルデータ領域は、必ずしも必要ないものである。本手法は、タイムスタンプによって時系列データを管理するシステムに関するものと言える。
【００８２】
図１に示す構成例では、複数の装置１０が伝送路１に接続しており、伝送路１を介して相互にデータ送受信できる構成となっている。各装置１０は、例えばコンピュータ装置であり、不図示のＣＰＵ、メモリ等を備えている。そして、メモリには予め所定のアプリケーションプログラムが記憶されている。ＣＰＵが、アプリケーションプログラムを実行することで、以下に説明する装置１０の各種処理機能が実現される。例えば、以下に説明するタイムスタンプ精度算定処理部１３、タイムスタンプ正規化処理部１４、データ情報送受信処理部１５、アプリケーション処理部１６、定刻通知処理部２１、定刻通知受信処理部２２、精度算定処理部２３等の各種処理機能が実現される。あるいは、後述するデータ合成部等も、ＣＰＵが、アプリケーションプログラムを実行することで実現される。
【００８３】
各装置１０は、例えば上記メモリ内に共通データローカル領域１１を有している。この共通データローカル領域１１自体は、上記従来の共通データローカル領域２０１と同じであってもよく、複数の装置１０間で共有するリアルタイムデータを格納する記憶領域である。共通データローカル領域１１内は、特に図示しないが、上記「データ情報１」、「データ情報２」等の各データ種別毎のデータ格納領域が、予め決められている。
【００８４】
また、各装置１０は、アプリケーション処理部１６、内部時計１２を有しており、これらは上記従来の機能・構成と見做しても構わない。そして、各装置１０は、更に図示のタイムスタンプ精度算定処理部１３、タイムスタンプ正規化処理部１４、データ情報送受信処理部１５等を有している。これらについては後に説明する。
【００８５】
尚、上記データ種別とは、例えば従来で説明したように例えば何等かの回数／カウント値や、あるいは電圧値、電流値、温度、湿度、回転数等の各種計測データ等であり、更に測定場所等が加わる場合もある。但し、これらの例に限らない。基本的には、アプリケーション処理に伴って生成されるデータや、アプリケーション処理で用いるデータ等であるが、この例に限らない。
【００８６】
また、本例では、上記各データ種別毎の各データ格納領域（共通データローカル領域１１）には、そのデータ種別に係わる最新データが格納されるように制御されるものとするが、この例に限らない。すなわち、上記の通り、本手法に係わる各種データの格納領域は上記「共通データローカル領域１１」のような共通データ（共有データ）の格納領域に限るものではなく、例えば各種データ種別毎の時系列データ等が格納される記憶領域等であっても構わない。つまり、各データ種別毎に常に最新データと見做されるデータのみが格納される（既存データに上書きされる）例に限るものではなく、各データ種別毎にデータが蓄積される例であっても構わない。
【００８７】
但し、何れの場合でも、各データにはタイムスタンプが付加される。そして、タイムスタンプに基づいて、各データの相対的な時系列関係（時間的前後関係）を判定し、それによって最新データであるか否かを判定したり、時系列データとしての整合性を確保する（時間的に正しい順序に整列させる等）。時系列データに関しては、上記図１３〜図１５で説明したように、例えば、同一タイミングで発生したデータには、同一時刻のタイムスタンプが付与されるようにしないと、正しい合成データが得られないことになる。
【００８８】
ここで、タイムスタンプは、各装置１０毎に、その内部時計１２の現在時刻に基づいて生成される。尚、内部時計１２自体は、上記従来の内部時計２０２と同じであってよい。
上述したように、各内部時計１２の時刻は、たとえ定期的に時刻補正を行ったとしても、殆ど常に多少は狂っているものと見做してよい。この為、内部時計１２の時刻をそのままタイムスタンプ時刻とすると、複数の装置１０で同一タイミングで発生したデータには、相互に異なる時刻のタイムスタンプが付与される可能性が高いことになる。
【００８９】
本手法では、複数の装置１０で上記タイムスタンプ付きデータが生成されるシステムにおいて、各装置１０の各内部時計１２の時刻が上記のように相互に異なっていても、各データの相対的な時系列関係をタイムスタンプに基づいて正しく判定できるようにする。その為に、上述したタイムスタンプ精度を、自動的に適切なものに設定できるようにする。これによって、例えば、各装置１０で正しく最新データを共有できるようになる。あるいは例えば、同一タイミングで発生したデータには、同一のタイムスタンプ時刻が付与されるようにでき、以って例えば上記正しい合成データが得られるようになる。
【００９０】
この様な適切なタイムスタンプ精度を自動的に決定する処理は、図示のタイムスタンプ精度算定処理部１３が実行する。
タイムスタンプ精度算定処理部１３は、自装置の内部時計１２と各他の装置１０の内部時計１２と差異（時差）に基づいて、タイムスタンプ精度を決定する。これは、そのときの状況に応じた適切なタイムスタンプ精度を決定できるものと言える。
【００９１】
タイムスタンプ精度算定処理部１３は、例えば、上記自装置の内部時計１２と各他の装置１０の内部時計１２と差異（時差）に基づいて、システム全体としての最大の時差を求める。そして、この最大時差に基づいて、タイムスタンプ精度を決定する。これは、例えば、この最大時差と、予め設定されているタイムスタンプ精度の候補群とに基づいて、タイムスタンプ精度を決定する。これは、例えば、各候補のなかで最大時差に最も近い候補を、タイムスタンプ精度に決定するが、更に、最大時差よりも大きいことを条件に加えてもよい。詳しくは後述する。
【００９２】
また、タイムスタンプ精度算定処理部１３は、上記決定したタイムスタンプ精度を、他の各装置１０に通知するようにしてもよい。これによって、システム上の全ての装置１０において同じタイムスタンプ精度を用いてタイムスタンプ生成が行われることになる。但し、この通知は必ずしも必要ないものと考えてもよい。つまり、本手法によれば、各装置１０で各々のタイムスタンプ精度算定処理部１３がそれぞれタイムスタンプ精度の決定処理を行っても、理屈上は、全ての装置１０で同じタイムスタンプ精度に決定されるはずであるからである。これは、「システム上の最大時差」は、どの装置で求めても同じとなるはずであるからである。但し、実際には、通信状況によっては、通信時間に多少の違いが生じる可能性はあり、これより各装置１０で決定したタイムスタンプ精度が、相互に異なるものとなる可能性はある。これより、例えば、予め決められた装置１０のみが、そのタイムスタンプ精度算定処理部１３によってタイムスタンプ精度を決定して、これを他の装置１０へ通知して使用させるようにしてもよい。
【００９３】
タイムスタンプ正規化処理部１４は、例えば任意のデータ種別に係わる任意の新データが生成／取得される毎に（更新データが得られる毎に）、そのときの内部時計１２の現在時刻に基づいてタイムスタンプを生成する。但し、内部時計１２の現在時刻をそのままタイムスタンプ時刻とするのではなく、上記タイムスタンプ精度算定処理部１３によって決定されたタイムスタンプ精度に応じて、内部時計１２の現在時刻に対する正規化処理を行うことで、タイムスタンプ時刻を求めることで、タイムスタンプを生成する。
【００９４】
例えば、タイムスタンプ精度が１００ミリ秒である場合には、内部時計１２の現在時刻は正規化処理によって１００ミリ秒単位の時刻に変換されて、これがタイムスタンプ時刻となる。例えば、内部時計１２の現在時刻が“01時02分34秒214ミリ秒”であった場合には、正規化処理によってタイムスタンプ時刻＝“01時02分34秒200ミリ秒”（“01時02分34.2秒）等となる。詳しくは後述する。
【００９５】
タイムスタンプ正規化処理部１４は、例えば、任意のデータに係わるタイムスタンプを生成する際に、そのときの自装置の内部時計１２の時刻から、上記タイムスタンプ精度算定処理部１３によって決定されたタイムスタンプ精度に応じたタイムスタンプを生成する。そして、このデータに、生成したタイムスタンプを付与する。尚、これより、タイムスタンプ正規化処理部１４は、タイムスタンプ生成・付与部と呼んでもよいものとする。
【００９６】
アプリケーション処理部１６は、基本的には上記従来と略同様であってよい。すなわち、アプリケーション処理部１６は、上記従来のアプリケーション処理を実行するものであってよく、任意の処理を実行し、それに伴って共通データローカル領域１１の任意のデータ種別に係わる更新データの生成等を行って、これを基本的には共通データローカル領域１１に上書き格納する。但し、その際、上記タイムスタンプ正規化処理部１４が、例えば上記のようにタイムスタンプを生成して、これを更新データに付加する。
【００９７】
また、データ情報送受信処理部１５は、その基本的な動作は、上記従来の送信処理／受信処理と略同様の処理を実行するものと見做してよい。なお、送信周期は、後述する本手法により適宜自動的に決定されたものであってもよい。また、受信処理の際に後述する優先制御判定処理を行う形態もあってよい。
【００９８】
データ情報送受信処理部１５は、例えば上記共通データローカル領域１１の任意のデータ種別のデータ更新がある毎に、この更新データ（タイムスタンプ付き）を他の全ての装置１０へ送信する。尚、送信周期は、後述する本手法により適宜自動的に決定されたものであってもよい。
【００９９】
また、データ情報送受信処理部１５は、任意の他の装置１０からその更新データ（タイムスタンプ付き）が送信されてきた場合、これを受信して、共通データローカル領域１１に上書き格納するか否かを判定する。この判定には、タイムスタンプを用いる。あるいは、場合によっては更に後述する優先度情報を用いる。そして、上書き格納すると判定した場合には、この受信データを共通データローカル領域１１に上書き格納する。
【０１００】
上記データ情報送受信処理部１５についても、詳しくは後述する。
以下、上記各種処理機能部について、更に詳細に説明する。
図２は、タイムスタンプ精度算定処理部１３の詳細構成図である。
【０１０１】
図３は、タイムスタンプ精度算定処理部１３の処理シーケンスを、装置１０Ａを主体として、具体的にその動作を示した図である。
以下、図２、図３を参照してタイムスタンプ精度算定処理部１３について説明する。
【０１０２】
タイムスタンプ精度算定処理部１３は、例えば以下に説明するタイムスタンプ精度の決定処理を、例えば定期的に行う。これによって、そのときの状況に応じた適切なタイムスタンプ精度を動的に決定することができる。
【０１０３】
タイムスタンプ精度算定処理部１３は、例えば図２に示す定刻通知処理部２１、定刻通知受信処理部２２、精度算定処理部２３、タイムスタンプ精度テーブル記憶部２４等を有する。これら各種処理機能部について、以下、まず、概略的に説明する。
【０１０４】
定刻通知処理部２１は、自装置の内部時計１２の時刻が予め登録された定刻になると、所定の定刻通知をシステム内の各他の装置１０に通知する。その後、この定刻通知に対する他の装置１０からの応答（定刻通知応答）を受信することで、定刻通知の送信から応答受信までの時間差により、自装置と他の各装置１０との間の伝送遅延時間を算出する。定刻通知のフォーマットは、何でも良いが、例えば自装置の識別ＩＤと上記定刻等の情報が含まれる。
【０１０５】
尚、上記定刻は、上記定刻通知の送信時刻の一例と見做しても良い。換言すれば、上記定刻通知に限らず、その送信時刻を含むパケットを通知するものであればよいと見做すこともできる。
【０１０６】
定刻通知受信処理部２２は、上記伝送遅延時間を既に算出済みの状態で任意の他の装置からの上記定刻通知を受信すると、この受信時刻と、上記送信側の定刻と、上記伝送遅延時間とに基づいて、この定刻通知の送信元の装置１０の内部時計１２と自装置の内部時計１２との時差を算出する。これは、受信時刻と定刻との差を求め、この差から伝送遅延時間を差し引くことで、上記内部時計の時差を算出する。つまり、
時差＝（受信時刻−定刻）−伝送遅延時間
である。
【０１０７】
仮に両装置の内部時計１２が完全に正確であるならば、受信時刻＝定刻＋伝送遅延時間となるはずであるので、上記時差は‘０’となるはずである。
尚、定刻通知受信処理部２２は、上記任意の他の装置１０からの上記定刻通知を受信したら、直ちに上記定刻通知応答を送信元へ返信する処理も行う。
【０１０８】
定刻通知受信処理部２２は、システム上の他の全ての装置１０に関して、上記自装置との時差の算出を行ったら、これら時差に基づいて「システム上の最大時差」を算出する。これは、上記各時差の中で最大の時差と最小の時差とを抽出して、これらの差分（最大の時差−最小の時差）を上記「システム上の最大時差」とする。例えば、システム全体で装置１０が５台あるものとし、自装置と各他の装置１０との時差が、＋５０、＋８０、−１００、−２００であったならば、＋８０−（−２００）＝２８０が、上記「システム上の最大時差」となる。
【０１０９】
尚、上記「システム上の最大時差を」を算出する処理は、精度算定処理部２３が行うものとしてもよい。
尚、上記の例に限らず、例えばシステム上で自装置と同一のグループに属する他の全ての装置１０に関して、上記自装置との時差の算出を行って、これらに基づいて同グループ内での上記最大時差を求めるようにしてもよい。但し、この様なグループ内での最大時差も、上記「システム上の最大時差」の一例と扱うものとする。尚、例えば、グループ分けは予め開発者等が任意に行っており、各グループ毎にそのグループに属する装置１０の識別用ＩＤ等が、登録されているものとしてもよいが、この例に限らない。
【０１１０】
タイムスタンプ精度テーブル記憶部２４には、タイムスタンプ精度テーブル３０が記憶されている。タイムスタンプ精度テーブル３０には、予め、タイムスタンプ精度の候補が複数登録されている（図示のタイムスタンプ精度３１）。図示の例では、１０msec、５０msec、１００msec、５００msecの４つの候補が、登録されている。
【０１１１】
精度算定処理部２３は、上記複数の候補のなかから上記「システム上の最大時差」に応じたタイムスタンプ精度（システム・タイムスタンプ精度）を選択・決定する。例えば、上記各候補のなかで上記「システム上の最大時差」以上の候補を全て抽出し、抽出された候補のなかで最小の候補を、タイムスタンプ精度に決定する。また、上記の通り、精度算定処理部２３は、更に、上記「システム上の最大時差を」を算出する処理を行うものであってもよい。
【０１１２】
尚、上記のことから、例えば、「定刻通知処理部２１＋定刻通知受信処理部２２」は、例えば任意の他の装置１０との通信に基づいて自装置と該他の装置１０との伝送遅延時間を求め、該他の装置１０から送信される所定の通知の該他の装置１０における送信時刻と、自装置における該通知の受信時刻と、上記伝送遅延時間とに基づいて、自装置の内部時計１２と該他の装置１０の内部時計１２との時差を算出する時差算出機能を有するものと言うこともできる。
【０１１３】
また、精度算定処理部２３は、例えば、上記時差算出機能によって各他の装置１０との各時差を算出したら、これら各時差から「システム上の最大時差」を求め、この最大時差に基づいて上記複数の候補のなかからタイムスタンプ精度を決定するものと言うこともできる。
【０１１４】
あるいは、上記タイムスタンプ精度テーブル３０には、更に、上記各候補に対応するデータ更新周期３２も登録されており、上記タイムスタンプ精度に決定された候補に対応するデータ更新周期３２を、装置内の何等かのアプリケーション処理のデータ更新周期（データ参照処理周期）に設定するようにしてもよい。図示の例では、データ更新周期３２は、対応するタイムスタンプ精度３１の半分の値となっているが、これは一例に過ぎない。基本的に、データ更新周期３２は、対応するタイムスタンプ精度３１の値以下となっていれば、何でも良い。
【０１１５】
あるいは、上記タイムスタンプ精度に決定された候補に対応するデータ更新周期３２を、リアルタイムデータの他装置への送信処理の周期（送信周期）に設定するようにしてもよい。これについては後述する。
【０１１６】
また、上記図１に示す各種処理機能部は、例えば下記の機能を有するものと言うこともできる。
まず、上記タイムスタンプ正規化処理部１４は、アプリケーション処理から自装置内のローカルデータバッファ内のリアルタイムデータを更新する際に、自装置の内部時計１２から得た現在時刻（データ更新時刻）を、上記決定されたタイムスタンプ精度（時刻の粒度）に丸めて（タイムスタンプの正規化処理）、当該リアルタイムデータのタイムスタンプとしローカルデータバッファに格納する。ローカルデータバッファの一例が、上記共通データローカル領域１１である。
【０１１７】
また、上記データ情報送受信処理部１５の送信処理は、例えば一例としては、上記決定されたタイムスタンプ精度に対応するデータ更新周期３２を、送信周期に自動設定して、この送信周期で、ローカルデータバッファに格納されたリアルタイムデータとタイムスタンプを、各他の装置１０へ送信する。但し、リアルタイムデータが更新されている場合のみ、送信を行う。
【０１１８】
また、上記データ情報送受信処理部１５の受信処理は、任意の他の装置１０から送信される上記リアルタイムデータとタイムスタンプを受信すると、このタイムスタンプが自装置のローカルデータバッファに格納されたタイムスタンプと比較して新しい場合には、受信したリアルタイムデータとタイムスタンプをローカルデータバッファに格納する（上書きする）。
【０１１９】
また、上記データ情報送受信処理部１５の受信処理は、上記タイムスタンプの比較の結果、同一である場合には、予め設定されている優先順位に従って、上記受信データをローカルデータバッファに格納する（上書きする）か否かを判定するようにしてもよい。つまり、ローカルデータバッファの格納データを更新するか否かを判定する。優先順位は、例えばシステム内の全ての装置１０間の優先順位を示す情報であり、本例では「装置１０Ａ＞装置１０Ｂ＞装置１０Ｃ」等する。つまり、装置１０Ａが最も優先順位が高いものとする。また、この例の場合、リアルタイムデータには、タイムスタンプだけでなく、後述する優先度情報等も付与される。優先度情報とは、そのリアルタイムデータの生成元装置を示す識別ＩＤ等である。そして、例えば、上記受信データの優先度情報が“装置Ｂ”であり、ローカルデータバッファの既存データの優先度情報が“装置Ｃ”であった場合には、受信データの方が優先順位が高いことになるので、受信データをローカルデータバッファに格納する（上書きする）ものと判定することになる。一方、既存データの方が優先される場合には、受信データは破棄する等して更新は行わないようにする。
【０１２０】
以下、上記図２の各種処理機能部について更に詳細に説明する。
まず、定刻通知処理部２１は、自装置の内部時計１２の現在時刻が、予め決められた定刻（ここでは装置１０Ａに関しては01時00分00秒000ミリ秒とする）となる毎に、定刻通知を他の全ての装置１０（ここでは装置１０Ｂと装置１０Ｃ）へ送信する。尚、定刻通知は、例えば、ヘッダ部にパケット種別＝定刻通知があり、データ部に上記定刻（01時00分00秒000ミリ秒）が格納されたパケットであるが、この例に限らない。
【０１２１】
尚、上記定刻は開発者等が任意に決めてよいが、全ての装置１０において、自装置の定刻が予め登録されているものとする。尚、更に、他の装置１０の定刻も予め登録されている構成としてもよい。定刻は、後述する時計差異（時差）を求める際に用いられる。尚、全ての装置１０で相互に異なる定刻が設定されていてもよいし、全ての装置１０で同一の定刻が設定されていてもよいが、これらの例に限らない。
【０１２２】
各装置１０の定刻通知受信処理部２２は、上記定刻通知を受信する毎に、直ちにその送信元へ定刻通知応答を返信する。図示の例では、例えば、装置１０Ａからの定刻通知Ｎa-bを受信した装置１０Ｂは、直ちに定刻通知応答Ｒa-bを装置１０Ａに返信する。同様に、装置１０Ａからの定刻通知Ｎa-ｃを受信した装置１０Ｃは、直ちに定刻通知応答Ｒa-ｃを装置１０Ａに返信する。
【０１２３】
定刻通知処理部２１は、上記各定刻通知応答の受信時刻を記録する。これは、定刻通知応答受信時の自装置の内部時計１２の時刻である。上記の例では、上記定刻通知応答Ｒa-bの受信時刻と、上記定刻通知応答Ｒa-ｃの受信時刻を、それぞれ記録する。そして、自装置の上記定刻と、各受信時刻とに基づいて、自装置と他の各装置１０との伝送遅延時間を算出する。
【０１２４】
ここでは、仮に図３の図上上側に示すように、装置１０Ａは内部時計１２の時刻“01時00分00秒010ミリ秒”に定刻通知応答Ra-bを受信し、内部時計１２の時刻“01時00分00秒020ミリ秒”に定刻通知応答Ra-cを受信したものとする。
【０１２５】
この例では、まず、装置１０Ａ−装置１０Ｂ間での定刻通知送信から応答受信までに１０ミリ秒（１０msec）掛かったことになり、この１０ミリ秒は装置１０Ａ−装置１０Ｂ間の往復のパケット伝送時間と見做せる。よって、装置１０Ａ−装置１０Ｂ間の（片道）のパケット伝送時間（伝送遅延時間）は、半分の５ミリ秒と見做せる。
【０１２６】
同様にして、上記の例では、装置１０Ａ−装置１０Ｃ間での定刻通知送信から応答受信までに２０ミリ秒掛かったことになり、この２０ミリ秒は装置１０Ａ−装置１０Ｂ間の往復のパケット伝送時間と見做せる。よって、装置１０Ａ−装置１０Ｂ間の（片道）のパケット伝送時間（伝送遅延時間）は、半分の１０ミリ秒と見做せる。
【０１２７】
尚、既に述べたことから、装置１０Ａ〜１０Ｃは、何れも、内部時計１２の時刻は、正しい時刻ではない（多少は狂っている）可能性が高い。しかし、同じ内部時計１２の時刻を用いた送信時刻と受信時刻との差分によって上記伝送遅延時間を算出しているので、正しい伝送時間が求められることになる。
【０１２８】
上記のように、自装置と各他の装置１０との間の伝送遅延時間を求めて記憶しておき、その後、上記定刻通知受信処理部２２は、他の装置１０からの上記定刻通知を受信すると、伝送遅延時間等を用いて、当該他の装置１０（定刻通知の送信元装置）の内部時計１２と自装置の内部時計１２との時刻のズレ（時計差異；時差）を求める。
【０１２９】
すなわち、上記定刻通知の送信元装置の定刻と、送信元装置に係わる上記伝送遅延時間と、上記定刻通知の受信時刻とに基づいて、送信元装置の内部時計１２と自装置の内部時計１２との時刻のズレ（時計差異；時差）を求める。
【０１３０】
すなわち、以下の式によって時計差異（時差）を求める。
時計差異（時差）＝定刻通知の受信時刻−定刻−伝送遅延時間
上記時計差異の算出処理について、図３の図上下側に示す一例を用いて説明する。
【０１３１】
尚、図３の例では、伝送遅延時間は、既に述べた通りとなるものとする。
この例では、装置１０Ａの定刻通知受信処理部２２が、時計差異を求める場合を示す。また、この例では、装置１０Ｂ、装置１０Ｃの上記“定刻”は、両方とも“02時00分00秒000ミリ秒”であるものとする。この定刻は、例えば定刻通知に含まれていても良いが、この例に限らない。
【０１３２】
図示の例では、装置１０Ａは、まず、装置１０Ｂからの定刻通知Ｎb-a（02時00分00秒000ミリ秒）を、装置１０Ａの内部時計１２の時刻“01時59分59秒090ミリ秒”に受信している。つまり、この場合、明らかに、装置１０Ｂの内部時計１２は装置１０Ａの内部時計１２よりも進んでいることになる。
【０１３３】
この場合、上記のように伝送遅延時間は５ミリ秒であるので、上記時計差異の算出式により、時計差異（時差）＝
“01時59分59秒090ミリ秒”−“02時00分00秒000ミリ秒”−５ミリ秒
＝−１０ミリ秒−５ミリ秒
＝−１５ミリ秒となる。
【０１３４】
同様にして、装置１０Ｃからの定刻通知Ｎc-aは、装置１０Ａの内部時計１２の時刻“02時00分00秒040ミリ秒”に受信しており、装置１０Ｃとの伝送遅延時間は上記の通り１０ミリ秒であることから、上記時計差異の算出式により、時計差異（時差）＝３０ミリ秒が算出されることになる。
【０１３５】
以上のことから、装置１０Ａの内部時計１２を基準にすると、相対的に、装置１０Ｂの内部時計１２は１５ミリ秒進み、装置１０Ｃの内部時計１２は３０ミリ秒遅れていることが分かる。そして、これより、この例の場合、「システム全体としての最大の時計差異」（上記「システム上の最大時差」）として、結果的に、装置１０Ｂ−装置１０Ｃ間の時計差異（＝３０−（−１５）＝４５ミリ秒）が求められることになる。勿論、これは一例に過ぎない。
【０１３６】
精度算定処理部２３は、上記定刻通知受信処理部２２によって求められた上記「システム全体としての最大の時計差異」と、上記タイムスタンプ精度テーブル記憶部２４に予め記憶されているタイムスタンプ精度テーブル３０とに基づいて、上記タイムスタンプ正規化処理部１４で用いるタイムスタンプ精度を決定する。
【０１３７】
この決定方法は、例えば、タイムスタンプ精度テーブル３０に登録されている各タイムスタンプ精度３１（各候補）の中で、上記「システム全体としての最大の時計差異」より大きく、且つ、そのなかで最小の候補を、上記タイムスタンプ正規化処理部１４で用いるタイムスタンプ精度に決定する。
【０１３８】
図示の例では、タイムスタンプ精度テーブル３０に登録されている各タイムスタンプ精度３１（候補）は、１０msec、５０msec、１００msec、５００msecの４種類であり、これらの候補のなかで上記最大の時計差異＝４５ミリ秒より大きいのは５０msec、１００msec、５００msecの３つである。これらの中で最小のものは５０msecであるので、上記タイムスタンプ正規化処理部１４で用いるタイムスタンプ精度は、５０msecに決定されることになる。
【０１３９】
また、更に、タイムスタンプ精度テーブル３０に基づいてデータ送信周期も決定するようにしてもよい。すなわち、このテーブル３０には図示のように上記各タイムスタンプ精度３１に対応付けてデータ更新周期３２が登録されている。この中で上記決定したタイムスタンプ精度に対応するデータ更新周期３２を、上記データ送信周期（システム・データ更新周期）に決定する。上記の例では、データ送信周期＝２５msecに決定されることになる。上記データ情報送受信処理部１５は、このデータ送信周期に従って上記データ送信処理を行うものであり、一例について後に説明するものとする。
【０１４０】
図４に、上記のように決定されたタイムスタンプ精度（＝５０msec）とデータ送信周期（＝２５msec）に応じた動作イメージを示す。
但し、図４では優先度情報も用いて優先制御判定も行う例を示すが、この処理は必須ではない。この優先度に係わる処理は、複数の装置１０による同一データ種別に係わる更新データに、同一タイムスタンプが付与されていた場合に、何れの更新データによって更新を行うのかを判定する処理である。本例においては、上記の通り、装置１０Ａ→装置１０Ｂ→装置１０Ｃの順に優先順位が高いものとする（装置１０Ａが最優先）。
【０１４１】
図４において、装置１０Ａにおいては、例えば、そのアプリケーション処理部１６による任意の処理に伴って、共通データローカル領域１１内のデータ種別「データ情報Ｄ１」のデータ更新が行われるものとする。その際、上記タイムスタンプ正規化処理部１４によって、上記決定されたタイムスタンプ精度に応じたタイムスタンプが生成されて、このタイムスタンプが更新データに付与される。また、その際に「優先度情報」も付与するようにしてもよい。優先度情報は、例えば自装置（端末１０Ａ）の識別ＩＤ等である。換言すれば、上記更新データの生成元の装置１０の識別ＩＤ等である。
【０１４２】
そして、この様なタイムスタンプ付き（更に優先度情報付き）の更新データ（リアルタイムデータ値など）が、タイムスタンプ正規化処理部１４によって共通データローカル領域１１に格納されると共に、データ情報送受信処理部１５によって他の全ての装置１０Ｂ、１０Ｃへ送信される。但し、本例では、上記更新データの共通データローカル領域１１への格納に関しては、優先制御判定を行って、場合によっては格納しないようにする。この優先制御判定は、後述するデータ受信時の優先制御判定と略同様であってよく、ここでは説明しないものとする。
【０１４３】
尚、ここでは、データ情報送受信処理部１５は、送信処理に係わる図示のデータ情報送信処理部１５ａと、受信処理に係わる図示のデータ情報受信処理部１５ｂとから成るものとする。
【０１４４】
上記データ情報送信処理部１５ａは、上記決定されたデータ送信周期で、共通データローカル領域１１の格納データの更新の有無を判定して、更新有りの場合にはこのデータを他の全ての装置１０Ｂ、１０Ｃへ送信する。この送信データは、例えば上記のように、「更新データ（リアルタイムデータ値）＋タイムスタンプ＋優先度情報」等となるが、この例に限らない。尚、特に図示・説明しないが、上記従来のデータ識別子も含まれていてよい。
【０１４５】
上記各装置１０Ｂ、１０Ｃは、そのデータ情報受信処理部１５ｂによって上記送信データを受信すると、そのタイムスタンプや優先度情報に基づいて、この受信データを共通データローカル領域１１に上書き格納すべきか否か等を判定するが、これについてはここでは説明せず、受信側の処理については装置１０Ａについて以下に説明するものとする。
【０１４６】
ここで、図４に示す例では、装置１０Ａに対して、その共通データローカル領域１１の図示のデータ種別「データ情報Ｄ２」に係わる更新データが、装置１０Ｂと装置１０Ｃからそれぞれ送信されてきたものとする。つまり、装置１０Ａは、装置１０Ｂから送信される更新データＤ２ｂと、装置１０Ｃから送信される更新データＤ２ｃとを受信するものとする。これら２つのデータＤ２ｂ、Ｄ２ｃを受信する順番に係わらず、基本的にはそのタイムスタンプに基づいて、最終的にはより新しいデータが共通データローカル領域１１に格納された状態となるように制御される。
【０１４７】
但し、更新データＤ２ｂとＤ２ｃとでタイムスタンプが同一であった場合には、その上記優先度情報に基づいて判定する。すなわち、この例では、更新データＤ２ｂの優先度情報は“装置Ｂ”、更新データＤ２ｃの優先度情報は“装置Ｃ”であり、ここでは上記の通り優先順位は「装置１０Ａ＞装置１０Ｂ＞装置１０Ｃ」と設定されていることから、更新データＤ２ｂの方が優先すると判定され、更新データＤ２ｂが共通データローカル領域１１に格納される。
【０１４８】
尚、ここでは、更新データＤ２ｂとＤ２ｃは、何れも、共通データローカル領域１１の図示のデータ種別「データ情報Ｄ２」に係わる既存データよりも新しいものとして説明している。もし、既存データの方が新しい場合には、当然、上記更新データＤ２ｂを共通データローカル領域１１に格納する処理は行われず、既存データが格納された状態のままとなる。
【０１４９】
この様にして、タイムスタンプが同一の場合には、例えばシステム開発者が望む優先順位が高い装置１０のデータが、共通データローカル領域１１に格納されることになる。
図５に、上記のように決定されたタイムスタンプ精度（＝５０msec）に応じた上記タイムスタンプ正規化処理部１４の処理例、上記のように決定されたデータ送信周期（＝２５msec）に応じたデータ情報送受信処理部１５の送信処理例を示す。尚、本説明では上記優先度情報は省略するものとする。
【０１５０】
また、図５の例では、共通データローカル領域１１内のデータ種別「データ情報Ｄ１」に関して、アプリケーション処理によってタイミングt1,t2,t3,t4,t5でそれぞれ更新データが生成されたものとする。これら更新データは図示のＤ１（ｔ１）、Ｄ１（ｔ２）、Ｄ１（ｔ３）、Ｄ１（ｔ４）、Ｄ１（ｔ５）である。
【０１５１】
上記の通り、ここではタイムスタンプ精度は５０ミリ秒であるので、「タイムスタンプ正規化処理」において、５０ミリ秒単位にタイムスタンプを集約するために、本例では、000ミリ秒および050ミリ秒の時刻（正規化時刻）の±25ミリ秒（50ミリ秒÷2）の範囲を、集約する範囲（正規化範囲）と定めている。勿論、これは一例に過ぎない。
【０１５２】
例えば、図示のデータ情報D1(t1)は、時刻“01時59分59秒012ミリ秒”における更新データであるが、「タイムスタンプ正規化処理」において、この時刻“01時59分59秒012ミリ秒”は、正規化範囲「“01時59分58秒975ミリ秒”＜t≦“01時59分59秒025ミリ秒”」に含まれるため、正規化時刻（タイムスタンプ時刻）は“01時59分59秒000ミリ秒”となる。
【０１５３】
上記優先制御判定を行う場合には、このタイムスタンプ(01:59:59.000)が、共通データローカル領域１１内の上記「データ情報Ｄ１」の既存データのタイムスタンプよりも新しい場合に、上記更新データＤ１(t1)に上記タイムスタンプ(01:59:59.000)を付加して上記「データ情報Ｄ１」の格納領域に上書き格納する。尚、その際、更に「優先度情報」（装置Ａ）も付与して格納するようにしてもよい。
【０１５４】
尚、上記の例では既存の格納データのタイムスタンプは示されないが、上記更新データＤ１(t1)が図示のように格納されたものとし、次の更新データＤ１(t2)のタイムスタンプは図示のように(01:59:59.050)となることから、これは、この時点の既存の格納データである上記更新データＤ１(t1)のタイムスタンプ(01:59:59.000)よりも新しいことになる。よって、図示の通り、更新データＤ１(t2)がそのタイムスタンプ(01:59:59.050)と共に「データ情報Ｄ１」の格納領域に上書き格納されることになる。
【０１５５】
また、例えば更新データＤ１（ｔ３）の生成時の内部時計１２の時刻が、図示のように“01時59分59秒114ミリ秒”であったものとする。ここではタイムスタンプ精度は５０msecであるので、正規化範囲を５０msecとして正規化処理を行うことで、上記時刻“01時59分59秒114ミリ秒”からタイムスタンプ(01:59:59.100)が生成されることになる。そして、上記更新データＤ１（ｔ３）にタイムスタンプ(01:59:59.100)を付加して共通データローカル領域１１に格納することになる。更に、データ情報送受信処理部１５が、このタイムスタンプ付き更新データＤ１（ｔ３）を、他の各装置１０Ｂ，１０Ｃへ送信する。
【０１５６】
上記正規化処理は、どの様な方法で行ってよいが、上記の例ではタイムスタンプ精度は５０msecであるので、例えば、タイムスタンプのミリ秒の下２桁が‘００’または‘５０’となるようにする。つまり、050ミリ秒、100ミリ秒、150ミリ秒、200ミリ秒、250ミリ秒、・・・等となるようにする。そして、上記時刻のミリ秒の下２桁が例えば‘２６’〜‘７５’の範囲内である場合にはタイムスタンプのミリ秒の下２桁を‘５０’に決定する。上記時刻のミリ秒の下２桁が例えば‘７６’〜‘２５’の範囲内である場合にはタイムスタンプのミリ秒の下２桁を‘００’にすると共に３桁目を＋１インクリメントする。例えば、時刻が‘286’ミリ秒であった場合にはタイムスタンプは‘300’ミリ秒となる。
【０１５７】
また、上記図５の処理は、装置１０Ａで行われるものとすると、装置１０Ａの共通データローカル領域１１には、装置１０Ａで生成された更新データだけが格納されるのではなく、他の装置１０Ｂ、１０Ｃで生成された更新データが格納される場合もある。特にこの様な場合において、更新データと既存の格納データとでタイムスタンプが同一となる場合が起こり得る。タイムスタンプが同一である場合、優先順位に応じた判定を行う。つまり、更新データの方が既存の格納データよりも優先順位が高ければ更新データを上書き格納し、低ければ格納しない。ここでは上記の通り優先順位は「装置１０Ａ＞装置１０Ｂ＞装置１０Ｃ」と設定されている。尚、この処理については受信処理の際にも行うものであり、後に図６に示す例を用いて詳しく説明するものとする。
【０１５８】
何れにしても、上記のようにタイムスタンプを生成することで、例えば複数の装置１０で同じタイミングで発生したデータには、同一のタイムスタンプが付加される可能性が高くなる。つまり、例えば装置１０Ａと装置１０Ｂで同時に発生したが、装置１０Ａでは時刻“01時59分59秒236ミリ秒”、装置１０Ｂでは時刻“01時59分59秒271ミリ秒”に発生したと見做されるデータであっても、タイムスタンプは両方とも「01:59:59.250」となる。よって、タイムスタンプに基づく判定では、両データが同一タイミングで発生したものと見做されることになる。
【０１５９】
また、例えば、予めタイムスタンプ精度を固定的に設定する場合、時計差異（時差）が大きい場合も考慮してマージンを採って例えばタイムスタンプ精度を５００msecや１秒等に設定することが考えられる。タイムスタンプ精度が仮に１秒とした場合、上記の例では両データともタイムスタンプは「01:59:59」となる。しかしながら、この場合、タイムスタンプの時刻と実際の時刻（あるいは内部時計の時刻）との差が大きくなり、上述した信頼性が損なわれることになる。
【０１６０】
これに対して、上記本手法では、上記のように「システム上の最大時差」に基づいてタイムスタンプ精度を決定するので、状況に応じた適切なタイムスタンプ精度を決定することができる。すなわち、上記本手法により決定されるタイムスタンプ精度は、「システム上の最大時差」よりも大きいので、例えば複数の装置１０で同じタイミングに発生したデータには、同一のタイムスタンプが付加される可能性が高くなる。この条件に加えて更に出来るだけ小さい値となるようにタイムスタンプ精度を決定することで、タイムスタンプと実際の時刻との差は比較的小さくて済み、上述した信頼性が損なわれることはない。
【０１６１】
また、データ情報送受信処理部１５は、ここでは上記のように決定されたデータ送信周期（＝２５msec）に従って共通データローカル領域１１の格納データを、他の各装置１０Ｂ，１０Ｃへ送信する。但し、図５に示すように、データの更新が全く無い場合には、送信処理を行わない。データ更新の有無は、例えばデータ更新有無を示す不図示のフラグを設けておき、タイムスタンプ正規化処理部１４はデータ格納を行う毎にフラグＯＮし、データ情報送受信処理部１５はフラグＯＮである場合のみデータ送信を行うとともにフラグＯＦＦする。勿論、これは一例であり、この例に限らない。
【０１６２】
また、上記の通り必須ではないが優先制御判定処理も行うようにしてもよい。
すなわち、まず、予め各装置１０の優先順序が設定されている。これは、ユーザ等が任意に決めて設定しておく。ここでは、仮に「装置１０Ａ＞装置１０Ｂ＞装置１０Ｃ」であるものとする。つまり、装置１０Ａが最も優先順位が高いものとする。また、共通データローカル領域１１に任意のデータを格納する際には、上記タイムスタンプだけでなく、そのデータを生成した装置を示す識別用ＩＤ等も一緒に格納する。
【０１６３】
そして、新たな更新データに対して上記のようにタイムスタンプを生成・付与した後にこれを共通データローカル領域１１に格納する際に、既存の格納データのタイムスタンプと比較することで、既存データよりも新しい場合には新規更新データを上書き格納するが、既存データよりも古い場合には新規更新データは格納せずに例えば破棄する。そして、新規更新データと既存データのタイムスタンプ時刻が同一の場合には、上記優先順位に従って新規更新データを上書き格納するか否かを判定する。すなわち、新規更新データの生成元装置が、既存データの生成元装置よりも優先順位が高い場合には、新規更新データを上書き格納する。
【０１６４】
また、図６には、受信側の処理動作例を示す。
ここでは装置１０Ａの動作を示すものとし、図４で説明したように、データ種別「データ情報Ｄ２」に係わる更新データとして、装置１０Ｂから送信される更新データＤ２ｂと、装置１０Ｃから送信される更新データＤ２ｃとを受信するものとする。これら各更新データには上記優先度情報が付与されており、これよりＤ２ｂが装置１０Ｂの更新データであり、Ｄ２ｃが装置１０Ｃの更新データであると認識できるものとする。勿論、これらがデータ種別「データ情報Ｄ２」に係わる更新データであることも認識できる。
【０１６５】
上記各更新データＤ２ｂ、Ｄ２ｃは、更新の都度、そのときの内部時計１２の時刻に基づいて生成されたタイムスタンプが、図示のように付与されて送信されてくる。データ情報受信処理部１５ｂは、受信した更新データのタイムスタンプが、共通データローカル領域１１内の「データ情報Ｄ２」の格納領域の既存データのタイムスタンプよりも新しい場合に、この受信データを「データ情報Ｄ２」の格納領域に上書き格納する。一方、タイムスタンプが同一の場合には、優先順位に基づいて、既存データよりも優先順位が高い場合に、この受信データを「データ情報Ｄ２」の格納領域に上書き格納する。
【０１６６】
図示の例では、まず、装置１０Ｂからの送信データＤ２ｂ(01:59:59.000)を受信したとき、ここではこれは不図示の既存の格納データより新しいものとし、この受信データを自装置（装置１０Ａ）内の共通データローカル領域１１内の「データ情報Ｄ２」の格納領域に格納する。
【０１６７】
次に、装置１０Ｃからの送信データＤ２ｃ(01:59:59.050)を受信すると、これは現在の「データ情報Ｄ２」の格納領域の格納データ（Ｄ２ｂ(01:59:59.000)）と比較してタイムスタンプが新しいので、「データ情報Ｄ２」の格納領域に、受信データＤ２ｃ(01:59:59.050)に上書き格納する。つまり、「データ情報Ｄ２」の格納データを更新する。
【０１６８】
次に、装置１０Ｃからの送信データＤ２ｃ(01:59:59.100)を受信すると、これは現在の「データ情報Ｄ２」の格納領域の格納データ（Ｄ２ｃ(01:59:59.050)）と比較してタイムスタンプが新しいので、「データ情報Ｄ２」の格納領域にＤ２ｃ(01:59:59.100)を上書き格納する。つまり、「データ情報Ｄ２」の格納データを更新する。
【０１６９】
次に、装置１０Ｂからの送信データＤ２ｂ(01:59:59.100)を受信すると、これは現在の「データ情報Ｄ２」の格納領域の格納データ（Ｄ２ｃ(01:59:59.100)）と比較してタイムスタンプが同じであるので、「優先制御判定」を行う。上記設定例では、装置Ｂは装置Ｃよりも優先されるので、更新を行うものと判定し、「データ情報Ｄ２」の格納領域にＤ２ｂ(01:59:59.100)を上書き格納する。つまり、「データ情報Ｄ２」の格納データを更新する。
【０１７０】
次に、装置１０Ｂからの送信データＤ２ｂ(01:59:59.150)を受信すると、これは現在の「データ情報Ｄ２」の格納領域の格納データ（Ｄ２ｂ(01:59:59.100)）と比較してタイムスタンプが新しいので、「データ情報Ｄ２」の格納領域にＤ２ｂ(01:59:59.150)を上書き格納する。つまり、「データ情報Ｄ２」の格納データを更新する。
【０１７１】
次に、装置１０Ｃからの送信データＤ２ｃ(01:59:59.150)を受信すると、これは現在の「データ情報Ｄ２」の格納領域の格納データ（Ｄ２ｂ(01:59:59.150)）と比較してタイムスタンプが同じであるので、「優先制御判定」を行う。上記設定例では、装置Ｂは装置Ｃよりも優先されるので、更新は行わないものと判定する。よって、「データ情報Ｄ２」の格納領域の格納データは、Ｄ２ｂ(01:59:59.150)のままとなる。
【０１７２】
尚、アプリケーション処理部１６は、任意のタイミングで共通データローカル領域１１内の「データ情報Ｄ２」の格納領域にアクセスして、「データ情報Ｄ２」に係わるその時点の最新データを取得する。
【０１７３】
尚、既に述べたように、上記図１〜図６に示す例は、本手法を適用してシステムの一例に過ぎず、この様な例に限るものではなく、本手法は、複数の装置で各々自装置内の時計の時刻に基づいてタイムスタンプ付きデータを生成等するシステムに、適用されるものである。例えば上記図１３〜図１５で説明した様なデータを収集・蓄積して時系列データとするシステムに対しても、本手法は適用されるものである。
【０１７４】
すなわち、上記図１３〜図１５で説明したようなシステムを構成する複数の装置の場合、各装置が備える不図示の記憶部は、例えば随時生成されるタイムスタンプ付きデータを蓄積記憶するものである。つまり、この例では、記憶部は、最新データのみを格納するようなものではなく、従って、新たに生成した（あるいは他の装置から送信された）タイムスタンプ付きデータを、記憶部に上書き格納するか否かを判定するようなことは行わない。この例では、上記のようにタイムスタンプ付きデータを蓄積記憶することで、上記記憶部には、例えば各データ種別毎の時系列データが記憶されることになる。
【０１７５】
そして、上記図１３〜図１５で説明したように、例えば複数の時系列データを、それらのタイムスタンプの時刻に従って合成する合成処理を行うことで、合成データを生成する構成等があってよい。これに関して、特に、自装置の記憶部の時系列データと、他の装置の記憶部の時系列データとを合成する場合に、既に述べたように、適切な合成データが得られない可能性があった。
【０１７６】
尚、各装置に、この様な合成処理を行う不図示のデータ合成部があってもよいし、各装置の時系列データを収集する不図示のサーバ装置等に、データ合成部が備えられる構成であっても構わない。
【０１７７】
既に説明したように、複数の装置の内部時計は、相互に時刻のズレがある場合が多く、例えば内部時計の時刻をそのままタイムスタンプとして使用する場合には、例えば、複数の装置で同一タイミングで得られたデータであっても、異なる時刻のタイムスタンプが付与されることになり、合成データを正しく生成できないことになる。この様に複数の装置の内部時計同士に時差があっても、上記のように本手法では上記「システム上の最大時差」よりも大きい（荒い）タイムスタンプ精度に従ってタイムスタンプを生成するので、例えば複数の装置で同一タイミングで得られたデータには同一のタイムスタンプが付与される可能性が高くなる。よって、例えば正しい合成データが生成できる可能性が高くなる。
【０１７８】
尚、言うまでもないが、上記タイムスタンプ精度の複数の候補は、何れも、少なくとも内部時計１２の時刻精度よりも“荒い”（悪い）ものとなるように設定する。上記の例では、内部時計１２の時刻精度は、千分の１秒（１ミリ秒）単位であるのに対して、上記候補は最低でも百分の１秒（１０ミリ秒）単位であり、内部時計１２の時刻精度よりも“荒い”（悪い）ものとなっている。この様な候補のなかからタイムスタンプ精度を決定するのであるから、決定されるタイムスタンプ精度も、当然、内部時計１２の時刻精度よりも“荒い”（悪い）ものとなる。
【０１７９】
上述したように、本手法では、システム上での送受信処理に伴う実測データに基づいて上記「システム上の最大時差」を求めて、これに基づいてタイムスタンプ精度を動的に決定している。つまり、その時の装置構成等の実際の状況に応じた適切なタイムスタンプ精度を自動的に動的に決定できる。また、装置構成等の変化があった場合にも、この変化に対応した適切なタイムスタンプ精度を自動的に動的に決定できる。あるいは、各装置１０毎に、その内部時計の時刻精度（本当の時刻との差）は時間の経過と共に変化するものであり、以って上記「システム上の最大時差」も変化するものであるが、この様な変化にも対応した適切なタイムスタンプ精度を自動的に動的に決定できる。
【０１８０】
また、「データ情報送信処理」に係わるデータ配信周期を動的に決定することが可能になり、受信側装置においては配信されるデータ情報の配信頻度に合わせて処理負荷が変動するため、システム構成全体に動的に最適化されたデータ情報の配信が可能となる。
【０１８１】
以上説明したように本手法によれば、複数の装置で各々自装置内の時計の時刻に基づいてタイムスタンプ付きデータを生成等するシステムにおいて、タイムスタンプの精度を、そのときの状況に応じて適宜適切な値に設定することができ、以って各データの相対的な時系列関係を正しく判定できる。
【０１８２】
あるいは、上述した本手法によれば、複数の装置で構成されリアルタイムデータを取得・記憶するシステムであって、各リアルタイムデータにタイムスタンプを付与するシステムにおいて、システムとして有意義な精度のタイムスタンプを有したリアルタイムデータを、得ることができる。尚、システムとして有意義な精度のタイムスタンプとは、背景技術で説明したデータの連続性と整合性が、満たされるようにするタイムスタンプ精度を意味する。
【０１８３】
また、過度なリアルタイムデータの更新を抑制することが可能になり各装置の処理負荷を適正化することが可能になる。例えば、上記のように、共有データとしてのリアルタイムデータに関して、新たな更新データと、共有メモリ等に記憶されている既存データとの時系列的関係（新旧関係）を、タイムスタンプに基づいて正しく判定でき、以ってほぼ確実に最新データが共有メモリ等に記憶された状態となると共に、ほぼ確実に全ての装置おいて同じデータが最新データとして共有メモリ等に記憶された状態となる。尚、共有メモリの一例が上記共通データローカル領域１１である。
【０１８４】
本手法では、複数の装置で各々自装置内の時計の時刻に基づいてタイムスタンプ付きデータを生成等するシステムにおいて、装置間で定刻に相互に時刻情報の通信を行い、この通信結果に基づいて各装置間の伝送遅延と自装置と他の装置との時計差異（時差）を求める。そして、システム全体としての時計差異の最大値（システム上も最大時差）を求め、これに基づいて自動的にタイムスタンプ精度を決定する。決定したタイムスタンプ精度に基づいて各リアルタイムデータのタイムスタンプを生成（タイムスタンプ正規化）する。
【０１８５】
上記のことから、システムとして有意義な精度のタイムスタンプを有したリアルタイムデータを得ることができる。すなわち、例えば、各装置の内部時計の狂いによって、複数の装置で同時に生成／更新されたデータであっても、その生成／更新時刻は異なるものとなっても、タイムスタンプは同一となる可能性が高くなるようにできる。これによって、タイムスタンプに基づく判定によって、これらのデータは同一タイミングで生成／更新されたものと見做されるようにできる。これより、例えばこれら複数のデータの合成データを生成する必要がある場合でも、正しい合成データを生成可能となる。
【０１８６】
また、タイムスタンプ精度より短い更新周期によりリアルタイムデータの配信・等値化を行うことで、過度なリアルタイムデータの更新を抑制することが可能になり、各装置の処理負荷を適正化することが可能になる。
【０１８７】
ここで、図１のタイムスタンプ精度算定処理部１３の構成は、図２の例に限らない。以下、他の例について説明する。
図７に、図１のタイムスタンプ精度算定処理部１３の詳細構成図（他の例）を示す。
【０１８８】
尚、図７において、図２に示す構成と略同一のものについては、同一符号を付してあり、その説明は省略または簡略化するものとする。
これより、まず、図７の例においても、タイムスタンプ精度算定処理部１３は、上記図２の例と同様に上記定刻通知処理部２１、定刻通知受信処理部２２を有しており、これらについては説明を省略する。
【０１８９】
一方で、図７の例では、タイムスタンプ精度算定処理部１３は、上記タイムスタンプ精度テーブル記憶部２４（タイムスタンプ精度テーブル３０）は有していない。その代わりに、タイムスタンプ精度算出条件データ記憶部２５を有している。
【０１９０】
タイムスタンプ精度算出条件データ記憶部２５には、予め、図示のタイムスタンプ精度算出条件データ４０が記憶されている。タイムスタンプ精度算出条件データ４０は、図示のタイムスタンプ精度間隔４１、データ更新周期係数４２等を有する。
【０１９１】
また、図７の例では、タイムスタンプ精度算定処理部１３は、更に、精度算定処理部５０を有する。精度算定処理部５０は、上記精度算定処理部２３と同様に、例えば、上記時差算出機能によって各他の装置１０との各時差を算出したら、これら各時差から「システム上の最大時差」を求める処理機能を有する。精度算定処理部５０は、この「システム上の最大時差」と、上記タイムスタンプ精度算出条件データ４０に基づいて、上記タイムスタンプ精度（システム・タイムスタンプ精度）を算出する。この算出処理の一例を、以下、説明する。
【０１９２】
算出方法としては、例えば、
ｎ  ＝  (“システム上の最大時差÷タイムスタンプ精度間隔”の商) ＋ １
タイムスタンプ精度（システム・タイムスタンプ精度）
＝  タイムスタンプ精度間隔 × ｎ
等とするが、この例に限らない。
【０１９３】
尚、上記算出式におけるタイムスタンプ精度間隔は、タイムスタンプ精度算出条件データ４０のタイムスタンプ精度間隔４１の値を用いる。図７に示す例では、タイムスタンプ精度間隔４１＝‘５０’（msec）であるので、算出式は下記のようになる。
【０１９４】
ｎ  ＝  (“システム上の最大時差÷５０”の商) ＋ １
タイムスタンプ精度  ＝  ５０ × ｎ
上記算出方法によれば、タイムスタンプ精度と成り得る値は、タイムスタンプ精度間隔のｎ倍（つまり、整数倍）となる。よって、図７に示す例の場合、タイムスタンプ精度と成り得る値は、５０、１００、１５０、２００、２５０、・・・等となる。これは、基本的には、タイムスタンプ精度の候補が、５０、１００、１５０、２００、２５０、・・・であることと同義と見做してよいものである。
【０１９５】
そして、上記算出式によれば、これらの候補の中で、「システム上の最大時差」より大きく、且つ、そのなかで最小のものが、タイムスタンプ精度に決定されることになる。換言すれば、「システム上の最大時差」より候補の中で最も「システム上の最大時差」に近いものが、タイムスタンプ精度に決定される。
【０１９６】
仮に、「システム上の最大時差」＝‘１３５’であったならば、１３５÷５０の商は‘２’であるので、ｎ＝３となる。よって、タイムスタンプ精度＝５０×３＝１５０となる。
【０１９７】
また、図７の例において、タイムスタンプ精度算定処理部１３は、更に、上記算出したタイムスタンプ精度と、上記タイムスタンプ精度算出条件データ４０のデータ更新周期係数４２とを用いて、以下の算出式により上記システム・データ更新周期を算出するようにしてもよい。
【０１９８】
システム・データ更新周期＝タイムスタンプ精度×データ更新周期係数
データ更新周期係数４２は、タイムスタンプ精度に対する任意の係数であり、上記のように、システム・データ更新周期は、タイムスタンプ精度にデータ更新周期係数を掛け算した値になる。
【０１９９】
上述したように、図２の方式ではシステム・タイムスタンプ精度、システム・データ更新周期と成り得る値（複数の候補）を予め登録しておき選択するのに対して、図７の方式ではこれらを算出する為の算出式や所定値、係数などを予め登録しておき算出する方法を採っている。但し、「システム上の最大時差」に応じたシステム・タイムスタンプ精度、システム・データ更新周期を求める点では、図２と図７は同じである。
【０２００】
上記図７に係わる方式では、図２の方式に比べて、予め保持するデータ量が少なくて済む。また、上記図７に係わる方式では、図２の方式でのタイムスタンプ精度テーブル３０内に定義されたデータより大きい「システム上の最大時差」が発生した場合でも対応できる。つまり、図２の例では、「システム上の最大時差」が５００（ｍｓ）以上である場合には、対応出来ないことになる。また、上記図７に係わる方式では、システム全体の稼働状況に応じてタイムスタンプ精度の間隔を延ばしたりすることができ、より柔軟な対応が可能となる。
【符号の説明】
【０２０１】
１  伝送路
１０（１０Ａ，１０Ｂ，１０Ｃ）  装置
１１  共通データローカル領域
１２  内部時計
１３  タイムスタンプ精度算定処理部
１４  タイムスタンプ正規化処理部
１５  データ情報送受信処理部
１６  アプリケーション処理部
２１  定刻通知処理部
２２  定刻通知受信処理部
２３  精度算定処理部
２４  タイムスタンプ精度テーブル記憶部
２５  タイムスタンプ精度算出条件データ記憶部
３０  タイムスタンプ精度テーブル
３１  タイムスタンプ精度
３２  データ更新周期
４１  タイムスタンプ精度間隔
４２  データ更新周期係数
５０  精度算定処理部
【図１】
2015201194.tif 000003
【図２】
2015201194.tif 000004
【図３】
2015201194.tif 000005
【図４】
2015201194.tif 000006
【図５】
2015201194.tif 000007
【図６】
2015201194.tif 000008
【図７】
2015201194.tif 000009
【図８】
2015201194.tif 000010
【図９】
2015201194.tif 000011
【図１０】
2015201194.tif 000012
【図１１】
2015201194.tif 000013
【図１２】
2015201194.tif 000014
【図１３】
2015201194.tif 000015
【図１４】
2015201194.tif 000016
【図１５】
2015201194.tif 000017