(57)【要約】【課題】ロボットと作業者が同時に作業できるようにすること。【解決手段】ロボット制御装置１は、ロボットのツールの位置を算出する位置算出手段１０，１１と、他の演算処理部において算出されたロボットのツールの位置を取得する算出位置取得手段１０，１１と、算出したロボットの算出位置と取得したロボットの算出位置とが一致するか否かを判断する算出位置一致判断手段１０，１１と、双方の算出位置が一致しない場合に、切り替え部５，６によりサーボモータに対する電力の供給を遮断する電力遮断手段１０，１１と、双方の算出位置が一致する場合に、ロボットのツールの位置が、作業エリア内であるか否かを判断する位置判断手段１０，１１と、ロボットのツールの位置が作業エリア内である場合に、サーボ制御部によるロボットの駆動を所定速度以下に減速させる駆動制御手段１０，１１と、を有する。【選択図】図２
2007283448.tif 000002
【特許請求の範囲】
【請求項１】
本体部に複数のアームが関節により連結されてなるアーム部が連結され、このアーム部の先端にツールが設けられたロボットを駆動させるサーボモータを前記ロボットに設けられた位置検出手段からの検出出力に応じて制御するサーボ制御部と、
前記サーボモータに対する電力の供給と遮断とを切り替え可能な切り替え部と、
作業者の作業エリアを指定する作業エリア指定手段と、
所定の監視条件に応じて前記切り替え部を通じて前記サーボモータを停止させる監視部と、を備え、
前記監視部は、二つの演算処理部と、前記サーボ制御部からの前記ロボットに対する制御情報を取得する制御情報取得手段と、前記制御情報取得手段により取得した制御情報を一方又は双方の演算処理部に送信する制御情報送信手段と、を有し、
各演算処理部は、
取得した制御情報から前記ロボットの所定部位の位置を算出する位置算出手段と、
他の演算処理部における前記位置算出手段により算出された前記ロボットの所定部位の位置を取得する算出位置取得手段と、
前記位置算出手段により算出したロボットの算出位置と前記算出位置取得手段により取得したロボットの算出位置とが一致するか否かを判断する算出位置一致判断手段と、
前記算出位置一致判断手段により双方のロボットの算出位置が一致しないと判断された場合に、前記切り替え部により前記サーボモータに対する電力の供給を遮断する電力遮断手段と、
前記算出位置一致判断手段によりロボットの算出位置が一致すると判断された場合に、前記位置算出手段により算出された前記ロボットの所定部位の位置が、前記作業エリア指定手段により指定された作業エリア内であるか否かを判断する位置判断手段と、
前記位置判断手段により、前記ロボットの所定部位の位置が前記作業エリア内であると判断された場合に、前記サーボ制御部によるロボットの駆動を所定速度以下に減速させる駆動制御手段と、
を有することを特徴とするロボット制御装置。
【請求項２】
各演算処理部は、
前記駆動制御手段によって前記サーボ制御部によるロボットの駆動を所定速度以下に減速させた後、所定時間内における前記ロボットの所定部位の変位量から前記ロボットの所定部位の駆動速度を算出する速度算出手段と、
他の演算処理部における前記速度算出手段により算出された前記ロボットの所定部位の駆動速度を取得する算出速度取得手段と、
前記速度算出手段により算出したロボットの算出速度と前記算出速度取得手段により取得したロボットの算出速度とが一致するか否かを判断する算出速度一致判断手段と、
前記算出速度一致判断手段によりロボットの算出速度が一致すると判断された場合に、前記速度算出手段により算出された前記ロボットの所定部位の駆動速度が、所定速度以下であるか否かを判断する速度判断手段と、を備え、
前記電力遮断手段は、前記算出速度一致判断手段により双方のロボットの算出速度が一致しないと判断された場合、又は、前記速度判断手段により前記ロボットの所定部位の駆動速度が前記所定速度を超えていると判断された場合に、前記切り替え部により前記サーボモータに対する電力の供給を遮断することを特徴とする請求項１に記載のロボット制御装置。
【請求項３】
前記監視部と前記サーボ制御部とを別個に構成したことを特徴とする請求項１又は２に記載のロボット制御装置。
【請求項４】
前記所定速度を２５０ｍｍ／ｓｅｃとしたことを特徴とする請求項１から３の何れか一項に記載のロボット制御装置。
【請求項５】
各演算処理部に対して処理の不良停止状態の発生を検出するウォッチドッグ回路が演算処理部ごとに設けられ、
各演算処理部が、他の演算処理部の監視回路を通じて不良停止状態を検知すると、前記サーボ制御部によるロボットの駆動を停止させることを特徴とする請求項１から４の何れか一項に記載のロボット制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロボット制御装置に関する。
【背景技術】
【０００２】
一般的に産業用ロボットは、ロボット本体に多関節からなるアームが連結され、アームの先端にはツールが設けられて構成されている。ロボット本体にはサーボモータが取り付けられており、このサーボモータには位置検出器が取り付けられている。この位置検出器により検出されたツールの位置情報に基づいて、サーボ制御部によりツールの位置、アームの位置、アームの角度等が制御されている。
このような産業用ロボットを使用する際には、安全柵やライトカーテン等により、ロボットの動作エリアと作業者の作業エリアとを区別して作業者の安全を確保している。そして、作業者がロボットの動作エリアに進入した場合には、作業者の進入を検知してロボットを非常停止させる（例えば、特許文献１参照。）。
【特許文献１】特開２００４−１２２２５８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、ロボットと作業者が共同で作業するようなロボットシステムの場合、例えば、作業者が加工の対象となるワークを治具に取り付ける作業と、ロボットが治具からワークを取り出す動作を並行して行う場合において、上述の特許文献１に記載の発明では、ロボットの動作エリア内に作業者がいることを検知してロボットが非常停止するため、ロボットシステムによる作業全体の稼働率が低下してしまうという問題があった。
【０００４】
本発明は、上記課題を解決するためになされたものであり、ロボットと作業者が同時に作業できることを可能としたロボット制御装置を提供することを目的とする。
【課題を解決するための手段】
【０００５】
請求項１に記載の発明は、ロボット制御装置において、本体部に複数のアームが関節により連結されてなるアーム部が連結され、このアーム部の先端にツールが設けられたロボットを駆動させるサーボモータを前記ロボットに設けられた位置検出手段からの検出出力に応じて制御するサーボ制御部と、前記サーボモータに対する電力の供給と遮断とを切り替え可能な切り替え部と、作業者の作業エリアを指定する作業エリア指定手段と、所定の監視条件に応じて前記切り替え部を通じて前記サーボモータを停止させる監視部と、を備え、前記監視部は、二つの演算処理部と、前記サーボ制御部からの前記ロボットに対する制御情報を取得する制御情報取得手段と、前記制御情報取得手段により取得した制御情報を一方又は双方の演算処理部に送信する制御情報送信手段と、を有し、各演算処理部は、取得した制御情報から前記ロボットの所定部位の位置を算出する位置算出手段と、他の演算処理部における前記位置算出手段により算出された前記ロボットの所定部位の位置を取得する算出位置取得手段と、前記位置算出手段により算出したロボットの算出位置と前記算出位置取得手段により取得したロボットの算出位置とが一致するか否かを判断する算出位置一致判断手段と、前記算出位置一致判断手段により双方のロボットの算出位置が一致しないと判断された場合に、前記切り替え部により前記サーボモータに対する電力の供給を遮断する電力遮断手段と、前記算出位置一致判断手段によりロボットの算出位置が一致すると判断された場合に、前記位置算出手段により算出された前記ロボットの所定部位の位置が、前記作業エリア指定手段により指定された作業エリア内であるか否かを判断する位置判断手段と、前記位置判断手段により、前記ロボットの所定部位の位置が前記作業エリア内であると判断された場合に、前記サーボ制御部によるロボットの駆動を所定速度以下に減速させる駆動制御手段と、を有することを特徴とする。
ここで、制御情報とは、ロボットへの指令位置やサーボゲインに関する情報である。
また、ロボットの所定部位の位置とは、ロボットのツール位置、ロボットの各アーム位置、ロボットの各関節位置等のように、作業者の作業エリアに進入する可能性のあるロボットの部位の位置をいう。
また、所定速度以下とは、ロボットと作業者が同じエリア内で作業する際に、作業者にとって十分に安全を確保できるような規格で定められている安全速度以下であることをいう。
【０００６】
請求項２に記載の発明は、請求項１に記載のロボット制御装置において、各演算処理部は、前記駆動制御手段によって前記サーボ制御部によるロボットの駆動を所定速度以下に減速させた後、所定時間内における前記ロボットの所定部位の変位量から前記ロボットの所定部位の駆動速度を算出する速度算出手段と、他の演算処理部における前記速度算出手段により算出された前記ロボットの所定部位の駆動速度を取得する算出速度取得手段と、前記速度算出手段により算出したロボットの算出速度と前記算出速度取得手段により取得したロボットの算出速度とが一致するか否かを判断する算出速度一致判断手段と、前記算出速度一致判断手段によりロボットの算出速度が一致すると判断された場合に、前記速度算出手段により算出された前記ロボットの所定部位の駆動速度が、所定速度以下であるか否かを判断する速度判断手段と、を備え、前記電力遮断手段は、前記算出速度一致判断手段により双方のロボットの算出速度が一致しないと判断された場合、又は、前記速度判断手段により前記ロボットの所定部位の駆動速度が前記所定速度を超えていると判断された場合に、前記切り替え部により前記サーボモータに対する電力の供給を遮断することを特徴とする。
【０００７】
請求項３に記載の発明は、請求項１又は２に記載のロボット制御装置において、前記監視部と前記サーボ制御部とを別個に構成したことを特徴とする。
【０００８】
請求項４に記載の発明は、請求項１から３の何れか一項に記載のロボット制御装置において、前記所定速度を２５０ｍｍ／ｓｅｃとしたことを特徴とする。
【０００９】
請求項５に記載の発明は、請求項１から４の何れか一項に記載のロボット制御装置において、各演算処理部に対して処理の不良停止状態の発生を検出するウォッチドッグ回路が演算処理部ごとに設けられ、各演算処理部が、他の演算処理部の監視回路を通じて不良停止状態を検知すると、前記サーボ制御部によるロボットの駆動を停止させることを特徴とする。
ここで、不良停止状態とは、演算処理部が処理を実行すべき際に処理を行わなくなった状態をいう。
【発明の効果】
【００１０】
請求項１に記載の発明では、位置算出手段は、制御情報取得手段により取得した制御情報からロボットの所定部位の位置を算出する。算出位置取得手段は、他の演算処理部における位置算出手段により算出されたロボットの所定部位の位置を取得する。
そして、算出位置一致判断手段は、位置算出手段により算出したロボットの算出位置と算出位置取得手段により取得したロボットの算出位置とが一致するか否かを判断する。
ここで、算出位置一致判断手段により双方のロボットの算出位置が一致しないと判断された場合には、電力遮断手段は、切り替え部によりサーボモータに対する電力の供給を遮断する。一方、算出位置一致判断手段によりロボットの算出位置が一致すると判断された場合には、位置判断手段は、位置算出手段により算出されたロボットの所定部位の位置が、作業エリア指定手段により指定された作業エリア内であるか否かを判断する。
そして、位置判断手段により、ロボットの所定部位の位置が作業エリア内であると判断された場合に、駆動制御手段は、サーボ制御部によるロボットの駆動を所定速度以下に減速させる。
【００１１】
これにより、作業エリア内でロボットを駆動させることができるとともに、作業者もロボットの駆動に脅かされることなく作業をすることができるので、作業エリア内でロボットと作業者が同時に作業できる。よって、ロボットシステムによる作業全体の稼働率が低下してしまうという問題を解消することができる。
【００１２】
請求項２に記載の発明では、駆動制御手段によってサーボ制御部によるロボットの駆動を所定速度以下に減速させた後、速度算出手段は、所定時間内におけるロボットの所定部位の変位量からロボットの所定部位の駆動速度を算出する。そして、算出速度取得手段は、他の演算処理部における速度算出手段により算出されたロボットの所定部位の駆動速度を取得する。
算出速度一致判断手段は、速度算出手段により算出したロボットの算出速度と算出速度取得手段により取得したロボットの算出速度とが一致するか否かを判断する。ここで、算出速度一致判断手段により双方のロボットの算出速度が一致しないと判断された場合には、電力遮断手段は、切り替え部によりサーボモータに対する電力の供給を遮断する。
一方、算出速度一致判断手段によりロボットの算出速度が一致すると判断された場合には、速度判断手段は、速度算出手段により算出されたロボットの所定部位の駆動速度が、所定速度以下であるか否かを判断する。ここで、速度判断手段によりロボットの所定部位の駆動速度が所定速度を超えていると判断された場合には、電力遮断手段は、切り替え部によりサーボモータに対する電力の供給を遮断する。
【００１３】
これにより、作業エリアに進入したロボットを減速させた後であっても、ロボットの駆動速度は監視され、所定速度を超えた場合にはサーボモータに対する電力の供給を遮断してロボットを停止させるので、作業者の作業エリア内においては、ロボットの駆動速度は所定速度以下に抑えられることとなる。よって、作業エリア内でロボットを駆動させることができるとともに、作業者もロボットの駆動に脅かされることなく作業をすることができるので、作業エリア内でロボットと作業者が同時に作業できる。よって、ロボットシステムによる作業全体の稼働率が低下してしまうという問題を解消することができる。また、ロボットの所定部位の位置に加え、駆動速度によってもロボットの駆動を制御することができるので、ロボットの駆動制御の精度向上を図ることができる。
【００１４】
請求項３に記載の発明では、監視部とサーボ制御部とを別個に構成することにより、監視部及びサーボ制御部にかかる演算処理負担を減らすことができる。
【００１５】
請求項４に記載の発明では、所定速度を２５０ｍｍ／ｓｅｃとすることで、規格に沿った安全速度までロボットを減速させることができる。
【００１６】
請求項５に記載の発明では、各演算処理部ごとに設けられたウォッチドッグ回路が、演算処理部の不良停止状態の検知を行う。そして、いずれかの演算処理部が他の演算処理部を監視するウォッチドッグ回路を通じて不良停止状態の発生を検知すると、演算処理部はサーボ制御部によるロボットの駆動を停止させる。
これにより、いずれかの演算処理部が不良停止して、残り一方の演算処理部のみによるサーボモータの監視状態が回避され、二系統による監視状態でのみサーボモータを駆動させることができ、サーボモータの異常動作をより確実に防止することができる。
【発明を実施するための最良の形態】
【００１７】
以下、図面を参照して、本発明に係るロボット制御装置の最良の形態について詳細に説明する。なお、本実施形態においては、スポット溶接ガンを備える溶接ロボットの制御装置を例に挙げて説明する。
【００１８】
〔ロボット及びロボット制御装置の構成〕
＜ロボット＞
図１に示すように、ロボット制御装置１による対象となるロボット２は、ロボット２の本体部を構成し、土台となるベース２１と、ロボット２のアーム部を構成し、複数の関節２３で連結された複数のアーム２２と、各関節２３ごとに設けられた駆動源としてのサーボモータ２４と、各サーボモータ２４の軸角度をそれぞれ検出する位置検出手段としてのエンコーダ２５と、を備えている。そして、連結されたアーム２２の最先端部にはロボット２の用途に応じたツール２６（例えば溶接ガンやハンド等）が装備されている。
各関節２３は、アーム２２の一端部を揺動可能として他端部を軸支する揺動関節と、アーム２２自身をその長手方向を中心に回転可能に軸支する回転関節とのいずれかから構成される。つまり、本実施形態におけるロボット２はいわゆる多関節型ロボットに相当する。また、ロボット２は、各関節２３により、その先端部のツール２６を任意の位置に位置決めし、任意の姿勢を取らせることが可能となっている。
【００１９】
＜ロボット制御装置＞
ロボット制御装置１は、ティーチング或いはプログラミングにより設定されたロボット２の教示動作データに従って、ロボット２の制御指令を出力する位置制御部３と、位置制御部３からの制御指令に従ってロボット２の各サーボモータ２４の制御を行うサーボアンプ４と、電源から各サーボモータ２４への電力の供給と遮断とを切り替え可能な切り替え部としてのマグネットスイッチ５，６と、ロボット２の制御情報を監視して所定条件に応じて各マグネットスイッチ５，６を通じてサーボモータ２４を停止させる監視部７と、監視部７により異常検知が行われた場合にオペレータに異常発生を報知するための報知部８と、作業者の作業エリアを指定する作業エリア指定手段としての入力部９を備えている。ここで、位置制御部３、サーボアンプ４、監視部７は、それぞれ別個に構成されている。
【００２０】
（位置制御部）
位置制御部３は、ロボット２の動作制御を行うために各サーボモータ２４に対する制御指令を生成するための各種の処理プログラム及び各種のデータが記憶されたメモリと、処理プログラムを実行するＣＰＵと、サーボアンプ４との指令やデータの送受信を行うためのインターフェイスとを主に備えている。
【００２１】
メモリには、ロボット２の各種の処理プログラムの他、設定されたロボットの教示動作データ、ロボット２に関する各種の制御情報（各部の寸法、重量、イナーシャ、エンコーダ２５の出力コードと当該出力コードが示す関節角度（角度位置）との対応関係を示すテーブル、ロボットの各関節２３における関節角度の上限値、下限値（許容動作位置）、各関節２３の関節動作速度の上限値（許容速度）、各関節２３のトルクの上限値（許容値）、指令位置、サーボゲイン等）が記憶されている。
【００２２】
教示動作データは、ロボット２が所定の動作を実行するための制御指令であり、例えば、事前にロボット２に目的となる動作（ティーチング）を行わせ、当該動作軌跡の各点で関節角度のサンプリングを行い、その実行動作を再現するために演算により求められた移動軌跡のデータである。
位置制御部３のＣＰＵは、ロボット２の制御の際には、教示動作データに基づいて、サーボアンプ４に対して各サーボモータ２４の位置指令を所定の周期で順番に出力する。
なお、教示動作データは、ティーチングに限らず、記録メディアの読み出し装置、オペレータによる入力装置又は外部に対する通信手段によりロボット制御装置１の外部から取得される場合もある。
【００２３】
また、メモリ内の各種の制御情報である各部の寸法、重量、イナーシャ、エンコーダ２５の出力コードと当該出力コードが示す関節角度との対応関係を示すテーブル、ロボットの各関節２３における関節角度の上限値、下限値、各関節２３の関節動作速度の上限値、各関節２３のトルクの上限値等のデータ、そして、ロボット２への指令位置やサーボゲイン等は、監視部７に出力される。その際、ＣＰＵは、各データについて所定のデータ単位ごとにＣＲＣコード（Cyclic Redundancy Check）を生成し、これを添付して監視部７に送信する。
【００２４】
（サーボアンプ）
サーボアンプ４は、ロボット２の各関節２３のエンコーダ２５から回転角度位置の検出信号を受信する受信回路と、各サーボモータ２４に対する制御信号と帰還信号の送受信を行うモータ制御回路とを備えている。そして、サーボアンプ４は、位置制御部３から入力される指令位置と各エンコーダ２５の検出信号と各サーボモータ２４からの帰還信号とに基づいて、各サーボモータ２４の位置、速度、トルクについてフィードバック制御を行う。なお、このサーボアンプ４と位置制御部３とが、サーボモータ２４をエンコーダ２５からの検出出力に応じて制御するサーボ制御部として機能する。
【００２５】
（監視部）
図２は、監視部７の構成を示すブロック図である。監視部７は、後述する各種の処理を実行する二つの演算処理部としての第一及び第二のＣＰＵ１０，１１と、ロボット２の各エンコーダ２５からロボット２の所定部位の位置情報を受信する位置情報受信手段としてのエンコーダデータ受信回路１２と、サーボ制御部を構成する位置制御部３からロボット２への指令位置及びサーボゲインを含む制御情報を受信する制御情報取得手段としての制御情報受信回路１３と、第一と第二のＣＰＵ１０，１１の演算処理の実行状態を個別に監視するウォッチドッグ回路１７，１８と、を備えている。
【００２６】
（各ＣＰＵの機能）
各ＣＰＵ１０，１１は、それぞれ内部メモリ１５，１６を有しており、各内部メモリ１５，１６は、ＣＰＵ１０，１１がそれぞれ実行する処理プログラムを記憶すると共に各処理における作業領域として機能する。
また、第一のＣＰＵ１０と第二のＣＰＵ１１とは、それぞれのデータの送受信を行う通信手段であるバスにより互いに接続されている。
【００２７】
第一のＣＰＵ１０及び第二のＣＰＵ１１は、制御情報受信回路１３にて取得した制御情報からロボット２の所定部位の位置を算出する位置算出手段として機能する。ここで、ロボット２の所定部位の位置とは、ロボット２のツール２６の位置、ロボット２の各アーム２２の位置、ロボット２の各関節２３の位置等のように、作業者の作業エリアＡ（図１及び図６参照）に進入する可能性のあるロボット２の部位の位置であり、本実施形態ではツール２６の位置を所定部位とする。
【００２８】
第一のＣＰＵ１０及び第二のＣＰＵ１１は、他のＣＰＵ１０，１１において算出されたロボット２のツール２６の位置を取得する算出位置取得手段として機能する。
第一のＣＰＵ１０及び第二のＣＰＵ１１は、算出したロボットの算出位置と他のＣＰＵ１０，１１から取得したロボット２のツール２６の算出位置とが一致するか否かを判断する算出位置一致判断手段として機能する。
第一のＣＰＵ１０及び第二のＣＰＵ１１は、ロボット２のツール２６の算出位置が一致しないと判断した場合に、マグネットスイッチ５，６によりサーボモータ２４に対する電力の供給を遮断する電力遮断手段として機能する。
【００２９】
第一のＣＰＵ１０及び第二のＣＰＵ１１は、ロボット２の算出位置が一致すると判断された場合に、算出されたロボット２のツール２６の位置が、作業者による入力部９からの入力により指定された作業エリア内であるか否かを判断する位置判断手段として機能する。
第一のＣＰＵ１０及び第二のＣＰＵ１１は、ロボット２のツール２６の位置が作業エリア内であると判断された場合に、サーボ制御部によるロボット２の駆動を所定速度以下に減速させる駆動制御手段として機能する。ここで、所定速度とは、ロボット２と作業者が同じエリア内で作業する際に、作業者にとって十分に安全を確保できるような規格で定められている安全速度をいい、具体的には、２５０ｍｍ／ｓｅｃである。従って、第一のＣＰＵ１０及び第二のＣＰＵ１１は、２５０ｍｍ／ｓｅｃよりも低速となるようにロボット２の駆動を減速する。
【００３０】
第一のＣＰＵ１０及び第二のＣＰＵ１１は、サーボ制御部によるロボット２の駆動を２５０ｍｍ／ｓｅｃ以下に減速させた後、所定時間内におけるロボット２のツール２６の変位量から当該ツール２６の駆動速度を算出する速度算出手段として機能する。
第一のＣＰＵ１０及び第二のＣＰＵ１１は、他のＣＰＵ１０，１１により算出されたロボット２のツール２６の駆動速度を取得する算出速度取得手段として機能する。
第一のＣＰＵ１０及び第二のＣＰＵ１１は、算出したロボット２のツール２６の算出速度と取得したロボット２のツール２６の算出速度とが一致するか否かを判断する算出速度一致判断手段として機能する。
第一のＣＰＵ１０及び第二のＣＰＵ１１は、ロボット２の算出速度が一致すると判断された場合に、算出されたロボット２のツール２６の駆動速度が、上述の安全速度（２５０ｍｍ／ｓｅｃ）以下であるか否かを判断する速度判断手段として機能する。
第一のＣＰＵ１０及び第二のＣＰＵ１１は、ロボット２の算出速度が一致しないと判断された場合、又は、ロボット２のツール２６の駆動速度が安全速度（２５０ｍｍ／ｓｅｃ）を超えていると判断された場合に、マグネットスイッチ５，６によりサーボモータ２４に対する電力の供給を遮断する電力遮断手段として機能する。
【００３１】
（エンコーダデータ受信回路）
エンコーダデータ受信回路１２は、第一のＣＰＵ１０からの指令に従い、エンコーダ２５に対する検出信号出力の要求コマンドと当該要求コマンドを一意に識別するためのシーケンス番号データとをエンコーダ２５に送信する。このシーケンス番号は、周期的に行われる位置データの要求コマンド出力のたびに順次1ずつ加算されて付加されるので、各要求コマンドごとに重複するシーケンス番号が付加されないようになっている。
【００３２】
一方、エンコーダ２５は、シーケンス番号が付加された要求コマンドを受けると同じシーケンス番号を付加して検出したロボット２におけるツール２６の現在の位置に関する現在位置情報の返信を行う。これにより、エンコーダデータ受信回路１２では、現在位置情報に付加されたシーケンス番号を参照することで、いずれの要求コマンドに対する現在位置情報なのかを識別することができる。また、シーケンス番号の不一致により、エンコーダ２５の異常を検知することが可能となっている。また、エンコーダデータ受信回路１２は、エンコーダ２５から受信した現在位置情報を第一のＣＰＵ１０に送信する現在位置情報送信手段としても機能する。
【００３３】
（制御情報受信回路）
制御情報受信回路１３は、サーボアンプ４からのサーボモータ２４への指令位置及びサーボゲインを、位置制御部３を介して受信し、受信した指令位置及びサーボゲインを第一のＣＰＵ１０に送信する。すなわち、制御情報受信回路１３は、制御情報送信手段としても機能する。
【００３４】
（ウォッチドッグ回路）
ウォッチドッグ回路１７は第一のＣＰＵ１０を監視し、ウォッチドッグ回路１８は第二のＣＰＵ１１の監視を行う。
即ち、各ウォッチドッグ回路１７，１８は、ロボット２の制御実行時において、それぞれが監視対象とするＣＰＵ１０，１１に対して周期的にウォッチドッグ要求信号を出力し、これに対して各ＣＰＵ１０，１１が所定期間内に応答信号を返信しないときには、監視対象であるＣＰＵ１０，１１が停止しているものとして、タイムアップ信号を監視対象ではないＣＰＵ１０，１１に出力する機能を有している。
【００３５】
（報知部）
報知部８は、監視部７の処理において異常を検知したときに、その異常をオペレータに報知するための表示手段である。具体的には、異常発生を表示するモニタ、報知ランプ又は警報機等が報知部８として使用される。
報知部８は、各ＣＰＵ１０，１１が、他のウォッチドッグ回路１７，１８を通じて不良停止状態を検知すると、当該他のＣＰＵ１０，１１が不良停止状態である旨をユーザに報知する。
報知部８は、第一のＣＰＵ１０及び第二のＣＰＵ１１により、受信した制御情報が異常であると判断された場合、又は、受信した制御情報と取得した制御情報とが一致するか否かを判断した際に制御情報が一致しないと判断された場合に、制御情報の受信エラーである旨をユーザに報知する報知手段として機能する。
【００３６】
（入力部）
入力部９は、作業者が作業前に作業エリアの設定入力を行うためのものである。ここで入力された作業エリアに関するデータとロボット２のツール２６の位置とを比較してツール２６が作業エリアに進入したか否かを判断してロボット２の駆動制御を行う。例えば、図１に示すように、作業エリアＡの設定は、ロボット２の近傍に立方体の空間を設定することにより行う。なお、作業エリアは、立方体に囲まれる空間に限られるものではなく、直方体や円柱、球等により設定することも可能である。
【００３７】
〔制御情報の受信処理〕
図３は、監視部７の各ＣＰＵ１０，１１が行うロボット制御における制御情報（主に指令位置、サーボゲイン）の受信処理を示したものである。
最初に、第一のＣＰＵ１０は、制御情報受信回路１３を介して位置制御部３のＣＰＵに対して制御情報の要求を行い、その結果、位置制御部３から制御情報を受信する（ステップＳ１０１）。
【００３８】
このとき、位置制御部３のＣＰＵは制御情報について所定のデータ単位でＣＲＣコードを付与して送信する。これに対して、第一のＣＰＵ１０は受信した制御情報について位置制御部３と同じ条件でＣＲＣコードを生成すると共に、位置制御部３で生成されたＣＲＣコードと一致するか否かの判断を行う（ステップＳ１０２）。
このＣＲＣコードは、生成する元となるデータが1ビットでも異なればコードも変化してしまう性質があるので、上記処理において送信前の制御情報が何らかの異常により送信後に異なる制御情報に変化し或いは破損したかを判断することができる。
【００３９】
そして、第一のＣＰＵ１０が、ＣＲＣコードが一致しない（ＣＲＣコード異常）と判断した場合（ステップＳ１０２：ＹＥＳ）、第一のＣＰＵ１０は報知部８に対して制御情報の受信エラーを示す異常報知表示を行うように制御する（ステップＳ１０３）。異常報知後は第一及び第二のＣＰＵ１０，１１は他の処理を行わず、故障要因を排除して電源を再投入しない限り復旧しない状態となる。
一方、第一のＣＰＵ１０が、ＣＲＣコードが一致した（ＣＲＣコード正常）と判断した場合（ステップＳ１０２：ＮＯ）、第一のＣＰＵ１０は、内部メモリ１５に受信した制御情報を格納し（ステップＳ１０４）、さらに、第二のＣＰＵ１１に対して受信した制御情報とそのＣＲＣコードを送信する（ステップＳ１０５）。
【００４０】
第一のＣＰＵ１０からの制御情報とＣＲＣコードを受信すると、第二のＣＰＵ１１は、受信した制御情報について位置制御部３と同じ条件でＣＲＣコードを生成すると共に、受信した制御情報のＣＲＣコードと一致するか否かの判断を行う（ステップＳ１０６）。
そして、第二のＣＰＵ１１が、ＣＲＣコードが一致しない（ＣＲＣコード異常）と判断した場合（ステップＳ１０６：ＹＥＳ）、第二のＣＰＵ１１は報知部８に対して制御情報の受信エラーを示す異常報知表示を行うように制御する（ステップＳ１０７）。このときも、異常報知後は第一及び第二のＣＰＵ１０，１１は他の処理を行わず、故障要因を排除して電源を再投入しない限り復旧しない状態となる。
一方、第二のＣＰＵ１１が、ＣＲＣコードが一致した（ＣＲＣコード正常）と判断した場合（ステップＳ１０６：ＹＥＳ）、第二のＣＰＵ１１は、内部メモリ１６に受信した制御情報を格納する（ステップＳ１０８）。
【００４１】
また、第一のＣＰＵ１０は、制御情報を内部メモリ１５に格納後、バスを介して第二のＣＰＵ１１に送信した制御情報との相互比較を行い（ステップＳ１０９）、第二のＣＰＵ１１は、制御情報を内部メモリ１６に格納後、バスを介して第一のＣＰＵ１１が保有する制御情報との相互比較を行う（ステップＳ１１０）。
【００４２】
そして、第一のＣＰＵ１０は、自己の制御情報と第二のＣＰＵ１１の制御情報とが一致するか否かを判断し（ステップＳ１１１）、第一のＣＰＵ１０が一致すると判断した場合（ステップＳ１１１：ＹＥＳ）、これをもって本処理を終了する。一方、第一のＣＰＵ１０が一致しないと判断した場合（ステップＳ１１１：ＮＯ）、第一のＣＰＵ１０は、報知部８に対して制御情報の受信エラーを示す異常報知表示を行うように制御する（ステップＳ１１３）。このときも、異常報知後は第一及び第二のＣＰＵ１０，１１は他の処理を行わず、故障要因を排除して電源を再投入しない限り復旧しない状態となる。
【００４３】
また、同様にして、第二のＣＰＵ１１は、自己の制御情報と第一のＣＰＵ１０の制御情報とが一致するか否かを判断し（ステップＳ１１２）、第二のＣＰＵ１１が一致すると判断した場合（ステップＳ１１２：ＹＥＳ）、これをもって本処理を終了する。一方、第二のＣＰＵ１１が一致しないと判断した場合（ステップＳ１１２：ＮＯ）、第二のＣＰＵ１１は、報知部８に対して制御情報の受信エラーを示す異常報知表示を行うように制御する（ステップＳ１１４）。このときも、異常報知後は第一及び第二のＣＰＵ１０，１１は他の処理を行わず、故障要因を排除して電源を再投入しない限り復旧しない状態となる。
【００４４】
〔ロボットの現在位置情報の受信処理〕
図４は、監視部７の各ＣＰＵ１０，１１が行うロボット２のツール２６の現在位置情報の受信処理を示したものである。
【００４５】
最初に、第一のＣＰＵ１０は、エンコーダデータ受信回路１２を介してエンコーダ２５に対して現在の検出角度位置を示す現在位置情報の要求コマンドを送信する。このとき、要求コマンドは、当該コマンドを一意に識別するためのシーケンス番号データを付加されてエンコーダ２５に送信される。その結果、エンコーダデータ受信回路１２から現在位置情報を受信する（ステップＳ２０１）。
【００４６】
このとき、エンコーダ２５は制御情報について所定のデータ単位でＣＲＣコードを付与して送信する。これに対して、第一のＣＰＵ１０は受信した現在位置情報についてエンコーダ２５と同じ条件でＣＲＣコードを生成すると共に、エンコーダ２５で生成されたＣＲＣコードと一致するか否かの判断を行う（ステップＳ２０２）。
このＣＲＣコードは、生成する元となるデータが1ビットでも異なればコードも変化してしまう性質があるので、上記処理において送信前の制御情報が何らかの異常により送信後に異なる制御情報に変化し或いは破損したかを判断することができる。
【００４７】
そして、第一のＣＰＵ１０が、ＣＲＣコードが一致しない（ＣＲＣコード異常）と判断した場合（ステップＳ２０２：ＹＥＳ）、第一のＣＰＵ１０はマグネットスイッチ５に切替信号を出力し、全てのサーボモータ２４への通電を遮断して、ロボット２を停止させる（ステップＳ２０３）。一方、第一のＣＰＵ１０が、ＣＲＣコードが一致した（ＣＲＣコード正常）と判断した場合（ステップＳ２０２：ＮＯ）、第一のＣＰＵ１０は、第二のＣＰＵ１１に対して受信した現在位置情報とそのＣＲＣコードを送信する（ステップＳ２０４）。
【００４８】
そして、第一のＣＰＵ１０からの現在位置情報とＣＲＣコードを受信すると、第二のＣＰＵ１１は、受信した現在位置情報についてエンコーダ２５と同じ条件でＣＲＣコードを生成すると共に、当該生成したＣＲＣコードと受信したＣＲＣコードとが一致するか否かの判断を行う（ステップＳ２０５）。
そして、第二のＣＰＵ１１が、ＣＲＣコードが一致しない（ＣＲＣコード異常）と判断した場合（ステップＳ２０５：ＹＥＳ）、第二のＣＰＵ１１はマグネットスイッチ６に切替信号を出力し、全てのサーボモータ２４への通電を遮断して、ロボット２を停止させる（ステップＳ２０６）。
【００４９】
一方、第一のＣＰＵ１０は、現在位置情報を第二のＣＰＵ１１に送信後、上述したステップＳ１０４の処理（図３）で位置制御部３から受信して内部メモリ１５に格納した制御情報に含まれるエンコーダ２５の出力コードと当該出力コードが示す検出角度位置との対応関係を示すテーブルを参照して、エンコーダ２５の位置データを関節角度（角度位置）に変換すると共に内部メモリ１５に記憶する（ステップＳ２０７）。
また、第二のＣＰＵ１１も、現在位置情報のＣＲＣコードに異常がない場合に、上述したステップＳ１０８の処理（図３）で内部メモリ１６に格納した制御情報中のエンコーダ２５の出力コードと関節角度との対応テーブルから、エンコーダ２５の位置データを関節角度に変換すると共に内部メモリ１６に記憶する（ステップＳ２０８）。
【００５０】
そして、第一のＣＰＵ１０は、関節角度の算出後、バスを介して、第二のＣＰＵ１１が算出した関節角度との相互比較を行い（ステップＳ２０９）、第一のＣＰＵ１０で求めた関節角度と第二のＣＰＵ１１で求めた関節角度とが一致するか否かを判断する（ステップＳ２１０）。
そして、第一のＣＰＵ１０が、相互の関節角度が一致しないと判断した場合（ステップＳ２１０：ＮＯ）、第一のＣＰＵ１０は、マグネットスイッチ５に切替信号を出力し、全てのサーボモータ２４への通電を遮断して、ロボット２を停止させる（ステップＳ２１１）。
また、第一のＣＰＵ１０が、相互の関節角度が一致すると判断した場合（ステップＳ２１０：ＹＥＳ）、第一のＣＰＵ１０は、位置監視処理（ステップＳ２１２）、ＣＰＵの相互監視処理（ステップＳ２１３）を行った後に、本処理を終了する。
【００５１】
一方、第二のＣＰＵ１１は、関節角度の算出後、バスを介して、第一のＣＰＵ１０が算出した関節角度との相互比較を行い（ステップＳ２１４）、第二のＣＰＵ１１で求めた関節角度と第一のＣＰＵ１０で求めた関節角度とが一致するか否かを判断する（ステップＳ２１５）。
そして、第二のＣＰＵ１１が、相互の関節角度が一致しないと判断した場合（ステップＳ２１５：ＮＯ）、第二のＣＰＵ１１は、マグネットスイッチ６に切替信号を出力し、全てのサーボモータ２４への通電を遮断して、ロボット２を停止させる（ステップＳ２１６）。
また、第二のＣＰＵ１１が、相互の関節角度が一致すると判断した場合（ステップＳ２１５：ＹＥＳ）、第二のＣＰＵ１１は、位置監視処理（ステップＳ２１７）、ＣＰＵの相互監視処理（ステップＳ２１８）を行った後に、本処理を終了する。
【００５２】
〔監視部におけるツールの位置及び駆動速度の監視処理〕
図５は、監視部７の各ＣＰＵ１０，１１が行うロボット２の位置及び駆動速度の監視処理を示したものである。
最初に、第一のＣＰＵ１０は、位置制御部３から受信した制御情報におけるロボット２への指令位置、サーボゲインからロボット２のツール２６の現在位置を算出する（ステップＳ３０１）。また、第二のＣＰＵ１１も、位置制御部３から受信した制御情報におけるロボット２への指令位置、サーボゲインからロボット２のツール２６の現在位置を算出する（ステップＳ３０２）。
【００５３】
そして、第一のＣＰＵ１０は、ツール２６の現在位置を算出した後、バスを介して、第二のＣＰＵ１１で算出したツール２６の現在位置との相互比較を行い（ステップＳ３０３）、第一のＣＰＵ１０で算出したツール２６の現在位置と第二のＣＰＵ１１で算出したツール２６の現在位置とが一致するか否かの判断を行う（ステップＳ３０４）。
同様に、第二のＣＰＵ１１は、ツール２６の現在位置を算出した後、バスを介して、第一のＣＰＵ１０が算出したツール２６の現在位置との相互比較を行い（ステップＳ３０５）、第二のＣＰＵ１１で算出したツール２６の現在位置と第一のＣＰＵ１０で算出したツール２６の現在位置とが一致するか否かの判断を行う（ステップＳ３０６）。
【００５４】
そして、第一のＣＰＵ１０が、相互に算出されたツール２６の位置が一致しないと判断した場合（ステップＳ３０４：ＮＯ）、第一のＣＰＵ１０は、マグネットスイッチ５に切替信号を出力し、全てのサーボモータ２４への通電を遮断して、ロボット２を停止させる（ステップＳ３０７）。
同様に、第二のＣＰＵ１１が、相互に算出されたツール２６の位置が一致しないと判断した場合（ステップＳ３０６：ＮＯ）、第二のＣＰＵ１１は、マグネットスイッチ６に切替信号を出力し、全てのサーボモータ２４への通電を遮断して、ロボット２を停止させる（ステップＳ３０８）。
【００５５】
一方、第一のＣＰＵ１０が、相互に算出されたツール２６の位置が一致したと判断した場合（ステップＳ３０４：ＹＥＳ）、第一のＣＰＵ１０は、第一のＣＰＵ１０により算出されたツール２６の位置が作業者により入力部９を介して設定入力された作業エリアＡ内であるか否かを判断する（ステップＳ３０９）。ここで、図６に示すように、本実施形態は、作業者により指定された作業エリアＡとロボット２のツール２６の動作エリアＲが重複する場合を前提としているため、作業エリアＡ内にロボット２のアーム部の先端に設けられたツール２６が存在するか否かでロボット２の駆動速度が制御される。
【００５６】
ステップＳ３０９において、第一のＣＰＵ１０が、ツール２６の位置が作業エリア内にはないと判断した場合（ステップＳ３０９：ＮＯ）、第一のＣＰＵ１０は、本処理を終了させる。一方、第一のＣＰＵ１０が、ツール２６の位置が作業エリア内にあると判断した場合（ステップＳ３０９：ＹＥＳ）、第一のＣＰＵ１０は、位置制御部３にロボット２の駆動速度を減速させる旨の信号を送信する（ステップＳ３１０）。
【００５７】
同様に、第二のＣＰＵ１１が、相互に算出されたツール２６の位置が一致したと判断した場合（ステップＳ３０６：ＹＥＳ）、第二のＣＰＵ１１は、第二のＣＰＵ１１により算出されたツール２６の位置が作業者により入力部９を介して設定入力された作業エリアＡ内であるか否かを判断する（ステップＳ３１１）。ここで、第二のＣＰＵ１１が、ツール２６の位置が作業エリア内にはないと判断した場合（ステップＳ３１１：ＮＯ）、第二のＣＰＵ１１は、本処理を終了させる。一方、第二のＣＰＵ１１が、ツール２６の位置が作業エリア内にあると判断した場合（ステップＳ３１１：ＹＥＳ）、第二のＣＰＵ１１は、位置制御部３にロボット２の駆動速度を減速させる旨の信号を送信する（ステップＳ３１２）。
【００５８】
そして、ステップＳ３１０において、第一のＣＰＵ１０が、位置制御部３にロボット２の駆動速度を減速させる旨の信号を送信すると、位置制御部３は、サーボアンプ４によりロボット２の駆動速度を減速させる。ロボット２の減速後においても、第一のＣＰＵ１０は、所定時間内におけるロボット２のツール２６の変位量からロボット２のツール２６の駆動速度を算出する（ステップＳ３１３）。
【００５９】
同様に、ステップＳ３１２において、第二のＣＰＵ１１が、位置制御部３にロボット２の駆動速度を減速させる旨の信号を送信すると、位置制御部３は、サーボアンプ４によりロボット２の駆動速度を減速させる。ロボット２の減速後においても、第二のＣＰＵ１１は、所定時間内におけるロボット２のツール２６の変位量からロボット２のツール２６の駆動速度を算出する（ステップＳ３１４）。
【００６０】
そして、第一のＣＰＵ１０は、ツール２６の駆動速度を算出した後、バスを介して、第二のＣＰＵ１１で算出したツール２６の駆動速度との相互比較を行い（ステップＳ３１５）、第一のＣＰＵ１０で算出したツール２６の駆動速度と第二のＣＰＵ１１で算出したツール２６の駆動速度とが一致するか否かの判断を行う（ステップＳ３１６）。
【００６１】
同様に、第二のＣＰＵ１１は、ツール２６の駆動速度を算出した後、バスを介して、第一のＣＰＵ１０が算出したツール２６の駆動速度との相互比較を行い（ステップＳ３１７）、第二のＣＰＵ１１で算出したツール２６の駆動速度と第一のＣＰＵ１０で算出したツール２６の駆動速度とが一致するか否かの判断を行う（ステップＳ３１８）。
【００６２】
そして、第一のＣＰＵ１０が、相互に算出されたツール２６の駆動速度が一致しないと判断した場合（ステップＳ３１６：ＮＯ）、第一のＣＰＵ１０は、マグネットスイッチ５に切替信号を出力し、全てのサーボモータ２４への通電を遮断して、ロボット２を停止させる（ステップＳ３１９）。
【００６３】
同様に、第二のＣＰＵ１１が、相互に算出されたツール２６の駆動速度が一致しないと判断した場合（ステップＳ３１８：ＮＯ）、第二のＣＰＵ１１は、マグネットスイッチ６に切替信号を出力し、全てのサーボモータ２４への通電を遮断して、ロボット２を停止させる（ステップＳ３２０）。
【００６４】
一方、第一のＣＰＵ１０が、相互に算出されたツール２６の駆動速度が一致したと判断した場合（ステップＳ３１６：ＹＥＳ）、第一のＣＰＵ１０は、第一のＣＰＵ１０により算出されたツール２６の駆動速度が２５０ｍｍ／ｓｅｃ以下であるか否かを判断する（ステップＳ３２１）。ここで、第一のＣＰＵ１０が、ツール２６の駆動速度が２５０ｍｍ／ｓｅｃ以下であると判断した場合（ステップＳ３２１：ＹＥＳ）、第一のＣＰＵ１０は、本処理を終了させる。一方、第一のＣＰＵ１０が、ツール２６の駆動速度が２５０ｍｍ／ｓｅｃ以下ではないと判断した場合（ステップＳ３２１：ＮＯ）、第一のＣＰＵ１０は、マグネットスイッチ５に切替信号を出力し、全てのサーボモータ２４への通電を遮断して、ロボット２を停止させる（ステップＳ３２２）。
【００６５】
同様に、第二のＣＰＵ１１が、相互に算出されたツール２６の駆動速度が一致したと判断した場合（ステップＳ３１８：ＹＥＳ）、第二のＣＰＵ１１は、第二のＣＰＵ１１により算出されたツール２６の駆動速度が２５０ｍｍ／ｓｅｃ以下であるか否かを判断する（ステップＳ３２３）。ここで、第二のＣＰＵ１１が、ツール２６の駆動速度が２５０ｍｍ／ｓｅｃ以下であると判断した場合（ステップＳ３２３：ＹＥＳ）、第二のＣＰＵ１１は、本処理を終了させる。一方、第二のＣＰＵ１１が、ツール２６の駆動速度が２５０ｍｍ／ｓｅｃ以下ではないと判断した場合（ステップＳ３２３：ＮＯ）、第二のＣＰＵ１１は、マグネットスイッチ６に切替信号を出力し、全てのサーボモータ２４への通電を遮断して、ロボット２を停止させる（ステップＳ３２４）。
上記の処理を０．１ｓｅｃや０．０１ｓｅｃ等の短時間で行い、ロボット２の駆動時には本処理が繰り返される。
【００６６】
〔監視部におけるＣＰＵの相互監視処理〕
サーボモータ制御の監視処理において、ロボットの位置監視処理が終了すると、最後にＣＰＵの相互監視処理が実行される。
かかる処理では、第一のＣＰＵ１０が、第二のＣＰＵ１１の監視を行っているウォッチドッグ回路１８にアクセスし、第二のＣＰＵ１１の停止状態を示すエラー信号を出力しているかを判断する。その結果、ウォッチドッグ回路１８がエラー信号を出力している場合に、第一のＣＰＵ１０は、マグネットスイッチ５に切替信号を出力し、ロボット２を停止させる。また、ウォッチドッグ回路１８がタイムアップ信号を出力していない場合には、第一のＣＰＵ１０はＣＰＵの相互監視処理を終了する。
【００６７】
一方、第二のＣＰＵ１１が、第一のＣＰＵ１０の監視を行っているウォッチドッグ回路１７にアクセスし、第一のＣＰＵ１０の停止状態を示すエラー信号を出力しているかを判断する。その結果、ウォッチドッグ回路１７がエラー信号を出力している場合に、第二のＣＰＵ１１は、マグネットスイッチ６に切替信号を出力し、ロボット２を停止させる。また、ウォッチドッグ回路１７がタイムアップ信号を出力していない場合には、第二のＣＰＵ１１はＣＰＵの相互監視処理を終了する。
【００６８】
〔ロボット制御装置の全体的な動作〕
上記構成により、ロボット制御装置１の位置制御部３は、教示動作データに基づく動作を行うように制御指令を順番に出力し、サーボアンプ４を介してロボット２の各関節２３のサーボモータ２４の動作制御を行う。このとき、サーボアンプ４では、各関節２３のエンコーダ２５からの検出信号に基づいてフィードバック制御が実行される。
【００６９】
一方、監視部７は、ロボット２の動作開始前に、ロボット制御における各種の制御情報を位置制御部３から取得し、ロボット２の動作制御の際には、所定のサンプリング間隔で、各エンコーダ２５から現在位置情報（関節角度）の受信を行う。そして、データ受信の異常の発生、関節角度、動作速度、トルクの異常の発生、各ＣＰＵ１０，１１の異常の発生の監視がロボット２の動作中においてサンプリング間隔で繰り返し実行される。
【００７０】
〔実施形態の効果〕
以上のように、ロボット制御装置１では、作業エリア内でロボット２を駆動させることができるとともに、作業者もロボット２の駆動に脅かされることなく作業をすることができるので、作業エリア内でロボット２と作業者が同時に共存して作業できる。また、作業エリアＡ以外においてはロボット２は高速で動作するため、ロボット２の作業を停止することがなく、よって、ロボットシステムによる作業全体の稼働率が低下してしまうという問題を解消することができる。
【００７１】
また、作業エリアに進入したロボット２を減速させた後であっても、ロボット２の駆動速度は監視され、安全速度である２５０ｍｍ／ｓｅｃを超えた場合にはサーボモータ２４に対する電力の供給を遮断してロボット２を停止させるので、作業者の作業エリア内においては、ロボット２の駆動速度は２５０ｍｍ／ｓｅｃ以下に抑えられることとなる。また、所定速度を２５０ｍｍ／ｓｅｃとすることで、規格に沿った安全速度までロボットを減速させることができる。
よって、作業エリア内でロボット２を駆動させることができるとともに、作業者もロボット２の駆動に脅かされることなく作業をすることができるので、作業エリア内でロボット２と作業者が同時に作業できる。よって、ロボットシステムによる作業全体の稼働率が低下してしまうという問題を解消することができる。また、ロボット２のツール２６の位置に加え、駆動速度によってもロボット２の駆動を制御することができるので、ロボット２の駆動制御の精度向上を図ることができる。
【００７２】
また、二つのＣＰＵ１０，１１を設けることにより、ロボット２のツール２６の現在位置を受信した段階で異常がある場合には、処理を進めることなく即座に異常をユーザに報知し、さらに、各ＣＰＵ１０，１１が互いのロボット２の現在位置情報を相互に比較して異常の有無を判断しているので、位置制御部３及びサーボアンプ４の異常を迅速かつ的確に検出することができ、監視部７の信頼性を向上させることができる。
また、二つのＣＰＵ１０，１１により互いに受信したロボット２のツール２６の現在位置の異常の有無を判断しているので、監視部７の信頼性を向上させることができる。
【００７３】
また、位置制御部３とサーボアンプ４と監視部７を別個に構成することにより、ロボット２の制御と監視を並列処理することができるため、各部の処理の負荷を軽減することができるとともに、一つの処理回路で処理する場合に比べて各部の処理を高速化することができる。
【００７４】
また、ＣＰＵ１０，１１ごとに設けられたウォッチドッグ回路１７，１８により、いずれかのＣＰＵ１０，１１が不良停止して、残り一方のＣＰＵ１０，１１のみによるサーボモータ２４の監視状態が回避され、二系統による監視状態でのみサーボモータ２４を駆動させることができ、サーボモータ２４の異常動作をより確実に防止することができる。
また、サーボ制御が正常に動作していることを確認するだけでなく、サーボアンプ４に含まれる診断回路や診断ソフトウェアを安価に実現することができる。
また、サーボアンプ４の監視だけでなく、エンコーダ２５をも含めた監視になるため、装置全体の信頼性を向上させることができる。
【００７５】
〔その他〕
上記構成では、図１において、サーボモータ２４及びエンコーダ２５が一組しか図示されていないが、これらは各関節２３ごとに設けられている。従って、監視部７は、図３〜図５に示す全ての処理を、タイミングをずらして各サーボモータ２４ごとに実行していることはいうまでもない。
また、上記構成では、監視部７の第二のＣＰＵ１１が各エンコーダ２５からの現在位置情報を第一のＣＰＵ１０を介して受信する構成となっているが、第二のＣＰＵ１１が第一のＣＰＵ１０を介することなくエンコーダ２５から直接受信する構成としても良い。その場合、第二のＣＰＵ１１もエンコーダ２５からの現在位置情報に対してＣＲＣコードによる確認処理を実行することが望ましい。
【００７６】
また、制御対象となるロボット２は回動、回転関節のみを有するものに限られず、例えば直動式の関節を有するロボットを制御対象としても良い。その場合、関節角度ではなく、現在位置情報から直進方向の移動量を求め、これを監視する構成とすることが望ましい。
また、上記実施形態のようなロボット２に限らず、ＮＣ（数値制御）による工作機械の制御についても適用可能である。
また、ロボット２の現在位置の監視に限らず、位置制御部３からの指令位置に対しても監視を実施し、ロボット２の駆動速度を減速させることも可能である。
また、ツール２６の位置を監視する場合に限らず、アーム、関節についても同様に位置を監視することができる。
また、二つのＣＰＵ１０，１１により相互に算出されたツール２６の位置や駆動速度が一致するか否かを比較しているが、必ずしも一致する場合に限らず、その位置差、速度差が一定の許容範囲内であれば、一致するものとして処理することも可能である。
また、マグネットスイッチ５，６を切ることで異常を通知することができるようにしたが、位置制御部３に対して異常を通知するようにしてもよい。
また、上記構成では、各演算処理を二つのＣＰＵ１０，１１により行っていたが、ＣＰＵの数は三つ以上であってもよい。これにより、ロボット２の位置監視のレベルを向上させることができる。
また、ロボット２の台数も１台に限らず、複数のロボットが作業エリアに進入する場合においても同様に適用可能である。
【図面の簡単な説明】
【００７７】
【図１】ロボット及びロボット制御装置の全体構成図。
【図２】図１における監視部の構成を示すブロック図。
【図３】監視部の各ＣＰＵが行うロボットの制御情報の受信処理のフローチャート。
【図４】監視部の各ＣＰＵが行うロボットのツールの位置情報の受信処理のフローチャート。
【図５】監視部の各ＣＰＵが行うロボットの位置及び駆動速度の監視処理のフローチャート。
【図６】作業エリアとロボットの動作エリアとの関係を示す図。
【符号の説明】
【００７８】
１  ロボット制御装置
２  ロボット
３  位置制御部（サーボ制御部）
４  サーボアンプ（サーボ制御部）
５  マグネットスイッチ（切り替え部）
６  マグネットスイッチ（切り替え部）
７  監視部
９  入力部（作業エリア指定手段）
１０  第一のＣＰＵ（演算処理部、位置算出手段、算出位置取得手段、算出位置一致判断手段、電力遮断手段、位置判断手段、駆動制御手段、速度算出手段、算出速度取得手段、算出速度一致判断手段、速度判断手段）
１１  第二のＣＰＵ（演算処理部、位置算出手段、算出位置取得手段、算出位置一致判断手段、電力遮断手段、位置判断手段、駆動制御手段、速度算出手段、算出速度取得手段、算出速度一致判断手段、速度判断手段）
１３  制御情報受信回路（制御情報取得手段、制御情報送信手段）
１７  ウォッチドッグ回路
１８  ウォッチドッグ回路
２４  サーボモータ
２５  エンコーダ（位置検出手段）
２６  ツール
【図１】
2007283448.tif 000003
【図２】
2007283448.tif 000004
【図３】
2007283448.tif 000005
【図４】
2007283448.tif 000006
【図５】
2007283448.tif 000007
【図６】
2007283448.tif 000008