(57)【要約】【課題】フィールドエンジニアが判定方法の調整作業を行ないやすく、かつ、設計者がユーザプログラムの設計作業を行ないやすい制御装置を提供する。【解決手段】制御装置は、監視対象に関連する状態値から生成される特徴量と学習データセットとの比較結果を示すスコアを算出し、スコアと判定基準とに基づいて、監視対象の異常の有無を判定する異常判定部と、更新部とを備える。異常判定部は、制御対象を制御するためのユーザプログラム内に命令が規定されることにより実現される。更新部は、外部から更新用の学習データセットおよび更新用の判定基準を受けて、現在設定されている学習データセットおよび判定基準をそれぞれ更新する。【選択図】図１
2020047016.tif 000002
【特許請求の範囲】
【請求項１】
制御対象から周期的に収集される状態値を用いて、前記制御対象を制御するための制御演算を実行する制御演算部と、
前記収集される状態値のうち監視対象に関連する状態値から生成される特徴量と予め設定された学習データセットとの比較結果を示すスコアを算出し、算出したスコアと予め設定された判定基準とに基づいて、前記監視対象の異常の有無を判定する異常判定部とを備え、
前記異常判定部は、前記制御対象を制御するためのユーザプログラム内に命令が規定されることにより実現され、
外部から更新用の学習データセットおよび更新用の判定基準を受けて、現在設定されている学習データセットおよび判定基準をそれぞれ更新する更新部をさらに備える、制御装置。
【請求項２】
前記生成される特徴量は、監視対象毎に予め定められており、
前記生成される特徴量に応じて学習データセットおよび判定基準が設定される、請求項１に記載の制御装置。
【請求項３】
前記異常判定部は、前記ユーザプログラム内にファンクションブロックの形で命令が規定されることにより実現される、請求項１に記載の制御装置。
【請求項４】
監視対象毎に前記ファンクションブロックと仮の学習データセットと仮の判定基準とが対応付けて予め作成されており、
前記ファンクションブロックが規定されることにより、当該ファンクションブロックに対応する仮の学習データセットおよび仮の判定基準が設定される、請求項３に記載の制御装置。
【請求項５】
前記異常判定部は、状態値の種類および特徴量の種類を指定する指定情報に従って、前記特徴量を生成し、
前記更新部は、外部から更新用の指定情報を受けて、現在設定されている指定情報を更新する、請求項１に記載の制御装置。
【請求項６】
制御システムであって、
制御対象から周期的に収集される状態値を用いて、当該制御対象を制御するための制御演算を実行する制御演算部と、
前記収集される状態値のうち監視対象に関連する状態値から生成される特徴量と予め設定された学習データセットとの比較結果を示すスコアを算出し、算出したスコアと予め設定された判定基準とに基づいて、前記監視対象の異常の有無を判定する異常判定部とを備え、
前記異常判定部は、前記制御対象を制御するためのユーザプログラム内に規定されることにより実現され、
前記制御システムは、さらに、
前記監視対象に関連する状態値または前記生成される特徴量を用いて、更新用の学習データセットと更新用の判定基準とを決定する決定部と、
前記更新用の学習データセットおよび前記更新用の判定基準を受けて、現在設定されている学習データセットおよび判定基準をそれぞれ更新する更新部とを備える、制御システム。
【請求項７】
前記ユーザプログラムを作成するプログラム作成部をさらに備え、
前記プログラム作成部は、
前記異常判定部を実現するための命令を規定するファンクションブロックを用いて前記ユーザプログラムを作成し、
前記ファンクションブロックに対応付けられた仮の学習データセットおよび仮の判定基準を設定する、請求項６に記載の制御システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、監視対象の異常の有無を判定するための制御装置および制御システムに関する。
【背景技術】
【０００２】
様々な生産現場において、ＰＬＣ（プログラマブルコントローラ）などの制御装置を用いて制御対象となる機械や装置を制御するＦＡ（Factory Automation）技術が広く普及している。生産現場では、機械や装置に対する予知保全により設備稼働率を向上させたいというニーズがある。予知保全とは、監視対象となる機械や装置に生じる何らかの異常の有無を判定して、設備を停止しなければならない状態になる前に、整備や交換などの保守作業を行なうような保全形態を意味する。
【０００３】
監視対象の異常の有無を判定する技術として、例えば特開平７−２８２１４６号公報（特許文献１）に開示されている半導体製造装置管理システムが知られている。この半導体製造装置管理システムでは、管理コンピュータが、半導体製造装置に付加した各種センサ類より入手したＩ／Ｏ（入出力）データから装置全体の動作タイミングを管理する。さらに、管理コンピュータは、その装置全体の動作タイミングを正常な状態と比較してタイミングの差が管理基準を越えた場合に警告を発生させる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平７−２８２１４６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
監視対象の異常の有無を判定するための判定方法は、監視対象の種類毎に異なる。そのため、調整者（以下、「フィールドエンジニア」という）は、監視対象の種類に応じて異常の有無の判定方法を調整する必要がある。判定方法の調整とは、例えば判定基準の調整である。
【０００６】
一方、監視対象を含む制御対象を制御するための制御装置を設計する設計者は、制御装置の動作を規定するユーザプログラムを設計する。設計者は、監視対象の異常の有無を判定するためのプログラム（異常判定プログラム）をユーザプログラム内に規定する。
【０００７】
一般に、フィールドエンジニアと設計者とは異なる。さらに、フィールドエンジニアが判定方法を調整するタイミングと設計者がユーザプログラムを設計するタイミングとは異なる。そのため、フィールドエンジニアがユーザプログラムへの影響を考慮しながら判定方法を調整することが困難であるとともに、設計者が判定方法の調整への影響を考慮しながらユーザプログラムを設計することが困難であった。
【０００８】
本発明は、上記の問題を鑑みてなされたものであり、その目的は、フィールドエンジニアが判定方法の調整作業を行ないやすく、かつ、設計者がユーザプログラムの設計作業を行ないやすい制御装置および制御システムを提供することである。
【課題を解決するための手段】
【０００９】
本開示の一例によれば、制御装置は、制御演算部と異常判定部とを備える。制御演算部は、制御対象から周期的に収集される状態値を用いて、制御対象を制御するための制御演算を実行する。異常判定部は、収集される状態値のうち監視対象に関連する状態値から生成される特徴量と予め設定された学習データセットとの比較結果を示すスコアを算出し、算出したスコアと予め設定された判定基準とに基づいて、監視対象の異常の有無を判定する。異常判定部は、制御対象を制御するためのユーザプログラム内に命令が規定されることにより実現される。制御装置は、外部から更新用の学習データセットおよび更新用の判定基準を受けて、現在設定されている学習データセットおよび判定基準をそれぞれ更新する更新部をさらに備える。
【００１０】
この開示によれば、制御装置の設計者は、暫定的に作成された学習データセットおよび判定基準情報を用いて監視対象の異常の有無が判定されるようにユーザプログラムを設計することができる。さらに、フィールドエンジニアは、ユーザプログラムが設計された後に、監視対象の異常の有無を精度良く判定できるように、学習データセットおよび判定基準情報を調整し、調整後の学習データセットおよび判定基準情報を更新部に提供すればよい。このように、上記の制御装置によれば、フィールドエンジニアが判定方法の調整作業を行ないやすく、かつ、設計者がユーザプログラムの設計作業を行ないやすくなる。
【００１１】
上述の開示において、生成される特徴量は、監視対象毎に予め定められている。生成される特徴量に応じて学習データセットおよび判定基準が設定される。この開示によれば、監視対象に応じて、特徴量、学習データセットおよび判定基準を設定できる。
【００１２】
上述の開示において、異常判定部は、ユーザプログラム内にファンクションブロックの形で命令が規定されることにより実現される。この開示によれば、設計者は、ファンクションブロックを用いて、監視対象の異常の有無の判定を実行させるユーザプログラムを容易に設計できる。
【００１３】
上述の開示において、監視対象毎にファンクションブロックと仮の学習データセットと仮の判定基準とが対応付けて予め作成されている。ファンクションブロックが規定されることにより、当該ファンクションブロックに対応する仮の学習データセットおよび仮の判定基準が設定される。この開示によれば、設計者は、ファンクションブロックを規定することにより、監視対象の異常の有無の判定を実行するための仮の学習データセットおよび仮の判定基準を容易に設定できる。
【００１４】
上述の開示において、異常判定部は、状態値の種類および特徴量の種類を指定する指定情報に従って、特徴量を生成する。更新部は、外部から更新用の指定情報を受けて、現在設定されている指定情報を更新する。この開示によれば、フィールドエンジニアは、監視対象の異常の有無の判定に適した特徴量を適宜調整することができる。
【００１５】
本開示の一例によれば、制御システムは、制御演算部と、異常判定部とを備える。制御演算部は、制御対象から周期的に収集される状態値を用いて、当該制御対象を制御するための制御演算を実行する。異常判定部は、収集される状態値のうち監視対象に関連する状態値から生成される特徴量と予め設定された学習データセットとの比較結果を示すスコアを算出し、算出したスコアと予め設定された判定基準とに基づいて、監視対象の異常の有無を判定する。異常判定部は、制御対象を制御するためのユーザプログラム内に規定されることにより実現される。制御システムは、さらに、決定部と更新部とを備える。決定部は、監視対象に関連する状態値または生成される特徴量を用いて、更新用の学習データセットと更新用の判定基準とを決定する。更新部は、更新用の学習データセットおよび更新用の判定基準を受けて、現在設定されている学習データセットおよび判定基準をそれぞれ更新する。
【００１６】
この開示によっても、フィールドエンジニアが判定方法の調整作業を行ないやすく、かつ、設計者がユーザプログラムの設計作業を行ないやすくなる。
【００１７】
上述の開示において、制御システムは、ユーザプログラムを作成するプログラム作成部をさらに備える。プログラム作成部は、異常判定部を実現するための命令を規定するファンクションブロックを用いてユーザプログラムを作成し、ファンクションブロックに対応付けられた仮の学習データセットおよび仮の判定基準を設定する。この開示によれば、設計者は、ファンクションブロックを規定することにより、監視対象の異常の有無の判定を実行するための仮の学習データセットおよび仮の判定基準を容易に設定できる。
【発明の効果】
【００１８】
本開示によれば、フィールドエンジニアが判定方法の調整作業を行ないやすく、かつ、設計者がユーザプログラムの設計作業を行ないやすくなる。
【図面の簡単な説明】
【００１９】
【図１】本実施の形態に係る制御装置の構成例を示す模式図である。
【図２】本実施の形態に係る制御システムの全体構成例を示す模式図である。
【図３】設計ツール装置のハードウェア構成例を示す模式図である。
【図４】設計ツール装置のソフトウェア構成例を示す模式図である。
【図５】監視対象の異常の有無を判定するためのファンクションブロックと付属データとの対応関係の一例を示す図である。
【図６】監視対象の異常の有無を判定するためのファンクションブロックの一例を示す図である。
【図７】図６に示すファンクションブロックを用いて作成されたユーザプログラムの一例を示す図である。
【図８】本実施の形態に係る制御装置のハードウェア構成例を示すブロック図である。
【図９】本実施の形態に係るサポート装置のハードウェア構成例を示すブロック図である。
【図１０】本実施の形態に係る制御システムの主要なソフトウェア構成例を示すブロック図である。
【図１１】図１０に示す解析ツールに含まれる機能モジュールの概要を示すブロック図である。
【図１２】本実施の形態に係る制御システムの異常判定処理の基本的な考え方を説明するための模式図である。
【図１３】本実施の形態に係る制御システムの異常判定処理の手順を概略した模式図である。
【図１４】本実施の形態に係る制御装置において実行される異常判定処理の手順を示すフローチャートである。
【図１５】本実施の形態に係る解析処理の内容を示す模式図である。
【図１６】図１５に示される（ａ）〜（ｃ）の処理の概要を視覚的に示す模式図である。
【図１７】本実施の形態に係るサポート装置の処理手順の一例を示すフローチャートである。
【図１８】図１７のステップＳ６においてフィールドエンジニアに提供されるユーザインターフェイス画面の一例を示す模式図である。
【図１９】図１７のステップＳ８においてユーザに提供されるユーザインターフェイス画面の一例を示す模式図である。
【図２０】変形例に係る制御システムの主要なソフトウェア構成例を示すブロック図である。
【図２１】図２０に示す解析ツールに含まれる機能モジュールの概要を示すブロック図である。
【図２２】変形例に係る解析処理の概要を視覚的に示す模式図である。
【図２３】変形例に係るサポート装置の処理手順を示すフローチャートである。
【図２４】図２３のステップＳ１０８において、サポート装置がフィールドエンジニアに提供するユーザインターフェイス画面の一例を示す模式図である。
【図２５】変形例に係るサポート装置の解析ツールが実行する特徴量の重要度を評価する処理を説明するための模式図である。
【発明を実施するための形態】
【００２０】
以下、図面を参照しつつ、本発明に従う実施の形態について説明する。以下の説明では、同一の部品および構成要素には同一の符号を付してある。それらの名称および機能も同じである。したがって、これらについての詳細な説明は繰り返さない。
【００２１】
§１  適用例
まず、図１を参照して、本発明が適用される場面の一例について説明する。図１は、本実施の形態に係る制御装置の構成例を示す模式図である。制御装置１００は、例えばＰＬＣ（プログラマブルロジックコントローラ）である。図１に示されるように、制御装置１００は、制御演算部１０と、異常判定部２０と、更新部３０とを備える。
【００２２】
制御演算部１０は、制御対象から周期的に収集される状態値を用いて、当該制御対象を制御するための制御演算を実行する。
【００２３】
本明細書において、「状態値」は、任意の制御対象（含む：監視対象）にて観測できる値を包含する。「状態値」は、例えば、任意のセンサにより測定できる物理値、リレーやスイッチなどのＯＮ／ＯＦＦ状態、ＰＬＣがサーボドライバに与える位置、速度、トルクなどの指令値、ＰＬＣが演算に用いる変数値などを含み得る。
【００２４】
異常判定部２０は、制御演算部１０によって収集される状態値のうち監視対象に関連する状態値から生成される特徴量と学習データセット４１との比較結果を示すスコアを算出する。異常判定部２０は、特徴量指定情報４３に従って特徴量を生成する。特徴量指定情報４３は、状態値の種類と特徴量の種類（または特徴量の生成方法（たとえば算出アルゴリズム））とを指定する情報であり、監視対象毎に予め設定される。異常判定部２０によって生成される特徴量の個数は、１または複数である。異常判定部２０は、算出したスコアと判定基準情報で示される判定基準（典型的にはしきい値）とに基づいて、監視対象の異常の有無を判定する。学習データセット４１および判定基準情報４２は、生成される特徴量に応じて予め設定される。
【００２５】
本明細書において、「スコア」は、１または複数の特徴量の組が、外れ値または異常値である可能性の度合いを示す値を意味する。スコアは、その値が大きいほど異常値である可能性が高いように算出される（但し、異常値である可能性が高くなるほどスコアが小さな値を示すようにしてもよい）。スコアの算出方法については、後に詳述する。
【００２６】
異常判定部２０は、制御対象を制御するためのユーザプログラム内に命令が規定されることにより実現される。ユーザプログラムは、制御対象に応じて任意に設計される。
【００２７】
更新部３０は、外部のサポート装置から更新用の学習データセットおよび判定基準情報を受けて、現在設定されている学習データセット４１および判定基準情報４２をそれぞれ更新する。
【００２８】
このように、本実施の形態に係る制御装置１００は、ユーザプログラム内に命令が規定されることにより実現される異常判定部２０を備える。制御装置１００は、さらに、異常判定部２０が監視対象の異常の有無を判定する際に用いる学習データセット４１および判定基準情報４２を更新する更新部３０を備える。これにより、制御装置１００の設計者は、暫定的に作成された学習データセットおよび判定基準情報を用いて監視対象の異常の有無が判定されるようにユーザプログラムを設計することができる。すなわち、設計者は、フィールドエンジニアによる異常の有無の判定方法の調整を考慮することなく、ユーザプログラムを設計することができる。
【００２９】
さらに、フィールドエンジニアは、ユーザプログラムが設計された後に、監視対象の異常の有無を精度良く判定できるように、学習データセットおよび判定基準情報を調整し、調整後の学習データセットおよび判定基準情報を更新部３０に提供すればよい。これにより、調整後の学習データセットおよび判定基準情報を用いて、監視対象の異常の有無が判定される。
【００３０】
以上のように、本実施の形態に係る制御装置１００によれば、フィールドエンジニアが判定方法の調整作業を行ないやすく、かつ、設計者がユーザプログラムの設計作業を行ないやすくなる。
【００３１】
§２  構成例
＜２−１．制御システムの全体構成例＞
本発明の実施の形態について、図面を参照しながら詳細に説明する。図２は、本実施の形態に係る制御システムの全体構成例を示す模式図である。
【００３２】
図２に示されるように、本実施の形態に係る制御システム１は、主たる構成要素として、制御対象を制御する制御装置１００と、制御装置１００に接続される設計ツール装置２００と、制御装置１００に接続されるサポート装置３００とを含む。
【００３３】
設計ツール装置２００は、制御装置１００を設計するためのツールである。設計ツール装置２００は、設計者による操作に応じて、制御対象を制御するためのユーザプログラムを作成する。
【００３４】
設計者は、ユーザプログラムを作成するフェーズ、ユーザプログラムの動作を確認するフェーズ、ユーザプログラムのバグを修正するフェーズなど、様々な場面で設計ツール装置２００を使用する。
【００３５】
ユーザプログラムには、監視対象の異常の有無を判定するための命令（以下、「異常判定命令」という）が規定される。設計ツール装置２００は、作成されたユーザプログラムと、当該ユーザプログラム内の異常判定命令に対応付けられる、特徴量指定情報と仮の学習データセットと仮の判定基準情報とを制御装置１００に設定する。
【００３６】
制御装置１００は、ＰＬＣなどの、一種のコンピュータとして具現化されてもよい。制御装置１００は、フィールドネットワーク２を介して制御対象に配置された１または複数のフィールドデバイスと接続されるとともに、別のフィールドネットワーク３を介して１または複数の操作表示装置４００と接続される。なお、操作表示装置４００はオプショナルな構成であり、制御システム１の必須の構成ではない。
【００３７】
制御対象は、様々な種類の機械や装置を含み得る。制御対象は、例えば、一軸アクチュエータやエアシリンダなどである。図２に示す例では、制御装置１００は、このような制御対象に含まれるサーボドライバ６１９，６２９と接続される。サーボドライバ６１９，６２９は、サーボモータ６１８，６２８の回転速度やトルクをそれぞれ制御する。さらに、制御装置１００は、Ｉ／Ｏ（入出力）ユニット１６を介して報知装置１８と接続する。
【００３８】
フィールドネットワーク２およびフィールドネットワーク３は、産業用ネットワークを採用することが好ましい。このような産業用ネットワークとしては、ＥｔｈｅｒＣＡＴ（登録商標）、ＥｔｈｅｒＮｅｔ／ＩＰ（登録商標）、ＤｅｖｉｃｅＮｅｔ（登録商標）、ＣｏｍｐｏＮｅｔ（登録商標）などが知られている。
【００３９】
制御装置１００は、システムプログラムおよび設計ツール装置２００によって設定されたユーザプログラムに従った動作を行なう。図１に示す制御演算部１０および異常判定部２０は、当該システムプログラムおよびユーザプログラムを実行することにより実現される。すなわち、制御装置１００は、当該ユーザプログラムに従って、以下の（１）〜（３）の処理を実行する。
（１）制御対象から周期的に状態値を収集する処理。
（２）設計ツール装置２００によって設定された特徴量指定情報に従って、収集される状態値のうち監視対象に関連する状態値から特徴量を生成する処理。
（３）生成される特徴量と現在設定されている学習データセットとの比較結果を示すスコアを算出し、算出したスコアと現在設定されている判定基準情報（しきい値）とに基づいて、監視対象の異常の有無を判定する処理。
【００４０】
上記の（１）の処理では、制御装置１００は、例えば、サーボモータ６１８，６２８のトルク値、サーボドライバ６１９，６２９の電流値、サーボドライバ６１９，６２９の電圧値などの状態値を収集する。
【００４１】
制御装置１００は、さらに、サポート装置３００から更新用の学習データセットおよび判定基準情報を受け、現在設定されている学習データセットおよび判定基準情報をそれぞれ更新する。当該更新は、図１に示す更新部３０によって実行される。そのため、更新が一度もされていないとき、上記の（３）の処理では、設計ツール装置２００によって設定された仮の学習データセットと仮の判定基準情報とを用いて、監視対象の異常の有無が判定される。サポート装置３００から更新用の学習データセットおよび判定基準情報を受けると、上記の（３）の処理では、当該更新用の学習データセットおよび判定基準情報を用いて、監視対象の異常の有無が判定される。
【００４２】
制御装置１００は、監視対象に異常有りと判定すると、その旨を任意の方法で報知してもよい。図２に示す例では、制御装置１００は、Ｉ／Ｏユニット１６を介して接続される報知装置１８を点滅および／または鳴動させることで報知する。報知方法としては、報知装置１８に限らず、任意のインジケータ、音声出力装置、音声合成装置、電子メール、任意の端末への通知、などを用いることができる。
【００４３】
サポート装置３００は、監視対象の異常の有無の判定が適切に実施されるように、更新用の学習データセットおよび判定基準情報を生成する。サポート装置３００は、監視対象に関連する状態値から生成された特徴量を制御装置１００から取得し、取得した特徴量に対して解析処理を実行することにより、更新用の学習データセットおよび判定基準情報を生成する。サポート装置３００は、生成した更新用の学習データセットおよび判定基準情報を制御装置１００に提供する。これにより、制御装置１００に設定される学習データセットおよび判定基準情報が更新される。
【００４４】
＜２−２．設計ツール装置のハードウェア構成例＞
図３は、設計ツール装置２００のハードウェア構成例を示す模式図である。設計ツール装置２００は、典型的には、汎用のコンピュータで構成される。なお、制御装置１００が配置される製造現場における保守性の観点から、設計ツール装置２００は、可搬性に優れたノート型のパーソナルコンピュータであることが好ましい。
【００４５】
図３に示す例の設計ツール装置２００は、記憶部２０１と、オペレーティングシステム（ＯＳ）を含む各種プログラムを実行するＣＰＵ２０２とを備える。記憶部２０１は、ＢＩＯＳや各種データを格納するＲＯＭ（Read Only Memory）２０４と、ＣＰＵ２０２でのプログラムの実行に必要なデータを格納するための作業領域を提供するＲＡＭ２０６と、ＣＰＵ２０２で実行されるプログラムなどを不揮発的に格納するハードディスク（ＨＤＤ）２０８とを含む。
【００４６】
設計ツール装置２００は、さらに、設計ツール装置２００に指示を入力するために設計者が操作するキーボード２１０およびマウス２１２を含む操作部２０３、および情報を設計者に提示するためのディスプレイ２１４を含む。設計ツール装置２００は、制御装置１００などと通信するための通信インターフェイス２１８を含む。通信インターフェイス２１８は、制御装置１００が備えるＵＳＢインターフェイス（図示略）と通信するためにＵＳＢ通信モジュールを含み得る。
【００４７】
設計ツール装置２００は、光学記録媒体８からそれに格納されている開発支援環境を提供するためのサポートプログラムを読み取るための光学記録媒体読取装置２１６を含む。
【００４８】
設計ツール装置２００が備えるこれらのコンポーネントは、内部バス２２０を介して互いに通信可能に接続されている。
【００４９】
図３には、ＣＰＵ２０２等のプロセッサがプログラムを実行することで必要な機能が提供される構成例を示したが、これらの提供される機能の一部または全部を、専用のハードウェア回路（例えば、ＡＳＩＣまたはＦＰＧＡなど）を用いて実装してもよい。この場合には、仮想化技術を用いて、用途の異なる複数のＯＳを並列的に実行させるとともに、各ＯＳ上で必要なアプリケーションを実行させるようにしてもよい。
【００５０】
＜２−３．設計ツール装置のソフトウェア構成例＞
図４は、設計ツール装置２００のソフトウェア構成例を示す模式図である。図４に示すソフトウェアに含まれる命令コードは、適切なタイミングで読出され、設計ツール装置２００のＣＰＵ２０２へ提供されて実行される。また、図４に示すソフトウェアは、光学記録媒体８に格納されて提供されるサポートプログラムに含まれる。
【００５１】
図４に示されるように、設計ツール装置２００には、ＯＳ２４０、プログラミングアプリケーション２５０、ファンクションブロックライブラリ２８０および付属データ記憶部２９０が実装される。設計ツール装置２００ではＯＳ２４０が実行され、プログラミングアプリケーション２５０を実行可能な環境が提供される。
【００５２】
ファンクションブロックライブラリ２８０は、プログラミングアプリケーション２５０が利用するＰＬＣ用のプログラム部品であるファンクションブロック（ＦＢ）のライブラリである。ファンクションブロックライブラリ２８０は、監視対象毎に予め作成された、当該監視対象の異常の有無を判定するためのファンクションブロック２８２を含む。
【００５３】
付属データ記憶部２９０は、監視対象の異常の有無を判定するためのファンクションブロック毎に予め作成された付属データ２９２を記憶する。
【００５４】
図５は、監視対象の異常の有無を判定するためのファンクションブロックと付属データとの対応関係の一例を示す図である。図５に示す例では、ファンクションブロック２８２ａと付属データ２９２ａとが対応付けられ、ファンクションブロック２８２ｂと付属データ２９２ｂとが対応付けられている。ファンクションブロック２８２ａ，２８２ｂは、それぞれ監視対象「Ａ」，「Ｂ」の異常の有無を判定するために予め作成されたプログラム部品である。
【００５５】
付属データ２９２ａは、監視対象「Ａ」の異常の有無を判定するために用いられる特徴量を生成するための特徴量指定情報４３ａと、特徴量指定情報４３ａに対応する仮の学習データセット４１ａおよび判定基準情報４２ａとを含む。付属データ２９２ｂは、監視対象「Ｂ」の異常の有無を判定するために用いられる特徴量を生成するための特徴量指定情報４３ｂと、特徴量指定情報４３ｂに対応する仮の学習データセット４１ｂおよび判定基準情報４２ｂとを含む。
【００５６】
なお、以下では、特徴量指定情報４３ａ，４３ｂ，・・・を特に区別しない場合、特徴量指定情報４３ａ，４３ｂ，・・・の各々を「特徴量指定情報４３」という。同様に、学習データセット４１ａ，４１ｂ，・・・を特に区別しない場合、学習データセット４１ａ，４１ｂ，・・・の各々を「学習データセット４１」という。判定基準情報４２ａ，４２ｂ，・・・を特に区別しない場合、判定基準情報４２ａ，４２ｂ，・・・の各々を「判定基準情報４２」という。
【００５７】
このように、監視対象毎にファンクションブロック２８２と仮の学習データセット４１と仮の判定基準情報４２とが対応付けて予め作成されている。
【００５８】
特徴量指定情報４３は、監視対象に応じて適宜設定され、１または複数の特徴量を指定する。例えば監視対象がボールねじのサーボモータである場合、サーボモータのトルクを状態値の種類として指定し、平均値を特徴量として指定する特徴量指定情報が設定される。
【００５９】
学習データセット４１は、監視対象が正常であるときに取り得る特徴量を含む学習データのセットである。
【００６０】
判定基準情報４２は、監視対象の異常の有無を判定する基準（典型的にはしきい値）を示す情報である。例えば、特徴量と学習データセット４１との比較結果を示すスコアがしきい値よりも大きい場合に異常有りと判定され、スコアがしきい値よりも小さい場合に異常無しと判定される。
【００６１】
なお、以下の説明においては、判定基準の典型例としてしきい値を用いる形態について例示するが、判定基準としては、しきい値に限られず、任意の幅を有する許容範囲や、複数の値により規定される条件であってもよい。
【００６２】
付属データ２９２を作成する段階では、監視対象を実際に動作させていないため、シミュレーション等により暫定的に仮の学習データセット４１および判定基準情報４２が作成されている。
【００６３】
図４に戻って、プログラミングアプリケーション２５０は、エディタ２５２と、コンパイラ２５４と、デバッガ２５６と、ＧＵＩ（Graphical User Interface）モジュール２５８と、シミュレータ２６０と、データ格納部２７０とを含む。プログラミングアプリケーション２５０に含まれるそれぞれのモジュールは、典型的には、光学記録媒体８（図３参照）にサポートプログラムとして格納された状態で流通して、設計ツール装置２００にインストールされる。
【００６４】
エディタ２５２は、ユーザプログラム１３０のソースプログラムを作成するための入力および編集といった機能を提供する。より具体的には、エディタ２５２は、設計者がキーボード２１０やマウス２１２を操作してユーザプログラム１３０のソースプログラムを作成する機能に加えて、作成したソースプログラムの保存機能および編集機能を提供する。エディタ２５２は、設計者の操作に応じて、ファンクションブロックライブラリ２８０から選択されたファンクションブロック２８２を用いて、ユーザプログラム１３０のソースプログラムを作成する。
【００６５】
コンパイラ２５４は、ソースプログラムをコンパイルして、制御装置１００で実行可能なプログラム形式のユーザプログラム１３０を生成する機能を提供する。
【００６６】
デバッガ２５６は、ユーザプログラム１３０のソースプログラムに対してデバッグを行うための機能を提供する。このデバッグの内容としては、ソースプログラムのうち設計者が指定した範囲を部分的に実行する、ソースプログラムの実行中における変数値の時間的な変化を追跡する、といった動作を含む。
【００６７】
ＧＵＩモジュール２５８は、設計者が各種データやパラメータなどを入力するためのユーザインターフェイス画面を提供する機能を有する。当該ユーザインターフェイス画面は、ディスプレイ２１４（図３参照）に表示される。ＧＵＩモジュール２５８は、操作部２０３が受け付けた操作、並びに、ユーザプログラム１３０に基づいてユーザインターフェイス画面を提供する。
【００６８】
シミュレータ２６０は、設計ツール装置２００内に制御装置１００でのプログラムの実行をシミュレーションする環境を構築する。
【００６９】
データ格納部２７０には、作成されたユーザプログラム１３０が格納される。ユーザプログラム１３０の作成が完了すると、通信インターフェイス２１８（図３参照）を介して、データ格納部２７０に格納されたユーザプログラム１３０が制御装置１００に設定される。このとき、ユーザプログラム１３０内に規定されるファンクションブロック２８２に対応する付属データ２９２が付属データ記憶部２９０から読み出され、当該付属データ２９２も制御装置１００に設定される。
【００７０】
このように、設計ツール装置２００は、監視対象の異常の有無を判定するための命令を規定するファンクションブロック２８２を用いてユーザプログラム１３０を作成するプログラム作成部として動作する。そして、設計ツール装置２００は、ファンクションブロック２８２に対応付けられた仮の学習データセット４１および仮の判定基準情報４２を制御装置１００に設定する。すなわち、設計者は、監視対象に応じたファンクションブロック２８２を選択することにより、当該監視対象の異常の有無を判定するために用いられる学習データセット４１および判定基準情報４２を暫定的に設定することができる。
【００７１】
なお、図４に示す例では、ファンクションブロックライブラリ２８０および付属データ記憶部２９０が設計ツール装置２００に実装されるものとした。しかしながら、ファンクションブロックライブラリ２８０および付属データ記憶部２９０は、設計ツール装置２００とネットワークを介して接続可能なサーバ装置に実装されてもよい。
【００７２】
図６は、監視対象の異常の有無を判定するためのファンクションブロックの一例を示す図である。図６に示す例のファンクションブロック２８２では、入力端子「Axis」に監視対象の状態値（軸変数）が入力される。入力端子「Enable」に「TRUE」が入力されると、ファンクションブロック２８２が実行され、監視対象の異常の有無が判定される。判定結果は、出力端子「Error」から出力される。
【００７３】
図７は、図６に示すファンクションブロックを用いて作成されたユーザプログラムの一例を示す図である。図７に示す例のユーザプログラムでは、ファンクションブロック２８２の出力端子「Error」から異常有りを示す判定結果が出力されると、「Error Lamp」で示される報知装置１８（図２参照）が点灯する。
【００７４】
設計ツール装置２００を用いることにより、設計者は、暫定的に作成された付属データ２９２に対応付けられたファンクションブロック２８２を用いてユーザプログラムを作成できる。そのため、フィールドエンジニアが監視対象の異常の有無の判定方法の調整を行なう前であったとしても、設計者は、図７に示されるようなユーザプログラム１３０を作成できる。さらに、設計者は、デバッガ２５６およびシミュレータ２６０を利用することにより、作成したユーザプログラム１３０のバグを修正したり、作成したユーザプログラム１３０の動作を確認したりできる。
【００７５】
＜２−４．制御装置のハードウェア構成例＞
図８は、本実施の形態に係る制御装置のハードウェア構成例を示すブロック図である。図８に示す例の制御装置１００は、ＣＰＵ（Central Processing Unit）やＭＰＵ（Micro-Processing Unit）などのプロセッサ１０２と、チップセット１０４と、主メモリ１０６と、ストレージ１０８と、上位ネットワークコントローラ１１０と、ＵＳＢ（Universal Serial Bus）コントローラ１１２と、メモリカードインターフェイス１１４と、内部バスコントローラ１２２と、フィールドバスコントローラ１１８，１２０と、Ｉ／Ｏユニット１２４，…とを含む。
【００７６】
プロセッサ１０２は、ストレージ１０８に格納された各種プログラムを読み出して、主メモリ１０６に展開して実行することで、制御演算部１０、異常判定部２０および更新部３０（図１参照）を実現する。チップセット１０４は、プロセッサ１０２と各コンポーネントとの間のデータ伝送などを制御する。
【００７７】
ストレージ１０８には、基本的な機能を実現するためのシステムプログラム１５０と、制御対象を制御するためのユーザプログラム１３０と、特徴量指定情報４３と、学習データセット４１と、判定基準情報４２とが格納される。ユーザプログラム１３０と特徴量指定情報４３と学習データセット４１と判定基準情報４２とは、上述したように設計ツール装置２００から提供され、ストレージ１０８に格納される。
【００７８】
上位ネットワークコントローラ１１０は、上位ネットワーク６を介した他の装置との間のデータの遣り取りを制御する。ＵＳＢコントローラ１１２は、ＵＳＢ接続を介して、設計ツール装置２００またはサポート装置３００との間のデータの遣り取りを制御する。
【００７９】
メモリカードインターフェイス１１４は、メモリカード１１６を着脱可能に構成されており、メモリカード１１６に対してデータを書込み、メモリカード１１６から各種データ（ユーザプログラムやトレースデータなど）を読出すことが可能になっている。
【００８０】
内部バスコントローラ１２２は、制御装置１００に搭載されるＩ／Ｏユニット１２４，…との間でデータを遣り取りするインターフェイスである。
【００８１】
フィールドバスコントローラ１１８は、フィールドネットワーク２を介した他の装置との間のデータの遣り取りを制御する。同様に、フィールドバスコントローラ１２０は、フィールドネットワーク３を介した他の装置との間のデータの遣り取りを制御する。
【００８２】
図８には、プロセッサ１０２がプログラムを実行することで必要な機能が提供される構成例を示したが、これらの提供される機能の一部または全部を、専用のハードウェア回路（例えば、ＡＳＩＣ（Application Specific Integrated Circuit）またはＦＰＧＡ（Field-Programmable Gate Array）など）を用いて実装してもよい。あるいは、制御装置１００の主要部を、汎用的なアーキテクチャに従うハードウェア（例えば、汎用パソコンをベースとした産業用パソコン）を用いて実現してもよい。この場合には、仮想化技術を用いて、用途の異なる複数のＯＳを並列的に実行させるとともに、各ＯＳ上で必要なアプリケーションを実行させるようにしてもよい。
【００８３】
＜２−５．サポート装置のハードウェア構成例＞
本実施の形態に係るサポート装置３００は、一例として、汎用的なアーキテクチャに従うハードウェア（例えば、汎用パソコン）を用いてプログラムを実行することで実現される。なお、制御装置１００が配置される製造現場における保守性の観点から、サポート装置３００は、可搬性に優れたノート型のパーソナルコンピュータであることが好ましい。
【００８４】
図９は、本実施の形態に係るサポート装置３００のハードウェア構成例を示すブロック図である。図９に示す例のサポート装置３００は、ＣＰＵやＭＰＵなどのプロセッサ３０２と、光学ドライブ３０４と、主記憶装置３０６と、二次記憶装置３０８と、ＵＳＢコントローラ３１２と、ローカルネットワークコントローラ３１４と、入力部３１６と、表示部３１８とを含む。これらのコンポーネントは内部バス３２０を介して接続される。
【００８５】
プロセッサ３０２は、二次記憶装置３０８に格納された各種プログラムを読み出して、主記憶装置３０６に展開して実行することで、後述するような解析処理を含む各種処理を実現する。
【００８６】
二次記憶装置３０８は、例えば、ＨＤＤ（Hard Disk Drive）やＳＳＤ（Flash Solid State Drive）などで構成される。二次記憶装置３０８には、典型的には、制御装置１００との間で異常検知機能に関するデータを遣り取りするためのＰＬＣインターフェイスプログラム３２４と、解析処理を実現するための解析プログラム３２６と、ＯＳ３２８とが格納される。二次記憶装置３０８には、図９に示すプログラム以外の必要なプログラムが格納されてもよい。
【００８７】
サポート装置３００は、光学ドライブ３０４を有している。コンピュータ読取可能なプログラムを非一過的に格納する記録媒体３０５（例えば、ＤＶＤ（Digital Versatile Disc）などの光学記録媒体）から、その中に格納されたプログラムが読取られて二次記憶装置３０８などにインストールされる。
【００８８】
サポート装置３００で実行される各種プログラムは、コンピュータ読取可能な記録媒体３０５を介してインストールされてもよいが、ネットワーク上のサーバ装置などからダウンロードする形でインストールするようにしてもよい。また、本実施の形態に係るサポート装置３００が提供する機能は、ＯＳが提供するモジュールの一部を利用する形で実現される場合もある。
【００８９】
ＵＳＢコントローラ３１２は、ＵＳＢ接続を介して制御装置１００との間のデータの遣り取りを制御する。ローカルネットワークコントローラ３１４は、任意のネットワークを介した他の装置との間のデータの遣り取りを制御する。
【００９０】
入力部３１６は、キーボードやマウスなどで構成され、ユーザ操作を受付ける。表示部３１８は、ディスプレイ、各種インジケータ、プリンタなどで構成され、プロセッサ３０２からの処理結果などを出力する。
【００９１】
図９には、プロセッサ３０２がプログラムを実行することで必要な機能が提供される構成例を示したが、これらの提供される機能の一部または全部を、専用のハードウェア回路（例えば、ＡＳＩＣまたはＦＰＧＡなど）を用いて実装してもよい。
【００９２】
＜２−６．制御装置およびサポート装置のソフトウェア構成例／機能構成例＞
次に、本実施の形態に係る制御システム１を構成する主要な装置のソフトウェア構成例および機能構成例について説明する。図１０は、本実施の形態に係る制御システムの主要なソフトウェア構成例を示すブロック図である。
【００９３】
図１０を参照して、制御装置１００は、主要なソフトウェア構成として、ユーザプログラム１３０と、更新部３０と、時系列データベース（ＴＳＤＢ：Time Series Data Base）１４０とを含む。
【００９４】
制御装置１００は、フィールドから収集される状態値を変数４４の形で管理しており、変数４４は予め定められた周期で更新される。
【００９５】
ユーザプログラム１３０は、制御対象を制御するための制御演算命令１３２と、ファンクションブロック２８２で規定される命令とを含む。上述したように、ユーザプログラム１３０は、設計者４が設計ツール装置２００を用いて作成され、設計ツール装置２００から制御装置１００に提供される。
【００９６】
制御演算命令１３２は、制御対象を制御するための演算の命令を含む。図１に示す制御演算部１０は、制御装置１００のプロセッサ１０２が制御演算命令１３２を実行することにより実現される。
【００９７】
ファンクションブロック２８２で規定される命令は、監視対象の異常の有無を判定する一連の命令を含む。図１に示す異常判定部２０は、制御装置１００のプロセッサ１０２がファンクションブロック２８２で規定される命令を実行することにより実現される。そのため、ファンクションブロック２８２を用いることにより、容易に異常判定部２０を実現するユーザプログラム１３０を作成できる。ファンクションブロック２８２で規定される命令は、特徴量生成命令１３４と、書込命令１３５と、スコア算出命令１３６と、判定命令１３７とを含む。
【００９８】
特徴量生成命令１３４は、特徴量指定情報４３によって指定される種類の状態値から、特徴量指定情報４３によって指定される種類の特徴量（例えば、所定時間に亘る平均値、最大値、最小値など）を生成する命令を含む。
【００９９】
書込命令１３５は、生成された特徴量を時系列データベース１４０に書込む命令を含む。
【０１００】
時系列データベース１４０に順次書込まれる特徴量が特徴量データ４５として、サポート装置３００に出力される。
【０１０１】
スコア算出命令１３６は、生成された特徴量と学習データセット４１で示される特徴量群との距離（例えば、ユークリッド距離）を、生成された特徴量と学習データセット４１との比較結果を示すスコアとして算出する命令を含む。
【０１０２】
判定命令１３７は、算出されたスコアと判定基準情報４２で示されるしきい値とを比較し、スコアがしきい値を超える場合に異常有りと判定し、スコアがしきい値を超えない場合に異常無しと判定する命令を含む。
【０１０３】
更新部３０は、制御装置１００のプロセッサ１０２がシステムプログラム１５０（図８参照）を実行することにより実現される。更新部３０は、サポート装置３００から更新用の学習データセット５１および判定基準情報５２を受けると、制御装置１００において現在設定されている学習データセット４１および判定基準情報４２を更新する。すなわち、更新部３０は、現在設定されている学習データセット４１の内容を、更新用の学習データセット５１の内容に更新する。さらに、更新部３０は、現在設定されている判定基準情報４２の内容を、更新用の判定基準情報５２の内容に更新する。
【０１０４】
一方、サポート装置３００は、主要な機能構成として、解析ツール３３０と、ＰＬＣインターフェイス３３２とを含む。
【０１０５】
解析ツール３３０は、フィールドエンジニア５の操作に応じて、制御装置１００において生成された特徴量からなる特徴量データ４５を用いて、更新用の学習データセット５１および判定基準情報５２を決定する決定部として動作する。解析ツール３３０は、典型的には、サポート装置３００のプロセッサ３０２が解析プログラム３２６を実行することで実現される。
【０１０６】
ＰＬＣインターフェイス３３２は、制御装置１００から特徴量データ４５を取得する処理、および、決定された更新用の学習データセット５１および判定基準情報５２を制御装置１００へ送信する処理などを担当する。ＰＬＣインターフェイス３３２は、典型的には、サポート装置３００のプロセッサ３０２がＰＬＣインターフェイスプログラム３２４を実行することで実現される。
【０１０７】
図１１は、図１０に示す解析ツール３３０に含まれる機能モジュールの概要を示すブロック図である。図１１を参照して、サポート装置３００の解析ツール３３０は、主要な機能構成として、ユーザインターフェイス３４０と、ファイル管理モジュール３５０と、画面生成モジュール３６０と、解析モジュール３７０と、解析ライブラリ３８０とを含む。
【０１０８】
ユーザインターフェイス３４０は、ユーザからの設定を受付けるとともに、ユーザに対して各種情報を提供するための統括的な処理を実行する。具体的な実装形態として、ユーザインターフェイス３４０は、スクリプトエンジン３４２を有しており、必要な処理を記述したスクリプトを含む設定ファイル３４４を読込んで、設定された処理を実行する。
【０１０９】
ファイル管理モジュール３５０は、指定されたファイルなどからデータを読込むデータ入力機能３５２と、生成したデータなどを含むファイルを生成するデータ生成機能３５４とを含む。
【０１１０】
画面生成モジュール３６０は、入力されたデータなどに基づいて折れ線グラフを生成する折れ線グラフ生成機能３６２、および、ユーザの操作を受けて各種パラメータを変更するパラメータ調整機能３６４を含む。パラメータの変更に伴って、折れ線グラフ生成機能３６２は折れ線を更新することもある。折れ線グラフ生成機能３６２およびパラメータ調整機能３６４は、グラフライブラリ３６６を参照して必要な処理を実行する。
【０１１１】
解析モジュール３７０は、解析ツール３３０の主要な処理を実現するモジュールであり、パラメータ決定機能３７６を有している。パラメータ決定機能３７６は、異常の有無の判定処理に必要なパラメータである、学習データセットおよびしきい値を決定する処理を実行する。
【０１１２】
解析ライブラリ３８０は、解析モジュール３７０に含まれる機能が処理を実行するためのライブラリを含む。より具体的には、解析ライブラリ３８０は、パラメータ決定機能３７６が利用する異常判定エンジン３８６を含む。異常判定エンジン３８６が実行する処理は、ユーザプログラム１３０に規定されるファンクションブロック２８２のスコア算出命令１３６および判定命令１３７（図１０参照）に従って実行される処理と実質的に同一である。
【０１１３】
このように、サポート装置３００の異常判定エンジン３８６は、制御装置１００の時系列データベース１４０から提供される特徴量（特徴量データ４５）を用いて、制御装置１００の異常判定部２０と実質的に同一の異常判定処理を実行する。
【０１１４】
本実施の形態に係る制御システム１には、制御装置１００とサポート装置３００との両方において、同一の異常判定処理を実現できる環境が提供されている。このような環境によって、制御装置１００における異常判定処理をサポート装置３００において再現することができ、この結果、制御装置１００で実行させるべき異常判定処理を、サポート装置３００において決定できる。
【０１１５】
より具体的には、サポート装置３００の解析モジュール３７０は、解析ライブラリ３８０に含まれる異常判定エンジン３８６による判定結果に基づいて、更新用の学習データセット５１および判定基準情報５２を決定する。
【０１１６】
＜２−７．異常判定処理の概要＞
次に、本実施の形態に係る制御システムが採用する異常判定処理の概要について説明する。
【０１１７】
本実施の形態においては、統計的に得られるデータ集合に対して、監視対象のデータが外れ値であると評価される場合に、異常値として判定する。
【０１１８】
図１２は、本実施の形態に係る制御システムの異常判定処理の基本的な考え方を説明するための模式図である。図１２に示す例では、特徴量指定情報４３は、ｎ個の特徴量の各々を指定している。図１２を参照して、まず、ｎ次元空間上において、学習データセットに含まれる各学習データで示される特徴量１，２，３，・・・，ｎに対応する位置を順次プロットする。プロットされた位置の座標値群を正常値群として規定する。
【０１１９】
そして、任意のサンプリングタイミングで監視対象から収集された１または複数の状態値から特徴量１，２，３，・・・，ｎを生成し、当該生成されたそれぞれの特徴量に対応する座標（図１２の「入力値」に相当する。）を設定する。
【０１２０】
最終的に、ｎ次元空間上における正常値群に対する入力値の外れ度合いに基づいて、当該入力値に対応するサンプリングタイミングにおける監視対象の異常の有無を判定する。図１２の正常値群が、監視対象を示す「モデル」に相当する。
【０１２１】
このような外れ度合いに基づく異常判定の手法としては、各点から正常値群までの最短距離に基づいて異常の有無を判定する手法（ｋ近傍法）、正常値群を含むクラスタを含めて距離を評価する局所外れ値因子（ＬｏＦ：local outlier factor）法、パス長さから算出されるスコアを用いるｉＦｏｒｅｓｔ（isolation forest）法などが知られている。
【０１２２】
図１３は、本実施の形態に係る制御システム１の異常判定処理の手順を概略した模式図である。図１３を参照して、任意のサンプリングタイミングにおいて監視対象から状態値のセットを収集したとする。このサンプリングタイミングにおける監視対象の異常の有無を判定することになる。
【０１２３】
まず、監視対象から収集可能な複数の状態値のうち、特徴量指定情報４３（図１０参照）によって指定された種類の状態値１，２，３，・・・ｎを用いて、特徴量指定情報４３によって指定された種類の特徴量１，２，３，・・・，ｎを生成する。
【０１２４】
なお、同一の状態値から複数の特徴量が生成されてもよい。説明の便宜上、少なくとも４個の特徴量を用いる構成を示すが、本実施の形態に係る異常判定処理においては、少なくとも１つの特徴量があればよい。
【０１２５】
続いて、１または複数の特徴量からスコアが算出される。そして、算出されたスコアと判定基準情報４２（図１０参照）で示されるしきい値とを比較して、監視対象の異常の有無を判定する。
【０１２６】
本実施の形態に係る異常判定処理においては、予め定められた期間（以下、「フレーム」とも称す。）に亘る状態値の時系列データから特徴量を生成し、生成される特徴量を用いてスコアを算出する。
【０１２７】
図１４は、本実施の形態に係る制御装置において実行される異常判定処理の手順を示すフローチャートである。図１４に示す各ステップは、典型的には、制御装置１００のプロセッサ１０２がプログラム（システムプログラムおよびユーザプログラム）を実行することで実現される。
【０１２８】
図１４を参照して、制御装置１００は、予め定められたフレームの開始条件が成立すると（ステップＳ５０においてＹＥＳ）、予め定められた１または複数の状態値の収集を開始する（ステップＳ５２）。その後、予め定められたフレームの終了条件が成立すると（ステップＳ５４においてＹＥＳ）、制御装置１００は、当該フレームの期間において収集された状態値のうち特徴量指定情報４３によって指定される種類の状態値の時系列データから特徴量指定情報４３によって指定される種類の特徴量を生成する（ステップＳ５６）。そして、制御装置１００は、生成された１または複数の特徴量に基づいてスコアを算出する（ステップＳ５８）。
【０１２９】
より具体的には、スコアは、生成された１または複数の特徴量と現在設定されている学習データセット４１とを用いて算出される。
【０１３０】
続いて、制御装置１００は、算出したスコアが現在設定されている判定基準情報４２で示されるしきい値を上回っているか否かを判定する（ステップＳ６０）。算出したスコアがしきい値を上回っていれば（ステップＳ６０においてＹＥＳの場合）、制御装置１００は、監視対象の異常を報知する（ステップＳ６２）。算出したスコアがしきい値を上回っていなければ（ステップＳ６０においてＮＯの場合）、制御装置１００は、監視対象が正常であると判定する（ステップＳ６４）。そして、ステップＳ５０以下の処理が繰返される。
【０１３１】
＜２−８．解析処理の概略手順＞
次に、本実施の形態に係る解析処理の概略手順について説明する。図１５は、本実施の形態に係る解析処理の内容を示す模式図である。図１６は、図１５に示される（ａ）〜（ｃ）の処理の概要を視覚的に示す模式図である。
【０１３２】
図１５を参照して、本実施の形態に係る解析処理は、主として、（ａ）データ入力処理、（ｂ）可視化・ラベル付け処理、（ｃ）しきい値決定処理を含む。
【０１３３】
図１６を参照して、制御装置１００にて生成された特徴量を示す特徴量データ４５がサポート装置３００へ提供される（（ａ）データ入力処理）。図１６に示す例では、特徴量データ４５は、監視対象での処理の回数を示すサイクルカウントと、特徴量１，２，３，・・・，ｎとを含む。
【０１３４】
続いて、サポート装置３００では、特徴量の可視化および各サンプリングタイミングの特徴量の組に対するラベル付けが実施される（（ｂ）可視化・ラベル付け処理）。特徴量の可視化は、基本的には、サポート装置３００によって実行され、ラベル付けの全部または一部はユーザが実行してもよい。
【０１３５】
より具体的な一例として、ユーザは、グラフなどの形で可視化された特徴量を参照しつつ、監視対象の状態が「正常」および「異常」のいずれであるかを、サンプリングタイミング毎に設定する。
【０１３６】
次に、「正常」のラベル付けがされた特徴量の組に基づいて更新用の学習データセット５１が生成されるとともに、当該学習データセット５１と各サンプリングタイミングの特徴量の組とに基づいて、各サンプリングタイミングにおけるスコアが算出される。そして、算出されたスコアを参照して、異常と判定するためのしきい値を決定する（（ｃ）しきい値決定）。
【０１３７】
以上のような手順によって、更新用の学習データセット５１および判定基準情報５２（しきい値を示す情報）が生成される。生成された更新用の学習データセット５１および判定基準情報５２は、サポート装置３００から制御装置１００へ提供される。制御装置１００は、現在設定されている学習データセット４１および判定基準情報４２の内容を更新用の学習データセット５１および判定基準情報５２の内容に更新する。
【０１３８】
上述したように、設計ツール装置２００は、監視対象の異常の有無を判定するための命令を規定するユーザプログラム１３０を作成する際に、暫定的に定められた仮の学習データセット４１および判定基準情報４２を制御装置１００に設定する。そのため、ユーザプログラム１３０を実行することができるものの、当該仮の学習データセット４１および判定基準情報４２を用いるために、精度良く監視対象の異常の有無を判定できない。しかしながら、サポート装置３００は、解析処理を行なうことにより、更新用の学習データセット５１および判定基準情報５２を生成する。すなわち、フィールドエンジニアは、サポート装置３００を用いることにより、学習データセットおよびしきい値を適宜調整することができる。これにより、調整後の学習データセットおよびしきい値を用いた異常判定処理が実行され、監視対象の異常の有無の判定精度を向上させることができる。
【０１３９】
なお、図１６に示す（ａ）〜（ｃ）の処理は、適宜繰返し実行することが可能であり、監視対象の状態に応じて学習データセットおよび判定基準情報を順次更新することも可能である。
【０１４０】
＜２−９．サポート装置の処理手順例＞
図１７は、本実施の形態に係るサポート装置の処理手順の一例を示すフローチャートである。図１７を参照して、まず、サポート装置３００は、フィールドエンジニアの操作に応じて解析ツール３３０を起動させると（ステップＳ２）、解析ツール３３０に特徴量データ４５を読込ませる（ステップＳ４）。
【０１４１】
続いて、解析ツール３３０は、フィールドエンジニアの選択操作に応じて特徴量の変化を可視化する。フィールドエンジニアは、可視化された特徴量の変化に対して正常および／または異常のラベル付けを行なう（ステップＳ６）（図１５の（ｂ）可視化・ラベル付け処理に対応）。
【０１４２】
図１８は、図１７のステップＳ６においてフィールドエンジニアに提供されるユーザインターフェイス画面５００の一例を示す模式図である。図１８を参照して、ユーザインターフェイス画面５００は、特徴量の変化を可視化する。典型的には、ユーザインターフェイス画面５００においては、特徴量の時間的な変化がグラフ化されており、フィールドエンジニアは、このグラフを参照することで、異常または正常の範囲を設定する。なお、フィールドエンジニアが設定する異常範囲および正常範囲は、監視対象が実際に異常になっているか、正常に動作しているかの情報に基づいて設定してもよいし、フィールドエンジニアが異常として判定したい特徴量の変化を任意に設定するようにしてもよい。すなわち、ユーザインターフェイス画面５００において設定される異常範囲および正常範囲は、本実施の形態に係る異常判定処理が出力する「異常」または「正常」である状態を規定するものであり、監視対象が実際に異常であるか正常であるかとは、必ずしも一致しなくてもよい。
【０１４３】
より具体的には、ユーザインターフェイス画面５００は、特徴量に対する選択受付エリア５０２と、グラフ表示エリア５０６と、ヒストグラム表示エリア５１２とを含む。
【０１４４】
選択受付エリア５０２には、特徴量指定情報４３で指定される特徴量を示すリストが表示されており、ユーザは、選択受付エリア５０２に表示されたリスト上で任意の特徴量を選択する。
【０１４５】
グラフ表示エリア５０６には、選択された特徴量の変化を示すグラフ５０８が表示される。グラフ５０８は、サンプリング毎の時系列データ、あるいは、監視対象の処理単位（例えば、処理ワーク単位）などで区切られてもよい。
【０１４６】
ヒストグラム表示エリア５１２には、選択された特徴量の変化の分布を示すヒストグラムが表示される。ヒストグラム表示エリア５１２に表示されるヒストグラムを確認することで、選択した特徴量の主たる範囲などを知ることができる。
【０１４７】
ユーザは、グラフ表示エリア５０６に表示される特徴量の変化（グラフ５０８）に対して、データの正常範囲および／または異常範囲を設定できる。より具体的には、ユーザインターフェイス画面５００は、ラベル付与ツール５１４を含む。ラベル付与ツール５１４は、正常ラベル設定ボタン５１６と、異常ラベル設定ボタン５１７と、ラベル設定範囲指定ボタン５１８とを含む。
【０１４８】
フィールドエンジニアは、付与するラベルが正常または異常のいずれであるかに応じて、正常ラベル設定ボタン５１６または異常ラベル設定ボタン５１７を選択した後、ラベル設定範囲指定ボタン５１８を選択し、続けて、グラフ表示エリア５０６の対象となる領域を指定する操作（例えば、ドラッグ操作）を行う。これによって、指定された領域に対して、設定されたラベルが付与される。
【０１４９】
図１８には、異常範囲５１０が設定されている例を示す。異常範囲５１０に含まれるサンプリングタイミングの特徴量に対しては、「異常」のラベルが付与され、それ以外の特徴量に対しては、「正常」のラベルが付与される。このように、解析ツール３３０は、ユーザ操作に従って、生成された複数の特徴量のデータ系列の特定範囲に対して、「正常」および「異常」の少なくとも一方のラベルを付与する機能を有していてもよい。
【０１５０】
なお、ヒストグラム表示エリア５１２に表示されるヒストグラムに対しても、データの正常範囲および／または異常範囲を設定できるようにしてもよい。
【０１５１】
再度図１７を参照して、次に、解析ツール３３０は、フィールドエンジニアの操作に従って、しきい値の決定処理を実行する（ステップＳ８）。ステップＳ８の処理は、図１５に示す（ｃ）しきい値決定処理に対応する。
【０１５２】
このステップＳ８においては、デフォルトのしきい値が予め設定されている。フィールドエンジニアは、判定精度を示す指標値を確認しながら、しきい値を調整する。
【０１５３】
図１９は、図１７のステップＳ８においてユーザに提供されるユーザインターフェイス画面５２０の一例を示す模式図である。図１９を参照して、ユーザインターフェイス画面５２０は、異常判定処理に用いるしきい値の選択を受付ける。
【０１５４】
より具体的には、ユーザインターフェイス画面５２０は、グラフ表示エリア５２６を含む。グラフ表示エリア５２６には、特徴量データ４５で示される各サンプリングタイミングの特徴量と学習データセットとに基づいて算出されたスコアの変化を示すグラフ５２８が表示される。当該学習データセットとして、ステップＳ８において「正常」とラベル付けされた複数のサンプリングタイミングの特徴量のデータが用いられる。
【０１５５】
グラフ表示エリア５２６に関連付けて、しきい値設定スライダ５３４が配置されている。しきい値設定スライダ５３４に対する操作に連動して、設定されているしきい値が変動するとともに、グラフ表示エリア５２６に表示されるしきい値表示バー５３５の位置が変動する。このように、しきい値設定スライダ５３４は、グラフ表示エリア５２６に表示されたスコアに対するしきい値の設定を受付ける。
【０１５６】
グラフ表示エリア５２６には、指標値を示す数値表示５３０、および、設定されているしきい値を示す数値表示５３２が配置されている。しきい値設定スライダ５３４に対するユーザ操作に連動して、数値表示５３０，５３２の値も更新される。
【０１５７】
数値表示５３０が示す指標値は、現在設定されているしきい値により、どの程度正確な判定が可能かを示す値である。より具体的には、指標値は、現在の設定によれば、ユーザにより設定された正常範囲に含まれる特徴量（すなわち、「正常」のラベルが付与されている特徴量）と、ユーザにより設定された異常範囲に含まれる特徴量（すなわち、「異常」のラベルが付与されている特徴量）とをどの程度正確に区別できるのかを示す。
【０１５８】
指標値は、例えば、ＴｒｕｅＰｏｓｉｔｉｖｅ軸とＦａｌｓｅＰｏｓｉｔｉｖｅ軸とにより規定されるＲＯＣ（Receiver Operating Characteristic）曲線に基づいて、ＡＵＣ（Area Under the Curve）を求めることによって算出される。
【０１５９】
例えば、「正常」のラベルが付与されているデータと、「異常」のラベルが付与されているデータとを用いて、１００％から誤判定する確率を差し引いた値を指標値として算出する。誤判定とは、「正常」のラベルが付与されているデータを「異常」と判定する、あるいは、「異常」のラベルが付与されているデータを「正常」と判定することである。
【０１６０】
フィールドエンジニアは、グラフ表示エリア５２６に表示されるグラフ５２８の形状や、数値表示５３０が示す指標値を確認しながら、しきい値の設定を適宜実施する。
【０１６１】
ユーザインターフェイス画面５２０のリセットボタン５３６が選択されると、ユーザインターフェイス画面５２０がデフォルト状態にリセットされる。
【０１６２】
ユーザインターフェイス画面５２０の更新データ生成ボタン５３８が選択されると、当該時点において設定されている内容に従って、更新用の学習データセット５１および判定基準情報５２が生成される。
【０１６３】
再度図１７を参照して、図１８に示すユーザインターフェイス画面５００、および、図１９に示すユーザインターフェイス画面５２０において適宜操作され、ユーザインターフェイス画面５２０の更新データ生成ボタン５３８が操作されると（ステップＳ１０においてＹＥＳ）、解析ツール３３０は、更新用の学習データセット５１および判定基準情報５２を生成する（ステップＳ１２）。すなわち、解析ツール３３０は、フィールドエンジニアによるラベル付けおよびしきい値の調整に応じて、更新用の学習データセット５１および判定基準情報５２を生成する。具体的には、解析ツール３３０は、「正常」のラベルが付与された各サンプリングタイミングの特徴量を学習データとする更新用の学習データセット５１を生成する。さらに、解析ツール３３０は、調整されたしきい値を示す更新用の判定基準情報５２を生成する。
【０１６４】
そして、サポート装置３００から制御装置１００に対して、ステップＳ１２において生成された更新用の学習データセット５１および判定基準情報５２が送信され（ステップＳ１４）、制御装置１００に設定されている学習データセット４１および判定基準情報４２が更新される。
【０１６５】
なお、指標値などを定期的に確認し、指標値が悪い場合には、フィールドエンジニアは、サポート装置３００を操作して、制御装置１００に設定されている学習データセット４１および判定基準情報４２を適宜更新してもよい。指標値が悪い場合とは、監視対象が正常な状態であるのに異常と検知してしまった頻度が相対的に多い、および／または、正常と検知したのに監視対象が正常な状態ではなかった頻度が相対的に多い場合である。
【０１６６】
＜２−１０．変形例＞
上記の説明では、監視対象毎に生成される特徴量の種類が固定される。しかしながら、監視対象の状態に応じて、異常の有無の判定に適切な特徴量の種類が変動する場合もあり得る。そのため、学習データセット４１および判定基準情報４２とともに、特徴量指定情報４３も更新されてもよい。以下に、ユーザプログラム１３０の作成時に暫定的に定められた仮の特徴量指定情報４３が制御装置に設定された後に、フィールドエンジニアがサポート装置を用いて特徴量指定情報４３の内容も更新可能な制御システムについて説明する。
【０１６７】
（２−１０−１．制御装置およびサポート装置のソフトウェア構成例／機能構成例）
図２０は、変形例に係る制御システムの主要なソフトウェア構成例を示すブロック図である。図２０に示す例の制御装置１００Ａは、図１０に示す制御装置１００と比較して、更新部３０の代わりに更新部３０Ａを含む点で相違する。さらに、ファンクションブロック２８２で規定される命令は、書込命令１３５の代わりに書込命令１３５Ａを含む。
【０１６８】
書込命令１３５Ａは、フィールドから収集される変数４４（状態値）を時系列データベース１４０に書込む命令を含む。
【０１６９】
時系列データベース１４０に順次書込まれる状態値が生データ４６として、サポート装置３００Ａに出力される。
【０１７０】
更新部３０Ａは、図１０に示す更新部３０の処理に加えて、サポート装置３００から更新用の特徴量指定情報５３を受けると、制御装置１００Ａにおいて現在設定されている特徴量指定情報４３を更新する処理を行なう。すなわち、更新部３０Ａは、更新部３０と同様に、現在設定されている学習データセット４１および判定基準情報４２の内容を、更新用の学習データセット５１および判定基準情報５２の内容にそれぞれ更新する。さらに、更新部３０Ａは、現在設定されている特徴量指定情報４３の内容を、更新用の特徴量指定情報５３の内容に更新する。
【０１７１】
図２０に示す例のサポート装置３００Ａは、図１０に示すサポート装置３００と比較して、解析ツール３３０の代わりに解析ツール３３０Ａを含む点で相違する。
【０１７２】
解析ツール３３０Ａは、フィールドエンジニア５の操作に応じて、制御装置１００Ａにおいて収集された状態値からなる生データ４６を解析し、更新用の学習データセット５１、判定基準情報５２および特徴量指定情報５３を決定する。
【０１７３】
図２１は、図２０に示す解析ツール３３０Ａに含まれる機能モジュールの概要を示すブロック図である。図２１を参照して、解析ツール３３０Ａは、図１１に示す解析ツール３３０と比較して、解析モジュール３７０および解析ライブラリ３８０の代わりに解析モジュール３７０Ａおよび解析ライブラリ３８０Ａをそれぞれ含む点で相違する。解析モジュール３７０Ａは、解析モジュール３７０と比較して、特徴量生成機能３７２と、特徴量選択機能３７４とをさらに含む点で相違する。解析ライブラリ３８０Ａは、特徴量生成機能３７２が利用する特徴量生成ライブラリ３８２と、特徴量選択機能３７４が利用する特徴量選択ライブラリ３８４とをさらに含む点で相違する。
【０１７４】
特徴量生成機能３７２は、生データ４６に含まれる任意の状態値の時系列データから特徴量を生成する。特徴量生成ライブラリ３８２には、様々な種類の特徴量（例えば、所定時間に亘る平均値、最大値、最小値など）の各々の生成アルゴリズムが格納されている。
【０１７５】
特徴量選択機能３７４は、異常判定処理に用いる特徴量を選択する処理および特徴量の選択を受付ける処理を実行する。
【０１７６】
（２−１０−２．解析処理の概略手順）
図２２は、変形例に係る解析処理の概要を視覚的に示す模式図である。図２２を参照して、変形例に係る解析処理は、主として、（ａ）データ入力処理、（ｂ）特徴量生成処理、（ｃ）可視化・ラベル付け処理、（ｄ）特徴量選択処理、（ｅ）しきい値決定処理を含む。
【０１７７】
図２２を参照して、制御装置１００Ａにて収集された状態値の時系列データである生データ４６がサポート装置３００Ａへ提供される（（ａ）データ入力処理）。生データ４６は、サンプリングタイミング毎に１または複数の状態値を含む。
【０１７８】
サポート装置３００Ａは、入力された生データ４６を用いて、１または複数の特徴量を生成する（（ｂ）特徴量生成）。この特徴量の生成は、解析ツール３３０Ａの特徴量生成機能３７２を用いて実現される。通常、複数種類の特徴量が生成される。図２２に示す例では、特徴量１，２，３，・・・，Ｎが生成される。
【０１７９】
続いて、サポート装置３００Ａでは、特徴量の可視化および各サンプリングタイミングの特徴量の組に対するラベル付けが実施される（（ｃ）可視化・ラベル付け処理）。変形例に係る（ｃ）可視化・ラベル付け処理は、＜２−８．解析処理の概略手順＞において説明した（ｂ）可視化・ラベル付け処理と同じである。
【０１８０】
続いて、収集された状態値から生成される複数の特徴量のうち、異常判定に用いる１または複数の特徴量を選択する（（ｄ）特徴量選択）。図２２に示す例では、特徴量１，２，ｋ，ｎの４つが選択されている。
【０１８１】
次に、「正常」のラベル付けがされ、かつ選択された特徴量の組に基づいて更新用の学習データセット５１が生成される。さらに、当該学習データセット５１と各サンプリングタイミングの選択された特徴量の組とに基づいて、各サンプリングタイミングにおけるスコアが算出される。そして、算出されたスコアを参照して、異常と判定するためのしきい値が決定される（（ｅ）しきい値決定）。
【０１８２】
以上のような手順によって、更新用の学習データセット５１、判定基準情報５２（しきい値を示す情報）および特徴量指定情報５３が生成される。生成された更新用の学習データセット５１、判定基準情報５２および特徴量指定情報５３は、サポート装置３００Ａから制御装置１００Ａへ提供される。制御装置１００Ａは、現在設定されている学習データセット、判定基準情報および特徴量指定情報の内容を更新用の学習データセット５１、判定基準情報５２および特徴量指定情報５３の内容に更新する。
【０１８３】
（２−１０−３．サポート装置の処理手順例）
図２３は、変形例に係るサポート装置の処理手順を示すフローチャートである。図２３に示すフローチャートは、図１７に示すフローチャートと比較して、ステップＳ３０，Ｓ３２をさらに含むとともに、ステップＳ４，Ｓ８，Ｓ１２およびＳ１４の代わりにステップＳ１０４，Ｓ１０８，Ｓ１１２およびＳ１１４をそれぞれ含む点で相違する。
【０１８４】
図２３を参照して、サポート装置３００Ａは、フィールドエンジニアの操作に応じて解析ツール３３０Ａを起動させると（ステップＳ２）、解析ツール３３０Ａに生データ４６を読込ませる（ステップＳ１０４）。
【０１８５】
続いて、解析ツール３３０Ａは、読込んだ生データ４６に対するデータクレンジングを実行する（ステップＳ３０）。データクレンジングは、生データ４６に含まれる不要なデータを削除する処理である。例えば、生データ４６に含まれる時系列データのうち、分散がゼロである状態値（すなわち、何ら変動していない状態値）を削除する。データクレンジングの処理は、解析ツール３３０Ａが自動的に実行してもよいし、解析ツール３３０Ａが削除対象の状態値の候補を提示し、フィールドエンジニアが明示的に削除対象を選択するようにしてもよい。
【０１８６】
さらに、可視化された状態値などを参照して、フィールドエンジニアが不要または不正なデータであると判定した状態値を手動で削除できるようにしてもよい。すなわち、サポート装置３００は、生データ４６のうち特徴量の生成から除外すべき状態値の選択を受付ける。
【０１８７】
その後、解析ツール３３０Ａは、データクレンジング後の生データ４６に含まれる状態値に基づいて、１または複数の特徴量を生成する（ステップＳ３２）。より具体的には、解析ツール３３０Ａの特徴量生成機能３７２が、生データ４６から複数の特徴量を生成する。ステップＳ３２においては、可能な限り多くの種類の特徴量が生成されるようにしてもよい（図２２の（ｂ）特徴量生成に対応）。
【０１８８】
続いて、解析ツール３３０Ａは、フィールドエンジニアの選択操作に応じて特徴量の変化を可視化し、フィールドエンジニアの操作に応じて、可視化された特徴量の変化に対して正常および／または異常のラベル付けを行なう（ステップＳ６）（図２２の（ｃ）可視化・ラベル付け処理に対応）。ステップＳ６については、＜２−９．サポート装置の処理手順例）で説明したため、ここでは詳細な説明を省略する。
【０１８９】
次に、解析ツール３３０Ａは、フィールドエンジニアの操作に従って、異常判定に用いる特徴量としきい値とを決定する（ステップＳ１０８）。ステップＳ１０８の処理は、図２２に示す（ｄ）特徴量選択処理および（ｅ）しきい値決定処理に対応する。
【０１９０】
図２４は、図２３のステップＳ１０８において、サポート装置３００Ａがフィールドエンジニアに提供するユーザインターフェイス画面の一例を示す模式図である。図２４を参照して、ユーザインターフェイス画面５２０Ａは、主として、異常判定処理に用いる１または複数の特徴量の選択を受付けるとともに、異常判定処理に用いるしきい値の選択を受付ける。
【０１９１】
より具体的には、ユーザインターフェイス画面５２０Ａは、特徴量に対する選択受付エリア５２２と、グラフ表示エリア５２６とを含む。
【０１９２】
選択受付エリア５２２は、生成された複数の特徴量のうち、異常判定処理に用いられる１または複数の特徴量の選択を受付けるユーザインターフェイスに相当する。より具体的には、選択受付エリア５２２には、生成された特徴量の内容を示すリストが表示されており、フィールドエンジニアは、表示されたリスト上で任意の特徴量に対応するチェックボックス５２４をチェックすることで、異常判定処理に用いられる特徴量を選択する。
【０１９３】
選択受付エリア５２２に表示される特徴量は、解析ツール３３０Ａの特徴量選択機能３７４（図２１参照）によって解析された結果に基づいて、重要度が高いと推定されるものがより上位になるようにリストされていてもよい。すなわち、選択受付エリア５２２には、後述するような手順で決定されたランクに従って、生成された複数の特徴量の表示順序が決定されてもよい。
【０１９４】
また、初期の選択受付エリア５２２には、特徴量選択機能３７４によって予め選択された特徴量が、デフォルトとして選択されていてもよい。すなわち、選択受付エリア５２２においては、決定されたランクに従って、生成された複数の特徴量のうち予め定められた数の特徴量が選択された状態で表示されてもよい。図２４には、２つの特徴量が選択されている状態を示す。
【０１９５】
グラフ表示エリア５２６の詳細については、図１９を参照して上述した通りであるため、詳細な説明を省略する。なお、グラフ表示エリア５２６に表示されるグラフ５２８は、選択受付エリア５２２のチェックボックス５２４に対するチェックによって選択された１または複数の特徴量に基づいて算出されたスコアの変化を示す。
【０１９６】
ユーザインターフェイス画面５２０Ａの更新データ生成ボタン５３８が操作されると（ステップＳ１０においてＹＥＳ）、解析ツール３３０Ａは、当該時点において設定されている内容に従って、更新用の学習データセット５１、判定基準情報５２および特徴量指定情報５３を生成する（ステップＳ１１２）。すなわち、解析ツール３３０Ａは、図２４に示すチェックボックス５２４に対するチェックによって選択された１または複数の特徴量を指定するための特徴量指定情報５３を生成する。さらに、解析ツール３３０Ａは、「正常」のラベルが付与された各サンプリングタイミングの特徴量のうち特徴量指定情報５３で指定される特徴量を学習データとする更新用の学習データセット５１を生成する。さらに、解析ツール３３０Ａは、調整されたしきい値を示す更新用の判定基準情報５２を生成する。
【０１９７】
そして、サポート装置３００Ａから制御装置１００Ａに対して、ステップＳ１１２において生成された更新用の学習データセット５１、判定基準情報５２および特徴量指定情報５３が送信され（ステップＳ１１４）、制御装置１００Ａに設定されている学習データセット４１、判定基準情報４２および特徴量指定情報４３が更新される。
【０１９８】
（２−１０−４．特徴量の重要度の算出およびランク付け）
図２５は、変形例に係るサポート装置の解析ツールが実行する特徴量の重要度を評価する処理を説明するための模式図である。図２５を参照して、解析ツール３３０Ａの特徴量選択機能３７４は、各特徴量の重要度を複数の手法でそれぞれ算出する。図２５には、一例として、尖度、ロジスティック回帰、決定木の３つの手法でそれぞれ評価する例を示す。
【０１９９】
評価値コラム７０２に格納される尖度は、対象の特徴量７００のデータ系列についての頻度分布の鋭さを評価した値である。尖度が大きいほど、頻度分布のピークが鋭く、分布の裾が広いことを示す。異常検知に用いる統計量としては、尖度が大きいほど有益、すなわち重要であるとみなすことができる。
【０２００】
また、対象の特徴量のデータ系列についての頻度分布の標準偏差を評価値として用いてもよい。この場合、標準偏差が大きいほど、特徴量に変化があり異常検知の能力が高い（すなわち、重要である）と判定できる。
【０２０１】
評価値コラム７０４に格納されるロジスティック回帰は、任意のロジスティック関数を対象の特徴量のデータ系列に適用して、尤度を最大化するロジスティック関数を規定するパラメータを探索する。最終的に探索されたパラメータに対応する尤度を重要度とみなす。すなわち、任意のロジスティック関数でより精度の高い推定ができる特徴量ほど、優先度が高いとみなすことができる。
【０２０２】
典型的には、ロジスティック回帰は、特徴量毎にパラメータの探索および尤度の算出を行うことができる。
【０２０３】
評価値コラム７０６に格納される決定木は、対象の特徴量のデータ系列に対して分類木を適用し、その分類能力を重要度として用いるものである。決定木のアルゴリズムとしては、ＣＡＲＴ、Ｃ４．５、ＩＤ３などが知られており、いずれのアルゴリズムを用いてもよい。
【０２０４】
このように、典型例としては、重要度は、少なくとも、特徴量のデータ系列についての尖度、特徴量のデータ系列に対してロジスティック回帰の実行によって得られる尤度、決定木のアルゴリズムに従って算出される重要度を含む。
【０２０５】
以上のように、各特徴量について重要度を示す値を複数の手法でそれぞれ算出し、それぞれの結果を統合した結果が評価値コラム７０８に格納される。評価値コラム７０８に格納される各評価値に基づいて、それぞれの特徴量に対するランク付けがなされる（ランクコラム７１０）。
【０２０６】
＜２−１１．付記＞
以上のように、本実施の形態は以下のような開示を含む。
【０２０７】
（構成１）
制御対象から周期的に収集される状態値を用いて、前記制御対象を制御するための制御演算を実行する制御演算部（１０）と、
前記収集される状態値のうち監視対象に関連する状態値から生成される特徴量と予め設定された学習データセット（１０１）との比較結果を示すスコアを算出し、算出したスコアと予め設定された判定基準（１０２）とに基づいて、前記監視対象の異常の有無を判定する異常判定部（２０）とを備え、
前記異常判定部（２０）は、前記制御対象を制御するためのユーザプログラム（１３０）内に命令が規定されることにより実現され、
外部から更新用の学習データセット（３０１）および更新用の判定基準（３０２）を受けて、現在設定されている学習データセット（１０１）および判定基準（１０２）をそれぞれ更新する更新部（３０）をさらに備える、制御装置（１００，１００Ａ）。
【０２０８】
（構成２）
前記生成される特徴量は、監視対象毎に予め定められており、
前記生成される特徴量に応じて学習データセット（１０１）および判定基準（１０２）が設定される、構成１に記載の制御装置（１００，１００Ａ）。
【０２０９】
（構成３）
前記異常判定部（２０）は、前記ユーザプログラム（１３０）内にファンクションブロック（２８２）の形で命令が規定されることにより実現される、構成１に記載の制御装置（１００，１００Ａ）。
【０２１０】
（構成４）
監視対象毎に前記ファンクションブロック（２８２）と仮の学習データセット（１０１）と仮の判定基準（１０２）とが対応付けて予め作成されており、
前記ファンクションブロック（２８２）が規定されることにより、当該ファンクションブロック（２８２）に対応する仮の学習データセット（１０１）および仮の判定基準（１０２）が設定される、構成３に記載の制御装置（１００，１００Ａ）。
【０２１１】
（構成５）
前記異常判定部（２０）は、状態値の種類および特徴量の種類を指定する指定情報（１０３）に従って、前記特徴量を生成し、
前記更新部（３０）は、外部から更新用の指定情報（３０３）を受けて、現在設定されている指定情報（１０３）を更新する、構成１に記載の制御装置（１００Ａ）。
【０２１２】
（構成６）
制御システム（１）であって、
制御対象から周期的に収集される状態値を用いて、当該制御対象を制御するための制御演算を実行する制御演算部（１０）と、
前記収集される状態値のうち監視対象に関連する状態値から生成される特徴量と予め設定された学習データセット（１０１）との比較結果を示すスコアを算出し、算出したスコアと予め設定された判定基準（１０２）とに基づいて、前記監視対象の異常の有無を判定する異常判定部（２０）とを備え、
前記異常判定部（２０）は、前記制御対象を制御するためのユーザプログラム（１３０）内に規定されることにより実現され、
前記制御システム（１）は、さらに、
前記監視対象に関連する状態値または前記生成される特徴量を用いて、更新用の学習データセット（３０１）と更新用の判定基準（３０２）とを決定する決定部（３３０，３３０Ａ）と、
前記更新用の学習データセット（３０１）および前記更新用の判定基準（３０２）を受けて、現在設定されている学習データセット（１０１）および判定基準（１０２）をそれぞれ更新する更新部（３０）とを備える、制御システム（１０）。
【０２１３】
（構成７）
前記ユーザプログラム（１３０）を作成するプログラム作成部（２００）をさらに備え、
前記プログラム作成部（２００）は、
前記異常判定部（２０）を実現するための命令を規定するファンクションブロック（２８２）を用いて前記ユーザプログラム（１３０）を作成し、
前記ファンクションブロック（２８２）に対応付けられた仮の学習データセット（１０１）および仮の判定基準（１０２）を設定する、構成６に記載の制御システム（１）。
【０２１４】
本発明の実施の形態について説明したが、今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【０２１５】
１  制御システム、２，３  フィールドネットワーク、４  設計者、５  フィールドエンジニア、６  上位ネットワーク、８  光学記録媒体、１０  制御演算部、１６，１２４  Ｉ／Ｏユニット、１８  報知装置、２０  異常判定部、３０，３０Ａ  更新部、４１，４１ａ，４１ｂ，５１  学習データセット、４２，４２ａ，４２ｂ，５２  判定基準情報、４３，４３ａ，４３ｂ，５３  特徴量指定情報、４５  特徴量データ、４６  生データ、１００，１００Ａ  制御装置、１０２，３０２  プロセッサ、１０４  チップセット、１０６  主メモリ、１０８  ストレージ、１１０  上位ネットワークコントローラ、１１２，３１２  ＵＳＢコントローラ、１１４  メモリカードインターフェイス、１１６  メモリカード、１１８，１２０  フィールドバスコントローラ、１２２  内部バスコントローラ
１３０  ユーザプログラム、１３２  制御演算命令、１３４  特徴量生成命令、１３５，１３５Ａ  書込命令、１３６  スコア算出命令、１３７  判定命令、１４０  時系列データベース、１５０  システムプログラム、２００  設計ツール装置、２０１  記憶部、２０３  操作部、２０６  ＲＡＭ、２１０  キーボード、２１２  マウス、２１４  ディスプレイ、２１６  光学記録媒体読取装置、２１８  通信インターフェイス、２２０，３２０  内部バス、２５０  プログラミングアプリケーション、２５２  エディタ、２５４  コンパイラ、２５６  デバッガ、２５８  ＧＵＩモジュール、２６０  シミュレータ、２７０  データ格納部、２８０  ファンクションブロックライブラリ、２８２，２８２ａ，２８２ｂ  ファンクションブロック、２９０  付属データ記憶部、２９２，２９２ａ，２９２ｂ  付属データ、３００，３００Ａ  サポート装置、３０４  光学ドライブ、３０５  記録媒体、３０６  主記憶装置、３０８  二次記憶装置、３１４  ローカルネットワークコントローラ、３１６  入力部、３１８  表示部、３２４  ＰＬＣインターフェイスプログラム、３２６  解析プログラム、３３０，３３０Ａ  解析ツール、３３２  ＰＬＣインターフェイス、３４０  ユーザインターフェイス、３４２  スクリプトエンジン、３４４  設定ファイル、３５０  ファイル管理モジュール、３５２  データ入力機能、３５４  データ生成機能、３６０  画面生成モジュール、３６２  折れ線グラフ生成機能、３６４  パラメータ調整機能、３６６  グラフライブラリ、３７０，３７０Ａ  解析モジュール、３７２  特徴量生成機能、３７４  特徴量選択機能、３７６  パラメータ決定機能、３８０，３８０Ａ  解析ライブラリ、３８２  特徴量生成ライブラリ、３８４  特徴量選択ライブラリ、３８６  異常判定エンジン、４００  表示装置、５００，５２０，５２０Ａ  ユーザインターフェイス画面、５０２，５２２  選択受付エリア、５０６，５２６  グラフ表示エリア、５０８，５２８  グラフ、５１０  異常範囲、５１２  ヒストグラム表示エリア、５１４  ラベル付与ツール、５１６  正常ラベル設定ボタン、５１７  異常ラベル設定ボタン、５１８  ラベル設定範囲指定ボタン、５２４  チェックボックス、５３０，５３２  数値表示、５３４  設定スライダ、５３５  表示バー、５３６  リセットボタン、５３８  更新データ生成ボタン、６１８，６２８  サーボモータ、６１９，６２９  サーボドライバ。
【図１】
2020047016.tif 000003
【図２】
2020047016.tif 000004
【図３】
2020047016.tif 000005
【図４】
2020047016.tif 000006
【図５】
2020047016.tif 000007
【図６】
2020047016.tif 000008
【図７】
2020047016.tif 000009
【図８】
2020047016.tif 000010
【図９】
2020047016.tif 000011
【図１０】
2020047016.tif 000012
【図１１】
2020047016.tif 000013
【図１２】
2020047016.tif 000014
【図１３】
2020047016.tif 000015
【図１４】
2020047016.tif 000016
【図１５】
2020047016.tif 000017
【図１６】
2020047016.tif 000018
【図１７】
2020047016.tif 000019
【図１８】
2020047016.tif 000020
【図１９】
2020047016.tif 000021
【図２０】
2020047016.tif 000022
【図２１】
2020047016.tif 000023
【図２２】
2020047016.tif 000024
【図２３】
2020047016.tif 000025
【図２４】
2020047016.tif 000026
【図２５】
2020047016.tif 000027