(57)【要約】【課題】異常検知の導入および運用を容易化するための仕組みを提供する。【解決手段】制御対象を制御するための制御システムは、制御装置と、制御装置に接続可能な解析設定装置とを含む。制御装置は、制御対象から収集される１または複数の状態値に基づいて、制御対象に含まれる監視対象に何らかの異常が発生しているか否かを判定する異常検知手段と、解析設定装置からの指定に従って、制御対象から１または複数の状態値を収集する収集手段とを含む。解析設定装置は、制御装置により収集された１または複数の状態値を取得して解析する解析手段と、解析手段による解析結果に基づいて、制御装置の異常検知手段の動作を設定する設定手段とを含む。【選択図】図１
2020194413.tif 000002
【特許請求の範囲】
【請求項１】
制御対象を制御するための制御システムであって、
制御装置と、
前記制御装置に接続可能な解析設定装置とを備え、
前記制御装置は、
制御対象から収集される１または複数の状態値に基づいて、前記制御対象に含まれる監視対象に何らかの異常が発生しているか否かを判定する異常検知手段と、
前記解析設定装置からの指定に従って、前記制御対象から１または複数の状態値を収集する収集手段とを含み、
前記解析設定装置は、
前記制御装置により収集された１または複数の状態値を取得して解析する解析手段と、
前記解析手段による解析結果に基づいて、前記制御装置の前記異常検知手段の動作を設定する設定手段とを含む、制御システム。
【請求項２】
前記制御装置は、前記制御対象を制御するためのユーザプログラムを実行するように構成されており、
前記異常検知手段および前記収集手段は、前記ユーザプログラムに規定される設定に応じて動作が変更される、請求項１に記載の制御システム。
【請求項３】
前記収集手段は、前記ユーザプログラムに規定される設定が予め定められた値である場合において、前記１または複数の状態値を収集する、請求項２に記載の制御システム。
【請求項４】
前記ユーザプログラムは、前記異常検知手段に対応する命令ブロックを含み、
前記命令ブロックは、入力として、前記ユーザプログラムに規定される設定を含む、請求項３に記載の制御システム。
【請求項５】
前記制御装置の前記異常検知手段の動作に係る設定は、収集すべき状態値の指定と、収集された状態値から算出される特徴量の指定と、異常であるか否かを判定するための判定条件とを含む、請求項１〜４のいずれか１項に記載の制御システム。
【請求項６】
前記異常検知手段は、前記制御対象に含まれる監視対象に何らかの異常が発生しているか否かを判定する処理において収集されたデータを外部アクセス可能に公開する、請求項１〜５のいずれか１項に記載の制御システム。
【請求項７】
前記制御装置は、前記収集手段が収集した１または複数の状態値のうち、ユーザから明示的に許可された情報のみを外部アクセス可能に公開する、請求項１〜６のいずれか１項に記載の制御システム。
【請求項８】
前記外部アクセス可能に公開される情報は、前記収集手段が収集した１または複数の状態値の時系列データをフィルタリングした結果を含む、請求項７に記載の制御システム。
【請求項９】
制御対象を制御するための制御装置であって、
制御対象から収集される１または複数の状態値に基づいて、前記制御対象に含まれる監視対象に何らかの異常が発生しているか否かを判定する異常検知手段と、
外部装置からの指定に従って、前記制御対象から１または複数の状態値を収集する収集手段とを備え、
前記異常検知手段は、前記収集手段が収集した１または複数の状態値を外部装置が解析した結果に基づいて決定された設定を受けて、当該設定に従って動作する、制御装置。
【請求項１０】
制御対象を制御するための制御装置で実行される制御プログラムであって、前記制御プログラムは前記制御装置に、
制御対象から収集される１または複数の状態値に基づいて、前記制御対象に含まれる監視対象に何らかの異常が発生しているか否かを判定するステップと、
外部装置からの指定に従って、前記制御対象から１または複数の状態値を収集するステップとを実行させ、
前記判定するステップは、前記収集された１または複数の状態値を外部装置が解析した結果に基づいて決定された設定を受けて、当該設定に従って動作するステップを含む、制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、監視対象に発生し得る何らかの異常を検知可能な制御システム、ならびに、その制御システムを構成する制御装置およびその制御プログラムに関する。
【背景技術】
【０００２】
様々な生産現場において、機械や装置に対する予知保全により設備稼働率を向上させたいというニーズが存在する。予知保全とは、機械や装置に生じる何らかの異常を検知して、設備を停止しなければ状態になる前に、整備や交換などの保守作業を行うような保全形態を意味する。
【０００３】
予知保全を実現するために、機械や装置の状態値を収集するとともに、収集された状態値に基づいて、当該機械や装置に何らかの異常が生じているか否かを判定するような仕組みが必要となる。例えば、特開２０１８−０９７６６２号公報（特許文献１）は、制御対象に生じている現象をより短い周期で監視できる技術を開示する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１８−０９７６６２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
制御対象は多数の情報を有しており、異常検知を行うためにどのような情報を用いるべきかといった設定には、経験および専門知識などが必要になる。様々な生産現場に異常検知の導入および運用するにあたっては、このような経験および専門知識を容易に活用できるような仕組みが必要となる。
【０００６】
本発明の一つの目的は、異常検知の導入および運用を容易化するための仕組みを提供することである。
【課題を解決するための手段】
【０００７】
本発明の一例によれば、制御対象を制御するための制御システムが提供される。制御システムは、制御装置と、制御装置に接続可能な解析設定装置とを含む。制御装置は、制御対象から収集される１または複数の状態値に基づいて、制御対象に含まれる監視対象に何らかの異常が発生しているか否かを判定する異常検知手段と、解析設定装置からの指定に従って、制御対象から１または複数の状態値を収集する収集手段とを含む。解析設定装置は、制御装置により収集された１または複数の状態値を取得して解析する解析手段と、解析手段による解析結果に基づいて、制御装置の異常検知手段の動作を設定する設定手段とを含む。
【０００８】
この構成によれば、制御装置のユーザが経験および専門知識などを有していない場合であっても、異常検知処理の動作を適切に設定することができ、要求に応じた異常検知処理を運用できる。
【０００９】
制御装置は、制御対象を制御するためのユーザプログラムを実行するように構成されていてもよい。異常検知手段および収集手段は、ユーザプログラムに規定される設定に応じて動作が変更されてもよい。この構成によれば、制御装置のユーザは、ユーザプログラムを変更することで、異常検知手段および収集手段の挙動を任意に制御できる。
【００１０】
収集手段は、ユーザプログラムに規定される設定が予め定められた値である場合において、１または複数の状態値を収集してもよい。この構成によれば、ユーザプログラムの内用を制御することで、データ収集を特定の期間に限定できるので、セキュリティレベルを担保できる。
【００１１】
ユーザプログラムは、異常検知手段に対応する命令ブロックを含んでいてもよい。命令ブロックは、入力として、ユーザプログラムに規定される設定を含んでいてもよい。この構成によれば、制御装置のユーザは、ユーザプログラム内に複数の命令を記述することなく、特定の命令ブロックのみを記述すれば済むので、作業量などを低減できる。
【００１２】
制御装置の異常検知手段の動作に係る設定は、収集すべき状態値の指定と、収集された状態値から算出される特徴量の指定と、異常であるか否かを判定するための判定条件とを含んでいてもよい。この構成によれば、制御装置で実行される異常検知処理の挙動を詳細に制御できる。
【００１３】
異常検知手段は、制御対象に含まれる監視対象に何らかの異常が発生しているか否かを判定する処理において収集されたデータを外部アクセス可能に公開してもよい。この構成によれば、異常検知処理の運用中に得られたデータに基づいて、運用中の異常検知処理の見直しなどを容易に行うことができる。
【００１４】
制御装置は、収集手段が収集した１または複数の状態値のうち、ユーザから明示的に許可された情報のみを外部アクセス可能に公開してもよい。この構成によれば、営業秘密やノウハウなどを含み得る情報の公開を任意に制限できる。
【００１５】
外部アクセス可能に公開される情報は、収集手段が収集した１または複数の状態値の時系列データをフィルタリングした結果を含んでいてもよい。この構成によれば、そのまま外部に公開することが好ましくない情報が含まれる場合であっても、異常検知処理を適切に設定できる。
【００１６】
本発明の別の一例によれば、制御対象を制御するための制御装置が提供される。制御装置は、制御対象から収集される１または複数の状態値に基づいて、制御対象に含まれる監視対象に何らかの異常が発生しているか否かを判定する異常検知手段と、外部装置からの指定に従って、制御対象から１または複数の状態値を収集する収集手段とを含む。異常検知手段は、収集手段が収集した１または複数の状態値を外部装置が解析した結果に基づいて決定された設定を受けて、当該設定に従って動作する。
【００１７】
この構成によれば、制御装置のユーザが経験および専門知識などを有していない場合であっても、異常検知処理の動作を適切に設定することができ、要求に応じた異常検知処理を運用できる。
【００１８】
本発明のさらに別の一例によれば、制御対象を制御するための制御装置で実行される制御プログラムが提供される。制御プログラムは、制御装置に、制御対象から収集される１または複数の状態値に基づいて、制御対象に含まれる監視対象に何らかの異常が発生しているか否かを判定するステップと、外部装置からの指定に従って、制御対象から１または複数の状態値を収集するステップとを実行させる。判定するステップは、収集された１または複数の状態値を外部装置が解析した結果に基づいて決定された設定を受けて、当該設定に従って動作するステップを含む。
【００１９】
この構成によれば、制御装置のユーザが経験および専門知識などを有していない場合であっても、異常検知処理の動作を適切に設定することができ、要求に応じた異常検知処理を運用できる。
【発明の効果】
【００２０】
本発明によれば、異常検知の導入および運用を容易化するための仕組みを提供できる。
【図面の簡単な説明】
【００２１】
【図１】本実施の形態に従う異常検知システムの全体構成例を示す模式図である。
【図２】本実施の形態に従う異常検知システムを構成する制御装置のハードウェア構成例を示すブロック図である。
【図３】本実施の形態に従う異常検知システムを構成する解析設定装置のハードウェア構成例を示すブロック図である。
【図４】本実施の形態に従う異常検知システムを構成するサポート装置のハードウェア構成例を示すブロック図である。
【図５】本実施の形態に従う異常検知システムで実行される異常検知処理を実現するための構成例を示すブロック図である。
【図６】本実施の形態に従う異常検知システムにおけるデータ収集フェーズでの処理を説明するための図である。
【図７】本実施の形態に従う異常検知システムにおけるデータ解析フェーズでの処理を説明するための図である。
【図８】本実施の形態に従う異常検知システムにおけるデータ活用フェーズでの処理を説明するための図である。
【図９】本実施の形態に従う異常検知システムで実行されるユーザプログラムに記述可能な異常検知ファンクションブロックの一例を示す図である。
【図１０】本実施の形態に従う異常検知システムにおける処理手順の一例を示すシーケンス図である。
【図１１】本実施の形態に従う異常検知システムが提供する情報管理機能の一例を説明するための図である。
【図１２】本実施の形態に従う異常検知システムが提供するフィルタレベルの自動選択機能の一例を説明するための図である。
【発明を実施するための形態】
【００２２】
本発明の実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰り返さない。
【００２３】
＜Ａ．適用例＞
まず、本発明が適用される場面の一例について説明する。
【００２４】
本実施の形態に従う異常検知処理を実行可能な制御システムの機能的な構成例について説明する。以下の説明においては、主として、制御システムが有している異常検知処理に注目して説明するので、制御システム全体を「異常検知システム」とも称する。
【００２５】
まず、本実施の形態に従う異常検知システム１の全体構成例について説明する。
図１は、本実施の形態に従う異常検知システム１の全体構成例を示す模式図である。図１を参照して、異常検知システム１は、制御対象を制御することができ、主たる構成要素として、制御装置１００を含む。
【００２６】
制御装置１００は、制御対象に対する制御を行うための制御演算を実行するとともに、制御対象に含まれる監視対象に生じ得る何らかの異常を検知するための異常検知処理を実行する。制御装置１００は、ＰＬＣ（プログラマブルコントローラ）などの、一種のコンピュータとして具現化されてもよい。
【００２７】
制御装置１００は、第１フィールドバス２を介してフィールド装置群１０と接続されるとともに、第２フィールドバス４を介して１または複数の表示装置４００と接続される。さらに、制御装置１００は、ローカルネットワーク６およびインターネット８を介して、解析設定装置２００などの外部装置にも接続可能になっている。また、制御装置１００には、サポート装置３００が直接的に接続されることもある。制御装置１００は、それぞれのネットワークを介して、接続された装置との間でデータを遣り取りする。なお、表示装置４００は、オプショナルな構成である。
【００２８】
第１フィールドバス２および第２フィールドバス４としては、データの到達時間が保証される、定周期通信を行うネットワークを採用することが好ましい。このような定周期通信を行うネットワークとしては、ＥｔｈｅｒＣＡＴ（登録商標）などが知られている。
【００２９】
制御装置１００は、フィールド装置群１０にて取得され、制御装置１００へ転送されるデータ（以下、「入力値」とも称す。）を収集する。制御装置１００は、収集した入力値などに基づいて、制御演算および異常検知処理を実行する。
【００３０】
フィールド装置群１０は、制御対象または制御に関連する製造装置や生産ラインなど（以下、「フィールド」とも総称する。）の状態値を入力値として収集する装置を含む。
【００３１】
本明細書において、「状態値」は、任意の制御対象（含む：監視対象）にて観測できる値を包含する用語であり、例えば、任意のセンサにより測定できる物理値や、リレーやスイッチなどのＯＮ／ＯＦＦ状態、ＰＬＣがサーボドライバに与える位置、速度、トルクなどの指令値、ＰＬＣが演算に用いる変数値などを含み得る。
【００３２】
このような状態値を収集する装置としては、入力リレーや各種センサなどが想定される。フィールド装置群１０は、さらに、制御装置１００にて生成される指令値（以下、「出力値」とも称す。）に基づいて、フィールドに対して何らかの作用を与える装置を含む。このようなフィールドに対して何らかの作用を与える装置としては、出力リレー、コンタクタ、サーボドライバおよびサーボモータ、その他任意のアクチュエータが想定される。これらのフィールド装置群１０は、第１フィールドバス２を介して、制御装置１００との間で、入力値および出力値を含むデータを遣り取りする。
【００３３】
図１に示す構成例においては、フィールド装置群１０は、リモートＩ／Ｏ（Input/Output）装置１２と、リレー群１４と、画像センサ１８およびカメラ２０と、サーボドライバ２２およびサーボモータ２４とを含む。
【００３４】
リモートＩ／Ｏ装置１２は、第１フィールドバス２を介して通信を行う通信部と、入力値の収集および出力値の出力を行うための入出力部（以下、「Ｉ／Ｏユニット」とも称す。）とを含む。このようなＩ／Ｏユニットを介して、制御装置１００とフィールドとの間で入力値および出力値が遣り取りされる。図１には、リレー群１４を介して、入力値および出力値として、デジタル信号が遣り取りされる例が示されている。
【００３５】
Ｉ／Ｏユニットは、フィールドバスに直接接続されるようにしてもよい。図１には、第１フィールドバス２にＩ／Ｏユニット１６が直接接続されている例を示す。
【００３６】
画像センサ１８は、カメラ２０によって撮像された画像データに対して、パターンマッチングなどの画像計測処理を行って、その処理結果を制御装置１００へ送信する。
【００３７】
サーボドライバ２２は、制御装置１００からの出力値（例えば、位置指令など）に従って、サーボモータ２４を駆動する。
【００３８】
本実施の形態に従う異常検知処理に関して、制御装置１００は、異常検知処理を担当する異常検知エンジン１３０、および、異常検知処理に係る各種データを格納するための内部データベース（以下、「内部ＤＢ」とも記す。）１４０とを含む。異常検知エンジン１３０は、制御対象から収集される１または複数の状態値に基づいて、制御対象に含まれる監視対象に何らかの異常が発生しているか否かを判定する。
【００３９】
解析設定装置２００は、基本的には、異常検知システム１が配置される場所とは異なる場所に配置されることが想定されている。解析設定装置２００は、制御装置１００から解析用データを収集し、収集した解析用データに基づいて、制御装置１００における異常検知処理に係る設定を行うために用いられる。
【００４０】
サポート装置３００は、制御装置１００で実行される制御演算に必要な準備を支援する。具体的には、サポート装置３００は、制御装置１００で実行されるユーザプログラムの開発環境（プログラム作成編集ツール、パーサ、コンパイラなど）、制御装置１００および制御装置１００に接続される各種デバイスの設定パラメータ（コンフィギュレーション）を決定するための機能、生成したユーザプログラムを制御装置１００へ送信する機能、制御装置１００上で実行されるユーザプログラムなどをオンラインで修正・変更する機能、などを提供する。
【００４１】
表示装置４００は、第２フィールドバス４を介して制御装置１００と接続され、ユーザからの操作を受けて、制御装置１００に対してユーザ操作に応じたコマンドなどを送信するとともに、制御装置１００での処理結果などをグラフィカルに表示する。
【００４２】
図１を参照して、本実施の形態に従う異常検知システム１が提供する機能の一例について概説する。
【００４３】
制御装置１００は、制御対象を制御するための制御演算を実行するとともに、制御対象に含まれる監視対象に何らかの異常が発生しているか否かを判断する異常検知処理を実行する（（１）制御演算および（２）異常検知）。制御装置１００は、異常検知処理に関連する各種情報（解析用データ）を格納する。
【００４４】
解析設定装置２００は、制御装置１００に格納されている解析用データを収集し（（３）解析用データ）、収集した解析用データに基づいて各種解析を行う（（４）解析）。典型的には、解析設定装置２００は、経験および専門知識を有している専門家が操作することが想定されている。解析設定装置２００は、各種解析の結果に基づいて、制御装置１００の異常検知処理に係る設定の内容を決定する。そして、解析設定装置２００は、決定した設定を制御装置１００へ送信する（（５）設定）。なお、初期段階では、制御装置１００において異常検知処理が実行されてなくてもよい。
【００４５】
このような処理サイクルを繰り返すことによって、制御装置１００に対して、要求および目的に適した異常検知処理を実装することができる。
【００４６】
＜Ｂ．各装置のハードウェア構成例＞
次に、本実施の形態に従う異常検知システム１を構成する主要な装置のハードウェア構成例について説明する。
【００４７】
（ｂ１：制御装置１００のハードウェア構成例）
図２は、本実施の形態に従う異常検知システム１を構成する制御装置１００のハードウェア構成例を示すブロック図である。図２を参照して、制御装置１００は、ＣＰＵ（Central Processing Unit）やＭＰＵ（Micro-Processing Unit）などのプロセッサ１０２と、チップセット１０４と、主記憶装置１０６と、二次記憶装置１０８と、ローカルネットワークコントローラ１１０と、ＵＳＢ（Universal Serial Bus）コントローラ１１２と、メモリカードインターフェイス１１４と、内部バスコントローラ１２２と、フィールドバスコントローラ１１８，１２０と、Ｉ／Ｏユニット１２４−１，１２４−２，…とを含む。
【００４８】
プロセッサ１０２は、二次記憶装置１０８に格納された各種プログラムを読み出して、主記憶装置１０６に展開して実行することで、制御対象に応じた制御、および、後述するような各種処理を実現する。チップセット１０４は、プロセッサ１０２とともに、各コンポーネントを制御することで、制御装置１００全体としての処理を実現する。
【００４９】
二次記憶装置１０８には、制御装置１００が提供する機能を実現するためのシステムプログラム１２６（制御プログラムに相当）に加えて、システムプログラム１２６が提供する実行環境を利用して実行されるユーザプログラムが格納される。システムプログラム１２６は、異常検知エンジン１３０および内部ＤＢ１４０を実現するためのプログラムも格納される。
【００５０】
ローカルネットワークコントローラ１１０は、ローカルネットワーク６を介した他の装置との間のデータの遣り取りを制御する。ＵＳＢコントローラ１１２は、ＵＳＢ接続を介してサポート装置３００との間のデータの遣り取りを制御する。
【００５１】
メモリカードインターフェイス１１４は、メモリカード１１６を着脱可能に構成されており、メモリカード１１６に対してデータを書き込み、メモリカード１１６から各種データ（ユーザプログラムやトレースデータなど）を読み出すことが可能になっている。
【００５２】
内部バスコントローラ１２２は、制御装置１００に搭載されるＩ／Ｏユニット１２４−１，１２４−２，…との間でデータを遣り取りするインターフェイスである。
【００５３】
フィールドバスコントローラ１１８は、第１フィールドバス２を介した他の装置との間のデータの遣り取りを制御する。同様に、フィールドバスコントローラ１２０は、第２フィールドバス４を介した他の装置との間のデータの遣り取りを制御する。
【００５４】
図２には、プロセッサ１０２がプログラムを実行することで必要な機能が提供される構成例を示したが、これらの提供される機能の一部または全部を、専用のハードウェア回路（例えば、ＡＳＩＣ（Application Specific Integrated Circuit）またはＦＰＧＡ（Field-Programmable Gate Array）など）を用いて実装してもよい。あるいは、制御装置１００の主要部を、汎用的なアーキテクチャに従うハードウェア（例えば、汎用パソコンをベースとした産業用パソコン）を用いて実現してもよい。この場合には、仮想化技術を用いて、用途の異なる複数のＯＳ（Operating System）を並列的に実行させるとともに、各ＯＳ上で必要なアプリケーションを実行させるようにしてもよい。
【００５５】
（ｂ２：解析設定装置２００のハードウェア構成例）
本実施の形態に従う解析設定装置２００は、一例として、汎用的なアーキテクチャに従うハードウェア（例えば、汎用パソコン）を用いてプログラムを実行することで実現される。
【００５６】
図３は、本実施の形態に従う異常検知システム１を構成する解析設定装置２００のハードウェア構成例を示すブロック図である。図３を参照して、解析設定装置２００は、ＣＰＵやＭＰＵなどのプロセッサ２０２と、ドライブ２０４と、主記憶装置２０６と、二次記憶装置２０８と、ＵＳＢコントローラ２１２と、ローカルネットワークコントローラ２１４と、入力部２１６と、表示部２１８とを含む。これらのコンポーネントはバス２２０を介して接続される。
【００５７】
プロセッサ２０２は、二次記憶装置２０８に格納された各種プログラムを読み出して、主記憶装置２０６に展開して実行することで、後述するような各種処理を実現する。
【００５８】
二次記憶装置２０８は、例えば、ＨＤＤ（Hard Disk Drive）やＳＳＤ（Solid State Drive）などで構成される。二次記憶装置２０８には、典型的には、データマイニングツール２５０と、設定ツール２６０とを含む各種プログラムが格納される。二次記憶装置２０８には、ＯＳおよび他の必要なプログラムがさらに格納されていてもよい。
【００５９】
ドライブ２０４は、記憶媒体２０５に対してデータを書き込み、記憶媒体２０５から各種データ（ユーザプログラム、トレースデータまたは時系列データなど）を読み出すことが可能になっている。記憶媒体２０５は、例えばコンピュータ読取可能なプログラムを非一過的に格納する記憶媒体２０５（例えば、ＤＶＤ（Digital Versatile Disc）などの光学記憶媒体）を含む。記憶媒体２０５から、その中に格納されたプログラムまたはデータが読み取られて二次記憶装置２０８などの内部の記憶領域にインストールされる。
【００６０】
解析設定装置２００で実行される各種プログラムは、コンピュータ読取可能な記憶媒体２０５を介してインストールされてもよいが、ネットワーク上のサーバ装置などからダウンロードする形でインストールするようにしてもよい。また、本実施の形態に従う解析設定装置２００が提供する機能は、ＯＳが提供するモジュールの一部を利用する形で実現される場合もある。
【００６１】
ＵＳＢコントローラ２１２は、他の装置との間のデータの遣り取りを制御する。ローカルネットワークコントローラ２１４は、任意ネットワークを介した他の装置との間のデータの遣り取りを制御する。
【００６２】
入力部２１６は、キーボードやマウスなどで構成され、ユーザ操作を受け付ける。表示部２１８は、ディスプレイ、各種インジケータなどで構成され、プロセッサ２０２からの処理結果などを出力する。解析設定装置２００には、プリンタが接続されてもよい。
【００６３】
図３には、プロセッサ２０２がプログラムを実行することで必要な機能が提供される構成例を示したが、これらの提供される機能の一部または全部を、専用のハードウェア回路（例えば、ＡＳＩＣまたはＦＰＧＡなど）を用いて実装してもよい。
【００６４】
（ｂ３：サポート装置３００のハードウェア構成例）
本実施の形態に従うサポート装置３００は、一例として、汎用的なアーキテクチャに従うハードウェア（例えば、汎用パソコン）を用いてプログラムを実行することで実現される。
【００６５】
図４は、本実施の形態に従う異常検知システム１を構成するサポート装置３００のハードウェア構成例を示すブロック図である。図４を参照して、サポート装置３００は、解析設定装置２００と同様のハードウェア構成を有している。
【００６６】
より具体的には、サポート装置３００は、ＣＰＵやＭＰＵなどのプロセッサ３０２と、ドライブ３０４と、主記憶装置３０６と、二次記憶装置３０８と、ＵＳＢコントローラ３１２と、ローカルネットワークコントローラ３１４と、入力部３１６と、表示部３１８とを含む。これらのコンポーネントはバス３２０を介して接続される。
【００６７】
プロセッサ３０２は、二次記憶装置３０８に格納された各種プログラムを読み出して、主記憶装置３０６に展開して実行することで、後述するような各種処理を実現する。
【００６８】
二次記憶装置３０８は、例えば、ＨＤＤやＳＳＤなどで構成される。二次記憶装置３０８には、典型的には、制御装置１００において実行されるユーザプログラムの作成、作成したプログラムのデバッグ、システム構成の定義、各種パラメータの設定などを行うための図示しない開発ツール３５０が格納される。二次記憶装置３０８には、ＯＳおよび他の必要なプログラムが格納されていてもよい。
【００６９】
ドライブ３０４は、記憶媒体３０５に対してデータを書き込み、記憶媒体３０５から各種データ（ユーザプログラム、トレースデータまたは時系列データなど）を読み出すことが可能になっている。記憶媒体３０５は、例えばコンピュータ読取可能なプログラムを非一過的に格納する記憶媒体３０５（例えば、ＤＶＤなどの光学記憶媒体）を含む。記憶媒体３０５から、その中に格納されたプログラムまたはデータが読み取られて二次記憶装置３０８などの内部の記憶領域にインストールされる。
【００７０】
サポート装置３００で実行される各種プログラムは、コンピュータ読取可能な記憶媒体３０５を介してインストールされてもよいが、ネットワーク上のサーバ装置などからダウンロードする形でインストールするようにしてもよい。また、本実施の形態に従うサポート装置３００が提供する機能は、ＯＳが提供するモジュールの一部を利用する形で実現される場合もある。
【００７１】
ＵＳＢコントローラ３１２は、ＵＳＢ接続を介して制御装置１００との間のデータの遣り取りを制御する。ローカルネットワークコントローラ３１４は、任意ネットワークを介した他の装置との間のデータの遣り取りを制御する。
【００７２】
入力部３１６は、キーボードやマウスなどで構成され、ユーザ操作を受け付ける。表示部３１８は、ディスプレイ、各種インジケータなどで構成され、プロセッサ３０２からの処理結果などを出力する。サポート装置３００には、プリンタが接続されてもよい。
【００７３】
図４には、プロセッサ３０２がプログラムを実行することで必要な機能が提供される構成例を示したが、これらの提供される機能の一部または全部を、専用のハードウェア回路（例えば、ＡＳＩＣまたはＦＰＧＡなど）を用いて実装してもよい。
【００７４】
＜Ｃ．異常検知処理＞
次に、本実施の形態に従う異常検知システム１で実行される異常検知処理について説明する。
【００７５】
図５は、本実施の形態に従う異常検知システム１で実行される異常検知処理を実現するための構成例を示すブロック図である。図５を参照して、制御装置１００は、異常検知処理に係る構成として、変数管理部１６０と、特徴抽出部１４２と、機械学習処理部１４４と、結果判定部１４６とを含む。
【００７６】
変数管理部１６０は、制御対象に現れる状態値（入力値）を予め定められた制御周期毎に収集して、内部状態値であるデバイス変数１６２の値を更新する。なお、本発明は「変数」を用いて値を参照する形態に限られることなく、各値を格納するメモリの物理アドレスなどを直接参照する形態などにも適用可能である。
【００７７】
特徴抽出部１４２は、監視対象に対応する１または複数の状態値（入力値）から１または複数の特徴量１５０を算出する。より具体的には、特徴抽出部１４２は、予め設定された設定情報１５８に従って、指定された１または複数のデバイス変数１６２（状態値）が示す値（あるいは、単位区間における値の時間的変化）に基づいて、予め定められた算出手順に従って１または複数の特徴量１５０（例えば、フレームに亘る平均値、最大値、最小値、分散など）を周期的またはイベント毎に算出する。このように、設定情報１５８は、収集すべき状態値の指定と、収集された状態値から算出される特徴量の指定とを含む。
【００７８】
特徴抽出部１４２が特徴量１５０を算出するために用いる単位区間を「フレーム」と称することもある。本明細書において、「フレーム」は、監視対象に何らかの異常が発生しているか否かを判定する単位区間を意味する。すなわち、監視対象に何らかの異常が発生しているか否かの判定は、「フレーム」毎に行われることになる。本実施の形態においては、「フレーム」は、ユーザが任意に設定する状態値に基づいて決定されるようにしてもよい。
【００７９】
機械学習処理部１４４は、学習モデル１５２を参照して、特徴抽出部１４２により算出される１または複数の特徴量１５０に基づいて、監視対象に何らかの異常が発生している可能性を示す値であるスコア１５４を算出する。
【００８０】
一例として、機械学習処理部１４４は、異常検知のアルゴリズムとして、超空間上における値群に対する入力値の外れ度合いに基づいて、当該入力値に対応するスコアを算出する方法を採用してもよい。外れ度合いに基づく異常検知の手法としては、各点から値群までの最短距離に基づいて異常を検知する手法（ｋ近傍法）、値群を含むクラスタを含めて距離を評価する局所外れ値因子（ＬｏＦ：local outlier factor）法、パス長さから算出されるスコアを用いるｉＦｏｒｅｓｔ（isolation forest）法などが知られている。
【００８１】
学習モデル１５２が正常時の特徴量から構成される場合には、学習モデル１５２からの外れ度合い（すなわち、スコア）が大きいほど、監視対象に何らかの異常が発生している可能性が高いと判定できる。一方、学習モデル１５２が異常時の特徴量から構成される場合には、学習モデル１５２からの外れ度合い（すなわち、スコア）が小さいほど、監視対象に何らかの異常が発生している可能性が高いと判定できる。学習モデル１５２は、公知のデータマイニングの手法により決定することができる。
【００８２】
結果判定部１４６は、機械学習処理部１４４により算出されるスコア１５４に基づいて、監視対象に何らかの異常が発生しているか否かを示す判定結果１７０を生成する。判定条件１５６は、異常であるか否かを判定するための条件を含み、サポート装置３００により予め設定されてもよい。典型的には、判定条件１５６は、スコア１５４に対して設定される、監視対象に何らかの異常が発生している可能性が高いことを示す、しきい値またはしきい範囲などを含む。判定結果１７０は、監視対象に何らの異常も発生していない状態である「ＯＫ」、および、監視対象に何らかの異常が発生している状態である「ＮＧ」のいずれかであってもよい。
【００８３】
以上のような構成を採用することで、制御対象に含まれる任意の監視対象について、発生し得る何らかの異常の発生を検知できる。なお、特徴抽出部１４２、機械学習処理部１４４および結果判定部１４６をライブラリ化してもよい。この場合には、設定情報１５８、学習モデル１５２および判定条件１５６をライブラリに設定することで、専門知識の乏しいユーザであっても、異常検知処理を容易に実装できる。
【００８４】
＜Ｄ．異常検知処理に係る処理＞
本実施の形態に従う異常検知処理は、データ収集フェーズ、データ解析フェーズ、データ活用フェーズの３つのフェーズを有している。以下、各フェーズについて説明する。
【００８５】
（ｄ１：データ収集フェーズ）
データ収集フェーズは、異常検知処理に係る各種設定を行うためのデータを収集するフェーズである。データの収集自体は、制御装置１００において実行されるものの、データの収集に係る各種設定、および、収集されたデータの利用は、解析設定装置２００において実行される。
【００８６】
図６は、本実施の形態に従う異常検知システム１におけるデータ収集フェーズでの処理を説明するための図である。図６を参照して、ユーザ（経験および専門知識を有している専門家）は、解析設定装置２００の設定ツール２６０を用いて、設定対象の制御装置１００に向けられた、変数定義１９０および収集変数指定１９２を作成し、設定対象の制御装置１００に送信する。
【００８７】
変数定義１９０は、制御装置１００が収集可能な状態値あるいは入力値を参照するための変数名などの定義を含む。収集変数指定１９２は、データ収集フェーズにおいて制御装置１００にて収集される対象となる状態値あるいは入力値の指定を含む。収集変数指定１９２では、収集対象となる状態値あるいは入力値は、変数定義１９０において定義された変数名などを用いて特定されてもよい。
【００８８】
制御装置１００は、異常検知処理を実現するための異常検知エンジン１３０を含む。異常検知エンジン１３０は、プロセスとして実装され、異常検知ファンクションブロック１３４（以下、「異常検知ＦＢ」と記載する場合もある。）を含むユーザプログラム１３２が予め定められた制御周期毎にサイクリック実行される。異常検知ファンクションブロック１３４は、異常検知処理に対応する命令ブロックである。このように、制御装置１００は、制御対象を制御するためのユーザプログラム１３２を実行する。異常検知ファンクションブロック１３４の具体例については後述する。
【００８９】
異常検知ファンクションブロック１３４が実行されることで、図５に示すような異常検知処理が実行される。併せて、データサンプリング１３６のプロシージャが実行される。データサンプリング１３６は、解析設定装置２００からの指定（収集変数指定１９２）に従って、制御対象から１または複数の状態値を収集する。データサンプリング１３６のプロシージャは、典型的には、ユーザプログラム１３２において、異常検知ファンクションブロック１３４に対して特定のパラメータを指定することで、有効化される。
【００９０】
内部ＤＢ１４０は、生データ１８０と、フィルタデータ１８２と、スコアデータ１８４とを格納可能になっている。生データ１８０と、フィルタデータ１８２と、スコアデータ１８４とは、いずれも時系列データである。生データ１８０は、収集された状態値または入力値のそのままの値が時系列に並べられたデータである。フィルタデータ１８２は、後述するような設定に従って、生データ１８０をフィルタリングした結果が時系列に並べられたデータである。スコアデータ１８４は、異常検知処理によって算出されたスコアが時系列に並べられたデータである。収集フェーズにおいては、異常検知処理が有効化されていないことが想定されているので、スコアデータ１８４は生成されない場合も多い。
【００９１】
なお、本実施の形態に従う異常検知処理においては、単位区間である「フレーム」毎に１または複数のスコアを算出することができる。このようなフレームを規定するための情報を収集変数指定１９２に含めるようにしてもよい。具体的には、フレームを規定する１または複数の変数名、および、各変数についての条件（例えば、ＴＲＵＥおよびＦＡＬＳＥのいずれか）を収集変数指定１９２に規定してもよい。また、フレームを細分化した「サブフレーム」を規定するための条件を含めるようにしてもよい。さらに、異常検知処理を実行するための条件として「イベント」を規定してもよい。この場合には、「イベント」の定義を収集変数指定１９２に含めてもよい。上述したような、フレーム、サブフレーム、イベントの発生および終了などは、ユーザプログラム１３２に含まれる命令に従って判定されてもよい。
【００９２】
データサンプリング１３６のプロシージャは、内部ＤＢ１４０に含まれるデータ格納サービス１４８に対して、収集変数指定１９２に従って収集したデータ（状態値または入力値）の格納を要求する。データ格納サービス１４８は、データサンプリング１３６からの要求に応答して、収集変数指定１９２に従って収集した値が時系列に並べられたデータである、解析用データ１８６を格納する。
【００９３】
さらに、データ格納サービス１４８は、格納した解析用データ１８６の全部または一部を、解析設定装置２００などの外部装置から参照可能な解析用データ１８８として生成する。解析設定装置２００などの外部装置は、制御装置１００のデータ送信サービス１３８を介して、解析用データ１８８へアクセスできる。
【００９４】
図６に示す構成例においては、解析設定装置２００のデータ収集サービス２７０が制御装置１００へアクセスすると、制御装置１００のデータ送信サービス１３８が解析用データ１８８を解析設定装置２００へ出力（エクスポート）する。
【００９５】
解析設定装置２００では、データ収集サービス２７０によって収集された解析用データ１８８を、任意の解析アプリケーション２８０を用いて解析する。解析アプリケーション２８０としては、解析専用のアプリケーションであってもよいし、任意の表計算アプリケーションであってもよい。
【００９６】
ユーザ（経験および専門知識を有している専門家）は、解析アプリケーション２８０を用いて得られた解析結果を参照しつつ、試行錯誤的に、変数定義１９０および収集変数指定１９２を再作成または更新するようにしてもよい。
【００９７】
図６に示すようなデータ収集フェーズによって、設定対象の制御装置１００において実行される異常検知処理に係る最適な設定を見つけることができる。また、制御装置１００のユーザ（制御装置１００の保全員や制御装置１００を含む設備の運転員）は、ノウハウなどの重要情報の開示を極力制限しつつ、異常検知処理の最適な設定を見つけるために必要なデータのみを外部に開示できる。
【００９８】
（ｄ２：データ解析フェーズ）
データ解析フェーズは、データ収集フェーズにおいて収集されたデータを解析して、異常検知処理に係る最適な設定を見つけるフェーズである。
【００９９】
図７は、本実施の形態に従う異常検知システム１におけるデータ解析フェーズでの処理を説明するための図である。図７を参照して、ユーザ（経験および専門知識を有している専門家）は、解析設定装置２００のデータマイニングツール２５０を用いて、設定対象の制御装置１００により収集された解析用データ１８８（１または複数の状態値を含む）を解析し、異常検知設定２５２を生成する。
【０１００】
データマイニングツール２５０は、異常検知処理に適した状態値および特徴量の種類（平均値、最大値、最小値、分散など）の決定を支援する。
【０１０１】
異常検知設定２５２は、学習済みデータ、特徴量パラメータ、スコアパラメータを含む。学習済みデータは、学習モデル１５２を構成するためのデータであり、正常時あるいは異常時に収集された生データなどから算出される特徴量を含む。特徴量パラメータは、算出されるべき特徴量を規定するパラメータである。スコアパラメータは、スコア１５４（監視対象に何らかの異常が発生している可能性を示す値）の算出方法などを規定するパラメータである。
【０１０２】
設定ツール２６０は、解析手段であるデータマイニングツール２５０による解析結果に基づいて、制御装置１００の異常検知エンジン１３０の動作を設定する。より具体的には、設定ツール２６０は、データマイニングツール２５０により生成された異常検知設定２５２に基づいて、設定対象の制御装置１００に与えるべき設定（学習モデル１５２、判定条件１５６、設定情報１５８）を生成する。この設定は、制御装置１００の異常検知エンジン１３０の動作に係るものである。
【０１０３】
設定ツール２６０は、制御装置１００とのインターフェイスとしても機能し、生成された設定を制御装置１００へ送信することができる。そして、制御装置１００の異常検知エンジン１３０は、解析設定装置２００が解析用データ１８８を解析した結果に基づいて決定された設定を受けて、当該設定に従って動作するようになる。
【０１０４】
（ｄ３：データ活用フェーズ）
データ活用フェーズは、制御装置１００において異常検知処理を運用中に得られるデータを活用するフェーズである。
【０１０５】
図８は、本実施の形態に従う異常検知システム１におけるデータ活用フェーズでの処理を説明するための図である。図８を参照して、制御装置１００の異常検知エンジン１３０では、特徴量を算出する特徴量算出処理１３３と、スコアを算出するスコア算出処理１３５とが制御周期毎にサイクリック実行される。併せて、状態値または入力値を収集するデータサンプリング１３６、および、収集した状態値または入力値を内部ＤＢ１４０へ書き込むデータ書込処理１３７もサイクリック実行される。これらの処理は、システム定義変数１２８の値に従って実行される。
【０１０６】
データサンプリング１３６によって、サイクル（制御周期）毎にそれぞれの生データが生成される。特徴量算出処理１３３によって、フレーム毎にそれぞれの特徴量が生成される。スコア算出処理１３５によって、フレーム毎にそれぞれのスコアが生成される。
【０１０７】
データ格納サービス１４８は、データサンプリング１３６からの生データ、特徴量算出処理１３３からの特徴量、および、スコア算出処理１３５からのスコアを受けて、生データ１８０、フィルタデータ１８２、スコアデータ１８４、解析用データ１８６を生成する。
【０１０８】
内部ＤＢ１４０は、フィルタデータ１８２、スコアデータ１８４、解析用データ１８６の全部または一部を外部アクセス可能に公開する。公開方法は、制御装置１００に対する設定に応じて選択可能であってもよい。公開方法としては、例えば、Ｗｅｂアクセス（ｈｔｔｐサーバ）、ＦＴＰアクセス、ＳＤカードなどの記憶媒体などが想定される。これらの外部公開されるデータを用いて、制御装置１００において運用される異常検知処理の適否や見直しなどを検討できる。
【０１０９】
このように、異常検知エンジン１３０は、データ活用フェーズにおいて、制御対象に含まれる監視対象に何らかの異常が発生しているか否かを判定する処理において収集されたデータ（フィルタデータ１８２、スコアデータ１８４、解析用データ１８６など）を外部アクセス可能に公開する。
【０１１０】
＜Ｅ．ファンクションブロック例＞
次に、上述したような各フェーズに対応可能な異常検知ファンクションブロック１３４（図６参照）の一例について説明する。
【０１１１】
図９は、本実施の形態に従う異常検知システム１で実行されるユーザプログラムに記述可能な異常検知ファンクションブロック１３４の一例を示す図である。図９に示す異常検知ファンクションブロック１３４は、ボールねじの機構を有する装置に生じ得る異常を検知するためのものである。
【０１１２】
異常検知ファンクションブロック１３４は、入力として、軸指定１３４０と、有効化フラグ１３４２と、軸指定出力１３４１と、有効化フラグ出力１３４３とを含む。軸指定１３４０には、異常検知の対象となる軸を示す変数が指定され、有効化フラグ１３４２には、異常検知処理を有効化するためのフラグを示す変数が指定される。軸指定出力１３４１からは、軸指定１３４０に指定された変数の情報が出力され、有効化フラグ出力１３４３からは、有効化フラグ１３４２に指定されたフラグの値が出力される。
【０１１３】
異常検知ファンクションブロック１３４は、上述した各フェーズに対応する処理を実現するための入力として、リモートモニタ指定１３４４と、フェーズ指定１３４５と、出力モード指定１３４６とを含む。すなわち、異常検知ファンクションブロック１３４は、入力として、ユーザプログラムに規定される設定を含む。
【０１１４】
リモートモニタ指定１３４４は、制御装置１００の外部からの操作によるモードの変更を許可するか否かの指定を受け付ける。リモートモニタ指定１３４４にＴＲＵＥを設定した場合には、フェーズ指定１３４５に指定されるフェーズが外部からの操作によって変更可能になる。これに対して、リモートモニタ指定１３４４にＦＡＬＳＥを設定した場合には、外部からの操作が禁止される。
【０１１５】
なお、セキュリティの観点から、リモートモニタ指定１３４４に設定される値をＴＲＵＥに変更する際の制限を設けてもよい。具体的には、リモートモニタ指定１３４４をＴＲＵＥからＦＡＬＳＥに変更する操作は制限なく実行できるのに対して、ＦＡＬＳＥからＴＲＵＥに変更する操作は所定権限を有するユーザのみが実行できるようにしてもよい。このような制約を設けることで、制御装置１００に対する外部操作を可能な限り制限して、セキュリティレベルを高めることができる。
【０１１６】
フェーズ指定１３４５は、対象の異常検知処理についてのフェーズの指定を受け付ける。具体的には、フェーズ指定１３４５には、上述したデータ収集フェーズ、データ解析フェーズ、データ活用フェーズのうちいずれかのフェーズが指定される。但し、データ解析フェーズについては、解析設定装置２００において処理が実行されるので、制御装置１００において特別な処理が実行されなくてもよい。このように、ユーザプログラムに規定されるフェーズ指定１３４５などの設定に応じて、異常検知エンジン１３０やデータサンプリング１３６などの動作が変更される。すなわち、データサンプリング１３６は、ユーザプログラムに規定されるフェーズ指定１３４５の設定が予め定められた値（この場合には、「データ収集フェーズ」を指定する値）である場合において、１または複数の状態値を収集する。
【０１１７】
フェーズ指定１３４５にデータ収集フェーズが指定されると、制御装置１００は、解析設定装置２００から送信された収集変数指定１９２に従って、指定された変数の時系列データを収集し、解析用データ１８８を生成する（図６参照）。
【０１１８】
一方、フェーズ指定１３４５にデータ活用フェーズが指定されると、制御装置１００は、異常検知処理を実行するとともに、フィルタデータ１８２、スコアデータ１８４、解析用データ１８６の全部または一部を外部アクセス可能に公開する（図８参照）。解析用データ１８６は、フレーム毎に算出される特徴量およびスコアを含む。
【０１１９】
出力モード指定１３４６は、生成されるデータの出力（公開）方法の指定を受け付ける。具体的には、上述したような、Ｗｅｂアクセス（ｈｔｔｐサーバ）、ＦＴＰアクセス、ＳＤカードのいずれかが指定される。
【０１２０】
なお、異常検知ファンクションブロック１３４を特定する情報（例えば、ファンクションブロック名）を出力するデータのファイル名や属性情報に含ませることによって、いずれの異常検知ファンクションブロック１３４から出力されたデータであるかを一意に特定できる。
【０１２１】
さらに、制御装置１００のメーカあるいは制御装置１００を組み込んだ装置のメーカが用意するサーバにデータを自動的に送信する方法などを指定できるようにしてもよい。例えば、メーカにより用意されたＷｅｂサーバに対してデータを送信する方法（ｈｔｔｐクライエント）、メーカにより用意されたＦＴＰサーバに対してデータを送信する方法（ｆｔｐクライエント）、電子メールによりデータを送信する方法などが想定される。この場合には、データの出力（公開）先についても具体的に特定できるようにしてもよい。
【０１２２】
異常検知ファンクションブロック１３４の入力の設定は、制御装置１００のユーザ（制御装置１００の保全員や制御装置１００を含む設備の運転員）がサポート装置３００を操作することで、任意に変更可能になっている。そのため、制御装置１００のユーザから見れば、設定や調整が必要な異常検知処理のみを選択して、外部の専門家に必要なデータのみを送信でき、セキュリティレベルを担保しつつ、最適な異常検知処理を実現できる。
【０１２３】
なお、リモートモニタ指定１３４４をＴＲＵＥに設定した場合には、外部からの操作の履歴を制御装置１００にログとして格納できるようにしてもよい。
【０１２４】
＜Ｆ．処理手順＞
次に、本実施の形態に従う異常検知システム１における典型的な処理手順について説明する。
【０１２５】
図１０は、本実施の形態に従う異常検知システム１における処理手順の一例を示すシーケンス図である。図１０には、データ収集フェーズ、データ解析フェーズ、データ活用フェーズの３つのフェーズからなる処理手順を示す。
【０１２６】
図１０を参照して、初期手順として、制御装置１００のユーザ（制御装置１００の保全員や制御装置１００を含む設備の運転員）は、サポート装置３００を操作してユーザプログラムを作成する（シーケンスＳＱ２）。このユーザプログラムには、異常検知ファンクションブロック１３４が含まれる。なお、シーケンスＳＱ２においては、既存のユーザプログラムに異常検知ファンクションブロック１３４のコードを組み込むような場合もある。そして、制御装置１００のユーザは、作成したユーザプログラムを制御装置１００へ送信する（シーケンスＳＱ４）。
【０１２７】
さらに、制御装置１００のユーザは、サポート装置３００を操作して（シーケンスＳＱ６）、ユーザプログラムに含まれる異常検知ファンクションブロック１３４のリモートモニタ指定１３４４の「ＴＲＵＥ」を設定し（シーケンスＳＱ８）、フェーズ指定１３４５に「データ収集フェーズ」を設定する（シーケンスＳＱ１０）。この一連の操作によって、制御装置１００の外部からの操作が可能になる。
【０１２８】
一方、解析設定装置２００のユーザ（経験および専門知識を有している専門家）は、解析設定装置２００を操作して、データ収集用の設定（変数定義１９０および収集変数指定１９２）を決定する（シーケンスＳＱ１２）。そして、決定された変数定義１９０および収集変数指定１９２は、制御装置１００へ送信される（シーケンスＳＱ１４）。すると、制御装置１００においては、指定されたデータの収集が開始される（シーケンスＳＱ１６）。
【０１２９】
解析設定装置２００は、制御装置１００において収集された解析用データを取得する（シーケンスＳＱ１８）。解析設定装置２００のユーザは、取得した解析用データを用いて解析操作を行う（シーケンスＳＱ２０）。解析操作によって決定された設定（設定情報１５８、学習モデル１５２および判定条件１５６）は、解析設定装置２００から制御装置１００へ送信される（シーケンスＳＱ２２）。
【０１３０】
一方、制御装置１００のユーザは、サポート装置３００を操作して（シーケンスＳＱ２４）、ユーザプログラムに含まれる異常検知ファンクションブロック１３４のフェーズ指定１３４５に「データ活用フェーズ」を設定する（シーケンスＳＱ２６）。この一連の操作によって、制御装置１００では、異常検知処理の運用が開始される。
【０１３１】
制御装置１００は、解析設定装置２００からの設定に従って、異常検知処理を実行する（シーケンスＳＱ２８）。異常検知処理の実行に伴って生成される、解析用データ１８６、フィルタデータ１８２およびスコアデータ１８４は、解析設定装置２００へ送信可能になる（シーケンスＳＱ３０）。解析設定装置２００のユーザは、必要に応じて、制御装置１００で運用される異常検知処理の適否や見直しなどを検討する。
【０１３２】
以上のような手順によって、制御装置１００において実行される異常検知処理に係る最適な設定を決定できる。
【０１３３】
＜Ｇ．情報管理機能＞
次に、本実施の形態に従う異常検知システム１は情報管理機能を有していてもよい。情報管理機能は、制御装置１００に収集された情報の一部を秘匿することができる機能である。情報管理機能の具体的な処理として、例えば、収集された生データのうち、特定の区間の生データのみを公開できるようにしてもよい（公開する区間を限定する）。情報管理機能の具体的な別の処理として、収集された生データをフィルタリングして得られたフィルタデータ１８２のみを公開するようにしてもよい。
【０１３４】
図１１は、本実施の形態に従う異常検知システム１が提供する情報管理機能の一例を説明するための図である。図１１に示すユーザインターフェイス画面３６０は、典型的には、サポート装置３００が提供する。例えば、サポート装置３００で実行されるユーザプログラムのエディタ上で、対応する異常検知ファンクションブロック１３４を選択すると、ユーザインターフェイス画面３６０が表示されるようにしてもよい。
【０１３５】
図１１を参照して、ユーザインターフェイス画面３６０は、収集された生データを示す時間波形３６２を含む。時間波形３６２に対して、抽出区間の開始位置３６４および終了位置３６６が設定可能になっている。ユーザは、ポインタ３６８を操作することで、開始位置３６４および終了位置３６６を任意の位置に配置する。典型的には、何らかの異常が発生した部分を抽出区間として設定できる。これらの操作によって、生データのうち抽出される部分が決定される。
【０１３６】
制御装置１００のユーザは、抽出区間を設定すると、フィルタダイアログ３７０を操作して、任意のフィルタレベル（基本的には、ローパスフィルタ）を選択することができる。時間の粒度に応じて、複数のフィルタレベルが選択可能になっていてもよい。なお、フィルタをかけず生データのまま出力することも可能である。
【０１３７】
制御装置１００のユーザは、出力先ダイアログ３７２を操作して、任意の出力先（公開先）を選択することができる。そして、出力ボタン３７４が選択されると、選択された出力先にデータが出力（公開）される。
【０１３８】
このように、制御装置１００は、データサンプリングにより収集された１または複数の状態値のうち、ユーザから明示的に許可された情報のみを外部アクセス可能に公開することができる。また、外部アクセス可能に公開される情報は、データサンプリングにより収集された１または複数の状態値の時系列データをフィルタリングした結果であるフィルタデータ１８２を含んでいてもよい。これによって、制御装置１００のユーザは、異常検知処理を実装するのに必要な情報のみを選択して、公開することができる。
【０１３９】
なお、公開先に応じて、フィルタレベルを自動的に決定するようにしてもよい。
図１２は、本実施の形態に従う異常検知システム１が提供するフィルタレベルの自動選択機能の一例を説明するための図である。図１２を参照して、フィルタレベル３８０には、公開先に応じて、フィルタレベルを異ならせることが規定されている。例えば、制御装置１００のメーカに制御装置１００が収集した情報を出力するにあたっては、「分オーダ」のローパスフィルタをかけて得られるフィルタデータ１８２が出力されるようになる。これに対して、内部の公開用には、フィルタ無しの生データが出力されるようになる。
【０１４０】
このように公開先に応じてフィルタレベルの強度を異ならせることで、情報の公開先に応じたセキュリティレベルを担保できる。
【０１４１】
＜Ｈ．付記＞
上述したような本実施の形態は、以下のような技術思想を含む。
［構成１］
制御対象を制御するための制御システム（１）であって、
制御装置（１００）と、
前記制御装置に接続可能な解析設定装置（２００）とを備え、
前記制御装置は、
制御対象から収集される１または複数の状態値に基づいて、前記制御対象に含まれる監視対象に何らかの異常が発生しているか否かを判定する異常検知手段（１３０）と、
前記解析設定装置からの指定に従って、前記制御対象から１または複数の状態値を収集する収集手段（１３６）とを含み、
前記解析設定装置は、
前記制御装置により収集された１または複数の状態値を取得して解析する解析手段（２５０）と、
前記解析手段による解析結果に基づいて、前記制御装置の前記異常検知手段の動作を設定する設定手段（２６０）とを含む、制御システム。
［構成２］
前記制御装置は、前記制御対象を制御するためのユーザプログラム（１３２）を実行するように構成されており、
前記異常検知手段および前記収集手段は、前記ユーザプログラムに規定される設定に応じて動作が変更される、構成１に記載の制御システム。
［構成３］
前記収集手段は、前記ユーザプログラムに規定される設定が予め定められた値である場合において、前記１または複数の状態値を収集する、構成２に記載の制御システム。
［構成４］
前記ユーザプログラムは、前記異常検知手段に対応する命令ブロック（１３４）を含み、
前記命令ブロックは、入力として、前記ユーザプログラムに規定される設定（１３４４，１３４５）を含む、構成３に記載の制御システム。
［構成５］
前記制御装置の前記異常検知手段の動作に係る設定（１５２，１５６，１５８）は、収集すべき状態値の指定と、収集された状態値から算出される特徴量の指定と、異常であるか否かを判定するための判定条件とを含む、構成１〜４のいずれか１項に記載の制御システム。
［構成６］
前記異常検知手段は、前記制御対象に含まれる監視対象に何らかの異常が発生しているか否かを判定する処理において収集されたデータ（１８２，１８４，１８６）を外部アクセス可能に公開する、構成１〜５のいずれか１項に記載の制御システム。
［構成７］
前記制御装置は、前記収集手段が収集した１または複数の状態値のうち、ユーザから明示的に許可された情報のみを外部アクセス可能に公開する、構成１〜６のいずれか１項に記載の制御システム。
［構成８］
前記外部アクセス可能に公開される情報は、前記収集手段が収集した１または複数の状態値の時系列データをフィルタリングした結果（１８２）を含む、構成７に記載の制御システム。
［構成９］
制御対象を制御するための制御装置（１００）であって、
制御対象から収集される１または複数の状態値に基づいて、前記制御対象に含まれる監視対象に何らかの異常が発生しているか否かを判定する異常検知手段（１３０）と、
外部装置からの指定に従って、前記制御対象から１または複数の状態値を収集する収集手段（１３６）とを備え、
前記異常検知手段は、前記収集手段が収集した１または複数の状態値を外部装置が解析した結果に基づいて決定された設定（１５２，１５６，１５８）を受けて、当該設定に従って動作する、制御装置。
［構成１０］
制御対象を制御するための制御装置（１００）で実行される制御プログラム（１２６）であって、前記制御プログラムは前記制御装置に、
制御対象から収集される１または複数の状態値に基づいて、前記制御対象に含まれる監視対象に何らかの異常が発生しているか否かを判定するステップ（ＳＱ２８）と、
外部装置からの指定に従って、前記制御対象から１または複数の状態値を収集するステップ（ＳＱ１６）とを実行させ、
前記判定するステップは、前記収集された１または複数の状態値を外部装置が解析した結果に基づいて決定された設定を受けて、当該設定に従って動作するステップ（ＳＱ２２）を含む、制御プログラム。
【０１４２】
＜Ｉ．利点＞
本実施の形態に従う異常検知システムにおいては、制御装置のユーザは、異常検知処理に関して経験および専門知識などを有していない場合であっても、必要なデータが解析設定装置へ送信され、経験および専門知識を有している専門家がその送信されたデータを解析して、制御装置に対して適切な設定を行うことができる。そのため、制御装置または制御対象に応じて必要な異常検知処理を容易に実装できる。また、経験および専門知識を有している専門家は、制御装置が設置されている現場に赴くことなく、制御装置から送信されるデータを解析できるので、作業効率を高めることができる。
【０１４３】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した説明ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【０１４４】
１  異常検知システム、２  第１フィールドバス、４  第２フィールドバス、６  ローカルネットワーク、８  インターネット、１０  フィールド装置群、１２  リモートＩ／Ｏ装置、１４  リレー群、１６，１２４  Ｉ／Ｏユニット、１８  画像センサ、２０  カメラ、２２  サーボドライバ、２４  サーボモータ、１００  制御装置、１０２，２０２，３０２  プロセッサ、１０４  チップセット、１０６，２０６，３０６  主記憶装置、１０８，２０８，３０８  二次記憶装置、１１０，２１４，３１４  ローカルネットワークコントローラ、１１２，２１２，３１２  ＵＳＢコントローラ、１１４  メモリカードインターフェイス、１１６  メモリカード、１１８，１２０  フィールドバスコントローラ、１２２  内部バスコントローラ、１２６  システムプログラム、１２８  システム定義変数、１３０  異常検知エンジン、１３２  ユーザプログラム、１３３  特徴量算出処理、１３４  異常検知ファンクションブロック、１３５  スコア算出処理、１３６  データサンプリング、１３７  データ書込処理、１３８  データ送信サービス、１４０  内部ＤＢ、１４２  特徴抽出部、１４４  機械学習処理部、１４６  結果判定部、１４８  データ格納サービス、１５０  特徴量、１５２  学習モデル、１５４  スコア、１５６  判定条件、１５８  設定情報、１６０  変数管理部、１６２  デバイス変数、１７０  判定結果、１８０  生データ、１８２  フィルタデータ、１８４  スコアデータ、１８６，１８８  解析用データ、１９０  変数定義、１９２  収集変数指定、２００  解析設定装置、２０４，３０４  ドライブ、２０５，３０５  記憶媒体、２１６，３１６  入力部、２１８，３１８  表示部、２２０，３２０  バス、２５０  データマイニングツール、２５２  異常検知設定、２６０  設定ツール、２７０  データ収集サービス、２８０  解析アプリケーション、３００  サポート装置、３５０  開発ツール、３６０  ユーザインターフェイス画面、３６２  時間波形、３６４  開始位置、３６６  終了位置、３６８  ポインタ、３７０  フィルタダイアログ、３７２  出力先ダイアログ、３７４  出力ボタン、３８０  フィルタレベル、４００  表示装置、１３４０  軸指定、１３４１  軸指定出力、１３４２  有効化フラグ、１３４３  有効化フラグ出力、１３４４  リモートモニタ指定、１３４５  フェーズ指定、１３４６  出力モード指定。
【図１】
2020194413.tif 000003
【図２】
2020194413.tif 000004
【図３】
2020194413.tif 000005
【図４】
2020194413.tif 000006
【図５】
2020194413.tif 000007
【図６】
2020194413.tif 000008
【図７】
2020194413.tif 000009
【図８】
2020194413.tif 000010
【図９】
2020194413.tif 000011
【図１０】
2020194413.tif 000012
【図１１】
2020194413.tif 000013
【図１２】
2020194413.tif 000014