(57)【要約】      （修正有）【課題】制御装置側で信頼性のある機械学習による異常検知を実施することができる環境を提供する。【解決手段】制御装置１００は、制御対象の制御にかかる演算処理部１５０と、制御対象に関連付けられたデータの収集処理を実行する収集部と、制御対象の状態の監視処理を実行する監視処理部と、を備え、監視処理部は、収集されるデータから、特徴量を生成する特徴量生成処理を実行する特徴量生成部１７４と、生成される特徴量と、機械学習の結果に基づき設定される制御対象に生じる異常の検知に適した異常検知パラメータ１３６とを用いて、制御対象に生じる異常を検知する異常検知処理を実行する検知部１４０とを備える。情報処理装置２００は、制御装置からの制御対象に関連付けられたデータを用いて、監視処理のエミュレーション２２６０を実行する。【選択図】図４
2019159697.tif 000002
【特許請求の範囲】
【請求項１】
制御対象を制御する制御装置と、
前記制御装置とデータ交換可能な情報処理装置とを備える制御システムであって、
前記制御装置は、
前記制御対象に係るシーケンス制御およびモーション制御の制御演算を実行する演算処理手段と、
前記制御対象に関連付けられたデータの収集処理を実行する収集手段と、
前記制御対象の状態の監視処理を実行する監視処理手段と、を備え、
前記監視処理手段は、
前記収集手段が収集するデータから、特徴量を生成する特徴量生成処理を実行する特徴量生成手段と、
前記特徴量生成手段が生成する特徴量と、機械学習の結果に基づき設定される前記制御対象に生じる異常の検知に適した異常検知パラメータとを用いて、前記制御対象に生じる異常を検知する異常検知処理を実行する検知手段と、を備え、
前記情報処理装置は、
前記制御装置からの前記制御対象に関連付けられたデータを用いて、前記監視処理手段による監視処理のエミュレーションを実行する監視エミュレータを備える、制御システム。
【請求項２】
前記制御装置は、
前記収集手段が収集する前記制御対象に関連付けられたデータを時系列に格納するデータベースを、さらに備え、
前記情報処理装置の前記監視エミュレータが用いる前記制御対象に関連付けられたデータは、前記制御装置の前記データベースのデータを含む、請求項１に記載の制御システム。
【請求項３】
前記情報処理装置は、
前記監視処理のエミュレーションの結果に基づき、前記制御装置に保持される前記異常検知パラメータは、前記制御対象に生じる異常の検知に適しているかの妥当性を評価する手段をさらに備える、請求項１または２に記載の制御システム。
【請求項４】
前記制御装置は、
前記収集手段によるデータの収集および前記演算処理手段による制御演算を周期実行し、
前記周期実行において、前記監視処理手段による前記監視処理に比較して、前記収集手段によるデータの収集および前記演算処理手段による制御演算を高い優先度で実行させる周期実行処理を実行する実行管理手段、をさらに備え、
前記情報処理装置は、
前記実行管理手段による前記周期実行処理をエミュレーションする周期実行エミュレータを備え、
前記周期実行エミュレータによる周期実行処理のエミュレーションにおいては、前記監視エミュレータによる監視処理のエミュレーションが実行される、請求項１から３のいずれか１項に記載の制御システム。
【請求項５】
前記情報処理装置は、
前記周期実行処理のエミュレーションの結果に基づき、前記制御装置に保持される前記異常検知パラメータは、前記制御対象に生じる異常の検知に適しているかの妥当性を評価する手段をさらに備える、請求項４に記載の制御システム。
【請求項６】
前記周期実行処理のエミュレーションの結果に基づく前記妥当性の評価は、前記周期実行処理のエミュレーションにおける前記監視処理のエミュレーションにかかる時間と前記周期の長さの比較の結果に基づく当該妥当性の評価を含む、請求項５に記載の制御システム。
【請求項７】
前記制御装置は、
前記収集手段が収集する前記制御対象に関連付けられたデータを時系列に格納するデータベースを、さらに備え、
前記情報処理装置は、
前記制御装置の前記データベースの前記制御対象に関連付けられたデータの時系列データから特徴量を生成する時系列特徴量生成手段と、
前記時系列特徴量生成手段により生成される前記特徴量を用いて機械学習を実施することにより、前記制御対象に生じる異常を検知するのに適した異常検知パラメータを決定する決定手段を、さらに備える、請求項１から６のいずれか１項に記載の制御システム。
【請求項８】
前記監視エミュレータは、
前記特徴量生成手段による特徴量生成処理のエミュレーションを実行する特徴量生成エミュレータを含み、
前記時系列特徴量生成手段は、前記データベースの時系列データを用いて、前記特徴量生成エミュレータに前記特徴量生成処理のエミュレーションを実行させることにより、当該時系列データから特徴量を生成する手段を含む、請求項７に記載の制御システム。
【請求項９】
前記制御対象に生じる異常の検知に適した異常検知パラメータは、前記特徴量生成手段が生成する特徴量を、前記制御対象に生じる異常を検知するのに適した特徴量のクラスに分類するためのしきい値を含む、請求項１から８のいずれか１項に記載の制御システム。
【請求項１０】
前記制御装置は、前記制御対象に生じる異常を検知するのに適した特徴量のクラスを保持し、
前記制御装置は、前記監視処理を実行中に、前記特徴量生成手段が生成する特徴量を用いて前記クラスの特徴量を更新する、請求項９に記載の制御システム。
【請求項１１】
制御対象を制御する制御装置とデータ交換可能な情報処理装置で実行される制御方法であって、
前記制御装置は、
前記制御対象に係るシーケンス制御およびモーション制御の制御演算を実行する演算処理手段と、
前記制御対象に関連付けられたデータの収集処理を実行する収集手段と、
前記制御対象の状態の監視処理を実行する監視処理手段と、を備え、
前記監視処理手段は、
前記収集手段が収集するデータから、特徴量を生成する特徴量生成処理を実行する特徴量生成手段と、
前記特徴量生成手段が生成する特徴量と、機械学習の結果に基づき設定される前記制御対象に生じる異常の検知に適した異常検知パラメータとを用いて、前記制御対象に生じる異常を検知する異常検知処理を実行する検知手段と、を備え、
前記制御方法は、
前記制御装置から前記制御対象に関連付けられたデータを受付けるステップと、
前記制御装置から受付けた前記制御対象に関連付けられたデータを用いて、前記監視処理手段による監視処理のエミュレーションを実行するステップを備える、制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、制御対象を制御するための制御システムおよび制御方法に関する。
【背景技術】
【０００２】
様々な生産現場において、ＰＬＣ（プログラマブルコントローラ）などの制御装置を用いたＦＡ（Factory Automation）技術が広く普及している。近年の情報通信技術（ＩＣＴ：Information and Communication Technology）の発展に伴って、このようなＦＡ分野における制御装置もますます高性能化および高機能化している。
【０００３】
このような高性能化および高機能化の一つとして、機械学習により、制御対象となる機器の故障を予知する機能が提案されている。例えば、特開２０１７−２１１９３０号公報（特許文献１）は、機械学習装置を備えるサーバーを開示する。機械学習装置を備えるサーバーは、ネットワークを介して受付けた、機器に設けたセンサ出力といった入力データを用いて機械学習を実施することにより、現在の機器の寿命故障の有無または故障の度合いを検知する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１７−２１１９３０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
特許文献１のようにサーバーを利用する場合、サーバーとの通信中のエラーなどでデータの喪失またはデータの欠落等が生じると、サーバーによる機械学習の信頼性は損なわれる。したがって、サーバーに機械学習を実施させるのではなく、ＰＬＣなどの制御装置側で信頼性のある機械学習による異常検知を実施する技術が望まれている。
【０００６】
この開示は、制御装置側で信頼性のある機械学習による異常検知を実施することができる環境の提供を一つの目的としている。
【課題を解決するための手段】
【０００７】
本開示の一例に係る制御システムは、制御対象を制御する制御装置と、制御装置とデータ交換可能な情報処理装置とを備える制御システムであって、制御装置は、制御対象に係るシーケンス制御およびモーション制御の制御演算を実行する演算処理部と、制御対象に関連付けられたデータの収集処理を実行する収集部と、制御対象の状態の監視処理を実行する監視処理部と、を備え、監視処理部は、収集部が収集するデータから、特徴量を生成する特徴量生成処理を実行する特徴量生成部と、特徴量生成部が生成する特徴量と、機械学習の結果に基づき設定される制御対象に生じる異常の検知に適した異常検知パラメータとを用いて、制御対象に生じる異常を検知する異常検知処理を実行する検知部と、を備え、情報処理装置は、制御装置からの制御対象に関連付けられたデータを用いて、監視処理部による監視処理のエミュレーションを実行する監視エミュレータを備える。
【０００８】
上述の開示によれば、情報処理装置では監視処理エミュレータにより、制御装置の監視処理部による監視処理がエミュレーションされて、情報処理装置において制御装置の監視処理部による監視処理を再現することができる。したがって、その再現内容を、制御装置の内部で信頼性のある機械学習による異常検知が実施できているかを確認する情報として提供することができる。
【０００９】
上述の開示において、制御装置は、収集部が収集する制御対象に関連付けられたデータを時系列に格納するデータベースを、さらに備え、情報処理装置の監視エミュレータが用いる制御対象に関連付けられたデータは、制御装置のデータベースのデータを含む。
【００１０】
上述の開示によれば、情報処理装置は、時系列に格納（蓄積）される時系列データを用いて監視エミュレータのエミュレーションを実施することで、制御装置の監視処理部による監視処理を、過去に遡り再現することが可能となる。
【００１１】
上述の開示において、情報処理装置は、監視処理のエミュレーションの結果に基づき、制御装置に保持される異常検知パラメータは、制御対象に生じる異常の検知に適しているかの妥当性を評価する。
【００１２】
上述の開示によれば、異常検知パラメータは、制御対象に生じる異常の検知に適しているかの妥当性を評価することができる。
【００１３】
上述の開示において、制御装置は、収集部によるデータの収集および演算処理部による制御演算を周期実行し、周期実行において、監視処理部による監視処理に比較して、収集部によるデータの収集および演算処理部による制御演算を高い優先度で実行させる周期実行処理を実行する実行管理部、をさらに備え、情報処理装置は、実行管理部による周期実行処理をエミュレーションする周期実行エミュレータを備え、周期実行エミュレータによる周期実行処理のエミュレーションにおいては、監視エミュレータによる監視処理のエミュレーションが実行される。
【００１４】
上述の開示によれば、異常検知パラメータの妥当性の評価に関して、情報処理装置は、制御装置の制御演算のサイクリック（周期）実行をエミュレートし、そのサイクリック実行における監視エミュレータによる監視処理のエミュレーションその結果に基づき、当該妥当性を評価することができる。
【００１５】
上述の開示において、情報処理装置は、周期実行処理のエミュレーションの結果に基づき、制御装置に保持される異常検知パラメータは、制御対象に生じる異常の検知に適しているかの妥当性を評価する。
【００１６】
上述の開示によれば、周期実行処理のエミュレーションの結果に基づき、異常検知パラメータの妥当性を評価できる。
【００１７】
上述の開示において、周期実行処理のエミュレーションの結果に基づく妥当性の評価は、周期実行処理のエミュレーションにおける監視処理のエミュレーションにかかる時間と周期の長さの比較の結果に基づく当該妥当性の評価を含む。
【００１８】
上述の開示によれば、周期実行処理のエミュレーションにおける監視処理のエミュレーションにかかる時間から当該妥当性の評価を実施することができる。
【００１９】
上述の開示において、制御装置は、収集部が収集する制御対象に関連付けられたデータを時系列に格納するデータベースを、さらに備え、情報処理装置は、制御装置のデータベースの制御対象に関連付けられたデータの時系列データから特徴量を生成する時系列特徴量生成部と、時系列特徴量生成部により生成される特徴量を用いて機械学習を実施することにより、制御対象に生じる異常を検知するのに適した異常検知パラメータを決定する決定部を、さらに備える。
【００２０】
上述の開示によれば、情報処理装置は、制御装置のデータベースの制御対象に関連付けられたデータの時系列データから特徴量を生成し、生成された特徴量を用いた機械学習の学習結果から、制御対象に生じる異常を検知するのに適した異常検知パラメータを決定することができる。
【００２１】
上述の開示において、監視エミュレータは、特徴量生成部による特徴量生成処理のエミュレーションを実行する特徴量生成エミュレータを含み、時系列特徴量生成部は、データベースの時系列データを用いて、特徴量生成エミュレータに特徴量生成処理のエミュレーションを実行させることにより、当該時系列データから特徴量を生成する。
【００２２】
上述の開示によれば、情報処理装置は、特徴量生成エミュレータに特徴量生成処理のエミュレーションを実行させることで、上記の時系列データからの特徴量生成が可能となる。
【００２３】
上述の開示において、制御対象に生じる異常の検知に適した異常検知パラメータは、特徴量生成部が生成する特徴量を、制御対象に生じる異常を検知するのに適した特徴量のクラスに分類するためのしきい値を含む。
【００２４】
上述の開示によれば、異常検知パラメータに、特徴量をクラス分類するためのしきい値を含めることができる。
【００２５】
上述の開示において、制御装置は、制御対象に生じる異常を検知するのに適した特徴量のクラスを保持し、制御装置は、監視処理を実行中に、特徴量生成部が生成する特徴量を用いてクラスの特徴量を更新する。
【００２６】
上述の開示において、制御装置は制御対象から収集するデータから生成される特徴量を用いて、クラスの特徴量を更新することができて、更新後のクラスを用いたクラス分類が可能となる。
【００２７】
本開示の一例に係る制御方法は、制御対象を制御する制御装置とデータ交換可能な情報処理装置で実行される制御方法であって、制御装置は、制御対象に係るシーケンス制御およびモーション制御の制御演算を実行する演算処理部と、制御対象に関連付けられたデータの収集処理を実行する収集部と、制御対象の状態の監視処理を実行する監視処理部と、を備え、監視処理部は、収集部が収集するデータから、特徴量を生成する特徴量生成処理を実行する特徴量生成部と、特徴量生成部が生成する特徴量と、機械学習の学習結果に基づき設定される制御対象に生じる異常の検知に適した異常検知パラメータとを用いて、機械学習を実施することにより、制御対象に生じる異常を検知する異常検知処理を実行する検知部と、を備え、制御方法は、制御装置から制御対象に関連付けられたデータを受付けるステップと、制御装置から受付けた制御対象に関連付けられたデータを用いて、監視処理部による監視処理のエミュレーションを実行するステップを備える。
【００２８】
上述の開示によれば、情報処理装置では監視処理エミュレータにより、制御装置の監視処理部による監視処理がエミュレーションされて、情報処理装置において制御装置の監視処理部による監視処理を再現することができる。したがって、その再現内容を、制御装置の内部で信頼性のある機械学習による異常検知が実施できているかを確認する情報として提供することができる。
【発明の効果】
【００２９】
この開示によれば、制御装置側で信頼性のある機械学習による異常検知を実施することができる環境を提供することができる。
【図面の簡単な説明】
【００３０】
【図１】本実施の形態に係る制御システム１の全体構成例を示す模式図である。
【図２】本実施の形態に係る制御システム１を構成する制御装置のハードウェア構成例を示すブロック図である。
【図３】本実施の形態に係る制御システム１を構成するサポート装置のハードウェア構成例を示すブロック図である。
【図４】本実施の形態に係る制御システム１の適用場面の一例を示す模式図である。
【図５】本実施の形態に係る制御装置を用いた異常検知の手順を説明するための模式図である。
【図６】本実施の形態に係るサポート装置におけるデータマイニングの手順を説明するための模式図である。
【図７】本実施の形態に係る制御システムのデータマイニング工程において決定可能な特徴量を示すリストの一例を模式的に示す図である。
【図８】本実施の形態に係る特徴量生成プログラムおよび学習データ決定部のプログラムの一例を模式的に示す図である。
【図９】本実施の形態に係る学習データの一例を模式的に示す図である。
【図１０】本実施の形態に係る制御装置１００が実施する監視処理のプログラムの一例を模式的に示す図である。
【図１１】本実施の形態に係る評価工程と調整工程を説明するための模式図である。
【図１２】本実施の形態に係る制御装置１００における優先度に応じた処理の実行について説明するための模式図である。
【発明を実施するための形態】
【００３１】
本発明の実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰返さない。
【００３２】
＜Ａ．適用例＞
まず、図４を参照して、本発明が適用される場面の一例について説明する。図４は、本実施の形態に係る制御システム１の適用場面の一例を示す模式図である。本実施の形態に係る制御システム１は、制御装置１００は、任意の制御対象（例えば、生産ラインに備えられる製造装置や設備）を制御する。
【００３３】
図４は、制御システム１の各装置が提供する機能が模式的に示されている。制御システム１は、制御対象を制御する制御装置１００と、制御装置１００とデータ交換可能なサポート装置２００とを備える。制御装置１００は、各種の設備や装置などの制御対象を制御するＰＬＣなどの産業用コントローラに相当する。ＰＬＣは、制御演算を実行する一種のコンピュータである。サポート装置２００は、制御装置１００が備えるモジュール（典型的にはデータ、プログラムなど）を開発する環境または制御装置１００の状態をモニタする環境などをユーザに提供する。サポート装置２００は、「情報処理装置」の一実施例であって、典型的には汎用のコンピュータを含む。
【００３４】
制御装置１００は、制御対象に係るシーケンス制御およびモーション制御の制御演算を実行する演算処理部と、制御対象に関連付けられたデータ（生データ１３２）の収集処理を実行する収集部と、制御対象の状態の監視処理を実行する監視処理部と、を備える。
【００３５】
生産ラインなどの稼働時に、ＰＬＣエンジン１５０は、上記の「制御演算」に相当するシーケンス/モーションプログラム１６２が実行しながら、「収集手段」に相当する変数マネジャ１５４を実行して、制御対象に関連付けられたデータを収集する。さらに、「監視処理部」は、収集データから特徴量を生成する特徴量生成処理を実行する特徴量生成部と、異常検知エンジン１４０を備える。
【００３６】
特徴量生成部は、特徴量生成プログラム１７４に相当し、特徴量生成プログラム１７４が実行されることにより特徴量生成処理が実行される。異常検知エンジン１４０は、特徴量生成部が生成する特徴量と、内部ＤＢ１３０に保持された異常の検知に適した異常検知パラメータ１３６または学習データ１３４を用いて、制御対象に生じる異常を検知する異常検知処理を実行する。この異常検知パラメータ１３６または学習データ１３４は、サポート装置２００の機械学習による学習結果に基づいている。
【００３７】
サポート装置２００は、制御装置１００からの制御対象に関連付けられたデータを用いて、上記の「監視処理部」のエミュレーションを実行する監視処理エミュレータ２２７２を備える。監視処理エミュレータ２２７２は、サポート装置２００のコンピュータが提供するプロセッサ環境で、上記の特徴量生成プログラム１７４および異常検知エンジン１４０のプログラムをエミュレートする命令を実行する。これにより、サポート装置２００において、制御装置１００の「監視処理部」がエミュレートされる。
【００３８】
このように、サポート装置２００では監視処理エミュレータ２２７２により、制御装置１００の「監視処理部」による監視処理がエミュレーションされて、サポート装置２００において制御装置１００の「監視処理部」による監視処理を再現することができる。したがって、その再現内容を、制御装置１００の内部で信頼性のある機械学習が実施できているかを確認する情報として提供することができる。
【００３９】
制御装置１００の「収集部」は、変数マネジャ１５４に相当する。変数マネジャ１５４は、周期的に実行されるＩ／Ｏリフレッシュ処理によって更新されるユーザ変数・デバイス変数１５４４のデータを、当該周期に同期して収集する。収集されるデータは上記の監視処理に用いられるとともに、時系列ＤＢ１３１に収集（検知）の順に従う時系列の生データ１３２として格納される。時系列ＤＢプログラム１６３は、収集部が収集する生データ１３２に収集（検知）の順にタイムスタンプを付与して、時系列ＤＢ１３１に格納する。このタイムスタンプは、例えば制御周期単位、ワーク単位、またはタクト単位など可変に設定し得る時間単位で付与することができる。
【００４０】
上記の再現性に関して、サポート装置２００の監視処理エミュレータ２２７２が用いる制御対象に関連付けられたデータは、制御装置１００の時系列ＤＢ１３１の時系列の生データ１３２を含む。このように、サポート装置２００における上記のエミュレーションは、時系列ＤＢ１３１の時系列の生データ１３２を用いて実施される。
【００４１】
したがって、サポート装置２００は、時系列に格納（蓄積）される時系列データを用いてエミュレーションを実施することで、制御装置１００の「監視処理部」による監視処理を、過去に遡り再現することが可能となる。
【００４２】
上記の再現に関して、サポート装置２００は、制御装置１００と時系列ＤＢ１３１の時系列の生データ１３２を含むデータを遣り取りすることが可能である。この場合、例えば、生データ１３２が格納されたメモリカードなどの記憶媒体を介して、サポート装置２００のデータアクセス部２２６２は制御装置１００とデータを遣り取りし得る。
【００４３】
このようなデータの遣り取りがネットワークを介さずに記憶媒体を介してなされることで、サポート装置２００は、通信エラーによるデータ欠落を起こすことなく、時系列ＤＢ１３１の時系列の生データ１３２を受け取ることができる。したがって、サポート装置２００では、エミュレーションによる上記の再現性の精度を高めることができる。
【００４４】
なお、サポート装置２００と制御装置１００との間のデータの遣り取りは、記憶媒体を介する方法に限定されない。
【００４５】
サポート装置２００は、監視処理のエミュレーションの結果に基づき、制御装置１００に保持されている異常検知パラメータ１３６が、制御対象に生じる異常の検知に適しているかの妥当性を評価する評価部２２７０をさらに備える。
【００４６】
このような異常検知パラメータ１３６の妥当性の評価に関して、サポート装置２００は、制御装置１００の制御演算のサイクリック実行をエミュレートし、その結果に基づき当該妥当性を評価する。
【００４７】
制御演算のサイクリック実行に関して、制御装置１００は、制御対象に関連付けられたデータの収集（変数マネジャ１５４）および演算処理による制御演算（シーケンス/モーションプログラム１６２）を周期実行する。この周期実行において、制御装置１００は、上記の「監視処理」（特徴量生成プログラム１７４および異常検知エンジン１４０）に比較して、制御対象に関連付けられたデータの収集および演算処理による制御演算を高い優先度で実行させる周期実行処理を実行する実行管理部（スケジューラ１５２）、をさらに備える。
【００４８】
上記のサイクリック実行のエミュレーションに関して、サポート装置２００はＰＬＣエンジン１５０をエミュレートするＰＬＣエミュレータ２２６０を備える。ＰＬＣエミュレータ２２６０は、上記の実行管理部（スケジューラ１５２）による上記の周期実行処理をエミュレーションする周期実行エミュレータ（スケジューラエミュレータ２２６９）を備える。この周期実行エミュレータによる周期実行処理のエミュレーションにおいては、ＰＬＣエミュレータ２２６０が備える制御プログラムエミュレータ２２６５（特徴量生成プログラムエミュレータ２２６６を含む監視処理エミュレータ２２７２）および変数マネジャエミュレータ２２６８を含むシステムプログラムエミュレータ２２６７によるエミュレーションが実行される。
【００４９】
このように、サポート装置２００では、制御装置１００の制御演算のサイクリック実行のエミュレーションにおける監視処理のエミュレーションの実行結果（再現内容）に基づき、異常検知パラメータ１３６の妥当性を評価することができる。
【００５０】
例えば、評価部２２７０は、周期実行処理のエミュレーションの結果に基づく上記の妥当性を評価する場合に、周期実行処理のエミュレーションにおける監視処理のエミュレーションにかかる時間とサイクリック実行の周期の長さの比較の結果に基づき、当該妥当性を評価することができる。
【００５１】
以下、本開示のより具体的な応用例として、本実施の形態に係る制御システム１のより詳細な構成および処理について説明する。
【００５２】
＜Ｂ１．制御システムの全体構成例＞
まず、本実施の形態に係る制御システム１の全体構成例について説明する。
【００５３】
図１は、本実施の形態に係る制御システム１の全体構成例を示す模式図である。図１を参照して、本実施の形態に係る制御システム１は、主たる構成要素として、制御対象を制御する制御装置１００と、制御装置１００に接続され得るサポート装置２００とを含む。サポート装置２００は、通信または記憶媒体を介して、制御装置１００とデータを遣り取りする。
【００５４】
制御装置１００は、ＰＬＣ（プログラマブルコントローラ）などの、一種のコンピュータとして具現化されてもよい。制御装置１００は、第１フィールドネットワーク２を介してフィールド装置群１０と接続されるとともに、第２フィールドネットワーク４を介して１または複数の表示装置４００と接続される。さらに、制御装置１００は、ローカルネットワーク６を介してデータロギング装置６００に接続される。制御装置１００は、それぞれのネットワークを介して、接続された装置との間でデータを遣り取りする。なお、データロギング装置６００および表示装置４００はオプショナルな構成であり、制御システム１の必須の構成ではない。
【００５５】
制御装置１００は、設備や機械を制御するための各種演算を実行する制御ロジック（以下、「ＰＬＣエンジン」とも称す。）を有している。ＰＬＣエンジンに加えて、制御装置１００は、フィールド装置群１０にて計測され、制御装置１００へ転送されるデータ（以下、「入力データ」とも称す。）を収集する収集機能を有している。さらに、制御装置１００は、収集した入力データを監視する監視機能も有している。これらの機能が制御装置１００に実装されることで、制御対象に生じている現象をより短い周期で監視できる。
【００５６】
具体的には、制御装置１００に実装される内部データベース（以下、「内部ＤＢ」とも記す。）１３０が収集機能を提供し、制御装置１００に実装される異常検知エンジン１４０が監視機能を提供する。内部ＤＢ１３０および異常検知エンジン１４０の詳細については後述する。
【００５７】
第１フィールドネットワーク２および第２フィールドネットワーク４は、データの到達時間が保証される、定周期通信を行うネットワークを採用することが好ましい。このような定周期通信を行うネットワークとしては、ＥｔｈｅｒＣＡＴ（登録商標）、ＥｔｈｅｒＮｅｔ／ＩＰ（登録商標）、ＤｅｖｉｃｅＮｅｔ（登録商標）、ＣｏｍｐｏＮｅｔ（登録商標）などが知られている。
【００５８】
フィールド装置群１０は、制御対象または制御に関連する製造装置や生産ラインなど（以下、「フィールド」とも総称する。）から入力データを収集する装置を含む。このような入力データを収集する装置としては、入力リレーや各種センサなどが想定される。フィールド装置群１０は、さらに、制御装置１００にて生成される指令（以下、「出力データ」とも称す。）に基づいて、フィールドに対して何らかの作用を与える装置を含む。このようなフィールドに対して何らかの作用を与える装置としては、出力リレー、コンタクタ、サーボドライバおよびサーボモータ、その他任意のアクチュエータが想定される。これらのフィールド装置群１０は、第１フィールドネットワーク２を介して、制御装置１００との間で、入力データおよび出力データを含むデータを遣り取りする。
【００５９】
図１に示す構成例においては、フィールド装置群１０は、リモートＩ／Ｏ（Input/Output）装置１２と、リレー群１４と、画像センサ１８およびカメラ２０と、サーボドライバ２２およびサーボモータ２４とを含む。
【００６０】
リモートＩ／Ｏ装置１２は、第１フィールドネットワーク２を介して通信を行う通信部と、入力データの取得および出力データの出力を行うための入出力部（以下、「Ｉ／Ｏユニット」とも称す。）とを含む。このようなＩ／Ｏユニットを介して、制御装置１００とフィールドとの間で入力データおよび出力データが遣り取りされる。図１には、リレー群１４を介して、入力データおよび出力データとして、デジタル信号が遣り取りされる例が示されている。
【００６１】
Ｉ／Ｏユニットは、フィールドネットワークに直接接続されるようにしてもよい。図１には、第１フィールドネットワーク２にＩ／Ｏユニット１６が直接接続されている例を示す。
【００６２】
画像センサ１８は、カメラ２０によって撮像された画像データに対して、パターンマッチングなどの画像計測処理を行って、その処理結果を制御装置１００へ送信する。
【００６３】
サーボドライバ２２は、制御装置１００からの出力データ（例えば、位置指令など）に従って、サーボモータ２４を駆動する。
【００６４】
上述のように、第１フィールドネットワーク２を介して、制御装置１００とフィールド装置群１０との間でデータが遣り取りされることになるが、これらの遣り取りされるデータは、数百μｓｅｃオーダ〜数十ｍｓｅｃオーダのごく短い周期で更新されることになる。なお、このような遣り取りされるデータの更新処理を、「Ｉ／Ｏリフレッシュ処理」と称することもある。
【００６５】
また、第２フィールドネットワーク４を介して制御装置１００と接続される表示装置４００は、ユーザからの操作を受けて、制御装置１００に対してユーザ操作に応じたコマンドなどを送信するとともに、制御装置１００での演算結果などをグラフィカルに表示する。
【００６６】
データロギング装置６００は、制御装置１００とローカルネットワーク６を介して接続され、制御装置１００との間で必要なデータを遣り取りする。データロギング装置６００は、例えば、データベース機能を有しており、制御装置１００が発生するイベントログなどを時系列に収集する。ローカルネットワーク６には、イーサネット（登録商標）などの汎用プロトコルが実装されてもよい。すなわち、典型的には、ローカルネットワーク６におけるデータの送信周期または更新周期は、フィールドネットワーク（第１フィールドネットワーク２および第２フィールドネットワーク４）におけるデータの送信周期または更新周期より遅くてもよい。但し、ローカルネットワーク６は、フィールドネットワークに比較して、一度により多くのデータを送信することができるようにしてもよい。
【００６７】
サポート装置２００は、制御装置１００が制御対象を制御するために必要な準備を支援する装置である。具体的には、サポート装置２００は、制御装置１００で実行されるプログラムの開発環境（プログラム作成編集ツール、パーサ、コンパイラなど）、制御装置１００および制御装置１００に接続される各種デバイスのパラメータ（コンフィギュレーション）を設定するための設定環境、生成したユーザプログラムを制御装置１００へ送信する機能、制御装置１００上で実行されるユーザプログラムなどをオンラインで修正・変更する機能、などを提供する。
【００６８】
さらに、本実施の形態に係るサポート装置２００は、制御装置１００に実装される内部ＤＢ１３０の後述する時系列の生データ１３２を用いて異常検知パラメータ１３６などを決定するとともに、異常検知エンジン１４０をエミュレートする環境を提供する。このエミュレーションの詳細は、後述する。
【００６９】
＜Ｂ．各装置のハードウェア構成例＞
次に、本実施の形態に係る制御システム１を構成する主要な装置のハードウェア構成例について説明する。
【００７０】
（ｂ１：制御装置１００のハードウェア構成例）
図２は、本実施の形態に係る制御システム１を構成する制御装置１００のハードウェア構成例を示すブロック図である。図２を参照して、制御装置１００は、ＣＰＵ（Central Processing Unit）やＭＰＵ（Micro-Processing Unit）などのプロセッサ１０２と、チップセット１０４と、主記憶装置１０６と、二次記憶装置１０８と、ローカルネットワークコントローラ１１０と、ＵＳＢ（Universal Serial Bus）コントローラ１１２と、メモリカードインターフェイス１１４と、内部バスコントローラ１２２と、フィールドバスコントローラ１１８，１２０と、Ｉ／Ｏユニット１２４−１，１２４−２，…とを含む。
【００７１】
プロセッサ１０２は、二次記憶装置１０８に格納された各種プログラムを読み出して、主記憶装置１０６に展開して実行することで、制御対象に応じた制御、および、後述するような各種処理を実現する。チップセット１０４は、プロセッサ１０２と各コンポーネントを制御することで、制御装置１００全体としての処理を実現する。
【００７２】
二次記憶装置１０８には、ＰＬＣエンジンを実現するためのシステムプログラムに加えて、ＰＬＣエンジンを利用して実行されるユーザプログラムが格納される。さらに、二次記憶装置１０８には、内部ＤＢ１３０および異常検知エンジン１４０を実現するためのプログラムも格納される。
【００７３】
ローカルネットワークコントローラ１１０は、ローカルネットワーク６を介した他の装置との間のデータの遣り取りを制御する。ＵＳＢコントローラ１１２は、ＵＳＢ接続を介してサポート装置２００との間のデータの遣り取りを制御する。
【００７４】
メモリカードインターフェイス１１４は、メモリカード１１６を着脱可能に構成されており、メモリカード１１６に対してデータを書込み、メモリカード１１６から各種データ（ユーザプログラムやトレースデータなど）を読出すことが可能になっている。
【００７５】
内部バスコントローラ１２２は、制御装置１００に搭載されるＩ／Ｏユニット１２４−１，１２４−２，…との間でデータを遣り取りするインターフェイスである。
【００７６】
フィールドバスコントローラ１１８は、第１フィールドネットワーク２を介した他の装置との間のデータの遣り取りを制御する。同様に、フィールドバスコントローラ１２０は、第２フィールドネットワーク４を介した他の装置との間のデータの遣り取りを制御する。
【００７７】
図２には、プロセッサ１０２がプログラムを実行することで必要な機能が提供される構成例を示したが、これらの提供される機能の一部または全部を、専用のハードウェア回路（例えば、ＡＳＩＣ（Application Specific Integrated Circuit）またはＦＰＧＡ（Field-Programmable Gate Array）など）を用いて実装してもよい。あるいは、制御装置１００の主要部を、汎用的なアーキテクチャに従うハードウェア（例えば、汎用パソコンをベースとした産業用パソコン）を用いて実現してもよい。この場合には、仮想化技術を用いて、用途の異なる複数のＯＳ（Operating System）を並列的に実行させるとともに、各ＯＳ上で必要なアプリケーションを実行させるようにしてもよい。
【００７８】
（ｂ２：サポート装置２００のハードウェア構成例）
次に、本実施の形態に係るサポート装置２００は、一例として、汎用的なアーキテクチャに従うハードウェア（例えば、汎用パソコン）を用いてプログラムを実行することで実現される。
【００７９】
図３は、本実施の形態に係る制御システム１を構成するサポート装置２００のハードウェア構成例を示すブロック図である。図３を参照して、サポート装置２００は、ＣＰＵやＭＰＵなどのプロセッサ２０２と、ドライブ２０４と、主記憶装置２０６と、二次記憶装置２０８と、ＵＳＢコントローラ２１２と、ローカルネットワークコントローラ２１４と、入力部２１６と、表示部２１８とを含む。これらのコンポーネントはバス２２０を介して接続される。
【００８０】
プロセッサ２０２は、二次記憶装置２０８に格納された各種プログラムを読み出して、主記憶装置２０６に展開して実行することで、後述するような各種処理を実現する。
【００８１】
二次記憶装置２０８は、例えば、ＨＤＤ（Hard Disk Drive）やＳＳＤ（Flash Solid State Drive）などで構成される。二次記憶装置２０８には、典型的には、サポート装置２００において実行されるユーザプログラムの作成、作成したプログラムのデバッグ、システム構成の定義、各種パラメータの設定などを行うための図示しない開発プログラムと、後述するデータマイニングツール２２６とＰＬＣエミュレータ２２６０を実行するための命令コードからなるエミュレータツール２２５を含む各種プログラムが格納される。また、二次記憶装置２０８には、データマイニングツール２２６に関連したデータを格納する内部ＤＢ２２４の領域が設けられる。二次記憶装置２０８には、ＯＳおよび他の必要なプログラムが格納されてもよい。この実施の形態では、データマイニングツール２２６は、サポート装置２００においてデータマイニングを実現するためのプログラムまたはプログラムとデータの組合せを含む。
【００８２】
ドライブ２０４は、メモリカード１１６または記憶媒体２０５を着脱可能に構成される。ドライブ２０４は、メモリカード１１６または記憶媒体２０５に対してデータを書込み、メモリカード１１６または記憶媒体２０５から各種データ（ユーザプログラム、トレースデータまたは時系列データなど）を読出すことが可能になっている。記憶媒体２０５は、例えばコンピュータ読取可能なプログラムを非一過的に格納する記憶媒体２０５（例えば、ＤＶＤ（Digital Versatile Disc）などの光学記憶媒体）を含む。メモリカード１１６または記憶媒体２０５から、その中に格納されたプログラムまたはデータが読取られて二次記憶装置２０８などの内部の記憶領域にインストールされる。
【００８３】
サポート装置２００で実行される各種プログラムは、コンピュータ読取可能なメモリカード１１６または記憶媒体２０５を介してインストールされてもよいが、ネットワーク上のサーバー装置などからダウンロードする形でインストールするようにしてもよい。また、本実施の形態に係るサポート装置２００が提供する機能は、ＯＳが提供するモジュールの一部を利用する形で実現される場合もある。
【００８４】
ＵＳＢコントローラ２１２は、ＵＳＢ接続を介して制御装置１００との間のデータの遣り取りを制御する。ローカルネットワークコントローラ２１４は、任意ネットワークを介した他の装置との間のデータの遣り取りを制御する。ＵＳＢコントローラ２１２が、制御装置１００と遣り取りするデータは、例えば時系列ＤＢ１３１の時系列の生データ１３２、異常検知パラメータ１３６および学習データ１３４を含む。
【００８５】
入力部２１６は、キーボードやマウスなどで構成され、ユーザ操作を受付ける。表示部２１８は、ディスプレイ、各種インジケータなどで構成され、プロセッサ２０２からの処理結果などを出力する。サポート装置２００には、プリンタが接続されてもよい。
【００８６】
図３には、プロセッサ２０２がプログラムを実行することで必要な機能が提供される構成例を示したが、これらの提供される機能の一部または全部を、専用のハードウェア回路（例えば、ＡＳＩＣまたはＦＰＧＡなど）を用いて実装してもよい。
【００８７】
（ｂ３：データロギング装置６００のハードウェア構成例）
次に、本実施の形態に係る制御システム１を構成するデータロギング装置６００は、一例として、汎用的なファイルサーバまたはデータベースサーバを用いて実現できる。このような装置のハードウェア構成については公知であるので、ここでは、その詳細な説明は行わない。
【００８８】
（ｂ４：表示装置４００のハードウェア構成例）
次に、本実施の形態に係る制御システム１を構成する表示装置４００は、ＨＭＩ（Human Machine Interface）装置と称されるものであり、専用機として実装された構成を採用してもよいし、汎用的なアーキテクチャに従うハードウェア（例えば、汎用パソコンをベースとした産業用パソコン）を用いて実現してもよい。
【００８９】
＜Ｃ．異常検知機能＞
次に、本実施の形態に係る制御システム１が提供する異常検知機能について説明する。
【００９０】
図５は、本実施の形態に係る制御装置１００を用いた異常検知の手順を説明するための模式図である。図５に示す異常検知の手順は、全体として５つの工程からなる。
【００９１】
具体的には、まず、（１）生データ収集工程が実施される。（１）生データ収集工程においては、制御装置１００が取り扱うデータのうち、異常検知に係る解析に使用するデータ（生データ１３２）が内部ＤＢ１３０に書込まれる。（１）生データ収集工程は、後述する、制御装置１００の内部ＤＢアクセスプログラム１６４が実行されることで実現される。
【００９２】
制御装置１００においては、フィールドとの間で遣り取りされるデータ（入力データおよび出力データ）ならびに内部データの各々に対してユニークな変数名が割り当てられており、それぞれの変数名を利用してユーザプログラムなどが記述される。すなわち、制御装置１００においては、変数プログラミングが可能な環境が提供される。そのため、以下の説明においては、「変数の指定」または「変数の特定」という表現は、対象となるデータを特定することと実質的に同義で用いることとする。なお、本発明の範囲は、変数プログラミング可能な構成に限定されるものではなく、メモリ上のアドレスを直接指定するような構成であっても、技術的範囲に含まれ得る。
【００９３】
次に、（２）収集される生データ１３２を時系列ＤＢ１３１に時系列に格納する時系列ＤＢ格納工程が実施される。（２）時系列ＤＢ格納工程においては、時系列ＤＢプログラム１６３は、収集される生データ１３２にタイムスタンプを付与しながら、時系列ＤＢ１３１に格納する。タイムスタンプは、生データ１３２が収集（検出）された時間に相当する。
【００９４】
次に、（３）特徴量生成工程が実施される。（３）特徴量生成工程においては、フィールドとの間で遣り取りされるデータおよび内部データのうち、対象となるデータに対して、予め決定された特徴量の生成手法が適用されることで、特徴量が順次生成される。（３）特徴量生成工程は、後述する、制御装置１００の特徴量生成プログラム１７４が実行されることで実現される。
【００９５】
この実施の形態では、典型的には、サポート装置２００により制御対象に生じる異常の検知に適した異常検知手法が決定される。異常検知手法は、どのようなデータをどのようなロジックで監視すれば、目的の異常を検知できるのかという手法を示すものである。本実施の形態においては、異常検知手法は、フィールドからの１または複数の生データ１３２からの特徴量の生成手法を含む。サポート装置２００は、データマイニングツールを実行することで異常検知手法を決定する。決定される異常検知手法に応じて、特徴量を生成するための設定またはパラメータなどが出力される。
【００９６】
次に、（４）特徴量抽出工程が実施される。（４）特徴量抽出工程においては、（３）特徴量生成工程において生成された特徴量から、異常検知パラメータ１３６が示す特徴量の種類、すなわち制御対象に生じる異常の検知に適した特徴量の種類に基づき、当該種類の特徴量が抽出（選択）される。（４）特徴量抽出工程は、異常検知エンジン１４０の特徴量抽出部１４２により実現される。
【００９７】
次に、（５）異常検知工程が実施される。（５）異常検知工程においては、（４）特徴量抽出工程で選択された種類の特徴量について、所定周期毎または所定イベント毎に生成される当該特徴量の監視、すなわち、当該特徴量から、異常検知パラメータ１３６および学習データ１３４に基づき異常が検知される。具体的には、特徴量抽出工程で選択された種類の特徴量が、学習データ１３４が示すクラスに分類されるべき度合を示すスコア値１４７が算出される。スコア値１４７と異常検知パラメータ１３６が示すしきい値とを比較し、スコア値１４７がしきい値をまたぐとき（超えるとき）、異常の検知がなされる。また、このときのスコア値１４７は内部ＤＢ１３０に格納される。また、異常の検知がなされると、イベントログ１４６が出力される。（５）異常検知工程は、異常検知エンジン１４０の異常検知部１４４により実現される。
【００９８】
異常検知パラメータ１３６は、サポート装置２００が、データマイニングツール２２６を実行することで決定する、制御対象に生じる異常を検知するのに適した、すなわち監視対象となる特徴量の種類と上記のしきい値とを含む。
【００９９】
制御装置１００における監視処理は、図５の（４）特徴量抽出工程および（５）異常検知工程を含み得る。なお、（２）時系列ＤＢ格納工程は、図５では、説明のために一連の工程に中に含めて示したが、他の工程とは並行して実行可能な工程である。
【０１００】
以上のような（１）、（３）〜（５）の工程によって、制御装置１００は、異常検知パラメータ１３６および学習データ１３４を用いて、制御対象の監視処理、すなわち制御対象に生じる異常の検知に適した特徴量の選択、および選択された特徴量を用い制御対象に生じる異常の検知を実施することができる。
【０１０１】
＜Ｄ．データマイニングツール＞
次に、本実施の形態に係る制御システム１が提供するデータマイニングツールについて説明する。本実施の形態では、サポート装置２００が備えるデータマイニングツール２２６を用いて、制御装置１００で収集した制御対象に関連付けられた生データ１３２をもとに、監視処理に必要な設定（異常検知パラメータ１３６および学習データ１３４）がなされる。
【０１０２】
図６は、本実施の形態に係るサポート装置２００におけるデータマイニングの手順を説明するための模式図である。図６では、データマイニングの手順である工程（１）〜（４）に関連付けて、サポート装置２００が実施する特徴量の監視工程（５）と評価工程（６）が示される。
【０１０３】
まず、（１）生データ収集工程が実施される。（１）生データ収集工程においては、制御装置１００の時系列ＤＢ１３１の生データ１３２が例えばメモリカード１１６を介して、サポート装置２００に転送されて、例えば２次記憶装置２０８等の内部ＤＢ２２４に格納される。（１）生データ収集工程では、サポート装置２００のデータアクセス部２２６２により実現される。具体的には、データアクセス部２２６２はドライブ２０４を介してメモリカード１１６をアクセス（読出）し、読出された生データ１３２を、例えば二次記憶装置２０８等の内部ＤＢ２２４に格納する。
【０１０４】
次に、（２）データマイニング工程が実施される。（２）データマイニング工程においては、内部ＤＢ２２４に書込まれた時系列の生データ１３２が読込まれ、異常検知手法を決定する。具体的には、データマイニングツール２２６を用いてユーザがサポート装置２００を操作し、内部ＤＢ２２４に収集されている生データ１３２を読出して解析することで、特徴量の生成手法および異常検知手法を決定する。
【０１０５】
次に、（３）特徴量生成工程が実施される。（３）特徴量生成工程においては、（２）データマイニング工程で決定された特徴量の生成手法が適用されることで、内部ＤＢ２２４の時系列の生データ１３２から特徴量が生成される。
【０１０６】
（３）特徴量生成工程は、サポート装置２００の特徴量生成プログラムエミュレータ２２６６が、内部ＤＢ２２４の時系列の生データ１３２を用いて特徴量生成プログラム１７４をエミュレーションすることで実現される。
【０１０７】
次に、（４）特徴量学習工程が実施される。（４）特徴量学習工程においては、（３）特徴量生成工程において生成された特徴量に対して機械学習が実施され、この機械学習の結果から、異常検知パラメータ１３６および学習データ１３４が決定される。（４）特徴量学習工程は、サポート装置２００のパラメータ決定部２２６３は異常検知パラメータ１３６を決定し、学習データ決定部２２６１は学習データ１３４を決定する。この実施の形態では、異常検知パラメータ１３６は、制御対象に生じる異常を検知するのに適した特徴量の種類または判断指標（典型的には、しきい値など）を含む。（４）特徴量学習工程は、サポート装置２００の機械学習エンジンによる決定部２２６４により実現される。
【０１０８】
特徴量学習工程における特徴量の生成手法の一例について説明する。
図７は、本実施の形態に係る制御システム１のデータマイニング工程において決定可能な特徴量を示すリストの一例を模式的に示す図である。図７に示すような複数の特徴量が予め定義されており、サポート装置２００の内部ＤＢ２２４に収集されている生データ１３２に対して、いずれの種類の特徴量を用いるのが好ましいのかが決定される。
【０１０９】
具体的には、パラメータ決定部２２６３は、内部ＤＢ２２４に収集された生データ１３２を用いて、図７に示されるそれぞれの特徴量が算出され、その特徴量の相関性または関係性のより大きなものが候補として決定される。また、学習データ決定部２２６１は、パラメータ決定部２２６３が決定した種類の特徴量の集合から構成されるクラスである学習データ１３４を生成する。学習データ１３４の生成の詳細は後述する。
【０１１０】
あるいは、典型的な手法として、各種の主成分分析を採用してもよい。主成分分析の手法としては、公知の任意の方法を採用できる。
【０１１１】
以上のような（１）〜（４）の工程によって、サポート装置２００は、異常検知に用いる特徴量の定義、および、異常であると判断するための異常検知パラメータ１３６および学習データ１３４などを決定することができる。
【０１１２】
さらに、サポート装置２００では、（５）特徴量監視工程および（６）評価工程が実施される。（５）特徴量監視工程では、制御装置１００から時系列の生データ１３２、スコア値１４７およびイベントログ１４６がメモリカード１１６などを介して取得されて、内部ＤＢ２２４などに格納される。（５）特徴量監視工程におけるデータの取得は、例えばデータアクセス部２２６２により実現される。
【０１１３】
（６）評価工程では、異常検知に用いられる、すなわち制御装置１００において保持されている異常検知パラメータ１３６または学習データ１３４が、制御対象に生じる異常の検知に適しているかの当性が評価される。（６）評価工程は、典型的には、サポート装置２００の評価部２２７０により実現される。
【０１１４】
（７）調整工程では、調整部２２７１により制御装置１００において保持されている異常検知パラメータ１３６または学習データ１３４の調整（変更）が実施される。例えば、調整部２２７１は、評価部２２７０の評価結果に基づき当該調整を実施する。サポート装置２００の評価部２２７０と調整部２２７１による評価と調整については後述する。
【０１１５】
＜Ｅ．特徴量生成工程および特徴量学習工程＞
図６の（３）特徴量収集工程および（４）特徴量学習工程に用いられる制御プログラム（ユーザプログラム）について図８を参照して説明する。
【０１１６】
図８は、本実施の形態に係る特徴量生成プログラムおよび学習データ決定部のプログラムの一例を模式的に示す図である。図４の（３）特徴量収集工程において、特徴量生成プログラムエミュレータ２２６６によりエミュレートされる特徴量生成プログラム１７４は、典型的には、特徴量生成ファンクションブロック１７４２を用いて記述されてもよい。特徴量生成ファンクションブロック１７４２は、生データ１３２から特徴量を生成する機能モジュールである。
【０１１７】
特徴量生成ファンクションブロック１７４２に対しては、特徴量の算出に用いられる変数を指定する入力変数指定１７４４と、算出された特徴量の出力先を示す出力先指定１７４６とが定義される。
【０１１８】
特徴量生成ファンクションブロック１７４２の出力段（出力先指定１７４６）には、機械学習エンジンの学習データ決定部２２６１に対応する処理を実行するためのファンクションブロック１６８２が接続されてもよい。すなわち、特徴量生成ファンクションブロック１７４２の出力先指定１７４６とファンクションブロック１６８２の学習対象の特徴量となる変数を指定する入力変数指定１６８４とが接続される。
【０１１９】
ファンクションブロック１６８２の出力段（学習結果出力先指定１６８６）には、機械学習の結果得られる情報である、すなわち学習データ１３４が出力される。
【０１２０】
図９は、本実施の形態に係る学習データ１３４の一例を模式的に示す図である。図９は、生データ１３２から生成される特徴量（通常は、複数の特徴量から構成される特徴量ベクトル）のサンプルを対応する座標空間にプロットした、特徴量で表現される特徴量空間の一例を示す。この特徴量空間が学習データ１３４に相当する。
【０１２１】
各特徴量には、通常、ラベル（正常または異常）が付与されており、ユーザは、各特徴量に付与されているラベルを参照しながら、制御対象が正常状態にある特徴量の集合から構成されるクラス、および／または、制御対象が異常状態にある特徴量の集合から構成されるクラスを定義するしきい値３０４により規定される破線で示す範囲を決定する。例えば、ユーザは、正常状態におけるＮ個のサンプルの平均位置である基準位置（図中のｘマーク）を指定するとともに、基準位置を基準として破線の範囲を指定することでしきい値３０４を指定ようにしてもよい。しきい値３０４の破線の範囲内に存在するサンプルの集合が正常状態または異常状態におけるサンプル集合から構成されるクラス（すなわち、正常状態の学習データ１３４または異常状態の学習データ１３４）に相当する。
【０１２２】
図９に示す例では、しきい値３０４を規定するための破線の位置および範囲などはユーザ操作によって指定され得る。指定されたしきい値３０４は、異常検知パラメータ１３６に含まれる。
【０１２３】
図９は、特徴量空間上に、しきい値３０４の破線の範囲を設定するためのユーザインターフェイス画面の一例としても提供され得る。図９（Ａ）に示すように、特徴量空間上に予め収集されているサンプルがプロットされており、ユーザは、このサンプルの分布を参照しながら、入力部２１６のマウスなどを操作して、破線の範囲を設定する。さらに、図９（Ｂ）に示すように、マウスなどをさらに操作して、破線の範囲の大きさなどを調整することもできる。このように、ユーザは、異常検知パラメータ１３６に含めるべきしきい値３０４を可変に設定することができる。
【０１２４】
異常検知パラメータ１３６を設定できれば、図６のサポート装置２００における（３）特徴量収集工程および（４）特徴量学習工程は完了する。このように、サポート装置２００においてデータマイニングツール２２６が実行されることで、機械学習による学習結果に基づいて異常検知パラメータ１３６および学習データ１３４を決定する機能が提供される。
【０１２５】
＜Ｆ．監視処理＞
本実施の形態に係る制御装置１００における監視処理について説明する。
【０１２６】
図１０は、本実施の形態に係る制御装置１００が実施する監視処理のプログラムの一例を模式的に示す図である。制御装置１００における監視処理に含まれる（３）特徴量生成工程において実行される特徴量生成プログラム１７４は、上述の図８と同様に、特徴量生成ファンクションブロック１７４２を用いて記述されている。
【０１２７】
図１０の特徴量生成ファンクションブロック１７４２の出力段（出力先指定１７４６）には、ファンクションブロック１７０２が接続される。特徴量生成ファンクションブロック１７４２の出力先指定１７４６とファンクションブロック１７０２の監視対象の特徴量となる変数を指定する入力変数指定１７０４とが接続される。さらに、ファンクションブロック１７０２には、異常検知パラメータ１３６が備える異常検知のしきい値３０４に相当する変数値ＴＨ（以下、しきい値ＴＨともいう）が定義される。ファンクションブロック１７０２は、異常検知エンジン１４０の機能モジュールに相当する。
【０１２８】
ファンクションブロック１７０２は、入力変数指定１７０４において指定された変数（特徴量）と、異常検知パラメータ１３６において指定されたしきい値３０４に対応したしきい値ＴＨとを制御周期毎に比較して、特徴量がしきい値ＴＨを跨ぐような事象が生じると、異常検知出力先指定１７０８として定義された変数（スコア値１４７）を設定する。ユーザプログラムにおいては、異常検知出力先指定１７０８として指定された変数（スコア値１４７）の値に基づいて、制御対象の設備や機械での異常を即座に検知できる。
【０１２９】
ここでは、スコア値１４７は、例えば、特徴量の学習データ１３４のクラスの基準位置（図９のｘマーク参照）との距離、または特徴量としきい値ＴＨとの距離などのような、特徴量の学習データ１３４のクラスからの乖離の程度を含み得る。このようなスコア値１４７は、正常状態の学習データ１３４から構成されるクラス、または学習データ１３４から構成されるクラスに分類されるべき度合いを示し得る。
【０１３０】
上記の図１０に示した制御装置１００の監視処理のプログラム（すなわち、特徴量生成プログラム１７４および異常検知エンジン１４０のファンクションブロック）は、サポート装置２００の監視処理エミュレータ２２７２がエミュレーションするプログラムに相当する。したがって、サポート装置２００では、制御装置１００から受付ける時系列の生データ１３２を用いて監視処理エミュレータ２２７２によるエミュレーションを実施することにより、制御装置１００において、（１）生データ収集工程（図５参照）で収集した生データ１３２を用いてなされた監視処理を再現することができる。
【０１３１】
＜Ｇ．評価工程と調整工程と＞
図１１は、本実施の形態に係る評価工程と調整工程を説明するための模式図である。本実施の形態では、図６の（６）評価工程では、評価部２２７０は、制御装置１００に保持されている異常検知パラメータ１３６または学習データ１３４が、制御対象に生じる異常を検知するのに適しているかの妥当性（適当性）を評価する。
【０１３２】
図１１を参照して、評価工程を説明する。制御装置１００において、１１（Ａ）の生データ１３２から生成される特徴量と、異常検知パラメータ１３６および学習データ１３４とを用いて監視処理が実施される。監視処理による出力されるスコア値１４７が、図１１（Ｂ）のようにしきい値ＴＨを跨いだために、図１１（Ｃ）のように「異常」のイベントログ１４６がなされる。
【０１３３】
イベントログ１４６が発生したとき、評価部２２７０は、制御装置１００に保持される異常検知パラメータ１３６が制御対象に生じる異常の検知に適しているかの妥当性を評価する。たとえば、イベントログ１４６が異常を示すが、オペレータが制御対象を観察すると正常（異常なし）であったケースを例示して説明する。
【０１３４】
具体的には、評価部２２７０は、制御装置１００から取得する時系列の生データ１３２（図１１（Ｄ）の破線部）のうちから、イベントログ１４６の「異常」が記録された時間に該当する時間の生データ１３２（図中の破線部分）を抽出する。評価部２２７０は、抽出された生データ１３２と内部ＤＢ２２４の異常検知パラメータ１３６および学習データ１３４を用いて監視処理エミュレータ２２７２に監視処理のエミュレーションを実行させる。このエミュレーションの結果は、図１１（Ｂ），（Ｄ）のように異常ありを示す。評価部２２７０は、この監視処理のエミュレーション結果から、異常検知パラメータ１３６は妥当でないとの評価を出力する。
【０１３５】
調整部２２７１は、例えば、ユーザーの操作に従い図９で示したしきい値３０４を変更する。これにより、内部ＤＢ２２４の異常検知パラメータ１３６に含まれるしきい値３０４は、変更される。
【０１３６】
評価部２２７０は、抽出された生データ１３２（図１１（Ｄ）の破線部）と内部ＤＢ２２４の変更後のしきい値３０４を有した異常検知パラメータ１３６および学習データ１３４を用いて監視処理エミュレータ２２７２に監視処理のエミュレーションを再度実行させる。このエミュレーションの結果は、図１１（Ｅ），（Ｆ）のように異常なしを示す場合、評価部２２７０は、監視処理エミュレータ２２７２による監視処理のエミュレーション結果から、調整（変更）後の異常検知パラメータ１３６は妥当であるとの評価を出力する。なお、監視処理エミュレータ２２７２に監視処理のエミュレーションを再度実行した場合に、評価部２２７０は、監視処理のエミュレーション結果から、調整（変更）後の異常検知パラメータ１３６は妥当でないと評価する場合は、上記の調整部２２７１と評価部２２７０の処理が繰返される。
【０１３７】
調整部２２７１による調整方法は、しきい値３０４の変更に限定されない。例えば、学習データ１３４（図９の特徴量空間）を、規定する特徴量の種類または個数を調整することで、生成しなおし、再度、監視処理エミュレータ２２７２による監視処理のエミュレーションを含む評価部２２７０による評価処理を実行してもよい。
【０１３８】
ユーザは、調整終了後の異常検知パラメータ１３６または学習データ１３４を、メモリカード１１６を介して、制御装置１００に転送する。これにより、制御装置１００は、調整後の（すなわち妥当性を有した）異常検知パラメータ１３６または学習データ１３４を用いて、内部ＤＢ１３０に保持していた元の異常検知パラメータ１３６または学習データ１３４を更新することができる。
【０１３９】
（ｇ１：学習データの追加学習による評価と調整）
本実施の形態では、制御装置１００は、学習データ１３４について追加学習を実施することもできる。具体的には、制御装置１００は、制御対象に生じる異常を検知するのに適した特徴量のクラス（学習データ１３４）を保持し、制御装置１００は、監視処理を実行中に、特徴量生成プログラム１７４が生成する特徴量を用いてクラスに含まれる特徴量を更新する。例えば、当該生成された特徴量から抽出した特徴量を用いて学習データ１３４に当該特徴量を追加する。
【０１４０】
このように、制御装置１００の生産ラインが稼働時に収集される生データ１３２の特徴量が追加されることで、学習データ１３４は変化する。評価部２２７０は、上記に評価処理を変化後の学習データ１３４を用いて実施してもよい。評価処理の結果に基づき、調整部２２７１は、異常検知パラメータ１３６または学習データ１３４を調整する。これにより、学習データ１３４を、制御装置１００側で生成させて、その妥当性をサポート装置２００の評価部２２７０で評価することができる。
【０１４１】
（ｇ２：制御周期による評価）
図１２は、本実施の形態に係る制御装置１００における優先度に応じた処理の実行について説明するための模式図である。図１２を参照して、制御装置１００においては、システム周期毎に制御演算が実行されるとする。制御演算としては、シーケンス/モーションプログラム１６２が実行されることにより実施される制御演算を含む。具体的には、各種条件に応じた処理を実行するシーケンス演算、サーボドライバあるいはサーボモータを駆動するためのモーション演算などを含む。このような制御演算は、典型的には、制御装置１００のプロセッサ１０２が、二次記憶装置１０８に格納されているユーザプログラムを読出して主記憶装置１０６に展開して実行することで提供される。すなわち、制御装置１００のプロセッサ１０２およびユーザプログラムは、制御対象を制御するための制御演算を周期的に実行する制御演算処理を提供する。
【０１４２】
一例として、優先度を異ならせて２つのタスク（高優先タスクおよび低優先タスク）が設定されているとする。高優先タスクには、システム周期毎に必ず実行される処理（例えば、Ｉ／Ｏリフレッシュ処理および制御演算）が登録されており、低優先タスクには、複数のシステム周期に亘って実行されてもよい処理あるいは実行タイミングを厳密に保証しなくてもよい処理（例えば、監視処理）が登録されている。
【０１４３】
図１２に示すように、各システム周期においては、まず、高優先タスクとして登録されている、Ｉ／Ｏリフレッシュ処理および制御演算の実行が完了すると、低優先タスクとして登録されている監視処理が実行される。低優先タスクは、各システム周期において、高優先タスクが実行されていない期間において実行される。そのため、低優先タスクとして登録されている処理を１回のシステム周期で完了させることができないこともある。図１２に示す例では、監視処理は３回のシステム周期に亘って実行されていることが分かる。なお、制御装置１００が複数のプロセッサ１０２を有している場合、あるいは、制御装置１００のプロセッサ１０２が複数のコアを有している場合などには、各タスクが分散的に実行されることもある。
【０１４４】
このように、監視処理部による監視処理（特徴量生成プログラム１７４および異常検知エンジン１４０）に比較して、変数マネジャ１５４（収集部）による生データ１３２の収集（Ｉ／Ｏリフレッシュ処理）および演算処理部による制御演算（シーケンス/モーションプログラム１６２）を高い優先度で実行させる実行管理部は、スケジューラ１５２により実現される。
【０１４５】
本実施の形態では、サポート装置２００において、ＰＬＣエミュレータ２２６０によりスケジューラ１５２による上記の優先度に従う実行管理がスケジューラエミュレータ２２６９によりエミュレーションされる。スケジューラエミュレータ２２６９によりエミュレーションでは、変数マネジャ１５４（収集部）による生データ１３２の収集（Ｉ／Ｏリフレッシュ処理）および演算処理部による制御演算（シーケンス/モーションプログラム１６２）をエミュレートするシステムプログラムエミュレータ２２６７、および監視処理をエミュレートする監視処理エミュレータ２２７２によるエミュレーションが実行される。
【０１４６】
評価部２２７０は、スケジューラエミュレータ２２６９のエミュレーションによるスケジューリング結果から、上記の妥当性を評価する。
【０１４７】
例えば、エミュレーションの結果から、監視処理の完了に要する周期を検出し、検出周期数が予め定められた周期数を超えていれるケースであれば、例えば異常検知パラメータ１３６は妥当でないと評価することができる。具体的には、異常検知パラメータ１３６が指定する特徴量の種類または個数が多すぎて、監視処理の完了に要する周期が予め定められた周期数を超えていることが想定され得て、その場合は評価部２２７０は、異常検知パラメータ１３６は妥当ではないとの評価を出力する。
【０１４８】
＜Ｈ．制御システム１が提供する機能＞
再び図４を参照して、本実施の形態に係る制御システム１の各装置が提供する機能を説明する。図４において、制御装置１００の構成におけるカッコ内の数字は、図５に示す（１）〜（６）の工程における処理に対応している。また、図４において、サポート装置２００の構成におけるカッコ内の数字は、図６に示す（１）〜（７）の工程における処理に対応している。
【０１４９】
図４を参照して、制御装置１００は、内部ＤＢ１３０および異常検知エンジン１４０に加えて、ＰＬＣエンジン１５０を有している。これらの機能は、基本的には、制御装置１００のプロセッサ１０２（図２）がプログラムを実行することで実現される。このプロセッサ１０２がプログラムを実行するための環境を提供するために、制御装置１００にはＯＳ１９０もインストールされる。
【０１５０】
ＰＬＣエンジン１５０は、典型的には、ＯＳ１９０上でシステムプログラムおよびユーザプログラムが実行されることで提供される。より具体的には、ＰＬＣエンジン１５０は、スケジューラ１５２と、変数マネジャ１５４と、制御プログラム１６０とを含む。
【０１５１】
スケジューラ１５２は、ＰＬＣエンジン１５０を構成する各プログラム（あるいは、それに対応するタスク）の実行タイミングや実行順序などを制御する。本実施の形態では、スケジューラ１５２は、上記に述べた優先度に従い処理を実行する実行管理部に相当する。ＰＬＣエンジン１５０に含まれる各タスクには実行周期が予め定められており、スケジューラ１５２は、その定められた実行周期および優先度に従いにプログラムを繰返し実行できるように制御する。
【０１５２】
変数マネジャ１５４は、ＰＬＣエンジン１５０において周期的に実行されるＩ／Ｏリフレッシュ処理によって更新されるデータを変数として管理する。より具体的には、変数マネジャ１５４は、制御装置１００の各部の動作状態を示すデータ群を含むシステム変数１５４２と、ＰＬＣエンジン１５０において実行されるユーザプログラムが書込み・読出しを行うデータ群を含むユーザ変数・デバイス変数１５４４とを保持および管理する。本実施の形態では、制御対象に関連付されるデータは、主に、ユーザ変数・デバイス変数１５４４として収集され得るデータを含む。
【０１５３】
制御プログラム１６０は、ユーザが任意に作成可能なユーザプログラムに相当し、典型的には、シーケンス／モーションプログラム１６２と、内部ＤＢアクセスプログラム１６４と、異常検知エンジンインターフェイス１６６と、特徴量生成プログラム１７４とを含む。制御プログラム１６０を構成するプログラムの命令は、一体のプログラムとして記述されてもよいし、複数のプログラムにそれぞれ分離して記述されてもよい。
【０１５４】
シーケンス／モーションプログラム１６２は、制御対象を制御するための論理演算および／または数値演算を行う命令を含む。内部ＤＢアクセスプログラム１６４は、ユーザ変数・デバイス変数１５４４に含まれる変数のうち、予め指定された変数のデータを、内部ＤＢ１３０を内部ＤＢ１３０に書込む。内部ＤＢ１３０に変数のデータを書込む場合に、時系列ＤＢプログラム１６３は、書込まれるデータを、タイムスタンプを付して時系列ＤＢ１３１に書込む。
【０１５５】
また、内部ＤＢアクセスプログラム１６４は、メモリカード１１６などの記憶媒体からドライブ２０４が読出す学習データ１３４および異常検知パラメータ１３６などを内部ＤＢ１３０に書込む。また、内部ＤＢアクセスプログラム１６４は、内部ＤＢ１３０の時系列ＤＢ１３１の生データ１３２、学習データ１３４、スコア値１４７などのデータを読出し、ドライブ２０４を介してメモリカード１１６などの記憶媒体に書込む。メモリカード１１６は、制御装置１００とサポート装置２００との間でデータを遣り取りするための記憶媒体として使用され得る。なお、当該データ遣り取りの記憶媒体は、メモリカード１１６に限定されず、例えばＵＳＢメモリなどであってもよい。
【０１５６】
異常検知エンジンインターフェイス１６６は、異常検知エンジン１４０を操作するための命令を含む。具体的には、異常検知エンジンインターフェイス１６６は、異常検知エンジン１４０に対して、異常検知パラメータ１３６を用いた特徴量の抽出を指示する命令と、異常検知パラメータ１３６を用いて特徴量を監視し、異常検知を指示する命令を含む。
【０１５７】
特徴量生成プログラム１７４は、予め指定された特徴量の生成手法に従って、ユーザ変数・デバイス変数１５４４の指定された変数を用いて特徴量を生成する命令を含む。サポート装置２００により、制御対象に応じて適切な特徴量の生成手法が決定される。すなわち、特徴量生成プログラム１７４は、制御対象に関連するデータから制御対象に生じる異常を検知するのに適した特徴量を生成する。
【０１５８】
内部ＤＢ１３０には、典型的には、図５の（１）生データ収集工程において収集される生データ１３２と、サポート装置２００から入力する学習データ１３４および異常検知パラメータ１３６と、図５の（５）異常検知工程において出力されスコア値１４７とが格納される。内部ＤＢ１３０の一部は、生データ１３２が、図５の（２）時系列ＤＢ格納工程において、収集（検知）される順にタイムスタンプが付されて格納されることで、時系列ＤＢ１３１を構成する。
【０１５９】
異常検知エンジン１４０は、図５の（４）特徴量抽出工程において必要な処理を実行するための特徴量抽出部１４２と、（５）異常検知工程において必要な処理を実行するための異常検知部１４４とを含む。特徴量抽出部１４２は、特徴量生成プログラム１７４の実行により生成される特徴量から、異常検知パラメータ１３６が示す種類の特徴量を抽出する。異常検知部１４４は、特徴量抽出部１４２が抽出した特徴量と、異常検知パラメータ１３６を用いて、制御対象における異常を検知する。そして、異常検知部１４４は、何らかの異常を検知すると、スコア値１４７を出力するとともに、その検知した内容を示すイベントログ１４６を出力する。
【０１６０】
一方のサポート装置２００について説明する。サポート装置２００は、データマイニングツール２２６がインストールされている。データマイニングツール２２６は、特徴量生成プログラム１７４および異常検知エンジン１４０を備える制御装置１００が収集した制御対象に関連した生データを基に、制御対象に生じる異常を検知するのに適した異常検知パラメータ１３６および学習データ１３４を生成するためのツールである。この異常検知パラメータ１３６および学習データ１３４を生成は、異常検知パラメータ１３６および学習データ１３４の決定と、調整（変更）の概念を含み得る。
【０１６１】
データマイニングツール２２６は、データアクセス部２２６２、決定部２２６４、ＰＬＣエミュレータ２２６０、ならびに上記に説明した評価部２２７０および調整部２２７１を備える。データマイニングツール２２６のうちＰＬＣエミュレータ２２６０は、主にプログラムとして提供されて、他の各部はプログラムまたは回路（ＡＳＩＣ，ＦＰＧＡなど）を含んで提供される。
【０１６２】
データアクセス部２２６２は、サポート装置２００が制御装置１００とデータを遣り取りするためのモジュールを含む。具体的には、データアクセス部２２６２は、メモリカード１１６などの記憶媒体からドライブ２０４を介して読出された時系列の生データ１３２、スコア値１４７およびイベントログ１４６を内部ＤＢ２２４に格納する、また、データアクセス部２２６２は、サポート装置２００が決定（調整）した異常検知パラメータ１３６、学習データ１３４などを内部ＤＢ２２４から読出し、ドライブ２０４を介してメモリカード１１６に格納する。図６の（１）生データ収集工程は、データアクセス部２２６２により実現される。
【０１６３】
決定部２２６４は、機械学習エンジンに相当し、機械学習を実施することにより、学習データ１３４を生成（決定）する学習データ決定部２２６１と、異常検知パラメータ１３６を決定するパラメータ決定部２２６３を備える。
【０１６４】
サポート装置２００は、制御装置１００が実行する処理（プログラム）をサポート装置２００のプロセッサ（コンピュータ）上でエミュレーションするエミュレータを備える。具体的には、サポート装置２００が備えるエミュレータは、ＰＬＣエンジン１５０をエミュレートするＰＬＣエミュレータ２２６０により実現される。
【０１６５】
ＰＬＣエミュレータ２２６０は、制御プログラム１６０をエミュレートする制御プログラムエミュレータ２２６５、制御装置１００のシステムプログラムをエミュレートするシステムプログラムエミュレータ２２６７、およびスケジューラ１５２をエミュレートするスケジューラエミュレータ２２６９を含む。
【０１６６】
制御プログラムエミュレータ２２６５は、監視処理をエミュレートする監視処理エミュレータ２２７２を含み、システムプログラムエミュレータ２２６７は、変数マネジャ１５４をエミュレートする変数マネジャエミュレータ２２６８を含む。監視処理エミュレータ２２７２は、異常検知エンジン１４０をエミュレートするエミュレータと、特徴量生成プログラム１７４をエミュレートする特徴量生成プログラムエミュレータ２２６６を含む。
【０１６７】
図６の（２）データマイニング工程は、データマイニングツール２２６により実現される。また（３）特徴量収集工程は、特徴量生成プログラムエミュレータ２２６６が、内部ＤＢ２２４の時系列の生データ１３２を用いて、特徴量生成プログラム１７４をエミュレートすることにより、実現される。
【０１６８】
このように、ＰＬＣエミュレータ２２６０は、制御装置１００における、「監視処理部」による制御対象の状態の監視処理を再現する。
【０１６９】
また、サポート装置２００は、上記に述べたように制御装置１００が保持する異常検知パラメータ１３６または学習データ１３４の妥当性を評価する評価部２２７０と、制御装置１００が保持する異常検知パラメータ１３６または学習データ１３４を調整（変更）するための調整部２２７１を備える。
【０１７０】
＜Ｋ．変形例＞
上記の実施の形態では、学習データ１３４はサポート装置２００が生成し、制御装置１００に設定するとしたが、学習データ１３４は、所与のもであってもよい。また、学習データ１３４は、制御対象が異常状態の場合の特徴量から生成されたものであってもよく、または正常状態である場合の特徴量から生成されたものであってもよい。
【０１７１】
また、サポート装置２００では、時系列の生データ１３２からの特徴量の生成は、特徴量生成プログラムエミュレータ２２６６を実行させることで生成したが、生成方法は、エミュレータを用いる方法に限定されない。例えば、サポート装置２００が、制御装置１００の特徴量生成プログラム１７４と同様の機能を備えるプログラムを実行することで、特徴量を生成するようにしてもよい。
【０１７２】
＜Ｊ．付記＞
上述したような本実施の形態は、以下のような技術思想を含む。
［構成１］
制御対象を制御する制御装置（１００）と、
前記制御装置とデータ交換可能な情報処理装置（２００）とを備える制御システム（１）であって、
前記制御装置は、
前記制御対象に係るシーケンス制御およびモーション制御の制御演算を実行する演算処理手段（１６２）と、
前記制御対象に関連付けられたデータの収集処理を実行する収集手段（１５４）と、
前記制御対象の状態の監視処理を実行する監視処理手段（１７４、１４０）と、を備え、
前記監視処理手段は、
前記収集手段が収集するデータから、特徴量を生成する特徴量生成処理を実行する特徴量生成手段（１７４）と、
前記特徴量生成手段が生成する特徴量と、機械学習の結果に基づき設定される前記制御対象に生じる異常の検知に適した異常検知パラメータ（１３６）とを用いて、前記制御対象に生じる異常を検知する異常検知処理を実行する検知手段（１４０）と、を備え、
前記情報処理装置は、
前記制御装置からの前記制御対象に関連付けられたデータを用いて、前記監視処理手段による監視処理のエミュレーションを実行する監視エミュレータ（２２７２）を備える、制御システム。
［請求項２］
前記制御装置は、
前記収集手段が収集する前記制御対象に関連付けられたデータ（１３２）を時系列に格納するデータベース（１３１）を、さらに備え、
前記情報処理装置の前記監視エミュレータが用いる前記制御対象に関連付けられたデータは、前記制御装置の前記データベースのデータを含む、構成１に記載の制御システム。
［請求項３］
前記情報処理装置は、
前記監視処理のエミュレーションの結果に基づき、前記制御装置に保持される前記異常検知パラメータは、前記制御対象に生じる異常の検知に適しているかの妥当性を評価する手段（２２７０）をさらに備える、構成１または２に記載の制御システム。
［請求項４］
前記制御装置は、
前記収集手段によるデータの収集および前記演算処理手段による制御演算を周期実行し、
前記周期実行において、前記監視処理手段による前記監視処理に比較して、前記収集手段によるデータの収集および前記演算処理手段による制御演算を高い優先度で実行させる周期実行処理を実行する実行管理手段（１５２）、をさらに備え、
前記情報処理装置は、
前記実行管理手段による前記周期実行処理をエミュレーションする周期実行エミュレータ（２２６９）を備え、
前記周期実行エミュレータによる周期実行処理のエミュレーションにおいては、前記監視エミュレータによる監視処理のエミュレーションが実行される、構成１から３のいずれか１項に記載の制御システム。
［請求項５］
前記情報処理装置は、
前記周期実行処理のエミュレーションの結果に基づき、前記制御装置に保持される前記異常検知パラメータは、前記制御対象に生じる異常の検知に適しているかの妥当性を評価する手段をさらに備える、構成４に記載の制御システム。
［請求項６］
前記周期実行処理のエミュレーションの結果に基づく前記妥当性の評価は、前記周期実行処理のエミュレーションにおける前記監視処理のエミュレーションにかかる時間と前記周期の長さの比較の結果に基づく当該妥当性の評価を含む、構成５に記載の制御システム。
［請求項７］
前記制御装置は、
前記収集手段が収集する前記制御対象に関連付けられたデータを時系列に格納するデータベース（１３１）を、さらに備え、
前記情報処理装置は、
前記制御装置の前記データベースの前記制御対象に関連付けられたデータの時系列データから特徴量を生成する時系列特徴量生成手段と、
前記時系列特徴量生成手段により生成される前記特徴量を用いて機械学習を実施することにより、前記制御対象に生じる異常を検知するのに適した異常検知パラメータを決定する決定手段（２２６４）を、さらに備える、構成１から６のいずれか１項に記載の制御システム。
［請求項８］
前記監視エミュレータは、
前記特徴量生成手段による特徴量生成処理のエミュレーションを実行する特徴量生成エミュレータ（２２６６）を含み、
前記時系列特徴量生成手段は、前記データベースの時系列データを用いて、前記特徴量生成エミュレータに前記特徴量生成処理のエミュレーションを実行させることにより、当該時系列データから特徴量を生成する手段を含む、構成７に記載の制御システム。
［請求項９］
前記制御対象に生じる異常の検知に適した異常検知パラメータは、前記特徴量生成手段が生成する特徴量を、前記制御対象に生じる異常を検知するのに適した特徴量のクラスに分類するためのしきい値（ＴＨ，３０４）を含む、構成１から８のいずれか１項に記載の制御システム。
［請求項１０］
前記制御装置は、前記制御対象に生じる異常を検知するのに適した特徴量のクラス（１３４）を保持し、
前記制御装置は、前記監視処理を実行中に、前記特徴量生成手段が生成する特徴量を用いて前記クラスの特徴量を更新する、請求項９に記載の制御システム。
［請求項１１］
制御対象を制御する制御装置（１００）とデータ交換可能な情報処理装置（２００）で実行される制御方法であって、
前記制御装置は、
前記制御対象に係るシーケンス制御およびモーション制御の制御演算を実行する演算処理手段（１６２）と、
前記制御対象に関連付けられたデータの収集処理を実行する収集手段（１５４）と、
前記制御対象の状態の監視処理を実行する監視処理手段（１７４、１４０）と、を備え、
前記監視処理手段は、
前記収集手段が収集するデータから、特徴量を生成する特徴量生成処理を実行する特徴量生成手段（１７４）と、
前記特徴量生成手段が生成する特徴量と、機械学習の結果に基づき設定される前記制御対象に生じる異常の検知に適した異常検知パラメータ（１３６）とを用いて、前記制御対象に生じる異常を検知する異常検知処理を実行する検知手段（１４０）と、を備え、
前記制御方法は、
前記制御装置から前記制御対象に関連付けられたデータを受付けるステップと、
前記制御装置から受付けた前記制御対象に関連付けられたデータを用いて、前記監視処理手段による監視処理のエミュレーションを実行するステップを備える、制御方法。
【０１７３】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した説明ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【０１７４】
１  制御システム、１００  制御装置、１３２  生データ、１３４  学習データ、１３６  異常検知パラメータ、１４０  異常検知エンジン、１４２  特徴量抽出部、１４４  異常検知部、１４６  イベントログ，１４７  スコア値，１５０  ＰＬＣエンジン、１５２  スケジューラ、１５４  変数マネジャ、１６０  制御プログラム、１６２  モーションプログラム、１６３  時系列ＤＢプログラム、１６４  内部ＤＢアクセスプログラム、１６６  異常検知エンジンインターフェイス、１７４  特徴量生成プログラム、２００  サポート装置、２０４  ドライブ、２２５  エミュレータツール、２２６  データマイニングツール、ＴＨ，３０４  しきい値、２２６０  ＰＬＣエミュレータ、２２６１  学習データ決定部、２２６２  データアクセス部、２２６３  パラメータ決定部、２２６４  決定部、２２６５  制御プログラムエミュレータ、２２６６  特徴量生成プログラムエミュレータ、２２６７  システムプログラムエミュレータ、２２６８  変数マネジャエミュレータ、２２６９  スケジューラエミュレータ、２２７０  評価部、２２７１  調整部、２２７２  監視処理エミュレータ、１３０  内部ＤＢ、２２４  内部ＤＢ、１３１  時系列ＤＢ。
【図１】
2019159697.tif 000003
【図２】
2019159697.tif 000004
【図３】
2019159697.tif 000005
【図４】
2019159697.tif 000006
【図５】
2019159697.tif 000007
【図６】
2019159697.tif 000008
【図７】
2019159697.tif 000009
【図８】
2019159697.tif 000010
【図９】
2019159697.tif 000011
【図１０】
2019159697.tif 000012
【図１１】
2019159697.tif 000013
【図１２】
2019159697.tif 000014