(57)【要約】【課題】設備の稼働率および信頼度を高めるとともに、保守コストを低減するという互いに相反する課題を解決する。【課題手段】制御対象を制御する制御装置および制御装置がアクセス可能な冗長化されたデバイスを備える制御システムが提供される。制御システムは、冗長化されたデバイスに関連するデータから特徴量を生成する特徴量生成手段と、特徴量生成手段により生成される特徴量と予め定められた異常検知パラメータとに基づいて、冗長化されたデバイスに異常が発生しているか否かを判断する異常検知手段と、異常検知手段により異常が発生していると判断されると、冗長化されたデバイスに対して稼働系と待機系との切替えを実施する切替手段と、冗長化されたデバイスに関連するデータを機械学習することにより、異常検知パラメータを決定する学習手段とを含む。【選択図】図４
2018097663.tif 000002
【特許請求の範囲】
【請求項１】
制御対象を制御する制御装置および前記制御装置がアクセス可能な冗長化されたデバイスを備える制御システムであって、
前記冗長化されたデバイスに関連するデータから特徴量を生成する特徴量生成手段と、
前記特徴量生成手段により生成される特徴量と予め定められた異常検知パラメータとに基づいて、前記冗長化されたデバイスに異常が発生しているか否かを判断する異常検知手段と、
前記異常検知手段により異常が発生していると判断されると、前記冗長化されたデバイスに対して稼働系と待機系との切替えを実施する切替手段と、
前記冗長化されたデバイスに関連するデータを機械学習することにより、前記異常検知パラメータを決定する学習手段とを備える、制御システム。
【請求項２】
前記切替手段は、
前記冗長化されたデバイスに含まれるデバイスの実構成を示すそれぞれの実デバイス構成情報と、前記冗長化されたデバイスを仮想化した構成を示す仮想デバイス構成情報とを保持する手段を含み、前記仮想デバイス構成情報は、新たに稼働系として機能するデバイスの情報を含み、
前記異常検知手段により異常が発生していると判断されると、前記仮想デバイス構成情報に含まれる、新たに稼働系として機能するデバイスの情報を更新する手段を含む、請求項１に記載の制御システム。
【請求項３】
仮想デバイスアドレスを参照して対象のデバイスとの間でデータを遣り取りする変数マネジャをさらに備え、
前記切替手段は、前記異常検知手段により異常が発生していると判断されると、前記仮想デバイスアドレスを新たに稼働系として機能するデバイスのアドレスに関連付ける、請求項１または２に記載の制御システム。
【請求項４】
前記切替手段は、前記異常検知手段により異常が発生していると判断されると、前記冗長化されたデバイスのうち、稼働系として機能するデバイスに対して待機系に遷移するように指示するとともに、待機系として機能するデバイスに対して稼働系に遷移するように指示する、請求項１〜３のいずれか１項に記載の制御システム。
【請求項５】
前記異常検知パラメータは、前記冗長化されたデバイスが故障する前段階に生じる特徴量に応じて決定されている、請求項１〜４のいずれか１項に記載の制御システム。
【請求項６】
前記異常検知手段により異常が発生していると判断されると、発生していると判断された異常の内容を示すイベントログを出力するとログ出力手段をさらに備える、請求項１〜５のいずれか１項に記載の制御システム。
【請求項７】
予め用意された複数の特徴量の生成方法のうちから、少なくとも１つが選択される、請求項１〜６のいずれか１項に記載の制御システム。
【請求項８】
前記冗長化されたデバイスは、デジタル入出力ユニット、アナログ入出力ユニット、サーボドライバ、インバータユニット、画像センサ、変位センサ、ファイバセンサ、のうち少なくとも１つを含む、請求項１〜７のいずれか１項に記載の制御システム。
【請求項９】
コンピュータにより実行されることで制御対象を制御する制御装置を実現する制御プログラムであって、前記コンピュータに
前記制御装置がアクセス可能な冗長化されたデバイスに関連するデータから特徴量を生成するステップと、
前記生成される特徴量と予め定められた異常検知パラメータとに基づいて、前記冗長化されたデバイスに異常が発生しているか否かを判断するステップと、
異常が発生していると判断されると、前記冗長化されたデバイスに対して稼働系と待機系との切替えを実施するステップと、
前記冗長化されたデバイスに関連するデータを機械学習することにより、前記異常検知パラメータを決定するステップとを実行させる、制御プログラム。
【請求項１０】
制御対象を制御する制御装置で実行される制御方法であって、
前記制御装置がアクセス可能な冗長化されたデバイスに関連するデータから特徴量を生成するステップと、
前記生成される特徴量と予め定められた異常検知パラメータとに基づいて、前記冗長化されたデバイスに異常が発生しているか否かを判断するステップと、
異常が発生していると判断されると、前記冗長化されたデバイスに対して稼働系と待機系との切替えを実施するステップと、
前記冗長化されたデバイスに関連するデータを機械学習することにより、前記異常検知パラメータを決定するステップとを備える、制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本技術は、冗長化されたデバイスを自動的に切替えることのできる制御システム、制御プログラムおよび制御方法に関する。
【背景技術】
【０００２】
様々な生産現場において、ＰＬＣ（プログラマブルコントローラ）などの制御装置を用いたＦＡ（Factory Automation）技術が広く普及している。このような制御装置については、故障による装置が停止している時間や保守作業に要する時間を短縮化して、稼働率および保守性を高めたいという潜在的なニーズがある。このようなニーズに対して、例えば、特開２０１５−１３３００２号公報（特許文献１）は、多点タイプのＩ／Ｏモジュールを非冗長化構成で用いる場合であっても、稼働率および保守性の低下を防止することが可能な計装システムなどを開示する。より具体的には、特許文献１には、非冗長構成設定のＩ／Ｏモジュールを疑似的に冗長構成で動作させる上位制御装置などが開示されている。そして、Ｉ／Ｏモジュールの交換が必要になったときに、制御権を新たなＩ／Ｏモジュールに移行するような機能が実装されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１５−１３３００２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
上述の特許文献１に開示される構成においては、故障が発生してからＩ／Ｏモジュールを交換する事後保全（ＢＭ：Breakdown Maintenance）に好適ではあるが、実際の生産現場では、故障が発生する前に対象部位の交換や修理を行う予防保全（ＰＭ：Preventive Maintenance）などが実施されている。このような予防保全を行うことで、突然の故障による設備停止、および、それに伴う稼働率の低下といった事態に至る可能性を低減できる。
【０００５】
一方で、予防保全を実施するためには、稼働状態や稼働時間などを管理する必要があり、保守作業にコストを要するという課題がある。
【０００６】
本技術は、上述したような、設備の稼働率および信頼度を高めるとともに、保守コストを低減するという互いに相反する課題を解決することを目的とする。
【課題を解決するための手段】
【０００７】
本発明のある局面によれば、制御対象を制御する制御装置および制御装置がアクセス可能な冗長化されたデバイスを備える制御システムが提供される。制御システムは、冗長化されたデバイスに関連するデータから特徴量を生成する特徴量生成手段と、特徴量生成手段により生成される特徴量と予め定められた異常検知パラメータとに基づいて、冗長化されたデバイスに異常が発生しているか否かを判断する異常検知手段と、異常検知手段により異常が発生していると判断されると、冗長化されたデバイスに対して稼働系と待機系との切替えを実施する切替手段と、冗長化されたデバイスに関連するデータを機械学習することにより、異常検知パラメータを決定する学習手段とを含む。
【０００８】
好ましくは、切替手段は、冗長化されたデバイスに含まれるデバイスの実構成を示すそれぞれの実デバイス構成情報と、冗長化されたデバイスを仮想化した構成を示す仮想デバイス構成情報とを保持する手段を含む。仮想デバイス構成情報は、新たに稼働系として機能するデバイスの情報を含む。切替手段は、異常検知手段により異常が発生していると判断されると、仮想デバイス構成情報に含まれる、新たに稼働系として機能するデバイスの情報を更新する手段を含む。
【０００９】
好ましくは、制御システムは、仮想デバイスアドレスを参照して対象のデバイスとの間でデータを遣り取りする変数マネジャをさらに含む。切替手段は、異常検知手段により異常が発生していると判断されると、仮想デバイスアドレスを新たに稼働系として機能するデバイスのアドレスに関連付ける。
【００１０】
好ましくは、切替手段は、異常検知手段により異常が発生していると判断されると、冗長化されたデバイスのうち、稼働系として機能するデバイスに対して待機系に遷移するように指示するとともに、待機系として機能するデバイスに対して稼働系に遷移するように指示する。
【００１１】
好ましくは、異常検知パラメータは、冗長化されたデバイスが故障する前段階に生じる特徴量に応じて決定されている。
【００１２】
好ましくは、制御システムは、異常検知手段により異常が発生していると判断されると、発生していると判断された異常の内容を示すイベントログを出力するとログ出力手段をさらに含む。
【００１３】
好ましくは、予め用意された複数の特徴量の生成方法のうちから、少なくとも１つが選択される。
【００１４】
好ましくは、冗長化されたデバイスは、デジタル入出力ユニット、アナログ入出力ユニット、サーボドライバ、インバータユニット、画像センサ、変位センサ、ファイバセンサ、のうち少なくとも１つを含む。
【００１５】
本発明の別の局面によれば、コンピュータにより実行されることで制御対象を制御する制御装置を実現する制御プログラムが提供される。制御プログラムは、コンピュータに、制御装置がアクセス可能な冗長化されたデバイスに関連するデータから特徴量を生成するステップと、生成される特徴量と予め定められた異常検知パラメータとに基づいて、冗長化されたデバイスに異常が発生しているか否かを判断するステップと、異常が発生していると判断されると、冗長化されたデバイスに対して稼働系と待機系との切替えを実施するステップと、冗長化されたデバイスに関連するデータを機械学習することにより、異常検知パラメータを決定するステップとを実行させる。
【００１６】
本発明のさらに別の局面によれば、制御対象を制御する制御装置で実行される制御方法が提供される。制御方法は、制御装置がアクセス可能な冗長化されたデバイスに関連するデータから特徴量を生成するステップと、生成される特徴量と予め定められた異常検知パラメータとに基づいて、冗長化されたデバイスに異常が発生しているか否かを判断するステップと、異常が発生していると判断されると、冗長化されたデバイスに対して稼働系と待機系との切替えを実施するステップと、冗長化されたデバイスに関連するデータを機械学習することにより、異常検知パラメータを決定するステップとを含む。
【発明の効果】
【００１７】
本技術によれば、設備の稼働率および信頼度を高めるとともに、保守コストを低減するという互いに相反する課題を解決できる。
【図面の簡単な説明】
【００１８】
【図１】本実施の形態に係る制御システムの全体構成例を示す模式図である。
【図２】本実施の形態に係る制御システムを構成する制御装置のハードウェア構成例を示すブロック図である。
【図３】本実施の形態に係る制御システムを構成するサポート装置のハードウェア構成例を示すブロック図である。
【図４】本実施の形態に係る制御システムが提供するデバイスの自動切替機能を説明するための模式図である。
【図５】本実施の形態に係る制御システムにおける全体機能を説明するための模式図である。
【図６】本実施の形態に係る制御システムの各装置が提供する機能を説明するための模式図である。
【図７】本実施の形態に係る制御システムの準備工程において決定可能な特徴量を示すリストの一例である。
【図８】本実施の形態に係る制御システムの準備工程において決定される異常検知手法や異常検知パラメータの一例を示す模式図である。
【図９】本実施の形態に係る制御システムにおける特徴量監視工程での処理内容を説明するための模式図である。
【図１０】本実施の形態に係る制御システムの仮想デバイス管理機能に関連する機能および処理を説明するための模式図である。
【図１１】本実施の形態に係る制御システムにおいて実行される自動切替機能を有するユーザプログラムの一例を示す図である。
【発明を実施するための形態】
【００１９】
本発明の実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰返さない。
【００２０】
＜Ａ．制御システムの全体構成例＞
まず、本実施の形態に係る制御装置を含む制御システム１の全体構成例について説明する。
【００２１】
図１は、本実施の形態に係る制御システム１の全体構成例を示す模式図である。図１を参照して、本実施の形態に係る制御システム１は、主たる構成要素として、制御対象を制御する制御装置１００と、制御装置１００に接続されるサポート装置２００とを含む。
【００２２】
制御装置１００は、ＰＬＣ（プログラマブルコントローラ）などの、一種のコンピュータとして具現化されてもよい。制御装置１００は、第１フィールドネットワーク２を介してフィールド装置群１０と接続されるとともに、第２フィールドネットワーク４を介して１または複数の表示装置４００と接続される。さらに、制御装置１００は、ローカルネットワーク６を介してデータロギング装置３００に接続される。制御装置１００は、それぞれのネットワークを介して、接続された装置との間でデータを遣り取りする。なお、データロギング装置３００および表示装置４００はオプショナルな構成であり、制御システム１の必須の構成ではない。
【００２３】
制御装置１００は、設備や機械を制御するための各種演算を実行する制御ロジック（以下、「ＰＬＣエンジン」とも称す。）を有している。ＰＬＣエンジンに加えて、制御装置１００は、フィールド装置群１０にて計測され、制御装置１００へ転送されるデータ（以下、「入力データ」とも称す。）を収集する収集機能を有している。さらに、制御装置１００は、収集した入力データを監視する監視機能も有している。
【００２４】
具体的には、制御装置１００に実装される内部データベース（以下、「内部ＤＢ」とも記す。）１３０が収集機能を提供し、制御装置１００に実装される機械学習エンジン１４０が監視機能を提供する。内部ＤＢ１３０および機械学習エンジン１４０の詳細については後述する。
【００２５】
第１フィールドネットワーク２および第２フィールドネットワーク４は、データの到達時間が保証される、定周期通信を行うネットワークを採用することが好ましい。このような定周期通信を行うネットワークとしては、ＥｔｈｅｒＣＡＴ（登録商標）、ＥｔｈｅｒＮｅｔ／ＩＰ（登録商標）、ＤｅｖｉｃｅＮｅｔ（登録商標）、ＣｏｍｐｏＮｅｔ（登録商標）などが知られている。
【００２６】
フィールド装置群１０は、制御対象または制御に関連する製造装置や生産ラインなど（以下、「フィールド」とも総称する。）から入力データを収集する装置を含む。このような入力データを収集する装置としては、入力リレーや各種センサなどが想定される。フィールド装置群１０は、さらに、制御装置１００にて生成される指令（以下、「出力データ」とも称す。）に基づいて、フィールドに対して何らかの作用を与える装置を含む。このようなフィールドに対して何らかの作用を与える装置としては、出力リレー、コンタクタ、サーボドライバおよびサーボモータ、その他任意のアクチュエータが想定される。これらのフィールド装置群１０は、第１フィールドネットワーク２を介して、制御装置１００との間で、入力データおよび出力データを含むデータを遣り取りする。
【００２７】
図１に示す構成例においては、フィールド装置群１０は、リモートＩ／Ｏ（Input/Output）装置１２と、リレー群１４と、画像センサ１８およびカメラ２０と、サーボドライバ２２およびサーボモータ２４とを含む。
【００２８】
リモートＩ／Ｏ装置１２は、第１フィールドネットワーク２を介して通信を行う通信部と、入力データの取得および出力データの出力を行うための入出力部（以下、「Ｉ／Ｏユニット」とも称す。）とを含む。このようなＩ／Ｏユニットを介して、制御装置１００とフィールドとの間で入力データおよび出力データが遣り取りされる。図１には、リレー群１４を介して、入力データおよび出力データとして、デジタル信号が遣り取りされる例が示されている。
【００２９】
Ｉ／Ｏユニットは、フィールドネットワークに直接接続されるようにしてもよい。図１には、第１フィールドネットワーク２にＩ／Ｏユニット１６が直接接続されている例を示す。
【００３０】
画像センサ１８は、カメラ２０によって撮像された画像データに対して、パターンマッチングなどの画像計測処理を行って、その処理結果を制御装置１００へ送信する。
【００３１】
サーボドライバ２２は、制御装置１００からの出力データ（例えば、位置指令など）に従って、サーボモータ２４を駆動する。
【００３２】
上述のように、第１フィールドネットワーク２を介して、制御装置１００とフィールド装置群１０との間でデータが遣り取りされることになるが、これらの遣り取りされるデータは、数百μｓｅｃオーダ〜数十ｍｓｅｃオーダのごく短い周期で更新されることになる。なお、このような遣り取りされるデータの更新処理を、「Ｉ／Ｏリフレッシュ処理」と称することもある。
【００３３】
また、第２フィールドネットワーク４を介して制御装置１００と接続される表示装置４００は、ユーザからの操作を受けて、制御装置１００に対してユーザ操作に応じたコマンドなどを送信するとともに、制御装置１００での演算結果などをグラフィカルに表示する。
【００３４】
データロギング装置３００は、制御装置１００とローカルネットワーク６を介して接続され、制御装置１００との間で必要なデータを遣り取りする。データロギング装置３００は、例えば、データベース機能を有しており、制御装置１００が発生するイベントログなどを時系列に収集する。ローカルネットワーク６には、イーサネット（登録商標）などの汎用プロトコルが実装されてもよい。すなわち、典型的には、ローカルネットワーク６におけるデータの送信周期または更新周期は、フィールドネットワーク（第１フィールドネットワーク２および第２フィールドネットワーク４）におけるデータの送信周期または更新周期より遅くてもよい。但し、ローカルネットワーク６は、フィールドネットワークに比較して、一度により多くのデータを送信することができるようにしてもよい。
【００３５】
サポート装置２００は、制御装置１００が制御対象を制御するために必要な準備を支援する装置である。具体的には、サポート装置２００は、制御装置１００で実行されるプログラムの開発環境（プログラム作成編集ツール、パーサ、コンパイラなど）、制御装置１００および制御装置１００に接続される各種デバイスのパラメータ（コンフィギュレーション）を設定するための設定環境、生成したユーザプログラムを制御装置１００へ送信する機能、制御装置１００上で実行されるユーザプログラムなどをオンラインで修正・変更する機能、などを提供する。
【００３６】
さらに、本実施の形態に係るサポート装置２００は、制御装置１００に実装される内部ＤＢ１３０および機械学習エンジン１４０に対する設定操作を行う機能を有している。これらの機能については、後述する。
【００３７】
＜Ｂ．各装置のハードウェア構成例＞
次に、本実施の形態に係る制御システム１を構成する主要な装置のハードウェア構成例について説明する。
【００３８】
（ｂ１：制御装置１００のハードウェア構成例）
図２は、本実施の形態に係る制御システム１を構成する制御装置１００のハードウェア構成例を示すブロック図である。図２を参照して、制御装置１００は、ＣＰＵ（Central Processing Unit）やＭＰＵ（Micro-Processing Unit）などのプロセッサ１０２と、チップセット１０４と、主記憶装置１０６と、二次記憶装置１０８と、ローカルネットワークコントローラ１１０と、ＵＳＢ（Universal Serial Bus）コントローラ１１２と、メモリカードインターフェイス１１４と、内部バスコントローラ１２２と、フィールドバスコントローラ１１８，１２０と、Ｉ／Ｏユニット１２４−１，１２４−２，…とを含む。
【００３９】
プロセッサ１０２は、二次記憶装置１０８に格納された各種プログラムを読み出して、主記憶装置１０６に展開して実行することで、制御対象に応じた制御、および、後述するような各種処理を実現する。チップセット１０４は、プロセッサ１０２と各デバイスを制御することで、制御装置１００全体としての処理を実現する。
【００４０】
二次記憶装置１０８には、ＰＬＣエンジンを実現するためのシステムプログラムに加えて、ＰＬＣエンジンを利用して実行されるユーザプログラムが格納される。さらに、二次記憶装置１０８には、内部ＤＢ１３０および機械学習エンジン１４０を実現するためのプログラムも格納される。
【００４１】
ローカルネットワークコントローラ１１０は、ローカルネットワーク６を介した他の装置との間のデータの遣り取りを制御する。ＵＳＢコントローラ１１２は、ＵＳＢ接続を介してサポート装置２００との間のデータの遣り取りを制御する。
【００４２】
メモリカードインターフェイス１１４は、メモリカード１１６を着脱可能に構成されており、メモリカード１１６に対してデータを書込み、メモリカード１１６から各種データ（ユーザプログラムやトレースデータなど）を読出すことが可能になっている。
【００４３】
内部バスコントローラ１２２は、制御装置１００に搭載されるＩ／Ｏユニット１２４−１，１２４−２，…との間でデータを遣り取りするインターフェイスである。
【００４４】
フィールドバスコントローラ１１８は、第１フィールドネットワーク２を介した他の装置との間のデータの遣り取りを制御する。同様に、フィールドバスコントローラ１２０は、第２フィールドネットワーク４を介した他の装置との間のデータの遣り取りを制御する。
【００４５】
図２には、プロセッサ１０２がプログラムを実行することで必要な機能が提供される構成例を示したが、これらの提供される機能の一部または全部を、専用のハードウェア回路（例えば、ＡＳＩＣ（Application Specific Integrated Circuit）またはＦＰＧＡ（Field-Programmable Gate Array）など）を用いて実装してもよい。あるいは、制御装置１００の主要部を、汎用的なアーキテクチャに従うハードウェア（例えば、汎用パソコンをベースとした産業用パソコン）を用いて実現してもよい。この場合には、仮想化技術を用いて、用途の異なる複数のＯＳ（Operating System）を並列的に実行させるとともに、各ＯＳ上で必要なアプリケーションを実行させるようにしてもよい。
【００４６】
（ｂ２：サポート装置２００のハードウェア構成例）
次に、本実施の形態に係るサポート装置２００は、一例として、汎用的なアーキテクチャに従うハードウェア（例えば、汎用パソコン）を用いてプログラムを実行することで実現される。
【００４７】
図３は、本実施の形態に係る制御システム１を構成するサポート装置２００のハードウェア構成例を示すブロック図である。図３を参照して、サポート装置２００は、ＣＰＵやＭＰＵなどのプロセッサ２０２と、光学ドライブ２０４と、主記憶装置２０６と、二次記憶装置２０８と、ＵＳＢコントローラ２１２と、ローカルネットワークコントローラ２１４と、入力部２１６と、表示部２１８とを含む。これらのデバイスはバス２２０を介して接続される。
【００４８】
プロセッサ２０２は、二次記憶装置２０８に格納された各種プログラムを読み出して、主記憶装置２０６に展開して実行することで、後述するような各種処理を実現する。
【００４９】
二次記憶装置２０８は、例えば、ＨＤＤ（Hard Disk Drive）やＳＳＤ（Flash Solid State Drive）などで構成される。二次記憶装置２０８には、典型的には、サポート装置２００において実行されるユーザプログラムの作成、作成したプログラムのデバッグ、システム構成の定義、各種パラメータの設定などを行うための開発プログラム２２２と、機械学習の対象となる変数を設定するためのパラメータ設定ツール２２４と、制御装置１００に収集されるデータから目的の情報を抽出するためのデータマイニングツール２２６とが格納される。二次記憶装置２０８には、ＯＳおよび他の必要なプログラムが格納されてもよい。
【００５０】
サポート装置２００は、光学ドライブ２０４を有しており、コンピュータ読取可能なプログラムを非一過的に格納する記録媒体２０５（例えば、ＤＶＤ（Digital Versatile Disc）などの光学記録媒体）から、その中に格納されたプログラムが読取られて二次記憶装置２０８などにインストールされる。
【００５１】
サポート装置２００で実行される各種プログラムは、コンピュータ読取可能な記録媒体２０５を介してインストールされてもよいが、ネットワーク上のサーバ装置などからダウンロードする形でインストールするようにしてもよい。また、本実施の形態に係るサポート装置２００が提供する機能は、ＯＳが提供するモジュールの一部を利用する形で実現される場合もある。
【００５２】
ＵＳＢコントローラ２１２は、ＵＳＢ接続を介して制御装置１００との間のデータの遣り取りを制御する。ローカルネットワークコントローラ２１４は、任意ネットワークを介した他の装置との間のデータの遣り取りを制御する。
【００５３】
入力部２１６は、キーボードやマウスなどで構成され、ユーザ操作を受付ける。表示部２１８は、ディスプレイ、各種インジケータ、プリンタなどで構成され、プロセッサ２０２からの処理結果などを出力する。
【００５４】
図３には、プロセッサ２０２がプログラムを実行することで必要な機能が提供される構成例を示したが、これらの提供される機能の一部または全部を、専用のハードウェア回路（例えば、ＡＳＩＣまたはＦＰＧＡなど）を用いて実装してもよい。
【００５５】
（ｂ３：データロギング装置３００のハードウェア構成例）
次に、本実施の形態に係る制御システム１を構成するデータロギング装置３００は、一例として、汎用的なファイルサーバまたはデータベースサーバを用いて実現できる。このような装置のハードウェア構成については公知であるので、ここでは、その詳細な説明は行わない。
【００５６】
（ｂ４：表示装置４００のハードウェア構成例）
次に、本実施の形態に係る制御システム１を構成する表示装置４００は、ＨＭＩ（Human Machine Interface）装置と称されるものであり、専用機として実装された構成を採用してもよいし、汎用的なアーキテクチャに従うハードウェア（例えば、汎用パソコンをベースとした産業用パソコン）を用いて実現してもよい。
【００５７】
＜Ｃ．制御システムが提供するデバイスの自動切替機能＞
次に、本実施の形態に係る制御システム１が提供するデバイスの自動切替機能について説明する。
【００５８】
本明細書において、「デバイス」は、制御システム１を構成する冗長化可能な任意の要素を意味する。例えば、図１に示すＩ／Ｏユニットなどに代表されるような、制御装置１００に装着される機能ユニット、各種センサ、各種アクチュエータなどが挙げられる。すなわち、本明細書において、「デバイス」は、制御システム１を構成する、２重化または多重化された任意の要素を包含する概念である。一般的に、「デバイス」は、制御装置１００が入力データの取得先、および／または、制御装置１００からの出力データの出力先として機能するものが多い。
【００５９】
より具体的な一例として、「デバイス」は、デジタル入出力ユニット、アナログ入出力ユニット、サーボドライバ、インバータユニット、画像センサ、変位センサ、ファイバセンサなどを包含し得る。すなわち、本明細書における冗長化されたデバイスは、上述したようなユニット、ドライバ、センサのいずれかを含み得る。
【００６０】
図４は、本実施の形態に係る制御システム１が提供するデバイスの自動切替機能を説明するための模式図である。制御システム１は、制御対象を制御する制御装置１００と、制御装置１００がアクセス可能な冗長化されたデバイスを有している。図４には、一例として、制御装置１００と第１フィールドネットワーク２を介して接続されたリモートＩ／Ｏ装置１２において、複数のＩ／Ｏモジュールが冗長化構成されている例を示す。図４において、Ｉ／Ｏモジュールがデバイスに相当する。
【００６１】
図４には、制御装置１００とは別個のリモートＩ／Ｏ装置１２に冗長化されたデバイスが装着される例を示すが、制御装置１００の一部として冗長化されたデバイスが実装されてもよい。この場合には、制御装置１００の演算ユニットとバスなどで接続されるＩ／Ｏモジュールなどがデバイスに該当することになる。
【００６２】
本実施の形態に係る制御装置１００は、デバイスに対する異常検知機能を有しており、デバイスに何らかの異常が検知されると、当該デバイスを冗長化された別のデバイスに切替える処理を実施する。特に、本実施の形態に係る異常検知機能は、制御装置１００に実装された機械学習エンジン１４０によって提供される機械学習を用いて、デバイスに生じ得る異常または異常の兆候を検知する。異常検知方法およびしきい値などを適切に設定することで、デバイスに何らかの異常や故障が発生したことを検知してデバイスを切替える方法に加えて、デバイスに何らかの異常や故障が発生する兆候がみられた場合にデバイスを切替える方法を採用することもできる。
【００６３】
図４には、２つのＩ／Ｏモジュールを一組とするホットスワップ対応の冗長化構成を採用した例を示す。具体的には、２つのＩ／Ｏモジュールのうち一方が稼働系として機能し、他方を待機系として機能する。これらの２つのＩ／Ｏモジュールはいずれも通常と同様に動作しているが、待機系のＩ／Ｏモジュールについては、制御装置への信号出力およびフィールドへの信号出力についてはマスクしてある。そのため、このマスクを取り除くことで、待機系から稼働系への即時の切替えが可能である。図４には、１番目のＩ／Ｏモジュールの組において、何らかの異常が検知され、稼働系から待機系に切替わった状態を示す。
【００６４】
本実施の形態に係る制御装置１００における基本的な処理手順としては、（１）異常検知監視、（２）デバイス切替え、（３）デバイス構成情報更新、（４）デバイス変数テーブル更新の４つのステップが実行される。これらの手順は、基本的には自動で実行されるので、保守作業員によるデバイスの運転状態の確認などが不要となる。本実施の形態においては、異常検知監視において、特徴量を利用した機械学習により、検出精度を高めることができる。
【００６５】
＜Ｄ．制御システムにおける全体機能＞
次に、本実施の形態に係る制御システム１における全体機能について説明する。
【００６６】
図５は、本実施の形態に係る制御システム１における全体機能を説明するための模式図である。図５に示す全体機能は、準備工程および特徴量監視工程からなる。準備工程は、特徴量監視工程において用いられる異常検知手法や異常検知パラメータを決定する工程であり、（１−１）生データ収集工程、（１−２）データマイニング工程、（１−３）特徴量収集工程、（１−４）特徴量学習工程から構成される。
【００６７】
（１−１）生データ収集工程においては、制御装置１００が取り扱うデータのうち、異常検知に係る解析に使用するデータが内部ＤＢ１３０に書込まれる。（１−１）生データ収集工程は、後述する、制御装置１００の内部ＤＢ書込プログラムが実行されることで実現される。
【００６８】
（１−２）データマイニング工程においては、内部ＤＢ１３０に書込まれたデータが読込まれ、異常検知手法が決定される。異常検知手法は、どのようなデータをどのようなロジックで監視すれば、目的の異常を検知できるのかという手法を示すものである。本実施の形態においては、異常検知手法は、フィールドからの１または複数のデータからの特徴量の生成手法を含む。（１−２）データマイニング工程は、典型的には、後述する、サポート装置２００のデータマイニングツール２２６が実行されることで実現される。決定された異常検知手法に応じて、特徴量を生成するための設定やパラメータなどが出力される。
【００６９】
（１−３）特徴量収集工程においては、フィールドとの間で遣り取りされるデータおよび内部データのうち、対象となるデータに対して、先の（１−２）データマイニング工程において決定された特徴量の生成手法が適用されることで、特徴量が順次生成される。（１−３）特徴量収集工程は、後述する、制御装置１００の特徴量生成プログラムが実行されることで実現される。
【００７０】
（１−４）特徴量学習工程においては、（１−３）特徴量収集工程において収集された特徴量に対して機械学習処理が実施され、この機械学習処理の結果から、異常検知に用いる異常検知パラメータ（典型的には、しきい値など）が決定される。（１−４）特徴量学習工程は、後述する、制御装置１００の機械学習エンジンによって提供される。このように、制御装置１００は、冗長化されたデバイスに関連するデータを機械学習することにより、異常検知パラメータを決定する学習機能を有している。
【００７１】
以上のような（１−１）〜（１−４）の工程によって、異常検知に用いる特徴量の定義、および、異常であると判断するための異常検知パラメータなどを決定できる。
【００７２】
なお、図５に示す準備工程は、必ずしも制御装置１００において実施する必要はなく、デバイス毎に予め用意された異常検知手法や異常検知パラメータを利用するようにしてもよい。例えば、各デバイスのメーカなどが各デバイスの特性値などに基づいて、このような異常検知手法や異常検知パラメータを設定してもよい。
【００７３】
以上のような準備工程の実施後、異常の発生有無を監視する工程が実施される。具体的には、（２）特徴量監視工程が実施される。（２）特徴量監視工程においては、所定周期毎または所定イベント毎に生成される特徴量の監視、すなわち、生成される特徴量が予め定められた異常検知パラメータにより規定された条件に合致するか否かが判断される。そして、異常が検知されると、その検知された異常に応じたデバイスの切替え、および、その検知された異常を示すイベントログの出力が実施される。
【００７４】
図６は、本実施の形態に係る制御システム１の各装置が提供する機能を説明するための模式図である。図６に示す模式図において、カッコ内の数字は、図５に示す（１−１）〜（１−４）および（２）の工程における処理に対応している。
【００７５】
制御装置１００は、内部ＤＢ１３０および機械学習エンジン１４０に加えて、ＰＬＣエンジン１５０および仮想デバイス管理機能１８０を有している。これらの機能は、基本的には、制御装置１００のプロセッサ１０２（図２）がプログラムを実行することで実現される。このプロセッサ１０２がプログラムを実行するための環境を提供するために、制御装置１００にはＯＳ１９０もインストールされる。
【００７６】
ＰＬＣエンジン１５０は、典型的には、ＯＳ１９０上でシステムプログラムおよびユーザプログラムが実行されることで提供される。つまり、本発明のある局面によれば、一種のコンピュータにて実行されることで、ＰＬＣエンジン１５０および仮想デバイス管理機能１８０を含む制御装置１００を実現するようなプログラムを含み得る。
【００７７】
より具体的には、ＰＬＣエンジン１５０は、スケジューラ１５２と、変数マネジャ１５４と、制御プログラム１６０とを含む。
【００７８】
スケジューラ１５２は、ＰＬＣエンジン１５０を構成する各プログラム（あるいは、それに対応するタスク）の実行タイミングや実行順序などを制御する。ＰＬＣエンジン１５０に含まれる各タスクには実行周期が予め定められており、スケジューラ１５２は、その定められた実行周期に従ってタスクを繰返し実行できるように制御する。
【００７９】
変数マネジャ１５４は、ＰＬＣエンジン１５０において周期的に実行されるＩ／Ｏリフレッシュ処理によって更新されるデータを変数として管理する。より具体的には、変数マネジャ１５４は、制御装置１００の各部の動作状態を示すデータ群を含むシステム変数１５４２と、ＰＬＣエンジン１５０において実行されるユーザプログラムが書込み・読出しを行うデータ群を含むユーザ変数・デバイス変数１５４４と、異常検知に用いる異常検知パラメータ１５４６とを保持および管理する。
【００８０】
異常検知パラメータ１５４６については、サポート装置２００のＰＬＣ変数アクセスプログラム２２４２によるアクセスおよび更新が可能になっている。つまり、変数マネジャ１５４は、異常検知パラメータ１５４６を保持するとともに、外部装置からの要求に応じて、保持されている異常検知パラメータ１５４６を更新する機能を提供する。
【００８１】
制御プログラム１６０は、ユーザが任意に作成可能なユーザプログラムに相当し、典型的には、シーケンス／モーションプログラム１６２と、内部ＤＢ書込プログラム１６４と、機械学習エンジンインターフェイス１６６と、特徴量生成プログラム１７４とを含む。制御プログラム１６０を構成するプログラムの命令は、一体のプログラムとして記述されてもよいし、複数のプログラムにそれぞれ分離して記述されてもよい。
【００８２】
シーケンス／モーションプログラム１６２は、制御対象を制御するための論理演算および／または数値演算を行う命令を含む。内部ＤＢ書込プログラム１６４は、ユーザ変数・デバイス変数１５４４に含まれる変数のうち、予め設定された変数を内部ＤＢ１３０に書込む。
【００８３】
機械学習エンジンインターフェイス１６６は、機械学習エンジン１４０を操作するための命令を含む。具体的には、機械学習エンジンインターフェイス１６６は、学習要求プログラム１６８と、監視要求プログラム１７０と、シリアライズモジュール１７２とを含む。
【００８４】
つまり、機械学習エンジンインターフェイス１６６は、機械学習エンジン１４０に対して、機械学習を指示する命令を含み、監視要求プログラム１７０は、機械学習エンジンインターフェイス１６６は、異常検知パラメータ１５４６を用いて特徴量を監視し、異常検知を指示する命令を含む。
【００８５】
シリアライズモジュール１７２は、学習要求プログラム１６８および監視要求プログラム１７０と、機械学習エンジン１４０との間の通信量を低減するためのシリアライズ処理を実行する。後述するように、シリアライズモジュール１７２は、特徴量生成プログラム１７４の実行により生成される特徴量をデータ圧縮した上で、学習機能１４２および異常検知機能１４４に与えるデータ圧縮機能を提供する。
【００８６】
特徴量生成プログラム１７４は、予め設定された特徴量の生成手法に従って、ユーザ変数・デバイス変数１５４４の設定された変数を用いて特徴量を生成する命令を含む。後述するように、対象となる冗長化されたデバイスに応じて適切な特徴量の生成手法が決定される。特に、本実施の形態に係る制御システム１においては、特徴量生成プログラム１７４は、冗長化されたデバイスに関連するデータから特徴量を生成する。
【００８７】
内部ＤＢ１３０には、典型的には、（１−１）生データ収集工程において収集される生データ１３２と、（１−４）特徴量学習工程において取得される学習結果１３４と、（２）特徴量監視工程において出力される異常検知結果１３６とが格納される。
【００８８】
機械学習エンジン１４０は、（１−４）特徴量学習工程において必要な処理を実行するための学習機能１４２と、（２）特徴量監視工程において必要な処理を実行するための異常検知機能１４４とを含む。学習機能１４２は、特徴量生成プログラム１７４の実行により生成される特徴量を用いて機械学習を実施する。異常検知機能１４４は、学習機能１４２の機械学習による学習結果に基づいて決定される冗長化されたデバイスに生じる異常の検知に用いられる異常検知パラメータ１５４６と、特徴量生成プログラム１７４の実行により生成される特徴量とに基づいて、冗長化されたデバイスにおける異常を検知する。このように、異常検知機能１４４は、特徴量生成プログラム１７４の実行により生成される特徴量と予め定められた異常検知パラメータ１５４６とに基づいて、冗長化されたデバイスに異常が発生しているか否かを判断する。
【００８９】
異常検知機能１４４は、何らかの異常を検知すると、その検知した異常の内容を仮想デバイス管理機能１８０へ通知するとともに、その検知した異常の内容を示すイベントログ１４６を出力する。このように、制御装置１００は、異常検知機能１４４により異常が発生していると判断されると、発生していると判断された異常の内容を示すイベントログ１４６を出力するとログ出力機能を有している。なお、イベントログ１４６の出力に代えて、あるいは、出力に加えて、電子メールや各種メッセージを対象のユーザに対して送信するようにしてもよい。
【００９０】
仮想デバイス管理機能１８０は、何らかの異常が検知されると、対象となるデバイスの切替えに係る処理を実行する。より具体的には、仮想デバイス管理機能１８０は、対象の冗長化されたデバイスのセットに対して、稼働系として機能しているデバイスを待機系に変更するとともに、待機系として機能しているデバイスを稼働系に変更する。このように、仮想デバイス管理機能１８０は、異常検知機能１４４により異常が発生していると判断されると、冗長化されたデバイスに対して稼働系と待機系との切替えを実施する。この待機系と稼働系との切替えは、後述するような仮想化技術を用いて実現されてもよい。
【００９１】
一方、サポート装置２００には、開発プログラム２２２（図３）に加えて、パラメータ設定ツール２２４およびデータマイニングツール２２６がインストールされている。
【００９２】
パラメータ設定ツール２２４は、制御装置１００の変数マネジャ１５４が管理する各変数に対してアクセスするためのＰＬＣ変数アクセスプログラム２２４２を含む。ＰＬＣ変数アクセスプログラム２２４２は、制御装置１００内部の変数の参照および書き換えを可能にする。
【００９３】
データマイニングツール２２６は、内部ＤＢアクセス機能２２６２と、データマイニング機能２２６４と、可視化機能２２６６とを含む。内部ＤＢアクセス機能２２６２は、内部ＤＢ１３０にアクセスして、内部ＤＢ１３０に収集されている生データのうち、必要なデータを抽出する。データマイニング機能２２６４は、主として、上述の（１−２）データマイニング工程を実施する。可視化機能２２６６は、（１−２）データマイニング工程などによって得られた各種情報や、（２）特徴量監視工程において検知された異常の内容などを視覚的にユーザへ提示する。
【００９４】
データマイニングツール２２６によれば、（１−２）データマイニング工程の実施によって、特徴量生成手法および異常検知手法が決定され、（１−４）特徴量学習工程の実施によって、異常検知パラメータが決定される。
【００９５】
＜Ｅ．準備工程＞
次に、準備工程において決定される特徴量生成手法および異常検知手法の一例について説明する。
【００９６】
図７は、本実施の形態に係る制御システム１の準備工程において決定可能な特徴量を示すリストの一例である。図７に示すような複数の特徴量が予め定義されており、準備工程では、（１−１）生データ収集工程において、生データが内部ＤＢ１３０に収集され、（１−２）データマイニング工程においていずれの特徴量を用いるのが好ましいのかが決定される。
【００９７】
具体的には、内部ＤＢ１３０に収集された生データを用いて、図７に示されるそれぞれの特徴量が算出され、その特徴量の変化の度合いが大きなものが候補として決定される。あるいは、典型的な手法として、各種の主成分分析を採用してもよい。主成分分析の手法としては、公知の任意の方法を採用できる。
【００９８】
本実施の形態に係る制御システム１においては、図７に示される複数の特徴量の生成方法が予め用意されており、これらのうちから少なくとも１つが選択されるようにしてもよい。
【００９９】
さらに、決定された特徴量生成手法に従って、（１−３）特徴量収集工程において、特徴量が収集され、収集された特徴量に基づいて、（１−４）特徴量学習工程において、対応する異常検知手法に応じた異常検知パラメータが決定される。
【０１００】
図８は、本実施の形態に係る制御システム１の準備工程において決定される異常検知手法や異常検知パラメータの一例を示す模式図である。図８に示す異常検知設定テーブル１４２１は、異常検知の対象となるデバイス（デバイス）の種別１４２２と、各デバイスの特徴量を生成するための特徴量生成手法１４２３と、対応する異常検知手法１４２４とが互いに関連付けられて格納される。
【０１０１】
図８に示す例においては、デジタル入出力ユニットは、その特徴量として、各チャネルのデジタル入出力信号の振幅変化が用いられ、異常検知手法として、その振幅変化に対して設定される上下限値が用いられる。他のデバイスについても同様に、特徴量生成手法および異常検知手法がそれぞれ決定される。
【０１０２】
なお、図８には、同一種類のデバイスに対して、１つの特徴量生成手法および異常検知手法が設定される場合の例を示すが、複数の特徴量生成手法および対応する異常検知手法が設定されてもよい。さらに、同一種類のデバイスであっても、型番や品番別に、異なる特徴量生成手法および対応する異常検知手法が設定されてもよい。さらにあるいは、同一種類のデバイスに含まれる複数のチャネルの各々について、異なる特徴量生成手法および対応する異常検知手法が設定されてもよい。
【０１０３】
さらに、同一種類のデバイスに対して複数の品番などが設定されている場合には、品番の各々について、異なる特徴量生成手法および対応する異常検知手法が設定されてもよい。
【０１０４】
図８に示す異常検知設定テーブル１４２１には、特徴量生成手法１４２３および異常検知手法１４２４のみが規定される例を示すが、異常検知手法１４２４において用いられる異常検知パラメータ（例えば、異常検知しきい値）をさらに規定するようなテーブルを採用してもよい。この場合には、異常検知手法１４２４の各々において規定される種類の値（例えば、上限値）に対応して、用いられるべき値などが設定される。
【０１０５】
本実施の形態においては、仮想デバイス管理機能１８０において、異常検知パラメータが管理される。
【０１０６】
＜Ｆ．特徴量監視工程＞
次に、特徴量監視工程と図６に示される各エレメントの動作との関係について説明する。図９は、本実施の形態に係る制御システム１における特徴量監視工程での処理内容を説明するための模式図である。
【０１０７】
図９を参照して、ユーザがサポート装置２００の開発プログラム２２２を操作して、何らかの異常発生を監視するためのユーザプログラムを作成する。この作成されたユーザプログラムには、機械学習エンジンインターフェイス１６６に相当する命令が含まれることになる。ユーザプログラムが実行されることで、機械学習エンジンインターフェイス１６６からの設定が機械学習エンジン１４０へ与えられる（ステップＳ２）。
【０１０８】
機械学習エンジン１４０の異常検知機能１４４は、異常検知処理を実施する（ステップＳ４）。この異常検知処理は、特徴量生成プログラム１７４によって生成される特徴量が用いられる。機械学習エンジン１４０において何らかの異常が検知されると、その検知した異常の内容を示すイベントログ１４６が出力される（ステップＳ６）。併せて、デバイスの自動切替が実施される（ステップＳ１０〜Ｓ１６）。
【０１０９】
なお、機械学習エンジン１４０において検知される異常は、設定される異常検知パラメータ（典型的には、しきい値など）に依存して、その意味を異ならせることができる。例えば、デバイスが故障する前段階の何らかの劣化状態に対応するしきい値が設定されている場合には、異常検出は、対象のデバイスについての故障予知を意味することになる。一方、デバイスが故障した状態に対応するしきい値が設定されている場合には、異常検出は、対象のデバイスについての故障検出を意味することになる。
【０１１０】
このように、異常検知パラメータとしては、冗長化されたデバイスが故障する前段階に生じる特徴量に応じて決定されてもよいし、冗長化されたデバイスが故障した状態において生じる特徴量に応じて決定されてもよい。
【０１１１】
デバイスの自動切替においては、仮想デバイス管理機能１８０が、対象のデバイスについて稼働系と待機系とを入れ替える。具体的には、仮想デバイス管理機能１８０は、対象の待機デバイスを有効化する（ステップＳ１０）。すなわち、仮想デバイス管理機能１８０は、異常検知機能１４４により異常が発生していると判断されると、冗長化されたデバイスのうち、稼働系として機能するデバイスに対して待機系に遷移するように指示するとともに、待機系として機能するデバイスに対して稼働系に遷移するように指示する。
【０１１２】
続いて、デバイス構成情報が更新される（デバイス構成情報の詳細については後述する）。具体的には、仮想デバイス管理機能１８０は、デバイス構成情報に含まれる対象デバイスの動作モードを更新するとともに、デバイス切替が生じた日時を記録する（ステップＳ１２）。さらに、仮想デバイス管理機能１８０は、デバイス変数テーブル（デバイス変数テーブルの詳細については後述する）の内容を更新し（ステップＳ１４）、新たに本番系に切替わったデバイスの情報を有効に反映させる。このデバイス変数テーブルの更新に伴って、変数マネジャ１５４は、更新後のアドレス（すなわち、新たに本番系に切替わったデバイスのアドレス）からデバイス変数を取得する（ステップＳ１６）。これにより、ユーザプログラムの実行時に参照されるデバイス変数は切替後のデバイスのデータを反映することになる。
【０１１３】
＜Ｇ．仮想デバイス管理機構＞
次に、仮想デバイス管理機能１８０における機能および処理などについて説明する。
【０１１４】
図１０は、本実施の形態に係る制御システム１の仮想デバイス管理機能１８０に関連する機能および処理を説明するための模式図である。図１０を参照して、仮想デバイス管理機能１８０は、機械学習エンジン１４０からの異常検知（あるいは、故障予測）のイベントに応答して、デバイスの切替処理を開始する。
【０１１５】
本実施の形態に係る制御システム１においては、仮想化技術を用いて、現実に装着されているデバイスの存在とアクセス先とを間接的に関連付けるようにすることで、デバイスの切替処理を容易化する。
【０１１６】
具体的には、仮想デバイス管理機能１８０は、デバイス構成情報１８２にアクセス可能に構成されている。デバイス構成情報１８２は、変数マネジャ１５４からもアクセス可能になっており、例えば、二次記憶装置１０８などに格納される。
【０１１７】
デバイス構成情報１８２は、実デバイス構成情報群１８４および仮想デバイス構成情報１８６を含む。
【０１１８】
実デバイス構成情報群１８４は、例えば、冗長化を構成する複数のデバイスに対して作成および管理される。すなわち、実デバイス構成情報群１８４は、冗長化されたデバイスに含まれるデバイスの実構成を示すそれぞれの実デバイス構成情報を含む。例えば、２つのデバイスで冗長化が実現されている場合には、第１のデバイスについての実デバイス構成情報１８４１と、第２のデバイスについての実デバイス構成情報１８４２とが作成される。ある時点において、第１のデバイスが稼働系として機能し、第２のデバイスが待機系として機能する場合もあるし、その逆の場合もある。
【０１１９】
実デバイス構成情報１８４１および１８４２の各々には、（ａ）デバイス名、（ｂ）切替日時、（ｃ）実デバイスアドレス、（ｄ）動作モードのそれぞれの値が格納される。（ａ）デバイス名には、対応するデバイスの製品名やユーザが決定した名前などが格納される。（ｂ）切替日時には、動作モードが稼働系から待機系に切替わった日時または待機系から稼働系に切替わった日時が格納される。（ｃ）実デバイスアドレスは、対応するデバイスが現実に装着されている位置に対応するアドレスが格納される。すなわち、（ｃ）実デバイスアドレスに格納されているアドレスを設定することで、対応するデバイスへアクセスすることができる。（ｄ）動作モードは、対応するデバイスが稼働系として機能しているのか、あるいは、待機系として機能しているのかを示す。なお、稼働系および待機系を示すモードに加えて、検知された異常の適否を判断する故障検証モードを設定してもよい。
【０１２０】
（ｄ）動作モードとして、故障検証モードを選択可能にした場合には、その故障検証モードの結果を格納するための実デバイス構成情報１８４３を用意してもよい。実デバイス構成情報１８４３には、異常が検知されたときの特徴量および対応する異常検知パラメータ（例えば、しきい値など）が格納されるようにしてもよい。
【０１２１】
仮想デバイス構成情報１８６は、変数マネジャ１５４が現実にアクセスするデバイスを特定するための情報を有している。仮想デバイス構成情報１８６は、冗長化されたデバイスを仮想化した構成を示す。仮想デバイス管理機能１８０が仮想デバイス構成情報１８６に格納されている情報を適宜更新することで、デバイスの切替えが実現される。つまり、仮想デバイス管理機能１８０は、新たに稼働系として機能するデバイスの情報を含む。
【０１２２】
具体的には、仮想デバイス構成情報１８６は、（ａ）仮想デバイス名、（ｂ）仮想デバイスＩＤ、（ｃ）仮想デバイスアドレス、（ｄ）実デバイス情報、（ｅ）異常検知パラメータのそれぞれの値が格納される。
（ａ）仮想デバイス名には、冗長化されたデバイスを特定するための製品名やユーザが決定した名前などが格納される。（ｂ）仮想デバイスＩＤには、冗長化されたデバイスを特定するためのＩＤが格納される。（ｃ）仮想デバイスアドレスは、冗長化されたデバイスを示すアドレスが格納される。すなわち、変数マネジャ１５４は、いずれのデバイスが稼働系として選択されていたとしても、（ｂ）仮想デバイスＩＤに格納されたＩＤ、および、（ｃ）仮想デバイスアドレスに格納されたアドレスを参照して、必要な変数を取得してデバイス変数を更新し、あるいは、デバイス上の値をデバイス変数に格納された対応する値に更新する。
【０１２３】
（ｄ）実デバイス情報は、仮想デバイスと実デバイスとの関係性を特定する情報が格納される。（ｄ）実デバイス情報には、各時点で稼働系として機能しているデバイスを特定するための情報として、デバイス名や実デバイスアドレスなどが格納される。（ｄ）実デバイス情報は、仮想デバイス管理機能１８０によるデバイスの切替処理の実施に伴って更新される。つまり、仮想デバイス管理機能１８０は、異常検知機能１４４により異常が発生していると判断されると、仮想デバイス構成情報１８６に含まれる、新たに稼働系として機能するデバイスの情報である、（ｄ）実デバイス情報を更新する。
【０１２４】
（ｅ）異常検知パラメータは、対象となるデバイスについての異常を検知するためのパラメータであり、例えば、しきい値などが格納される。このしきい値としては、対応するデバイスが故障した状態を示す値を用いてもよいし、対応するデバイスが故障する直前の状態を示す値を用いてもよい。上述した準備工程において、デバイスが故障する直前にその値が大きく変化するような特徴量を抽出することで、例えば、故障の約１０日前の状態に対応するしきい値などを設定することができる。このように、特徴量生成手法および対応する故障検知パラメータを最適化することで、想定される故障のある日にち前に異常検知、すなわち故障予測を発行するようにしてもよい。
【０１２５】
このような特徴量生成手法および故障検知パラメータについては、対象となる制御システムの重要性などに応じて、適宜設計されてもよい。
【０１２６】
仮想デバイス管理機能１８０は、機械学習エンジン１４０からの異常検知（あるいは、故障予測）のイベントに応答して、デバイス構成情報１８２に対する更新に加えて、デバイス変数テーブル１８８を更新する。デバイス変数テーブル１８８は、仮想デバイスアドレスと実デバイスアドレス（稼働系として機能しているデバイスについてのアドレス）とをマッピングする。このデバイス変数テーブル１８８に対する更新内容は、デバイス構成情報１８２の更新後の内容に基づくものとなる。つまり、仮想デバイス管理機能１８０は、異常検知機能１４４により異常が発生していると判断されると、デバイス変数テーブル１８８の仮想デバイスアドレスを新たに稼働系として機能するデバイスのアドレスに関連付ける。
【０１２７】
変数マネジャ１５４は、デバイス変数テーブル１８８を参照して、冗長化されたデバイスのうち対象のデバイスとの間でデータを遣り取りする。そのため、デバイス構成情報１８２が更新されると、変数マネジャ１５４は、その更新後のデバイス構成情報１８２に示されるアドレスに基づいて、稼働系のデバイスから必要な情報を読出し、あるいは、稼働系のデバイスに対して指示された情報を書込む処理（すなわち、Ｉ／Ｏリフレッシュ処理）を実施することで、デバイス変数１５４４を更新する。
【０１２８】
以上のような機能および処理によって、デバイスに何らかの異常が発生した場合における、デバイスの自動的な切替えを実現できる。
【０１２９】
＜Ｈ．ユーザプログラム＞
次に、本実施の形態に係る自動切替機能を実装する場合のユーザプログラムの一例について説明する。
【０１３０】
図１１は、本実施の形態に係る制御システム１において実行される自動切替機能を有するユーザプログラムの一例を示す図である。図１１を参照して、本実施の形態に係る自動切替機能は、機械学習エンジンインターフェイス１６６（図６）の機能を果たすファンクションブロック１６６１として実装される。
【０１３１】
ファンクションブロック１６６１には、機械学習エンジン１４０（図６）を選択的に機能させるための設定がなされる。具体的には、モード設定１６６２に対して、「学習」または「監視」を設定することが可能である。「学習」が設定されると、機械学習エンジン１４０の学習機能１４２が有効化され、準備工程（図５）に必要な機械学習処理が実施される。一方、「監視」が設定されると、機械学習エンジン１４０の異常検知機能１４４が有効化され、特徴量監視工程（図５）が実施される。
【０１３２】
仮想デバイスＩＤ設定１６６３には、機械学習エンジン１４０の異常検知機能１４４が異常検知したときに、自動的に切替えられる対象のデバイスが指定される。すなわち、何らかの異常が検知されると、仮想デバイス管理機能１８０は、仮想デバイスＩＤ設定１６６３において指定されている仮想デバイスＩＤを有するデバイスに対して、自動切替を実施する。
【０１３３】
イベントＩＤ設定１６６４には、機械学習エンジン１４０の異常検知機能１４４が異常検知したときに、発行されるイベントのＩＤが指定される。機械学習エンジン１４０は、異常検知されると、イベントＩＤ設定１６６４に指定されたＩＤを有するイベントを発生するとともに、そのイベントをイベントログ１４６に登録する。
【０１３４】
ファンクションブロック１６６１には、１または複数の特徴量を入力することができる（特徴量設定１６６５）。特徴量設定１６６５には、任意の入力される特徴量を設定することができる。図１１に示す例においては、５つの特徴量生成ファンクションブロック１７４１〜１７４５が規定されるとともに、それぞれのファンクションブロックで生成された特徴量がファンクションブロック１６６１に入力として設定される。すなわち、特徴量設定１６６５の内容に基づいて、特徴量生成プログラム１７４と機械学習エンジン１４０とが関連付けられる。
【０１３５】
特徴量生成ファンクションブロック１７４１〜１７４５については、任意に選択することができ、典型的には、先に実施されるデータマイニング工程などにおいて、決定された特徴量を算出するためのファンクションブロックが設定される。
【０１３６】
ユーザは、このようなファンクションブロック１６６１をユーザプログラム上に規定するだけで、本実施の形態に係るデバイスの自動切替機能を実装することができる。そのため、予防保全に係る知識が乏しいユーザであっても、対象のデバイスに劣化傾向がみられると、自動的に代替のデバイスに切替わるといった機能を利用することができる。
【０１３７】
＜Ｉ．変形例＞
上述したサポート装置２００の機能の全部または一部を制御装置１００に組み入れるようにしてもよい。例えば、サポート装置２００に実装されるデータマイニングツール２２６についても、制御装置１００に実装するようにしてもよい。このような構成を採用することで、サポート装置２００側に多くのアプリケーションプログラムをインストールすることなく、本実施の形態に係る機能を利用することができる。
【０１３８】
また、図６に示すモジュール構成は一例であり、上述したような機能を提供できる限り、どのような実装を採用してもよい。例えば、ハードウェア上の制約や、プログラミング上の制約などによって、図６に示す機能モジュールを複数の機能モジュールの集合として実装してもよいし、図６に示す複数の機能モジュールを単一のモジュールとして実装してもよい。
【０１３９】
＜Ｊ．利点＞
本実施の形態に係る制御システムによれば、センサやユニットなどのデバイスから得られるデータから生成される特徴量、および、それらのデータに対する機械学習によって得られる異常検知パラメータに基づいて、異常監視を行うことで、デバイスに生じる劣化傾向を把握するとともに、その故障が生じる時期を予想することもできる。異常検知パラメータを適切に設定することで、冗長化されたデバイスに何らかの致命的な故障が発生する前に、待機系のデバイスを稼働系に切替えて、故障の発生による設備停止などを防止できる。
【０１４０】
このような予防保全を実現するためには、日ごろの管理によって故障の予兆を管理する必要があり、保全計画や保全実施に係る保全コストが別途生じ得るが、本実施の形態に係る自動切替機能を採用することで、このような別途発生するような保全コストを低減できる。
【０１４１】
また、異常であると判断されたデバイスに対して、故障検証を行って、その結果をフィードバックすることで、故障予測の精度を高めることができ、制御対象などに応じて冗長度などを最適化できる。
【０１４２】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した説明ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【０１４３】
１  制御システム、２  第１フィールドネットワーク、４  第２フィールドネットワーク、６  ローカルネットワーク、１０  フィールド装置群、１２  リモートＩ／Ｏ装置、１４  リレー群、１６，１２４  Ｉ／Ｏユニット、１８  画像センサ、２０  カメラ、２２  サーボドライバ、２４  サーボモータ、１００  制御装置、１０２，２０２  プロセッサ、１０４  チップセット、１０６，２０６  主記憶装置、１０８，２０８  二次記憶装置、１１０，２１４  ローカルネットワークコントローラ、１１２，２１２  コントローラ、１１４  メモリカードインターフェイス、１１６  メモリカード、１１８，１２０  フィールドバスコントローラ、１２２  内部バスコントローラ、１３０  内部ＤＢ、１３２  生データ、１３４  学習結果、１３６  異常検知結果、１４０  機械学習エンジン、１４２  学習機能、１４４  異常検知機能、１４６  イベントログ、１５０  ＰＬＣエンジン、１５２  スケジューラ、１５４  変数マネジャ、１６０  制御プログラム、１６２  モーションプログラム、１６４  書込プログラム、１６６  機械学習エンジンインターフェイス、１６８  学習要求プログラム、１７０  監視要求プログラム、１７２  シリアライズモジュール、１７４  特徴量生成プログラム、１８０  仮想デバイス管理機能、１８２  デバイス構成情報、１８４  実デバイス構成情報群、１８６  仮想デバイス構成情報、１８８  デバイス変数テーブル、１９０  ＯＳ、２００  サポート装置、２０４  光学ドライブ、２０５  記録媒体、２１６  入力部、２１８  表示部、２２０  バス、２２２  開発プログラム、２２４  パラメータ設定ツール、２２６  データマイニングツール、３００  データロギング装置、４００  表示装置、１４２１  異常検知設定テーブル、１４２２  種別、１４２３  特徴量生成手法、１４２４  異常検知手法、１５４２  システム変数、１５４４  デバイス変数、１５４６  異常検知パラメータ、１６６１  ファンクションブロック、１６６２  モード設定、１６６３，１６６４  設定、１６６５  特徴量設定、１７４１，１７４５  特徴量生成ファンクションブロック、１８４１，１８４２，１８４３  実デバイス構成情報、２２４２  変数アクセスプログラム、２２６２  アクセス機能、２２６４  データマイニング機能、２２６６  可視化機能。
【図１】
2018097663.tif 000003
【図２】
2018097663.tif 000004
【図３】
2018097663.tif 000005
【図４】
2018097663.tif 000006
【図５】
2018097663.tif 000007
【図６】
2018097663.tif 000008
【図７】
2018097663.tif 000009
【図８】
2018097663.tif 000010
【図９】
2018097663.tif 000011
【図１０】
2018097663.tif 000012
【図１１】
2018097663.tif 000013