(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-02-02
(45)【発行日】2023-02-10
(54)【発明の名称】コントローラの情報送信方法及びエンコーダの異常検出方法
(51)【国際特許分類】
B25J 19/06 20060101AFI20230203BHJP
B25J 13/00 20060101ALI20230203BHJP
G01D 5/12 20060101ALI20230203BHJP
G01D 5/244 20060101ALI20230203BHJP
【FI】
B25J19/06
B25J13/00 Z
G01D5/12 K
G01D5/244 K
(21)【出願番号】P 2019535080
(86)(22)【出願日】2018-07-24
(86)【国際出願番号】 JP2018027585
(87)【国際公開番号】W WO2019031219
(87)【国際公開日】2019-02-14
【審査請求日】2021-01-19
(31)【優先権主張番号】P 2017153530
(32)【優先日】2017-08-08
(33)【優先権主張国・地域又は機関】JP
(73)【特許権者】
【識別番号】314012076
【氏名又は名称】パナソニックIPマネジメント株式会社
(74)【代理人】
【識別番号】100106116
【氏名又は名称】鎌田 健司
(74)【代理人】
【識別番号】100131495
【氏名又は名称】前田 健児
(72)【発明者】
【氏名】衣笠 靖啓
(72)【発明者】
【氏名】相見 圭
【審査官】神山 貴行
(56)【参考文献】
【文献】特開2011-192015(JP,A)
【文献】特開2010-152595(JP,A)
【文献】特開平10-315173(JP,A)
【文献】特開平11-129186(JP,A)
【文献】特開2013-000833(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
B25J 1/00-21/02
G01D 5/12
G01D 5/244
(57)【特許請求の範囲】
【請求項1】
ロボットアームと、ロボットアームの出力軸に連結されたモータとを有し、ワークを加工する作動装置に設けられたコントローラの情報送信方法であって、
前記コントローラは、前記モータの回転位置を指示する速度指令及び前記速度指令に応じた前記モータの回転位置を示す指令位置情報を出力し、
前記作動装置は、
前記モータの回転位置を検出するためのエンコーダと、
所定の位置からの前記ワークの位置ずれ量を差分信号として出力する位置センサと、
前記コントローラから出力される前記速度指令と前記エンコーダから出力される出力信号と前記位置センサから出力される前記差分信号とを受け、少なくとも前記速度指令及び前記出力信号に基づいて前記モータの駆動を制御するドライバと、
前記エンコーダの異常を検出する異常検出装置と、をさらに有し、
前記ドライバが前記速度指令と前記出力信号と前記差分信号とに基づいて前記モータを制御する場合に、
前記ドライバが少なくとも前記差分信号を前記コントローラに送信する一方、前記コントローラは、前記指令位置情報に前記差分信号を換算して得られる補正値を加算して新たな指令位置情報を生成し、前記異常検出装置に前記新たな指令位置情報を送信することを特徴とするコントローラの情報送信方法。
【請求項2】
ロボットアームと、ロボットアームの出力軸に連結されたモータとを有し、ワークを加工する作動装置に設けられたコントローラの情報送信方法であって、
前記コントローラは、前記モータの回転位置を指示する速度指令及び前記速度指令に応じた前記モータの回転位置を示す指令位置情報を出力し、
前記作動装置は、
前記モータの回転位置を検出するためのエンコーダと、
所定の位置からの前記ワークの位置ずれ量を差分信号として出力する位置センサと、
前記コントローラから出力される前記速度指令と前記エンコーダから出力される出力信号と前記位置センサから出力される前記差分信号とを受け、少なくとも前記速度指令及び前記出力信号に基づいて前記モータの駆動を制御するドライバと、
前記エンコーダの異常を検出する異常検出装置と、をさらに有し、
前記ドライバが前記速度指令と前記出力信号と前記差分信号とに基づいて前記モータを制御する場合に、
前記ドライバが前記差分信号と前記速度指令とに基づいて目標位置情報を生成して
前記コントローラに送信する一方、前記コントローラは、前記目標位置情報を新たな指令位置情報として前記異常検出装置に送信することを特徴とするコントローラの情報送信方法。
【請求項3】
ロボットアームと、前記ロボットアームの出力軸に連結されたモータとを有する作動装置に設けられたコントローラの情報送信方法であって、
前記コントローラは、前記モータの回転位置を指示する第1及び第2速度指令及び前記第1及び第2速度指令に応じた前記モータの回転位置を示す指令位置情報を出力し、
前記作動装置は、
前記モータの回転位置を検出するためのエンコーダと、
前記コントローラから出力される前記第1及び第2速度指令と前記エンコーダから出力される出力信号とを受け、前記第1及び第2速度指令の少なくとも一方と前記出力信号とに基づいて前記モータの駆動を制御するドライバと、
前記エンコーダの異常を検出する異常検出装置と、をさらに有し、
前記第1速度指令は、前記コントローラが教示プログラムの情報に基づいて作成する速度指令であり、
前記第2速度指令は、前記ドライバでより応答性の高い制御を行う場合に用いる速度指令であり、
前記ドライバが前記第1及び第2速度指令と前記エンコーダからの出力信号とに基づいて前記モータを制御する場合に、
前記ドライバが前記第2速度指令に基づいた制御情報を前記コントローラに送信する一方、前記コントローラは、前記指令位置情報に前記第2速度指令に基づいた制御情報を換算して得られる補正値を加算して新たな指令位置情報を生成し、前記異常検出装置に前記新たな指令位置情報を送信することを特徴とするコントローラの情報送信方法。
【請求項4】
ロボットアームと、前記ロボットアームの出力軸に連結されたモータとを有する作動装置に設けられたコントローラの情報送信方法であって、
前記コントローラは、前記モータの回転位置を指示する第1及び第2速度指令及び前記第1及び第2速度指令に応じた前記モータの回転位置を示す指令位置情報を出力し、
前記作動装置は、
前記モータの回転位置を検出するためのエンコーダと、
前記コントローラから出力される前記第1及び第2速度指令と前記エンコーダから出力される出力信号とを受け、前記第1及び第2速度指令の少なくとも一方と前記出力信号とに基づいて前記モータの駆動を制御するドライバと、
前記エンコーダの異常を検出する異常検出装置と、をさらに有し、
前記第1速度指令は、前記コントローラが教示プログラムの情報に基づいて作成する速度指令であり、
前記第2速度指令は、前記ドライバでより応答性の高い制御を行う場合に用いる速度指令であり、
前記ドライバが前記第1及び第2速度指令と前記エンコーダからの出力信号とに基づいて前記モータを制御する場合に、
前記ドライバが前記第1及び第2速度指令に基づいて目標位置情報を生成して前記コントローラに送信する一方、前記コントローラは前記目標位置情報に基づいて新たな指令位置情報を生成し、前記異常検出装置に前記新たな指令位置情報を送信することを特徴とするコントローラの情報送信方法。
【請求項5】
作動装置の出力軸を駆動するモータの回転位置を検出するためのエンコーダの異常を検出する異常検出方法であって、
前記作動装置は、
前記エンコーダの異常を検出する異常検出装置と、
前記モータの回転位置を指示する速度指令を出力するとともに、前記速度指令に応じた前記モータの回転位置を示す指令位置情報を請求項1ないし
4のいずれか1項に記載の情報送信方法により前記異常検出装置に送信するコントローラと、
前記コントローラから出力される前記速度指令及び前記エンコーダから出力される出力信号を受け、前記速度指令及び前記出力信号に基づいて前記モータの駆動を制御するドライバと、をさらに有し、
前記異常検出装置は、
前記コントローラから前記指令位置情報を、また前記エンコーダから前記出力信号をそれぞれ取得する情報取得ステップと、
前記指令位置情報と前記出力信号に基づいて算出された前記モータの検出位置情報とを比較し、前記指令位置情報と前記検出位置情報との間に所定値以上の差があった場合に前記エンコーダの異常と判定する異常判定ステップとを行うことを特徴とするエンコーダの異常検出方法。
【請求項6】
前記異常検出装置は、前記モータの駆動制御の遅れに起因する時間遅れが補償された指令位置情報を前記コントローラから受け、前記異常判定ステップにおいて、前記時間遅れが補償された指令位置情報と前記検出位置情報との比較結果に基づいて、前記エンコーダの異常の有無を判定する、ことを特徴とする請求項5に記載のエンコーダの異常検出方法。
【請求項7】
前記異常検出装置は、前記コントローラから共振成分が除去された指令位置情報を受け、前記異常判定ステップにおいて、前記共振成分が除去された指令位置情報と前記検出位置情報との比較結果に基づいて、前記エンコーダの異常の有無を判定する、ことを特徴とする請求項5または6に記載のエンコーダの異常検出方法。
【請求項8】
前記異常検出装置は、前記異常判定ステップにおいて、前記コントローラから出力された前記指令位置情報の変化量の積算値を生成し、前記積算値及び前記指令位置情報の和と前記検出位置情報との比較結果に基づいて、前記エンコーダの異常の有無を判定する、ことを特徴とする請求項5ないし7のいずれか1項に記載のエンコーダの異常検出方法。
【請求項9】
前記異常検出装置は、前記異常判定ステップにおいて、前記積算値及び前記指令位置情報の和に所定の閾値を加えたものと前記検出位置情報との比較結果に基づいて、前記エンコーダの異常の有無を判定する、ことを特徴とする請求項8記載のエンコーダの異常検出方法。
【請求項10】
前記作動装置を非常停止するための安全回路がさらに設けられており、
前記コントローラは、非常時に前記安全回路に非常停止信号を送信するように構成され、
前記異常検出装置は、前記異常判定ステップにおいて、前記コントローラから前記非常停止信号が出力されたことを検知した場合、前記指令位置情報と前記検出位置情報との間に所定値以上の差があっても、前記エンコーダの異常と判定しない、ことを特徴とする請求項5ないし9のいずれか1項に記載のエンコーダの異常検出方法。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、ロボット等の作動装置に設けられたコントローラの情報送信方法及びエンコーダの異常検出方法に関する。
【背景技術】
【0002】
従来から、ロボット等の作動装置の出力軸を駆動するモータの回転位置を検出するために用いられるエンコーダの故障に係る異常検出技術が知られている。
【0003】
特許文献1には、エンコーダシステムにモータの入力軸の回転を検出する第1のエンコーダと、モータの出力軸の回転を検出する第2のエンコーダとを設けることが開示されている。さらに、特許文献1には、これら2つのエンコーダで検出された位置測定値に一定以上の差がある場合に、これらエンコーダのいずれかが異常だと判定する技術が開示されている。
【0004】
また、特許文献2には、モータが正常に制御されていることを監視するセーフティユニットを備えるサーボシステムが開示されている。特許文献2に係るセーフティユニットは、モータを制御しているサーボドライバから受けた指令値やフィードバック値が異常である場合に、上記サーボドライバへの停止信号を生成する。
【先行技術文献】
【特許文献】
【0005】
【文献】特許第5675761号公報
【文献】特許第5367623号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかしながら、汎用の作動装置の駆動系(モータ)では、単一のエンコーダしか設けられていないものも多い。そのため、特許文献1に開示された技術は、これらの汎用モータに対して適用できないという問題がある。また、新規に特許文献1に係るシステムを構成する場合においても、複数のセンサを設ける必要があるため、コストが高くなる。
【0007】
特許文献2に開示された技術においても、異常検出機能を有していない汎用のシステムに対して適用する場合に、サーボドライバに新しい機能を追加する必要がある。そのため、サーボドライバ及びセーフティユニット双方の開発が必要である。すなわち、工数がかかるという問題がある。
【0008】
図17は、特許文献2に開示された従来の技術に係るロボット制御部の構成を示すブロック図を示す。
図17に示すロボット制御部では、コントローラ7が、サーボドライバ10に指令信号を出力する。サーボドライバ10は、コントローラ7から受けた指令信号及びエンコーダ5から取得した検出信号に基づいてモータ4を駆動する電流値を生成し、この電流値に基づいてモータ4を制御する。
【0009】
サーボドライバ10が、コントローラ7から受けた指令信号に基づいてモータ4の回転位置に係る比較処理用の指令値(モータ指令値)を生成し、セーフティユニット9に出力している。同様に、サーボドライバ10は、エンコーダ5から取得した出力信号、モータ4各軸の減速比及びモータ4の原点情報(以下、単に原点情報という)等に基づいてモータ4の回転位置を示す値(モータ検出値)を生成し、セーフティユニット9に出力している。そして、セーフティユニット9では、サーボドライバ10から受けたモータ指令値とモータ検出値とを比較し、その比較結果に基づいてエンコーダ5の異常を判定している。
【0010】
しかしながら、エンコーダ5の異常検出装置を有していない汎用ロボットに対して
図17に示すような構成を適用する場合、汎用ロボットのサーボドライバ10は、通常、モータ指令値及びモータ検出値を生成する機能、並びに、生成したモータ指令値及びモータ検出値を出力する機能を有していない。
【0011】
従って、上記生成機能及び出力機能を有する回路、プログラム等を新規に設計する必要がある。また、追加設計した回路及びプログラム等が正しく機能しているかどうかを示すような仕組み(回路、プログラム、表示等)が必要である。すなわち、手間がかかるとともに処理が複雑化するという問題がある。
【0012】
また、上記のロボットを使用してワークを溶接等する場合、溶接中の熱変形によって本来溶接すべき位置がずれたり、そもそもワークの位置が正しい位置からずれて設置されていることがある。このような場合には、溶接開始前に作成され、コントローラに保持されたロボットの動作を規定する動作プログラム通りにロボットを動作させても正しく溶接できない。そのため、ワークの位置ずれを検出する目的でセンサを使用し、サーボドライバがセンサからの情報に基づいて独自にモータを制御することがある。
【0013】
しかし、上記従来の構成において、このような制御を行う場合、モータを駆動するためにサーボドライバが独自に生成した制御情報は、コントローラ側では分からない。そのため、セーフティユニットでのエンコーダの異常検出が正しく行われないおそれがあった。同様の課題は、コントローラからサーボドライバに対し高応答用の速度指令が送信され、サーボドライバが当該速度指令に基づいて独自にモータを制御する場合にも生じうる。
【0014】
本開示は、上記課題を解決するために、サーボドライバが独自にモータ制御を行う場合に、セーフティユニットでのエンコーダ異常の誤検出が生じ難いコントローラの情報送信方法及びエンコーダの異常検出方法を提供することを目的とする。
【課題を解決するための手段】
【0015】
上記の目的を達成するために、本開示のコントローラの情報送信方法では、サーボドライバがコントローラからの主たる速度指令とエンコーダからの出力信号以外の別の情報とに基づいてモータを制御する場合は、コントローラに対して別の情報あるいはサーボドライバが生成したモータの制御に関する制御情報を送信する。そして、コントローラが、受け取った別の情報または制御情報に基づいて新たな指令位置情報を生成し、これをセーフティユニットに送信することによって、セーフティユニットによるエンコーダの異常の誤検出を防止するようにした。また、本開示のエンコーダの異常検出方法では、エンコーダの出力信号に基づいて算出される検出位置情報とコントローラから出力される指令位置情報との間に所定値以上の差があった場合に、エンコーダの異常と判定するようにした。
【0016】
具体的には、本開示の第1のコントローラの情報送信方法は、ロボットアームと、該ロボットアームの出力軸に連結されたモータとを有し、ワークを加工する作動装置に設けられたコントローラの情報送信方法であって、コントローラは、モータの回転位置を指示する速度指令及び該速度指令に応じたモータの回転位置を示す指令位置情報を出力し、作動装置は、モータの回転位置を検出するためのエンコーダと、所定の位置からのワークの位置ずれ量を差分信号として出力する位置センサと、コントローラから出力される速度指令とエンコーダから出力される出力信号と位置センサから出力される差分信号とを受け、少なくとも速度指令及び出力信号に基づいてモータの駆動を制御するドライバと、エンコーダの異常を検出する異常検出装置と、をさらに有し、ドライバが速度指令と出力信号と差分信号とに基づいてモータを制御する場合に、ドライバが差分信号をコントローラに送信する一方、コントローラは、指令位置情報に差分信号を換算して得られる補正値を加算して新たな指令位置情報を生成し、異常検出装置に新たな指令位置情報を送信することを特徴とする。
【0017】
この方法によれば、コントローラからセーフティユニットに送信される指令位置情報にワークの位置ずれ量に基づく補正値を加算することで、サーボドライバが独自に受け取るモータの制御情報を指令位置情報に反映できるため、異常検出装置でのエンコーダの異常の誤検出の防止が容易になる。
【0018】
本開示の第2のコントローラの情報送信方法は、ロボットアームと、該ロボットアームの出力軸に連結されたモータとを有し、ワークを加工する作動装置に設けられたコントローラの情報送信方法であって、コントローラは、モータの回転位置を指示する速度指令及び該速度指令に応じたモータの回転位置を示す指令位置情報を出力し、作動装置はモータの回転位置を検出するためのエンコーダと、所定の位置からのワークの位置ずれ量を差分信号として出力する位置センサと、コントローラから出力される速度指令とエンコーダから出力される出力信号と位置センサから出力される差分信号とを受け、少なくとも速度指令及び出力信号に基づいてモータの駆動を制御するドライバと、エンコーダの異常を検出する異常検出装置と、をさらに有し、ドライバが速度指令と出力信号と差分信号とに基づいてモータを制御する場合に、ドライバが差分信号と速度指令とに基づいて目標位置情報を生成してコントローラに送信する一方、コントローラは目標位置情報を新たな指令位置情報にとして異常検出装置に送信することを特徴とする。
【0019】
この方法によれば、サーボドライバが生成した目標位置情報を指令位置情報とすることで、サーボドライバが独自に受け取るモータの制御情報を指令位置情報に反映できるため、異常検出装置でのエンコーダの異常の誤検出の防止が容易になる。
【0020】
本開示の第3のコントローラの情報送信方法は、ロボットアームと、該ロボットアームの出力軸に連結されたモータとを有する作動装置に設けられたコントローラの情報送信方法であって、コントローラは、モータの回転位置を指示する第1及び第2速度指令及び該第1及び第2速度指令に応じたモータの回転位置を示す指令位置情報を出力し、作動装置は、モータの回転位置を検出するためのエンコーダと、コントローラから出力される第1及び第2速度指令とエンコーダから出力される出力信号とを受け、第1及び第2速度指令の少なくとも一方と出力信号とに基づいてモータの駆動を制御するドライバと、エンコーダの異常を検出する異常検出装置と、をさらに有し、第1速度指令は、コントローラが教示プログラムの情報に基づいて作成する速度指令であり、第2速度指令は、前記ドライバでより応答性の高い制御を行う場合に用いる速度指令であり、ドライバが第1及び第2速度指令とエンコーダからの出力信号とに基づいてモータを制御する場合に、ドライバが第2速度指令に基づいた制御情報をコントローラに送信する一方、コントローラは、指令位置情報に第2速度指令に基づいた制御情報を換算して得られる補正値を加算して新たな指令位置情報を生成し、異常検出装置に新たな指令位置情報を送信することを特徴とする。
【0021】
この方法によれば、コントローラからセーフティユニットに送信される指令位置情報に第2速度指令に基づいた制御情報を換算して得られる補正値を加算することで、サーボドライバが独自に受け取るモータの制御情報を指令位置情報に反映できるため、異常検出装置でのエンコーダの異常の誤検出の防止が容易になる。
【0022】
本開示の第4のコントローラの情報送信方法は、ロボットアームと、該ロボットアームの出力軸に連結されたモータとを有する作動装置に設けられたコントローラの情報送信方法であって、コントローラは、モータの回転位置を指示する第1及び第2速度指令及び該第1及び第2速度指令に応じたモータの回転位置を示す指令位置情報を出力し、作動装置は、モータの回転位置を検出するためのエンコーダと、コントローラから出力される第1及び第2速度指令とエンコーダから出力される出力信号とを受け、第1及び第2速度指令の少なくとも一方と出力信号とに基づいてモータの駆動を制御するドライバと、エンコーダの異常を検出する異常検出装置と、をさらに有し、第1速度指令は、コントローラが教示プログラムの情報に基づいて作成する速度指令であり、第2速度指令は、前記ドライバでより応答性の高い制御を行う場合に用いる速度指令であり、ドライバが第1及び第2速度指令とエンコーダからの出力信号とに基づいてモータを制御する場合に、ドライバが第1及び第2速度指令に基づいて目標位置情報を生成してコントローラに送信する一方、コントローラは目標位置情報に基づいて新たな指令位置情報を生成し、異常検出装置に新たな指令位置情報を送信することを特徴とする。
【0023】
この方法によれば、サーボドライバが生成した目標位置情報に基づいてコントローラが新たな指令位置情報を生成し、これを異常検出装置に送信することで、サーボドライバが独自に受け取るモータの制御情報を指令位置情報に反映できるため、異常検出装置でのエンコーダの異常の誤検出の防止が容易になる。
【0024】
本開示のエンコーダの異常検出方法は、作動装置の出力軸を駆動するモータの回転位置を検出するためのエンコーダの異常を検出する異常検出方法であって、作動装置は、エンコーダの異常を検出する異常検出装置と、モータの回転位置を指示する速度指令を出力するとともに、速度指令に応じたモータの回転位置を示す指令位置情報を第1ないし第4のいずれかの情報送信方法により異常検出装置に送信するコントローラと、コントローラから出力される速度指令及びエンコーダから出力される出力信号を受け、速度指令及び出力信号に基づいてモータの駆動を制御するドライバと、をさらに有し、異常検出装置は、コントローラから指令位置情報を、またエンコーダから出力信号をそれぞれ取得する情報取得ステップと、指令位置情報と出力信号に基づいて算出されたモータの検出位置情報とを比較し、指令位置情報と検出位置情報との間に所定値以上の差があった場合にエンコーダの異常と判定する異常判定ステップとを行うことを特徴とする。
【0025】
この方法によれば、異常検出装置は、コントローラから受けた指令位置情報と、エンコーダからの出力信号に基づいて算出された検出位置情報との比較結果に基づいてエンコーダの異常を判定する。これにより、ドライバにエンコーダの異常検出のための新しい構成、機能を追加することなく、エンコーダの異常検出ができるようになる。すなわち、例えば、一般的な作動装置(例えば、ロボットや外部軸)の既存構成、既存回路への影響を抑えて、エンコーダの異常検出ができるようになる。
【0026】
異常検出装置は、異常判定ステップにおいて、コントローラから取得した指令位置情報に対し、モータの駆動制御の遅れに起因して生じた時間遅れを補償し、当該時間遅れが補償された指令位置情報と検出位置情報との比較結果に基づいて、エンコーダの異常の有無を判定する、のが好ましい。
【0027】
このように、エンコーダの異常判定に用いる指令位置情報を遅らせることで、モータ駆動制御の遅れに起因する時間のずれを解消することができる。そのため、エンコーダの異常検出精度を高めることができる。
【0028】
異常検出装置は、異常判定ステップにおいて、コントローラから出力された指令位置情報の変化量の積算値を生成し、当該積算値及び指令位置情報の和と、検出位置情報との比較結果に基づいて、エンコーダの異常の有無を判定する、のが好ましい。
【0029】
このように、エンコーダの異常判定に用いる指令位置情報に対して、積算値を加えることにより異常判定におけるマージンを増やす。そのため、エンコーダが正常に動作しているにも拘わらず、異常検出装置がエンコーダの異常と判定することを防止することができる。
【0030】
異常検出装置は、異常判定ステップにおいて、積算値及び指令位置情報の和に所定の閾値を加えたものと検出位置情報との比較結果に基づいて、エンコーダの異常の有無を判定する、のが好ましい。
【0031】
この方法によれば、積算値及び指令位置情報の和に閾値を加えて検出位置情報と比較することにより、例えば作動装置が動作していない場合等において、期間指令位置情報の変化がない場合に、差動装置が意図しない動作をしたときでも、エンコーダの異常を検出することができる。
【0032】
作動装置を非常停止するための安全回路がさらに設けられており、コントローラは、非常時に安全回路に非常停止信号を送信するように構成され、異常検出装置は、異常判定ステップにおいて、コントローラから非常停止信号が出力されたことを検知した場合、指令位置情報と検出位置情報との間に所定値以上の差があっても、エンコーダの異常と判定しない、のが好ましい。
【0033】
この方法によれば、コントローラが非常停止信号を出力した後に、指令位置情報と検出位置情報との間に所定値以上の差があった場合でもエンコーダの異常と判定しない。そのため、例えば、コントローラが非常停止信号出力後に速度指令及び指令位置情報の出力を停止した場合に、エンコーダが正常に動作しているにも拘わらず、エンコーダの異常と判定することを防ぐことが容易になる。
【発明の効果】
【0034】
以上説明したように、本開示のコントローラの情報送信方法によれば、サーボドライバがコントローラからの主たる速度指令とエンコーダからの出力信号以外の情報にも基づいてモータを制御する場合に、異常検出装置がエンコーダの異常を誤って検出することが生じ難くなる。また、本開示のエンコーダの異常検出方法によれば、汎用のエンコーダを使用している場合においても既存機能、既存装置への影響を最小限に抑えてエンコーダの異常判定をすることができる。
【図面の簡単な説明】
【0035】
【
図1】第1実施形態に係るロボット制御システムの概略構成図である。
【
図2】第1実施形態に係るロボット制御部の構成を示すブロック図である。
【
図3】セーフティユニットの構成を示すブロック図である。
【
図4A】コントローラによる指令位置情報の送信手順を示すフローチャートである。
【
図4B】コントローラによる指令位置情報の別の送信手順を示すフローチャートである。
【
図5】エンコーダの異常判定方法を示すフローチャートである。
【
図6】第2実施形態に係るロボット制御システムの概略構成図である。
【
図7】第2実施形態に係るロボット制御部の構成を示すブロック図である。
【
図8A】コントローラによる指令位置情報の送信手順を示すフローチャートである。
【
図8B】コントローラによる指令位置情報の別の送信手順を示すフローチャートである。
【
図9】ロボット制御部の他の構成例を示すブロック図である。
【
図10】モータ指令位置とモータ検出位置との関係を示す図である。
【
図11】ロボット制御部の他の構成例を示すブロック図である。
【
図12】モータ指令位置とモータ検出位置との関係を示す図である。
【
図13】エンコーダの異常判定方法の他の例を示すフローチャートである。
【
図14】第3実施形態に係る進行動作をした場合のモータ指令位置と実位置との関係を示す図である。
【
図15】第3実施形態に係る往復動作をした場合のモータ指令位置と実位置との関係を示す図である。
【
図16】モータ指令位置とモータ検出位置との関係を示す図である。
【
図17】従来の技術に係るロボット制御部の構成を示すブロック図である。
【発明を実施するための形態】
【0036】
以下、本実施形態を図面に基づいて詳細に説明する。以下の好ましい実施形態の説明は、本質的に例示に過ぎず、本発明、その適用物或いはその用途を制限することを意図するものでは全くない。
【0037】
-第1実施形態-
<ロボット及びその制御系の構成>
図1は、本実施形態に係る作動装置としてのロボット制御システムの概略構成図である。また、
図2はロボット制御部2の構成を示すブロック図であり、情報又は信号の送信方向がわかるように矢印を記載している。なお、本実施形態に係るロボットAは、ワークWを加工するために用いられる。
【0038】
図1に示すように、ロボットAは、ロボット機構部1と、ロボット制御部2と、ディスプレイ付きの操作部3とによって構成されている。ロボット機構部1とロボット制御部2との間は、接続ケーブルCによって接続されている。なお、
図1では、接続ケーブルCによる有線接続によって情報が伝達されるものとしているが、接続形態は有線接続に限定されず、無線で接続してもよい。各ブロック間の接続も同様である。
【0039】
ロボット機構部1は、複数のロボットアーム11および複数の関節軸12を有している。各ロボットアーム11には、それぞれ、ロボットアーム11を動作させるためのサーボモータ4(以下、モータ4という)が取り付けられている。例えば、ロボットAが垂直多関節6軸ロボットである場合、6個のロボットアーム11を有し、各ロボットアーム11に対応するように6個のモータ4が設けられている。各モータ4には、各モータ4の回転位置又は当該回転位置に基づく回転量を検出するためのエンコーダ5が取り付けられている。
【0040】
また、ロボットアーム11の先端にはアーク溶接を行うためのトーチ14が設けられており、図示しない電力供給部から電力が供給されて、図示しないステージ上の所定の位置に配置されているワークWの溶接を行う。
【0041】
また、ロボット機構部1にはワークWの位置を検出する位置センサ13が、ロボットアーム11とは別に設けられている。位置センサ13は、ワークWの溶接開始場所と溶接終了場所とを結ぶ軌跡が確認できる位置に配設されていればよい。
【0042】
図1では図示しないが、ロボットAに対して、ロボット制御部2からロボット機構部1への駆動制御に基づいて駆動される外部軸が付設されている。外部軸は、ロボットAの可動範囲を拡大させるためにロボット機構部1と組み合わせて用いられるものである。外部軸には、外部軸を動作させるためのモータ4が取り付けられている。モータ4には、モータ4の回転位置又は当該回転位置に基づく回転量を検出するためのエンコーダ5が取り付けられている。すなわち、複数の関節軸12及び外部軸のそれぞれに対してモータ4が連結されて設けられ、各モータ4に対してエンコーダ5が取り付けられる。なお、外部軸の種類は、特に限定されない。例えば、スライダタイプ又はポジショナタイプのどちらであっても本実施形態に係る技術が適用可能であり、それ以外のタイプのものであってもよい。
【0043】
なお、本実施形態では、発明の理解を容易にするために、複数の関節軸12を用いるモータ4及びエンコーダ5と、外部軸に用いるモータ4及びエンコーダ5とを区別せずに図示(
図1参照)及び説明している。したがって、以下において、モータ4又はエンコーダ5という場合、複数の関節軸12を用いるものと、外部軸に用いるものとの両方を指すものとする。すなわち、以下において説明するエンコーダ5の異常検出装置及び異常検出方法は、複数の関節軸12用のモータ4に取り付けられるエンコーダ5と、外部軸用のモータ4に取り付けられるエンコーダ5の両方において適用が可能である。
【0044】
エンコーダ5は、後述するセーフティユニット9及びサーボドライバ10に接続されており、セーフティユニット9及びサーボドライバ10に対して、検出した信号を出力(フィードバック)する。
【0045】
操作部3は、ロボットAの操作者の入力操作を受ける入力部(図示しない)とディスプレイ(図示しない)とを備える。操作部3は、操作者からの入力操作に基づいてロボット制御部2との間で通信を行う。これにより、操作者が操作部3を介して、ロボットアーム11の動作設定や動作制御等を行うことができるようになっている。なお、入力部がタッチパネルで構成され、ディスプレイと入力部とが一体的に構成されていてもよい。
【0046】
ロボット制御部2は、コントローラ(例えば、CPU)7と、記憶部としてのRAM(Random Access Memory)8と、異常検出装置としてのセーフティユニット9と、サーボドライバ10と、安全回路(コントローラ)6を備えている。このサーボドライバ10は、各モータ4を駆動させるためのドライバである。また、安全回路(コントローラ)6は、セーフティユニット9からの非常停止を指示する非常停止信号を受けてロボットAの駆動用電源(図示しない)を遮断する。なお、本実施形態において、ロボット制御システムとは、エンコーダ5と、ロボット制御部2と位置センサ13とを備えている。
【0047】
RAM8には、操作者が操作部3によって作成したロボットAの教示プログラム、ロボットAの機能設定等が格納されている。
【0048】
コントローラ7は、RAM8に格納された上記教示プログラム、機能設定等に基づいて、速度指令(単位時間あたりに進むモータ4の回転角度)を算出する。さらに、コントローラ7は、算出した速度指令をサーボドライバ10に出力してロボットAの動作指令を行う。同様に、コントローラ7は、上記速度指令を原点位置に基づき積算し、その積算値を指令位置情報としてセーフティユニット9に出力する。速度指令は、例えば、ロボットAの減速比、ロボットAの原点位置等に基づいて算出される。
【0049】
位置センサ13は、サーボドライバ10に接続されており、所定の位置からのワークWの位置ずれ量、つまり、動作プログラムに規定されたロボットアーム11の軌跡に対するワークWの位置ずれ量を、XYZ座標系で表わされる差分信号としてサーボドライバ10に送信する。
【0050】
サーボドライバ10は、コントローラ7から受けた速度指令とエンコーダ5からの出力信号と、さらに必要に応じて位置センサ13からの差分信号とに基づいてモータ4を駆動する電流値を生成する。さらに、サーボドライバ10は、この電流値に基づいてモータ4を制御することにより、ロボットAの動作を制御する。
【0051】
セーフティユニット9は、エンコーダ5及びコントローラ7に直接接続されている。そして、セーフティユニット9は、エンコーダ5から受けた出力信号に基づいて算出されたモータ4の検出位置情報と、コントローラ7から受けた指令位置情報とに基づいて、エンコーダ5が故障しているか否かを判定する。
【0052】
図3はセーフティユニット9の構成を示すブロック図である。
【0053】
図3に示すように、セーフティユニット9は、判定部としてのCPU92と、RAM93と、第1受信部としてのエンコーダ受信部94と、第2受信部としてのDPRAM(Dual Port RAM)95とを備えている。
【0054】
エンコーダ受信部94は、エンコーダ5に接続されており、エンコーダ5からの出力信号を取得する。
【0055】
DPRAM95は、ロボット制御部2のコントローラ7に接続されており、コントローラ7から出力された指令位置情報を取得する。この指令位置情報は、コントローラ7からサーボドライバ10に対して出力される速度指令の積算によって求められる。DPRAM95が取得した指令位置情報は、RAM93に格納される。
【0056】
CPU92は、エンコーダ受信部94からの出力信号を受けて、その出力信号と、ロボットAの減速比、ロボットAの原点位置等とを用いてモータ4の現在位置に関する検出位置情報を算出する。そして、指令位置情報に基づく指令位置と、検出位置情報に基づく検出位置とを比較してエンコーダ5の異常の有無を確認する。
【0057】
なお、
図3において、CPU92、RAM93及びDPRAM95は、同一の構成で接続され、同一の機能を有するものが2セット設けられている。これにより、2つのCPU92を用いた並行処理が可能となる。すなわち、同一の異常判定を2重に行うことができ、1セットの場合と比較して、より信頼性を高めることができる。
【0058】
<コントローラによる指令位置情報の送信手順>
本実施形態では、ワークWの位置ずれを補正するために、サーボドライバ10が、コントローラ7からの速度指令と、エンコーダ5からの出力信号と、位置センサ13からの差分信号とに基づいてモータ4を制御する場合について考える。
【0059】
図4Aは、本実施形態に係るコントローラによる指令位置情報の出力手順のフローチャートを示し、
図4Bは、指令位置情報の別の出力手順のフローチャートを示す。
【0060】
まず、
図4Aに示すように、ロボット制御部2を起動する(ステップST1)。ステップST1において、安全回路6、コントローラ7,RAM8、セーフティユニット9、サーボドライバ10がそれぞれ起動する。また、位置センサ13も起動する。
【0061】
次に、コントローラ7は、RAM8に格納された上記の教示プログラム及びロボットAの機能設定や原点情報等に基づいて、速度指令及び指令位置情報を生成し(ステップST2)、サーボドライバ10に速度指令を送信する(ステップST3)。
【0062】
サーボドライバ10が位置センサ13からの差分信号を取り込む(ステップST4)。この差分信号とコントローラ7からの速度指令とエンコーダ5からの出力信号とに基づいて、サーボドライバ10がモータ4の回転動作を制御するための制御情報を生成し(ステップST5)、コントローラ7に当該差分信号を送信する(ステップST6)。
【0063】
コントローラ7は、受信した差分信号を対応する関節軸の動作量R、つまり、時計回り方向または反時計回り方向のモータ4の回転角度に換算する(ステップST7)。そして、コントローラ7自身で生成した指令位置情報に、換算された当該動作量Rを補正値として加算し、新たな指令位置情報を生成する(ステップST8)。次に、コントローラ7は当該新たな指令位置情報をセーフティユニット9に送信する(ステップST9)。
【0064】
一方、
図4Bに示す指令位置情報の送信手順では、ステップST1~ST4までは
図4Aに示すフローと同様であるが、サーボドライバ10が位置センサ13からの差分信号を関節軸の動作量Rに換算し(ステップST5)、さらに制御情報として目標位置情報を生成する(ステップST6)。ここで、目標位置情報は、上記の動作量Rとコントローラからの速度指令Vと電源投入時の初期値Iとを加算した値である。さらに、サーボドライバ10は当該目標位置情報をコントローラ7に送信し(ステップST7)、コントローラ7は、受信した目標位置情報を新たな指令位置情報としてセーフティユニット9に送信する(ステップST8)。
【0065】
なお、
図4A,4Bにおいて、サーボドライバ10がエンコーダ5から出力信号を取り込むステップは図示を省略している。
【0066】
また、
図4A,4Bに示すフローにおいて、各ステップは必ずしも記載された順で処理しなければならないわけではなく、順番を変更してもよく、並列処理できる場合には、適宜処理の順番や処理方法を変更してもよい。例えば、
図4A,4Bにおいて、ステップST4に係る処理は、ステップST3に係る処理の前か、あるいは、ステップST3と並列に処理を行ってもよい。
【0067】
<エンコーダの異常検出方法>
図5は、ロボット制御部2がロボットAを起動させ、ロボットAが動作を開始した後、セーフティユニット9がエンコーダ5の異常をどのように監視しているかを示したフローチャートである。すなわち、
図5は、コントローラ7がサーボドライバ10を介してモータ4を回転動作させたときに、セーフティユニット9がエンコーダ5の異常をどのように監視しているかを示している。
【0068】
ステップST1において、ロボット制御部2のコントローラ7は、ロボットAを起動し、ステップST2に進む。
【0069】
ステップST2において、ロボット制御部2は、操作者が操作部3を介して設定した教示プログラム及び機能設定等に基づいてロボットAを動作させる。具体的には、コントローラ7は、RAM8に格納された教示プログラム及び機能設定等に基づいて、サーボドライバ10に速度指令を、セーフティユニット9に指令位置情報を出力する。サーボドライバ10は、コントローラ7から受けた速度指令に基づいて、モータ4を駆動し、ロボットAの関節軸12及び外部軸を動作させる。サーボドライバ10は、モータ4に取り付けられたエンコーダ5からの出力信号を受け、モータ4に対して、速度指令と出力信号との差分に基づくフィードバック制御を行う。このとき、エンコーダ5からの出力信号は、セーフティユニット9にも出力されている。
【0070】
セーフティユニット9では、エンコーダ5からの出力信号を取得すると(ST3)、モータの位置計算を行う(ST4)。具体的には、セーフティユニット9のCPU92は、エンコーダ5から取得した出力信号、モータ4各軸の減速比及びモータ4の原点情報等に基づいてモータ4の回転位置(現在位置)に変換する位置計算を行う。エンコーダ5から取得する出力信号は、例えばパルス信号の型式で送信される。
【0071】
さらに、セーフティユニット9では、コントローラ7から指令位置情報を受けており(ST5)、ST4で算出されたモータ4の現在位置に関する検出位置情報とコントローラ7からの指令位置情報との比較を行う(ST6)。具体的には、セーフティユニット9のCPU92は、エンコーダ5からの出力信号に基づいて計算されたモータ4の回転位置(モータ検出値)と、コントローラ7から指令されたモータの回転位置(モータ指令値)とを比較する。なお、ステップST5,ST6に示す指令位置情報には
図4A,4Bに示す新たな指令位置情報も含まれる。
【0072】
CPU92は、上記比較の結果、モータ指令値とモータ検出値との差が所定値以上の場合(ST7でYES)、エンコーダ5の異常と判定し、ステップST8に進む。一方で、モータ指令値とモータ検出値との差が所定値未満の場合(ST7でNO)、エンコーダ5の異常と判定せず、フローはステップST3に戻る。
【0073】
具体的には、ロボットAの駆動制御において、コントローラ7が指令した位置にモータ4は移動しようとしている。このため、モータ4の回転位置を示すモータ検出値(検出位置情報)と、コントローラ7が指令した回転位置を示すモータ指令値(指令位置情報)との差は、所定の閾値Pth以内に収まっているはずである。そこで、上記モータ検出値に基づくモータの回転位置が、モータ指令値に基づくモータ指令位置から所定の位置以上離れていると判定した場合に、エンコーダが故障していると判定している。
【0074】
ステップST8では、セーフティユニット9のCPU92は、安全回路6に対して非常停止信号を送信する。非常停止信号を受けた安全回路6は、ロボットAの駆動用電源を遮断し、ロボットAを非常停止させる。
【0075】
このように、コントローラ7は、ロボットAを起動させ、ロボットAに動作を開始させた後、セーフティユニット9がステップST3~ST7の処理を繰り返し実行し、エンコーダ5の異常を判定している。
【0076】
以上のように、本実施形態によると、セーフティユニット9は、エンコーダ5の異常検出において、コントローラ7から直接取得した位置情報とエンコーダ5からの出力信号に基づいて算出された位置情報とを比較した結果に基づいてエンコーダ5の異常を検出している。これにより、エンコーダの異常検出装置を有していない汎用ロボット等の作動装置に対して、セーフティユニット9を追加することでエンコーダの故障による異常を検出することができる。さらに、その際に、サーボドライバ10等の既存の汎用ロボットの構成要素に対して設計変更等をする必要がなく、既存のシステムに対する影響を抑えつつ、一般的なエンコーダを使用した作動装置又はシステムに適用可能である。したがって、既存のシステムに対してエンコーダの異常判定に係る処理が正しく行われることを示す必要がなく、処理が複雑化することもない。
【0077】
この点に関し、
図17に示す従来の技術と対比させて説明する。
【0078】
エンコーダ5の異常検出装置を有していない汎用ロボットに対して
図17に示すような構成を適用する場合、汎用ロボットのサーボドライバ10は、通常、モータ指令値及びモータ検出値を生成する機能及び、生成したモータ指令値及びモータ検出値を出力する機能を有していない。したがって、上記生成機能及び出力機能を有する回路、プログラム等を新規に設計する必要がある。また、追加設計した回路及びプログラム等が正しく機能しているかどうかを示すような仕組み(回路、プログラム、表示等)が必要である。すなわち、手間がかかるとともに処理が複雑化するという問題がある。一方、本開示に係る異常検出方法及び異常検出装置は、そのようなことが生じない。
【0079】
また、前述したように、サーボドライバ10からモータ4を駆動するために生成する制御情報は、コントローラ7側では分からないため、コントローラ7が生成する指令位置情報に基づいてエンコーダ5の異常検出を行うセーフティユニット9において、当該異常検出が正しく行われないおそれがあった。
【0080】
本実施形態によれば、サーボドライバ10が、コントローラ7からの速度指令とエンコーダ5からの出力信号だけでなく位置センサ13からの差分信号にも基づいてモータ4の回転動作を制御する場合に、位置センサ13からの差分信号に基づいてコントローラ7で新たな指令位置情報を生成するか、あるいは、位置センサ13からの差分信号に基づいてサーボドライバ10で目標位置情報を生成し、コントローラ7はこれを新たな指令位置情報としている。このことにより、サーボドライバ10が独自に行う部分のモータ4の制御情報を、コントローラ7が生成する指令位置情報に反映させることができる。このため、セーフティユニット9によるエンコーダ5の異常の誤検出を防止し、エンコーダ5の異常検出精度を維持できる。
【0081】
なお、サーボドライバ10で目標位置情報(
図4BのステップST6参照)を生成する場合、サーボドライバ10の制御周期がコントローラ7の制御周期よりも短いため、より短い周期で指令位置情報にサーボドライバ10の制御情報を反映できる。
【0082】
また、本実施形態において、位置センサ13からの差分信号をモータ4の回転制御に用いない場合は、サーボドライバ10からコントローラ7に制御情報を送信せず、コントローラ7が生成した指令位置情報を直接、セーフティユニット9に送信して、
図5に示すフローに基づきエンコーダ5の異常検出を行うようにしている。
【0083】
-第2実施形態-
<ロボット及びその制御系の構成>
図6は、本実施形態に係る作動装置としてのロボット制御システムの概略構成図である。また、
図7はロボット制御部2の構成を示すブロック図であり、情報又は信号の送信方向がわかるように矢印を記載している。
【0084】
図6に示すロボット制御システムは、
図1に示すロボット制御システムに対して位置センサ13を省いたのみであり、その他の構成部品や各構成部品の機能は第1実施形態に示すのと同様であるので、その説明を省略する。
【0085】
また、
図7に示すロボット制御部2の構成も、
図2に示す構成から位置センサ13が省かれているが、第1実施形態に示す構成と異なる点は、まず、コントローラ7から第1速度指令と第2速度指令とがサーボドライバ10に送信される点にある。
【0086】
このうち、第1速度指令は、第1実施形態に示す速度指令と同じであり、第1速度指令が主たる速度指令である。一方、第2速度指令はコントローラ7が教示プログラムの情報に基づいて作成する第1速度指令とは別に、サーボドライバ10側でより応答性の高い制御(以下、高応答性制御という)を行う場合にコントローラ7からサーボドライバ10に送信する指令である。
【0087】
ここで、高応答制御について説明する。例えば、ロボットAが溶接開始点等で溶接時に生じるスパッタを低減するために急速にロボットアーム11を引き上げ、また元に戻す動作を行うことがある。この引き上げまたは引き下ろし動作を行う場合に、サーボドライバ10が通常の制御に並行して行う制御が高応答性制御にあたる。ロボットアーム11の急な加減速動作の制御等も高応答制御に該当する。このような制御を行う場合、コントローラ7から直接にロボットAの動作指令である速度指令を送ると、サーボドライバ10側で速度指令を処理する過程が複雑となる。そのため、コントローラ7からはサーボドライバ10に第1速度指令に加えて第2速度指令を送信し、サーボドライバ10においてこれら2つの速度指令を考慮した目標位置を決定し、モータ4を制御している。
【0088】
<コントローラによる指令位置情報の送信手順>
本実施形態では、前述したように、ロボットAの高応答制御を行うために、コントローラ7からサーボドライバ10に対して第1及び第2速度指令を送信し、サーボドライバ10がこれら第1及び第2速度指令と、エンコーダ5からの出力信号とに基づいてモータ4を制御する場合について考える。
【0089】
図8Aは、本実施形態に係るコントローラによる指令位置情報の出力手順のフローチャートを示し、
図8Bは、指令位置情報の別の出力手順のフローチャートを示す。
【0090】
図8A,8Bに示すフローのうち、ステップST1,ST2は、
図4A,4Bに示すフローのステップST1,ST2と同様であるので説明を省略する。
【0091】
図8Aに示すように、コントローラ7は高応答制御用の第2速度指令を生成し(ステップST3)、サーボドライバ10に第1及び第2速度指令を送信する(ステップST4)。これらの速度指令と、エンコーダ5からの出力信号とに基づいてサーボドライバ10が、モータ4の回転動作を制御する制御情報を生成する(ステップST5)。次に、サーボドライバ10はコントローラ7にサーボドライバ10が独自に生成した情報、この場合は、第2速度指令に基づいた制御情報を送信する(ステップST6)。コントローラ7は、第2速度指令に基づいた制御情報を関節軸の動作量R2に換算し(ステップST7)、自身で生成した指令位置情報に当該動作量R2を補正値として加算して新たな指令位置情報を生成し(ステップST8)、当該新たな指令位置情報をセーフティユニット9に送信する(ステップST9)。
【0092】
一方、
図8Bに示す指令位置情報の送信手順では、ステップST1~ST4までは
図8Aに示すフローと同様であるが、サーボドライバ10が独自に行う制御情報として目標位置情報を生成する(ステップST5)。ここで、目標位置情報は、第1及び第2速度指令V1,V2と、電源投入時の初期値Iとを加算した値である。さらに、サーボドライバ10は当該目標位置情報をコントローラ7に送信する(ステップST6)。ここで、
図8Bに示す目標位置情報は、サーボドライバ10が保持する相対値、つまり、関節軸が、ある時点の位置からどれだけ動くかを示す量である。よって、コントローラ7は、受信した目標位置情報にそれまでの積算値を加算して絶対位置、つまり、原点からの移動量に換算し(ステップST7)、これを新たな指令位置情報としてセーフティユニット9に送信する(ステップST8)。
【0093】
なお、
図4A,4Bにおいて、サーボドライバ10がエンコーダ5から出力信号を取り込むステップは図示を省略している。
【0094】
なお、
図8A,8Bにおいて、サーボドライバ10がエンコーダ5から出力信号を取り込むステップは図示を省略している。
【0095】
また、
図8A,8Bに示すフローにおいて、各ステップは必ずしも記載された順で処理しなければならないわけではなく、順番を変更してもよく、並列処理できる場合には、適宜処理の順番や処理方法を変更してもよい。例えば、
図8A,8Bにおいて、ステップST3に係る処理は、ステップST2に係る処理の前か、あるいは、ステップST2と並列に処理を行ってもよい。
【0096】
<エンコーダの異常検出方法>
本実施形態におけるエンコーダの異常検出方法は、
図5に示す第1実施形態に係る異常検出方法と同様であるので、その詳細については説明を省略する。なお、コントローラ7からセーフティユニット9に送られる指令位置情報には
図8A,8Bに示す新たな指令位置情報も含まれることは言うまでもない。
【0097】
本実施形態においても、セーフティユニット9は、エンコーダ5の異常検出において、コントローラ7から直接取得した位置情報と、エンコーダ5からの出力信号に基づいて算出された位置情報とを比較した結果に基づいてエンコーダ5の異常を検出している。これにより、エンコーダの異常検出装置を有していない汎用ロボット等の作動装置に対して、セーフティユニット9を追加することでエンコーダの故障による異常を検出することができる。さらに、その際に、サーボドライバ10等の既存の汎用ロボットの構成要素に対して設計変更等をする必要がなく、既存のシステムに対する影響を小さくすることができる。したがって、既存のシステムに対してエンコーダの異常判定に係る処理が正しく行われることを示す必要がなく、処理が複雑化することもない。
【0098】
また、前述したように、サーボドライバ10からモータ4を駆動するために生成する制御情報は、コントローラ7側では分からないため、コントローラ7が生成する指令位置情報に基づいてエンコーダ5の異常検出を行うセーフティユニット9において、当該異常検出が正しく行われないおそれがあった。
【0099】
本実施形態によれば、サーボドライバ10が、コントローラ7からの種類の異なる2つの速度指令と、エンコーダ5からの出力信号とに基づいてモータ4の回転動作を制御する場合に、高応答用の第2速度指令に基づく制御情報からコントローラ7が新たな指令位置情報を生成するか、あるいは、2つの速度指令基づいてサーボドライバ10で目標位置情報を生成し、コントローラ7はこれを絶対位置に換算した上で新たな指令位置情報としている。このことにより、サーボドライバ10が独自に行う部分のモータ4の制御情報を、コントローラ7が生成する指令位置情報に反映させることができる。このため、セーフティユニット9によるエンコーダ5の異常の誤検出を防止し、エンコーダ5の異常検出精度を維持できる。
【0100】
なお、サーボドライバ10で目標位置情報(
図4BのステップST6参照)を生成する場合、サーボドライバ10の制御周期がコントローラ7の制御周期よりも短いため、ロボットAの制御応答性を高めることができる。
【0101】
また、本実施形態において、コントローラ7が第2速度指令を生成しない場合は、サーボドライバ10からコントローラ7に制御情報を送信せず、コントローラ7が生成した指令位置情報を直接、セーフティユニット9に送信して、
図5に示すフローに基づきエンコーダ5の異常検出を行うようにしている。
【0102】
以上のように、本出願において開示する技術の例示として上記第1実施形態について説明した。しかしながら、本開示における技術は、これに限定されず、適宜、変更、置き換え、付加、省略などを行った実施の形態にも適用が可能である。
【0103】
例えば、上記第1及び第2実施形態について、以下に示すような構成としてもよい。
【0104】
-変形例(1)-
図9は変形例(1)に係るロボット制御部の構成を示すブロック図である。
【0105】
図9では、
図6の構成に加えて、コントローラ7とセーフティユニット9との間に、一般的な制御遅れを考慮した遅れ制御フィルタとしての一次遅れフィルタ22が設けられている。なお、
図9に示す一次遅れフィルタ22が
図2に示す構成に適用できることは言うまでもない。
【0106】
実際のロボットAの制御において、同じ時間で比較した場合に、セーフティユニット9がコントローラ7から取得した指令位置情報に基づくモータ4の回転位置(モータ指令位置)と、セーフティユニット9がエンコーダ5から取得した出力信号等に基づくモータ4の回転位置(モータ検出位置)とがずれている可能性がある。これは、例えば、モータ制御の特性に起因して発生する。具体的には、ロボット制御部2のコントローラ7が速度指令及び指令位置情報を出力してからサーボドライバ10が実際にモータ4を制御し、その制御に基づいてモータ4が動作するため、一定時間の遅れが生じるためである。
【0107】
図10は、ロボットアーム11の関節軸12を最高速度で往復運動させた場合におけるモータ指令位置(
図10の太実線)と、モータ検出位置(
図10の細実線)との関係を示した図である。
図10の太実線と細実線を比較すると、最大で0.1秒程度の遅れが生じており、角度に換算すると18度程度の遅れが生じている(
図10の一点鎖線参照)。
【0108】
これに対し、
図10の破線及び二点鎖線で示すように、一次遅れフィルタ22を設けることにより、モータ指令位置とモータ検出位置との差が大きく減少していることがわかる。なお、
図10において、破線は、
図9の構成に係るモータ指令位置を、二点鎖線は、
図9の構成に係るモータ指令位置とモータ検出位置との偏差を示している。
【0109】
図9のような構成にすることにより、
図2の構成や
図6の構成と比較して、より精度が高くエンコーダの異常を判定することができるようになる。具体的には、例えば、検出位置情報と指令位置情報との比較に用いる所定の閾値Pthは、モータ指令位置とモータ検出位置との差に基づいて決定する場合がある。この場合、モータ指令位置とモータ検出位置との差が減少することによって、所定の閾値Pthを小さくすることができ、結果としてエンコーダの異常検出精度を高めることができる。
【0110】
なお、エンコーダ5の異常検出方法は、上記
図5を用いた手順と同様にすればよいため、ここではその詳細な説明を省略している。
【0111】
-変形例(2)-
図11は変形例(2)に係るロボット制御部の構成を示すブロック図である。
【0112】
図11では、
図9の構成に加えて、コントローラ7とセーフティユニット9との間に、一次遅れフィルタ22と直列接続された制振フィルタ21が設けられている。
【0113】
前述したように、実際のロボットAの制御において、サーボドライバ10の動作制御の内容によっては高応答性制御を行う場合がある。例えば、レーザーを用いた溶接ロボットにおいて、高速制御かつ軌跡の追従性を高めた制御を行うような場合である。このような高応答性制御を行う場合に、指令位置情報に含まれる起振成分によってモータ4が振動する場合がある。そこで、このモータ4の振動を抑制するために、サーボドライバ10とモータ4との間に制振フィルタ(図示しない)を用いることがよく行われている。そこで、上記のような高応答性制御が行われている場合に、
図11に示すような構成を取ることにより、サーボドライバ10による制御と近い指令を作ることができる。
【0114】
図12は、ロボットアーム11の関節軸12を最高速度で往復運動させた場合におけるモータ指令位置と、モータ検出位置との関係を示した図である。太実線及び細実線は、
図10と同じであり、一次遅れフィルタ22及び制振フィルタ21を用いない構成(
図2参照)に係る動作について示している。また、
図12において、破線は、
図11の構成に係るモータ指令位置の変化を、二点鎖線は、
図11の構成に係るモータ指令位置とモータ検出位置との偏差を示している。
図12から、一次遅れフィルタ22に加えて制振フィルタ21を設けることにより、モータ指令位置とモータ検出位置との差がさらに減少していることがわかる。
【0115】
したがって、
図11のような構成にすることにより、
図2又は
図9の構成と比較して、より精度が高くエンコーダの異常を判定することができるようになる。具体的には、例えば、変形例(1)と同様に、所定の閾値Pthを小さくすることができ、結果としてエンコーダの異常検出精度を高めることができる。なお、制振フィルタ21は、入力された指令位置情報から共振成分を除去するものである。また、制振フィルタ21および一次遅れフィルタ22は、両方を順不同で直接に備えていてもよく、また、いずれか一方のみでも構わない。
【0116】
なお、
図11において、制振フィルタ21と一次遅れフィルタ22との位置が互いに入れ替わってもよく、同様の効果が得られる。
【0117】
-変形例(3)-
また、
図5に係る異常判定方法において、
図13に示すようなフローとしてもよい。
図13において、ステップST1からST6に係る処理は、
図5と同様であるため、ここではその詳細な説明を省略する。
【0118】
図13では、ステップST7において、モータ指令値とモータ検出値との差が所定値以上の場合、すなわち、ステップST7で「YES」の場合に、ステップST8に進むようにしている。そして、ステップST8において、セーフティユニット9のCPU92が、コントローラ7がロボットAの非常停止を指示したか否かを判定するようにしている。
【0119】
具体的には、コントローラ7は、ロボットAの非常停止をする場合、安全回路6に対して、非常停止信号(図示しない)を出力する。非常停止信号を受けた安全回路6は、ロボットAの駆動用電源を遮断し、ロボットAを停止させる。本変形例(3)では、セーフティユニット9は、コントローラ7から非常停止信号を取得する。そして、ステップST8において、コントローラ7から非常停止信号が出力されているか否かを判定する。コントローラ7から非常停止信号が出力されている場合(ST8でYES)、フローはステップST3に戻る。すなわち、モータ指令値とモータ検出値との差が所定値以上の場合でも、エンコーダ5の異常と判定しない。
【0120】
一方で、コントローラ7から非常停止信号が出力されていない場合(ST8でNO)、ステップST9に進む。ステップST9において、セーフティユニット9のCPU92は、安全回路6に対して非常停止信号を送信し、非常停止信号を受けた安全回路6は、ロボットAを非常停止させる。
【0121】
このように、ステップST8の処理をステップST7の後に行うことによって、コントローラ7からの指示による非常停止された場合に、セーフティユニット9が、エンコーダ5の異常と誤って判定することがなくなる。具体的には、コントローラ7が非常停止信号を出力することによりロボットAを停止させた場合、コントローラ7の指令位置情報の出力が停止される。このため、セーフティユニット9において、モータ指令値とモータ検出値との比較を継続すると、エンコーダ5が正常動作しているにもかかわらず、異常と判定してしまう可能性がある。しかしながら、本態様にかかる処理を行うことでこのような問題の発生を防ぐことができる。
【0122】
なお、
図5及び
図13のフローにおいて、各ステップは必ずしも記載された順で処理しなければならないわけではなく、順番を変更したり、並列処理できる場合には、適宜処理の順番や処理方法を変更してもよい。例えば、ステップST3及びST4に係る処理と、ステップST5に係る処理とは、並列に処理を行ってもよい。
【0123】
-第3実施形態-
本実施形態では、ロボットAの連続動作に係るエンコーダの異常検出方法について説明する。
【0124】
なお、ロボットAを連続動作させる場合においても、基本的な構成及び動作は、第1実施形態と同様であり、ここではその詳細な説明を省略し、連続動作に係る部分に対して詳細に説明する。
【0125】
図14は、コントローラ7からの速度指令に基づいて、モータ指令位置がP1からP2を経由してP3へと順番に移動する、いわゆる進行動作をした場合におけるモータ指令位置P1~P3と、実際のモータの位置Pr(以下、現在位置Prともいう)との関係を示している。
図14のような進行動作では、モータ指令位置がP3まで移動したとき、現在位置PrがP3近辺に存在する。したがって、
図5又は
図13のフローに沿って処理を行うことにより、エンコーダ5の異常を検出することができる。
【0126】
一方で、
図15に示すように、コントローラ7からの速度指令に基づくモータ指令位置がP1からP2を経由してP3へと順番に移動した後にP2を経由してP1に戻る、いわゆる往復運動をした場合には、セーフティユニット9がエンコーダ5の異常を誤って判定する場合がある。例えば、
図15の往復動作が高速に行われた場合、例えば、モータ4の現在位置PrがP3に到達又は十分に接近する前に、サーボドライバ10がモータ4に戻り動作を開始させ、現在位置PrがP2からP1へと戻り動作をする可能性がある。このような場合に、セーフティユニット9が、指令位置情報P3に基づくモータ指令位置と、モータ4の現在位置Prに基づくモータ検出位置との比較を行うと、位置P3と位置Prとの差が大きいことに起因して、エンコーダ5が正常に動作をしているにも拘わらず、セーフティユニット9が異常と判定してしまう可能性がある。
【0127】
そこで、
図5及び
図13におけるステップST5において、CPU92は、指令位置情報に基づくモータ指令値の変化量Δn(直前の指令位置との差分量Δn)を所定のn回分(例えば5回分)積算する処理を行う。具体的には、例えば、
図16に実線で示すように点P1から点P9へと往復運動をさせた場合、Δ1からΔ5までの5回分を積算する。すなわち、積算値ΔはΔ=Δ1+Δ2+Δ3+Δ4+Δ5となる。なお、
図16はロボットアーム11の関節軸12を往復運動させた場合におけるモータ指令位置を示した図である。
【0128】
さらにステップST6では、CPU92は、モータ指令値に積算値Δを増減した値と、検出位置情報に基づいて計算されたモータ検出値とを比較し、そして、ステップST7では、その比較結果に基づいてエンコーダの異常を判定するようにする。具体的には、モータ検出値P(fs)が下の(数1)の条件を満たす場合、エンコーダ5の異常とは判定しないようにする。このとき、変化量Δnは、変化の方向に拘わらず、絶対値で積算するようにする。また、変化量Δnはモータの速度に応じて変化し、速度と比例関係である。つまり、モータの駆動が高速の場合、変化量Δnは大きい値となる。逆にモータの駆動が低速の場合、変化量Δnは小さい値となる。
【0129】
【0130】
これにより、往復動作のような特定のロボットの動作方法において、エンコーダ5が正常に動作しているにもかかわらず、CPU92が異常と判定することを防ぐことができる。
【0131】
なお、上記のようなエンコーダ5の異常検出方法を採用した場合、例えば非常停止で、ロボットAが所定期間動作をしない期間は、積算値Δが0になってしまう場合がある。そこで、ステップST5において、上の(数1)に代えて、下の(数2)に示すように積算値Δに所定の閾値Thを加えるようにしてもよい。
【0132】
【0133】
所定期間にわたってコントローラ7から指令位置情報の変更がない場合、すなわちコントローラ7からロボットAに対して所定期間動かないような指示が出ている期間がある。上記の場合、閾値Thを設けることにより、ロボットが制御装置の意図しない動作をしているときでも、セーフティユニット9が、異常を検出できるようになり、ロボットAの動作を非常停止することができるようになる。
【0134】
なお、変形例(1)~(3)及び第3実施形態における指令位置情報には
図4A,4B,8B,8Bに示す新たな指令位置情報も含まれることは言うまでもない。
【0135】
また、第1実施形態において、位置センサ13からの差分信号がサーボドライバ10に入力される例について説明したが、特にこれに限定されず、コントローラ7に入力されるようにしてもよい。例えば、
図4Aに示すフローにおいて、ステップST1の後に、位置センサ13からの差分信号をコントローラ7が取り込むステップを設け、これに基づいてステップST2で生成される指令位置情報を補正するようにしてもよい。つまり、サーボドライバ10が速度指令と出力信号と位置センサ13からの差分信号とに基づいてモータ4を制御する場合に、コントローラ7は、差分信号を位置センサ13から受け取る一方、指令位置情報に差分信号を換算して得られる補正値を加算して新たな指令位置情報を生成し、セーフティユニット9に新たな指令位置情報を送信する。また、この場合、
図4Aに示すステップST4~8は省略されるため、セーフティユニット9に指令位置情報を送信する手順が簡略化され、また送信までの時間が短縮されうる。
【産業上の利用可能性】
【0136】
本開示のコントローラの情報送信方法は、サーボドライバがコントローラからの主たる速度指令及びエンコーダからの出力信号以外の情報にも基づいてモータを制御する場合にエンコーダの異常の誤検出を防止でき、また、エンコーダの異常検出方法は、汎用のエンコーダを使用している場合においても既存機能、既存装置への影響を最小限に抑えてエンコーダの異常を判定できるので、汎用の溶接ロボット等の産業用ロボットやその他の作動装置に係るエンコーダの異常を判定する上で特に有用である。
【符号の説明】
【0137】
A ロボット(作動装置)
W ワーク
4 モータ
5 エンコーダ
7 コントローラ
8,93 RAM(記憶部)
9 セーフティユニット(異常検出装置)
10 サーボドライバ
12 関節軸(出力軸)
13 位置センサ
21 制振フィルタ
22 一次遅れフィルタ(遅れ制御フィルタ)
92 CPU(判定部)
94 エンコーダ受信部(第1受信部)
95 DPRAM(第2受信部)