(57)【特許請求の範囲】
【請求項１】
機器から収集された複数のデータから予め設定された手順で前記複数のデータの同一性を識別するための値である同一性識別値を少なくとも１つ生成する識別値生成手段と、
今回収集された前記複数のデータである今回データから生成した前記同一性識別値である今回識別値と、前回収集された前記複数のデータである前回データから生成した前記同一性識別値である前回識別値と、が一致するか否かに応じて、前記今回データと前記前回データとが一致するか否かを判別する判別手段と、
予め設定されたデータ処理を行うデータ処理手段と、
前記判別手段が前記今回データと前記前回データとが一致しないと判別した場合、前記データ処理手段に前記今回データと前記前回識別値とを配信し、配信完了後に前記今回データを削除する配信手段と、
を備え、
前記配信手段は、前記判別手段が前記今回データと前記前回データとが一致すると判別した場合、前記今回データを配信せずに前記今回データを削除し、
前記データ処理手段は、前記今回データと前記前回識別値とから、前記今回データのうち前記前回データから更新されたデータを特定する、
データ処理装置。
【請求項２】
前記識別値生成手段は、前記今回識別値を算出するため、予め定められたハッシュ関数に前記今回データを代入してハッシュ値を算出し、前記前回識別値を算出するため、前記ハッシュ関数に前記前回データを代入してハッシュ値を算出する、
請求項１に記載のデータ処理装置。
【請求項３】
前記識別値生成手段は、収集された前記複数のデータのうち予め決められている組み合わせのデータから、前記ハッシュ値を算出する、
請求項２に記載のデータ処理装置。
【請求項４】
前記判別手段が、今回収集された前記複数のデータのうちの前記組み合わせのデータから算出した前記ハッシュ値と、前回収集された前記複数のデータのうちの前記組み合わせのデータから算出した前記ハッシュ値と、が一致しないと判別した場合、前記配信手段は、前記組み合わせのデータを前記データ処理手段に配信する、
請求項３に記載のデータ処理装置。
【請求項５】
前記判別手段が、今回収集された前記複数のデータのうちの前記組み合わせのデータから算出した前記ハッシュ値と、前回収集された前記複数のデータのうちの前記組み合わせのデータから算出した前記ハッシュ値と、が一致すると判別した場合、前記配信手段は、前記組み合わせのデータを前記データ処理手段に配信しない、
請求項３または４に記載のデータ処理装置。
【請求項６】
前記データ処理手段は、第１データ処理を行う第１データ処理手段と、第２データ処理を行う第２データ処理手段とを含み、
前記識別値生成手段は、前記今回データのうち前記第１データ処理手段に対応付けられている第１の組み合わせのデータから第１の今回識別値を生成し、前記今回データのうち前記第２データ処理手段に対応付けられている第２の組み合わせのデータから、第２の今回識別値を生成し、
前記判別手段が、前記第１の今回識別値と、前記前回データのうちの前記第１の組み合わせのデータから生成された第１の前回識別値と、が一致しないと判別した場合、前記配信手段は、前記今回データのうちの前記第１の組み合わせのデータを前記第１データ処理手段に配信し、前記判別手段が、前記第２の今回識別値と、前記前回データのうちの前記第２の組み合わせのデータから生成された第２の前回識別値と、が一致しないと判別した場合、前記配信手段は、前記今回データのうちの前記第２の組み合わせのデータを前記第２データ処理手段に配信する、
請求項３から５のいずれか１項に記載のデータ処理装置。
【請求項７】
前記組み合わせは、予め定義されたデータモデルに従って決められたものである、
請求項３から６のいずれか１項に記載のデータ処理装置。
【請求項８】
前記組み合わせは、ユーザにより指定される、
請求項３から７のいずれか１項に記載のデータ処理装置。
【請求項９】
前記識別値生成手段が複数の前記ハッシュ値を算出する場合であって、前記判別手段が、今回の複数の前記ハッシュ値と前回の複数の前記ハッシュ値とが全て一致すると判別した場合に、前記配信手段は、前記今回データを前記データ処理手段に配信しない、
請求項２から８のいずれか１項に記載のデータ処理装置。
【請求項１０】
前記識別値生成手段が複数の前記ハッシュ値を算出する場合であって、前記判別手段が、今回の複数の前記ハッシュ値と前回の複数の前記ハッシュ値とが一致するものの数が閾値以下であると判別した場合に、前記配信手段は、前記今回データを前記データ処理手段に配信する、
請求項２から８のいずれか１項に記載のデータ処理装置。
【請求項１１】
前記機器から前記複数のデータを収集する収集手段を備える、
請求項１から１０のいずれか１項に記載のデータ処理装置。
【請求項１２】
コンピュータが実行する方法であって、
機器から収集された複数のデータから予め設定された手順で前記複数のデータの同一性を識別するための値である同一性識別値を少なくとも１つ生成するステップと、
今回収集された前記複数のデータから生成した前記同一性識別値である今回識別値と、前回収集された前記複数のデータから生成した前記同一性識別値である前回識別値と、が一致するか否かを判別するステップと、
前記今回識別値と前記前回識別値とが一致しない場合、今回収集された前記複数のデータと前記前回識別値とを配信し、配信完了後に今回収集された前記複数のデータを削除するステップと、
前記今回識別値と前記前回識別値とが一致する場合、今回収集された前記複数のデータを配信せずに今回収集された前記複数のデータを削除するステップと、
今回収集された前記複数のデータと前記前回識別値とから、今回収集された前記複数のデータのうち前回収集された前記複数のデータから更新されたデータを特定するステップと、
を含む方法。
【請求項１３】
コンピュータに、
機器から収集された複数のデータから予め設定された手順で前記複数のデータの同一性を識別するための値である同一性識別値を少なくとも１つ生成させ、
今回収集された前記複数のデータから生成した前記同一性識別値である今回識別値と、前回収集された前記複数のデータから算出した前記同一性識別値である前回識別値と、が一致するか否かを判別させ、
前記今回識別値と前記前回識別値とが一致しない場合、今回収集された前記複数のデータと前記前回識別値とを配信させ、配信完了後に今回収集された前記複数のデータを削除させ、
前記今回識別値と前記前回識別値とが一致する場合、今回収集された前記複数のデータを配信させずに今回収集された前記複数のデータを削除させ、
今回収集された前記複数のデータと前記前回識別値とから、今回収集された前記複数のデータのうち前回収集された前記複数のデータから更新されたデータを特定させる、
プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ処理装置、方法、及びプログラムに関する。
【背景技術】
【０００２】
様々な分野で、監視、障害予測、需要分析等を目的として、データ分析が活用されている。例えば、ファクトリーオートメーションの分野では、工場におけるラインの稼働状態の監視、障害予測等を行うシステムにおいて、データを収集するアプリケーションが、装置から多種多様なデータを収集し、データを処理するアプリケーションが、収集されたデータの加工、解析処理、診断処理等を行うことがある。【０００３】
データを収集するアプリケーションは、例えば、ＦＡ機器に設けられたセンサの出力値のデータを一定期間毎にＦＡ機器から収集し、データを処理するアプリケーションに収集したデータを送信する。しかし、一定期間毎にＦＡ機器から収集されるセンサの出力値の値が変化していないこともある。さらに、データが変化していない場合には、データを処理するアプリケーションはデータを逐次受信しなくても、その処理に支障をきたさないことがある。【０００４】
このような場合、センサの出力値に変化がなくとも、データを収集するアプリケーションがデータを一定期間毎に、データを処理するアプリケーションに送信することは、データ配信に係る処理の負荷、通信トラフィックの負荷の増大につながる。【０００５】
データ配信に係る処理の負荷、通信トラフィックの負荷の低減を目的として、例えば、特許文献１に記載されているように、収集したデータが更新されている場合にだけ、データを送信するよう制御することがある。特許文献１に開示されているシステムにおいて、端末装置は配信部として機能し、ユーザが指定したＵＲＩ（Uniform Resource Identifier）により特定されるＨＴＭＬ（HyperText Markup Language）データをネットワーク上のサーバから取得し、取得したＨＴＭＬデータを、ＨＴＭＬデータを解析するデータ収集ノードに配信する。【０００６】
端末装置は、通信トラフィックの低減のため、更新されたＨＴＭＬデータのみをデータ収集ノードに送信する。端末装置は、ＨＴＭＬデータが更新されているか否かを判別するため、今回取得したＨＴＭＬデータから算出したハッシュ値と前回取得したＨＴＭＬデータから算出したハッシュ値とを比較する。端末装置は、ハッシュ値の比較の結果、ハッシュ値が一致しない場合にはＨＴＭＬデータが更新されていると判別し、そのＨＴＭＬデータをデータ収集ノードに送信する。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２０１０−１８２２４３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
特許文献１に記載されている構成では、ユーザが閲覧したＨＴＭＬデータが収集対象であり、収集対象のデータ数が多くないと想定される。よって、端末装置が更新の有無を判別する処理の負荷が極端に大きくなることはないと考えられる。しかし、収集対象のデータ数が増大した場合、配信部として機能する端末装置は、データの個数に応じたハッシュ値を算出し、データの個数に応じたハッシュ値を比較する必要がある。よって、配信部の処理が煩雑になり、処理の負荷が増大する。例えば、ファクトリーオートメーションの分野では、配信部が、機器から周期的に収集された多数のデータを、決められたデータ処理を行うデータ処理部に配信することがある。このような場合、特許文献１に記載の構成を採用すると、配信部とデータ処理部との間の通信トラフィックは低減できるものの、配信部は、個々のデータの更新の有無の判別処理を頻繁に行う必要があり、配信部の処理が煩雑になり、配信部の処理の負荷が増大する。【０００９】
本発明は、上記実情に鑑みてなされたものであり、データを配信する処理を簡易なものとし、データ配信に係る処理の負荷を低減することを目的とする。
【課題を解決するための手段】
【００１０】
上記目的を達成するため、本発明に係るデータ処理装置が備える識別値生成手段は、機器から収集された複数のデータから予め設定された手順で複数のデータの同一性を識別するための値である同一性識別値を少なくとも１つ算出する。判別手段は、今回収集された複数のデータである今回データから生成した同一性識別値である今回識別値と、前回収集された複数のデータである前回データから生成した同一性識別値である前回識別値と、が一致するか否かに応じて、今回データと前回データとが一致するか否かを判別する。データ処理手段は、予め設定されたデータ処理を行う。判別手段が今回データと前回データとが一致しないと判別した場合、配信手段は、データ処理手段に今回データと前回識別値とを配信し、配信完了後に今回データを削除する。判別手段が今回データと前回データとが一致すると判別した場合、配信手段は、今回データを配信せずに今回データを削除する。データ処理手段は、今回データと前回識別値とから、今回データのうち前回データから更新されたデータを特定する。
【発明の効果】
【００１１】
本発明に係るデータ処理装置は、今回収集された複数のデータから生成した今回識別値と、前回収集された複数のデータから生成した前回識別値と、が一致するか否かに応じて、今回収集された複数のデータと前回収集された複数のデータとが一致するか否かを判別する。データ処理装置は、今回収集された複数のデータと前回収集された複数のデータとが一致しないと判別すると、予め設定されたデータ処理を行うデータ処理手段に今回収集されたデータを配信する。このように、データの配信を行うか否かの判別を簡易な構成とすることができ、処理の負荷を低減することができる。
【図面の簡単な説明】
【００１２】
【図１】本発明の実施の形態に係るデータ処理装置及びメンテナンスツールの機能構成を示すブロック図
【図２】実施の形態に係るデータ処理装置及びメンテナンスツールのハードウェア構成を示す図
【図３】実施の形態に係るデータモデルの一例を示す図
【図４】実施の形態に係るデータの更新の有無を判別する方法を説明するための図
【図５】実施の形態に係るデータ配信処理のフローチャート
【図６】変形例に係るデータ処理装置及びメンテナンスツールの機能構成を示すブロック図
【図７】変形例に係るデータの更新の有無を判別する方法を説明するための図
【発明を実施するための形態】
【００１３】
（実施の形態）
以下、本発明の実施の形態に係るデータ処理装置について、図面を参照しつつ詳細に説明する。
【００１４】
図１に示すデータ処理装置１００は、例えば、工場内のＦＡ機器６０１及び６０２が出力するデータを収集する。例えば、データ処理装置１００は、予防保全、予知保全等を目的として、収集したデータを解析し、ＦＡ機器６０１及び６０２を診断し、診断結果をＦＡ機器６０１及び６０２を制御するプログラマブルロジックコントローラ６０３（以下、ＰＬＣ６０３）に送信する。例えば、データ処理装置１００は、ＦＡ機器６０１及び６０２が劣化しており、故障が発生する前にメンテナンスを行う必要があることを示すアラート情報を含む診断結果をＰＬＣ６０３に送信する。
【００１５】
データ処理装置１００は、例えば、ＦＡ機器６０１及び６０２と同じ工場内に設けられている産業用ＰＣ（Industrial Personal Computer：ＩＰＣ）である。ＦＡ機器６０１及び６０２は、例えば、工場の生産ラインで使用される機械装置である。ＦＡ機器６０１及び６０２は、振動センサ、温度センサ、圧力センサ、流量センサ等を含む各種のセンサを有する。ＰＬＣ６０３は、ＦＡ機器６０１及び６０２を制御する制御装置である。
【００１６】
ＦＡ機器６０１及び６０２に設けられたセンサの出力値はＰＬＣ６０３に供給される。データ処理装置１００は、ＦＡ機器６０１及び６０２に設けられたセンサの出力値をＰＬＣ６０３から収集する。
【００１７】
データ処理装置１００は、ユーザが指定したデータ収集についての設定に従って、データを収集する。以下、データ収集についての設定を収集設定ということがある。収集設定には、収集の対象となる装置、収集の時間間隔、収集するデータ等が定義されている。例えば、データ処理装置１００は、指定されている収集の対象から、指定されたデータを指定された時間間隔で収集する。なお、データ処理装置１００は、必ずしも決められた時間間隔でデータを収集する必要はない。データ処理装置１００は、例えば、ユーザの特定の操作が行われたとき、診断の結果がＮＧであったとき、といった、決められた条件が満たされたときに、指定されたデータを収集してもよい。あるいは、データ処理装置は、指定された時間間隔で、データを収集し、さらに、決められた条件が満たされたときにデータを収集してもよい。
【００１８】
データ処理装置１００において、例えば、各種の機能をそれぞれ実現する複数の処理部が一連の処理を行う。このため、各工程の内容、工程の順序等を示すデータ処理フローが予め定義されている。データ処理装置１００は、データ処理フローの設定を示すデータを有している。データ処理装置１００の各処理部は、定義されたデータ処理フローの設定に従って収集されたデータに処理を行う。以下、データ処理フローについて予め定義された設定をデータ処理フロー設定という。
【００１９】
メンテナンスツール５００は、例えば、ユーザが、収集設定をデータ処理装置１００に登録するために使用するツールである。メンテナンスツール５００は、例えば、パーソナルコンピュータに専用のアプリケーションをインストールした装置である。メンテナンスツール５００は、ユーザの指示に従って収集設定を示すデータをデータ処理装置１００に供給する。メンテナンスツール５００は、ユーザの指示に従ってデータ処理フロー設定を示すデータをデータ処理装置１００に供給する。さらに、メンテナンスツール５００は、ユーザの指示に従って、処理フローの開始を指示する信号をデータ処理装置１００に送信する。
【００２０】
続いて、各装置のハードウェア構成を説明する。図２に示すように、データ処理装置１００は、ハードウェア構成として、各種のプログラム及びデータを記憶するメモリ１１と、ネットワーク７０１を介して他の装置と通信する第１通信インタフェース１２と、通信ケーブル７０２を介して他の装置と通信する第２通信インタフェース１３と、データ処理装置１００全体を制御するＣＰＵ（Central Processing Unit）１４とを有する。メモリ１１と第１通信インタフェース１２と第２通信インタフェース１３とは、バス１９を介してＣＰＵ１４に接続されており、それぞれＣＰＵ１４と通信する。
【００２１】
メモリ１１は、揮発性メモリと不揮発性メモリとを含む。メモリ１１は、データ処理装置１００の各種機能を実現するためのプログラムを格納する。具体的には、メモリ１１は、収集プログラム１１１と、データ処理プログラム１１２と、配信制御プログラム１１３とを記憶する。さらに、メモリ１１はＣＰＵ１４のワークメモリとして用いられる。
【００２２】
収集プログラム１１１は、ＰＬＣ６０３からデータを収集する機能をデータ処理装置１００に実現させるためのプログラムである。データ処理プログラム１１２は、収集したデータに予め決められたデータ処理を実行する機能をデータ処理装置１００に実現させるためのプログラムである。予め決められたデータ処理とは、例えば、解析処理、診断処理である。配信制御プログラム１１３は、収集したデータの配信を制御する機能をデータ処理装置１００に実現させるためのプログラムである。
【００２３】
第１通信インタフェース１２は、ネットワークインタフェース回路を含み、ＣＰＵ１４の制御の下、ネットワーク７０１を介してＰＬＣ６０３と通信する。ネットワーク７０１は、フィールドバス規格に則ったネットワークである。
【００２４】
第２通信インタフェース１３は、例えば、ＵＳＢコントローラを含み、ＣＰＵ１４の制御の下、通信ケーブル７０２を介してメンテナンスツール５００と通信する。通信ケーブル７０２は、例えば、ＵＳＢケーブルである。
【００２５】
ＣＰＵ１４は、メモリ１１に記憶されている各種プログラムを実行して、データ処理装置１００の各種機能を実現する。具体的には、ＣＰＵ１４は、収集プログラム１１１を実行することにより、ＰＬＣ６０３からデータを収集する。ＣＰＵ１４は、データ処理プログラム１１２を実行することにより、収集したデータに予め決められたデータ処理を施す。ＣＰＵ１４は、配信制御プログラム１１３を実行することにより、データの配信を制御する。
【００２６】
メンテナンスツール５００は、ハードウェア構成として、各種のプログラム及びデータを記憶するメモリ５１と、通信ケーブル７０２を介して他の装置とデータを授受する通信インタフェース５２と、ユーザの入力操作を検出する入力装置５３と、画像を表示する表示装置５４と、メンテナンスツール５００全体を制御するＣＰＵ５５とを有する。メモリ５１と通信インタフェース５２と入力装置５３と表示装置５４とは、バス５９を介してＣＰＵ５５に接続され、それぞれＣＰＵ５５と通信する。
【００２７】
メモリ５１は、揮発性メモリと不揮発性メモリとを含む。メモリ５１は、メンテナンスツール５００の各種機能を実現するためのプログラムを格納する。具体的には、メモリ５１は、メンテナンスプログラム５１１を格納する。また、メモリ５１は、ＣＰＵ５５のワークメモリとして用いられる。
【００２８】
メンテナンスプログラム５１１は、各種設定データをデータ処理装置１００に供給する機能と、収集処理の開始を指示する信号をデータ処理装置１００に供給する機能と、をメンテナンスツール５００に実現させるためのプログラムである。各種設定データは、収集設定を示すデータ、データ処理フロー設定を示すデータを含む。
【００２９】
通信インタフェース５２は、例えば、ＵＳＢコントローラを含み、ＣＰＵ５５の制御の下、通信ケーブル７０２を介してデータ処理装置１００と通信する。
【００３０】
入力装置５３は、マウス、操作キー等を含み、ユーザからの入力操作を受け付け、ユーザが入力した内容を示す信号をＣＰＵ５５に出力する。表示装置５４は、ディスプレイを含み、ＣＰＵ５５から供給される信号に基づく画像をディスプレイに表示する。
【００３１】
ＣＰＵ５５は、メモリ５１に記憶されている各種プログラムを実行して、メンテナンスツール５００の各種機能を実現する。具体的には、ＣＰＵ５５は、メンテナンスプログラム５１１を実行することにより、ユーザが入力した各種設定データをデータ処理装置１００に送信する。また、ＣＰＵ５５は、メンテナンスプログラム５１１を実行することにより、収集処理の開始を指示する信号をデータ処理装置１００に送信する。
【００３２】
続いて、図１を参照して、データ処理装置１００の機能構成を説明する。データ処理装置１００は、機能的には、収集対象からデータを収集するデータ収集部１と、収集されたデータに決められたデータ処理を行うデータ処理部２と、配信を制御する実行制御部３と、実行制御部３が出力したデータをＰＬＣ６０３に供給するデータ供給部４とを備える。図１において、矢印の向きは、データ処理装置１００の各部の間で、データ、信号等が流れる向きを示す。
【００３３】
データ収集部１は、ＰＬＣ６０３から、ＦＡ機器６０１及び６０２に設けられたセンサの出力値を含むデータを収集する。データ収集部１は、例えば、実行制御部３から収集処理の開始を指示する信号を受信すると収集処理を開始し、指定された対象から指定された収集間隔で指定されたデータを収集する。データ収集部１は、収集したデータを実行制御部３に供給する。データ収集部１の機能は、図２に示すＣＰＵ１４が収集プログラム１１１を実行することにより実現される。データ収集部１は、本発明の収集手段の一例である。
【００３４】
図１に示すデータ処理部２は、データ処理部２Ａ、２Ｂを含む。例えば、データ処理部２Ａは、実行制御部３から供給されたデータを解析する。データ処理部２Ｂは、解析結果に基づいて、ＦＡ機器６０１及び６０２を診断し、診断結果を示すデータを実行制御部３に送信する。なお、データ処理部２が実行する処理は、解析、診断に限られない。データ処理部２の機能は、図２に示すＣＰＵ１４がデータ処理プログラム１１２を実行することにより実現される。データ処理部２は、本発明のデータ処理手段の一例である。
【００３５】
実行制御部３は、定義されたデータ処理フローに従って、例えば、収集されたデータを、データ処理装置１００の各処理部に配信する。実行制御部３は、データ処理フロー設定を示すデータを記憶する設定データ記憶部１１０と、データモデルを定義したデータを管理するモデル管理部１２０と、データの配信処理の実行主体であるデータ配信部１３０とを含む。
【００３６】
実施の形態において、実行制御部３は、データ収集部１が収集したデータを全てデータ処理部２に配信するわけではない。前述のように、データ収集部１は、ＦＡ機器６０２及び６０３が備えるセンサの出力値を収集する。センサの出力値に変化がない場合には、実行制御部３は、収集したデータをデータ処理部２に配信しない。例えば、センサが温度を測定するものであるとする。この場合、前回収集した温度データと今回収集した温度データとが変わらない場合、実行制御部３は、データをデータ処理部２に配信しない。
【００３７】
データ処理部２は、実行制御部３からデータが配信されなかった場合、前回配信されたデータを使用してデータ処理を行う。前回収集されたセンサの出力値と今回収集されたセンサの出力値とが同じであるため、データ処理部２が前回配信されたデータを使用してデータ処理を行っても問題がないからである。データ処理装置１００が、このような構成を備えることで、実行制御部３とデータ処理部２との間の通信トラフィックを低減することができる。あるいは、データ処理部２は、データに変化があった場合のみデータ処理を行ってもよい。この場合、データ処理部２は、実行制御部３からデータが配信されるまでデータ処理を行わない。
【００３８】
実施の形態に特徴的な構成として、実行制御部３は、収集した複数のデータそれぞれに変化があったか否かを判別するのではなく、決められた範囲のデータをひとまとめにして、ひとまとめにしたデータ単位でデータに変化があったか否かを判別する。
【００３９】
設定データ記憶部１１０は、データ処理フロー設定を示すデータを記憶する。データ処理フロー設定を示すデータは、収集されたデータに行うべきデータ処理の内容とデータ処理を実行する主体とデータ処理の順序とが定義されたデータを含む。
【００４０】
さらに、設定データ記憶部１１０は、データ収集部１が実行するデータ収集処理についての収集設定を示すデータを記憶する。収集設定を示すデータは、収集の対象を特定するデータと、収集するデータを特定するデータと、データを収集する収集間隔とを特定するデータとを含む。ユーザは、メンテナンスツール５００を使用して、データ処理フロー設定を示すデータと、収集設定を示すデータとを、メモリ１１の決められた場所に格納する。設定データ記憶部１１０の機能は、図２に示すメモリ１１により実現される。
【００４１】
図１に示すモデル管理部１２０は、データ処理装置１００の収集対象のデータをモデル化した定義情報を管理する。実施の形態においては、データ処理装置１００は、収集対象のデータをモデル化して管理する。具体的には、データ処理装置１００は、収集対象のデータを、図３に示すような階層化構造を有するデータとして扱う。なお、データモデルは階層化構造を有するモデルに限らない。モデル管理部１２０の機能は、図２に示すメモリ１１により実現される。
【００４２】
図１に示すデータ配信部１３０は、データ収集部１及びデータ供給部４との間でデータを送受信する第１送受信部１３１と、データ処理部２との間でデータを送受信する第２送受信部１３２と、収集されたデータが蓄積されるデータ格納部１３３と、収集されたデータから識別値を生成する識別値生成部１３４と、収集されたデータが更新されているかを判別する更新判別部１３５と、データ配信部１３０の各部を制御するデータ配信制御部１３６とを含む。データ配信部１３０の機能は、図２に示すＣＰＵ１４が配信制御プログラム１１３を実行することにより実現される。識別値生成部１３４は、本発明の識別値生成手段の一例である。更新判別部１３５は、本発明の判別手段の一例である。データ配信制御部１３６は、本発明の配信手段の一例である。
【００４３】
図１に示す第１送受信部１３１は、データ収集部１との間でデータをやり取りするインタフェースとして機能する。第１送受信部１３１は、データ収集部１から受信したデータをデータ配信制御部１３６に出力する。第１送受信部１３１は、データ配信制御部１３６から供給されたデータをデータ供給部４に送信する。
【００４４】
第２送受信部１３２は、データ処理部２との間でデータをやり取りするインタフェースとして機能する。第２送受信部１３２は、データ配信制御部１３６から供給されたデータをデータ処理部２に送信する。第２送受信部１３２は、データ処理部２から受信したデータをデータ配信制御部１３６に出力する。
【００４５】
図１に示すデータ格納部１３３は、データ収集部１が収集したデータを一時的に格納する。データ配信制御部１３６は、第１送受信部１３１から供給されたデータをデータ格納部１３３に格納する。また、後述の識別値生成部１３４は、収集されたデータから算出したハッシュ値をデータ格納部１３３に格納する。
【００４６】
図１に示す識別値生成部１３４は、データ収集部１が今回収集したデータから少なくとも１つのハッシュ値を算出し、算出したハッシュ値を更新判別部１３５に供給する。さらに、識別値生成部１３４は、ハッシュ値をデータ格納部１３３に格納する。算出したハッシュ値は、データ収集部１が今回収集したデータと前回収集したデータとが同一であるか否かを判別するのに使用される識別値である。ハッシュ値を算出するためのハッシュ関数は予め定義され、ハッシュ関数を示す定義情報がメモリ１１に記憶されているものとする。ハッシュ値は、本発明の同一性識別値の一例である。
【００４７】
前述のように、データ処理装置１００は、ひとまとめにしたデータ単位でデータに変化があったか否かを判別する。このため、識別値生成部１３４は、下記のようにハッシュ値を生成される。まず、データ収集部１が収集したデータは、複数のデータを含むことがある。例えば、データ収集部１が収集するデータには、例えば、“１”、“０．０１”等の数値のデータ、“真”または“偽”を表すデータ、“ＡＢ”、“Ｄ”等の文字列を表すデータが含まれるとする。識別値生成部１３４は、複数のデータを決められた順序で連結する。識別値生成部１３４は、例えば、データ収集部１からデータ配信部１３０にデータが与えられたときのデータの並び順で、複数のデータを連結してもよい。あるいは、識別値生成部１３４は、データを表すデータ名の昇順または降順で、データを並び変え、並び替えたデータを連結してもよい。あるいは、識別値生成部１３４は、ユーザが指定する順序でデータを並び変え、並び変えたデータを連結してもよい。また、識別値生成部１３４は、例えば、“１真ＡＢ”のように、データを直接連結してもよい。あるいは、識別値生成部１３４は、“１,真,ＡＢ”、 “１;真:ＡＢ”、“１ 真 ＡＢ”のように、決められた符号を介してデータを連結してもよい。その後、識別値生成部１３４は、連結した値からハッシュ値を算出する。
【００４８】
実施の形態では、識別値生成部１３４は、データ格納部１３３から読み出したデータ全てを定義されたハッシュ関数に入力し、ハッシュ値を算出する。識別値生成部１３４は今回ハッシュ値をデータ格納部１３３に格納する。識別値生成部１３４は、個々のデータについてハッシュ値を算出するのではなく、データ収集部１から供給されたデータをひとまとめにしてハッシュ値を算出する。
【００４９】
識別値生成部１３４は、２以上のハッシュ値を算出してもよい。ただし、算出するハッシュ値の数は、収集されたデータ数より少ないことが望ましい。算出するハッシュ値の数が、収集されたデータ数と同じ、あるいは、それ以上である場合、演算処理の負荷を、前回のデータと今回のデータを単純に比較する場合に比べて、低減することができないからである。
【００５０】
更新判別部１３５は、収集されたデータの更新の有無を判別するため、今回収集されたデータから算出されたハッシュ値（以下、今回ハッシュ値）と前回収集されたデータから算出されたハッシュ値（以下、前回ハッシュ値）とを比較する。更新判別部１３５は、図４に示すように、データ格納部１３３から読み出した前回ハッシュ値と、今回収集されたデータから算出されたハッシュ値とを比較する。今回ハッシュ値と前回ハッシュ値とが一致することは、今回収集されたデータが前回収集されたデータと同じであることを意味する。更新判別部１３５は、今回ハッシュ値と前回ハッシュ値とが一致する場合、今回収集されたデータと前回収集されたデータとが一致すると判別する。更新判別部１３５は、ハッシュ値が一致しない場合、今回収集されたデータと前回収集されたデータとが一致しないと判別する。更新判別部１３５は、判別した更新の有無をデータ配信制御部１３６に通知する。データ収集部１が前回収集したデータは、本発明の前回データの一例である。データ収集部１が今回収集したデータは、本発明の今回データの一例である。今回ハッシュ値は、本発明の今回識別値の一例である。前回ハッシュ値は、本発明の前回識別値の一例である。
【００５１】
識別値生成部１３４が、Ｎ個（Ｎは正の整数）のハッシュ値を算出する場合、更新判別部１３５は、Ｎ個の今回ハッシュ値とＮ個の前回ハッシュ値とが全て一致した場合、データが更新されていない旨をデータ配信制御部１３６に通知する。
【００５２】
データ配信制御部１３６は、ユーザの指示に従って、処理フローの開始が指示されると、設定データ記憶部１１０に格納されているデータ処理フロー設定を示すデータに基づいて、データ処理装置１００の各部の間におけるデータの配信を制御する。具体的には、データ配信制御部１３６は、データ収集部１に収集処理の開始を指示する。このとき、データ配信制御部１３６は、データ収集部１に、設定データ記憶部１１０に格納されている収集設定を示す定義情報を供給する。さらに、データ配信制御部１３６は、データ処理部２に、解析処理、診断処理等のデータ処理の開始を指示する。このとき、データ配信制御部１３６は、データ処理部２に、モデル管理部１２０に格納されているデータモデルの定義情報を供給する。
【００５３】
データ配信制御部１３６は、第１送受信部１３１からデータが供給されると、データをデータ格納部１３３に格納し、データが収集された旨を更新判別部１３５に通知する。
【００５４】
データ配信制御部１３６は、更新判別部１３５から収集されたデータが更新されている旨の通知を受けると、データ格納部１３３に格納されている今回収集されたデータをデータ処理フロー設定を示すデータに基づいた宛先が示すデータ処理部２に第２送受信部１３２を介して送信する。その後、データ配信制御部１３６は、データ格納部１３３に格納されている前回収集されたデータから算出されたハッシュ値と今回収集されたデータとを削除する。一方、データ配信制御部１３６は、更新判別部１３５から、収集されたデータが更新されていない旨の通知を受けた場合にはデータをデータ処理部２に送信しない。データ配信制御部１３６は、データ格納部１３３に格納されている前回収集されたデータから算出されたハッシュ値と今回収集されたデータとを削除する。
【００５５】
このように、データ収集部１から新たなデータが供給されるときには、データ格納部１３３には、今回収集されたデータの代わりに今回ハッシュ値のみが格納されていることになる。このハッシュ値は、次回収集されたデータの更新の有無を判別する処理において、前回収集されたデータから算出されたハッシュ値として扱われる。このような構成により、メモリの使用容量を低減することが可能である。
【００５６】
データ配信制御部１３６は、第２送受信部１３２からデータが供給されると、データ処理フロー設定を示すデータに基づいた宛先にデータを配信する。例えば、データの宛先がＰＬＣ６０３である場合、データ配信制御部１３６は、第１送受信部１３１を介してデータをデータ供給部４に送信する。従って、データ供給部４は、第１送受信部１３１から供給されたデータをＰＬＣ６０３に送信する。第１送受信部１３１からデータ供給部４に供給されるデータは、例えば、ＦＡ機器６０１及び６０２を診断した結果を示すデータである。あるいは、データ配信制御部１３６は、データの宛先が他のデータ処理部２である場合、第２送受信部１３２を介してデータをデータ処理部２に送信する。
【００５７】
図１に示すように、メンテナンスツール５００は、機能的には、入力受付部５１０を含む。入力受付部５１０は、ユーザから受け付けた収集設定を示すデータ、データ処理フロー設定を示すデータをデータ処理装置１００に送信する。さらに、入力受付部５１０は、ユーザから受け付けた処理フローの開始指示をデータ処理装置１００に送信する。入力受付部５１０の機能は、図２に示すＣＰＵ５５により実現される。
【００５８】
続いて、上記の構成を備えるデータ配信部１３０が、データ収集部１から受信したデータをデータ処理部２に配信するデータ配信処理の例を説明する。図２に示すＣＰＵ１４は配信制御プログラム１１３を実行することで、図１に示すデータ配信部１３０として機能する。
【００５９】
図５に示すように、データ配信制御部１３６は、第１送受信部１３１を介してデータ収集部１からデータを受信すると（ステップＳ１００１；Ｙｅｓ）、受信したデータをデータ格納部１３３に格納し（ステップＳ１００２）、新たにデータが収集された旨を識別値生成部１３４に通知する。識別値生成部１３４は、データ格納部１３３に格納されているデータからハッシュ値を算出する（ステップＳ１００３）。更新判別部１３５は、今回算出されたハッシュ値と前回算出されたハッシュ値とを比較する（ステップＳ１００４）。今回算出したハッシュ値と前回算出したハッシュ値とが一致すれば（ステップＳ１００５；Ｙｅｓ）、更新判別部１３５は、データ配信制御部１３６にその旨を通知する。これに応答して、データ配信制御部１３６は、データ格納部１３３から前回算出したハッシュ値と今回受信したデータとを削除し（ステップＳ１００７）、再び、ステップ１００１の処理を行う。
【００６０】
一方、今回算出したハッシュ値と前回算出したハッシュ値とが一致しなければ（ステップＳ１００５；Ｎｏ）、更新判別部１３５は、データ配信制御部１３６にその旨を通知する。これに応答して、データ配信制御部１３６は、データ格納部１３３に格納されている今回受信したデータを第２送受信部１３２を介してデータ処理部２に配信する（ステップＳ１００６）。その後、データ配信制御部１３６は、データ格納部１３３から前回算出したハッシュ値と今回受信したデータとを削除し（ステップＳ１００７）、再び、ステップ１００１の処理を行う。
【００６１】
以上、説明したように、実施の形態に係るデータ処理装置１００のデータ配信部１３０は、受信したデータをひとまとめにして算出したハッシュ値を比較することで、今回受信したデータと前回受信したデータとが一致するか否かを判別する。データ配信部１３０は、ハッシュ値が一致しないと判別したときに、今回受信したデータを、データ処理部２に配信する。一方、ハッシュ値が一致するときは、データ処理装置１００は、今回受信したデータをデータ処理部２に配信しない。
【００６２】
このような構成を備えることで、データ配信部１３０と、データ処理部２との間の通信トラフィックを軽減することを可能にしつつ、データ配信部１３０の処理を簡易なものとすることができる。従って、データ配信部１３０の処理の負荷を低減することができる。例えば、収集対象のデータの数が１００である場合、従来のように、前回収集されたデータと今回収集されたデータとを個別に比較する場合、比較演算を１００回行う必要がある。一方、実施の形態に係る構成では、例えば、ひとまとめにしたデータからハッシュ値を３つ算出する場合、ハッシュ値を３つ算出する演算と、前回の３つのハッシュ値と今回の３つのハッシュ値とをそれぞれ比較する演算とを行うだけでよい。
【００６３】
さらに、データ配信部１３０は、ハッシュ値の比較により、前回収集されたデータと今回収集されたデータとが一致するか否かを判別するので、前回収集されたデータをデータ格納部１３３に保持しておく必要がない。ハッシュ値の比較時に、データ格納部１３３には、前回収集されたデータから算出されたハッシュ値と、今回収集されたデータと、今回収集されたデータから算出されたハッシュ値とが格納されていることになる。よって、データ処理装置１００のメモリの記憶容量を低減することが可能である。
【００６４】
（変形例）
実施の形態においては、識別値生成部１３４が、データ格納部１３３から読み出したデータ全てをハッシュ関数に入力し、ハッシュ値を算出する例を説明したが、これに限られない。図６に、変形例に係るデータ処理装置１０１の構成を示す。以下、実施の形態と異なる構成を中心に説明する。データ処理装置１０１は、実施の形態に係る構成に加え、グルーピング部１３７を備える。データ処理装置１０１は、データ処理部２Ａ、２Ｂ、２Ｃを備えるものとする。
【００６５】
グルーピング部１３７は、収集されたデータをグループに分ける。変形例においては、グルーピング部１３７は、モデル管理部１２０に格納されているデータモデルの定義情報に従ってデータをグループに分ける。ここでは、収集されるデータが、図３に示すような、階層化構造を有するデータであると仮定する。データのグループ分けに関する設定は、ユーザが、メンテナンスツール５００を使用して予めデータ処理装置１０１に登録しているものとする。例えば、グルーピング部１３７は、データ処理部２Ａが処理するデータをグループＡとし、データ処理部２Ｂが処理するデータをグループＢとし、データ処理部２Ｃが処理するデータをグループＣとして分けるとする。データ処理部２Ａは本発明の第１データ処理手段の一例である。データ処理部２Ｂは本発明の第２データ処理手段の一例である。データ処理部２Ａが実行する処理は本発明の第１データ処理の一例である。データ処理部２Ｂが実行する処理は本発明の第２データ処理の一例である。
【００６６】
グルーピング部１３７は、収集されたデータとグループとの対応付けを示す情報を識別値生成部１３４に通知する。図７に示すように、識別値生成部１３４は、データ格納部１３３に格納されているデータを、グループ単位で読み出し、読み出したグループ単位のデータからハッシュ値を算出する。図示する例では、収集されたデータが３つのグループに分けられ、それぞれのグループに１つのハッシュ値が算出されている。今回収集されたグループＡに属するデータから算出されたハッシュ値は、本発明の第１の今回識別値の一例である。前回収集されたグループＡに属するデータから算出されたハッシュ値は、本発明の第１の前回識別値の一例である。今回収集されたグループＢに属するデータから算出されたハッシュ値は、本発明の第２の今回識別値の一例である。前回収集されたグループＢに属するデータから算出されたハッシュ値は、本発明の第２の前回識別値の一例である。
【００６７】
更新判別部１３５は、グループ毎に算出されたハッシュ値からデータが更新されているか否かを判別する。更新判別部１３５は、グループ毎の判別結果をデータ配信制御部１３６に通知する。データ配信制御部１３６は、通知された結果に応じて、データが更新されているグループのデータをデータ処理部２に配信する。また、データ配信制御部１３６は、データが更新されていないグループのデータを配信しない。
【００６８】
変形例に係る構成においても、実施の形態と同様に、データ処理部２との間の通信トラフィックを軽減しつつ、データ配信部１３０の処理の負荷を低減することができる。
【００６９】
上記の変形例では、データモデルに従ってグループを分ける例を説明したが、これに限られない。グルーピング部１３７は、単純に、データを決められた単位でグループに分けてもよい。例えば、グルーピング部１３７は、決められたデータ数毎に、データを切り分けてもよい。あるいは、グルーピング部１３７は、データを意味を持つ単位でグループに分けてもよい。また、データ処理部２が複数存在する場合には、グルーピング部１３７は、データの配信先であるデータ処理部２に送信するデータをグループとしてもよい。
【００７０】
実施の形態、変形例において、データ処理装置１００、１０１は、個々のデータからハッシュ値を算出するのではなく、ひとまとめにされたデータからハッシュ値を算出する。このため、複数のデータのうち、どのデータが更新されたかを特定することができない。
【００７１】
しかし、例えば、伝送路で発生する誤り訂正の技術を採用することで、更新されたデータを特定することが可能である。例えば、識別値生成部１３４は、収集されたデータから、ハッシュ値として誤り訂正符号を算出する。データの更新有無の判別の方法は実施の形態と同様である。
【００７２】
データ配信制御部１３６は、更新判別部１３５がデータの更新ありと判別した場合、データ処理部２にそのデータを配信する。このとき、データ配信制御部１３６は、今回収集されたデータを、前回ハッシュ値、ここでは、前回収集されたデータから算出した誤り訂正符号とともにデータ処理部２に送る。
【００７３】
データ処理部２は、データ配信制御部１３６から配信されたデータが、誤りが発生しているデータであるとみなして、そのデータに追加された誤り訂正符号から、誤り検出を行う。誤りが検出された箇所が、更新された箇所となる。
【００７４】
実施の形態において、データ配信部１３０は、今回ハッシュ値と前回ハッシュ値とが全て一致したと判別した場合、データをデータ処理部２に配信しない例を説明したが、これに限られない。例えば、データ配信部１３０は、同じデータから複数のハッシュ値を算出する場合であって、今回算出した複数のハッシュ値のうち、前回算出した複数のハッシュ値と一致するものの数が閾値以下である場合、データをデータ処理部２に配信するようにしてもよい。一方、データ配信部１３０は、今回算出した複数のハッシュ値のうち、前回算出した複数のハッシュ値と一致するものの数が閾値より多い場合、データをデータ処理部２に配信しないようにしてもよい。
【００７５】
また、あるいは、データ配信部１３０は、複数のハッシュ値を算出する場合であって、今回算出した複数のハッシュ値と前回算出した複数のハッシュ値とが一致する確率が、決められた割合未満である場合に、データをデータ処理部２に配信するようにしてもよい。データ配信部１３０は、ハッシュ値の一致する確率が、決められた割合以上である場合に、データをデータ処理部２に配信しないようにしてもよい。
【００７６】
実施の形態においては、データ処理装置１００が、１つのデータ収集部１を備える例を説明したが、これに限られない。データ処理装置１００は、２以上のデータ収集部１を備えていてもよい。この場合、各データ収集部１は、決められた種類のデータのみを収集してもよい。例えば、あるデータ収集部１は、温度データを収集し、他のデータ収集部１は、流量データを収集する。あるいは、データ収集部１は、割り当てられた収集先からデータを収集してもよい。例えば、あるデータ収集部１は、ＰＬＣ６０３からデータを収集し、他のデータ収集部１は、ＰＬＣ６０３以外のＰＬＣからデータを収集する。
【００７７】
実施の形態では、データ処理部２は実行制御部３を介してデータをやり取りしたが、これに限られない。データ処理部２Ａは相互に通信可能であってもよい。例えば、あるデータ処理部２は、実行制御部３から供給されたデータを解析し、解析結果を、他のデータ処理部２に供給する。他のデータ処理部２は、供給された結果に基づいて、ＦＡ機器６０１及び６０２を診断し、診断結果を、実行制御部３に供給してもよい。また、データ処理部２が実行する処理は解析処理、診断処理に限られない。例えば、データ処理部２は、欠損値処理、外れ値処理等の、解析処理の前に必要な前処理を収集されたデータに施してもよい。
【００７８】
実施の形態においては、データ処理装置１００が、データ収集部１、データ処理部２を備える例を説明したが、これに限られない。データ収集部１、データ処理部２は、データ処理装置１００と異なる装置に設けられており、データ処理装置１００と、データ収集部１を備える装置と、データ処理部２を備える装置とが、連携してデータ処理システムとして機能してもよい。この場合、データ処理装置１００は、例えば、ネットワークを介して、データ収集部１、データ処理部２との間でデータを授受してもよい。
【００７９】
実施の形態においては、データ処理装置１００が、ＰＬＣ６０３を介してＦＡ機器６０１及び６０２からデータを収集する例を説明したが、これに限られない。例えば、データ処理装置１００はＦＡ機器６０１及び６０２から直接データを収集してもよい。
【００８０】
実施の形態においては、データ処理装置１００が、データを収集し、データに決められた処理を行って、ＦＡ機器６０１及び６０２を診断する例を説明したが、これに限られない。データ処理装置１００は、収集したデータを他の解析装置に送信してもよい。この場合、データ処理装置１００と、解析装置とは、例えば、１０ＢＡＳＥ−Ｔ、１００ＢＡＳＥ−Ｔといった規格に則ったネットワークを介して、通信してもよい。
【００８１】
実施の形態においては、予防保全、予知保全等を目的として、ＦＡ機器６０１及び６０２を診断する例を説明したが、データ処理装置１００が収集するデータは、他の用途のために使用されてもよい。例えば、ＦＡ機器６０１及び６０２から収集したデータから統計を取り、統計から、他のＦＡ機器の故障の発生を予測することもできる。
【００８２】
変形例においては、ユーザが、メンテナンスツール５００を使用してデータのグループ分けに関する設定をデータ処理装置１０１に登録する例を説明したが、これに限られない。例えば、データ処理装置１０１は、入力受付部を備えていてもよい。データ処理装置１０１が備える入力受付部は、ユーザから、データのグループ分けに関する設定を示すデータを受け付け、受け付けたデータを設定データ記憶部１１０に格納してもよい。
【００８３】
上記のプログラムを記録する記録媒体としては、磁気ディスク、光ディスク、光磁気ディスク、フラッシュメモリ、半導体メモリ、磁気テープを含むコンピュータ読取可能な記録媒体を使用することができる。
【００８４】
本発明は、広義の精神と範囲を逸脱することなく、様々な実施形態及び変形が可能とされるものである。また、上述した実施形態は、本発明を説明するためのものであり、本発明の範囲を限定するものではない。つまり、本発明の範囲は、実施形態ではなく、請求の範囲によって示される。そして、請求の範囲内及びそれと同等の発明の意義の範囲内で施される様々な変形が、本発明の範囲内とみなされる。
【符号の説明】
【００８５】
１  データ収集部、２Ａ，２Ｂ（２）  データ処理部、３  実行制御部、４  データ供給部、１１，５１  メモリ、１２  第１通信インタフェース、１３  第２通信インタフェース、１４，５５  ＣＰＵ、１９，５９  バス、５２  通信インタフェース、５３  入力装置、５４  表示装置、１００，１０１  データ処理装置、１１０  設定データ記憶部、１１１  収集プログラム、１１２  データ処理プログラム、１１３  配信制御プログラム、１２０  モデル管理部、１３０  データ配信部、１３１  第１送受信部、１３２  第２送受信部、１３３  データ格納部、１３４  識別値生成部、１３５  更新判別部、１３６  データ配信制御部、１３７  グルーピング部、５００  メンテナンスツール、５１０  入力受付部、５１１  メンテナンスプログラム、６０１，６０２  ＦＡ機器、６０３  プログラマブルロジックコントローラ（ＰＬＣ）、７０１  ネットワーク、７０２  通信ケーブル
【要約】
データ処理装置（１００）が備える更新判別部（１３５）は、ＦＡ機器（６０１、６０２）から収集された複数のデータから予め設定された手順で複数のデータの同一性を識別するための値である同一性識別値を少なくとも１つ生成する。更新判別部（１３５）は、今回収集された複数のデータである今回データから生成した同一性識別値である今回識別値と、前回収集された複数のデータである前回データから生成した同一性識別値である前回識別値と、が一致するか否かに応じて、今回データと前回データとが一致するか否かを判別する。更新判別部（１３５）が今回データと前回データとが一致しないと判別した場合、データ配信制御部（１３６）は、予め設定されたデータ処理を行うデータ処理部（２）に今回データを配信する。【図１】
0006762442.tif 000002
【図２】
0006762442.tif 000003
【図３】
0006762442.tif 000004
【図４】
0006762442.tif 000005
【図５】
0006762442.tif 000006
【図６】
0006762442.tif 000007
【図７】
0006762442.tif 000008