図面 (/)

技術 タイムスタンプ付データ管理システム、その装置、プログラム

出願人 富士電機株式会社
発明者 武田義孝加藤茂
出願日 2015年4月1日 (4年11ヶ月経過) 出願番号 2015-075386
公開日 2015年11月12日 (4年4ヶ月経過) 公開番号 2015-201194
状態 特許登録済
技術分野 制御系の試験・監視
主要キーワード 正規化範囲 時刻ズレ データ時刻 電力ピーク値 精度テーブル 時間的前後関係 データ更新周期 データ更新時刻
関連する未来課題
重要な関連分野

この項目の情報は公開日時点(2015年11月12日)のものです。
また、この項目は機械的に抽出しているため、正しく解析できていない場合があります

図面 (16)

課題

プラント監視制御システム等におけるリアルタイムデータタイムスタンプの精度を、そのときの状況に応じて適宜適切な値に設定するタイムスタンプ付データ管理システムを提供する。

解決手段

装置10A,10B,10Cの定刻通知処理部21は、定刻に定刻通知を他の装置へ送信し、その定刻通知応答を受信することで、他の装置との伝送遅延時間を求める。定刻通知受信処理部22は、他の装置からの定刻通知の定刻と受信時間と、伝送遅延時間とに基づいて、自装置の内部時計と他の装置10の内部時計との時差を求める。精度算定処理部23は、これらの時差と、タイムスタンプ精度テーブル30とに基づいて、タイムスタンプ精度を決定する。

概要

背景

例えば、特許文献1に記載の従来技術が知られている。
特許文献1には、他局からファイル作成日時を受信すると(S20)、該当する自局ファイル作成日時と比較して(S22)、他局の方が新しい場合には、転送要求を送って(S23)、ファイル内容を送信させ(S12)、該当する共有ファイルの内容を、送信されたファイルに置き換える(S24)こと等が開示されている。

複数の装置でタイムスタンプ付きデータを生成・格納・管理するシステムとしては、例えば一例としてはプラント監視制御システム等がある。プラント監視制御システムでは、時系列的に変化し得る様々なデータ(リアルタイムデータ;各種測定値や何等かのカウント値など)を、複数の装置で各々取得/生成等している。この様なリアルタイムデータは、例えば相互に時系列的な前後関係(相対的に新しい/古いなど)が分かるようにする必要があり、各装置で各々自装置内の時計時刻に基づいてタイムスタンプを生成してリアルタイムデータに付与している。

この様なタイムスタンプ付きリアルタイムデータの扱い方は、様々であり、例えばそのままタイムスタンプ付きデータを累積記憶して時系列データとして、後に何等かの処理や解析などに利用する場合や、タイムスタンプに基づいて例えば記憶データが常に最新データとなるようにデータ更新する場合等ある。

例えば、取得/生成したデータが既存データより新しい場合のみ、取得/生成データによってデータ更新する。あるいは、例えば、蓄積したデータ群を、それらに付加されているタイムスタンプに基づいて、例えば古いものから順に整列させる。あるいは、タイムスタンプに基づいて、複数のデータ群を合成した合成データを作成する。

一般的に、例えばプラント監視制御システム等におけるリアルタイムデータには、データの連続性が要求される。つまり、例えば古いデータから順に連続する時系列データを得ること等が要求される。また、データ時刻整合性が要求される。データ時刻の整合性は、特に、複数の装置でそれぞれの時計に基づいてタイムスタンプが付与された複数の時系列データに関して、時系列データ相互の時間的な前後関係(相対的な新旧同一タイミングであること等)が、タイムスタンプに基づいて正しく判定できることを意味する。

タイムスタンプの利用方法は、他にも様々な方法があってよいが、何れにしても、タイムスタンプが正しいものであれば、何等問題はない。
しかしながら、後述するように、タイムスタンプ生成元となる装置内の時計の時刻は、たとえ定期的に時刻補正を行っても多少は狂っているものである。それでも、1つの装置(その1つの時計)だけである場合には、各タイムスタンプは同じように狂っていることになるので、上記のように相対的な新旧を判定するうえでは、特に問題はないことになる。

しかしながら、複数の装置でそれぞれ自己の時計の現在時刻タイムスタンプ時刻とする場合には、例えば上記新旧の判定結果が正しいとは限らないことになる。
例えば、プラント監視制御システムにおいて、複数の装置が伝送路を介して接続され、各装置が更新した共有ローカルデータ領域内のリアルタイムデータを相互に伝送路を介して等値化・共有するシステムがある。図8に、このようなプラント監視制御システムの一例を示す。

図8に示すシステムは、複数の装置200(200A、200B、・・・、200M)が、伝送路に接続されており、相互にデータ送受信可能な構成となっている。
各装置200は、コンピュータ等であり、例えばPLC等であり、特に図示しないがCPU、メモリ等を有しており、メモリに記憶されたプログラムをCPUが実行することで、図示のアプリケーション処理送信処理受信処理等の各種処理機能を実現する。

また、各装置200は、そのメモリ内共通データローカル領域201を有している。また、各装置200は、内部時計202を有している。
共通データローカル領域201には、基本的に全ての装置200で共有するデータが格納される。この為、(多少のタイムラグはあるが)基本的に全ての装置200の共通データローカル領域201の格納データが、同一となるように制御されている。これは、換言すれば、全ての装置200の共通データローカル領域201の図示のデータ情報1、データ情報2、・・・データ情報nが、全て、(多少のタイムラグはあるが)最新の情報となるようにしている。

例えば、装置200Aが、例えばそのアプリケーション処理に伴って自己の共通データローカル領域201の図示のデータ情報1を、最新データ(データ情報1aと記すものとする)に更新した場合、他の全ての装置200においてもデータ情報1を最新データ1aに更新させる為に、上記送信処理によって、データ情報1の最新データ1aを他の全ての装置200B、200Cに送信する。

しかしながら、このとき、例えば、装置200Bにおいても、自己の共通データローカル領域201のデータ情報1を、最新データ(データ情報1bと記すものとする)に更新したとする。この場合、最新データ1aと最新データ1bのどちらがより新しいデータであるのかを判断して、より新しいデータによって「データ情報1」の更新を行うことになる。その為に、従来では、データ情報1a、1bにタイムスタンプを付与し、タイムスタンプに基づいて、より新しいデータはどちらであるのかを判定していた。このタイムスタンプは、各装置200が自己の内部時計202の時刻に基づいて生成して付与する。

ここでは、上記データの受信側でタイムスタンプを付与する方式(従来方式1)と、データ送信側でタイムスタンプを付与する方式(従来方式2)について説明する。
まず、従来方式1について、図9、図10(a)、(b)を参照して説明する。

従来方式1では、図9に示すように、各装置200は、自己のアプリケーション処理実行に伴って自己の共通データローカル領域201内の任意のデータを更新した場合、当該更新データを他の全ての装置200へ伝送路を介して送信する。この送信データは、例えば「データ識別子+リアルタイムデータ値」により構成される。データ識別子は、更新対象のデータの種別等を示すものであり、例えば上記「データ情報1」を示す識別ID等である。リアルタイムデータ値は、各データ種別に係わるデータ値そのものであり、上記データ1aやデータ1b等である。これによって、この送信データを受信した各装置200では、データ識別子を参照することで、そのリアルタイムデータ値が例えば上記「データ情報1」に係わるデータ値であると認識できる。

尚、上記データ種別とは、例えば何等かのカウンタ値J、カウンタ値K、あるいは測定点pの電流値、測定点qの電流値、測定点pの電圧値、測定点qの電圧値等である。そして、例えばカウンタ値Jに関してアプリケーション処理によってその値が更新される毎に、当該更新後の値が上記共通データローカル領域201内の該当領域に上書き格納されることになる。この該当領域には、カウンタ値Jに関してそれまでの最新の値が既存データ値として格納されていることになる。アプリケーション処理では、この既存データ値を読み出して例えば+インクリメントした値を上記更新後の値(更新データ)として、共通データローカル領域201の該当領域に上書き記憶することになる。勿論、これは単なる具体例に過ぎない。

ここで、上記送信データを受信した他の装置200は、当該受信データに対してタイムスタンプを生成・付与する。これは、自己の内部時計202の現在時刻を当該受信データの受信時刻として、この受信時刻に基づいてタイムスタンプを生成して上記受信データに付与する。

尚、上記アプリケーション処理等に伴うデータ更新の際にも、そのときの時刻に基づいてタイムスタンプを生成して、これを当該自己が生成した更新データに付与する。
共通データローカル領域201に格納される各データは、基本的に全て上記のようにタイムスタンプが付与されたデータである。これより、上記受信データ又は自己が生成した更新データのタイムスランプと、例えば上記「データ情報1」に係わる既存データのタイムスタンプとを比較して、より新しい方が共通データローカル領域201に格納されるようにする。つまり、既存データの方が新しい場合には、現状のままとする(受信データ/更新データは例えば破棄する)。一方、受信データ/更新データの方が新しい場合には、受信データ/更新データを既存データに上書きする。勿論、逐一述べないが、これら受信データ/更新データは、上記タイムスタンプが付与された状態のまま共通データローカル領域201に格納する。

図10(a)には、上記データ種別「データ情報1」に関して、まず装置200Aにおいて上記更新データとして上記データ情報1aが生成され、その後、例えばある程度の時間後に、装置200Bにおいて上記更新データとして上記データ情報1bが生成された場合の、各装置の各共通データローカル領域201の更新動作例を示す。

また、図10(b)には、上記装置200Aのデータ情報1aの生成と上記装置200Bのデータ情報1bの生成とが、同時に行われた場合の、共通データローカル領域201の更新動作例を示す。

尚、ここでは更新データはアプリケーション処理等で生成される場合を想定して説明するが、この例に限らず、更新データは例えば何等かの計測データを取得したもの等である場合もある。

また、尚、何れの例の場合も、不図示の既存データは、データ情報1a、1bよりも古いデータであるものとする。また、図では、簡単の為、装置200A、200B、200Cの3台の装置があるものとする。

まず、図10(a)を参照して説明する。
この例の場合、まず装置200Aにおいて上記自己のアプリケーション処理に伴う更新データであるデータ情報1aが、共通データローカル領域201に格納される。尚、以下の説明では逐一述べないが、更新データには例えば共通データローカル領域201に格納する際の時刻に応じたタイムスタンプが生成・付与される。そして、装置200Aは、このデータ情報1aを他の全ての装置200B,200Cへ送信する。

各装置200B、200Cでは、それぞれ自己の内部時計202より、このデータ情報1aの受信時刻に応じたタイムスタンプを生成する。そして、このタイムスタンプに基づいて受信したデータ情報1aを自己の共通データローカル領域201に格納するか否かを判定する。上記のことからここでは格納することになるので、装置200B、200Cにおいて、その共通データローカル領域201の「データ情報1」は、上記データ情報1aに更新されることになる。

その後、今度は、装置200Bにおいて、上記自己のアプリケーション処理に伴う更新データであるデータ情報1bが生成され、この時刻に応じたタイムスタンプが生成・付与される。そして、共通データローカル領域201の「データ情報1」に係わる既存データ(このときは、上記データ情報1aになっている)のタイムスタンプと比較することで、より新しい方が共通データローカル領域201に格納されるようにする。これより、共通データローカル領域201に「データ情報1」に係わる新たな最新データとしてデータ情報1bが格納されることになる。

また、装置200Bは、上記データ情報1bを他の全ての装置200A、200Cへ送信する。これより、各装置200A、200Cでは、上記と同様、受信時刻に応じたタイムスタンプを生成して当該受信したデータ情報1bに付与して、既存データのタイムスタンプと比較することで、データ情報1bが既存データよりも新しいと判定することになるので、その共通データローカル領域201の「データ情報1」は、上記データ情報1bに更新されることになる。

この様にして、この例の場合、全ての装置200において、その共通データローカル領域201の「データ情報1」の最新データとしてデータ情報1bが格納された状態となり、これは正常な状態と言える。

一方、図10(b)に示す例の場合、上記の通りデータ更新自体はデータ情報1aとデータ情報1bとで同じタイミングであるが、受信データに係わるタイムスタンプは受信時刻を基準にして生成されるものである為、上記正常な状態とはならない。

すなわち、装置200Aは、上記のように自己のアプリケーション処理に伴う更新データであるデータ情報1aを、その共通データローカル領域201に格納した後、上記データ情報1bを受信する。これより、データ情報1bのタイムスタンプは、データ情報1aのタイムスタンプよりも新しいことになり、データ情報1bが上書き格納されることになる。

一方、装置200Bは、上記のように自己のアプリケーション処理に伴う更新データであるデータ情報1bを、その共通データローカル領域201に格納した後、上記データ情報1aを受信する。これより、データ情報1aのタイムスタンプは、データ情報1bのタイムスタンプよりも新しいことになり、データ情報1aが上書き格納されることになる。

この様に、装置200Aと、装置200Bとで、共通データローカル領域201の格納データが異なる状態と成り得る。
尚、ここでは装置200Cに関しては特に言及しないものとする。すなわち、装置200Cでの場合、装置200Aからのデータ情報1a、装置200Bからのデータ情報1bのどちらが最新データとなるかは不明である。より後に受信した情報が最新データとして扱われることになるが、伝送遅延によりどちらが後に受信されることになるのか不明だからである。

上記問題が生じる原因は、他の装置へ送信するデータに係わるタイムスタンプの生成を、受信側で受信時刻に基づいて行う為である。これより、以下に説明する従来方式2のように、タイムスタンプの生成を、送信側で送信時刻等に基づいて行う方法も提案されている。

以下、図11、図12を参照して、従来方式2について説明する。
図11に示すように、従来方式2の場合、各装置200は、自己のアプリケーション処理等に伴う任意の更新データがある場合、自己の内部時計202から得られた現在時刻等に基づいてタイムスタンプを生成して、これを当該更新データに付加する。このタイムスタンプ付きの更新データは、上記送信処理によって他の全ての装置200へ通知される。これより、送信データは、上記「データ識別子+リアルタイムデータ値」に、タイムスタンプが加わったものとする。すなわち、送信データ=「データ識別子+タイムスタンプ+リアルタイムデータ値」となる。

また、上記生成されたタイムスタンプ付き更新データは、自己の共通データローカル領域201の既存データより新しければ、既存データに上書き格納される。勿論、この新旧判定は、タイムスタンプによって行うことになる。

また、上記送信データを受信した各装置200は、受信したイムスタンプ付き更新データが、自己の共通データローカル領域201の既存データより新しければ、既存データに上書き格納される。勿論、この新旧判定は、タイムスタンプによって行うことになる。

上記処理は、図11に示す例では、例えば装置200Aは、自装置において生成したタイムスタンプ付きデータ情報1aを、自己の共通データローカル領域201に格納すると共に、他の全ての装置200B、200Cへ送信する。

また、装置200Bも、自装置において生成したタイムスタンプ付きデータ情報1bを、自己の共通データローカル領域201に格納すると共に、他の全ての装置200C、200Cへ送信する。

これより、装置200Aは、上記タイムスタンプ付きデータ情報1bを受信すると、そのタイムスタンプと、自己の共通データローカル領域201に格納している上記データ情報1aのタイムスタンプとに基づいて、どちらがより新しいか(最新データであるか)を判定する。図11では、データ情報1bの方が新しいと判定し、データ情報1bを共通データローカル領域201に上書き格納する。

一方、装置200Bは、上記タイムスタンプ付きデータ情報1aを受信すると、そのタイムスタンプと、自己の共通データローカル領域201に格納している上記データ情報1bのタイムスタンプとに基づいて、どちらがより新しいか(最新データであるか)を判定する。図11では、データ情報1bの方が新しいと判定し、現状のままとする。尚、これより、受信したデータ情報1aは、例えば破棄する。

また、装置200Cは、上記データ情報1bとデータ情報1aとを受信し、これらのタイムスタンプに基づいて結果的により新しい方が自己の共通データローカル領域201に格納された状態となる。

ここで、例えば図12(a)に示すように、まず装置200Aが上記データ情報1aを他の装置200B,200Cへ送信し、ある程度時間が経ってから装置200Bが上記データ情報1bを他の装置200A,200Cへ送信する場合を考える。

この例では、明らかに、データ情報1aに付加されるタイムスタンプは、データ情報1bに付加されるタイムスタンプよりも古いことになるので、最終的には全ての装置200A,200B,200Cにおいて、自己の共通データローカル領域201にはデータ情報1bが格納された状態となる。

一方、例えば図12(b)に示す例では、上記データ情報1a、1bが同一タイミングで生成され、以って同一タイミングでタイムスタンプが生成された場合を示す。この場合、理屈ではこれら2つのタイムスタンプ時刻は同一となるはずである。しかしながら、後に図14等で説明するように、全ての装置200においてその内部時計202は、たとえ定期的に時刻補正を行ったとしても、多少は狂っていることになる。これより、ここでは仮に、データ情報1aのタイムスタンプが、データ情報1bのタイムスタンプよりも古いものとして説明する。勿論、これは、上記時計の狂いに応じた僅かな時間分(例えば数百ミリ秒程度など)、古いものとなっているものである。

この例の場合、図12(b)に示すように、まず装置200Aでは、自己の共通データローカル領域201に上記タイムスタンプ付きデータ情報1aを格納している状態で上記タイムスタンプ付きデータ情報1bを受信することになる。そして、両者のタイムスタンプ時刻を比較することで、データ情報1bの方が新しいと判定し、データ情報1bをデータ情報1aに上書きする。つまり、データ情報1bが「データ情報1」の最新データとして共通データローカル領域201に格納されている状態となる。

一方、装置200Bでは、自己の共通データローカル領域201に上記タイムスタンプ付きデータ情報1bを格納している状態で上記タイムスタンプ付きデータ情報1aを受信することになる。そして、両者のタイムスタンプ時刻を比較することで、データ情報1bの方が新しいと判定する。これより、現状のままとする。つまり、データ情報1bが「データ情報1」の最新データとして共通データローカル領域201に格納されている状態のままとする。尚、受信したデータ情報1aは例えば破棄する。

また、装置200Cでは、この例ではまず上記タイムスタンプ付きデータ情報1bを受信するものとし、これを自己の共通データローカル領域201に格納する。この状態で後に上記タイムスタンプ付きデータ情報1aを受信することになり、よって上記装置200Bと同様の判定・動作となる。

この様に、全ての装置200において、最終的には、自己の共通データローカル領域201にデータ情報1bが格納された状態となる。つまり、上記図10(b)のような問題は解消されることになる。つまり、少なくとも全ての装置200において同じデータが格納された状態にすることはできる。しかしながら、上記の通り、本来は、上記データ情報1a、1bは同一タイミングで生成されたものである。

ここで、上述したように、内部時計202の時刻の装置間の差異時差)により、全く同一タイミングで更新された「データ情報」であっても異なるタイムスタンプが付与されることになる。これは、内部時計202が他装置より進んでいる装置200が送信する「データ情報」が、共通データローカル領域201に残る結果となる。つまり、上記の例では装置200Bの内部時計202が、装置200Aの内部時計202よりも進んでいることになり、装置200Aと装置200Bとで同時にデータ更新があった場合には、常に、装置200Bの更新データが、全ての装置200の共通データローカル領域201に残る結果となる。

しかしながら、現実には、例えばシステム設計者立場から考えて、例えば装置200Aと装置200Bとで同時にデータ更新があった場合には、装置200Aの更新データの方を残したい、等という要望がある場合が起こり得る。

概要

プラント監視制御システム等におけるリアルタイムデータのタイムスタンプの精度を、そのときの状況に応じて適宜適切な値に設定するタイムスタンプ付データ管理システムを提供する。装置10A,10B,10Cの定刻通知処理部21は、定刻に定刻通知を他の装置へ送信し、その定刻通知応答を受信することで、他の装置との伝送遅延時間を求める。定刻通知受信処理部22は、他の装置からの定刻通知の定刻と受信時間と、伝送遅延時間とに基づいて、自装置の内部時計と他の装置10の内部時計との時差を求める。精度算定処理部23は、これらの時差と、タイムスタンプ精度テーブル30とに基づいて、タイムスタンプ精度を決定する。

目的

尚、保証性とは、例えば複数の装置でほぼ同一タイミングで発生したリアルタイムデータは、タイムスタンプに基づいて同一タイミングであると見做されるようにすることである

効果

実績

技術文献被引用数
0件
牽制数
1件

この技術が所属する分野

(分野番号表示ON)※整理標準化データをもとに当社作成

ライセンス契約や譲渡などの可能性がある特許掲載中! 開放特許随時追加・更新中 詳しくはこちら

請求項1

複数の装置で各々自装置内の時計時刻に基づいてタイムスタンプ付きデータを生成等するシステムであって、前記各装置は、自装置の時計と、各他の装置の時計との時差を、該各他の装置との通信に基づいて算出して、該各時差に基づいてシステムとしてのタイムスタンプ精度を求めるタイムスタンプ精度算出手段と、任意のデータに係わるタイムスタンプを生成する際に、そのときの前記自装置の時計の時刻から前記タイムスタンプ精度に応じたタイムスタンプを生成して、該データに該生成したタイムスタンプを付与するタイムスタンプ生成・付与手段と、を有することを特徴とするタイムスタンプ付データ管理システム

請求項2

前記タイムスタンプ精度算出手段は、前記各時差に基づいてシステム上の最大時差を求めて、該最大時差と、予め設定されている前記タイムスタンプ精度の複数の候補とに基づいて、該複数の候補のなから前記タイムスタンプ精度を決定することを特徴とする請求項1記載のタイムスタンプ付データ管理システム。

請求項3

前記タイムスタンプ精度算出手段は、予め前記タイムスタンプ精度の前記複数の候補を記憶した候補記憶手段と、任意の他の装置との通信に基づいて自装置と該他の装置との伝送遅延時間を求め、該他の装置から送信される所定の通知の該他の装置における送信時刻と、自装置における該通知の受信時刻と、前記伝送遅延時間とに基づいて、自装置の時計と該他の装置の時計との時差を算出する時差算出手段と、前記時差算出手段によって前記各他の装置との各時差を算出したら、これら各時差から前記システム上の最大時差を求め、該最大時差に基づいて前記複数の候補のなかから前記タイムスタンプ精度を決定するタイムスタンプ精度決定手段と、を有することを特徴とする請求項2記載のタイムスタンプ付データ管理システム。

請求項4

前記タイムスタンプ精度決定手段は、前記複数の候補のなかで前記最大時差よりも大きく且つそのなかで最小の候補を、前記タイムスタンプ精度に決定することを特徴とする請求項2または3記載のタイムスタンプ付データ管理システム。

請求項5

前記タイムスタンプ生成・付与手段は、前記タイムスタンプ精度決定手段によって求められたタイムスタンプ精度に応じた正規化処理を、前記そのときの前記自装置の時計の時刻に対して施すことで、前記タイムスタンプを生成し、前記タイムスタンプ精度は、前記時計の時刻精度よりも荒いことを特徴とする請求項1〜4の何れかに記載のタイムスタンプ付データ管理システム。

請求項6

前記各装置は、前記タイムスタンプ付きデータを記憶するデータ記憶手段を更に有し、前記タイムスタンプ生成・付与手段は、新たに生成した前記タイムスタンプ付きデータと、該記憶手段に記憶されている既存のタイムスタンプ付きデータとの新旧関係を、両データのタイムスタンプに基づいて判定し、該新たに生成したタイムスタンプ付きデータの方が新しい場合に、該新たに生成したタイムスタンプ付きデータを該記憶手段に上書き格納することを特徴とする請求項1〜5の何れかに記載のタイムスタンプ付データ管理システム。

請求項7

前記各装置は、前記タイムスタンプ付きデータを記憶するデータ記憶手段を更に有し、前記タイムスタンプ生成・付与手段は、新たに生成した前記タイムスタンプ付きデータと、該記憶手段に記憶されている既存のタイムスタンプ付きデータとで、タイムスタンプが同一時刻である場合には、予め設定されている装置間の相対的な優先順位に基づいて、前記新たに生成したタイムスタンプ付きデータの生成元装置の方が、前記既存のタイムスタンプ付きデータの生成元装置よりも優先順位が高い場合に、該新たに生成したタイムスタンプ付きデータを該記憶手段に上書き格納することを特徴とする請求項1〜5の何れかに記載のタイムスタンプ付データ管理システム。

請求項8

前記各装置は、前記タイムスタンプ生成・付与手段によって新たに生成された前記タイムスタンプ付きデータを、前記各他の装置へ送信する送信手段と、任意の前記他の装置の前記送信手段から送信される前記タイムスタンプ付きデータを受信する受信手段と、前記タイムスタンプ付きデータを記憶するデータ記憶手段とを更に有し、前記受信手段は、前記受信したタイムスタンプ付きデータと、該記憶手段に記憶されている既存のタイムスタンプ付きデータとの新旧関係を、両データのタイムスタンプに基づいて判定し、該受信したタイムスタンプ付きデータの方が新しい場合に、該受信したタイムスタンプ付きデータを該記憶手段に上書き格納することを特徴とする請求項1〜7の何れかに記載のタイムスタンプ付データ管理システム。

請求項9

前記各装置は、前記タイムスタンプ生成・付与手段によって新たに生成された前記タイムスタンプ付きデータを、前記各他の装置へ送信する送信手段と、任意の前記他の装置の前記送信手段から送信される前記タイムスタンプ付きデータを受信する受信手段と、前記タイムスタンプ付きデータを記憶するデータ記憶手段とを更に有し、前記受信手段は、前記受信したタイムスタンプ付きデータと、該記憶手段に記憶されている既存のタイムスタンプ付きデータとで、タイムスタンプが同一時刻である場合には、予め設定されている装置間の相対的な優先順位に基づいて、前記受信したタイムスタンプ付きデータの生成元装置の方が、前記既存のタイムスタンプ付きデータの生成元装置よりも優先順位が高い場合に、該受信したタイムスタンプ付きデータを該記憶手段に上書き格納することを特徴とする請求項1〜7の何れかに記載のタイムスタンプ付データ管理システム。

請求項10

前記各装置は、前記タイムスタンプ生成・付与手段によって新たに生成された前記タイムスタンプ付きデータを、前記各他の装置へ送信する送信手段を更に有し、前記候補記憶手段には、更に、前記各候補に対応付けて、該候補の時間より短い時間の送信周期が予め登録されており、前記タイムスタンプ精度決定手段は、前記タイムスタンプ精度に決定した候補に対応する前記送信周期を、前記送信手段の送信周期に決定することを特徴とする請求項3記載のタイムスタンプ付データ管理システム。

請求項11

前記各装置は、前記タイムスタンプ付きデータを蓄積記憶するデータ蓄積記憶手段と、任意の前記装置の該データ蓄積記憶手段に蓄積される任意のタイムスタンプ付きデータ群と、任意の他の装置の前記データ蓄積記憶手段に蓄積される他のタイムスタンプ付きデータ群とを、そのタイムスタンプに従って合成する合成手段とを更に有することを特徴とする請求項1〜5の何れかに記載のタイムスタンプ付データ管理システム。

請求項12

前記タイムスタンプ精度算出手段は、前記各時差に基づいてシステム上の最大時差を求めて、該最大時差と、予め設定されているタイムスタンプ精度間隔とに基づいて、前記タイムスタンプ精度を算出することを特徴とする請求項1記載のタイムスタンプ付データ管理システム。

請求項13

前記タイムスタンプ精度算出手段は、n=(“前記最大時差÷前記タイムスタンプ精度間隔”の商) + 1タイムスタンプ精度=前記タイムスタンプ精度間隔 × nによって、前記タイムスタンプ精度を算出することを特徴とする請求項12記載のタイムスタンプ付データ管理システム。

請求項14

複数の装置で各々自装置内の時計の時刻に基づいてタイムスタンプ付きデータを生成等するシステムにおける該各装置であって、自装置の時計と、各他の装置の時計との時差を、該各他の装置との通信に基づいて算出して、該各時差に基づいてシステムとしてのタイムスタンプ精度を求めるタイムスタンプ精度算出手段と、任意のデータに係わるタイムスタンプを生成する際に、そのときの前記自装置の時計の時刻から前記タイムスタンプ精度に応じたタイムスタンプを生成して、該データに該生成したタイムスタンプを付与するタイムスタンプ生成・付与手段と、を有することを特徴とするタイムスタンプ付データ管理システムの装置。

請求項15

前記タイムスタンプ精度算出手段は、前記各時差に基づいてシステム上の最大時差を求めて、該最大時差と、予め設定されている前記タイムスタンプ精度の複数の候補とに基づいて、該複数の候補のなから前記タイムスタンプ精度を決定することを特徴とする請求項14記載のタイムスタンプ付データ管理システムの装置。

請求項16

複数の装置で各々自装置内の時計の時刻に基づいてタイムスタンプ付きデータを生成等するシステムにおける該各装置のコンピュータを、自装置の時計と、各他の装置の時計との時差を、該各他の装置との通信に基づいて算出して、該各時差に基づいてシステムとしてのタイムスタンプ精度を求めるタイムスタンプ精度算出手段と、任意のデータに係わるタイムスタンプを生成する際に、そのときの前記自装置の時計の時刻から前記タイムスタンプ精度に応じたタイムスタンプを生成して、該データに該生成したタイムスタンプを付与するタイムスタンプ生成・付与手段と、として機能させる為のプログラム

技術分野

0001

本発明は、複数の装置でタイムスタンプ付きデータを生成するシステムに関する。

背景技術

0002

例えば、特許文献1に記載の従来技術が知られている。
特許文献1には、他局からファイル作成日時を受信すると(S20)、該当する自局ファイル作成日時と比較して(S22)、他局の方が新しい場合には、転送要求を送って(S23)、ファイル内容を送信させ(S12)、該当する共有ファイルの内容を、送信されたファイルに置き換える(S24)こと等が開示されている。

0003

複数の装置でタイムスタンプ付きデータを生成・格納・管理するシステムとしては、例えば一例としてはプラント監視制御システム等がある。プラント監視制御システムでは、時系列的に変化し得る様々なデータ(リアルタイムデータ;各種測定値や何等かのカウント値など)を、複数の装置で各々取得/生成等している。この様なリアルタイムデータは、例えば相互に時系列的な前後関係(相対的に新しい/古いなど)が分かるようにする必要があり、各装置で各々自装置内の時計時刻に基づいてタイムスタンプを生成してリアルタイムデータに付与している。

0004

この様なタイムスタンプ付きリアルタイムデータの扱い方は、様々であり、例えばそのままタイムスタンプ付きデータを累積記憶して時系列データとして、後に何等かの処理や解析などに利用する場合や、タイムスタンプに基づいて例えば記憶データが常に最新データとなるようにデータ更新する場合等ある。

0005

例えば、取得/生成したデータが既存データより新しい場合のみ、取得/生成データによってデータ更新する。あるいは、例えば、蓄積したデータ群を、それらに付加されているタイムスタンプに基づいて、例えば古いものから順に整列させる。あるいは、タイムスタンプに基づいて、複数のデータ群を合成した合成データを作成する。

0006

一般的に、例えばプラント監視制御システム等におけるリアルタイムデータには、データの連続性が要求される。つまり、例えば古いデータから順に連続する時系列データを得ること等が要求される。また、データ時刻整合性が要求される。データ時刻の整合性は、特に、複数の装置でそれぞれの時計に基づいてタイムスタンプが付与された複数の時系列データに関して、時系列データ相互の時間的な前後関係(相対的な新旧同一タイミングであること等)が、タイムスタンプに基づいて正しく判定できることを意味する。

0007

タイムスタンプの利用方法は、他にも様々な方法があってよいが、何れにしても、タイムスタンプが正しいものであれば、何等問題はない。
しかしながら、後述するように、タイムスタンプ生成元となる装置内の時計の時刻は、たとえ定期的に時刻補正を行っても多少は狂っているものである。それでも、1つの装置(その1つの時計)だけである場合には、各タイムスタンプは同じように狂っていることになるので、上記のように相対的な新旧を判定するうえでは、特に問題はないことになる。

0008

しかしながら、複数の装置でそれぞれ自己の時計の現在時刻タイムスタンプ時刻とする場合には、例えば上記新旧の判定結果が正しいとは限らないことになる。
例えば、プラント監視制御システムにおいて、複数の装置が伝送路を介して接続され、各装置が更新した共有ローカルデータ領域内のリアルタイムデータを相互に伝送路を介して等値化・共有するシステムがある。図8に、このようなプラント監視制御システムの一例を示す。

0009

図8に示すシステムは、複数の装置200(200A、200B、・・・、200M)が、伝送路に接続されており、相互にデータ送受信可能な構成となっている。
各装置200は、コンピュータ等であり、例えばPLC等であり、特に図示しないがCPU、メモリ等を有しており、メモリに記憶されたプログラムをCPUが実行することで、図示のアプリケーション処理送信処理受信処理等の各種処理機能を実現する。

0010

また、各装置200は、そのメモリ内共通データローカル領域201を有している。また、各装置200は、内部時計202を有している。
共通データローカル領域201には、基本的に全ての装置200で共有するデータが格納される。この為、(多少のタイムラグはあるが)基本的に全ての装置200の共通データローカル領域201の格納データが、同一となるように制御されている。これは、換言すれば、全ての装置200の共通データローカル領域201の図示のデータ情報1、データ情報2、・・・データ情報nが、全て、(多少のタイムラグはあるが)最新の情報となるようにしている。

0011

例えば、装置200Aが、例えばそのアプリケーション処理に伴って自己の共通データローカル領域201の図示のデータ情報1を、最新データ(データ情報1aと記すものとする)に更新した場合、他の全ての装置200においてもデータ情報1を最新データ1aに更新させる為に、上記送信処理によって、データ情報1の最新データ1aを他の全ての装置200B、200Cに送信する。

0012

しかしながら、このとき、例えば、装置200Bにおいても、自己の共通データローカル領域201のデータ情報1を、最新データ(データ情報1bと記すものとする)に更新したとする。この場合、最新データ1aと最新データ1bのどちらがより新しいデータであるのかを判断して、より新しいデータによって「データ情報1」の更新を行うことになる。その為に、従来では、データ情報1a、1bにタイムスタンプを付与し、タイムスタンプに基づいて、より新しいデータはどちらであるのかを判定していた。このタイムスタンプは、各装置200が自己の内部時計202の時刻に基づいて生成して付与する。

0013

ここでは、上記データの受信側でタイムスタンプを付与する方式(従来方式1)と、データ送信側でタイムスタンプを付与する方式(従来方式2)について説明する。
まず、従来方式1について、図9図10(a)、(b)を参照して説明する。

0014

従来方式1では、図9に示すように、各装置200は、自己のアプリケーション処理実行に伴って自己の共通データローカル領域201内の任意のデータを更新した場合、当該更新データを他の全ての装置200へ伝送路を介して送信する。この送信データは、例えば「データ識別子+リアルタイムデータ値」により構成される。データ識別子は、更新対象のデータの種別等を示すものであり、例えば上記「データ情報1」を示す識別ID等である。リアルタイムデータ値は、各データ種別に係わるデータ値そのものであり、上記データ1aやデータ1b等である。これによって、この送信データを受信した各装置200では、データ識別子を参照することで、そのリアルタイムデータ値が例えば上記「データ情報1」に係わるデータ値であると認識できる。

0015

尚、上記データ種別とは、例えば何等かのカウンタ値J、カウンタ値K、あるいは測定点pの電流値、測定点qの電流値、測定点pの電圧値、測定点qの電圧値等である。そして、例えばカウンタ値Jに関してアプリケーション処理によってその値が更新される毎に、当該更新後の値が上記共通データローカル領域201内の該当領域に上書き格納されることになる。この該当領域には、カウンタ値Jに関してそれまでの最新の値が既存データ値として格納されていることになる。アプリケーション処理では、この既存データ値を読み出して例えば+インクリメントした値を上記更新後の値(更新データ)として、共通データローカル領域201の該当領域に上書き記憶することになる。勿論、これは単なる具体例に過ぎない。

0016

ここで、上記送信データを受信した他の装置200は、当該受信データに対してタイムスタンプを生成・付与する。これは、自己の内部時計202の現在時刻を当該受信データの受信時刻として、この受信時刻に基づいてタイムスタンプを生成して上記受信データに付与する。

0017

尚、上記アプリケーション処理等に伴うデータ更新の際にも、そのときの時刻に基づいてタイムスタンプを生成して、これを当該自己が生成した更新データに付与する。
共通データローカル領域201に格納される各データは、基本的に全て上記のようにタイムスタンプが付与されたデータである。これより、上記受信データ又は自己が生成した更新データのタイムスランプと、例えば上記「データ情報1」に係わる既存データのタイムスタンプとを比較して、より新しい方が共通データローカル領域201に格納されるようにする。つまり、既存データの方が新しい場合には、現状のままとする(受信データ/更新データは例えば破棄する)。一方、受信データ/更新データの方が新しい場合には、受信データ/更新データを既存データに上書きする。勿論、逐一述べないが、これら受信データ/更新データは、上記タイムスタンプが付与された状態のまま共通データローカル領域201に格納する。

0018

図10(a)には、上記データ種別「データ情報1」に関して、まず装置200Aにおいて上記更新データとして上記データ情報1aが生成され、その後、例えばある程度の時間後に、装置200Bにおいて上記更新データとして上記データ情報1bが生成された場合の、各装置の各共通データローカル領域201の更新動作例を示す。

0019

また、図10(b)には、上記装置200Aのデータ情報1aの生成と上記装置200Bのデータ情報1bの生成とが、同時に行われた場合の、共通データローカル領域201の更新動作例を示す。

0020

尚、ここでは更新データはアプリケーション処理等で生成される場合を想定して説明するが、この例に限らず、更新データは例えば何等かの計測データを取得したもの等である場合もある。

0021

また、尚、何れの例の場合も、不図示の既存データは、データ情報1a、1bよりも古いデータであるものとする。また、図では、簡単の為、装置200A、200B、200Cの3台の装置があるものとする。

0022

まず、図10(a)を参照して説明する。
この例の場合、まず装置200Aにおいて上記自己のアプリケーション処理に伴う更新データであるデータ情報1aが、共通データローカル領域201に格納される。尚、以下の説明では逐一述べないが、更新データには例えば共通データローカル領域201に格納する際の時刻に応じたタイムスタンプが生成・付与される。そして、装置200Aは、このデータ情報1aを他の全ての装置200B,200Cへ送信する。

0023

各装置200B、200Cでは、それぞれ自己の内部時計202より、このデータ情報1aの受信時刻に応じたタイムスタンプを生成する。そして、このタイムスタンプに基づいて受信したデータ情報1aを自己の共通データローカル領域201に格納するか否かを判定する。上記のことからここでは格納することになるので、装置200B、200Cにおいて、その共通データローカル領域201の「データ情報1」は、上記データ情報1aに更新されることになる。

0024

その後、今度は、装置200Bにおいて、上記自己のアプリケーション処理に伴う更新データであるデータ情報1bが生成され、この時刻に応じたタイムスタンプが生成・付与される。そして、共通データローカル領域201の「データ情報1」に係わる既存データ(このときは、上記データ情報1aになっている)のタイムスタンプと比較することで、より新しい方が共通データローカル領域201に格納されるようにする。これより、共通データローカル領域201に「データ情報1」に係わる新たな最新データとしてデータ情報1bが格納されることになる。

0025

また、装置200Bは、上記データ情報1bを他の全ての装置200A、200Cへ送信する。これより、各装置200A、200Cでは、上記と同様、受信時刻に応じたタイムスタンプを生成して当該受信したデータ情報1bに付与して、既存データのタイムスタンプと比較することで、データ情報1bが既存データよりも新しいと判定することになるので、その共通データローカル領域201の「データ情報1」は、上記データ情報1bに更新されることになる。

0026

この様にして、この例の場合、全ての装置200において、その共通データローカル領域201の「データ情報1」の最新データとしてデータ情報1bが格納された状態となり、これは正常な状態と言える。

0027

一方、図10(b)に示す例の場合、上記の通りデータ更新自体はデータ情報1aとデータ情報1bとで同じタイミングであるが、受信データに係わるタイムスタンプは受信時刻を基準にして生成されるものである為、上記正常な状態とはならない。

0028

すなわち、装置200Aは、上記のように自己のアプリケーション処理に伴う更新データであるデータ情報1aを、その共通データローカル領域201に格納した後、上記データ情報1bを受信する。これより、データ情報1bのタイムスタンプは、データ情報1aのタイムスタンプよりも新しいことになり、データ情報1bが上書き格納されることになる。

0029

一方、装置200Bは、上記のように自己のアプリケーション処理に伴う更新データであるデータ情報1bを、その共通データローカル領域201に格納した後、上記データ情報1aを受信する。これより、データ情報1aのタイムスタンプは、データ情報1bのタイムスタンプよりも新しいことになり、データ情報1aが上書き格納されることになる。

0030

この様に、装置200Aと、装置200Bとで、共通データローカル領域201の格納データが異なる状態と成り得る。
尚、ここでは装置200Cに関しては特に言及しないものとする。すなわち、装置200Cでの場合、装置200Aからのデータ情報1a、装置200Bからのデータ情報1bのどちらが最新データとなるかは不明である。より後に受信した情報が最新データとして扱われることになるが、伝送遅延によりどちらが後に受信されることになるのか不明だからである。

0031

上記問題が生じる原因は、他の装置へ送信するデータに係わるタイムスタンプの生成を、受信側で受信時刻に基づいて行う為である。これより、以下に説明する従来方式2のように、タイムスタンプの生成を、送信側で送信時刻等に基づいて行う方法も提案されている。

0032

以下、図11図12を参照して、従来方式2について説明する。
図11に示すように、従来方式2の場合、各装置200は、自己のアプリケーション処理等に伴う任意の更新データがある場合、自己の内部時計202から得られた現在時刻等に基づいてタイムスタンプを生成して、これを当該更新データに付加する。このタイムスタンプ付きの更新データは、上記送信処理によって他の全ての装置200へ通知される。これより、送信データは、上記「データ識別子+リアルタイムデータ値」に、タイムスタンプが加わったものとする。すなわち、送信データ=「データ識別子+タイムスタンプ+リアルタイムデータ値」となる。

0033

また、上記生成されたタイムスタンプ付き更新データは、自己の共通データローカル領域201の既存データより新しければ、既存データに上書き格納される。勿論、この新旧判定は、タイムスタンプによって行うことになる。

0034

また、上記送信データを受信した各装置200は、受信したイムスタンプ付き更新データが、自己の共通データローカル領域201の既存データより新しければ、既存データに上書き格納される。勿論、この新旧判定は、タイムスタンプによって行うことになる。

0035

上記処理は、図11に示す例では、例えば装置200Aは、自装置において生成したタイムスタンプ付きデータ情報1aを、自己の共通データローカル領域201に格納すると共に、他の全ての装置200B、200Cへ送信する。

0036

また、装置200Bも、自装置において生成したタイムスタンプ付きデータ情報1bを、自己の共通データローカル領域201に格納すると共に、他の全ての装置200C、200Cへ送信する。

0037

これより、装置200Aは、上記タイムスタンプ付きデータ情報1bを受信すると、そのタイムスタンプと、自己の共通データローカル領域201に格納している上記データ情報1aのタイムスタンプとに基づいて、どちらがより新しいか(最新データであるか)を判定する。図11では、データ情報1bの方が新しいと判定し、データ情報1bを共通データローカル領域201に上書き格納する。

0038

一方、装置200Bは、上記タイムスタンプ付きデータ情報1aを受信すると、そのタイムスタンプと、自己の共通データローカル領域201に格納している上記データ情報1bのタイムスタンプとに基づいて、どちらがより新しいか(最新データであるか)を判定する。図11では、データ情報1bの方が新しいと判定し、現状のままとする。尚、これより、受信したデータ情報1aは、例えば破棄する。

0039

また、装置200Cは、上記データ情報1bとデータ情報1aとを受信し、これらのタイムスタンプに基づいて結果的により新しい方が自己の共通データローカル領域201に格納された状態となる。

0040

ここで、例えば図12(a)に示すように、まず装置200Aが上記データ情報1aを他の装置200B,200Cへ送信し、ある程度時間が経ってから装置200Bが上記データ情報1bを他の装置200A,200Cへ送信する場合を考える。

0041

この例では、明らかに、データ情報1aに付加されるタイムスタンプは、データ情報1bに付加されるタイムスタンプよりも古いことになるので、最終的には全ての装置200A,200B,200Cにおいて、自己の共通データローカル領域201にはデータ情報1bが格納された状態となる。

0042

一方、例えば図12(b)に示す例では、上記データ情報1a、1bが同一タイミングで生成され、以って同一タイミングでタイムスタンプが生成された場合を示す。この場合、理屈ではこれら2つのタイムスタンプ時刻は同一となるはずである。しかしながら、後に図14等で説明するように、全ての装置200においてその内部時計202は、たとえ定期的に時刻補正を行ったとしても、多少は狂っていることになる。これより、ここでは仮に、データ情報1aのタイムスタンプが、データ情報1bのタイムスタンプよりも古いものとして説明する。勿論、これは、上記時計の狂いに応じた僅かな時間分(例えば数百ミリ秒程度など)、古いものとなっているものである。

0043

この例の場合、図12(b)に示すように、まず装置200Aでは、自己の共通データローカル領域201に上記タイムスタンプ付きデータ情報1aを格納している状態で上記タイムスタンプ付きデータ情報1bを受信することになる。そして、両者のタイムスタンプ時刻を比較することで、データ情報1bの方が新しいと判定し、データ情報1bをデータ情報1aに上書きする。つまり、データ情報1bが「データ情報1」の最新データとして共通データローカル領域201に格納されている状態となる。

0044

一方、装置200Bでは、自己の共通データローカル領域201に上記タイムスタンプ付きデータ情報1bを格納している状態で上記タイムスタンプ付きデータ情報1aを受信することになる。そして、両者のタイムスタンプ時刻を比較することで、データ情報1bの方が新しいと判定する。これより、現状のままとする。つまり、データ情報1bが「データ情報1」の最新データとして共通データローカル領域201に格納されている状態のままとする。尚、受信したデータ情報1aは例えば破棄する。

0045

また、装置200Cでは、この例ではまず上記タイムスタンプ付きデータ情報1bを受信するものとし、これを自己の共通データローカル領域201に格納する。この状態で後に上記タイムスタンプ付きデータ情報1aを受信することになり、よって上記装置200Bと同様の判定・動作となる。

0046

この様に、全ての装置200において、最終的には、自己の共通データローカル領域201にデータ情報1bが格納された状態となる。つまり、上記図10(b)のような問題は解消されることになる。つまり、少なくとも全ての装置200において同じデータが格納された状態にすることはできる。しかしながら、上記の通り、本来は、上記データ情報1a、1bは同一タイミングで生成されたものである。

0047

ここで、上述したように、内部時計202の時刻の装置間の差異時差)により、全く同一タイミングで更新された「データ情報」であっても異なるタイムスタンプが付与されることになる。これは、内部時計202が他装置より進んでいる装置200が送信する「データ情報」が、共通データローカル領域201に残る結果となる。つまり、上記の例では装置200Bの内部時計202が、装置200Aの内部時計202よりも進んでいることになり、装置200Aと装置200Bとで同時にデータ更新があった場合には、常に、装置200Bの更新データが、全ての装置200の共通データローカル領域201に残る結果となる。

0048

しかしながら、現実には、例えばシステム設計者立場から考えて、例えば装置200Aと装置200Bとで同時にデータ更新があった場合には、装置200Aの更新データの方を残したい、等という要望がある場合が起こり得る。

先行技術

0049

特開昭63−133239号公報

発明が解決しようとする課題

0050

ここで、プラント監視制御システムの一例として、例えば電力系統監視システムにおいて、不図示の装置100A、100Bが、それぞれ不図示の測定点A,Bの電力計測を行ってこの計測結果を蓄積するシステムであって、後にこれらの計測結果に基づいて系統全体電力を求める場合を例にする。

0051

この例において、突発的・短期的な電力変動(以下、“ひげ”と記すものとする)があった場合、上記測定点A,Bに関して例えば図13(a)に示す計測データα、βが得られたとする。これより、後に、この2つの計測データに基づいて、例えば計測データα、βを合成することで、例えば図13(b)に示すような合成データγが系統全体の電力計測データとして得られることになる。

0052

例えば、この様な短期的な電力変動であっても、これが電力のピークと見做せるのであれは、それに応じた何等かの対応が必要になる場合がある。よって、“ひげ”のピーク部分の電力を正しく知ることができるようにするために(“ひげ”を正しく検出できるようにする為に)、例えば図13(b)に示すような正しい合成データγが得られることが必要となる。

0053

ここで、上記計測データα、βには、タイムスタンプが付与される。これは、例えば、上記測定点A,Bの各装置100A、100Bが、それぞれ、自装置内の不図示の内部時計の時刻から例えば図13(b)の図上下側に示すようなタイムスタンプを生成して、これを計測データα、βに付与して格納する。尚、これより、計測データα、βは、図上では連続したデータとして示すが、実際には図示のタイムスタンプt0,t1、t2、・・・、t9、t10の各時刻に取得された11個のデータから成るものと見做してもよい。

0054

上記図13(b)に示す合成データγは、上記計測データα、βを、そのタイムスタンプに基づいて、同じ時刻のデータ同士を合成するものである。これは、両方のタイムスタンプが正しい場合には、問題がないものである。換言すれば、装置100A、100Bの時計が、両方とも正しい場合には、問題ないものと言える。

0055

しかしながら、通常、コンピュータ装置の時計は、殆ど常に多少は狂っているものである。これについて、図14を参照して説明する。
図14(a)、(b)において、横軸は時間tであり、縦軸は正しい時間とのズレ量(ミリ秒など)を意味する。そして、ここでは、装置100A、100Bの各内部時計について、正しい時間とのズレ量を示すものとする。

0056

正しい時間とのズレ量が‘0’のとき、そのコンピュータ装置の時計が正しい状態と言えるが、図示のように殆どの場合において装置100A、100Bの時計は多少のズレが生じている。ここで、一般的に、時計機能は、遅れる傾向か進む傾向の何れかとなる。ここでは、装置100Aの時計は進む傾向であり、装置100Bの時計は遅れる傾向になる。そして、図14(a)には、これら時計の時刻補正を行わずに放置した場合を示す。

0057

図14(a)に示すように、装置100Aの時計は、進む方向(+方向)で徐々にズレ量が増大していく。同様に、装置100Bの時計は、遅れる方向(−方向)で徐々にズレ量が増大していく。

0058

この為、通常は、定期的に時刻補正を行う。図14(b)は、時刻補正を行う場合について示している。時刻補正方法については特に詳しくは説明しないが、基本的には、何等かの方法によって取得した正しい時刻と、自己の時計の時刻との差(ズレ量)を求めて、このズレ量に基づいて時刻補正を行う。例えばズレ量分を一気補正する方法も考えられるが、図示の例ではある程度の時間を掛けて徐々にズレを修正していく。これは、例えば、ズレ量分を一気に補正すると、上記データの連続性が損なわれる可能性があるからである。

0059

何れにしても、一時的には、時計は正しい時刻となる(ズレ量が‘0’)となる。しかしながら、その後、時間の経過と共に再びズレが増大していくことになる。この為、後に再び時刻補正が必要となる。この様にして、図示のように、ズレ量が‘0’となるのは一時的であり、殆どの場合、時計は多少は狂っていることになる。

0060

更に、何れか一方の装置のズレ量が‘0’であっても、その時の他方の装置のズレ量も‘0’となっていなければ、相対的に両者の時計の時刻は異なっていることになり、この為、例えば上記合成データγの生成結果が、正しいものと成らない可能性がある。尚、常にズレ量がほぼ‘0’となるようにする為に頻繁に時刻補正を行うことは、現実的ではない。

0061

上記のように時刻補正を行っても時計は多少は狂っているものである為、図13(a)に示す計測データα、βは、実際には同時刻に得られたデータであってもタイムスタンプが異なる事態と成り得る。すなわち、実際には図13(a)に示すような計測データα、βであるのに、タイムスタンプに基づくと図15(a)に示すようなデータと見做される可能性がある。この為、合成データγ(系統全体の電力計測データ)が、図15(b)に示す合成データγ’のようになる可能性がある。つまり、正しい合成データが得られないことになる。

0062

上記のような事態に対応する為、例えば、上記タイムスタンプの精度(時刻の粒度)を、時計の時刻精度よりも荒いものとすることが考えられている。例えば、時計の時刻精度がミリ秒単位(例えば、01時23分17秒056ミリ秒など)であるのに対して、タイムスタンプの精度は秒単位や500ミリ秒単位等とすることが考えられる。

0063

仮に、タイムスタンプの精度を秒単位とした場合、更にこれに応じてミリ秒のデータ値は切り捨てるものとした場合、仮に上記計測データα、βにおける上記”ひげ”部分の時刻が、一方が例えば、01時23分17秒106ミリ秒、他方が01時23分17秒343ミリ秒であったとすると、両方ともタイムスタンプ時刻は例えば01時23分17秒等となる。よって、タイムスタンプ上は同時刻のデータとして扱われるので、例えば図15(c)に示すような合成データγ”が得られることになる。これは、正しい合成データが得られたものと見做してよく、上記”ひげ”も正常に検出できることになる。

0064

図15(c)では、図示のT1の範囲内の計測データに対してはタイムスタンプT1が付与され、図示のT2の範囲内の計測データに対してはタイムスタンプT2が付与される。よって、計測データα、βにおける図示のT1の範囲内の計測データは、同一タイミングのデータであると見做され、合成されるので、これらの合成データは、図15(c)に示す合成データγ”のようになる。つまり、ほぼ正常な合成が行われ、上記”ひげ”が正常に検出できることになる。T2についても同様である。但し、勿論、この方法では、タイムスタンプの時刻の精度は、実際の時計の時刻の精度より荒くなる(悪くなる)のであるから、図15(c)に示す合成データγ”は、図13(b)に示す合成データγと完全に同じになるわけではない。しかしながら、少なくとも図15(b)に示す合成データγ’に比べれば、正しい合成データが得られることになる。

0065

例えばこの様にして上記問題を解消することが考えられるが、例えばタイムスタンプの精度を上記のような秒単位とした場合には、タイムスタンプの精度が荒くなり過ぎると見做せる場合もあり得る。つまり、本来は同一タイミングと見做すべきではないデータ値が、同一タイミングと見做されて、合成されてしまう場合もあり得る。例えば、図15(a)に示す計測データα、βにおける4つの“ひげ”が全て同一タイミングと見做されるようなタイムスタンプ精度であった場合、その合成データには、これら4つの“ひげ”が全て合成されて成る、非常に電力ピーク値が大きい1つの“ひげ”が含まれることになる。

0066

この為、この様な合成データを参考にしてシステム/設備設計を行う開発者等は、例えば、この様な高い電力ピーク値に耐えられるように設備を設計することになる可能性もあり、高価な設備となってしまい、コスト高を招くことになる。

0067

一方で、上記の例に対してタイムスタンプの精度を例えば100ミリ秒にすると、タイムスタンプ時刻は、それぞれ、01時23分17.1秒、01時23分17.3秒となり、両者は異なる時刻のデータとして扱われることになる。つまり、上記”ひげ”(電力ピーク値)が正常に検出できないことになる。

0068

上記のように、タイムスタンプの精度が、荒すぎても細かすぎても、問題が生じることになり、適切なタイムスタンプの精度とすることが望ましい。しかしながら、適切なタイムスタンプの精度は、状況によって変わるものであり、予め固定的に設定できるようなものではない。

0069

これは、上記のような電力系統監視システムの例に限らず、例えば図8図12で説明したようなプラント監視制御システムについても同様である。あるいは、これらの例に限らず、複数の装置で各々自装置内の時計の時刻に基づいてタイムスタンプ付きデータを生成等するシステム(タイムスタンプ付データ管理システムと呼ぶものとする)において、何等かの理由で時計の精度よりも荒い精度のタイムスタンプを生成・付与する必要がある場合にも、上記のように適切なタイムスタンプの精度とすることに係わる課題がある。

0070

ここで、例えばプラント監視制御システム等におけるリアルタイムデータのタイムスタンプの信頼性は、下記のように定義することもできる。
(タイムスタンプの信頼性定義1); リアルタイムデータが発生・更新された実時間と、リアルタイムデータに付与されているタイムスタンプとの差異が小さいほど、タイムスタンプの信頼性が高い。
(タイムスタンプの信頼性定義2); 時系列に連続するリアルタイムデータに付与されるタイムスタンプの精度(時刻の粒度)が、「タイムスタンプの信頼性定義1」おける実時間との差異よりも大きい場合は、タイムスタンプの保証性は高いが、小さい場合は保証性が低い。尚、保証性とは、例えば複数の装置でほぼ同一タイミングで発生したリアルタイムデータは、タイムスタンプに基づいて同一タイミングであると見做されるようにすることである。例えば上記の例においてタイムスタンプ精度を秒単位とする場合には、保証性が高いことになる。

0071

例えばプラント監視制御システム等におけるリアルタイムデータに係わるタイムスタンプは、従来では個々の装置の内部時計を使用して生成しているため、上述したように同一タイミングで発生・更新されたデータでも同一タイムスタンプにはならない場合が多い。この問題は、上記の通り、定期的に時計の時刻補正を行う場合でも解消されない。

0072

しかしながら、上述したように、タイムスタンプは必ずしも正確な時間を示す必要はなく、タイムスタンプの精度を荒くすることで問題が解消する場合もあり得る。但し、上記の通り、適切なタイムスタンプ精度を設定することに関しては課題がある。

0073

あるいは、上記「装置200Aと装置200Bとで同時にデータ更新があった場合には、装置200Aの更新データの方を残したい、等という要望」を満たす為には、まず、同一タイミングで発生したデータには同一タイムスタンプが付与されるようにすることが必要と考えられる。そのうえで、タイムスタンプに基づいて同一タイミングであると判定された場合に、何等かの方法より装置200Aのデータを優先させることが考えられる。

0074

何れにしても、これらは一例を説明しているものであり、基本的には、複数の装置で各々、時系列的に変化し得る様々なデータ(リアルタイムデータ)を取得/生成等すると共に自装置の内部時計に基づいてタイムスタンプを生成するシステムにおいて、これら各データの相対的な時系列関係(任意のデータ同士の時間的な前後関係が、前か後か同一タイミングか)を、適切に判定できるようにすることが望まれる。そして、その為に、上記のように適切なタイムスタンプ精度が設定されることが望まれている。尚、このようなタイムスタンプは、「システムとして“有意義な”タイムスタンプである」あるいは「システムで扱うリアルタイムデータの時刻精度において有意義なタイムスタンプである」等と言うこともできる。

0075

例えば、同一タイミングで発生したデータには同一タイムスタンプが付与されるようにすることが必要であるが、これを実現するだけであれば、上記のようにタイムスタンプの精度を荒くすればよい(例えば、秒単位とすればよい)。しかしながら、この場合、上記信頼性定義1に係わる信頼性が、低くなる。

0076

本発明の課題は、複数の装置で各々自装置内の時計の時刻に基づいてタイムスタンプ付きデータを生成等するシステムにおいて、タイムスタンプの精度を、そのときの状況に応じて適宜適切な値に設定することができ、以って各データの相対的な時系列関係を正しく判定できるようにするタイムスタンプ付データ管理システム等を提供することである。

課題を解決するための手段

0077

本発明のタイムスタンプ付データ管理システムは、複数の装置で各々自装置内の時計の時刻に基づいてタイムスタンプ付きデータを生成等するシステムであって、前記各装置は、自装置の時計と、各他の装置の時計との時差を、該各他の装置との通信に基づいて算出して、該各時差に基づいてシステムとしてのタイムスタンプ精度を求めるタイムスタンプ精度算出手段と、任意のデータに係わるタイムスタンプを生成する際に、そのときの前記自装置の時計の時刻から前記タイムスタンプ精度に応じたタイムスタンプを生成して、該データに該生成したタイムスタンプを付与するタイムスタンプ生成・付与手段とを有する。

発明の効果

0078

本発明のタイムスタンプ付データ管理システム等によれば、複数の装置で各々自装置内の時計の時刻に基づいてタイムスタンプ付きデータを生成等するシステムにおいて、タイムスタンプの精度を、そのときの状況に応じて適宜適切な値に設定することができ、以って各データの相対的な時系列関係を正しく判定できる。

図面の簡単な説明

0079

本例のプラント監視制御システムの構成例である。
図1のタイムスタンプ精度算定処理部の詳細構成図である。
タイムスタンプ精度算定処理部の処理シーケンス例を示した図である。
決定されたタイムスタンプ精度等の例に応じた動作イメージを示す図である。
決定されたタイムスタンプ精度に応じたタイムスタンプの正規化処理例等を示す図である。
受信側の処理動作例を示す図である。
図1のタイムスタンプ精度算定処理部の詳細構成図(他の例)である。
既存のプラント監視制御システムの一例を示す図である。
図8のプラント監視制御システムの各装置間のデータの送受信動作例等(その1)である。
(a)、(b)は、図9に関するデータ更新に係わる動作例である。
図8のプラント監視制御システムの各装置間のデータの送受信動作例等(その2)である。
(a)、(b)は、図11に関するデータ更新に係わる動作例である。
(a)は計測データ、(b)はこれらの合成データの一例(その1)である。
(a)は補正しない場合の時計の時刻ズレ、(b)は補正する場合の時計の時刻ズレの一例を示す図である。
(a)は計測データ、(b)はこれらの合成データの一例(その2)である。

実施例

0080

以下、図面を参照して、本発明の実施の形態について説明する。
ここで、本手法は、複数の装置で各々自装置内の時計の時刻に基づいてタイムスタンプ付きデータを生成等するシステムに関する。この様なシステムを、上記のようにタイムスタンプ付データ管理システムと呼ぶものとする。そして、上記のように、この様なシステムの一例として上記プラント監視制御システムがあるが、この例に限らない。但し、ここでは、上記図8に示した例のような構成のプラント監視制御システムを例にして説明する。また、この例は、上記の通り、タイムスタンプ付きデータは、時系列的に変化し得る様々なデータ(リアルタイムデータ;各種測定値や何等かのカウント値など)に対して、タイムスタンプを付与したものであるが、この例に限らない。また、この例では、上記の通り、メモリの所定の記憶領域には、各データ種別毎に最新データのみが格納されるようにし、その為に各データの相対的な時系列関係(時間的な前後関係;相対的な新旧関係)を判定するものであるが、この例に限らない。但し、以下の説明では、基本的に、この様な一例に応じて説明するものとする。

0081

図1は、本例のプラント監視制御システムの構成例である。
尚、図1は、一例として、各装置毎に共有ローカルデータ領域を保有する複数の装置間で、その共有ローカルデータ領域に格納される時系列に変化するリアルタイムデータを相互に更新、参照、共有するシステムを示すが、この例に限らない。例えば、共有ローカルデータ領域は、必ずしも必要ないものである。本手法は、タイムスタンプによって時系列データを管理するシステムに関するものと言える。

0082

図1に示す構成例では、複数の装置10が伝送路1に接続しており、伝送路1を介して相互にデータ送受信できる構成となっている。各装置10は、例えばコンピュータ装置であり、不図示のCPU、メモリ等を備えている。そして、メモリには予め所定のアプリケーションプログラムが記憶されている。CPUが、アプリケーションプログラムを実行することで、以下に説明する装置10の各種処理機能が実現される。例えば、以下に説明するタイムスタンプ精度算定処理部13、タイムスタンプ正規化処理部14、データ情報送受信処理部15、アプリケーション処理部16、定刻通知処理部21、定刻通知受信処理部22、精度算定処理部23等の各種処理機能が実現される。あるいは、後述するデータ合成部等も、CPUが、アプリケーションプログラムを実行することで実現される。

0083

各装置10は、例えば上記メモリ内に共通データローカル領域11を有している。この共通データローカル領域11自体は、上記従来の共通データローカル領域201と同じであってもよく、複数の装置10間で共有するリアルタイムデータを格納する記憶領域である。共通データローカル領域11内は、特に図示しないが、上記「データ情報1」、「データ情報2」等の各データ種別毎のデータ格納領域が、予め決められている。

0084

また、各装置10は、アプリケーション処理部16、内部時計12を有しており、これらは上記従来の機能・構成と見做しても構わない。そして、各装置10は、更に図示のタイムスタンプ精度算定処理部13、タイムスタンプ正規化処理部14、データ情報送受信処理部15等を有している。これらについては後に説明する。

0085

尚、上記データ種別とは、例えば従来で説明したように例えば何等かの回数/カウント値や、あるいは電圧値、電流値、温度、湿度回転数等の各種計測データ等であり、更に測定場所等が加わる場合もある。但し、これらの例に限らない。基本的には、アプリケーション処理に伴って生成されるデータや、アプリケーション処理で用いるデータ等であるが、この例に限らない。

0086

また、本例では、上記各データ種別毎の各データ格納領域(共通データローカル領域11)には、そのデータ種別に係わる最新データが格納されるように制御されるものとするが、この例に限らない。すなわち、上記の通り、本手法に係わる各種データの格納領域は上記「共通データローカル領域11」のような共通データ(共有データ)の格納領域に限るものではなく、例えば各種データ種別毎の時系列データ等が格納される記憶領域等であっても構わない。つまり、各データ種別毎に常に最新データと見做されるデータのみが格納される(既存データに上書きされる)例に限るものではなく、各データ種別毎にデータが蓄積される例であっても構わない。

0087

但し、何れの場合でも、各データにはタイムスタンプが付加される。そして、タイムスタンプに基づいて、各データの相対的な時系列関係(時間的前後関係)を判定し、それによって最新データであるか否かを判定したり、時系列データとしての整合性を確保する(時間的に正しい順序に整列させる等)。時系列データに関しては、上記図13図15で説明したように、例えば、同一タイミングで発生したデータには、同一時刻のタイムスタンプが付与されるようにしないと、正しい合成データが得られないことになる。

0088

ここで、タイムスタンプは、各装置10毎に、その内部時計12の現在時刻に基づいて生成される。尚、内部時計12自体は、上記従来の内部時計202と同じであってよい。
上述したように、各内部時計12の時刻は、たとえ定期的に時刻補正を行ったとしても、殆ど常に多少は狂っているものと見做してよい。この為、内部時計12の時刻をそのままタイムスタンプ時刻とすると、複数の装置10で同一タイミングで発生したデータには、相互に異なる時刻のタイムスタンプが付与される可能性が高いことになる。

0089

本手法では、複数の装置10で上記タイムスタンプ付きデータが生成されるシステムにおいて、各装置10の各内部時計12の時刻が上記のように相互に異なっていても、各データの相対的な時系列関係をタイムスタンプに基づいて正しく判定できるようにする。その為に、上述したタイムスタンプ精度を、自動的に適切なものに設定できるようにする。これによって、例えば、各装置10で正しく最新データを共有できるようになる。あるいは例えば、同一タイミングで発生したデータには、同一のタイムスタンプ時刻が付与されるようにでき、以って例えば上記正しい合成データが得られるようになる。

0090

この様な適切なタイムスタンプ精度を自動的に決定する処理は、図示のタイムスタンプ精度算定処理部13が実行する。
タイムスタンプ精度算定処理部13は、自装置の内部時計12と各他の装置10の内部時計12と差異(時差)に基づいて、タイムスタンプ精度を決定する。これは、そのときの状況に応じた適切なタイムスタンプ精度を決定できるものと言える。

0091

タイムスタンプ精度算定処理部13は、例えば、上記自装置の内部時計12と各他の装置10の内部時計12と差異(時差)に基づいて、システム全体としての最大の時差を求める。そして、この最大時差に基づいて、タイムスタンプ精度を決定する。これは、例えば、この最大時差と、予め設定されているタイムスタンプ精度の候補群とに基づいて、タイムスタンプ精度を決定する。これは、例えば、各候補のなかで最大時差に最も近い候補を、タイムスタンプ精度に決定するが、更に、最大時差よりも大きいことを条件に加えてもよい。詳しくは後述する。

0092

また、タイムスタンプ精度算定処理部13は、上記決定したタイムスタンプ精度を、他の各装置10に通知するようにしてもよい。これによって、システム上の全ての装置10において同じタイムスタンプ精度を用いてタイムスタンプ生成が行われることになる。但し、この通知は必ずしも必要ないものと考えてもよい。つまり、本手法によれば、各装置10で各々のタイムスタンプ精度算定処理部13がそれぞれタイムスタンプ精度の決定処理を行っても、理屈上は、全ての装置10で同じタイムスタンプ精度に決定されるはずであるからである。これは、「システム上の最大時差」は、どの装置で求めても同じとなるはずであるからである。但し、実際には、通信状況によっては、通信時間に多少の違いが生じる可能性はあり、これより各装置10で決定したタイムスタンプ精度が、相互に異なるものとなる可能性はある。これより、例えば、予め決められた装置10のみが、そのタイムスタンプ精度算定処理部13によってタイムスタンプ精度を決定して、これを他の装置10へ通知して使用させるようにしてもよい。

0093

タイムスタンプ正規化処理部14は、例えば任意のデータ種別に係わる任意の新データが生成/取得される毎に(更新データが得られる毎に)、そのときの内部時計12の現在時刻に基づいてタイムスタンプを生成する。但し、内部時計12の現在時刻をそのままタイムスタンプ時刻とするのではなく、上記タイムスタンプ精度算定処理部13によって決定されたタイムスタンプ精度に応じて、内部時計12の現在時刻に対する正規化処理を行うことで、タイムスタンプ時刻を求めることで、タイムスタンプを生成する。

0094

例えば、タイムスタンプ精度が100ミリ秒である場合には、内部時計12の現在時刻は正規化処理によって100ミリ秒単位の時刻に変換されて、これがタイムスタンプ時刻となる。例えば、内部時計12の現在時刻が“01時02分34秒214ミリ秒”であった場合には、正規化処理によってタイムスタンプ時刻=“01時02分34秒200ミリ秒”(“01時02分34.2秒)等となる。詳しくは後述する。

0095

タイムスタンプ正規化処理部14は、例えば、任意のデータに係わるタイムスタンプを生成する際に、そのときの自装置の内部時計12の時刻から、上記タイムスタンプ精度算定処理部13によって決定されたタイムスタンプ精度に応じたタイムスタンプを生成する。そして、このデータに、生成したタイムスタンプを付与する。尚、これより、タイムスタンプ正規化処理部14は、タイムスタンプ生成・付与部と呼んでもよいものとする。

0096

アプリケーション処理部16は、基本的には上記従来と略同様であってよい。すなわち、アプリケーション処理部16は、上記従来のアプリケーション処理を実行するものであってよく、任意の処理を実行し、それに伴って共通データローカル領域11の任意のデータ種別に係わる更新データの生成等を行って、これを基本的には共通データローカル領域11に上書き格納する。但し、その際、上記タイムスタンプ正規化処理部14が、例えば上記のようにタイムスタンプを生成して、これを更新データに付加する。

0097

また、データ情報送受信処理部15は、その基本的な動作は、上記従来の送信処理/受信処理と略同様の処理を実行するものと見做してよい。なお、送信周期は、後述する本手法により適宜自動的に決定されたものであってもよい。また、受信処理の際に後述する優先制御判定処理を行う形態もあってよい。

0098

データ情報送受信処理部15は、例えば上記共通データローカル領域11の任意のデータ種別のデータ更新がある毎に、この更新データ(タイムスタンプ付き)を他の全ての装置10へ送信する。尚、送信周期は、後述する本手法により適宜自動的に決定されたものであってもよい。

0099

また、データ情報送受信処理部15は、任意の他の装置10からその更新データ(タイムスタンプ付き)が送信されてきた場合、これを受信して、共通データローカル領域11に上書き格納するか否かを判定する。この判定には、タイムスタンプを用いる。あるいは、場合によっては更に後述する優先度情報を用いる。そして、上書き格納すると判定した場合には、この受信データを共通データローカル領域11に上書き格納する。

0100

上記データ情報送受信処理部15についても、詳しくは後述する。
以下、上記各種処理機能部について、更に詳細に説明する。
図2は、タイムスタンプ精度算定処理部13の詳細構成図である。

0101

図3は、タイムスタンプ精度算定処理部13の処理シーケンスを、装置10Aを主体として、具体的にその動作を示した図である。
以下、図2図3を参照してタイムスタンプ精度算定処理部13について説明する。

0102

タイムスタンプ精度算定処理部13は、例えば以下に説明するタイムスタンプ精度の決定処理を、例えば定期的に行う。これによって、そのときの状況に応じた適切なタイムスタンプ精度を動的に決定することができる。

0103

タイムスタンプ精度算定処理部13は、例えば図2に示す定刻通知処理部21、定刻通知受信処理部22、精度算定処理部23、タイムスタンプ精度テーブル記憶部24等を有する。これら各種処理機能部について、以下、まず、概略的に説明する。

0104

定刻通知処理部21は、自装置の内部時計12の時刻が予め登録された定刻になると、所定の定刻通知をシステム内の各他の装置10に通知する。その後、この定刻通知に対する他の装置10からの応答(定刻通知応答)を受信することで、定刻通知の送信から応答受信までの時間差により、自装置と他の各装置10との間の伝送遅延時間を算出する。定刻通知のフォーマットは、何でも良いが、例えば自装置の識別IDと上記定刻等の情報が含まれる。

0105

尚、上記定刻は、上記定刻通知の送信時刻の一例と見做しても良い。換言すれば、上記定刻通知に限らず、その送信時刻を含むパケットを通知するものであればよいと見做すこともできる。

0106

定刻通知受信処理部22は、上記伝送遅延時間を既に算出済みの状態で任意の他の装置からの上記定刻通知を受信すると、この受信時刻と、上記送信側の定刻と、上記伝送遅延時間とに基づいて、この定刻通知の送信元の装置10の内部時計12と自装置の内部時計12との時差を算出する。これは、受信時刻と定刻との差を求め、この差から伝送遅延時間を差し引くことで、上記内部時計の時差を算出する。つまり、
時差=(受信時刻−定刻)−伝送遅延時間
である。

0107

仮に両装置の内部時計12が完全に正確であるならば、受信時刻=定刻+伝送遅延時間となるはずであるので、上記時差は‘0’となるはずである。
尚、定刻通知受信処理部22は、上記任意の他の装置10からの上記定刻通知を受信したら、直ちに上記定刻通知応答を送信元へ返信する処理も行う。

0108

定刻通知受信処理部22は、システム上の他の全ての装置10に関して、上記自装置との時差の算出を行ったら、これら時差に基づいて「システム上の最大時差」を算出する。これは、上記各時差の中で最大の時差と最小の時差とを抽出して、これらの差分(最大の時差−最小の時差)を上記「システム上の最大時差」とする。例えば、システム全体で装置10が5台あるものとし、自装置と各他の装置10との時差が、+50、+80、−100、−200であったならば、+80−(−200)=280が、上記「システム上の最大時差」となる。

0109

尚、上記「システム上の最大時差を」を算出する処理は、精度算定処理部23が行うものとしてもよい。
尚、上記の例に限らず、例えばシステム上で自装置と同一のグループに属する他の全ての装置10に関して、上記自装置との時差の算出を行って、これらに基づいて同グループ内での上記最大時差を求めるようにしてもよい。但し、この様なグループ内での最大時差も、上記「システム上の最大時差」の一例と扱うものとする。尚、例えば、グループ分けは予め開発者等が任意に行っており、各グループ毎にそのグループに属する装置10の識別用ID等が、登録されているものとしてもよいが、この例に限らない。

0110

タイムスタンプ精度テーブル記憶部24には、タイムスタンプ精度テーブル30が記憶されている。タイムスタンプ精度テーブル30には、予め、タイムスタンプ精度の候補が複数登録されている(図示のタイムスタンプ精度31)。図示の例では、10msec、50msec、100msec、500msecの4つの候補が、登録されている。

0111

精度算定処理部23は、上記複数の候補のなかから上記「システム上の最大時差」に応じたタイムスタンプ精度(システム・タイムスタンプ精度)を選択・決定する。例えば、上記各候補のなかで上記「システム上の最大時差」以上の候補を全て抽出し、抽出された候補のなかで最小の候補を、タイムスタンプ精度に決定する。また、上記の通り、精度算定処理部23は、更に、上記「システム上の最大時差を」を算出する処理を行うものであってもよい。

0112

尚、上記のことから、例えば、「定刻通知処理部21+定刻通知受信処理部22」は、例えば任意の他の装置10との通信に基づいて自装置と該他の装置10との伝送遅延時間を求め、該他の装置10から送信される所定の通知の該他の装置10における送信時刻と、自装置における該通知の受信時刻と、上記伝送遅延時間とに基づいて、自装置の内部時計12と該他の装置10の内部時計12との時差を算出する時差算出機能を有するものと言うこともできる。

0113

また、精度算定処理部23は、例えば、上記時差算出機能によって各他の装置10との各時差を算出したら、これら各時差から「システム上の最大時差」を求め、この最大時差に基づいて上記複数の候補のなかからタイムスタンプ精度を決定するものと言うこともできる。

0114

あるいは、上記タイムスタンプ精度テーブル30には、更に、上記各候補に対応するデータ更新周期32も登録されており、上記タイムスタンプ精度に決定された候補に対応するデータ更新周期32を、装置内の何等かのアプリケーション処理のデータ更新周期(データ参照処理周期)に設定するようにしてもよい。図示の例では、データ更新周期32は、対応するタイムスタンプ精度31の半分の値となっているが、これは一例に過ぎない。基本的に、データ更新周期32は、対応するタイムスタンプ精度31の値以下となっていれば、何でも良い。

0115

あるいは、上記タイムスタンプ精度に決定された候補に対応するデータ更新周期32を、リアルタイムデータの他装置への送信処理の周期(送信周期)に設定するようにしてもよい。これについては後述する。

0116

また、上記図1に示す各種処理機能部は、例えば下記の機能を有するものと言うこともできる。
まず、上記タイムスタンプ正規化処理部14は、アプリケーション処理から自装置内のローカルデータバッファ内のリアルタイムデータを更新する際に、自装置の内部時計12から得た現在時刻(データ更新時刻)を、上記決定されたタイムスタンプ精度(時刻の粒度)に丸めて(タイムスタンプの正規化処理)、当該リアルタイムデータのタイムスタンプとしローカルデータバッファに格納する。ローカルデータバッファの一例が、上記共通データローカル領域11である。

0117

また、上記データ情報送受信処理部15の送信処理は、例えば一例としては、上記決定されたタイムスタンプ精度に対応するデータ更新周期32を、送信周期に自動設定して、この送信周期で、ローカルデータバッファに格納されたリアルタイムデータとタイムスタンプを、各他の装置10へ送信する。但し、リアルタイムデータが更新されている場合のみ、送信を行う。

0118

また、上記データ情報送受信処理部15の受信処理は、任意の他の装置10から送信される上記リアルタイムデータとタイムスタンプを受信すると、このタイムスタンプが自装置のローカルデータバッファに格納されたタイムスタンプと比較して新しい場合には、受信したリアルタイムデータとタイムスタンプをローカルデータバッファに格納する(上書きする)。

0119

また、上記データ情報送受信処理部15の受信処理は、上記タイムスタンプの比較の結果、同一である場合には、予め設定されている優先順位に従って、上記受信データをローカルデータバッファに格納する(上書きする)か否かを判定するようにしてもよい。つまり、ローカルデータバッファの格納データを更新するか否かを判定する。優先順位は、例えばシステム内の全ての装置10間の優先順位を示す情報であり、本例では「装置10A>装置10B>装置10C」等する。つまり、装置10Aが最も優先順位が高いものとする。また、この例の場合、リアルタイムデータには、タイムスタンプだけでなく、後述する優先度情報等も付与される。優先度情報とは、そのリアルタイムデータの生成元装置を示す識別ID等である。そして、例えば、上記受信データの優先度情報が“装置B”であり、ローカルデータバッファの既存データの優先度情報が“装置C”であった場合には、受信データの方が優先順位が高いことになるので、受信データをローカルデータバッファに格納する(上書きする)ものと判定することになる。一方、既存データの方が優先される場合には、受信データは破棄する等して更新は行わないようにする。

0120

以下、上記図2の各種処理機能部について更に詳細に説明する。
まず、定刻通知処理部21は、自装置の内部時計12の現在時刻が、予め決められた定刻(ここでは装置10Aに関しては01時00分00秒000ミリ秒とする)となる毎に、定刻通知を他の全ての装置10(ここでは装置10Bと装置10C)へ送信する。尚、定刻通知は、例えば、ヘッダ部にパケット種別=定刻通知があり、データ部に上記定刻(01時00分00秒000ミリ秒)が格納されたパケットであるが、この例に限らない。

0121

尚、上記定刻は開発者等が任意に決めてよいが、全ての装置10において、自装置の定刻が予め登録されているものとする。尚、更に、他の装置10の定刻も予め登録されている構成としてもよい。定刻は、後述する時計差異(時差)を求める際に用いられる。尚、全ての装置10で相互に異なる定刻が設定されていてもよいし、全ての装置10で同一の定刻が設定されていてもよいが、これらの例に限らない。

0122

各装置10の定刻通知受信処理部22は、上記定刻通知を受信する毎に、直ちにその送信元へ定刻通知応答を返信する。図示の例では、例えば、装置10Aからの定刻通知Na-bを受信した装置10Bは、直ちに定刻通知応答Ra-bを装置10Aに返信する。同様に、装置10Aからの定刻通知Na-cを受信した装置10Cは、直ちに定刻通知応答Ra-cを装置10Aに返信する。

0123

定刻通知処理部21は、上記各定刻通知応答の受信時刻を記録する。これは、定刻通知応答受信時の自装置の内部時計12の時刻である。上記の例では、上記定刻通知応答Ra-bの受信時刻と、上記定刻通知応答Ra-cの受信時刻を、それぞれ記録する。そして、自装置の上記定刻と、各受信時刻とに基づいて、自装置と他の各装置10との伝送遅延時間を算出する。

0124

ここでは、仮に図3の図上上側に示すように、装置10Aは内部時計12の時刻“01時00分00秒010ミリ秒”に定刻通知応答Ra-bを受信し、内部時計12の時刻“01時00分00秒020ミリ秒”に定刻通知応答Ra-cを受信したものとする。

0125

この例では、まず、装置10A−装置10B間での定刻通知送信から応答受信までに10ミリ秒(10msec)掛かったことになり、この10ミリ秒は装置10A−装置10B間の往復パケット伝送時間と見做せる。よって、装置10A−装置10B間の(片道)のパケット伝送時間(伝送遅延時間)は、半分の5ミリ秒と見做せる。

0126

同様にして、上記の例では、装置10A−装置10C間での定刻通知送信から応答受信までに20ミリ秒掛かったことになり、この20ミリ秒は装置10A−装置10B間の往復のパケット伝送時間と見做せる。よって、装置10A−装置10B間の(片道)のパケット伝送時間(伝送遅延時間)は、半分の10ミリ秒と見做せる。

0127

尚、既に述べたことから、装置10A〜10Cは、何れも、内部時計12の時刻は、正しい時刻ではない(多少は狂っている)可能性が高い。しかし、同じ内部時計12の時刻を用いた送信時刻と受信時刻との差分によって上記伝送遅延時間を算出しているので、正しい伝送時間が求められることになる。

0128

上記のように、自装置と各他の装置10との間の伝送遅延時間を求めて記憶しておき、その後、上記定刻通知受信処理部22は、他の装置10からの上記定刻通知を受信すると、伝送遅延時間等を用いて、当該他の装置10(定刻通知の送信元装置)の内部時計12と自装置の内部時計12との時刻のズレ(時計差異;時差)を求める。

0129

すなわち、上記定刻通知の送信元装置の定刻と、送信元装置に係わる上記伝送遅延時間と、上記定刻通知の受信時刻とに基づいて、送信元装置の内部時計12と自装置の内部時計12との時刻のズレ(時計差異;時差)を求める。

0130

すなわち、以下の式によって時計差異(時差)を求める。
時計差異(時差)=定刻通知の受信時刻−定刻−伝送遅延時間
上記時計差異の算出処理について、図3の図上下側に示す一例を用いて説明する。

0131

尚、図3の例では、伝送遅延時間は、既に述べた通りとなるものとする。
この例では、装置10Aの定刻通知受信処理部22が、時計差異を求める場合を示す。また、この例では、装置10B、装置10Cの上記“定刻”は、両方とも“02時00分00秒000ミリ秒”であるものとする。この定刻は、例えば定刻通知に含まれていても良いが、この例に限らない。

0132

図示の例では、装置10Aは、まず、装置10Bからの定刻通知Nb-a(02時00分00秒000ミリ秒)を、装置10Aの内部時計12の時刻“01時59分59秒090ミリ秒”に受信している。つまり、この場合、明らかに、装置10Bの内部時計12は装置10Aの内部時計12よりも進んでいることになる。

0133

この場合、上記のように伝送遅延時間は5ミリ秒であるので、上記時計差異の算出式により、時計差異(時差)=
“01時59分59秒090ミリ秒”−“02時00分00秒000ミリ秒”−5ミリ秒
=−10ミリ秒−5ミリ秒
=−15ミリ秒となる。

0134

同様にして、装置10Cからの定刻通知Nc-aは、装置10Aの内部時計12の時刻“02時00分00秒040ミリ秒”に受信しており、装置10Cとの伝送遅延時間は上記の通り10ミリ秒であることから、上記時計差異の算出式により、時計差異(時差)=30ミリ秒が算出されることになる。

0135

以上のことから、装置10Aの内部時計12を基準にすると、相対的に、装置10Bの内部時計12は15ミリ秒進み、装置10Cの内部時計12は30ミリ秒遅れていることが分かる。そして、これより、この例の場合、「システム全体としての最大の時計差異」(上記「システム上の最大時差」)として、結果的に、装置10B−装置10C間の時計差異(=30−(−15)=45ミリ秒)が求められることになる。勿論、これは一例に過ぎない。

0136

精度算定処理部23は、上記定刻通知受信処理部22によって求められた上記「システム全体としての最大の時計差異」と、上記タイムスタンプ精度テーブル記憶部24に予め記憶されているタイムスタンプ精度テーブル30とに基づいて、上記タイムスタンプ正規化処理部14で用いるタイムスタンプ精度を決定する。

0137

この決定方法は、例えば、タイムスタンプ精度テーブル30に登録されている各タイムスタンプ精度31(各候補)の中で、上記「システム全体としての最大の時計差異」より大きく、且つ、そのなかで最小の候補を、上記タイムスタンプ正規化処理部14で用いるタイムスタンプ精度に決定する。

0138

図示の例では、タイムスタンプ精度テーブル30に登録されている各タイムスタンプ精度31(候補)は、10msec、50msec、100msec、500msecの4種類であり、これらの候補のなかで上記最大の時計差異=45ミリ秒より大きいのは50msec、100msec、500msecの3つである。これらの中で最小のものは50msecであるので、上記タイムスタンプ正規化処理部14で用いるタイムスタンプ精度は、50msecに決定されることになる。

0139

また、更に、タイムスタンプ精度テーブル30に基づいてデータ送信周期も決定するようにしてもよい。すなわち、このテーブル30には図示のように上記各タイムスタンプ精度31に対応付けてデータ更新周期32が登録されている。この中で上記決定したタイムスタンプ精度に対応するデータ更新周期32を、上記データ送信周期(システム・データ更新周期)に決定する。上記の例では、データ送信周期=25msecに決定されることになる。上記データ情報送受信処理部15は、このデータ送信周期に従って上記データ送信処理を行うものであり、一例について後に説明するものとする。

0140

図4に、上記のように決定されたタイムスタンプ精度(=50msec)とデータ送信周期(=25msec)に応じた動作イメージを示す。
但し、図4では優先度情報も用いて優先制御判定も行う例を示すが、この処理は必須ではない。この優先度に係わる処理は、複数の装置10による同一データ種別に係わる更新データに、同一タイムスタンプが付与されていた場合に、何れの更新データによって更新を行うのかを判定する処理である。本例においては、上記の通り、装置10A→装置10B→装置10Cの順に優先順位が高いものとする(装置10Aが最優先)。

0141

図4において、装置10Aにおいては、例えば、そのアプリケーション処理部16による任意の処理に伴って、共通データローカル領域11内のデータ種別「データ情報D1」のデータ更新が行われるものとする。その際、上記タイムスタンプ正規化処理部14によって、上記決定されたタイムスタンプ精度に応じたタイムスタンプが生成されて、このタイムスタンプが更新データに付与される。また、その際に「優先度情報」も付与するようにしてもよい。優先度情報は、例えば自装置(端末10A)の識別ID等である。換言すれば、上記更新データの生成元の装置10の識別ID等である。

0142

そして、この様なタイムスタンプ付き(更に優先度情報付き)の更新データ(リアルタイムデータ値など)が、タイムスタンプ正規化処理部14によって共通データローカル領域11に格納されると共に、データ情報送受信処理部15によって他の全ての装置10B、10Cへ送信される。但し、本例では、上記更新データの共通データローカル領域11への格納に関しては、優先制御判定を行って、場合によっては格納しないようにする。この優先制御判定は、後述するデータ受信時の優先制御判定と略同様であってよく、ここでは説明しないものとする。

0143

尚、ここでは、データ情報送受信処理部15は、送信処理に係わる図示のデータ情報送信処理部15aと、受信処理に係わる図示のデータ情報受信処理部15bとから成るものとする。

0144

上記データ情報送信処理部15aは、上記決定されたデータ送信周期で、共通データローカル領域11の格納データの更新の有無を判定して、更新有りの場合にはこのデータを他の全ての装置10B、10Cへ送信する。この送信データは、例えば上記のように、「更新データ(リアルタイムデータ値)+タイムスタンプ+優先度情報」等となるが、この例に限らない。尚、特に図示・説明しないが、上記従来のデータ識別子も含まれていてよい。

0145

上記各装置10B、10Cは、そのデータ情報受信処理部15bによって上記送信データを受信すると、そのタイムスタンプや優先度情報に基づいて、この受信データを共通データローカル領域11に上書き格納すべきか否か等を判定するが、これについてはここでは説明せず、受信側の処理については装置10Aについて以下に説明するものとする。

0146

ここで、図4に示す例では、装置10Aに対して、その共通データローカル領域11の図示のデータ種別「データ情報D2」に係わる更新データが、装置10Bと装置10Cからそれぞれ送信されてきたものとする。つまり、装置10Aは、装置10Bから送信される更新データD2bと、装置10Cから送信される更新データD2cとを受信するものとする。これら2つのデータD2b、D2cを受信する順番に係わらず、基本的にはそのタイムスタンプに基づいて、最終的にはより新しいデータが共通データローカル領域11に格納された状態となるように制御される。

0147

但し、更新データD2bとD2cとでタイムスタンプが同一であった場合には、その上記優先度情報に基づいて判定する。すなわち、この例では、更新データD2bの優先度情報は“装置B”、更新データD2cの優先度情報は“装置C”であり、ここでは上記の通り優先順位は「装置10A>装置10B>装置10C」と設定されていることから、更新データD2bの方が優先すると判定され、更新データD2bが共通データローカル領域11に格納される。

0148

尚、ここでは、更新データD2bとD2cは、何れも、共通データローカル領域11の図示のデータ種別「データ情報D2」に係わる既存データよりも新しいものとして説明している。もし、既存データの方が新しい場合には、当然、上記更新データD2bを共通データローカル領域11に格納する処理は行われず、既存データが格納された状態のままとなる。

0149

この様にして、タイムスタンプが同一の場合には、例えばシステム開発者望む優先順位が高い装置10のデータが、共通データローカル領域11に格納されることになる。
図5に、上記のように決定されたタイムスタンプ精度(=50msec)に応じた上記タイムスタンプ正規化処理部14の処理例、上記のように決定されたデータ送信周期(=25msec)に応じたデータ情報送受信処理部15の送信処理例を示す。尚、本説明では上記優先度情報は省略するものとする。

0150

また、図5の例では、共通データローカル領域11内のデータ種別「データ情報D1」に関して、アプリケーション処理によってタイミングt1,t2,t3,t4,t5でそれぞれ更新データが生成されたものとする。これら更新データは図示のD1(t1)、D1(t2)、D1(t3)、D1(t4)、D1(t5)である。

0151

上記の通り、ここではタイムスタンプ精度は50ミリ秒であるので、「タイムスタンプ正規化処理」において、50ミリ秒単位にタイムスタンプを集約するために、本例では、000ミリ秒および050ミリ秒の時刻(正規化時刻)の±25ミリ秒(50ミリ秒÷2)の範囲を、集約する範囲(正規化範囲)と定めている。勿論、これは一例に過ぎない。

0152

例えば、図示のデータ情報D1(t1)は、時刻“01時59分59秒012ミリ秒”における更新データであるが、「タイムスタンプ正規化処理」において、この時刻“01時59分59秒012ミリ秒”は、正規化範囲「“01時59分58秒975ミリ秒”<t≦“01時59分59秒025ミリ秒”」に含まれるため、正規化時刻(タイムスタンプ時刻)は“01時59分59秒000ミリ秒”となる。

0153

上記優先制御判定を行う場合には、このタイムスタンプ(01:59:59.000)が、共通データローカル領域11内の上記「データ情報D1」の既存データのタイムスタンプよりも新しい場合に、上記更新データD1(t1)に上記タイムスタンプ(01:59:59.000)を付加して上記「データ情報D1」の格納領域に上書き格納する。尚、その際、更に「優先度情報」(装置A)も付与して格納するようにしてもよい。

0154

尚、上記の例では既存の格納データのタイムスタンプは示されないが、上記更新データD1(t1)が図示のように格納されたものとし、次の更新データD1(t2)のタイムスタンプは図示のように(01:59:59.050)となることから、これは、この時点の既存の格納データである上記更新データD1(t1)のタイムスタンプ(01:59:59.000)よりも新しいことになる。よって、図示の通り、更新データD1(t2)がそのタイムスタンプ(01:59:59.050)と共に「データ情報D1」の格納領域に上書き格納されることになる。

0155

また、例えば更新データD1(t3)の生成時の内部時計12の時刻が、図示のように“01時59分59秒114ミリ秒”であったものとする。ここではタイムスタンプ精度は50msecであるので、正規化範囲を50msecとして正規化処理を行うことで、上記時刻“01時59分59秒114ミリ秒”からタイムスタンプ(01:59:59.100)が生成されることになる。そして、上記更新データD1(t3)にタイムスタンプ(01:59:59.100)を付加して共通データローカル領域11に格納することになる。更に、データ情報送受信処理部15が、このタイムスタンプ付き更新データD1(t3)を、他の各装置10B,10Cへ送信する。

0156

上記正規化処理は、どの様な方法で行ってよいが、上記の例ではタイムスタンプ精度は50msecであるので、例えば、タイムスタンプのミリ秒の下2桁が‘00’または‘50’となるようにする。つまり、050ミリ秒、100ミリ秒、150ミリ秒、200ミリ秒、250ミリ秒、・・・等となるようにする。そして、上記時刻のミリ秒の下2桁が例えば‘26’〜‘75’の範囲内である場合にはタイムスタンプのミリ秒の下2桁を‘50’に決定する。上記時刻のミリ秒の下2桁が例えば‘76’〜‘25’の範囲内である場合にはタイムスタンプのミリ秒の下2桁を‘00’にすると共に3桁目を+1インクリメントする。例えば、時刻が‘286’ミリ秒であった場合にはタイムスタンプは‘300’ミリ秒となる。

0157

また、上記図5の処理は、装置10Aで行われるものとすると、装置10Aの共通データローカル領域11には、装置10Aで生成された更新データだけが格納されるのではなく、他の装置10B、10Cで生成された更新データが格納される場合もある。特にこの様な場合において、更新データと既存の格納データとでタイムスタンプが同一となる場合が起こり得る。タイムスタンプが同一である場合、優先順位に応じた判定を行う。つまり、更新データの方が既存の格納データよりも優先順位が高ければ更新データを上書き格納し、低ければ格納しない。ここでは上記の通り優先順位は「装置10A>装置10B>装置10C」と設定されている。尚、この処理については受信処理の際にも行うものであり、後に図6に示す例を用いて詳しく説明するものとする。

0158

何れにしても、上記のようにタイムスタンプを生成することで、例えば複数の装置10で同じタイミングで発生したデータには、同一のタイムスタンプが付加される可能性が高くなる。つまり、例えば装置10Aと装置10Bで同時に発生したが、装置10Aでは時刻“01時59分59秒236ミリ秒”、装置10Bでは時刻“01時59分59秒271ミリ秒”に発生したと見做されるデータであっても、タイムスタンプは両方とも「01:59:59.250」となる。よって、タイムスタンプに基づく判定では、両データが同一タイミングで発生したものと見做されることになる。

0159

また、例えば、予めタイムスタンプ精度を固定的に設定する場合、時計差異(時差)が大きい場合も考慮してマージンを採って例えばタイムスタンプ精度を500msecや1秒等に設定することが考えられる。タイムスタンプ精度が仮に1秒とした場合、上記の例では両データともタイムスタンプは「01:59:59」となる。しかしながら、この場合、タイムスタンプの時刻と実際の時刻(あるいは内部時計の時刻)との差が大きくなり、上述した信頼性が損なわれることになる。

0160

これに対して、上記本手法では、上記のように「システム上の最大時差」に基づいてタイムスタンプ精度を決定するので、状況に応じた適切なタイムスタンプ精度を決定することができる。すなわち、上記本手法により決定されるタイムスタンプ精度は、「システム上の最大時差」よりも大きいので、例えば複数の装置10で同じタイミングに発生したデータには、同一のタイムスタンプが付加される可能性が高くなる。この条件に加えて更に出来るだけ小さい値となるようにタイムスタンプ精度を決定することで、タイムスタンプと実際の時刻との差は比較的小さくて済み、上述した信頼性が損なわれることはない。

0161

また、データ情報送受信処理部15は、ここでは上記のように決定されたデータ送信周期(=25msec)に従って共通データローカル領域11の格納データを、他の各装置10B,10Cへ送信する。但し、図5に示すように、データの更新が全く無い場合には、送信処理を行わない。データ更新の有無は、例えばデータ更新有無を示す不図示のフラグを設けておき、タイムスタンプ正規化処理部14はデータ格納を行う毎にフラグONし、データ情報送受信処理部15はフラグONである場合のみデータ送信を行うとともにフラグOFFする。勿論、これは一例であり、この例に限らない。

0162

また、上記の通り必須ではないが優先制御判定処理も行うようにしてもよい。
すなわち、まず、予め各装置10の優先順序が設定されている。これは、ユーザ等が任意に決めて設定しておく。ここでは、仮に「装置10A>装置10B>装置10C」であるものとする。つまり、装置10Aが最も優先順位が高いものとする。また、共通データローカル領域11に任意のデータを格納する際には、上記タイムスタンプだけでなく、そのデータを生成した装置を示す識別用ID等も一緒に格納する。

0163

そして、新たな更新データに対して上記のようにタイムスタンプを生成・付与した後にこれを共通データローカル領域11に格納する際に、既存の格納データのタイムスタンプと比較することで、既存データよりも新しい場合には新規更新データを上書き格納するが、既存データよりも古い場合には新規更新データは格納せずに例えば破棄する。そして、新規更新データと既存データのタイムスタンプ時刻が同一の場合には、上記優先順位に従って新規更新データを上書き格納するか否かを判定する。すなわち、新規更新データの生成元装置が、既存データの生成元装置よりも優先順位が高い場合には、新規更新データを上書き格納する。

0164

また、図6には、受信側の処理動作例を示す。
ここでは装置10Aの動作を示すものとし、図4で説明したように、データ種別「データ情報D2」に係わる更新データとして、装置10Bから送信される更新データD2bと、装置10Cから送信される更新データD2cとを受信するものとする。これら各更新データには上記優先度情報が付与されており、これよりD2bが装置10Bの更新データであり、D2cが装置10Cの更新データであると認識できるものとする。勿論、これらがデータ種別「データ情報D2」に係わる更新データであることも認識できる。

0165

上記各更新データD2b、D2cは、更新の都度、そのときの内部時計12の時刻に基づいて生成されたタイムスタンプが、図示のように付与されて送信されてくる。データ情報受信処理部15bは、受信した更新データのタイムスタンプが、共通データローカル領域11内の「データ情報D2」の格納領域の既存データのタイムスタンプよりも新しい場合に、この受信データを「データ情報D2」の格納領域に上書き格納する。一方、タイムスタンプが同一の場合には、優先順位に基づいて、既存データよりも優先順位が高い場合に、この受信データを「データ情報D2」の格納領域に上書き格納する。

0166

図示の例では、まず、装置10Bからの送信データD2b(01:59:59.000)を受信したとき、ここではこれは不図示の既存の格納データより新しいものとし、この受信データを自装置(装置10A)内の共通データローカル領域11内の「データ情報D2」の格納領域に格納する。

0167

次に、装置10Cからの送信データD2c(01:59:59.050)を受信すると、これは現在の「データ情報D2」の格納領域の格納データ(D2b(01:59:59.000))と比較してタイムスタンプが新しいので、「データ情報D2」の格納領域に、受信データD2c(01:59:59.050)に上書き格納する。つまり、「データ情報D2」の格納データを更新する。

0168

次に、装置10Cからの送信データD2c(01:59:59.100)を受信すると、これは現在の「データ情報D2」の格納領域の格納データ(D2c(01:59:59.050))と比較してタイムスタンプが新しいので、「データ情報D2」の格納領域にD2c(01:59:59.100)を上書き格納する。つまり、「データ情報D2」の格納データを更新する。

0169

次に、装置10Bからの送信データD2b(01:59:59.100)を受信すると、これは現在の「データ情報D2」の格納領域の格納データ(D2c(01:59:59.100))と比較してタイムスタンプが同じであるので、「優先制御判定」を行う。上記設定例では、装置Bは装置Cよりも優先されるので、更新を行うものと判定し、「データ情報D2」の格納領域にD2b(01:59:59.100)を上書き格納する。つまり、「データ情報D2」の格納データを更新する。

0170

次に、装置10Bからの送信データD2b(01:59:59.150)を受信すると、これは現在の「データ情報D2」の格納領域の格納データ(D2b(01:59:59.100))と比較してタイムスタンプが新しいので、「データ情報D2」の格納領域にD2b(01:59:59.150)を上書き格納する。つまり、「データ情報D2」の格納データを更新する。

0171

次に、装置10Cからの送信データD2c(01:59:59.150)を受信すると、これは現在の「データ情報D2」の格納領域の格納データ(D2b(01:59:59.150))と比較してタイムスタンプが同じであるので、「優先制御判定」を行う。上記設定例では、装置Bは装置Cよりも優先されるので、更新は行わないものと判定する。よって、「データ情報D2」の格納領域の格納データは、D2b(01:59:59.150)のままとなる。

0172

尚、アプリケーション処理部16は、任意のタイミングで共通データローカル領域11内の「データ情報D2」の格納領域にアクセスして、「データ情報D2」に係わるその時点の最新データを取得する。

0173

尚、既に述べたように、上記図1図6に示す例は、本手法を適用してシステムの一例に過ぎず、この様な例に限るものではなく、本手法は、複数の装置で各々自装置内の時計の時刻に基づいてタイムスタンプ付きデータを生成等するシステムに、適用されるものである。例えば上記図13図15で説明した様なデータを収集・蓄積して時系列データとするシステムに対しても、本手法は適用されるものである。

0174

すなわち、上記図13図15で説明したようなシステムを構成する複数の装置の場合、各装置が備える不図示の記憶部は、例えば随時生成されるタイムスタンプ付きデータを蓄積記憶するものである。つまり、この例では、記憶部は、最新データのみを格納するようなものではなく、従って、新たに生成した(あるいは他の装置から送信された)タイムスタンプ付きデータを、記憶部に上書き格納するか否かを判定するようなことは行わない。この例では、上記のようにタイムスタンプ付きデータを蓄積記憶することで、上記記憶部には、例えば各データ種別毎の時系列データが記憶されることになる。

0175

そして、上記図13図15で説明したように、例えば複数の時系列データを、それらのタイムスタンプの時刻に従って合成する合成処理を行うことで、合成データを生成する構成等があってよい。これに関して、特に、自装置の記憶部の時系列データと、他の装置の記憶部の時系列データとを合成する場合に、既に述べたように、適切な合成データが得られない可能性があった。

0176

尚、各装置に、この様な合成処理を行う不図示のデータ合成部があってもよいし、各装置の時系列データを収集する不図示のサーバ装置等に、データ合成部が備えられる構成であっても構わない。

0177

既に説明したように、複数の装置の内部時計は、相互に時刻のズレがある場合が多く、例えば内部時計の時刻をそのままタイムスタンプとして使用する場合には、例えば、複数の装置で同一タイミングで得られたデータであっても、異なる時刻のタイムスタンプが付与されることになり、合成データを正しく生成できないことになる。この様に複数の装置の内部時計同士に時差があっても、上記のように本手法では上記「システム上の最大時差」よりも大きい(荒い)タイムスタンプ精度に従ってタイムスタンプを生成するので、例えば複数の装置で同一タイミングで得られたデータには同一のタイムスタンプが付与される可能性が高くなる。よって、例えば正しい合成データが生成できる可能性が高くなる。

0178

尚、言うまでもないが、上記タイムスタンプ精度の複数の候補は、何れも、少なくとも内部時計12の時刻精度よりも“荒い”(悪い)ものとなるように設定する。上記の例では、内部時計12の時刻精度は、千分の1秒(1ミリ秒)単位であるのに対して、上記候補は最低でも百分の1秒(10ミリ秒)単位であり、内部時計12の時刻精度よりも“荒い”(悪い)ものとなっている。この様な候補のなかからタイムスタンプ精度を決定するのであるから、決定されるタイムスタンプ精度も、当然、内部時計12の時刻精度よりも“荒い”(悪い)ものとなる。

0179

上述したように、本手法では、システム上での送受信処理に伴う実測データに基づいて上記「システム上の最大時差」を求めて、これに基づいてタイムスタンプ精度を動的に決定している。つまり、その時の装置構成等の実際の状況に応じた適切なタイムスタンプ精度を自動的に動的に決定できる。また、装置構成等の変化があった場合にも、この変化に対応した適切なタイムスタンプ精度を自動的に動的に決定できる。あるいは、各装置10毎に、その内部時計の時刻精度(本当の時刻との差)は時間の経過と共に変化するものであり、以って上記「システム上の最大時差」も変化するものであるが、この様な変化にも対応した適切なタイムスタンプ精度を自動的に動的に決定できる。

0180

また、「データ情報送信処理」に係わるデータ配信周期を動的に決定することが可能になり、受信側装置においては配信されるデータ情報の配信頻度に合わせて処理負荷が変動するため、システム構成全体に動的に最適化されたデータ情報の配信が可能となる。

0181

以上説明したように本手法によれば、複数の装置で各々自装置内の時計の時刻に基づいてタイムスタンプ付きデータを生成等するシステムにおいて、タイムスタンプの精度を、そのときの状況に応じて適宜適切な値に設定することができ、以って各データの相対的な時系列関係を正しく判定できる。

0182

あるいは、上述した本手法によれば、複数の装置で構成されリアルタイムデータを取得・記憶するシステムであって、各リアルタイムデータにタイムスタンプを付与するシステムにおいて、システムとして有意義な精度のタイムスタンプを有したリアルタイムデータを、得ることができる。尚、システムとして有意義な精度のタイムスタンプとは、背景技術で説明したデータの連続性と整合性が、満たされるようにするタイムスタンプ精度を意味する。

0183

また、過度なリアルタイムデータの更新を抑制することが可能になり各装置の処理負荷を適正化することが可能になる。例えば、上記のように、共有データとしてのリアルタイムデータに関して、新たな更新データと、共有メモリ等に記憶されている既存データとの時系列的関係(新旧関係)を、タイムスタンプに基づいて正しく判定でき、以ってほぼ確実に最新データが共有メモリ等に記憶された状態となると共に、ほぼ確実に全ての装置おいて同じデータが最新データとして共有メモリ等に記憶された状態となる。尚、共有メモリの一例が上記共通データローカル領域11である。

0184

本手法では、複数の装置で各々自装置内の時計の時刻に基づいてタイムスタンプ付きデータを生成等するシステムにおいて、装置間で定刻に相互に時刻情報の通信を行い、この通信結果に基づいて各装置間の伝送遅延と自装置と他の装置との時計差異(時差)を求める。そして、システム全体としての時計差異の最大値(システム上も最大時差)を求め、これに基づいて自動的にタイムスタンプ精度を決定する。決定したタイムスタンプ精度に基づいて各リアルタイムデータのタイムスタンプを生成(タイムスタンプ正規化)する。

0185

上記のことから、システムとして有意義な精度のタイムスタンプを有したリアルタイムデータを得ることができる。すなわち、例えば、各装置の内部時計の狂いによって、複数の装置で同時に生成/更新されたデータであっても、その生成/更新時刻は異なるものとなっても、タイムスタンプは同一となる可能性が高くなるようにできる。これによって、タイムスタンプに基づく判定によって、これらのデータは同一タイミングで生成/更新されたものと見做されるようにできる。これより、例えばこれら複数のデータの合成データを生成する必要がある場合でも、正しい合成データを生成可能となる。

0186

また、タイムスタンプ精度より短い更新周期によりリアルタイムデータの配信・等値化を行うことで、過度なリアルタイムデータの更新を抑制することが可能になり、各装置の処理負荷を適正化することが可能になる。

0187

ここで、図1のタイムスタンプ精度算定処理部13の構成は、図2の例に限らない。以下、他の例について説明する。
図7に、図1のタイムスタンプ精度算定処理部13の詳細構成図(他の例)を示す。

0188

尚、図7において、図2に示す構成と略同一のものについては、同一符号を付してあり、その説明は省略または簡略化するものとする。
これより、まず、図7の例においても、タイムスタンプ精度算定処理部13は、上記図2の例と同様に上記定刻通知処理部21、定刻通知受信処理部22を有しており、これらについては説明を省略する。

0189

一方で、図7の例では、タイムスタンプ精度算定処理部13は、上記タイムスタンプ精度テーブル記憶部24(タイムスタンプ精度テーブル30)は有していない。その代わりに、タイムスタンプ精度算出条件データ記憶部25を有している。

0190

タイムスタンプ精度算出条件データ記憶部25には、予め、図示のタイムスタンプ精度算出条件データ40が記憶されている。タイムスタンプ精度算出条件データ40は、図示のタイムスタンプ精度間隔41、データ更新周期係数42等を有する。

0191

また、図7の例では、タイムスタンプ精度算定処理部13は、更に、精度算定処理部50を有する。精度算定処理部50は、上記精度算定処理部23と同様に、例えば、上記時差算出機能によって各他の装置10との各時差を算出したら、これら各時差から「システム上の最大時差」を求める処理機能を有する。精度算定処理部50は、この「システム上の最大時差」と、上記タイムスタンプ精度算出条件データ40に基づいて、上記タイムスタンプ精度(システム・タイムスタンプ精度)を算出する。この算出処理の一例を、以下、説明する。

0192

算出方法としては、例えば、
n = (“システム上の最大時差÷タイムスタンプ精度間隔”の商) + 1
タイムスタンプ精度(システム・タイムスタンプ精度)
= タイムスタンプ精度間隔 × n
等とするが、この例に限らない。

0193

尚、上記算出式におけるタイムスタンプ精度間隔は、タイムスタンプ精度算出条件データ40のタイムスタンプ精度間隔41の値を用いる。図7に示す例では、タイムスタンプ精度間隔41=‘50’(msec)であるので、算出式は下記のようになる。

0194

n = (“システム上の最大時差÷50”の商) + 1
タイムスタンプ精度 = 50 × n
上記算出方法によれば、タイムスタンプ精度と成り得る値は、タイムスタンプ精度間隔のn倍(つまり、整数倍)となる。よって、図7に示す例の場合、タイムスタンプ精度と成り得る値は、50、100、150、200、250、・・・等となる。これは、基本的には、タイムスタンプ精度の候補が、50、100、150、200、250、・・・であることと同義と見做してよいものである。

0195

そして、上記算出式によれば、これらの候補の中で、「システム上の最大時差」より大きく、且つ、そのなかで最小のものが、タイムスタンプ精度に決定されることになる。換言すれば、「システム上の最大時差」より候補の中で最も「システム上の最大時差」に近いものが、タイムスタンプ精度に決定される。

0196

仮に、「システム上の最大時差」=‘135’であったならば、135÷50の商は‘2’であるので、n=3となる。よって、タイムスタンプ精度=50×3=150となる。

0197

また、図7の例において、タイムスタンプ精度算定処理部13は、更に、上記算出したタイムスタンプ精度と、上記タイムスタンプ精度算出条件データ40のデータ更新周期係数42とを用いて、以下の算出式により上記システム・データ更新周期を算出するようにしてもよい。

0198

システム・データ更新周期=タイムスタンプ精度×データ更新周期係数
データ更新周期係数42は、タイムスタンプ精度に対する任意の係数であり、上記のように、システム・データ更新周期は、タイムスタンプ精度にデータ更新周期係数を掛け算した値になる。

0199

上述したように、図2の方式ではシステム・タイムスタンプ精度、システム・データ更新周期と成り得る値(複数の候補)を予め登録しておき選択するのに対して、図7の方式ではこれらを算出する為の算出式や所定値、係数などを予め登録しておき算出する方法を採っている。但し、「システム上の最大時差」に応じたシステム・タイムスタンプ精度、システム・データ更新周期を求める点では、図2図7は同じである。

0200

上記図7に係わる方式では、図2の方式に比べて、予め保持するデータ量が少なくて済む。また、上記図7に係わる方式では、図2の方式でのタイムスタンプ精度テーブル30内に定義されたデータより大きい「システム上の最大時差」が発生した場合でも対応できる。つまり、図2の例では、「システム上の最大時差」が500(ms)以上である場合には、対応出来ないことになる。また、上記図7に係わる方式では、システム全体の稼働状況に応じてタイムスタンプ精度の間隔を延ばしたりすることができ、より柔軟な対応が可能となる。

0201

1伝送路
10(10A,10B,10C) 装置
11共通データローカル領域
12内部時計
13タイムスタンプ精度算定処理部
14 タイムスタンプ正規化処理部
15データ情報送受信処理部
16アプリケーション処理部
21 定刻通知処理部
22 定刻通知受信処理部
23 精度算定処理部
24 タイムスタンプ精度テーブル記憶部
25 タイムスタンプ精度算出条件データ記憶部
30 タイムスタンプ精度テーブル
31 タイムスタンプ精度
32データ更新周期
41 タイムスタンプ精度間隔
42 データ更新周期係数
50 精度算定処理部

ページトップへ

この技術を出願した法人

この技術を発明した人物

ページトップへ

関連する挑戦したい社会課題

関連する公募課題

該当するデータがありません

ページトップへ

技術視点だけで見ていませんか?

この技術の活用可能性がある分野

分野別動向を把握したい方- 事業化視点で見る -

(分野番号表示ON)※整理標準化データをもとに当社作成

ページトップへ

おススメ サービス

おススメ astavisionコンテンツ

新着 最近 公開された関連が強い技術

  • 三菱電機株式会社の「 故障診断装置」が 公開されました。( 2019/02/14)

    【課題】波形データを時間領域で分析したデータに基づき構成された単位空間におけるマハラノビス距離に基づき故障診断を実行する場合であっても、高精度な故障判定が可能となる故障診断装置を得ることを目的とする。... 詳細

  • 三菱電機株式会社の「 サイバー攻撃検知システム」が 公開されました。( 2017/07/27)

    【課題】最新のサイバーアタックを検知できるサイバー攻撃検知システムを得る。【解決手段】原子力デジタル計装制御システムから出力される、サイバーセキュリティの情報を含むセキュリティイベント1と、原子力発電... 詳細

  • 三菱電機株式会社の「 プラント監視用計算機の更新方法」が 公開されました。( 2017/07/27)

    【課題】過去の日誌データなどの管理データを欠測させることなくプラントの監視用計算機を更新することができるプラント監視用計算機の更新方法を提供する。【解決手段】運用系の既設監視用計算機10aの二重化処理... 詳細

この 技術と関連性が強い技術

関連性が強い 技術一覧

この 技術と関連性が強い人物

関連性が強い人物一覧

この 技術と関連する社会課題

関連する挑戦したい社会課題一覧

この 技術と関連する公募課題

該当するデータがありません

astavision 新着記事

サイト情報について

本サービスは、国が公開している情報(公開特許公報、特許整理標準化データ等)を元に構成されています。出典元のデータには一部間違いやノイズがあり、情報の正確さについては保証致しかねます。また一時的に、各データの収録範囲や更新周期によって、一部の情報が正しく表示されないことがございます。当サイトの情報を元にした諸問題、不利益等について当方は何ら責任を負いかねることを予めご承知おきのほど宜しくお願い申し上げます。

主たる情報の出典

特許情報…特許整理標準化データ(XML編)、公開特許公報、特許公報、審決公報、Patent Map Guidance System データ