本発明の実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰返さない。
<A.制御システムの全体構成例>
まず、本実施の形態に係る制御装置を含む制御システム1の全体構成例について説明する。
図1は、本実施の形態に係る制御システム1の全体構成例を示す模式図である。図1を参照して、本実施の形態に係る制御システム1は、主たる構成要素として、制御対象を制御する制御装置100と、制御装置100に接続されるサポート装置200とを含む。
制御装置100は、PLC(プログラマブルコントローラ)などの、一種のコンピュータとして具現化されてもよい。制御装置100は、第1フィールドネットワーク2を介し
てフィールド装置群10と接続されるとともに、第2フィールドネットワーク4を介して1または複数の表示装置400と接続される。さらに、制御装置100は、ローカルネットワーク6を介してデータロギング装置300に接続される。制御装置100は、それぞれのネットワークを介して、接続された装置との間でデータを遣り取りする。なお、データロギング装置300および表示装置400はオプショナルな構成であり、制御システム1の必須の構成ではない。
制御装置100は、設備や機械を制御するための各種演算を実行する制御ロジック(以下、「PLCエンジン」とも称す。)を有している。PLCエンジンに加えて、制御装置100は、フィールド装置群10にて計測され、制御装置100へ転送されるデータ(以下、「入力データ」とも称す。)を収集する収集機能を有している。さらに、制御装置100は、収集した入力データを監視する監視機能も有している。これらの機能が制御装置100に実装されることで、制御対象に生じている現象をより短い周期で監視できる。
具体的には、制御装置100に実装される内部データベース(以下、「内部DB」とも記す。)130が収集機能を提供し、制御装置100に実装される機械学習エンジン140が監視機能を提供する。内部DB130および機械学習エンジン140の詳細については後述する。
第1フィールドネットワーク2および第2フィールドネットワーク4は、データの到達時間が保証される、定周期通信を行うネットワークを採用することが好ましい。このような定周期通信を行うネットワークとしては、EtherCAT(登録商標)、EtherNet/IP(登録商標)、DeviceNet(登録商標)、CompoNet(登録商標)などが知られている。
フィールド装置群10は、制御対象または制御に関連する製造装置や生産ラインなど(以下、「フィールド」とも総称する。)から入力データを収集する装置を含む。このような入力データを収集する装置としては、入力リレーや各種センサなどが想定される。フィールド装置群10は、さらに、制御装置100にて生成される指令(以下、「出力データ」とも称す。)に基づいて、フィールドに対して何らかの作用を与える装置を含む。このようなフィールドに対して何らかの作用を与える装置としては、出力リレー、コンタクタ、サーボドライバおよびサーボモータ、その他任意のアクチュエータが想定される。これらのフィールド装置群10は、第1フィールドネットワーク2を介して、制御装置100との間で、入力データおよび出力データを含むデータを遣り取りする。
図1に示す構成例においては、フィールド装置群10は、リモートI/O(Input/Output)装置12と、リレー群14と、画像センサ18およびカメラ20と、サーボドライバ22およびサーボモータ24とを含む。
リモートI/O装置12は、第1フィールドネットワーク2を介して通信を行う通信部と、入力データの取得および出力データの出力を行うための入出力部(以下、「I/Oユニット」とも称す。)とを含む。このようなI/Oユニットを介して、制御装置100とフィールドとの間で入力データおよび出力データが遣り取りされる。図1には、リレー群14を介して、入力データおよび出力データとして、デジタル信号が遣り取りされる例が示されている。
I/Oユニットは、フィールドネットワークに直接接続されるようにしてもよい。図1には、第1フィールドネットワーク2にI/Oユニット16が直接接続されている例を示す。
画像センサ18は、カメラ20によって撮像された画像データに対して、パターンマッチングなどの画像計測処理を行って、その処理結果を制御装置100へ送信する。
サーボドライバ22は、制御装置100からの出力データ(例えば、位置指令など)に従って、サーボモータ24を駆動する。
上述のように、第1フィールドネットワーク2を介して、制御装置100とフィールド装置群10との間でデータが遣り取りされることになるが、これらの遣り取りされるデータは、数百μsecオーダ〜数十msecオーダのごく短い周期で更新されることになる。なお、このような遣り取りされるデータの更新処理を、「I/Oリフレッシュ処理」と称することもある。
また、第2フィールドネットワーク4を介して制御装置100と接続される表示装置400は、ユーザからの操作を受けて、制御装置100に対してユーザ操作に応じたコマンドなどを送信するとともに、制御装置100での演算結果などをグラフィカルに表示する。
データロギング装置300は、制御装置100とローカルネットワーク6を介して接続され、制御装置100との間で必要なデータを遣り取りする。データロギング装置300は、例えば、データベース機能を有しており、制御装置100が発生するイベントログなどを時系列に収集する。ローカルネットワーク6には、イーサネット(登録商標)などの汎用プロトコルが実装されてもよい。すなわち、典型的には、ローカルネットワーク6におけるデータの送信周期または更新周期は、フィールドネットワーク(第1フィールドネットワーク2および第2フィールドネットワーク4)におけるデータの送信周期または更新周期より遅くてもよい。但し、ローカルネットワーク6は、フィールドネットワークに比較して、一度により多くのデータを送信することができるようにしてもよい。
サポート装置200は、制御装置100が制御対象を制御するために必要な準備を支援する装置である。具体的には、サポート装置200は、制御装置100で実行されるプログラムの開発環境(プログラム作成編集ツール、パーサ、コンパイラなど)、制御装置100および制御装置100に接続される各種デバイスのパラメータ(コンフィギュレーション)を設定するための設定環境、生成したユーザプログラムを制御装置100へ送信する機能、制御装置100上で実行されるユーザプログラムなどをオンラインで修正・変更する機能、などを提供する。
さらに、本実施の形態に係るサポート装置200は、制御装置100に実装される内部DB130および機械学習エンジン140に対する設定操作を行う機能を有している。これらの機能については、後述する。
<B.各装置のハードウェア構成例>
次に、本実施の形態に係る制御システム1を構成する主要な装置のハードウェア構成例について説明する。
(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,…とを含む。
プロセッサ102は、二次記憶装置108に格納された各種プログラムを読み出して、主記憶装置106に展開して実行することで、制御対象に応じた制御、および、後述するような各種処理を実現する。チップセット104は、プロセッサ102と各コンポーネントを制御することで、制御装置100全体としての処理を実現する。
二次記憶装置108には、PLCエンジンを実現するためのシステムプログラムに加えて、PLCエンジンを利用して実行されるユーザプログラムが格納される。さらに、二次記憶装置108には、内部DB130および機械学習エンジン140を実現するためのプログラムも格納される。
ローカルネットワークコントローラ110は、ローカルネットワーク6を介した他の装置との間のデータの遣り取りを制御する。USBコントローラ112は、USB接続を介してサポート装置200との間のデータの遣り取りを制御する。
メモリカードインターフェイス114は、メモリカード116を着脱可能に構成されており、メモリカード116に対してデータを書込み、メモリカード116から各種データ(ユーザプログラムやトレースデータなど)を読出すことが可能になっている。
内部バスコントローラ122は、制御装置100に搭載されるI/Oユニット124−1,124−2,…との間でデータを遣り取りするインターフェイスである。
フィールドバスコントローラ118は、第1フィールドネットワーク2を介した他の装置との間のデータの遣り取りを制御する。同様に、フィールドバスコントローラ120は、第2フィールドネットワーク4を介した他の装置との間のデータの遣り取りを制御する。
図2には、プロセッサ102がプログラムを実行することで必要な機能が提供される構成例を示したが、これらの提供される機能の一部または全部を、専用のハードウェア回路(例えば、ASIC(Application Specific Integrated Circuit)またはFPGA(Field-Programmable Gate Array)など)を用いて実装してもよい。あるいは、制御装置100の主要部を、汎用的なアーキテクチャに従うハードウェア(例えば、汎用パソコンをベースとした産業用パソコン)を用いて実現してもよい。この場合には、仮想化技術を用いて、用途の異なる複数のOS(Operating System)を並列的に実行させるとともに、各OS上で必要なアプリケーションを実行させるようにしてもよい。
(b2:サポート装置200のハードウェア構成例)
次に、本実施の形態に係るサポート装置200は、一例として、汎用的なアーキテクチャに従うハードウェア(例えば、汎用パソコン)を用いてプログラムを実行することで実現される。
図3は、本実施の形態に係る制御システム1を構成するサポート装置200のハードウェア構成例を示すブロック図である。図3を参照して、サポート装置200は、CPUやMPUなどのプロセッサ202と、光学ドライブ204と、主記憶装置206と、二次記憶装置208と、USBコントローラ212と、ローカルネットワークコントローラ214と、入力部216と、表示部218とを含む。これらのコンポーネントはバス220を介して接続される。
プロセッサ202は、二次記憶装置208に格納された各種プログラムを読み出して、
主記憶装置206に展開して実行することで、後述するような各種処理を実現する。
二次記憶装置208は、例えば、HDD(Hard Disk Drive)やSSD(Flash Solid State Drive)などで構成される。二次記憶装置208には、典型的には、サポート装置200において実行されるユーザプログラムの作成、作成したプログラムのデバッグ、システム構成の定義、各種パラメータの設定などを行うための開発プログラム222と、機械学習の対象となる変数を指定するためのパラメータ設定ツール224と、制御装置100に収集されるデータから目的の情報を抽出するためのデータマイニングツール226とが格納される。二次記憶装置208には、OSおよび他の必要なプログラムが格納されてもよい。
サポート装置200は、光学ドライブ204を有しており、コンピュータ読取可能なプログラムを非一過的に格納する記録媒体205(例えば、DVD(Digital Versatile Disc)などの光学記録媒体)から、その中に格納されたプログラムが読取られて二次記憶装置208などにインストールされる。
サポート装置200で実行される各種プログラムは、コンピュータ読取可能な記録媒体205を介してインストールされてもよいが、ネットワーク上のサーバ装置などからダウンロードする形でインストールするようにしてもよい。また、本実施の形態に係るサポート装置200が提供する機能は、OSが提供するモジュールの一部を利用する形で実現される場合もある。
USBコントローラ212は、USB接続を介して制御装置100との間のデータの遣り取りを制御する。ローカルネットワークコントローラ214は、任意ネットワークを介した他の装置との間のデータの遣り取りを制御する。
入力部216は、キーボードやマウスなどで構成され、ユーザ操作を受付ける。表示部218は、ディスプレイ、各種インジケータ、プリンタなどで構成され、プロセッサ202からの処理結果などを出力する。
図3には、プロセッサ202がプログラムを実行することで必要な機能が提供される構成例を示したが、これらの提供される機能の一部または全部を、専用のハードウェア回路(例えば、ASICまたはFPGAなど)を用いて実装してもよい。
(b3:データロギング装置300のハードウェア構成例)
次に、本実施の形態に係る制御システム1を構成するデータロギング装置300は、一例として、汎用的なファイルサーバまたはデータベースサーバを用いて実現できる。このような装置のハードウェア構成については公知であるので、ここでは、その詳細な説明は行わない。
(b4:表示装置400のハードウェア構成例)
次に、本実施の形態に係る制御システム1を構成する表示装置400は、HMI(Human Machine Interface)装置と称されるものであり、専用機として実装された構成を採用
してもよいし、汎用的なアーキテクチャに従うハードウェア(例えば、汎用パソコンをベースとした産業用パソコン)を用いて実現してもよい。
<C.制御システムが提供する異常検知機能>
次に、本実施の形態に係る制御システム1が提供する異常検知機能について説明する。
図4は、本実施の形態に係る制御システム1を用いた異常検知の手順を説明するための
模式図である。図4に示す異常検知の手順は、全体として6つの工程からなる。
具体的には、まず、(1)生データ収集工程が実施される。(1)生データ収集工程においては、制御装置100が取り扱うデータのうち、異常検知に係る解析に使用するデータが内部DB130に書込まれる。(1)生データ収集工程は、後述する、制御装置100の内部DB書込プログラムが実行されることで実現される。
制御装置100においては、フィールドとの間で遣り取りされるデータ(入力データおよび出力データ)ならびに内部データの各々に対してユニークな変数名が割り当てられており、それぞれの変数名を利用してユーザプログラムなどが記述される。すなわち、制御装置100においては、変数プログラミングが可能な環境が提供される。そのため、以下の説明においては、「変数の指定」または「変数の特定」という表現は、対象となるデータを特定することと実質的に同義で用いることとする。なお、本発明の範囲は、変数プログラミング可能な構成に限定されるものではなく、メモリ上のアドレスを直接指定するような構成であっても、技術的範囲に含まれ得る。
次に、(2)データマイニング工程が実施される。(2)データマイニング工程においては、内部DB130に書込まれたデータが読込まれ、異常検知手法が決定される。異常検知手法は、どのようなデータをどのようなロジックで監視すれば、目的の異常を検知できるのかという手法を示すものである。本実施の形態においては、異常検知手法は、フィールドからの1または複数のデータからの特徴量の生成手法を含む。(2)データマイニング工程は、典型的には、後述する、サポート装置200のデータマイニングツールが実行されることで実現される。決定された異常検知手法に応じて、特徴量を生成するための設定やパラメータなどが出力される。
次に、(3)特徴量収集工程が実施される。(3)特徴量収集工程においては、フィールドとの間で遣り取りされるデータおよび内部データのうち、対象となるデータに対して、先の(2)データマイニング工程において決定された特徴量の生成手法が適用されることで、特徴量が順次生成される。(3)特徴量収集工程は、後述する、制御装置100の特徴量生成プログラムが実行されることで実現される。
次に、(4)特徴量学習工程が実施される。(4)特徴量学習工程においては、(3)特徴量収集工程において収集された特徴量に対して機械学習処理が実施され、この機械学習処理の結果から、異常検知に用いる異常検知パラメータ(典型的には、しきい値など)が決定される。(4)特徴量学習工程は、後述する、制御装置100の機械学習エンジンによって提供される。
以上のような(1)〜(4)の工程によって、異常検知に用いる特徴量の定義、および、異常であると判断するための異常検知パラメータなどを決定できる。そして、異常の発生有無を監視する工程が実施される。具体的には、(5)特徴量監視工程が実施される。(5)特徴量監視工程においては、所定周期毎または所定イベント毎に生成される特徴量の監視、すなわち、生成される特徴量が予め定められた異常検知パラメータにより規定された条件に合致するか否かが判断される。そして、異常が検知されると、その検知された異常を示すイベントログが出力される。
(5)特徴量監視工程において何らかの異常が検知された場合には、その妥当性を評価する工程が実施されてもよい。すなわち、何らかの異常検知に応じて、(6)評価工程が実施されてもよい。(6)評価工程においては、異常検知結果に基づいて、検知された異常の妥当性が評価される。(6)評価工程は、典型的には、後述する、サポート装置200のデータマイニングツールが実行されることで実現される。(6)評価工程での評価結
果に応じて、異常検知に用いる異常検知パラメータなどが調整されてもよい。
図5は、本実施の形態に係る制御システム1の各装置が提供する機能を説明するための模式図である。図5に示す模式図において、カッコ内の数字は、図5に示す(1)〜(6)の工程における処理に対応している。
制御装置100は、内部DB130および機械学習エンジン140に加えて、PLCエンジン150を有している。これらの機能は、基本的には、制御装置100のプロセッサ102(図2)がプログラムを実行することで実現される。このプロセッサ102がプログラムを実行するための環境を提供するために、制御装置100にはOS190もインストールされる。
PLCエンジン150は、典型的には、OS190上でシステムプログラムおよびユーザプログラムが実行されることで提供される。つまり、本発明のある局面によれば、一種のコンピュータにて実行されることで、PLCエンジン150を含む制御装置100を実現するようなプログラムを含み得る。
より具体的には、PLCエンジン150は、スケジューラ152と、変数マネジャ154と、制御プログラム160とを含む。
スケジューラ152は、PLCエンジン150を構成する各プログラム(あるいは、それに対応するタスク)の実行タイミングや実行順序などを制御する。PLCエンジン150に含まれる各タスクには実行周期が予め定められており、スケジューラ152は、その定められた実行周期に従ってタスクを繰返し実行できるように制御する。
変数マネジャ154は、PLCエンジン150において周期的に実行されるI/Oリフレッシュ処理によって更新されるデータを変数として管理する。より具体的には、変数マネジャ154は、制御装置100の各部の動作状態を示すデータ群を含むシステム変数1542と、PLCエンジン150において実行されるユーザプログラムが書込み・読出しを行うデータ群を含むユーザ変数・デバイス変数1544と、異常検知に用いる異常検知パラメータ1546とを保持および管理する。
異常検知パラメータ1546については、サポート装置200のPLC変数アクセスプログラム2242によるアクセスおよび更新が可能になっている。つまり、変数マネジャ154は、異常検知パラメータ1546を保持するとともに、外部装置からの要求に応じて、保持されている異常検知パラメータ1546を更新する機能を提供する。
制御プログラム160は、ユーザが任意に作成可能なユーザプログラムに相当し、典型的には、シーケンス/モーションプログラム162と、内部DB書込プログラム164と、機械学習エンジンインターフェイス166と、特徴量生成プログラム174とを含む。制御プログラム160を構成するプログラムの命令は、一体のプログラムとして記述されてもよいし、複数のプログラムにそれぞれ分離して記述されてもよい。
シーケンス/モーションプログラム162は、制御対象を制御するための論理演算および/または数値演算を行う命令を含む。内部DB書込プログラム164は、ユーザ変数・デバイス変数1544に含まれる変数のうち、予め指定された変数を内部DB130に書込む。
機械学習エンジンインターフェイス166は、機械学習エンジン140を操作するための命令を含む。具体的には、機械学習エンジンインターフェイス166は、学習要求プロ
グラム168と、監視要求プログラム170と、シリアライズモジュール172とを含む。
つまり、機械学習エンジンインターフェイス166は、機械学習エンジン140に対して、機械学習を指示する命令を含み、監視要求プログラム170は、機械学習エンジンインターフェイス166は、異常検知パラメータ1546を用いて特徴量を監視し、異常検知を指示する命令を含む。
シリアライズモジュール172は、学習要求プログラム168および監視要求プログラム170と、機械学習エンジン140との間の通信量を低減するためのシリアライズ処理を実行する。後述するように、シリアライズモジュール172は、特徴量生成プログラム174の実行により生成される特徴量をデータ圧縮した上で、学習機能142および異常検知機能144に与えるデータ圧縮機能を提供する。
特徴量生成プログラム174は、予め指定された特徴量の生成手法に従って、ユーザ変数・デバイス変数1544の指定された変数を用いて特徴量を生成する命令を含む。後述するように制御対象に応じて適切な特徴量の生成手法が決定される。すなわち、特徴量生成プログラム174は、制御対象に関連するデータから制御対象に生じる異常を検知するのに適した特徴量を生成する。
内部DB130には、典型的には、(1)生データ収集工程において収集される生データ132と、(4)特徴量学習工程において取得される学習結果134と、(5)特徴量監視工程において出力される異常検知結果136とが格納される。
機械学習エンジン140は、(4)特徴量学習工程において必要な処理を実行するための学習機能142と、(5)特徴量監視工程において必要な処理を実行するための異常検知機能144とを含む。学習機能142は、特徴量生成プログラム174の実行により生成される特徴量を用いて機械学習を実施する。異常検知機能144は、学習機能142の機械学習による学習結果に基づいて決定される制御対象に生じる異常の検知に用いられる異常検知パラメータ1546と、特徴量生成プログラム174の実行により生成される特徴量とに基づいて、制御対象における異常を検知する。そして、異常検知機能144は、何らかの異常を検知すると、その検知した異常の内容を示すイベントログ146を出力する。異常検知機能144は、監視要求プログラム170からの要求に従って動作する。つまり、監視要求プログラム170は、異常検知機能144に対して異常の検知を指示する。
一方、サポート装置200には、開発プログラム222(図3)に加えて、パラメータ設定ツール224およびデータマイニングツール226がインストールされている。
パラメータ設定ツール224は、制御装置100の変数マネジャ154が管理する各変数に対してアクセスするためのPLC変数アクセスプログラム2242を含む。PLC変数アクセスプログラム2242は、制御装置100内部の変数の参照および書き換えを可能にする。
データマイニングツール226は、内部DBアクセス機能2262と、データマイニング機能2264と、可視化機能2266とを含む。内部DBアクセス機能2262は、内部DB130にアクセスして、内部DB130に収集されている生データのうち、必要なデータを抽出する。データマイニング機能2264は、主として、上述の(2)データマイニング工程を実施する。可視化機能2266は、(2)データマイニング工程などによって得られた各種情報や、(5)特徴量監視工程において検知された異常の内容などを視
覚的にユーザへ提示する。
データマイニングツール226によれば、(2)データマイニング工程の実施によって、特徴量生成手法の決定および異常検知手法が決定され、(4)特徴量学習工程の実施によって、異常検知パラメータが決定され、(6)評価工程の実施によって、異常検知の評価結果が生成される。
次に、(1)〜(6)に示す各工程と、図5に示される各エレメントの動作との関係について説明する。図6は、本実施の形態に係る制御システム1を用いた異常検知のための各工程での処理内容を説明するための模式図である。
図6を参照して、(1)生データ収集工程においては、ユーザがサポート装置200の開発プログラム222を操作して、内部DB130に収集すべき変数を指定するためのユーザプログラムを作成する(ステップS10)。この作成されたユーザプログラムが内部DB書込プログラム164に相当する。制御装置100のPLCエンジン150で内部DB書込プログラム164が実行されることで、制御装置100の内部DB130に生データ132が書込まれる(ステップS12)。
(2)データマイニング工程においては、ユーザがサポート装置200のデータマイニングツール226を操作して、内部DB130に収集されている生データ132を読出して解析することで、特徴量の生成手法および異常検知手法を決定する(ステップS20)。
(3)特徴量収集工程においては、ユーザがサポート装置200の開発プログラム222を操作して、(2)データマイニング工程において決定された特徴量の生成手法を反映させた、特徴量生成に係るユーザプログラムを作成する(ステップS30)。この作成されたユーザプログラムが特徴量生成プログラム174に相当する。
(4)特徴量学習工程においては、ユーザがサポート装置200の開発プログラム222を操作して、特徴量を用いた機械学習を指定するためのユーザプログラムを作成する(ステップS40)。この作成されたユーザプログラムが学習要求プログラム168に相当する。制御装置100のPLCエンジン150の機械学習エンジンインターフェイス166で学習要求プログラム168が実行されることで、制御装置100の機械学習エンジン140の学習機能142が機械学習を実施し、その学習結果134が内部DB130に格納される。なお、(3)特徴量収集工程の特徴量生成プログラム174および(4)特徴量学習工程の学習要求プログラム168を同時に実行させるようにしてもよい。
そして、ユーザがサポート装置200のデータマイニングツール226を操作して、内部DB130に格納されている学習結果134を読出して解析することで、異常検知パラメータを決定する(ステップS42)。続いて、ユーザがサポート装置200の開発プログラム222を操作して、決定した異常検知パラメータを制御装置100のPLCエンジン150に転送する(ステップS44)。
(5)特徴量監視工程においては、ユーザがサポート装置200の開発プログラム222を操作して、何らかの異常発生を監視するためのユーザプログラムを作成する(ステップS50)。この作成されたユーザプログラムが監視要求プログラム170に相当する。制御装置100のPLCエンジン150の機械学習エンジンインターフェイス166で監視要求プログラム170が実行されることで、制御装置100の機械学習エンジン140の異常検知機能144が異常検知処理を実施し、何らかの異常を検知すると、その内容を含むイベントログ146を出力する(ステップS52)とともに、内部DB130に異常
検知結果136を書込む(ステップS54)。
(6)評価工程においては、ユーザがサポート装置200の開発プログラム222を操作して、内部DB130に格納されている異常検知結果136を読出して、その内容の妥当性を評価する(ステップS60)。必要に応じて、ユーザは、異常検知パラメータ1546を調整してもよい。
以上のような制御装置100およびサポート装置200の各エレメントが連系することで、本実施の形態に係る異常検知機能が実現される。
<D.生データ収集工程>
次に、(1)生データ収集工程において生成されるユーザプログラム(内部DB書込プログラム164)について説明する。
図7は、本実施の形態に係る制御システム1において生成される内部DB書込プログラム164の一例を示す図である。図7を参照して、内部DB書込プログラム164は、典型的には、内部DB書込ファンクションブロック1642を用いて記述されてもよい。
内部DB書込ファンクションブロック1642に対しては、内部DB130に収集される生データの集合を特定するためのテーブル名1644と、内部DB130に収集される変数を指定する対象変数指定1646と、内部DB130に変数を収集する周期を指定する周期指定1648とが定義される。
ユーザは、任意の名前をテーブル名1644として指定するとともに、対象となる変数を示す変数名を対象変数指定1646として指定する。また、対象となる変数の収集周期(収集頻度)を周期指定1648として指定する。図7に示す例では、4つの変数(Input01〜04)が100msecの周期で、VariableSet01という名前の付されたテーブルに収集される。なお、内部DB書込ファンクションブロック1642を有効に動作させるための条件を指定してもよい。
なお、図7に示すユーザプログラムは一例であって、どのような記述方法を採用してもよい。例えば、ラダー言語やストラクチャードテキストなどを用いてもよい。
このように、制御装置100は、制御対象に関連するデータを収集して格納するデータベースとして内部DB130を有している。そして、内部DB130には、ユーザプログラムに含まれる命令(例えば、内部DB書込ファンクションブロック1642)に従って指定されたデータが収集されることになる。
本実施の形態に係る制御システム1においては、ユーザは、上述のようなユーザプログラム(内部DB書込プログラム164)を記述するだけで、必要な1または複数の変数の時系列を制御装置100の制御周期(数百μsecオーダ〜数十msecオーダ)で収集することができ、従前のシステムに比較して、より粒度の細かい分析が可能となる。
<E.データマイニング工程>
次に、(2)データマイニング工程において決定される特徴量の生成手法および異常検知手法の一例について説明する。
図8は、本実施の形態に係る制御システム1のデータマイニング工程において決定可能な特徴量を示すリストの一例である。図8に示すような複数の特徴量が予め定義されており、データマイニング工程においては、内部DB130に収集されている生データに対し
て、いずれの特徴量を用いるのが好ましいのかが決定される。
具体的には、内部DB130に収集された生データを用いて、図8に示されるそれぞれの特徴量が算出され、その特徴量の変化の度合いが大きなものが候補として決定される。
あるいは、典型的な手法として、各種の主成分分析を採用してもよい。主成分分析の手法としては、公知の任意の方法を採用できる。
図9は、本実施の形態に係るサポート装置200においてデータマイニング工程後に表示されるユーザインターフェイス画面の一例を示す図である。図9を参照して、ユーザインターフェイス画面500においては、データマイニング工程の対象となった生データ群を特定するための特定情報502とともに、データマイニング工程の実施によって導出された、特徴量生成手法および異常検知手法の候補が表示される(候補504〜506)。
候補504〜506の各々においては、特徴量の生成に用いる1または複数の変数と、それらの変数を用いて生成される特徴量の種類との組合せが表示されるとともに、生成された特徴量を監視するためのアルゴリズムも表示されている。例えば、候補504においては、変数Input01と変数Input02との間の相関値が特徴量生成手法(すなわち、特徴量)の候補として挙げられており、さらに、この特徴量の下限値を監視する手法が異常検知手法の候補として挙げられている。他の候補505および候補506についても同様である。
さらに、候補504〜506の各々においては、「波形をみる」のボタンも表示されており、ユーザがこのボタンを選択することで、対応する特徴量生成手法および異常検知手法の候補を決定した際に用いられた波形などを確認することもできるようになっている。
最終的に、ユーザは、ユーザインターフェイス画面500において最も好ましいと思われる候補に対するラジオボタン508を選択することで、特徴量生成手法および異常検知手法が決定される。このように、サポート装置200のデータマイニングツール226が実行されることで、制御装置100の内部DB130に収集されたデータに基づいて、制御対象に生じる異常を検知するのに適した特徴量の生成手法を決定する機能が提供される。
<F.特徴量収集工程および特徴量学習工程>
次に、(3)特徴量収集工程および(4)特徴量学習工程において生成されるユーザプログラム(特徴量生成プログラム174および学習要求プログラム168)について説明する。
図10は、本実施の形態に係る制御システム1において生成される特徴量生成プログラム174および学習要求プログラム168の一例を示す図である。図10を参照して、特徴量生成プログラム174は、典型的には、特徴量生成ファンクションブロック1742を用いて記述されてもよい。特徴量生成ファンクションブロック1742は、図9のユーザインターフェイス画面500の第1番目にある候補に対応させて、特徴量として相関値を算出する機能モジュールである。
特徴量生成ファンクションブロック1742に対しては、特徴量の算出に用いられる変数を指定する入力変数指定1344と、算出された特徴量の出力先を示す出力先指定1746とが定義される。なお、(4)特徴量学習工程は、異常検知に用いる異常検知パラメータを決定することが目的であるので、特徴量生成ファンクションブロック1742が有効に動作するための条件1748を設定してもよい。この条件1748は、監視対象の設
備や機械において何らかの異常が発生し得る状況を示す変数が設定される。例えば、監視対象の設備や機械の温度が予め定められた値を超えるような場合などを設定できる。あるいは、監視対象の設備や機械が現実に動作していることを条件1748として設定してもよい。このような条件1748を指定することで、生成される特徴量のデータ量を低減でき、機械学習の効率および精度を高めることができる。
特徴量生成ファンクションブロック1742の出力段(出力先指定1746)には、学習要求プログラム168に対応する処理を実行するための学習要求ファンクションブロック1682が接続されてもよい。すなわち、特徴量生成ファンクションブロック1742の出力先指定1746と学習要求ファンクションブロック1682の学習対象の特徴量となる変数を指定する入力変数指定1684とが接続される。
学習要求ファンクションブロック1682の出力段(学習結果出力先指定1686)には、学習要求プログラム168による機械学習の結果得られる情報(学習結果134)が出力される。
図11は、本実施の形態に係る制御システム1において実行される機械学習を実施することで得られる学習結果の一例を示す図である。図11を参照して、例えば、算出される特徴量の集合に対してクラスタリングすることで、3つのクラスタに分離できたとする。このような場合には、学習結果134としては、各クラスタの特定とともに、各クラスタに含まれる特徴量のデータ数ならびに平均値および標準偏差などが出力される。
ユーザは、図11に示すような学習結果134を参照することで、特徴量である相関値の相対的に高い第1番目および第3番目のクラスタについては正常な状態であり、特徴量である相関値が相対的に低い第2番目のクラスタについては異常な状態であると推定できる。その上で、第1番目および第3番目のクラスタと第2番目のクラスタとを区別するためのしきい値を異常検知パラメータとして設定することができる。この場合、各クラスタの平均値および標準偏差から各クラスタの揺らぎを含む範囲を特定し、異常検知パラメータを決定する。例えば、図11に示す例では、第1番目および第2番目のクラスタとは大きく離れているので、各クラスタの平均値の中間にある「47.5」を異常検知パラメータとして設定することができる。
異常検知パラメータを設定できれば、(3)特徴量収集工程および(4)特徴量学習工程は完了する。このように、サポート装置200のデータマイニングツール226が実行されることで、機械学習による学習結果に基づいて異常検知パラメータ1706を決定する機能が提供される。
<G.特徴量監視工程>
次に、(5)特徴量監視工程において生成されるユーザプログラム(監視要求プログラム170)について説明する。
図12は、本実施の形態に係る制御システム1において生成される特徴量生成プログラム174および監視要求プログラム170の一例を示す図である。特徴量生成プログラム174は、上述の図10と同様に、特徴量生成ファンクションブロック1742を用いて記述されている。
特徴量生成ファンクションブロック1742の出力段(出力先指定1746)には、監視要求プログラム170に対応する処理を実行するための監視要求ファンクションブロック1702が接続されてもよい。すなわち、特徴量生成ファンクションブロック1742の出力先指定1746と監視要求ファンクションブロック1702の監視対象の特徴量と
なる変数を指定する入力変数指定1704とが接続される。さらに、監視要求ファンクションブロック1702には、異常検知のしきい値として機能する異常検知パラメータ1706が定義される。
特徴量生成ファンクションブロック1742は、入力変数指定1704において指定された変数(特徴量)と、異常検知パラメータ1706において指定されたしきい値とを制御周期毎に比較して、しきい値を跨ぐような事象が生じると、故障出力先指定1708として定義された変数(コイル)をONに駆動する。ユーザプログラムにおいては、故障出力先指定1708として指定された変数の値に基づいて、制御対象の設備や機械での異常を即座に検知できる。
このように、異常検知機能144は、異常検知パラメータ1706の指定および対象となる特徴量の指定を含むユーザプログラム(特徴量生成ファンクションブロック1742)によって実現される。このようなファンクションブロックを用いて異常検知の処理を規定できることで、汎用性を高めることができる。
なお、(5)特徴量監視工程においては、対象の設備や機械が実際に動作している状態において異常検知処理を実施することが好ましい場合もあり、その場合には、特徴量生成ファンクションブロック1742が有効に動作するための条件1749を設定してもよい。この条件1749は、監視対象の設備や機械が動作していることを示す何らかの変数が設定される。なお、特徴量生成ファンクションブロック1742ではなく、監視要求ファンクションブロック1702に対して、有効に動作するための条件を設定してもよい。このような条件1749を指定することで、対象の設備や機械の異常を誤って検知する可能性を低減でき、異常検知の精度を高めることができる。
上述のようなユーザプログラム(監視要求プログラム170)によって、対象の設備や機械に対する異常検知を行うことができる。
<H.シリアライズモジュール>
本実施の形態に係る制御システム1を構成する制御装置100は、内部DB130を実装することで、より高速なデータ収集を実現する。このデータ収集をより高速化する手法として、次に説明するようなシリアライズ技術およびデシリアライズ技術を採用してもよい。このようなシリアライズ技術およびデシリアライズ技術は、シリアライズモジュール172(図5)によって提供されてもよい。
(h1:シリアライズによるデータ圧縮)
まず、シリアライズによるデータ圧縮について説明する。図13は、本実施の形態に係る制御システム1の制御装置100におけるシリアライズ処理を説明するための模式図である。図13を参照して、例えば、内部DB130に収集されるデータが、いわゆるキーバリューペアで規定されている場合を想定する。すなわち、ある値が何を意味するのかを示す「キー」データと、現実の値との組合せで対象の入力データが規定されているとする。この場合、冗長な情報も含まれているので、シリアライズモジュール172は、これらの入力データをシリアライズして、データ量を低減(データ圧縮)する。
一例として、入力データに含まれるデータを単位データに区切った上で、各単位データを示す短縮化されたデータに置換するような方法が想定される。あるいは、図13に示すように、プロセッサ102が直接解釈できるようなマシンコードに変換してもよい。つまり、シリアライズモジュール172は、マシンコードを用いて対象となるデータを変換することで、データ圧縮を実現してもよい。
このようなマシンコードに変換することで、当初の入力データが有する冗長度を低減できる。また、機械学習エンジン140は、データ圧縮された状態であっても入力データをそのまま解釈できるので、データ圧縮された入力データを用いて機械学習するようにしてもよい。
このように、内部DB130へのデータの書込み前に、データ圧縮処理を実施することで、内部DB130へのアクセス速度を高めることができる。
(h2:デシリアライズ処理の高速化)
上述したようなシリアライズされた状態で内部DB130にデータを格納した場合、当該データにアクセスする際に、シリアライズとは逆の変換、すなわちデシリアライズを行う必要がある。このようなデシリアライズについても、以下に説明するような処理の高速化手法を採用してもよい。
図14は、本実施の形態に係る制御システム1の制御装置100におけるデシリアライズ処理を説明するための模式図である。図14を参照して、目的の対象データ1302を内部DB130から読出す場合を想定する。対象データ1302は、シリアライズされており、本来であれば、対象データ1302の全体をデシリアライズする必要がある。
これに対して、本実施の形態に係る制御装置100においては、シリアライズモジュール172の処理エンジン1722が対象データ1302に含まれる一部のデータをバッファ領域1724にコピーし、対象データ1302のデシリアライズに必要な1または複数のオブジェクト1726をバッファ領域1724に生成する。そして、シリアライズモジュール172の処理エンジン1722は、生成した1または複数のオブジェクト1726を参照しつつ、対象データ1302の残りのデータについては、バッファ領域1724へのコピーなどをすることなく、対象データ1302をデシリアライズした後の結果を出力する。
このように、シリアライズされたデータのすべてを読出して一旦コピーするのではなく、対象のデータの一部のみをコピーすることでデシリアライズを完了できるので、読出処理を高速化できる。
<I.機械学習エンジンインターフェイスによるデータ直接書込>
次に、機械学習エンジンインターフェイス166と機械学習エンジン140との間のデータ遣り取りについて説明する。図15は、図14は、本実施の形態に係る制御システム1の制御装置100における機械学習エンジンインターフェイス166と機械学習エンジン140との間のデータ遣り取りを説明するための模式図である。
図15(A)には、典型的な、サーバ・クライエントモデルの下でのデータ遣り取りを示す。この構成においては、機械学習エンジンインターフェイス166は、機械学習エンジン140に対してリクエストを送信すると、機械学習エンジンインターフェイス166は、そのリクエストを受付けて処理するとともに、その処理結果を応答する。そして、機械学習エンジンインターフェイス166は、機械学習エンジン140からの応答を受けて、イベントログを登録する。
このようなリクエストを送信し、そのリクエストに対する応答を待って、処理を行うような構成を採用した場合には、応答を待つ間、次の処理を実行することができず、処理を一次的に中断せざるを得ない。
これに対して、本実施の形態に係る制御装置100においては、図15(B)に示すよ
うに、リクエストに対する応答についての処理(この例では、イベントログ登録)を、機械学習エンジンインターフェイス166から機械学習エンジン140へ委譲(delegation)することで、機械学習エンジンインターフェイス166での応答待ち時間を削減する。すなわち、図15(B)に示す構成においては、機械学習エンジンインターフェイス166は、機械学習エンジン140に対してリクエストを送信することだけを行う。すると、機械学習エンジンインターフェイス166は、機械学習エンジンインターフェイス166からのリクエストを受付けて処理するとともに、その処理結果を受けて、イベントログ146を登録する。
このように、機械学習エンジンインターフェイス166は、機械学習エンジン140に対して、必要なリクエストのみを送信すればよく、その後の応答などの処理を待つことなく、後続の処理を継続できる。つまり、機械学習エンジンインターフェイス166は、異常検知機能144に対して異常の検知に必要な要求を送信し、異常検知機能144は、機械学習エンジンインターフェイス166に対して当該要求に対して応答を返信することなく、異常の検知を実施する。
このような構成を採用することで、機械学習エンジンインターフェイス166と機械学習エンジン140との間のデータの遣り取りを高速化できる。つまり、機械学習エンジンインターフェイス166での処理と、機械学習エンジン140での処理とを非同期で実行することができ、これによって、機械学習エンジンインターフェイス166での処理待ち時間を低減できる。
<J.応用例>
次に、本実施の形態に係る制御システム1を用いた応用例について説明する。
図16は、本実施の形態に係る制御システム1の一つの応用例を示す模式図である。図16には、包装機600を含む制御システム1として構成した場合の例を示す。
図16を参照して、包装機600は、所定の搬送方向に搬送される包装体604をロータによりシールおよび切断の少なくとも一方を順次行う。包装機600は、一対のロータ610および620を有しており、ロータ610および620は、同期して回転する。各ロータは、包装体604に接する位置での外周の接線方向が搬送方向と一致するように配置されている。各ロータには、予め定められた位置にヒータおよびカッターが配置されており、これらのヒータおよびカッターが包装体604に接触することで、包装体604に対するシールおよび切断する処理が実現される。
包装機600のロータ610および620は、サーボモータ618および628によって、それぞれ回転軸612および622を中心に同期して回転駆動される。ロータ610および620の表面には、それぞれ処理機構614および624が設けられており、処理機構614は、円周方向(回転方向)に前後して配置されたヒータ615および616と、ヒータ615とヒータ616との間に配置されたカッター617とを含む。同様に、処理機構624は、円周方向に前後して配置されたヒータ625および626と、ヒータ625とヒータ626との間に配置されたカッター627とを含む。ロータ610および620は、その外周面上に配置された、包装体604を切断するためのカッター617および627を含む。
ロータ610および620が包装体604の搬送速度と同期して回転することで、ヒータ615とヒータ625とによって、包装体604の紙面右側の位置において対向する面同士(上面と下面)がシール(接着)されるとともに、ヒータ616とヒータ626とによって、包装体604の紙面左側の位置において対向する面同士(上面と下面)がシール
(接着)される。これらのシール処理と並行して、カッター617とカッター627とによって包装体604が切断される。このような一連の処理が繰返されることで、被包装物605を含む包装体604に対して、シールおよび切断が繰返し実行されて、個別包装体606が順次生成される。
ロータ610および620を回転駆動するサーボモータ618および628は、ドライバ(駆動装置)の一例である、サーボドライバ619および629によって回転速度やトルクなどが制御される。制御装置100は、サーボドライバ619および629から、サーボモータ618および628の状態値、すなわちロータ610および620の実績値を収集することができる。サーボドライバ619および629の状態値(または、ロータ610および620の実績値)としては、(1)回転位置(位相/回転角度)、(2)速度、(3)加速度、(4)トルク値、(5)電流値、(6)電圧値、などを含む。
制御装置100は、サーボドライバ619および629(または、ロータ610および620)の状態値を用いて、異物の噛み込みを検知する。
異物噛み込みは、包装体604自体の位置ずれや、包装体604に包含される被包装物605の位置ずれなどによって生じ得る。異物噛み込みが発生することで、ロータ610および620を回転駆動するサーボモータ618および628にはより大きなトルクが発生することになる。このようなトルク変化を監視することで、異物噛み込みの異常を検知できる場合がある。
図17は、図16に示す制御システム1における異物の噛み込み発生時の状態値および状態値から生成される特徴量の変化の一例を示す図である。図17(A)には、ロータ610および620に生じる力に関連する信号強度の時間変化の一例を示す。図17(A)に示す信号強度の時間変化の一例においては、相対的に大きな異物が噛み込んだ場合には、信号強度が大きく変化し、予め定められたしきい値を超えるので、異常を検知することができる。
一方で、相対的に小さな異物が噛み込んだ場合には、信号強度の変化が小さく、予め定められたしきい値まで到達しない。そのため、相対的に小さな異物の噛み込みについては、異常を検知することができない。
このような事態に対して、本実施の形態に係る制御システム1が提供する異常検知機能を用いた場合には、適切な特徴量および適切な異常検知パラメータを設定できるので、ロータに生じるトルクを直接観測することでは検知できない異常も検知することができる。
一例として、図17(B)に示すような特徴量を作成することで、相対的に小さな異物の噛み込み時であっても、噛み込みのない通常の状態と十分に区別することができる。
通常の状態において生じる特徴量と相対的に小さな異物が噛み込んだときに生じる特徴量との間にしきい値(異常検知パラメータ)を設定することで、噛み込んだ異物が相対的に小さい場合であっても、異常を検知することができる。
<K.変形例>
上述したサポート装置200の機能の全部または一部を制御装置100に組み入れるようにしてもよい。例えば、サポート装置200に実装されるデータマイニングツール226についても、制御装置100に実装するようにしてもよい。このような構成を採用することで、サポート装置200側に多くのアプリケーションプログラムをインストールすることなく、本実施の形態に係る機能を利用することができる。
また、図5および図6に示すモジュール構成は一例であり、上述したような機能を提供できる限り、どのような実装を採用してもよい。例えば、ハードウェア上の制約や、プログラミング上の制約などによって、図5および図6に示す機能モジュールを複数の機能モジュールの集合として実装してもよいし、図5および図6に示す複数の機能モジュールを単一のモジュールとして実装してもよい。
<L.利点>
本実施の形態に係る制御システムによれば、フィールドとの間でデータを遣り取りする制御装置にデータを収集するデータベースを実装するとともに、そのデータベースに収集されるデータを用いて機械学習を行い、さらに機械学習の結果を用いて異常有無を検知することもできる。このような高機能化した制御装置を採用することで、従前の構成に比較して、制御対象に生じている現象をより短い周期で監視できる技術を実現できる。
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した説明ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。