(57)【要約】  エンコーダの異常検出方法は、出力ステップと、制御ステップと、情報取得ステップと、異常判定ステップとを有する。異常判定ステップは、指令位置情報と、出力信号に基づいて算出されたモータの検出位置情報とを比較し、指令位置情報とモータの検出位置情報との間に所定値以上の差があった場合に、エンコーダを異常と判定する。
2018079075.tif 000002
【特許請求の範囲】
【請求項１】
ロボット制御部を用いて、作動装置の出力軸を駆動するモータの回転位置を検出するエンコーダの異常を検出するエンコーダの異常検出方法であって、
前記ロボット制御部は、
コントローラと、
前記エンコーダと前記コントローラに接続されたドライバと、
前記エンコーダと前記コントローラに接続された異常検出装置と、
を有しており、
前記エンコーダの異常検出方法は、
前記モータの回転位置を指示する速度指令、及び、前記速度指令に応じた前記モータの回転位置を示す指令位置情報を出力する出力ステップと、
前記速度指令、及び、前記エンコーダから出力される出力信号を受け、前記速度指令及び前記出力信号に基づいて前記モータの駆動を制御する制御ステップと、
前記コントローラから前記指令位置情報を取得し、かつ、前記エンコーダから前記出力信号を取得する情報取得ステップと、
前記指令位置情報と、前記出力信号に基づいて算出された前記モータの検出位置情報とを比較し、前記指令位置情報と前記モータの前記検出位置情報との間に所定値以上の差があった場合に、前記エンコーダを異常と判定する異常判定ステップと、
を備える、
エンコーダの異常検出方法。
【請求項２】
前記指令位置情報に対して、前記モータの駆動制御の遅れに起因する時間遅れを補償するステップをさらに備える
請求項１記載のエンコーダの異常検出方法。
【請求項３】
前記指令位置情報から共振成分を除去するステップをさらに備える
請求項１または２記載のエンコーダの異常検出方法。
【請求項４】
前記作動装置の駆動制御モードの切り替えを検知する制御モード検知ステップと、
前記駆動制御モードの切り替えに応じて、前記指令位置情報の処理ルートを切り替える処理ルート切替ステップと、
をさらに備える
請求項１に記載のエンコーダの異常検出方法。
【請求項５】
前記処理ルートの切り替えに応じて、前記異常検出装置は、前記モータの駆動制御の遅れに起因する時間遅れが補償された指令位置情報、または
共振成分が除去され、かつ、前記時間遅れが補償された指令位置情報を受け取る
請求項４に記載のエンコーダの異常検出方法。
【請求項６】
前記処理ルートの切り替えに応じて、前記指令位置情報の前記時間遅れの補償量が異なる
請求項５に記載のエンコーダの異常検出方法。
【請求項７】
検知された駆動制御モードに対応する第１処理ルートにおいて、前記コントローラから出力された前記指令位置情報を処理するステップと、
前記駆動制御モードに対応していない第２処理ルートにおいて、前記モータの原点位置に対応する位置情報を指令位置情報として処理するステップと、
前記第１及び第２処理ルートで処理された指令位置情報を加算するステップと、
をさらに有し、
前記異常検出装置は、前記加算された指令位置情報を受け取る、請求項４に記載のエンコーダの異常検出方法。
【請求項８】
前記第１処理ルートと前記第２処理ルートの少なくともいずれか一方において、前記指令位置情報の時間遅れを補償する遅れ補償ステップを行い、前記遅れ補償ステップにおいてフィードフォワード制御を行う、
請求項７に記載のエンコーダの異常検出方法。
【請求項９】
前記異常検出装置は、前記異常判定ステップにおいて、前記コントローラから出力された前記指令位置情報の変化量の積算値を生成し、前記積算値及び前記指令位置情報の和と、前記検出位置情報との比較結果に基づいて、前記エンコーダの異常の有無を判定する
請求項１から８のうちのいずれか１項に記載のエンコーダの異常検出方法。
【請求項１０】
前記異常検出装置は、前記異常判定ステップにおいて、前記積算値及び前記指令位置情報の和に所定のオフセット値を加えた値と、前記検出位置情報との比較結果に基づいて、前記エンコーダの異常の有無を判定する
請求項９記載のエンコーダの異常検出方法。
【請求項１１】
前記ロボット制御部は、前記作動装置を非常停止するための安全回路をさらに有しており、
前記コントローラは、非常時に前記安全回路に非常停止信号を送信するように構成され、
前記異常検出装置は、前記異常判定ステップにおいて、前記コントローラから前記非常停止信号が出力されたことを検知した場合、前記指令位置情報と前記モータの前記検出位置情報との間に所定値以上の差があっても、前記エンコーダの異常と判定しない
請求項１から１０のうちのいずれか１項に記載のエンコーダの異常検出方法。
【請求項１２】
前記作動装置はロボットである
請求項１から１１のうちのいずれか１項に記載のエンコーダの異常検出方法。
【請求項１３】
エンコーダとコントローラに接続され、作動装置の出力軸を駆動するモータの回転位置を検出するためのエンコーダの異常を検出するエンコーダの異常検出装置であって、
前記エンコーダの異常検出装置は、
前記エンコーダから前記出力信号を受ける第１受信部と、
前記コントローラから前記指令位置情報を受ける第２受信部と、
前記指令位置情報と、前記出力信号に基づいて算出される前記モータの検出位置情報とを比較し、前記指令位置情報と前記モータの前記検出位置情報との間に所定値以上の差があった場合に、前記エンコーダを異常と判定する判定部と、
備える
エンコーダの異常検出装置。
【請求項１４】
前記コントローラと前記異常検出装置との間に、ドライバによる前記モータの駆動制御の遅れを補償する遅れ制御フィルタをさらに備える
請求項１３記載のエンコーダの異常検出装置。
【請求項１５】
前記ドライバと前記モータとの間に前記モータの振動を抑制する制振フィルタを備え、前記コントローラと前記第異常検出装置との間に、前記遅れ制御フィルタと直列接続された制振フィルタを備える
請求項１４記載のエンコーダの異常検出装置。
【請求項１６】
前記コントローラは、前記作動装置の駆動制御モードの切り替えを検知し、前記コントローラから異常検出装置に送信される前記指令位置情報の処理ルートを切り替える制御切替部を有し、
前記コントローラと前記異常検出装置との間に、前記モータの駆動制御の遅れを補償する第１の遅れ制御フィルタと、前記モータの駆動制御の遅れを補償する第２の遅れ制御フィルタとが並列に接続され、かつ、前記第２の遅れ制御フィルタと、前記モータの振動を抑制する制振フィルタとが直列に設けられており、
前記制御切替部での処理ルートの切り替えに応じて、前記指令位置情報が、前記第１の遅れ制御フィルタ、または、前記制振フィルタ及び前記第２の遅れ制御フィルタに送られる
請求項１３に記載のエンコーダの異常検出装置。
【請求項１７】
前記第１の遅れ制御フィルタと前記第２の遅れ制御フィルタとの時定数が等しい
請求項１６に記載のエンコーダの異常検出装置。
【請求項１８】
前記第１の遅れ制御フィルタと前記第２の遅れ制御フィルタとの時定数が異なる
請求項１６に記載のエンコーダの異常検出装置。
【請求項１９】
モータの回転位置を検出するエンコーダと、
前記モータの回転位置を指示する速度指令、及び、前記速度指令に応じた前記モータの回転位置を示す指令位置情報を出力するコントローラと、
前記コントローラから出力される速度指令、及び、前記エンコーダから出力される出力信号を受け、前記速度指令、及び、前記出力信号に基づいて前記モータの駆動を制御するドライバと、
前記エンコーダと前記コントローラに接続された異常検出装置とを備え、
前記異常検出装置は、
前記エンコーダから前記出力信号を受ける第１受信部と、
前記コントローラから前記指令位置情報を受ける第２受信部と、
前記指令位置情報と、前記出力信号に基づいて算出される前記モータの検出位置情報とを比較し、前記指令位置情報と前記モータの前記検出位置情報との間に所定値以上の差があった場合に、前記エンコーダの異常と判定する判定部と、
を有する
ロボット制御システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、エンコーダの異常を検出する異常検出方法に関し、特に、ロボット等の作動装置の出力軸の駆動に係るモータの回転位置を検出するエンコーダの異常検出方法及び異常検出装置に関する。
【背景技術】
【０００２】
従来からロボット等の作動装置の出力軸を駆動するモータの回転位置を検出するために用いられるエンコーダの故障に係る異常検出技術が知られている。【０００３】
特許文献１には、モータの入力軸の回転を検出する第１のエンコーダと、モータの出力軸の回転を検出する第２のエンコーダを設け、第１のエンコーダと第２のエンコーダで検出された位置測定値に一定以上の差がある場合に、エンコーダの異常と判定する技術が開示されている。【０００４】
また、特許文献２には、モータが正常に制御されていることを監視するセーフティユニットを有するサーボシステムが開示されている。特許文献２に係るセーフティユニットは、モータを制御しているサーボドライバから受けた指令値やフィードバック値が異常である場合に、上記サーボドライバへの停止信号を生成する。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特許第５６７５７６１号公報
【特許文献２】特許第５３６７６２３号公報
【発明の概要】
【０００６】
本開示は、ロボット制御部を用いて、モータの回転位置を検出するエンコーダの異常を検出するエンコーダの異常検出方法である。
【０００７】
ロボット制御部は、コントローラと、ドライバと、異常検出装置と、を有している。
【０００８】
ドライバは、エンコーダとコントローラに接続されている。
【０００９】
異常検出装置は、エンコーダとコントローラに接続されている。
【００１０】
エンコーダの異常検出方法は、
モータの回転位置を指示する速度指令、及び、速度指令に応じたモータの回転位置を示す指令位置情報を出力する出力ステップと、
速度指令、及び、エンコーダから出力される出力信号を受け、速度指令及び出力信号に基づいてモータの駆動を制御する制御ステップと、
コントローラから指令位置情報を取得し、かつ、エンコーダから出力信号を取得する情報取得ステップと、
指令位置情報と、出力信号に基づいて算出されたモータの検出位置情報とを比較し、指令位置情報とモータの検出位置情報との間に所定値以上の差があった場合に、エンコーダを異常と判定する異常判定ステップと、
を有する。
【図面の簡単な説明】
【００１１】
【図１】図１は、実施の形態に係るロボット制御システムの概略構成図である。
【図２】図２は、第１実施形態に係るロボット制御部の構成を示すブロック図である。
【図３】図３は、第１実施形態に係るセーフティユニットの構成を示すブロック図である。
【図４】図４は、第１実施形態に係るエンコーダの異常判断方法を示すフローチャートである。
【図５】図５は、第１実施形態に係るロボット制御部の他の構成例を示すブロック図である。
【図６】図６は、第１実施形態に係るモータ指令位置とモータ検出位置との関係を示す図である。
【図７】図７は、第１実施形態に係るロボット制御部の他の構成例を示すブロック図である。
【図８】図８は、第１実施形態に係るモータ指令位置とモータ検出位置との関係を示す図である。
【図９】図９は、第１実施形態に係るエンコーダの異常判断方法の他の例を示すフローチャートである。
【図１０】図１０は、第２実施形態に係る進行動作をした場合のモータ指令位置と実位置との関係を示す図である。
【図１１】図１１は、第２実施形態に係る往復動作をした場合のモータ指令位置と実位置との関係を示す図である。
【図１２】図１２は、第２実施形態に係るモータ指令位置とモータ検出位置との関係を示す図である。
【図１３】図１３は、第３実施形態に係るロボット制御部の構成を示すブロック図である。
【図１４】図１４は、第３実施形態に係るエンコーダの異常判断方法を示すフローチャートである。
【図１５】図１５は、第３実施形態に係るロボット制御部の他の構成を示すブロック図である。
【図１６】図１６は、第３実施形態に係るロボット制御部のさらなる他の構成を示すブロック図である。
【図１７】図１７は、第３実施形態に係るエンコーダの異常判断方法の他の例を示すフローチャートである。
【図１８】図１８は、第３実施形態に係るロボットの現在位置の時間変化を示す図である。
【図１９】図１９は、第３実施形態に係るロボット制御部のさらなる他の構成を示すブロック図である。
【図２０】図２０は、第３実施形態に係るロボットの現在位置の時間変化の他の例を示す図である。
【図２１】図２１は、図２０を部分的に拡大した図である。
【図２２】図２２は、従来の技術に係るロボット制御部の構成を示すブロック図である。
【発明を実施するための形態】
【００１２】
従来の汎用の作動装置の駆動系（モータ）では単一のエンコーダしか設けられていないものも多く、特許文献１に開示された技術は、これらの汎用モータに対して適用できない。また、新規に特許文献１に係るシステムを構成する場合は、複数のセンサを設ける必要があるため、コストが高くなる。
【００１３】
特許文献２に開示された技術を、異常検出機能を有していない汎用のシステムに対して適用する場合、サーボドライバに新しい機能を追加する必要がある。すなわち、サーボドライバ及びセーフティユニット双方の開発が必要であり、工数がかかる。
【００１４】
図２２は、特許文献２に開示された従来の技術に係るロボット制御部の構成を示すブロック図を示している。コントローラ７が、サーボドライバ１０に指令信号を出力し、サーボドライバ１０が、コントローラ７から受けた指令信号、及び、エンコーダ５から取得した検出信号に基づいてモータ４を制御する。
【００１５】
サーボドライバ１０が、コントローラ７から受けた指令信号に基づいてモータ４の回転位置に係る比較処理用の指令値（モータ指令値）を生成し、セーフティユニット９に出力している。同様に、サーボドライバ１０は、エンコーダ５から取得した出力信号、モータ４各軸の減速比及びモータ４の原点情報等に基づいてモータ４の回転位置を示す値（モータ検出値）を生成し、セーフティユニット９に出力している。そして、セーフティユニット９では、サーボドライバ１０から受けたモータ指令値とモータ検出値とを比較し、その比較結果に基づいてエンコーダ５の異常を判断している。
【００１６】
しかしながら、エンコーダ５の異常検出装置を有していない汎用ロボットに対して図２２に示すような構成を適用する場合、汎用ロボットのサーボドライバ１０は、通常、モータ指令値及びモータ検出値を生成する機能及び生成したモータ指令値及びモータ検出値を出力する機能を有していない。
【００１７】
したがって、上記生成機能及び出力機能を有する回路、プログラム等を新規に設計する必要がある。また、追加設計した回路及びプログラム等が正しく機能しているかどうかを示すような仕組み（回路、プログラム、表示等）が必要である。すなわち、手間がかかるとともに処理が複雑化する。
【００１８】
以下、本実施の形態を図面に基づいて詳細に説明する。以下の実施形態の説明は、例示に過ぎない。
【００１９】
−第１実施形態−
＜ロボット及びその制御系の構成＞
図１は、本実施形態に係る作動装置としてのロボット制御システムの概略構成図である。また、図２はロボット制御部２の構成を示すブロック図であり、情報又は信号の送信方向がわかるように矢印を記載している。
【００２０】
図１に示すように、ロボットＡは、ロボット機構部１と、ロボット制御部２と、ディスプレイ付きの操作部３とによって構成されている。ロボット機構部１とロボット制御部２との間は、接続ケーブルＣによって接続されている。なお、図１では、接続ケーブルＣによる有線接続によって情報が伝達されるものとしている。しかし、接続形態は有線接続に限定されず、無線で接続してもよい。各ブロック間の接続も同様である。
【００２１】
ロボット機構部１は、複数のロボットアーム１１および複数の関節軸１２を有している。ロボットアーム１１の各々には、それぞれ、ロボットアーム１１を動作させるためのモータ４（サーボモータ）が取り付けられている。例えば、ロボットＡが垂直多関節６軸ロボットである場合、ロボットＡは６個のロボットアーム１１を有し、ロボットアーム１１の各々に対応するように６個のモータ４が設けられている。モータ４の各々には、モータ４の各々の回転位置又は回転位置に基づく回転量を検出するためのエンコーダ５が取り付けられている。
【００２２】
図１では図示しないが、ロボットＡに対して、ロボット制御部２からロボット機構部１への駆動制御に基づいて駆動される外部軸が付設されている。外部軸は、ロボットＡの可動範囲を拡大させるためにロボット機構部１と組み合わせて用いられるものである。外部軸には、外部軸を動作させるためのモータ４が取り付けられている。モータ４には、モータ４の回転位置又は当該回転位置に基づく回転量を検出するためのエンコーダ５が取り付けられている。すなわち、複数の関節軸１２及び外部軸のそれぞれに対してモータ４が設けられ、モータ４の各々に対してエンコーダ５が取り付けられる。なお、外部軸の種類は、特に限定されない。例えば、スライダタイプ又はポジショナタイプのどちらであっても本実施形態に係る技術が適用可能であり、それ以外のタイプのものであってもよい。
【００２３】
なお、本実施形態では、発明の理解を容易にするために、複数の関節軸１２を用いるモータ４及びエンコーダ５と、外部軸に用いるモータ４及びエンコーダ５とを区別せずに図示（図１参照）及び説明している。したがって、以下において、モータ４又はエンコーダ５という場合、複数の関節軸１２を用いるものと、外部軸に用いるものとの両方を指すものとする。すなわち、以下において説明するエンコーダ５の異常検出装置及び異常検出方法は、複数の関節軸１２用のモータ４に取り付けられるエンコーダ５と、外部軸用のモータ４に取り付けられるエンコーダ５の両方において適用が可能である。
【００２４】
エンコーダ５は、後述するセーフティユニット９（異常検出装置）及びサーボドライバ１０（ドライバ）に接続されており、セーフティユニット９及びサーボドライバ１０に対して、検出した信号を出力（フィードバック）する。
【００２５】
操作部３は、ロボットＡの操作者の入力操作を受ける入力部（図示しない）とディスプレイ（図示しない）とを有する。操作部３は、操作者からの入力操作に基づいて、ロボット制御部２と通信を行う。これにより、操作者が操作部３を介して、ロボットアーム１１の動作設定や動作制御等を行うことができる。なお、入力部がタッチパネルで構成され、ディスプレイと入力部とが一体的に構成されていてもよい。
【００２６】
ロボット制御部２は、コントローラ（例えば、ＣＰＵ）７と、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）８と、異常検出装置としてのセーフティユニット９と、モータ４の各々を駆動させるためのサーボドライバ１０と、セーフティユニット９から非常停止を指示する非常停止信号を受けてロボットＡの駆動用電源（図示しない）を遮断する安全回路（コントローラ）６とを有している。なお、本開示において、ロボット制御システムとは、エンコーダ５と、ロボット制御部２とを有している。
【００２７】
ＲＡＭ８には、操作者が操作部３によって作成したロボットＡの教示プログラムやロボットＡの機能設定等が格納されている。
【００２８】
コントローラ７は、ＲＡＭ８に格納された上記ロボットＡの教示プログラムやロボットＡの機能設定等に基づいて、サーボドライバ１０に速度指令（単位時間あたりに進む距離）を出力してロボットＡの動作指令を行う。また、コントローラ７は、上記速度指令を原点位置から積算し、その積算値を指令位置情報としてセーフティユニット９に出力する。速度指令は、例えば、ロボットＡの減速比、原点位置等に基づいて計算される。
【００２９】
サーボドライバ１０は、コントローラ７から受けた速度指令及びエンコーダ５からの出力信号に基づいてモータ４を制御することにより、ロボットＡの動作を制御する。
【００３０】
セーフティユニット９は、エンコーダ５及びコントローラ７に直接接続されている。そして、エンコーダ５から受けた出力信号に基づいて算出されたモータ４の検出位置情報と、コントローラ７から受けた指令位置情報とに基づいて、エンコーダ５が故障しているか否かを判断する。
【００３１】
図３はセーフティユニット９の構成を示すブロック図である。
【００３２】
図３に示すように、セーフティユニット９は、判定部としてのＣＰＵ９２と、ＲＡＭ９３と、第１受信部としてのエンコーダ受信部９４と、第２受信部としてのＤＰＲＡＭ（Ｄｕａｌ  Ｐｏｒｔ  ＲＡＭ）９５とを有している。
【００３３】
エンコーダ受信部９４は、エンコーダ５に接続されており、エンコーダ５からの出力信号を取得する。
【００３４】
ＤＰＲＡＭ９５は、ロボット制御部２のコントローラ７に接続されており、コントローラ７から出力された指令位置情報を取得する。この指令位置情報は、コントローラ７からサーボドライバ１０に対して出力される速度指令の積算によって求められる。ＤＰＲＡＭ９５が取得した指令位置情報は、ＲＡＭ９３に格納される。
【００３５】
ＣＰＵ９２は、エンコーダ受信部９４からの出力信号を受けて、その出力信号と、ロボットＡの減速比、原点位置等とを用いてモータ４の現在位置に関する検出位置情報を計算する。そして、指令位置情報に基づく指令位置と、検出位置情報に基づく検出位置とを比較してエンコーダ５の異常の有無を確認する。
【００３６】
なお、図３において、ＣＰＵ９２、ＲＡＭ９３及びＤＰＲＡＭ９５は、同一の構成で接続され、同一の機能を有するものが２セット設けられている。これにより、２つのＣＰＵ９２を用いた並行処理が可能となる。すなわち、同一の異常判断を２重に行うことができ、１セットの場合と比較して、より信頼性を高めることができる。
【００３７】
＜エンコーダの異常検出方法＞
図４は、ロボット制御部２がロボットＡを起動させ、ロボットＡが動作を開始した後、セーフティユニット９がエンコーダ５の異常をどのように監視しているかを示したフローチャートである。すなわち、図４は、コントローラ７がサーボドライバ１０を介してモータ４を回転動作させたときに、セーフティユニット９がエンコーダ５の異常をどのように監視しているかを示している。
【００３８】
ステップＳＴ１において、ロボット制御部２のコントローラ７は、ロボットＡを起動し、ステップＳＴ２に進む。
【００３９】
ステップＳＴ２において、ロボット制御部２は、操作者が操作部３を介して設定した教示プログラム及び機能設定等に基づいてロボットＡを動作させる。具体的には、コントローラ７は、ＲＡＭ８に保存された教示プログラム及び機能設定等に基づいて、サーボドライバ１０に速度指令を、セーフティユニット９に指令位置情報を出力する。サーボドライバ１０は、コントローラ７から受けた速度指令に基づいて、モータ４を駆動し、ロボットＡの関節軸１２及び外部軸を動作させる。サーボドライバ１０は、モータ４に取り付けられたエンコーダ５からの出力信号を受け、モータ４に対して、速度指令と出力信号との差分に基づくフィードバック制御を行う。このとき、エンコーダ５からの出力信号は、セーフティユニット９にも出力されている。
【００４０】
ステップＳＴ３〜ＳＴ７の処理は、セーフティユニット９により行われる。セーフティユニット９では、エンコーダ５からの出力信号を取得すると（ＳＴ３）、モータの位置計算を行う（ＳＴ４）。具体的には、セーフティユニット９のＣＰＵ９２は、エンコーダ５から取得した出力信号、モータ４の各軸の減速比及びモータ４の原点情報等に基づいて、モータ４の回転位置（検出位置情報）を計算する。エンコーダ５から取得する出力信号は、例えばパルス信号の型式で送信される。
【００４１】
さらに、セーフティユニット９では、コントローラ７から指令位置情報を受けており（ＳＴ５）、ＳＴ４で算出されたモータ４の現在位置に関する検出位置情報とコントローラ７からの指令位置情報との比較を行う（ＳＴ６）。具体的には、セーフティユニット９のＣＰＵ９２は、エンコーダ５からの出力信号に基づいて計算されたモータ４の回転位置（モータ検出値：検出位置情報）と、コントローラ７から指令されたモータの回転位置（モータ指令値：指令位置情報）とを比較する。
【００４２】
ＣＰＵ９２は、上記比較の結果、モータ指令値（指令位置情報）とモータ検出値（検出位置情報）との差が所定値以上の場合（ＳＴ７でＹＥＳ）、エンコーダ５の異常と判定し、ステップＳＴ８に進む。一方で、モータ指令値とモータ検出値との差が所定値未満の場合（ＳＴ７でＮＯ）、エンコーダ５の異常と判定せず、フローはステップＳＴ３に戻る。
【００４３】
具体的には、ロボットＡの駆動制御において、コントローラ７が指令した位置にモータ４は移動しようとしている。このため、モータ４の回転位置を示すモータ検出値（検出位置情報）と、コントローラ７が指令した回転位置を示すモータ指令値（指令位置情報）との差は、所定の閾値Ｐｔｈ以内に収まっているはずである。そこで、上記モータ検出値に基づくモータの回転位置が、モータ指令値に基づくモータ指令位置から所定の位置以上離れていると、エンコーダが故障していると判断される。
【００４４】
ステップＳＴ８では、セーフティユニット９のＣＰＵ９２は、安全回路６に対して非常停止信号を送信する。非常停止信号を受けた安全回路６は、ロボットＡの駆動用電源を遮断し、ロボットＡを非常停止させる。
【００４５】
このように、コントローラ７は、ロボットＡを起動させ、ロボットＡに動作を開始させた後、セーフティユニット９がステップＳＴ３〜ＳＴ７の処理を繰り返し実行し、エンコーダ５の異常を判断している。
【００４６】
以上のように、本実施形態によると、セーフティユニット９は、エンコーダ５の異常検出において、コントローラ７から直接取得した位置情報と、エンコーダ５からの出力信号に基づいて算出された位置情報とを比較した結果に基づいて、エンコーダ５の異常を検出している。これにより、エンコーダの異常検出装置を有していない汎用ロボット等の作動装置に対して、セーフティユニット９を追加することでエンコーダの故障による異常を検出できる。さらに、その際に、サーボドライバ１０等の既存の汎用ロボットの構成要素に対して設計変更等をする必要がなく、既存のシステムに対する影響を小さくできる。したがって、既存のシステムに対してエンコーダの異常判断に係る処理が正しく行われることを示す必要がなく、処理が複雑化することもない。
【００４７】
この点に関し、図２２に示す従来の技術と対比させて説明する。
【００４８】
エンコーダ５の異常検出装置を有していない汎用ロボットに対して図２２に示すような構成を適用する場合、汎用ロボットのサーボドライバ１０は、通常、モータ指令値及びモータ検出値を生成する機能及び生成したモータ指令値及びモータ検出値を出力する機能を有していない。したがって、上記の生成機能及び出力機能を有する回路、プログラム等を新規に設計する必要がある。また、追加設計した回路及びプログラム等が正しく機能しているかどうかを示すような仕組み（回路、プログラム、表示等）が必要である。すなわち、手間がかかるとともに処理が複雑化する。一方、本開示に係る異常検出方法及び異常検出装置は、そのようなことが生じない。
【００４９】
以上のように、本出願において開示する技術の例示として上記第１実施形態について説明した。しかしながら、本開示における技術は、これに限定されず、適宜、変更、置き換え、付加、省略などを行った実施の形態にも適用が可能である。
【００５０】
例えば、上記第１実施形態について、以下に示すような構成としてもよい。
【００５１】
−変形例（１）−
図５は変形例（１）に係るロボット制御部の構成を示すブロック図である。
【００５２】
図５では、図２の構成に加えて、コントローラ７とセーフティユニット９との間に、一般的な制御遅れを考慮した遅れ制御フィルタとしての１次遅れフィルタ２２が設けられている。すなわち、コントローラ７とＤＰＲＡＭ９５（第２受信部）との間に、１次遅れフィルタ２２が設けられている。
【００５３】
実際のロボットＡの制御において、同じ時間で比較した場合に、セーフティユニット９がコントローラ７から取得した指令位置情報に基づくモータ４の回転位置（モータ指令位置）と、セーフティユニット９がエンコーダ５から取得した出力信号等に基づくモータ４の回転位置（モータ検出位置）とがずれている可能性がある。これは、例えば、モータ制御の特性に起因して発生する。具体的には、ロボット制御部２のコントローラ７が速度指令及び指令位置情報を出力してからサーボドライバ１０が実際にモータ４を制御し、その制御に基づいてモータ４が動作するため、一定時間の遅れが生じるためである。
【００５４】
図６は、ロボットアーム１１の関節軸１２を最高速度で往復運動させた場合におけるモータ指令位置（図６の太実線）と、モータ検出位置（図６の細実線）との関係を示した図である。図６の太実線と細実線を比較すると、最大で０．１秒程度の遅れが生じており、角度に換算すると１８度程度の遅れが生じている（図６の一点鎖線参照）。
【００５５】
これに対し、図６の破線及び二点鎖線で示すように、１次遅れフィルタ２２を設けることにより、モータ指令位置とモータ検出位置との差が大きく減少していることがわかる。なお、図６において、破線は、図５の構成に係るモータ指令位置を、二点鎖線は、図５の構成に係るモータ指令位置とモータ検出位置との偏差を示している。
【００５６】
図５のような構成にすることにより、図２の構成と比較して、より精度が高くエンコーダの異常を判断できるようになる。具体的には、例えば、検出位置情報と指令位置情報との比較に用いる所定の閾値Ｐｔｈは、モータ指令位置とモータ検出位置との差に基づいて決定する場合がある。この場合、モータ指令位置とモータ検出位置との差が減少することによって、所定の閾値Ｐｔｈを小さくすることができ、結果としてエンコーダの異常検出精度を高めることができる。
【００５７】
なお、エンコーダ５の異常検出方法は、上記図４を用いた手順と同様にすればよいため、ここではその詳細な説明を省略している。
【００５８】
−変形例（２）−
図７は変形例（２）に係るロボット制御部の構成を示すブロック図である。
【００５９】
図７では、図６の構成に加えて、コントローラ７とセーフティユニット９との間に、１次遅れフィルタ２２と直列接続された制振フィルタ２１が設けられている。
【００６０】
実際のロボットＡの制御において、サーボドライバ１０の動作制御の内容によって、より応答性の高い制御（以下、高応答性制御という）を行う場合がある。例えば、レーザーを用いた溶接ロボットにおいて、高速制御かつ軌跡の追従性を高めた制御を行うような場合である。このような高応答性制御を行う場合に、指令位置情報に含まれる起振成分によってモータ４が振動する場合がある。そこで、このモータ４の振動を抑制するために、サーボドライバ１０とモータ４との間に制振フィルタ（図示しない）を用いる。高応答性制御が行われている場合に、図７に示すような構成を取ることにより、サーボドライバ１０による制御と近い指令を作ることができる。
【００６１】
図８は、ロボットアーム１１の関節軸１２を最高速度で往復運動させた場合におけるモータ指令位置と、モータ検出位置との関係を示している。太実線及び細実線は、図６と同じであり、１次遅れフィルタ２２及び制振フィルタ２１を用いない構成（図２参照）に係る動作について示している。また、図８において、破線は、図７の構成に係るモータ指令位置の変化を、二点鎖線は、図７の構成に係るモータ指令位置とモータ検出位置との偏差を示している。図８から、１次遅れフィルタ２２に加えて制振フィルタ２１を設けることにより、モータ指令位置とモータ検出位置との差がさらに減少していることがわかる。
【００６２】
したがって、図７のような構成にすることにより、図２又は図５の構成と比較して、より精度が高くエンコーダの異常を判断することができるようになる。具体的には、例えば、変形例（１）と同様に、所定の閾値Ｐｔｈを小さくすることができ、結果としてエンコーダの異常検出精度を高めることができる。なお、制振フィルタ２１は、入力された指令位置情報から共振成分を除去するものである。また、制振フィルタ２１および１次遅れフィルタ２２は、両方を順不同で直接に有していてもよく、また、いずれか一方のみでも構わない。
【００６３】
なお、図７において、制振フィルタ２１と１次遅れフィルタ２２との位置が互いに入れ替わってもよい。
【００６４】
−変形例（３）−
また、図４に係る異常判断方法において、図９に示すようなフローチャートとしてもよい。図９において、ステップＳＴ１からＳＴ６に係る処理は、図４と同様であるため、ここではその詳細な説明を省略する。
【００６５】
図９では、ステップＳＴ７において、モータ指令値とモータ検出値との差が所定値以上の場合、すなわち、ステップＳＴ７で「ＹＥＳ」の場合に、ステップＳＴ９に進むようにしている。そして、ステップＳＴ９において、セーフティユニット９のＣＰＵ９２は、コントローラ７がロボットＡの非常停止を指示したか否かを判断するようにしている。
【００６６】
具体的には、コントローラ７は、ロボットＡの非常停止をする場合、安全回路６に対して、非常停止信号（図示しない）を出力する。非常停止信号を受けた安全回路６は、ロボットＡの駆動用電源を遮断し、ロボットＡを停止させる。本変形例（３）では、セーフティユニット９は、コントローラ７から非常停止信号を取得する。そして、ステップＳＴ９において、コントローラ７から非常停止信号が出力されているか否かを判断する。コントローラ７から非常停止信号が出力されている場合（ＳＴ９でＹＥＳ）、フローはステップＳＴ３に戻る。すなわち、モータ指令値とモータ検出値との差が所定値以上の場合でも、エンコーダ５の異常と判定しない。
【００６７】
一方で、コントローラ７から非常停止信号が出力されていない場合（ＳＴ９でＮＯ）、ステップＳＴ８に進む。ステップＳＴ８において、セーフティユニット９のＣＰＵ９２は、安全回路６に対して非常停止信号を送信し、非常停止信号を受けた安全回路６は、ロボットＡを非常停止させる。
【００６８】
このように、ステップＳＴ９の処理をステップＳＴ７の後に行うことによって、コントローラ７からの指示による非常停止された場合に、セーフティユニット９が、エンコーダ５の異常と誤って判断することがなくなる。具体的には、コントローラ７が非常停止信号を出力することによりロボットＡを停止させた場合、コントローラ７の指令位置情報の出力が停止される。このため、セーフティユニット９において、モータ指令値とモータ検出値との比較を継続すると、図４のフローチャートでは、エンコーダ５が正常動作しているにもかかわらず、異常と判定してしまう可能性がある。しかしながら、本態様にかかる処理を行うことでこのような問題の発生を防ぐことができる。
【００６９】
なお、図４及び図９のフローにおいて、各ステップは必ずしも記載された順で処理しなければならないわけではなく、順番を変更したり、並列処理できる場合には、適宜処理の順番や処理方法を変更してもよい。例えば、ステップＳＴ３及びＳＴ４に係る処理と、ステップＳＴ５に係る処理とは、並列に処理を行ってもよい。
【００７０】
−第２実施形態−
本実施形態では、ロボットＡの連続動作に係るエンコーダの異常検出方法について説明する。
【００７１】
なお、ロボットＡを連続動作させる場合においても、基本的な構成及び動作は、第１実施形態と同様であり、ここではその詳細な説明を省略し、連続動作に係る部分に対して詳細に説明する。
【００７２】
図１０は、コントローラ７からの速度指令に基づいて、モータ指令位置がＰ１からＰ２を経由してＰ３へと順番に移動する、いわゆる進行動作をした場合におけるモータ指令位置Ｐ１〜Ｐ３と、実際のモータの位置Ｐｒ（以下、現在位置Ｐｒともいう）との関係を示している。図１０のような進行動作では、モータ指令位置がＰ３まで移動したとき、現在位置ＰｒがＰ３近辺に存在する。したがって、図４又は図９のフローに沿って処理を行うことにより、エンコーダ５の異常を検出することができる。
【００７３】
一方で、図１１に示すように、コントローラ７からの速度指令に基づくモータ指令位置がＰ１からＰ２を経由してＰ３へと順番に移動した後にＰ２を経由してＰ１に戻る、いわゆる往復運動をした場合には、セーフティユニット９がエンコーダ５の異常を誤って判断する場合がある。例えば、図１１の往復動作が高速に行われた場合、モータ４の現在位置ＰｒがＰ３に到達又は十分に接近する前に、サーボドライバ１０がモータ４に戻り動作を開始させ、現在位置ＰｒがＰ２からＰ１へと戻り動作をする可能性がある。このような場合に、セーフティユニット９が、指令位置情報Ｐ３に基づくモータ指令位置と、モータ４の現在位置Ｐｒに基づくモータ検出位置との比較を行うと、位置Ｐ３と位置Ｐｒとの差が大きいことに起因して、エンコーダ５が正常に動作をしているにも拘わらず、セーフティユニット９が異常と判断してしまう可能性がある。
【００７４】
そこで、図４及び図９におけるステップＳＴ６において、ＣＰＵ９２は、指令位置情報に基づくモータ指令値の変化量Δｎ（直前の指令位置との差分量Δｎ）を所定のｎ回分（例えば５回分。）加算する処理を行う。具体的には、例えば、図１２に実線で示すように点Ｐ１（位置Ｐ１）から点Ｐ９（位置Ｐ９）へと往復運動をさせた場合、Δ１からΔ５までの５回分を加算する。すなわち、加算値ΔはΔ＝Δ１＋Δ２＋Δ３＋Δ４＋Δ５となる。なお、図１２はロボットアーム１１の関節軸１２を往復運動させた場合におけるモータ指令位置を示した図である。
【００７５】
さらにステップＳＴ６では、ＣＰＵ９２は、モータ指令値に加算値Δを増減した値と、検出位置情報に基づいて計算されたモータ検出値とを比較し、そして、ステップＳＴ７では、その比較結果に基づいてエンコーダの異常を判断するようにする。具体的には、モータ検出値Ｐ（ｆｓ）が下の（数１）の条件を満たす場合、エンコーダ５の異常とは判断しないようにする。このとき、変化量Δｎは、変化の方向に拘わらず、絶対値で加算するようにする。
【００７６】
【数１】
2018079075.tif 000003
【００７７】
これにより、往復動作のような特定のロボットの動作方法において、エンコーダ５が正常に動作しているにもかかわらず、ＣＰＵ９２が異常と判断することを防ぐことができる。
【００７８】
なお、上記のようなエンコーダ５の異常検出方法を採用した場合に、ロボットＡが所定期間動作をしない場合がある。そこで、ステップＳＴ７において、上の（数１）に代えて、下の（数２）に示すように加算値Δに所定の閾値Ｔｈを加えるようにしてもよい。
【００７９】
【数２】
2018079075.tif 000004
【００８０】
このような閾値Ｔｈを設けることにより、所定期間にわたってコントローラ７から指令位置情報の変更がない場合、すなわちコントローラ７からロボットＡに対して所定期間動かないような指示が出ている場合において、ロボットが制御装置の意図しない動作をしているときでも、セーフティユニット９が、異常を検出できるようになり、ロボットＡの動作を非常停止することができるようになる。
【００８１】
−第３実施形態−
本実施形態と第１実施形態に示した構成との違いは、高応答性制御と通常制御との切り替えを考慮して指令位置情報の処理ルートを切り替える点にある。
【００８２】
例えば、ロボットの手先にレーザー射出装置を付けてレーザー溶接を行う場合等の精度の高い動作が要求されるレーザー溶接区間では、ロボットの駆動に関して高応答性制御を行い、それ以外の速度を優先する区間では通常制御を行うことでタクトを短縮するといった、動的制御切り替えを行う場合がある。指令位置情報と検出位置情報との比較時に生じる誤差を低減するため、変形例（１）、（２）で示した制振フィルタ２１や１次遅れフィルタ２２を用いることは既に述べたとおりである。しかし、上記の制御切り替えを行う場合、これらのフィルタをそのまま用いると、実際のロボットＡの動作とセーフティユニット９に与える指令位置情報との差が大きくなり、エンコーダ５の異常検出精度が向上しない場合がある。
【００８３】
そこで、本開示では、コントローラ７が実際に行う制御方法に応じて、セーフティユニット９に送信される指令位置情報を処理するルートを切り替えることにより、ロボットＡの制御モードが切り替わっても精度よくエンコーダ５の異常検出ができるようにするものである。
【００８４】
以下、図面を用いて具体的に説明する。
【００８５】
図１３は、本実施形態に係るロボット制御部の構成を示す。この構成と、例えば、図７に示す構成との違いは、コントローラ７がロボットＡの駆動制御を切り替えるための制御切替部７ａを有していることである。教示プログラムあるいは操作部３からの入力により、ロボットＡの駆動制御モードが切り替わると、制御切替部７ａはこれを検知して、指令位置情報を送信するルートを切り替える。図１３に示すように、通常制御を行う場合は１次遅れフィルタ２２（第１の遅れ制御フィルタ）を適用してから指令位置情報をセーフティユニット９へと送る。また、高応答性制御を行う場合は、制振フィルタ２１と１次遅れフィルタ２２（第２の遅れ制御フィルタ）とを適用した上で指令位置情報をセーフティユニット９へと送る。なお、図１３では、通常制御を行う場合と、高応答性制御を行う場合とで、同じ１次遅れフィルタ２２を用いている。すなわち、時定数が等しいフィルタ２２を用いている。
【００８６】
なお、制御切替部７ａの機能は、コントローラ７のハードウェア上で実現してもよいし、ソフトウェア上で実現してもよい。
【００８７】
図１４は、本実施形態に係るエンコーダ５の異常判断方法を示すフローチャートである。
【００８８】
すなわち、図１４は、コントローラ７がサーボドライバ１０を介してモータ４を回転動作させたときに、セーフティユニット９がエンコーダ５の異常をどのように監視しているかを示している。
【００８９】
図１４において、ステップＳＴ１，ＳＴ２及びＳＴ６からＳＴ１１に係る処理は、図４に示したステップＳＴ１からＳＴ８と同様であるため、ここではその詳細な説明を省略する。
【００９０】
ステップＳＴ３において、ロボットＡの駆動制御モードが高応答性制御であるか、そうでないかを判断する。この判断は、上述したように、コントローラ７における制御切替部７ａにより行われる。
【００９１】
ステップＳＴ３での判断が肯定的である場合、すなわち、ロボットＡの駆動制御モードが高応答性制御であれば、ステップＳＴ４において、制振フィルタ２１と１次遅れフィルタ２２とを適用した上で指令位置情報をセーフティユニット９へ送信する。
【００９２】
ステップＳＴ３での判断が否定的である場合、すなわち、ロボットＡの駆動制御モードが通常制御であれば、ステップＳＴ５において１次遅れフィルタ２２を適用した上で指令位置情報をセーフティユニット９へ送信する。
【００９３】
以上説明したように、本実施形態によれば、ロボットＡの駆動制御モードに応じて、コントローラ７からセーフティユニット９に送られる指令位置情報の送信ルートを切り替えることで、エンコーダ５の異常検出精度を高めることができる。
【００９４】
例えば、ロボットＡの駆動制御モードが高応答性制御であれば、指令位置情報に含まれる起振成分を除去するための制振フィルタ２１と、制御の応答遅れを低減するための１次遅れフィルタ２２を指令位置情報に適用することで、エンコーダ５の異常検出精度を高めることができる。
【００９５】
一方、ロボットＡの駆動制御モードが通常制御であれば、指令位置情報に含まれる起振成分の除去をあまり考慮しなくても良いことが多い。よって、制振フィルタ２１は適用せずに、１次遅れフィルタ２２を指令位置情報に適用する。このことにより、不測の誤差の発生を抑制し、エンコーダ５の異常検出精度を高めることができる。
【００９６】
以上のように、本出願において開示する技術の例示として上記第３実施形態について説明した。しかしながら、本開示における技術は、これに限定されず、適宜、変更、置き換え、付加、省略などを行った実施の形態にも適用が可能である。例えば、上記第３実施形態について、以下に示すような構成としてもよい。
【００９７】
−変形例（４）−
図１５は変形例（４）に係るロボット制御部の構成を示すブロック図である。
【００９８】
図１５に示す構成では、通常制御時と高応答性制御時とで、指令位置情報が適用される１次遅れフィルタがそれぞれ異なる点が、図１３に示す構成と異なる。具体的には、図１５に示す構成では、１次遅れフィルタ２２ａと１次遅れフィルタ２２ｂとを用いている。この構成により、処理ルートの切り替えに応じて、指令位置情報の時間遅れの補償量が異なる。
【００９９】
実際のロボットＡの駆動制御においては、ロボット制御部２のコントローラ７が速度指令及び指令位置情報を出力してからサーボドライバ１０が実際にモータ４を制御し、その制御に基づいてモータ４が動作するため、指令位置情報に対して実際の位置は一定の時間遅れが生じる。この遅れは高応答性制御、通常制御のいずれの場合にも生じ、また、その遅れ時間は制御モードによって異なる場合がある。
【０１００】
従って、図１５に示すように、制御モードに応じて制御遅れの時定数がそれぞれ異なる１次遅れフィルタ２２ａ，２２ｂを用いることにより、図１３に示す構成と比較して、より精度が高くエンコーダの異常を検出できるようになる。
【０１０１】
−変形例（５）−
図１６は変形例（５）に係るロボット制御部の構成を示すブロック図である。図１７は変形例（５）に係るエンコーダ５の異常検出方法を示すフローチャートである。
【０１０２】
図１６に示す構成において、コントローラ７から送信される指令位置情報を含む情報が、ロボットＡの駆動制御モードに対応したフィルタで処理されるルート（第１処理ルート）と、ロボットＡの駆動制御モードに対応していないフィルタで処理されるルート（第２処理ルート）との２系統で並列に処理されて、セーフティユニット９に送信される点で、図７に示した構成と異なる。また、図１６に示す構成において、ロボットＡの駆動制御モードに対応していないフィルタには、指令位置情報として「０」を入力している。
【０１０３】
実際のロボットＡの駆動制御において、指令位置情報を制振フィルタ２１や１次遅れフィルタ２２に適用する処理は一定時間後まで影響が続く。ロボットＡの駆動制御モードの切り替えが急であると、フィルタ処理しきれなかった指令位置情報の影響によりセーフティユニットが判定するための指令位置情報に誤差が含まれる可能性がる。
【０１０４】
そこで、本変形例では、コントローラ７からの指令位置情報をフィルタ処理するにあたって、図１６に示すように、２系統のフィルタを準備する。これら指令位置情報の並列処理を行うとともに、ロボットＡの駆動制御モードに応じて、各々の系統で異なる情報を処理し、その加算結果を新たな指令位置情報とするようにした。
【０１０５】
以下、図１７に示すフローチャートを用いて説明する。なお、図１７に示すフローのうち、ステップＳＴ１、ＳＴ２及びＳＴ９からＳＴ１４における処理は、図４に示したステップＳＴ１からＳＴ８と同様であるため、ここではその詳細な説明を省略する。
【０１０６】
ステップＳＴ３で、ロボットＡの駆動制御モードを判断し、その判断が高応答性制御であれば、コントローラ７からの指令位置情報に制振フィルタ２１と１次遅れフィルタ２２ｂとを適用してフィルタ処理する（ステップＳＴ４）。
【０１０７】
ステップＳＴ４での処理と並行して、ステップＳＴ５において、コントローラ７からの指令位置情報を「０」とした上で、１次遅れフィルタ２２ａを適用し処理する。ステップＳＴ８において、それぞれの処理結果を加算した上でセーフティユニット９へ送信する指令位置情報としている。
【０１０８】
一方、ステップＳＴ３において、ロボットＡの駆動制御モードが通常制御であると判断すれば、コントローラ７からの指令位置情報を１次遅れフィルタ２２ａに適用してフィルタ処理する（ステップＳＴ６）。また、ステップＳＴ６の処理と並行して、コントローラ７からの指令位置情報を「０」とした上で、制振フィルタ２１と１次遅れフィルタ２２ｂとを適用し、フィルタ処理する（ステップＳＴ７）。ステップＳＴ８において、それぞれの処理結果を加算することでセーフティユニット９へ送信する指令位置情報としている。
【０１０９】
以上説明したように、本変形例によれば、コントローラ７からの送信情報をロボットＡの駆動制御モードに対応したフィルタ及びこの駆動制御モードに対応していないフィルタの両方で常に並列処理する。
【０１１０】
また、ロボットＡの駆動制御モードに対応じたフィルタには、コントローラ７から送信される指令位置情報を直接適用する一方、駆動制御モードに対応していないフィルタには、指令位置情報を「０」として、フィルタ処理を行い、両方の系統でフィルタ処理された結果を加算して、新たな指令位置情報としてセーフティユニット９に送信する。
【０１１１】
このような処理を行うことで、制御モードの違いによる応答遅れ時間の差異を吸収し、ロボットＡの駆動制御モードが異なる場合にも同様に、モータ指令位置とモータ検出位置との差を低減できる。その結果、エンコーダの異常検出精度を高めることができる。
【０１１２】
図１８は、本変形例に係る、ロボットの位置の時間変化を示す図であり、ロボットアーム１１の関節軸１２を高速で往復動作させ、往路は高応答性制御、復路に通常制御を適用した場合のモータ指令位置とモータ検出位置との誤差の変化を示している。
【０１１３】
また、図１５に示す構成で関節軸１２を駆動した場合のモータ指令位置と実際のモータ検出位置との差分の変化を点線で示しており、図１６に示す構成で関節軸１２を駆動した場合のモータ指令位置と実際のモータ位置との差分の変化を破線で示している。
【０１１４】
図１８より明らかなように、図１６に示した構成を適用することにより、モータ指令位置と実際のモータ検出位置との差が減少していることがわかる。
【０１１５】
したがって、変形例（５）の図１６に示す構成を使用することで、図１３あるいは図１５に示した構成と比較して、より精度が高くエンコーダの異常を判断することができるようになる。つまり、第２実施形態と同様に、所定の閾値Ｐｔｈを小さくすることができ、エンコーダの異常検出精度を高めることができる。
【０１１６】
−変形例（６）−
図１９は変形例（６）に係るロボット制御部の構成を示すブロック図である。
【０１１７】
実際のロボットＡの制御においては、ロボット制御部２のコントローラ７が速度指令及び指令位置情報を出力してからサーボドライバ１０が実際にモータ４を制御し、その制御に基づいてモータ４が動作するため、指令位置情報に対して実際のモータ位置は一定時間の遅れが生じている。
【０１１８】
この遅れ分を補正するため、上述したように、指令位置情報に対し制御方式に応じた１次遅れフィルタを適用したり、指令位置情報を含む情報に異なるフィルタでの処理を適用したりしている。しかしながら、１次遅れフィルタ２２はサーボドライバ１０による制御遅れを簡易的に模擬したものなので、この１次遅れ分の精度を改善できる余地がある。
【０１１９】
そこで、図１９に示す構成では、図１６に示す構成において、通常制御時に使用する１次遅れフィルタ２２ａに対してフィードフォワード制御を行うことにより、１次遅れ分の精度をさらに改善できるようにしたものである。
【０１２０】
図１９に示すように、コントローラ７からの指令位置情報に対して（１−ａ）倍のゲインをかけた上で１次遅れフィルタ２２ａに適用して処理を行うのと並行して、指令位置情報にａ倍のゲインをかけ、これらの結果を加算してセーフティユニット９に送信する。
【０１２１】
図２０は、本変形例に係る、ロボットの位置の時間変化を示す図である。図２０では、ロボットアーム１１の関節軸１２を高速で往復動作させ、往路に高応答性制御、復路に通常制御を適用した場合のモータ指令位置とモータ検出位置との誤差の変化を示している。図２１は図２０の部分拡大図である。
【０１２２】
図２０、２１において、図１６に示す構成で関節軸１２を駆動した場合のモータ指令位置と実際のモータ検出位置との差分の変化を点線で示している。また、図１９に示す構成で関節軸１２を駆動した場合のモータ指令位置と実際のモータ位置との差分の変化をさらに細かい点線で示している。
【０１２３】
図２０，２１より明らかなように、図１９に示す構成を適用することで、図１６に示す構成よりもさらにモータ指令位置とモータ検出位置との差が減少していることがわかる。
【０１２４】
したがって、本変形例によれば、変形例（５）に示した構成と比較して、さらに精度が高くエンコーダの異常を判断することができるようになる。
【０１２５】
なお、本変形例では、１次遅れフィルタ２２ａに対してフィードフォワード制御を行う構成を説明したが、１次遅れフィルタ２２ｂに対しても同じようにフィードフォワード制御を行うことにより、同様の効果を得ることも可能である。
【０１２６】
以上のように、本開示の異常検出方法は、作動装置の出力軸を駆動するモータの回転位置を検出するためのエンコーダの異常を検出する異常検出方法である。モータの回転位置を指示する速度指令及び該速度指令に応じたモータの回転位置を示す指令位置情報を出力するコントローラと、コントローラから出力される速度指令及びエンコーダから出力される出力信号を受け、速度指令及び出力信号に基づいてモータの駆動を制御するドライバと、エンコーダの異常を検出する異常検出装置とが設けられている。異常検出装置は、コントローラから指令位置情報を、またエンコーダから出力信号をそれぞれ取得する情報取得ステップと、指令位置情報と出力信号に基づいて算出されたモータの検出位置情報とを比較し、該両位置情報間に所定値以上の差があった場合にエンコーダの異常と判定する異常判定ステップとを行うことを特徴とする。
【０１２７】
この方法によれば、異常検出装置は、コントローラから受けた指令位置情報と、エンコーダからの出力信号に基づいて算出された検出位置情報との比較結果に基づいてエンコーダの異常を判定する。これにより、ドライバにエンコーダの異常検出のための新しい構成、機能を追加することなく、エンコーダの異常検出ができるようになる。すなわち、例えば、一般的な作動装置（例えば、ロボットや外部軸）の既存構成、既存回路への影響を最小限に抑えて、エンコーダの異常検出ができるようになる。
【０１２８】
異常検出装置は、異常判定ステップにおいて、コントローラから取得した指令位置情報に対し、モータの駆動制御の遅れに起因して生じた時間遅れを補償し、当該時間遅れが補償された指令位置情報と検出位置情報との比較結果に基づいて、エンコーダの異常の有無を判定する、のが好ましい。
【０１２９】
このように、エンコーダの異常判定に用いる指令位置情報を遅らせることで、モータ駆動制御の遅れに起因する時間のずれを解消することができるため、エンコーダの異常検出精度を高めることができる。
【０１３０】
コントローラは、作動装置の駆動制御モードの切り替えを検知する制御モード検知ステップと、当該駆動制御モードの切り替えに応じて、指令位置情報の処理ルートを切り替える処理ルート切替ステップを行い、異常検出装置は、駆動制御モードに応じた処理ルートで処理された指令位置情報を受け取る、のが好ましい。
【０１３１】
この方法によれば、作動装置の駆動制御モードの違いに伴う指令位置情報と検出位置情報との誤差を低減し、エンコーダの異常検出精度を高めることができる。
【０１３２】
検知された実際の駆動制御モードに対応する第１処理ルートでは、コントローラから出力された指令位置情報を処理するステップと、当該実際の駆動制御モードに対応していない第２処理ルートでは、モータの原点位置に対応する位置情報を指令位置情報として処理するステップと、第１及び第２処理ルートで処理された指令位置情報を加算するステップと、を有し、異常検出装置は、当該加算された指令位置情報受け取る、のが好ましい。
【０１３３】
この方法によれば、作動装置の駆動制御モード切り替えにより、指令処理情報の処理ルートが異なる場合においても、当該処理モードの違いによる応答遅れ時間の差異を吸収し、モータ指令位置とモータ検出位置との差を低減できる。その結果、エンコーダの異常検出精度を高めることができる。
【０１３４】
第１処理ルート、または第２処理ルートの少なくともいずれか一方において、指令位置情報の時間遅れを補償する遅れ補償ステップを行い、当該遅れ補償ステップにおいてフィードフォワード制御を行う、のが好ましい。
【０１３５】
この方法によれば、時間遅れ補償時の誤差をさらに低減し、モータ指令位置とモータ検出位置との差を低減できる。その結果、エンコーダの異常検出精度を高めることができる。
【０１３６】
異常検出装置は、異常判定ステップにおいて、コントローラから出力された指令位置情報の変化量の積算値を生成し、当該積算値及び指令位置情報の和と検出位置情報との比較結果に基づいて、エンコーダの異常の有無を判定する、のが好ましい。
【０１３７】
このように、エンコーダの異常判定に用いる指令位置情報に対して積算値を加えることにより異常判定におけるマージンを増やし、エンコーダが正常に動作しているにも拘わらず、異常検出装置がエンコーダの異常と判定することを防止することができる。
【０１３８】
異常検出装置は、異常判定ステップにおいて、積算値及び指令位置情報の和に所定のオフセット値を加えたものと検出位置情報との比較結果に基づいて、エンコーダの異常の有無を判定する、のが好ましい。
【０１３９】
この方法によれば、積算値及び指令位置情報の和にオフセット値を加えて検出位置情報と比較することにより、例えば作動装置が動作していない場合等において、期間指令位置情報の変化がない場合に、差動装置が意図しない動作をしたときでも、エンコーダの異常を検出することができる。
【０１４０】
作動装置を非常停止するための安全回路がさらに設けられており、コントローラは、非常時に前記安全回路に非常停止信号を送信するように構成され、異常検出装置は、異常判定ステップにおいて、コントローラから非常停止信号が出力されたことを検知した場合、両位置情報間に所定値以上の差があっても、エンコーダの異常と判定しない、のが好ましい。
【０１４１】
この方法によれば、コントローラが非常停止信号を出力した後に、指令位置情報と検出位置情報との間に所定値以上の差があった場合でもエンコーダの異常と判定しないので、例えば、コントローラが非常停止信号出力後に速度指令及び指令位置情報の出力を停止した場合に、エンコーダが正常に動作しているにも拘わらず、エンコーダの異常と判断することを防ぐことができる。
【０１４２】
ここに開示する異常検出装置は、作動装置の出力軸を駆動するモータの回転位置を検出するためのエンコーダの異常を検出する。異常検出装置は、モータの回転位置を指示する速度指令及び該速度指令に応じたモータの回転位置を示す指令位置情報を出力するコントローラと、コントローラから出力される速度指令及びエンコーダから出力される出力信号を受け、速度指令及び出力信号に基づいてモータの駆動を制御するドライバと、エンコーダの異常を検出する異常検出装置とを有する。異常検出装置は、エンコーダから出力信号を受ける第１受信部と、コントローラから指令位置情報を受ける第２受信部と、指令位置情報と出力信号に基づいて算出されたモータの検出位置情報とを比較し、該両位置情報間に所定値以上の差があった場合にエンコーダの異常と判定する判定部とを有している。
【０１４３】
この装置によれば、前述の異常検出方法と同様に、ドライバにエンコーダの異常検出のための新しい機能を追加することなく、エンコーダの異常検出ができるようになる。
【０１４４】
ここに開示する出力軸と該出力軸を駆動するモータとを有するロボットの制御システムは、モータの回転位置を検出するエンコーダと、モータの回転位置を指示する速度指令及び該速度指令に応じたモータの回転位置を示す指令位置情報を出力するコントローラと、コントローラから出力される速度指令及びエンコーダから出力される出力信号を受け、速度指令及び出力信号に基づいてモータの駆動を制御するドライバと、エンコーダの異常を検出する異常検出装置とを有している。異常検出装置は、エンコーダから出力信号を受ける第１受信部と、コントローラから指令位置情報を受ける第２受信部と、指令位置情報と出力信号に基づいて算出されたモータの検出位置情報とを比較し、該両位置情報間に所定値以上の差があった場合にエンコーダの異常と判定する判定部とを有する。
【０１４５】
この制御システムによれば、前述の異常検出方法と同様に、ドライバにエンコーダの異常検出のための新しい機能を追加することなく、エンコーダの異常検出ができるようになる。
【０１４６】
以上説明したように、本開示のエンコーダの異常検出方法によると、汎用のエンコーダを使用している場合においても既存機能、既存装置への影響を最小限に抑えてエンコーダの異常判断をすることができる。
【産業上の利用可能性】
【０１４７】
本開示のエンコーダの異常検出方法は、汎用のエンコーダを使用している場合においても既存機能、既存装置への影響を最小限に抑えてエンコーダの異常判断をすることができるので、汎用の溶接ロボット等の産業用ロボットやその他の作動装置に係るエンコーダの異常を判断する上で特に有用である。
【符号の説明】
【０１４８】
Ａ  ロボット（作動装置）
Ｃ  接続ケーブル
Ｐ  モータ検出値
１  ロボット機構部
２  ロボット制御部
３  操作部
４  モータ
５  エンコーダ
６  安全回路
７  コントローラ
７ａ  制御切替部
９  セーフティユニット（異常検出装置）
１０  サーボドライバ
１１  ロボットアーム
１２  関節軸（出力軸）
２１  制振フィルタ
２２  １次遅れフィルタ（遅れ制御フィルタ）
２２ａ  １次遅れフィルタ
２２ｂ  １次遅れフィルタ
９２  ＣＰＵ（判定部）
９４  エンコーダ受信部（第１受信部）
９５  ＤＰＲＡＭ（第２受信部）
【図１】
2018079075.tif 000005
【図２】
2018079075.tif 000006
【図３】
2018079075.tif 000007
【図４】
2018079075.tif 000008
【図５】
2018079075.tif 000009
【図６】
2018079075.tif 000010
【図７】
2018079075.tif 000011
【図８】
2018079075.tif 000012
【図９】
2018079075.tif 000013
【図１０】
2018079075.tif 000014
【図１１】
2018079075.tif 000015
【図１２】
2018079075.tif 000016
【図１３】
2018079075.tif 000017
【図１４】
2018079075.tif 000018
【図１５】
2018079075.tif 000019
【図１６】
2018079075.tif 000020
【図１７】
2018079075.tif 000021
【図１８】
2018079075.tif 000022
【図１９】
2018079075.tif 000023
【図２０】
2018079075.tif 000024
【図２１】
2018079075.tif 000025
【図２２】
2018079075.tif 000026
【国際調査報告】
2018079075.tif 000027
2018079075.tif 000028
2018079075.tif 000029