(57)【要約】【課題】産業機器で所定の事象が発生した原因の解析を支援する。【解決手段】産業機器管理システム（１）の収集部（１０２）は、産業機器（２１，２２）において変更可能な設定データを収集する。変更判定部（１０３）は、複数の時点の各々における設定データに基づいて、設定データが変更されたか否かを判定する。取得部（１０４）は、設定データが変更されたと判定された場合に、設定データの変更に関する変更情報を取得する。事象判定部（１０５）は、産業機器（２１，２２）において所定の事象が発生したか否かを判定する。特定部（１０６）は、事象が発生したと判定された場合に、事象に関連する前記変更情報を特定する。出力部（１０７）は、特定された変更情報を出力する。【選択図】図５
2020119428.tif 000002
【特許請求の範囲】
【請求項１】
産業機器において変更可能な設定データを収集する収集部と、
複数の時点の各々における前記設定データに基づいて、前記設定データが変更されたか否かを判定する変更判定部と、
前記設定データが変更されたと判定された場合に、前記設定データの変更に関する変更情報を取得する取得部と、
前記産業機器において所定の事象が発生したか否かを判定する事象判定部と、
前記事象が発生したと判定された場合に、前記事象に関連する前記変更情報を特定する特定部と、
前記特定された変更情報を出力する出力部と、
を有する産業機器管理システム。
【請求項２】
前記設定データが変更されたと判定された場合に、前記設定データの変更内容に関する変更内容情報を、前記変更情報として取得する内容取得部と、
前記事象が発生したと判定された場合に、前記事象に関連する前記変更内容情報を特定する内容特定部と、
前記特定された変更内容情報を出力する内容出力部と、
を有する請求項１に記載の産業機器管理システム。
【請求項３】
前記産業機器においては、複数種類の前記設定データが変更可能であり、
前記設定データが変更されたと判定された場合に、変更された前記設定データの種類に関する変更種類情報を、前記変更情報として取得する変更種類取得部と、
前記事象が発生したと判定された場合に、前記事象に関連する前記変更種類情報を特定する変更種類特定部と、
前記特定された変更種類情報を出力する種類出力部と、
を有する請求項１又は２に記載の産業機器管理システム。
【請求項４】
前記産業機器においてアラームが発生したか否かを、前記事象として判定するアラーム判定部と、
前記アラームが発生したと判定された場合に、前記アラームに関連する前記変更情報を特定するアラーム関連特定部と、
を有する請求項１〜３の何れかに記載の産業機器管理システム。
【請求項５】
前記産業機器においては、複数種類の前記設定データが変更可能であり、かつ、複数種類の前記事象が発生可能であり、
前記複数種類の事象の何れかの事象が発生したと判定された場合に、当該事象の種類に関連する種類の前記設定データの前記変更情報を特定する関連種類特定部と、
を有する請求項１〜４の何れかに記載の産業機器管理システム。
【請求項６】
前記事象の種類ごとに、ユーザにより指定された前記設定データの種類を登録する登録部と、
前記複数種類の事象の何れかの事象が発生したと判定された場合に、前記登録部の登録内容に基づいて、当該事象の種類に関連する種類の前記設定データの変更情報を特定する登録種類特定部と、
を有する請求項５に記載の産業機器管理システム。
【請求項７】
前記複数種類の事象の何れかの事象が発生したと判定された場合に、当該事象の種類に関連付けて、少なくとも直近に変更された前記設定データの種類を記録する記録部と、
前記記録部による記録が行われた後に、前記複数種類の事象の何れかの事象が発生したと判定された場合に、前記記録部の記録内容に基づいて、当該事象の種類に関連する種類の前記設定データの変更情報を特定する記録種類特定部と、
を有する請求項５又は６に記載の産業機器管理システム。
【請求項８】
前記事象が発生したと判定された場合に、前記産業機器の役割に基づいて、前記事象に関連する前記変更情報を特定する役割特定部を有する、
請求項１〜７の何れかに記載の産業機器管理システム。
【請求項９】
複数の前記産業機器が同じラインに属しており、
前記複数の産業機器の何れかの産業機器において前記事象が発生したと判定された場合に、他の前記産業機器の前記変更情報を特定する他機器特定部と、
を有する請求項１〜８の何れかに記載の産業機器管理システム。
【請求項１０】
前記収集部により収集された設定データを、バックアップとして記憶する記憶部と、
前記バックアップのために収集された前記設定データに基づいて、前記設定データが変更されたか否かを判定するバックアップ判定部と、
を有する請求項１〜９の何れかに記載の産業機器管理システム。
【請求項１１】
産業機器において変更可能な設定データを収集し、
複数の時点の各々における前記設定データに基づいて、前記設定データが変更されたか否かを判定し、
前記設定データが変更されたと判定された場合に、前記設定データの変更に関する変更情報を取得し、
前記産業機器において所定の事象が発生したか否かを判定し、
前記事象が発生したと判定された場合に、前記事象に関連する前記変更情報を特定し、
前記特定された変更情報を出力する、
産業機器管理方法。
【請求項１２】
産業機器において変更可能な設定データを収集する収集部、
複数の時点の各々における前記設定データに基づいて、前記設定データが変更されたか否かを判定する変更判定部、
前記設定データが変更されたと判定された場合に、前記設定データの変更に関する変更情報を取得する取得部、
前記産業機器において所定の事象が発生したか否かを判定する事象判定部、
前記事象が発生したと判定された場合に、前記事象に関連する前記変更情報を特定する特定部、
前記特定された変更情報を出力する出力部、
としてコンピュータを機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、産業機器管理システム、産業機器管理方法、及びプログラムに関する。
【背景技術】
【０００２】
特許文献１には、産業機器にエンジニアリングツールを接続してパラメータを調整可能とし、バックアップなどの目的で、産業機器からクラウドサーバに対し、調整後のパラメータをアップロードさせるシステムが記載されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開第２０１５−０８７８７９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
本発明が解決しようとする課題は、例えば、産業機器で所定の事象が発生した原因の解析を支援することである。
【課題を解決するための手段】
【０００５】
本発明の一側面に係る産業機器管理システムは、産業機器において変更可能な設定データを収集する収集部と、複数の時点の各々における前記設定データに基づいて、前記設定データが変更されたか否かを判定する変更判定部と、前記設定データが変更されたと判定された場合に、前記設定データの変更に関する変更情報を取得する取得部と、前記産業機器において所定の事象が発生したか否かを判定する事象判定部と、前記事象が発生したと判定された場合に、前記事象に関連する前記変更情報を特定する特定部と、前記特定された変更情報を出力する出力部と、を有する。
【０００６】
本発明の一側面に係る産業機器管理方法は、産業機器において変更可能な設定データを収集し、複数の時点の各々における前記設定データに基づいて、前記設定データが変更されたか否かを判定し、前記設定データが変更されたと判定された場合に、前記設定データの変更に関する変更情報を取得し、前記産業機器において所定の事象が発生したか否かを判定し、前記事象が発生したと判定された場合に、前記事象に関連する前記変更情報を特定し、前記特定された変更情報を出力する。
【０００７】
本発明の一側面に係るプログラムは、産業機器において変更可能な設定データを収集する収集部、複数の時点の各々における前記設定データに基づいて、前記設定データが変更されたか否かを判定する変更判定部、前記設定データが変更されたと判定された場合に、前記設定データの変更に関する変更情報を取得する取得部、前記産業機器において所定の事象が発生したか否かを判定する事象判定部、前記事象が発生したと判定された場合に、前記事象に関連する前記変更情報を特定する特定部、前記特定された変更情報を出力する出力部、としてコンピュータを機能させる。
【０００８】
本発明の一側面によれば、前記設定データが変更されたと判定された場合に、前記設定データの変更内容に関する変更内容情報を、前記変更情報として取得する内容取得部と、前記事象が発生したと判定された場合に、前記事象に関連する前記変更内容情報を特定する内容特定部と、前記特定された変更内容情報を出力する内容出力部と、を有する。
【０００９】
本発明の一側面によれば、前記産業機器においては、複数種類の前記設定データが変更可能であり、前記設定データが変更されたと判定された場合に、変更された前記設定データの種類に関する変更種類情報を、前記変更情報として取得する変更種類取得部と、前記事象が発生したと判定された場合に、前記事象に関連する前記変更種類情報を特定する変更種類特定部と、前記特定された変更種類情報を出力する種類出力部と、を有する。
【００１０】
本発明の一側面によれば、前記産業機器においてアラームが発生したか否かを、前記事象として判定するアラーム判定部と、前記アラームが発生したと判定された場合に、前記アラームに関連する前記変更情報を特定するアラーム関連特定部と、を有する。
【００１１】
本発明の一側面によれば、前記産業機器においては、複数種類の前記設定データが変更可能であり、かつ、複数種類の前記事象が発生可能であり、前記複数種類の事象の何れかの事象が発生したと判定された場合に、当該事象の種類に関連する種類の前記設定データの前記変更情報を特定する関連種類特定部と、を有する。
【００１２】
本発明の一側面によれば、前記事象の種類ごとに、ユーザにより指定された前記設定データの種類を登録する登録部と、前記複数種類の事象の何れかの事象が発生したと判定された場合に、前記登録部の登録内容に基づいて、当該事象の種類に関連する種類の前記設定データの変更情報を特定する登録種類特定部と、を有する。
【００１３】
本発明の一側面によれば、前記複数種類の事象の何れかの事象が発生したと判定された場合に、当該事象の種類に関連付けて、少なくとも直近に変更された前記設定データの種類を記録する記録部と、前記記録部による記録が行われた後に、前記複数種類の事象の何れかの事象が発生したと判定された場合に、前記記録部の記録内容に基づいて、当該事象の種類に関連する種類の前記設定データの変更情報を特定する記録種類特定部と、を有する。
【００１４】
本発明の一側面によれば、前記事象が発生したと判定された場合に、前記産業機器の役割に基づいて、前記事象に関連する前記変更情報を特定する役割特定部を有する。
【００１５】
本発明の一側面によれば、複数の前記産業機器が同じラインに属しており、前記複数の産業機器の何れかの産業機器において前記事象が発生したと判定された場合に、他の前記産業機器の前記変更情報を特定する他機器特定部と、を有する。
【００１６】
本発明の一側面によれば、前記収集部により収集された設定データを、バックアップとして記憶する記憶部と、前記バックアップのために収集された前記設定データに基づいて、前記設定データが変更されたか否かを判定するバックアップ判定部と、を有する。
【発明の効果】
【００１７】
上記発明によれば、例えば、産業機器で所定の事象が発生した原因の解析を支援することができる。
【図面の簡単な説明】
【００１８】
【図１】実施形態に係る産業機器管理システムの全体構成を示す図である。
【図２】登録画面の一例を示す図である。
【図３】アラーム一覧画面の一例を示す図である。
【図４】アラーム詳細画面の一例を示す図である。
【図５】産業機器管理システムで実現される機能を示す機能ブロック図である。
【図６】コントローラデータベースのデータ格納例を示す図である。
【図７】関連性データベースのデータ格納例を示す図である。
【図８】登録処理を示すフロー図である。
【図９】バックアップ処理を示すフロー図である。
【図１０】アラーム発生処理を示すフロー図である。
【図１１】変形例の機能ブロック図である。
【図１２】本変形例の関連性データベースの一例を示す図である。
【発明を実施するための形態】
【００１９】
［１．産業機器管理システムの全体構成］
本発明の発明者の見地によれば、産業機器において、プログラムやパラメータなどの設定データを変更すると、アラームや性能劣化などの所定の事象が発生することがあり、多数の設定データの中からその原因を特定するのは非常に手間がかかる。そこで、本発明の発明者は、産業機器で所定の事象が発生した原因の解析を支援するために鋭意研究開発を行った結果、新規かつ独創的な産業機器管理システム等に想到した。以降、実施形態に係る産業機器管理システム等を詳細に説明する。
【００２０】
図１は、実施形態に係る産業機器管理システムの全体構成を示す図である。図１に示すように、産業機器管理システム１は、管理サーバ１０、ロボットシステム２０、及びユーザ端末３０を含む。管理サーバ１０、ロボットシステム２０、及びユーザ端末３０の各々は、ＬＡＮ又はインターネット等のネットワークに接続される。なお、図１では、管理サーバ１０、ロボットシステム２０、及びユーザ端末３０を１つずつ示しているが、これらは複数あってもよい。
【００２１】
管理サーバ１０は、サーバコンピュータである。なお、パーソナルコンピュータ、携帯電話（スマートフォンを含む）、又は携帯端末（タブレット型端末を含む）がサーバとしての機能を有し、これらのコンピュータにより管理サーバ１０が実現されてもよい。管理サーバ１０は、ＣＰＵ１１、記憶部１２、及び通信部１３を含む。
【００２２】
ＣＰＵ１１は、少なくとも１つのプロセッサを含む。記憶部１２は、ＲＡＭ等の揮発性メモリと、ハードディスク等の不揮発性メモリと、を含み、各種プログラムやデータを記憶する。ＣＰＵ１１は、これらプログラムやデータに基づいて各種処理を実行する。通信部１３は、ネットワークカードや各種通信コネクタ等の通信インタフェースを含み、他の装置との通信を行う。
【００２３】
ロボットシステム２０は、コントローラ２１と、ロボット２２と、を含む。なお、図１では、コントローラ２１とロボット２２を１台ずつ示しているが、これらは複数台あってもよい。例えば、ロボットシステム２０には、複数のコントローラ２１が含まれていてもよいし、１台のコントローラ２１が、複数台のロボット２２を制御してもよい。
【００２４】
コントローラ２１は、ロボット２２を制御するコンピュータである。コントローラ２１は、特定のロボット２２に特化した専用機器であってもよいが、本実施形態では、汎用コンピュータであるものとする。コントローラ２１は、ＣＰＵ、ＲＡＭ、ハードディスク、及び通信インタフェースといったハードウェアを有し、ロボット２２に動作指示を送る。
【００２５】
ロボット２２は、産業用ロボットである。ロボット２２は、汎用の多関節ロボットであってよく、例えば、垂直多関節型、水平多関節型、又はガントリ型といった種々の形式のロボットを適用可能である。ロボット２２のアーム数は、任意であってよく、１本のみのアームであってもよいし、複数本のアームであってもよい。ロボット２２は、任意の用途で使用されてよく、例えば、ガス溶接又はアーク溶接などの溶接、部品の組立、又は、食品などの加工といった種々の目的で使用可能である。
【００２６】
なお、コントローラ２１及びロボット２２は、産業機器の一例である。このため、本実施形態でコントローラ２１又はロボット２２と記載した箇所は、産業機器と読み替えることができる。産業機器管理システム１には、任意のタイプの産業機器を適用可能であり、例えば、産業機器は、モータコントローラ、サーボモータ、インバータ、工作機械、又はＰＬＣ（Ｐｒｏｇｒａｍｍａｂｌｅ  Ｌｏｇｉｃ  Ｃｏｎｔｒｏｌｌｅｒ）であってもよく、産業機器管理システム１では、これらが動作してもよい。
【００２７】
また、ロボットシステム２０には、コントローラ２１とロボット２２以外の機器が含まれていてもよく、例えば、ロボット２２の動作状況を検出するセンサが含まれていてもよい。センサは、任意のセンサを適用可能であり、例えば、トルクセンサ、モータエンコーダ、近接センサ、把持センサ、感圧センサ、モーションセンサ、スパッタリングセンサ、又は温度センサが含まれていてもよい。他にも例えば、ロボットシステム２０には、ロボット２２の動作を撮影するカメラが含まれていてもよいし、データの入出力が可能なＩ／Ｏ機器が含まれていてもよい。
【００２８】
ユーザ端末３０は、ユーザが操作するコンピュータである。本実施形態では、ユーザは、ロボットシステム２０の全体を管理する立場にあり、個々のコントローラ２１及びロボット２２の管理を担当する作業員とは異なるものとするが、個々の作業員がユーザに相当してもよい。例えば、ユーザ端末３０は、パーソナルコンピュータ、携帯電話（スマートフォンを含む）、又は携帯端末（タブレット型端末を含む）である。
【００２９】
例えば、ユーザ端末３０は、ＣＰＵ３１、記憶部３２、通信部３３、操作部３４、及び表示部３５を含む。ＣＰＵ３１、記憶部３２、通信部３３のハードウェア構成は、それぞれＣＰＵ１１、記憶部１２、通信部１３と同様である。操作部３４は、マウスやキーボード等の入力デバイスである。表示部３５は、液晶ディスプレイ又は有機ＥＬディスプレイ等であり、ＣＰＵ３１の指示により各種画面を表示する。
【００３０】
なお、管理サーバ１０、コントローラ２１、及びユーザ端末３０の各々に記憶されるものとして説明するプログラム及びデータは、ネットワークを介して供給されてもよい。また、管理サーバ１０、コントローラ２１、及びユーザ端末３０の各々のハードウェア構成は、上記の例に限られず、種々のハードウェアを適用可能である。例えば、コンピュータ読み取り可能な情報記憶媒体を読み取る読取部（例えば、光ディスクドライブやメモリカードスロット）や外部機器と直接的に接続するための入出力部（例えば、ＵＳＢ端子）が含まれていてもよい。この場合、情報記憶媒体に記憶されたプログラムやデータが読取部又は入出力部を介して供給されてもよい。
【００３１】
［２．産業機器管理システムの概要］
産業機器管理システム１では、コントローラ２１は、自身に記憶された設定データに基づいて、ロボット２２の動作を制御する。設定データとは、ロボット２２の動作に係る設定が格納されたデータであり、例えば、プログラム又はパラメータである。このため、本実施形態でコントローラ２１に記憶されるプログラム又はパラメータについて説明する箇所は、設定データと読み替えることができる。
【００３２】
プログラムは、ジョブ又はタスクと呼ばれることもあり、ロボット２２に対する命令（指令）を示すプログラムコードを含む。プログラムコードには、ロボット２２に対する命令だけでなく、命令を実行する際の変数が含まれもよいし、命令の補足説明であるコメント又はヘッダといった他の情報が含まれてもよい。プログラミング言語自体は、公知の言語を利用可能であり、例えば、Ｃ言語、Ｃ＋＋、Ｊａｖａ（登録商標）、又はＰｙｔｈｏｎといった任意の言語を利用可能である。
【００３３】
例えば、プログラムコードには、ロボット２２の動作が定義されている。例えば、ロボット２２が周期的に動作する場合、プログラムコードには、各周期におけるロボット２２の動作が時系列的に記述される。例えば、プログラムコードには、ロボット２２の軌跡が定義される。軌跡を生成する方法自体は、公知の手法を適用可能であり、直線補間を利用してもよいし、リンク補間を利用してもよく、プログラムコードには、ロボット２２の時系列的な位置が定義される。また例えば、プログラムコードには、ロボット２２の待機命令が定義されている。待機命令には、ロボット２２が移動せずにその場で待機する時間が示されている。また例えば、プログラムコードには、ロボット２２がハンドを開閉するタイミングや強さが定義されていてもよいし、ロボット２２の電動ガンの出力が定義されていてもよい。
【００３４】
パラメータは、ロボット２２に対する出力を示す値であり、例えば、モータの回転数（速度）、モータの回転方向、トルク値、電流値、又は通電時間などである。パラメータは、プログラムによって参照されることもあるし、プログラムの中に記述されていることもある。プログラム中に記述されたロボット２２の位置や待機時間などもパラメータの一種ということができる。例えば、個々のパラメータが設定データに相当してもよいし、複数のパラメータが格納されたパラメータファイルが設定データに相当してもよい。パラメータファイルには、パラメータの値が時系列的に記述されていてもよい。
【００３５】
例えば、ロボットシステム２０は、工場などの施設に配置され、設定データは、個々のコントローラ２１及びロボット２２を管理する作業員によって変更される。ここでの変更とは、更新、編集、又は調整と同じ意味である。例えば、作業員は、ロボット２２の実際の動作を確認したり、ロボット２２による加工の対象物（ワーク）の状態を確認したりして、設定データを変更する必要があるか否かを判定する。また例えば、作業員は、コントローラ２１におけるアラームの発生有無を確認したり、ロボット２２の停止状況を確認したりして、設定データを変更する必要があるか否かを判定する。
【００３６】
作業員は、設定データを変更する必要があると判定すると、例えば、エンジニアリングツールがインストールされた端末をコントローラ２１に接続し、設定データを変更する。例えば、作業員は、プログラムコードを追記、変更、又は削除したり、プログラム中の変数の値を変更したりすることによって、プログラムを変更する。また例えば、作業員は、新たにプログラムを作成したり、不要なプログラムを削除したりする。また例えば、作業員は、パラメータの値を変更したり、不要になったパラメータを削除したりすることによって、パラメータを変更する。また例えば、作業員は、新たにパラメータを追加したり、不要なパラメータを削除したりする。
【００３７】
設定データが変更されると、コントローラ２１及びロボット２２の動作が変更されて所定の事象が発生する原因になることがあるので、本実施形態では、所定の事象に関連する設定データを予めユーザに指定させ、所定の事象が発生した場合に、ユーザが指定した設定データの変更に関する情報を表示するようにしている。
【００３８】
所定の事象とは、予め定められた事象であればよく、例えば、アラームが発生すること、性能が低下（劣化）すること、ロボット２２同士が接触又は干渉すること、動作状況が基準範囲外になること、又は特定のスイッチがオンになることなどである。動作状況は、コントローラ２１又はロボット２２の状態であり、例えば、トルク信号の波形、最大トルク量、トルク信号の収束値、トルク信号の立ち上がりタイミング、トルク信号の収束タイミング、モータの位置情報、モータの速度情報、オーバーシュート量、整定時間、タクトタイム、サイクルタイム、ＣＰＵ使用率、メモリ使用率、又は通信量などである。
【００３９】
事象に関連する設定データとは、事象の原因の可能性がある設定データである。別の言い方をすれば、事象に関連する設定データは、事象が発生した場合に出力すべき設定データである。本実施形態では、事象に関連すると考えてユーザが指定した設定データが、事象に関連する設定データである場合を説明する。即ち、ユーザが、事象に関連する設定データを手動で指定する場合を説明する。なお、後述する変形例のように、事象に関連する設定データは、設定データの変更とアラームの発生との関係を統計的に解析することによって、自動的に特定されてもよい。
【００４０】
本実施形態では、事象の一例としてアラームを説明する。このため、本実施形態でアラームについて説明している箇所は、事象と読み替えることができる。例えば、ユーザがユーザ端末３０を操作して管理サーバ１０にアクセスすると、アラームに関連する設定データを登録するための登録画面が表示部３５に表示される。なお、本実施形態では、アラームに関連する設定データがコントローラ２１ごとに登録される場合を説明するが、アラームに関連する設定データは、複数のコントローラ２１で共通であってもよい。
【００４１】
図２は、登録画面の一例を示す図である。図２に示すように、登録画面Ｇ１には、登録対象のコントローラ２１の名前が表示される。登録対象のコントローラ２１は、任意のコントローラ２１であってよく、例えば、登録画面Ｇ１が表示される前に、ユーザが登録対象のコントローラ２１を指定する。図２の例では、「コントローラＸ」に対し、アラームに関連する設定データが登録される。
【００４２】
ユーザは、登録対象のコントローラ２１に記憶された任意の設定データを、アラームに関連する設定データとして指定することができる。本実施形態では、アラームがアラームコードによって分類され、各アラームコードが示すアラームに関連する設定データが登録される。アラームには、任意の数の設定データを登録可能であり、必ずしも全てのアラームに設定データが登録される必要はない。
【００４３】
図２の例では、アラームコード「００１」が示すトルク異常のアラームに関連する設定データとして、「プログラムＡ」と「パラメータＢ」が登録されている。また例えば、アラームコード「００２」が示す温度異常のアラームに関連する設定データは、まだ登録されていない。また例えば、アラームコード「００３」が示す速度異常のアラームに関連する設定データとして、「プログラムＣ」が登録されている。他のアラームコードのアラームについても同様に、関連する設定データの登録状況が登録画面Ｇ１に表示される。
【００４４】
ユーザがプルダウンメニューＭ１０〜Ｍ１２の何れかを選択すると、コントローラ２１に記憶された設定データの一覧が表示される。ユーザは、一覧の中から、アラームに関連する設定データを指定して登録することができる。なお、アラームに関連する設定データは、ユーザが全て指定するのではなく、デフォルトで登録されていてもよい。また、登録画面Ｇ１では、アラームに関連する設定データの登録を解除できるようにしてもよい。
【００４５】
登録画面Ｇ１から設定データが登録されると、アラームが発生した場合に、当該アラームに関連する設定データの変更が表示される。例えば、ロボットシステム２０においてアラームが発生すると、電子メールなどを利用してユーザ端末３０に通知が送信され、通知を見たユーザがユーザ端末３０を操作して管理サーバ１０にアクセスすると、発生したアラームの一覧を示すアラーム一覧画面が表示部３５に表示される。
【００４６】
図３は、アラーム一覧画面の一例を示す図である。図３に示すように、アラーム一覧画面Ｇ２には、アラームが発生したコントローラ２１の名前、アラーム発生日時、アラームコード、及びアラームの名前が表示される。アラーム一覧画面Ｇ２には、過去の全期間のアラームが表示されてもよいし、一部の期間のアラームが表示されてもよい。
【００４７】
アラーム一覧画面Ｇ２に表示されたアラームをユーザが選択すると、当該アラームの詳細を示すアラーム詳細画面が表示部３５に表示される。ここでは、アラーム一覧画面Ｇ２の「コントローラＸ」において、「２０１９年１月１６日  １０：２５：０８」に発生したアラームコード「００３」のアラームが選択された場合を例に挙げて説明する。
【００４８】
図４は、アラーム詳細画面の一例を示す図である。図４に示すように、アラーム詳細画面Ｇ３には、「コントローラＸ」で発生したアラームコード「００３」のアラームに関連する設定データの変更に関する情報が表示される。図４の例では、アラームコード「００３」のアラームに関連する設定データとして「プログラムＣ」が登録されており、アラーム詳細画面Ｇ３には、プログラムの名前と変更内容とが表示される。
【００４９】
例えば、変更内容としては、アラーム発生時の「プログラムＣ」のプログラムコードと、それよりも前の「プログラムＣ」のプログラムコードと、が比較されて表示される。図４の例では、「プログラムＣ」は、「２０１９年１月１１日」に変更されており、アラームが発生した時点における最新バージョンのプログラムコード（ここでは、アラームが発生した前日にバックアップが取られた「２０１９年１月１５日」のプログラムコード）と、変更前（即ち、１つ前のバージョン）の「２０１９年１月１０日」のプログラムコードと、が表示される。なお、変更前のプログラムコードは、２つ以上前のバージョンが表示されてもよいし、１つ前のバージョンと２つ前のバージョンといったように複数の古いバーションが表示されてもよい。
【００５０】
本実施形態では、アラーム詳細画面Ｇ３において、設定データの変更内容が強調されて表示されるようになっている。図４の例では、アンダーラインによって変更内容が強調されており、「ＭＯＶＪ  Ｃ００００１  ＶＪ＝８０．００」といったロボット２２の移動命令と、「ＭＯＶＪ  Ｃ００００２  ＶＪ＝８０．００」といったロボット２２の移動命令と、が変更されている。
【００５１】
なお、変更内容を強調して表示させる方法は、アンダーラインに限られず、任意の方法を利用可能である。例えば、設定データの変更内容は、赤や青などの所定の色で表示されてもよいし、他の部分よりも大きなサイズで表示されてもよい。他にも例えば、設定データの変更内容は、イタリック又は太字で表示されてもよいし、他の部分とは異なるフォントで表示されてもよい。
【００５２】
アラーム詳細画面Ｇ３により、ユーザは、上記移動命令の変更がアラームコード「００３」のアラームの原因になっていると推測することができる。ただし、アラーム詳細画面Ｇ３に表示される内容は、あくまでアラームの原因の可能性があるというだけであり、必ずしもアラームの原因であるとは限らない。このため、ユーザは、他の要因も総合的に考慮してアラームの原因を解析する。
【００５３】
なお、アラームに関連する設定データとしてパラメータが登録されている場合には、アラーム詳細画面Ｇ３には、当該登録されたパラメータの名前及び変更内容が表示される。例えば、変更内容として、パラメータの変更量が表示される。また例えば、時系列的に値が示されるパラメータであれば、変更内容として、パラメータが変更された時点が表示される。他にも例えば、複数のパラメータが格納されたパラメータファイルであれば、変更内容として、これら複数のパラメータの中で変更されたパラメータが表示される。
【００５４】
以上のように、本実施形態の産業機器管理システム１は、アラームに関連する設定データを予め登録しておき、コントローラ２１でアラームが発生した場合に、当該アラームに関連する設定データの名前及び変更内容をアラーム詳細画面Ｇ３に表示させることによって、産業機器でアラームが発生した原因の解析を支援するようにしている。以降、産業機器管理システム１の詳細を説明する。
【００５５】
［３．産業機器管理システムで実現される機能］
図５は、産業機器管理システム１で実現される機能を示す機能ブロック図である。ここでは、コントローラ２１において実現される機能と、管理サーバ１０において実現される機能と、について説明する。
【００５６】
［コントローラにおいて実現される機能］
図５に示すように、コントローラ２１では、データ記憶部２００が実現される。データ記憶部２００は、コントローラ２１の記憶部を主として実現される。データ記憶部２００は、少なくとも１つの設定データを記憶する。データ記憶部２００が記憶する設定データの数は、コントローラ２１及びロボット２２の目的や用途に応じて決定されるようにすればよく、任意の数であってよい。例えば、コントローラ２１が複数のロボット２２を制御する場合には、データ記憶部２００は、ロボット２２ごとに設定データを記憶する。
【００５７】
データ記憶部２００が記憶する設定データは、作業員が自身の端末を操作することによって変更されてもよいし、ユーザがユーザ端末３０を操作することによって変更されてもよい。本実施形態では、定期的に設定データのバックアップが取られるので、コントローラ２１は、管理サーバ１０から設定データの送信要求を受信した場合に、データ記憶部２００に記憶された設定データを送信する。なお、コントローラ２１が自発的に設定データを送信することがあってもよい。
【００５８】
また例えば、データ記憶部２００は、アラーム発生条件を記憶する。本実施形態では、データ記憶部２００は、アラームコードごとにアラーム発生条件を記憶する。アラーム発生条件は、コントローラ２１又はロボット２２の動作状況に関する条件であればよく、アラームを検出する方法自体は、公知の方法を適用可能である。例えば、コントローラ２１は、センサの検出信号に基づいてロボット２２の動作状況を取得し、アラーム発生条件が満たされたか否かを判定する。
【００５９】
例えば、トルク異常に関するアラームであれば、コントローラ２１は、トルク信号のピーク値、収束値、立ち上がりタイミング、又は収束タイミングが基準範囲外になった場合に、アラーム発生条件が満たされたと判定する。また例えば、温度異常に関するアラームであれば、コントローラ２１は、温度センサから受信した温度が基準範囲外になった場合に、アラーム発生条件が満たされたと判定する。また例えば、速度異常に関するアラームであれば、コントローラ２１は、モータエンコーダ又はモーションセンサから受信した速度が基準範囲外になった場合に、アラーム発生条件が満たされたと判定する。他のアラームについても同様に、コントローラ２１は、センサから受信した情報や自身の動作状況に基づいて、アラーム発生条件が満たされたか否かを判定する。
【００６０】
コントローラ２１は、何れかのアラーム発生条件が満たされたと判定した場合に、アラーム発生日時と、当該アラーム発生条件に関連付けられたアラームコードと、を含むアラーム発生通知を、管理サーバ１０に送信する。アラーム発生日時は、リアルタイムクロック又はＧＰＳ信号等から取得した現在日時を利用すればよい。なお、本実施形態では、コントローラ２１がアラームの発生を判定する場合を説明したが、管理サーバ１０又は他のコンピュータによってアラームの発生が判定されてもよい。
【００６１】
［管理サーバにおいて実現される機能］
図５に示すように、管理サーバ１０では、データ記憶部、登録部１０１、収集部１０２、変更判定部１０３、取得部１０４、事象判定部１０５、特定部１０６、及び出力部１０７が実現される。データ記憶部は、記憶部１２を主として実現され、他の各機能は、ＣＰＵ１１を主として実現される。
【００６２】
［データ記憶部］
データ記憶部１００は、ロボットシステム２０を管理するためのデータを記憶する。例えば、データ記憶部１００は、コントローラ２１に関するデータが格納されたコントローラデータベースＤＢ１と、アラームに関連する設定データが登録された関連性データベースＤＢ２と、を記憶する。
【００６３】
図６は、コントローラデータベースＤＢ１のデータ格納例を示す図である。図６に示すように、コントローラデータベースＤＢ１には、コントローラ２１の名前、バックアップ情報、及び発生アラーム情報が格納される。なお、コントローラデータベースＤＢ１に格納される情報は、これらに限られない。例えば、コントローラデータベースＤＢ１には、コントローラ２１が属するラインの名前が格納されてもよいし、ロボット２２の動作状況が時系列的に示されたトレースデータが格納されてもよい。ラインとは、施設における作業グループを示す。同じラインに属するコントローラ２１は、ベルトコンベア等の搬送装置により搬送される対象物に対し、順番に加工を行う。ラインに属するコントローラ２１は、コントローラデータベース２１に定義されているものとする。
【００６４】
バックアップ情報は、設定データのバックアップに関する情報であり、例えば、設定データのバックアップ時間、バックアップされた設定データの実データ、設定データの変更の有無を示す変更有無情報が格納される。なお、バックアップ時間は、日付だけでなく、時刻が示されていてもよい。
【００６５】
本実施形態では、後述する収集部１０２により収集された設定データがコントローラデータベースＤＢ１に格納されるので、データ記憶部１００は、収集部１０２により収集された設定データを、バックアップとして記憶することになる。設定データは、繰り返しバックアップが取られるので、コントローラデータベースＤＢ１には、過去にバックアップが取られた設定データの履歴が格納される。
【００６６】
なお、古い設定データは自動的に消去されてもよく、例えば、直近の一定期間の設定データだけが格納されてもよいし、直近ｎ回（ｎは自然数）の設定データだけが格納されてもよい。また、コントローラ２１の全ての設定データがバックアップの対象となる場合を説明するが、一部の設定データだけがバックアップの対象となってもよい。この場合、バックアップの対象となっている設定データだけが、変更の有無の判定対象となってもよい。
【００６７】
変更有無情報は、設定データが変更された場合に第１の値（図６では、「変更あり」を示す値）となり、設定データが変更されなかった場合に第２の値（図６では、「変更なし」を示す値）となる。このため、変更有無情報が第１の値であれば、その回のバックアップ時に設定データの変更が検知されたことを意味し、変更有無情報が第２の値であれば、その回のバックアップ時には設定データの変更が検知されなかったことを意味する。第１の値が格納された変更有無情報には、変更された設定データの名前が格納される。
【００６８】
発生アラーム情報は、コントローラ２１において発生したアラームに関する情報であり、例えば、アラームの発生日時とアラームコードとが格納される。本実施形態では、コントローラ２１は、アラームが発生した場合にアラーム発生通知を送信するので、管理サーバ１０は、アラーム発生通知を受信し、アラーム発生通知に含まれるアラーム発生日時とアラームコードを、発生アラーム情報としてコントローラデータベースＤＢ１に格納する。なお、アラームコードとアラームの名前との関係は、他のデータベースに予め定義されているものとする。発生アラーム情報には、アラームの名前は含まれていなくてもよい。
【００６９】
図７は、関連性データベースＤＢ２のデータ格納例を示す図である。図７に示すように、関連性データベースＤＢ２には、コントローラ２１ごとに、アラームコードと関連する設定データとの関連付けが登録されている。関連性データベースＤＢ２は、全てのユーザで共通であってもよいし、ユーザごとに異なる関連付けが登録されてもよい。例えば、あるユーザは、アラームコード「００１」のアラームに「プログラムＡ」と「パラメータＢ」を指定して登録し、別のユーザは、当該アラームに「プログラムＣ」を指定して登録するといったことができてもよい。
【００７０】
なお、データ記憶部１００が記憶するデータは、上記の例に限られない。例えば、データ記憶部１００は、ユーザ及び作業員の基本情報が格納されたデータベースを記憶してもよいし、データ記憶部１００は、登録画面Ｇ１、アラーム一覧画面Ｇ２、及びアラーム詳細画面Ｇ３を表示させるためのデータ（例えば、ＨＴＭＬデータ又は画像データ）を記憶してもよい。
【００７１】
［登録部］
登録部１０１は、アラームコードごとに、ユーザにより指定された設定データの種類を登録する。登録とは、データ記憶部１００に設定データの種類を格納することであり、本実施形態では、関連性データベースＤＢ２に設定データの種類を格納することである。本実施形態では、アラームコードごとに設定データの種類が登録される場合を説明するが、特にアラームコードごとに登録されなくてもよい。即ち、複数のアラームコードで共通の設定データの種類が、関連する設定データとして登録されてもよい。
【００７２】
本実施形態では、アラームが事象に相当するので、アラームコードは事象の種類に相当する。事象の種類は、発生する事象によって呼び名が異なり、アラームの名前が事象に相当してもよい。他にも例えば、性能の低下が事象に相当する場合、低下する性能の種類が事象の種類に相当してもよい。例えば、寿命の低下、タクトタイムの低下、及び対象物の品質の低下といった事象の種類が存在してもよい。
【００７３】
また例えば、動作状況が基準範囲外になることが事象に相当する場合、基準範囲外になる動作状況の種類が事象の種類に相当してもよい。例えば、トルク信号の波形の形状、最大トルク量、トルク信号の収束値、トルク信号の立ち上がりタイミング、トルク信号の収束タイミング、モータの位置情報、モータの速度情報、オーバーシュート量、整定時間、タクトタイム、サイクルタイム、ＣＰＵ使用率、メモリ使用率、又は通信量が基準範囲外になるといった事象の種類が存在してもよい。
【００７４】
本実施形態では、登録画面Ｇ１において、ユーザが自分で関連する設定データを指定するので、登録部１０１は、ユーザが指定した設定データを関連性データベースＤＢ２に登録する。登録部１０１は、プルダウンメニューＭ１０〜Ｍ１２により指定されたアラームコードと設定データの種類とを関連付けて、関連性データベースＤＢ２に格納する。登録部１０１は、ユーザにより指定されたアラームコードと設定データの種類との組み合わせをユーザ端末３０から受信し、これらを関連性データベースＤＢ２に格納する。
【００７５】
［収集部］
収集部１０２は、コントローラ２１において変更可能な設定データを収集する。収集とは、コントローラ２１からデータを取得又は受信することである。収集部１０２は、複数の時点の各々における設定データを収集する。別の言い方をすれば、収集部１０２は、設定データを繰り返し収集する。収集部１０２は、定期的に設定データを収集してもよいし、不定期的に設定データを収集してもよい。不定期的に設定データを収集する場合には、収集部１０２は、アラームが発生した場合やユーザにより指示された場合などにおいて、設定データを収集すればよい。
【００７６】
また、本実施形態では、コントローラ２１は、自発的に設定データをアップロードするのではなく、管理サーバ１０の要求に応じて設定データをアップロードする場合を説明する。このため、収集部１０２は、コントローラ２１に対し、設定データを要求し、コントローラ２１が当該要求に応じて送信した設定データを収集する。ロボットシステム２０に複数のコントローラ２１が含まれている場合には、収集部１０２は、当該複数のコントローラ２１の各々から設定データを収集する。
【００７７】
収集部１０２は、所定の条件が満たされた場合に、設定データを収集する。所定の条件は、設定データを収集するために定められた条件であればよく、任意の条件を適用可能である。本実施形態では、所定の条件の一例として、バックアップ時間が訪れることを説明するが、例えば、コントローラ２１でアラームが発生することであってもよいし、ロボット２２のトルク信号などのトレースデータが所定の状態になることであってもよい。他にも例えば、ユーザ又は作業員がバックアップを指示することが所定の条件に相当してもよい。
【００７８】
バックアップ時間は、データ記憶部１００に予め記憶させておけばよく、任意の時間を設定可能である。例えば、バックアップ時間は、毎日同じ時刻としてもよいし、曜日によって異なる時刻としてもよい。また例えば、毎日バックアップを取る必要はなく、数日おきにバックアップ時間が訪れるようにスケジューリングしてもよいし、工場が稼働する平日にだけバックアップ時間が訪れるようにスケジューリングしてもよい。
【００７９】
例えば、収集部１０２は、リアルタイムクロック又はＧＰＳ信号等を利用して現在日時を取得し、予め定められたバックアップ時間が訪れたか否かを判定する。収集部１０２は、バックアップ時間が訪れたと判定された場合に、コントローラ２１に対し、設定データを要求する。なお、全てのコントローラ２１で共通のバックアップ時間が設定されてもよいし、コントローラ２１ごとに個別のバックアップ時間が設定されてもよい。収集部１０２は、コントローラ２１から設定データを収集すると、バックアップとしてコントローラデータベースＤＢ１に格納する。
【００８０】
［変更判定部］
変更判定部１０３は、複数の時点の各々における設定データに基づいて、設定データが変更されたか否かを判定する。例えば、変更判定部１０３は、第１の時点に収集された設定データと、第１の時点とは異なる第２の時点に収集された設定データと、を比較することによって、設定データが変更されたか否かを判定する。別の言い方をすれば、変更判定部１０３は、収集部１０２により設定データが収集された場合に、当該設定データと、それよりも前に収集された設定データと、を比較することによって、設定データが変更されたか否かを判定する。変更判定部１０３は、設定データが変更されたと判定した場合に、変更有無情報に第１の値と変更された設定データの名前とを格納し、設定データが変更されたと判定しない場合に、変更有無情報に第２の値を格納する。
【００８１】
本実施形態では、設定データが少しでも異なっていれば（設定データの一部でも変更されていれば）、設定データが変更されたと判定される場合を説明する。例えば、変更判定部１０３は、プログラムコードが完全一致する場合には、プログラムが変更されていないと判定し、プログラムコードが完全一致しない場合には、プログラムが変更されたと判定する。また例えば、変更判定部１０３は、新たなプログラムが追加されたり、既存のプログラムが削除されたりした場合には、プログラムが変更されたと判定する。また例えば、変更判定部１０３は、パラメータの値が完全一致する場合には、パラメータが変更されていないと判定し、パラメータの値が完全一致しない場合には、パラメータが変更されたと判定する。また例えば、変更判定部１０３は、新たなパラメータが追加されたり、既存のパラメータが削除されたりした場合には、パラメータが変更されたと判定する。
【００８２】
なお、設定データに対し、所定の変更が加えられていなければ、設定データが変更されたと判定されないようにしてもよい。例えば、所定の変更とは、プログラム中の特定の命令（例えば、移動命令や待機命令など）に変更が加えられたり、特定のパラメータ（例えば、出力トルクやモータ速度など）に変更が加えられたりすることである。また例えば、所定の変更は、プログラム中の変数の変更量が閾値以上であったり、パラメータの変更量が閾値以上であったりすることである。
【００８３】
本実施形態では、バックアップ時に設定データの変更有無が判定されるので、変更判定部１０３は、バックアップ判定部１０３Ａを含む。バックアップ判定部１０３Ａは、バックアップのために収集された設定データに基づいて、設定データが変更されたか否かを判定する。即ち、バックアップ判定部１０３Ａは、収集部１０２によりバックアップ対象の設定データが収集された場合に、バックアップの対象となった設定データと、それよりも前にバックアップの対象となった設定データと、に基づいて、設定データが変更されたか否かを判定することになる。なお、バックアップ判定部１０３Ａは、コントローラデータベースＤＢ１に設定データが格納された後（バックアップが完了した後）に判定処理を実行してもよいし、コントローラデータベースＤＢ１に設定データが格納される前（バックアップが完了する前）に判定処理を実行してもよい。
【００８４】
［取得部］
取得部１０４は、設定データが変更されたと判定された場合に、設定データの変更に関する変更情報を取得する。変更情報とは、設定データの変更に関係する情報であればよく、例えば、設定データの変更内容に関する変更内容情報、又は、変更された設定データの種類に関する変更種類情報である。他にも例えば、変更情報は、設定データが変更された時間、設定データが変更された事実そのもの、設定データの変更者、設定データが変更されたコントローラ２１、又は変更された設定データに基づいて動作するロボット２２といった他の情報を示してもよい。
【００８５】
本実施形態では、アラーム詳細画面Ｇ３に変更内容情報が表示されるので、取得部１０４は、変更内容情報を取得するために内容取得部１０４Ａを含む。内容取得部１０４Ａは、設定データが変更されたと判定された場合に、設定データの変更内容に関する変更内容情報を、変更情報として取得する。例えば、内容取得部１０４Ａは、変更前の設定データと変更後の設定データとに基づいて、変更内容情報を取得する。内容取得部１０４Ａは、変更内容情報を取得してコントローラデータベースＤＢ１に格納してもよい。
【００８６】
変更内容情報は、設定データの変更内容を示す情報である。変更内容は、設定データの変更箇所又は変更部分ということもできる。例えば、プログラムが変更された場合、変更内容情報は、追加、変更、又は削除されたプログラムコードを示す。また例えば、パラメータが変更された場合、変更内容情報は、パラメータの変更量を示す。なお、複数のパラメータが格納されたパラメータファイルが設定データに相当する場合には、変更内容情報は、パラメータファイルの中で、変更されたパラメータを示してもよい。例えば、複数種類のパラメータがパラメータファイルに格納されている場合には、変更内容情報は、パラメータファイルの中で、変更されたパラメータの種類を示し、あるパラメータの値が時系列にパラメータファイルに格納されている場合には、変更内容情報は、パラメータファイルの中で、変更されたパラメータの時点を示してもよい。
【００８７】
また、本実施形態では、アラーム詳細画面Ｇ３に変更種類情報が表示されるので、取得部１０４は、変更種類情報を取得するために変更種類取得部１０４Ｂを含む。コントローラ２１においては、複数種類の設定データが変更可能であり、変更種類取得部１０４Ｂは、設定データが変更されたと判定された場合に、変更された設定データの種類に関する変更種類情報を、変更情報として取得する。変更種類取得部１０４Ｂは、変更種類情報を取得してコントローラデータベースＤＢ１に格納してもよい。
【００８８】
変更種類情報は、変更された設定データの種類を示す情報である。例えば、プログラムが変更された場合、変更種類情報は、変更されたプログラムの名前（プログラムのファイル名）を示す。また例えば、パラメータが変更された場合、変更種類情報は、変更されたパラメータの名前（パラメータのファイル名）を示す。なお、名前以外にもＩＤなどの識別情報によって設定データの種類が示されてもよい。
【００８９】
［事象判定部］
事象判定部１０５は、コントローラ２１において所定の事象が発生したか否かを判定する。本実施形態では、コントローラ２１において事象の発生有無が判定され、コントローラ２１は、事象が発生した場合に所定の通知を送信するので、事象判定部１０５は、コントローラ２１から通知を受信したか否かを判定する。なお、コントローラ２１側で事象の発生有無が判定されなくてもよく、この場合には、事象判定部１０５は、コントローラ２１又はロボットの動作状況を受信し、当該動作状況が事象の発生条件を満たすか否かを判定すればよい。
【００９０】
本実施形態では、アラームが事象に相当するので、事象判定部１０５は、アラーム判定部１０５Ａを含む。アラーム判定部１０５Ａは、コントローラ２１においてアラームが発生したか否かを、事象として判定する。例えば、コントローラ２１は、アラームが発生した場合に、管理サーバ１０に対し、アラームの発生日時とアラームコードを含むアラーム発生通知を送信するので、アラーム判定部１０５Ａは、アラーム発生通知を受信したか否かを判定することによって、アラームが発生したか否かを判定する。アラーム判定部１０５Ａは、アラーム発生通知を受信した場合にアラームが発生したと判定し、アラーム発生通知を受信しない場合には、アラームが発生したと判定しない。
【００９１】
なお、本実施形態では、コントローラ２１によりアラーム発生条件が満たされたか否かが判定される場合を説明するが、管理サーバ１０が、コントローラ２１から、コントローラ２１又はロボット２２の動作状況を受信し、アラーム判定部１０５Ａは、当該受信した動作状況に基づいて、アラーム発生条件が満たされたか否かを判定してもよい。アラーム判定部１０５Ａは、アラーム発生条件が満たされたと判定された場合にアラームが発生したと判定し、アラーム発生条件が満たされたと判定されない場合には、アラームが発生したと判定しない。
【００９２】
また、性能の低下が事象に相当する場合には、事象判定部１０５は、コントローラ２１から性能に関する情報を受信し、当該情報が示す性能が基準範囲外であるか否かを判定する。性能に関する情報は、例えば、ロボット２２の部品などの寿命、負荷率、又はタクトタイムなどである。性能の低下については、コントローラ２１側で判定され、事象判定部１０５は、当該判定結果だけを受信してもよい。
【００９３】
また、動作状況が基準範囲外になることが事象に相当する場合には、事象判定部１０５は、コントローラ２１から動作状況に関する情報を受信し、当該情報が示す動作状況が基準範囲外であるか否かを判定する。動作状況に関する情報は、時系列的な情報であるトレースデータであってもよいし、ある一時点におけるトルク信号値や速度値などの情報であってもよい。動作状況が基準範囲外であるか否かについては、コントローラ２１側で判定され、事象判定部１０５は、当該判定結果だけを受信してもよい。
【００９４】
［特定部］
特定部１０６は、事象判定部１０５により事象が発生したと判定された場合に、事象に関連する変更情報を特定する。本実施形態では、事象と設定データとの関係が関連性データベースＤＢ２に示されているので、特定部１０６は、発生した事象に関連付けられた設定データの変更情報を特定する。例えば、特定部１０６は、過去に取得された変更情報のうち、事象が発生した時間に近い変更情報を特定する。
【００９５】
特定部１０６は、事象が発生した時間に近い変更情報を１つだけ特定してもよいし、事象が発生した時間に近い順に所定数の変更情報を特定してもよい。特定部１０６が特定する変更情報の数は、任意の数であってよい。例えば、本実施形態のような１つの変更情報に限られず、２つ、３つ、又は４つ以上の変更情報が特定されてもよい。
【００９６】
特定部１０６により特定される変更情報は、過去に取得された変更情報のうち、出力部１０７により出力されるべき変更情報である。このため、特定部１０６は、過去に取得された変更情報のうち、出力部１０７に出力させるべき変更情報を絞り込むことになる。別の言い方をすれば、特定部１０６は、事象が発生した時点を基準として期間内に変更された設定データの変更情報の中から、出力部１０７に出力させるべき変更情報を抽出することになる。
【００９７】
本実施形態では、特定部１０６は、アラームに関連する設定データの変更情報を特定し、アラームに関連しない設定データの変更情報については特定しない。このため、アラームに関連しない設定データが変更された時点が、アラームに関連する設定データが変更された時点よりもアラームの発生時点に近かったとしても、特定部１０６は、アラームに関連しない設定データの変更情報については特定せず、アラームに関連する設定データの変更情報を特定する。
【００９８】
図６及び図７のデータ格納例であれば、「コントローラＸ」においてアラームコード「００３」のアラームが発生した時点「２０１９年１月１６日  １０：２５：０８」の直近の設定データの変更は、「２０１９年１月１５日」のバックアップ時に検知された「プログラムＡ」及び「パラメータＢ」であるが、これらの設定データは、アラームに関連しないので、特定部１０６により特定されず、「２０１９年１月１１日」のバックアップ時に検知された「プログラムＣ」の変更情報が、特定部１０６により特定される。
【００９９】
本実施形態では、アラーム詳細画面Ｇ３に変更内容情報が表示されるので、特定部１０６は、変更内容情報を特定するために内容特定部１０６Ａを含む。内容特定部１０６Ａは、事象判定部１０５により事象が発生したと判定された場合に、当該事象に関連する変更内容情報を特定する。例えば、内容特定部１０６Ａは、過去に取得された変更内容情報のうち、事象が発生した時間に近い変更内容情報を特定する。内容特定部１０６Ａは、事象が発生した時間に近い順に所定数の変更内容情報を特定する。内容特定部１０６Ａは、事象に関連する設定データの変更内容情報を特定し、事象に関連しない設定データの変更内容情報については特定しない。
【０１００】
本実施形態では、アラーム詳細画面Ｇ３に変更種類情報が表示されるので、特定部１０６は、変更種類情報を特定するために内容特定部１０６Ａを含む。変更種類特定部１０６Ｂは、事象が発生したと判定された場合に、事象に関連する変更種類情報を特定する。例えば、変更種類特定部１０６Ｂは、過去に取得された変更種類情報のうち、事象が発生した時間に近い変更種類情報を特定する。変更種類特定部１０６Ｂは、事象が発生した時間に近い順に所定数の変更種類情報を特定する。変更種類特定部１０６Ｂは、事象に関連する設定データの変更種類情報を特定し、事象に関連しない設定データの変更種類情報については特定しない。
【０１０１】
本実施形態では、アラームが事象に相当するので、特定部１０６は、アラーム関連特定部１０６Ｃを含む。アラーム関連特定部１０６Ｃは、アラームが発生したと判定された場合に、アラームに関連する変更情報を特定する。本実施形態では、アラームと設定データとの関係が関連性データベースＤＢ２に示されているので、アラーム関連特定部１０６Ｃは、発生したアラームに関連付けられた設定データの変更情報を特定する。例えば、アラーム関連特定部１０６Ｃは、過去に取得された変更情報のうち、アラーム発生時間に近い変更情報を特定する。アラーム関連特定部１０６Ｃは、アラームが発生した時間に近い順に所定数の変更情報を特定する。アラーム関連特定部１０６Ｃは、アラームに関連する設定データの変更情報を特定し、アラームに関連しない設定データの変更情報については特定しない。
【０１０２】
本実施形態では、コントローラ２１においては、複数種類の設定データが変更可能であり、かつ、複数種類の事象が発生可能なので、特定部１０６は、関連種類特定部１０６Ｄを含む。関連種類特定部１０６Ｄは、複数種類の事象の何れかの事象が発生したと判定された場合に、当該事象の種類に関連する種類の設定データの変更情報を特定する。本実施形態では、事象の種類と設定データとの関係が関連性データベースＤＢ２に示されているので、関連種類特定部１０６Ｄは、発生した事象の種類に関連付けられた設定データの変更情報を特定し、発生した事象の種類に関連付けられていない設定データの変更情報については特定しない。
【０１０３】
本実施形態では、関連する設定データがユーザにより登録されているので、特定部１０６は、登録種類特定部１０６Ｅを含む。登録種類特定部１０６Ｅは、複数種類の事象の何れかの事象が発生したと判定された場合に、登録部１０１の登録内容に基づいて、当該事象の種類に関連する種類の設定データの変更情報を特定する。登録内容は、ユーザにより指定されるので、登録種類特定部１０６Ｅは、ユーザにより指定された種類の設定データの変更情報を特定し、ユーザにより指定されていない種類の設定データの変更情報については特定しない。
【０１０４】
［出力部］
出力部１０７は、特定部１０６により特定された変更情報を出力する。本実施形態では、変更情報が画面上で視覚的に出力される場合を説明するが、変更情報は、音声によって出力されてもよいし、データ出力（ファイル出力）されてもよい。変更情報がデータ出力されるとは、変更情報がデータとして外部機器又はメモリに出力されて記録されることである。この場合、任意のデータ形式で出力されるようにすればよく、例えば、画像形式、テキスト形式、文書形式、表形式、ｃｓｖ形式、又はメッセージ形式などで出力されるようにすればよい。例えば、変更情報を含むメッセージを送信することが出力に相当してもよい。
【０１０５】
本実施形態では、アラーム詳細画面Ｇ３に変更内容情報が表示されるので、出力部１０７は、内容出力部１０７Ａを含む。内容出力部１０７Ａは、内容特定部１０６Ａにより特定された変更内容情報を出力する。例えば、内容出力部１０７Ａは、設定データの差分（違い）を示す変更内容情報を出力する。本実施形態では、差分の全てが変更内容情報として取得される場合を説明するが、差分の一部だけが変更内容情報として取得されてもよい。
【０１０６】
例えば、内容出力部１０７Ａは、変更前のプログラムが示すプログラムコードの文字列と、変更後のプログラムが示すプログラムコードの文字列と、の間で一致しない部分を示す変更内容情報を出力する。また例えば、内容出力部１０７Ａは、変更前のパラメータの値と、変更後のパラメータの値と、の差分を示す変更内容情報を出力する。本実施形態では、内容出力部１０７Ａは、アラーム詳細画面Ｇ３において、プログラムコードの変更内容を表示させたり、パラメータの変更内容を表示させたりする。
【０１０７】
また、本実施形態では、アラーム詳細画面Ｇ３に変更種類情報が表示されるので、出力は、種類出力部１０７Ｂを含む。種類出力部１０７Ｂは、変更種類特定部１０６Ｂにより特定された変更種類情報を出力する。例えば、変更判定部１０３は、設定データの種類ごとに、設定データが変更されたか否かを判定するので、種類出力部１０７Ｂは、変更判定部１０３により変更されたと判定された種類を示す変更種類情報を出力する。例えば、種類出力部１０７Ｂは、変更判定部１０３により変更されたと判定されたプログラムの名前を示す変更種類情報を出力する。本実施形態では、種類出力部１０７Ｂは、アラーム詳細画面Ｇ３において、変更されたプログラムの名前を表示させる。
【０１０８】
［４．産業機器管理システムで実行される処理］
次に、産業機器管理システム１で実行される処理を説明する。ここでは、関連する設定データを登録するための登録処理、設定データのバックアップを取るバックアップ処理、及びアラームが発生した場合に実行されるアラーム発生処理について説明する。以降説明する処理は、図５に示す機能ブロックにより実行される処理の一例である。
【０１０９】
［登録処理］
図８は、登録処理を示すフロー図である。図８に示す処理は、管理サーバ１０のＣＰＵ１１が記憶部１２に記憶されたプログラムに従って動作し、ユーザ端末３０のＣＰＵ３１が記憶部３２に記憶されたプログラムに従って動作することによって実行される。
【０１１０】
図８に示すように、まず、ユーザ端末３０においては、ＣＰＵ３１は、管理サーバ１０に対し、登録画面Ｇ１の表示要求を送信する（Ｓ１００）。表示要求は、所定形式のデータが送信されることによって実行されるようにすればよく、例えば、ウェブブラウザ上で画面を表示させる場合にはＵＲＬが含まれており、アプリケーション上で画面を表示させる場合には画面の識別情報が含まれているものとする。この点は、以降説明する他の画面の表示要求についても同様である。なお、Ｓ１００において送信される表示要求には、登録対象のコントローラ２１の名前も含まれているものとする。
【０１１１】
管理サーバ１０においては、登録画面Ｇ１の表示要求を受信すると、ＣＰＵ１１は、コントローラデータベースＤＢ１と関連性データベースＤＢ２とに基づいて、登録画面Ｇ１の表示データを生成し、ユーザ端末３０に送信する（Ｓ１０１）。Ｓ１０１においては、ＣＰＵ１１は、コントローラデータベースＤＢ１のバックアップ情報を参照し、設定データの登録対象となるコントローラ２１が記憶する設定データの種類を特定し、プルダウンメニューＭ１０〜Ｍ１２に表示させる設定データの種類を設定する。そして、ＣＰＵ１１は、関連性データベースＤＢ２を参照し、アラームコードと関連する設定データとの関係を特定し、登録画面Ｇ１に表示させるアラームコード、アラーム名、及び現時点で登録されている設定データの種類を決定する。
【０１１２】
ユーザ端末３０においては、登録画面Ｇ１の表示データを受信すると、ＣＰＵ３１は、受信した表示データに基づいて、登録画面Ｇ１を表示部３５に表示させる（Ｓ１０２）。ＣＰＵ３１は、操作部３４の検出信号に基づいて、ユーザの操作を特定する（Ｓ１０３）。Ｓ１０３においては、関連する設定データを登録するための登録操作、又は、登録済みの設定データを解除する解除操作の何れかが行われるものとする。
【０１１３】
関連する設定データの登録操作が行われた場合（Ｓ１０３；登録操作）、ＣＰＵ３１は、関連する設定データを登録するための登録要求を送信する（Ｓ１０４）。登録要求は、所定形式のデータが送信されることによって実行されるようにすればよく、例えば、ユーザが指定したアラームコードと設定データの名前が含まれるものとする。
【０１１４】
管理サーバ１０においては、追加要求を受信すると、ＣＰＵ１１は、ユーザが指定したアラームコードのアラームに関連する設定データとして、ユーザが指定した設定データを登録し（Ｓ１０５）、本処理は終了する。Ｓ１０５においては、ＣＰＵ１１は、追加要求に含まれるアラームコードと設定データとを互いに関連付けて、関連性データベースＤＢ２に格納する。
【０１１５】
一方、関連する設定データの解除操作が行われた場合（Ｓ１０３；解除操作）、ＣＰＵ３１は、アラームコードから、ユーザが指定した関連性のある設定データを解除する旨の解除要求を送信する（Ｓ１０６）。解除要求は、所定形式のデータが送信されることによって実行されるようにすればよく、例えば、ユーザが指定したアラームコードと設定データの名前が含まれるものとする。
【０１１６】
管理サーバ１０においては、解除要求を受信すると、ＣＰＵ１１は、ユーザが指定したアラームコードのアラームから、ユーザが指定した設定データを解除し（Ｓ１０７）、本処理は終了する。Ｓ１０７においては、ＣＰＵ１１は、解除要求に含まれるアラームコードと設定データとの関連付けを解除するように、関連性データベースＤＢ２を更新する。
【０１１７】
［バックアップ処理］
図９は、バックアップ処理を示すフロー図である。図９に示す処理は、管理サーバ１０のＣＰＵ１１が記憶部１２に記憶されたプログラムに従って動作し、コントローラ２１が自身に記憶されたプログラムに従って動作することによって実行される。
【０１１８】
図９に示すように、まず、管理サーバ１０においては、ＣＰＵ１１は、リアルタイムクロック又はＧＰＳ信号等を利用して現在日時を取得し、バックアップ時間が訪れたか否かを判定する（Ｓ２００）。バックアップ時間は、記憶部１２に予め記憶されているものとする。バックアップを取得する時間が訪れたと判定されない場合（Ｓ２００；Ｎ）、Ｓ２００の処理が再び実行される。
【０１１９】
バックアップ時間が訪れたと判定された場合（Ｓ２００；Ｙ）、ＣＰＵ１１は、コントローラ２１に対し、設定データを要求する（Ｓ２０１）。設定データの要求は、所定形式のデータが送信されることによって実行されるようにすればよい。複数台のコントローラ２１が存在する場合には、Ｓ２０１においては、ＣＰＵ１１は、各コントローラ２１に対し、設定データを要求する。なお、バックアップの対象となるのは、全てのコントローラ２１ではなく、一部のコントローラ２１だけであってもよい。
【０１２０】
コントローラ２１は、設定データの要求を受信すると、自身の記憶部に記憶された設定データを送信する（Ｓ２０２）。Ｓ２０２においては、コントローラ２１は、自身を識別する情報（例えば、コントローラ２１の名前）とともに、バックアップ対象となる全ての設定データを送信する。なお、バックアップ対象となるのは、コントローラ２１に記憶された全ての設定データではなく、一部の設定データだけであってもよい。
【０１２１】
管理サーバ１０においては、コントローラ２１から設定データを受信すると、ＣＰＵ１１は、コントローラデータベースＤＢ１に設定データを格納し、設定データのバックアップを取る（Ｓ２０３）。Ｓ２０３においては、ＣＰＵ１１は、設定データを送信したコントローラ２１の名前に関連付けて、受信した設定データを格納することによってバックアップを取り、バックアップ日時として現在日時を格納する。
【０１２２】
ＣＰＵ１１は、Ｓ１０３で受信した設定データ（今回バックアップを取った設定データ）と、過去の設定データ（前回以前にバックアップを取った設定データ）と、に基づいて、設定データが変更されたか否かを判定する（Ｓ２０４）。Ｓ２０４においては、ＣＰＵ１１は、プログラムコードが一致しているか否かを判定したり、パラメータの値が一致しているか否かを判定したりする。ここでは、１つでも設定データが変更されていれば、Ｓ２０４の判定が肯定になる場合を説明するが、特定の設定データが変更された場合にＳ２０４の判定が肯定になってもよいし、基準範囲外の数の設定データが変更された場合にＳ２０４の判定が肯定になってもよい。
【０１２３】
設定データが変更されたと判定された場合（Ｓ２０４；Ｙ）、ＣＰＵ１１は、コントローラデータベースＤＢ１に第１の値の変更有無情報を格納し（Ｓ２０５）、ユーザに電子メールを送信して（Ｓ２０６）、本処理は終了する。Ｓ２０５においては、ＣＰＵ１１は、設定データを送信したコントローラ２１の変更有無情報を第１の値に設定し、変更された設定データの名前を格納する。なお、この時点でＣＰＵ１１は、変更内容情報及び変更種類情報を取得して変更有無情報に含めるようにしてもよい。Ｓ２０６においては、ＣＰＵ１１は、予め定められたメールアドレスに、電子メールを送信する。電子メールの送信先は、コントローラ２１ごとに指定できるようにしてもよい。
【０１２４】
一方、設定データが変更されたと判定されない場合（Ｓ２０４；Ｎ）、ＣＰＵ１１は、コントローラデータベースＤＢ１に第２の値の変更有無情報を格納し（Ｓ２０７）、本処理は終了する。Ｓ２０７においては、ＣＰＵ１１は、設定データを送信したコントローラ２１の変更有無情報を第２の値に設定する。この場合、設定データが変更されていないので、電子メールは送信されない。
【０１２５】
［アラーム発生処理］
図１０は、アラーム発生処理を示すフロー図である。図１０に示す処理は、管理サーバ１０のＣＰＵ１１が記憶部１２に記憶されたプログラムに従って動作し、コントローラ２１が自身の記憶部に記憶されたプログラムに従って動作し、ユーザ端末３０のＣＰＵ３１が記憶部３２に記憶されたプログラムに従って動作することによって実行される。
【０１２６】
図１０に示すように、まず、コントローラ２１は、アラームが発生したか否かを判定する（Ｓ３００）。Ｓ３００においては、コントローラ２１は、自身又はロボット２２の動作状況に基づいて、アラーム発生条件が満たされたか否かを判定する。この判定処理の詳細については、先述した通りである。
【０１２７】
アラームが発生したと判定された場合（Ｓ３００；Ｙ）、コントローラ２１は、管理サーバ１０に、アラームが発生したことを示すアラーム発生通知を送信する（Ｓ３０１）。Ｓ３０１においては、コントローラ２１は、現在日時であるアラーム発生日時と、満たされたアラーム発生条件が示すアラームコードと、を含むアラーム発生通知を送信する。
【０１２８】
管理サーバ１０においては、アラーム発生通知を受信すると、ＣＰＵ１１は、コントローラデータベースＤＢ１のアラーム発生情報を更新し（Ｓ３０２）、ユーザに電子メールを送信する（Ｓ３０３）。Ｓ３０２においては、ＣＰＵ１１は、アラーム発生通知に含まれるアラーム発生日時とアラームコードを含むアラーム発生情報をコントローラデータベースＤＢ１に格納する。Ｓ３０３においては、ＣＰＵ１１は、アラームが発生した旨を示す電子メールを作成し、ユーザのアドレスを送信先に設定して送信する。電子メールには、アラームが発生したコントローラ２１の名前、アラームコード、アラームの名前、アラームの発生時間、及びアラーム一覧画面Ｇ２へのリンクが含まれていてもよい。電子メールの送信先は、コントローラ２１ごとに指定できるようにしてもよい。
【０１２９】
ユーザ端末３０においては、ＣＰＵ３１は、アラーム一覧画面Ｇ２の表示要求を送信する（Ｓ３０４）。管理サーバ１０においては、アラーム一覧画面Ｇ２の表示要求を受信すると、ＣＰＵ３１は、コントローラデータベースＤＢ１に基づいて、アラーム一覧画面Ｇ２の表示データを生成し、ユーザ端末３０に送信する（Ｓ３０５）。Ｓ３０５においては、ＣＰＵ１１は、コントローラデータベースＤＢ１の発生アラーム情報を参照し、アラームが発生したコントローラ２１、アラーム発生時間、アラームコード、及びアラームの名前を特定し、アラーム一覧画面Ｇ２の表示データを生成する。
【０１３０】
ユーザ端末３０においては、アラーム一覧画面Ｇ２の表示データを受信すると、ＣＰＵ３１は、受信した表示データに基づいて、アラーム一覧画面Ｇ２を表示部３５に表示させる（Ｓ３０６）。ＣＰＵ３１は、操作部３４の検出信号に基づいて、アラーム一覧画面Ｇ２に表示されたアラームが選択されたか否かを判定する（Ｓ３０７）。
【０１３１】
アラームが選択されたと判定された場合（Ｓ３０７；Ｙ）、ＣＰＵ３１は、選択されたアラームの詳細を示すアラーム詳細画面Ｇ３の表示要求を送信する（Ｓ３０８）。この表示要求には、ユーザが選択したアラームが発生したコントローラの名前、アラーム発生時間、アラームコード、及びアラームの名前が含まれているものとする。
【０１３２】
管理サーバ１０においては、アラーム詳細画面Ｇ３の表示要求を受信すると、ＣＰＵ１１は、関連性データベースＤＢ２に基づいて、ユーザが指定したアラームに関連する設定データを特定し（Ｓ３０９）、コントローラデータベースＤＢ１に基づいて、アラーム詳細画面Ｇ３の表示データを生成し、ユーザ端末３０に送信する（Ｓ３１０）。Ｓ３０９においては、ＣＰＵ１１は、関連性データベースＤＢ２を参照し、表示要求に含まれるコントローラの名前及びアラームコードに関連付けられた設定データを特定する。Ｓ３１０においては、ＣＰＵ１１は、コントローラデータベースＤＢ１を参照し、当該特定した設定データのアラーム発生時間におけるバージョンと１つ前のバージョンとを取得し、アラーム詳細画面Ｇ３の表示データを生成する。
【０１３３】
ユーザ端末３０においては、アラーム詳細画面Ｇ３の表示データを受信すると、ＣＰＵ１１は、受信した表示データに基づいて、アラーム詳細画面Ｇ３を表示部３５に表示させ（Ｓ３１１）、本処理は終了する。
【０１３４】
産業機器管理システム１によれば、コントローラ２１において設定データが変更されたと判定された場合に、設定データの変更に関する変更情報を取得し、コントローラ２１において所定の事象が発生したと判定された場合に、事象に関連する変更情報を特定して出力することで、コントローラ２１で所定の事象が発生した原因を解析するために有用な情報を提供し、原因の解析を支援することができる。例えば、ユーザの知らないところで誰かが設定データを変更し、それが原因となって所定の事象が発生したとしても、ユーザは、事象の発生に関連する変更情報を知ることができ、所定の事象が発生した原因の解析を効果的に支援することができる。
【０１３５】
また、コントローラ２１において所定の事象が発生したと判定された場合に、発生した事象に関連する変更内容情報を特定して出力することで、設定データのどの部分の変更が事象の発生の原因になっているかをユーザに容易に把握させることができるので、コントローラ２１で事象が発生した原因の解析を効果的に支援することができる。例えば、コントローラ２１で所定の事象（アラーム等）が発生した場合に、設定データの特定箇所に対する変更が、発生した事象に関連していることがあるが、変更内容情報を出力することで、ユーザによる解析を効果的に支援することができる。
【０１３６】
また、コントローラ２１において所定の事象が発生したと判定された場合に、発生した事象に関連する変更種類情報を特定して出力することで、どの種類の設定データの変更が事象の発生の原因になっているかをユーザに容易に把握させることができるので、コントローラ２１で事象が発生した原因の解析を効果的に支援することができる。例えば、コントローラ２１で所定の事象（アラーム等）が発生した場合に、特定種類の設定データの変更が、発生した事象に関連していることがあるが、変更種類情報を出力することで、ユーザによる解析を効果的に支援することができる。
【０１３７】
また、コントローラ２１でアラームが発生した場合に、アラームの発生には、設定データの変更が関連していることがあるので、変更情報を出力することにより、ユーザによる解析を効果的に支援することができる。
【０１３８】
また、コントローラ２１において発生する事象の種類によって、その原因となる設定データの種類が違うことがあるが、コントローラ２１において発生した事象の種類に関連する設定データの種類の変更情報を特定して出力することで、発生した事象の種類に応じた変更情報を提供し、原因の解析を効果的に支援することができる。
【０１３９】
また、事象の種類ごとに、ユーザにより指定された設定データの種類を登録することにより、コントローラ２１において発生した事象の種類に関連する設定データの種類をユーザが自分で指定することができる。これにより、ユーザが解析したい設定データの種類を事象の種類ごとに指定することができるので、事象の原因の解析を効果的に支援することができる。
【０１４０】
また、バックアップ目的でコントローラ２１から設定データを収集したとすると、いわばバックアップのついでに、変更情報を出力することができ、変更情報を出力するためだけに設定データを収集する必要がなくなるので、コントローラ２１及びシステムの処理負荷と、ネットワークの通信負荷と、を軽減することができる。
【０１４１】
［５．変形例］
なお、本発明は、以上に説明した実施の形態に限定されるものではない。本発明の趣旨を逸脱しない範囲で、適宜変更可能である。
【０１４２】
図１１は、変形例の機能ブロック図である。図１１に示すように、記録部１０８、記録種類特定部１０６Ｆ、役割特定部１０６Ｇ、及び他機器特定部１０６Ｈが実現される。これら各機能は、ＣＰＵ１１を主として実現される。
【０１４３】
（１）例えば、実施形態では、アラームコードと関連する設定データとの関係を、ユーザが手動で登録する場合を説明したが、コントローラ２１で発生したアラームと、直近で変更された設定データと、の関係を統計的に分析し、アラームコードと関連する設定データとの関係が特定されてもよい。
【０１４４】
図１２は、本変形例の関連性データベースＤＢ２の一例を示す図である。図１２に示すように、関連性データベースＤＢ２には、コントローラの名前、アラームコード、アラームの名前、及び設定データの関連度が格納される。即ち、関連性データベースＤＢ２には、アラームごとに、設定データの関連度が格納される。
【０１４５】
関連度は、アラームに対する設定データの関連性の高さである。関連度が高いほど、アラームの発生に関連している蓋然性（確率）が高いことを示す。関連度は、アラームが発生した場合に、直近のｍ回（ｍは自然数）で変更された設定データに基づいて更新される。例えば、あるアラームが発生した場合に、直近のｍ回で変更された回数が多いほど、関連度は高くなる。
【０１４６】
本変形例では、記録部１０８と記録種類特定部１０６Ｆとが実現される。記録部１０８は、複数種類のアラームの何れかのアラームが発生したと判定された場合に、当該アラームの種類に関連付けて、少なくとも直近に変更された設定データの種類を記録する。ここでは、アラームの種類がアラームコードによって特定されるので、記録部１０８は、アラームコードに関連付けて、少なくとも直近に変更された設定データの種類を記録する。
【０１４７】
少なくとも直近に変更された設定データとは、アラームが発生した時点から数えてｍ番目までに変更された設定データである。本変形例では、ｍの数値を１とするが、ｍの数値は２以上であってもよい。即ち、アラームが発生した時点を基準として、直近に変更された設定データだけでなく、２番目以降に変更された設定データの種類が記録されてもよい。
【０１４８】
本変形例では、アラームコードごとに、各設定データの関連度が用意されているので、記録部１０８は、各設定データの関連度を増加させることにより、少なくとも直近に変更された設定データの種類を記録する。例えば、記録部１０８は、アラームが発生した場合に、コントローラデータベースＤＢ１の変更有無情報を参照し、直近ｍ回に変更された設定データの名前を特定する。記録部１０８は、発生したアラームのアラームコードに関連付けられた当該設定データの関連度を増加させる。
【０１４９】
関連度の増加量は、任意であってよく、ここでは１とするが、２以上であってもよい。例えば、ｍの数値が２以上の場合、記録部１０８は、アラームが発生した時点に近いほど、重み付けを高くして関連度を増加させてもよい。例えば、アラームが発生した時点の過去２回の設定データの変更を考慮する場合、記録部１０８は、直近の１番目の設定データについては関連度を２増加させ、２番目の設定データについては関連度を１増加させるといったようにしてもよい。このようにすることで、設定データが変更された時点がアラームの発生時点に近いほど、アラームの発生との関連性を高めることができる。
【０１５０】
記録種類特定部１０６Ｆは、記録部１０８による記録が行われた後に、複数種類のアラームの何れかのアラームが発生したと判定された場合に、記録部１０８の記録内容に基づいて、当該アラームの種類に関連する種類の設定データの変更情報を特定する。本変形例では、記録部１０８の記録内容は、関連性データベースＤＢ２に記録されているので、記録種類特定部１０６Ｆは、関連性データベースＤＢ２に基づいて、アラームに関連する設定データの種類を特定する。例えば、記録種類特定部１０６Ｆは、最も関連度の高い設定データを特定してもよいし、関連度が高い順に所定番目までの設定データを特定してもよい。関連する設定データが特定された後の処理については、実施形態で説明した通りであり、当該特定された設定データの変更情報がアラーム詳細画面Ｇ３に表示される。
【０１５１】
変形例（１）によれば、複数種類のアラームの何れかのアラームが発生したと判定された場合に、当該アラームの種類に関連付けて、少なくとも直近に変更された設定データの種類を記録し、当該記録内容に基づいて、産業機器において発生したアラームの種類に関連する種類の設定データの変更情報を特定することで、過去に発生したアラームと、変更された設定データの種類と、の関係を統計的に分析したうえで、変更情報を出力することができる。これにより、産業機器において発生したアラームにより関連性の高い設定データの変更情報を提供し、原因の解析を効果的に支援することができる。
【０１５２】
（２）また例えば、コントローラ２１の役割に応じて、アラームに関連する設定データが異なる場合がある。役割とは、コントローラ２１の用途ということもできる。例えば、コントローラ２１が対象物に対する加工を行う場合、コントローラ２１が行う加工の種類は、役割に相当する。別の言い方をすれば、コントローラ２１が担当する工程の種類は、役割に相当する。コントローラ２１の役割ごとに、アラームに関連する設定データを登録しておき、アラームが発生したコントローラ２１の役割に応じた設定データが特定されるようにしてもよい。
【０１５３】
本変形例では、ロボットシステム２２が食品の加工で利用される場面を例に挙げる。例えば、施設内に複数のラインが存在し、各ラインにおいて、原材料の生成工程、成形工程、加熱工程、及び包装工程の４つの工程が行われるものとする。各ラインには、個々の工程を担当するコントローラ２１及びロボット２２が４セット含まれる。この場合、あるラインＡの生成工程を担当するコントローラ２１のアラームは、別のラインＢの生成工程を担当するコントローラ２１のアラームと原因が共通していることがある。他の工程も同様であり、成形工程、加熱工程、及び包装工程の各々では、これらの工程特有の原因が存在していることがある。そこで、コントローラ２１の役割（コントローラ２１が担当する工程）ごとに、関連する設定データを登録できるようにしてもよい。
【０１５４】
本変形例では、役割特定部１０６Ｇが実現される。役割特定部１０６Ｇは、アラームが発生したと判定された場合に、コントローラ２１の役割に基づいて、アラームに関連する変更情報を特定する。本変形例では、コントローラデータベースＤＢ１に、コントローラ２１の役割が格納されているものとする。
【０１５５】
また、実施形態で説明したように、アラームに関連する設定データをユーザが手動で指定して登録する場合、関連性データベースＤＢ２は、図７のようなデータ格納例となる。ただし、実施形態では、コントローラ２１ごとに、各アラームに関連する設定データが登録される場合を説明したが、本変形例では、コントローラ２１の役割ごとに、関連する設定データが登録される。先述した食品の加工の例であれば、個々の工程ごとに、関連する設定データが登録される。
【０１５６】
あるコントローラ２１でアラームが発生した場合、役割特定部１０６Ｇは、コントローラデータベースＤＢ１を参照し、アラームが発生したコントローラ２１の役割を特定する。そして、役割特定部１０６Ｇは、関連性データベースＤＢ２を参照し、当該特定された役割に対する登録内容に基づいて、アラームに関連する変更情報を特定する。例えば、役割特定部１０６Ｇは、アラームが発生したコントローラ２１の役割及び当該アラームのアラームコードの両方に関連付けられた設定データを特定する。関連する設定データが特定された後の処理については、実施形態で説明した通りであり、当該特定された設定データの変更情報がアラーム詳細画面Ｇ３に表示される。
【０１５７】
なお、各アラームに関連する設定データをユーザが手動で指定する場合を例に挙げたが、変形例（１）のように、関連する設定データが統計的に解析される場合であっても、変形例（２）の処理を適用可能である。この場合、関連性データベースＤＢ２は、図１２のようなデータ格納例になり、各設定データの関連度が、コントローラ２１の役割ごとに格納される。記録部１０８は、あるコントローラ２１でアラームが発生した場合、当該コントローラ２１の役割に関連付けられた関連度を更新する。役割特定部１０６Ｇは、アラームが発生したと判定された場合に、コントローラ２１の役割に関連付けられた関連度に基づいて、アラームに関連する設定データを特定する。関連度に基づいて設定データを特定する処理は、変形例（１）で説明した通りである。
【０１５８】
変形例（２）によれば、コントローラ２１において所定のアラームが発生した場合に、コントローラ２１の役割に応じた変更情報を特定して出力することにより、コントローラ２１で所定のアラームが発生した原因を解析するために有用な情報を提供し、原因の解析を効果的に支援することができる。
【０１５９】
（３）また例えば、あるコントローラ２１でアラームが発生した場合に、当該コントローラ２１の設定データではなく、前後の工程を担当するコントローラ２１に原因があることもある。このため、あるコントローラ２１でアラームが発生した場合に、関連する設定データとして、他のコントローラ２１の設定データが表示されてもよい。例えば、変形例（２）で説明した食品の可能の例であれば、成形工程を担当するコントローラ２１で発生したアラームの原因は、その前工程である生成工程を担当するコントローラ２１の設定データにあることも考えられる。このため、成形工程を担当するコントローラ２１でアラームが発生した場合に、生成工程を担当するコントローラ２１の設定データの変更情報が表示されてもよい。
【０１６０】
本変形例では、他機器特定部１０６Ｈが実現される。複数のコントローラ２１が同じラインに属しており、他機器特定部１０６Ｈは、複数のコントローラ２１の何れかのコントローラ２１においてアラームが発生したと判定された場合に、他のコントローラ２１の変更情報を特定する。他のコントローラ２１は、アラームが発生したコントローラと同じラインに属する他のコントローラ２１であればよい。例えば、他機器特定部１０６Ｈは、同じラインの他の全てのコントローラ２１の変更情報を特定してもよいし、他の一部のコントローラ２１の変更情報を特定してもよい。例えば、他機器特定部１０６Ｈは、アラームが発生したコントローラ２１の前の工程を担当する他のコントローラ２１と、後の工程を担当する他のコントローラ２１と、の両方又は何れか一方の変更情報を特定してもよい。また例えば、他機器特定部１０６Ｈは、前後の工程ではなく、他の全てのコントローラ２１の変更情報を特定してもよい。
【０１６１】
変形例（３）によれば、コントローラ２１において所定の事象が発生した場合に、同じラインに属する他のコントローラ２１が原因になっていることがあるが、変形例（３）によれば、他のコントローラ２１の変更情報を出力することで、所定の事象が発生した原因を解析するために有用な情報を提供し、原因の解析を効果的に支援することができる。
【０１６２】
（４）また例えば、上記説明した変形例を組み合わせてもよい。
【０１６３】
また例えば、管理サーバ１０は、設定データをバックアップ目的で収集しなくてもよく、アラーム発生時などの任意のタイミングで設定データを収集してよい。また例えば、上記説明した主たる機能が管理サーバ１０で実現される場合を説明したが、複数のコンピュータで各機能が分担されてもよい。
【０１６４】
また、以上説明した実施形態は具体例として示したものであり、本明細書にて開示される発明をこれら具体例の構成やデータ格納例そのものに限定するものではない。当業者はこれら開示された実施形態に種々の変形、例えば、物理的構成の形状や数、データ構造、処理の実行順を変更したりしてもよい。本明細書にて開示される発明の技術的範囲は、そのようになされた変形をも含むものと理解すべきである。
【符号の説明】
【０１６５】
１  産業機器管理システム、１０  管理サーバ、１１  ＣＰＵ、１２  記憶部、１３  通信部、２０  ロボットシステム、２１  コントローラ、２２  ロボット、３０  ユーザ端末、３１  ＣＰＵ、３２  記憶部、３３  通信部、３４  操作部、３５  表示部、Ｇ１  登録画面、Ｇ２  アラーム一覧画面、Ｇ３  アラーム詳細画面、１００  データ記憶部、１０１  登録部、１０２  収集部、１０３  変更判定部、１０３Ａ  バックアップ判定部、１０４  取得部、１０４Ａ  内容取得部、１０４Ｂ  変更種類取得部、１０５  事象判定部、１０５Ａ  アラーム判定部、１０６  特定部、１０６Ａ  内容特定部、１０６Ｂ  変更種類特定部、１０６Ｃ  アラーム関連特定部、１０６Ｄ  関連種類特定部、１０６Ｅ  登録種類特定部、１０６Ｆ  記録種類特定部、１０６Ｇ  役割特定部、１０６Ｈ  他機器特定部、１０７  出力部、１０７Ａ  内容出力部、１０７Ｂ  種類出力部、１０８  記録部、２００  データ記憶部、ＤＢ１  コントローラデータベース、ＤＢ２  関連性データベース、Ｍ１０，Ｍ１１，Ｍ１２  プルダウンメニュー。
【図１】
2020119428.tif 000003
【図２】
2020119428.tif 000004
【図３】
2020119428.tif 000005
【図４】
2020119428.tif 000006
【図５】
2020119428.tif 000007
【図６】
2020119428.tif 000008
【図７】
2020119428.tif 000009
【図８】
2020119428.tif 000010
【図９】
2020119428.tif 000011
【図１０】
2020119428.tif 000012
【図１１】
2020119428.tif 000013
【図１２】
2020119428.tif 000014