(57)【特許請求の範囲】
【請求項１】
ロボットの異常に関するデータを蓄積するデータ蓄積装置であって、
前記ロボットの第１の異常に関する第１のデータを取得する第１取得部と、
前記ロボットの第２の異常に関する第２のデータを取得する第２取得部と、
前記第１のデータに基づいて前記第１のデータを蓄積するか否かを判断する第１判断部と、
前記第２のデータに基づいて前記第２のデータを蓄積するか否かを判断する第２判断部と、
前記第１のデータおよび前記第２のデータが蓄積されるメモリと、
前記第１判断部が前記第１のデータを蓄積すると判断した場合、前記第１のデータを第１の周期で前記メモリに蓄積させ、
前記第１判断部が前記第１のデータを蓄積しないと判断し、かつ、前記第２判断部が前記第２のデータを蓄積すると判断した場合、前記第２のデータを前記第１の周期よりも長い第２の周期で前記メモリに蓄積させる制御部とを備える、データ蓄積装置。
【請求項２】
請求項１に記載のデータ蓄積装置と、
前記ロボットと、
ロボット制御装置とを備え、
前記ロボットは、駆動部を有し、
前記ロボット制御装置は、前記駆動部を制御する、ロボットシステム。
【請求項３】
前記第１の異常および前記第２の異常のそれぞれは、前記駆動部に関する異常である、請求項２に記載のロボットシステム。
【請求項４】
前記駆動部は、サーボモータである、請求項２に記載のロボットシステム。
【請求項５】
前記メモリに蓄積された前記第１のデータおよび前記第２のデータの少なくとも一方を表示する表示器をさらに備える、請求項２に記載のロボットシステム。
【請求項６】
前記ロボット制御装置は、前記メモリに蓄積された前記第１のデータおよび前記第２のデータの少なくとも一方に基づいて、前記駆動部を停止させる、請求項２に記載のロボットシステム。
【請求項７】
ロボットの異常に関するデータを蓄積するデータ蓄積方法であって、
前記ロボットの第１の異常に関する第１のデータを取得するステップと、
前記ロボットの第２の異常に関する第２のデータを取得するステップと、
前記第１のデータに基づいて前記第１のデータを蓄積するか否かを判断するステップと、
前記第２のデータに基づいて前記第２のデータを蓄積するか否かを判断するステップと、
前記第１のデータを蓄積すると判断した場合、前記第１のデータを第１の周期で蓄積し、
前記第１のデータを蓄積しないと判断し、かつ、前記第２のデータを蓄積すると判断した場合、前記第２のデータを前記第１の周期よりも長い第２の周期で蓄積するステップとを含む、データ蓄積方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、データ蓄積装置、ロボットシステム、およびデータ蓄積方法に関する。
【背景技術】
【０００２】
特許文献１は、ロボットの異常発生履歴表示方法を開示している。図１１、図１２、および図１３を用いて、従来のロボットの異常発生履歴表示方法について説明する。図１１は、従来のサンプリングデータ記憶処理の概略を示すフローチャートである。図１２は、従来のデータ記憶ファイルの構成を示す概念図である。図１３は、従来のデータ表示の一例を示す図である。【０００３】
図１１に示すように、従来のサンプリングデータ記憶処理は、ステップＳ９０１〜ステップＳ９０９を有する。【０００４】
ステップＳ９０１では、異常検出フラグＦが初期値である「０」であるかどうかを判別する。異常検出フラグＦが「０」でない場合は、アラームが発生している。そのため、サンプリングデータ記憶処理は終了する。異常検出フラグＦが「０」である場合は、次のステップＳ９０２に進む。【０００５】
ステップＳ９０２では、トルク指令の現在値を読み込む。そして、次のステップＳ９０３に進む。【０００６】
ステップＳ９０３では、アドレス検索指標ｉに１を加算する。アドレス検索指標ｉの初期値は「０」である。そして、次のステップＳ９０４に進む。【０００７】
ステップＳ９０４では、１を加算されたアドレス検索指標ｉがｎを超えているかどうかを判別する。アドレス検索指標ｉがｎを超えていない場合は、ステップＳ９０６に進む。アドレス検索指標ｉがｎを超えている場合は、アドレス検索指標ｉを「１」に設定して（ステップ９０５）、ステップＳ９０６に進む。【０００８】
ステップＳ９０６では、データ記憶ファイルのアドレス検索指標ｉに対応するサンプリングデータとして、ステップＳ９０２で読み込んだトルク指令の現在値を記憶する。そして、次のステップＳ９０７に進む。【０００９】
ステップＳ９０７では、最終レコードアドレス記憶レジスタＰｅにアドレス検索指標ｉを記憶する。そして、次のステップＳ９０８に進む。【００１０】
ステップＳ９０８では、アラームが発生しているかどうかを判別する。アラームが発生している場合は、異常検出フラグＦを「１」に設定する（ステップＳ９０９）。そして、サンプリングデータ記憶処理を完了する。アラームが発生していない場合は、ステップＳ９０９を行わずに、サンプリングデータ記憶処理を完了する。【００１１】
このサンプリングデータ記憶処理（ステップＳ９０１〜Ｓ９０９）を、所定周期Δｔで繰り返し行うことで、図１２に示すようなデータ記憶ファイル９１０が生成される。図１２に示すように、データ記憶ファイル９１０のトルク指令のサンプリングデータの数は、アドレスの数ｎに制限されている。最も古いサンプリングデータは、最新のサンプリングデータに更新される。【００１２】
そして、図１３に示すように、データ記憶ファイル９１０に基づいて、横軸を時間ｔ、縦軸をトルク指令Ｔとして、アラーム発生時からｎ・Δｔに相当する時間だけ遡った分のトルク指令をグラフで表すことができる。【００１３】
また、特許文献２および特許文献３にも、アラーム発生に備えてサンプリングデータを蓄積することが記載されている。
【先行技術文献】
【特許文献】
【００１４】
【特許文献１】特開平９−３１１７１５号公報
【特許文献２】特開２００５−１０３６８１号公報
【特許文献３】特開２００８−２０３９６２号公報
【発明の概要】
【００１５】
従来のロボットの異常発生履歴表示方法において、サンプリングデータはあらかじめ設定されたサンプリング周期およびサンプリング時間で蓄積される。ここで、ロボットの複数の異常に対して、サンプリングデータを十分に蓄積することが望ましい。しかし、サンプリングデータを蓄積するためのメモリの容量が制限されているため、サンプリングによって蓄積されるデータ量は一定である。そのため、複数の異常に対して必要なデータをすべて蓄積することは困難である。本開示は、メモリの容量が制限されていても、ロボットの複数の異常に対して効率的にデータを蓄積できるデータ蓄積装置を提供する。
【００１６】
本開示のデータ蓄積装置は、ロボットの異常に関するデータを蓄積するデータ蓄積装置であって、第１取得部と、第２取得部と、第１判断部と、第２判断部と、メモリと、制御部とを備える。第１取得部は、ロボットの第１の異常に関する第１のデータを取得する。第２取得部は、ロボットの第２の異常に関する第２のデータを取得する。第１判断部は、第１のデータに基づいて第１のデータを蓄積するか否かを判断する。第２判断部は、第２のデータに基づいて第２のデータを蓄積するか否かを判断する。メモリには、第１のデータおよび第２のデータが蓄積される。制御部は、第１判断部が第１のデータを蓄積すると判断した場合、第１のデータを第１の周期でメモリに蓄積させる。さらに、制御部は、第１判断部が第１のデータを蓄積しないと判断し、かつ、第２判断部が第２のデータを蓄積すると判断した場合、第２のデータを第１の周期よりも長い第２の周期でメモリに蓄積させる。
【００１７】
また、本開示のロボットシステムは、データ蓄積装置と、ロボットと、ロボット制御装置とを備える。ロボットは、駆動部を有する。ロボット制御装置は、駆動部を制御する。
【００１８】
また、本開示のデータ蓄積方法は、ロボットの異常に関するデータを蓄積するデータ蓄積方法であって、ロボットの第１の異常に関する第１のデータを取得するステップと、ロボットの第２の異常に関する第２のデータを取得するステップと、第１のデータに基づいて第１のデータを蓄積するか否かを判断するステップと、第２のデータに基づいて第２のデータを蓄積するか否かを判断するステップと、第１のデータを蓄積すると判断した場合、第１のデータを第１の周期で蓄積し、第１のデータを蓄積しないと判断し、かつ、第２のデータを蓄積すると判断した場合、第２のデータを第１の周期よりも長い第２の周期で蓄積するステップとを含む。
【００１９】
本開示のデータ蓄積装置は、メモリの容量が制限されていても、ロボットの複数の異常に対して効率的にデータを蓄積できる。そのため、ロボットの異常をより正確に解析できる。
【図面の簡単な説明】
【００２０】
【図１】図１は、実施の形態のロボットシステムのブロック図である。
【図２】図２は、サンプリングモードの設定について説明するためのフローチャートである。
【図３】図３は、サンプリング条件の設定について説明するためのフローチャートの一部を示す図である。
【図４】図４は、サンプリング条件の設定について説明するためのフローチャートの一部を示す図である。
【図５】図５は、サンプリング条件の設定について説明するためのフローチャートの一部を示す図である。
【図６】図６は、サンプリングデータの蓄積について説明するためのフローチャートである。
【図７】図７は、サンプリングデータの蓄積例を示す図である。
【図８】図８は、過負荷検出において蓄積されたサンプリングデータの例を示す図である。
【図９】図９は、ロック状態検出において蓄積されたサンプリングデータの例を示す図である。
【図１０】図１０は、偏差カウンタオーバー検出において蓄積されたサンプリングデータの例を示す図である。
【図１１】図１１は、従来のサンプリングデータ記憶処理の概略を示すフローチャートである。
【図１２】図１２は、従来のロボットの異常発生履歴表示方法のデータ記憶ファイルの構成を示す概念図である。
【図１３】図１３は、従来のロボットの異常発生履歴表示方法のデータ表示の一例を示す図である。
【発明を実施するための形態】
【００２１】
（実施の形態）
以下、本開示の実施の形態について図１〜図１０を参照して説明する。
【００２２】
図１は、本実施の形態のロボットシステム３０のブロック図である。ロボットシステム３０は、表示器１と、ロボット制御装置２と、データ蓄積装置３と、ロボット２０とを備える。本実施の形態におけるロボット２０は、多関節型の産業用ロボットである。ロボット２０は、ロボット２０の各関節およびポジショナ等の外部軸を駆動するための複数のサーボモータ４を有する。サーボモータ４は、ロボット２０の駆動部の一例である。
【００２３】
ロボット制御装置２は、サーボモータ４を制御する。データ蓄積装置３は、ロボット２０の異常に関するデータを蓄積するデータ蓄積装置であって、第１取得部１０ａと、第２取得部１０ｂと、第３取得部１０ｃと、第１判断部１１ａと、第２判断部１１ｂと、第３判断部１１ｃと、メモリ１２と、制御部１３とを備える。表示器１は、メモリ１２に蓄積されたロボット２０の異常に関するデータを表示することができる。また、ロボット制御装置２は、メモリ１２に蓄積されたロボット２０の異常に関するデータに基づいて、サーボモータ４を停止させることができる。なお、本実施の形態においてロボット制御装置２はデータ蓄積装置３を有するが、本開示はこれに限定されない。ロボット制御装置２がデータ蓄積装置３を有さず、ロボットシステム３０がロボット制御装置２とデータ蓄積装置３とをそれぞれ備えていてもよい。
【００２４】
表示器１は、例えば液晶ディスプレイである。メモリ１２は、例えばハードディスクドライブである。メモリ１２は、例えばソリッドステートドライブであってもよい。メモリ１２は、データバッファとして機能する。
【００２５】
データ蓄積装置３は、ロボット２０の異常に関するデータについて、サンプリングモードの設定、およびサンプリング条件の設定を行う。そして、データ蓄積装置３は、ロボット２０の異常に関するデータであるサンプリングデータの蓄積を行う。データ蓄積装置３のこれらの動作について、図２〜図６を用いて以下に説明する。
【００２６】
サンプリングモードの設定について、図２を用いて説明する。図２は、サンプリングモードの設定について説明するためのフローチャートである。
【００２７】
制御部１３は、現在のサンプリングモードを前回のサンプリングモードに設定する（ステップａ１）。
【００２８】
第３取得部１０ｃは、サーボモータ４の第３の異常に関する第３のデータとして、サーボモータ４の温度をサーボモータ４から取得する。ここで、サーボモータ４の第３の異常とは、サーボモータ４の過負荷に関する異常である。第３判断部１１ｃは、サーボモータ４の温度に基づいて、サーボモータ４の温度を第３のデータとして蓄積するか否かを判断する。すなわち、第３判断部１１ｃは、サーボモータ４の温度が所定の温度以上であるか否かを判定することにより、サーボモータ４の温度を第３のデータとして蓄積するか否かを判断する（ステップａ２）。第３判断部１１ｃがサーボモータ４の温度を蓄積すると判断した場合（ステップａ２のＹ）、制御部１３はサンプリングモードを過負荷検出に設定する（ステップａ３）。第３判断部１１ｃがサーボモータ４の温度を蓄積しないと判断した場合（ステップａ２のＮ）、ステップａ４に進む。
【００２９】
次に、第２取得部１０ｂは、サーボモータ４の第２の異常に関する第２のデータとして、サーボモータ４の速度フィードバック値をサーボモータ４から取得する。ここで、サーボモータ４の第２の異常とは、サーボモータ４のロック状態に関する異常である。第２判断部１１ｂは、サーボモータ４の速度フィードバック値に基づいて、サーボモータ４の速度フィードバック値を第２のデータとして蓄積するか否かを判断する。すなわち、第２判断部１１ｂは、サーボモータの速度フィードバック値からロック状態時間を算出する。そして、第２判断部１１ｂは、サーボモータ４のロック状態時間が所定の時間以上であるか否かを判定することにより、サーボモータ４の速度フィードバック値を第２のデータとして蓄積するか否かを判断する（ステップａ４）。第２判断部１１ｂがサーボモータ４の速度フィードバック値を蓄積すると判断した場合（ステップａ４のＹ）、制御部１３はサンプリングモードをロック状態検出に設定する（ステップａ５）。第２判断部１１ｂがサーボモータ４の速度フィードバック値を蓄積しないと判断した場合（ステップａ４のＮ）、ステップａ６に進む。
【００３０】
次に、第１取得部１０ａは、サーボモータ４の第１の異常に関する第１のデータとして、サーボモータ４の偏差カウンタ値をサーボモータ４から取得する。ここで、サーボモータ４の第１の異常とは、サーボモータ４の偏差カウンタオーバーに関する異常である。第１判断部１１ａは、サーボモータ４の偏差カウンタ値に基づいて、サーボモータ４の偏差カウンタ値を第１のデータとして蓄積するか否かを判断する。すなわち、第１判断部１１ａは、サーボモータ４の偏差カウンタ値が所定の値以上であるか否かを判定することにより、サーボモータの偏差カウンタ値を第１のデータとして蓄積するか否かを判断する（ステップａ６）。第１判断部１１ａがサーボモータ４の偏差カウンタ値を蓄積すると判断した場合（ステップａ６のＹ）、制御部１３はサンプリングモードを偏差カウンタオーバー検出に設定する（ステップａ７）。第１判断部１１ａがサーボモータ４の偏差カウンタ値を蓄積しないと判断した場合（ステップａ６のＮ）、サンプリングモードの設定処理を終了する。
【００３１】
以上のように、制御部１３は、第１判断部１１ａが偏差カウンタ値を蓄積すると判断した場合、サンプリングモードを偏差カウンタオーバー検出に設定する。また、制御部１３は、第１判断部１１ａが偏差カウンタ値を蓄積しないと判断し、かつ、第２判断部１１ｂが速度フィードバック値を蓄積すると判断した場合、サンプリングモードをロック状態検出に設定する。また、制御部１３は、第１判断部１１ａが偏差カウンタ値を蓄積しないと判断し、かつ、第２判断部１１ｂが速度フィードバック値を蓄積しないと判断し、かつ、第３判断部１１ｃがサーボモータ４の温度を蓄積すると判断した場合、サンプリングモードを過負荷検出に設定する。
【００３２】
サンプリングモードの判断順序は、各サンプリングモードのサンプリング周期の長い順に行われる。すなわち、サンプリング周期の短いサンプリングモードが優先して設定される。具体的には、過負荷検出におけるサンプリング周期が最も長く、ロック状態検出におけるサンプリング周期が次に長く、偏差カウンタオーバー検出におけるサンプリング周期が最も短い。これらのサンプリング周期は、各サンプリングモードにおいてアラームが発生した際の緊急度に対応している。
【００３３】
サンプリング条件の設定について、図３〜図５を用いて説明する。図３〜図５は、サンプリング条件の設定について説明するためのフローチャートである。
【００３４】
図３に示すように、制御部１３は、現在のサンプリングモードが前回のサンプリングモードから変化したか否かを判定する（ステップｂ１）。サンプリングモードが変化していない場合（ステップｂ１のＮ）、制御部１３は処理を終了する。サンプリングモードが変化した場合（ステップｂ１のＹ）、制御部１３はサンプリングモードが過負荷検出か否かを判定する（ステップｂ２）。サンプリングモードが過負荷検出でなければ（ステップｂ２のＮ）、次の判定（ステップｂ６）に進む。サンプリングモードが過負荷検出であれば（ステップｂ２のＹ）、制御部１３は以下の設定を行う。制御部１３は、保存データ数Ｎｓを過負荷検出モードの保存データ数ｎ１に設定する（ステップｂ３）。そして、制御部１３は、保存データアドレスにサンプリングデータＡ１〜Ａｎ１を設定する（ステップｂ４）。ここで、サンプリングデータＡ１〜Ａｎ１の１つは、サーボモータ４の温度である。サンプリングデータＡ１〜Ａｎ１の別の１つは、サーボモータ４の速度フィードバック値であってもよい。サンプリングデータＡ１〜Ａｎ１のさらに別の１つは、サーボモータ４の総発熱量であってもよい。そして、制御部１３は、サンプリング周期Ｔｓを第３の周期ｔ３に設定する（ステップｂ５）。
【００３５】
次に、図４に示すように、制御部１３は、現在のサンプリングモードがロック状態検出か否かを判定する（ステップｂ６）。サンプリングモードがロック状態検出でなければ（ステップｂ６のＮ）、次の判定（ステップｂ１０）に進む。サンプリングモードがロック状態検出であれば（ステップｂ６のＹ）、制御部１３は以下の設定を行う。制御部１３は、保存データ数Ｎｓをロック状態検出モードの保存データ数ｎ２に設定する（ステップｂ７）。そして、制御部１３は、保存データアドレスにサンプリングデータＢ１〜Ｂｎ２を設定する（ステップｂ８）。ここで、サンプリングデータＢ１〜Ｂｎ２の１つは、サーボモータ４の速度フィードバック値である。サンプリングデータＢ１〜Ｂｎ２の別の１つは、サーボモータ４の電流指令であってもよい。そして、制御部１３は、サンプリング周期Ｔｓを第２の周期ｔ２に設定する（ステップｂ９）。ここで、第２の周期ｔ２は、第３の周期ｔ３よりも短い。
【００３６】
次に、図５に示すように、制御部１３は、現在のサンプリングモードが偏差カウンタオーバー検出か否かを判定する（ステップｂ１０）。サンプリングモードが偏差カウンタオーバー検出でなければ（ステップｂ１０のＮ）、次の処理（ステップｂ１４）に進む。サンプリングモードが偏差カウンタオーバー検出であれば（ステップｂ１０のＹ）、制御部１３は以下の設定を行う。制御部１３は、保存データ数Ｎｓを偏差カウンタオーバー検出モードの保存データ数ｎ３に設定する（ステップｂ１１）。そして、制御部１３は、保存データアドレスにサンプリングデータＣ１〜Ｃｎ３を設定する（ステップｂ１２）。ここで、サンプリングデータＣ１〜Ｃｎ３の１つは、サーボモータ４の偏差カウンタ値である。サンプリングデータＣ１〜Ｃｎ３の別の１つは、サーボモータ４の位置フィードバック値であってもよい。そして、制御部１３は、サンプリング周期Ｔｓを第１の周期ｔ１に設定する（ステップｂ１３）。ここで、第１の周期ｔ１は、第２の周期ｔ２よりも短い。
【００３７】
次に、制御部１３は、サンプリング周期カウンタＣＮＴｓおよびバッファカウンタＷｐを初期化（ゼロクリア）する（ステップｂ１４）。すなわち、制御部１３は、サンプリング周期カウンタＣＮＴｓおよびバッファカウンタＷｐを「０」に設定する。なお、制御部１３は、以上の動作において、サンプリングデータＡ１〜Ａｎ１，Ｂ１〜Ｂｎ２，およびＣ１〜Ｃｎ３を、ランダムアクセスメモリにいったん保存してもよい。
【００３８】
サンプリングデータの蓄積について、図６を用いて説明する。図６は、サンプリングデータの蓄積について説明するためのフローチャートである。制御部１３は、アラームが発生しているか否かを判定する（ステップｃ１）。アラームが発生していれば（ステップｃ１のＹ）、制御部１３は処理を終了する。アラームが発生していなければ（ステップｃ１のＮ）、制御部１３は現在の制御周期がサンプリング制御周期であるか否かを判定する（ステップｃ２）。具体的には、制御部１３はサンプリング周期カウンタＣＮＴｓとサンプリング周期Ｔｓとを比較することにより、現在の制御周期がサンプリング制御周期であるか否かを判定する。現在の制御周期がサンプリング制御周期でなければ（ステップｃ２のＮ）、制御部１３は、サンプリング周期カウンタＣＮＴｓに１を加算して（ステップｃ１０）、処理を終了する。現在の制御周期がサンプリング制御周期であれば（ステップｃ２のＹ）、制御部１３は保存データカウンタｉを初期化（ゼロクリア）する（ステップｃ３）。次に、制御部１３は、保存データ数Ｎｓと保存データカウンタｉとを比較する（ステップｃ４）。保存データカウンタｉが保存データ数Ｎｓ以上であれば（ステップｃ４のＮ）、制御部１３は処理を終了する。保存データカウンタｉが保存データ数Ｎｓより小さければ（ステップｃ４のＹ）、制御部１３はサンプリングデータをメモリ１２に蓄積させる。具体的には、制御部１３は、保存データカウンタｉに対応するサンプリングデータを、バッファカウンタＷｐに対応するメモリ１２のアドレスに書込む（ステップｃ５）。そして、制御部１３は、保存データカウンタｉに１を加算し（ステップｃ６）、バッファカウンタＷｐに１を加算する（ステップｃ７）。そして、制御部１３は、バッファカウンタＷｐが所定のバッファサイズ以上であるか否かを判定する（ステップｃ８）。バッファカウンタＷｐがバッファサイズ以上であれば（ステップｃ８のＹ）、制御部１３はバッファカウンタＷｐを初期化（ゼロクリア）する（ステップＣ９）。これにより、蓄積されるサンプリングデータがメモリ１２の容量を超える場合に、最も古いサンプリングデータが最新のサンプリングデータに更新される。そして、ステップｃ４に戻る。以降、制御部１３は、保存データカウンタｉが保存データ数Ｎｓ以上になるまでステップｃ４〜ステップｃ９の処理を繰り返し実行する。そして、制御部１３は、保存データカウンタｉが保存データ数Ｎｓ以上になった場合に（ステップｃ４のＮ）、処理を終了する。
【００３９】
図７は、サンプリングデータの蓄積例を示す図である。図８は、過負荷検出において蓄積されたサンプリングデータの例を示す図である。図９は、ロック検出において蓄積されたサンプリングデータの例を示す図である。図１０は、偏差カウンタオーバー検出において蓄積されたサンプリングデータの例を示す図である。
【００４０】
第１取得部１０ａ、第２取得部１０ｂ、および第３取得部１０ｃは、図７に示す制御周期毎に、データを取得する。制御周期の間隔は、例えば２ｍｓｅｃである。具体的には、第１取得部１０ａは、制御周期毎に、サーボモータ４の偏差カウンタ値を取得する。第２取得部１０ｂは、制御周期毎に、サーボモータ４の速度フィードバック値を取得する。第３取得部１０ｃは、制御周期毎に、サーボモータ４の温度を取得する。制御部１３は、図２のフローチャートに示すようなサンプリングモードの判定を、制御周期毎に実行する。そして、制御部１３は、図３〜図５に示すように、サンプリングモード変更時にサンプリンデータ取得条件を更新する。制御部１３は、更新されたサンプリングデータ取得条件に基づいて、図６に示すように、サンプリングデータをメモリ１２に蓄積させる。
【００４１】
蓄積されたサンプリングデータの具体例について、図７〜図１０を用いて説明する。
【００４２】
制御部１３は、図７に示す制御周期ｄ１において、サンプリングモードが過負荷検出であると判定する。そして、制御部１３は、サンプリング周期Ｔｓを第３の周期ｔ３に設定する。制御部１３は、制御周期ｄ１から第３の周期ｔ３経過後の制御周期ｄ１０において、サンプリングデータＡ１〜Ａｎ１をメモリ１２に蓄積させる。制御部１３は、制御周期ｄ１０から第３の周期ｔ３経過後の制御周期ｄ１１において、再度サンプリングデータＡ１〜Ａｎ１をメモリ１２に蓄積させる（図８参照）。
【００４３】
次に、制御部１３は、図７に示す制御周期ｄ２において、サンプリングモードがロック状態検出であると判定する。そして、制御部１３は、サンプリング周期Ｔｓを第２の周期ｔ２に設定する。制御部１３は、制御周期ｄ２から第２の周期ｔ２経過後の制御周期ｄ１２において、サンプリングデータＢ１〜Ｂｎ２をメモリ１２に蓄積させる。以後、制御部１３は、制御周期ｄ１２から第２の周期ｔ２経過毎の制御周期ｄ１３および制御周期ｄ１４において、サンプリングデータＢ１〜Ｂｎ２をメモリ１２に蓄積させる（図９参照）。
【００４４】
次に、制御部１３は、図７に示す制御周期ｄ３において、サンプリングモードが偏差カウンタオーバー検出であると判定する。そして、制御部１３は、サンプリング周期Ｔｓを第１の周期ｔ１に設定する。制御部１３は、制御周期ｄ３から第１の周期ｔ１経過後の制御周期ｄ１５において、サンプリングデータＣ１〜Ｃｎ３をメモリ１２に蓄積させる。以後、制御部１３は、制御周期ｄ１５から第１の周期ｔ１経過毎の制御周期ｄ１６、制御周期ｄ１７、および制御周期ｄ１８において、サンプリングデータＣ１〜Ｃｎ３をメモリ１２に蓄積させる（図１０参照）。
【００４５】
以上に説明したように、データ蓄積装置３は、緊急度の高いサンプリングモードを優先して、ロボット２０の異常に関するデータを蓄積することができる。これにより、データ蓄積装置３は、ロボット２０の複数の異常に対して、効率的にデータを蓄積できる。
【００４６】
なお、以上に説明した、第１取得部１０ａ、第２取得部１０ｂ、第３取得部１０ｃ、第１判断部１１ａ、第２判断部１１ｂ、第３判断部１１ｃ、および制御部１３の各々は、例えば集積回路である。また、第１取得部１０ａ、第２取得部１０ｂ、第３取得部１０ｃ、第１判断部１１ａ、第２判断部１１ｂ、第３判断部１１ｃ、および制御部１３の一部または全部は、一つの集積回路によって実現してもよい。また、第１取得部１０ａ、第２取得部１０ｂ、第３取得部１０ｃ、第１判断部１１ａ、第２判断部１１ｂ、第３判断部１１ｃ、および制御部１３の各機能は、集積回路とプログラムとの協働によって実現してもよい。すなわち、第１取得部１０ａ、第２取得部１０ｂ、第３取得部１０ｃ、第１判断部１１ａ、第２判断部１１ｂ、第３判断部１１ｃ、および制御部１３は、マイクロコントローラであってもよい。
【００４７】
また、データ蓄積装置３は、第３取得部１０ｃおよび第３判断部１１ｃを備えなくてもよい。この場合、データ蓄積装置３は、第１の異常に関する第１のデータおよび第２の異常に関する第２のデータを蓄積する。
【産業上の利用可能性】
【００４８】
本開示のデータ蓄積装置は、メモリの容量が制限されていても、ロボットの複数の異常に対して効率的にデータを蓄積できる。そのため、本開示のデータ蓄積装置は、ロボットの異常をより正確に解析するのに有用であり、産業上有用である。
【符号の説明】
【００４９】
１  表示器
２  ロボット制御装置
３  データ蓄積装置
４  サーボモータ（駆動部）
１０ａ  第１取得部
１０ｂ  第２取得部
１０ｃ  第３取得部
１１ａ  第１判断部
１１ｂ  第２判断部
１１ｃ  第３判断部
１２  メモリ
１３  制御部
２０  ロボット
３０  ロボットシステム
Ｓ９０１〜Ｓ９０９  ステップ
９１０  データ記憶ファイル
【図１】
0006719059.tif 000002
【図２】
0006719059.tif 000003
【図３】
0006719059.tif 000004
【図４】
0006719059.tif 000005
【図５】
0006719059.tif 000006
【図６】
0006719059.tif 000007
【図７】
0006719059.tif 000008
【図８】
0006719059.tif 000009
【図９】
0006719059.tif 000010
【図１０】
0006719059.tif 000011
【図１１】
0006719059.tif 000012
【図１２】
0006719059.tif 000013
【図１３】
0006719059.tif 000014