(57)【要約】【課題】加工機の異常を総合的に捉え得る監視装置、監視システムおよび監視方法を提供する。【解決手段】監視装置１８は、プログラムの実行時間の度数分布である実行時間分布を生成する分布生成部２０と、異常の実行時間分布を示す少なくとも１つの異常情報が記憶される記憶部２２と、分布生成部２０が生成した実行時間分布を示す情報と、記憶部２２に記憶された異常情報とに基づいて、異常の発生確率を演算する演算部２６と、異常情報に対して確率閾値を設定する閾値設定部３２と、発生確率が確率閾値以上である場合に、異常の予兆があると判定する判定部２８と、を備える。【選択図】図２
2020170245.tif 000002
【特許請求の範囲】
【請求項１】
加工機を制御する制御装置の加工サイクルにおいて繰り返し実行される少なくとも１種類のプログラムの処理時間を監視する監視装置であって、
前記プログラムの実行時間の度数分布である実行時間分布を生成する分布生成部と、
異常の前記実行時間分布を示す少なくとも１つの異常情報が記憶される記憶部と、
前記分布生成部が生成した前記実行時間分布を示す情報と、前記記憶部に記憶された前記異常情報とに基づいて、異常の発生確率を演算する演算部と、
前記異常情報に対して確率閾値を設定する閾値設定部と、
前記発生確率が前記確率閾値以上である場合に、異常の予兆があると判定する判定部と、
を備える監視装置。
【請求項２】
請求項１に記載の監視装置であって、
前記閾値設定部は、前記判定部で異常の予兆があると判定されたときを契機として所定の時間内に、前記判定部で予兆があると判定した異常により前記加工機が異常停止しなかった場合には、前記確率閾値を上げる、監視装置。
【請求項３】
請求項２に記載の監視装置であって、
前記閾値設定部は、前記確率閾値が規定値以上となったときには、前記確率閾値に対応する前記異常情報を前記記憶部から削除する、監視装置。
【請求項４】
請求項１〜３のいずれか１項に記載の監視装置であって、
前記閾値設定部は、前記判定部で異常の予兆があると判定されたときを契機として所定の時間内に、前記判定部で予兆があると判定した異常により前記加工機が異常停止した場合には、前記確率閾値を下げる、監視装置。
【請求項５】
請求項２〜４のいずれか１項に記載の監視装置であって、
前記閾値設定部は、前記確率閾値の変更に応じて前記時間を変更する、監視装置。
【請求項６】
請求項１〜５のいずれか１項に記載の監視装置であって、
前記判定部で異常の予兆があると判定された場合に、前記判定部で判定された異常により前記加工機が異常停止になる可能性があることを通知する通知部を備える、監視装置。
【請求項７】
請求項１〜６のいずれか１項に記載の監視装置であって、
前記加工機が異常停止したときに、異常停止時の前記加工サイクルの直前の前記加工サイクルにおいて前記分布生成部が生成した前記実行時間分布を示す情報を、前記異常情報として前記記憶部に記憶させる記憶制御部を備える、監視装置。
【請求項８】
請求項１〜７のいずれか１項に記載の監視装置であって、
前記実行時間分布を示す情報は、正常の前記実行時間分布と前記分布生成部が生成した前記実行時間分布との分布差であり、前記異常情報は、正常の前記実行時間分布と異常の前記実行時間分布との分布差である、監視装置。
【請求項９】
請求項１〜８のいずれか１項に記載の監視装置と、複数の前記加工機と、複数の前記加工機の各々を制御する複数の制御装置と、複数の前記制御装置を管理する管理サーバと、を備える、監視システム。
【請求項１０】
加工機を制御する制御装置の加工サイクルにおいて繰り返し実行される少なくとも１種類のプログラムの処理時間を監視する監視方法であって、
前記プログラムの実行時間の度数分布である実行時間分布を生成する分布生成ステップと、
前記分布生成ステップで生成された前記実行時間分布を示す情報と、記憶部に記憶された異常の前記実行時間分布を示す少なくとも１つの異常情報とに基づいて、異常の発生確率を演算する演算ステップと、
前記異常情報に対して確率閾値を設定する閾値設定ステップと、
前記発生確率が所定の前記確率閾値以上である場合に、異常の予兆があると判定する判定ステップと、
を含む監視方法。
【請求項１１】
請求項１０に記載の監視方法であって、
前記判定ステップで異常の予兆があると判定されたときを契機として所定の時間内に、前記判定ステップで予兆があると判定した異常により前記加工機が異常停止しなかった場合には、前記確率閾値を上げる閾値上昇ステップを含む、監視方法。
【請求項１２】
請求項１１に記載の監視方法であって、
前記閾値上昇ステップは、前記確率閾値が規定値以上となったときには、前記確率閾値に対応する前記異常情報を前記記憶部から削除する、監視方法。
【請求項１３】
請求項１０〜１２のいずれか１項に記載の監視方法であって、
前記判定ステップで異常の予兆があると判定されたときを契機として所定の時間内に、前記判定ステップで予兆があると判定した異常により前記加工機が異常停止した場合には、前記確率閾値を下げる閾値下降ステップを含む、監視方法。
【請求項１４】
請求項１０〜１３のいずれか１項に記載の監視方法であって、
前記判定ステップで異常の予兆があると判定された場合に、前記判定ステップで判定された異常により前記加工機が異常停止になる可能性があることを通知する通知ステップを含む、監視方法。
【請求項１５】
請求項１０〜１４のいずれか１項に記載の監視方法であって、
前記加工機が異常停止したときに、異常停止時の前記加工サイクルの直前の前記加工サイクルにおいて生成された前記実行時間分布を示す情報を、前記異常情報として前記記憶部に記憶させる記憶制御ステップを含む、監視方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、加工機の加工サイクルにおいて繰り返し実行される少なくとも１つのプログラムの処理時間を監視する監視装置、監視システムおよび監視方法に関する。
【背景技術】
【０００２】
加工機では、異常の兆候を捉えるために、加工機から得られる情報を監視する場合がある。下記の特許文献１には、主軸モータが惰性走行を開始してから停止するまでの主軸停止時間を計測して記憶部に記憶し、記憶部に記憶された主軸停止時間に関する複数のデータを比較し、該比較の結果に基づいて主軸または主軸モータの異常の有無を判断する技術が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１６−２１５３１１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかし、上記の特許文献１の技術では、主軸モータが惰性走行を開始してから停止するまでの主軸停止時間から異常の有無が予測されるため、主軸や主軸モータ以外の異常を捉えることができない。
【０００５】
そこで、本発明は、加工機の異常を総合的に捉え得る監視装置、監視システムおよび監視方法を提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明の第１の態様は、加工機を制御する制御装置の加工サイクルにおいて繰り返し実行される少なくとも１種類のプログラムの処理時間を監視する監視装置であって、前記プログラムの実行時間の度数分布である実行時間分布を生成する分布生成部と、異常の前記実行時間分布を示す少なくとも１つの異常情報が記憶される記憶部と、前記分布生成部が生成した前記実行時間分布を示す情報と、前記記憶部に記憶された前記異常情報とに基づいて、異常の発生確率を演算する演算部と、前記異常情報に対して確率閾値を設定する閾値設定部と、前記発生確率が前記確率閾値以上である場合に、異常の予兆があると判定する判定部と、を備える。
【０００７】
本発明の第２の態様は、監視システムであって、上記の監視装置と、複数の前記加工機と、複数の前記加工機の各々を制御する複数の制御装置と、複数の前記制御装置を管理する管理サーバと、を備える。
【０００８】
本発明の第３の態様は、加工機を制御する制御装置の加工サイクルにおいて繰り返し実行される少なくとも１種類のプログラムの処理時間を監視する監視方法であって、前記プログラムの実行時間の度数分布である実行時間分布を生成する分布生成ステップと、前記分布生成ステップで生成された前記実行時間分布を示す情報と、記憶部に記憶された異常の前記実行時間分布を示す少なくとも１つの異常情報とに基づいて、異常の発生確率を演算する演算ステップと、前記異常情報に対して確率閾値を設定する閾値設定ステップと、前記発生確率が所定の前記確率閾値以上である場合に、異常の予兆があると判定する判定ステップと、を含む。
【発明の効果】
【０００９】
本発明によれば、加工サイクル中で繰り返し実行されるプログラムの実行時間の頻度の傾向をもとに、特定の異常にかかわらず、異常の予兆を判定するでき、この結果、加工機の異常を総合的に捉えることができる。
【図面の簡単な説明】
【００１０】
【図１】監視システムの構成を示す模式図である。
【図２】監視装置の構成を示す模式図である。
【図３】実行時間分布の生成の様子を示す概念図である。
【図４】実行時間分布の例を示す図である。
【図５】正常の実行時間分布と異常発生時の直前の実行時間分布とを例示する図である。
【図６】分布生成部の構成例を示す図である。
【図７】分布生成処理の流れを示すフローチャートである。
【図８】異常情報生成処理の流れを示すフローチャートである。
【図９】異常予兆判定処理の流れを示すフローチャートである。
【発明を実施するための形態】
【００１１】
本発明について、好適な実施の形態を掲げ、添付の図面を参照しながら以下、詳細に説明する。
【００１２】
〔実施の形態〕
図１は、監視システム１０の構成を示す模式図である。監視システム１０は、複数の加工機１２と、複数の加工機１２の各々を制御する複数の制御装置１４と、複数の制御装置１４を管理する管理サーバ１６と、管理サーバ１６に組み込まれた監視装置１８と、を備える。複数の制御装置１４と管理サーバ１６とはネットワークを通じて接続される。
【００１３】
複数の加工機１２の各々は、加工対象物を加工する。複数の加工機１２の少なくとも１つの種類が他の加工機１２と異なっていてもよい。なお、加工機１２の種類として、例えば、工作機械や放電加工機などが挙げられる。
【００１４】
複数の制御装置１４の各々は、加工対象物を加工するように、加工サイクル単位で加工機１２を制御する。また、複数の制御装置１４の各々は、加工機１２で異常が発生した場合には、加工機１２を異常停止させ、発生した異常の種類に応じた固有の識別子（以下、アラーム番号と称する）を含む異常通知信号を管理サーバ１６に出力する。
【００１５】
管理サーバ１６は、複数の制御装置１４の各々と各種の信号を授受し、複数の制御装置１４の各々を管理する。管理サーバ１６は、例えば、制御装置１４から取得した信号に基づいて、その制御装置１４が制御する加工機１２の状態を認識し、認識結果に応じて、加工機１２に対して制御装置１４が出力する指令値を補正する。
【００１６】
監視装置１８は、加工サイクルにおいて実行されるプログラムの処理時間を監視するものである。加工サイクルでは、制御装置１４によって、プログラムが連続的または間欠的に繰り返し実行される。１つの加工サイクルにおいて繰り返し実行されるプログラムとしては、複数種類の場合が一般的であるが、１種類の場合もある。プログラムの種類として、例えば、送り軸用のモータの制御プログラム、回転軸用のモータの制御プログラム、付加軸の移動制御プログラム、ストレージへの書き込みプログラム、切削液などの流量制御プログラム、加工槽の温度制御プログラム、工程確認のための画像認識プログラム、外部機器との通信プログラムなどが挙げられる。つまり、加工サイクルでは、少なくとも１種類のプログラムが繰り返し実行される。
【００１７】
監視装置１８は、複数の制御装置１４の各々から取得した信号に基づいて、当該制御装置１４の各々の加工サイクルにおいて実行されるプログラムの処理時間を、プログラムの種類ごとに監視する。
【００１８】
なお、複数の制御装置１４の各々に対する監視装置１８の監視内容は同じであるため、以下では、１つの制御装置１４に対する監視装置１８の監視に関して説明する。また、各種のプログラムに対する監視装置１８の監視内容は同じであるため、以下では、１種類のプログラムに対する監視装置１８の監視に関して説明する。
【００１９】
図２は、監視装置１８の構成を示す模式図である。監視装置１８は、分布生成部２０、記憶部２２、記憶制御部２４、演算部２６、判定部２８、通知部３０および閾値設定部３２を有する。
【００２０】
記憶部２２はハードウェアであり、分布生成部２０、記憶制御部２４、演算部２６、判定部２８、通知部３０および閾値設定部３２はハードウェアであってもソフトウェアであってもよい。分布生成部２０、記憶制御部２４、演算部２６、判定部２８、通知部３０および閾値設定部３２がソフトウェアである場合、監視装置１８はプロセッサを有し、記憶部２２には監視プログラムが記憶される。プロセッサは監視プログラムを実行することで、監視装置１８は分布生成部２０、記憶制御部２４、演算部２６、判定部２８、通知部３０および閾値設定部３２として機能する。
【００２１】
分布生成部２０は、プログラムの実行時間の度数分布（以下、実行時間分布と称する）を生成するものである。分布生成部２０は、図３に示すように、加工サイクルごとに、制御装置１４が加工サイクル中に連続的または間欠的に繰り返し実行したプログラムの実行時間および回数を計測し、計測結果に基づいて実行時間分布を生成する。
【００２２】
なお、プログラムには、プログラムの種類に応じた固有の識別子（プログラム番号）が割り当てられている。したがって、分布生成部２０は、同じ識別子（プログラム番号）が割り当てられたプログラムの実行時間および回数を計測することで、当該識別子に対応する種類の実行時間分布を生成する。
【００２３】
図４は、実行時間分布の例を示す図である。図４では、縦軸における実行時間の回数が、１つの加工サイクルにおいて同じ識別子（プログラム番号）が割り当てられたプログラムを実行した回数（総数）に対する比率に正規化されているが、正規化されていなくてもよい。分布生成部２０は、実行時間分布を生成することで、図４に例示するように、加工サイクル中で繰り返し実行されるプログラムの実行時間の頻度の傾向を捉えることができる。
【００２４】
なお、分布生成部２０は、実行時間分布を生成した場合、生成した実行時間分布を記憶部２２に記憶し、また生成した実行時間分布を演算部２６に出力する。
【００２５】
記憶部２２は、各種の情報を記憶するためのものである。この記憶部２２として、例えば、ハードディスクや可搬型メモリなどの記憶媒体が挙げられる。この記憶部２２には、正常の実行時間分布が予め記憶される。正常の実行時間分布は、正常に動作しているときの加工サイクル中に実行されたプログラムの実行時間の度数分布であり、プログラムの種類ごとに予め記憶部２２に記憶される。
【００２６】
記憶制御部２４は、異常の実行時間分布を示す異常情報を記憶部２２に記憶させるものである。本実施の形態では、異常の実行時間分布は、異常停止時の直前の加工サイクルにおいて分布生成部２０が生成した実行時間分布であり、異常の実行時間分布を示す情報は、当該分布生成部２０が生成した実行時間分布と正常の実行時間分布との分布差である。
【００２７】
記憶制御部２４は、制御装置１４から異常通知信号を受けると、その異常通知信号を受けたときの加工サイクルよりも１つ前の加工サイクルにおいて分布生成部２０が生成した実行時間分布と、正常の実行時間分布とを記憶部２２から読み出す。記憶制御部２４は、読み出した実行時間分布と、正常の実行時間分布との分布差を演算する。本実施の形態では、記憶制御部２４は、分布差として、記憶部２２から読み出した実行時間分布の平均と、正常の実行時間分布の平均との差（平均値差）を演算する。
【００２８】
具体的には、プログラムの実行時間をｔとし、正常時における実行時間の回数の比率をＰN(ｔ)とし、異常時における実行時間の回数の比率をＰA(ｔ)とし、平均値差をΔＡｖｅｒａｇｅ(ＰN，ＰA)とした場合、記憶制御部２４は、次式を用いて、平均値差を演算することができる。
【００２９】
【数１】
2020170245.tif 000003
【００３０】
記憶制御部２４は、分布差（平均値差）を演算すると、演算した分布差を、異常情報として、制御装置１４から受けた異常通知信号に含まれるアラーム番号に関連付けて記憶部２２記憶させる。
【００３１】
図５は、正常の実行時間分布と異常発生時の直前の実行時間分布とを例示する図である。異常発生時の直前の実行時間分布は、正常の実行時間分布とは異なる。具体的に図５の例では、異常発生時の直前の実行時間分布が正常の実行時間分布よりも紙面右側にシフトしている。この要因として、例えば、加工機１２の工具が摩耗してプログラムの実行時間が増減することなどが挙げられる。また図５の例では、正常の実行時間分布にはなかった分布が異常発生時の直前の実行時間分布に生じている。この要因として、例えば、プログラムの条件分岐などに応じて新たな処理が発生したことなどが挙げられる。
【００３２】
つまり、分布差は、正常の実行時間分布に対する、実際に加工機１２が異常停止する直前に分布生成部２０で生成された実行時間分布の変化量であり、異常の特徴的な兆候を示している。記憶制御部２４は、上記の分布差を異常情報として記憶部２２に記憶させることで、加工機１２が実際に異常停止するたびに、その異常が生じたときの特徴的な兆候を捉えることができる。
【００３３】
演算部２６は、分布生成部２０が生成した実行時間分布を示す情報と、記憶部２２に記憶された異常情報とに基づいて、異常の発生確率を演算するものである。演算部２６は、分布生成部２０から出力される実行時間分布を取得するたびに、異常の発生確率を演算する。
【００３４】
すなわち、演算部２６は、分布生成部２０から出力される実行時間分布を取得すると、正常の実行時間分布を記憶部２２から読み出し、読み出した正常の実行時間分布と、分布生成部２０から取得した実行時間分布との分布差を演算する。
【００３５】
また、演算部２６は、分布生成部２０から実行時間分布を取得したときに記憶部２２に記憶されたすべての異常情報（分布差）を読み出す。ここで、記憶部２２から読み出した異常情報が１つである場合、演算部２６は、１つの異常情報（分布差）と、分布生成部２０から取得した実行時間分布と正常の実行時間分布との分布差との差分を演算する。演算部２６は、差分を演算すると、演算した差分に対して所定の係数（影響度）を乗算し、その乗算結果をランプ関数に代入することにより得た値を、１つの異常情報に対する異常の発生確率とする。
【００３６】
これに対し、記憶部２２から読み出した異常情報が複数である場合、演算部２６は、異常情報ごとに上記の差分を演算する。演算部２６は、各差分を演算すると、演算した差分の各々に対して所定の係数（影響度）を乗算した後に加算し、その加算結果をランプ関数に代入することにより得た値を、複数の異常情報の各々に対する異常の発生確率とする。
【００３７】
具体的には、アラーム番号をｊとし、当該アラーム番号に関連付けられて記憶部２２に記憶された異常情報（分布差）の数をＮとし、当該異常情報（分布差）をｎとし、上記の影響度をＡ(ｊ，ｎ)とし、上記の差分をΔＤｉｓｔａｎｃｅ(ｊ，ｎ)とし、異常の発生確率をＡＬＡＲＭｊとした場合、演算部２６は、次式を用いて、少なくとも１つの異常情報に対する異常の発生確率を演算することができる。
【００３８】
【数２】
2020170245.tif 000004
【００３９】
演算部２６は、少なくとも１つの異常情報に対する異常の発生確率を演算すると、演算した発生確率を判定部２８に出力する。
【００４０】
判定部２８は、演算部２６が演算した発生確率に基づいて、異常の予兆があるか否かを判定するものである。判定部２８は、演算部２６から出力される異常情報に対する発生確率を取得すると、その発生確率と、異常情報に対して閾値設定部３２で設定された確率閾値とを比較する。
【００４１】
判定部２８は、発生確率が確率閾値未満である比較結果を得た場合には、異常の予兆がないと判定する。一方、判定部２８は、発生確率が確率閾値以上である比較結果を得た場合には、異常の予兆があると判定する。具体的には、判定部２８は、確率閾値以上であった発生確率に対応する異常情報に関連付けられているアラーム番号の異常の予兆があると判定する。
【００４２】
なお、演算部２６が複数の異常情報に対する発生確率を演算した場合、判定部２８は、複数の異常情報ごとに、異常情報に対する発生確率と、異常情報に対して設定された確率閾値とを比較する。
【００４３】
判定部２８は、各々の発生確率が確率閾値未満である比較結果を得た場合には、異常の予兆がないと判定する。一方、判定部２８は、各々の発生確率の１つでも確率閾値以上である場合に、確率閾値以上であった発生確率に対応する異常情報に関連付けられているアラーム番号の異常の予兆があると判定する。
【００４４】
判定部２８は、異常の予兆があると判定したときには、その判定結果を通知部３０および閾値設定部３２に出力する。判定部２８は、具体的には、判定したアラーム番号の異常の予兆があることを示す判定結果信号を生成し、生成した判定結果信号を通知部３０および閾値設定部３２に出力する。
【００４５】
通知部３０は、判定部２８で判定された異常により加工機１２が異常停止になる可能性があることを通知するものである。通知部３０は、判定部２８から出力される判定結果信号を取得すると、その判定結果信号に基づいて、例えば、アラーム番号と、異常停止になる可能性がある旨の警告メッセージとを通知する。
【００４６】
通知部３０は、異常停止になる可能性があることを通知することで、オペレータに対して、加工機１２の異常停止に注意すべきことを喚起させることができる。また、通知部３０は、アラーム番号を通知することで、オペレータに対して、どのような異常により異常停止になる可能性があるかを把握させることができる。
【００４７】
なお、表示部、スピーカおよび発光部の少なくとも１つが監視装置１８に備えられている場合、通知部３０は、表示部、スピーカおよび発光部の少なくとも１つを用いて、判定部２８で判定された異常により加工機１２が異常停止になる可能性があることを通知してもよい。また、表示部、スピーカおよび発光部の少なくとも１つを備えた外部装置が監視装置１８に接続される場合、通知部３０は、その外部装置に作動信号を送信することで、判定部２８で判定された異常により加工機１２が異常停止になる可能性があることを通知してもよい。
【００４８】
閾値設定部３２は、異常情報に対して確率閾値を設定するものである。閾値設定部３２は、判定部２８から出力される判定結果信号を取得すると、その判定結果信号に基づいて異常の予兆があると判定されたアラーム番号を認識し、認識したアラーム番号に関連付けられた異常情報に対して確率閾値を設定する。
【００４９】
また閾値設定部３２は、判定部２８で異常の予兆があると判定されたときを契機として所定の時間内に、判定部２８で予兆があると判定した異常により加工機１２が異常停止したか否かを判定する。
【００５０】
すなわち、閾値設定部３２は、判定部２８から出力される判定結果信号を取得してから所定の時間内に、制御装置１４から異常通知信号を受けなかった場合に、判定部２８で予兆があると判定した異常により加工機１２が異常停止していないと判定する。この場合、閾値設定部３２は、異常情報に対して既に設定した確率閾値を上げる。これにより、判定部２８の誤判定を低減することができる。
【００５１】
なお、確率閾値が上がり過ぎると、その確率閾値に対応する異常情報に関する異常の予兆が判定し難くなり、また異常情報の信頼性が疑わしい傾向になる。そこで、閾値設定部３２は、確率閾値が規定値以上となったときには、既定値以上となった確率閾値に対応する異常情報を記憶部２２から削除する。これにより、判定部２８の誤判定を抑制することができる。
【００５２】
一方、閾値設定部３２は、判定部２８から出力される判定結果信号を取得してから所定の時間内に、制御装置１４から異常通知信号を受けた場合、判定部２８で予兆があると判定した異常により加工機１２が異常停止しているか確認する。具体的には、閾値設定部３２は、異常通知信号に含まれるアラーム番号と、判定部２８から出力される判定結果信号に基づいて認識した異常の予兆があると判定されたアラーム番号とが一致するか確認する。一致する場合には、判定部２８で予兆があると判定した異常により加工機１２が異常停止していることになる。この場合、閾値設定部３２は、異常情報に対して既に設定した確率閾値を下げる。これにより、実際に発生した異常の予兆を捉え易くできる。
【００５３】
なお、異常通知信号に含まれるアラーム番号と、判定部２８から出力される判定結果信号に基づいて認識した異常の予兆があると判定されたアラーム番号とが一致しない場合には、判定部２８で予兆があると判定した異常とは別の異常により加工機１２が異常停止していることになる。この場合、閾値設定部３２は、既に設定した確率閾値を変更することなく、新たに確立閾値を設定する。つまり、閾値設定部３２は、上記のように、判定部２８から出力される判定結果信号に基づいてアラーム番号を認識し、認識したアラーム番号に関連付けられた異常情報に対して確率閾値を設定する。
【００５４】
次に、分布生成部２０の具体的な構成例について説明する。図６は、分布生成部２０の構成例を示す図である。分布生成部２０は、一時記憶メモリ２０Ａ、コントローラ２０Ｂおよび時計２０Ｃを有する。
【００５５】
一時記憶メモリ２０Ａには、サイクル番号およびプログラム番号が記憶される。なお、サイクル番号は、制御装置１４における加工サイクルと同期して制御装置１４により生成され、制御装置１４から出力される。また、プログラム番号は、制御装置１４において実行されるプログラムと同期して制御装置１４により生成され、制御装置１４から出力される。
【００５６】
コントローラ２０Ｂは、一時記憶メモリ２０Ａに記憶されるサイクル番号およびプログラム番号と、時計２０Ｃとを用いて、加工サイクルごとに、制御装置１４が加工サイクル中に繰り返し実行したプログラムの実行時間および回数を計測する。コントローラ２０Ｂは、１つの加工サイクルが終了すると、その加工サイクル中に計数したプログラムの実行時間および回数に基づいて実行時間分布を生成し、生成した実行時間分布を記憶部２２に記憶する。
【００５７】
次に、監視装置１８の監視方法に関し、監視装置１８の分布生成処理を説明する。この分布生成処理は、制御装置１４が加工対象物に対して所望の形状に加工する制御を開始してから終了するまで実行される。図７は、分布生成処理の流れを示すフローチャートである。
【００５８】
ステップＳ１において、分布生成部２０は、制御装置１４において実行されるプログラムの実行時間および回数を計測し、ステップＳ２に進んで、１つの加工サイクルが終了したか否かを判定する。ここで、分布生成部２０は、１つの加工サイクルが終了していないと判定した場合には、ステップＳ１に戻り、当該加工サイクルが終了したと判定した場合には、ステップＳ３に進む。
【００５９】
ステップＳ３において、分布生成部２０は、ステップＳ１で計測したプログラムの実行時間および回数に基づいて実行時間分布を生成し、ステップＳ４に進んで、生成した実行時間分布を記憶部２２に記憶した後、ステップＳ１に戻る。
【００６０】
次に、監視装置１８の監視方法に関し、監視装置１８の異常情報生成処理を説明する。この異常生成処理は、上記の分布生成処理と並行して実行される。図８は、異常情報生成処理の流れを示すフローチャートである。
【００６１】
ステップＳ１１において、記憶制御部２４は、加工機１２が異常停止した否かを判定する。ここで、記憶制御部２４は、制御装置１４から異常通知信号を受けていない場合には、加工機１２が異常停止していないと判定し、ステップＳ１１に戻る。これに対し、記憶制御部２４は、制御装置１４から異常通知信号を受けた場合には、加工機１２が異常停止したと判定し、ステップＳ１２に進む。
【００６２】
ステップＳ１２において、記憶制御部２４は、ステップＳ１１で異常通知信号を受けたときの加工サイクルよりも１つ前の加工サイクルにおいて生成された実行時間分布と、正常の実行時間分布とを記憶部２２から読み出すことにより取得し、ステップＳ１３に進む。ステップＳ１３において、記憶制御部２４は、ステップＳ１２で読み出した実行時間分布と、正常の実行時間分布との分布差（平均値差）を演算し、ステップＳ１４に進む。
【００６３】
ステップＳ１４において、記憶制御部２４は、ステップＳ１３で演算した分布差を異常情報としてアラーム番号に関連付けて記憶部２２に記憶し、ステップＳ１５に進む。ステップＳ１５において、閾値設定部３２は、ステップＳ１４で記憶された異常情報に対して確率閾値を設定し、ステップＳ１１に戻る。
【００６４】
次に、監視装置１８の監視方法に関し、監視装置１８の異常予兆判定処理を説明する。この異常情報予兆判定処理は、記憶部２２に少なくとも１つの異常情報が記憶された以降に、上記の分布生成処理および異常情報生成処理と並行して実行される。図９は、異常予兆判定処理の流れを示すフローチャートである。
【００６５】
ステップＳ２１において、演算部２６は、上記の分布生成処理のステップＳ３で実行時間分布が生成されたか否かを判定する。ここで、演算部２６は、実行時間分布が生成されていない場合にはステップＳ２１に戻り、当該実行時間分布が生成された場合にはステップＳ２２に進む。
【００６６】
ステップＳ２２において、演算部２６は、記憶部２２に記憶された少なくとも１つの異常情報のすべてを読み出す。また、演算部２６は、記憶部２２から読み出した異常情報と、上記の分布生成処理のステップＳ３で生成された実行時間分布とに基づいて、記憶部２２から読み出した異常情報に対する異常の発生確率を演算し、ステップＳ２３に進む。
【００６７】
ステップＳ２３において、判定部２８は、ステップＳ２２で演算された少なくとも１つの異常情報に対する異常の発生確率を、当該異常情報に対して設定された確率閾値と比較する。なお、この確率閾値は、上記の異常情報生成処理のステップＳ１５で設定されたものである。
【００６８】
ここで、１または複数の異常情報に対する異常の発生確率のすべてが確率閾値未満である場合、判定部２８は、異常の予兆がないと判定し、ステップＳ２１に戻る。これに対し、１または複数の異常情報に対する異常の発生確率の少なくとも１つが確率閾値以上である場合、判定部２８は、確率閾値以上であった発生確率に対応する異常情報に関連付けられているアラーム番号の異常の予兆があると判定し、ステップＳ２４に進む。
【００６９】
ステップＳ２４において、通知部３０は、ステップＳ２３で判定された異常により加工機１２が異常停止になる可能性があることを通知し、ステップＳ２５に進む。ステップＳ２５において、閾値設定部３２は、ステップＳ２３で予兆があると判定した異常により加工機１２が異常停止したか否かを判定する。
【００７０】
閾値設定部３２は、制御装置１４から異常通知信号を受けていない場合には、加工機１２が異常停止していないと判定し、ステップＳ２６に進んで、ステップＳ２３での判定を契機として所定の時間を経過したか否かを判定する。
【００７１】
ここで、閾値設定部３２は、ステップＳ２３での判定を契機として所定の時間を経過するまでに、制御装置１４から異常通知信号を受けなかった場合には、ステップＳ２７に進む。ステップＳ２７において、閾値設定部３２は、ステップＳ２３で異常の予兆があると判定されたときに用いられた確率閾値を上げ、ステップＳ２１に戻る。
【００７２】
これに対して、閾値設定部３２は、ステップＳ２３での判定を契機として所定の時間を経過するまでに、制御装置１４から異常通知信号を受けた場合には、ステップＳ２８に進む。ステップＳ２８において、閾値設定部３２は、ステップＳ２３で異常の予兆があると判定されたときに用いられた確率閾値を下げ、ステップＳ２１に戻る。
【００７３】
〔変形例〕
以上、本発明の一例として上記の実施の形態が説明されたが、本発明の技術的範囲は上記の実施の形態に記載の範囲には限定されない。上記の実施の形態に、多様な変更または改良を加えることが可能であることはもちろんである。その様な変更または改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。
【００７４】
（変形例１）
上記の実施の形態では、記憶制御部２４は、記憶部２２から読み出した実行時間分布と、正常の実行時間分布との分布差として平均値差を演算した。しかし、記憶制御部２４は、記憶部２２から読み出した実行時間分布と、正常の実行時間分布との分布差を求めるものであれば、平均値差以外であってもよい。
【００７５】
なお、分布差として、例えば、中央値差、分散値差、差分面積または不一致ピーク数
がある。中央値差は、記憶部２２から読み出した実行時間分布の時間軸上の中心と、正常の実行時間分布の時間軸上の中心との差である。分散値差は、記憶部２２から読み出した実行時間分布の分散値と、正常の実行時間分布の分散値との差である。差分面積は、記憶部２２から読み出した実行時間分布の頻度と、正常の実行時間分布の頻度との差を面積としたものである。不一致ピーク数は、記憶部２２から読み出した実行時間分布の各ピークと、当該ピークに対応する正常の実行時間分布の各ピークが一致しない数である。
【００７６】
具体的には、上記の実施の形態と同様に、実行時間をｔとし、正常時における実行時間の回数の比率をＰN(ｔ)とし、異常時における実行時間の回数の比率をＰA(ｔ)とした場合、中央値差、分散値差、差分面積および不一致ピーク数の各々は、次のようにして求めることができる。
【００７７】
すなわち、中央値差をΔＣｅｎｔｅｒ(ＰN，ＰA)とした場合、記憶制御部２４は、次式を用いて、中央値差を求めることができる。
【００７８】
【数３】
2020170245.tif 000005
【００７９】
また、分散値差をΔｖａｒｉａｎｃｅ(ＰN，ＰA)とした場合、記憶制御部２４は、次式を用いて、分散値差を求めることができる。
【００８０】
【数４】
2020170245.tif 000006
【００８１】
また、差分面積をΔａｒｅａ(ＰN，ＰA)とした場合、記憶制御部２４は、次式を用いて、差分面積を求めることができる。
【００８２】
【数５】
2020170245.tif 000007
【００８３】
また、不一致ピーク数をΔｐｅａｋ＿ｃｏｕｎｔ(ＰN，ＰA)とした場合、記憶制御部２４は、次式を用いて、不一致ピーク数を求めることができる。
【００８４】
【数６】
2020170245.tif 000008
【００８５】
なお、記憶制御部２４は、平均値差、中央値差、分散値差、差分面積および不一致ピーク数の少なくとも２つを用いて正規化した値を、分布差として求めてもよい。
【００８６】
例えば、平均値差に対して設定される重み係数をｋ1とし、中央値差に対して設定される重み係数をｋ2とし、分散値差に対して設定される重み係数をｋ3とし、差分面積に対して設定される重み係数をｋ4とし、不一致ピーク数に対して設定される重み係数をｋ5とした場合、記憶制御部２４は、次式を用いて、分布差Ｄｉｓｔａｎｃｅを求めることができる。
【００８７】
【数７】
2020170245.tif 000009
【００８８】
（変形例２）
上記の実施の形態では、記憶制御部２４が異常情報を生成した。しかし、監視装置１８以外の他の装置が異常情報を生成してもよい。なお、他の装置が異常情報を生成する場合、当該異常情報が予め記憶部２２に記憶され、記憶制御部２４はなくなる。
【００８９】
（変形例３）
上記の実施の形態では、異常停止時の直前の加工サイクルにおける実行時間分布と正常の実行時間分布との分布差が、異常情報として記憶部２２に記憶された。しかし、異常停止時の直前の加工サイクルにおける実行時間分布そのものが異常情報として記憶部２２に記憶されてもよい。この場合、演算部２６は、記憶部２２に異常情報として記憶された実行時間分布と、分布生成部２０が生成した実行時間分布との分布差を、異常の発生確率として演算してもよい。
【００９０】
（変形例４）
上記の実施の形態では、演算部２６は、記憶部２２に異常情報として記憶された異常情報（分布差）と、分布生成部２０が生成した実行時間分布と正常の実行時間分布との分布差との差分を演算し、演算した差分を正規化することで発生確率を演算した。具体的には、演算部２６は、演算した差分に対して係数（影響度）を乗算した後にランプ関数に代入することにより得た値を発生確率とした。しかし、演算部２６は、記憶部２２に異常情報として記憶された異常情報（分布差）と、分布生成部２０が生成した実行時間分布と正常の実行時間分布との分布差との差分を、発生確率としてもよい。
【００９１】
（変形例５）
上記の実施の形態では、閾値設定部３２は、判定部２８の判定を契機として所定の時間内に、判定部２８で予兆があると判定した異常により加工機１２が異常停止したか否かに応じて確率閾値を変更した。しかし、閾値設定部３２は、判定部２８の判定を契機として所定の時間内に、判定部２８で予兆があると判定した異常により加工機１２が異常停止したときのみ確率閾値を変更するようにしてもよい。
【００９２】
また、閾値設定部３２は、判定部２８の判定を契機として所定の時間内に、判定部２８で予兆があると判定した異常により加工機１２が異常停止しなかったときのみ確率閾値を変更するようにしてもよい。さらに、閾値設定部３２は、判定部２８の判定を契機として所定の時間内に、判定部２８で予兆があると判定した異常により加工機１２が異常停止したか否かにかかわらず、確率閾値を変更しなくてもよい。
【００９３】
（変形例６）
上記の実施の形態では、閾値設定部３２は、判定部２８の判定を契機として所定の時間内に、判定部２８で予兆があると判定した異常により加工機１２が異常停止したか否かに応じて確率閾値を変更した。閾値設定部３２は、この確率閾値の変更に応じて、上記の時間を変更してもよい。具体的には、閾値設定部３２は、確率閾値を上げたときには上記の時間を短くし、当該確率閾値を下げたときには上記の時間を長くする。これにより、判定部２８の誤判定をより一段と低減することができる。
【００９４】
（変形例７）
上記の実施の形態では、管理サーバ１６に監視装置１８が組み込まれたが、複数の制御装置１４のうちの１つに監視装置１８が組み込まれてもよい。この場合、監視装置１８が組み込まれた制御装置１４は、ネットワークを介して、他の各々の制御装置１４の加工サイクルにおいて実行されるプログラムの処理時間を監視する。
【００９５】
また、複数の制御装置１４の各々に監視装置１８が組み込まれていてもよい。この場合、各々の監視装置１８は、記憶制御部２４で生成した異常情報と、閾値設定部３２で確率閾値を変更したときの結果とを、ネットワークを介して、管理サーバ１６に蓄積してもよい。このようにすれば、各々の監視装置１８で得られた異常情報および確率閾値を変更したときの結果を共有することができる。
【００９６】
また、複数の制御装置１４の各々に監視装置１８の一部が組み込まれていてもよい。例えば、複数の制御装置１４の各々に分布生成部２０が組み込まれ、記憶部２２、記憶制御部２４、演算部２６、判定部２８、通知部３０および閾値設定部３２が管理サーバ１６に組み込まれる。この場合、管理サーバ１６の処理負荷を低減することができる。
（変形例８）
上記の実施の形態および変形例は、矛盾の生じない範囲で任意に組み合わされてもよい。
【００９７】
〔上記から把握し得る発明〕
上記の実施の形態および変形例から把握し得る発明について、以下に記載する。
【００９８】
＜第１の発明＞
第１の発明は、加工機（１２）を制御する制御装置（１４）の加工サイクルにおいて繰り返し実行される少なくとも１種類のプログラムの処理時間を監視する監視装置（１８）である。この監視装置（１８）は、プログラムの実行時間の度数分布である実行時間分布を生成する分布生成部（２０）と、異常の実行時間分布を示す少なくとも１つの異常情報が記憶される記憶部（２２）と、分布生成部（２０）が生成した実行時間分布を示す情報と、記憶部（２２）に記憶された異常情報とに基づいて、異常の発生確率を演算する演算部（２６）と、異常情報に対して確率閾値を設定する閾値設定部（３２）と、発生確率が確率閾値以上である場合に、異常の予兆があると判定する判定部（２８）と、を備える。
【００９９】
これにより、加工サイクル中で繰り返し実行されるプログラムの実行時間の頻度の傾向から、特定の異常にかかわらず異常の予兆を判定するでき、この結果、加工機（１２）の異常を総合的に捉えることができる。
【０１００】
閾値設定部（３２）は、判定部（２８）で異常の予兆があると判定されたときを契機として所定の時間内に、判定部（２８）で予兆があると判定した異常により加工機（１２）が異常停止しなかった場合には、確率閾値を上げてもよい。これにより、判定部（２８）の誤判定を低減することができる。
【０１０１】
閾値設定部（３２）は、確率閾値が規定値以上となったときには、確率閾値に対応する異常情報を記憶部（２２）から削除してもよい。これにより、判定部（２８）の誤判定を抑制することができる。
【０１０２】
閾値設定部（３２）は、判定部（２８）で異常の予兆があると判定されたときを契機として所定の時間内に、判定部（２８）で予兆があると判定した異常により加工機（１２）が異常停止した場合には、確率閾値を下げてもよい。これにより、実際に発生した異常の予兆を捉え易くできる。
【０１０３】
閾値設定部（３２）は、確率閾値の変更に応じて時間を変更してもよい。これにより、判定部（２８）の誤判定をより一段と低減することができる。
【０１０４】
判定部（２８）で異常の予兆があると判定された場合に、判定部（２８）で判定された異常により加工機（１２）が異常停止になる可能性があることを通知する通知部（３０）を備えてもよい。これにより、オペレータに対して、加工機（１２）の異常停止に注意すべきことを喚起させることができる。
【０１０５】
加工機（１２）が異常停止したときに、異常停止時の加工サイクルの直前の加工サイクルにおいて分布生成部（２０）が生成した実行時間分布を示す情報を、異常情報として記憶部（２２）に記憶させる記憶制御部（２４）を備えてもよい。これにより、加工機（１２）で実際に異常が生じるたびに、その異常が生じたときの特徴的な兆候を捉えることができる。
【０１０６】
実行時間分布を示す情報は、正常の実行時間分布と分布生成部（２０）が生成した実行時間分布との分布差であり、異常情報は、正常の実行時間分布と異常の実行時間分布との分布差であってもよい。これにより、当該情報が度数分布自体である場合に比べて、当該情報に対する演算部（２６）での演算負荷を低減することができ、また、記憶部（２２）に対する当該情報の記憶容量を低減することができる。
【０１０７】
＜第２の発明＞
第２の発明は、監視システム（１０）であって、上記の監視装置（１８）と、複数の加工機（１２）と、複数の加工機（１２）の各々を制御する複数の制御装置（１４）と、複数の制御装置（１４）を管理する管理サーバ（１６）とを備える。
【０１０８】
上記の監視装置（１８）が備えられることで、加工サイクル中で繰り返し実行されるプログラムの実行時間の頻度の傾向から、特定の異常にかかわらず異常の予兆を判定するでき、この結果、加工機（１２）の異常を総合的に捉えることができる。
【０１０９】
＜第３の発明＞
第３の発明は、加工機（１２）を制御する制御装置（１４）の加工サイクルにおいて繰り返し実行される少なくとも１種類のプログラムの処理時間を監視する監視方法であって、プログラムの実行時間の度数分布である実行時間分布を生成する分布生成ステップ（Ｓ３）と、分布生成ステップ（Ｓ３）で生成された実行時間分布を示す情報と、記憶部（２２）に記憶された異常の実行時間分布を示す少なくとも１つの異常情報とに基づいて、異常の発生確率を演算する演算ステップ（Ｓ１３）と、異常情報に対して確率閾値を設定する閾値設定ステップ（Ｓ１５）と、発生確率が所定の確率閾値以上である場合に、異常の予兆があると判定する判定ステップ（Ｓ２３）と、を含む。
【０１１０】
これにより、加工サイクル中で繰り返し実行されるプログラムの実行時間の頻度の傾向から、特定の異常にかかわらず異常の予兆を判定するでき、この結果、加工機（１２）の異常を総合的に捉えることができる。
【０１１１】
判定ステップ（Ｓ２３）で異常の予兆があると判定されたときを契機として所定の時間内に、判定ステップ（Ｓ２３）で予兆があると判定した異常により加工機（１２）が異常停止しなかった場合には、確率閾値を上げる閾値上昇ステップ（Ｓ２７）を含んでもよい。これにより、誤判定を低減することができる。
【０１１２】
閾値上昇ステップ（Ｓ２７）は、確率閾値が規定値以上となったときには、確率閾値に対応する異常情報を記憶部（２２）から削除してもよい。これにより、誤判定を抑制することができる。
【０１１３】
判定ステップ（Ｓ２３）で異常の予兆があると判定されたときを契機として所定の時間内に、判定ステップ（Ｓ２３）で予兆があると判定した異常により加工機（１２）が異常停止した場合には、確率閾値を下げる閾値下降ステップ（Ｓ２８）を含んでもよい。これにより、実際に発生した異常の予兆を捉え易くできる。
【０１１４】
判定ステップ（Ｓ２３）で異常の予兆があると判定された場合に、判定ステップ（Ｓ２３）で判定された異常により加工機（１２）が異常停止になる可能性があることを通知する通知ステップ（Ｓ２４）を含んでもよい。これにより、オペレータに対して、加工機（１２）の異常停止に注意すべきことを喚起させることができる。
【０１１５】
加工機（１２）が異常停止したときに、異常停止時の加工サイクルの直前の加工サイクルにおいて生成された実行時間分布を示す情報を、異常情報として記憶部（２２）に記憶させる記憶制御ステップ（Ｓ１４）を含んでもよい。これにより、加工機（１２）で実際に異常が生じるたびに、その異常が生じたときの特徴的な兆候を捉えることができる。
【符号の説明】
【０１１６】
１０…監視システム                      １２…加工機
１４…制御装置                          １６…管理サーバ
１８…監視装置                          ２０…分布生成部
２２…記憶部                            ２４…記憶制御部
２６…演算部                            ２８…判定部
３０…通知部                            ３２…閾値設定部
【図１】
2020170245.tif 000010
【図２】
2020170245.tif 000011
【図３】
2020170245.tif 000012
【図４】
2020170245.tif 000013
【図５】
2020170245.tif 000014
【図６】
2020170245.tif 000015
【図７】
2020170245.tif 000016
【図８】
2020170245.tif 000017
【図９】
2020170245.tif 000018