(57)【特許請求の範囲】
【請求項１】
ロボットの関節軸を、モータにより減速機を介して駆動するもので、
前記モータの回転位置（入力回転位置）を検出する入力エンコーダと、
前記減速機を介したアームの回転位置（出力回転位置）を検出する出力エンコーダと、
前記入力エンコーダ及び前記出力エンコーダにより検出される回転位置データを取得して、前記モータを制御する制御装置と、
前記入力エンコーダに配置され、前記入力回転位置データをラッチする入力データラッチと、
前記出力エンコーダに配置され、前記出力回転位置データをラッチする出力データラッチと、
前記出力エンコーダに配置され、前記出力回転位置データが変化する毎に、前記出力データラッチ及び前記入力データラッチにラッチ信号を出力するラッチ信号出力部とを備えることを特徴とするロボットの制御システム。
【請求項２】
前記出力回転位置データは、前記出力エンコーダから前記入力エンコーダに転送され、前記入力エンコーダを介して前記制御装置に転送されることを特徴とする請求項１記載のロボットの制御システム。
【請求項３】
前記入力エンコーダは、前記入力回転位置データを前記制御装置に転送するための入力データレジスタと、
前記入力回転位置データを、前記出力回転位置データと共に前記制御装置に転送するための入出力データレジスタとを備えることを特徴とする請求項２記載のロボットの制御システム。
【請求項４】
モータの回転位置を検出する入力エンコーダと、
減速機を介してモータに駆動される制御対象物の回転位置を検出する出力エンコーダとを含むエンコーダシステムであって、
前記入力エンコーダに配置され、入力エンコーダにより検出される入力回転位置データをラッチする入力データラッチと、
前記出力エンコーダに配置され、出力エンコーダにより検出される出力回転位置データをラッチする出力データラッチと、
前記出力エンコーダに配置され、前記出力回転位置データが変化する毎に、前記出力データラッチ及び前記入力データラッチにラッチ信号を出力するラッチ信号出力部とを備えるエンコーダシステム。
【請求項５】
前記出力回転位置データは、前記出力エンコーダから前記入力エンコーダに転送され、前記入力エンコーダを介して、前記入力回転位置データ及び出力回転位置データに基づいて前記モータを制御する制御装置に転送される請求項４記載のエンコーダシステム。
【請求項６】
前記入力エンコーダは、前記入力回転位置データを前記制御装置に転送するための入力データレジスタと、
前記入力回転位置データを、前記出力回転位置データと共に前記制御装置に転送するための入出力データレジスタとを備える請求項５記載のエンコーダシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロボットの関節軸を、モータにより減速機を介して駆動するための制御システム，及びその制御のために使用されるエンコーダシステムに関する。
【背景技術】
【０００２】
例えばロボットの関節を駆動する構成においてアームの回転位置を制御する際に、エンコーダにより検出される回転位置に従いモータを制御した結果、減速機を介したアームの回転位置が実際にどのような値になっているのか確認したい場合がある。例えば特許文献１では、モータとアームとがトルクカッタを介して連結されるものにおいて、アームの回転位置をポテンショメータにより検出する構成が開示されている。
【特許文献１】特許第４３６９８８６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００３】
上記のような構成では、マイクロコンピュータ等からなる制御装置は、モータ側の回転位置と、アーム側の回転位置とを同じ時点で参照する必要がある。例えば、回転位置をデジタルデータで取り扱うため、アーム側のポテンショメータに替えてモータ側と同じくエンコーダを用い、各エンコーダより出力される回転位置データをラッチ回路によりラッチして制御装置が読み込むことを想定すると、２つのラッチ回路のデータを読み込むタイミングが問題となる。
【０００４】
一般にモータは、アームに比較して制御装置の近傍に位置している。したがって、制御装置がアーム側，モータ側のエンコーダデータをパラレルに読み込むには、アーム側のデータをモータ側に転送して、双方のデータを一括してパラレルに読み込むのが適切である。すると、上記の転送に要する時間分だけ、双方のデータの検出時間にずれが生じるおそれがある。すなわち、ロボットのアームのように減速機構を介して駆動する構成では、モータ側の回転位置がアーム側の回転位置よりも分解能が高く、より速く変化するため、受信したアーム側の回転位置データは、モータ側の回転位置データよりも過去のものになってしまう。このように、双方の回転位置を示すタイミングにずれがあると、モータの制御を正確に行うことができなくなる。
【０００５】
本発明は、上記事情に鑑みてなされたもので、その目的は、ロボットの軸について入力側，出力側の回転位置を検出する構成において、それぞれの回転位置データを時間のずれがない状態で取得可能なロボットの制御システム，及びその制御のために使用されるエンコーダシステムを提供することにある。
【課題を解決するための手段】
【０００６】
請求項１記載のロボットの制御システムによれば、ロボットの関節軸に、モータの回転位置を検出する入力エンコーダと、減速機を介したアームの回転位置を検出する出力エンコーダとを備え、制御装置は、入力エンコーダ及び出力エンコーダにより検出される各回転位置データを取得してモータを制御する。そして、入力エンコーダに、入力回転位置データをラッチする入力データラッチを配置し、出力エンコーダに、出力回転位置データをラッチする出力データラッチと、出力回転位置データが変化する毎に、出力データラッチ及び入力データラッチにラッチ信号を出力するラッチ信号出力部とを備える。
【０００７】
すなわち、モータ側の入力エンコーダとアーム側の出力エンコーダとは、構造上ある程度の距離を置いて配置されることになる。そして、制御装置がアームの回転位置を補正するためには、同じ時点の入力回転位置データと出力回転位置データとを取得する必要がある。アームは減速機を介して駆動されるので、入力回転位置データに対して出力回転位置データの分解能は低い。そこで、ラッチ信号出力部を出力エンコーダに配置し、出力回転位置データが変化する毎に、出力データラッチ及び入力データラッチにラッチ信号を出力すれば、距離が離れている入力エンコーダにおいても、上記の変化と同じタイミングで入力回転位置データをラッチして保持することができる。
【０００８】
請求項２記載のロボットの制御システムによれば、出力回転位置データは、出力エンコーダから一旦入力エンコーダに転送され、入力エンコーダを介して制御装置に転送される。すなわち、各軸の入力回転位置データ及び出力回転位置データは同時に制御装置に転送されるので、これらを統合して転送すると効率が良い。そして、上述のように入力回転位置データに対して出力回転位置データの分解能は低く、データサイズが小さくなる。したがって、出力回転位置データを、一旦入力エンコーダに転送してから制御装置に転送すれば、出力エンコーダと入力エンコーダとの間を接続するデータバス幅が小さくなる。
【０００９】
請求項３記載のロボットの制御システムによれば、入力エンコーダに、入力回転位置データを制御装置に転送するための入力データレジスタと、入力回転位置データを、出力回転位置データと共に制御装置に転送するための入出力データレジスタとを備える。このように構成すれば、一定周期毎に、全ての軸の一部として制御装置に転送される入力回転位置データと、複数周期に１回だけ、１つの軸の入力回転位置及び出力回転位置の組で転送されるデータとを効率的に転送できる。また、制御装置は、各データを迅速に取得して処理できる。
【図面の簡単な説明】
【００１０】
【図１】第１実施例であり、エンコーダの検出部におけるデータ処理部の構成を中心に示す機能ブロック図
【図２】入力ＥＣ検出部と、出力ＥＣ検出部との間における回転位置データの転送処理を示すフローチャート
【図３】回転位置データＰin（ｔ），Ｐout（ｔ）が変化する状態を示すタイミングチャート
【図４】モータ制御用コントローラの内部構成，及び３組の入力ＥＣ検出部と、前記コントローラとの接続状態を示す機能ブロック図
【図５】制御用ＣＰＵが３軸ロボットを制御する場合の処理内容を示すフローチャート
【図６】図５の処理に対応した回転位置データの転送状態を示すタイミングチャート
【図７】図８の縦断側面図
【図８】ロボットの関節軸の１つをモータにより駆動する構成を示す斜視図
【図９】第２実施例を示す図７相当図
【図１０】回転盤の縦断側面図
【図１１】出力角度θoutの計算を説明する図
【図１２】出力角度θoutの計算処理を示すフローチャート
【図１３】第３実施例を示す図４相当図
【発明を実施するための形態】
【００１１】
（第１実施例）
以下、第１実施例について図１ないし図８を参照して説明する。図８は、ロボットの関節軸の１つをモータにより駆動する構成を示す斜視図であり、図７はその縦断側面図（但し、若干簡略化している）である。モータ１は、例えばインナーロータタイプの永久磁石型同期モータであり、円筒形をなすベース２の内部に、回転軸３の先端が図中の上方を向いた状態で配置されている。尚、モータ１のステータ４は、ステータコア及び巻線で構成され（図示せず）、その上端面がベース２の天板裏に接するように固定されている。ロータは、回転軸３とロータコア及びステータ側の巻線に対向するように配置される永久磁石とで構成されるが（何れも図示せず）、図７では、回転軸３がステータ４に軸受６により回転自在に支持されているように示している。
【００１２】
回転軸３の後端部は、ステータ４の後端面より下方に突出しており、先端部は、ベース２の天板に形成された貫通穴７を介して外部に突出している。そして、上記先端部は、減速機８の入力部８Ｉに連結されており、出力部８Ｏには、ロボットのアーム９（制御対象物，負荷）が連結されている。尚、減速機８の詳細構成についても図示を省略している。回転軸３の後端面には、光学式のロータリエンコーダ（以下、入力エンコーダ（入力ＥＣ）と称す）１０を構成する回転盤１１が取り付けられている。
【００１３】
回転盤１１の下方には、投光素子及び受光素子，カウンタや（図示せず）、後述するレジスタ等からなるデータ処理部を含む入力  ＥＣ検出部１２が、カップ状をなしてステータ４の後端面に固定されているエンコーダ支持部材１３の底面部に取り付けられている。すなわち、入力ＥＣ検出部１２は、上方の回転盤１１のスリット（図示せず）に向けて投光し、反射した光を受光することでモータ１の回転位置を検出する。
【００１４】
アーム９の上面側には、モータ１の回転軸３（入力軸）と同軸となるようにアーム回転軸１４（出力軸）の後端部が取り付けられている。ベース２の天板における図６中右端には、上方に伸びる垂直部１５Ｖと、垂直部１５Ｖの先端にアーム９と平行となるように配置される水平部１５Ｈからなる軸支持部材１５が配置されている。アーム回転軸１４は水平部１５Ｈを貫通しており、水平部１５Ｈに配置されている軸受１６により回転自在に支持されている。
【００１５】
アーム回転軸１４の先端面には、光学式のエンコーダ１７（以下、出力エンコーダ（出力ＥＣ）と称す）を構成する回転盤１８が取り付けられている。出力エンコーダ１７は、入力エンコーダ１０と同様の構成であり、回転盤１８の上方には、投光素子及び受光素子，カウンタ等を含む出力ＥＣ検出部１９が、カップを伏せた形状で水平部１５Ｈの上面に固定されているエンコーダ支持部材２０の天板裏に取り付けられている。すなわち、出力ＥＣ検出部１９は、下方の回転盤１８のスリットに向けて投光し、反射した光を受光することでアーム９の回転位置を検出する。
【００１６】
入力エンコーダ１０の入力ＥＣ検出部１２は、出力エンコーダ１７の出力ＥＣ検出部１９と中継バス２１を介して接続されており、出力ＥＣ検出部１９において検出された回転位置データは入力ＥＣ検出部１２に転送される。また、出力ＥＣ検出部１９は、中継バス２１を介して入力ＥＣ検出部１２にデータラッチ用のエッジパルス信号を送信する。そして、入力ＥＣ検出部１２は、上記回転位置データと自身が検出した回転位置データとを統合すると、データバス２２を介してモータ制御用コントローラ２３（図１，図３参照）に出力する。尚、中継バス２１及びデータバス２２は、ベース２に形成されている貫通孔２４を介してベース２の内外に導出される。
【００１７】
図１は、検出部１２及び１９におけるデータ処理部の構成を中心に示す機能ブロック図である。入力ＥＣ検出部１２は、受光部より出力されるパルス数をカウントするカウンタのデータを保持する、例えば２０ビットの入力ＥＣ値保持レジスタ３１（入力データラッチ）を備えている。同様に、出力ＥＣ検出部１９は、カウンタのデータを保持する出力ＥＣ値保持レジスタ３２（出力データラッチ）を備えている。アーム９の回転位置データは例えば９ビットであるが（減速機８を介しているため入力側よりサイズが小さい）、アーム９の回転数が１回転以上となる場合に対応して、カウンタがオーバーフローした回数を示す多回転データ（例えば２ビット）も格納される。但し、本実施例では多回転データについては取り扱わない。
【００１８】
出力ＥＣ検出部１９において、データ変化検出部３３を構成する出力ＥＣ値レジスタ監視部３４は、出力ＥＣ値保持レジスタ３２のＬＳＢ（Least Significant Bit）が変化したか否かを監視し、変化があると（すなわち、カウンタ値がインクリメントすると）出力ＥＣ値保持レジスタ３２にエッジパルスを出力すると共に、エッジパルス出力部３５（ラッチ信号出力部）にパルス出力命令をする。すると、エッジパルス出力部３５は、入力検出部１２にラッチ用のエッジパルス（ラッチ信号）を送信する。
【００１９】
データ変化時出力値保持レジスタ３６は、エッジパルスの立ち上がりエッジで、ＥＣ値保持レジスタ３２にラッチされている９ビットの回転位置データＰout（ｔ）を格納して保持する。保持された回転位置データＰout（ｔ）は、保持データ出力部３７を介して入力ＥＣ検出部１２に送信される。すなわち、エッジパルス出力部３５及び保持データ出力部３７は、それぞれエッジパルス及び回転位置データＰout（ｔ）を入力ＥＣ検出部１２に送信するためのドライバである。
【００２０】
入力ＥＣ検出部１２側では、エッジパルス出力部３５より送信されたエッジパルスを、データラッチ部３８のエッジパルス入力部３９で受信して、入力値保持レジスタ３１に出力する。これにより、データ変化時出力値保持レジスタ３６における回転位置データＰout（ｔ）と、入力値保持レジスタ３１における回転位置データＰin（ｔ）とは、同じエッジパルスの立ち上がりエッジによってラッチされることになる。
【００２１】
上記回転位置データＰin（ｔ）は、前述したデータバス２２の一部をなす入力値データバス４０を介してモータ制御用コントローラ２３（制御装置）に出力されると共に、データラッチ部３８の入出力値保持レジスタ４１（入出力データラッチ）に転送される。また、出力ＥＣ検出部１９の保持データ出力部３７より送信された回転位置データＰout（ｔ）も、入出力値保持レジスタ４１に転送される。そして、入出力値保持レジスタ４１に格納された合計２９ビットの回転位置データＰin（ｔ），Ｐout（ｔ）は、データバス２２の一部をなす入出力値データバス４２を介してモータ制御用コントローラ２３に出力される。
尚、データバス４０及び４２のサイズは実際には何れも３２ビットであり、送信に使用しないデータのビットはプルアップ若しくはプルダウンされている。また、以降では、２０ビットの回転位置データＰin（ｔ）を入力ＥＣ値と、２９ビットの回転位置データＰin（ｔ），Ｐout（ｔ）を入出力ＥＣ値と称する。
【００２２】
図４は、モータ制御用コントローラ（以下、単にコントローラと称す）２３の内部構成を機能ブロック図で示すと共に、多軸構成，例えば３軸ロボットの各軸に適用することを想定し、図１に示す構成が３組ある場合の入力ＥＣ検出部１２（１〜３）と、モータ制御用コントローラ２３との接続状態を示すものである。符号に付した（１）〜（３）はロボットの第１軸〜第３軸に対応する。両者の間は、図示しない通信インターフェイスを介して接続されている。
【００２３】
コントローラ２３は、制御用ＣＰＵ４３を中心に、図示しないＲＯＭ，ＲＡＭやその他の周辺回路を備えるマイクロコンピュータで構成されている。入力ＥＣ値保持レジスタ４４（１〜３）は、入力ＥＣ検出部１２（１〜３）よりそれぞれ送信される２０ビットの入力ＥＣ値（１〜３）が通信インターフェイスを介して書き込まれるレジスタである。また、入出力ＥＣ値保持レジスタ４５（１〜３）は、入力ＥＣ検出部１２（１〜３）よりそれぞれ送信される２９ビットの入出力ＥＣ値が入出力ＥＣ値送信切替器４６を介して書き込まれるレジスタである。また、通信インターフェイスや上記入出力ＥＣ値送信切替器４６は、例えばＦＰＧＡ（Field Programmable Gate Array）等により構成されている。
【００２４】
尚、入力ＥＣ検出部１２（１〜３）に対するデータ転送要求は、コントローラ２３が出力する。図中の「制御用データ要求」は３軸分の入力ＥＣ値の転送要求であり、「補正用データ要求」は、１軸分の入出力ＥＣ値の転送要求である。制御用ＣＰＵ４３は例えば３２ビット構成であり、入力ＥＣ値保持レジスタ４４，入出力ＥＣ値保持レジスタ４５に格納された回転位置データを読み出して、後述するようにロボットの制御を行う。
【００２５】
次に、本実施例の作用について図２，図３，図５，図６を参照して説明する。図２は、図１に示す入力ＥＣ検出部１２と、出力ＥＣ検出部１９との間における回転位置データの転送処理を示すフローチャートである。制御ＣＰＵ４３が後述する制御を実行した結果、モータ１を駆動してロボットのアーム９を移動させる（Ｓ１）。そして、出力ＥＣ値監視部３４が、出力ＥＣ値保持レジスタ３２のＬＳＢが変化した（Ｐout（ｔ−１）→Ｐout（ｔ））ことを検出すると（Ｓ２：ＹＥＳ）、エッジパルス出力部３５がエッジパルスを出力して回転位置データＰout（ｔ）を出力ＥＣ値保持レジスタ３２にラッチさせる（Ｓ３）。
【００２６】
上記エッジパルスは入力ＥＣ検出部１２に送信され（Ｓ４）、エッジパルス入力部３９を介して入力ＥＣ値保持レジスタ３１に出力されて、回転位置データＰin（ｔ）をラッチさせる（Ｓ５）。また、出力ＥＣ検出部１９の保持データ出力部３７より回転位置データＰout（ｔ）がデータラッチ部３８に送信されて（Ｓ６）、回転位置データＰin（ｔ），Ｐout（ｔ）が入出力値保持レジスタ４１に格納される（Ｓ７）。すると、入力ＥＣ値保持レジスタ３１に格納された回転位置データＰin（ｔ）と、入出力値保持レジスタ４１に格納された、回転位置データＰin（ｔ），Ｐout（ｔ）とが、それぞれデータバス４０，４２を介してモータ制御用コントローラ２３に送信される（Ｓ８）。
【００２７】
図３は、上述した処理において、回転位置データＰin（ｔ），Ｐout（ｔ）が変化する状態を示すタイミングチャートである。出力エンコーダ１７において、回転位置データＰout（ｔ）が変化するとエッジパルスが発生し（（ａ），（ｂ）参照）、その時点の回転位置データＰout（ｎ）及び入力エンコーダ１０側の回転位置データＰin（ｎ）がラッチされる（（ｅ），（ｆ）参照）。また、図３（ｃ）は、出力エンコーダ１７より送信された回転位置データＰout（ｔ）を入力エンコーダ１０が受信した際の遅延を示している。これにより、ラッチされた回転位置データＰinＬ，ＰoutＬは、同じタイミングで検出されたデータとなる。
【００２８】
次に、図５は、モータ制御用コントローラ２３の制御用ＣＰＵ４３が３軸ロボットを制御する場合の処理内容を示すフローチャートである。尚、以下では、回転位置データＰin（ｎ）を「入力ＥＣ値」と、回転位置データＰout（ｔ）を「出力ＥＣ値」と称する。先ず、ロボットの手先の目標位置より各軸モータの動作パターンを決定すると（Ｓ１１）、制御用ＣＰＵ４３は、入力ＥＣ値保持レジスタ４４より３軸分の入力ＥＣ値（全軸入力ＥＣ値）を３回のリードサイクルを実行して読み出す（Ｓ１２）。
【００２９】
続いて、入出力ＥＣ値保持レジスタ４５（１）より第１軸の入出力ＥＣ値を読み出すと（Ｓ１３）、ステップＳ１２で取得した全軸入力ＥＣ値に基づいて各軸モータ１（１〜３）を駆動するための電流制御，速度制御を行う。ここでの電流制御，速度制御とは、モータ１をインバータ等の駆動回路により駆動する際に、速度指令と実際の速度との偏差に基づきＰＩ（比例積分）制御等を行うことである。
【００３０】
続くステップＳ１５〜Ｓ１７は、ステップＳ１２〜Ｓ１４と同様の処理パターンとなるが、ステップＳ１６では、ステップＳ１３での第１軸に替えて第２軸の入出力ＥＣ値を読み出す。また、続くステップＳ１８〜Ｓ２０についても同様であり、ステップＳ１９では、ステップＳ１６での第２軸に替えて第３軸の入出力ＥＣ値を読み出す。
【００３１】
次のステップＳ２１では、ステップＳ１３，Ｓ１６，Ｓ１９で取得した第１〜第３軸の入出力ＥＣ値を用いて、各軸について入力ＥＣ値と出力ＥＣ値との差（ズレ）を計算し、全ての軸の入力ＥＣ値に基づいてロボットの手先の位置制御を行う（Ｓ２２）。またこのとき、ステップＳ２１で計算したズレの値に応じて、上記の位置制御を補正する（Ｓ２３）。そして、ロボットの手先が目標位置に到達すれば（Ｓ２４：ＹＥＳ）動作を終了し、目標位置に到達しなければ（ＮＯ）ステップＳ１２に戻り、以上の処理を繰り返す。
【００３２】
ここで、図５に示す処理において、コントローラ２３が入力ＥＣ検出部１２よりデータを取得して、入力ＥＣ値保持レジスタ４４及び入出力ＥＣ値保持レジスタ４５に格納するまでの処理は上述した通信インターフェイスが一定の周期で実行している。そして、レジスタ４４，４５に各データが格納されると、例えば通信インターフェイスが割り込みを発生させることで、制御用ＣＰＵ４３がステップＳ１２以降の処理を開始し、入力ＥＣ値保持レジスタ４４にアクセスする。
以上のように処理が実行される結果、各軸の入力ＥＣ値及び入出力ＥＣ値は、図６に示すようにコントローラ２３に転送される。すなわち、全軸の入力ＥＣ値は送信周期毎に転送され、各軸の入出力ＥＣ値は、それぞれ異なる送信周期で順次転送される。
【００３３】
以上のように本実施例によれば、ロボットの関節軸に、モータ１の回転位置を検出する入力エンコーダ１０と、減速機８を介したアーム９の回転位置を検出する出力エンコーダ１７とを備え、コントローラ２３は、入力エンコーダ１０及び出力エンコーダ１７により検出される各回転位置データ（ＥＣ値）を取得してモータ１を制御する。そして、入力エンコーダ１０に、入力ＥＣ値をラッチする入力ＥＣ値保持レジスタ３１を配置し、出力エンコーダ１７に、出力ＥＣ値をラッチする出力ＥＣ値保持レジスタ３２と、出力ＥＣ値が変化する毎に、レジスタ３１及び３２にエッジパルスを出力するエッジパルス出力部３５とを備える。
【００３４】
すなわち、モータ１側の入力エンコーダ１０とアーム９側の出力エンコーダ１７とは、構造上ある程度の距離を置いて配置され、コントローラ２３がアーム９の回転位置を補正するためには、同じ時点の入力ＥＣ値と出力ＥＣ値とを取得する必要がある。アーム９は減速機８を介して駆動されるので、入力ＥＣ値に対して出力ＥＣ値の分解能は低い。したがって、エッジパルス出力部３５を出力エンコーダ１７に配置し、出力ＥＣ値が変化する毎にレジスタ３１及び３２にエッジパルスを出力すれば、距離が離れている入力エンコーダ１０においても、上記の変化と同じタイミングで入力ＥＣ値をラッチして保持することができる。
【００３５】
また、コントローラ２３は、複数の軸について入力エンコーダ１０（１〜３）及び出力エンコーダ１７（１〜３）により検出される各ＥＣ値を取得して各モータ１（１〜３）を制御する。当該制御を行うため、コントローラ２３は、一定周期毎に、全ての軸の入力ＥＣ値を取得すると共に、１つの軸の入力ＥＣ値及び出力ＥＣ値を順次切り替えて取得する。すなわち、各軸の入力ＥＣ値は、ロボットの手先の位置を制御するために必要であるから一定周期毎に全て取得する。そして、１つの軸において、入力ＥＣ値に対して減速機８を介して得られる出力ＥＣ値に誤差が発生しているとすれば、その誤差を補正する必要がある。そこで、補正を行うための入力ＥＣ値及び出力ＥＣ値は、一定周期毎に１つの軸だけ取得して順次切り替えることで、データの転送サイズを抑制しながら各軸の出力回転位置を補正できる。
【００３６】
また、回転位置を補正するためのデータは、同じ時点で取得されたデータを使用するのが好ましい。したがって、同じ周期において全ての軸の入力ＥＣ値を取得するとしても、補正に用いるデータについては、別途各軸について入力ＥＣ値及び出力ＥＣ値の組として取得することで、補正を高い精度で行うことができる。
【００３７】
そして、出力ＥＣ値を、出力エンコーダ１７から一旦入力エンコーダ１０に転送し、入力エンコーダ１０を介してコントローラ２３に転送するようにした。すなわち、各軸の入力ＥＣ値及び出力ＥＣ値については、両者を統合して同時にコントローラ２３に転送すると効率が良い。そして、上述したように出力ＥＣ値の分解能は低くデータサイズが小さいので、出力ＥＣ値を入力エンコーダ１０に転送してからコントローラ２３に転送すれば、出力エンコーダ１７と入力エンコーダ１０との間を接続する中継バス２１のバス幅が小さくなる。
【００３８】
この場合、入力エンコーダ１０に、入力ＥＣ値をコントローラ２３に転送するための入力値保持レジスタ３１と、入力ＥＣ値を、出力ＥＣ値と共に制御装置に転送するための入出力値保持レジスタ４１とを備える。したがって、一定周期毎に、全ての軸の一部としてコントローラ２３に転送される入力ＥＣ値と、複数周期に１回だけ、１つの軸の入力ＥＣ値及び出力ＥＣ値の組で転送されるデータとを効率的に転送できる。また、コントローラ２３は、各データを迅速に取得して処理できる。
【００３９】
（第２実施例）
図９ないし図１２は第２実施例であり、第１実施例と同一部分には同一符号を付して説明を省略し、以下異なる部分について説明する。第２実施例では、第１実施例の入力エンコーダ１０及び出力エンコーダ１７に相当する構成を、モータ回転軸の後端側に一体化して配置したものを示す。図９は、図７の上下を反転した状態（モータの後端側が上方）で示している。モータ５１は、モータ１と同様にインナーロータタイプの永久磁石型同期モータであり、ステータ５２と、ステータ５２の内周側に配置された軸受５３により回転自在に支持されている回転軸（ロータ）５４とを備えている。そして、モータ５１の後端側には、エンコーダ収容部５５が配置されている。
【００４０】
エンコーダ収容部５５は、ステータ５２の後端に取り付けられた円環状の側壁５６と、側壁５６の途中部位に挿入されるように固定されている円板状の支持部材５７（固定部）とを備えている。支持部材５７は、その中心部に貫通穴５７ａが形成されており、所謂ドーナツ状となっている。回転軸５４（入力軸）の後端部は、支持部材５７の貫通穴５７ａに挿通されており、その後端にはエンコーダを構成する回転盤（回転板）５８が固定されている。支持部材５７の上面側には、回転盤５８と対向するように入力ＥＣ検出部１２が配置されている。すなわち、回転盤５８と入力ＥＣ検出部１２とが、第１実施例の入力エンコーダ１０に対応する入力エンコーダ部５９を構成している。
【００４１】
回転軸５４は中空の部材で構成されており、その先端は、減速機６０を構成する入力部６０Ｉの中空部内周側に固定されている、そして、減速機６０の出力部６０Ｏにはアーム９が連結されている。また、回転軸５４の中空部分には、後端がアーム９に固定されている出力軸６１が挿通されている。回転軸５４の内周側には軸受６２が配置されており、出力軸６１は回転自在に支持されている。
【００４２】
回転盤５８には、回転軸５４の中空部と同径の挿通穴５８ａが形成されており、出力軸６１の先端は、挿通穴５８ａを経由してエンコーダ収容部５５内部の空間に突出している。そして、その先端には、回転軸５４の中空部よりも径大である回転盤６３が固定されている。回転盤６３の下面側には、回転盤５８と対向するように出力ＥＣ検出部１９が配置されている。すなわち、回転盤５８と出力ＥＣ検出部１９とが、第１実施例の出力エンコーダ１７に対応する出力エンコーダ部６４を構成している。
【００４３】
第２実施例では、回転位置を検出するため、回転盤５８の下面側と上面側との双方から投光が行われる。したがって、回転盤５８には、第１及び第２の２つの面（例えば両面や、上面と側面など）に位置検出用のパターン（例えばスリット）が形成されている。図１０は、回転盤５８の断面構造（一部分）を示している。回転盤５８は５層構造となっており、遮光板５８ａの上下にガラス板５８ｂ，５８ｃが配置され、ガラス板５８ｂ，５８ｃの上下にスリット膜５８ｄ，５８ｅが配置されている。そして、スリットは、スリット膜５８ｄ，５８ｅの双方に形成されている。
【００４４】
尚、図示はしないが、回転盤６３に配置されている出力ＥＣ検出部１９に対する電源の供給，及び入力ＥＣ検出部１２とのエッジパルス及び回転位置データの転送は有線接続で行われる。アーム９は、多回転するとしても高々３回転程度であるため、その分だけ接続配線長に余裕を持たせれば良い。そして、エンコーダ収容部５５の上部には、開口部を覆うカバー６５が取り付けられている。
【００４５】
次に、第２実施例の作用について図１１及び図１２を参照して説明する。図１１は、減速機６０及びアーム９を削除して示している。モータ５１を駆動してアーム９を回転させると、回転盤５８は、回転軸５４の回転に伴い回転するので、入力エンコーダ部５９は、第１実施例の入力エンコーダ１０と全く同様にモータの回転位置を検出できる。一方、回転盤６３は、アーム９−出力軸６１の回転に伴って回転する。ここで、回転盤５８の回転角度をθrot1，回転盤６３が回転盤５８と同じ方向に回転するとして、その回転角度をθrot2とすると、入力ＥＣ部１２で検出される角度θ１はθrot1に等しい。そして、出力ＥＣ検出部１９において検出される角度θ２は、
θ２＝θrot1−θrot2
となる。
したがって、モータ５１の回転角度θinは、
θin＝θ１＝θrot1
であり、アーム９の回転角度θoutは、
θout＝θ１−θ２＝θrot1−（θrot1−θrot2）＝θrot2
として求めることができる。
【００４６】
具体的には、例えば制御用ＣＰＵ４３がステップＳ１３，Ｓ１６，Ｓ１９で入出力ＥＣ値を読み込んだ際に、図１２に示す処理を行って回転角度θoutを計算する。先ず、入力ＥＣ値Ｐin（ｔ）より、回転角度θ１を次式により計算する（Ｓ３１）。但し、ａは減速機８の減速比である。
θ１＝３６０×Ｐin（ｔ）／（２２０×ａ）  ［ｄｅｇ］
次に、出力ＥＣ値Ｐout（ｔ）より、回転角度θ２を次式により計算する（Ｓ３２）。
θ２＝３６０×Ｐout（ｔ）／２9  ［ｄｅｇ］
そして、回転角度θ１より回転角度θ２を減じることで回転角度θoutを求める（Ｓ３３）。尚、以上の処理をハードロジックで行っても良い。
【００４７】
以上のように第２実施例によれば、モータ５１の回転軸５４を中空状に形成し、出力軸６１を、その後端をアーム９に直結し、回転軸５４の中空部に挿通して、先端を回転軸５４の後端側に導出する。そして、モータ５１の回転位置と、減速機６０を介したアーム９の回転位置とを、それぞれ光学式の入力エンコーダ部５９，出力エンコーダ部６４で検出するため、これらが使用する回転盤５８を共通化して回転軸５４の後端側に固定する。そして、出力エンコーダ部６４の検出部１９を出力軸６１の先端側に取り付け、入力エンコーダ部５９の検出部１０を、上記検出部１９に対して、回転盤５８を挟んで逆側に位置する支持部材５７に取り付けるようにした。尚、例えば入力エンコーダ部５９の検出部１０については、固定部としての側壁５６に取り付けるようにしてもよい。
【００４８】
このように構成すれば、モータ５１の回転位置は、入力エンコーダ部５９の検出部１０の検出結果に基づいて通常通り取得できる。一方、アーム９の回転位置については、２つの検出部１０，１９からのデータを読み込んで処理するコントローラ２３において、入力エンコーダ部５９より検出された回転位置と出力エンコーダ部６４より検出された回転位置との差によって得ることができる。すなわち、入力，出力エンコーダ部５９，６４は、同じ回転盤５８の回転に基づいて回転位置を検出するので、軸心のズレに伴う検出誤差が発生し難くなる。そして、これらのエンコーダ部５９，６４がモータ５１の後端側に一括して配置されるので配置スペースを極力削減でき、２つのエンコーダを用いるエンコーダシステム，及びそのエンコーダシステムと負荷とを組み合わせた構成を小型にすることができる。
つまり、第２実施例のように、中空状に形成された回転軸５４を用いることによってエンコーダ部５９，６４をモータ５１の後端側に一括して配置可能となり、出力エンコーダ部６４を減速機６０とアーム９との間に配置する必要が無くなる。
【００４９】
そして、入力側エンコーダ５９の検出部１０を、出力側エンコーダ６４の検出部１９に対して、回転盤５８を挟んで逆側に位置する固定部に取り付けるので、２つの光学式エンコーダ５９，６４のそれぞれが回転位置を検出するために出力した光信号が、互いの検出部１９，１０によって受光される可能性が無くなり、誤検出を防止することができる。また、回転盤５８板の一方の面に出力側エンコーダ５９用のスリットを設け、他方の面に入力側エンコーダ６４用のスリットを設けたので、それぞれの検出部１０，１９が、回転位置検出を行うための反射光を、互いに干渉しない状態で受光することが可能となる。
【００５０】
（第３実施例）
図１３は第３実施例であり、第１実施例と異なる部分のみ説明する。第３実施例は、入力ＥＣ検出部１２’（１〜３）及び出力ＥＣ検出部１９（１〜３）とコントローラ２３との間に、データ転送処理部７１を配置した構成を示している。データ転送処理部７１は、入力ＥＣ検出部１２が備えていた入出力ＥＣ値保持レジスタと、通信インターフェイスの機能を備えたものである。したがって、出力ＥＣ検出部１９は、９ビットの出力ＥＣ値をデータ転送処理部７１に直接する。
そして、データ転送処理部７１は、コントローラ２３側の通信インターフェイス４３Ｒ及び４４からの要求に応じて、２０ビットの入力ＥＣ値及び２９ビットの入出力ＥＣ値をコントローラ２３側に出力する。以上のように構成される第３実施例による場合も、第１実施例と同様の効果が得られる。
【００５１】
本発明は上記した、または図面に記載した実施例にのみ限定されるものではなく、以下のような変形又は拡張が可能である。
入力エンコーダ及び出力エンコーダのビット数は、個別の設計に応じて適宜変更すれば良い。
図４に示す３軸分の入力ＥＣ検出部１２とコントローラ２３との間で行うデータ転送方式についても適宜変更して良い。例えば、両者の間を２本の３２ビットバスで接続し、３軸分の入力ＥＣ値（２０ビット）と、３軸分の入出力ＥＣ値（２９ビット）とを選択して、１回の通信で１軸分のデータだけをコントローラ２３側に転送するような通信インターフェイスを用いても良い。
【００５２】
また、バスサイズは３２ビットに限らず、それぞれ必要最小限のサイズとして２０ビット，２９ビットとしても良い。或いは、入力ＥＣ値と入出力ＥＣ値とを共通の３２ビット（若しくは２９ビット）バスで転送しても良い。
第２実施例において、減速機６０の構成によっては、回転軸５４と出力軸６１とが互いに逆方向に回転しても良い。
４軸以上のロボットに適用しても良い。また、多軸構成のロボットに限ることなく、単一軸のモータ制御に適用しても良い。
【符号の説明】
【００５３】
１はモータ、８は減速機、９はアーム（負荷）、１０は入力エンコーダ、１２は入力ＥＣ検出部、１７は出力エンコーダ、１９は出力ＥＣ検出部、２１は中継バス（データバス）、２３はモータ制御用コントローラ（制御装置）、３１は入力ＥＣ値保持レジスタ（入力データラッチ）、３２は出力ＥＣ値保持レジスタ（出力データラッチ）、３５はエッジパルス出力部（ラッチ信号出力部）、４１は入出力値保持レジスタ（入出力データラッチ）、５１はモータ、５４は回転軸（入力軸）、５７は支持部材（固定部）、５８は回転盤、５９は入力エンコーダ部、６０は減速機、６１は出力軸、６４は出力エンコーダ部を示す。
【図１】
0005943676.tif 000002
【図２】
0005943676.tif 000003
【図３】
0005943676.tif 000004
【図４】
0005943676.tif 000005
【図５】
0005943676.tif 000006
【図６】
0005943676.tif 000007
【図７】
0005943676.tif 000008
【図８】
0005943676.tif 000009
【図９】
0005943676.tif 000010
【図１０】
0005943676.tif 000011
【図１１】
0005943676.tif 000012
【図１２】
0005943676.tif 000013
【図１３】
0005943676.tif 000014