(57)【要約】  高速に集計演算を行うことができる制御装置、制御方法、及び制御装置のメモリにインストールされるプログラムを提供する。  この発明に係る制御装置であるＰＬＣ（１）は、外部センサ（２）により取得されたデータを格納するデバイスメモリ（１１１）と、デバイスメモリ（１１１）に格納されたデータのうち予め定められた種類のデータを定期的に抽出するデータ抽出部（１１２）と、データ抽出部（１１２）により抽出されたデータを、予め定められた種類に応じて設けられた複数の演算バッファ（１１３）のうち対応する演算バッファ（１１３）に格納するデータ分配部（１１４）と、演算バッファ（１１３）が予め定められた期間分のデータを格納した場合、演算バッファ（１１３）に格納されたデータの演算処理を行うデータ集計部（１１６）と、を備える。
2016079771.tif 000002
【特許請求の範囲】
【請求項１】
外部センサにより取得されたデータを格納するメモリと、前記メモリに格納されたデータのうち予め定められた種類のデータを定期的に抽出するデータ抽出部と、前記データ抽出部により抽出されたデータを、前記予め定められた種類に応じて設けられた複数のバッファのうち対応するバッファに格納するデータ分配部と、前記バッファが予め定められた期間分のデータを格納した場合、前記バッファに格納されたデータの演算処理を行うデータ集計部と、を備えたことを特徴とする制御装置。
【請求項２】
前記複数のバッファは、前記予め定められた種類及びデータの収集期間ごとに対応して設けられ、前記データ分配部は、前記データ抽出部により抽出されたデータを、前記予め定められた種類及び前記データの収集期間に基づいて、前記複数のバッファのうち対応するバッファに格納することを特徴とする請求項１に記載の制御装置。
【請求項３】
前記複数のバッファは、前記予め定められた種類及びデータの収集周期ごとに対応して設けられ、前記データ抽出部は、前記予め定められた種類のデータを、前記データの収集周期に関して第１の周期で抽出するとともに前記第１の周期とは異なる第２の周期で抽出し、前記データ分配部は、前記データ抽出部により前記第１の周期で抽出されたデータを、前記予め定められた種類及び前記第１の周期に基づいて、前記複数のバッファのうち対応するバッファに格納し、前記データ抽出部により前記第２の周期で抽出されたデータを、前記予め定められた種類及び前記第２の周期に基づいて、前記複数のバッファのうち前記第１の周期で抽出されたデータが格納されるバッファとは異なる対応するバッファに格納することを特徴とする請求項１に記載の制御装置。
【請求項４】
前記複数のバッファは、前記予め定められた種類及びデータを収集する条件ごとに対応して設けられ、前記データ分配部は、前記データ抽出部により抽出された前記予め定められた種類のデータのうち、前記収集する条件に関して第１の条件を満たすデータを、前記複数のバッファのうち対応するバッファに格納し、前記データ抽出部により抽出された前記予め定められた種類のデータのうち、前記収集する条件に関して前記第１の条件とは異なる第２の条件を満たすデータを、前記複数のバッファのうち前記第１の条件を満たすデータが格納されるバッファとは異なる対応するバッファに格納することを特徴とする請求項１に記載の制御装置。
【請求項５】
前記データ分配部により前記バッファに格納された前記予め定められた期間分のデータについて、予め定められた演算アルゴリズムに基づきデータの変換処理を行うデータ変換部をさらに備え、前記データ集計部は、前記データ変換部による前記変換処理の結果について前記演算処理を行うことを特徴とする請求項１に記載の制御装置。
【請求項６】
前記予め定められた種類のデータを抽出するための抽出関数と、前記演算アルゴリズムと、前記データ集計部による前記演算処理に使用される集計関数と、が前記抽出関数ごとに関連付けられており、前記抽出関数、前記演算アルゴリズム、及び前記集計関数は、関連する前記抽出関数ごとにプラグインとして登録されることを特徴とする請求項５に記載の制御装置。
【請求項７】
前記データ集計部の演算結果を前記メモリまたは外部に設けられたデータベースに出力するデータ出力部をさらに備えたことを特徴とする請求項１に記載の制御装置。
【請求項８】
外部センサにより取得されたデータをメモリに格納するデータ格納ステップと、前記データ格納ステップにおいて格納されたデータのうち予め定められた種類のデータを定期的に抽出するデータ抽出ステップと、前記データ抽出ステップにおいて抽出されたデータを、前記予め定められた種類に応じて設けられた複数のバッファのうち対応するバッファに格納するデータ分配ステップと、前記バッファが予め定められた期間分のデータを格納した場合、前記バッファに格納されたデータの演算処理を行うデータ集計ステップと、を備えたことを特徴とする制御方法。
【請求項９】
前記予め定められた種類及びデータの収集期間ごとに、対応するバッファを生成するバッファ生成ステップをさらに備え、前記データ分配ステップは、前記データ抽出ステップにより抽出されたデータを、前記予め定められた種類及び前記データの収集期間に基づいて、前記バッファ生成ステップにおいて生成された前記複数のバッファのうち対応するバッファに格納することを特徴とする請求項８に記載の制御方法。
【請求項１０】
前記予め定められた種類及びデータの収集周期ごとに、対応するバッファを生成するバッファ生成ステップをさらに備え、前記データ抽出ステップは、前記予め定められた種類のデータを、前記データの収集周期に関して第１の周期で抽出するとともに前記第１の周期とは異なる第２の周期で抽出し、前記データ分配ステップは、前記データ抽出ステップにおいて前記第１の周期で抽出されたデータを、前記予め定められた種類及び前記第１の周期に基づいて、前記バッファ生成ステップにおいて生成された前記複数のバッファのうち対応するバッファに格納し、前記データ抽出ステップにおいて前記第２の周期で抽出されたデータを、前記予め定められた種類及び前記第２の周期に基づいて、前記複数のバッファのうち前記第１の周期で抽出されたデータが格納されるバッファとは異なる対応するバッファに格納することを特徴とする請求項８に記載の制御方法。
【請求項１１】
前記予め定められた種類及びデータを収集する条件ごとに、対応するバッファを生成するバッファ生成ステップをさらに備え、前記データ分配ステップは、前記データ抽出ステップにおいて抽出された前記予め定められた種類のデータのうち、前記収集する条件に関して第１の条件を満たすデータを、前記バッファ生成ステップにおいて生成された前記複数のバッファのうち対応するバッファに格納し、前記データ抽出ステップにおいて抽出された前記予め定められた種類のデータのうち、前記収集する条件に関して前記第１の条件とは異なる第２の条件を満たすデータを、前記複数のバッファのうち前記第１の条件を満たすデータが格納されるバッファとは異なる対応するバッファに格納することを特徴とする請求項８に記載の制御方法。
【請求項１２】
前記データ分配ステップにおいて前記バッファに格納された前記予め定められた期間分のデータについて、予め定められた演算アルゴリズムに基づきデータの変換処理を行うデータ変換ステップをさらに備え、前記データ集計ステップは、前記データ変換ステップによる前記変換処理の結果について前記演算処理を行うことを特徴とする請求項８に記載の制御方法。
【請求項１３】
前記予め定められた種類のデータを抽出するための抽出関数と、前記演算アルゴリズムと、前記データ集計ステップによる前記演算処理に使用される集計関数と、が前記抽出関数ごとに関連付けられており、前記抽出関数、前記演算アルゴリズム、及び前記集計関数は、関連する前記抽出関数ごとにプラグインとして登録されることを特徴とする請求項１２に記載の制御方法。
【請求項１４】
前記データ集計ステップの演算結果を前記メモリまたは外部に設けられたデータベースに出力するデータ出力ステップをさらに備えたことを特徴とする請求項８に記載の制御方法。
【請求項１５】
プログラムを格納するメモリと、前記プログラムを実行するプロセッサと、を備えた制御装置であって、外部センサにより取得されたデータのうち予め定められた期間分のデータごとに演算処理を行う前記制御装置の前記メモリにインストールされる前記プログラムにおいて、前記外部センサにより取得されメモリに格納されたデータのうち予め定められた種類のデータを定期的に抽出するデータ抽出ステップと、前記データ抽出ステップにおいて抽出されたデータを、前記予め定められた種類に応じて設けられた複数のバッファのうち対応するバッファに格納するデータ分配ステップと、前記バッファが前記予め定められた期間分のデータを格納した場合、前記バッファに格納されたデータの前記演算処理を行うデータ集計ステップと、を前記制御装置の前記プロセッサに実行させることを特徴とするプログラム。
【請求項１６】
前記予め定められた種類及びデータの収集期間ごとに、対応するバッファを生成するバッファ生成ステップをさらに備え、前記データ分配ステップは、前記データ抽出ステップにおいて抽出されたデータを、前記予め定められた種類及び前記データの収集期間に基づいて、前記バッファ生成ステップにおいて生成された前記複数のバッファのうち対応するバッファに格納することを特徴とする請求項１５に記載のプログラム。
【請求項１７】
前記予め定められた種類及びデータの収集周期ごとに、対応するバッファを生成するバッファ生成ステップをさらに備え、前記データ抽出ステップは、前記予め定められた種類のデータを、前記データの収集周期に関して第１の周期で抽出するとともに前記第１の周期とは異なる第２の周期で抽出し、前記データ分配ステップは、前記データ抽出ステップにおいて前記第１の周期で抽出されたデータを、前記予め定められた種類及び前記第１の周期に基づいて、前記バッファ生成ステップにおいて生成された前記複数のバッファのうち対応するバッファに格納し、前記データ抽出ステップにおいて前記第２の周期で抽出されたデータを、前記予め定められた種類及び前記第２の周期に基づいて、前記複数のバッファのうち前記第１の周期で抽出されたデータが格納されるバッファとは異なる対応するバッファに格納することを特徴とする請求項１５に記載のプログラム。
【請求項１８】
前記予め定められた種類及びデータを収集する条件ごとに、対応するバッファを生成するバッファ生成ステップをさらに備え、前記データ分配ステップは、前記データ抽出ステップにおいて抽出された前記予め定められた種類のデータのうち、前記収集する条件に関して第１の条件を満たすデータを、前記バッファ生成ステップにおいて生成された前記複数のバッファのうち対応するバッファに格納し、前記データ抽出ステップにおいて抽出された前記予め定められた種類のデータのうち、前記収集する条件に関して前記第１の条件とは異なる第２の条件を満たすデータを、前記複数のバッファのうち前記第１の条件を満たすデータが格納されるバッファとは異なる対応するバッファに格納することを特徴とする請求項１５に記載のプログラム。
【請求項１９】
前記データ分配ステップにおいて前記バッファに格納された前記予め定められた期間分のデータについて、予め定められた演算アルゴリズムに基づきデータの変換処理を行うデータ変換ステップをさらに備え、前記データ集計ステップは、前記データ変換ステップによる前記変換処理の結果について前記演算処理を行うことを特徴とする請求項１５に記載のプログラム。
【請求項２０】
前記予め定められた種類のデータを抽出するための抽出関数と、前記演算アルゴリズムと、前記データ集計ステップによる前記演算処理に使用される集計関数と、が前記抽出関数ごとに関連付けられており、前記抽出関数、前記演算アルゴリズム、及び前記集計関数は、関連する前記抽出関数ごとにプラグインとして前記制御装置の前記演算部に登録されることを特徴とする請求項１９に記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】  本発明は、外部からデータを取得し、取得したデータを演算して機器を制御する信号を出力する制御装置、制御方法、及び制御装置のメモリにインストールされるプログラムに関する。
【背景技術】
【０００２】  従来の制御装置のうち、ＰＬＣ（Ｐｒｏｇｒａｍｍａｂｌｅ  Ｌｏｇｉｃ  Ｃｏｎｔｒｏｌｌｅｒ）は、プログラミング可能な制御装置であり、外部センサから高速・大容量なデータを取得し、ラダー言語などで記述したシーケンス制御プログラムに従ってデータを演算して、外部機器を制御する信号を出力する。【０００３】  また、近年では、ＰＬＣ等の制御装置をＭＥＳ（Ｍａｎｕｆａｃｔｕｒｉｎｇ  Ｅｘｅｃｕｔｉｏｎ  Ｓｙｓｔｅｍ）またはＥＲＰ（Ｅｎｔｅｒｐｒｉｓｅ  Ｒｅｓｏｕｒｃｅ  Ｐｌａｎｎｉｎｇ）などの上位情報系ソフトウエアと連携させたり、ＳＣＡＤＡ（Ｓｕｐｅｒｖｉｓｏｒｙ  Ｃｏｎｔｒｏｌ  Ａｎｄ  Ｄａｔａ  Ａｃｑｕｉｓｉｔｉｏｎ）と呼ばれる専用ソフトウエアによる高速・大容量なプロセスデータを扱う監視制御システムにおいて、制御装置をプラント内のセンサまたはアクチュエータなどの機器と接続し、制御装置により当該機器を制御するとともに、ＳＣＡＤＡが制御装置のメモリに格納されている機器の測定データを読み取って、プラントをリアルタイムに監視したり、データを時系列に保存したり、収集したデータをＨＭＩ（Ｈｕｍａｎ  Ｍａｃｈｉｎｅ  Ｉｎｔｅｒｆａｃｅ）にグラフィカルに表示することなどが行われている。【０００４】  従来の制御装置について説明する。従来の制御装置は、あるイベントが発生したときに特定の処理を実行するモデルを使用し、イベント発生に対応する条件を起動条件、イベント発生により実行される処理をアクションと定義している。起動条件とそれに関連するアクションは、ジョブという単位で管理される。従来の制御装置は、ジョブ情報に、起動条件、その起動条件により実行されるすべてのアクション、及びそれらのアクションの起動パターンを定義し、ある起動条件が成立したら、その起動条件に対応するジョブ情報に定義された起動パターンに従って、それらのアクションを実行する（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００６−２４３９３６号公報（段落０００２、００２４、図１、及び図１１）
【発明の概要】
【発明が解決しようとする課題】
【０００６】  従来の制御装置は、上位情報系ソフトウエアと連携するシステムに用いる場合、収集したデータの最大、最小、合計などを求めるために時系列に並んだ複数のデータについて一括して処理を行う、いわゆる集計演算を実行するためには、同じ内容のアクションをデータの収集期間の長さ分だけ設定する必要がある。例えば、制御装置のメモリから１秒ごとにデータを抽出する場合、収集期間を１時間とすると３６００個のアクションの設定が必要になり、設定作業に手間がかかる。また、収集期間が長くなるほどアクションの呼び出し回数が多くなるため、制御装置が膨大な演算量の処理を実行しなければならず、高速に集計演算を行うことができないという課題があった。【０００７】  この発明は、上記に鑑みてなされたものであり、高速に集計演算を行うことができる制御装置、制御方法、及び制御装置のメモリにインストールされるプログラムを得ることを目的とする。
【課題を解決するための手段】
【０００８】  この発明に係る制御装置は、外部センサにより取得されたデータを格納するメモリと、メモリに格納されたデータのうち予め定められた種類のデータを定期的に抽出するデータ抽出部と、データ抽出部により抽出されたデータを、予め定められた種類に応じて設けられた複数のバッファのうち対応するバッファに格納するデータ分配部と、バッファが予め定められた期間分のデータを格納した場合、バッファに格納されたデータの演算処理を行うデータ集計部と、を備える。【０００９】  この発明に係る制御方法は、外部センサにより取得されたデータをメモリに格納するデータ格納ステップと、データ格納ステップにおいて格納されたデータのうち予め定められた種類のデータを定期的に抽出するデータ抽出ステップと、データ抽出ステップにおいて抽出されたデータを、予め定められた種類に応じて設けられた複数のバッファのうち対応するバッファに格納するデータ分配ステップと、バッファが予め定められた期間分のデータを格納した場合、バッファに格納されたデータの演算処理を行うデータ集計ステップと、を備える。【００１０】  この発明に係るプログラムは、プログラムを格納するメモリと、プログラムを実行するプロセッサと、を備えた制御装置であって、外部センサにより取得されたデータのうち予め定められた期間分のデータごとに演算処理を行う制御装置のメモリにインストールされるプログラムにおいて、外部センサにより取得されメモリに格納されたデータのうち予め定められた種類のデータを定期的に抽出するデータ抽出ステップと、データ抽出ステップにおいて抽出されたデータを、予め定められた種類に応じて設けられた複数のバッファのうち対応するバッファに格納するデータ分配ステップと、バッファが予め定められた期間分のデータを格納した場合、バッファに格納されたデータの演算処理を行うデータ集計ステップと、を制御装置のプロセッサに実行させる。
【発明の効果】
【００１１】  この発明によれば、高速に集計演算を行うことができる制御装置、制御方法、及び制御装置のメモリにインストールされるプログラムを提供できる。
【図面の簡単な説明】
【００１２】
【図１】実施の形態１における情報連携システムの概略構成を示す模式図である。
【図２】実施の形態１におけるＰＬＣのソフトウエア構成を示す模式図である。
【図３】実施の形態１におけるホスト及びプラグインの例を示す図である。
【図４】実施の形態１における情報連携システムが起動して初期化を行うときのＰＬＣの動作手順を示すフローチャートである。
【図５】実施の形態１における温度センサの測定データを収集する場合のホスト及びプラグインの例を示す図である。
【図６】実施の形態１におけるデータ抽出部が抽出するデータの例を示す図である。
【図７】実施の形態１における収集リストの例を示す図である。
【図８】実施の形態１における演算バッファの例を示す図である。
【図９】実施の形態１における情報連携システムが起動して動作を開始したときのＰＬＣの処理手順を示すフローチャートである。
【図１０】実施の形態１における情報連携システムの起動後の動作を示す模式図である。
【図１１】実施の形態１における最大値を演算するための集計関数のソースコードの例を示す図である。
【図１２】実施の形態１における合計を演算するための集計関数のソースコードの例を示す図である。
【発明を実施するための形態】
【００１３】実施の形態１．  図１は、実施の形態１における情報連携システムの概略構成を示す模式図である。図１を用いて、実施の形態１における制御装置を用いた情報連携システムについて説明する。なお、以下においては、制御装置を用いた情報連携システムについて説明するが、制御装置を用いた監視制御システムであっても同様に実現することができる。また、本発明は、この実施の形態１により限定されるものではない。
【００１４】  実施の形態１における情報連携システムは、制御装置としてＰＬＣ１を用いる。ＰＬＣ１には、図１に示すとおり、外部センサ２と外部機器３を接続する。外部センサ２は、例えば温度センサ、流量計、または圧力計などである。外部機器３は、例えばポンプまたはバルブなどである。ＰＬＣ１には、これらの機器が外部センサ２または外部機器３として複数接続される。
【００１５】  ＰＬＣ１は、ハードウエア構成としてメモリ１１とプロセッサ１２とを備える。メモリ１１は、ＲＡＭやフラッシュメモリ等のメモリである。プロセッサ１２は、ＰＬＣ１の全体の動作を制御する中央処理装置（ＣＰＵ：Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）である。
【００１６】  ＰＬＣ１は、保守端末４の有する設計ツールからメモリ１１にユーザプログラムをロードする。ＰＬＣ１は、プロセッサ１２がメモリ１１に格納されたユーザプログラムを実行することにより、外部センサ２から測定データを読み込んだり、外部機器３に制御信号を出力して外部機器３を制御したりする。ＰＬＣ１におけるホスト２１及びプラグイン２２は、詳細は後述するが、ユーザプログラムの実行により実現されるソフトウエア処理のことである。
【００１７】  実施の形態１において、ＰＬＣ１は、制御ネットワーク５によって他のＰＬＣ１ａ及びＰＬＣ１ｂと接続される。制御ネットワーク５は、図１に示す例に限られず、任意の数のＰＬＣを接続することができる。図１に示す例において、複数のＰＬＣの間では、メモリに格納されたデータをサイクリックに通信することでデータを同期する共有メモリ（サイクリックメモリとも称する）と呼ばれる方式などを用いて、リアルタイムに相互にデータの交換を行うことができる。
【００１８】  情報ネットワーク６は、ＰＬＣ１と監視端末７とを接続する。情報ネットワーク６は、例えばローカルエリアネットワーク（ＬＡＮ：Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）などの媒体である。ＰＬＣ１は、制御ネットワーク５とは別の通信ポートを使って情報ネットワーク６に接続する。
【００１９】  監視端末７は、ＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）であり、ＴＣＰ／ＩＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ／Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）などの通信プロトコルを使って情報ネットワーク６経由でＰＬＣ１と相互に通信できる。ユーザは、監視端末７により、ユーザプログラムがもつデータを監視したり、ユーザプログラムに制御を行うための信号を送信したりすることができる。なお、監視端末７とＰＬＣ１を繋ぐ情報ネットワーク６は、ローカルエリアネットワークに限られず、インターネットなどのクラウドであってもよい。
【００２０】  情報ネットワーク６には、さらに外部システム８を接続する。外部システム８は、例えばデータベースであり、ＴＣＰ／ＩＰなどの通信プロトコルを使ってＰＬＣ１と相互に通信できる。
【００２１】  図２は、実施の形態１におけるＰＬＣのソフトウエア構成を示す模式図である。図２を用いて、実施の形態１におけるＰＬＣ１の構成について説明する。
【００２２】  ＰＬＣ１は、ホスト２１と複数のプラグイン２２ａ及びプラグイン２２ｂとを有する。ホスト２１はオペレーティングシステムやＳＣＡＤＡ機能など共通機能を実装したソフトウエアであり、プラグイン２２ａ及びプラグイン２２ｂはその機能を拡張するソフトウエアである。
【００２３】  なお、図２においては、ホスト２１に対して２つのプラグイン２２ａ及びプラグイン２２ｂのみが登録されていることを図示しているが、実際には、ホスト２１にはさらに複数のプラグイン２２が登録されている。以下において、これらのプラグイン２２ａ及びプラグイン２２ｂなどをまとめて、プラグイン２２と称する。図２のプラグイン２２ａ及びプラグイン２２ｂなどは、図１において、まとめて図示されているプラグイン２２に対応する。
【００２４】  また、後述するプラグイン２２の抽出関数１２１ａと抽出関数１２１ｂ、演算アルゴリズム１２２ａと演算アルゴリズム１２２ｂ、集計関数１２３ａと集計関数１２３ｂなどについても、同様にまとめて、それぞれ抽出関数１２１、演算アルゴリズム１２２、集計関数１２３などと称する。
【００２５】  ホスト２１は、デバイスメモリ１１１と、データ抽出部１１２と、演算バッファ１１３と、データ分配部１１４と、データ変換部１１５と、データ集計部１１６と、データ入出力部１１７とを備える。
【００２６】  なお、図２においては、複数の演算バッファ１１３ａ、演算バッファ１１３ｂ、及び演算バッファ１１３ｃを図示しているが、実際には、後述するとおりさらに複数の演算バッファ１１３が生成される。以下において、生成された複数の演算バッファ１１３ａ、演算バッファ１１３ｂ、及び演算バッファ１１３ｃなどをまとめて、演算バッファ１１３と称する。
【００２７】  デバイスメモリ１１１は、外部センサ２が取得したデータを格納し、蓄積する。デバイスメモリ１１１は、アドレスで管理されている。一般的には、外部センサ２から入力された入力値は、デバイスメモリ１１１のうちのＸ０００〜Ｘ９９９９といったＸをデバイス名としたアドレスに割り当てられ、外部機器３に出力する出力値は、デバイスメモリ１１１のうちのＹ０００〜Ｙ９９９９といったＹをデバイス名としたアドレスに割り当てられる。それ以外の一時的なデータは、デバイスメモリ１１１のうちレジスタと呼ばれる領域に割り当てられる。レジスタには特性に応じていくつか種類があるが、例を簡単にするために、ここではレジスタはＤ（データ）をデバイス名とするＤ０００〜Ｄ９９９９のアドレスで表すことにする。
【００２８】  データ抽出部１１２は、デバイスメモリ１１１に格納されているデータのうち、収集が必要なデータを抽出する。データ抽出部１１２は、抽出にあたり、後述するプラグイン２２の抽出関数１２１を使って、収集が必要なデータの種類、データの収集期間、データの収集周期、及び収集条件などの情報を取得する。
【００２９】  また、データ抽出部１１２は、収集が必要なデータの種類、データの収集期間等の一覧である収集リストを生成する。収集リストは、デバイスメモリ１１１から抽出するデータについての条件を一覧にしたリストである。データ抽出部１１２は、収集リストにしたがって、収集が必要なデータの種類、データの収集期間、データの収集周期、及び収集条件ごとに、対応する演算バッファ１１３を生成する。
【００３０】  さらに、データ抽出部１１２は、デバイスメモリ１１１に格納されたデータのうち、収集が必要なデータの種類として予め定められた種類に対応するデータを、抽出関数１２１を使って抽出する。
【００３１】  演算バッファ１１３は、データ抽出部１１２により、抽出関数１２１が指定するデータの種類、データの収集期間等ごとに、対応するように複数生成される。なお、図２においては、例として、生成された複数の演算バッファ１１３ａ、演算バッファ１１３ｂ、及び演算バッファ１１３ｃを図示しているが、生成される複数の演算バッファ１１３の数は、図２に示す例に限られるものではない。複数の演算バッファ１１３は、詳細は後述するが、プラグイン２２の抽出関数１２１に記述された、収集が必要なデータの種類、データの収集期間、データの収集周期、及び収集条件に対応する数だけ生成される。
【００３２】  データ分配部１１４は、データ抽出部１１２により抽出されたデータを、データの種類、データの収集期間等に応じて設けられた複数の演算バッファ１１３のうち、対応する演算バッファ１１３に格納する。
【００３３】  データ変換部１１５は、予め定められたデータの収集期間分のデータを演算バッファ１１３が格納した場合に、演算バッファ１１３に格納されたデータについて、後述するプラグイン２２の演算アルゴリズム１２２を実行してデータの変換処理を行い、演算結果を演算バッファ１１３に書き戻す。
【００３４】  データ集計部１１６は、予め定められたデータの収集期間分のデータを演算バッファ１１３が格納した場合に、演算バッファ１１３に格納されたデータ変換部１１５の演算結果について、後述するプラグイン２２の集計関数１２３を使って集計演算を行い、演算バッファ１１３に書き戻す。
【００３５】  なお、以下において、データ変換部１１５によるデータの変換処理及びデータ集計部１１６による集計演算のことを、まとめて演算または各演算などと称する。
【００３６】  データ入出力部１１７は、演算バッファ１１３に格納されたデータ集計部１１６の集計結果を読み出し、外部システム８またはデバイスメモリ１１１に出力する。また、データ入出力部１１７は、外部システム８から受け取った検索指令に基づき、デバイスメモリ１１１に格納されているデータをデータ抽出部１１２に検索させたり、データ抽出部１１２がデバイスメモリ１１１から抽出したデータを受け取って外部システム８に出力したりする。
【００３７】  プラグイン２２は、抽出関数１２１と、演算アルゴリズム１２２と、集計関数１２３とを備える。
【００３８】  抽出関数１２１は、データ抽出部１１２が演算バッファ１１３を生成する際、及びデータ抽出部１１２がデバイスメモリ１１１からデータを抽出する際に用いられる、抽出が必要なデータを絞り込むためのアルゴリズムを記述した関数である。抽出関数１２１には、収集が必要なデータの種類、データの収集期間、データの収集周期、及び収集条件などが記述されている。
【００３９】  演算アルゴリズム１２２は、データ変換部１１５が演算バッファ１１３に格納された値について演算をする際に用いられる、正規化、バイアス、割合などの演算に関するアルゴリズムを記述した関数である。
【００４０】  集計関数１２３は、データ集計部１１６がデータ変換部１１５の演算結果の値を集計する際に用いられる、最大、最小、合計などを求めるための集計演算に関するアルゴリズムを記述した関数である。
【００４１】  抽出関数１２１ａと抽出関数１２１ｂ、演算アルゴリズム１２２ａと演算アルゴリズム１２２ｂ、集計関数１２３ａと集計関数１２３ｂは、通常、それぞれ異なる関数が記述されている。
【００４２】  また、プラグイン２２ａの抽出関数１２１ａ、演算アルゴリズム１２２ａ、及び集計関数１２３ａは、抽出関数１２１ａにより関連付けられており、プラグイン２２ｂの抽出関数１２１ｂ、演算アルゴリズム１２２ｂ、及び集計関数１２３ｂは、抽出関数１２１ｂにより関連付けられている。これらの抽出関数１２１、演算アルゴリズム１２２、及び集計関数１２３は、関連する抽出関数１２１ごとにプラグイン２２としてホスト２１に登録される。
【００４３】  図３は、実施の形態１におけるホスト及びプラグインの例を示す図である。なお、図３の左端の数字は、プログラムの何行目であるかを示しているが、プログラムを説明するために便宜的に付けた数字であり、プログラムの内容とは関係がないものである。
【００４４】  図３に示すプログラムにおいて、７行目から３３行目までがプラグイン２２であり、３５行目から５０行目までがホスト２１である。また、図３に示すプログラムにおいて、１１行目から１５行目までがプラグイン２２の抽出関数１２１、１６行目から２２行目までがプラグイン２２の演算アルゴリズム１２２、２３行目から３１行目までがプラグイン２２の集計関数１２３である。
【００４５】  なお、本願の明細書等において、すべてのプログラムはＣ言語（Ｃ＋＋）により記述されている。
【００４６】  図３に示すプログラムは、抽出関数１２１の収集条件の例として、デバイスメモリ１１１から抽出されたデータのうち２で割り切れるデータを収集するものが記述されている。また、図３のプログラムでは、ホスト２１のデータ抽出部１１２がプラグイン２２の抽出関数１２１を呼び出し、ホスト２１のデータ変換部１１５がプラグイン２２の演算アルゴリズム１２２を呼び出し、ホスト２１のデータ集計部１１６がプラグイン２２の集計関数１２３を呼び出すことを示している。
【００４７】  このように、実施の形態１のＰＬＣ１におけるホスト２１とプラグイン２２は、図３に示すプログラム等によりソフトウエアとして構成される。ＰＬＣ１のホスト２１とプラグイン２２は、ＰＬＣ１のプロセッサ１２が図３に示すプログラム等を実行することにより、実現される。なお、実施の形態１のＰＬＣ１におけるホスト２１とプラグイン２２は、これに限られず、ハードウエアにより実現してもよい。
【００４８】  次に、実施の形態１の情報連携システムの適用例と情報連携システムを用いたデータの収集及び集計演算について説明する。
【００４９】  近年、ＰＬＣ１などの制御装置とＭＥＳまたはＥＲＰのような上位情報系ソフトウエアとを連携した情報連携システムが実用化されている。情報連携システムにおいて、制御装置は、制御装置に繋がれた機器のデータを演算して外部のデータベースに蓄積させたり、ＨＭＩソフトウエアに送信してグラフィカルに表示させたりすることができる。また、制御装置の中には、内部にデータベースを持ち、外部通信用の専用ＣＰＵとは別にシーケンス制御を専用に行う制御ＣＰＵを設けることで、上位情報系ソフトウエアへ提供するためのデータの収集を効率良く行えるようにしたものや、収集したデータを要求に応じてＸＭＬ（Ｅｘｔｅｎｓｉｂｌｅ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）またはＨＴＭＬ(Ｈｙｐｅｒ  Ｔｅｘｔ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）に変換して上位情報系ソフトウエアへ送信するものがある。
【００５０】  また、水処理や化学系のプラントのように高速・大容量なプロセスデータを扱う監視制御システムでは、通常、ＳＣＡＤＡと呼ばれる専用ソフトウエアが専用の機器で実行されている。プラント内において、センサやアクチュエータなどの機器は制御装置に接続されており、制御装置はシーケンス制御アルゴリズムを実行して機器に制御信号を送信する。ＳＣＡＤＡは、制御装置のメモリに格納されている機器の測定データを読み取り、プラントをリアルタイムに監視したり、データを時系列に保存したりたりすることができる。また、ＨＭＩを備えたＳＣＡＤＡもあり、収集したデータをＨＭＩにグラフィカルに表示することもできる。
【００５１】  実施の形態１の情報連携システムにおいて、温度センサまたは流量計などである外部センサ２は、温度または流量などのデータを取得し、ＰＬＣ１は、ユーザプログラムを使って外部センサ２から測定データを読み込んで、入力値としてデバイスメモリ１１１に書き込む。しかし、上記において説明したとおり、デバイスメモリ１１１は、予め割り当てられているアドレスに入力値を格納する。このため、ＰＬＣ１が外部センサ２の値を新しく取得した場合、すでにデバイスメモリ１１１に格納されている同じ外部センサ２の古い値は、ＰＬＣ１が新しく取得した入力値により上書きされ、失われてしまう。そこで、実施の形態１の情報連携システムは、ＳＣＡＤＡによりデバイスメモリ１１１の値を定期的に読み出し、読み出したデータに読み出した時刻（タイムスタンプ）を付けて、ＳＣＡＤＡソフトウエア内のデータベースである外部システム８に保存する。
【００５２】  なお、デバイスメモリ１１１からすべての値を読み出す必要はない。また、デバイスメモリ１１１の各アドレスの値を同じ周期で呼び出すことにも限られない。データ抽出部１１２は、デバイスメモリ１１１から任意のデータを任意のタイミングで読み出せばよい。例えば、データ抽出部１１２は、デバイスメモリ１１１に格納された値のうち、温度センサの値は６０秒ごと、流量計の値は変化が大きいので１秒ごとに読み出すようにしてもよい。
【００５３】  一方、情報連携システムでは、工場やプラントから大量に収集されるデータを利用するにあたり、収集したデータの最大、最小、合計などを求めるために、時系列に並んだ複数のデータについて一括して処理を行う、いわゆる集計演算を実行することがある。しかし、制御装置がジョブ単位でアクションを定義する方式を採用している場合、制御装置が集計演算を実行するためには、同じ内容のアクションを収集するデータの数だけ記述する必要がある。このため、設定作業に手間がかかるとともに、演算アルゴリズムの呼び出し回数が膨大になるため制御装置の演算量が膨大になり、高速に集計演算を行うことができない。また、複雑な演算を実行するためには、１つの演算を複数のアクションに分割し、これらの複数のアクションを個別に定義する必要があるため、演算量が増加して処理速度がさらに低下する。よって、このような場合において集計演算を実行するためには、制御装置とは別に、集計演算を行うデータベースを備えた専用のパソコンを用意する必要がある。
【００５４】  さらに、ＳＣＡＤＡを実行する監視制御システムをプラントのような信頼性及び高品質が要求される環境で用いる場合には、耐環境性及び耐故障性の高いＦＡパソコンのような高価な専用機を使用する必要があり、コストが増加してしまう。
【００５５】  そこで、実施の形態１の情報連携システムでは、ＰＬＣ１がデバイスメモリ１１１に格納されたデータを外部システム８に出力する前に、ＰＬＣ１に高速に集計演算を実行させることを可能にする。これにより、別途専用のパソコンを用いることなく構成可能な情報連携システムを提供する。
【００５６】  次に、実施の形態１における情報連携システムの動作について説明する。図４は、実施の形態１における情報連携システムが起動して初期化を行うときのＰＬＣの動作手順を示すフローチャートである。図４を用いて、実施の形態１における情報連携システムの初期化時の動作を説明する。
【００５７】  なお、以下においては、特に、外部センサ２として温度センサａをＰＬＣ１の入出力ユニットに接続し、温度センサａが測定したデータを監視する例について説明する。
【００５８】  情報連携システムの初期化時、図４のステップＳＴ１において、ＰＬＣ１は、ホスト２１に登録されているプラグイン２２をロードし、処理を実行する。
【００５９】  図５は、実施の形態１における温度センサの測定データを収集する場合のホスト及びプラグインの例であって、図３とは別の例を示す図である。なお、図５の左端の数字は、プログラムの何行目であるかを示しているが、プログラムを説明するために便宜的に付けた数字であり、プログラムの内容とは関係がないものである。
【００６０】  図５に示すプログラムにおいて、１行目から１０行目までがプラグイン２２ａの抽出関数１２１ａである。また、１２行目から５８行目までがホスト２１であり、そのうちの１２行目から２５行目までがデータ分配部１１４、２７行目から５８行目までがデータ抽出部１１２である。
【００６１】  今回説明する例において、抽出関数１２１ａは、データの収集期間を１分として、図５の４行目に示すｔｅｓｔ＿ｆｕｎｃｔｉｏｎ＿ｐｅｒ＿ｄａｙのとおり定義する。図５における抽出関数１２１ａは、開始時刻である毎日００時００分００秒から終了時刻である００時００分５９秒まで、デバイスメモリ１１１のアドレスＸ１２３４から１０００ｍｓ周期でデータを読み出すことを示している。
【００６２】  なお、図５に示す抽出関数１２１ａは、単純に値を返すだけのものを記述しているが、これに限られない。抽出関数１２１は、関数として実現しているために、例えば運転中であることを示す信号がＯＮのときのみデータを抽出するなど、他の信号の値がＯＮになっていることを条件として加えることもできる。つまり、抽出関数１２１は、関数として実現しているために、複雑なロジックであっても容易に記述することができる。
【００６３】  図４のステップＳＴ２において、データ抽出部１１２は、プラグイン２２の抽出関数１２１を用いて、収集が必要なデータの種類、データの収集期間、データの収集周期、及び収集条件などの情報を取得する。
【００６４】  図６は、実施の形態１におけるデータ抽出部が抽出するデータの例を示す図である。ＰＬＣ１は、データ抽出部１１２及びデータ分配部１１４が、抽出関数１２１を使って図６に示すようなデータを収集する。なお、図６において、例えば、信号ＩＤが００１／ＫＬ００２のデータ、すなわち温度センサａの測定データは、図５に示す抽出関数１２１ａによりデバイスメモリ１１１のアドレスＸ１２３４から１０００ｍｓ周期で抽出されることを示している。
【００６５】  ここで、収集が必要なデータの種類とは、デバイスメモリ１１１に格納されているデータのうち、プラグイン２２の抽出関数１２１により収集するように指定されたデータの種類のことである。例えば、図５に示す抽出関数１２１ａの場合、収集が必要なデータの種類は、図６に示すとおり温度センサａの測定データである。
【００６６】  データの収集期間とは、収集が必要なデータを収集する期間のことである。例えば、図５に示す抽出関数１２１ａの場合、データの収集期間は、図６に示すとおり、開始時刻である２０１４年４月２９日の００時００分００秒から終了時刻である２０１４年４月２９日の００時００分５９秒までである。
【００６７】  データの収集周期とは、データ抽出部１１２が、収集が必要なデータをデバイスメモリ１１１から抽出する周期のことである。例えば、図５に示す抽出関数１２１ａの場合、データの収集周期は、図６に示すとおり１０００ｍｓである。
【００６８】  なお、図５においては図示していないが、抽出関数１２１には、収集が必要なデータの名称、信号ＩＤ、割り付けられているデバイスのアドレスなども記述されている。データ抽出部１１２は、ホスト２１に登録されているプラグイン２２の抽出関数１２１から、図６に示されるような、収集が必要なデータの名称、信号ＩＤ、割り付けられているデバイスのアドレス、データの収集周期、収集の開始時刻、終了時刻などの情報を取得する。データ抽出部１１２は、すべてのプラグイン２２について、抽出関数１２１からデータの名称、信号ＩＤ等の情報を取得する。
【００６９】  図４のステップＳＴ３において、データ抽出部１１２は、収集が必要なデータの種類、データの収集期間等を一覧にまとめた収集リストを生成する。
【００７０】  図７は、実施の形態１における収集リストの例を示す図である。収集リストは、図７に示すとおり、デバイスメモリ１１１から抽出するデータに関する条件を一覧にしたリストであり、同じ信号を同じ周期及びタイミングで収集するもののほか、データの収集周期が倍数になるものなどを整理したリストである。図７において、例えば、Ｎｏ．１のデータは、図６における信号ＩＤが００１／ＫＬ００２のデータに対応する。なお、収集リストは、図７に示したものに限られず、効率よくデータを収集することができればどのような形のものであってもよい。
【００７１】  図４のステップＳＴ４において、ＰＬＣ１は、すべてのプラグイン２２が処理されたか否かを判定し、すべてのプラグイン２２が処理されていればステップＳＴ５へ進み、そうでなければステップＳＴ１に戻って処理を繰り返す。
【００７２】  ステップＳＴ５において、データ抽出部１１２は、収集リストにしたがって、収集が必要なデータの種類、データの収集期間、データの収集周期、及び収集条件ごとに、対応する演算バッファ１１３を生成する。
【００７３】  生成される演算バッファ１１３の要素数は、プラグイン２２の抽出関数１２１により指定された開始時刻と終了時刻、及びデータの収集周期で決まる。図７に示す例において、例えば、Ｎｏ．１のデータであれば、開始時刻が２０１４年４月２９日の００時００分００秒、終了時刻が開始時刻から５９秒後、データの収集周期が１０００ｍｓ＝１秒であるので、（（５９＋１）−０）÷１［秒］＝６０個となる。
【００７４】  図８は、実施の形態１における演算バッファの例を示す図である。図８の例では、後述する演算バッファ１１３Ａについて図示している。図８（ａ）においては、データ抽出部１１２により生成された演算バッファ１１３Ａが、データ分配部１１４から渡された値を格納した状態を示している。図８（ｂ）においては、同じ演算バッファ１１３Ａが、データ変換部１１５の演算結果の値を格納した状態を示している。図８（ｃ）においては、同じ演算バッファ１１３Ａが、データ集計部１１６の集計演算の結果の値を格納した状態を示している。
【００７５】  図７に示すＮｏ．１の例において、データ抽出部１１２は、図８（ａ）に示すとおり、要素数が６０個の演算バッファ１１３Ａを生成する。
【００７６】  ほかの例として、例えば、図７に図示しない任意の信号について、２０１４年１月１日から２０１４年１月３１までの期間のデータを１日周期で収集する場合、データ抽出部１１２は、３１個の日データを格納することができる演算バッファ１１３を生成する。
【００７７】  つまり、演算バッファ１１３は、上記のデータの収集期間及びデータの収集周期分のデータをちょうど格納できるように生成される。演算バッファ１１３は、抽出関数１２１により指定されるデータの種類、データの収集期間等ごとに、対応して複数生成される。
【００７８】  以上が、実施の形態１における情報連携システムの初期化時の動作の説明である。
【００７９】  図９は、実施の形態１における情報連携システムが起動して動作を開始したときのＰＬＣの処理手順を示すフローチャートである。図１０は、実施の形態１における情報連携システムの起動後の動作を示す模式図である。図９、１０を用いて、実施の形態１における起動した情報連携システムの動作を説明する。
【００８０】  なお、図１０において、複数の演算バッファ１１３Ａ、演算バッファ１１３Ｂ、演算バッファ１１３Ｃ、及び演算バッファ１１３Ｄは、図２に図示した演算バッファ１１３ａ、演算バッファ１１３ｂ、演算バッファ１１３ｃに対応するものであり、すなわち図２の演算バッファ１１３と同じものを表している。また、図１０においては、演算バッファ１１３Ａ、演算バッファ１１３Ｂ、演算バッファ１１３Ｃ、及び演算バッファ１１３Ｄをそれぞれ複数図示しているが、これは動作を図示するにあたり便宜上複数回記載しているだけであり、図１０において同じ符号の演算バッファ１１３は同一のものを表す。
【００８１】  さらに、図１０においては、プラグイン２２ａとこれに付随する抽出関数１２１ａ、演算アルゴリム１２２ａ、及び集計関数１２３ａのみを図示しているが、上記のとおり、ホスト２１にはさらに複数のプラグイン２２が登録されている。
【００８２】  なお、以下において説明する例では、ＰＬＣ１が温度センサａの測定データを適宜読み込み、図１０に示すデバイスメモリ１１１に書き込むものとする。
【００８３】  情報連携システムが動作を開始したとき、図９のステップＳＴ１１において、データ抽出部１１２は、抽出関数１２１を用いて、抽出関数１２１により指定された種類のデータを、抽出関数１２１により指定された周期でデバイスメモリ１１１から抽出する。図１０に示すプラグイン２２ａの抽出関数１２１ａにおいて、例えば、図５の１行目から１０行目までに示す例のように、デバイスメモリ１１１のアドレスＸ１２３４が指定されている場合、データ抽出部１１２は、デバイスメモリ１１１のアドレスＸ１２３４から、図６に示される信号ＩＤが００１／ＫＬ００２のデータ、すなわち温度センサａの測定データを定期的に抽出する。このように、データ抽出部１１２は、ホスト２１に登録されているすべてのプラグイン２２を実行し、それぞれの抽出関数１２１により指定された種類のデータを定期的に抽出する。
【００８４】  ここで、異なるプラグイン２２で同じアドレスが指定されている場合、データ抽出部１１２は、重複するものとして無視する。図６において、例えば、信号００１／ＫＬ００６は、信号００１／ＫＬ００３と同じアドレスＸ２０１１のデータであり、データの収集周期も００１／ＫＬ００３の２倍の周期になっているため、重複したデータが使われることになる。このため、データ抽出部１１２は、信号００１／ＫＬ００６と信号００１／ＫＬ００３のうち、片方を重複するデータとして無視する。このようにすることで、データ抽出部１１２がデバイスメモリ１１１からデータを抽出する回数を減らすことができ、効率よくデータを収集することができる。
【００８５】  また、データ抽出部１１２は、図１０に示すとおり、抽出したデータをデータ分配部１１４に渡す。
【００８６】  図９のステップＳＴ１２において、データ分配部１１４は、図１０に示すとおり、データ抽出部１１２から受け取ったデータを、データの種類、データの収集期間、データの収集周期、及び収集条件が対応する演算バッファ１１３に格納する。
【００８７】  演算バッファ１１３を特定する方法としては、例えば、図６に示すような収集するデータの条件を格納したテーブルを作り、その要素値からハッシュを算出し、ハッシュの値を演算バッファ１１３と関連付けるなどの方法が考えられる。しかし、これに限られず、それ以外の方法であっても、演算バッファ１１３と収集するデータの条件とが効率よく関連付けられる方法であればよい。
【００８８】  また、図９のステップＳＴ１２において、データ分配部１１４は、収集が必要なデータの種類、データの収集期間、データの収集周期、及び収集条件に基づいて、データ抽出部１１２が抽出したデータを、対応する演算バッファ１１３に格納する。例えば、データ分配部１１４は、プラグイン２２ａの抽出関数１１２ａから取得したデバイスメモリ１１１のアドレスと周期、及び開始時刻に基づいて、データ抽出部１１２が抽出した温度センサａの測定データを、対応する演算バッファ１１３Ａに時系列に並ぶように格納していく。演算バッファ１１３Ａは、データ分配部１１４から渡された値を、例えば、図８（ａ）に示すように、｛Ｘ  ｜  １００，２００，３００，４００，・・・，６０００｝と１０００ｍｓごとに格納する。
【００８９】  なお、収集条件とは、データ抽出部１１２が抽出関数１２１を使ってデバイスメモリ１１１から抽出したデータについて、収集が必要か否かを判断するために用いる条件のことである。収集条件は、例えば、デバイスメモリ１１１から抽出したデータが温度センサｂの測定データである場合に、抽出した測定データが４０℃以上を表すときにはその測定データを対応する演算バッファ１１３に格納する、といったものである。このため、例えば、抽出関数１２１ｂにおいて、収集が必要なデータの種類、データの収集周期、及び収集条件として、温度センサｂの測定データで４０℃以上のものを６０秒周期で収集するように指定されており、温度センサｂの測定データが｛１０℃，２０℃，４０℃，５０℃，１０℃，０℃，１０℃，・・・｝といった具合でデバイスメモリ１１１に順番に格納されていくような場合、データ分配部１１４は、データ抽出部１１２によりデバイスメモリ１１１から６０秒ごとに読み出された温度センサｂの測定データのうち、４０℃及び５０℃の２つの値を対応する演算バッファ１１３Ｂに格納する。
【００９０】  ここで、収集するデータの条件であるデータの収集期間、データの収集周期、及び収集条件のうち、いずれかが異なるデータを収集する場合、データ分配部１１４は、データ抽出部１１２がデバイスメモリ１１１の同じアドレスから抽出した同じ種類のデータを、別々の演算バッファ１１３に格納する。例えば、温度センサａの測定データを、毎日００時００分００秒から００時５９分００秒まで、１分毎に、合計６０個収集するプラグイン２２ｃがあったとする。つまり、プラグイン２２ｃは、図５及び図１０に示すプラグイン２２ａと同様に、温度センサａの測定データを収集するが、プラグイン２２ａとは異なるデータの収集期間の間、異なるデータの収集周期により収集するものである。この場合、上記のとおり、図４のステップＳＴ５において、演算バッファ１１３Ａとは異なる対応する演算バッファ１１３として、例えば、図１０に示す演算バッファ１１３Ｃがさらに別に生成されている。このため、プラグイン２２ｃを実行する場合、データ分配部１１４は、図９のステップＳＴ１２において、プラグイン２２ａにより収集した温度センサａの測定データと同じデータを、演算バッファ１１３Ａとは異なる対応する演算バッファ１１３Ｃに格納する。よって、同じ種類のデータであっても、データの収集期間、データの収集周期、及び収集条件のうち、いずれかが異なるデータを収集する場合、実施の形態１におけるＰＬＣ１は、図１０に示すとおり、異なるデータの収集期間、異なるデータの収集周期、及び異なる収集条件ごとの演算を並列して実行することができる。
【００９１】  ここで、各演算バッファ１１３は、上記のとおり、データの収集期間及びデータの収集周期に応じて生成されている。このため、各演算バッファ１１３は、データを格納できる容量が決まっている。よって、図９のステップＳＴ１３において、演算バッファ１１３の全ての要素にデータが書き込まれた場合、すなわち演算バッファ１１３がその容量一杯にデータを蓄積した場合、データ分配部１１４は、図１０に示すとおり、演算バッファ１１３へのデータの書き込みを完了し、データ変換部１１５に通知する。
【００９２】  図９のステップＳＴ１４において、データ変換部１１５は、プラグイン２２の演算アルゴリズム１２２を実行する。データ変換部１１５は、容量が一杯になった演算バッファ１１３に格納されている値を入力として演算アルゴリズム１２２の演算を行う。
【００９３】  ここで、データ変換部１１５による演算アルゴリズム１２２の演算の例として、正規化を行うための演算アルゴリズム１２２ａについて説明する。一般に、センサなどのアナログの入力値は、ＰＬＣ１へ書き込まれるときにデジタルの値になる。例えば、１０℃から７０℃までを測定できる温度センサａがあり、分解能が０〜４００００である場合、デバイスメモリ１１１には０〜４００００の値が書き込まれる。この場合、デバイスメモリ１１１に格納された０の値は１０℃を示し、４００００の値は７０℃を示す。
【００９４】  データ変換部１１５は、図１０に示す演算アルゴリズム１２２ａを実行し、演算バッファ１１３Ａに格納された値から温度を演算する。上記の例の場合、温度センサａからの入力値をＸ［ｉ］としたとき、データ変換部１１５は、次の式（１）により温度Ｔを求める。
【００９５】
【数１】
2016079771.tif 000003
【００９６】  例えば、演算バッファ１１３Ａに格納された値が２４０００のとき、データ変換部１１５は、上記の式（１）により、温度Ｔを（２４０００−０)／４００００×６０＋１０＝４６℃と求める。データ変換部１１５は、図８（ａ）に示す演算バッファ１１３Ａに格納された値について上記の式（１）の演算を行い、対応する温度を、図８（ｂ）に示すように｛Ｔｅｍｐ  ｜  １０．１５，１０．３０，１０．４５，１１．００，・・・，１９．００｝と求める。
【００９７】  このように、データ変換部１１５は、各演算バッファ１１３が一杯になったタイミングで、対応する演算アルゴリズム１２２を実行する。なお、データ変換部１１５は、上記のような正規化だけでなく、バイアス、割合などの演算に関する演算アルゴリズム１２２を実行してもよい。
【００９８】  図９のステップＳＴ１４において、データ変換部１１５は、図１０に示すとおり、演算結果を同じ演算バッファ１１３に書き戻す。演算終了後、例えば、演算アルゴリズム１２２ａが上記の式（１）の場合に図８（ｂ）に示す値をすべて計算し終わったとき、データ変換部１１５は、データ集計部１１６に通知する。
【００９９】  図９のステップＳＴ１５において、データ集計部１１６は、演算バッファ１１３に格納されたデータ変換部１１５の演算結果の値を集計する。データ集計部１１６は、図１０に示すとおり、プラグイン２２の集計関数１２３を用いて、最大、最小、合計などの集計演算を実行する。
【０１００】  図１１は、最大値を求めるための関数ｍａｘを演算する集計関数のソースコードの例を示す図である。図１２は、合計を求めるための関数ｓｕｍを演算する集計関数のソースコードの例を示す図である。なお、図１１及び図１２の左端の数字は、プログラムの何行目であるかを示しているが、プログラムを説明するために便宜的に付けた数字であり、プログラムの内容とは関係がないものである。
【０１０１】  図１０に示す集計関数１２３ａは、例えば、図１１または図１２に示すようなプログラムである。また、図１１及び図１２において、集計関数１２３ａの１行目に記載されているｖａｌｕｅ＿ａｒｒａｙには図８（ｂ）に示される値が渡され、１行目に記載されているｌｅｎｇｔｈには図８（ａ）または図８（ｂ）に示す演算バッファ１１３Ａの要素数である６０が渡される。データ集計部１１６は、図１１または図１２に示されるような集計関数１２３ａを用いて、演算バッファ１１３Ａに格納された演算アルゴリズム１２２ａの演算結果について集計演算を実行する。
【０１０２】  また、データ集計部１１６は、集計関数１２３による集計演算を実行した結果の集計値を、同じ演算バッファ１１３に上書きする。例えば、データ集計部１１６は、演算バッファ１１３Ａに格納された演算アルゴリズム１２２ａの演算結果について集計関数１２３ａによる集計演算を実行した結果の集計値を、図８（ｃ）に示すとおり、同じ演算バッファ１１３Ａに上書きする。図８（ｃ）に示す例において、演算バッファ１１３Ａには、０番目の要素に最大、１番目の要素に最小値、つづいて平均、合計などが書き込まれている。
【０１０３】  なお、演算バッファ１１３のどの要素にどの集計値を書き込むかは、上記の特許文献１と同様に、予め定義ファイルなどを使って指定しておく。また、よく使われる集計関数１２３は、プラグイン２２でなくホスト２１側に実装しておいてもよい。さらに、集計関数１２３もプラグイン２２であるため、集計演算の種類は最大、最小、合計に限られず、これ以外の集計演算を行うようにしてもよい。
【０１０４】  図９のステップＳＴ１６において、データ入出力部１１７は、図１０に示すとおり、演算バッファ１１３から集計値を読み出し、読み出した集計値をデバイスメモリ１１１に書き戻したり、ＴＣＰ／ＩＰなどの通信プロトコルを使って外部システム８に出力したりする。例えば、データ入出力部１１７は、図８（ｃ）に示す集計結果のうち、合計である８４３．６０を外部システム８に出力する。
【０１０５】なお、集計結果のうち、どの集計値を送信するか、書き戻すかについても、上記の特許文献１と同様に、予め定義ファイルに記述しておく。
【０１０６】  図９のステップＳＴ１６において、システムを停止する指令を検出していない場合、ＰＬＣ１は、ステップＳＴ１１に戻り処理を繰り返す。システムを停止する指令を検出した場合、ＰＬＣ１は、処理を停止する。
【０１０７】  以上において説明したとおり、実施の形態１におけるＰＬＣ１は、演算アルゴリズム１２２による演算や集計関数１２３による集計演算などの各演算を実行する前に、デバイスメモリ１１１からデータを予め抽出し、抽出したデータを対応する演算バッファ１１３に予め分配した後、各演算を実行する。このため、実施の形態１におけるＰＬＣ１は、演算バッファ１１３ごとに並列に各演算を実行することができ、高速な処理が可能になる。
【０１０８】  また、実施の形態１におけるＰＬＣ１は、演算バッファ１１３が一杯になったことを条件に、当該演算バッファ１１３に格納された値について各演算を実行するため、演算バッファ１１３ごとに独立して各演算を行うことができる。よって、実施の形態１におけるＰＬＣ１は、ある演算の終了を待つなどの同期を必要とせず、各演算を非同期に実行することができ、高速な処理が可能になる。
【０１０９】  また、実施の形態１において、データ抽出部１１２は、データの種類、データの収集期間、データの収集周期、及び収集条件ごとに、対応する演算バッファ１１３を生成し、データ分配部１１４は、データ抽出部１１２により抽出されたデータを、データの種類が同じであっても、データの収集期間、データの収集周期、及び収集条件のうちのいずれかが異なる場合には異なる演算バッファ１１３に格納する。このため、実施の形態１におけるＰＬＣ１は、収集したデータに関し、データの種類が異なる場合だけでなく、データの収集期間、データの収集周期、及び収集条件のいずれかが異なるものについて演算を行う場合においても、異なる演算バッファ１１３ごとに並列に各演算を実行することが可能になるとともに、演算バッファ１１３ごとに独立して各演算を行うことができるので各演算を非同期に実行することが可能になり、高速に演算処理を行うことができる。
【０１１０】  さらに、演算に用いられるデータは、予め演算前に演算バッファ１１３に格納されている。このため、実施の形態１におけるＰＬＣ１は、例えば、外部システム８としてＰＬＣ１の外部に設けられるデータベースなど、一時的に格納したデータ領域から検索を行う必要がない。データの検索に要する時間は、取り扱うデータが大量になればなるほど検索時間が無視できなくなる。しかし、実施の形態１におけるＰＬＣ１は、データの種類、データの収集期間等ごとにそれぞれ別の演算バッファ１１３にデータを格納するため、データの検索が不要となり検索時間を省略することができ、高速な処理が可能になる。
【０１１１】  加えて、抽出関数１２１、演算アルゴリズム１２２、及び集計関数１２３は、抽出関数１２１ごとに関連付けられており、抽出関数１２１、演算アルゴリズム１２２、及び集計関数１２３は、関連する抽出関数１２１ごとにプラグイン２２としてホスト２１に登録される。このため、新しい抽出関数１２１、演算アルゴリズム１２２、及び集計関数１２３を用いたい場合、すなわち新しい条件によりデータを収集したい場合、実施の形態１におけるＰＬＣ１は、新しいプラグイン２２をホスト２１に追加するだけでよく、各演算を並列に非同期に実行でき高速に演算を行うことができるＰＬＣ１をより柔軟に構成することが可能になる。
【０１１２】  なお、上記においても説明したとおり、ＰＬＣ１とは別に、集計演算を行うデータベースを備えた専用のパソコンを用意し、このパソコンに集計演算を実行させることも可能であるが、この場合には高価な専用機を別途用意する必要がある。これに対し、実施の形態１の情報連携システムは、ＰＬＣ１に集計演算を実行させることができるため、別途専用のパソコンを用いることなくシステムを構成できる。
【０１１３】  なお、実施の形態１において、演算バッファ１１３がその容量一杯にデータを蓄積した場合に、データの書き込みを完了し、演算バッファ１１３に格納された値について演算を行うとしたが、これに限られるものではない。
【０１１４】  上記のとおり、演算バッファ１１３は、データの収集期間及びデータの収集周期分のデータをちょうど格納できるように生成されている。また、上記のとおり、演算バッファ１１３は、データ抽出部１１２により収集条件ごとに生成されている。このため、データ分配部１１４は、デバイスメモリ１１１から抽出されたデータについて、データの種類、データの収集期間、及びデータの収集周期が対応する演算バッファ１１３があっても、収集条件を満たさない場合にはそのデータを当該演算バッファ１１３に格納しない。よって、収集条件を満たさないデータがあった場合、そのデータが対応する演算バッファ１１３に格納されないために、データの収集期間が経過しても当該演算バッファ１１３が一杯にならない。そこで、演算バッファ１１３がその容量一杯にデータを蓄積した場合に、データの書き込みを完了し、演算バッファ１１３に格納された値について演算を行うことに加えて、データの収集期間が経過したことを条件として、演算バッファ１１３に格納された値について演算を実行するようにしても良い。
【０１１５】  このほか、例えば、データ抽出部１１２は、各演算バッファ１１３を生成する際、データの収集期間及びデータの収集周期に応じた容量に加えてさらに追加の容量を有する演算バッファ１１３を生成するようにしてもよい。そして、演算バッファ１１３がデータの収集期間及びデータの収集周期に応じた分だけのデータを格納した場合、すなわち演算バッファ１１３の残り容量がこの追加の容量だけになった場合に、これを検出してデータの書き込みを完了し、演算バッファ１１３に格納された値について演算を行うようにする。これらのような場合においても、演算バッファ１１３ごとに並列に各演算を実行することができるとともに、ある演算の終了を待つなどの同期を必要としないため各演算を非同期に実行することができ、高速な処理が可能になる。
【０１１６】  また、実施の形態１において、データ抽出部１１２は、収集が必要なデータの種類、データの収集期間、データの収集周期、及び収集条件ごとに、対応する演算バッファ１１３を生成し、データ分配部１１４は、収集が必要なデータの種類、データの収集期間、データの収集周期、及び収集条件に基づいて、データ抽出部１１２がデバイスメモリ１１１から抽出したデータを対応する演算バッファ１１３に格納することとしたが、これに限られるものでもない。
【０１１７】  例えば、データ抽出部１１２は、収集が必要なデータの種類、データの収集期間、データの収集周期、及び抽出条件ごとに、対応する演算バッファ１１３を生成することとし、データ分配部１１４は、収集が必要なデータの種類、データの収集期間、データの収集周期、及び抽出条件に基づいて、データ抽出部１１２がデバイスメモリ１１１から抽出したデータを対応する演算バッファ１１３に格納することとしても良い。ここでの抽出条件とは、データ抽出部１１２が抽出関数１２１によりデバイスメモリ１１１からデータを抽出する際に、抽出されるデータが満たすべき条件のことである。この場合、データ抽出部１１２は、デバイスメモリ１１１に格納されているデータのうち、抽出関数１２１により指定された抽出条件を満たすデータのみを抽出する。また、データ分配部１１４は、データ抽出部１１２から渡されたデータを、対応する演算バッファ１１３に格納する。このような場合においても、演算バッファ１１３ごとに並列に各演算を実行することができるとともに、ある演算の終了を待つなどの同期を必要としないため各演算を非同期に実行することができ、高速な処理が可能になる。
【符号の説明】
【０１１８】  １  ＰＬＣ、２  外部センサ、３  外部機器、４  保守端末、５  制御ネットワーク、６  情報ネットワーク、７  監視端末、８  外部システム、１１  メモリ、１２  プロセッサ、２１  ホスト、１１１  デバイスメモリ、１１２  データ抽出部、１１３  演算バッファ、１１４  データ分配部、１１５  データ変換部、１１６  データ集計部、１１７  データ入出力部、２２  プラグイン、１２１  抽出関数、１２２  演算アルゴリズム、１２３  集計関数
【図１】
2016079771.tif 000004
【図２】
2016079771.tif 000005
【図３】
2016079771.tif 000006
【図４】
2016079771.tif 000007
【図５】
2016079771.tif 000008
【図６】
2016079771.tif 000009
【図７】
2016079771.tif 000010
【図８】
2016079771.tif 000011
【図９】
2016079771.tif 000012
【図１０】
2016079771.tif 000013
【図１１】
2016079771.tif 000014
【図１２】
2016079771.tif 000015
【手続補正書】
【提出日】平成28年11月7日(2016.11.7)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
外部より取得されたデータを格納するメモリと、
前記メモリに格納されたデータを抽出するデータ抽出部と、
前記データ抽出部により抽出されたデータを、格納されるデータに応じて設けられた複数のバッファのうち対応するバッファに格納するデータ分配部と、
前記複数のバッファのうち、異なるバッファに格納されたデータの演算処理を行うデータ集計部と、
を備えたことを特徴とする制御装置。
【請求項２】
前記データ集計部は、予め定められた期間分のデータを格納した場合、前記演算処理を実行することを特徴とする請求項１に記載の制御装置。
【請求項３】
前記複数のバッファは、
予め定められた種類及びデータの収集期間ごとに対応して設けられ、
前記データ分配部は、
前記データ抽出部により抽出されたデータを、前記予め定められた種類及び前記データの収集期間に基づいて、前記複数のバッファのうち対応するバッファに格納する
ことを特徴とする請求項１に記載の制御装置。
【請求項４】
前記複数のバッファは、
予め定められた種類及びデータの収集周期ごとに対応して設けられ、
前記データ抽出部は、
前記予め定められた種類のデータを、前記データの収集周期に関して第１の周期で抽出するとともに前記第１の周期とは異なる第２の周期で抽出し、
前記データ分配部は、
前記データ抽出部により前記第１の周期で抽出されたデータを、前記予め定められた種類及び前記第１の周期に基づいて、前記複数のバッファのうち対応するバッファに格納し、
前記データ抽出部により前記第２の周期で抽出されたデータを、前記予め定められた種類及び前記第２の周期に基づいて、前記複数のバッファのうち前記第１の周期で抽出されたデータが格納されるバッファとは異なる対応するバッファに格納する
ことを特徴とする請求項１に記載の制御装置。
【請求項５】
前記複数のバッファは、
予め定められた種類及びデータを収集する条件ごとに対応して設けられ、
前記データ分配部は、
前記データ抽出部により抽出された前記予め定められた種類のデータのうち、前記収集する条件に関して第１の条件を満たすデータを、前記複数のバッファのうち対応するバッファに格納し、
前記データ抽出部により抽出された前記予め定められた種類のデータのうち、前記収集する条件に関して前記第１の条件とは異なる第２の条件を満たすデータを、前記複数のバッファのうち前記第１の条件を満たすデータが格納されるバッファとは異なる対応するバッファに格納する
ことを特徴とする請求項１に記載の制御装置。
【請求項６】
前記データ分配部により前記バッファに格納された前記予め定められた期間分のデータについて、予め定められた演算アルゴリズムに基づきデータの変換処理を行うデータ変換部をさらに備え、
前記データ集計部は、前記データ変換部による前記変換処理の結果について前記演算処理を行う
ことを特徴とする請求項２に記載の制御装置。
【請求項７】
前記複数のバッファは、予め定められた種類に応じて設けられ、
予め定められた種類のデータを抽出するための抽出関数と、前記演算アルゴリズムと、前記データ集計部による前記演算処理に使用される集計関数と、が前記抽出関数ごとに関連付けられており、
前記抽出関数、前記演算アルゴリズム、及び前記集計関数は、関連する前記抽出関数ごとにプラグインとして登録されることを特徴とする請求項６に記載の制御装置。
【請求項８】
前記データ集計部の演算結果を前記メモリまたは外部に設けられたデータベースに出力するデータ出力部をさらに備えた
ことを特徴とする請求項１に記載の制御装置。
【請求項９】
外部より取得されたデータをメモリに格納するデータ格納ステップと、
前記データ格納ステップにおいて格納されたデータを抽出するデータ抽出ステップと、
前記データ抽出ステップにおいて抽出されたデータを、格納されるデータに応じて設けられた複数のバッファのうち対応するバッファに格納するデータ分配ステップと、
前記複数のバッファのうち、異なるバッファに格納されたデータの演算処理を行うデータ集計ステップと、
を備えたことを特徴とする制御方法。
【請求項１０】
前記データ集計ステップは、予め定められた期間分のデータを格納した場合、前記演算処理を実行することを特徴とする請求項９に記載の制御方法。
【請求項１１】
予め定められた種類及びデータの収集期間ごとに、対応するバッファを生成するバッファ生成ステップをさらに備え、
前記データ分配ステップは、
前記データ抽出ステップにより抽出されたデータを、前記予め定められた種類及び前記データの収集期間に基づいて、前記バッファ生成ステップにおいて生成された前記複数のバッファのうち対応するバッファに格納する
ことを特徴とする請求項９に記載の制御方法。
【請求項１２】
予め定められた種類及びデータの収集周期ごとに、対応するバッファを生成するバッファ生成ステップをさらに備え、
前記データ抽出ステップは、
前記予め定められた種類のデータを、前記データの収集周期に関して第１の周期で抽出するとともに前記第１の周期とは異なる第２の周期で抽出し、
前記データ分配ステップは、
前記データ抽出ステップにおいて前記第１の周期で抽出されたデータを、前記予め定められた種類及び前記第１の周期に基づいて、前記バッファ生成ステップにおいて生成された前記複数のバッファのうち対応するバッファに格納し、
前記データ抽出ステップにおいて前記第２の周期で抽出されたデータを、前記予め定められた種類及び前記第２の周期に基づいて、前記複数のバッファのうち前記第１の周期で抽出されたデータが格納されるバッファとは異なる対応するバッファに格納する
ことを特徴とする請求項９に記載の制御方法。
【請求項１３】
予め定められた種類及びデータを収集する条件ごとに、対応するバッファを生成するバッファ生成ステップをさらに備え、
前記データ分配ステップは、
前記データ抽出ステップにおいて抽出された前記予め定められた種類のデータのうち、前記収集する条件に関して第１の条件を満たすデータを、前記バッファ生成ステップにおいて生成された前記複数のバッファのうち対応するバッファに格納し、
前記データ抽出ステップにおいて抽出された前記予め定められた種類のデータのうち、前記収集する条件に関して前記第１の条件とは異なる第２の条件を満たすデータを、前記複数のバッファのうち前記第１の条件を満たすデータが格納されるバッファとは異なる対応するバッファに格納する
ことを特徴とする請求項９に記載の制御方法。
【請求項１４】
前記データ分配ステップにおいて前記バッファに格納された前記予め定められた期間分のデータについて、予め定められた演算アルゴリズムに基づきデータの変換処理を行うデータ変換ステップをさらに備え、
前記データ集計ステップは、前記データ変換ステップによる前記変換処理の結果について前記演算処理を行う
ことを特徴とする請求項１０に記載の制御方法。
【請求項１５】
前記データ分配ステップは、予め定められた種類に対応するバッファを生成するバッファ生成ステップをさらに備え、
前記予め定められた種類のデータを抽出するための抽出関数と、前記演算アルゴリズムと、前記データ集計ステップによる前記演算処理に使用される集計関数と、が前記抽出関数ごとに関連付けられており、
前記抽出関数、前記演算アルゴリズム、及び前記集計関数は、関連する前記抽出関数ごとにプラグインとして登録される
ことを特徴とする請求項１４に記載の制御方法。
【請求項１６】
前記データ集計ステップの演算結果を前記メモリまたは外部に設けられたデータベースに出力するデータ出力ステップをさらに備えた
ことを特徴とする請求項１５に記載の制御方法。
【請求項１７】
プログラムを格納するメモリと、前記プログラムを実行するプロセッサと、を備えた制御装置であって、
外部より取得されたデータの演算処理を行う前記制御装置の前記メモリにインストールされる前記プログラムにおいて、
前記外部より取得され前記メモリに格納されたデータを抽出するデータ抽出ステップと、
前記データ抽出ステップにおいて抽出されたデータを、格納されるデータに応じて設けられた複数のバッファのうち対応するバッファに格納するデータ分配ステップと、
前記複数のバッファのうち、異なるバッファに格納されたデータの前記演算処理を行うデータ集計ステップと、を前記制御装置の前記プロセッサに実行させることを特徴とするプログラム。
【請求項１８】
前記データ集計ステップは、予め定められた期間分のデータを格納した場合、前記演算処理を実行することを特徴とする請求項１７に記載のプログラム。
【請求項１９】
予め定められた種類及びデータの収集期間ごとに、対応するバッファを生成するバッファ生成ステップをさらに備え、
前記データ分配ステップは、
前記データ抽出ステップにより抽出されたデータを、前記予め定められた種類及び前記データの収集期間に基づいて、前記バッファ生成ステップにおいて生成された前記複数のバッファのうち対応するバッファに格納する
ことを特徴とする請求項１７に記載のプログラム。
【請求項２０】
予め定められた種類及びデータの収集周期ごとに、対応するバッファを生成するバッファ生成ステップをさらに備え、
前記データ抽出ステップは、
前記予め定められた種類のデータを、前記データの収集周期に関して第１の周期で抽出するとともに前記第１の周期とは異なる第２の周期で抽出し、
前記データ分配ステップは、
前記データ抽出ステップにおいて前記第１の周期で抽出されたデータを、前記予め定められた種類及び前記第１の周期に基づいて、前記バッファ生成ステップにおいて生成された前記複数のバッファのうち対応するバッファに格納し、
前記データ抽出ステップにおいて前記第２の周期で抽出されたデータを、前記予め定められた種類及び前記第２の周期に基づいて、前記複数のバッファのうち前記第１の周期で抽出されたデータが格納されるバッファとは異なる対応するバッファに格納する
ことを特徴とする請求項１７に記載のプログラム。
【請求項２１】
予め定められた種類及びデータを収集する条件ごとに、対応するバッファを生成するバッファ生成ステップをさらに備え、
前記データ分配ステップは、
前記データ抽出ステップにおいて抽出された前記予め定められた種類のデータのうち、前記収集する条件に関して第１の条件を満たすデータを、前記バッファ生成ステップにおいて生成された前記複数のバッファのうち対応するバッファに格納し、
前記データ抽出ステップにおいて抽出された前記予め定められた種類のデータのうち、前記収集する条件に関して前記第１の条件とは異なる第２の条件を満たすデータを、前記複数のバッファのうち前記第１の条件を満たすデータが格納されるバッファとは異なる対応するバッファに格納する
ことを特徴とする請求項１７に記載のプログラム。
【請求項２２】
前記データ分配ステップにおいて前記バッファに格納された予め定められた期間分のデータについて、予め定められた演算アルゴリズムに基づきデータの変換処理を行うデータ変換ステップをさらに備え、
前記データ集計ステップは、前記データ変換ステップによる前記変換処理の結果について前記演算処理を行う
ことを特徴とする請求項１７に記載のプログラム。
【請求項２３】
前記データ分配ステップは、予め定められた種類に対応するバッファを生成するバッファ生成ステップをさらに備え、
前記予め定められた種類のデータを抽出するための抽出関数と、前記演算アルゴリズムと、前記データ集計ステップによる前記演算処理に使用される集計関数と、が前記抽出関数ごとに関連付けられており、
前記抽出関数、前記演算アルゴリズム、及び前記集計関数は、関連する前記抽出関数ごとにプラグインとして登録される
ことを特徴とする請求項２２に記載のプログラム。
【請求項２４】
外部より取得されたデータを格納するメモリと、
前記メモリに格納されたデータのうち抽出対象として設定されたメモリ領域のデータを抽出し、当該抽出したデータを保存先として設定されたバッファに格納する複数のデータ抽出部と、
前記データ抽出部に関連付けられ、前記バッファに格納されたデータを演算処理する複数のデータ集計部と、
を備えたことを特徴とする制御装置。
【請求項２５】
前記データ集計部は、予め定められた期間分のデータを格納した場合、前記演算処理を実行することを特徴とする請求項２４に記載の制御装置。
【請求項２６】
前記データ集計部の演算結果を前記メモリまたは外部に設けられたデータベースに出力するデータ出力部をさらに備えた
ことを特徴とする請求項２４に記載の制御装置。
【請求項２７】
外部より取得されたデータをメモリに格納するステップと、
前記メモリに格納されたデータを抽出する複数のデータ抽出部によって、前記メモリに格納されたデータのうち抽出対象として設定されたメモリ領域のデータを抽出し、当該抽出したデータを保存先として設定されたバッファに格納するデータ抽出ステップと、
前記データ抽出部に関連付けられ、前記バッファに格納されたデータを演算処理する複数のデータ集計部によって、前記演算処理を実行するデータ集計ステップと、
を備えたことを特徴とする制御方法。
【請求項２８】
前記データ集計ステップは、予め定められた期間分のデータを格納した場合、前記演算処理を実行することを特徴とする請求項２７に記載の制御方法。
【請求項２９】
前記データ集計ステップの演算結果を前記メモリまたは外部に設けられたデータベースに出力するデータ出力ステップをさらに備えた
ことを特徴とする請求項２７に記載の制御方法。
【請求項３０】
プログラムを格納するメモリと、前記プログラムを実行するプロセッサと、を備えた制御装置であって、
外部より取得されたデータをメモリに格納するステップと、
前記メモリに格納されたデータを抽出する複数のデータ抽出部によって、前記メモリに格納されたデータのうち抽出対象として設定されたメモリ領域のデータを抽出し、当該抽出したデータを保存先として設定されたバッファに格納するデータ抽出ステップと、
前記データ抽出部に関連付けられ、前記バッファに格納されたデータを演算処理する複数のデータ集計部によって、前記演算処理を実行するデータ集計ステップと、
を前記制御装置の前記プロセッサに実行させることを特徴とするプログラム。
【請求項３１】
前記データ集計ステップは、予め定められた期間分のデータを格納した場合、前記演算処理を実行することを特徴とする請求項３０に記載のプログラム。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】０００８
【補正方法】変更
【補正の内容】
【０００８】
この発明に係る制御装置は、外部より取得されたデータを格納するメモリと、前記メモリに格納されたデータを抽出するデータ抽出部と、前記データ抽出部により抽出されたデータを、格納されるデータに応じて設けられた複数のバッファのうち対応するバッファに格納するデータ分配部と、前記複数のバッファのうち、異なるバッファに格納されたデータの演算処理を行うデータ集計部と、を備える。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】０００９
【補正方法】変更
【補正の内容】
【０００９】
この発明に係る制御方法は、外部より取得されたデータをメモリに格納するデータ格納ステップと、前記データ格納ステップにおいて格納されたデータを抽出するデータ抽出ステップと、前記データ抽出ステップにおいて抽出されたデータを、格納されるデータに応じて設けられた複数のバッファのうち対応するバッファに格納するデータ分配ステップと、前記複数のバッファのうち、異なるバッファに格納されたデータの演算処理を行うデータ集計ステップと、を備える。
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】００１０
【補正方法】変更
【補正の内容】
【００１０】
この発明に係るプログラムは、プログラムを格納するメモリと、前記プログラムを実行するプロセッサと、を備えた制御装置であって、外部より取得されたデータの演算処理を行う前記制御装置の前記メモリにインストールされる前記プログラムにおいて、前記外部より取得され前記メモリに格納されたデータを抽出するデータ抽出ステップと、前記データ抽出ステップにおいて抽出されたデータを、格納されるデータに応じて設けられた複数のバッファのうち対応するバッファに格納するデータ分配ステップと、前記複数のバッファのうち、異なるバッファに格納されたデータの前記演算処理を行うデータ集計ステップと、を前記制御装置の前記プロセッサに実行させる。
【国際調査報告】
2016079771.tif 000016
2016079771.tif 000017
2016079771.tif 000018
2016079771.tif 000019