(57)【要約】【課題】解析結果を出力するのに要する時間を短縮することができる仕組みを提供する。【解決手段】制御装置は、制御対象を制御するための制御演算をサイクリック実行する制御演算手段と、制御対象に関連付けられた値の時間変化を示すデータを生成するデータ生成手段と、データ生成手段により生成されるデータに対して解析処理を実行して、予め定められた解析対象期間の単位で解析結果を出力する解析手段とを含む。データ生成手段は、解析対象期間に設定される複数の区間毎に、各区間における値の時間変化を示す区間データを順次出力する。解析手段は、順次出力される区間データ毎に解析処理を実行するとともに、複数の区間のうちいずれかの区間についての区間データに対する解析処理が予め定められた結果を示したときに、対象の解析対象期間に含まれる当該区間以後の区間についての区間データに対する解析処理を省略する。【選択図】図５
2018173883.tif 000002
【特許請求の範囲】
【請求項１】
制御対象を制御するための制御演算をサイクリック実行する制御演算手段と、
前記制御対象に関連付けられた値の時間変化を示すデータを生成するデータ生成手段と、
前記データ生成手段により生成されるデータに対して解析処理を実行して、予め定められた解析対象期間の単位で解析結果を出力する解析手段とを備え、
前記データ生成手段は、前記解析対象期間に設定される複数の区間毎に、各区間における値の時間変化を示す区間データを順次出力し、
前記解析手段は、順次出力される区間データ毎に解析処理を実行するとともに、前記複数の区間のうちいずれかの区間についての区間データに対する解析処理が予め定められた結果を示したときに、対象の解析対象期間に含まれる当該区間以後の区間についての区間データに対する解析処理を省略する、制御装置。
【請求項２】
前記複数の区間についての区間データに対する解析処理に用いられるそれぞれの判定指標を格納する記憶手段をさらに備える、請求項１に記載の制御装置。
【請求項３】
前記解析手段は、対象の解析対象期間に含まれる先の区間についての区間データに対する解析処理の結果を利用して、当該解析対象期間に含まれる後続の区間についての区間データに対する解析処理を実行する、請求項１または２に記載の制御装置。
【請求項４】
前記解析手段は、対象の解析対象期間に含まれる各区間についての区間データに対するそれぞれの解析処理の結果を統合したものが予め定められた評価基準に適合しているか否かを判定する、請求項３に記載の制御装置。
【請求項５】
前記評価基準の設定を受付ける設定受付手段をさらに備える、請求項４に記載の制御装置。
【請求項６】
前記解析手段による解析処理に比較して、前記制御演算手段による制御演算および前記データ生成手段によるデータの生成を高い優先度で実行させる実行管理手段をさらに備える、請求項１〜５のいずれか１項に記載の制御装置。
【請求項７】
前記複数の区間は、正常状態における前記制御対象に関連付けられた値の時間変化に基づいて決定される、請求項１〜６のいずれか１項に記載の制御装置。
【請求項８】
前記複数の区間は、前記制御対象に関連付けられた値の時間変化を視認できるように決定される、請求項１〜６のいずれか１項に記載の制御装置。
【請求項９】
制御装置で実行される制御プログラムであって、前記制御プログラムは前記制御装置に
制御対象を制御するための制御演算をサイクリック実行するステップと、
前記制御対象に関連付けられた値の時間変化を示すデータを生成するステップと、
前記生成されるデータに対して解析処理を実行して、予め定められた解析対象期間の単位で解析結果を出力するステップとを実行させ、
前記データを生成するステップは、前記解析対象期間に設定される複数の区間毎に、各区間における値の時間変化を示す区間データを順次出力するステップを含み、
前記解析結果を出力するステップは、順次出力される区間データ毎に解析処理を実行するとともに、前記複数の区間のうちいずれかの区間についての区間データに対する解析処理が予め定められた結果を示したときに、対象の解析対象期間に含まれる当該区間以後の区間についての区間データに対する解析処理を省略するステップを含む、制御プログラム。
【請求項１０】
制御対象を制御するための制御装置と、
前記制御装置に接続され、前記制御対象からデータを収集する入出力装置とを備え、
前記制御装置は、
前記制御対象を制御するための制御演算をサイクリック実行する制御演算手段と、
前記制御対象に関連付けられた値の時間変化を示すデータを生成するデータ生成手段と、
前記データ生成手段により生成されるデータに対して解析処理を実行して、予め定められた解析対象期間の単位で解析結果を出力する解析手段とを備え、
前記データ生成手段は、前記解析対象期間に設定される複数の区間毎に、各区間における値の時間変化を示す区間データを順次出力し、
前記解析手段は、順次出力される区間データ毎に解析処理を実行するとともに、前記複数の区間のうちいずれかの区間についての区間データに対する解析処理が予め定められた結果を示したときに、対象の解析対象期間に含まれる当該区間以後の区間についての区間データに対する解析処理を省略する、制御システム。
【請求項１１】
制御装置で実行される制御方法であって、
制御対象を制御するための制御演算をサイクリック実行するステップと、
前記制御対象に関連付けられた値の時間変化を示すデータを生成するステップと、
前記生成されるデータに対して解析処理を実行して、予め定められた解析対象期間の単位で解析結果を出力するステップとを備え、
前記データを生成するステップは、前記解析対象期間に設定される複数の区間毎に、各区間における値の時間変化を示す区間データを順次出力するステップを含み、
前記解析結果を出力するステップは、順次出力される区間データ毎に解析処理を実行するとともに、前記複数の区間のうちいずれかの区間についての区間データに対する解析処理が予め定められた結果を示したときに、対象の解析対象期間に含まれる当該区間以後の区間についての区間データに対する解析処理を省略するステップを含む、制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データに対する解析処理が可能な制御装置、当該制御装置で実行される制御プログラム、当該制御装置を含む制御システム、および当該制御装置で実行される制御方法に関する。
【背景技術】
【０００２】
様々な生産現場において、ＰＬＣ（プログラマブルコントローラ）などの制御装置を用いたＦＡ（Factory Automation）技術が広く普及している。一般的に、このような制御装置は、制御対象を制御するための制御演算を予め定められたシステム周期でサイクリック実行する。このようなサイクリック実行される制御演算とは別に、各種の付加的な処理が実行されることもある。このような付加的な処理としては、例えば、収集された入力データを上位装置へ送信する処理や、収集された入力データに対する解析処理などが想定される。
【０００３】
このような解析処理の一例として、例えば、ある期間内に収集された入力データと予め用意されている判定指標とを比較して、異常の有無を判定するような処理が想定される。このような異常の有無を判定するような手法の一例として、特開２０１０−０９３０４７号公報（特許文献１）は、取得波形データと設定波形データとを比較して異常を検知する方法を開示する。このような解析処理での結果を用いて、何らかの異常があれば、その異常に応じた制御が実行されることもある。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１０−０９３０４７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
上述したような、所定期間内に収集されたデータを判定指標と比較する場合には、当該データのすべてについて評価する必要がある。そのため、解析に要する時間が比較的長くなる傾向にある。解析に要する時間が長くなることで、解析結果を制御に反映するまでの遅れが顕在化する可能性がある。
【０００６】
本発明は、上述したようなニーズを実現するために、所定期間内に収集されたデータに対する解析処理において、解析結果を出力するのに要する時間を短縮することができる仕組みを提供することを一つの目的としている。
【課題を解決するための手段】
【０００７】
本発明のある局面に従う制御装置は、制御対象を制御するための制御演算をサイクリック実行する制御演算手段と、制御対象に関連付けられた値の時間変化を示すデータを生成するデータ生成手段と、データ生成手段により生成されるデータに対して解析処理を実行して、予め定められた解析対象期間の単位で解析結果を出力する解析手段とを含む。データ生成手段は、解析対象期間に設定される複数の区間毎に、各区間における値の時間変化を示す区間データを順次出力する。解析手段は、順次出力される区間データ毎に解析処理を実行するとともに、複数の区間のうちいずれかの区間についての区間データに対する解析処理が予め定められた結果を示したときに、対象の解析対象期間に含まれる当該区間以後の区間についての区間データに対する解析処理を省略する。
【０００８】
好ましくは、制御装置は、複数の区間についての区間データに対する解析処理に用いられるそれぞれの判定指標を格納する記憶手段をさらに含む。
【０００９】
好ましくは、解析手段は、対象の解析対象期間に含まれる先の区間についての区間データに対する解析処理の結果を利用して、当該解析対象期間に含まれる後続の区間についての区間データに対する解析処理を実行する。
【００１０】
好ましくは、解析手段は、対象の解析対象期間に含まれる各区間についての区間データに対するそれぞれの解析処理の結果を統合したものが予め定められた評価基準に適合しているか否かを判定する。
【００１１】
好ましくは、制御装置は、評価基準の設定を受付ける設定受付手段をさらに含む。
好ましくは、制御装置は、解析手段による解析処理に比較して、制御演算手段による制御演算およびデータ生成手段によるデータの生成を高い優先度で実行させる実行管理手段をさらに含む。
【００１２】
好ましくは、複数の区間は、正常状態における制御対象に関連付けられた値の時間変化に基づいて決定される。
【００１３】
好ましくは、複数の区間は、制御対象に関連付けられた値の時間変化を視認できるように決定される。
【００１４】
本発明の別の局面に従えば、制御装置で実行される制御プログラムが提供される。制御プログラムは制御装置に、制御対象を制御するための制御演算をサイクリック実行するステップと、制御対象に関連付けられた値の時間変化を示すデータを生成するステップと、生成されるデータに対して解析処理を実行して、予め定められた解析対象期間の単位で解析結果を出力するステップとを実行させる。データを生成するステップは、解析対象期間に設定される複数の区間毎に、各区間における値の時間変化を示す区間データを順次出力するステップを含む。解析結果を出力するステップは、順次出力される区間データ毎に解析処理を実行するとともに、複数の区間のうちいずれかの区間についての区間データに対する解析処理が予め定められた結果を示したときに、対象の解析対象期間に含まれる当該区間以後の区間についての区間データに対する解析処理を省略するステップを含む。
【００１５】
本発明のさらに別の局面に従う制御システムは、制御対象を制御するための制御装置と、制御装置に接続され、制御対象からデータを収集する入出力装置とを含む。制御装置は、制御対象を制御するための制御演算をサイクリック実行する制御演算手段と、制御対象に関連付けられた値の時間変化を示すデータを生成するデータ生成手段と、データ生成手段により生成されるデータに対して解析処理を実行して、予め定められた解析対象期間の単位で解析結果を出力する解析手段とを含む。データ生成手段は、解析対象期間に設定される複数の区間毎に、各区間における値の時間変化を示す区間データを順次出力する。解析手段は、順次出力される区間データ毎に解析処理を実行するとともに、複数の区間のうちいずれかの区間についての区間データに対する解析処理が予め定められた結果を示したときに、対象の解析対象期間に含まれる当該区間以後の区間についての区間データに対する解析処理を省略する。
【００１６】
本発明のさらに別の局面に従う制御装置で実行される制御方法は、制御対象を制御するための制御演算をサイクリック実行するステップと、制御対象に関連付けられた値の時間変化を示すデータを生成するステップと、生成されるデータに対して解析処理を実行して、予め定められた解析対象期間の単位で解析結果を出力するステップとを含む。データを生成するステップは、解析対象期間に設定される複数の区間毎に、各区間における値の時間変化を示す区間データを順次出力するステップを含む。解析結果を出力するステップは、順次出力される区間データ毎に解析処理を実行するとともに、複数の区間のうちいずれかの区間についての区間データに対する解析処理が予め定められた結果を示したときに、対象の解析対象期間に含まれる当該区間以後の区間についての区間データに対する解析処理を省略するステップを含む。
【発明の効果】
【００１７】
本発明によれば、所定期間内に収集されたデータに対する解析処理において、解析結果を出力するのに要する時間を短縮することができる仕組みを提供できる。
【図面の簡単な説明】
【００１８】
【図１】本実施の形態に係る制御システムの全体構成例を示す模式図である。
【図２】本実施の形態に係る制御装置のハードウェア構成例を示すブロック図である。
【図３】本実施の形態に係る制御装置における優先度に応じた処理の実行について説明するための図である。
【図４】本発明の関連技術に係る解析処理を説明するための図である。
【図５】本実施の形態に係る解析処理を説明するための図である。
【図６】本実施の形態に係る解析処理を説明するための図である。
【図７】本実施の形態に係る制御装置のソフトウェア構成例を示すブロック図である。
【図８】本実施の形態に係る解析処理の処理手順を示すフローチャートである。
【図９】本実施の形態に係る解析処理における区間データに対する解析結果の反映を説明するための図である。
【図１０】本実施の形態に係る解析処理に用いられる判定指標群の決定方法の一例を説明するための図である。
【図１１】図１０に示す特徴量空間上にしきい範囲を設定するためのユーザインターフェイス画面の一例を示す図である。
【図１２】図１０に示す特徴量空間上のサンプルの挙動を確認するためのユーザインターフェイス画面の一例を示す図である。
【図１３】本実施の形態に係る解析処理における区間数の決定方法を説明するための図である。
【図１４】本実施の形態に係る解析処理による解析結果の出力例を示す模式図である。
【発明を実施するための形態】
【００１９】
本発明の実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰返さない。
【００２０】
＜Ａ．制御システムの全体構成例＞
まず、本実施の形態に係る制御装置を含む制御システム１の全体構成例について説明する。
【００２１】
図１は、本実施の形態に係る制御システム１の全体構成例を示す模式図である。図１を参照して、本実施の形態に係る制御システム１は、主たる構成要素として、制御対象を制御する制御装置１００と、制御装置１００に接続されるサポート装置２００とを含む。
【００２２】
制御装置１００は、ＰＬＣ（プログラマブルコントローラ）などの、一種のコンピュータとして具現化されてもよい。制御装置１００は、第１フィールドバス２を介してフィールド装置群８と接続されるとともに、第２フィールドバス４を介して１または複数の表示装置４５０と接続される。制御装置１００は、それぞれのバスまたはネットワークを介して、接続された装置との間でデータを遣り取りする。
【００２３】
制御装置１００は、製造装置や設備を制御するための各種演算を実行する制御演算処理と、フィールド装置群８にて計測され、制御装置１００へ転送されるデータ（以下、「入力データ」とも称す。）や制御演算処理によって算出される各種のデータを取得する入出力処理、ならびに、さらに、入出力処理により取得されたデータなどに対する各種解析処理を実行する解析処理が実行可能である。
【００２４】
制御装置１００は、さらに、任意のデータを格納する組込データベース１８０を有している。以下の説明においては、典型例として、組込データベース１８０が制御装置１００内に配置される例を示すが、これに限られることなく、制御装置１００の外部（例えば、データベースサーバなどの上位システム）に配置されていてもよい。以下の説明においては、「データベース」を「ＤＢ」とも記す。組込データベース１８０は、典型的には、入出力処理により取得される各種データを時系列に格納する。
【００２５】
第１フィールドバス２および第２フィールドバス４は、データの到達時間が保証される、定周期通信を行うバスまたはネットワークを採用することが好ましい。このような定周期通信を行うバスまたはネットワークとしては、ＥｔｈｅｒＣＡＴ（登録商標）などが知られている。ＥｔｈｅｒＣＡＴに代えて、ＥｔｈｅｒＮｅｔ／ＩＰ（登録商標）、ＤｅｖｉｃｅＮｅｔ（登録商標）、ＣｏｍｐｏＮｅｔ（登録商標）などを用いることもできる。
【００２６】
フィールド装置群８は、制御装置１００に接続され、制御対象からデータを収集する入出力装置の一例に相当し、制御対象または制御に関連する製造装置や生産ラインなど（以下、「フィールド」とも総称する。）から入力データを収集する装置を含む。このような入力データを収集する装置としては、入力リレーや各種センサ（例えば、アナログセンサ、温度センサ、振動センサなど）などが想定される。フィールド装置群８は、さらに、制御装置１００にて生成される指令（以下、「出力データ」とも称す。）に基づいて、フィールドに対して何らかの作用を与える装置を含む。このようなフィールドに対して何らかの作用を与える装置としては、出力リレー、コンタクタ、サーボドライバおよびサーボモータ、その他任意のアクチュエータが想定される。
【００２７】
フィールド装置群８は、第１フィールドバス２を介して、制御装置１００との間で、入力データおよび出力データを含むデータを遣り取りする。図１に示す構成例においては、フィールド装置群８は、リモートＩ／Ｏ（Input/Output）装置１２と、リレー群１４と、画像センサ１８およびカメラ２０と、サーボドライバ２２およびサーボモータ２４とを含む。フィールド装置群８としては、これらに限られることなく、入力データを収集できるデバイス、または、出力データに基づく何らかのアクションができるデバイスであれば、どのようなものを採用してもよい。
【００２８】
リモートＩ／Ｏ装置１２は、第１フィールドバス２を介して通信を行う通信部と、入力データの取得および出力データの出力を行うための入出力部（以下、「Ｉ／Ｏユニット」とも称す。）とを含む。このようなＩ／Ｏユニットを介して、制御装置１００とフィールドとの間で入力データおよび出力データが遣り取りされる。図１には、リレー群１４を介して、入力データおよび出力データとして、デジタル信号が遣り取りされる例が示されている。
【００２９】
Ｉ／Ｏユニットは、フィールドバスまたはフィールドネットワークに直接接続されるようにしてもよい。図１には、第１フィールドバス２にＩ／Ｏユニット１６が直接接続されている例を示す。
【００３０】
画像センサ１８は、カメラ２０によって撮像された画像データに対して、パターンマッチングなどの画像計測処理を行って、その処理結果を制御装置１００へ出力する。
【００３１】
サーボドライバ２２は、制御装置１００からの出力データ（例えば、位置指令や速度指令など）に従って、サーボモータ２４を駆動する。
【００３２】
上述のように、第１フィールドバス２を介して、制御装置１００とフィールド装置群８との間でデータが遣り取りされることになるが、これらの遣り取りされるデータは、数１００μｓｅｃオーダ〜数１０ｍｓｅｃオーダのごく短い周期（システム周期）で更新されることになる。なお、このような遣り取りされるデータの更新処理を、「Ｉ／Ｏリフレッシュ処理」と称することもある。
【００３３】
また、第２フィールドバス４を介して制御装置１００と接続される表示装置４５０は、ユーザからの操作を受けて、制御装置１００に対してユーザ操作に応じたコマンドなどを出力するとともに、制御装置１００での演算結果などをグラフィカルに表示する。
【００３４】
サポート装置２００は、制御装置１００が制御対象を制御するために必要な準備を支援する装置である。具体的には、サポート装置２００は、制御装置１００で実行されるプログラムの開発環境（プログラム作成編集ツール、パーサ、コンパイラなど）、制御装置１００および制御装置１００に接続される各種デバイスのパラメータ（コンフィギュレーション）を設定するための設定環境、生成したユーザプログラムを制御装置１００へ出力する処理、制御装置１００上で実行されるユーザプログラムなどをオンラインで修正・変更する処理、などを提供する。
【００３５】
図１には、制御装置１００と上位ネットワーク６を介して外部装置４００が接続されている構成例を示す。外部装置４００としては、データベースサーバ、製造実行システム（ＭＥＳ：Manufacturing Execution System）、データ解析サーバなどが想定される。
【００３６】
＜Ｂ．制御装置のハードウェア構成例＞
次に、本実施の形態に係る制御装置１００のハードウェア構成例について説明する。
【００３７】
図２は、本実施の形態に係る制御装置１００のハードウェア構成例を示すブロック図である。図２を参照して、制御装置１００は、演算処理部および１または複数のＩ／Ｏユニット１２４−１，１２４−２，…を含む。
【００３８】
制御装置１００は、プロセッサ１０２と、チップセット１０４と、主記憶装置１０６と、二次記憶装置１０８と、ネットワークコントローラ１１０と、ＵＳＢ（Universal Serial Bus）コントローラ１１２と、メモリカードインターフェイス１１４と、ローカルバスコントローラ１２２と、フィールドバスコントローラ１１８，１２０とを含む。
【００３９】
プロセッサ１０２は、ＣＰＵ（Central Processing Unit）、ＭＰＵ（Micro-Processing Unit）、ＧＰＵ（Graphical Processing Unit）などで構成され、二次記憶装置１０８に格納された各種プログラムを読み出して、主記憶装置１０６に展開して実行することで、制御対象に応じた制御、および、後述するような各種処理を実現する。プロセッサ１０２を複数配置してもよいし、複数のコアを有するプロセッサ１０２を採用してもよい。
【００４０】
二次記憶装置１０８は、例えば、ＨＤＤ（Hard Disk Drive）やＳＳＤ（Solid State Drive）などの不揮発性記憶装置などで構成される。主記憶装置１０６は、ＤＲＡＭ（Dynamic Random Access Memory）やＳＲＡＭ（Static Random Access Memory）などの揮発性記憶装置などで構成される。
【００４１】
チップセット１０４は、プロセッサ１０２と各デバイスを制御することで、制御装置１００全体としての処理を実現する。
【００４２】
二次記憶装置１０８には、基本的な動作を実現するためのシステムプログラムに加えて、制御対象の製造装置や設備に応じて作成されるユーザプログラムが格納される。さらに、二次記憶装置１０８は、組込データベース１８０を実現するための記憶領域を提供する。
【００４３】
ネットワークコントローラ１１０は、上位ネットワーク６を介して、外部装置４００（図１参照）などとの間のデータを遣り取りする。ネットワークコントローラ１１０は、典型的には、ＡＳＩＣやＦＰＧＡといった専用回路を用いて実現される。
【００４４】
ＵＳＢコントローラ１１２は、ＵＳＢ接続を介してサポート装置２００との間のデータの遣り取りを制御する。ＵＳＢコントローラ１１２は、典型的には、ＡＳＩＣやＦＰＧＡといった専用回路を用いて実現される。
【００４５】
メモリカードインターフェイス１１４は、メモリカード１１６を着脱可能に構成されており、メモリカード１１６に対してデータを書込み、メモリカード１１６から各種データ（ユーザプログラムやトレースデータなど）を読出すことが可能になっている。
【００４６】
ローカルバスコントローラ１２２は、制御装置１００に搭載されるＩ／Ｏユニット１２４−１，１２４−２，…との間でデータを遣り取りするインターフェイスである。
【００４７】
フィールドバスコントローラ１１８は、第１フィールドバス２を介した他の装置との間のデータの遣り取りを制御する。フィールドバスコントローラ１１８は、典型的には、ＡＳＩＣやＦＰＧＡといった専用回路を用いて実現されるが、ソフトウェア実装で実現してもよい。ソフトウェア実装を採用する場合には、フィールドバスコントローラ１１８は、主として、プロセッサ、主記憶装置、ストレージなどで構成され、プロセッサがストレージに格納されたシステムプログラム（ファームウェア）などを読出して、主記憶装置に展開して実行することで、必要な処理を実現する。
【００４８】
同様に、フィールドバスコントローラ１２０は、第２フィールドバス４を介した他の装置との間でデータを遣り取りする。フィールドバスコントローラ１２０は、典型的には、ＡＳＩＣやＦＰＧＡといった専用回路を用いて実現されるが、ソフトウェア実装で実現してもよい。ソフトウェア実装を採用する場合には、フィールドバスコントローラ１２０は、主として、プロセッサ、主記憶装置、ストレージなどで構成され、プロセッサがストレージに格納されたシステムプログラム（ファームウェア）などを読出して、主記憶装置に展開して実行することで、必要な処理を実現する。
【００４９】
図２には、プロセッサ１０２がプログラムを実行することで必要な処理が提供される構成例を示したが、これらの提供される処理の一部または全部を、専用のハードウェア回路（例えば、ＡＳＩＣ（Application Specific Integrated Circuit）またはＦＰＧＡ（Field-Programmable Gate Array）など）を用いて実装してもよい。あるいは、制御装置１００の主要部を、汎用的なアーキテクチャに従うハードウェア（例えば、汎用パソコンをベースとした産業用パソコン）を用いて実現してもよい。この場合には、仮想化技術を用いて、用途の異なる複数のＯＳ（Operating System）を並列的に実行させるとともに、各ＯＳ上で必要なアプリケーションを実行させるようにしてもよい。
【００５０】
＜Ｃ．優先度に応じた処理の実行＞
次に、制御装置１００における優先度に応じた処理の実行について説明する。
【００５１】
図３は、本実施の形態に係る制御装置１００における優先度に応じた処理の実行について説明するための図である。図３を参照して、制御装置１００においては、システム周期毎に制御演算が実行されるとする。制御演算としては、各種条件に応じた処理を実行するシーケンス演算、サーボドライバあるいはサーボモータを駆動するためのモーション演算などを含む。このような制御演算は、典型的には、制御装置１００のプロセッサ１０２が、二次記憶装置１０８に格納されているユーザプログラムを読出して主記憶装置１０６に展開して実行することで提供される。すなわち、制御装置１００のプロセッサ１０２およびユーザプログラムは、制御対象を制御するための制御演算をサイクリック実行する制御演算処理を提供する。
【００５２】
一例として、優先度を異ならせて２つのタスク（高優先タスクおよび低優先タスク）が設定されているとする。高優先タスクには、システム周期毎に必ず実行される処理（例えば、Ｉ／Ｏリフレッシュ処理および制御演算）が登録されており、低優先タスクには、複数のシステム周期に亘って実行されてもよい処理あるいは実行タイミングを厳密に保証しなくてもよい処理（例えば、解析処理）が登録されている。
【００５３】
図３に示すように、各システム周期においては、まず、高優先タスクとして登録されている、Ｉ／Ｏリフレッシュ処理および制御演算の実行が完了すると、低優先タスクとして登録されている解析処理が実行される。低優先タスクは、各システム周期において、高優先タスクが実行されていない期間において実行される。そのため、低優先タスクとして登録されている処理を１回のシステム周期で完了させることができないこともある。図３に示す例では、解析処理は３回のシステム周期に亘って実行されていることが分かる。なお、制御装置１００が複数のプロセッサ１０２を有している場合、あるいは、制御装置１００のプロセッサ１０２が複数のコアを有している場合などには、各タスクが分散的に実行されることもある。
【００５４】
＜Ｄ．解析処理の概要＞
次に、本実施の形態に係る制御装置１００が提供する解析処理の概要について説明する。典型的には、制御装置１００のプロセッサ１０２が、二次記憶装置１０８に格納されているシステムプログラムおよび／またはユーザプログラムを読出して主記憶装置１０６に展開して実行することで、制御装置１００は解析手段として動き、解析処理が提供される。以下の説明においては、解析処理の一例として、解析対象のデータに基づいて、当該解析対象のデータを収集した制御対象において何らかの異常が生じているか否かを判定する処理（以下、「異常判定処理」とも称す。）について説明するが、本発明に係る解析処理としては、どのような処理を採用してもよい。
【００５５】
また、本実施の形態に係る解析処理においては、解析対象期間の単位で解析結果が出力されるとする。解析処理の一例として異常判定処理を採用する場合には、解析対象期間は異常を判定する周期に相当し、以下では「異常監視期間」とも称す。
【００５６】
先に、本発明の関連技術に係る解析処理について説明する。図４は、本発明の関連技術に係る解析処理を説明するための図である。図４には、解析処理の一例として、制御対象の特定または状態を示す入力データに基づいて、当該制御対象に何らかの異常が生じているか否かを判定する処理（異常判定処理）を示す。
【００５７】
以下の説明では、「入力データ」を対象として解析処理を行う場合について例示するが、解析対象のデータとしては、フィールドから収集された意味での入力データに加えて、フィールドに対して与えられる出力データおよび制御演算の過程において算出される演算データなども含み得る。また、説明の便宜上、１種類の入力データを例示するが、複数種類の入力データを同時に収集するようにしてもよい。
【００５８】
より具体的には、図４に示すように、制御装置１００は、異常監視期間Ｔｏに現れた入力データの時間変化を収集するとともに、当該収集された入力データ（すなわち、複数の入力値が時系列に並べられた集合体）を予め用意した判定指標１８４を用いて評価することで、当該入力データに対応する制御対象に何らかの異常が生じているか否かを判定する。解析処理の対象となるデータ、すなわち、図４に示す異常監視期間Ｔｏに生じた入力データの時間変化を、以下では「解析対象データ」とも称す。
【００５９】
本明細書において、「解析対象データ」は、制御対象に関連付けられた値の時間変化を示すものであり、典型的には、対象の値の時間波形であってもよいし、当該時間波形から算出された任意の特徴量であってもよい。さらに、「解析対象データ」は、制御対象に関連付けられた複数の値（例えば、指令値と実績値との組など）が含まれることもあるし、制御対象に関連付けられた複数の値に対して任意の演算を行った結果（例えば、指令値と実績値との差など）が含まれることもある。このように、本明細書における「解析対象データ」は、制御対象から直接的または間接的に得られる任意の値を含み得る。
【００６０】
なお、異常監視期間Ｔｏの長さは、監視対象の製造装置や設備におけるタクトタイム（例えば、１つのワークに対する処理に割当て可能な時間長さ）などに基づいて決定されてもよい。
【００６１】
判定指標１８４は、異常の有無を判定するために用いられる評価基準（正常データ）などを含む。判定指標１８４が解析対象データまたは解析対象データから算出される特徴量などと比較されることで、異常の有無または異常の可能性を示す数値を算出できる。図４に示す例においては、異常監視期間Ｔｏの長さに対応する判定指標１８４が用意される。
【００６２】
図４に示すような異常判定処理においては、異常監視期間Ｔｏに亘ってデータ収集を行って解析対象データを生成する必要がある。すなわち、異常監視期間Ｔｏの範囲にある値がすべて揃ってから解析処理が実行されるので、異常検出にある程度の遅延が生じ得る。
【００６３】
次に、本実施の形態に係る解析処理について説明する。図５および図６は、本実施の形態に係る解析処理を説明するための図である。図５には、異常監視期間Ｔｏにおいて何らかの異常が生じた場合の例を示し、図６には、異常監視期間Ｔｏにおいて何らの異常も生じなかった場合の例を示す。
【００６４】
図５および図６を参照して、本実施の形態に係る解析処理においては、予め設定された異常監視期間Ｔｏを複数の区間に分割し、各区間において収集される解析対象データの部分をそれぞれ判定する。
【００６５】
このような段階的な判定を実現するために、図４に示すような判定指標１８４に代えて、階層的に構成される判定指標群１８２が用いられる。判定指標群１８２は、解析対象とする区間（時間幅および範囲）が異なるモデルをそれぞれ生成し、その生成されたそれぞれのモデルに基づいて決定されてもよい。判定指標群１８２は、段階的な解析を実現するための正常データなどを含んでもよいし、区間毎に設定される１または複数のしきい値であってもよい。例えば、判定指標群１８２は、異常監視期間Ｔｏに含まれる区間数の数に相当する指標を含むことになる。例えば、異常監視期間Ｔｏを区間ｔ１〜ｔ６の６つの区間に分割した場合には、判定指標１〜６が定義されてもよい。但し、複数の区間に対して共通の判定指標を採用してもよい。以下では、説明の便宜上、区間ｔ１〜ｔ６に対して判定指標１〜６が対応付けて規定されているとする。
【００６６】
図５に示すように、異常監視期間Ｔｏに設定される複数の区間に関して、制御装置１００にて実行されるデータ生成処理（典型的には、プロセッサ１０２が所定のユーザプログラムを実行することにより実現される）において、複数の区間毎に、各区間における値の時間変化を示す区間データが順次出力される。
【００６７】
より具体的には、まず、制御装置１００は、異常監視期間Ｔｏ内の区間ｔ１に亘って入力データを収集して解析対象データの区間データを生成するとともに、判定指標１を用いて当該生成した区間データに含まれる異常の有無を判定する。この例では、異常は生じていないので、正常であると判定される。続いて、制御装置１００は、異常監視期間Ｔｏ内の区間ｔ２に亘って入力データを収集して解析対象データの区間データを生成するとともに、判定指標２を用いて当該生成した区間データに含まれる異常の有無を判定する。この例では、異常は生じていないので、正常であると判定される。
【００６８】
さらに続いて、制御装置１００は、異常監視期間Ｔｏ内の区間ｔ３に亘って入力データを収集して解析対象データの区間データを生成するとともに、判定指標３を用いて当該生成した区間データに含まれる異常の有無を判定する。この例では、区間ｔ３において異常が生じているので、その異常を示す解析結果が得られる。すなわち、異常監視期間Ｔｏの全区間に亘って入力データを収集することなく、その途中で異常を検出することができる。
【００６９】
何らかの異常が検出された後には、同一の異常監視期間Ｔｏにおけるさらなる解析処理を実行する必要はない。すなわち、図５に示す例では、区間ｔ３の直後に異常を検出できるので、区間ｔ３以降の区間ｔ４〜ｔ６についての解析処理は省略される。但し、区間ｔ４における入力データの収集は行われてもよい。
【００７０】
このように、本実施の形態に係る解析処理においては、先の区間における解析結果に基づいて、後続の区間における解析結果の実行の有無が判定される。すなわち、制御装置１００は、順次出力される区間データ毎に解析処理を実行するとともに、当該複数の区間のうちいずれかの区間についての区間データに対する解析処理が予め定められた結果（この例では、異常との判定）を示したときに、対象の異常監視期間Ｔｏ（解析対象期間）に含まれる当該区間以後の区間についての区間データに対する解析処理を省略する。
【００７１】
図５に示すように、先の区間において異常が検出されていれば、後続の区間における解析処理は省略される。このような不要な解析処理を省略することで、演算量を低減できる。
【００７２】
また、異常監視期間Ｔｏの全区間に亘って入力データを収集することなく、区間毎に異常の有無を判定できるので、異常が生じた場合の検出をより速やかに行うことができる。
【００７３】
一方、異常監視期間Ｔｏにおいて何らの異常も生じなかった場合には、異常監視期間Ｔｏに含まれる区間ｔ１〜ｔ６の各々において収集された区間データに対してそれぞれ解析処理が実行されることになる。この場合であっても、図４に示す関連技術に係る解析処理に比較して処理を高速化できる。この理由としては、ある区間のデータ収集と先の区間において取得された区間データに対する解析処理とを並列的に実行することができるためである。例えば、区間ｔ２のデータ収集中の空き時間に、区間ｔ１において収集された区間データに対する解析処理を実行することができる。このように、異常監視期間Ｔｏに対して設定される区間毎にデータ収集および解析処理を実行できるので、全体としては、図４に示す関連技術に係る解析処理の場合に比較して、解析結果（異常の有無）の最終的な出力に要する時間を短縮できる。
【００７４】
このように、何らの異常も生じなかった場合であっても、異常監視期間Ｔｏを分割することで、区間におけるデータ収集中の空き時間に先の区間において収集された区間データに対する解析処理を進めることができるため、全体としては、解析処理の前倒しが可能となり、最終的な解析結果をより短時間に出力できる。
【００７５】
＜Ｅ．制御装置のソフトウェア構成例＞
次に、本実施の形態に係る制御装置１００のソフトウェア構成例について説明する。
【００７６】
図７は、本実施の形態に係る制御装置１００のソフトウェア構成例を示すブロック図である。図７を参照して、制御装置１００は、ＰＬＣエンジン１５０と、組込データベース１８０と、解析部１９０とを含む。
【００７７】
ＰＬＣエンジン１５０は、典型的には、制御装置１００のプロセッサ１０２が、二次記憶装置１０８に格納されているシステムプログラムを読出して主記憶装置１０６に展開して実行することで各種プログラムの実行環境が提供され、当該実行環境下において、各種プログラムを実行することができる。
【００７８】
より具体的には、ＰＬＣエンジン１５０は、制御プログラム１５２と、変数管理プログラム１６０と、スケジューラプログラム１７０と、入力プログラム１７２と、出力プログラム１７４とを含む。変数管理プログラム１６０と、スケジューラプログラム１７０と、入力プログラム１７２と、出力プログラム１７４とについては、システムプログラムの一部として実装されてもよい。この場合には、これらのプログラムが提供するそれぞれの処理を単一のシステムプログラムが提供するようにしてもよい。
【００７９】
制御プログラム１５２は、典型的には、ユーザプログラム１５４と、解析処理制御プログラム１５６と、解析対象データ生成プログラム１５８とにより構成される。
【００８０】
ユーザプログラム１５４は、制御演算処理を提供する主たる部分に相当し、制御装置１００の制御対象の製造装置や設備などに応じて任意に構成することができる。ユーザプログラム１５４は、例えば、ファンクションブロックなどを利用したラダーロジックなどで規定することができる。
【００８１】
解析処理制御プログラム１５６は、解析部１９０での解析処理の実行を制御するプログラムであり、解析部１９０からの部分的な解析結果などに基づいて、解析対象データに対する解析処理の進行を監視および制御する。より具体的には、解析処理制御プログラム１５６は、解析部１９０による解析処理の途中経過を逐次監視しており、途中に出力される解析結果に基づいて、さらに解析処理を途中で中止するような制御を実行することもある。このように、解析処理制御プログラム１５６は、解析部１９０に対して、解析処理の進捗の報告を指示するとともに、解析処理の途中までの解析結果を応答するように指示することができる。
【００８２】
解析対象データ生成プログラム１５８は、解析部１９０に与えるための解析対象データを生成する。ここで、解析対象データは、制御対象に関連付けられた値の時間変化を示すデータに相当する。より具体的には、解析対象データ生成プログラム１５８は、フィールド装置群８などで収集された入力データ、組込データベース１８０に格納されている任意のデータをまとめて、所定数の値からなるデータを生成する。このように、制御装置１００のプロセッサ１０２および解析対象データ生成プログラム１５８は、制御対象に関連付けられた値の時間変化を示すデータを生成するデータ生成処理をデータ生成手段として提供する。
【００８３】
変数管理プログラム１６０は、ＰＬＣエンジン１５０で利用可能な値を変数の形で管理する。より具体的には、変数管理プログラム１６０は、制御装置１００の状態などを示すシステム変数１６２と、制御装置１００とローカルバスまたはフィールドバスを介して接続される各種デバイスが保持する値を示すデバイス変数１６４と、制御装置１００で実行されるユーザプログラム１５４が保持する値を示すユーザ変数１６６とを管理する。
【００８４】
スケジューラプログラム１７０は、制御装置１００で実行されるプロセスやタスクなどに対してリソース割当てや実行タイミングなどを管理する。
【００８５】
入力プログラム１７２は、制御装置１００とローカルバスまたはフィールドバスを介して接続される各種デバイスから入力データを取得する処理を提供する。
【００８６】
出力プログラム１７４は、制御装置１００において実行されるユーザプログラム１５４によって算出される指令値（出力データ）をローカルバスまたはフィールドバスを介して接続される対象のデバイスへ出力する。
【００８７】
組込データベース１８０は、典型的には、主記憶装置１０６または二次記憶装置１０８（図２参照）に配置され、データを格納する処理とともに、外部からの要求（クエリ）に応答して、指定されたデータを応答する検索処理を提供する。
【００８８】
組込データベース１８０は、上述の解析処理に用いられる判定指標群１８２を有している。すなわち、組込データベース１８０は、異常監視期間Ｔｏに含まれる複数の区間についての区間データに対する解析処理に用いられるそれぞれの判定指標を格納する記憶部に相当する。
【００８９】
さらに、組込データベース１８０は、入力データ、出力データ、制御プログラム１５２による制御演算において算出される演算データ、製造データの少なくとも一部を時系列に格納するようにしてもよい。
【００９０】
解析部１９０は、本実施の形態に係る制御装置１００が提供する解析処理を実現する要素であり、解析エンジン１９２と、進捗結果出力部１９４とを含む。解析部１９０は、典型的には、制御装置１００のプロセッサ１０２が、二次記憶装置１０８に格納されているシステムプログラムおよび／またはユーザプログラムを読出して主記憶装置１０６に展開して実行することで提供される。
【００９１】
解析エンジン１９２は、組込データベース１８０が保持する判定指標群１８２と解析対象データとを比較することで、異常の有無または異常の可能性を判定する。進捗結果出力部１９４は、解析エンジン１９２での解析対象データに対する判定の進捗状態や途中経過などを出力する。
【００９２】
本実施の形態係る制御装置１００においては、制御装置１００のプロセッサ１０２および解析処理制御プログラム１５６は、解析対象データ生成プログラム１５８の実行により生成されるデータ（解析対象データ）に対して解析処理を実行して、予め定められた解析対象期間の単位で解析結果を出力する解析処理を提供する。
【００９３】
＜Ｆ．処理手順＞
次に、本実施の形態に係る解析処理の処理手順について説明する。
【００９４】
図８は、本実施の形態に係る解析処理の処理手順を示すフローチャートである。図８を参照して、本実施の形態に係る解析処理においては、解析対象データの生成処理（プロセッサ１０２が図７に示す解析対象データ生成プログラム１５８を実行することで実現される）と、解析対象データに対する解析処理（プロセッサ１０２が解析処理制御プログラム１５６を実行することで実現される）とが並列的に実行される。
【００９５】
なお、解析対象データの生成処理は、図２に示す高優先タスクとして登録され、解析対象データに対する解析処理は、図２に示す低優先タスクとして登録されてもよい。これは、解析対象データの収集においてデータの欠落が許されないので、解析対象データの生成処理は、制御演算あるいはＩ／Ｏリフレッシュと同周期で実行されることが好ましい。これに対して、解析対象データに対する解析処理は、予め定められた期間内に完了すればよく、解析対象データの生成処理に比較して、要求されるリアルタイム性は低いからである。
【００９６】
このように、本実施の形態に係る制御装置１００は、解析対象データに対する解析処理に比較して、制御演算および解析対象データの生成処理を高い優先度で実行させる実行管理処理を実行可能になっている。このような実行管理処理は、典型的には、プロセッサ１０２がスケジューラプログラム１７０（図７）を実行することで実現される。
【００９７】
図８に戻って、解析対象データの生成処理に関して、制御装置１００のプロセッサ１０２は、解析対象データの生成開始条件が成立したか否かを判断する（ステップＳ１００）。解析対象データの生成開始条件は、予め定められた異常監視期間の到来、ユーザプログラム１５４が実行されることで発行されるトリガの受信などが想定される。
【００９８】
解析対象データの生成開始条件が成立していないと判断されると（ステップＳ１００においてＮＯの場合）、プロセッサ１０２は、ステップＳ１００の処理を繰返す。
【００９９】
解析対象データの生成開始条件が成立していると判断されると（ステップＳ１００においてＹＥＳの場合）、プロセッサ１０２は、指定された入力データを所定のサンプリング周期で収集する（ステップＳ１０２）。
【０１００】
入力データの収集中に、プロセッサ１０２は、解析処理によって異常が検出されたか否かを判断する（ステップＳ１０４）。すなわち、プロセッサ１０２は、先の区間において収集された解析対象データ（区間データ）において異常が検出されたか否かを判断する。
【０１０１】
解析処理によって異常が検出されると（ステップＳ１０２においてＹＥＳの場合）、プロセッサ１０２は、現在の異常監視期間における解析対象データの生成処理を終了する。
【０１０２】
一方、解析処理によって異常が検出されていなければ（ステップＳ１０２においてＮＯの場合）、プロセッサ１０２は、現在の区間についてのデータ収集が完了したか否かを判断する（ステップＳ１０６）。
【０１０３】
現在の区間についてのデータ収集が完了していなければ（ステップＳ１０６においてＮＯの場合）、プロセッサ１０２は、ステップＳ１０２以下の処理を繰返す。
【０１０４】
一方、現在の区間についてのデータ収集が完了していれば（ステップＳ１０６においてＹＥＳの場合）、プロセッサ１０２は、収集した解析対象データ（区間データ）を解析処理へ渡す（ステップＳ１０８）。そして、プロセッサ１０２は、現在の異常監視期間におけるすべてのデータ収集が完了したか否かを判断する（ステップＳ１１０）。
【０１０５】
現在の異常監視期間におけるすべてのデータ収集が完了していなければ（ステップＳ１１０においてＮＯ）、プロセッサ１０２は、ステップＳ１０２以下の処理を繰返す。
【０１０６】
現在の異常監視期間におけるデータ収集が完了していれば（ステップＳ１１０においてＹＥＳ）、プロセッサ１０２は、現在の異常監視期間における解析対象データの生成処理を終了する。
【０１０７】
解析対象データに対する解析処理に関して、制御装置１００のプロセッサ１０２は、解析対象データの生成処理から解析対象データ（区間データ）が与えられたか否かを判断する（ステップＳ２００）。解析対象データの生成処理から解析対象データ（区間データ）が与えられていなければ（ステップＳ２００においてＮＯの場合）、プロセッサ１０２は、ステップＳ２００の処理を繰返す。
【０１０８】
解析対象データの生成処理から解析対象データ（区間データ）が与えられると（ステップＳ２００においてＹＥＳの場合）、プロセッサ１０２は、解析対象データの生成処理からの解析対象データ（区間データ）に対応する判定指標を決定し（ステップＳ２０２）、決定した判定指標を用いて、対象の解析対象データ（区間データ）に対する解析処理（判定処理）を実行する（ステップＳ２０４）。続いて、プロセッサ１０２は、ステップＳ２０４における解析処理（判定処理）の結果、異常が検出されたか否かを判断する（ステップＳ２０６）。
【０１０９】
異常が検出されると（ステップＳ２０６においてＹＥＳの場合）、プロセッサ１０２は、解析対象データの生成処理へ異常が検出したことを通知する（ステップＳ２０８）。そして、プロセッサ１０２は、異常検出の内容、および、異常が検出された区間を示す情報などを含む解析結果を制御演算（ユーザプログラム１５４の実行によって提供される）などへ通知して（ステップＳ２１０）、現在の異常監視期間における解析処理を終了する。
【０１１０】
一方、異常が検出されなければ（ステップＳ２０６においてＮＯの場合）、プロセッサ１０２は、現在の異常監視期間におけるすべての解析処理が完了したか否かを判断する（ステップＳ２１２）。
【０１１１】
現在の異常監視期間におけるすべての解析処理が完了していなければ（ステップＳ２１２においてＮＯの場合）、プロセッサ１０２は、ステップＳ２００以下の処理を繰返す。
【０１１２】
現在の異常監視期間におけるすべての解析処理が完了していれば（ステップＳ２１２においてＹＥＳの場合）、プロセッサ１０２は、対象の異常監視期間において異常が発生しなかったこと、および、解析処理に要した時間などを含む解析結果を制御演算（ユーザプログラム１５４の実行によって提供される）などへ通知して（ステップＳ２１４）、現在の異常監視期間における解析処理を終了する。
【０１１３】
＜Ｇ．解析処理および判定指標群＞
次に、本実施の形態に係る解析処理についてより詳細に説明する。上述したように、本実施の形態に係る解析処理においては、解析対象データの部分に相当する区間データの単位で、異常の有無または異常の可能性を判定する。それぞれの区間データに対する判定に基づいて、解析対象データの挙動を評価する必要がある。
【０１１４】
そこで、本実施の形態に係る解析処理においては、各区間データに対する解析結果を次の区間データに対する解析処理において利用する。より具体的には、各区間データに対する解析処理においては、先の区間データに対する解析処理の結果（以下、「途中解析結果」とも称す。）を利用することで、複数の区間データの集合である解析対象データ全体の挙動を評価できる。
【０１１５】
図９は、本実施の形態に係る解析処理における区間データに対する解析結果の反映を説明するための図である。図９には、一例として、異常監視期間を４つの区間（区間ｔ１〜ｔ４）に分割した例を示す。
【０１１６】
図９を参照して、最初の区間から収集された区間ｔ１のデータに対しては、対応する判定指標１を用いて解析処理が実行される。この解析処理によって解析結果（途中解析結果１）が出力される。
【０１１７】
２番目の区間から収集された区間ｔ２のデータに対しては、対応する判定指標１に加えて、先の区間ｔ１のデータから得られた途中解析結果１を用いて解析処理が実行される。この解析処理によって解析結果（途中解析結果２）が出力される。
【０１１８】
同様に、３番目の区間から収集された区間ｔ３のデータに対しては、対応する判定指標１に加えて、先の区間ｔ２のデータから得られた途中解析結果２を用いて解析処理が実行される。この解析処理によって解析結果（途中解析結果３）が出力される。
【０１１９】
最終的に、最後の区間から収集された区間ｔ４のデータに対しては、対応する判定指標４に加えて、先の区間ｔ３のデータから得られた途中解析結果３を用いて解析処理が実行される。この解析処理によって最終的な解析結果が出力される。
【０１２０】
以上のように、各区間データに対する解析処理においては、先の区間データに対する解析処理の結果（途中解析結果）が利用され、これによって、複数の区間データの集合である解析対象データ全体の挙動を評価できる。すなわち、制御装置１００（解析手段）は、対象の異常監視期間Ｔｏ（解析対象期間）に含まれる先の区間についての区間データに対する解析処理の結果を利用して、当該異常監視期間Ｔｏに含まれる後続の区間についての区間データに対する解析処理を実行する。
【０１２１】
次に、上述したような段階的な解析処理に用いられる判定指標について説明する。図１０は、本実施の形態に係る解析処理に用いられる判定指標群の決定方法の一例を説明するための図である。
【０１２２】
図１０を参照して、解析対象データから算出される特徴量（通常は、複数の特徴量から構成される特徴量ベクトル）のサンプルを対応する座標空間にプロットした、特徴量で表現される特徴量空間３００の一例を示す。
【０１２３】
各特徴量には、通常、ラベル（正常または異常）が付与されており、ユーザは、各特徴量に付与されているラベルを参照しながら、正常状態にある特徴量の群、および／または、異常状態にある特徴量の群、を定義するしきい範囲３０４を決定する。例えば、ユーザは、正常状態におけるＮ個のサンプルの平均位置である基準位置３０２を指定するとともに、基準位置３０２を基準として所定のしきい範囲３０４を指定するようにしてもよい。しきい範囲３０４内に存在するサンプル群３０６が正常状態または異常状態におけるサンプル集合（すなわち、正解データまたは異常データ）に相当する。
【０１２４】
図１０に示す例では、しきい範囲３０４の位置および範囲などがユーザによって指定されるしきい値に相当する。
【０１２５】
例えば、図１０に示す解析対象データ３１０を一例として考える。解析対象データ３１０が収集された異常監視期間が４つの区間（区間ｔ１〜ｔ４）に分割されている場合において、最初の区間から収集された区間ｔ１のデータから算出される特徴量は、特徴量空間３００上の座標３１１に位置したとする。この座標３１１は正常範囲内に存在している。続く２番目の区間から収集された区間ｔ２のデータから算出される特徴量は、特徴量空間３００上の座標３１２に移動したとする。この座標３１２は正常範囲内にあるものの異常側に移動している。続く３番目の区間から収集された区間ｔ３のデータから算出される特徴量は、特徴量空間３００上の座標３１３に移動したとする。この座標３１３は、正常範囲外にあり、異常であると判定することができる。すなわち、対応する区間ｔ３のデータに異常データが混じり、座標３１３は正常範囲を超えて、異常側へ移動している。
【０１２６】
最終的に、最終の区間から収集された区間ｔ４のデータから算出される特徴量は、特徴量空間３００上の座標３１４に到達したとする。座標３１４は正常範囲を超えており、異常監視期間の範囲にある値のすべてに対して解析した結果として、正常範囲を超える、すなわち異常が生じていると判定できる。
【０１２７】
このような解析処理に用いられる判定指標群１８２は、特徴量空間３００における各サンプルの挙動に基づいて決定することができる。すなわち、判定指標群を構成する各判定指標は、解析処理による評価に用いられる特徴量空間３００において、各区間データの解析結果を追加する毎に、正常側に移動するのか、あるいは、異常側に移動するのかを判定するための基準に相当する。
【０１２８】
このような基準は、正常状態とされるサンプル群について、各サンプルの特徴量の挙動（移動パターンや移動量）を取得しておき、これらの取得されたそれぞれのサンプルの特徴量の挙動を統計処理することで、各区間におけるしきい値としての判定指標が決定されてもよい。
【０１２９】
例えば、図１０の特徴量空間３００に含まれる正常サンプル３２０を一例に説明すると、異常監視期間が４つの区間に分割された場合、特徴量空間３００における挙動は、座標３２１→座標３２２→座標３２３→座標３２４の順に移動したとする。この場合には、隣接する座標同士の変化量（例えば、移動量を示すベクトル）をそれぞれの区間に対応する判定指標として用いることができる。なお、実際には、複数のサンプルから得られる各区間についての判定指標の複数に対して統計処理することで、最終的な判定指標群を決定できる。
【０１３０】
判定指標群を構成する各判定指標は、各区間についての、（１）特徴量空間における位置および／または距離、（２）特徴量空間における移動量、（３）特徴量空間における移動方向（例えば、正常側への移動または異常側への移動）、などを規定する、しきい値、モデルまたは関数などが用いることができる。
【０１３１】
最終的に、階層毎（区間毎）に規定される判定指標を組合せることで、階層的な判定指標として判定指標群１８２が決定される。なお、各階層（区間）についての判定指標がすべて一様になる場合もある。
【０１３２】
なお、上述したような正常範囲を評価基準として設定する構成に代えて、異常範囲を評価基準として設定するようにしてもよい。
【０１３３】
図１０に示すように、制御装置１００（解析手段）は、対象の異常監視期間Ｔｏ（解析対象期間）に含まれる各区間についての区間データに対するそれぞれの解析処理の結果を統合したものが予め定められた評価基準（正常範囲または異常範囲）に適合しているか否かが判定される。
【０１３４】
次に、図１０に示すような正常範囲を決定するためのユーザインターフェイス画面の一例について説明する。上述したように、ユーザは、しきい値などを調整して、正常状態であるとする範囲（しきい範囲）を定義する。すると、制御装置１００またはサポート装置２００は、ユーザにより定義された範囲に含まれるサンプルと当該範囲に含まれないサンプルとのそれぞれの挙動に基づいて、正常であるサンプルの挙動を特定する。そして、制御装置１００またはサポート装置２００は、特定されたサンプルの挙動（正常とされる挙動）に基づいて、判定指標群１８２を算出する。
【０１３５】
サンプルが追加された場合には、当該サンプルの挙動、すなわち特徴量の振る舞い（移動方向や移動量など）に基づいて、正常または異常が判定される。
【０１３６】
図１１は、図１０に示す特徴量空間３００上に、しきい範囲３０４を設定するためのユーザインターフェイス画面の一例を示す。図１１（ａ）に示すように、特徴量空間３００上に予め収集されているサンプルがプロットされており、ユーザは、このサンプルの分布を参照しながら、マウスなどを操作して、しきい範囲３０４を設定する。さらに、図１１（ｂ）に示すように、マウスなどをさらに操作して、しきい範囲３０４の大きさなどを調整することもできる。
【０１３７】
図１２は、図１０に示す特徴量空間３００上のサンプルの挙動を確認するためのユーザインターフェイス画面の一例を示す。図１２に示すように、特徴量空間３００上にプロットされているサンプルをユーザが選択すると、制御装置１００またはサポート装置２００は、当該選択されたサンプルの挙動を表示する。ユーザは、各サンプルの挙動を確認しながら、しきい範囲３０４の大きさなどを調整することができる。
【０１３８】
上述のような手順によって、特徴量空間３００上にプロットされているサンプルに基づいて、ユーザは何らかのしきい範囲を設定することができる。このように、制御装置１００は、直接的に、または、サポート装置２００などを介して、評価基準（正常範囲または異常範囲）の設定を受付ける設定受付処理が実行可能になっている。
【０１３９】
例えば、ユーザが区間データの最大値が１０以下であれば正常であり、１０を超えれば異常であるとの知見に基づく定義を行うと、制御装置１００またはサポート装置２００は、その設定されたしきい値に対して、解析対象データが増加するたびにどのように近付くのかを評価して、各区間の判定指標を決定する。
【０１４０】
なお、図１１に示すようなユーザインターフェイス画面上でユーザが評価基準を設定するだけではなく、予め定められたロジックに従って、制御装置１００またはサポート装置２００が評価基準を自動的に決定するようにしてもよい。より具体的には、以下のような処理によって、評価基準を設定できる。
【０１４１】
（１）ラベル付けしたサンプルを用いる方法
制御対象の製造装置や生産ラインなどにおいて、各ワークに対して何らかの検査を行うように構成されている場合には、そのワークに対する検査結果と、当該ワークから取得された特徴量（サンプル）とを関連付けることで、ラベル付けされたサンプル群を取得できる。このラベル付けされたサンプル群に対して、任意のクラスタリング手法を適用することで、評価基準（正常範囲または異常範囲）を決定することができる。すなわち、クラスタリングによって得られる正常範囲または異常範囲に基づいて、評価基準であるしきい範囲を決定できる。このような評価基準を決定する処理は、制御装置１００またはサポート装置２００で実行されてもよいし、上位の製造管理サーバなどで実行されてもよい。
【０１４２】
（２）実績のフィードバックを反映する方法
何らかの方法で決定された評価基準に基づいて異常検出処理を実行するとともに、その異常検出処理によって異常であると判定されたサンプルについての検出結果の適否をフィードバックして、評価基準を学習してもよい。例えば、異常であると判定されたサンプルを実際にユーザが確認した上で、その判定の適否を入力するようにしてもよい。正しく判定されていないサンプルが特定され、その特定されたサンプルに基づいて、評価基準を更新できる。この手法は、試行結果を評価した上で、評価基準を学習させるようなアプローチに相当する。
【０１４３】
（３）評価関数を用いる方法
予めラベル付けした複数のサンプルに対して、乖離度あるいは異常度（例えば、ＬＯＦ(local outlier factor)による外れ度やマハラノビス距離など）を評価できる評価関数を適用するとともに、評価関数により算出されるスコアに基づいて、しきい値を自動的に設定できる。設定されたしきい値をそのまま評価基準とすることもできるし、設定されたしきい値により規定される範囲を評価基準とすることもできる。
【０１４４】
なお、上述した（１）〜（３）の手法は一例であり、任意の統計的な手法を採用することができる。
【０１４５】
＜Ｈ．区間数の決定方法＞
上述したように、本実施の形態に係る解析処理においては、異常監視期間を複数の区間に分割し、各区間において収集される解析対象データの部分をそれぞれ評価する。以下、区間数の決定方法の一例について説明する。
【０１４６】
図１３は、本実施の形態に係る解析処理における区間数の決定方法を説明するための図である。図１３を参照して、複数の区間に分割する条件としては、定義された正常状態に対して、各区間データに対する解析結果に基づいて、解析対象データの挙動（近付くまたは遠ざかる）が十分判定できる分解能を実現できることが要求される。なお、区間長さの最小値は、対象データのサンプリング周期（各区間に１点の値のみが含まれる）となる。
【０１４７】
各区間データは、次の区間におけるデータ収集と並列して、制御演算が実行されていない空き時間に解析されることになる。基本的には、上述の図４に示す関連技術に係る解析処理の場合に比較して、解析結果の出力タイミングが遅れることはない。
【０１４８】
異常のような条件などを考慮して、分割数の決定手法としては、以下のような方法が挙げられる。
【０１４９】
（１）正常状態における解析対象データの挙動に基づいて分割数を決定する。
例えば、正常状態における解析対象データの挙動の変化が激しい場合には、分割数をより多く設定し、逆に、正常状態における解析対象データの挙動の変化が緩やかである場合には、分割数をより少なく設定してもよい。このような分割数の決定は、予め定められたロジックに基づいて制御装置１００またはサポート装置２００などが決定してもよい。あるいは、ユーザが正常状態における解析対象データの挙動の変化を確認しつつ、分割数を決定するようにしてもよい。このように、分割数（区間の数）は、正常状態における制御対象に関連付けられた値の時間変化に基づいて決定されてもよい。
【０１５０】
（２）解析対象データの挙動を可視化できる範囲に分割数を決定する。
例えば、後述するような解析対象データの挙動を可視化した場合には、解析対象データについての位置の時間変化を視認できるような粒度に設定することが好ましい。この視認できるような粒度については、予め定められたロジックに基づいて制御装置１００またはサポート装置２００などが決定してもよい。あるいは、ユーザが実際に解析対象データの挙動を視認した結果に基づいて、適宜調整するようにしてもよい。このように、分割数（区間の数）は、制御対象に関連付けられた値の時間変化を視認できるように決定されてもよい。
【０１５１】
（３）異常監視期間に対して分割数Ｎをシステム的に設定してもよい。
システム的な設定としては、装置出荷時に予め定められたデフォルト値を固定的に定めておいてもよいし、ユーザが任意に設定できるようにしておいてもよい。
【０１５２】
以上のように、異常監視期間をどのように分割するのかについては、実際の解析対象データの挙動などに基づいて適宜決定すればよい。
【０１５３】
なお、上述の説明においては、異常監視期間を分割する各区間の長さは互いに同一である例を示すが、必ずしもこれに限られることなく、区間毎に区間長さを異ならせてもよい。例えば、監視対象の製造装置や機械などの特性に応じて、異常監視期間のうち後半部分に異常が生じる可能性が高い場合などには、前半部分の区間を長くしておき、後半部分の区間を短くしてより多くの区間が設定されるようにしてもよい。
【０１５４】
このように、異常監視期間を分割する際の区間の数および区間の長さについては、任意の設定することができる。
【０１５５】
＜Ｉ．解析結果の出力例＞
次に、本実施の形態に係る制御装置１００が提供する解析処理による解析結果の出力例について説明する。
【０１５６】
図１４は、本実施の形態に係る解析処理による解析結果の出力例を示す模式図である。サポート装置２００は、制御装置１００から解析結果を受信して、図１４に示すような出力例を含むユーザインターフェイス画面を提供してもよい。
【０１５７】
図１４に示す出力例においては、統計情報３５０および異常ログ３６０を含む。
統計情報３５０は、異常判定処理の通算実行回数を示す異常判定回数３５２と、異常が生じていると判定された回数を示す異常発生回数３５４と、異常が生じているとの判定についていずれの区間において最終的な判断がなされたかの分布を示す異常判定区間３５６とを含む。ユーザは、統計情報３５０の内容を確認しながら、しきい値や分割数の調整を行うこともできる。
【０１５８】
異常ログ３６０は、異常が生じていると判定されたタイミングを示す異常発生時刻３６２と、そのときの製造情報を示すワーク番号３６４とを含む。ユーザは、異常が生じていると判定された実際のワークの状態を確認することで、現在設定されているしきい値の適否などを評価することもできる。
【０１５９】
＜Ｊ．利点＞
ＰＬＣ等の制御装置では、制御対象への高速かつ高精度な制御を実現するための制御演算を高い優先度でサイクリック実行する一方で、制御演算以外の付加的な処理については、低い優先度で空き時間に実行するというスケジューリングが行われる。
【０１６０】
付加的な処理として、制御演算で利用する任意のデータに対してデータ解析や機械学習といった高度な情報処理を実行するとともに、その実行結果を制御演算へフィードバックするような処理が要請されることがある。上述したような制御装置の構成下においては、情報処理の優先度は低く設定されており、かつ、一般的に、データ解析などの情報処理の実行完了は、解析対象のデータ（解析周期や入力点数など）に依存するため、そのような情報処理の実行完了のタイミングをスケジューリングすることができない。すなわち、情報処理の実行完了のタイミングがばらつく。この結果、データ解析の解析結果の制御演算へのフィードバックが遅延し、制御演算およびそれに関連する処理に影響を与える可能性がある。
【０１６１】
本実施に係る解析処理においては、解析対象期間（異常監視期間Ｔｏ）を時間軸に沿って複数の区間に分割し、各区間において収集される区間データに対してそれぞれ解析処理を実行するとともに、いずれかの区間において所定の結果（典型的には、異常が生じているとの判定）が出力されると、当該解析対象期間におけるそれ以降の区間についての解析処理を省略する。これによって、解析対象期間の全期間に亘って収集したデータに基づいて解析処理を実施する場合に比較して、所定の結果をより早期に得られる。
【０１６２】
また、低い優先度で実行される解析処理での解析処理の進捗度合いなどを他のプロセスから確認することもできるので、実行完了タイミングを保証できない状態であっても、解析処理の実行を管理することができる。
【０１６３】
このような構成を採用することで、制御装置における制御演算の実行速度および実行精度へ影響を与えることなく、必要な解析処理を実現できる。
【０１６４】
また、解析処理においては、解析対象期間の途中で注目している解析結果が出力されることになるので、解析処理の実行完了タイミングのゆらぎの影響を低減しつつ、予防制御などの処理を制御演算に組入れることができる。また、解析処理を早期に完了できるので、全体的に演算負荷を低減することで、さらに別の処理を並列的に実行させることもできる。
【０１６５】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した説明ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【０１６６】
１  制御システム、２  第１フィールドバス、４  第２フィールドバス、６  上位ネットワーク、８  フィールド装置群、１２  リモートＩ／Ｏ装置、１４  リレー群、１６，１２４  Ｉ／Ｏユニット、１８  画像センサ、２０  カメラ、２２  サーボドライバ、２４  サーボモータ、１００  制御装置、１０２  プロセッサ、１０４  チップセット、１０６  主記憶装置、１０８  二次記憶装置、１１０  ネットワークコントローラ、１１２  ＵＳＢコントローラ、１１４  メモリカードインターフェイス、１１６  メモリカード、１１８，１２０  フィールドバスコントローラ、１２２  ローカルバスコントローラ、１５０  ＰＬＣエンジン、１５２  制御プログラム、１５４  ユーザプログラム、１５６  解析処理制御プログラム、１５８  解析対象データ生成プログラム、１６０  変数管理プログラム、１６２  システム変数、１６４  デバイス変数、１６６  ユーザ変数、１７０  スケジューラプログラム、１７２  入力プログラム、１７４  出力プログラム、１８０  組込データベース、１８２  判定指標群、１８４  判定指標、１９０  解析部、１９２  解析エンジン、１９４  進捗結果出力部、２００  サポート装置、３００  特徴量空間、３０２  基準位置、３０４  しきい範囲、３０６  サンプル群、３１０  解析対象データ、３２０  正常サンプル、３５０  統計情報、３５２  異常判定回数、３５４  異常発生回数、３５６  異常判定区間、３６０  異常ログ、３６２  異常発生時刻、３６４  ワーク番号、４００  外部装置、４５０  表示装置。
【図１】
2018173883.tif 000003
【図２】
2018173883.tif 000004
【図３】
2018173883.tif 000005
【図４】
2018173883.tif 000006
【図５】
2018173883.tif 000007
【図６】
2018173883.tif 000008
【図７】
2018173883.tif 000009
【図８】
2018173883.tif 000010
【図９】
2018173883.tif 000011
【図１０】
2018173883.tif 000012
【図１１】
2018173883.tif 000013
【図１２】
2018173883.tif 000014
【図１３】
2018173883.tif 000015
【図１４】
2018173883.tif 000016