(57)【要約】【課題】センサからのデータの到着頻度が一時的に高くなった場合でも、ゲートウェイ装置の主メモリ内に設けられるバッファにデータの加工に必要なデータを保持する。【解決手段】データ取得部２１０は、取得・加工ルールＤＢ２５０に格納されている取得ルールに従ってセンサのデータを取得する。そして、データ取得部２１０は、バッファ設定情報ＤＢに格納されているバッファ設定情報に従って、取得したデータについて所定の時間間隔毎に代表値を求め、主メモリ内に設けられたバッファ２７０に代表値を少なくとも所定の数保存する。加工部２２０は、取得・加工ルールＤＢ２５０に格納されている加工ルールに従って、バッファ２７０に保存されている所定の数の代表値を加工して加工データを求める。データアップ部２３０は、加工部２２０によって求められた加工データをＭ２Ｍサーバに送信する。【選択図】図２
2016006922.tif 000002
【特許請求の範囲】
【請求項１】
所定の取得ルールに従ってセンサのデータを取得し、取得した当該データについて所定の時間間隔毎に代表値を求め、主メモリ内に設けられたバッファに当該代表値を少なくとも所定の数保存するデータ取得部と、
前記バッファに保存されている前記所定の数の代表値を所定の加工ルールに従って加工して加工データを求める加工部と、
前記加工部によって求められた加工データをデータ収集サーバに送信するデータアップ部と、
を備えることを特徴とするゲートウェイ装置。
【請求項２】
請求項１に記載のゲートウェイ装置と、データ収集サーバとを備えるセンサデータ収集システムであって、
前記データ収集サーバが、
センサのデータ種別と、時間間隔と、当該時間間隔の整数倍である総時間と、代表値の取得方法とを含むバッファ設定情報を格納する設定管理データベースと、
前記設定管理データベースからバッファ設定情報を読み出し、当該バッファ設定情報を出力装置に表示し、修正された修正時間間隔と修正総時間とを受け付けると、当該修正時間間隔と当該修正総時間とに基づいて前記センサのデータ種別毎にバッファのメモリ消費量を求め、当該センサのデータ種別毎のメモリ消費量と所定のアプリケーションプログラムによるメモリ消費量との合計を出力装置に表示し、当該メモリ消費量の合計について承認の有無を受け付け、承認されたことを受け付けると、前記バッファ設定情報に含まれる時間間隔と総時間とをそれぞれ前記修正時間間隔と前記修正総時間とに置き換える設定補助部と、
前記設定補助部によって変更されたバッファ設定情報を前記ゲートウェイ装置に送信する設定情報配信部と、
前記ゲートウェイ装置から送信される加工データを収集するデータ収集部と、
を備え、
前記ゲートウェイ装置が、前記データ収集サーバから送信されるバッファ設定情報を受信する設定情報取得部を備え、
前記ゲートウェイ装置のデータ取得部が、前記設定情報取得部によって受信されたバッファ設定情報に含まれるセンサのデータ種別毎に、当該バッファ設定情報に含まれる時間間隔と総時間とに基づいて前記所定の数を求めて少なくとも当該所定の数の配列要素を有するバッファを確保するとともに当該時間間隔を前記所定の時間間隔として設定し、前記バッファ設定情報に含まれる代表値の取得方法に従って前記センサのデータ種別によって指定されるデータの代表値を求める、
ことを特徴とするセンサデータ収集システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、センサからデータを収集し、データ収集サーバに送信するゲートウェイ装置およびセンサデータ収集システムに関する。
【背景技術】
【０００２】
近年、様々な産業分野において、機器の自動制御・故障予兆検知を実現するため、機器やインフラに取り付けられたセンサからデータを収集・分析したいとするニーズが増大している。センサデータを分析し、故障予兆検知のようなデータ活用の方法を確立するためには、Ｍ２Ｍ（Ｍａｃｈｉｎｅ  ｔｏ  Ｍａｃｈｉｎｅ）サーバは大量のセンサからデータを収集する必要がある。
【０００３】
そこで、例えば、特許文献１は、ゲートウェイ装置がセンサから収集したデータを一時的に集約し、最終的に各ゲートウェイ装置から全てのデータをＭ２Ｍサーバに集約するセンサデータ収集システムを開示する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１４−６８２８５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
車両エンジンに取り付けられた温度センサや荷重センサからデータを収集し、車両内の部品負荷を分析することで部品の交換時期を予測するというニーズが存在する。このようなニーズでは、Ｍ２Ｍサーバの負荷とデータ通信料を軽減するために、車両内に設置されたゲートウェイ装置でデータのフィルタリングや加工、圧縮等を行うことが望ましい。これらを行うためには、ゲートウェイ装置は、一定時間内にセンサから到着したデータを一時的に蓄積するためのバッファをメモリ内に持つ必要がある。
【０００６】
しかし、センサからデータの到着する頻度は事前に予測できない。サーバは、大きなサイズのメモリを有するため、データの到着頻度に応じて動的にバッファのサイズを拡張するか、または事前に十分大きいサイズのバッファを設けることができ、十分なサイズのバッファを確保することができる。しかしながら、ゲートウェイ装置に搭載できるメモリのサイズには限界がある。ゲートウェイ装置では、動的にバッファのサイズを拡張することや事前に十分大きなサイズのバッファを確保することは困難である。
【０００７】
このため、ゲートウェイ装置では、バッファのサイズを許容範囲に抑えなければならない。一つの方法として、事前に許容可能なサイズのリングバッファを確保し、データの到着順にリングバッファに格納することが考えられる。しかし、この方法では一定時間内のデータが欠落し加工後のデータが歪む可能性がある。例えば、あるセンサからのデータについて１０秒間の平均を取るために、１００個のリングバッファを設ける。この場合、１０秒間の最後の瞬間に集中的に１００個のデータが到着すると、リングバッファが全て上書きされて、最後に集中的に到着したデータのみの平均となり、１０秒間の平均とかけ離れてしまう可能性がある。また、最後に集中的に到着したデータのみでは、波形データが失われているため、波形分析を行うことはできない。
【０００８】
本発明の目的は、センサからのデータの到着頻度が一時的に高くなった場合でもデータの加工に必要なデータを保持することができるバッファを有するゲートウェイ装置およびそれを含むセンサデータ収集システムを提供することである。
【課題を解決するための手段】
【０００９】
以上の目的を達成するために、本発明のゲートウェイ装置は、
所定の取得ルールに従ってセンサのデータを取得し、取得した当該データについて所定の時間間隔毎に代表値を求め、主メモリ内に設けられたバッファに当該代表値を少なくとも所定の数保存するデータ取得部と、
前記バッファに保存されている前記所定の数の代表値を所定の加工ルールに従って加工して加工データを求める加工部と、
前記加工部によって求められた加工データをデータ収集サーバに送信するデータアップ部と、
を備えることを特徴とする。
【００１０】
また、本発明のセンサデータ収集システムは、
上述したゲートウェイ装置と、データ収集サーバとを備えるセンサデータ収集システムであって、
前記データ収集サーバが、
センサのデータ種別と、時間間隔と、当該時間間隔の整数倍である総時間と、代表値の取得方法とを含むバッファ設定情報を格納する設定管理データベースと、
前記設定管理データベースからバッファ設定情報を読み出し、当該バッファ設定情報を出力装置に表示し、修正された修正時間間隔と修正総時間とを受け付けると、当該修正時間間隔と当該修正総時間とに基づいて前記センサのデータ種別毎にバッファのメモリ消費量を求め、当該センサのデータ種別毎のメモリ消費量と所定のアプリケーションプログラムによるメモリ消費量との合計を出力装置に表示し、当該メモリ消費量の合計について承認の有無を受け付け、承認されたことを受け付けると、前記バッファ設定情報に含まれる時間間隔と総時間とをそれぞれ前記修正時間間隔と前記修正総時間とに置き換える設定補助部と、
前記設定補助部によって変更されたバッファ設定情報を前記ゲートウェイ装置に送信する設定情報配信部と、
前記ゲートウェイ装置から送信される加工データを収集するデータ収集部と、
を備え、
前記ゲートウェイ装置が、前記データ収集サーバから送信されるバッファ設定情報を受信する設定情報取得部を備え、
前記ゲートウェイ装置のデータ取得部が、前記設定情報取得部によって受信されたバッファ設定情報に含まれるセンサのデータ種別毎に、当該バッファ設定情報に含まれる時間間隔と総時間とに基づいて前記所定の数を求めて少なくとも当該所定の数の配列要素を有するバッファを確保するとともに当該時間間隔を前記所定の時間間隔として設定し、前記バッファ設定情報に含まれる代表値の取得方法に従って前記センサのデータ種別によって指定されるデータの代表値を求める、
ことを特徴とする。
【発明の効果】
【００１１】
本発明によれば、センサからのデータの到着頻度が一時的に高くなった場合でも、ゲートウェイ装置の主メモリ内に設けられるバッファにデータの加工に必要なデータを保持することができる。
【図面の簡単な説明】
【００１２】
【図１】本発明の実施形態に係るセンサデータ収集システムの構成の一例を示す図である。
【図２】ゲートウェイ装置の構成の一例を示す図である。
【図３】Ｍ２Ｍサーバの構成の一例を示す図である。
【図４】取得・加工ルールＤＢに格納される取得ルールと加工ルールの構成の一例を示す図である。図４（Ａ）は、取得ルールの構成の一例を示す。図４（Ｂ）は、加工ルールの構成の一例を示す。
【図５】バッファの構成の例を示す図である。図５（Ａ）は、冷却水温度のためのバッファの構成の一例を示す。図５（Ｂ）は、エンジン回転数のためのバッファの構成の一例を示す。
【図６】バッファ設定情報ＤＢに格納されるバッファ設定情報の構成の一例を示す図である。
【図７】センサのデータをゲートウェイ装置で取得して加工し、Ｍ２Ｍサーバに蓄積するまでの一連の処理の流れを示す図である。
【図８】Ｍ２Ｍサーバの設定補助部が出力装置に表示する設定補助画面の例を示す図である。図８（Ａ）は、バッファのメモリ消費量が許容量以内である場合の例を示す。図８（Ｂ）は、バッファのメモリ消費量が許容量を超えている場合の例を示す。
【発明を実施するための形態】
【００１３】
以下、本発明の実施形態に係るゲートウェイ装置およびセンサデータ収集システムについて、車両に設置されたセンサからのデータ収集を例として図面を参照しながら説明する。なお、実施形態を説明する全図において、共通の構成要素には同一の符号を付し、繰り返しの説明を省略する。
【００１４】
図１は、本発明の実施形態に係るセンサデータ収集システムの構成の一例を示す。
本発明の実施形態に係るセンサデータ収集システムは、車両１１０に搭載されたセンサ群１１１およびゲートウェイ装置１１３と、Ｍ２Ｍサーバ１３０と、業務システム１５０とを有する。
車両１１０に取り付けられたセンサ群１１１は、冷却水温度やエンジン回転数などのデータを取得する。
ゲートウェイ装置１１３は、ＣＡＮ（Ｃｏｎｔｒｏｌｌｅｒ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）１１２等のローカルネットワークを介して、センサ群１１１で取得されたデータを予め定められた取得ルールに従って集約する。そして、ゲートウェイ装置１１３は、集約したデータを予め定められた加工ルールに従って変換・加工し、ＷＡＮ（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）１２０を介して、Ｍ２Ｍサーバ１３０に送る。ゲートウェイ装置１１３の構成は図２を参照して後で説明する。
Ｍ２Ｍサーバ１３０は、ゲートウェイ装置１１３に取得ルールと加工ルールとバッファ設定情報を配信すると共に、ゲートウェイ装置１１３から送信されたデータを蓄積する。Ｍ２Ｍサーバ１３０の構成は図３を参照して後で説明する。
業務システム１５０は、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）１４０を介してＭ２Ｍサーバ１３０に蓄積されたデータを集約し、業務を支援する。業務システム１５０は、例えば、Ｍ２Ｍサーバ１３０に蓄積されたデータを統計処理して可視化する。
【００１５】
図２は、ゲートウェイ装置１１３の構成の一例を示す。
ゲートウェイ装置１１３は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）と、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）等で構成される主メモリと、ハードディスクやフラッシュメモリ等で構成される記憶装置と、ＣＡＮ１１２を介してセンサと通信するためのインタフェース装置と、ＷＡＮ１２０を介してＭ２Ｍサーバ１３０と通信するためのインタフェース装置とを有する。
ゲートウェイ装置１１３の記憶装置は、Ｌｉｎｕｘ（登録商標）などのオペレーティングシステムと、その上で動作するアプリケーションプログラムと、取得・加工ルールＤＢ（Ｄａｔａ  Ｂａｓｅ）２５０と、バッファ設定情報ＤＢ２６０とを格納している。ゲートウェイ装置１１３のＣＰＵが記憶装置から主メモリにオペレーティングシステムとアプリケーションプログラムを読み出して実行することにより、データ取得部２１０と、加工部２２０と、データアップ部２３０と、ルール・設定取得部２４０との各部の機能が実現される。
バッファ２７０は、ゲートウェイ装置１１３の主メモリ内に確保される。なお、バッファ２７０はリングバッファであってもよい。
【００１６】
データ取得部２１０は、センサ群１１１からＣＡＮ１１２を介してデータを取得する。ここで、各センサのデータは任意のタイミングでＣＡＮ１１２にブロードキャストされる。ブロードキャストされるデータは、ＣＡＮ  ＩＤ（Ｉｄｅｎｔｉｆｉｅｒ）とセンサのバイナリデータが連結されたものである。データ取得部２１０は、ブロードキャストされたデータを全て受信し、取得・加工ルールＤＢ２５０に格納されている取得ルールに従って必要なデータのみを取得する。そして、データ取得部２１０は、取得したデータについて所定の時間間隔毎に代表値を求め、バッファ２７０にその代表値を少なくとも所定の数保存する。なお、取得ルールについては、図４（Ａ）を参照しながら後で説明する。
加工部２２０は、取得・加工ルールＤＢ２５０に格納されている加工ルールに従って、データ取得部２１０によってバッファ２７０に保存された所定の数の代表値を加工して加工データを求める。なお、加工ルールについては、図４（Ｂ）を参照しながら後で説明する。
データアップ部２３０は、加工部２２０によって加工された加工データをＷＡＮ１２０を介してＭ２Ｍサーバ１３０に送信する。
ルール・設定取得部２４０は、Ｍ２Ｍサーバ１３０から取得ルールおよび加工ルールとバッファ設定情報とを受信すると、取得・加工ルールＤＢ２５０に格納されている取得ルールおよび加工ルールと、バッファ設定情報ＤＢ２６０に格納されているバッファ設定情報とを更新する。なお、ルール・設定取得部２４０は、本発明の設定情報取得部の一例である。
バッファ２７０は、データ取得部２１０と加工部２２０で用いられる代表値の保存領域である。バッファ２７０については、図５を参照しながら後で説明する。
バッファ設定情報ＤＢ２６０は、バッファ２７０に格納される代表値を求める方法を示すバッファ設定情報を格納する。バッファ設定情報については、図６を参照しながら後で説明する。
【００１７】
図３は、Ｍ２Ｍサーバ１３０の構成の一例を示す。
Ｍ２Ｍサーバ１３０は、ＣＰＵと、ＲＡＭ等で構成される主メモリと、ハードディスク等で構成される記憶装置と、キーボードやマウス等で構成される入力装置と、ディスプレイ等で構成される出力装置と、ＷＡＮ１２０を介してゲートウェイ装置１１３と通信するためのインタフェース装置と、ＬＡＮ１４０を介して業務システム１５０と通信するためのインタフェース装置とを有する。
Ｍ２Ｍサーバ１３０の記憶装置は、Ｌｉｎｕｘ（登録商標）などのオペレーティングシステムと、その上で動作するアプリケーションプログラムと、ルール管理ＤＢ３４０と、設定管理ＤＢ３５０とを格納している。Ｍ２Ｍサーバ１３０のＣＰＵが記憶装置から主メモリにオペレーティングシステムとアプリケーションプログラムを読み出して実行することにより、データ収集部３１０と、設定補助部３２０と、ルール・設定配信部３３０との各部の機能が実現される。
【００１８】
データ収集部３１０は、ゲートウェイ装置１１３から送信される加工データを受信し、記憶装置に保存する。
設定補助部３２０は、設定管理ＤＢ３５０に格納されているバッファ設定情報を出力装置に表示し、ユーザによる入力の内容に応じてそのバッファ設定情報を変更し、変更されたバッファ設定情報をゲートウェイ装置１１３に送信する。設定補助部３２０については、図８を参照しながら後で説明する。
ルール・設定配信部３３０は、ルール管理ＤＢ３４０に格納されている取得ルールおよび加工ルールと、設定補助部３２０によって変更されたバッファ設定情報とをゲートウェイ装置１１３に配信する。なお、ルール・設定配信部３３０は本発明の設定情報配信部の一例である。
ルール管理ＤＢ３４０には、取得ルールと加工ルールが保存されている。また、設定管理ＤＢ３５０には、バッファ設定情報が保存されている。
上述したゲートウェイ装置１１３とＭ２Ｍサーバ１３０が実際にどのように用動作するかについては、図７を参照しながら後で説明する。
【００１９】
図４は、取得・加工ルールＤＢ２５０に格納される取得ルール４１０と加工ルール４３０の構成の一例を示す。図４（Ａ）は、取得ルール４１０の構成の一例を示す。図４（Ｂ）は、加工ルール４３０の構成の一例を示す。
図４（Ａ）に示す取得ルール４１０は、ＣＡＮＩＤ４１１と、データ種別４１２と、バイトオーダー４１３と、開始位置４１４と、データ長４１５と、データ型４１６とを含む。
ＣＡＮＩＤ４１１は、ＣＡＮ１１２を流れるデータが何であるかを一意に表すための識別情報である。ＣＡＮ１１２の場合、ＣＡＮＩＤ４１１には、例えば、制御用フレームやエンジンのＥＣＵ（Ｅｎｇｉｎｅ  Ｃｏｎｔｒｏｌ  Ｕｎｉｔ）から来る情報を識別する識別情報が入る。ＣＡＮ以外のネットワークの場合も、ＣＡＮＩＤ４１１には同様にセンサのデータが何であるかを一意に表すための識別情報が入る。例えば、Ｚｉｇｂｅｅ（登録商標）の場合、ＣＡＮＩＤ４１１には、ネットワークアドレス（どのセンサノードから来た情報かを識別する識別情報）が入る。
データ種別４１２は、エンジン冷却水温度やエンジン回転数等のデータのセマンティクスを表す。
バイトオーダー４１３は、データがリトルエンディアンとビッグエンディアンのいずれであるかを示す。
開始位置４１４とデータ長４１５は、それぞれＣＡＮ１１２から受信したパケット内の、目的とするデータの開始位置とデータ長を示す。
データ型４１６は、変換したいデータ型を表す。
例えば、ルール４２１は、ＣＡＮ１１２から受信したデータのうち、ＣＡＮ  ＩＤが「ＡＡＡ」であるデータに対して適用される。このようなデータについて、ゲートウェイ装置１１３のデータ取得部２１０は、ＣＡＮ１１２から受信したパケット内の０ビット目から７ビット目のデータを「エンジン冷却水温度」として識別し、リトルエンディアンで配置されているデータを取得してｕｃｈａｒ型に変換する。
また、ルール４２２は、ＣＡＮ１１２から受信したデータのうち、ＣＡＮ  ＩＤが「ＤＤＤ」であるデータに対して適用される。このようなデータについて、データ取得部２１０は、ＣＡＮ１１２から受信したパケット内の８ビット目から２３ビット目のデータを「エンジン回転数」として識別し、リトルエンディアンで配置されているデータを取得してｕｉｎｔ１６型に変換する。
【００２０】
図４（Ｂ）に示す加工ルール４３０は、データ種別４３１と、加工データＩＤ（Ｉｄｅｎｔｉｆｉｅｒ）４３２と、データ長（バイト）４３３と、加工方法４３４と、引数４３５とを含む。
加工ルール４３０は、取得ルール４１０に従ってバッファ２７０に保存されたデータ（代表値）を加工する加工ルールを示す。
例えば、ルール４４１は、取得ルール４１０により「エンジン冷却水温度」と識別されたデータ（代表値）についての加工ルールを示す。ルール４４１は、該当するデータ（代表値）の「６００秒」の間の「平均値」を「１バイト」のデータ長で取得し、その「平均値」に加工データＩＤ「Ｄ０１」を付与することを意味する。
ルール４４２は、ヒストグラムを取得する複雑な加工ルールの例である。ルール４４２は、取得ルール４１０により「エンジン回転数」と識別されたデータについての加工ルールを示す。ルール４４２は「回転数０から１０００回転数幅、区間数１０」の「ヒストグラム」を作成し、その「ヒストグラム」に加工データＩＤ「Ｄ０２」を付与し、「１０バイト」の領域に「１００秒間」保存することを意味する。
【００２１】
図５は、バッファ２７０の構成の例を示す。図５（Ａ）は、エンジン冷却水温度のためのバッファ２７０の構成の一例を示す。図５（Ｂ）は、エンジン回転数のためのバッファ２７０の構成の一例を示す。
データ取得部２１０は、取得・加工ルールＤＢ２５０に格納されている取得ルール４１０に含まれるデータ種別４１２の数だけバッファ２７０を確保する。本実施形態では、データ取得部２１０は、エンジン冷却水温度とエンジン回転数に対応して２つのバッファ２７０を確保する。
例えば、図５（Ａ）に示すエンジン冷却水温度のためのバッファ２７０は、配列ｉｎｄｅｘが０から５９９まで割り当てられた要素数６００の１バイト長のメモリ領域で構成される。配列ｉｎｄｅｘ＝０のメモリ領域には、ある時間ｔから1秒経過するまでに到着したデータの代表値が格納される。配列ｉｎｄｅｘ＝１のメモリ領域には、ｔ＋１秒からｔ＋２秒の間に到着したデータの代表値が格納される。以降同様に配列ｉｎｄｅｘ＝ｎのメモリ領域にはｔ＋ｎ秒からｔ＋（ｎ＋１）秒の間に到着したデータの代表値が格納され、配列ｉｎｄｅｘ＝５９９のメモリ領域には、ｔ＋５９９秒からｔ＋６００秒の間に到着したデータの代表値が格納される。
ここで、配列の要素数（すなわち、代表値の数）と増加する時間間隔と代表値の取得方法については、バッファ設定情報ＤＢ２６０に格納されたバッファ設定情報に基づく。
【００２２】
図６は、バッファ設定情報ＤＢ２６０に格納されるバッファ設定情報６１０の構成の一例を示す。
バッファ設定情報６１０は、データ種別６１１と、間隔６１２と、総時間６１３と、代表値ポリシ６１４とを含む。
データ種別６１１は、取得ルール４１０のデータ種別４１２と同一の情報であり、エンジン冷却水温度やエンジン回転数等のデータのセマンティクスを表す。データ種別６１１により、バッファ設定情報６１０に対応するバッファ２７０が識別される。情報６２１は、図５（Ａ）のエンジン冷却水温度のためのバッファに対応するバッファ設定情報である。また、情報６２２は、図５（Ｂ）のエンジン回転数のためのバッファに対応するバッファ設定情報である。
間隔６１２は、配列のインデックスが１増加する毎に増加する時間を表す。例えば、情報６２１の例では、1秒間隔であるため、図５（Ａ）の冷却水温度のためのバッファではインデックスが１つ増加するごとに時間は1秒増加している。同様に情報６２２の例では、１０ミリ秒間隔であるため、図５（Ｂ）のエンジン回転数のためのバッファではインデックスが１つ増加するごとに時間は１０ミリ秒増加している。
総時間６１３は、バッファ２７０が格納可能な総時間帯を表し、間隔６１２に設定された時間の整数倍の時間である。ゲートウェイ装置１１３のデータ取得部２１０は、総時間６１３を間隔６１２で割ることにより、バッファ２７０に格納される代表値の数を求める。バッファ２７０は、例えば、求められた代表値の数以上の配列要素を格納可能なリングバッファである。
情報６２１の例では、６００秒の時間帯のデータを１秒間隔で格納するため、エンジン冷却水温度は、図５（Ａ）に示すように６００個の要素を持つ配列となる。これに対応するバッファ２７０は、例えば、少なくとも６００個の配列要素を格納可能なリングバッファである。
同様に情報６２２の例では、１０秒の時間帯のデータを１０ミリ秒間隔で格納するため、エンジン回転数は、図５（Ｂ）に示すように１０００個の要素を持つ配列となる。これに対応するバッファ２７０は、例えば、少なくとも１０００個の配列要素を格納可能なリングバッファである。
代表値ポリシ６１４は、同一時間帯に到着したデータから代表値を取得する方法を示す。例えば、情報６２１の例では、代表値ポリシ６１４は「最大値」となっている。この場合、ｔ＋ｎからｔ＋（ｎ＋１）の時間帯に複数のデータが到着した場合、データ取得部２１０は、その中の最大値を代表値として求め、それを配列ｉｎｄｅｘ＝ｎのメモリ領域に格納する。
【００２３】
図７は、センサのデータをゲートウェイ装置１１３で取得して加工し、Ｍ２Ｍサーバ１３０に蓄積するまでの一連の処理の流れを示す。
（ステップＳ７１０）
ゲートウェイ装置１１３のデータ取得部２１０は、ＣＡＮ１１２に接続されているセンサ群１１１から取得ルール４１０に従ってデータを取得する。例えば、データ取得部２１０は、ＣＡＮ  ＩＤが「ＡＡＡ］のデータを受信したならば、図４（Ａ）に示す取得ルール４１０のルール４２１に従ってデータを取得する。つまり、受信データの０−７ビットをリトルエンディアンとしてｕｃｈａｒ型に変換する。
次に、データ取得部２１０は、時刻ｔからｔ＋１秒の間に到着した、ｕｃｈａｒ型に変換されたデータを、「エンジン冷却水温度」のためのバッファ２７０の配列ｉｎｄｅｘ＝０のメモリ領域に格納する。ここで、ｔからｔ＋１秒の間に複数のデータを取得した場合は、データ取得部２１０は、図６のバッファ設定情報６１０の代表値ポリシ６１４に従って最大値のみをバッファ２７０の配列ｉｎｄｅｘ＝０のメモリ領域に保存する。
【００２４】
（ステップＳ７２０）
ゲートウェイ装置１１３の加工部２２０は、ステップＳ７１０で保存されたバッファ２７０中のデータを、図４（Ｂ）に示す加工ルール４３０に従って加工する。例えば「エンジン冷却水温度」で識別されるデータについて、加工部２２０は、図４（Ｂ）の加工ルール４３０のルール４４１に従って加工する。つまり、６００秒間隔で、過去６００秒に渡るデータを図５（Ａ）に示す冷却水温度のためのバッファ２７０から取得し、平均値を取り、Ｄ０１という加工データＩＤ４３２とペアで主メモリ上に保存する。
（ステップＳ７３０）
ゲートウェイ装置１１３のデータアップ部２３０は、ステップＳ７２０で保存された主メモリ上のデータに、送信時刻を付与してＭ２Ｍサーバ１３０に送信する。つまり、データアップ部２３０は、送信時刻と加工データＩＤ４３２と加工されたデータとをＭ２Ｍサーバ１３０に送信する。
（ステップＳ７４０）
Ｍ２Ｍサーバ１３０のデータ収集部３１０は、ステップＳ７３０で送信されたデータを受信し、記憶装置に蓄積する。業務システム１５０は、このようにして蓄積されたデータを活用する。
【００２５】
図８は、Ｍ２Ｍサーバ１３０の設定補助部３２０が出力装置に表示する設定補助画面８００の例を示す。図８（Ａ）は、主メモリのメモリ消費量が許容量以内である場合の例を示す。図８（Ｂ）は、主メモリのメモリ消費量が許容量を超えている場合の例を示す。
設定補助画面８００は、バッファ設定情報８０１とメモリ消費量見積８０２とを含む。
設定補助部３２０は、設定管理ＤＢ３５０から初期値が設定されたバッファ設定情報を読み出し、それを出力装置に表示する。Ｍ２Ｍサーバ１３０を使用するユーザ等は、バッファ設定情報８０１について、間隔と総時間を編集することができ、代表値ポリシを予め定められているものの中から選択することができる。設定補助部３２０は、ユーザ等によって修正された修正時間間隔と修正総時間とを受け付けると、間隔と総時間から計算される配列要素の数（代表値の数）を基に、センサのデータ種別毎にバッファのメモリ消費量を求める。そして、設定補助部３２０は、そのメモリ消費量と所定のアプリケーションプログラムによるメモリ消費量との合計を出力装置に表示する。メモリ消費量の合計についてユーザ等による承認の有無を受け付ける。そして、設定補助部３２０は、設定補助部３２０は、承認されたことを受け付けると、バッファ設定情報に含まれる時間間隔と総時間とをそれぞれ修正時間間隔と修正総時間とに置き換える。
ルール・設定配信部３３０は、設定補助部３２０によって変更されたバッファ設定情報をゲートウェイ装置１１３に配信する。
【００２６】
ゲートウェイ装置１１３のアプリケーションプログラムは、バッファ２７０以外のメモリ消費量が１００Ｋバイトになるように開発されており、主メモリを動的確保していないと仮定する。また、ゲートウェイ装置１１３の主メモリのメモリ消費量の許容量は２００Ｋバイトであり、これを超えるとゲートウエイ装置１１３の機能に支障が出ると仮定する。
図８（Ａ）の例では、配列の総要素数は（６００秒÷１秒）＋（１０秒÷１０ミリ秒）＝１６００である。１配列要素当り２バイトとして、バッファ２７０のメモリ消費量は３．２Ｋバイトである。この場合、主メモリのメモリ消費量の合計は１０３．２Ｋバイトであり、許容量以内である。
図８（Ｂ）は、エンジン回転数に関係するデータをより細かい粒度で取りたくなったケースを想定し、時間の間隔を１０ミリ秒から０．２ミリ秒に編集した場合の例を示す。間隔や総時間が編集されると、設定補助部３２０はメモリ消費量を再計算する。この例では、配列の総要素数は、（６００秒÷１秒）＋（１０秒÷０．２ミリ秒）＝５０６００である。１配列当り２バイトとしてバッファ２７０のメモリ消費量は１０１．２Ｋバイトである。この場合、主メモリのメモリ消費量の合計は２０１．２Ｋバイトとなり、許容量を超える。このため、設定補助部３２０は、メモリ消費量見積８０２を強調表示し、Ｍ２Ｍサーバ１３０を使用するユーザ等の注意を促す。
このように、Ｍ２Ｍサーバ１３０は、ユーザ等にメモリ消費量を確認させながらバッファ設定情報を編集させることにより、メモリ消費量が許容量以内となるバッファ設定情報をゲートウェイ装置１１３に配信し、バッファ設定ＤＢ２６０に格納されたバッファ設定情報６１０に反映させることができる。
【００２７】
以上説明したように、本発明によれば、センサからのデータの到着頻度が一時的に高くなった場合でも、ゲートウェイ装置の主メモリ内に設けられるバッファにデータの加工に必要なデータを保持することができる。
すなわち、本発明によれば、所定の時間間隔毎にセンサのデータの代表値を求め、その代表値をバッファに保存するため、その時間間隔と総時間（代表値の数×時間間隔）とが決まればバッファの容量が固定される。このため、組込み機器において求められる、メモリ消費量の制限が可能となる。
例えば、直近６００秒の平均を取るような処理において、最後の１秒にデータが集中した場合、メモリを動的に確保するとメモリ消費量の許容量を超えるおそれがある。また、単純なリングバッファでは、最後の１秒のデータしか残らないおそれがある。これに対し、本発明では、６００秒の全時間に渡るデータを残すことができる。
【００２８】
以上、本発明の実施形態について説明したが、設計上の都合やその他の要因によって必要となる様々な修正や組み合わせは、請求項に記載されている発明や発明の実施形態に記載されている具体例に対応する発明の範囲に含まれると理解されるべきである。
【符号の説明】
【００２９】
１１０…車両、１１１…センサ群、１１２…ＣＡＮ（Ｃｏｎｔｒｏｌｌｅｒ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、１１３…ゲートウェイ装置、１２０…ＷＡＮ（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、１３０…Ｍ２Ｍサーバ、１４０…ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、１５０…業務システム、２１０…データ取得部、２２０…加工部、２３０…データアップ部、２４０…ルール・設定取得部、２５０…取得・加工ルールＤＢ、２６０…バッファ設定情報ＤＢ、２７０…バッファ、３１０…データ収集部、３２０…設定補助部、３３０…ルール・設定配信部、３４０…ルール管理ＤＢ、３５０…設定管理ＤＢ、４１０…取得ルール、４３０…加工ルール、６１０…バッファ設定情報、８００…設定補助画面
【図１】
2016006922.tif 000003
【図２】
2016006922.tif 000004
【図３】
2016006922.tif 000005
【図４】
2016006922.tif 000006
【図５】
2016006922.tif 000007
【図６】
2016006922.tif 000008
【図７】
2016006922.tif 000009
【図８】
2016006922.tif 000010