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