此应用程序的某些内容目前无法使用。
如果这种情况持续存在,请联系我们反馈与联系
1. (WO2019031218) ENCODER ABNORMALITY DETECTION METHOD
Document

明 細 書

発明の名称 エンコーダの異常検出方法

技術分野

0001  

背景技術

0002   0003   0004  

先行技術文献

特許文献

0005  

発明の概要

発明が解決しようとする課題

0006   0007   0008   0009   0010   0011   0012   0013   0014  

課題を解決するための手段

0015   0016   0017   0018   0019   0020   0021   0022   0023   0024   0025  

発明の効果

0026  

図面の簡単な説明

0027  

発明を実施するための形態

0028   0029   0030   0031   0032   0033   0034   0035   0036   0037   0038   0039   0040   0041   0042   0043   0044   0045   0046   0047   0048   0049   0050   0051   0052   0053   0054   0055   0056   0057   0058   0059   0060   0061   0062   0063   0064   0065   0066   0067   0068   0069   0070   0071   0072   0073   0074   0075   0076   0077   0078   0079   0080   0081   0082   0083   0084   0085   0086   0087   0088   0089   0090   0091   0092   0093   0094   0095   0096   0097   0098   0099   0100  

産業上の利用可能性

0101  

符号の説明

0102  

請求の範囲

1   2   3   4   5   6   7  

図面

1   2   3   4A   4B   4C   5   6   7   8   9   10   11   12   13   14  

明 細 書

発明の名称 : エンコーダの異常検出方法

技術分野

[0001]
 本開示は、エンコーダの異常を検出する異常検出方法に関する。

背景技術

[0002]
 ロボット等の作動装置の出力軸を駆動するモータの回転位置を検出するために用いられるエンコーダの分野において、故障等の異常を検出するための異常検出技術が従来から知られている。
[0003]
 特許文献1には、エンコーダシステムにモータの入力軸の回転を検出する第1のエンコーダと、モータの出力軸の回転を検出する第2のエンコーダとを設けることが開示されている。さらに、特許文献1には、これら2つのエンコーダで検出された位置測定値に一定以上の差がある場合に、これらエンコーダのいずれかが異常だと判定する技術が開示されている。
[0004]
 また、特許文献2には、モータが正常に制御されていることを監視するセーフティユニットを備えるサーボシステムが開示されている。特許文献2に係るサーボシステムでは、セーフティユニットがモータを制御しているサーボドライバから指令値やフィードバック値を受ける。そして、それら指令値やフィードバック値が異常である場合に、上記サーボドライバへの停止信号を生成する。

先行技術文献

特許文献

[0005]
特許文献1 : 特許第5675761号公報
特許文献2 : 特許第5367623号公報

発明の概要

発明が解決しようとする課題

[0006]
 しかしながら、汎用の作動装置の駆動系(モータ)では、単一のエンコーダしか設けられていないものも多く、特許文献1に開示された技術は、これらの汎用モータに対して適用できないという問題がある。また、新規に特許文献1に係るシステムを構成する場合においても、複数のセンサを設ける必要があるため、コストが高くなる。
[0007]
 特許文献2に開示された技術においても、異常検出機能を有していない汎用のシステムに対して適用する場合に、サーボドライバに新しい機能を追加する必要がある。そのため、サーボドライバ及びセーフティユニット双方の開発が必要である。すなわち、工数がかかるという問題がある。
[0008]
 図14は、特許文献2に開示された従来の技術に係るロボット制御部の構成を示すブロック図を示す。図14に示すロボット制御では、コントローラ7が、サーボドライバ10に指令信号を出力する。そして、サーボドライバ10が、コントローラ7から受けた指令信号及びエンコーダ5から取得した検出信号に基づいてモータ4を駆動する電流値を生成し、この電流値に基づいてモータ4を制御する。
[0009]
 サーボドライバ10は、コントローラ7から受けた指令信号に基づいてモータ4の回転位置に係る比較処理用の指令値(モータ指令値)を生成し、セーフティユニット9に出力する。同様に、サーボドライバ10は、エンコーダ5から取得した出力信号、モータ4各軸の減速比及びモータ4の原点情報等に基づいてモータ4の回転位置を示す値(モータ検出値)を生成し、セーフティユニット9に出力する。そして、セーフティユニット9が、サーボドライバ10から受けたモータ指令値とモータ検出値とを比較し、その比較結果に基づいてエンコーダ5の異常を判定する。
[0010]
 しかしながら、エンコーダ5の異常検出装置を有していない汎用ロボットに対して図14に示すような構成を適用する場合、汎用ロボットのサーボドライバ10は、通常、モータ指令値及びモータ検出値を生成する生成機能及び、生成したモータ指令値及びモータ検出値を出力する出力機能を有していない。
[0011]
 したがって、上記生成機能及び出力機能を有する回路、プログラム等を新規に設計する必要がある。また、追加設計した回路及びプログラム等が正しく機能しているかどうかを示すような仕組み(回路、プログラム、表示等)が必要である。すなわち、手間がかかるとともに処理が複雑化するという問題がある。
[0012]
 また、ロボットAの位置精度を出したい場合やモータ4の交換等を行う場合に、コントローラ7で現在のエンコーダ検出信号がモータ4の出力軸の何度にあたるかの調整作業を行うことがある。この調整作業では、コントローラ7が保持するモータ4の原点情報(以下、単に原点情報という)を変更する操作をする。調整作業を行う場合、コントローラ7の指示でロボットAを停止させる。
[0013]
 一方、機能安全性を確保する観点から、通常、コントローラ7とセーフティユニット9とはそれぞれ独立して動作する。そのため、コントローラ7が保持する原点情報が変更されても、セーフティユニット9が保持する原点情報にはその変更が反映されない。このため、セーフティユニットが、エンコーダに異常が発生したかどうかを誤検出するおそれがあった。
[0014]
 本開示は、上記課題を解決するために、コントローラが保持する原点情報が変更されても、セーフティユニットでエンコーダ異常の誤検出が起こりにくいエンコーダの異常検出方法を提供することを目的とする。

課題を解決するための手段

[0015]
 上記の目的を達成するために、本開示のエンコーダの異常検出方法は、モータの原点情報の変更によりコントローラに変更後の原点情報が保持される一方、セーフティユニットに変更前の原点情報が保持されている場合には、セーフティユニットに対して変更前の原点情報に基づいて生成された指令位置情報を送信することによって、セーフティユニットによるエンコーダの異常の誤検出を防止するようにした。また、エンコーダの出力信号に基づいて算出される検出位置情報と、コントローラから出力される指令位置情報との間に、所定値以上の差があった場合にエンコーダの異常と判定するようにした。
[0016]
 具体的には、本開示のエンコーダの異常検出方法は、作動装置の出力軸を駆動するモータの回転位置を検出するためのエンコーダの異常を検出する異常検出方法であって、作動装置は、エンコーダの異常を検出する異常検出装置と、モータの回転位置を指示する速度指令を出力するとともに、速度指令に応じたモータの回転位置を示す指令位置情報を異常検出装置に送信するコントローラと、コントローラから出力される速度指令及びエンコーダから出力される出力信号を受け、速度指令及び出力信号に基づいてモータの駆動を制御するドライバと、を有し、モータの原点情報が変更されて、新たな原点情報としてコントローラに保持される一方、異常検出装置に変更前のモータの原点情報が保持されている場合に、コントローラは、変更前のモータの原点情報に基づいて生成された指令位置情報を、異常検出装置に送信し、異常検出装置は、コントローラから送信された指令位置情報と、エンコーダから出力された出力信号をそれぞれ取得する情報取得ステップと、指令位置情報と出力信号に基づいて算出されたモータの検出位置情報とを比較し、指令位置情報と出力信号との間に所定値以上の差があった場合に、エンコーダの異常と判定する異常判定ステップとを行うことを特徴とする。
[0017]
 この方法によれば、異常検出装置は、コントローラから受けた指令位置情報と、エンコーダからの出力信号に基づいて算出された検出位置情報との比較結果に基づいてエンコーダの異常を判定する。これにより、ドライバにエンコーダの異常検出のための新しい構成、機能を追加することなく、エンコーダの異常検出ができるようになる。すなわち、例えば、一般的な作動装置(例えば、ロボットや外部軸)の既存構成、既存回路への影響を最小限に抑えて、エンコーダの異常検出ができるようになる。また、原点情報が変更された場合に、コントローラから変更前の原点情報に基づく指令位置情報を、異常検出装置に送る。そのため、異常検出装置が保持する変更前の原点情報と、コントローラからの原点情報の整合を図ることができる。このことにより、異常検出装置の異常の誤検出を防止できる。
[0018]
 異常検出装置は、異常判定ステップにおいて、コントローラから取得した指令位置情報に対し、モータの駆動制御の遅れに起因して生じた時間遅れを補償する。そして、当該時間遅れが補償された指令位置情報と、検出位置情報との比較結果に基づいて、エンコーダの異常の有無を判定する、のが好ましい。
[0019]
 このように、エンコーダの異常判定に用いる指令位置情報を遅らせることで、モータ駆動制御の遅れに起因する時間のずれを解消することができるため、エンコーダの異常検出精度を高めることができる。
[0020]
 異常検出装置は、異常判定ステップにおいて、コントローラから出力された指令位置情報の変化量の積算値を生成する。そして、当該積算値及び指令位置情報の和と、検出位置情報との比較結果に基づいて、エンコーダの異常の有無を判定する、のが好ましい。
[0021]
 このように、エンコーダの異常判定に用いる指令位置情報に対して積算値を加えることにより、異常判定におけるマージンを増やす。そのため、エンコーダが正常に動作しているにも拘わらず、異常検出装置がエンコーダの異常と判定することを防止することができる。
[0022]
 異常検出装置は、異常判定ステップにおいて、積算値及び指令位置情報の和に所定の閾値を加えたものと、検出位置情報との比較結果に基づいて、エンコーダの異常の有無を判定する、のが好ましい。
[0023]
 この方法によれば、積算値及び指令位置情報の和に閾値を加えて、検出位置情報と比較する。そのため、例えば作動装置が動作していない場合等において、期間指令位置情報の変化がない場合に、差動装置が意図しない動作をしたときでも、エンコーダの異常を検出することができる。
[0024]
 作動装置は、作動装置を非常停止するための安全回路をさらに有し、コントローラは、非常時に安全回路に非常停止信号を送信するように構成されている。異常検出装置は、異常判定ステップにおいて、コントローラから非常停止信号が出力されたことを検知した場合、指令位置情報と出力信号との間に所定値以上の差があっても、エンコーダの異常と判定しない、のが好ましい。
[0025]
 この方法によれば、コントローラが非常停止信号を出力した後に、指令位置情報と検出位置情報との間に所定値以上の差があった場合でもエンコーダの異常と判定しない。例えば、コントローラが非常停止信号出力後に、速度指令及び指令位置情報の出力を停止した場合に、エンコーダが正常に動作しているにも拘わらず、エンコーダの異常と判定することを防ぐことができる。

発明の効果

[0026]
 以上説明したように、本開示のエンコーダの異常検出方法によれば、異常検出装置がエンコーダの異常を誤って検出しにくい。

図面の簡単な説明

[0027]
[図1] ロボット制御システムの概略構成図である。
[図2] 第1実施形態に係るロボット制御部の構成を示すブロック図である。
[図3] セーフティユニットの構成を示すブロック図である。
[図4A] コントローラによるパラメータチェック及び制御パターン切替手順のフローチャートである。
[図4B] 本開示に係る制御パターンと原点情報との対応を示す図である。
[図4C] 従来技術に係る制御パターンと原点情報との対応を示す図である。
[図5] 第1実施形態に係るエンコーダの異常判定方法を示すフローチャートである。
[図6] ロボット制御部の他の構成例を示すブロック図である。
[図7] モータ指令位置とモータ検出位置との関係を示す図である。
[図8] ロボット制御部の他の構成例を示すブロック図である。
[図9] モータ指令位置とモータ検出位置との関係を示す図である。
[図10] 第1実施形態に係るエンコーダの異常判定方法の他の例を示すフローチャートである。
[図11] 第2実施形態に係る進行動作をした場合のモータ指令位置と実位置との関係を示す図である。
[図12] 第2実施形態に係る往復動作をした場合のモータ指令位置と実位置との関係を示す図である。
[図13] モータ指令位置とモータ検出位置との関係を示す図である。
[図14] 従来の技術に係るロボット制御部の構成を示すブロック図である。

発明を実施するための形態

[0028]
  以下、本実施形態を図面に基づいて詳細に説明する。以下の好ましい実施形態の説明は、本質的に例示に過ぎず、本開示、その適用物或いはその用途を制限することを意図するものでは全くない。
[0029]
 -第1実施形態-
 <ロボット及びその制御系の構成>
 図1は、本実施形態に係る作動装置としてのロボット制御システムの概略構成図である。また、図2はロボット制御部2の構成を示すブロック図であり、情報又は信号の送信方向がわかるように矢印を記載している。
[0030]
 図1に示すように、ロボットAは、ロボット機構部1と、ロボット制御部2と、ディスプレイ付きの操作部3とによって構成されている。ロボット機構部1とロボット制御部2との間は、接続ケーブルCによって接続されている。なお、図1では、接続ケーブルCによる有線接続によって情報が伝達されるものとしているが、接続形態は有線接続に限定されず、無線で接続してもよい。各ブロック間の接続も同様である。
[0031]
 ロボット機構部1は、複数のロボットアーム11および複数の関節軸12を有している。各ロボットアーム11には、それぞれ、ロボットアーム11を動作させるためのサーボモータ4(以下、モータ4という)が取り付けられている。例えば、ロボットAが垂直多関節6軸ロボットである場合、6個のロボットアーム11を有し、各ロボットアーム11に対応するように6個のモータ4が設けられている。各モータ4には、各モータ4の回転位置又は当該回転位置に基づく回転量を検出するためのエンコーダ5が取り付けられている。
[0032]
 図1では図示しないが、ロボットAに対して、ロボット制御部2からロボット機構部1への駆動制御に基づいて駆動される外部軸が付設されている。外部軸は、ロボットAの可動範囲を拡大させるためにロボット機構部1と組み合わせて用いられるものである。外部軸には、外部軸を動作させるためのモータ4が取り付けられている。モータ4には、モータ4の回転位置又は当該回転位置に基づく回転量を検出するためのエンコーダ5が取り付けられている。すなわち、複数の関節軸12及び外部軸のそれぞれに対してモータ4が設けられ、各モータ4に対してエンコーダ5が取り付けられる。なお、外部軸の種類は、特に限定されない。例えば、スライダタイプ又はポジショナタイプのどちらであっても本実施形態に係る技術が適用可能であり、それ以外のタイプのものであってもよい。
[0033]
 なお、本実施形態では、発明の理解を容易にするために、複数の関節軸12を用いるモータ4及びエンコーダ5と、外部軸に用いるモータ4及びエンコーダ5とを区別せずに図示(図1参照)及び説明している。したがって、以下において、モータ4又はエンコーダ5という場合、複数の関節軸12を用いるものと、外部軸に用いるものとの両方を指すものとする。すなわち、以下において説明するエンコーダ5の異常検出装置及び異常検出方法は、複数の関節軸12用のモータ4に取り付けられるエンコーダ5と、外部軸用のモータ4に取り付けられるエンコーダ5の両方において適用が可能である。
[0034]
 エンコーダ5は、後述するセーフティユニット9及びサーボドライバ10に接続されており、セーフティユニット9及びサーボドライバ10に対して、検出した信号を出力(フィードバック)する。
[0035]
 操作部3は、ロボットAの操作者の入力操作を受ける入力部(図示しない)とディスプレイ(図示しない)とを備える。操作部3は、操作者からの入力操作に基づいてロボット制御部2との間で通信を行う。これにより、操作者が操作部3を介して、ロボットアーム11の動作設定や動作制御等を行うことができるようになっている。なお、入力部がタッチパネルで構成され、ディスプレイと入力部とが一体的に構成されていてもよい。
[0036]
 ロボット制御部2は、コントローラ(例えば、CPU)7と、記憶部としてのRAM(Random Access Memory)8と、異常検出装置としてのセーフティユニット9と、サーボドライバ10と、安全回路(コントローラ)6を備えている。このサーボドライバ10は、各モータ4を駆動させるためのドライバである。また、安全回路(コントローラ)6は、セーフティユニット9からの非常停止を指示する非常停止信号を受けてロボットAの駆動用電源(図示しない)を遮断する。なお、本開示において、ロボット制御システムとは、エンコーダ5と、ロボット制御部2とを備えている。
[0037]
 RAM8には、操作者が操作部3によって作成したロボットAの教示プログラム、ロボットAの機能設定、ロボットAの原点情報等が格納されている。
[0038]
 コントローラ7は、RAM8に格納された上記教示プログラム、機能設定、原点情報等に基づいて、速度指令(単位時間あたりに進む距離)を算出する。さらに、コントローラ7は、算出した速度指令をサーボドライバ10に出力してロボットAの動作指令を行う。同様に、コントローラ7は、上記速度指令を原点情報に基づき積算し、その積算値を指令位置情報としてセーフティユニット9に出力する。速度指令は、例えば、ロボットAの減速比、ロボットAの原点情報等に基づいて算出される。
[0039]
 サーボドライバ10は、コントローラ7から受けた速度指令及びエンコーダ5からの出力信号に基づいてモータ4を駆動する電流値を生成する。さらに、サーボドライバ10は、この電流値に基づいてモータ4を制御することにより、ロボットAの動作を制御する。
[0040]
 セーフティユニット9は、エンコーダ5及びコントローラ7に直接接続されている。そして、セーフティユニット9は、エンコーダ5から受けた出力信号に基づいて算出されたモータ4の検出位置情報と、コントローラ7から受けた指令位置情報とに基づいて、エンコーダ5が故障しているか否かを判定する。ただし、ロボットAの機能安全性を確保するために、セーフティユニット9とコントローラ7とはそれぞれ独立して動作している。よって、コントローラ7に加えられた操作が直接、セーフティユニット9に反映されることはなく、その逆もまた行われない。
[0041]
 図3はセーフティユニット9の構成を示すブロック図である。
[0042]
 図3に示すように、セーフティユニット9は、判定部としてのCPU92と、RAM93と、第1受信部としてのエンコーダ受信部94と、第2受信部としてのDPRAM(Dual Port RAM)95とを備えている。
[0043]
 エンコーダ受信部94は、エンコーダ5に接続されており、エンコーダ5からの出力信号を取得する。
[0044]
 DPRAM95は、ロボット制御部2のコントローラ7に接続されており、コントローラ7から出力された指令位置情報を取得する。この指令位置情報は、コントローラ7からサーボドライバ10に対して出力される速度指令の積算によって求められる。DPRAM95が取得した指令位置情報は、RAM93に格納される。
[0045]
 CPU92は、エンコーダ受信部94からの出力信号を受けて、その出力信号と、ロボットAの減速比、ロボットAの原点情報等とを用いてモータ4の現在位置に関する検出位置情報を算出する。そして、指令位置情報に基づく指令位置と、検出位置情報に基づく検出位置とを比較してエンコーダ5の異常の有無を確認する。
[0046]
 なお、図3において、CPU92、RAM93及びDPRAM95は、同一の構成で接続され、同一の機能を有するものが2セット設けられている。これにより、2つのCPU92を用いた並行処理が可能となる。すなわち、同一の異常判定を2重に行うことができ、1セットの場合と比較して、より信頼性を高めることができる。
[0047]
 <コントローラによるパラメータチェック及び指令位置情報送信手順>
 図4Aは、本実施形態に係るコントローラによるパラメータチェック及び指令位置情報送信手順のフローチャートを示す。
[0048]
 ロボット制御部2の電源を投入し、ロボット制御部2を起動する(ステップST1)。ステップST1において、安全回路6、コントローラ7,RAM8、セーフティユニット9、サーボドライバ10がそれぞれ起動する。
[0049]
 次に、コントローラ7が保持するモータ4制御のためのパラメータ、具体的にはRAM8に格納されたパラメータと、セーフティユニット9が保持するエンコーダ5の故障診断のためのパラメータ、具体的にはRAM93に格納されたパラメータとを比較する。具体的には、両者が保持するパラメータのうち、同じ項目のパラメータ同士を比較する(ステップST2)。両者が保持するパラメータが異なる場合には(ステップST3でNO)、コントローラ7及びセーフティユニット9がそれぞれロボットAを停止させる(ステップST4)。ロボット制御部2において、パラメータを再設定する専用モードに切り替えて、コントローラ7が保持するパラメータとセーフティユニット9が保持するパラメータとを一致させる操作を行う(ステップST5)。さらに、ロボット制御部2を再起動し(ステップST6)、ステップST2に戻って両者が保持するパラメータを比較する。なお、コントローラ7が保持するパラメータとセーフティユニット9が保持するパラメータとの整合性は、ロボット制御部2の起動時に通常チェックされる。また、ステップST4では、セーフティユニット9においてパラメータ異常と判定され、エンコーダ5の故障診断は実施されない。
[0050]
 一方、両者が保持するパラメータが一致する場合には(ステップST3でYES)、原点情報を変更したかどうかを確認する(ステップST7)。原点情報が変更されていなければ(ステップST7でNO)、コントローラ7は後述するパターンAに則って、セーフティユニット9に指令位置情報を送信する(ステップST8)。
[0051]
 原点情報が変更されていれば(ステップST7でYES)、コントローラ7が保持する原点情報を変更後の値、つまり、新たな原点情報に書き換える。具体的には、RAM8に格納された原点情報が新たな原点情報に書き換えられる(ステップST9)。ただし、コントローラ7は変更前の原点情報も保持するようにする。なお、コントローラ7の原点情報を変更する操作を行う間は、コントローラ7がロボットAを停止させる。ただし、その間もセーフティユニット9はエンコーダ5の故障診断を継続している。
[0052]
 次に、コントローラ7は後述するパターンBに則って、セーフティユニット9に指令位置情報を送信する(ステップST10)。
[0053]
 図4Bに示すように、コントローラ7側で原点情報が変更されていないパターンAでは、コントローラ7が保持する原点情報もセーフティユニット9が保持する原点情報も元の値、すなわち電源投入時の値のままである。従って、パターンAでは、指令位置情報は元の原点情報に基づいて生成され、セーフティユニット9に送信される。
[0054]
 一方、コントローラ7側で原点情報が変更されたパターンBでは、コントローラ7が保持する原点情報が変更後の新たな原点情報であるのに対し、セーフティユニット9が保持する原点情報は変更前の値のままである。前述したように、コントローラ7への変更操作は、通常、セーフティユニット9に反映されないためである。よって、このような場合に、従来技術(図4C)のようにコントローラ7が指令位置情報を変更後の新たな原点情報に基づいて生成すると、変更前の原点情報に基づいて得られるエンコーダ5の検出位置情報との差が大きくなり、エンコーダ5が故障していないにも関わらず、エンコーダ5が異常であるとセーフティユニット9が誤った判定をしてしまう可能性があった。
[0055]
 そこで、図4Bに示すように本開示のパターンBでは、指令位置情報を生成するための基礎情報として変更前の原点情報を用いるようにしている。コントローラ7から変更前の原点情報に基づく指令位置情報をセーフティユニット9に送ることにより、指令位置情報の原点情報とセーフティユニット9が保持する原点情報との整合を図ることができ、エンコーダ5の異常の誤検出を防止できる。
[0056]
 <エンコーダの異常検出方法>
 図5は、ロボット制御部2がロボットAを起動させ、ロボットAが動作を開始した後、セーフティユニット9がエンコーダ5の異常をどのように監視しているかを示したフローチャートである。すなわち、図5は、コントローラ7がサーボドライバ10を介してモータ4を回転動作させたときに、セーフティユニット9がエンコーダ5の異常をどのように監視しているかを示している。
[0057]
 ステップST1において、ロボット制御部2のコントローラ7は、ロボットAを起動し、ステップST2に進む。
[0058]
 ステップST2において、ロボット制御部2は、操作者が操作部3を介して設定した教示プログラム及びロボットAの機能設定や原点情報等に基づいてロボットAを動作させる。具体的には、サーボドライバ10は、コントローラ7から受けた速度指令に基づいて、モータ4を駆動し、ロボットAの関節軸12及び外部軸を動作させる。サーボドライバ10は、モータ4に取り付けられたエンコーダ5からの出力信号を受け、モータ4に対して、速度指令と出力信号との差分に基づくフィードバック制御を行う。このとき、エンコーダ5からの出力信号は、セーフティユニット9にも出力されている。
[0059]
 セーフティユニット9では、エンコーダ5からの出力信号を取得すると(ステップST3)、モータの位置計算を行う(ステップST4)。具体的には、セーフティユニット9のCPU92は、エンコーダ5から取得した出力信号、セーフティユニット9で保持するモータ4各軸の減速比及び原点情報等に基づいてモータ4の回転位置(現在位置)に変換する位置計算を行う。エンコーダ5から取得する出力信号は、例えばパルス信号の型式で送信される。
[0060]
 さらに、セーフティユニット9では、コントローラ7から指令位置情報を受けており(ステップST5)、ST4で算出されたモータ4の現在位置に関する検出位置情報とコントローラ7からの指令位置情報との比較を行う(ステップST6)。具体的には、セーフティユニット9のCPU92は、エンコーダ5からの出力信号に基づいて算出されたモータ4の回転位置(モータ検出値)と、コントローラ7から指令されたモータの回転位置(モータ指令値)とを比較する。なお、ステップST5において、図4Bに示すパターンAまたはパターンBに則って、コントローラ7からセーフティユニット9に指令位置情報が送信される。
[0061]
 CPU92は、上記比較の結果、モータ指令値とモータ検出値との差が所定値以上の場合(ST7でYES)、エンコーダ5の異常と判定し、ステップST8に進む。一方で、モータ指令値とモータ検出値との差が所定値未満の場合(ステップST7でNO)、エンコーダ5の異常と判定せず、フローはステップST3に戻る。
[0062]
 具体的には、ロボットAの駆動制御において、コントローラ7が指令した位置にモータ4は移動しようとしている。このため、モータ4の回転位置を示すモータ検出値(検出位置情報)と、コントローラ7が指令した回転位置を示すモータ指令値(指令位置情報)との差は、所定の閾値Pth以内に収まっているはずである。そこで、上記モータ検出値に基づくモータの回転位置が、モータ指令値に基づくモータ指令位置から所定の位置以上離れていると判定した場合に、エンコーダが故障していると判定している。
[0063]
 ステップST7では、セーフティユニット9のCPU92は、安全回路6に対して非常停止信号を送信する。非常停止信号を受けた安全回路6は、ロボットAの駆動用電源を遮断し、ロボットAを非常停止させる。
[0064]
 このように、コントローラ7は、ロボットAを起動させ、ロボットAに動作を開始させた後、セーフティユニット9がステップST3~ST7の処理を繰り返し実行し、エンコーダ5の異常を判定している。
[0065]
 以上のように、本実施形態によると、セーフティユニット9は、エンコーダ5の異常検出において、コントローラ7から直接取得した位置情報と、エンコーダ5からの出力信号に基づいて算出された位置情報とを比較した結果に基づいて、エンコーダ5の異常を検出している。これにより、エンコーダの異常検出装置を有していない汎用ロボット等の作動装置に対して、セーフティユニット9を追加することでエンコーダの故障による異常を検出することができる。さらに、その際に、サーボドライバ10等の既存の汎用ロボットの構成要素に対して設計変更等をする必要がなく、既存のシステムに対する影響を小さくすることができる。したがって、一般的なエンコーダを使用した作動装置又はシステムに適用可能である。また、既存のシステムに対してエンコーダの異常判定に係る処理が正しく行われることを示す必要がなく、処理が複雑化することもない。この点に関し、図14に示す従来の技術と対比させて説明する。
[0066]
 エンコーダ5の異常検出装置を有していない汎用ロボットに対して図14に示すような構成を適用する場合、汎用ロボットのサーボドライバ10は、通常、モータ指令値及びモータ検出値を生成する機能及び生成したモータ指令値及びモータ検出値を出力する機能を有していない。したがって、上記生成機能及び出力機能を有する回路、プログラム等を新規に設計する必要がある。また、追加設計した回路及びプログラム等が正しく機能しているかどうかを示すような仕組み(回路、プログラム、表示等)が必要である。すなわち、手間がかかるとともに処理が複雑化するという問題がある。一方、本開示に係る異常検出方法は、そのようなことが生じない。
[0067]
 また、前述したように、本実施形態によれば、モータ4の原点情報が変更された場合に、コントローラ7からセーフティユニット9に変更前の原点情報に基づいて生成された指令位置情報が送信されることにより、セーフティユニット9によるエンコーダ5の異常の誤検出を防止し、エンコーダ5の異常検出精度を維持できる。
[0068]
 以上説明したように、本開示のエンコーダの異常検出方法によれば、原点情報が変更されて、新たな原点情報としてコントローラに保持され、かつ、異常検出装置に変更前の原点情報が保持されている場合に、異常検出装置がエンコーダの異常を誤って検出しにくい。また、汎用のエンコーダを使用している場合においても既存機能、既存装置への影響を最小限に抑えてエンコーダの異常判定をすることができる。
[0069]
 以上のように、本出願において開示する技術の例示として上記第1実施形態について説明した。しかしながら、本開示における技術は、これに限定されず、適宜、変更、置き換え、付加、省略などを行った実施の形態にも適用が可能である。
[0070]
 例えば、上記第1実施形態について、以下に示すような構成としてもよい。
[0071]
 -変形例(1)-
 図6は変形例(1)に係るロボット制御部の構成を示すブロック図である。
[0072]
 図6では、図2の構成に加えて、コントローラ7とセーフティユニット9との間に、一般的な制御遅れを考慮した遅れ制御フィルタとしての一次遅れフィルタ22が設けられている。
[0073]
 実際のロボットAの制御において、同じ時間で比較した場合に、セーフティユニット9がコントローラ7から取得した指令位置情報に基づくモータ4の回転位置(モータ指令位置)と、セーフティユニット9がエンコーダ5から取得した出力信号等に基づくモータ4の回転位置(モータ検出位置)とがずれている可能性がある。これは、例えば、モータ制御の特性に起因して発生する。具体的には、ロボット制御部2のコントローラ7が速度指令及び指令位置情報を出力してからサーボドライバ10が実際にモータ4を制御し、その制御に基づいてモータ4が動作するため、一定時間の遅れが生じるためである。
[0074]
 図7は、ロボットアーム11の関節軸12を最高速度で往復運動させた場合におけるモータ指令位置(図7の太実線)と、モータ検出位置(図7の細実線)との関係を示した図である。図7の太実線と細実線を比較すると、最大で0.1秒程度の遅れが生じており、角度に換算すると18度程度の遅れが生じている(図7の一点鎖線参照)。
[0075]
 これに対し、図7の破線及び二点鎖線で示すように、一次遅れフィルタ22を設けることにより、モータ指令位置とモータ検出位置との差が大きく減少していることがわかる。なお、図7において、破線は、図6の構成に係るモータ指令位置を、二点鎖線は、図6の構成に係るモータ指令位置とモータ検出位置との偏差を示している。
[0076]
 図6のような構成にすることにより、図2の構成と比較して、より精度が高くエンコーダの異常を判定することができるようになる。具体的には、例えば、検出位置情報と指令位置情報との比較に用いる所定の閾値Pthは、モータ指令位置とモータ検出位置との差に基づいて決定する場合がある。この場合、モータ指令位置とモータ検出位置との差が減少することによって、所定の閾値Pthを小さくすることができ、結果としてエンコーダの異常検出精度を高めることができる。
[0077]
 なお、エンコーダ5の異常検出方法は、上記図5を用いた手順と同様にすればよいため、ここではその詳細な説明を省略している。
[0078]
 -変形例(2)-
 図8は変形例(2)に係るロボット制御部の構成を示すブロック図である。
[0079]
 図8では、図7の構成に加えて、コントローラ7とセーフティユニット9との間に、一次遅れフィルタ22と直列接続された制振フィルタ21が設けられている。
[0080]
 実際のロボットAの制御において、サーボドライバ10の動作制御の内容によって、より応答性の高い制御(以下、高応答性制御という)を行う場合がある。例えば、レーザーを用いた溶接ロボットにおいて、高速制御かつ軌跡の追従性を高めた制御を行うような場合である。このような高応答性制御を行う場合に、指令位置情報に含まれる起振成分によってモータ4が振動する場合がある。そこで、このモータ4の振動を抑制するために、サーボドライバ10とモータ4との間に制振フィルタ(図示しない)を用いることがよく行われている。そこで、上記のような高応答性制御が行われている場合に、図8に示すような構成を取ることにより、サーボドライバ10による制御と近い指令を作ることができる。
[0081]
 図9は、ロボットアーム11の関節軸12を最高速度で往復運動させた場合におけるモータ指令位置と、モータ検出位置との関係を示した図である。太実線及び細実線は、図7と同じであり、一次遅れフィルタ22及び制振フィルタ21を用いない構成(図2参照)に係る動作について示している。また、図9において、破線は、図8の構成に係るモータ指令位置の変化を、二点鎖線は、図8の構成に係るモータ指令位置とモータ検出位置との偏差を示している。図9から、一次遅れフィルタ22に加えて制振フィルタ21を設けることにより、モータ指令位置とモータ検出位置との差がさらに減少していることがわかる。
[0082]
 したがって、図8のような構成にすることにより、図2又は図6の構成と比較して、より精度が高くエンコーダの異常を判定することができるようになる。具体的には、例えば、変形例(1)と同様に、所定の閾値Pthを小さくすることができ、結果としてエンコーダの異常検出精度を高めることができる。なお、制振フィルタ21は、入力された指令位置情報から共振成分を除去するものである。また、制振フィルタ21および一次遅れフィルタ22は、両方を順不同で直接に備えていてもよく、また、いずれか一方のみでも構わない。
[0083]
 なお、図8において、制振フィルタ21と一次遅れフィルタ22との位置が互いに入れ替わってもよく、同様の効果が得られる。
[0084]
 -変形例(3)-
 また、図5に係る異常判定方法において、図10に示すようなフローとしてもよい。図10において、ステップST1からST6に係る処理は、図5と同様であるため、ここではその詳細な説明を省略する。
[0085]
 図10では、ステップST7において、モータ指令値とモータ検出値との差が所定値以上の場合、すなわち、ステップST7で「YES」の場合に、ステップST8に進むようにしている。そして、ステップST9において、セーフティユニット9のCPU92が、コントローラ7がロボットAの非常停止を指示したか否かを判定するようにしている。
[0086]
 具体的には、コントローラ7は、ロボットAの非常停止をする場合、安全回路6に対して、非常停止信号(図示しない)を出力する。非常停止信号を受けた安全回路6は、ロボットAの駆動用電源を遮断し、ロボットAを停止させる。本変形例(3)では、セーフティユニット9は、コントローラ7から非常停止信号を取得する。そして、ステップST8において、コントローラ7から非常停止信号が出力されているか否かを判定する。コントローラ7から非常停止信号が出力されている場合(ステップST8でYES)、フローはステップST3に戻る。すなわち、モータ指令値とモータ検出値との差が所定値以上の場合でも、エンコーダ5の異常と判定しない。
[0087]
 一方で、コントローラ7から非常停止信号が出力されていない場合(ステップST8でNO)、ステップST9に進む。ステップST9において、セーフティユニット9のCPU92は、安全回路6に対して非常停止信号を送信し、非常停止信号を受けた安全回路6は、ロボットAを非常停止させる。
[0088]
 このように、ステップST8の処理をステップST7の後に行うことによって、コントローラ7からの指示による非常停止された場合に、セーフティユニット9が、エンコーダ5の異常と誤って判定することがなくなる。具体的には、コントローラ7が非常停止信号を出力することによりロボットAを停止させた場合、コントローラ7の指令位置情報の出力が停止される。このため、セーフティユニット9において、モータ指令値とモータ検出値との比較を継続すると、エンコーダ5が正常動作しているにもかかわらず、異常と判定してしまう可能性がある。しかしながら、本態様にかかる処理を行うことでこのような問題の発生を防ぐことができる。
[0089]
 なお、図5及び図10のフローにおいて、各ステップは必ずしも記載された順で処理しなければならないわけではなく、順番を変更したり、並列処理できる場合には、適宜処理の順番や処理方法を変更してもよい。例えば、ステップST3及びST4に係る処理と、ステップST5に係る処理とは、並列に処理を行ってもよい。
[0090]
 -第2実施形態-
 本実施形態では、ロボットAの連続動作に係るエンコーダの異常検出方法について説明する。
[0091]
 なお、ロボットAを連続動作させる場合においても、基本的な構成及び動作は、第1実施形態と同様であり、ここではその詳細な説明を省略し、連続動作に係る部分に対して詳細に説明する。
[0092]
 図11は、コントローラ7からの速度指令に基づいて、モータ指令位置がP1からP2を経由してP3へと順番に移動する、いわゆる進行動作をした場合におけるモータ指令位置P1~P3と、実際のモータの位置Pr(以下、現在位置Prともいう)との関係を示している。図11のような進行動作では、モータ指令位置がP3まで移動したとき、現在位置PrがP3近辺に存在する。したがって、図5又は図10のフローに沿って処理を行うことにより、エンコーダ5の異常を検出することができる。
[0093]
 一方で、図12に示すように、コントローラ7からの速度指令に基づくモータ指令位置がP1からP2を経由してP3へと順番に移動した後にP2を経由してP1に戻る、いわゆる往復運動をした場合には、セーフティユニット9がエンコーダ5の異常を誤って判定する場合がある。例えば、図12の往復動作が高速に行われた場合、例えば、モータ4の現在位置PrがP3に到達又は十分に接近する前に、サーボドライバ10がモータ4に戻り動作を開始させ、現在位置PrがP2からP1へと戻り動作をする可能性がある。このような場合に、セーフティユニット9が、指令位置情報P3に基づくモータ指令位置と、モータ4の現在位置Prに基づくモータ検出位置との比較を行うと、位置P3と位置Prとの差が大きいことに起因して、エンコーダ5が正常に動作をしているにも拘わらず、セーフティユニット9が異常と判定してしまう可能性がある。
[0094]
 そこで、図5及び図10におけるステップST5において、CPU92は、指令位置情報に基づくモータ指令値の変化量Δn(直前の指令位置との差分量Δn)を所定のn回分(例えば5回分)積算する処理を行う。具体的には、例えば、図13に実線で示すように点P1から点P9へと往復運動をさせた場合、Δ1からΔ5までの5回分を積算する。すなわち、積算値ΔはΔ=Δ1+Δ2+Δ3+Δ4+Δ5となる。なお、図13はロボットアーム11の関節軸12を往復運動させた場合におけるモータ指令位置を示した図である。
[0095]
 さらにステップST6では、CPU92は、モータ指令値に積算値Δを増減した値と、検出位置情報に基づいて算出されたモータ検出値とを比較する。そして、ステップST7では、その比較結果に基づいてエンコーダの異常を判定するようにする。具体的には、モータ検出値P(fs)が下の(数1)の条件を満たす場合、エンコーダ5の異常とは判定しないようにする。このとき、変化量Δnは、変化の方向に拘わらず、絶対値で積算するようにする。また、変化量Δnはモータの速度に応じて変化し、速度と比例関係である。つまり、モータの駆動が高速の場合、変化量Δnは大きい値となる。逆にモータの駆動が低速の場合、変化量Δnは小さい値となる。
[0096]
[数1]


[0097]
 これにより、往復動作のような特定のロボットの動作方法において、エンコーダ5が正常に動作しているにもかかわらず、CPU92が異常と判定することを防ぐことができる。
[0098]
 なお、上記のようなエンコーダ5の異常検出方法を採用した場合、例えば非常停止で、ロボットAが所定期間動作をしない期間は、積算値Δが0になってしまう場合がある。そこで、ステップST5において、上の(数1)に代えて、下の(数2)に示すように積算値Δに所定の閾値Thを加えるようにしてもよい。
[0099]
[数2]


[0100]
 所定期間にわたってコントローラ7から指令位置情報の変更がない場合、すなわちコントローラ7からロボットAに対して所定期間動かないような指示が出ている期間がある。上記の場合、閾値Thを設けることにより、ロボットが制御装置の意図しない動作をしているときでも、セーフティユニット9が、異常を検出できるようになり、ロボットAの動作を非常停止することができるようになる。

産業上の利用可能性

[0101]
 本開示のエンコーダの異常検出方法は、モータの原点情報を変更した場合に、エンコーダの異常の誤検出を防止できるので、汎用の溶接ロボット等の産業用ロボットやその他の作動装置に適用する上で特に有用である。

符号の説明

[0102]
A ロボット(作動装置)
4 モータ
5 エンコーダ
6 安全回路
7 コントローラ
8,93 RAM(記憶部)
9 セーフティユニット(異常検出装置)
10 サーボドライバ(ドライバ)
12 関節軸(出力軸)
21 制振フィルタ
22 一次遅れフィルタ(遅れ制御フィルタ)
92 CPU(判定部)
94 エンコーダ受信部(第1受信部)
95 DPRAM(第2受信部)

請求の範囲

[請求項1]
 作動装置の出力軸を駆動するモータの回転位置を検出するためのエンコーダの異常を検出する異常検出方法であって、
 前記作動装置は、
 前記エンコーダの異常を検出する異常検出装置と、
 前記モータの回転位置を指示する速度指令を出力するとともに、前記速度指令に応じた前記モータの回転位置を示す指令位置情報を前記異常検出装置に送信するコントローラと、
 前記コントローラから出力される前記速度指令及び前記エンコーダから出力される出力信号を受け、前記速度指令及び前記出力信号に基づいて前記モータの駆動を制御するドライバと、を有し、
 前記モータの原点情報が変更されて、新たな原点情報として前記コントローラに保持される一方、前記異常検出装置に変更前の前記モータの原点情報が保持されている場合に、
 前記コントローラは、変更前の前記モータの原点情報に基づいて生成された前記指令位置情報を、前記異常検出装置に送信し、
 前記異常検出装置は、
 前記コントローラから送信された前記指令位置情報とを、前記エンコーダから出力された前記出力信号とをそれぞれ取得する情報取得ステップと、
 前記指令位置情報と前記出力信号に基づいて算出された前記モータの検出位置情報とを比較し、前記指令位置情報と前記出力信号との間に所定値以上の差があった場合に、前記エンコーダの異常と判定する異常判定ステップとを行うことを特徴とするエンコーダの異常検出方法。
[請求項2]
 請求項1に記載のエンコーダの異常検出方法において、
 前記異常検出装置は、前記モータの駆動制御の遅れに起因する時間遅れが補償された前記指令位置情報を前記コントローラから受け、前記異常判定ステップにおいて、前記時間遅れが補償された前記指令位置情報と前記検出位置情報との比較結果に基づいて、前記エンコーダの異常の有無を判定する、ことを特徴とするエンコーダの異常検出方法。
[請求項3]
 請求項1または2に記載のエンコーダの異常検出方法において、
 前記異常検出装置は、前記コントローラから共振成分が除去された前記指令位置情報を受け、前記異常判定ステップにおいて、前記共振成分が除去された前記指令位置情報と前記検出位置情報との比較結果に基づいて、前記エンコーダの異常の有無を判定する、ことを特徴とするエンコーダの異常検出方法。
[請求項4]
 請求項1ないし3のいずれか1項に記載のエンコーダの異常検出方法において、
 前記異常検出装置は、前記異常判定ステップにおいて、前記コントローラから出力された前記指令位置情報の変化量の積算値を生成し、前記積算値及び前記指令位置情報の和と前記検出位置情報との比較結果に基づいて、前記エンコーダの異常の有無を判定する、ことを特徴とするエンコーダの異常検出方法。
[請求項5]
 請求項4記載のエンコーダの異常検出方法において、
 前記異常検出装置は、前記異常判定ステップにおいて、前記積算値及び前記指令位置情報の和に所定の閾値を加えたものと前記検出位置情報との比較結果に基づいて、前記エンコーダの異常の有無を判定する、ことを特徴とするエンコーダの異常検出方法。
[請求項6]
 請求項1ないし5のいずれか1項に記載のエンコーダの異常検出方法において、
 前記作動装置は、前記作動装置を非常停止するための安全回路をさらに有し、
 前記コントローラは、非常時に前記安全回路に非常停止信号を送信するように構成され、
 前記異常検出装置は、前記異常判定ステップにおいて、前記コントローラから前記非常停止信号が出力されたことを検知した場合、前記指令位置情報と前記出力信号との間に所定値以上の差があっても、前記エンコーダの異常と判定しない、ことを特徴とするエンコーダの異常検出方法。
[請求項7]
 請求項1ないし6のいずれか1項に記載のエンコーダの異常検出方法において、
 前記作動装置はロボットである、ことを特徴とするエンコーダの異常検出方法。

図面

[ 図 1]

[ 図 2]

[ 図 3]

[ 図 4A]

[ 図 4B]

[ 図 4C]

[ 図 5]

[ 図 6]

[ 図 7]

[ 図 8]

[ 図 9]

[ 図 10]

[ 図 11]

[ 図 12]

[ 図 13]

[ 図 14]