(57)【要約】【課題】データ収集機能を搭載した制御装置において、事後的な分析や解析を容易にするための仕組みを提供する。【解決手段】制御装置は、指定されたデータを時系列に格納する時系列データ格納部と、指定されたタイミングと時系列データ格納部に格納されるデータとを対応付けるための区切情報を格納する区切情報格納部と、時系列データ格納部でのデータの格納および区切情報格納部での区切情報の格納を制御するデータ格納処理部とを含む。データ格納処理部は、区切情報を登録する指示を受けると、当該指示に含まれる区切情報の種類を示す情報と、当該指示を受けたタイミングにおける時系列データ格納部に格納されている最新のデータを特定するための情報とを、区切情報として区切情報格納部に格納する。【選択図】図６
2018133037.tif 000002
【特許請求の範囲】
【請求項１】
指定されたデータを時系列に格納する時系列データ格納部と、
指定されたタイミングと前記時系列データ格納部に格納されるデータとを対応付けるための区切情報を格納する区切情報格納部と、
前記時系列データ格納部でのデータの格納および前記区切情報格納部での区切情報の格納を制御するデータ格納処理部とを備え、
前記データ格納処理部は、区切情報を登録する指示を受けると、当該指示に含まれる区切情報の種類を示す情報と、当該指示を受けたタイミングにおける前記時系列データ格納部に格納されている最新のデータを特定するための情報とを、前記区切情報として前記区切情報格納部に格納する、制御装置。
【請求項２】
前記時系列データ格納部は、タイミングまたは時刻を特定する情報を含む標識と、対応する観測値を含むデータと、を対応付けたレコードを、時系列に格納する、請求項１に記載の制御装置。
【請求項３】
前記区切情報格納部は、区切情報の種類を示す情報を含む標識と、前記時系列データ格納部の参照先のレコードの標識と、を対応付けたレコードを格納する、請求項２に記載の制御装置。
【請求項４】
前記区切情報格納部に格納される各レコードの標識は、予め定められた規則に従って順次更新される識別情報と、区切情報を特定するための識別情報と、区切情報の種類を示す情報とを含む、請求項３に記載の制御装置。
【請求項５】
前記区切情報の種類は、対応する区切情報が区切区間の開始、および、区切区間の終了のいずれを示すかを規定する、請求項４に記載の制御装置。
【請求項６】
特定の区切情報についての指示を受けると、前記区切情報格納部に格納されている区切情報のうちから当該特定の区切情報を検索するとともに、当該検索された１または複数の区切情報に基づいて、前記時系列データ格納部に格納されているデータのうち当該特定の区切情報に対応するデータを検索する、データ検索処理部をさらに備える、請求項１〜５のいずれか１項に記載の制御装置。
【請求項７】
前記データ検索処理部に対して、前記特定の区切情報についての指示を発行するアプリケーションをさらに備える、請求項６に記載の制御装置。
【請求項８】
前記データ検索処理部は、前記制御装置の外部から前記特定の区切情報についての指示を受け付ける、請求項６または７に記載の制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、指定されたデータを時系列に格納する機能を有する制御装置に関する。
【背景技術】
【０００２】
様々な生産現場において、ＰＬＣ（プログラマブルコントローラ）などの制御装置を用いたＦＡ（Factory Automation）技術が広く普及している。このような制御装置が取り扱うデータを事後的に解析するようなニーズがある。
【０００３】
例えば、特開２００４−１９９６７０号公報（特許文献１）は、ＰＬＣのＣＰＵユニットから確実かつ高速でデータ収集ができるデータ収集装置を開示する。より具体的には、特許文献１は、ＰＬＣのＰＬＣバスに接続されてＣＰＵユニットからＩＯデータを収集するデータ収集装置を開示する。また、特開２００７−２１９９２０号公報（特許文献２）は、プログラマブル・コントローラに接続されて、プログラマブル・コントローラのメモリに格納されたデータを収集して蓄積保存するデータ収集装置を開示する。
【０００４】
特開２０１２−１９４６８３号公報（特許文献３）は、プログラマブルコントローラでのデータ収集に関して、ツール装置からＣＰＵユニットに対してデータトレース情報が与えられる構成を開示する。
【０００５】
ＩＣＴ（Information and Communication Technology）の進歩によって、制御装置においても大量のデータを収集および格納することが可能になりつつある。例えば、特開２０１５−００５０６２号公報（特許文献４）は、データの書き込み回数の上限のない不揮発性記憶装置である不揮発性メモリ上にオンメモリでデータベースが構築された、プログラマブルロジックコントローラを開示する。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００４−１９９６７０号公報
【特許文献２】特開２００７−２１９９２０号公報
【特許文献３】特開２０１２−１９４６８３号公報
【特許文献４】特開２０１５−００５０６２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
一般的に、データベースに収集されたデータは事後的な分析や解析などに利用される。そのため、上述したような制御装置に内蔵されたデータベースにて大量のデータを収集するような構成を採用した場合であっても、事後的な分析や解析を容易にする仕組みが必要である。
【０００８】
本発明は、上述したようなニーズを実現するために、データ収集機能を搭載した制御装置において、事後的な分析や解析を容易にするための仕組みを提供することを一つの目的としている。
【課題を解決するための手段】
【０００９】
本発明のある局面に従う制御装置は、指定されたデータを時系列に格納する時系列データ格納部と、指定されたタイミングと時系列データ格納部に格納されるデータとを対応付けるための区切情報を格納する区切情報格納部と、時系列データ格納部でのデータの格納および区切情報格納部での区切情報の格納を制御するデータ格納処理部とを含む。データ格納処理部は、区切情報を登録する指示を受けると、当該指示に含まれる区切情報の種類を示す情報と、当該指示を受けたタイミングにおける時系列データ格納部に格納されている最新のデータを特定するための情報とを、区切情報として区切情報格納部に格納する。
【００１０】
好ましくは、時系列データ格納部は、タイミングまたは時刻を特定する情報を含む標識と、対応する観測値を含むデータと、を対応付けたレコードを、時系列に格納する。
【００１１】
好ましくは、区切情報格納部は、区切情報の種類を示す情報を含む標識と、時系列データ格納部の参照先のレコードの標識と、を対応付けたレコードを格納する。
【００１２】
好ましくは、区切情報格納部に格納される各レコードの標識は、予め定められた規則に従って順次更新される識別情報と、区切情報を特定するための識別情報と、区切情報の種類を示す情報とを含む。
【００１３】
好ましくは、区切情報の種類は、対応する区切情報が区切区間の開始、および、区切区間の終了のいずれを示すかを規定する。
【００１４】
好ましくは、制御装置は、特定の区切情報についての指示を受けると、区切情報格納部に格納されている区切情報のうちから当該特定の区切情報を検索するとともに、当該検索された１または複数の区切情報に基づいて、時系列データ格納部に格納されているデータのうち当該特定の区切情報に対応するデータを検索する、データ検索処理部をさらに含む。
【００１５】
好ましくは、制御装置は、データ検索処理部に対して、特定の区切情報についての指示を発行するアプリケーションをさらに含む。
【００１６】
好ましくは、データ検索処理部は、制御装置の外部から特定の区切情報についての指示を受け付ける。
【発明の効果】
【００１７】
本発明によれば、データ収集機能を搭載した制御装置において、事後的な分析や解析を容易にするための仕組みを提供できる。
【図面の簡単な説明】
【００１８】
【図１】本実施の形態に係る制御システムの全体構成例を示す模式図である。
【図２】本実施の形態に係る制御システムを構成する制御装置のハードウェア構成例を示すブロック図である。
【図３】本実施の形態に係る制御装置が提供する時系列データベースの機能の概要を説明するための模式図である。
【図４】本実施の形態に係る制御装置が提供する時系列データベースの機能の概要を説明するための模式図である。
【図５】本実施の形態に係る制御装置が提供する時系列データベースの機能の概要を説明するための模式図である。
【図６】本実施の形態に係る制御システムを構成するＣＰＵユニットのソフトウェア構成例を示すブロック図である。
【図７】本実施の形態に係る制御装置に実装される時系列データベースのデータ構造を概略する模式図である。
【図８】本実施の形態に係る制御装置に格納される時系列観測値データベースのレコードのデータ構造を概略する模式図である。
【図９】本実施の形態に係る制御装置に格納される区切情報データベースのレコードのデータ構造を概略する模式図である。
【図１０】本実施の形態に係る制御装置における区切情報の登録処理を説明するための模式図である。
【図１１】本実施の形態に係る制御装置における区切情報の登録処理を説明するための模式図である。
【図１２】本実施の形態に係る制御装置における区切情報を利用したデータ検索処理を説明するための模式図である。
【図１３】本実施の形態に係る制御システムをロット単位で生産される生産ラインへ応用したときの例を示す模式図である。
【図１４】本実施の形態に係る制御システムを時間的な区切りのない連続系システムへ応用したときの例を示す模式図である。
【図１５】本実施の形態に係る制御システムをイベントが発生するシステムへ応用したときの例を示す模式図である。
【図１６】本実施の形態に係る制御装置において実行されるユーザプログラムの一例を示す図である。
【発明を実施するための形態】
【００１９】
本発明の実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰返さない。
【００２０】
＜Ａ．制御システムの全体構成例＞
まず、本実施の形態に係る制御装置を含む制御システム１の全体構成例について説明する。
【００２１】
図１は、本実施の形態に係る制御システム１の全体構成例を示す模式図である。図１を参照して、本実施の形態に係る制御システム１は、主たる構成要素として、制御対象を制御する制御装置１０と、制御装置１０に接続されるサポート装置２００とを含む。
【００２２】
制御装置１０は、ＰＬＣ（プログラマブルコントローラ）などの、一種のコンピュータとして具現化されてもよい。制御装置１０は、第１フィールドネットワーク２を介してフィールド装置群６と接続されるとともに、第２フィールドネットワーク４を介して１または複数の表示装置３００と接続される。制御装置１０は、それぞれのネットワークを介して、接続された装置との間でデータを遣り取りする。
【００２３】
制御装置１０は、設備や機械を制御するための各種演算を実行する制御ロジック（以下、「ＰＬＣエンジン」とも称す。）を有している。ＰＬＣエンジンに加えて、制御装置１０は、フィールド装置群６にて計測され、制御装置１０へ転送されるデータ（以下、「入力データ」とも称す。）を収集する収集機能を有している。さらに、制御装置１０は、収集した入力データを監視する監視機能も有している。
【００２４】
第１フィールドネットワーク２および第２フィールドネットワーク４は、データの到達時間が保証される、定周期通信を行うネットワークを採用することが好ましい。このような定周期通信を行うネットワークとしては、ＥｔｈｅｒＣＡＴ（登録商標）、ＥｔｈｅｒＮｅｔ／ＩＰ（登録商標）、ＤｅｖｉｃｅＮｅｔ（登録商標）、ＣｏｍｐｏＮｅｔ（登録商標）などが知られている。
【００２５】
フィールド装置群６は、制御対象または制御に関連する製造装置や生産ラインなど（以下、「フィールド」とも総称する。）から入力データを収集する装置を含む。このような入力データを収集する装置としては、入力リレーや各種センサなどが想定される。フィールド装置群６は、さらに、制御装置１０にて生成される指令（以下、「出力データ」とも称す。）に基づいて、フィールドに対して何らかの作用を与える装置を含む。このようなフィールドに対して何らかの作用を与える装置としては、出力リレー、コンタクタ、サーボドライバおよびサーボモータ、その他任意のアクチュエータが想定される。これらのフィールド装置群６は、第１フィールドネットワーク２を介して、制御装置１０との間で、入力データおよび出力データを含むデータを遣り取りする。
【００２６】
図１に示す構成例においては、フィールド装置群６は、リモートＩ／Ｏ（Input/Output）装置１２と、リレー群１４と、画像センサ１８およびカメラ２０と、サーボドライバ２２およびサーボモータ２４とを含む。
【００２７】
リモートＩ／Ｏ装置１２は、第１フィールドネットワーク２を介して通信を行う通信部と、入力データの取得および出力データの出力を行うための入出力部（以下、「Ｉ／Ｏユニット」とも称す。）とを含む。このようなＩ／Ｏユニットを介して、制御装置１０とフィールドとの間で入力データおよび出力データが遣り取りされる。図１には、リレー群１４を介して、入力データおよび出力データとして、デジタル信号が遣り取りされる例が示されている。
【００２８】
Ｉ／Ｏユニットは、フィールドネットワークに直接接続されるようにしてもよい。図１には、第１フィールドネットワーク２にＩ／Ｏユニット１６が直接接続されている例を示す。
【００２９】
画像センサ１８は、カメラ２０によって撮像された画像データに対して、パターンマッチングなどの画像計測処理を行って、その処理結果を制御装置１０へ送信する。
【００３０】
サーボドライバ２２は、制御装置１０からの出力データ（例えば、位置指令など）に従って、サーボモータ２４を駆動する。
【００３１】
上述のように、第１フィールドネットワーク２を介して、制御装置１０とフィールド装置群６との間でデータが遣り取りされることになるが、これらの遣り取りされるデータは、数百μｓｅｃオーダ〜数十ｍｓｅｃオーダのごく短い周期で更新されることになる。なお、このような遣り取りされるデータの更新処理を、「Ｉ／Ｏリフレッシュ処理」と称することもある。
【００３２】
また、第２フィールドネットワーク４を介して制御装置１０と接続される表示装置３００は、ユーザからの操作を受けて、制御装置１０に対してユーザ操作に応じたコマンドなどを送信するとともに、制御装置１０での演算結果などをグラフィカルに表示する。
【００３３】
サポート装置２００は、制御装置１０が制御対象を制御するために必要な準備を支援する装置である。具体的には、サポート装置２００は、制御装置１０で実行されるプログラムの開発環境（プログラム作成編集ツール、パーサ、コンパイラなど）、制御装置１０および制御装置１０に接続される各種デバイスのパラメータ（コンフィギュレーション）を設定するための設定環境、生成したユーザプログラムを制御装置１０へ送信する機能、制御装置１０上で実行されるユーザプログラムなどをオンラインで修正・変更する機能、などを提供する。
【００３４】
＜Ｂ．制御装置のハードウェア構成例＞
次に、本実施の形態に係る制御システム１を構成する制御装置１０のハードウェア構成例について説明する。
【００３５】
図２は、本実施の形態に係る制御システム１を構成する制御装置１０のハードウェア構成例を示すブロック図である。図２を参照して、制御装置１０は、演算処理部および１または複数のＩ／Ｏユニット１２４−１，１２４−２，…を含む。以下の説明においては、演算処理部を「ＣＰＵユニット１００」とも称す。
【００３６】
ＣＰＵユニット１００は、プロセッサ１０２と、チップセット１０４と、主記憶装置１０６と、二次記憶装置１０８と、上位ネットワークコントローラ１１０と、ＵＳＢ（Universal Serial Bus）コントローラ１１２と、メモリカードインターフェイス１１４と、内部バスコントローラ１２２と、フィールドバスコントローラ１１８，１２０とを含む。
【００３７】
プロセッサ１０２は、ＣＰＵ（Central Processing Unit）やＭＰＵ（Micro-Processing Unit）などで構成され、二次記憶装置１０８に格納された各種プログラムを読み出して、主記憶装置１０６に展開して実行することで、制御対象に応じた制御、および、後述するような各種処理を実現する。チップセット１０４は、プロセッサ１０２と各デバイスを制御することで、制御装置１０全体としての処理を実現する。
【００３８】
二次記憶装置１０８には、ＰＬＣエンジンを実現するためのシステムプログラムに加えて、ＰＬＣエンジンを利用して実行されるユーザプログラムが格納される。さらに、二次記憶装置１０８には、後述するような時系列データベースも格納される。
【００３９】
上位ネットワークコントローラ１１０は、上位ネットワークを介した他の装置との間のデータの遣り取りを制御する。ＵＳＢコントローラ１１２は、ＵＳＢ接続を介してサポート装置２００との間のデータの遣り取りを制御する。
【００４０】
メモリカードインターフェイス１１４は、メモリカード１１６を着脱可能に構成されており、メモリカード１１６に対してデータを書込み、メモリカード１１６から各種データ（ユーザプログラムやトレースデータなど）を読出すことが可能になっている。
【００４１】
内部バスコントローラ１２２は、制御装置１０に搭載されるＩ／Ｏユニット１２４−１，１２４−２，…との間でデータを遣り取りするインターフェイスである。
【００４２】
フィールドバスコントローラ１１８は、第１フィールドネットワーク２を介した他の装置との間のデータの遣り取りを制御する。同様に、フィールドバスコントローラ１２０は、第２フィールドネットワーク４を介した他の装置との間のデータの遣り取りを制御する。
【００４３】
図２には、プロセッサ１０２がプログラムを実行することで必要な機能が提供される構成例を示したが、これらの提供される機能の一部または全部を、専用のハードウェア回路（例えば、ＡＳＩＣ（Application Specific Integrated Circuit）またはＦＰＧＡ（Field-Programmable Gate Array）など）を用いて実装してもよい。あるいは、制御装置１０の主要部を、汎用的なアーキテクチャに従うハードウェア（例えば、汎用パソコンをベースとした産業用パソコン）を用いて実現してもよい。この場合には、仮想化技術を用いて、用途の異なる複数のＯＳ（Operating System）を並列的に実行させるとともに、各ＯＳ上で必要なアプリケーションを実行させるようにしてもよい。
【００４４】
＜Ｃ．時系列データベースの概要＞
次に、本実施の形態に係る制御装置１０が提供する時系列データベースの概要について説明する。本明細書において、「時系列データベース」とは、時系列のデータを扱うことデータベースを意味し、任意の対象についての時間的な変化を連続的（あるいは、一定間隔をおいて不連続）に観測して得られる一連の値（これらを「時系列データ」とも総称する。）を格納できる記憶機能を意味する。
【００４５】
本実施の形態に係る制御装置１０が提供する時系列データベースは、時系列にデータを収集するとともに、それらの時系列のデータ収集に併せて、インデックスまたは区切りとなる情報も格納する。このようなインデックスまたは区切りとなる情報を併せて格納することで、格納された時系列データを事後的にアクセスする際の利用性を高める。以下の説明では、インデックスまたは区切りとなる情報を説明の便宜上「区切情報」と称す。「区切情報」との呼称は便宜上のものであり、格納されるデータの構造は、時系列データベースに応じて任意のものを採用できる。
【００４６】
図３〜図５は、本実施の形態に係る制御装置１０が提供する時系列データベースの機能の概要を説明するための模式図である。図３には、任意の製造装置や生産ラインなどにおいて、生産の区切りの一つである製造ロットの情報を区切情報として収集する例を示す。図４には、収集されるデータ数（以下、「レコード」とも称す。）が予め定められた単位数（例えば、１０００レコード）に達したことを区切情報として収集する例を示す。図５には、任意の時刻を区切情報として収集する例を示す。
【００４７】
図３には、製造装置や生産ラインといったフィールドからの任意の観測値を時系列に収集するとともに、その収集される時系列データに関連付けて、区切情報が付加される例を示す。より具体的には、対象の製造装置や生産ラインにおいて、任意のタイミングでロットＡが開始されたことをイベントとして、当該イベントを特定するための情報を含む区切情報を付加する。
【００４８】
このような形で区切情報を利用することで、製造ロット毎の開始および終了を記録することができる。つまり、製造ロット毎に時系列データを収集したような場合に有効である。
【００４９】
具体的な実装例としては、制御装置１０で実行されるユーザプログラムに、区切情報を記録するための命令を記述するとともに、当該命令の実行条件として、製造ロットの開始または終了を示すフラグなどを規定する。この命令においては、製造ロットの開始時または終了時に、文字列として「ロット番号」を区切情報として指定するようにしてもよい。
【００５０】
図４には、製造装置や生産ラインといったフィールドからの任意の観測値を時系列に収集するとともに、その収集される時系列データに関連付けて、区切情報が付加される例を示す。より具体的には、収集される時系列データが所定数（例えば、１０００レコード）に到達したことをイベントとして、当該イベントに対応する区切情報を付加する。あるいは、所定時間毎に区切情報を付加するようにしてもよい。
【００５１】
このような形で区切情報を利用することで、時系列データを区切情報に基づいて分割することができるので、収集された時系列データを所定数毎に検索または加工するような処理を提供できる。すなわち、任意の観測値を連続的に収集するような場合に有効である。
【００５２】
図５には、製造装置や生産ラインといったフィールドからの任意の観測値を時系列に収集するとともに、その収集される時系列データに関連付けて、区切情報が付加される例を示す。図５に示す例では、時系列データとして、時刻情報ではなく、ＰＬＣの内部やフィールドネットワーク上に実装されるカウンタからのカウンタ値（基準点からの経過時間に相当）のみが格納される場合がある。このような時系列データの収集形態が採用された場合には、時刻を検索キーにした時系列データの検索ができない。
【００５３】
そこで、予め定められた周期または任意のイベント発生毎に対応する時刻を区切情報として付加しておくことで、時刻を検索キーとして時系列データから区切情報を検索し、その検索された区切情報を基準として、検索対象となる時系列データの取得を行うことができる。より具体的なデータ利用の手順としては、時刻を検索キーとして抽出された区切情報の前後にある時系列データなどが対象として抽出される。
【００５４】
なお、説明の便宜上、図３〜図５には、時系列データベースに含まれる各データを格納するレコードと並列する形で区切情報が記録される模式図を示すが、区切情報を記録する形式については特定に限定されることなく、任意の方法で管理すればよい。以下の説明においては、一つの実装形態として、時系列データと区切情報とを論理的に分離して格納および保持する方法を説明する。
【００５５】
＜Ｄ．制御装置のソフトウェア構成例＞
次に、本実施の形態に係る制御システム１を構成するＣＰＵユニット１００のソフトウェア構成例について説明する。
【００５６】
図６は、本実施の形態に係る制御システム１を構成するＣＰＵユニット１００のソフトウェア構成例を示すブロック図である。図６を参照して、ＣＰＵユニット１００は、ＰＬＣエンジン１５０と、時系列データベース１８０と、任意のアプリケーション１９０とを含む。
【００５７】
ＰＬＣエンジン１５０は、典型的には、ＣＰＵユニット１００のプロセッサ１０２が各種プログラムを実行することで実現される。より具体的には、ＰＬＣエンジン１５０は、制御プログラム１６０と、システムプログラム１７０とにより構成される。
【００５８】
制御プログラム１６０は、ＣＰＵユニット１００を含む制御装置１０の用途などに応じて任意に構成することができ、典型的には、ユーザプログラム１６２と、データベース書込みプログラム１６４と、シリアライズ通信プログラム１６６とにより構成される。
【００５９】
ユーザプログラム１６２は、制御装置１０に対して要求される性能や制御などに応じて任意に作成されるプログラムであり、例えば、ファンクションブロックなどを利用したラダーロジックなどで規定することができる。
【００６０】
データベース書込みプログラム１６４は、ユーザプログラム１６２内に規定された命令によって呼び出され、時系列データベース１８０に対して指定されたデータを書込む。データベース書込みプログラム１６４は、指定されたデータの書込みだけではなく、図３〜図５を参照して説明したような区切情報を時系列データベース１８０に対して付加することもできる。
【００６１】
シリアライズ通信プログラム１６６は、データベース書込みプログラム１６４から時系列データベース１８０に対して書込まれるデータに対してシリアライズ処理を行う。より具体的には、シリアライズ通信プログラム１６６は、時系列データを格納可能なバイト列に変換する処理（シリアライズ）を実行する。対象のデータは、シリアライズ処理により所定のバイト列に変換された上で、時系列データベース１８０内に格納される。
【００６２】
システムプログラム１７０は、ＣＰＵユニット１００で実行されるプロセスやタスクなどの管理する機能などを提供する。典型的には、システムプログラム１７０は、実行タイミングなどを管理するスケジューラや、時系列データベース１８０や外部ファイルにデータを書込むための機能などを提供する。
【００６３】
時系列データベース１８０は、典型的には、主記憶装置１０６または二次記憶装置１０８（図２参照）に配置され、データを格納する機能とともに、外部からの要求（クエリ）に応答して、指定されたデータを応答する検索機能を搭載している。本実施の形態に係る制御装置１０においては、図３〜図５を参照して説明したような区切情報を時系列データとともに格納するための機能も有している。なお、時系列データベース１８０は、格納する時系列データを公知の方法でデータ圧縮した上で、その圧縮後のデータをデータ格納処理部１８２に格納するようにしてもよい。
【００６４】
より具体的には、時系列データベース１８０は、データ格納処理部１８２と、時系列データ格納部１８４と、区切情報格納部１８６と、データ検索処理部１８８とを含む。
【００６５】
データ格納処理部１８２は、時系列データ格納部１８４でのデータの格納および区切情報格納部１８６での区切情報の格納を制御する。すなわち、データ格納処理部１８２は、時系列データおよび区切情報を時系列データベース１８０内に格納する処理を行う。より具体的には、データ格納処理部１８２は、データベース書込みプログラム１６４からの各種指令やデータなどに応じて、時系列データ格納部１８４に時系列データのレコードを追加し、あるいは、区切情報格納部１８６に格納されている区切情報を適宜更新する。
【００６６】
時系列データ格納部１８４は、指定されたデータを時系列に格納する。より具体的には、時系列データ格納部１８４は、制御装置１０（ＣＰＵユニット１００）で保持される、入力値、演算値、出力値および製造情報などの任意の観測値を時系列に格納する。これらの時系列に順次格納される観測値が時系列データに相当する。時系列データ格納部１８４は、データベースのファイルとして実装されてもよい。時系列データ格納部１８４に格納されるデータは、後述するようにユーザプログラム１６２などにおいて指定される。より具体的には、時系列データ格納部１８４は、各データをレコードの形で格納している。各レコードのデータ構造については後述する。
【００６７】
区切情報格納部１８６は、指定されたタイミングと時系列データ格納部１８４に格納されるデータとを対応付けるための区切情報を格納する。区切情報格納部１８６においては、時系列データに関連する区切情報の登録や区切情報による検索などの管理が行われる。区切情報格納部１８６は、区切情報を含むデータベースファイルとして実装されてもよい。
【００６８】
データ検索処理部１８８は、時系列データベース１８０内に格納されているデータを検索し、その検索結果を出力する。より具体的には、データ検索処理部１８８は、ＣＰＵユニット１００上で実行されるアプリケーション１９０およびサポート装置２００上で実行されるアプリケーション２１０などからの要求（クエリ）に応答して、区切情報格納部１８６に格納されている区切情報を参照しつつ、時系列データ格納部１８４から指定された時系列データを取得して応答する。このように、データ検索処理部１８８は、特定の区切情報についての指示を受けると、区切情報格納部１８６に格納されている区切情報のうちから当該特定の区切情報を検索するとともに、当該検索された１または複数の区切情報に基づいて、時系列データ格納部１８４に格納されているデータのうち当該特定の区切情報に対応するデータを検索する。
【００６９】
アプリケーション１９０は、ＣＰＵユニット１００上で実行される任意のプログラムであり、典型的には、時系列データベース１８０に格納されている時系列データを利用するようなプログラムが想定される。例えば、時系列データベース１８０に格納されている時系列データを学習データとして機械学習を行った上で、何らかの判別を行うようなアプリケーションが想定される。このように、アプリケーション１９０は、データ検索処理部１８８に対して、特定の区切情報についての指示を発行する。
【００７０】
アプリケーション２１０は、サポート装置２００で実行される任意のプログラムであり、典型的には、時系列データベース１８０に格納されている時系列データを利用するようなプログラムが想定される。例えば、ＣＰＵユニット１００に時系列データベース１８０に格納されている時系列データを解析して、何らかの傾向や当該傾向に関連付けられる特徴量などを探し出すような、いわゆるデータマイニングなどを想定される。あるいは、時系列データベース１８０に格納されている時系列データに対して、各種の統計処理を実行するアプリケーションや、時系列データベース１８０に格納されている時系列データの数値を表示したり、視覚的に示すグラフなどを表示したりするようなアプリケーションも想定される。このように、データ検索処理部１８８は、制御装置１０の外部から特定の区切情報についての指示を受け付けて、上述したような検索処理を実行する。
【００７１】
＜Ｅ．データ構造＞
次に、時系列データベース１８０を実現するためのデータ構造の一例について説明する。
【００７２】
（ｅ１：時系列データベース１８０）
図７は、本実施の形態に係る制御装置１０に実装される時系列データベース１８０のデータ構造を概略する模式図である。図７を参照して、時系列データベース１８０が扱う時系列データの概念を「時系列（TimeSeries）」とも称す。１つの時系列は、複数レベルのデータベースで構成されてもよい。本実施の形態において、複数レベルのデータベースとしては、時系列データ格納部１８４に格納される時系列観測値データベースと、区切情報格納部１８６に格納される区切情報データベースとを含む。時系列データベース１８０には、複数の時系列を生成することができ、例えば、アプリケーション毎に時系列を生成するようにしてもよい。各データベースファイルは、バージョンなどの独自の属性を有するようにしてもよい。
【００７３】
時系列観測値データベースには、時系列データが格納される。区切情報データベースには、時系列データに付与される区切情報を参照するためのインデックス情報などが格納される。
【００７４】
時系列観測値データベースには、データの最小単位であるレコードの単位で時系列データが格納される。各レコードは、Ｋｅｙ−Ｖａｌｕｅストア型が採用されてもよい。Ｋｅｙ−Ｖａｌｕｅストア型のレコードが採用された場合には、格納対象のデータ（Ｖａｌｕｅ／値）と、そのデータに対応する一意の標識（Ｋｅｙ）とが関連付けて格納される。すなわち、各レコードは、Ｋｅｙ−Ｖａｌｕｅストア型のＫｅｙとＶａｌｕｅとを含む。
【００７５】
より具体的には、時系列観測値データベースを構成する各レコードには、時系列データの標識を示す時系列Ｋｅｙと、時系列データの値を示す時系列Ｖａｌｕｅとが格納される。
【００７６】
本実施の形態に係る時系列に対しては、区切情報が付加されることになる、この時間軸上で隣接する区切情報の間を、説明の便宜上「区切区間」とも称す。但し、「区切区間」の時間軸上の長さは固定とは限らず、ユーザや外部要因などによって任意に設定されるようにしてもよい。このような区切区間は、上述したようなロット単位やタクト単位に対応付けられてもよい。
【００７７】
また、区切情報データベースには、時系列観測値データベースと同様に、Ｋｅｙ−Ｖａｌｕｅストア型の１または複数のレコードが格納されるようにしてもよい。
【００７８】
（ｅ２：時系列観測値データベース）
次に、図７に示す時系列観測値データベースを構成する各レコード内のより詳細なデータ構造の一例について説明する。
【００７９】
時系列データ格納部１８４は、タイミングまたは時刻を特定する情報を含む標識（Ｋｅｙ）と、対応する観測値を含むデータ（Ｖａｌｕｅ）と、を対応付けたレコードを、時系列に格納する。図８は、本実施の形態に係る制御装置１０に格納される時系列観測値データベースのレコードのデータ構造を概略する模式図である。図８を参照して、時系列観測値データベースのレコードは、Ｋｅｙとして、ＩＤ１８４１およびタイムスタンプ１８４２を含む。
【００８０】
ＩＤ１８４１として、格納対象のデータに関連付けられる任意の識別情報が用いられてもよい。タイムスタンプ１８４２は、タイミングまたは時刻を特定する情報に相当し、例えば、任意のデータを格納する際のＣＰＵユニット１００で管理しているカウンタ情報または時刻情報が用いられる。
【００８１】
時系列観測値データベースのレコードは、Ｖａｌｕｅとして、インデックス１８４３および観測値１８４４を含む。インデックス１８４３は、データの格納動作に応じて所定値だけインクリメント／デクリメントされる値である。典型的には、観測値が格納される毎に１ずつカウントアップされるような値が用いられる。観測値１８４４は、ユーザプログラム１６２内に規定された命令によってデータベース書込みプログラム１６４が呼び出され、データベース書込みプログラム１６４が指定された観測値を含むレコードが時系列観測値データベースに順次書込まれる。
【００８２】
（ｅ３：区切情報データベース）
次に、図７に示す区切情報データベースを構成する各レコード内のより詳細なデータ構造の一例について説明する。
【００８３】
区切情報格納部１８６は、区切情報の種類を示す情報を含む標識（Ｋｅｙ）と、時系列データ格納部１８４の参照先のレコードの標識（Ｋｅｙ）と、を対応付けたレコードを格納する。図９は、本実施の形態に係る制御装置１０に格納される区切情報データベースのレコードのデータ構造を概略する模式図である。図９を参照して、区切情報データベースのレコードは、Ｋｅｙとして、ＡｕｔｏＩＤ１８６１と、区切情報識別子１８６２と、区切情報種類１８６３とを含む。
【００８４】
ＡｕｔｏＩＤ１８６１は、予め定められた規則に従って順次更新される識別情報に相当し、区切情報の登録に応じて所定値だけインクリメント／デクリメントされる値が用いられる。典型的には、区切情報が登録される毎に１ずつカウントアップされるような値が用いられる。
【００８５】
区切情報識別子１８６２は、区切情報を特定するための識別情報に相当し、区切情報を参照したデータ検索に用いられる任意の値が用いられる。例えば、区切情報識別子１８６２として、文字列、数値、日付情報、時刻情報などが用いられてもよい。区切情報識別子１８６２として格納される値は、ユーザプログラム１６２にて規定されるようにしてもよい。
【００８６】
区切情報種類１８６３は、区切情報の種類を示す情報に相当し、追加される区切情報の種別あるいは意味を示す値が用いられる。例えば、ある区切区間の開始を示す値、ある区切区間の終了を示す値、あるいは、ある区切区間をさらに分割することを意味する値などが用いられてもよい。すなわち、区切情報種類１８６３は、対応する区切情報が区切区間の開始、および、区切区間の終了のいずれを示すかを規定するようにしてもよい。
【００８７】
また、区切情報データベースのレコードは、Ｖａｌｕｅとして、時系列観測値データベースの対応するＫｅｙの内容１８６４を含む。つまり、区切情報データベースのレコードのＶａｌｕｅは、時系列データ格納部１８４の参照先のレコードの標識（Ｋｅｙ）を含む。時系列観測値データベースの対応するＫｅｙの内容１８６４は、区切情報を登録する対象となる時系列観測値データベースの各レコードを特定するための情報（Ｋｅｙ）が格納される。このように、区切情報データベースのレコードのＶａｌｕｅは、時系列観測値データベースに含まれる複数のレコードから対象のレコードを検索するための検索キーとして用いられる。区切情報データベースおよび時系列観測値データベースを用いた検索の方法については、後述する。
【００８８】
＜Ｆ．区切情報＞
次に、本実施の形態における区切情報の詳細について説明する。
【００８９】
（ｆ１：区切情報の登録）
まず、区切情報を登録する際の処理について説明する。図１０および図１１は、本実施の形態に係る制御装置１０における区切情報の登録処理を説明するための模式図である。図１０を参照して、時系列観測値データベースには、予め指定された周期で指定された観測値を含むレコードが時系列に登録される。
【００９０】
時系列データベース１８０のシステムサービスとして提供されるデータ格納処理部１８２（図６）は、時系列観測値データベースに登録された最新のレコードの情報を保持しているとする。ユーザプログラム１６２からデータベース書込みプログラム１６４が呼び出されて、任意のタイミングで区切情報の登録が指示されるとする。図１０に示す例では、区切情報データベースには、先に、区切区間の開始レコードを示す情報が登録されており、その後、任意のタイミングで当該区切区間の終了位置の登録が指示されたとする。このとき、区切情報データベースには、指示内容に従う情報を含むＫｅｙと、時系列観測値データベースの対応するレコードのＫｅｙを含むＶａｌｕｅとの組み合わせからなるレコードが登録される。
【００９１】
区切情報データベースに登録されるレコードのＫｅｙは、上述したように、ＡｕｔｏＩＤ１８６１と、区切情報識別子１８６２と、区切情報種類１８６３とを含む。図１０に示す例においては、ＡｕｔｏＩＤ１８６１として、先に登録されているレコードのＡｕｔｏＩＤ１８６１の値「０」から１だけインクリメントした「１」が登録される。また、区切情報識別子１８６２として、対象となる区切区間を示す任意の情報（この例では、「Ａ０１１０」）が登録される。また、区切情報種類１８６３には、対応するレコードがいずれの種類の区切情報であるかを示す情報が登録される。例えば、当該レコードが区切区間の開始位置を意味するのであれば「ＣＳ」が登録され、当該レコードが区切区間の終了位置を意味するのであれば「ＣＥ」が登録される。
【００９２】
一方、区切情報データベースに登録されるレコードのＶａｌｕｅとして、時系列観測値データベースの対応するＫｅｙの内容１８６４が登録される。なお、対応する区切情報が示す意味に応じて、登録されるＫｅｙの内容１８６４の取り扱いを異ならせてもよい。具体的には、対象のレコードが区切区間の開始位置を示す場合には、当該レコードにより参照される時系列観測値データベースのレコードの次のレコードが対応する区切区間の先頭位置となる。一方、対象のレコードが区切区間の分割位置を示す場合には、当該レコードにより参照される時系列観測値データベースのレコードの次のレコードが対応する新たな区切区間の先頭位置となる。
【００９３】
上述したような登録の手順を繰返すことで、図１１に示すように、区切情報データベースには、時系列観測値データベースに設定される区切区間に対応した１または複数のレコードが登録される。
【００９４】
このように、データ格納処理部１８２は、区切情報を登録する指示を受けると、当該指示に含まれる区切情報の種類を示す情報（区切情報種類１８６３）と、当該指示を受けたタイミングにおける時系列データ格納部１８４に格納されている最新のデータを特定するための情報（Ｋｅｙの内容１８６４）とを、区切情報として区切情報格納部１８６に格納する。
【００９５】
（ｆ２：区切情報を利用したデータ検索）
次に、区切情報を利用した時系列データを検索する際の処理について説明する。図１２は、本実施の形態に係る制御装置１０における区切情報を利用したデータ検索処理を説明するための模式図である。
【００９６】
図１２には、特定の区切情報（例えば、「Ａ０１１１」）に対応するレコードの集合（区切区間）を検索する場合の処理例を示す。図１２を参照して、任意のアプリケーションなどからデータ検索処理部１８８（図５）に対して、特定の区切情報を指定した要求（クエリ）が送信されると、データ検索処理部１８８は、その指定された区切情報を検索キーとして区切情報データベースを検索する。より具体的には、データ検索処理部１８８は、区切情報データベースを構成するレコードのうち、そのキーに指定された区切情報が含まれるものを検索する。なお、図１２には、区切情報データベースを構成する各レコードのＫｅｙを「Ｋ」で示し、Ｖａｌｕｅを「Ｖ」で示す。
【００９７】
図１２に示す例においては、指定された区切情報「Ａ０１１１」に基づいて区切情報データベースが検索され（（１）「Ａ０１１」の区切情報を検索）、２つのレコード（第１レコード１８６８および第２レコード１８６９）が発見されたとする。
【００９８】
検索されたそれぞれのレコードのＶａｌｕｅに基づいて、時系列観測値データベースが参照される。つまり、検索されたレコードのＶａｌｕｅから時系列観測値データベースのＫｅｙが取得される（（２）時系列観測値データベースのＫｅｙを取得）。
【００９９】
図１２に示す例では、第１レコード１８６８のＶａｌｕｅには「０，８８１」が格納されており、その２番目の要素である「８８１」は、時系列観測値データベースのレコードのＫｅｙとして格納されるタイムスタンプの値を示す。同様に、第２レコード１８６９のＶａｌｕｅには「０，９５９」が格納されており、その２番目の要素である「９５９」は、時系列観測値データベースのレコードのＫｅｙとして格納されるタイムスタンプの値を示す。
【０１００】
それぞれのタイムスタンプの値が検索キーに設定されて、時系列観測値データベースが検索される。図１２に示す例においては、Ｋｅｙとして「ＴＢ＝０，ＴＳ＝８８１」が設定されている第１レコード１８４８、および、Ｋｅｙとして「ＴＢ＝０，ＴＳ＝９５９」が設定されている第２レコード１８４９が検索される。
【０１０１】
このような検索された第１レコード１８４８および第２レコード１８４９に基づいて、時系列観測値データベースに対して設定される区切区間の範囲が特定される（（３）区切区間の取得）。
【０１０２】
以上のような一連のデータ検索処理によって、時系列観測値データベースに含まれるレコードのうち、指定された区切情報を有するレコードおよび／または２つのレコードによって規定される区切区間を取得することができる。
【０１０３】
＜Ｇ．区切情報の応用例＞
次に、本実施の形態に係る制御システム１における区切情報を利用した時系列データの収集および検索などについていくつかの応用例を示す。
【０１０４】
図１３は、本実施の形態に係る制御システム１をロット単位で生産される生産ラインへ応用したときの例を示す模式図である。図１３を参照して、例えば、ロット単位で生産を行う製造装置や生産ラインなどにおいて、製造ロットやタクトの開始および終了を示す区切情報を順次登録するようにしてもよい。この場合、時系列データについても各ロットの生産がなされている期間の間だけ収集されるようにしてもよい。
【０１０５】
図１３に示すような区切情報を付加することで、特定の製造ロットを指定して、当該製造ロットに対応する時系列データのみを容易に抽出できる。このようなロット単位での時系列データを収集することで、ロット毎の品質トレーサビリティの管理を実現できる。
【０１０６】
図１４は、本実施の形態に係る制御システム１を時間的な区切りのない連続系システムへ応用したときの例を示す模式図である。図１４を参照して、例えば、プロセス系（一例として、流量制御や温度制御）のような時間的な区切りのない連続系システムなどにおいて、定期的（例えば、１０秒毎、あるいは、１０００レコード毎）に区切情報を順次登録するようにしてもよい。
【０１０７】
図１４に示すような区切情報を付加することで、大量の連続した時系列データのうちから必要な区間の時系列データのみを抽出できる。このような定期的に区切情報を付加することで、連続的に収集されるロギングデータなどに対して、統計処理などを容易化するためのデータ量の単位にまとめることができる。これによって、品質トレーサビリティの管理や、トレンドに基づく異常検知などを実現できる。
【０１０８】
図１５は、本実施の形態に係る制御システム１をイベントが発生するシステムへ応用したときの例を示す模式図である。図１５を参照して、例えば、装置故障や異常発生をトリガーとして、区切情報を記録するようにしてもよい。このような区切情報を記録することで、所定時間または連続的に収集されるデータのうち、当該イベントに対応する装置故障や異常発生の前後のデータのみを抽出することができる。
【０１０９】
このようなイベントに応じて区切情報を付加することで、装置故障や異常発生が発生した前後のデータの解析（統計解析やデータマイニング）を容易化できる、故障要因の特定やその特徴を特定できる。つまり、故障要因や異常要因の解析に応用できる。
【０１１０】
＜Ｈ．時系列データの収集および区切情報の設定＞
次に、上述したような時系列データの収集および区切情報の設定を行うための一例を説明する。
【０１１１】
（ｈ１：ユーザプログラムを用いる方法）
典型的な方法として、ユーザプログラム１６２において、時系列データの収集および区切り情報の設定を行うようにしてもよい。この場合、制御装置１０において実行されるユーザプログラム１６２においては、時系列データベース１８０を利用するための命令を利用可能になっている。
【０１１２】
図１６は、本実施の形態に係る制御装置１０において実行されるユーザプログラム１６２の一例を示す図である。図１６に示すユーザプログラム１６２においては、時系列データ（各レコード）を作成するための命令１６２１と、生成した時系列データを時系列データベース１８０に書込むための命令１６２２と、区切情報を登録するための命令１６２３とを含む。
【０１１３】
ユーザは、収集したい観測値について、その収集周期や収集タイミングなどに応じて、ユーザプログラム１６２に必要な命令を記述する。図１６に示すようなプログラムの記述形式に限らず、任意の記述形式を用いることができる。
【０１１４】
（ｈ２：組込みプログラムを用いる方法）
上述したようなユーザプログラム１６２に必要な命令を記述するのではなく、組込みプログラムを用いる方法を採用してもよい。この場合には、データベース書込みプログラム１６４（図５）を用いて実装してもよい。データベース書込みプログラム１６４は、予め指定されたユーザ設定（対象の観測値や周期など）に従って、時系列データを収集するとともに、収集した時系列データを時系列データベース１８０に格納する。このとき、区切情報を付加するための条件（何らかの開始時および終了時）を設定しておいてもよい。さらに、時系列データベース１８０には、データ収集の開始および終了の条件を設定するようにしてもよい。
【０１１５】
このような組込みプログラムを利用することで、時系列データベース１８０を利用したいものの、既存のユーザプログラム１６２に対する変更を望まない、あるいは、新たなユーザプログラムの作成を望まないユーザなどに対して、簡易な設定で時系列データを収集できる構成を実現できる。
【０１１６】
＜Ｉ．変形例＞
上述の図６に示す制御システム１においては、ＣＰＵユニット１００が有する時系列データベース１８０に対して、サポート装置２００で実行されるアプリケーション２１０からアクセスする形態について例示したが、これに限られるものではない。例えば、時系列データベース１８０を有するＣＰＵユニット１００に相当する機能と、ＣＰＵユニット１００に対する設定や操作を行うための機能とを、共通のハードウェアリソースを用いて実行するような構成を採用してもよい。
【０１１７】
＜Ｊ．利点＞
本実施の形態に係る制御装置によれば、時系列データに区切情報を付加することで、ロギングデータなどの大量の時系列データを効率的に管理することができる。すなわち、任意の区切情報を指定することで、大量の時系列データのうちから、対応する時系列データを検索および抽出することができる。特に、制御装置が観測値を収集する周期は、ｍｓｅｃオーダであるので、区切情報を付加することによる効率的なデータ管理が有効である。このような効率的な時系列データの管理を行えることで、データマイニング、統計処理、機械学習などに好適なデータ処理を実現できる。
【０１１８】
例えば、製造ロットまたはタクトの区切り（開始および終了）、ならびに、異常発生時などのイベント事象と、ロギングデータなどの時系列データとを関連付けることができるので、大量の時系列データから必要なデータを抽出できる。
【０１１９】
このような区切情報を付加しない時系列データベースでは、目的の時系列データを検索するために、ユーザなどがスライディングウィンドウを用いて、検索対象の区間を順次検索するしか手段がなかったが、本実施の形態に従う制御装置によれば、このような課題を解決することができる。
【０１２０】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した説明ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【０１２１】
１  制御システム、２  第１フィールドネットワーク、４  第２フィールドネットワーク、６  フィールド装置群、１０  制御装置、１２  リモートＩ／Ｏ装置、１４  リレー群、１６，１２４  Ｉ／Ｏユニット、１８  画像センサ、２０  カメラ、２２  サーボドライバ、２４  サーボモータ、１００  ＣＰＵユニット、１０２  プロセッサ、１０４  チップセット、１０６  主記憶装置、１０８  二次記憶装置、１１０  上位ネットワークコントローラ、１１２  コントローラ、１１４  メモリカードインターフェイス、１１６  メモリカード、１１８，１２０  フィールドバスコントローラ、１２２  内部バスコントローラ、１５０  ＰＬＣエンジン、１６０  制御プログラム、１６２  ユーザプログラム、１６４  データベース書込みプログラム、１６６  シリアライズ通信プログラム、１７０  システムプログラム、１８０  時系列データベース、１８２  データ格納処理部、１８４  時系列データ格納部、１８６  区切情報格納部、１８８  データ検索処理部、１９０，２１０  アプリケーション、２００  サポート装置、３００  表示装置、１６２１，１６２２，１６２３  命令、１８４２  タイムスタンプ、１８４３  インデックス、１８４４  観測値、１８４８，１８６８  第１レコード、１８４９，１８６９  第２レコード、１８６２  区切情報識別子、１８６３  区切情報種類、１８６４  内容。
【図１】
2018133037.tif 000003
【図２】
2018133037.tif 000004
【図３】
2018133037.tif 000005
【図４】
2018133037.tif 000006
【図５】
2018133037.tif 000007
【図６】
2018133037.tif 000008
【図７】
2018133037.tif 000009
【図８】
2018133037.tif 000010
【図９】
2018133037.tif 000011
【図１０】
2018133037.tif 000012
【図１１】
2018133037.tif 000013
【図１２】
2018133037.tif 000014
【図１３】
2018133037.tif 000015
【図１４】
2018133037.tif 000016
【図１５】
2018133037.tif 000017
【図１６】
2018133037.tif 000018