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