特開2018-159981(P2018-159981A)IP Force 特許公報掲載プロジェクト 2015.5.11 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ オムロン株式会社の特許一覧
特開2018-159981制御システム、制御装置、制御プログラム、および制御方法
<>
  • 特開2018159981-制御システム、制御装置、制御プログラム、および制御方法 図000003
  • 特開2018159981-制御システム、制御装置、制御プログラム、および制御方法 図000004
  • 特開2018159981-制御システム、制御装置、制御プログラム、および制御方法 図000005
  • 特開2018159981-制御システム、制御装置、制御プログラム、および制御方法 図000006
  • 特開2018159981-制御システム、制御装置、制御プログラム、および制御方法 図000007
  • 特開2018159981-制御システム、制御装置、制御プログラム、および制御方法 図000008
  • 特開2018159981-制御システム、制御装置、制御プログラム、および制御方法 図000009
  • 特開2018159981-制御システム、制御装置、制御プログラム、および制御方法 図000010
  • 特開2018159981-制御システム、制御装置、制御プログラム、および制御方法 図000011
  • 特開2018159981-制御システム、制御装置、制御プログラム、および制御方法 図000012
  • 特開2018159981-制御システム、制御装置、制御プログラム、および制御方法 図000013
  • 特開2018159981-制御システム、制御装置、制御プログラム、および制御方法 図000014
  • 特開2018159981-制御システム、制御装置、制御プログラム、および制御方法 図000015
  • 特開2018159981-制御システム、制御装置、制御プログラム、および制御方法 図000016
  • 特開2018159981-制御システム、制御装置、制御プログラム、および制御方法 図000017
  • 特開2018159981-制御システム、制御装置、制御プログラム、および制御方法 図000018
  • 特開2018159981-制御システム、制御装置、制御プログラム、および制御方法 図000019
  • 特開2018159981-制御システム、制御装置、制御プログラム、および制御方法 図000020
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】特開2018-159981(P2018-159981A)
(43)【公開日】2018年10月11日
(54)【発明の名称】制御システム、制御装置、制御プログラム、および制御方法
(51)【国際特許分類】
   G05B 23/02 20060101AFI20180914BHJP
【FI】
   G05B23/02 302Z
【審査請求】未請求
【請求項の数】12
【出願形態】OL
【全頁数】32
(21)【出願番号】特願2017-55423(P2017-55423)
(22)【出願日】2017年3月22日
(71)【出願人】
【識別番号】000002945
【氏名又は名称】オムロン株式会社
【住所又は居所】京都府京都市下京区塩小路通堀川東入南不動堂町801番地
(74)【代理人】
【識別番号】110001195
【氏名又は名称】特許業務法人深見特許事務所
(72)【発明者】
【氏名】北村 敦
【住所又は居所】京都府京都市下京区塩小路通堀川東入南不動堂町801番地 オムロン株式会社内
(72)【発明者】
【氏名】徳 隆宏
【住所又は居所】京都府京都市下京区塩小路通堀川東入南不動堂町801番地 オムロン株式会社内
【テーマコード(参考)】
3C223
【Fターム(参考)】
3C223BA04
3C223CC04
3C223DD03
3C223FF02
3C223FF12
3C223FF24
3C223FF26
3C223FF35
3C223FF42
3C223FF45
3C223GG01
3C223HH02
3C223HH29
(57)【要約】
【課題】制御対象に生じる異常を検知する際に要する期間を調整することができる技術が提供される。
【課題手段】制御システムは、制御対象から取得されるデータから生成されかつ1以上の要素によって定義される特徴量の集合体を記憶する記憶手段と、特徴量を定義する要素の数に関する第1パラメータに基づいて、制御対象から取得されるデータから特徴量を生成する特徴量生成手段と、特徴量生成手段により生成される特徴量と、記憶手段により記憶された特徴量の集合体との乖離度を、当該乖離度の取得に用いる当該特徴量の集合体における範囲に関する第2パラメータに基づいて取得する乖離度取得手段と、乖離度取得手段により取得される乖離度と、しきい値とに基づいて、制御対象に生じる異常を検知する異常検知手段と、乖離度取得手段の実行周期に基づいて、当該乖離度取得手段に対して実行開始を指示する指示手段とを備える。第1パラメータおよび第2パラメータのうちの少なくとも一方の値は、変更可能に構成されている。
【選択図】図17
【特許請求の範囲】
【請求項1】
制御対象を制御する制御装置を含む制御システムであって、
前記制御対象から取得されるデータから生成されかつ1以上の要素によって定義される特徴量の集合体を記憶する記憶手段と、
特徴量を定義する要素の数に関する第1パラメータに基づいて、前記制御対象から取得されるデータから特徴量を生成する特徴量生成手段と、
前記特徴量生成手段により生成される特徴量と、前記記憶手段により記憶された特徴量の集合体との乖離度を、当該乖離度の取得に用いる当該特徴量の集合体における範囲に関する第2パラメータに基づいて取得する乖離度取得手段と、
前記乖離度取得手段により取得される乖離度と、しきい値とに基づいて、前記制御対象に生じる異常を検知する異常検知手段と、
前記乖離度取得手段の実行周期に基づいて、当該乖離度取得手段に対して実行開始を指示する指示手段とを備え、
前記第1パラメータおよび前記第2パラメータのうちの少なくとも一方の値は、変更可能に構成されている、制御システム。
【請求項2】
前記指示手段は、前記乖離度取得手段の実行周期に関する第3パラメータに基づいて、当該乖離度取得手段に対して実行開始を指示し、
前記第3パラメータの値は、変更可能に構成されている、請求項1に記載の制御システム。
【請求項3】
前記乖離度取得手段による乖離度の取得に要した期間を出力する出力手段をさらに備える、請求項1または請求項2に記載の制御システム。
【請求項4】
前記出力手段は、前記第1パラメータおよび前記第2パラメータのうちの少なくとも一方の値の中から、前記乖離度取得手段による乖離度の取得に要する期間を短縮可能な値の候補を出力する、請求項3に記載の制御システム。
【請求項5】
前記出力手段は、少なくとも前記乖離度取得手段により乖離度が取得される期間に基づく優先順位に従って、前記乖離度取得手段による乖離度の取得に要する期間を短縮可能な値の候補を出力する、請求項4に記載の制御システム。
【請求項6】
前記出力手段は、前記乖離度取得手段による乖離度の取得に要した期間が前記乖離度取得手段の実行周期に収まらなかった場合に、前記乖離度取得手段による乖離度の取得に要する期間を短縮可能な値の候補を出力する、請求項4または請求項5に記載の制御システム。
【請求項7】
前記第1パラメータおよび前記第2パラメータのうちの少なくとも一方の値の中から、前記乖離度取得手段による乖離度の取得に要する期間が前記乖離度取得手段の実行周期に収まる値の候補を決定する決定手段をさらに備える、請求項1〜請求項6のいずれか1項に記載の制御システム。
【請求項8】
前記特徴量生成手段、前記異常検知手段、および前記指示手段を定義するユーザプログラムは、予め定められたシステム周期ごとに繰り返し実行され、
前記乖離度取得手段を定義する機械プログラムは、前記ユーザプログラムが実行されていない期間に実行される、請求項1〜請求項7のいずれか1項に記載の制御システム。
【請求項9】
前記乖離度取得手段による乖離度の取得前に、前記制御対象から取得されるデータの特徴量の集合体を予め前記記憶手段に記憶させる事前記憶手段をさらに備える、請求項1〜請求項8のいずれか1項に記載の制御システム。
【請求項10】
制御対象を制御する制御装置であって、
前記制御対象から取得されるデータから生成されかつ1以上の要素によって定義される特徴量の集合体を記憶する記憶手段と、
特徴量を定義する要素の数に関する第1パラメータに基づいて、前記制御対象から取得されるデータから特徴量を生成する特徴量生成手段と、
前記特徴量生成手段により生成される特徴量と、前記記憶手段により記憶された特徴量の集合体との乖離度を、当該乖離度の取得に用いる当該特徴量の集合体における範囲に関する第2パラメータに基づいて取得する乖離度取得手段と、
前記乖離度取得手段により取得される乖離度と、しきい値とに基づいて、前記制御対象に生じる異常を検知する異常検知手段と、
前記乖離度取得手段の実行周期に基づいて、当該乖離度取得手段に対して実行開始を指示する指示手段とを備え、
前記第1パラメータおよび前記第2パラメータのうちの少なくとも一方の値は、変更可能に構成されている、制御装置。
【請求項11】
コンピュータにより実行されることで制御対象を制御する制御装置を実現する制御プログラムであって、前記コンピュータに、
特徴量を定義する要素の数に関する第1パラメータに基づいて、前記制御対象から取得されるデータから特徴量を生成するステップと、
生成した特徴量と、記憶手段により記憶された特徴量の集合体との乖離度を、当該乖離度の取得に用いる当該特徴量の集合体における範囲に関する第2パラメータに基づいて取得するステップと、
取得した乖離度と、しきい値とに基づいて、前記制御対象に生じる異常を検知するステップと、
前記乖離度の取得の実行周期に基づいて、当該乖離度の取得を実行開始するステップとを実行させ、
前記第1パラメータおよび前記第2パラメータのうちの少なくとも一方の値は、変更可能に構成されている、制御プログラム。
【請求項12】
制御対象を制御する制御方法であって、
特徴量を定義する要素の数に関する第1パラメータに基づいて、前記制御対象から取得されるデータから特徴量を生成するステップと、
生成した特徴量と、記憶手段により記憶された特徴量の集合体との乖離度を、当該乖離度の取得に用いる当該特徴量の集合体における範囲に関する第2パラメータに基づいて取得するステップと、
取得した乖離度と、しきい値とに基づいて、前記制御対象に生じる異常を検知するステップと、
前記乖離度の取得の実行周期に基づいて、当該乖離度の取得を実行開始するステップとを含み、
前記第1パラメータおよび前記第2パラメータのうちの少なくとも一方の値は、変更可能に構成されている、制御方法。
【発明の詳細な説明】
【技術分野】
【0001】
本技術は、制御対象に生じる異常を検知する制御システム、制御装置、制御プログラム、および制御方法に関する。
【背景技術】
【0002】
様々な生産現場において、PLC(プログラマブルコントローラ)などの制御装置を用いたFA(Factory Automation)技術が広く普及している。このような制御装置について、機械設備などの制御対象に生じる異常を検知したいというニーズがある。
【0003】
このようなニーズに対して、たとえば、特開2013−008111号公報(特許文献1)は、機械設備の異常予兆を診断する異常予兆診断装置を開示する。特許文献1に開示される異常予兆診断装置は、機械設備が正常に稼働しているときにセンサによって取得されたデータを学習データとして予め記憶しておき、センサによって新たに取得された診断対象となるデータと学習データとに基づき機械設備の異常予兆を診断するものである。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2013−008111号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
上述の特許文献1に開示される構成によれば、機械設備の異常予兆が診断されるが、異常予兆の診断に要する期間を調整することについては何ら鑑みられていない。
【0006】
本技術は、制御対象に生じる異常を検知する際に要する期間を調整することができる技術を提供する。
【課題を解決するための手段】
【0007】
本発明のある局面によれば、制御対象を制御する制御装置を含む制御システムが提供される。制御システムは、制御対象から取得されるデータから生成されかつ1以上の要素によって定義される特徴量の集合体を記憶する記憶手段と、特徴量を定義する要素の数に関する第1パラメータに基づいて、制御対象から取得されるデータから特徴量を生成する特徴量生成手段と、特徴量生成手段により生成される特徴量と、記憶手段により記憶された特徴量の集合体との乖離度を、当該乖離度の取得に用いる当該特徴量の集合体における範囲に関する第2パラメータに基づいて取得する乖離度取得手段と、乖離度取得手段により取得される乖離度と、しきい値とに基づいて、制御対象に生じる異常を検知する異常検知手段と、乖離度取得手段の実行周期に基づいて、当該乖離度取得手段に対して実行開始を指示する指示手段とを備える。第1パラメータおよび第2パラメータのうちの少なくとも一方の値は、変更可能に構成されている。
【0008】
好ましくは、指示手段は、乖離度取得手段の実行周期に関する第3パラメータに基づいて、当該乖離度取得手段に対して実行開始を指示する。第3パラメータの値は、変更可能に構成されている。
【0009】
好ましくは、制御システムは、乖離度取得手段による乖離度の取得に要した期間を出力する出力手段をさらに備える。
【0010】
好ましくは、出力手段は、第1パラメータおよび第2パラメータのうちの少なくとも一方の値の中から、乖離度取得手段による乖離度の取得に要する期間を短縮可能な値の候補を出力する。
【0011】
好ましくは、出力手段は、少なくとも乖離度取得手段により乖離度が取得される期間に基づく優先順位に従って、乖離度取得手段による乖離度の取得に要する期間を短縮可能な値の候補を出力する。
【0012】
好ましくは、出力手段は、乖離度取得手段による乖離度の取得に要した期間が乖離度取得手段の実行周期に収まらなかった場合に、乖離度取得手段による乖離度の取得に要する期間を短縮可能な値の候補を出力する。
【0013】
好ましくは、制御システムは、第1パラメータおよび第2パラメータのうちの少なくとも一方の値の中から、乖離度取得手段による乖離度の取得に要する期間が乖離度取得手段の実行周期に収まる値の候補を決定する決定手段をさらに備える。
【0014】
好ましくは、特徴量生成手段、前記異常検知手段、および前記指示手段を定義するユーザプログラムは、予め定められたシステム周期ごとに繰り返し実行され、乖離度取得手段を定義する機械プログラムは、ユーザプログラムが実行されていない期間に実行される。
【0015】
好ましくは、制御システムは、乖離度取得手段による乖離度の取得前に、制御対象から取得されるデータの特徴量の集合体を予め記憶手段に記憶させる事前記憶手段をさらに備える。
【0016】
本発明の別の局面によれば、制御対象を制御する制御装置が提供される。制御装置は、制御対象から取得されるデータから生成されかつ1以上の要素によって定義される特徴量の集合体を記憶する記憶手段と、特徴量を定義する要素の数に関する第1パラメータに基づいて、制御対象から取得されるデータから特徴量を生成する特徴量生成手段と、特徴量生成手段により生成される特徴量と、記憶手段により記憶された特徴量の集合体との乖離度を、当該乖離度の取得に用いる当該特徴量の集合体における範囲に関する第2パラメータに基づいて取得する乖離度取得手段と、乖離度取得手段により取得される乖離度と、しきい値とに基づいて、制御対象に生じる異常を検知する異常検知手段と、乖離度取得手段の実行周期に基づいて、当該乖離度取得手段に対して実行開始を指示する指示手段とを備える。第1パラメータおよび第2パラメータのうちの少なくとも一方の値は、変更可能に構成されている。
【0017】
本発明の別の局面によれば、コンピュータにより実行されることで制御対象を制御する制御装置を実現する制御プログラムが提供される。制御プログラムは、コンピュータに、特徴量を定義する要素の数に関する第1パラメータに基づいて、制御対象から取得されるデータから特徴量を生成するステップと、生成した特徴量と、記憶手段により記憶された特徴量の集合体との乖離度を、当該乖離度の取得に用いる当該特徴量の集合体における範囲に関する第2パラメータに基づいて取得するステップと、取得した乖離度と、しきい値とに基づいて、制御対象に生じる異常を検知するステップと、乖離度の取得の実行周期に基づいて、当該乖離度の取得を実行開始するステップとを実行させる。第1パラメータおよび第2パラメータのうちの少なくとも一方の値は、変更可能に構成されている。
【0018】
本発明の別の局面によれば、制御対象を制御する制御方法が提供される。制御方法は、特徴量を定義する要素の数に関する第1パラメータに基づいて、制御対象から取得されるデータから特徴量を生成するステップと、生成した特徴量と、記憶手段により記憶された特徴量の集合体との乖離度を、当該乖離度の取得に用いる当該特徴量の集合体における範囲に関する第2パラメータに基づいて取得するステップと、取得した乖離度と、しきい値とに基づいて、制御対象に生じる異常を検知するステップと、乖離度の取得の実行周期に基づいて、当該乖離度の取得を実行開始するステップとを含む。第1パラメータおよび第2パラメータのうちの少なくとも一方の値は、変更可能に構成されている。
【発明の効果】
【0019】
本技術によれば、制御対象に生じる異常を検知する際に要する期間を調整することができる。
【図面の簡単な説明】
【0020】
図1】本実施の形態に係る制御システムの全体構成例を示す模式図である。
図2】本実施の形態に係る制御システムを構成する制御装置のハードウェア構成例を示すブロック図である。
図3】本実施の形態に係る制御システムを構成するサポート装置のハードウェア構成例を示すブロック図である。
図4】本実施の形態に係る制御システムを用いた異常検知において乖離度を説明するための模式図である。
図5】本実施の形態に係る制御システムにおいて用いられるマハラノビス距離による診断の一例を説明するための模式図である。
図6】本実施の形態に係る制御システムにおいて乖離度の取得時間の変化を説明するための模式図である。
図7】本実施の形態に係る制御システムで実行される異常検知の主な工程を説明するための模式図である。
図8】本実施の形態に係る制御システムの各装置が提供する機能を説明するための模式図である。
図9】本実施の形態に係る制御システムの設定工程における主な処理内容を説明するための模式図である。
図10】本実施の形態に係る制御システムの運転工程における主な処理内容を説明するための模式図である。
図11】本実施の形態に係る制御システムにおいて実行されるユーザプログラムおよび機械プログラムの実行周期を説明するための模式図である。
図12】本実施の形態に係る制御システムにおいて実行されるユーザプログラムおよび機械プログラムの実行の一例を説明するための模式図である。
図13】本実施の形態に係る制御システムにおいて実行されるユーザプログラムの一例を示す図である。
図14】本実施の形態に係る制御システムにおいて実行される設定工程を説明するためのフローチャートである。
図15】本実施の形態に係る制御システムにおいて作成される候補リストの一例を示す図である。
図16】本実施の形態に係る制御システムにおいて設定された診断周期内に診断が終了しなかった場合の一例を説明するための模式図である。
図17】本実施の形態に係る制御システムにおいてサポート装置に表示される画像の一例を示す図である。
図18】本実施の形態に係る制御システムにおいてサポート装置に表示される画面の一例を示す図である。
【発明を実施するための形態】
【0021】
本発明の実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰り返さない。
【0022】
<A.制御システムの全体構成例>
まず、本実施の形態に係る制御装置を含む制御システム1の全体構成例について説明する。図1は、本実施の形態に係る制御システム1の全体構成例を示す模式図である。
【0023】
図1を参照して、本実施の形態に係る制御システム1は、主たる構成要素として、制御対象を制御する制御装置100と、制御装置100に接続されるサポート装置200とを含む。
【0024】
制御装置100は、PLCなどの、一種のコンピュータとして具現化されてもよい。制御装置100は、第1フィールドネットワーク2を介してフィールド装置群10と接続されるとともに、第2フィールドネットワーク4を介して1または複数の表示装置400と接続される。
【0025】
さらに、制御装置100は、ローカルネットワーク6を介してデータロギング装置300に接続される。制御装置100は、それぞれのネットワークを介して、接続された装置との間でデータを遣り取りする。なお、データロギング装置300および表示装置400はオプショナルな構成であり、制御システム1の必須の構成ではない。
【0026】
制御装置100は、機械設備を制御するための各種演算を実行する制御ロジック(以下、「PLCエンジン」とも称す。)を有している。PLCエンジンに加えて、制御装置100は、フィールド装置群10にて計測され、制御装置100へ転送されるデータ(以下、「入力データ」とも称す。)を収集する収集機能を有している。さらに、制御装置100は、収集した入力データに基づき、制御対象に生じる異常を検知する異常検知機能も有している。
【0027】
具体的には、制御装置100に実装される内部データベース(以下、「内部DB」とも記す。)130が収集機能を提供し、制御装置100に実装される機械学習エンジン140が異常検知機能を提供する。制御装置100に実装される内部データベース(内部DB)125は、機械学習エンジン140が異常検知の際に使用する学習結果を記憶する。内部DB125、内部DB130、および機械学習エンジン140の詳細については後述する。
【0028】
第1フィールドネットワーク2および第2フィールドネットワーク4は、データの到達時間が保証される、定周期通信を行うネットワークを採用することが好ましい。このような定周期通信を行うネットワークとしては、EtherCAT(登録商標)、EtherNet/IP(登録商標)、DeviceNet(登録商標)、CompoNet(登録商標)などが知られている。
【0029】
フィールド装置群10は、制御対象、または制御に関連する製造装置および生産ラインなど(以下、「フィールド」とも総称する。)から入力データを収集する装置を含む。このような入力データを収集する装置としては、入力リレーや各種センサなどが想定される。
【0030】
フィールド装置群10は、さらに、制御装置100にて生成される指令(以下、「出力データ」とも称す。)に基づいて、フィールドに対して何らかの作用を与える装置を含む。このようなフィールドに対して何らかの作用を与える装置としては、出力リレー、コンタクタ、サーボドライバおよびサーボモータ、その他任意のアクチュエータが想定される。これらのフィールド装置群10は、第1フィールドネットワーク2を介して、制御装置100との間で、入力データおよび出力データを含むデータを遣り取りする。
【0031】
図1に示す構成例においては、フィールド装置群10は、リモートI/O(Input/Output)装置12と、リレー群14と、画像センサ18およびカメラ20と、サーボドライバ22およびサーボモータ24とを含む。
【0032】
リモートI/O装置12は、第1フィールドネットワーク2を介して通信を行う通信部と、入力データの取得および出力データの出力を行うための入出力部(以下、「I/Oユニット」とも称す。)とを含む。このようなI/Oユニットを介して、制御装置100とフィールドとの間で入力データおよび出力データが遣り取りされる。図1には、リレー群14を介して、入力データおよび出力データとして、デジタル信号が遣り取りされる例が示されている。
【0033】
I/Oユニットは、フィールドネットワークに直接接続されるようにしてもよい。図1には、第1フィールドネットワーク2にI/Oユニット16が直接的に接続されている例を示す。
【0034】
画像センサ18は、カメラ20によって撮像された画像データに対して、パターンマッチングなどの画像計測処理を行って、その処理結果を制御装置100へ送信する。
【0035】
サーボドライバ22は、制御装置100からの出力データ(たとえば、位置指令など)に従って、サーボモータ24を駆動する。
【0036】
上述のように、第1フィールドネットワーク2を介して、制御装置100とフィールド装置群10との間でデータが遣り取りされることになるが、これらの遣り取りされるデータは、数百μsecオーダ〜数十msecオーダのごく短い周期で更新されることになる。なお、このような遣り取りされるデータの更新処理を、「I/Oリフレッシュ処理」と称することもある。
【0037】
第2フィールドネットワーク4を介して制御装置100と接続される表示装置400は、ユーザからの操作を受けて、制御装置100に対してユーザ操作に応じたコマンドなどを送信するとともに、制御装置100での演算結果などをグラフィカルに表示する。
【0038】
データロギング装置300は、制御装置100とローカルネットワーク6を介して接続され、制御装置100との間で必要なデータを遣り取りする。データロギング装置300は、たとえば、データベース機能を有しており、制御装置100が発生するイベントログなどを時系列に収集する。
【0039】
ローカルネットワーク6には、イーサネット(登録商標)などの汎用プロトコルが実装されてもよい。すなわち、典型的には、ローカルネットワーク6におけるデータの送信周期または更新周期は、フィールドネットワーク(第1フィールドネットワーク2および第2フィールドネットワーク4)におけるデータの送信周期または更新周期より遅くてもよい。但し、ローカルネットワーク6は、フィールドネットワークに比較して、一度により多くのデータを送信することができるようにしてもよい。
【0040】
サポート装置200は、制御装置100が制御対象を制御するために必要な準備を支援する装置である。具体的には、サポート装置200は、制御装置100で実行されるプログラムの開発環境(プログラム作成編集ツール、パーサ、コンパイラなど)、制御装置100および制御装置100に接続される各種デバイスのパラメータ(コンフィギュレーション)を設定するための設定環境、生成したユーザプログラムを制御装置100へ送信する機能、制御装置100上で実行されるユーザプログラムなどをオンラインで修正・変更する機能などを提供する。
【0041】
さらに、本実施の形態に係るサポート装置200は、制御装置100に実装される内部DB130および機械学習エンジン140に対する設定操作を行う機能を有している。これらの機能については、後述する。
【0042】
<B.各装置のハードウェア構成例>
次に、本実施の形態に係る制御システム1を構成する主要な装置のハードウェア構成例について説明する。
【0043】
(b1:制御装置100のハードウェア構成例)
図2は、本実施の形態に係る制御システム1を構成する制御装置100のハードウェア構成例を示すブロック図である。
【0044】
図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,…とを含む。
【0045】
プロセッサ102は、二次記憶装置108に格納された各種プログラムを読み出して、主記憶装置106に展開して実行することで、制御対象に応じた制御、および、後述するような各種処理を実現する。チップセット104は、プロセッサ102と各コンポーネントを制御することで、制御装置100全体としての処理を実現する。
【0046】
二次記憶装置108には、PLCエンジンを実現するためのシステムプログラムに加えて、PLCエンジンを利用して実行されるユーザプログラムが格納される。さらに、二次記憶装置108には、内部DB125、内部DB130、および機械学習エンジン140を実現するためのプログラムも格納される。
【0047】
ローカルネットワークコントローラ110は、ローカルネットワーク6を介した他の装置との間のデータの遣り取りを制御する。USBコントローラ112は、USB接続を介してサポート装置200との間のデータの遣り取りを制御する。
【0048】
メモリカードインターフェイス114は、メモリカード116を着脱可能に構成されており、メモリカード116に対してデータを書き込み、メモリカード116から各種データ(ユーザプログラムやトレースデータなど)を読み出すことが可能になっている。
【0049】
内部バスコントローラ122は、制御装置100に搭載されるI/Oユニット124−1,124−2,…との間でデータを遣り取りするインターフェイスである。
【0050】
フィールドバスコントローラ118は、第1フィールドネットワーク2を介した他の装置との間のデータの遣り取りを制御する。同様に、フィールドバスコントローラ120は、第2フィールドネットワーク4を介した他の装置との間のデータの遣り取りを制御する。
【0051】
図2には、プロセッサ102がプログラムを実行することで必要な機能が提供される構成例を示したが、これらの提供される機能の一部または全部を、専用のハードウェア回路(たとえば、ASIC(Application Specific Integrated Circuit)またはFPGA(Field-Programmable Gate Array)など)を用いて実装してもよい。あるいは、制御装置100の主要部を、汎用的なアーキテクチャに従うハードウェア(たとえば、汎用パソコンをベースとした産業用パソコン)を用いて実現してもよい。この場合には、仮想化技術を用いて、用途の異なる複数のOS(Operating System)を並列的に実行させるとともに、各OS上で必要なアプリケーションを実行させるようにしてもよい。
【0052】
(b2:サポート装置200のハードウェア構成例)
次に、本実施の形態に係るサポート装置200は、一例として、汎用的なアーキテクチャに従うハードウェア(たとえば、汎用パソコン)を用いてプログラムを実行することで実現される。図3は、本実施の形態に係る制御システム1を構成するサポート装置200のハードウェア構成例を示すブロック図である。
【0053】
図3を参照して、サポート装置200は、CPUまたはMPUなどのプロセッサ202と、光学ドライブ204と、主記憶装置206と、二次記憶装置208と、USBコントローラ212と、ローカルネットワークコントローラ214と、入力部216と、表示部218とを含む。これらのコンポーネントはバス220を介して接続される。
【0054】
プロセッサ202は、二次記憶装置208に格納された各種プログラムを読み出して、主記憶装置206に展開して実行することで、後述するような各種処理を実現する。
【0055】
二次記憶装置208は、たとえば、HDD(Hard Disk Drive)またはSSD(Flash Solid State Drive)などで構成される。二次記憶装置208には、典型的には、サポート装置200において実行されるユーザプログラムの作成、作成したプログラムのデバッグ、システム構成の定義、および各種パラメータの設定などを行うための開発プログラム222が格納される。また、二次記憶装置208には、各種パラメータの設定および機械学習の対象となる変数を指定するためのパラメータ設定ツール224が格納される。さらに、二次記憶装置208には、制御装置100に収集されるデータ(後述の生データ)から目的の情報を抽出するためのデータマイニングツール226が格納される。二次記憶装置208には、OSおよび他の必要なプログラムが格納されてもよい。
【0056】
サポート装置200は、光学ドライブ204を有しており、コンピュータが読取可能なプログラムを非一過的に格納する記録媒体205(たとえば、DVD(Digital Versatile Disc)などの光学記録媒体)から、その中に格納されたプログラムが読み取られて二次記憶装置208などにインストールされる。
【0057】
サポート装置200で実行される各種プログラムは、コンピュータが読取可能な記録媒体205を介してインストールされてもよいが、ネットワーク上のサーバ装置などからダウンロードする形でインストールされてもよい。また、本実施の形態に係るサポート装置200が提供する機能は、OSが提供するモジュールの一部を利用する形で実現される場合もある。
【0058】
USBコントローラ212は、USB接続を介して制御装置100との間のデータの遣り取りを制御する。ローカルネットワークコントローラ214は、任意ネットワークを介した他の装置との間のデータの遣り取りを制御する。
【0059】
入力部216は、キーボードおよびマウスなどで構成され、ユーザ操作を受け付ける。表示部218は、ディスプレイ、各種インジケータ、およびプリンタなどで構成され、プロセッサ202からの処理結果などを出力する。
【0060】
図3には、プロセッサ202がプログラムを実行することで必要な機能が提供される構成例を示したが、これらの提供される機能の一部または全部を、専用のハードウェア回路(たとえば、ASICまたはFPGAなど)を用いて実装してもよい。
【0061】
(b3:データロギング装置300のハードウェア構成例)
次に、本実施の形態に係る制御システム1を構成するデータロギング装置300は、一例として、汎用的なファイルサーバまたはデータベースサーバを用いて実現できる。このような装置のハードウェア構成については公知であるので、ここでは、その詳細な説明は行わない。
【0062】
(b4:表示装置400のハードウェア構成例)
次に、本実施の形態に係る制御システム1を構成する表示装置400は、HMI(Human Machine Interface)装置と称されるものであり、専用機として実装された構成を採用してもよいし、汎用的なアーキテクチャに従うハードウェア(たとえば、汎用パソコンをベースとした産業用パソコン)を用いて実現してもよい。
【0063】
<C.制御システム1で実行される異常検知の概要>
次に、本実施の形態に係る制御システム1で実行される異常検知の概要について説明する。
【0064】
本実施の形態に係る制御システム1において、制御装置100は、異常検知を実施する前工程として生データ収集工程を実施する。生データ収集工程において、制御装置100は、入力データのうち、異常検知に係る解析に使用するデータ(以下、「生データ」とも称す。)を内部DB130に書き込む。
【0065】
次に、制御装置100は、準備工程を実施する。準備工程において、制御装置100は、内部DB130に書き込んだ生データから特徴量を生成する。このとき、制御装置100は、特徴量を定義する要素に基づいて特徴量を生成する。
【0066】
特徴量を定義する要素とは、生データの特徴を表す際の基準となるものであり、たとえば、平均、標準偏差、歪度、尖度、最大、および最小などがある。
【0067】
制御装置100は、生データに対して平均処理を実行した場合、データ分布の中心(平均値)を特徴量として算出する。制御装置100は、生データに対して標準偏差処理を実行した場合、データ分布における平均値からのばらつき度合いを特徴量として算出する。制御装置100は、生データに対して歪度処理を実行した場合、データ分布の偏り度合いを特徴量として算出する。制御装置100は、生データに対して尖度処理を実行した場合、データ分布の尖り度合いを特徴量として算出する。制御装置100は、生データに対して最大処理を実行した場合、データ分布の最大値を特徴量として算出する。制御装置100は、生データに対して最小処理を実行した場合、データ分布の最小値を特徴量として算出する。
【0068】
このように、内部DB130に書き込まれた生データから、各要素によって定義される特徴量を生成することで、制御装置100は、機械設備などの制御対象における時系列での振る舞いを捉えることができる。
【0069】
1の生データに対しては、1または複数の要素によって特徴量が定義される。各要素によって定義された特徴量は、ベクトルで表現され得る。これを「特徴ベクトル」とも称す。特徴ベクトルの次元数は、特徴量を定義している要素の数と同じである。たとえば、2つの要素によって定義された特徴量の場合、特徴ベクトルの次元数は2になり、4つの要素によって定義された特徴量の場合、特徴ベクトルの次元数は4になる。特徴ベクトルの次元数が多いほど、制御装置100は、生データの特徴を正確に捉えることができる。
【0070】
準備工程において特徴量を定義する要素の種類(平均、標準偏差、歪度、尖度、最大、および最小など)は、制御システム1で用いることのできる全種類であってもよいし、ユーザによってパラメータ設定できるものであってもよい。準備工程において特徴量を定義する要素の数(特徴ベクトルの次元数)は、制御システム1で用いることのできる全数であってもよいし、ユーザによってパラメータ設定できるものであってもよい。
【0071】
また、準備工程において、制御装置100は、制御対象から取得されるデータから生成されかつ1以上の要素によって定義される特徴量の集合体を記憶する。
【0072】
具体的には、制御装置100は、決められた期間内に生成した特徴量を収集してその集合体を内部DB125に書き込む。制御装置100は、特徴量の集合体に対して機械学習を実施する。たとえば、制御装置100は、機械学習を実施することで、特徴量の集合体に対してクラスタリングを行い、各特徴量を1または複数のクラスタに分類する。制御装置100は、機械学習によって得られた学習結果を、内部DB125に書き込む。以下、学習結果として得られた特徴量を「学習データ」とも称す。制御装置100は、機械学習の学習結果に基づいて、異常検知に用いるしきい値を決定する。
【0073】
準備工程において学習結果およびしきい値が得られると、制御装置100は、それらを用いて異常検知工程を実施する。異常検知工程において、制御装置100は、所定周期ごとまたは所定イベントごとに特徴量を生成する。
【0074】
このとき、制御装置100は、特徴量を定義する要素の数に関する第1パラメータに基づいて特徴量を生成する。第1パラメータは、特徴量を定義する要素の種類(平均、標準偏差、歪度、尖度、最大、および最小など)および要素の数(特徴ベクトルの次元数)を設定するためのパラメータである。ユーザは、サポート装置200を用いて第1パラメータの値を設定することができる。
【0075】
また、異常検知工程において、制御装置100は、生成した特徴量と、内部DB125に学習結果として書き込まれた特徴量の集合体との乖離度を取得する。制御装置100は、取得した乖離度と、準備工程において決定したしきい値とに基づいて、制御対象に生じる異常を検知する。
【0076】
図4および図5を参照しながら、異常検知について説明する。図4は、本実施の形態に係る制御システム1を用いた異常検知において乖離度を説明するための模式図である。
【0077】
図4(A)を参照して、特徴量の集合体は、機械学習によってクラスタリングされると、正常データ(学習データ)となる特徴量の集合体aと、異常データ(学習データ)となる特徴量の集合体bとに分類される。
【0078】
制御装置100は、乖離度の取得においてマハラノビス距離を用いる。具体的には、制御装置100は、異常検知の診断対象となる特徴量のデータ(以下、「診断対象データ」とも称す。)と、各特徴量の集合体a,bに含まれるk個の特徴量との距離に基づき、乖離度(乖離度a,乖離度b)を算出する。
【0079】
このとき、制御装置100は、乖離度の取得に用いる特徴量の集合体における範囲に関する第2パラメータに基づいて、乖離度を取得する。第2パラメータは、診断対象データとの間の乖離度の算出に用いられる特徴量の数(以下、「k値」とも称す。)を設定するためのパラメータである。ユーザは、サポート装置200を用いて、第2パラメータの値を設定することができる。k値が多いほど、診断対象データが比較される学習データの数が多くなる。
【0080】
図4(B)を参照して、制御装置100は、乖離度aがしきい値aよりも大きく、かつ乖離度bがしきい値bよりも小さい場合に、診断対象データが異常であると判断する。あるいは、制御装置100は、乖離度aがしきい値aよりも大きい場合、または乖離度bがしきい値bよりも小さい場合に、診断対象データが異常であると判断する。
【0081】
図5は、本実施の形態に係る制御システム1において用いられるマハラノビス距離による診断の一例を説明するための模式図である。
【0082】
図5(A)に示すように、複数の学習データP1,P2,P3,・・・は、特徴ベクトルの次元ごとにそれぞれの特徴量が算出されている。たとえば、学習データP1は、6次元の各次元に対応する特徴量として、P11,P12,P13,P14,P15,P16が算出されている。これら複数の学習データは、予め設けられた基準に基づく信頼度の高い順にテーブルに格納されている。なお、信頼度が高いほど、異常検知の確度が高くなる。診断対象データPx(Px1,Px2,Px3、・・・)と学習データとの間のマハラノビス距離Divは、図5(B)に示される式によって算出される。ここで、σは、各次元における複数の学習データの標準偏差である。診断対象データが異常の場合、診断対象データが正常の場合に比べて、診断対象データと学習データとの間のマハラノビス距離が大きい。このため、診断対象データが異常の場合に得られるマハラノビス距離は、診断対象データが正常の場合に得られるマハラノビス距離よりも大きくなる。したがって、しきい値の取り方によって、診断対象データが正常の場合にはマハラノビス距離がしきい値を超えない一方で、診断対象データが異常の場合にはマハラノビス距離がしきい値を超えることになる。
【0083】
このように、制御装置100は、正常時および異常時の少なくとも一方における学習データと、診断対象データとの間の乖離度を取得し、取得した乖離度としきい値とに基づき、制御対象に生じる異常を検知する。なお、制御装置100は、ユークリッド距離など公知の近傍法によって、制御対象に生じる異常を検知してもよい。
【0084】
ここで、制御システム1においては、第1パラメータの値および第2パラメータの値のそれぞれに応じて、乖離度の取得時間が変化する。図6は、本実施の形態に係る制御システム1において乖離度の取得時間の変化を説明するための模式図である。
【0085】
図6(A)の例では、第1パラメータの値として次元数がnに設定され、第2パラメータの値としてk値がNに設定されている。この場合、診断対象データの比較対象となるデータの数は、概念的には比較対象数Nと次元数nとの積になる。
【0086】
図6(B)の例では、第1パラメータの値として次元数がs(sはnより小さい値)に設定され、第2パラメータの値としてk値がNに設定されている。この場合、診断対象データの比較対象となるデータの数は、概念的には比較対象数Nと次元数sとの積になる。次元数について、sはnより小さい値であるため、図6(B)の例における比較対象の総数は、図6(A)の例における比較対象の総数よりも小さくなる。したがって、その分、乖離度の計算時間が短くなるが、その一方で、異常検知の確度は低くなる。
【0087】
このように、ユーザは、第1パラメータの値を変更することで、異常検知の確度とのトレードオフで、乖離度の計算時間を短くしたり長くしたりすることができる。つまり、第1パラメータは、乖離度の取得時間を短縮可能なパラメータである。
【0088】
図6(C)の例では、第2パラメータの値として次元数がnに設定され、第2パラメータの値としてk値がS(SはNより小さい値)に設定されている。この場合、比較対象の総数は、概念的には比較対象数Sと次元数nとの積になる。k値について、SはNより小さい値であるため、図6(C)の例における比較対象の総数は、図6(A)の例における比較対象の総数よりも小さくなる。したがって、その分、乖離度の計算時間が短くなるが、その一方で、異常検知の確度は低くなる。
【0089】
第2パラメータによってk値が設定されると、図5(A)で示されたテーブルに格納された学習データのうち、信頼度の高い順から乖離度の計算に用いられる学習データが選択される。このように、ユーザは、第2パラメータの値を変更することで、異常検知の確度とのトレードオフで、乖離度の計算時間を短くしたり長くしたりすることができる。つまり、第2パラメータは、乖離度の取得時間を短縮可能なパラメータである。なお、第2パラメータによってk値が設定されると、乖離度の計算に用いられる学習データがランダムに選択されるものであってもよい。
【0090】
<D.制御システム1で実行される異常検知の主な工程>
次に、本実施の形態に係る制御システム1で実行される異常検知の主な工程について説明する。図7は、本実施の形態に係る制御システム1で実行される異常検知の主な工程を説明するための模式図である。図7を参照して、異常検知の工程は、設定工程と運転工程とを含む。
【0091】
(d1:設定工程)
設定工程は、(1−1)生データ収集工程と、(1−2)準備工程と、(1−3)試運転工程とを含む。
【0092】
(1−1)生データ収集工程においては、制御装置100が取り扱うデータのうち、異常検知に係る解析に使用する生データが内部DB130に書き込まれる。生データ収集工程は、後述する、制御装置100の内部DB書込プログラムが実行されることで実現される。
【0093】
制御装置100においては、フィールドとの間で遣り取りされるデータ(入力データおよび出力データ)ならびに内部データの各々に対してユニークな変数名が割り当てられており、それぞれの変数名を利用してユーザプログラムなどが記述される。すなわち、制御装置100においては、変数プログラミングが可能な環境が提供される。このため、以下の説明においては、「変数の指定」という表現は、対象となるデータを特定することと実質的に同義で用いることとする。なお、本発明の範囲は、変数プログラミング可能な構成に限定されるものではなく、メモリ上のアドレスを直接指定するような構成であっても、技術的範囲に含まれ得る。
【0094】
このように、生データ収集工程においては、制御対象から取得された生データが収集される。
【0095】
次に、(1−2)準備工程が実施される。準備工程においては、内部DB130に書き込まれた生データが読み込まれる。また、異常検知パラメータの候補リストが作成される。異常検知パラメータには、前述した第1パラメータおよび第2パラメータが含まれる。また、異常検知パラメータには、後述する(2−1)異常検知工程の実行周期に関する第3パラメータが含まれる。第3パラメータは、異常検知工程の実行周期(以下、「診断周期」とも称す。)を設定するためのパラメータである。ユーザは、サポート装置200を用いて第3パラメータの値を設定することができる。これらの工程は、典型的には、後述する、サポート装置200のデータマイニングツール226のデータマイニング機能によって実現される。
【0096】
次に、読み込まれた生データから特徴量が順次生成される。この工程は、制御装置100の特徴量生成プログラムが実行されることで実現される。
【0097】
次に、生成された特徴量に対して機械学習が実施され、その学習結果が内部DB125に書き込まれる。この工程は、後述する、制御装置100の機械学習エンジン140によって提供される。
【0098】
次に、機械学習の結果に基づき異常検知に用いられるしきい値が決定される。この工程は、サポート装置200のパラメータ設定ツール224が実行されることで実現される。
【0099】
このように、準備工程においては、異常検知に用いられる異常検知パラメータの候補リスト、機械学習による学習結果、および異常検知に用いられるしきい値が取得される。
【0100】
次に、(1−3)試運転工程が実施される。試運転工程においては、異常検知パラメータの候補リストに挙がっているパラメータの組(たとえば、第1パラメータ,第2パラメータ,第3パラメータのセット)に基づき、パラメータの組が1組ずつ用いられて機械学習エンジン140が実行される。
【0101】
機械学習エンジン140が実行されるごとに、機械学習エンジン140の実行時間(乖離度の取得時間)が測定される。異常検知パラメータが全て用いられると、機械学習エンジン140の総実行時間に基づき、候補リストに挙がっている異常検知パラメータの中から一の異常検知パラメータが自動的に決定される。
【0102】
このように、試運転工程においては、異常検知に用いられる異常検知パラメータが決定される。
【0103】
(d2:運転工程)
運転工程は、(2−1)異常検知工程と、(2−2)時間超過検知工程とを含む。
【0104】
(2−1)異常検知工程においては、生成された特徴量のデータ(診断対象データ)と、内部DB125に学習結果として書き込まれた特徴量の集合体のデータ(学習データ)との乖離度が取得される。そして、取得された乖離度と、しきい値とに基づいて、制御対象に生じる異常が検知される。異常が検知された場合、その旨を示すイベントログが出力される。
【0105】
異常検知工程においてイベントログが出力されると、表示装置400に異常内容が表示される。異常内容としては、異常の発生時間および発生場所、異常検知された特徴量などが含まれる。
【0106】
このように、異常検知工程においては、制御対象に生じる異常が検知され、表示装置400によってその旨が出力される。
【0107】
次に、(2−2)時間超過検知工程が実施される。時間超過検知工程においては、異常検知工程における機械学習エンジン140による乖離度の取得時間が、異常検知工程の実行周期(診断周期)の時間を2回連続で超えた場合に、その旨を示すイベントログが出力される。なお、イベントログは、機械学習エンジン140による乖離度の取得時間が診断周期の時間を1回以上超えた場合に出力されてもよい。
【0108】
時間超過検知工程においてイベントログが出力されると、サポート装置200が備える表示部218に異常内容が表示される。異常内容としては、超過時間、時間超過となった現在の異常検知パラメータ、および準備工程において作成された異常検知パラメータの候補などが含まれる。
【0109】
このように、時間超過検知工程においては、機械学習エンジン140による乖離度の取得の時間超過が検知され、サポート装置200によってその旨が出力される。
【0110】
<E.制御システム1における主な機能>
次に、本実施の形態に係る制御システム1における主な機能について説明する。
【0111】
図8は、本実施の形態に係る制御システム1の各装置が提供する機能を説明するための模式図である。図8に示す模式図において、カッコ内の数字は、図7に示す(1−1)〜(1−3)および(2−1),(2−2)の工程における処理に対応している。
【0112】
制御装置100は、内部DB125、内部DB130、および機械学習エンジン140に加えて、PLCエンジン150を有している。これらの機能は、基本的には、制御装置100のプロセッサ102(図2)がプログラムを実行することで実現される。このプロセッサ102がプログラムを実行するための環境を提供するために、制御装置100にはOS190もインストールされる。
【0113】
PLCエンジン150は、典型的には、図示しないシステムプログラムと、ユーザプログラム160とがOS190上で実行されることで提供される。つまり、本発明のある局面によれば、一種のコンピュータにて実行されることで、PLCエンジン150が実現される。
【0114】
より具体的には、PLCエンジン150は、スケジューラ152と、変数マネジャ154と、ユーザプログラム160とを含む。
【0115】
スケジューラ152は、PLCエンジン150を構成する各プログラム(あるいは、それに対応するタスク)の実行タイミングや実行順序などを制御する。PLCエンジン150に含まれる各タスクには実行周期が予め定められており、スケジューラ152は、その定められた実行周期に従ってタスクを繰返し実行できるように制御する。
【0116】
変数マネジャ154は、PLCエンジン150において周期的に実行されるI/Oリフレッシュ処理によって更新されるデータを変数として管理する。より具体的には、変数マネジャ154は、制御装置100の各部の動作状態を示すデータ群を含むシステム変数1542と、PLCエンジン150において実行されるユーザプログラムが書き込み・読み出しを行うデータ群を含むユーザ変数・デバイス変数1544と、異常検知に用いるしきい値1546とを保持および管理する。
【0117】
しきい値1546については、サポート装置200のPLC変数アクセスプログラム2242によるアクセスおよび更新が可能になっている。つまり、変数マネジャ154は、しきい値1546を保持するとともに、外部装置からの要求に応じて、保持されているしきい値1546を更新する機能を提供する。
【0118】
ユーザプログラム160は、ユーザが任意に作成可能であり、典型的には、内部DB書込プログラム164と、機械学習エンジンインターフェイス166と、特徴量生成プログラム174と、異常検知プログラム162とを含む。ユーザプログラム160を構成するプログラムの命令は、一体のプログラムとして記述されてもよいし、複数のプログラムにそれぞれ分離して記述されてもよい。
【0119】
内部DB書込プログラム164は、ユーザ変数・デバイス変数1544に含まれる変数のうち、予め指定された変数を内部DB130に書き込む。
【0120】
機械学習エンジンインターフェイス166は、機械学習エンジン140を操作するための命令を含む。具体的には、機械学習エンジンインターフェイス166は、学習要求プログラム168と、監視要求プログラム170とを含む。
【0121】
つまり、機械学習エンジンインターフェイス166は、機械学習エンジン140に対して、機械学習を指示する命令を含み、機械学習エンジンインターフェイス166は、しきい値1546を用いて特徴量を監視し、異常検知を指示する命令を含む。
【0122】
特徴量生成プログラム174は、第1パラメータに基づいて、特徴量を生成する命令を含む。すなわち、特徴量生成プログラム174は、第1パラメータに基づいて、制御対象から取得される生データから特徴量を生成する。
【0123】
内部DB130には、典型的には、(1−1)生データ収集工程において収集される生データ132が格納される。
【0124】
機械学習エンジン140は、典型的には、学習プログラムと機械プログラムとがOS190上で実行されることで提供される。つまり、本発明のある局面によれば、一種のコンピュータにて実行されることで、機械学習エンジン140が実現される。
【0125】
学習プログラムおよび機械プログラムは、前述したPLCエンジンにおけるユーザプログラムと併せて制御プログラムとも称す。制御プログラムに含まれるプログラムは、いずれもユーザによって作成される。
【0126】
機械学習エンジン140は、(1−2)準備工程において必要な処理を実行するための学習機能142と、(1−3)試運転工程および(2−1)異常検知工程において必要な処理を実行するための異常検知機能144とを含む。
【0127】
学習機能142は、学習プログラムの実行によって実現される。学習機能142は、特徴量生成プログラム174の実行により生成される特徴量を用いて機械学習を実施する。機械学習による学習結果134は、内部DB125に格納される。
【0128】
異常検知機能144は、機械プログラムの実行によって実現される。異常検知機能144は、生成された特徴量のデータ(診断対象データ)と、内部DB125に学習結果として書き込まれた特徴量の集合体のデータ(学習データ)との乖離度を取得する。異常検知機能144は、監視要求プログラム170による監視要求トリガに従って実行する。言い換えると、監視要求プログラム170は、異常検知機能144に対して実行開始を指示する。
【0129】
異常検知プログラム162は、異常検知機能144により取得される乖離度と、しきい値1546とに基づいて、制御対象に生じる異常を検知する。そして、異常検知プログラム162は、何らかの異常を検知すると、その検知した異常の内容を示すイベントログ146を出力する。
【0130】
サポート装置200には、開発プログラム222(図3)に加えて、パラメータ設定ツール224およびデータマイニングツール226がインストールされている。
【0131】
パラメータ設定ツール224は、制御装置100の変数マネジャ154が管理する各変数に対してアクセスするためのPLC変数アクセスプログラム2242を含む。PLC変数アクセスプログラム2242は、制御装置100内部の変数の参照および書き換えを可能にする。ユーザは、パラメータ設定ツール224を実行することで、(1−2)準備工程において、しきい値を決定することができる。
【0132】
データマイニングツール226は、生データ取得機能2262と、データマイニング機能2264とを含む。生データ取得機能2262は、(1−1)生データ収集工程において、内部DB130にアクセスして、内部DB130に収集されている生データのうち、必要なデータを抽出する。データマイニング機能2264は、主として、(1−2)準備工程において、異常検知パラメータの候補リストを作成する。
【0133】
また、サポート装置200は、試運転機能2266と、表示機能2268とを含む。試運転機能2266は、(1−3)試運転工程において、機械学習エンジン140を実行させる。機械学習エンジン140の実行時間(乖離度の取得時間)は、変数マネジャ154によってシステム変数1542として保持される。試運転機能2266は、変数マネジャ154から取得した機械学習エンジン140の総実行時間に基づき、候補リストに挙がっている1または複数の異常検知パラメータの中から一の異常検知パラメータを決定する。
【0134】
表示機能2268は、(2−2)時間超過検知工程において出力されたイベントログ146に基づき、機械学習エンジン140による乖離度の取得時間が超過した旨を表示部218に出力する。
【0135】
具体的には、機械学習エンジン140による乖離度の取得時間は、変数マネジャ154によってシステム変数1542として保持される。一方、変数マネジャ154には、異常検知工程の実行周期(診断周期)がシステム変数1542として保持される。異常検知工程における機械学習エンジン140による乖離度の取得時間が、異常検知工程の実行周期(診断周期)の時間を2回連続で超えた場合、変数マネジャ154からその旨を示すイベントログが出力される。表示機能2268は、そのイベントログ146に基づき、機械学習エンジン140による乖離度の取得が時間超過した旨を表示部218に出力する。
【0136】
なお、表示機能2268は、(1−2)準備工程において作成された異常検知パラメータの候補リストおよび決定されたしきい値などを表示部218に出力してもよい。
【0137】
表示装置400は、表示機能402を含む。表示機能402は、(2−1)異常検知工程において出力されたイベントログ146に基づき、制御対象に異常が生じた旨を表示する。
【0138】
<F.設定工程における主な処理内容>
図9は、本実施の形態に係る制御システム1の設定工程における主な処理内容を説明するための模式図である。なお、以下では、各ステップを単に「S」と略す。
【0139】
図9を参照して、(1−1)生データ収集工程においては、ユーザがサポート装置200の開発プログラム222を操作して、内部DB130に収集すべき変数を指定するためのユーザプログラムを作成する(S10)。この作成されたユーザプログラムが内部DB書込プログラム164に相当する。制御装置100のPLCエンジン150で内部DB書込プログラム164が実行されることで、制御装置100の内部DB130に生データ132が書き込まれる(S12)。
【0140】
(1−2)準備工程においては、ユーザがサポート装置200のデータマイニングツール226を操作して、内部DB130に収集されている生データ132を読み出して収集する(S20)。生データが収集されると、データマイニング機能2264によって異常検知パラメータの候補リストが作成される。
【0141】
ユーザがサポート装置200の開発プログラム222を操作して、(2)データマイニング工程において決定された異常検知パラメータの候補リストのうち、一の異常検知パラメータに基づき、特徴量生成に係るユーザプログラムを作成する(S22)。この作成されたユーザプログラムが特徴量生成プログラム174に相当する。
【0142】
ユーザがサポート装置200の開発プログラム222を操作して、特徴量を用いた機械学習を指定するためのユーザプログラムを作成する(S24)。この作成されたユーザプログラムが学習要求プログラム168に相当する。
【0143】
制御装置100のPLCエンジン150の機械学習エンジンインターフェイス166で学習要求プログラム168が実行されることで(S26)、制御装置100の機械学習エンジン140の学習機能142が機械学習を実施し、その学習結果134が内部DB125に格納される(S28)。なお、特徴量生成プログラム174および学習要求プログラム168を同時に実行させるようにしてもよい。
【0144】
そして、ユーザがサポート装置200のパラメータ設定ツール224を操作して、内部DB125に格納されている学習結果134を読み出して解析することで、しきい値を決定する(S30)。続いて、ユーザがサポート装置200のパラメータ設定ツール224を操作して、決定したしきい値1546を制御装置100のPLCエンジン150に転送する(S32)。
【0145】
(1−3)試運転工程においては、ユーザがサポート装置200において試運転機能を実行すると(S40)、PLCエンジン150の監視要求プログラム170が実行される。
【0146】
監視要求プログラム170が実行されることで機械学習エンジン140の異常検知機能144に対して実行開始が指示されると(S42)、異常検知機能144は、生成された特徴量のデータ(診断対象データ)と、内部DB125に学習結果として書き込まれた特徴量の集合体のデータ(学習データ)との乖離度を取得する。
【0147】
次に、試運転機能2266においては、PLCエンジン150の異常検知プログラム162が実行される(S44)。異常検知プログラム162が実行されると、異常検知機能144により取得される乖離度と、しきい値1546とに基づいて、制御対象に生じる異常が検知される(S46)。制御対象に生じる異常が検知されると、その旨を示すイベントログ146が出力される(S48)。
【0148】
次に、試運転機能2266においては、機械学習エンジン140の実行時間(異常検知機能144による乖離度の取得時間)が、変数マネジャ154からサポート装置200によって取得される(S50)。試運転機能2266においては、変数マネジャ154から取得した機械学習エンジン140の総実行時間に基づき、候補リストに挙がっている1または複数の異常検知パラメータの中から一の異常検知パラメータが決定される。
【0149】
以上のような制御装置100およびサポート装置200の各エレメントが連系することで、本実施の形態に係る設定工程が実施される。
【0150】
<G.運転工程における主な処理内容>
図10は、本実施の形態に係る制御システム1の運転工程における主な処理内容を説明するための模式図である。
【0151】
図10を参照して、(2−1)異常検知工程においては、ユーザがサポート装置200の開発プログラム222を操作して、機械学習エンジン140の異常検知機能144に対して実行開始を指示するためのユーザプログラムを作成する(S60)。この作成されたユーザプログラムが監視要求プログラム170に相当する。
【0152】
監視要求プログラム170が実行されることで異常検知機能144に対して実行開始が指示されると(S62)、異常検知機能144は、生成された特徴量のデータ(診断対象データ)と、内部DB125に学習結果として書き込まれた特徴量の集合体のデータ(学習データ)との乖離度を取得する。
【0153】
ユーザがサポート装置200の開発プログラム222を操作して、制御対象に生じる異常を検知するためのユーザプログラムを作成する(S64)。この作成されたユーザプログラムが異常検知プログラム162に相当する。
【0154】
異常検知プログラム162が実行されると、異常検知機能144により取得される乖離度と、しきい値1546とに基づいて、制御対象に生じる異常が検知される(S66)。制御対象に生じる異常が検知されると、その旨を示すイベントログ146が出力される(S68)。
【0155】
(2−2)時間超過通知工程においては、異常検知工程における機械学習エンジン140による乖離度の取得時間が、異常検知工程の実行周期(診断周期)の時間を2回連続で超えた場合、変数マネジャ154からその旨を示すイベントログが出力される(S70)。
【0156】
<H.ユーザプログラムおよび機械プログラムの実行周期>
図11は、本実施の形態に係る制御システム1において実行されるユーザプログラムおよび機械プログラムの実行周期を説明するための模式図である。図12は、本実施の形態に係る制御システム1において実行されるユーザプログラムおよび機械プログラムの実行の一例を説明するための模式図である。なお、図11および図12では、運転工程におけるユーザプログラムおよび機械プログラムの実行例が示されている。
【0157】
図11を参照して、PLCエンジン150におけるユーザプログラムは、予め定められた周期(以下、制御周期とも称す。)で実行される。ユーザプログラムは、機械プログラムよりも優先的に実行される。1制御周期の上限時間(図中のタイミングtminからタイミングtmaxまでの時間)は予め決められており、その間にユーザプログラムの実行が完了すると、空き時間を利用して機械プログラムが実行される。
【0158】
図12を参照して、ユーザプログラムは、たとえば、数msecの制御周期で実行され、機械プログラムは、数100msec〜数secの周期で実行される。タイミングt1において実行されたユーザプログラムでは、入出力処理の後に特徴量生成プログラムによって特徴量が生成される。生成された特徴量は、機械学習エンジン140に出力される。また、監視要求プログラムによって監視要求トリガが出力される。
【0159】
タイミングt2においてユーザプログラムの一連の処理が完了すると、次の制御周期に移行するまでの空き時間を利用して、監視要求トリガに従うように機械プログラムが実行される。
【0160】
機械プログラムの実行中においては、ユーザプログラムの実行によって生成された特徴量のデータ(診断対象データ)と、内部DB125に学習結果として書き込まれた特徴量の集合体のデータ(学習データ)との乖離度が計算される。
【0161】
タイミングt3においてユーザプログラムの1制御周期が終了すると、次の制御周期に移行して再びユーザプログラムが実行される。この制御周期内においては、機械学習エンジン140によって未だ診断対象データについての乖離度が取得されていないため、監視要求プログラムによって監視要求トリガは出力されない。なお、特徴量生成プログラムによって特徴量は生成されるものの、機械学習エンジン140は、未だ診断対象データについての乖離度を取得していないので、新たに取得した特徴量を用いた乖離度の計算を行わない。
【0162】
タイミングt4においてユーザプログラムの一連の処理が完了すると、次の制御周期に移行するまでの空き時間を利用して、再び乖離度の計算が行われる。このようにして、機械学習エンジン140は、ユーザプログラムの処理が完了した後、1制御周期内の空き時間を利用して乖離度の計算を行う。
【0163】
タイミングt6からタイミングt7までの期間で機械学習エンジン140によって乖離度の取得が完了すると、タイミングt8で実行される次の制御周期におけるユーザプログラムによって、乖離度(たとえば、マハラノビス距離)がPLCエンジン150に入力される。
【0164】
タイミングt8で実行されたユーザプログラムでは、入力された乖離度と、予め決められたしきい値とに基づいて、制御対象の異常検知が行われる。
【0165】
以上のような機械プログラムの実行による乖離度の取得は、第3パラメータによって設定された異常検知工程の実行周期(診断周期)内に収まることが好ましい。
【0166】
再び図11を参照して、第3パラメータによって診断周期aが設定された場合を想定する。診断周期a内では、機械プログラムの実行による乖離度の取得が完了していない。この場合、次の制御周期でユーザプログラムが実行されたとしても、この制御周期内の空き時間を利用して、乖離度の取得が引き続き行われる。このような時間超過が2回続くと、前述した時間超過検知工程においてイベントログが出力される。
【0167】
ここで、前述したように、異常検知工程の実行周期(診断周期)について、ユーザは、第3パラメータで設定することができる。このため、たとえば、図11に示すように、ユーザは、診断周期aよりも期間が長い診断周期bとなるように第3パラメータを設定すれば、診断周期内で乖離度の取得が完了する。
【0168】
このように、ユーザは、第3パラメータの値を変更することで、乖離度の取得に使用できる時間を調整することができる。機械学習エンジン140による乖離度の取得時間は、たとえば、生産ラインを流れるワークの単位時間当たりの数など、制御対象が置かれる生産システムに依存する。このため、ユーザは、第3パラメータを設定することで所望の診断周期を設定する。
【0169】
また、前述したように、第3パラメータの設定によって診断周期を変更する方法に限らず、ユーザは、第1パラメータおよび第2パラメータを設定することで乖離度の取得時間を調整することもできる。
【0170】
具体的には、第1パラメータは、特徴量を定義する要素の種類(平均、標準偏差、歪度、尖度、最大、および最小など)および要素の数(特徴ベクトルの次元数)を設定するためのパラメータである。よって、第1パラメータは、制御周期ごとの特徴量の生成時間に関係するため、第1パラメータの設定によって、ユーザプログラムの一連の処理時間が短くなる。すなわち、乖離度の計算に用いられる1制御周期内の空き時間をなるべく確保することができる。また、第1パラメータは、乖離度の計算時間にも影響する。このため、ユーザは、第1パラメータを設定することで、乖離度の取得時間を短くすることができる。
【0171】
また、第2パラメータは、k値を設定するためのパラメータである。よって、第2パラメータは、乖離度の計算時間に影響する。このため、ユーザは、第2パラメータを設定することで、乖離度の取得時間を短くすることができる。
【0172】
このように、ユーザは、制御対象が置かれる生産システムに依存して変動する乖離度の取得時間を考慮して第3パラメータを設定することで、診断周期を調整することができる。また、診断周期が決まっている場合であっても、ユーザは、第1パラメータおよび第2パラメータを設定することで、その診断周期内に収まるように乖離度の取得時間を設定することができる。したがって、ユーザは、ユーザプログラム自体を改変する必要がなく、パラメータを設定するだけで、診断周期内に収まるように乖離度の取得時間を調整することができる。その結果、生産システムのメンテナンス工数が増えることを極力抑えることができる。
【0173】
<I.ユーザプログラム>
次に、ユーザプログラムについて説明する。図13は、本実施の形態に係る制御システム1において実行されるユーザプログラムの一例を示す図である。前述したように、ユーザプログラムは、特徴量生成プログラムと、監視要求プログラムと、異常検知プログラムとを含む。
【0174】
図13を参照して、特徴量生成プログラムは、典型的には、特徴量生成ファンクションブロック1740を用いて記述されてもよい。
【0175】
特徴量生成ファンクションブロック1740に対しては、特徴量の生成に関する変数の指定が定義される。たとえば、符号1742で示されるST1は、特徴量生成プログラムの実行有無を指定する。符号1746で示されるInput2は、制御対象から取得された生データの入力を指定する。
【0176】
符号1748で示されるInput3は、特徴量を定義する要素をビットで指定する。ユーザは、符号1748で示されるInput3を指定することで、特徴量を定義する要素の種類(平均、標準偏差、歪度、尖度、最大、および最小など)および要素の数(特徴ベクトルの次元数)を設定することができる。つまり、符号1748で示されるInput3における指定は、第1パラメータの設定に対応する。
【0177】
符号1750で示されるSTC1は、特徴量の計算完了を指定する。符号1752で示されるSamp1は、特徴量の計算中を指定する。符号1758で示されるFD1は、計算された特徴量を指定する。
【0178】
次に、監視要求プログラムは、典型的には、監視要求ファンクションブロック1700を用いて記述されてもよい。
【0179】
監視要求ファンクションブロック1700に対しては、機械プログラムに対する実行開始の指示に関する変数の指定が定義される。たとえば、符号1702で示されるSTC1は、符号1750で示されるSTC1に関連付けられており、特徴量の計算完了を指定する。符号1704で示されるSTL1は、機械学習エンジン140による機械プログラムの実行有無を指定する。
【0180】
符号1706で示されるInput4は、診断周期を指定する。ユーザは、符号1706で示されるInput4を指定することで、診断周期を設定することができる。つまり、符号1706で示されるInput4における指定は、第3パラメータの設定に対応する。
【0181】
符号1708で示されるFD1は、符号1758で示されるFD1に関連付けられており、計算された特徴量を指定する。符号1710で示されるAlgo1は、アルゴリズム名を指定する。
【0182】
符号1712で示されるKva1は、k値を指定する。ユーザは、符号1712で示されるKva1を指定することで、k値を設定することができる。つまり、符号1712で示されるKva1における指定は、第2パラメータの設定に対応する。
【0183】
符号1714で示されるSTC2は、乖離度の記憶完了を指定する。符号1716で示されるDiv1は、記憶された乖離度を指定する。
【0184】
次に、異常検知プログラムにおいては、異常検知に関する変数の指定が定義される。たとえば、符号1622で示されるSTC2は、符号1714で示されるSTC2に関連付けられており、乖離度の記憶完了を指定する。符号1624で示されるDiv1は、符号1716で示されるDiv1に関連付けられており、記憶された乖離度を指定する。符号1626で示されるThは、異常検知に用いられるしきい値を指定する。
【0185】
符号1628で示されるErr3は、符号1620で示されるJudgeにおける乖離度としきい値との判定結果を指定する。
【0186】
なお、図13に示すユーザプログラムは一例であって、どのような記述方法を採用してもよい。
【0187】
<J.具体例>
本実施の形態に係る制御システム1を用いた異常検知の具体例について説明する。
【0188】
図14は、本実施の形態に係る制御システム1において実行される設定工程を説明するためのフローチャートである。
【0189】
図14を参照して、設定工程が開始されると、サポート装置200は、異常検知パラメータの候補リストを作成する(S202)。異常検知パラメータの候補リストは、過去の実績データあるいはシミュレーションなどに基づき作成される。また、たとえば、第3パラメータの値として診断周期が予め設定されている場合、異常検知パラメータの候補リストは、設定された診断周期に基づき作成されてもよい。
【0190】
サポート装置200は、異常検知パラメータの候補リストに挙がっている1または複数のパラメータの組(たとえば、第1パラメータ,第2パラメータ,第3パラメータのセット)の中から、1組の異常検知パラメータを抽出する(S204)。
【0191】
一方、制御装置100は、サポート装置200によって抽出された異常検知パラメータに基づき特徴量を生成する(S102)。具体的には、制御装置100は、第1パラメータによって定義される要素の種類(平均、標準偏差、歪度、尖度、最大、および最小など)および要素の数(特徴ベクトルの次元数)に基づき特徴量を生成する。
【0192】
制御装置100は、機械学習エンジン140に異常検知パラメータを設定する(S104)。制御装置100は、機械学習エンジン140を実行し、その実行時間を測定する(S106)。具体的には、制御装置100は、第2パラメータによって定義されるk値に基づき、機械学習エンジン140により乖離度を取得する。そして、制御装置100は、その取得時間を測定する。制御装置100は、測定した実行時間をサポート装置200に通知する(S108)。
【0193】
一方、サポート装置200は、制御装置100から通知された実行時間を記憶する(S206)。サポート装置200は、候補リストに挙がっている全ての異常検知パラメータを使用していない場合(S208でNO)、再び1組の異常検知パラメータを抽出する(S204)。
【0194】
サポート装置200は、候補リストに挙がっている全ての異常検知パラメータを使用した場合(S208でYES)、第3パラメータによって設定された診断周期内に収まった異常検知パラメータのうち、一の異常検知パラメータを決定する(S210)。
【0195】
たとえば、サポート装置200は、実行時間がより短い異常検知パラメータ、あるいは異常検出率がより高い異常検知パラメータを採用すればよい。なお、サポート装置200は、実行時間および異常検出率に対して重み付けすることで、異常検知パラメータを決定してもよい。具体的には、実行時間がより短いほど重みを大きくし、かつ異常検出率がより高いほど重みを大きくし、それらの重みを掛け合わせた結果が最も大きくなる異常検知パラメータを採用すればよい。なお、サポート装置200は、実行時間および異常検出率以外の観点から、一の異常検知パラメータを決定してもよい。
【0196】
サポート装置200は、決定した異常検知パラメータおよびその異常検出率を表示部218に表示し(S212)、設定工程を終了する。その後は、運転工程が実施される。
【0197】
図15は、本実施の形態に係る制御システム1において作成される候補リストの一例を示す図である。なお、図15に示される候補リストは、図14のS202で作成される候補リストの一例である。
【0198】
図15(A)を参照して、サポート装置200は、候補リスト格納テーブルを作成する。候補リスト格納テーブルには、異常検知パラメータの候補リストが格納されている。たとえば、図15(A)の例では、診断周期として120msecが設定されていた場合に、パラメータ1〜6が候補として挙げられている。
【0199】
候補リスト格納テーブルにおいて、診断周期は第3パラメータの設定値に対応し、k値は第2パラメータの設定値に対応し、次元数は第1パラメータの設定値に対応する。図15(B)を参照して、第1パラメータは、特徴量演算フラグテーブルに格納された各フラグBitを用いて設定される。
【0200】
設定工程において、機械学習エンジン140は、候補リストとして挙げられた全ての異常検知パラメータを用いて乖離度を取得し、その実行時間を測定する。図15(A)の例では、パラメータ3〜6を用いた場合に、機械学習エンジン140の実行時間が120msecの診断周期内に収まっている。一方、その他のパラメータ1,2を用いた場合では、時間超過となる。
【0201】
機械学習エンジン140の実行時間が診断周期内に収まった異常検知パラメータのうち、実行時間および異常検出率に基づきTotal Scoreが算出される。そして、その結果に基づき、一の異常検知パラメータが決定される。この例では、パラメータ3が異常検知パラメータとして決定される。なお、図15に示されるパラメータ3は、図14のS210で決定される異常検知パラメータの一例である。
【0202】
設定工程で異常検知パラメータとしてパラメータ3が決定されると、次の段階では、それを用いて運転工程が実施される。設定工程において時間超過が発生しなかったとしても、実際の運用では制御対象の振る舞いによって時間超過が発生する可能性がある。図16は、本実施の形態に係る制御システム1において設定された診断周期内に診断が終了しなかった場合の一例を説明するための模式図である。
【0203】
図16を参照して、この例では、n周期目では機械学習エンジン140の実行時間が診断周期内に収まっているが、n+1周期目では機械学習エンジン140の実行時間が診断周期内に収まっていない。
【0204】
n+1周期目で収まりきらなかった分は、n+2周期目で乖離度の取得が引き続き行われる。このような時間超過が2回続くと、その旨を示すイベントログが出力される。
【0205】
時間超過を通知するイベントログが出力されると、サポート装置200の表示部218に時間超過の通知およびパラメータを選択するための画像が表示される。
【0206】
図17は、本実施の形態に係る制御システム1においてサポート装置200に表示される画像の一例を示す図である。
【0207】
図17を参照して、サポート装置200の表示部218には、現在の設定状況を示す設定画像2182と、パラメータを選択するための選択画像2184とが表示される。
【0208】
設定画像2182には、現在設定されているパラメータ3の設定内容が表される。さらに、設定画像2182には、時間超過を表すデータがグラフィカルに表される。具体的には、機械学習エンジン140によって乖離度の取得に要した時間と診断周期との関係が、グラフィカルに表される。
【0209】
選択画像2184には、図15に示される候補リストのうち、機械学習エンジン140の実行時間が診断周期内に収まったパラメータ4〜6の設定内容が表される。さらに、この設定内容の表示においては、Total Scoreの大きい順に従って、候補1〜3として異常検知パラメータが表示される。このように、機械学習エンジン140による乖離度の取得時間に基づく優先順位に従って、乖離度の取得時間を短縮可能な異常検知パラメータの候補が表示される。
【0210】
また、選択画像2184には、候補1〜3のうち、いずれかの異常検知パラメータを選択するためのラジオボタン2186と、その選択を確定する確定ボタン2188とが表される。ユーザは、候補1〜3のうちから所望の異常検知パラメータをラジオボタン2186によって選択し、確定ボタン2188をクリックすることで、異常検知パラメータを確定することができる。
【0211】
このように、設定工程において一の異常検知パラメータが決定され、その異常検知パラメータを用いて運用工程が実施される。運用工程において時間超過の異常が発生すると、設定工程において作成されていた候補リストの中から、使用していない異常検知パラメータが選択肢として出力される。ユーザは、選択画像2184で表された異常検知パラメータの候補のうち、所望のパラメータを選択することで、異常検知パラメータを設定することができる。このようにして、ユーザは、予め設定していた診断周期内に機械学習エンジン140の実行時間が収まるように、異常検知パラメータを設定することができる。すなわち、ユーザは、制御対象に生じる異常を検知する際に要する期間を調整することができる。
【0212】
<K.変形例>
本実施の形態に係る制御システム1においては、設定工程において異常検知パラメータが自動で決定されるものであったが、ユーザがサポート装置200を用いて異常検知パラメータを決定するものであってもよい。もちろん、ある状況においては、ユーザがサポート装置200を用いて異常検知パラメータを決定する一方で、他の状況においては、サポート装置200が異常検知パラメータを自動で決定するものであってもよい。
【0213】
本実施の形態に係る制御システム1においては、ユーザが第1パラメータ、第2パラメータ、および第3パラメータの少なくともいずれかを決定できるが、ユーザがこれらのうちのいずれかのパラメータのみを決定し、その他のパラメータはサポート装置200によって自動で決定されてもよい。また、異常検知パラメータとして、診断周期、k値、および次元数の他に、制御対象に生じる異常を検知する際に要する期間を調整できる他のパラメータをユーザが決定できてもよい。
【0214】
本実施の形態に係る制御システム1においては、運用工程において時間超過の異常が発生した場合、ユーザに異常検知パラメータを選択させるものであった。しかし、運用工程において時間超過の異常が発生した場合、診断周期内に機械学習エンジン140の実行時間が収まるように、サポート装置200が異常検知パラメータを自動で決定してもよい。
【0215】
本実施の形態に係る制御システム1においては、時間超過の異常が生じた場合に、設定工程において作成された候補リストの中から、ユーザが異常検知パラメータを選択するものであったが、ユーザが異常検知パラメータの値を自由に変更できてもよい。
【0216】
たとえば、図18は、本実施の形態に係る制御システム1においてサポート装置200に表示される画面の一例を示す図である。図18を参照して、サポート装置200の表示部218には、パラメータを選択するための選択画像2192が表示される。
【0217】
選択画像2192には、診断周期、k値、および特徴量処理(次元数)の選択項目が表される。ユーザは、これらの選択項目を用いて所望の値を異常検知パラメータとして選択し、確定ボタン2198をクリックすることで、異常検知パラメータを確定することができる。このように、ユーザは、異常検知パラメータの値を自由に変更できる。
【0218】
<L.利点>
本実施の形態に係る制御システム1によれば、診断周期、k値、および次元数といった異常検知パラメータをユーザが設定することができる。これにより、ユーザは、制御対象に生じる異常を検知する際に要する期間を、パラメータの値を設定することで調整することができる。
【0219】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した説明ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【0220】
1 制御システム、2 第1フィールドネットワーク、4 第2フィールドネットワーク、6 ローカルネットワーク、10 フィールド装置群、12 リモートI/O装置、14 リレー群、16,124 I/Oユニット、18 画像センサ、20 カメラ、22 サーボドライバ、24 サーボモータ、100 制御装置、102,202 プロセッサ、104 チップセット、106,206 主記憶装置、108,208 二次記憶装置、110,214 ローカルネットワークコントローラ、112,212 コントローラ、114 メモリカードインターフェイス、116 メモリカード、118,120 フィールドバスコントローラ、122 内部バスコントローラ、132 生データ、134 学習結果、140 機械学習エンジン、142 学習機能、144 異常検知機能、146 イベントログ、150 エンジン、152 スケジューラ、154 変数マネジャ、160 ユーザプログラム、162 異常検知プログラム、164 書込プログラム、166 機械学習エンジンインターフェイス、168 学習要求プログラム、170 監視要求プログラム、174 特徴量生成プログラム、200 サポート装置、204 光学ドライブ、205 記録媒体、216 入力部、218 表示部、220 バス、222 開発プログラム、224 パラメータ設定ツール、226 データマイニングツール、300 データロギング装置、400 表示装置、402,2268 表示機能、1542 システム変数、1544 デバイス変数、1546 しきい値、1700 監視要求ファンクションブロック、1740 特徴量生成ファンクションブロック、2182 設定画像、2184,2192 選択画像、2186 ラジオボタン、2188,2198 確定ボタン、2242 変数アクセスプログラム、2262 生データ取得機能、2264 データマイニング機能、2266 試運転機能。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
【手続補正書】
【提出日】2018年1月24日
【手続補正1】
【補正対象書類名】明細書
【補正対象項目名】0220
【補正方法】変更
【補正の内容】
【0220】
1 制御システム、2 第1フィールドネットワーク、4 第2フィールドネットワーク、6 ローカルネットワーク、10 フィールド装置群、12 リモートI/O装置、14 リレー群、16,124 I/Oユニット、18 画像センサ、20 カメラ、22 サーボドライバ、24 サーボモータ、100 制御装置、102,202 プロセッサ、104 チップセット、106,206 主記憶装置、108,208 二次記憶装置、110,214 ローカルネットワークコントローラ、112,212 コントローラ、114 メモリカードインターフェイス、116 メモリカード、118,120 フィールドバスコントローラ、122 内部バスコントローラ、132 生データ、134 学習結果、140 機械学習エンジン、142 学習機能、144 異常検知機能、146 イベントログ、150 エンジン、152 スケジューラ、154 変数マネジャ、160 ユーザプログラム、162 異常検知プログラム、164 書込プログラム、166 機械学習エンジンインターフェイス、168 学習要求プログラム、170 監視要求プログラム、174 特徴量生成プログラム、200 サポート装置、204 光学ドライブ、205 記録媒体、216 入力部、218 表示部、220 バス、222 開発プログラム、224 パラメータ設定ツール、226 データマイニングツール、300 データロギング装置、400 表示装置、402,2268 表示機能、1542 システム変数、1544 ユーザ変数・デバイス変数、1546 しきい値、1700 監視要求ファンクションブロック、1740 特徴量生成ファンクションブロック、2182 設定画像、2184,2192 選択画像、2186 ラジオボタン、2188,2198 確定ボタン、2242 変数アクセスプログラム、2262 生データ取得機能、2264 データマイニング機能、2266 試運転機能。