(58)【調査した分野】(Int.Cl.,DB名)
前記周期実行処理のエミュレーションの結果に基づく前記妥当性の評価は、前記周期実行処理のエミュレーションにおける前記監視処理のエミュレーションにかかる時間と前記周期の長さの比較の結果に基づく当該妥当性の評価を含む、請求項5に記載の制御システム。
【発明を実施するための形態】
【0031】
本発明の実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰返さない。
【0032】
<A.適用例>
まず、
図4を参照して、本発明が適用される場面の一例について説明する。
図4は、本実施の形態に係る制御システム1の適用場面の一例を示す模式図である。本実施の形態に係る制御システム1は、制御装置100は、任意の制御対象(例えば、生産ラインに備えられる製造装置や設備)を制御する。
【0033】
図4は、制御システム1の各装置が提供する機能が模式的に示されている。制御システム1は、制御対象を制御する制御装置100と、制御装置100とデータ交換可能なサポート装置200とを備える。制御装置100は、各種の設備や装置などの制御対象を制御するPLCなどの産業用コントローラに相当する。PLCは、制御演算を実行する一種のコンピュータである。サポート装置200は、制御装置100が備えるモジュール(典型的にはデータ、プログラムなど)を開発する環境または制御装置100の状態をモニタする環境などをユーザに提供する。サポート装置200は、「情報処理装置」の一実施例であって、典型的には汎用のコンピュータを含む。
【0034】
制御装置100は、制御対象に係るシーケンス制御およびモーション制御の制御演算を実行する演算処理部と、制御対象に関連付けられたデータ(生データ132)の収集処理を実行する収集部と、制御対象の状態の監視処理を実行する監視処理部と、を備える。
【0035】
生産ラインなどの稼働時に、PLCエンジン150は、上記の「制御演算」に相当するシーケンス/モーションプログラム162が実行しながら、「収集手段」に相当する変数マネジャ154を実行して、制御対象に関連付けられたデータを収集する。さらに、「監視処理部」は、収集データから特徴量を生成する特徴量生成処理を実行する特徴量生成部と、異常検知エンジン140を備える。
【0036】
特徴量生成部は、特徴量生成プログラム174に相当し、特徴量生成プログラム174が実行されることにより特徴量生成処理が実行される。異常検知エンジン140は、特徴量生成部が生成する特徴量と、内部DB130に保持された異常の検知に適した異常検知パラメータ136または学習データ134を用いて、制御対象に生じる異常を検知する異常検知処理を実行する。この異常検知パラメータ136または学習データ134は、サポート装置200の機械学習による学習結果に基づいている。
【0037】
サポート装置200は、制御装置100からの制御対象に関連付けられたデータを用いて、上記の「監視処理部」のエミュレーションを実行する監視処理エミュレータ2272を備える。監視処理エミュレータ2272は、サポート装置200のコンピュータが提供するプロセッサ環境で、上記の特徴量生成プログラム174および異常検知エンジン140のプログラムをエミュレートする命令を実行する。これにより、サポート装置200において、制御装置100の「監視処理部」がエミュレートされる。
【0038】
このように、サポート装置200では監視処理エミュレータ2272により、制御装置100の「監視処理部」による監視処理がエミュレーションされて、サポート装置200において制御装置100の「監視処理部」による監視処理を再現することができる。したがって、その再現内容を、制御装置100の内部で信頼性のある機械学習が実施できているかを確認する情報として提供することができる。
【0039】
制御装置100の「収集部」は、変数マネジャ154に相当する。変数マネジャ154は、周期的に実行されるI/Oリフレッシュ処理によって更新されるユーザ変数・デバイス変数1544のデータを、当該周期に同期して収集する。収集されるデータは上記の監視処理に用いられるとともに、時系列DB131に収集(検知)の順に従う時系列の生データ132として格納される。時系列DBプログラム163は、収集部が収集する生データ132に収集(検知)の順にタイムスタンプを付与して、時系列DB131に格納する。このタイムスタンプは、例えば制御周期単位、ワーク単位、またはタクト単位など可変に設定し得る時間単位で付与することができる。
【0040】
上記の再現性に関して、サポート装置200の監視処理エミュレータ2272が用いる制御対象に関連付けられたデータは、制御装置100の時系列DB131の時系列の生データ132を含む。このように、サポート装置200における上記のエミュレーションは、時系列DB131の時系列の生データ132を用いて実施される。
【0041】
したがって、サポート装置200は、時系列に格納(蓄積)される時系列データを用いてエミュレーションを実施することで、制御装置100の「監視処理部」による監視処理を、過去に遡り再現することが可能となる。
【0042】
上記の再現に関して、サポート装置200は、制御装置100と時系列DB131の時系列の生データ132を含むデータを遣り取りすることが可能である。この場合、例えば、生データ132が格納されたメモリカードなどの記憶媒体を介して、サポート装置200のデータアクセス部2262は制御装置100とデータを遣り取りし得る。
【0043】
このようなデータの遣り取りがネットワークを介さずに記憶媒体を介してなされることで、サポート装置200は、通信エラーによるデータ欠落を起こすことなく、時系列DB131の時系列の生データ132を受け取ることができる。したがって、サポート装置200では、エミュレーションによる上記の再現性の精度を高めることができる。
【0044】
なお、サポート装置200と制御装置100との間のデータの遣り取りは、記憶媒体を介する方法に限定されない。
【0045】
サポート装置200は、監視処理のエミュレーションの結果に基づき、制御装置100に保持されている異常検知パラメータ136が、制御対象に生じる異常の検知に適しているかの妥当性を評価する評価部2270をさらに備える。
【0046】
このような異常検知パラメータ136の妥当性の評価に関して、サポート装置200は、制御装置100の制御演算のサイクリック実行をエミュレートし、その結果に基づき当該妥当性を評価する。
【0047】
制御演算のサイクリック実行に関して、制御装置100は、制御対象に関連付けられたデータの収集(変数マネジャ154)および演算処理による制御演算(シーケンス/モーションプログラム162)を周期実行する。この周期実行において、制御装置100は、上記の「監視処理」(特徴量生成プログラム174および異常検知エンジン140)に比較して、制御対象に関連付けられたデータの収集および演算処理による制御演算を高い優先度で実行させる周期実行処理を実行する実行管理部(スケジューラ152)、をさらに備える。
【0048】
上記のサイクリック実行のエミュレーションに関して、サポート装置200はPLCエンジン150をエミュレートするPLCエミュレータ2260を備える。PLCエミュレータ2260は、上記の実行管理部(スケジューラ152)による上記の周期実行処理をエミュレーションする周期実行エミュレータ(スケジューラエミュレータ2269)を備える。この周期実行エミュレータによる周期実行処理のエミュレーションにおいては、PLCエミュレータ2260が備える制御プログラムエミュレータ2265(特徴量生成プログラムエミュレータ2266を含む監視処理エミュレータ2272)および変数マネジャエミュレータ2268を含むシステムプログラムエミュレータ2267によるエミュレーションが実行される。
【0049】
このように、サポート装置200では、制御装置100の制御演算のサイクリック実行のエミュレーションにおける監視処理のエミュレーションの実行結果(再現内容)に基づき、異常検知パラメータ136の妥当性を評価することができる。
【0050】
例えば、評価部2270は、周期実行処理のエミュレーションの結果に基づく上記の妥当性を評価する場合に、周期実行処理のエミュレーションにおける監視処理のエミュレーションにかかる時間とサイクリック実行の周期の長さの比較の結果に基づき、当該妥当性を評価することができる。
【0051】
以下、本開示のより具体的な応用例として、本実施の形態に係る制御システム1のより詳細な構成および処理について説明する。
【0052】
<B1.制御システムの全体構成例>
まず、本実施の形態に係る制御システム1の全体構成例について説明する。
【0053】
図1は、本実施の形態に係る制御システム1の全体構成例を示す模式図である。
図1を参照して、本実施の形態に係る制御システム1は、主たる構成要素として、制御対象を制御する制御装置100と、制御装置100に接続され得るサポート装置200とを含む。サポート装置200は、通信または記憶媒体を介して、制御装置100とデータを遣り取りする。
【0054】
制御装置100は、PLC(プログラマブルコントローラ)などの、一種のコンピュータとして具現化されてもよい。制御装置100は、第1フィールドネットワーク2を介してフィールド装置群10と接続されるとともに、第2フィールドネットワーク4を介して1または複数の表示装置400と接続される。さらに、制御装置100は、ローカルネットワーク6を介してデータロギング装置600に接続される。制御装置100は、それぞれのネットワークを介して、接続された装置との間でデータを遣り取りする。なお、データロギング装置600および表示装置400はオプショナルな構成であり、制御システム1の必須の構成ではない。
【0055】
制御装置100は、設備や機械を制御するための各種演算を実行する制御ロジック(以下、「PLCエンジン」とも称す。)を有している。PLCエンジンに加えて、制御装置100は、フィールド装置群10にて計測され、制御装置100へ転送されるデータ(以下、「入力データ」とも称す。)を収集する収集機能を有している。さらに、制御装置100は、収集した入力データを監視する監視機能も有している。これらの機能が制御装置100に実装されることで、制御対象に生じている現象をより短い周期で監視できる。
【0056】
具体的には、制御装置100に実装される内部データベース(以下、「内部DB」とも記す。)130が収集機能を提供し、制御装置100に実装される異常検知エンジン140が監視機能を提供する。内部DB130および異常検知エンジン140の詳細については後述する。
【0057】
第1フィールドネットワーク2および第2フィールドネットワーク4は、データの到達時間が保証される、定周期通信を行うネットワークを採用することが好ましい。このような定周期通信を行うネットワークとしては、EtherCAT(登録商標)、EtherNet/IP(登録商標)、DeviceNet(登録商標)、CompoNet(登録商標)などが知られている。
【0058】
フィールド装置群10は、制御対象または制御に関連する製造装置や生産ラインなど(以下、「フィールド」とも総称する。)から入力データを収集する装置を含む。このような入力データを収集する装置としては、入力リレーや各種センサなどが想定される。フィールド装置群10は、さらに、制御装置100にて生成される指令(以下、「出力データ」とも称す。)に基づいて、フィールドに対して何らかの作用を与える装置を含む。このようなフィールドに対して何らかの作用を与える装置としては、出力リレー、コンタクタ、サーボドライバおよびサーボモータ、その他任意のアクチュエータが想定される。これらのフィールド装置群10は、第1フィールドネットワーク2を介して、制御装置100との間で、入力データおよび出力データを含むデータを遣り取りする。
【0059】
図1に示す構成例においては、フィールド装置群10は、リモートI/O(Input/Output)装置12と、リレー群14と、画像センサ18およびカメラ20と、サーボドライバ22およびサーボモータ24とを含む。
【0060】
リモートI/O装置12は、第1フィールドネットワーク2を介して通信を行う通信部と、入力データの取得および出力データの出力を行うための入出力部(以下、「I/Oユニット」とも称す。)とを含む。このようなI/Oユニットを介して、制御装置100とフィールドとの間で入力データおよび出力データが遣り取りされる。
図1には、リレー群14を介して、入力データおよび出力データとして、デジタル信号が遣り取りされる例が示されている。
【0061】
I/Oユニットは、フィールドネットワークに直接接続されるようにしてもよい。
図1には、第1フィールドネットワーク2にI/Oユニット16が直接接続されている例を示す。
【0062】
画像センサ18は、カメラ20によって撮像された画像データに対して、パターンマッチングなどの画像計測処理を行って、その処理結果を制御装置100へ送信する。
【0063】
サーボドライバ22は、制御装置100からの出力データ(例えば、位置指令など)に従って、サーボモータ24を駆動する。
【0064】
上述のように、第1フィールドネットワーク2を介して、制御装置100とフィールド装置群10との間でデータが遣り取りされることになるが、これらの遣り取りされるデータは、数百μsecオーダ〜数十msecオーダのごく短い周期で更新されることになる。なお、このような遣り取りされるデータの更新処理を、「I/Oリフレッシュ処理」と称することもある。
【0065】
また、第2フィールドネットワーク4を介して制御装置100と接続される表示装置400は、ユーザからの操作を受けて、制御装置100に対してユーザ操作に応じたコマンドなどを送信するとともに、制御装置100での演算結果などをグラフィカルに表示する。
【0066】
データロギング装置600は、制御装置100とローカルネットワーク6を介して接続され、制御装置100との間で必要なデータを遣り取りする。データロギング装置600は、例えば、データベース機能を有しており、制御装置100が発生するイベントログなどを時系列に収集する。ローカルネットワーク6には、イーサネット(登録商標)などの汎用プロトコルが実装されてもよい。すなわち、典型的には、ローカルネットワーク6におけるデータの送信周期または更新周期は、フィールドネットワーク(第1フィールドネットワーク2および第2フィールドネットワーク4)におけるデータの送信周期または更新周期より遅くてもよい。但し、ローカルネットワーク6は、フィールドネットワークに比較して、一度により多くのデータを送信することができるようにしてもよい。
【0067】
サポート装置200は、制御装置100が制御対象を制御するために必要な準備を支援する装置である。具体的には、サポート装置200は、制御装置100で実行されるプログラムの開発環境(プログラム作成編集ツール、パーサ、コンパイラなど)、制御装置100および制御装置100に接続される各種デバイスのパラメータ(コンフィギュレーション)を設定するための設定環境、生成したユーザプログラムを制御装置100へ送信する機能、制御装置100上で実行されるユーザプログラムなどをオンラインで修正・変更する機能、などを提供する。
【0068】
さらに、本実施の形態に係るサポート装置200は、制御装置100に実装される内部DB130の後述する時系列の生データ132を用いて異常検知パラメータ136などを決定するとともに、異常検知エンジン140をエミュレートする環境を提供する。このエミュレーションの詳細は、後述する。
【0069】
<B.各装置のハードウェア構成例>
次に、本実施の形態に係る制御システム1を構成する主要な装置のハードウェア構成例について説明する。
【0070】
(b1:制御装置100のハードウェア構成例)
図2は、本実施の形態に係る制御システム1を構成する制御装置100のハードウェア構成例を示すブロック図である。
図2を参照して、制御装置100は、CPU(Central Processing Unit)やMPU(Micro-Processing Unit)などのプロセッサ102と、チップセット104と、主記憶装置106と、二次記憶装置108と、ローカルネットワークコントローラ110と、USB(Universal Serial Bus)コントローラ112と、メモリカードインターフェイス114と、内部バスコントローラ122と、フィールドバスコントローラ118,120と、I/Oユニット124−1,124−2,…とを含む。
【0071】
プロセッサ102は、二次記憶装置108に格納された各種プログラムを読み出して、主記憶装置106に展開して実行することで、制御対象に応じた制御、および、後述するような各種処理を実現する。チップセット104は、プロセッサ102と各コンポーネントを制御することで、制御装置100全体としての処理を実現する。
【0072】
二次記憶装置108には、PLCエンジンを実現するためのシステムプログラムに加えて、PLCエンジンを利用して実行されるユーザプログラムが格納される。さらに、二次記憶装置108には、内部DB130および異常検知エンジン140を実現するためのプログラムも格納される。
【0073】
ローカルネットワークコントローラ110は、ローカルネットワーク6を介した他の装置との間のデータの遣り取りを制御する。USBコントローラ112は、USB接続を介してサポート装置200との間のデータの遣り取りを制御する。
【0074】
メモリカードインターフェイス114は、メモリカード116を着脱可能に構成されており、メモリカード116に対してデータを書込み、メモリカード116から各種データ(ユーザプログラムやトレースデータなど)を読出すことが可能になっている。
【0075】
内部バスコントローラ122は、制御装置100に搭載されるI/Oユニット124−1,124−2,…との間でデータを遣り取りするインターフェイスである。
【0076】
フィールドバスコントローラ118は、第1フィールドネットワーク2を介した他の装置との間のデータの遣り取りを制御する。同様に、フィールドバスコントローラ120は、第2フィールドネットワーク4を介した他の装置との間のデータの遣り取りを制御する。
【0077】
図2には、プロセッサ102がプログラムを実行することで必要な機能が提供される構成例を示したが、これらの提供される機能の一部または全部を、専用のハードウェア回路(例えば、ASIC(Application Specific Integrated Circuit)またはFPGA(Field-Programmable Gate Array)など)を用いて実装してもよい。あるいは、制御装置100の主要部を、汎用的なアーキテクチャに従うハードウェア(例えば、汎用パソコンをベースとした産業用パソコン)を用いて実現してもよい。この場合には、仮想化技術を用いて、用途の異なる複数のOS(Operating System)を並列的に実行させるとともに、各OS上で必要なアプリケーションを実行させるようにしてもよい。
【0078】
(b2:サポート装置200のハードウェア構成例)
次に、本実施の形態に係るサポート装置200は、一例として、汎用的なアーキテクチャに従うハードウェア(例えば、汎用パソコン)を用いてプログラムを実行することで実現される。
【0079】
図3は、本実施の形態に係る制御システム1を構成するサポート装置200のハードウェア構成例を示すブロック図である。
図3を参照して、サポート装置200は、CPUやMPUなどのプロセッサ202と、ドライブ204と、主記憶装置206と、二次記憶装置208と、USBコントローラ212と、ローカルネットワークコントローラ214と、入力部216と、表示部218とを含む。これらのコンポーネントはバス220を介して接続される。
【0080】
プロセッサ202は、二次記憶装置208に格納された各種プログラムを読み出して、主記憶装置206に展開して実行することで、後述するような各種処理を実現する。
【0081】
二次記憶装置208は、例えば、HDD(Hard Disk Drive)やSSD(Flash Solid State Drive)などで構成される。二次記憶装置208には、典型的には、サポート装置200において実行されるユーザプログラムの作成、作成したプログラムのデバッグ、システム構成の定義、各種パラメータの設定などを行うための図示しない開発プログラムと、後述するデータマイニングツール226とPLCエミュレータ2260を実行するための命令コードからなるエミュレータツール225を含む各種プログラムが格納される。また、二次記憶装置208には、データマイニングツール226に関連したデータを格納する内部DB224の領域が設けられる。二次記憶装置208には、OSおよび他の必要なプログラムが格納されてもよい。この実施の形態では、データマイニングツール226は、サポート装置200においてデータマイニングを実現するためのプログラムまたはプログラムとデータの組合せを含む。
【0082】
ドライブ204は、メモリカード116または記憶媒体205を着脱可能に構成される。ドライブ204は、メモリカード116または記憶媒体205に対してデータを書込み、メモリカード116または記憶媒体205から各種データ(ユーザプログラム、トレースデータまたは時系列データなど)を読出すことが可能になっている。記憶媒体205は、例えばコンピュータ読取可能なプログラムを非一過的に格納する記憶媒体205(例えば、DVD(Digital Versatile Disc)などの光学記憶媒体)を含む。メモリカード116または記憶媒体205から、その中に格納されたプログラムまたはデータが読取られて二次記憶装置208などの内部の記憶領域にインストールされる。
【0083】
サポート装置200で実行される各種プログラムは、コンピュータ読取可能なメモリカード116または記憶媒体205を介してインストールされてもよいが、ネットワーク上のサーバー装置などからダウンロードする形でインストールするようにしてもよい。また、本実施の形態に係るサポート装置200が提供する機能は、OSが提供するモジュールの一部を利用する形で実現される場合もある。
【0084】
USBコントローラ212は、USB接続を介して制御装置100との間のデータの遣り取りを制御する。ローカルネットワークコントローラ214は、任意ネットワークを介した他の装置との間のデータの遣り取りを制御する。USBコントローラ212が、制御装置100と遣り取りするデータは、例えば時系列DB131の時系列の生データ132、異常検知パラメータ136および学習データ134を含む。
【0085】
入力部216は、キーボードやマウスなどで構成され、ユーザ操作を受付ける。表示部218は、ディスプレイ、各種インジケータなどで構成され、プロセッサ202からの処理結果などを出力する。サポート装置200には、プリンタが接続されてもよい。
【0086】
図3には、プロセッサ202がプログラムを実行することで必要な機能が提供される構成例を示したが、これらの提供される機能の一部または全部を、専用のハードウェア回路(例えば、ASICまたはFPGAなど)を用いて実装してもよい。
【0087】
(b3:データロギング装置600のハードウェア構成例)
次に、本実施の形態に係る制御システム1を構成するデータロギング装置600は、一例として、汎用的なファイルサーバまたはデータベースサーバを用いて実現できる。このような装置のハードウェア構成については公知であるので、ここでは、その詳細な説明は行わない。
【0088】
(b4:表示装置400のハードウェア構成例)
次に、本実施の形態に係る制御システム1を構成する表示装置400は、HMI(Human Machine Interface)装置と称されるものであり、専用機として実装された構成を採用してもよいし、汎用的なアーキテクチャに従うハードウェア(例えば、汎用パソコンをベースとした産業用パソコン)を用いて実現してもよい。
【0089】
<C.異常検知機能>
次に、本実施の形態に係る制御システム1が提供する異常検知機能について説明する。
【0090】
図5は、本実施の形態に係る制御装置100を用いた異常検知の手順を説明するための模式図である。
図5に示す異常検知の手順は、全体として5つの工程からなる。
【0091】
具体的には、まず、(1)生データ収集工程が実施される。(1)生データ収集工程においては、制御装置100が取り扱うデータのうち、異常検知に係る解析に使用するデータ(生データ132)が内部DB130に書込まれる。(1)生データ収集工程は、後述する、制御装置100の内部DBアクセスプログラム164が実行されることで実現される。
【0092】
制御装置100においては、フィールドとの間で遣り取りされるデータ(入力データおよび出力データ)ならびに内部データの各々に対してユニークな変数名が割り当てられており、それぞれの変数名を利用してユーザプログラムなどが記述される。すなわち、制御装置100においては、変数プログラミングが可能な環境が提供される。そのため、以下の説明においては、「変数の指定」または「変数の特定」という表現は、対象となるデータを特定することと実質的に同義で用いることとする。なお、本発明の範囲は、変数プログラミング可能な構成に限定されるものではなく、メモリ上のアドレスを直接指定するような構成であっても、技術的範囲に含まれ得る。
【0093】
次に、(2)収集される生データ132を時系列DB131に時系列に格納する時系列DB格納工程が実施される。(2)時系列DB格納工程においては、時系列DBプログラム163は、収集される生データ132にタイムスタンプを付与しながら、時系列DB131に格納する。タイムスタンプは、生データ132が収集(検出)された時間に相当する。
【0094】
次に、(3)特徴量生成工程が実施される。(3)特徴量生成工程においては、フィールドとの間で遣り取りされるデータおよび内部データのうち、対象となるデータに対して、予め決定された特徴量の生成手法が適用されることで、特徴量が順次生成される。(3)特徴量生成工程は、後述する、制御装置100の特徴量生成プログラム174が実行されることで実現される。
【0095】
この実施の形態では、典型的には、サポート装置200により制御対象に生じる異常の検知に適した異常検知手法が決定される。異常検知手法は、どのようなデータをどのようなロジックで監視すれば、目的の異常を検知できるのかという手法を示すものである。本実施の形態においては、異常検知手法は、フィールドからの1または複数の生データ132からの特徴量の生成手法を含む。サポート装置200は、データマイニングツールを実行することで異常検知手法を決定する。決定される異常検知手法に応じて、特徴量を生成するための設定またはパラメータなどが出力される。
【0096】
次に、(4)特徴量抽出工程が実施される。(4)特徴量抽出工程においては、(3)特徴量生成工程において生成された特徴量から、異常検知パラメータ136が示す特徴量の種類、すなわち制御対象に生じる異常の検知に適した特徴量の種類に基づき、当該種類の特徴量が抽出(選択)される。(4)特徴量抽出工程は、異常検知エンジン140の特徴量抽出部142により実現される。
【0097】
次に、(5)異常検知工程が実施される。(5)異常検知工程においては、(4)特徴量抽出工程で選択された種類の特徴量について、所定周期毎または所定イベント毎に生成される当該特徴量の監視、すなわち、当該特徴量から、異常検知パラメータ136および学習データ134に基づき異常が検知される。具体的には、特徴量抽出工程で選択された種類の特徴量が、学習データ134が示すクラスに分類されるべき度合を示すスコア値147が算出される。スコア値147と異常検知パラメータ136が示すしきい値とを比較し、スコア値147がしきい値をまたぐとき(超えるとき)、異常の検知がなされる。また、このときのスコア値147は内部DB130に格納される。また、異常の検知がなされると、イベントログ146が出力される。(5)異常検知工程は、異常検知エンジン140の異常検知部144により実現される。
【0098】
異常検知パラメータ136は、サポート装置200が、データマイニングツール226を実行することで決定する、制御対象に生じる異常を検知するのに適した、すなわち監視対象となる特徴量の種類と上記のしきい値とを含む。
【0099】
制御装置100における監視処理は、
図5の(4)特徴量抽出工程および(5)異常検知工程を含み得る。なお、(2)時系列DB格納工程は、
図5では、説明のために一連の工程に中に含めて示したが、他の工程とは並行して実行可能な工程である。
【0100】
以上のような(1)、(3)〜(5)の工程によって、制御装置100は、異常検知パラメータ136および学習データ134を用いて、制御対象の監視処理、すなわち制御対象に生じる異常の検知に適した特徴量の選択、および選択された特徴量を用い制御対象に生じる異常の検知を実施することができる。
【0101】
<D.データマイニングツール>
次に、本実施の形態に係る制御システム1が提供するデータマイニングツールについて説明する。本実施の形態では、サポート装置200が備えるデータマイニングツール226を用いて、制御装置100で収集した制御対象に関連付けられた生データ132をもとに、監視処理に必要な設定(異常検知パラメータ136および学習データ134)がなされる。
【0102】
図6は、本実施の形態に係るサポート装置200におけるデータマイニングの手順を説明するための模式図である。
図6では、データマイニングの手順である工程(1)〜(4)に関連付けて、サポート装置200が実施する特徴量の監視工程(5)と評価工程(6)が示される。
【0103】
まず、(1)生データ収集工程が実施される。(1)生データ収集工程においては、制御装置100の時系列DB131の生データ132が例えばメモリカード116を介して、サポート装置200に転送されて、例えば2次記憶装置208等の内部DB224に格納される。(1)生データ収集工程では、サポート装置200のデータアクセス部2262により実現される。具体的には、データアクセス部2262はドライブ204を介してメモリカード116をアクセス(読出)し、読出された生データ132を、例えば二次記憶装置208等の内部DB224に格納する。
【0104】
次に、(2)データマイニング工程が実施される。(2)データマイニング工程においては、内部DB224に書込まれた時系列の生データ132が読込まれ、異常検知手法を決定する。具体的には、データマイニングツール226を用いてユーザがサポート装置200を操作し、内部DB224に収集されている生データ132を読出して解析することで、特徴量の生成手法および異常検知手法を決定する。
【0105】
次に、(3)特徴量生成工程が実施される。(3)特徴量生成工程においては、(2)データマイニング工程で決定された特徴量の生成手法が適用されることで、内部DB224の時系列の生データ132から特徴量が生成される。
【0106】
(3)特徴量生成工程は、サポート装置200の特徴量生成プログラムエミュレータ2266が、内部DB224の時系列の生データ132を用いて特徴量生成プログラム174をエミュレーションすることで実現される。
【0107】
次に、(4)特徴量学習工程が実施される。(4)特徴量学習工程においては、(3)特徴量生成工程において生成された特徴量に対して機械学習が実施され、この機械学習の結果から、異常検知パラメータ136および学習データ134が決定される。(4)特徴量学習工程は、サポート装置200のパラメータ決定部2263は異常検知パラメータ136を決定し、学習データ決定部2261は学習データ134を決定する。この実施の形態では、異常検知パラメータ136は、制御対象に生じる異常を検知するのに適した特徴量の種類または判断指標(典型的には、しきい値など)を含む。(4)特徴量学習工程は、サポート装置200の機械学習エンジンによる決定部2264により実現される。
【0108】
特徴量学習工程における特徴量の生成手法の一例について説明する。
図7は、本実施の形態に係る制御システム1のデータマイニング工程において決定可能な特徴量を示すリストの一例を模式的に示す図である。
図7に示すような複数の特徴量が予め定義されており、サポート装置200の内部DB224に収集されている生データ132に対して、いずれの種類の特徴量を用いるのが好ましいのかが決定される。
【0109】
具体的には、パラメータ決定部2263は、内部DB224に収集された生データ132を用いて、
図7に示されるそれぞれの特徴量が算出され、その特徴量の相関性または関係性のより大きなものが候補として決定される。また、学習データ決定部2261は、パラメータ決定部2263が決定した種類の特徴量の集合から構成されるクラスである学習データ134を生成する。学習データ134の生成の詳細は後述する。
【0110】
あるいは、典型的な手法として、各種の主成分分析を採用してもよい。主成分分析の手法としては、公知の任意の方法を採用できる。
【0111】
以上のような(1)〜(4)の工程によって、サポート装置200は、異常検知に用いる特徴量の定義、および、異常であると判断するための異常検知パラメータ136および学習データ134などを決定することができる。
【0112】
さらに、サポート装置200では、(5)特徴量監視工程および(6)評価工程が実施される。(5)特徴量監視工程では、制御装置100から時系列の生データ132、スコア値147およびイベントログ146がメモリカード116などを介して取得されて、内部DB224などに格納される。(5)特徴量監視工程におけるデータの取得は、例えばデータアクセス部2262により実現される。
【0113】
(6)評価工程では、異常検知に用いられる、すなわち制御装置100において保持されている異常検知パラメータ136または学習データ134が、制御対象に生じる異常の検知に適しているかの当性が評価される。(6)評価工程は、典型的には、サポート装置200の評価部2270により実現される。
【0114】
(7)調整工程では、調整部2271により制御装置100において保持されている異常検知パラメータ136または学習データ134の調整(変更)が実施される。例えば、調整部2271は、評価部2270の評価結果に基づき当該調整を実施する。サポート装置200の評価部2270と調整部2271による評価と調整については後述する。
【0115】
<E.特徴量生成工程および特徴量学習工程>
図6の(3)特徴量収集工程および(4)特徴量学習工程に用いられる制御プログラム(ユーザプログラム)について
図8を参照して説明する。
【0116】
図8は、本実施の形態に係る特徴量生成プログラムおよび学習データ決定部のプログラムの一例を模式的に示す図である。
図4の(3)特徴量収集工程において、特徴量生成プログラムエミュレータ2266によりエミュレートされる特徴量生成プログラム174は、典型的には、特徴量生成ファンクションブロック1742を用いて記述されてもよい。特徴量生成ファンクションブロック1742は、生データ132から特徴量を生成する機能モジュールである。
【0117】
特徴量生成ファンクションブロック1742に対しては、特徴量の算出に用いられる変数を指定する入力変数指定1744と、算出された特徴量の出力先を示す出力先指定1746とが定義される。
【0118】
特徴量生成ファンクションブロック1742の出力段(出力先指定1746)には、機械学習エンジンの学習データ決定部2261に対応する処理を実行するためのファンクションブロック1682が接続されてもよい。すなわち、特徴量生成ファンクションブロック1742の出力先指定1746とファンクションブロック1682の学習対象の特徴量となる変数を指定する入力変数指定1684とが接続される。
【0119】
ファンクションブロック1682の出力段(学習結果出力先指定1686)には、機械学習の結果得られる情報である、すなわち学習データ134が出力される。
【0120】
図9は、本実施の形態に係る学習データ134の一例を模式的に示す図である。
図9は、生データ132から生成される特徴量(通常は、複数の特徴量から構成される特徴量ベクトル)のサンプルを対応する座標空間にプロットした、特徴量で表現される特徴量空間の一例を示す。この特徴量空間が学習データ134に相当する。
【0121】
各特徴量には、通常、ラベル(正常または異常)が付与されており、ユーザは、各特徴量に付与されているラベルを参照しながら、制御対象が正常状態にある特徴量の集合から構成されるクラス、および/または、制御対象が異常状態にある特徴量の集合から構成されるクラスを定義するしきい値304により規定される破線で示す範囲を決定する。例えば、ユーザは、正常状態におけるN個のサンプルの平均位置である基準位置(図中のxマーク)を指定するとともに、基準位置を基準として破線の範囲を指定することでしきい値304を指定ようにしてもよい。しきい値304の破線の範囲内に存在するサンプルの集合が正常状態または異常状態におけるサンプル集合から構成されるクラス(すなわち、正常状態の学習データ134または異常状態の学習データ134)に相当する。
【0122】
図9に示す例では、しきい値304を規定するための破線の位置および範囲などはユーザ操作によって指定され得る。指定されたしきい値304は、異常検知パラメータ136に含まれる。
【0123】
図9は、特徴量空間上に、しきい値304の破線の範囲を設定するためのユーザインターフェイス画面の一例としても提供され得る。
図9(A)に示すように、特徴量空間上に予め収集されているサンプルがプロットされており、ユーザは、このサンプルの分布を参照しながら、入力部216のマウスなどを操作して、破線の範囲を設定する。さらに、
図9(B)に示すように、マウスなどをさらに操作して、破線の範囲の大きさなどを調整することもできる。このように、ユーザは、異常検知パラメータ136に含めるべきしきい値304を可変に設定することができる。
【0124】
異常検知パラメータ136を設定できれば、
図6のサポート装置200における(3)特徴量収集工程および(4)特徴量学習工程は完了する。このように、サポート装置200においてデータマイニングツール226が実行されることで、機械学習による学習結果に基づいて異常検知パラメータ136および学習データ134を決定する機能が提供される。
【0125】
<F.監視処理>
本実施の形態に係る制御装置100における監視処理について説明する。
【0126】
図10は、本実施の形態に係る制御装置100が実施する監視処理のプログラムの一例を模式的に示す図である。制御装置100における監視処理に含まれる(3)特徴量生成工程において実行される特徴量生成プログラム174は、上述の
図8と同様に、特徴量生成ファンクションブロック1742を用いて記述されている。
【0127】
図10の特徴量生成ファンクションブロック1742の出力段(出力先指定1746)には、ファンクションブロック1702が接続される。特徴量生成ファンクションブロック1742の出力先指定1746とファンクションブロック1702の監視対象の特徴量となる変数を指定する入力変数指定1704とが接続される。さらに、ファンクションブロック1702には、異常検知パラメータ136が備える異常検知のしきい値304に相当する変数値TH(以下、しきい値THともいう)が定義される。ファンクションブロック1702は、異常検知エンジン140の機能モジュールに相当する。
【0128】
ファンクションブロック1702は、入力変数指定1704において指定された変数(特徴量)と、異常検知パラメータ136において指定されたしきい値304に対応したしきい値THとを制御周期毎に比較して、特徴量がしきい値THを跨ぐような事象が生じると、異常検知出力先指定1708として定義された変数(スコア値147)を設定する。ユーザプログラムにおいては、異常検知出力先指定1708として指定された変数(スコア値147)の値に基づいて、制御対象の設備や機械での異常を即座に検知できる。
【0129】
ここでは、スコア値147は、例えば、特徴量の学習データ134のクラスの基準位置(
図9のxマーク参照)との距離、または特徴量としきい値THとの距離などのような、特徴量の学習データ134のクラスからの乖離の程度を含み得る。このようなスコア値147は、正常状態の学習データ134から構成されるクラス、または学習データ134から構成されるクラスに分類されるべき度合いを示し得る。
【0130】
上記の
図10に示した制御装置100の監視処理のプログラム(すなわち、特徴量生成プログラム174および異常検知エンジン140のファンクションブロック)は、サポート装置200の監視処理エミュレータ2272がエミュレーションするプログラムに相当する。したがって、サポート装置200では、制御装置100から受付ける時系列の生データ132を用いて監視処理エミュレータ2272によるエミュレーションを実施することにより、制御装置100において、(1)生データ収集工程(
図5参照)で収集した生データ132を用いてなされた監視処理を再現することができる。
【0131】
<G.評価工程と調整工程と>
図11は、本実施の形態に係る評価工程と調整工程を説明するための模式図である。本実施の形態では、
図6の(6)評価工程では、評価部2270は、制御装置100に保持されている異常検知パラメータ136または学習データ134が、制御対象に生じる異常を検知するのに適しているかの妥当性(適当性)を評価する。
【0132】
図11を参照して、評価工程を説明する。制御装置100において、11(A)の生データ132から生成される特徴量と、異常検知パラメータ136および学習データ134とを用いて監視処理が実施される。監視処理による出力されるスコア値147が、
図11(B)のようにしきい値THを跨いだために、
図11(C)のように「異常」のイベントログ146がなされる。
【0133】
イベントログ146が発生したとき、評価部2270は、制御装置100に保持される異常検知パラメータ136が制御対象に生じる異常の検知に適しているかの妥当性を評価する。たとえば、イベントログ146が異常を示すが、オペレータが制御対象を観察すると正常(異常なし)であったケースを例示して説明する。
【0134】
具体的には、評価部2270は、制御装置100から取得する時系列の生データ132(
図11(D)の破線部)のうちから、イベントログ146の「異常」が記録された時間に該当する時間の生データ132(図中の破線部分)を抽出する。評価部2270は、抽出された生データ132と内部DB224の異常検知パラメータ136および学習データ134を用いて監視処理エミュレータ2272に監視処理のエミュレーションを実行させる。このエミュレーションの結果は、
図11(B),(D)のように異常ありを示す。評価部2270は、この監視処理のエミュレーション結果から、異常検知パラメータ136は妥当でないとの評価を出力する。
【0135】
調整部2271は、例えば、ユーザーの操作に従い
図9で示したしきい値304を変更する。これにより、内部DB224の異常検知パラメータ136に含まれるしきい値304は、変更される。
【0136】
評価部2270は、抽出された生データ132(
図11(D)の破線部)と内部DB224の変更後のしきい値304を有した異常検知パラメータ136および学習データ134を用いて監視処理エミュレータ2272に監視処理のエミュレーションを再度実行させる。このエミュレーションの結果は、
図11(E),(F)のように異常なしを示す場合、評価部2270は、監視処理エミュレータ2272による監視処理のエミュレーション結果から、調整(変更)後の異常検知パラメータ136は妥当であるとの評価を出力する。なお、監視処理エミュレータ2272に監視処理のエミュレーションを再度実行した場合に、評価部2270は、監視処理のエミュレーション結果から、調整(変更)後の異常検知パラメータ136は妥当でないと評価する場合は、上記の調整部2271と評価部2270の処理が繰返される。
【0137】
調整部2271による調整方法は、しきい値304の変更に限定されない。例えば、学習データ134(
図9の特徴量空間)を、規定する特徴量の種類または個数を調整することで、生成しなおし、再度、監視処理エミュレータ2272による監視処理のエミュレーションを含む評価部2270による評価処理を実行してもよい。
【0138】
ユーザは、調整終了後の異常検知パラメータ136または学習データ134を、メモリカード116を介して、制御装置100に転送する。これにより、制御装置100は、調整後の(すなわち妥当性を有した)異常検知パラメータ136または学習データ134を用いて、内部DB130に保持していた元の異常検知パラメータ136または学習データ134を更新することができる。
【0139】
(g1:学習データの追加学習による評価と調整)
本実施の形態では、制御装置100は、学習データ134について追加学習を実施することもできる。具体的には、制御装置100は、制御対象に生じる異常を検知するのに適した特徴量のクラス(学習データ134)を保持し、制御装置100は、監視処理を実行中に、特徴量生成プログラム174が生成する特徴量を用いてクラスに含まれる特徴量を更新する。例えば、当該生成された特徴量から抽出した特徴量を用いて学習データ134に当該特徴量を追加する。
【0140】
このように、制御装置100の生産ラインが稼働時に収集される生データ132の特徴量が追加されることで、学習データ134は変化する。評価部2270は、上記に評価処理を変化後の学習データ134を用いて実施してもよい。評価処理の結果に基づき、調整部2271は、異常検知パラメータ136または学習データ134を調整する。これにより、学習データ134を、制御装置100側で生成させて、その妥当性をサポート装置200の評価部2270で評価することができる。
【0141】
(g2:制御周期による評価)
図12は、本実施の形態に係る制御装置100における優先度に応じた処理の実行について説明するための模式図である。
図12を参照して、制御装置100においては、システム周期毎に制御演算が実行されるとする。制御演算としては、シーケンス/モーションプログラム162が実行されることにより実施される制御演算を含む。具体的には、各種条件に応じた処理を実行するシーケンス演算、サーボドライバあるいはサーボモータを駆動するためのモーション演算などを含む。このような制御演算は、典型的には、制御装置100のプロセッサ102が、二次記憶装置108に格納されているユーザプログラムを読出して主記憶装置106に展開して実行することで提供される。すなわち、制御装置100のプロセッサ102およびユーザプログラムは、制御対象を制御するための制御演算を周期的に実行する制御演算処理を提供する。
【0142】
一例として、優先度を異ならせて2つのタスク(高優先タスクおよび低優先タスク)が設定されているとする。高優先タスクには、システム周期毎に必ず実行される処理(例えば、I/Oリフレッシュ処理および制御演算)が登録されており、低優先タスクには、複数のシステム周期に亘って実行されてもよい処理あるいは実行タイミングを厳密に保証しなくてもよい処理(例えば、監視処理)が登録されている。
【0143】
図12に示すように、各システム周期においては、まず、高優先タスクとして登録されている、I/Oリフレッシュ処理および制御演算の実行が完了すると、低優先タスクとして登録されている監視処理が実行される。低優先タスクは、各システム周期において、高優先タスクが実行されていない期間において実行される。そのため、低優先タスクとして登録されている処理を1回のシステム周期で完了させることができないこともある。
図12に示す例では、監視処理は3回のシステム周期に亘って実行されていることが分かる。なお、制御装置100が複数のプロセッサ102を有している場合、あるいは、制御装置100のプロセッサ102が複数のコアを有している場合などには、各タスクが分散的に実行されることもある。
【0144】
このように、監視処理部による監視処理(特徴量生成プログラム174および異常検知エンジン140)に比較して、変数マネジャ154(収集部)による生データ132の収集(I/Oリフレッシュ処理)および演算処理部による制御演算(シーケンス/モーションプログラム162)を高い優先度で実行させる実行管理部は、スケジューラ152により実現される。
【0145】
本実施の形態では、サポート装置200において、PLCエミュレータ2260によりスケジューラ152による上記の優先度に従う実行管理がスケジューラエミュレータ2269によりエミュレーションされる。スケジューラエミュレータ2269によりエミュレーションでは、変数マネジャ154(収集部)による生データ132の収集(I/Oリフレッシュ処理)および演算処理部による制御演算(シーケンス/モーションプログラム162)をエミュレートするシステムプログラムエミュレータ2267、および監視処理をエミュレートする監視処理エミュレータ2272によるエミュレーションが実行される。
【0146】
評価部2270は、スケジューラエミュレータ2269のエミュレーションによるスケジューリング結果から、上記の妥当性を評価する。
【0147】
例えば、エミュレーションの結果から、監視処理の完了に要する周期を検出し、検出周期数が予め定められた周期数を超えていれるケースであれば、例えば異常検知パラメータ136は妥当でないと評価することができる。具体的には、異常検知パラメータ136が指定する特徴量の種類または個数が多すぎて、監視処理の完了に要する周期が予め定められた周期数を超えていることが想定され得て、その場合は評価部2270は、異常検知パラメータ136は妥当ではないとの評価を出力する。
【0148】
<H.制御システム1が提供する機能>
再び
図4を参照して、本実施の形態に係る制御システム1の各装置が提供する機能を説明する。
図4において、制御装置100の構成におけるカッコ内の数字は、
図5に示す(1)〜(6)の工程における処理に対応している。また、
図4において、サポート装置200の構成におけるカッコ内の数字は、
図6に示す(1)〜(7)の工程における処理に対応している。
【0149】
図4を参照して、制御装置100は、内部DB130および異常検知エンジン140に加えて、PLCエンジン150を有している。これらの機能は、基本的には、制御装置100のプロセッサ102(
図2)がプログラムを実行することで実現される。このプロセッサ102がプログラムを実行するための環境を提供するために、制御装置100にはOS190もインストールされる。
【0150】
PLCエンジン150は、典型的には、OS190上でシステムプログラムおよびユーザプログラムが実行されることで提供される。より具体的には、PLCエンジン150は、スケジューラ152と、変数マネジャ154と、制御プログラム160とを含む。
【0151】
スケジューラ152は、PLCエンジン150を構成する各プログラム(あるいは、それに対応するタスク)の実行タイミングや実行順序などを制御する。本実施の形態では、スケジューラ152は、上記に述べた優先度に従い処理を実行する実行管理部に相当する。PLCエンジン150に含まれる各タスクには実行周期が予め定められており、スケジューラ152は、その定められた実行周期および優先度に従いにプログラムを繰返し実行できるように制御する。
【0152】
変数マネジャ154は、PLCエンジン150において周期的に実行されるI/Oリフレッシュ処理によって更新されるデータを変数として管理する。より具体的には、変数マネジャ154は、制御装置100の各部の動作状態を示すデータ群を含むシステム変数1542と、PLCエンジン150において実行されるユーザプログラムが書込み・読出しを行うデータ群を含むユーザ変数・デバイス変数1544とを保持および管理する。本実施の形態では、制御対象に関連付されるデータは、主に、ユーザ変数・デバイス変数1544として収集され得るデータを含む。
【0153】
制御プログラム160は、ユーザが任意に作成可能なユーザプログラムに相当し、典型的には、シーケンス/モーションプログラム162と、内部DBアクセスプログラム164と、異常検知エンジンインターフェイス166と、特徴量生成プログラム174とを含む。制御プログラム160を構成するプログラムの命令は、一体のプログラムとして記述されてもよいし、複数のプログラムにそれぞれ分離して記述されてもよい。
【0154】
シーケンス/モーションプログラム162は、制御対象を制御するための論理演算および/または数値演算を行う命令を含む。内部DBアクセスプログラム164は、ユーザ変数・デバイス変数1544に含まれる変数のうち、予め指定された変数のデータを、内部DB130を内部DB130に書込む。内部DB130に変数のデータを書込む場合に、時系列DBプログラム163は、書込まれるデータを、タイムスタンプを付して時系列DB131に書込む。
【0155】
また、内部DBアクセスプログラム164は、メモリカード116などの記憶媒体からドライブ204が読出す学習データ134および異常検知パラメータ136などを内部DB130に書込む。また、内部DBアクセスプログラム164は、内部DB130の時系列DB131の生データ132、学習データ134、スコア値147などのデータを読出し、ドライブ204を介してメモリカード116などの記憶媒体に書込む。メモリカード116は、制御装置100とサポート装置200との間でデータを遣り取りするための記憶媒体として使用され得る。なお、当該データ遣り取りの記憶媒体は、メモリカード116に限定されず、例えばUSBメモリなどであってもよい。
【0156】
異常検知エンジンインターフェイス166は、異常検知エンジン140を操作するための命令を含む。具体的には、異常検知エンジンインターフェイス166は、異常検知エンジン140に対して、異常検知パラメータ136を用いた特徴量の抽出を指示する命令と、異常検知パラメータ136を用いて特徴量を監視し、異常検知を指示する命令を含む。
【0157】
特徴量生成プログラム174は、予め指定された特徴量の生成手法に従って、ユーザ変数・デバイス変数1544の指定された変数を用いて特徴量を生成する命令を含む。サポート装置200により、制御対象に応じて適切な特徴量の生成手法が決定される。すなわち、特徴量生成プログラム174は、制御対象に関連するデータから制御対象に生じる異常を検知するのに適した特徴量を生成する。
【0158】
内部DB130には、典型的には、
図5の(1)生データ収集工程において収集される生データ132と、サポート装置200から入力する学習データ134および異常検知パラメータ136と、
図5の(5)異常検知工程において出力されスコア値147とが格納される。内部DB130の一部は、生データ132が、
図5の(2)時系列DB格納工程において、収集(検知)される順にタイムスタンプが付されて格納されることで、時系列DB131を構成する。
【0159】
異常検知エンジン140は、
図5の(4)特徴量抽出工程において必要な処理を実行するための特徴量抽出部142と、(5)異常検知工程において必要な処理を実行するための異常検知部144とを含む。特徴量抽出部142は、特徴量生成プログラム174の実行により生成される特徴量から、異常検知パラメータ136が示す種類の特徴量を抽出する。異常検知部144は、特徴量抽出部142が抽出した特徴量と、異常検知パラメータ136を用いて、制御対象における異常を検知する。そして、異常検知部144は、何らかの異常を検知すると、スコア値147を出力するとともに、その検知した内容を示すイベントログ146を出力する。
【0160】
一方のサポート装置200について説明する。サポート装置200は、データマイニングツール226がインストールされている。データマイニングツール226は、特徴量生成プログラム174および異常検知エンジン140を備える制御装置100が収集した制御対象に関連した生データを基に、制御対象に生じる異常を検知するのに適した異常検知パラメータ136および学習データ134を生成するためのツールである。この異常検知パラメータ136および学習データ134を生成は、異常検知パラメータ136および学習データ134の決定と、調整(変更)の概念を含み得る。
【0161】
データマイニングツール226は、データアクセス部2262、決定部2264、PLCエミュレータ2260、ならびに上記に説明した評価部2270および調整部2271を備える。データマイニングツール226のうちPLCエミュレータ2260は、主にプログラムとして提供されて、他の各部はプログラムまたは回路(ASIC,FPGAなど)を含んで提供される。
【0162】
データアクセス部2262は、サポート装置200が制御装置100とデータを遣り取りするためのモジュールを含む。具体的には、データアクセス部2262は、メモリカード116などの記憶媒体からドライブ204を介して読出された時系列の生データ132、スコア値147およびイベントログ146を内部DB224に格納する、また、データアクセス部2262は、サポート装置200が決定(調整)した異常検知パラメータ136、学習データ134などを内部DB224から読出し、ドライブ204を介してメモリカード116に格納する。
図6の(1)生データ収集工程は、データアクセス部2262により実現される。
【0163】
決定部2264は、機械学習エンジンに相当し、機械学習を実施することにより、学習データ134を生成(決定)する学習データ決定部2261と、異常検知パラメータ136を決定するパラメータ決定部2263を備える。
【0164】
サポート装置200は、制御装置100が実行する処理(プログラム)をサポート装置200のプロセッサ(コンピュータ)上でエミュレーションするエミュレータを備える。具体的には、サポート装置200が備えるエミュレータは、PLCエンジン150をエミュレートするPLCエミュレータ2260により実現される。
【0165】
PLCエミュレータ2260は、制御プログラム160をエミュレートする制御プログラムエミュレータ2265、制御装置100のシステムプログラムをエミュレートするシステムプログラムエミュレータ2267、およびスケジューラ152をエミュレートするスケジューラエミュレータ2269を含む。
【0166】
制御プログラムエミュレータ2265は、監視処理をエミュレートする監視処理エミュレータ2272を含み、システムプログラムエミュレータ2267は、変数マネジャ154をエミュレートする変数マネジャエミュレータ2268を含む。監視処理エミュレータ2272は、異常検知エンジン140をエミュレートするエミュレータと、特徴量生成プログラム174をエミュレートする特徴量生成プログラムエミュレータ2266を含む。
【0167】
図6の(2)データマイニング工程は、データマイニングツール226により実現される。また(3)特徴量収集工程は、特徴量生成プログラムエミュレータ2266が、内部DB224の時系列の生データ132を用いて、特徴量生成プログラム174をエミュレートすることにより、実現される。
【0168】
このように、PLCエミュレータ2260は、制御装置100における、「監視処理部」による制御対象の状態の監視処理を再現する。
【0169】
また、サポート装置200は、上記に述べたように制御装置100が保持する異常検知パラメータ136または学習データ134の妥当性を評価する評価部2270と、制御装置100が保持する異常検知パラメータ136または学習データ134を調整(変更)するための調整部2271を備える。
【0170】
<K.変形例>
上記の実施の形態では、学習データ134はサポート装置200が生成し、制御装置100に設定するとしたが、学習データ134は、所与のもであってもよい。また、学習データ134は、制御対象が異常状態の場合の特徴量から生成されたものであってもよく、または正常状態である場合の特徴量から生成されたものであってもよい。
【0171】
また、サポート装置200では、時系列の生データ132からの特徴量の生成は、特徴量生成プログラムエミュレータ2266を実行させることで生成したが、生成方法は、エミュレータを用いる方法に限定されない。例えば、サポート装置200が、制御装置100の特徴量生成プログラム174と同様の機能を備えるプログラムを実行することで、特徴量を生成するようにしてもよい。
【0172】
<J.付記>
上述したような本実施の形態は、以下のような技術思想を含む。
[構成1]
制御対象を制御する制御装置(100)と、
前記制御装置とデータ交換可能な情報処理装置(200)とを備える制御システム(1)であって、
前記制御装置は、
前記制御対象に係るシーケンス制御およびモーション制御の制御演算を実行する演算処理手段(162)と、
前記制御対象に関連付けられたデータの収集処理を実行する収集手段(154)と、
前記制御対象の状態の監視処理を実行する監視処理手段(174、140)と、を備え、
前記監視処理手段は、
前記収集手段が収集するデータから、特徴量を生成する特徴量生成処理を実行する特徴量生成手段(174)と、
前記特徴量生成手段が生成する特徴量と、機械学習の結果に基づき設定される前記制御対象に生じる異常の検知に適した異常検知パラメータ(136)とを用いて、前記制御対象に生じる異常を検知する異常検知処理を実行する検知手段(140)と、を備え、
前記情報処理装置は、
前記制御装置からの前記制御対象に関連付けられたデータを用いて、前記監視処理手段による監視処理のエミュレーションを実行する監視エミュレータ(2272)を備える、制御システム。
[請求項2]
前記制御装置は、
前記収集手段が収集する前記制御対象に関連付けられたデータ(132)を時系列に格納するデータベース(131)を、さらに備え、
前記情報処理装置の前記監視エミュレータが用いる前記制御対象に関連付けられたデータは、前記制御装置の前記データベースのデータを含む、構成1に記載の制御システム。
[請求項3]
前記情報処理装置は、
前記監視処理のエミュレーションの結果に基づき、前記制御装置に保持される前記異常検知パラメータは、前記制御対象に生じる異常の検知に適しているかの妥当性を評価する手段(2270)をさらに備える、構成1または2に記載の制御システム。
[請求項4]
前記制御装置は、
前記収集手段によるデータの収集および前記演算処理手段による制御演算を周期実行し、
前記周期実行において、前記監視処理手段による前記監視処理に比較して、前記収集手段によるデータの収集および前記演算処理手段による制御演算を高い優先度で実行させる周期実行処理を実行する実行管理手段(152)、をさらに備え、
前記情報処理装置は、
前記実行管理手段による前記周期実行処理をエミュレーションする周期実行エミュレータ(2269)を備え、
前記周期実行エミュレータによる周期実行処理のエミュレーションにおいては、前記監視エミュレータによる監視処理のエミュレーションが実行される、構成1から3のいずれか1項に記載の制御システム。
[請求項5]
前記情報処理装置は、
前記周期実行処理のエミュレーションの結果に基づき、前記制御装置に保持される前記異常検知パラメータは、前記制御対象に生じる異常の検知に適しているかの妥当性を評価する手段をさらに備える、構成4に記載の制御システム。
[請求項6]
前記周期実行処理のエミュレーションの結果に基づく前記妥当性の評価は、前記周期実行処理のエミュレーションにおける前記監視処理のエミュレーションにかかる時間と前記周期の長さの比較の結果に基づく当該妥当性の評価を含む、構成5に記載の制御システム。
[請求項7]
前記制御装置は、
前記収集手段が収集する前記制御対象に関連付けられたデータを時系列に格納するデータベース(131)を、さらに備え、
前記情報処理装置は、
前記制御装置の前記データベースの前記制御対象に関連付けられたデータの時系列データから特徴量を生成する時系列特徴量生成手段と、
前記時系列特徴量生成手段により生成される前記特徴量を用いて機械学習を実施することにより、前記制御対象に生じる異常を検知するのに適した異常検知パラメータを決定する決定手段(2264)を、さらに備える、構成1から6のいずれか1項に記載の制御システム。
[請求項8]
前記監視エミュレータは、
前記特徴量生成手段による特徴量生成処理のエミュレーションを実行する特徴量生成エミュレータ(2266)を含み、
前記時系列特徴量生成手段は、前記データベースの時系列データを用いて、前記特徴量生成エミュレータに前記特徴量生成処理のエミュレーションを実行させることにより、当該時系列データから特徴量を生成する手段を含む、構成7に記載の制御システム。
[請求項9]
前記制御対象に生じる異常の検知に適した異常検知パラメータは、前記特徴量生成手段が生成する特徴量を、前記制御対象に生じる異常を検知するのに適した特徴量のクラスに分類するためのしきい値(TH,304)を含む、構成1から8のいずれか1項に記載の制御システム。
[請求項10]
前記制御装置は、前記制御対象に生じる異常を検知するのに適した特徴量のクラス(134)を保持し、
前記制御装置は、前記監視処理を実行中に、前記特徴量生成手段が生成する特徴量を用いて前記クラスの特徴量を更新する、請求項9に記載の制御システム。
[請求項11]
制御対象を制御する制御装置(100)とデータ交換可能な情報処理装置(200)で実行される制御方法であって、
前記制御装置は、
前記制御対象に係るシーケンス制御およびモーション制御の制御演算を実行する演算処理手段(162)と、
前記制御対象に関連付けられたデータの収集処理を実行する収集手段(154)と、
前記制御対象の状態の監視処理を実行する監視処理手段(174、140)と、を備え、
前記監視処理手段は、
前記収集手段が収集するデータから、特徴量を生成する特徴量生成処理を実行する特徴量生成手段(174)と、
前記特徴量生成手段が生成する特徴量と、機械学習の結果に基づき設定される前記制御対象に生じる異常の検知に適した異常検知パラメータ(136)とを用いて、前記制御対象に生じる異常を検知する異常検知処理を実行する検知手段(140)と、を備え、
前記制御方法は、
前記制御装置から前記制御対象に関連付けられたデータを受付けるステップと、
前記制御装置から受付けた前記制御対象に関連付けられたデータを用いて、前記監視処理手段による監視処理のエミュレーションを実行するステップを備える、制御方法。
【0173】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した説明ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。