JP2007265103A - ロボット制御装置 - Google Patents
ロボット制御装置 Download PDFInfo
- Publication number
- JP2007265103A JP2007265103A JP2006090216A JP2006090216A JP2007265103A JP 2007265103 A JP2007265103 A JP 2007265103A JP 2006090216 A JP2006090216 A JP 2006090216A JP 2006090216 A JP2006090216 A JP 2006090216A JP 2007265103 A JP2007265103 A JP 2007265103A
- Authority
- JP
- Japan
- Prior art keywords
- robot
- control information
- current position
- unit
- cpu
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Images
Landscapes
- Numerical Control (AREA)
- Manipulator (AREA)
- Safety Devices In Control Systems (AREA)
Abstract
【課題】サーボ制御部の異常を迅速かつ的確に検出すること。
【解決手段】監視部7は、二つの演算処理部10,11を有し、各演算処理部は、制御情報からロボットの位置を推測する位置推測手段10,11と、他の演算処理部における推測されたロボットの推測位置を取得する推測位置取得手段10,11と、推測したロボットの推測位置と取得したロボットの推測位置とが一致するか否かを判断する推測位置一致判断手段10,11と、ロボットの推測位置が一致すると判断された場合に、推測位置と検出されたロボットの現在位置との差を算出する位置差算出手段10,11と、算出された位置の差が所定値以上である場合又はロボットの推測位置が一致しないと判断された場合に、切り替え部5,6によりサーボモータに対する電力の供給を遮断する電力遮断手段10,11と、を備える。
【選択図】図2
【解決手段】監視部7は、二つの演算処理部10,11を有し、各演算処理部は、制御情報からロボットの位置を推測する位置推測手段10,11と、他の演算処理部における推測されたロボットの推測位置を取得する推測位置取得手段10,11と、推測したロボットの推測位置と取得したロボットの推測位置とが一致するか否かを判断する推測位置一致判断手段10,11と、ロボットの推測位置が一致すると判断された場合に、推測位置と検出されたロボットの現在位置との差を算出する位置差算出手段10,11と、算出された位置の差が所定値以上である場合又はロボットの推測位置が一致しないと判断された場合に、切り替え部5,6によりサーボモータに対する電力の供給を遮断する電力遮断手段10,11と、を備える。
【選択図】図2
Description
本発明は、ロボット制御装置に関する。
一般的に産業用ロボットは、ロボット本体にサーボモータが取り付けられ、このサーボモータに位置検出器が取り付けられて構成されている。ロボットの位置は、位置検出器により検出されたロボットの位置情報に基づいてサーボ制御部により制御されている。従って、ロボットに精度の高い動作を実現させるためには、サーボ制御部の信頼性の確保が重要である。
そのため、サーボ制御部からのロボットへの指令位置と、位置検出器から検出されるロボットの現在位置を比較することで、サーボ制御部を診断し、サーボ制御部の監視が行われている(例えば、特許文献1参照。)。
特開平8−137526号公報
そのため、サーボ制御部からのロボットへの指令位置と、位置検出器から検出されるロボットの現在位置を比較することで、サーボ制御部を診断し、サーボ制御部の監視が行われている(例えば、特許文献1参照。)。
しかしながら、サーボ制御においては、指令位置に対して現在位置が追従動作するフィードバック制御が行われており、低速動作時は指令位置と現在位置が一致する状態で動作している。しかし、高速動作時においては、その差、いわゆるサーボ遅れが顕著に見られる。このような場合、上述した特許文献1に記載の発明では、指令位置と現在位置を比較しているために、サーボ遅れが発生すると異常を検出するまでの時間がかかる場合や、さらには、検出できない場合がある。
本発明は、上記課題を解決するためになされたものであり、サーボ制御部の異常を迅速かつ的確に検出することができるロボット制御装置を提供することを目的とする。
請求項1に記載の発明は、ロボット制御装置において、ロボットを駆動するサーボモータを前記ロボットに設けられた位置検出手段からの検出出力に応じて制御するサーボ制御部と、前記サーボモータに対する電力の供給と遮断とを切り替え可能な切り替え部と、所定の監視条件に応じて前記切り替え部を通じて前記サーボモータを停止させる監視部と、を備え、前記監視部は、二つの演算処理部と、前記サーボ制御部からの前記ロボットに対する制御情報を受信する制御情報受信手段と、前記制御情報受信手段により受信した制御情報を一方又は双方の演算処理部に送信する制御情報送信手段と、を有し、各演算処理部は、受信した制御情報からロボットの位置を推測する位置推測手段と、他の演算処理部における前記位置推測手段により推測されたロボットの推測位置を取得する推測位置取得手段と、前記位置推測手段により推測したロボットの推測位置と前記推測位置取得手段により取得したロボットの推測位置とが一致するか否かを判断する推測位置一致判断手段と、前記推測位置一致判断手段によりロボットの推測位置が一致すると判断された場合に、前記推測位置と前記位置検出手段により検出されたロボットの現在位置との差を算出する位置差算出手段と、前記位置差算出手段により算出された位置の差が所定値以上である場合又は前記推測位置一致判断手段によりロボットの推測位置が一致しないと判断された場合に、前記切り替え部により前記サーボモータに対する電力の供給を遮断する電力遮断手段と、を有することを特徴とする。
ここで、制御情報とは、ロボットへの指令位置やサーボゲインに関する情報である。
ここで、制御情報とは、ロボットへの指令位置やサーボゲインに関する情報である。
請求項2に記載の発明は、請求項1に記載のロボット制御装置において、各演算処理部は、受信した制御情報が異常であるか否かを判断する制御情報異常判断手段と、他の演算処理部において受信した制御情報を取得する制御情報取得手段と、受信した制御情報と前記制御情報取得手段により取得した制御情報とが一致するか否かを判断する制御情報一致判断手段と、前記制御情報異常判断手段により受信した制御情報が異常であると判断された場合又は前記制御情報一致判断手段により制御情報が一致しないと判断された場合に、制御情報の受信エラーである旨をユーザに報知する報知手段と、を有することを特徴とする。
請求項3に記載の発明は、請求項1又は2に記載のロボット制御装置において、前記監視部は、前記位置検出手段により検出されたロボットの現在位置情報を受信する現在位置情報受信手段と、前記現在位置情報受信手段により受信したロボットの現在位置情報を一方又は双方の演算処理部に送信する現在位置情報送信手段と、を有し、各演算処理部は、受信したロボットの現在位置情報が異常であるか否かを判断する現在位置情報異常判断手段と、他の演算処理部において受信したロボットの現在位置情報を取得する現在位置情報取得手段と、受信したロボットの現在位置情報と前記現在位置情報取得手段により取得したロボットの現在位置情報とが一致するか否かを判断する現在位置情報一致判断手段と、を有し、前記電力遮断手段は、前記現在位置情報異常判断手段により受信したロボットの現在位置情報が異常であると判断された場合又は前記現在位置情報一致判断手段によりロボットの現在位置情報が一致しないと判断された場合に、前記切り替え部により前記サーボモータに対する電力の供給を遮断することを特徴とする。
請求項4に記載の発明は、請求項1〜3のいずれか一項に記載のロボット制御装置において、前記サーボ制御部と前記監視部を別個に構成したことを特徴とする。
請求項5に記載の発明は、請求項1〜4のいずれか一項に記載のロボット制御装置において、各演算処理部に対して処理の不良停止状態の発生を検出するウォッチドッグ回路が各演算処理部ごとに設けられ、各演算処理部が、他の演算処理部の監視回路を通じて不良停止状態を検知すると、当該他の演算処理部が不良停止状態である旨をユーザに報知することを特徴とする。
請求項1に記載の発明では、制御情報受信手段は、サーボ制御部からのロボットに対する制御情報を受信し、制御情報送信手段は、受信した制御情報を一方又は双方の演算処理部に送信する。
各演算処理部は、位置推測手段が、受信した制御情報からロボットの位置を推測し、推測位置取得手段により、他の演算処理部における位置推測手段により推測されたロボットの推測位置を取得する。各演算処理部は、推測位置一致判断手段が、位置推測手段により推測したロボットの推測位置と推測位置取得手段により取得したロボットの推測位置とが一致するか否かを判断する。
次いで、位置差算出手段により、推測位置一致判断手段によりロボットの推測位置が一致すると判断された場合に、推測位置と位置検出手段により検出されたロボットの現在位置との差を算出する。
そして、電力遮断手段は、位置差算出手段により算出された位置の差が所定値以上である場合又は推測位置一致判断手段によりロボットの推測位置が一致しないと判断された場合に、切り替え部によりサーボモータに対する電力の供給を遮断する。
各演算処理部は、位置推測手段が、受信した制御情報からロボットの位置を推測し、推測位置取得手段により、他の演算処理部における位置推測手段により推測されたロボットの推測位置を取得する。各演算処理部は、推測位置一致判断手段が、位置推測手段により推測したロボットの推測位置と推測位置取得手段により取得したロボットの推測位置とが一致するか否かを判断する。
次いで、位置差算出手段により、推測位置一致判断手段によりロボットの推測位置が一致すると判断された場合に、推測位置と位置検出手段により検出されたロボットの現在位置との差を算出する。
そして、電力遮断手段は、位置差算出手段により算出された位置の差が所定値以上である場合又は推測位置一致判断手段によりロボットの推測位置が一致しないと判断された場合に、切り替え部によりサーボモータに対する電力の供給を遮断する。
これにより、各演算処理部は、サーボ制御部から受信した制御情報に基づいて、サーボ遅れ等も考慮した状態でロボットの位置を推測し、位置検出手段から検出されるロボットの現在位置と比較して、その位置の差に応じてサーボモータの駆動を停止させることができるので、サーボ制御部の異常を迅速かつ的確に検出することができ、監視部の信頼性を向上させることができる。
また、二つの演算処理部により互いに推測したロボットの現在位置が一致するか否かを判断しているので、監視部の信頼性を向上させることができる。
また、二つの演算処理部により互いに推測したロボットの現在位置が一致するか否かを判断しているので、監視部の信頼性を向上させることができる。
請求項2に記載の発明では、制御情報異常判断手段は、受信した制御情報が異常であるか否かを判断し、制御情報が異常であると判断された場合には、報知手段が制御情報の受信エラーである旨をユーザに報知する。制御情報取得手段は他の演算処理部において受信した制御情報を取得し、制御情報一致判断手段は、受信した制御情報と制御情報取得手段により取得した制御情報とが一致するか否かを判断する。そして、制御情報一致判断手段により制御情報が一致しないと判断された場合には、報知手段は制御情報の受信エラーである旨をユーザに報知する。
これにより、制御情報を受信した段階で異常がある場合には、処理を進めることなく即座に異常をユーザに報知し、さらに、各演算処理部が互いの制御情報を相互に比較して異常の有無を判断しているので、サーボ制御部の異常を迅速かつ的確に検出することができ、監視部の信頼性を向上させることができる。
また、二つの演算処理部により互いに受信した制御情報の異常の有無を判断しているので、監視部の信頼性を向上させることができる。
また、二つの演算処理部により互いに受信した制御情報の異常の有無を判断しているので、監視部の信頼性を向上させることができる。
請求項3に記載の発明では、現在位置情報受信手段は、位置検出手段により検出されたロボットの現在位置情報を受信し、現在位置情報送信手段は、受信したロボットの現在位置情報を一方又は双方の演算処理部に送信する。
各演算処理部は、現在位置情報異常判断手段が、受信したロボットの現在位置情報が異常であるか否かを判断し、受信したロボットの現在位置情報が異常であると判断した場合には、電力遮断手段が、切り替え部によりサーボモータに対する電力の供給を遮断する。
次いで、現在位置情報取得手段が他の演算処理部において受信したロボットの現在位置情報を取得する。各演算処理部は、現在位置情報一致判断手段が、受信したロボットの現在位置情報と現在位置情報取得手段により取得したロボットの現在位置情報とが一致するか否かを判断する。ここで、現在位置情報一致判断手段によりロボットの現在位置情報が一致しないと判断された場合には、電力遮断手段が、切り替え部によりサーボモータに対する電力の供給を遮断する。
各演算処理部は、現在位置情報異常判断手段が、受信したロボットの現在位置情報が異常であるか否かを判断し、受信したロボットの現在位置情報が異常であると判断した場合には、電力遮断手段が、切り替え部によりサーボモータに対する電力の供給を遮断する。
次いで、現在位置情報取得手段が他の演算処理部において受信したロボットの現在位置情報を取得する。各演算処理部は、現在位置情報一致判断手段が、受信したロボットの現在位置情報と現在位置情報取得手段により取得したロボットの現在位置情報とが一致するか否かを判断する。ここで、現在位置情報一致判断手段によりロボットの現在位置情報が一致しないと判断された場合には、電力遮断手段が、切り替え部によりサーボモータに対する電力の供給を遮断する。
これにより、ロボットの現在位置情報を受信した段階で異常がある場合には、処理を進めることなく即座に異常をユーザに報知し、さらに、各演算処理部が互いのロボットの現在位置情報を相互に比較して異常の有無を判断しているので、サーボ制御部の異常を迅速かつ的確に検出することができ、監視部の信頼性を向上させることができる。
また、二つの演算処理部により互いに受信したロボットの現在位置情報の異常の有無を判断しているので、監視部の信頼性を向上させることができる。
また、二つの演算処理部により互いに受信したロボットの現在位置情報の異常の有無を判断しているので、監視部の信頼性を向上させることができる。
請求項4に記載の発明では、サーボ制御部と監視部を別個に構成することにより、ロボットの制御と監視を並列処理することができるため、サーボ制御部の処理の負荷を軽減することができるとともに、各部の処理を高速化することができる。
請求項5に記載の発明では、各演算処理部ごとに設けられたウォッチドッグ回路が、演算処理部の不良停止状態の検知を行う。ここで、不良停止状態とは、演算処理部が処理を実行すべき際に処理を行わなくなった状態をいう。
そして、いずれかいずれかの演算処理部が他の演算処理部を監視するウォッチドッグ回路を通じて不良停止状態の発生を検知すると、演算処理部はサーボモータを停止させる。
これにより、いずれかの演算処理部が不良停止して、残り一方の演算処理部のみによるサーボモータの監視状態が回避され、二系統による監視状態でのみサーボモータを駆動させることができ、サーボモータの異常動作をより確実に防止することができる。
そして、いずれかいずれかの演算処理部が他の演算処理部を監視するウォッチドッグ回路を通じて不良停止状態の発生を検知すると、演算処理部はサーボモータを停止させる。
これにより、いずれかの演算処理部が不良停止して、残り一方の演算処理部のみによるサーボモータの監視状態が回避され、二系統による監視状態でのみサーボモータを駆動させることができ、サーボモータの異常動作をより確実に防止することができる。
以下、図面を参照して、本発明に係るロボット制御装置の最良の形態について詳細に説明する。なお、本実施形態においては、スポット溶接ガンを備える溶接ロボットの制御装置を例に挙げて説明する。
〔ロボット及びロボット制御装置の構成〕
<ロボット>
図1に示すように、ロボット制御装置1による対象となるロボット2は、土台となるベース21と、複数の関節23で連結された複数のアーム22と、各関節23ごとに設けられた駆動源としてのサーボモータ24と、各サーボモータ24の軸角度をそれぞれ検出する位置検出手段としてのエンコーダ25と、を備えている。そして、連結されたアーム22の最先端部にはロボット2の用途に応じたツール26(例えば溶接ガンやハンド等)が装備されている。
各関節23は、アーム22の一端部を揺動可能として他端部を軸支する揺動関節と、アーム22自身をその長手方向を中心に回転可能に軸支する回転関節とのいずれかから構成される。つまり、本実施形態におけるロボット2はいわゆる多関節型ロボットに相当する。
また、ロボット2は、六つの関節23を備えており、その先端部のツール26を任意の位置に位置決めし、任意の姿勢を取らせることが可能となっている。
<ロボット>
図1に示すように、ロボット制御装置1による対象となるロボット2は、土台となるベース21と、複数の関節23で連結された複数のアーム22と、各関節23ごとに設けられた駆動源としてのサーボモータ24と、各サーボモータ24の軸角度をそれぞれ検出する位置検出手段としてのエンコーダ25と、を備えている。そして、連結されたアーム22の最先端部にはロボット2の用途に応じたツール26(例えば溶接ガンやハンド等)が装備されている。
各関節23は、アーム22の一端部を揺動可能として他端部を軸支する揺動関節と、アーム22自身をその長手方向を中心に回転可能に軸支する回転関節とのいずれかから構成される。つまり、本実施形態におけるロボット2はいわゆる多関節型ロボットに相当する。
また、ロボット2は、六つの関節23を備えており、その先端部のツール26を任意の位置に位置決めし、任意の姿勢を取らせることが可能となっている。
<ロボット制御装置>
ロボット制御装置1は、ティーチング或いはプログラミングにより設定されたロボット2の教示動作データに従って、ロボット2の制御指令を出力する位置制御部3と、位置制御部3からの制御指令に従ってロボット2の各サーボモータ24の制御を行うサーボアンプ4と、電源から各サーボモータ24への電力の供給と遮断とを切り替え可能な切り替え部としてのマグネットスイッチ5,6と、ロボット2の制御情報を監視して所定条件に応じて各マグネットスイッチ5,6を通じてサーボモータ24を停止させる監視部7と、監視部7により異常検知が行われた場合にオペレータに異常発生を報知するための報知部8と、を備えている。ここで、位置制御部3、サーボアンプ4、監視部7は、それぞれ別個に構成されている。
ロボット制御装置1は、ティーチング或いはプログラミングにより設定されたロボット2の教示動作データに従って、ロボット2の制御指令を出力する位置制御部3と、位置制御部3からの制御指令に従ってロボット2の各サーボモータ24の制御を行うサーボアンプ4と、電源から各サーボモータ24への電力の供給と遮断とを切り替え可能な切り替え部としてのマグネットスイッチ5,6と、ロボット2の制御情報を監視して所定条件に応じて各マグネットスイッチ5,6を通じてサーボモータ24を停止させる監視部7と、監視部7により異常検知が行われた場合にオペレータに異常発生を報知するための報知部8と、を備えている。ここで、位置制御部3、サーボアンプ4、監視部7は、それぞれ別個に構成されている。
(位置制御部)
位置制御部3は、ロボット2の動作制御を行うために各サーボモータ24に対する制御指令を生成するための各種の処理プログラム及び各種のデータが記憶されたメモリと、処理プログラムを実行するCPUと、サーボアンプ4との指令やデータの送受信を行うためのインターフェイスとを主に備えている。
位置制御部3は、ロボット2の動作制御を行うために各サーボモータ24に対する制御指令を生成するための各種の処理プログラム及び各種のデータが記憶されたメモリと、処理プログラムを実行するCPUと、サーボアンプ4との指令やデータの送受信を行うためのインターフェイスとを主に備えている。
メモリには、ロボット2の各種の処理プログラムの他、設定されたロボットの教示動作データ、ロボット2に関する各種の制御情報(各部の寸法、重量、イナーシャ、エンコーダ25の出力コードと当該出力コードが示す関節角度(角度位置)との対応関係を示すテーブル、ロボットの各関節23における関節角度の上限値、下限値(許容動作位置)、各関節23の関節動作速度の上限値(許容速度)、各関節23のトルクの上限値(許容値)、指令位置、サーボゲイン等)が記憶されている。
教示動作データは、ロボット2が所定の動作を実行するための制御指令であり、例えば、事前にロボット2に目的となる動作(ティーチング)を行わせ、当該動作軌跡の各点で関節角度のサンプリングを行い、その実行動作を再現するために演算により求められた移動軌跡のデータである。
位置制御部3のCPUは、ロボット2の制御の際には、教示動作データに基づいて、サーボアンプ4に対して各サーボモータ24の位置指令を所定の周期で順番に出力する。
なお、教示動作データは、ティーチングに限らず、記録メディアの読み出し装置、オペレータによる入力装置又は外部に対する通信手段によりロボット制御装置1の外部から取得される場合もある。
教示動作データは、ロボット2が所定の動作を実行するための制御指令であり、例えば、事前にロボット2に目的となる動作(ティーチング)を行わせ、当該動作軌跡の各点で関節角度のサンプリングを行い、その実行動作を再現するために演算により求められた移動軌跡のデータである。
位置制御部3のCPUは、ロボット2の制御の際には、教示動作データに基づいて、サーボアンプ4に対して各サーボモータ24の位置指令を所定の周期で順番に出力する。
なお、教示動作データは、ティーチングに限らず、記録メディアの読み出し装置、オペレータによる入力装置又は外部に対する通信手段によりロボット制御装置1の外部から取得される場合もある。
また、メモリ内の各種の制御情報である各部の寸法、重量、イナーシャ、エンコーダ25の出力コードと当該出力コードが示す関節角度との対応関係を示すテーブル、ロボットの各関節23における関節角度の上限値、下限値、各関節23の関節動作速度の上限値、各関節23のトルクの上限値等のデータ、そして、ロボット2への指令位置やサーボゲイン等は、監視部7に出力される。その際、CPUは、各データについて所定のデータ単位ごとにCRCコード(Cyclic Redundancy Check)を生成し、これを添付して監視部7に送信する。
(サーボアンプ)
サーボアンプ4は、ロボット2の各関節23のエンコーダ25から回転角度位置の検出信号を受信する受信回路と、各サーボモータ24に対する制御信号と帰還信号の送受信を行うモータ制御回路とを備えている。そして、サーボアンプ4は、位置制御部3から入力される指令位置と各エンコーダ25の検出信号と各サーボモータ24からの帰還信号とに基づいて、各サーボモータ24の位置、速度、トルクについてフィードバック制御を行う。なお、このサーボアンプ4と位置制御部3とが、サーボモータ24をエンコーダ25からの検出出力に応じて制御するサーボ制御部として機能する。
サーボアンプ4は、ロボット2の各関節23のエンコーダ25から回転角度位置の検出信号を受信する受信回路と、各サーボモータ24に対する制御信号と帰還信号の送受信を行うモータ制御回路とを備えている。そして、サーボアンプ4は、位置制御部3から入力される指令位置と各エンコーダ25の検出信号と各サーボモータ24からの帰還信号とに基づいて、各サーボモータ24の位置、速度、トルクについてフィードバック制御を行う。なお、このサーボアンプ4と位置制御部3とが、サーボモータ24をエンコーダ25からの検出出力に応じて制御するサーボ制御部として機能する。
(監視部)
図2は、監視部7の構成を示すブロック図である。監視部7は、後述する各種の処理を実行する二つの演算処理部としての第一及び第二のCPU10,11と、ロボット2の各エンコーダ25からロボット2の現在位置情報を受信する現在位置情報受信手段としてのエンコーダデータ受信回路12と、サーボ制御部を構成する位置制御部3からロボット2への指令位置及びサーボゲインを含む制御情報を受信するとともに制御情報受信手段としての制御情報受信回路13と、第一と第二のCPU10,11の演算処理の実行状態を個別に監視するウォッチドッグ回路17,18と、を備えている。
図2は、監視部7の構成を示すブロック図である。監視部7は、後述する各種の処理を実行する二つの演算処理部としての第一及び第二のCPU10,11と、ロボット2の各エンコーダ25からロボット2の現在位置情報を受信する現在位置情報受信手段としてのエンコーダデータ受信回路12と、サーボ制御部を構成する位置制御部3からロボット2への指令位置及びサーボゲインを含む制御情報を受信するとともに制御情報受信手段としての制御情報受信回路13と、第一と第二のCPU10,11の演算処理の実行状態を個別に監視するウォッチドッグ回路17,18と、を備えている。
(各CPUの機能)
各CPU10,11は、それぞれ内部メモリ15,16を有しており、各内部メモリ15,16は、CPU10,11がそれぞれ実行する処理プログラムを記憶すると共に各処理における作業領域として機能する。
また、第一のCPU10と第二のCPU11とは、それぞれのデータの送受信を行う通信手段であるバスにより互いに接続されている。
各CPU10,11は、それぞれ内部メモリ15,16を有しており、各内部メモリ15,16は、CPU10,11がそれぞれ実行する処理プログラムを記憶すると共に各処理における作業領域として機能する。
また、第一のCPU10と第二のCPU11とは、それぞれのデータの送受信を行う通信手段であるバスにより互いに接続されている。
第一のCPU10及び第二のCPU11は、受信した制御情報からロボット2の位置を推測する位置推測手段として機能する。
第一のCPU10及び第二のCPU11は、他のCPU10,11において推測されたロボット2の推測位置を取得する推測位置取得手段として機能する。
第一のCPU10及び第二のCPU11は、推測したロボット2の推測位置と取得したロボット2の推測位置とが一致するか否かを判断する推測位置一致判断手段として機能する。
第一のCPU10及び第二のCPU11は、ロボット2の推測位置が一致すると判断された場合に、推測位置とエンコーダ25により検出されたロボット2の現在位置との差を算出する位置差算出手段として機能する。
第一のCPU10及び第二のCPU11は、算出された位置の差が所定値以上である場合又はロボット2の推測位置が一致しないと判断された場合に、マグネットスイッチ5,6によりサーボモータ24に対する電力の供給を遮断する電力遮断手段として機能する。
第一のCPU10及び第二のCPU11は、他のCPU10,11において推測されたロボット2の推測位置を取得する推測位置取得手段として機能する。
第一のCPU10及び第二のCPU11は、推測したロボット2の推測位置と取得したロボット2の推測位置とが一致するか否かを判断する推測位置一致判断手段として機能する。
第一のCPU10及び第二のCPU11は、ロボット2の推測位置が一致すると判断された場合に、推測位置とエンコーダ25により検出されたロボット2の現在位置との差を算出する位置差算出手段として機能する。
第一のCPU10及び第二のCPU11は、算出された位置の差が所定値以上である場合又はロボット2の推測位置が一致しないと判断された場合に、マグネットスイッチ5,6によりサーボモータ24に対する電力の供給を遮断する電力遮断手段として機能する。
第一のCPU10及び第二のCPU11は、受信した制御情報が異常であるか否かを判断する制御情報異常判断手段として機能する。
第一のCPU10及び第二のCPU11は、他のCPU10,11において受信した制御情報を取得する制御情報取得手段として機能する。
第一のCPU10及び第二のCPU11は、受信した制御情報と取得した制御情報とが一致するか否かを判断する制御情報一致判断手段として機能する。
第一のCPU10及び第二のCPU11は、他のCPU10,11において受信した制御情報を取得する制御情報取得手段として機能する。
第一のCPU10及び第二のCPU11は、受信した制御情報と取得した制御情報とが一致するか否かを判断する制御情報一致判断手段として機能する。
第一のCPU10及び第二のCPU11は、受信したロボット2の現在位置情報が異常であるか否かを判断する現在位置情報異常判断手段として機能する。
第一のCPU10及び第二のCPU11は、他のCPU10,11において受信したロボット2の現在位置情報を取得する現在位置情報取得手段として機能する。
第一のCPU10及び第二のCPU11は、受信したロボット2の現在位置情報と取得したロボット2の現在位置情報とが一致するか否かを判断する現在位置情報一致判断手段として機能する。
第一のCPU10及び第二のCPU11は、受信したロボット2の現在位置情報が異常であると判断された場合、又は、受信したロボット2の現在位置情報と取得したロボット2の現在位置情報とが一致しないと判断された場合に、マグネットスイッチ5,6によりサーボモータ24に対する電力の供給を遮断する電力遮断手段として機能する。
第一のCPU10及び第二のCPU11は、他のCPU10,11において受信したロボット2の現在位置情報を取得する現在位置情報取得手段として機能する。
第一のCPU10及び第二のCPU11は、受信したロボット2の現在位置情報と取得したロボット2の現在位置情報とが一致するか否かを判断する現在位置情報一致判断手段として機能する。
第一のCPU10及び第二のCPU11は、受信したロボット2の現在位置情報が異常であると判断された場合、又は、受信したロボット2の現在位置情報と取得したロボット2の現在位置情報とが一致しないと判断された場合に、マグネットスイッチ5,6によりサーボモータ24に対する電力の供給を遮断する電力遮断手段として機能する。
(エンコーダデータ受信回路)
エンコーダデータ受信回路12は、第一のCPU10からの指令に従い、エンコーダ25に対する検出信号出力の要求コマンドと当該要求コマンドを一意に識別するためのシーケンス番号データとをエンコーダ25に送信する。このシーケンス番号は、周期的に行われる位置データの要求コマンド出力のたびに順次1ずつ加算されて付加されるので、各要求コマンドごとに重複するシーケンス番号が付加されないようになっている。
一方、エンコーダ25は、シーケンス番号が付加された要求コマンドを受けると同じシーケンス番号を付加して検出したロボットの現在の位置に関する現在位置情報の返信を行う。これにより、エンコーダデータ受信回路12では、現在位置情報に付加されたシーケンス番号を参照することで、いずれの要求コマンドに対する現在位置情報なのかを識別することができる。また、シーケンス番号の不一致により、エンコーダ25の異常を検知することが可能となっている。また、エンコーダデータ受信回路12は、エンコーダ25から受信した現在位置情報を第一のCPU10に送信する現在位置情報送信手段としても機能する。
エンコーダデータ受信回路12は、第一のCPU10からの指令に従い、エンコーダ25に対する検出信号出力の要求コマンドと当該要求コマンドを一意に識別するためのシーケンス番号データとをエンコーダ25に送信する。このシーケンス番号は、周期的に行われる位置データの要求コマンド出力のたびに順次1ずつ加算されて付加されるので、各要求コマンドごとに重複するシーケンス番号が付加されないようになっている。
一方、エンコーダ25は、シーケンス番号が付加された要求コマンドを受けると同じシーケンス番号を付加して検出したロボットの現在の位置に関する現在位置情報の返信を行う。これにより、エンコーダデータ受信回路12では、現在位置情報に付加されたシーケンス番号を参照することで、いずれの要求コマンドに対する現在位置情報なのかを識別することができる。また、シーケンス番号の不一致により、エンコーダ25の異常を検知することが可能となっている。また、エンコーダデータ受信回路12は、エンコーダ25から受信した現在位置情報を第一のCPU10に送信する現在位置情報送信手段としても機能する。
(制御情報受信回路)
制御情報受信回路13は、サーボアンプ4からのサーボモータ24への指令位置及びサーボゲインを、位置制御部3を介して受信し、受信した指令位置及びサーボゲインを第一のCPU10に送信する。すなわち、制御情報受信回路13は、制御情報送信手段としても機能する。
制御情報受信回路13は、サーボアンプ4からのサーボモータ24への指令位置及びサーボゲインを、位置制御部3を介して受信し、受信した指令位置及びサーボゲインを第一のCPU10に送信する。すなわち、制御情報受信回路13は、制御情報送信手段としても機能する。
(ウォッチドッグ回路)
ウォッチドッグ回路17は第一のCPU10を監視し、ウォッチドッグ回路18は第二のCPU11の監視を行う。
即ち、各ウォッチドッグ回路17,18は、ロボット2の制御実行時において、それぞれが監視対象とするCPU10,11に対して周期的にウォッチドッグ要求信号を出力し、これに対して各CPU10,11が所定期間内に応答信号を返信しないときには、監視対象であるCPU10,11が停止しているものとして、タイムアップ信号を監視対象ではないCPU10,11に出力する機能を有している。
ウォッチドッグ回路17は第一のCPU10を監視し、ウォッチドッグ回路18は第二のCPU11の監視を行う。
即ち、各ウォッチドッグ回路17,18は、ロボット2の制御実行時において、それぞれが監視対象とするCPU10,11に対して周期的にウォッチドッグ要求信号を出力し、これに対して各CPU10,11が所定期間内に応答信号を返信しないときには、監視対象であるCPU10,11が停止しているものとして、タイムアップ信号を監視対象ではないCPU10,11に出力する機能を有している。
(報知部)
報知部8は、監視部7の処理において異常を検知したときに、その異常をオペレータに報知するための表示手段である。具体的には、異常発生を表示するモニタ、報知ランプ又は警報機等が報知部8として使用される。
報知部8は、各CPU10,11が、他のウォッチドッグ回路17,18を通じて不良停止状態を検知すると、当該他のCPU10,11が不良停止状態である旨をユーザに報知する。
報知部8は、第一のCPU10及び第二のCPU11により、受信した制御情報が異常であると判断された場合、又は、受信した制御情報と取得した制御情報とが一致するか否かを判断した際に制御情報が一致しないと判断された場合に、制御情報の受信エラーである旨をユーザに報知する報知手段として機能する。
報知部8は、監視部7の処理において異常を検知したときに、その異常をオペレータに報知するための表示手段である。具体的には、異常発生を表示するモニタ、報知ランプ又は警報機等が報知部8として使用される。
報知部8は、各CPU10,11が、他のウォッチドッグ回路17,18を通じて不良停止状態を検知すると、当該他のCPU10,11が不良停止状態である旨をユーザに報知する。
報知部8は、第一のCPU10及び第二のCPU11により、受信した制御情報が異常であると判断された場合、又は、受信した制御情報と取得した制御情報とが一致するか否かを判断した際に制御情報が一致しないと判断された場合に、制御情報の受信エラーである旨をユーザに報知する報知手段として機能する。
〔制御情報の受信処理〕
図3は、監視部7の各CPU10,11が行うロボット制御における制御情報(主に指令位置、サーボゲイン)の受信処理を示したものである。
最初に、第一のCPU10は、制御情報受信回路13を介して位置制御部3のCPUに対して制御情報の要求を行い、その結果、位置制御部3から制御情報を受信する(ステップS101)。
図3は、監視部7の各CPU10,11が行うロボット制御における制御情報(主に指令位置、サーボゲイン)の受信処理を示したものである。
最初に、第一のCPU10は、制御情報受信回路13を介して位置制御部3のCPUに対して制御情報の要求を行い、その結果、位置制御部3から制御情報を受信する(ステップS101)。
このとき、位置制御部3のCPUは制御情報について所定のデータ単位でCRCコードを付与して送信する。これに対して、第一のCPU10は受信した制御情報について位置制御部3と同じ条件でCRCコードを生成すると共に、位置制御部3で生成されたCRCコードと一致するか否かの判断を行う(ステップS102)。
このCRCコードは、生成する元となるデータが1ビットでも異なればコードも変化してしまう性質があるので、上記処理において送信前の制御情報が何らかの異常により送信後に異なる制御情報に変化し或いは破損したかを判断することができる。
このCRCコードは、生成する元となるデータが1ビットでも異なればコードも変化してしまう性質があるので、上記処理において送信前の制御情報が何らかの異常により送信後に異なる制御情報に変化し或いは破損したかを判断することができる。
そして、第一のCPU10が、CRCコードが一致しない(CRCコード異常)と判断した場合(ステップS102:YES)、第一のCPU10は報知部8に対して制御情報の受信エラーを示す異常報知表示を行うように制御する(ステップS103)。異常報知後は第一及び第二のCPU10,11は他の処理を行わず、故障要因を排除して電源を再投入しない限り復旧しない状態となる。
一方、第一のCPU10が、CRCコードが一致した(CRCコード正常)と判断した場合(ステップS102:NO)、第一のCPU10は、内部メモリ15に受信した制御情報を格納し(ステップS104)、さらに、第二のCPU11に対して受信した制御情報とそのCRCコードを送信する(ステップS105)。
一方、第一のCPU10が、CRCコードが一致した(CRCコード正常)と判断した場合(ステップS102:NO)、第一のCPU10は、内部メモリ15に受信した制御情報を格納し(ステップS104)、さらに、第二のCPU11に対して受信した制御情報とそのCRCコードを送信する(ステップS105)。
第一のCPU10からの制御情報とCRCコードを受信すると、第二のCPU11は、受信した制御情報について位置制御部3と同じ条件でCRCコードを生成すると共に、受信した制御情報のCRCコードと一致するか否かの判断を行う(ステップS106)。
そして、第二のCPU11が、CRCコードが一致しない(CRCコード異常)と判断した場合(ステップS106:YES)、第二のCPU11は報知部8に対して制御情報の受信エラーを示す異常報知表示を行うように制御する(ステップS107)。このときも、異常報知後は第一及び第二のCPU10,11は他の処理を行わず、故障要因を排除して電源を再投入しない限り復旧しない状態となる。
一方、第二のCPU11が、CRCコードが一致した(CRCコード正常)と判断した場合(ステップS106:YES)、第二のCPU11は、内部メモリ16に受信した制御情報を格納する(ステップS108)。
そして、第二のCPU11が、CRCコードが一致しない(CRCコード異常)と判断した場合(ステップS106:YES)、第二のCPU11は報知部8に対して制御情報の受信エラーを示す異常報知表示を行うように制御する(ステップS107)。このときも、異常報知後は第一及び第二のCPU10,11は他の処理を行わず、故障要因を排除して電源を再投入しない限り復旧しない状態となる。
一方、第二のCPU11が、CRCコードが一致した(CRCコード正常)と判断した場合(ステップS106:YES)、第二のCPU11は、内部メモリ16に受信した制御情報を格納する(ステップS108)。
また、第一のCPU10は、制御情報を内部メモリ15に格納後、バスを介して第二のCPU11に送信した制御情報との相互比較を行い(ステップS109)、第二のCPU11は、制御情報を内部メモリ16に格納後、バスを介して第一のCPU11が保有する制御情報との相互比較を行う(ステップS110)。
そして、第一のCPU10は、自己の制御情報と第二のCPU11の制御情報とが一致するか否かを判断し(ステップS111)、第一のCPU10が一致すると判断した場合(ステップS111:YES)、これをもって本処理を終了する。一方、第一のCPU10が一致しないと判断した場合(ステップS111:NO)、第一のCPU10は、報知部8に対して制御情報の受信エラーを示す異常報知表示を行うように制御する(ステップS113)。このときも、異常報知後は第一及び第二のCPU10,11は他の処理を行わず、故障要因を排除して電源を再投入しない限り復旧しない状態となる。
また、同様にして、第二のCPU11は、自己の制御情報と第一のCPU10の制御情報とが一致するか否かを判断し(ステップS112)、第二のCPU11が一致すると判断した場合(ステップS112:YES)、これをもって本処理を終了する。一方、第二のCPU11が一致しないと判断した場合(ステップS112:NO)、第二のCPU11は、報知部8に対して制御情報の受信エラーを示す異常報知表示を行うように制御する(ステップS114)。このときも、異常報知後は第一及び第二のCPU10,11は他の処理を行わず、故障要因を排除して電源を再投入しない限り復旧しない状態となる。
〔ロボットの現在位置情報の受信処理〕
図4は、監視部7の各CPU10,11が行うロボット2の現在位置情報の受信処理を示したものである。
図4は、監視部7の各CPU10,11が行うロボット2の現在位置情報の受信処理を示したものである。
最初に、第一のCPU10は、エンコーダデータ受信回路12を介してエンコーダ25に対して現在の検出角度位置を示す現在位置情報の要求コマンドを送信する。このとき、要求コマンドは、当該コマンドを一意に識別するためのシーケンス番号データを付加されてエンコーダ25に送信される。その結果、エンコーダデータ受信回路12から現在位置情報を受信する(ステップS201)。
このとき、エンコーダ25は制御情報について所定のデータ単位でCRCコードを付与して送信する。これに対して、第一のCPU10は受信した現在位置情報についてエンコーダ25と同じ条件でCRCコードを生成すると共に、エンコーダ25で生成されたCRCコードと一致するか否かの判断を行う(ステップS202)。
このCRCコードは、生成する元となるデータが1ビットでも異なればコードも変化してしまう性質があるので、上記処理において送信前の制御情報が何らかの異常により送信後に異なる制御情報に変化し或いは破損したかを判断することができる。
このCRCコードは、生成する元となるデータが1ビットでも異なればコードも変化してしまう性質があるので、上記処理において送信前の制御情報が何らかの異常により送信後に異なる制御情報に変化し或いは破損したかを判断することができる。
そして、第一のCPU10が、CRCコードが一致しない(CRCコード異常)と判断した場合(ステップS202:YES)、第一のCPU10はマグネットスイッチ5に切替信号を出力し、全てのサーボモータ24への通電を遮断して、ロボット2を停止させる(ステップS203)。一方、第一のCPU10が、CRCコードが一致した(CRCコード正常)と判断した場合(ステップS202:NO)、第一のCPU10は、第二のCPU11に対して受信した現在位置情報とそのCRCコードを送信する(ステップS204)。
そして、第一のCPU10からの現在位置情報とCRCコードを受信すると、第二のCPU11は、受信した現在位置情報についてエンコーダ25と同じ条件でCRCコードを生成すると共に、当該生成したCRCコードと受信したCRCコードとが一致するか否かの判断を行う(ステップS205)。
そして、第二のCPU11が、CRCコードが一致しない(CRCコード異常)と判断した場合(ステップS205:YES)、第二のCPU11はマグネットスイッチ6に切替信号を出力し、全てのサーボモータ24への通電を遮断して、ロボット2を停止させる(ステップS206)。
そして、第一のCPU10からの現在位置情報とCRCコードを受信すると、第二のCPU11は、受信した現在位置情報についてエンコーダ25と同じ条件でCRCコードを生成すると共に、当該生成したCRCコードと受信したCRCコードとが一致するか否かの判断を行う(ステップS205)。
そして、第二のCPU11が、CRCコードが一致しない(CRCコード異常)と判断した場合(ステップS205:YES)、第二のCPU11はマグネットスイッチ6に切替信号を出力し、全てのサーボモータ24への通電を遮断して、ロボット2を停止させる(ステップS206)。
一方、第一のCPU10は、現在位置情報を第二のCPU11に送信後、上述したステップS104の処理(図3)で位置制御部3から受信して内部メモリ15に格納した制御情報に含まれるエンコーダ25の出力コードと当該出力コードが示す検出角度位置との対応関係を示すテーブルを参照して、エンコーダ25の位置データを関節角度(角度位置)に変換すると共に内部メモリ15に記憶する(ステップS207)。
また、第二のCPU11も、現在位置情報のCRCコードに異常がない場合に、上述したステップS108の処理(図3)で内部メモリ16に格納した制御情報中のエンコーダ25の出力コードと関節角度との対応テーブルから、エンコーダ25の位置データを関節角度に変換すると共に内部メモリ16に記憶する(ステップS208)。
また、第二のCPU11も、現在位置情報のCRCコードに異常がない場合に、上述したステップS108の処理(図3)で内部メモリ16に格納した制御情報中のエンコーダ25の出力コードと関節角度との対応テーブルから、エンコーダ25の位置データを関節角度に変換すると共に内部メモリ16に記憶する(ステップS208)。
そして、第一のCPU10は、関節角度の算出後、バスを介して、第二のCPU11が算出した関節角度との相互比較を行い(ステップS209)、第一のCPU10で求めた関節角度と第二のCPU11で求めた関節角度とが一致するか否かを判断する(ステップS210)。
そして、第一のCPU10が、相互の関節角度が一致しないと判断した場合(ステップS210:NO)、第一のCPU10は、マグネットスイッチ5に切替信号を出力し、全てのサーボモータ24への通電を遮断して、ロボット2を停止させる(ステップS211)。
また、第一のCPU10が、相互の関節角度が一致すると判断した場合(ステップS210:YES)、第一のCPU10は、位置監視処理(ステップS212)、CPUの相互監視処理(ステップS213)を行った後に、本処理を終了する。
そして、第一のCPU10が、相互の関節角度が一致しないと判断した場合(ステップS210:NO)、第一のCPU10は、マグネットスイッチ5に切替信号を出力し、全てのサーボモータ24への通電を遮断して、ロボット2を停止させる(ステップS211)。
また、第一のCPU10が、相互の関節角度が一致すると判断した場合(ステップS210:YES)、第一のCPU10は、位置監視処理(ステップS212)、CPUの相互監視処理(ステップS213)を行った後に、本処理を終了する。
一方、第二のCPU11は、関節角度の算出後、バスを介して、第一のCPU10が算出した関節角度との相互比較を行い(ステップS214)、第二のCPU11で求めた関節角度と第一のCPU10で求めた関節角度とが一致するか否かを判断する(ステップS215)。
そして、第二のCPU11が、相互の関節角度が一致しないと判断した場合(ステップS215:NO)、第二のCPU11は、マグネットスイッチ6に切替信号を出力し、全てのサーボモータ24への通電を遮断して、ロボット2を停止させる(ステップS216)。
また、第二のCPU11が、相互の関節角度が一致すると判断した場合(ステップS215:YES)、第二のCPU11は、位置監視処理(ステップS217)、CPUの相互監視処理(ステップS218)を行った後に、本処理を終了する。
そして、第二のCPU11が、相互の関節角度が一致しないと判断した場合(ステップS215:NO)、第二のCPU11は、マグネットスイッチ6に切替信号を出力し、全てのサーボモータ24への通電を遮断して、ロボット2を停止させる(ステップS216)。
また、第二のCPU11が、相互の関節角度が一致すると判断した場合(ステップS215:YES)、第二のCPU11は、位置監視処理(ステップS217)、CPUの相互監視処理(ステップS218)を行った後に、本処理を終了する。
〔監視部における位置監視処理〕
図5は、監視部7の各CPU10,11が行うロボット2の位置監視処理を示したものである。
まず、第一のCPU10は、位置制御部3から受信した制御情報におけるロボット2への指令位置、サーボゲインからロボット2の現在位置を推測する(ステップS301)。また、第二のCPU11も、第一のCPU10から受信した制御情報におけるロボット2への指令位置、サーボゲインからロボット2の現在位置を推測する(ステップS302)。
図5は、監視部7の各CPU10,11が行うロボット2の位置監視処理を示したものである。
まず、第一のCPU10は、位置制御部3から受信した制御情報におけるロボット2への指令位置、サーボゲインからロボット2の現在位置を推測する(ステップS301)。また、第二のCPU11も、第一のCPU10から受信した制御情報におけるロボット2への指令位置、サーボゲインからロボット2の現在位置を推測する(ステップS302)。
そして、第一のCPU10は、ロボット2の現在位置を推測した後、バスを介して、第二のCPU11で推測したロボット2の現在位置との相互比較を行い(ステップS303)、第一のCPU10で推測したロボット2の現在位置と第二のCPU11で推測したロボット2の現在位置とが一致するか否かの判断を行う(ステップS304)。
同様に、第二のCPU11は、ロボット2の現在位置を推測した後、バスを介して、第一のCPU10が推測したロボット2の現在位置との相互比較を行い(ステップS305)、第二のCPU11で推測したロボット2の現在位置と第一のCPU10で推測したロボット2の現在位置とが一致するか否かの判断を行う(ステップS306)。
同様に、第二のCPU11は、ロボット2の現在位置を推測した後、バスを介して、第一のCPU10が推測したロボット2の現在位置との相互比較を行い(ステップS305)、第二のCPU11で推測したロボット2の現在位置と第一のCPU10で推測したロボット2の現在位置とが一致するか否かの判断を行う(ステップS306)。
そして、第一のCPU10が、相互の推測位置が一致しないと判断した場合(ステップS304:NO)、第一のCPU10は、マグネットスイッチ5に切替信号を出力し、全てのサーボモータ24への通電を遮断して、ロボット2を停止させる(ステップS307)。
同様に、第二のCPU11が、相互の推測位置が一致しないと判断した場合(ステップS306:NO)、第二のCPU11は、マグネットスイッチ6に切替信号を出力し、全てのサーボモータ24への通電を遮断して、ロボット2を停止させる(ステップS308)。
同様に、第二のCPU11が、相互の推測位置が一致しないと判断した場合(ステップS306:NO)、第二のCPU11は、マグネットスイッチ6に切替信号を出力し、全てのサーボモータ24への通電を遮断して、ロボット2を停止させる(ステップS308)。
一方、第一のCPU10が、相互の推測位置が一致したと判断した場合(ステップS304:YES)、第一のCPU10は、エンコーダデータ受信回路12を介してエンコーダ25から受信したロボット2の現在位置と、ステップS301で推測したロボット2の推測位置との差分を算出し、その差分が内部メモリ15に格納していた所定の閾値未満であるか(許容される位置差の限界を超えていないか否か)否かを判断する(ステップS309)。
同様に、第二のCPU11が、相互の推測位置が一致したと判断した場合(ステップS306:YES)、第二のCPU11は、第一のCPU10から受信したロボット2の現在位置と、ステップS302で推測したロボット2の推測位置との差分を算出し、その差分が内部メモリ16に格納していた所定の閾値未満であるか(許容される位置差の限界を超えていないか否か)否かを判断する(ステップS310)。
同様に、第二のCPU11が、相互の推測位置が一致したと判断した場合(ステップS306:YES)、第二のCPU11は、第一のCPU10から受信したロボット2の現在位置と、ステップS302で推測したロボット2の推測位置との差分を算出し、その差分が内部メモリ16に格納していた所定の閾値未満であるか(許容される位置差の限界を超えていないか否か)否かを判断する(ステップS310)。
そして、第一のCPU10が、ロボット2の現在位置と推測位置との差分値が閾値以上であったと判断した場合(ステップS309:NO)、第一のCPU10は、マグネットスイッチ5に切替信号を出力し、ロボット2を停止させる(ステップS311)。また、第一のCPU10が、ロボット2の現在位置と推測位置との差分値が閾値未満であったと判断した場合(ステップS309:YES)、第一のCPU10は、本処理を終了させる。
同様に、第二のCPU11が、ロボット2の現在位置と推測位置との差分値が閾値以上であったと判断した場合(ステップS310:NO)、第二のCPU11は、マグネットスイッチ6に切替信号を出力し、ロボット2を停止させる(ステップS312)。また、第二のCPU11が、ロボット2の現在位置と推測位置との差分値が閾値未満であったと判断した場合(ステップS310:YES)、第二のCPU11は、本処理を終了させる。
同様に、第二のCPU11が、ロボット2の現在位置と推測位置との差分値が閾値以上であったと判断した場合(ステップS310:NO)、第二のCPU11は、マグネットスイッチ6に切替信号を出力し、ロボット2を停止させる(ステップS312)。また、第二のCPU11が、ロボット2の現在位置と推測位置との差分値が閾値未満であったと判断した場合(ステップS310:YES)、第二のCPU11は、本処理を終了させる。
〔監視部におけるCPUの相互監視処理〕
サーボモータ制御の監視処理において、ロボットの位置監視処理が終了すると、最後にCPUの相互監視処理が実行される。
かかる処理では、第一のCPU10が、第二のCPU11の監視を行っているウォッチドッグ回路18にアクセスし、第二のCPU11の停止状態を示すエラー信号を出力しているかを判断する。その結果、ウォッチドッグ回路18がエラー信号を出力している場合に、第一のCPU10は、マグネットスイッチ5に切替信号を出力し、ロボット2を停止させる。また、ウォッチドッグ回路18がタイムアップ信号を出力していない場合には、第一のCPU10はCPUの相互監視処理を終了する。
一方、第二のCPU11が、第一のCPU10の監視を行っているウォッチドッグ回路17にアクセスし、第一のCPU10の停止状態を示すエラー信号を出力しているかを判断する。その結果、ウォッチドッグ回路17がエラー信号を出力している場合に、第二のCPU11は、マグネットスイッチ6に切替信号を出力し、ロボット2を停止させる。また、ウォッチドッグ回路17がタイムアップ信号を出力していない場合には、第二のCPU11はCPUの相互監視処理を終了する。
サーボモータ制御の監視処理において、ロボットの位置監視処理が終了すると、最後にCPUの相互監視処理が実行される。
かかる処理では、第一のCPU10が、第二のCPU11の監視を行っているウォッチドッグ回路18にアクセスし、第二のCPU11の停止状態を示すエラー信号を出力しているかを判断する。その結果、ウォッチドッグ回路18がエラー信号を出力している場合に、第一のCPU10は、マグネットスイッチ5に切替信号を出力し、ロボット2を停止させる。また、ウォッチドッグ回路18がタイムアップ信号を出力していない場合には、第一のCPU10はCPUの相互監視処理を終了する。
一方、第二のCPU11が、第一のCPU10の監視を行っているウォッチドッグ回路17にアクセスし、第一のCPU10の停止状態を示すエラー信号を出力しているかを判断する。その結果、ウォッチドッグ回路17がエラー信号を出力している場合に、第二のCPU11は、マグネットスイッチ6に切替信号を出力し、ロボット2を停止させる。また、ウォッチドッグ回路17がタイムアップ信号を出力していない場合には、第二のCPU11はCPUの相互監視処理を終了する。
〔ロボット制御装置の全体的な動作〕
上記構成により、ロボット制御装置1の位置制御部3は、教示動作データに基づく動作を行うように制御指令を順番に出力し、サーボアンプ4を介してロボット2の各関節23のサーボモータ24の動作制御を行う。このとき、サーボアンプ4では、各関節23のエンコーダ25からの検出信号に基づいてフィードバック制御が実行される。
上記構成により、ロボット制御装置1の位置制御部3は、教示動作データに基づく動作を行うように制御指令を順番に出力し、サーボアンプ4を介してロボット2の各関節23のサーボモータ24の動作制御を行う。このとき、サーボアンプ4では、各関節23のエンコーダ25からの検出信号に基づいてフィードバック制御が実行される。
一方、監視部7は、ロボット2の動作開始前に、ロボット制御における各種の制御情報を位置制御部3から取得し、ロボット2の動作制御の際には、所定のサンプリング間隔で、各エンコーダ25から現在位置情報(関節角度)の受信を行う。そして、データ受信の異常の発生、関節角度、動作速度、トルクの異常の発生、各CPU10,11の異常の発生の監視がロボット2の動作中においてサンプリング間隔で繰り返し実行される。
〔実施形態の効果〕
以上のように、ロボット制御装置1では、制御情報受信回路13は、位置制御部3からのロボット2に対する制御情報(指令位置、サーボゲイン)を受信し、受信した制御情報を第一のCPU10に送信する。
各CPU10,11は、受信した制御情報からロボット2の位置を推測し、他のCPU10,11において推測されたロボット2の推測位置を取得する。各CPU10,11は、推測したロボット2の推測位置と他のCPU10,11から取得したロボット2の推測位置とが一致するか否かを判断する。
次いで、各CPU10,11は、ロボット2の推測位置が一致すると判断した場合に、各CPU10,11により推測された推測位置とエンコーダ25により検出されたロボット2の現在位置との差を算出する。
そして、各CPU10,11は、算出された位置の差が所定値以上である場合又はロボット2の推測位置が一致しないと判断された場合に、マグネットスイッチ5,6によりサーボモータ24に対する電力の供給を遮断する。
以上のように、ロボット制御装置1では、制御情報受信回路13は、位置制御部3からのロボット2に対する制御情報(指令位置、サーボゲイン)を受信し、受信した制御情報を第一のCPU10に送信する。
各CPU10,11は、受信した制御情報からロボット2の位置を推測し、他のCPU10,11において推測されたロボット2の推測位置を取得する。各CPU10,11は、推測したロボット2の推測位置と他のCPU10,11から取得したロボット2の推測位置とが一致するか否かを判断する。
次いで、各CPU10,11は、ロボット2の推測位置が一致すると判断した場合に、各CPU10,11により推測された推測位置とエンコーダ25により検出されたロボット2の現在位置との差を算出する。
そして、各CPU10,11は、算出された位置の差が所定値以上である場合又はロボット2の推測位置が一致しないと判断された場合に、マグネットスイッチ5,6によりサーボモータ24に対する電力の供給を遮断する。
これにより、各CPU10,11は、位置制御部3から受信した制御情報に基づいて、サーボ遅れ等も考慮した状態でロボット2の位置を推測し、エンコーダ25から検出されるロボット2の現在位置と比較して、その位置の差に応じてサーボモータ24の駆動を停止させることができるので、位置制御部3及びサーボアンプ4の異常を迅速かつ的確に検出することができ、監視部7の信頼性を向上させることができる。
また、二つのCPU10,11により互いに推測したロボット2の現在位置が一致するか否かを判断しているので、監視部7の信頼性を向上させることができる。
また、二つのCPU10,11により互いに推測したロボット2の現在位置が一致するか否かを判断しているので、監視部7の信頼性を向上させることができる。
また、各CPU10,11は、受信した制御情報が異常であるか否かを判断し、制御情報が異常であると判断された場合には、報知部8が制御情報の受信エラーである旨をユーザに報知する。各CPU10,11は、他のCPU10,11において受信した制御情報を取得し、受信した制御情報と取得した制御情報とが一致するか否かを判断する。そして、各CPU10,11により制御情報が一致しないと判断された場合には、報知部8は制御情報の受信エラーである旨をユーザに報知する。
これにより、制御情報を受信した段階で異常がある場合には、処理を進めることなく即座に異常をユーザに報知し、さらに、各CPU10,11が互いの制御情報を相互に比較して異常の有無を判断しているので、位置制御部3及びサーボアンプ4の異常を迅速かつ的確に検出することができ、監視部7の信頼性を向上させることができる。
また、二つのCPU10,11により互いに受信した制御情報の異常の有無を判断しているので、監視部7の信頼性を向上させることができる。
また、二つのCPU10,11により互いに受信した制御情報の異常の有無を判断しているので、監視部7の信頼性を向上させることができる。
また、エンコーダデータ受信回路12は、エンコーダ25により検出されたロボット25の現在位置情報を受信し、受信したロボット2の現在位置情報を第一のCPU10に送信する。
各CPU10,11は、受信したロボット2の現在位置情報が異常であるか否かを判断し、受信したロボット2の現在位置情報が異常であると判断した場合には、各CPU10,11が、マグネットスイッチ5,6によりサーボモータ24に対する電力の供給を遮断する。
次いで、各CPU10,11が他のCPU10,11において受信したロボット2の現在位置情報を取得する。各CPU10,11は、受信したロボット2の現在位置情報と取得したロボット2の現在位置情報とが一致するか否かを判断する。ここで、各CPU10,11によりロボット2の現在位置情報が一致しないと判断された場合には、各CPU10,11が、マグネットスイッチ5,6によりサーボモータ24に対する電力の供給を遮断する。
各CPU10,11は、受信したロボット2の現在位置情報が異常であるか否かを判断し、受信したロボット2の現在位置情報が異常であると判断した場合には、各CPU10,11が、マグネットスイッチ5,6によりサーボモータ24に対する電力の供給を遮断する。
次いで、各CPU10,11が他のCPU10,11において受信したロボット2の現在位置情報を取得する。各CPU10,11は、受信したロボット2の現在位置情報と取得したロボット2の現在位置情報とが一致するか否かを判断する。ここで、各CPU10,11によりロボット2の現在位置情報が一致しないと判断された場合には、各CPU10,11が、マグネットスイッチ5,6によりサーボモータ24に対する電力の供給を遮断する。
これにより、ロボット2の現在位置情報を受信した段階で異常がある場合には、処理を進めることなく即座に異常をユーザに報知し、さらに、各CPU10,11が互いのロボット2の現在位置情報を相互に比較して異常の有無を判断しているので、位置制御部3及びサーボアンプ4の異常を迅速かつ的確に検出することができ、監視部7の信頼性を向上させることができる。
また、二つのCPU10,11により互いに受信したロボット2の現在位置情報の異常の有無を判断しているので、監視部7の信頼性を向上させることができる。
また、二つのCPU10,11により互いに受信したロボット2の現在位置情報の異常の有無を判断しているので、監視部7の信頼性を向上させることができる。
また、位置制御部3とサーボアンプ4と監視部7を別個に構成することにより、ロボット2の制御と監視を並列処理することができるため、各部の処理の負荷を軽減することができるとともに、一つの処理回路で処理する場合に比べて各部の処理を高速化することができる。
また、各CPU10,11ごとに設けられたウォッチドッグ回路17,18が、各CPU10,11の不良停止状態の検知を行う。そして、いずれかのCPU10,11が他のCPU10,11を監視するウォッチドッグ回路17,18を通じて不良停止状態の発生を検知すると、各CPU10,11はサーボモータ24を停止させる。
これにより、いずれかのCPU10,11が不良停止して、残り一方のCPU10,11のみによるサーボモータ24の監視状態が回避され、二系統による監視状態でのみサーボモータ24を駆動させることができ、サーボモータ24の異常動作をより確実に防止することができる。
これにより、いずれかのCPU10,11が不良停止して、残り一方のCPU10,11のみによるサーボモータ24の監視状態が回避され、二系統による監視状態でのみサーボモータ24を駆動させることができ、サーボモータ24の異常動作をより確実に防止することができる。
また、サーボ制御が正常に動作していることを確認するだけでなく、サーボアンプ4に含まれる診断回路や診断ソフトウェアを安価に実現することができる。
また、サーボアンプ4の監視だけでなく、エンコーダ25をも含めた監視になるため、装置全体の信頼性を向上させることができる。
また、サーボアンプ4の監視だけでなく、エンコーダ25をも含めた監視になるため、装置全体の信頼性を向上させることができる。
〔その他〕
上記構成では、図1において、サーボモータ24及びエンコーダ25が一組しか図示されていないが、これらは各関節23ごとに設けられている。従って、監視部7は、図3〜図5に示す全ての処理を、タイミングをずらして各サーボモータ24ごとに実行していることはいうまでもない。
上記構成では、図1において、サーボモータ24及びエンコーダ25が一組しか図示されていないが、これらは各関節23ごとに設けられている。従って、監視部7は、図3〜図5に示す全ての処理を、タイミングをずらして各サーボモータ24ごとに実行していることはいうまでもない。
また、上記構成では、監視部7の第二のCPU11が各エンコーダ25からの現在位置情報を第一のCPU10を介して受信する構成となっているが、第二のCPU11が第一のCPU10を介することなくエンコーダ25から直接受信する構成としても良い。その場合、第二のCPU11もエンコーダ25からの現在位置情報に対してCRCコードによる確認処理を実行することが望ましい。
また、制御対象となるロボットは回動、回転関節のみを有するものに限られず、例えば直動式の関節を有するロボットを制御対象としても良い。その場合、関節角度ではなく、現在位置情報から直進方向の移動量を求め、これを監視する構成とすることが望ましい。
また、ロボット2の制御精度を向上させるため、図5における位置監視処理において、推測位置と現在位置が一致しない限りサーボモータ24を停止させる構成としてもよい。
また、マグネットスイッチ5,6を切ることで異常を通知することができるようにしたが、位置制御部3に対して異常を通知するようにしてもよい。
また、マグネットスイッチ5,6を切ることで異常を通知することができるようにしたが、位置制御部3に対して異常を通知するようにしてもよい。
また、上記構成では、各演算処理を二つのCPU10,11により行っていたが、CPUの数は三つ以上であってもよい。これにより、ロボット2の位置監視のレベルを向上させることができる。
1 ロボット制御装置
2 ロボット
3 位置制御部(サーボ制御部)
4 サーボアンプ(サーボ制御部)
5 マグネットスイッチ(切り替え部)
6 マグネットスイッチ(切り替え部)
7 監視部
8 報知部(報知手段)
10 第一のCPU(演算処理部、位置推測手段、推測位置取得手段、推測位置一致判断手段、位置差算出手段、電力遮断手段、制御情報異常判断手段、制御情報取得手段、制御情報一致判断手段、現在位置情報異常判断手段、現在位置情報取得手段、現在位置情報一致判断手段)
11 第二のCPU(演算処理部、位置推測手段、推測位置取得手段、推測位置一致判断手段、位置差算出手段、電力遮断手段、制御情報異常判断手段、制御情報取得手段、制御情報一致判断手段、現在位置情報異常判断手段、現在位置情報取得手段、現在位置情報一致判断手段)
12 エンコーダデータ受信回路(現在位置情報受信手段、現在位置情報送信手段)
13 制御情報受信回路(制御情報受信手段、制御情報送信手段)
17 ウォッチドッグ回路
18 ウォッチドッグ回路
24 サーボモータ
25 エンコーダ(位置検出手段)
2 ロボット
3 位置制御部(サーボ制御部)
4 サーボアンプ(サーボ制御部)
5 マグネットスイッチ(切り替え部)
6 マグネットスイッチ(切り替え部)
7 監視部
8 報知部(報知手段)
10 第一のCPU(演算処理部、位置推測手段、推測位置取得手段、推測位置一致判断手段、位置差算出手段、電力遮断手段、制御情報異常判断手段、制御情報取得手段、制御情報一致判断手段、現在位置情報異常判断手段、現在位置情報取得手段、現在位置情報一致判断手段)
11 第二のCPU(演算処理部、位置推測手段、推測位置取得手段、推測位置一致判断手段、位置差算出手段、電力遮断手段、制御情報異常判断手段、制御情報取得手段、制御情報一致判断手段、現在位置情報異常判断手段、現在位置情報取得手段、現在位置情報一致判断手段)
12 エンコーダデータ受信回路(現在位置情報受信手段、現在位置情報送信手段)
13 制御情報受信回路(制御情報受信手段、制御情報送信手段)
17 ウォッチドッグ回路
18 ウォッチドッグ回路
24 サーボモータ
25 エンコーダ(位置検出手段)
Claims (5)
- ロボットを駆動するサーボモータを前記ロボットに設けられた位置検出手段からの検出出力に応じて制御するサーボ制御部と、
前記サーボモータに対する電力の供給と遮断とを切り替え可能な切り替え部と、
所定の監視条件に応じて前記切り替え部を通じて前記サーボモータを停止させる監視部と、を備え、
前記監視部は、二つの演算処理部と、前記サーボ制御部からの前記ロボットに対する制御情報を受信する制御情報受信手段と、前記制御情報受信手段により受信した制御情報を一方又は双方の演算処理部に送信する制御情報送信手段と、を有し、
各演算処理部は、
受信した制御情報からロボットの位置を推測する位置推測手段と、
他の演算処理部における前記位置推測手段により推測されたロボットの推測位置を取得する推測位置取得手段と、
前記位置推測手段により推測したロボットの推測位置と前記推測位置取得手段により取得したロボットの推測位置とが一致するか否かを判断する推測位置一致判断手段と、
前記推測位置一致判断手段によりロボットの推測位置が一致すると判断された場合に、前記推測位置と前記位置検出手段により検出されたロボットの現在位置との差を算出する位置差算出手段と、
前記位置差算出手段により算出された位置の差が所定値以上である場合又は前記推測位置一致判断手段によりロボットの推測位置が一致しないと判断された場合に、前記切り替え部により前記サーボモータに対する電力の供給を遮断する電力遮断手段と、
を有することを特徴とするロボット制御装置。 - 各演算処理部は、
受信した制御情報が異常であるか否かを判断する制御情報異常判断手段と、
他の演算処理部において受信した制御情報を取得する制御情報取得手段と、
受信した制御情報と前記制御情報取得手段により取得した制御情報とが一致するか否かを判断する制御情報一致判断手段と、
前記制御情報異常判断手段により受信した制御情報が異常であると判断された場合又は前記制御情報一致判断手段により制御情報が一致しないと判断された場合に、制御情報の受信エラーである旨をユーザに報知する報知手段と、
を有することを特徴とする請求項1に記載のロボット制御装置。 - 前記監視部は、前記位置検出手段により検出されたロボットの現在位置情報を受信する現在位置情報受信手段と、前記現在位置情報受信手段により受信したロボットの現在位置情報を一方又は双方の演算処理部に送信する現在位置情報送信手段と、を有し、
各演算処理部は、
受信したロボットの現在位置情報が異常であるか否かを判断する現在位置情報異常判断手段と、
他の演算処理部において受信したロボットの現在位置情報を取得する現在位置情報取得手段と、
受信したロボットの現在位置情報と前記現在位置情報取得手段により取得したロボットの現在位置情報とが一致するか否かを判断する現在位置情報一致判断手段と、を有し、
前記電力遮断手段は、前記現在位置情報異常判断手段により受信したロボットの現在位置情報が異常であると判断された場合又は前記現在位置情報一致判断手段によりロボットの現在位置情報が一致しないと判断された場合に、前記切り替え部により前記サーボモータに対する電力の供給を遮断することを特徴とする請求項1又は2に記載のロボット制御装置。 - 前記サーボ制御部と前記監視部を別個に構成したことを特徴とする請求項1〜3のいずれか一項に記載のロボット制御装置。
- 各演算処理部に対して処理の不良停止状態の発生を検出するウォッチドッグ回路が各演算処理部ごとに設けられ、
各演算処理部が、他の演算処理部の監視回路を通じて不良停止状態を検知すると、当該他の演算処理部が不良停止状態である旨をユーザに報知することを特徴とする請求項1〜4のいずれか一項に記載のロボット制御装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006090216A JP2007265103A (ja) | 2006-03-29 | 2006-03-29 | ロボット制御装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006090216A JP2007265103A (ja) | 2006-03-29 | 2006-03-29 | ロボット制御装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2007265103A true JP2007265103A (ja) | 2007-10-11 |
Family
ID=38638015
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006090216A Withdrawn JP2007265103A (ja) | 2006-03-29 | 2006-03-29 | ロボット制御装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2007265103A (ja) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010284781A (ja) * | 2009-06-15 | 2010-12-24 | Fanuc Ltd | ロボットの異常監視機能を備えたロボットシステム |
JP2012223851A (ja) * | 2011-04-19 | 2012-11-15 | Toyota Motor Corp | ロボット制御装置、その制御方法及び制御プログラム |
JP2013031913A (ja) * | 2011-08-02 | 2013-02-14 | GM Global Technology Operations LLC | ステージクラス化を用いた器用なロボットの実行シーケンスを制御するための方法およびシステム |
US11241792B2 (en) | 2016-10-24 | 2022-02-08 | Panasonic Intellectual Property Management Co., Ltd. | Method and device for detecting abnormality of encoder, and robot control system |
US11307057B2 (en) | 2017-08-08 | 2022-04-19 | Panasonic Intellectual Property Management Co., Ltd. | Encoder abnormality detection method |
-
2006
- 2006-03-29 JP JP2006090216A patent/JP2007265103A/ja not_active Withdrawn
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010284781A (ja) * | 2009-06-15 | 2010-12-24 | Fanuc Ltd | ロボットの異常監視機能を備えたロボットシステム |
JP4741691B2 (ja) * | 2009-06-15 | 2011-08-03 | ファナック株式会社 | ロボットの異常監視機能を備えたロボットシステム |
JP2012223851A (ja) * | 2011-04-19 | 2012-11-15 | Toyota Motor Corp | ロボット制御装置、その制御方法及び制御プログラム |
JP2013031913A (ja) * | 2011-08-02 | 2013-02-14 | GM Global Technology Operations LLC | ステージクラス化を用いた器用なロボットの実行シーケンスを制御するための方法およびシステム |
US8706299B2 (en) | 2011-08-02 | 2014-04-22 | GM Global Technology Operations LLC | Method and system for controlling a dexterous robot execution sequence using state classification |
DE102012213188B4 (de) * | 2011-08-02 | 2015-06-25 | GM Global Technology Operations, LLC (n.d. Ges. d. Staates Delaware) | Verfahren und System zum Steuern einer Ausführungssequenz eines geschickten Roboters unter Verwendung einer Zustandsklassifizierung |
US11241792B2 (en) | 2016-10-24 | 2022-02-08 | Panasonic Intellectual Property Management Co., Ltd. | Method and device for detecting abnormality of encoder, and robot control system |
US11307057B2 (en) | 2017-08-08 | 2022-04-19 | Panasonic Intellectual Property Management Co., Ltd. | Encoder abnormality detection method |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4930969B2 (ja) | ロボット制御装置 | |
JP2007301680A (ja) | ロボットアーム診断装置 | |
JP2007301691A (ja) | ロボット制御装置 | |
US7145306B2 (en) | Method, system, and program for controlling moving body | |
JP2007283448A (ja) | ロボット制御装置 | |
JP4659690B2 (ja) | 機械制御装置 | |
JP2007265103A (ja) | ロボット制御装置 | |
JP2007520361A (ja) | ロボットの姿勢確認システム | |
KR101443016B1 (ko) | 서보 모터 및 인코더 | |
JP6607098B2 (ja) | 速度監視装置と速度監視方法 | |
JP2006325390A (ja) | セーフティデバイス | |
JP2007535414A (ja) | ねじ込み接続を形成するための方法及び装置 | |
WO2019063228A1 (en) | SECURITY MONITORING SYSTEM, APPARATUS, METHOD, STORAGE MEDIUM, AND SECURITY SYSTEM | |
JP6544291B2 (ja) | 関節駆動ロボットの異常診断方法及び異常診断装置 | |
CN111964883B (zh) | 一种摆动结构中运动零件位置的检测方法 | |
US11194309B2 (en) | Abnormality detection device of machine tool | |
JPH08286701A (ja) | 複数ロボット制御方法およびシステム | |
JP2017170471A (ja) | 溶接ロボット機構 | |
JP2008216115A (ja) | アブソリュートエンコーダ | |
JP4980947B2 (ja) | 制御システム及び制御方法 | |
KR101194563B1 (ko) | 네트워크 기반 모션 제어 시스템 및 그 방법 | |
US20080319705A1 (en) | Method For Reliable Position Monitoring | |
KR102624117B1 (ko) | Ai지능형 의사 결정 자동 공구 교환 장치 | |
US20230415335A1 (en) | Robot system, method for controlling robot system, method for manufacturing product using robot system, control program, and recording medium | |
CN114800608B (zh) | 机器人故障检测方法、装置及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Withdrawal of application because of no request for examination |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20090602 |