(57)【特許請求の範囲】
【請求項１】
モータの回転軸の１回転内の回転位置を検出する回転位置センサと、
少なくともデータの送信周期よりも長い周期で第１付加情報を生成する第１付加情報生成部と、
少なくとも前記第１付加情報が送信されることを識別可能な識別情報を生成する識別情報生成部と、
少なくとも前記１回転内の回転位置を含む送信データを前記送信周期で送信する送信部と、
を有し、
前記送信部は、前記識別情報及び前記第１付加情報を含む第１送信データを含む送信データを送信する、
エンコーダ。
【請求項２】
前記モータの回転軸の回転数を検出する回転数検出部を更に有し、
前記第１付加情報には、前記回転数が含まれる、
請求項１に記載のエンコーダ。
【請求項３】
前記第１付加情報生成部は、前記第１付加情報に含まれる情報に対し、誤り検出符号を付加する第１の誤り検出符号付加部を有する、
請求項１又は２に記載のエンコーダ。
【請求項４】
前記誤り検出符号は、ＣＲＣ値である、
請求項３に記載のエンコーダ。
【請求項５】
前記第１送信データに含まれる前記回転位置は、前記回転数検出部により前記回転数が検出されたタイミングで取得された回転位置である、
請求項４に記載のエンコーダ。
【請求項６】
前記第１送信データの送信毎に異なる値となるテストカウンタを生成するテストカウンタ生成部を更に有し、
前記第１送信データには、前記テストカウンタが含まれる、
請求項１〜５の何れかに記載のエンコーダ。
【請求項７】
データの送信周期より短い周期で、前記エンコーダの状態に関する情報を含む第２付加情報を生成する第２付加情報生成部を更に有し、
前記送信データには、前記第２付加情報を含む第２送信データが含まれ、
前記送信部には、少なくとも、前記第１送信データ及び前記第２送信データの何れを送信するか選択する送信データ選択部が含まれる、
請求項１〜６の何れかに記載のエンコーダ。
【請求項８】
前記送信データ選択部は、前記第１付加情報生成部により、前記第１付加情報が生成されたことに基づいて、前記第１送信データを選択する、
請求項７に記載のエンコーダ。
【請求項９】
前記送信部は、前記送信データに含まれる情報に対し、誤り検出符号を付加する第２誤り検出符号付加部を有する、
請求項１〜８の何れかに記載のエンコーダ。
【請求項１０】
前記誤り検出符号は、ＣＲＣ値である、
請求項９に記載のエンコーダ。
【請求項１１】
モータの回転軸の１回転内の回転位置を検出する回転位置センサと、
少なくともデータの送信周期よりも長い周期で第１付加情報を生成する第１付加情報生成部と、
少なくとも前記第１付加情報が送信されることを識別可能な識別情報を生成する識別情報生成部と、
少なくとも前記１回転内の回転位置を含む送信データを前記送信周期で送信する送信部と、
を有し、
前記送信部は、前記識別情報及び前記第１付加情報を含む第１送信データを含む送信データを送信する、
エンコーダと、
前記送信データを前記エンコーダから受信する受信部と、前記識別情報に基づいて、前記第１付加情報が含まれる場合に前記第１付加情報を用いた情報処理を行う第１付加情報処理部と、を有するコントローラと、
を有するモータ制御システム。
【請求項１２】
モータの回転軸の１回転内の回転位置を含む送信データであって、少なくとも当該送信
データに第１付加情報が含まれることを識別可能な識別情報と、前記第１付加情報を含む
第１送信データを含む送信データを前記モータのエンコーダから受信する受信部と、
前記識別情報に基づいて、前記第１付加情報が含まれる場合に前記第１付加情報を用い
た情報処理を行う第１付加情報処理部と、
を有し、
前記第１付加情報処理部は、
前記回転位置により前記回転軸の回転数を取得する第１回転数取得部と、
前記第１付加情報に含まれる回転数を取得する第２回転数取得部と、
前記第１回転数取得部により取得された前記回転数と、前記第２回転数取得部により取得された前記回転数と、を比較する比較部と、
を含むコントローラ。
【請求項１３】
モータに対する制御出力を決定するモータ制御部と、
前記モータ制御部が使用する回転位置を複数の前記送信データの中から選択する回転位置選択部と、
を有し、
前記回転位置選択部は、前記第１送信データでない前記送信データより、前記回転位置を選択する、
請求項１２に記載のコントローラ。
【請求項１４】
前記第１回転数取得部は、過去に受信した前記第１送信データに含まれる前記回転位置より前記回転数を取得する、
請求項１２又は１３に記載のコントローラ。
【請求項１５】
モータの回転軸の１回転内の回転位置を検出する回転位置センサと、
少なくともデータの送信周期よりも長い周期で第１付加情報を生成する第１付加情報生成部と、
少なくとも前記第１付加情報が送信されることを識別可能な識別情報を生成する識別情報生成部と、
少なくとも前記１回転内の回転位置を含む送信データを前記送信周期で送信する送信部と、
を有し、
前記送信部は、前記識別情報及び前記第１付加情報を含む第１送信データを含む送信データを送信する、
エンコーダと、
前記送信データを前記エンコーダから受信する受信部と、前記識別情報に基づいて、前記第１付加情報が含まれる場合に前記第１付加情報を用いた情報処理を行う第１付加情報処理部と、を有するコントローラと、
ロボットと、
を有するロボット制御システム。
【請求項１６】
モータの回転軸の１回転内の回転位置を検出する回転位置センサと、
少なくともデータの送信周期よりも長い周期で第１付加情報を生成する第１付加情報生成部と、
少なくとも前記第１付加情報が送信されることを識別可能な識別情報を生成する識別情報生成部と、
少なくとも前記１回転内の回転位置を含む送信データを前記送信周期で送信する送信部と、
を有し、
前記送信部は、前記識別情報及び前記第１付加情報を含む第１送信データを含む送信データを送信する、
エンコーダを有するロボット。
【請求項１７】
モータの回転軸の１回転内の回転位置を検出し、
少なくともデータの送信周期よりも長い周期で第１付加情報を生成し、
少なくとも前記第１付加情報が送信されることを識別可能な識別情報を生成し、
少なくとも前記１回転内の回転位置を含む送信データを送信する、
データ送信方法であって、
前記送信データには、前記識別情報及び前記第１付加情報を含む第１送信データが含まれるデータ送信方法。
【請求項１８】
モータの回転軸の１回転内の回転位置を検出し、
少なくともデータの送信周期よりも長い周期で第１付加情報を生成し、
少なくとも前記第１付加情報が送信されることを識別可能な識別情報を生成し、
少なくとも前記１回転内の回転位置を含む送信データを送信する、
データ送信方法であって、
前記送信データには、前記識別情報及び前記第１付加情報を含む第１送信データが含まれるデータ送信方法を有し、
前記送信データを前記モータのエンコーダから受信し、前記識別情報に基づいて、前記第１付加情報が含まれる場合に前記第１付加情報を用いた情報処理を行う、
情報処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、エンコーダ、コントローラ、モータ制御システム、ロボット制御システム、ロボット、データ送信方法、及び情報処理方法に関する。
【背景技術】
【０００２】
特許文献１には、複数のエンコーダの各々で得られた情報をまとめた一括データを送信するシステムにおいて、位置情報は重要度が高いので、送信周期ごとに全軸分を一括データに含めて送信し、時間情報や温度情報は重要度が低いので、送信周期ごとに一部の軸のものだけを一括データに含めて輪番送信する技術が記載されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００２−０４４７５８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
本発明が解決しようとする課題は、生成するのに複数の送信周期を要するような情報であっても、１回転内の回転位置に付加して送信可能にすることである。
【課題を解決するための手段】
【０００５】
本発明の一側面に係るエンコーダは、モータの回転軸の１回転内の回転位置を検出する回転位置センサと、少なくともデータの送信周期よりも長い周期で第１付加情報を生成する第１付加情報生成部と、少なくとも前記第１付加情報が送信されることを識別可能な識別情報を生成する識別情報生成部と、少なくとも前記１回転内の回転位置を含む送信データを前記送信周期で送信する送信部と、を有し、前記送信部は、前記識別情報及び前記第１付加情報を含む第１送信データを含む送信データを送信する。
【０００６】
また、本発明の一側面に係るエンコーダは、前記モータの回転軸の回転数を検出する回転数検出部を更に有し、前記第１付加情報には、前記回転数が含まれるようにしてよい。
【０００７】
また、本発明の一側面に係るエンコーダは、前記第１付加情報生成部は、前記第１付加情報に含まれる情報に対し、誤り検出符号を付加する第１の誤り検出符号付加部を有するようにしてよい。
【０００８】
また、本発明の一側面に係るエンコーダは、前記誤り検出符号は、ＣＲＣ値であるようにしてよい。
【０００９】
また、本発明の一側面に係るエンコーダは、前記第１送信データに含まれる前記回転位置は、前記回転数検出部により前記回転数が検出されたタイミングで取得された回転位置であるようにしてよい。
【００１０】
また、本発明の一側面に係るエンコーダは、前記第１送信データの送信毎に異なる値となるテストカウンタを生成するテストカウンタ生成部を更に有し、前記第１送信データには、前記テストカウンタが含まれるようにしてよい。
【００１１】
また、本発明の一側面に係るエンコーダは、データの送信周期より短い周期で、前記エンコーダの状態に関する情報を含む第２付加情報を生成する第２付加情報生成部を更に有し、前記送信データには、前記第２付加情報を含む第２送信データが含まれ、前記送信部には、少なくとも、前記第１送信データ及び前記第２送信データの何れを送信するか選択する送信データ選択部が含まれるようにしてよい。
【００１２】
また、本発明の一側面に係るエンコーダは、前記送信データ選択部は、前記第１付加情報生成部により、前記第１付加情報が生成されたことに基づいて、前記第１送信データを選択するようにしてよい。
【００１３】
また、本発明の一側面に係るエンコーダは、前記送信部は、前記送信データに含まれる情報に対し、誤り検出符号を付加する第２誤り検出符号付加部を有するようにしてよい。
【００１４】
また、本発明の一側面に係るエンコーダは、前記誤り検出符号は、ＣＲＣ値であるようにしてよい。
【００１５】
また、本発明の一側面に係るコントローラは、モータの回転軸の１回転内の回転位置を含む送信データであって、少なくとも当該送信データに第１付加情報が含まれることを識別可能な識別情報と、前記第１付加情報を含む第１送信データを含む送信データを前記モータのエンコーダから受信する受信部と、前記識別情報に基づいて、前記第１付加情報が含まれる場合に前記第１付加情報を用いた情報処理を行う第１付加情報処理部と、を有する。
【００１６】
また、本発明の一側面に係るコントローラは、前記第１付加情報処理部は、前記回転位置により前記回転軸の回転数を取得する第１回転数取得部と、前記第１付加情報に含まれる回転数を取得する第２回転数取得部と、前記第１回転数取得部により取得された前記回転数と、前記第２回転数取得部により取得された前記回転数と、を比較する比較部と、を含むようにしてよい。
【００１７】
また、本発明の一側面に係るコントローラは、モータに対する制御出力を決定するモータ制御部と、前記モータ制御部が使用する回転位置を複数の前記送信データの中から選択する回転位置選択部と、を有し、前記回転位置選択部は、前記第１送信データでない前記送信データより、前記回転位置を選択するようにしてよい。
【００１８】
また、本発明の一側面に係るコントローラは、前記第１回転数取得部は、過去に受信した前記第１送信データに含まれる前記回転位置より前記回転数を取得するようにしてよい。
【００１９】
また、本発明の一側面に係るモータ制御システムは、上記の何れかに記載のエンコーダと、上記の何れかに記載のコントローラと、を有する。
【００２０】
また、本発明の一側面に係るロボット制御システムは、上記に記載のモータ制御システムと、ロボットと、を有する。
【００２１】
また、本発明の一側面に係るロボットは、上記の何れかに記載のエンコーダを有する。
【００２２】
また、本発明の一側面に係るデータ送信方法は、モータの回転軸の１回転内の回転位置を検出し、少なくともデータの送信周期よりも長い周期で第１付加情報を生成し、少なくとも前記第１付加情報が送信されることを識別可能な識別情報を生成し、少なくとも前記１回転内の回転位置を含む送信データを送信する、データ送信方法であって、前記送信データには、前記識別情報及び前記第１付加情報を含む第１送信データが含まれる。
【００２３】
また、本発明の一側面に係る情報処理方法は、モータの回転軸の１回転内の回転位置を含む送信データであって、少なくとも当該送信データに第１付加情報が含まれることを識別可能な識別情報と、前記第１付加情報を含む第１送信データを含む送信データを前記モータのエンコーダから受信し、前記識別情報に基づいて、前記第１付加情報が含まれる場合に前記第１付加情報を用いた情報処理を行う。
【発明の効果】
【００２４】
上記発明によれば、生成するのに複数の送信周期を要するような情報であっても、１回転内の回転位置に付加して送信可能になる。
【図面の簡単な説明】
【００２５】
【図１】実施形態に係るモータ制御システムの物理構成を示すブロック図である。
【図２】送信データのデータ格納例を示す図である。
【図３】モータ制御システムの機能ブロック図である。
【図４】モータ制御システムで実行される処理の流れを示す図である。
【図５】モータ制御システムで実行される処理の流れを示す図である。
【図６】ロボットシステムの一例を示す図である。
【発明を実施するための形態】
【００２６】
［１．実施形態］
本発明の発明者の見地によれば、エンコーダが生成するのに時間を要する情報をコントローラに送信しようとする場合、送信周期内にこの情報の計算が完了しなければ、エンコーダはコントローラに対して何も情報を送信することができない。そこで本発明の発明者は、生成するのに複数の送信周期を要するような情報であっても、１回転内の回転位置に付加して送信可能にするために鋭意研究開発を行った結果、新規かつ独創的なモータ制御システム等に想到した。実施形態では、このモータ制御システム等を詳細に説明する。
【００２７】
［２．モータ制御システムの物理構成］
図１は、実施形態に係るモータ制御システムの物理構成を示すブロック図である。図１に示すように、モータ制御システム１は、コントローラ１０、モータ制御装置２０、モータ３０、及びエンコーダ４０を含み、各機器は伝送路により接続されている。
【００２８】
コントローラ１０は、モータ制御システム１全体の動作を制御するコンピュータである。例えば、コントローラ１０は、所定のタイミングでモータ制御装置２０やエンコーダ４０にコマンドを送信したり、モータ制御装置２０やエンコーダ４０からデータを受信したりする。
【００２９】
コントローラ１０は、第１プロセッサ１１Ａ、第２プロセッサ１１Ｂ、第１通信制御部１２Ａ、第２通信制御部１２Ｂ、及びメモリ１３を含む。即ち、本実施形態では、コントローラ１０は、プロセッサと通信制御部の組み合わせが２系統存在している。
【００３０】
第１プロセッサ１１Ａ及び第２プロセッサ１１Ｂの各々は、ＣＰＵや、マイクロコントローラ等の任意の汎用の集積回路であってよい。第１プロセッサ１１Ａ及び第２プロセッサ１１Ｂは、図示しない作業用ＲＡＭ（Random Access Memory）を有するようにしてよい。
【００３１】
第１通信制御部１２Ａ及び第２通信制御部１２Ｂの各々は、一般的な通信用集積回路である。例えば、第１通信制御部１２Ａ及び第２通信制御部１２Ｂの各々は、ＡＳＩＣ（Application Specific Integrated Circuit）等の専用の集積回路により構成されてよい。第１通信制御部１２Ａ及び第２通信制御部１２Ｂの各々は、外部機器と通信するための通信インタフェースである接続ポートを含む。
【００３２】
メモリ１３は、一般的な情報記憶媒体である。メモリ１３は、不揮発性メモリであり、例えば、ＲＯＭ（Read Only Memory）、ＥＥＰＲＯＭ（Electrically Erasable Programmable Read Only Memory）、フラッシュメモリ、及びハードディスク等である。メモリ１３は、プログラムや各種データを記憶する。
【００３３】
モータ制御装置２０は、モータ３０へ電流・電圧等を出力するアンプを制御するコンピュータである。一般的に、サーボモータを制御するモータ制御装置２０は、サーボコントローラ又はサーボアンプなどと呼ばれるが、本実施形態でいうモータ３０にはサーボモータが含まれるため、モータ制御装置２０にはサーボコントローラが含まれる。なお、モータ制御装置２０は、コントローラ１０と同様のプロセッサ、通信制御部、及びメモリを含んでいてよい。
【００３４】
エンコーダ４０は、モータ３０の位置を検出するセンサである。エンコーダ４０は、インクリメンタル型であってもよいし、アブソリュート型であってもよい。エンコーダ４０は、コントローラ１０から受信したコマンドを実行したり、コマンドの実行結果をコントローラ１０に送信したりする。
【００３５】
エンコーダ４０は、プロセッサ４１、通信制御部４２、メモリ４３、光学式ディスク４４Ａ、光学センサ４５Ａ、磁気式ディスク４４Ｂ、及び磁気センサ４５Ｂを含む。エンコーダ４０のプロセッサ４１、通信制御部４２、及びメモリ４３の各々の物理的構成は、コントローラ１０の第１プロセッサ１１Ａ（又は第２プロセッサ１１Ｂ）、第１通信制御部１２Ａ（又は第２通信制御部１２Ｂ）、及びメモリ１３と同様であってよい。
【００３６】
なお、図１に示すように、エンコーダ４０は、コントローラ１０とは異なり、プロセッサ及び通信制御部の組み合わせが２系統ではなく、１系統のみである。ただし、モータ３０の位置を検出するためのディスク及びセンサの組み合わせが２系統存在している。別の言い方をすれば、エンコーダ４０では、プロセッサ及び通信制御部は、物理的に１つずつのみであるが、ディスク及びセンサは、物理的に２つずつ存在している。また、エンコーダ４０のプロセッサ４１、通信制御部４２、及びメモリ４３は、それぞれコントローラ１０の第１プロセッサ１１Ａ（又は第２プロセッサ１１Ｂ）、第１通信制御部１２Ａ（又は第２通信制御部１２Ｂ）、及びメモリ１３よりも性能（例えば、クロック数）が低くてよい。
【００３７】
光学式ディスク４４Ａは、モータ３０の回転軸に取り付けられた第１のディスクである。光学式ディスク４４Ａは、例えば、ガラス製又は金属製の円盤であり、コードホイールとも呼ばれるものである。光学式ディスク４４Ａは、複数のスリットを有する。各スリットは、一定角度毎に設けられており、例えば、後述する光学センサ４５Ａの発光素子の光を透過させる。スリットの数は、光学センサ４５Ａによる１回転内の回転位置（角度）の分解能に応じて定めればよい。
【００３８】
光学センサ４５Ａは、光学式ディスク４４Ａの１回転内の回転位置を検出する第１のセンサである。別の言い方をすれば、光学センサ４５Ａは、モータ３０の回転軸の１回転内の回転位置を検出する回転位置センサである。光学センサ４５Ａは、光の強弱により１回転内の回転位置を検出する。光学センサ４５Ａは、発光素子及び受光素子を含む。例えば、発光素子は、発光ダイオードであり、受光素子は、フォトダイオードである。なお、光学センサ４５Ａは、発光素子と受光素子との間にある光学式ディスク４４Ａのスリットが光を透過／遮断する透過型であってもよいし、スリットに対して発光素子と受光素子が同じ側にありスリットが光を反射／非反射する反射型であってもよい。光学センサ４５は、１回転内の回転位置を示す信号を発生させてプロセッサ４１に入力する。
【００３９】
磁気式ディスク４４Ｂは、モータ３０の回転軸に取り付けられた第２のディスクである。光学式ディスク４４Ａと磁気式ディスク４４Ｂは、同じ回転軸に取り付けられていることになる。磁気式ディスク４４Ｂは、光学式ディスク４４Ａと同様、ガラス製又は金属製の円盤であってよく、コードホイールとも呼ばれるものである。磁気式ディスク４４Ｂは、少なくとも１つの磁石又はコイルを有する。なお、磁気式ディスク４４Ｂが強磁性体製である場合には、磁気式ディスク４４Ｂ自体が着磁したものであってよい。
【００４０】
磁気センサ４５Ｂは、磁気式ディスク４４Ｂが１回転したことを検出する第２のセンサである。磁気センサ４５Ｂは、磁気の変化によりモータ３０が１回転したことを検出するエンコーダである。磁気センサ４５Ｂは、磁界検出素子やコイルを含み、磁石を利用して磁気の変化を検出する磁石型であってもよいし、コイルを利用して磁気の変化を検出するコイル型であってもよい。例えば、磁界検出素子は、ホール素子や磁気抵抗素子である。磁気式ディスク４４Ｂの回転により磁界が周期的に変化するので、磁気センサ４５Ｂは、この周期的な磁界の変化に基づいて１回転したことを検出することになる。磁気センサ４５Ｂは、１回転したことを検出すると所定の信号を発生させて通信制御部４２に入力する。
【００４１】
なお、本実施形態では、エンコーダ４０を小型化及び軽量化をするために、付属回路が複雑で大型化するレゾルバではなく光学センサ４５Ａや磁気センサ４５Ｂとしているが、光学センサ４５Ａや磁気センサ４５Ｂはレゾルバで代用してもよい。また、コントローラ１０やエンコーダ４０の物理的構成は、上記の例に限られない。コントローラ１０やエンコーダ４０は、他の要素を含んでいてもよい。例えば、コントローラ１０は、メモリ１３が２系統存在するようにしてもよいし、エンコーダ４０は、温度センサを有しているようにしてもよい。他にも例えば、コントローラ１０やエンコーダ４０は、プログラムやデータを記憶するコンピュータ読み取り可能な情報記憶媒体を読み取る読取部（例えば、メモリカードスロット）を含んでいてもよい。
【００４２】
エンコーダ４０は、所与の送信周期毎に、コントローラ１０から位置取得コマンドを受信する。送信周期は、繰り返し訪れる所定間隔の期間である。送信周期は、コントローラ１０のメモリ１３やエンコーダ４０のメモリ４３にパラメータとして定められているようにしてよい。コントローラ１０とエンコーダ４０との間では、１送信周期内に、位置取得コマンドの送受信と、エンコーダ４０が生成する送信データの送受信と、が行われる。
【００４３】
エンコーダ４０が生成する送信データは、コントローラ１０がエンコーダ４０の動作を確認するための第１送信データと、コントローラ１０がモータ３０の位置決め制御をするための第２送信データと、の２種類がある。以降、第１送信データを安全データと記載し、第２送信データを通常データと記載するが、単に送信データと記載した場合は、第１送信データ及び第２送信データの両方を含む概念とする。
【００４４】
図２は、送信データのデータ格納例を示す図である。エンコーダ４０は、送信周期毎に、図２に示す通常データ又は安全データの何れかの送信データをコントローラ１０に送信する。送信データは、所定のフォーマットが定められており、ここでは、６バイト長のデータである。通常データ及び安全データの各々に格納されるデータ項目は、一部が共通しているようにしてよい。例えば、図２に示すように、通常データも安全データも１回転内の回転位置を含むので、エンコーダ４０は、送信周期内に、少なくとも、１回転内の回転位置を含む送信データを生成してコントローラ１０に送信することになる。
【００４５】
通常データの最初の１バイト目には、アラームの種類を示すアラームコードが格納される。通常データの２〜４バイト目は、１回転内の回転位置が格納される。通常データの５バイト目には、エンコーダ４０の温度情報が格納される。即ち、通常データでは、温度情報及びアラームコードが１回転内の回転位置に付加されているといえる。以降、温度情報及びアラームコードをまとめて単に第２付加情報という。通常データの６バイト目には、エンコーダ４０を一意に識別するアドレス、送信データの種類を識別する識別情報、及びアラームの有無が格納され、残りは予備の領域としている。識別情報は、通常データ又は安全データの何れであるかを示す情報であり、例えば、「０１」の場合は通常データであり、「１０」の場合は安全データである。
【００４６】
安全データの１バイト目には、回転数とテストカウンタ（詳細後述）が格納される。回転数は、１回転を単位とする回転回数を示す値である。即ち、ここでの回転数とは、いわゆる多回転量と呼ばれるものであり、回転速度を意味するわけではない。安全データの最初の２〜４バイト目及び６バイト目は、通常データと同様である。安全データの５バイト目には、ＣＲＣ（Cyclic Redundancy Check）値が格納される。詳細は後述するが、このＣＲＣ値は、１バイト目に格納される回転数及びテストカウンタの誤りを検出するためのものである。安全データでは、ＣＲＣ値、回転数、及びテストカウンタが１回転内の回転位置に付加されているといえる。以降、ＣＲＣ値、回転数、及びテストカウンタをまとめて単に第１付加情報という。
【００４７】
モータ制御システム１では、コントローラ１０が、安全データに含まれる１回転内の回転位置から回転数を計算し、安全データ内の回転数と比較することでデータの正当性をチェックするための第１の機能が実現される。即ち、エンコーダ４０のプロセッサ４１及び通信制御部４２の組み合わせが１系統であっても、ディスクとセンサの組み合わせが２系統あるので、２重化相当のデータ信頼性を確保することができるようになっている。
【００４８】
更に、モータ制御における送信周期は一般的に短く、第１付加情報は計算するのに時間を要するため、第１付加情報の計算が送信周期内に終わらないが、モータ制御システム１では、第１付加情報の計算が終わるまでは通常データを送信して、計算が終わったら安全データを送信するための第２の機能が実現される。即ち、１送信周期よりも長い期間で生成する第１付加情報を、コントローラ１０に送信できるようになっている。以降、モータ制御システム１が実現する第１の機能及び第２の機能の詳細を説明する。
【００４９】
［３．モータ制御システムで実現される機能］
図３は、モータ制御システム１の機能ブロック図である。ここでは、モータ制御システム１で実現される機能のうち、コントローラ１０及びエンコーダ４０の機能について説明する。なお、以降では、コントローラ１０の第１プロセッサ１１Ａ及び第１通信制御部１２Ａを主として用い、第２プロセッサ１１Ｂ及び第２通信制御部１２Ｂは補助的に用いる場合を説明する。補助的に用いるとは、エンコーダ４０の動作確認を行う場合に用いるという意味である。
【００５０】
コントローラ１０の送信部１００、受信部１１１Ａ、第１の誤り検出部１１２Ａ、及び第２の誤り検出部１１３Ａは、第１通信制御部１２Ａにより実現される。受信部１１１Ｂ、第１の誤り検出部１１２Ｂ、及び第２の誤り検出部１１３Ｂは、第２通信制御部１２Ｂにより実現される。処理決定部１２０Ａ、制御出力部１３０、第１付加情報処理部１４０Ａ、及び回転位置選択部１５０は、第１プロセッサ１１Ａにより実現される。処理決定部１２０Ｂ及び第１付加情報処理部１４０Ｂは、第２プロセッサ１１Ｂにより実現される。
【００５１】
エンコーダ４０の受信部４００、識別情報生成部４４０、及び送信部４５０は、通信制御部４２により実現される。回転位置検出部４１０は、通信制御部４２や光学センサ４５Ａにより実現される。第１付加情報生成部４２０及び第２付加情報生成部４３０は、プロセッサ４１や磁気センサ４５Ｂにより実現される。
【００５２】
図４及び図５は、モータ制御システム１で実行される処理の流れを示す図である。ここでは、図４及び図５を参照しながら、図３に示すモータ制御システム１の各機能を説明する。なお、図４及び図５のｔ軸は、時間軸である。
【００５３】
まず、図４に示すように、送信周期ＴＳの開始時点ｔ０が訪れると、コントローラ１０の送信部１００は、位置取得コマンドをエンコーダ４０に送信する（Ｓ１）。位置取得コマンドは、エンコーダ４０にモータ３０の位置を取得させるためのコマンドである。位置取得コマンドは、所定のデータ形式であればよく、例えば、コマンドの種類を示すコマンドコードを含む。他にも、位置取得コマンドは、送信先のエンコーダ４０を識別する情報を含んでいてもよい。
【００５４】
エンコーダ４０の受信部４００は、コントローラ１０から位置取得コマンドを受信すると（Ｓ２）、回転位置検出部４１０及び回転数検出部４２１の各々は、位置取得コマンドを実行する（Ｓ３，Ｓ４）。Ｓ３においては、回転位置検出部４１０は、光学センサ４５Ａの信号に基づいて、１回転内の回転位置を検出する。なお、詳細は後述するが、この１回転内の回転位置は、後に生成する安全データに含めるため、通信制御部４２内のメモリに保持される。Ｓ４においては、回転数検出部４２１は、磁気センサ４５Ｂの信号に基づいて、１回転したか否かを判定する。
【００５５】
第１付加情報生成部４２０は、少なくともデータの送信周期ＴＳよりも長い周期ＴＣ１で第１付加情報を生成する（Ｓ５）。周期ＴＣ１は、第１付加情報を生成するのに要する時間である。別の言い方をすれば、周期ＴＣ１は、第１付加情報の生成を開始してから終了するまでの時間である。先述のように、第１付加情報は、１回転内の回転位置に付加する情報であり、１回転内の回転位置とともに送信すべき情報といえる。本実施形態では、第１付加情報は、回転数、テストカウンタ、及びＣＲＣ値を含む。Ｓ５においては、第１付加情報生成部４２０において、回転数検出部４２１、テストカウンタ生成部４２２、及び第１の誤り検出符号付加部４２３の各々が、下記の処理を実行する。
【００５６】
回転数検出部４２１は、磁気センサ４５Ｂの出力に基づいて、磁気式ディスク４４Ｂの回転数をカウントする。別の言い方をすれば、回転数検出部４２１は、モータ３０の回転軸の回転数を検出する。例えば、回転数を示すデータは、メモリ４３やプロセッサ４１内のメモリに記憶されているようにしてよい。回転数検出部４２１は、磁気式ディスク４４Ｂが１回転したことを示す信号を磁気センサ４５Ｂから受信すると、上記データが示す回転数をインクリメントする。なお、回転数を示すデータは、電源投入時やその後の所定のタイミングで行われる初期化処理によって初期値（例えば、０）になるようにしてよい。
【００５７】
テストカウンタ生成部４２２は、安全データの送信毎に異なる値となるテストカウンタを生成する。安全データの送信毎に異なるとは、ある安全データに含まれるテストカウンタと、次の安全データに含まれるテストカウンタと、の値が違うことである。例えば、テストカウンタ生成部４２２は、安全データを送信するたびにテストカウンタをインクリメントする。なお、テストカウンタは、プロセッサ４１内のメモリに記憶されているようにしてよい。テストカウンタは、回転数と同様、電源投入時やその後の所定のタイミングで行われる初期化処理によって初期値（例えば、０）になるようにしてよい。
【００５８】
第１の誤り検出符号付加部４２３は、第１付加情報に含まれる情報（例えば、回転数）に対し誤り検出符号を付加する。情報に対し誤り検出符号を付加するとは、当該情報を誤り検出符号の計算対象とすることである。本実施形態では、誤り検出の一例として、ＣＲＣを説明する。即ち、誤り検出符号は、ＣＲＣ値である場合を説明する。ただし、誤り検出自体は、公知の種々の手法を適用可能であり、ＣＲＣに限られない。例えば、誤り検出として、パリティやチェックサムを用いてもよい。
【００５９】
なお、第１の誤り検出符号付加部４２３は、回転数のみに対してＣＲＣ値を付加してもよいが、ここでは、回転数とテストカウンタに対しＣＲＣ値を付加する場合を説明する。ＣＲＣ値の計算自体は、公知の種々の手法を適用可能であり、例えば、ＣＲＣ−８であってよい。ＣＲＣ値の計算アルゴリズムは、プログラムに記述されている。第１の誤り検出符号付加部４２３は、ＣＲＣの計算対象（即ち、ここでは、回転数とテストカウンタ）を計算アルゴリズムへの入力とし、計算アルゴリズムの出力であるＣＲＣ値を取得することになる。ここで、第１の誤り検出符号付加部４２３が用いる計算アルゴリズムは、前述の通り、汎用のプロセッサ４１により実行され、専用の計算回路を用いるものでないため、その演算に周期ＴＣ１を要するのである。
【００６０】
Ｓ５では、上記のような処理が実行されるが、先述のように、第１付加情報生成部４２０は、通信周期ＴＳ内に第１付加情報の計算を完了しないので、第２付加情報生成部４３０は、データの送信周期ＴＳより短い周期ＴＣ２で、エンコーダ４０の状態に関する情報を含む第２付加情報（例えば、温度情報及びアラームコード）を生成する（Ｓ６）。送信周期ＴＣ２は、第２付加情報生成部４３０が第２付加情報を生成するのに必要な時間である。別の言い方をすれば、送信周期ＴＣ２は、第２付加情報の生成を開始してから終了するまでの時間である。
【００６１】
Ｓ６においては、第２付加情報生成部４３０は、温度センサから温度情報を取得する。そして、第２付加情報生成部４３０は、所与のアラーム検知アルゴリズムに基づいてアラームの有無及びアラームコードを取得する。アラーム検知アルゴリズムやアラームコードは、プログラムに記述されていればよい。アラームとしては公知の種々のものを検出してよく、例えば、電源の不具合を示すアラームや通信異常を示すアラームであってよい。なお、Ｓ６の処理は、Ｓ２において位置取得コマンドを受信する前に実行してもよいし、Ｓ３やＳ４で位置取得コマンドが実行された後に実行してもよい。通信周期ＴＳが終了するまでに通常データを送信できるように、第２付加情報を生成すればよい。
【００６２】
送信部４５０の送信データ選択部４５１は、少なくとも、通常データ又は安全データの何れを送信するか選択する（Ｓ７）。送信データ選択部４５１は、通常データ又は安全データ以外のデータを送信対象として選択してもよいが、ここでは説明の簡略化のために、これらの何れか一方を選択する場合を説明する。
【００６３】
Ｓ７においては、送信データ選択部４５１は、所与の選択方法に基づいて、通常データ又は安全データの何れかを選択すればよい。例えば、送信データ選択部４５１は、第１付加情報生成部４２０により、第１付加情報が生成されたことに基づいて、安全データを選択する。即ち、送信データ選択部４５１は、第１付加情報が生成されていなければ、通常データを選択し、第１付加情報が生成されていれば、安全データを選択する。Ｓ７の時点では、第１付加情報生成部４２０は、Ｓ５の計算を開始したばかりであり第１付加情報をまだ生成していないので、送信データ選択部４５１は通常データを選択することになる。なお、ここでは、第１付加情報の生成が完了した場合に安全データを送信する場合を説明するが、安全データは所定周期毎に送信されるようにしてもよい。この場合、送信データ選択部４５１は、所定周期が訪れたか否かを判定することで、通常データ又は安全データの何れかを選択することになる。
【００６４】
識別情報生成部４４０は、少なくとも第１付加情報が送信されることを識別可能な識別情報を生成する（Ｓ８）。識別情報は、第１付加情報が送信されることだけを識別可能であってもよいが、ここでは、第１付加情報又は第２付加情報の何れが送信されるのかを識別可能である。なお、識別情報は、更に他の情報を識別可能であってもよい。
【００６５】
識別情報生成部４４０は、送信データ選択部４５１が通常データを選択した場合に、通常データを識別する「０１」の識別情報を生成し、送信データ選択部４５１が安全データを選択した場合に、安全データを識別する「１０」の識別情報を生成する。Ｓ８においては、Ｓ７で通常データが選択されているので、識別情報生成部４４０は、通常データを識別する「０１」の識別情報を生成することになる。
【００６６】
送信部４５０は、Ｓ３で検出された１回転内の回転位置、Ｓ６で生成された第２付加情報、及びＳ８で生成された識別情報を含む通常データを生成する（Ｓ９）。なお、通常データに含まれるアドレスは、メモリ４３に予め記憶されているものとする。また、アラームの有無は、Ｓ６における第２付加情報の生成結果に応じて決定すればよい。予備領域には、データが格納されなくてもよいし、所定値が格納されるようにしてもよい。
【００６７】
送信部４５０の第２の誤り検出符号付加部４５２は、Ｓ９で生成された通常データに対し誤り検出符号を付加し（Ｓ１０）、送信部４５０は、通常データを送信する（Ｓ１１）。Ｓ１０においては、第２の誤り検出符号付加部４５２は、通常データに含まれる情報に対し、誤り検出符号を付加する。なお、後述するように、第２の誤り検出符号付加部４５２は、通常データだけではなく、安全データに含まれる情報に対しても、誤り検出符号を付加する。また、第１の誤り検出符号付加部４２３と同様、ここでは誤り検出の一例として、ＣＲＣを説明する。即ち、誤り検出符号は、ＣＲＣ値である場合を説明する。また、誤り検出自体は公知の種々の手法を適用可能である点も、第１の誤り検出符号付加部４２３と同様である。第２の誤り検出符号付加部４５２は、通常データの全体に対しＣＲＣ値を計算してもよいし、通常データに含まれる一部の情報（例えば、１回転内の回転位置）に対しＣＲＣ値を計算してもよい。なお、第２の誤り検出符号付加部４５２は、前述の通り、専用の集積回路である通信制御部４２に用意された専用の回路により実現されているため、その演算は高速である。このため、第２の誤り検出符号付加部４５２は、送信周期ＴＳ内にＣＲＣ値を計算可能になっている。
【００６８】
コントローラ１０においては、受信部１１１Ａ及び１１１Ｂは、通常データを受信する（Ｓ１２，Ｓ１３）。第２の誤り検出部１１３Ａ及び１１３Ｂは、通常データに付加されたＣＲＣ値のチェックをする（Ｓ１４，Ｓ１５）。Ｓ１４及びＳ１５では、第２の誤り検出部１１３Ａ及び１１３Ｂは、エンコーダ４０から受信した通常データに基づいてＣＲＣ値を計算する。ここでのＣＲＣ値の計算方法は、先述したものと同様である。第２の誤り検出部１１３Ａ及び１１３Ｂは、計算したＣＲＣ値と、エンコーダ４０から受信したＣＲＣ値と、を比較して一致するか否かを判定する。一致していれば、正常であると判定し、一致しなければ、異常が発生したと判定する。ここでの異常とは、ノイズ等の影響により伝送路上で通常データの内容が欠落又は変更されることである。
【００６９】
処理決定部１２０Ａ及び１２０Ｂは、通常データに含まれる識別情報を参照する（Ｓ１６，Ｓ１７）。Ｓ１６及びＳ１７においては、処理決定部１２０Ａ及び１２０Ｂは、識別情報が「０１」であれば、通常データなのでモータ３０の位置決め制御を実行すると決定し、識別情報が「１０」であれば、安全データなので安全検証処理を実行すると決定する。ここでは、識別情報が「０１」の通常データを受信しているので、処理決定部１２０Ａ及び１２０Ｂは、モータ制御装置２０への制御出力を行うと決定する。
【００７０】
制御出力部１３０は、モータ３０に対する制御出力を決定する（Ｓ１８）。Ｓ１８においては、Ｓ１１で受信した通常データに含まれる１回転内の回転位置に基づいて、モータ３０の制御出力を決定する。制御出力は、例えば、モータ３０の位置及び速度の少なくとも一方である。モータ制御装置２０は、得られた制御出力に基づいて、モータ３０に印加する電流を制御する。
【００７１】
上記のようにして、送信周期ＴＳの終了時点ｔ１が訪れると、次の送信周期ＴＳが訪れることになる。この時点では、Ｓ５に示すように第１付加情報の生成がまだ完了していないので、Ｓ２１〜Ｓ３７に示すように、Ｓ１〜Ｓ４及びＳ６〜Ｓ１８と同様の処理が実行される。以降、第１付加情報の生成が完了するまで、位置取得コマンドの送受信、通常データの送受信、及び制御出力が繰り返される。なお、コントローラ１０では、通常データに含まれる１回転内の回転位置を時系列的に第１プロセッサ１１Ａや第２プロセッサ１１Ｂ内のメモリに蓄積しているものとする。これは、後述するＳ６２及びＳ６３で回転数を計算するために、１回転内の回転位置の変化を利用するためである。
【００７２】
図５に移り、第１付加情報の生成が完了し、その次の送信周期ＴＣの開始時点ｔ３が訪れると、安全データを送信するための処理が実行されることになる。Ｓ４１〜Ｓ４５は、それぞれＳ１〜Ｓ５と同様である。Ｓ４６において、第１付加情報生成部４２０は、第１付加情報生成部４２０が生成した第１付加情報を送信部４５０に対して送信する（Ｓ４６）。
【００７３】
第１付加情報の生成が完了しているので、送信データ選択部４５１は、安全データを選択し（Ｓ４７）、識別情報生成部４４０は、安全データを識別する「１０」の識別情報を生成することになる（Ｓ４８）。Ｓ４９〜Ｓ５５は、Ｓ９〜Ｓ１５と同様であるが、Ｓ５１においては、送信部４５０は、通常データではなく、１回転内の回転位置及び回転数を含む安全データを送信することになる。
【００７４】
また、先述のように、第１付加情報の計算には時間がかかるため、Ｓ４３で取得された最新の１回転内の回転位置を安全データに含めてしまうと、後述するＳ６６の比較で動作異常を検知ができない可能性がある。即ち、第１付加情報に含まれる回転数は、時点ｔ０〜ｔ１におけるものであるが、安全データに最新の１回転内の回転位置を含めると、時点ｔ３〜ｔ４における回転数と比較することになってしまう。このため、安全データに含まれる１回転内の回転位置は、回転数検出部４２１により回転数が検出されたタイミングで取得された１回転内の回転位置（即ち、Ｓ３で取得された１回転内の回転位置）となっている。回転数が検出されたタイミングで取得された回転位置とは、回転数を検出するための位置取得コマンドで取得した回転位置である。別の言い方をすれば、回転数を検出した送信周期ＴＳと同じ送信周期ＴＳ内で取得された１回転内の回転位置である。先述のように、この１回転内の回転位置は、プロセッサ４１内のメモリに保持されているので、その値を安全データに含めることになる。
【００７５】
また、Ｓ５２及びＳ５３では、受信部１１１Ａ及び１１１Ｂは、通常データではなく、モータ３０の回転軸の１回転内の回転位置と、回転数と、を含む安全データをモータ３０のエンコーダ４０から受信していることになる。別の言い方をすれば、受信部１１１Ａは、モータの回転軸の１回転内の回転位置を含む安全データであって、少なくとも当該安全データに第１付加情報が含まれることを識別可能な識別情報と、第１付加情報を含む安全データをモータ３０のエンコーダ４０から受信することになる。
【００７６】
第１の誤り検出部１１２Ａ及び１１２Ｂは、安全データに含まれる回転数に付加されたＣＲＣ値のチェックをする（Ｓ５６，Ｓ５７）。Ｓ５６及びＳ５７の各々では、第１の誤り検出部１１２Ａ及び１１２Ｂは、エンコーダ４０から受信した安全データの回転数及びテストカウンタに基づいてＣＲＣ値を計算する。第１の誤り検出部１１２Ａ及び１１２Ｂは、計算したＣＲＣ値と、安全データ内のＣＲＣ値と、を比較して一致するか否かを判定する。一致していれば、正常であると判定し、一致しなければ、異常が発生したと判定する。
【００７７】
また、識別情報が「１０」の安全データを受信しているので、処理決定部１２０Ａ及び１２０Ｂは、安全検証処理を実行すると決定する（Ｓ５８，Ｓ５９）。以降、第１付加情報処理部１４０Ａ及び１４０Ｂは、識別情報に基づいて、第１付加情報が含まれる場合に第１付加情報を用いた情報処理であるＳ６０〜Ｓ６９の安全検証処理を行うことになる。この情報処理は、第１付加情報を参照して実行する処理であればよく、安全検証処理以外であってもよい。
【００７８】
テストカウンタ判定部１４１Ａ及び１４１Ｂは、安全データに含まれるテストカウンタの値が正しいか否かを判定する（Ｓ６０，Ｓ６１）。Ｓ６０及びＳ６１においては、エンコーダ４０から過去に受信した安全データのテストカウンタの値をメモリ１３等に保持しておき、テストカウンタ判定部１４１Ａ及び１４１Ｂは、過去に受信したテストカウンタの値と、Ｓ５１及びＳ５２で受信したテストカウンタの値と、を比較して両者が異なるか否かを判定する。先述のように、テストカウンタは安全データの送信毎に異なるので、エンコーダ４０が正常に動作していれば、テストカウンタの値が異なることになる。このため、Ｓ５８及びＳ５９では、比較した２つのテストカウンタの値が異なっていれば、正常であると判定し、一致していれば異常が発生したと判定する。
【００７９】
第１の回転数取得部１４２Ａ及び１４２Ｂは、１回転内の回転位置により回転軸の回転数を取得する（Ｓ６２，Ｓ６３）。Ｓ６２及びＳ６３においては、第１の回転数取得部１４２Ａ及び１４０Ｂは、１回転内の回転位置の変化に基づいて、回転軸の回転数を取得することになる。例えば、第１の回転数取得部１４２Ａ及び１４２Ｂは、メモリ１３等に保持された過去の１回転内の回転位置を参照して１回転内の回転位置の変化を特定する。１回転内の回転位置は、１回転すると元に戻るので、第１の回転数取得部１４２Ａ及び１４２Ｂは、１回転内の回転位置が元に戻った（即ち、減少した）場合に１回転したと判定し、メモリ１３等に記憶された回転数のカウンタをインクリメントすることによって、回転数を計算する。
【００８０】
第２の回転数取得部１４３Ａ及び１４３Ｂは、安全データに含まれる回転数を取得する（Ｓ６４，Ｓ６５）。Ｓ６４及びＳ６５においては、第２の回転数取得部１４３Ａ及び１４３Ｂは、第１付加情報に含まれる回転数を取得することになる。
【００８１】
比較部１４４Ａ及び１４４Ｂは、第１の回転数取得部１４２Ａ及び１４２Ｂにより取得された回転数と、第２の回転数取得部１４３Ａ及び１４３Ｂにより取得された回転数と、を比較する（Ｓ６６，Ｓ６７）。Ｓ６６及びＳ６７においては、比較部１４４Ａ及び１４４Ｂは、第１の回転数取得部１４２Ａ及び１４２Ｂにより取得された回転数と、第２の回転数取得部１４３Ａ及び１４３Ｂにより取得された回転数と、を比較して両者が一致するか否かを判定する。両者が一致すれば正常と判定し、両者が一致しなければ異常が発生したと判定する。
【００８２】
第１付加情報処理部１４０Ａ及び１４０Ｂは、Ｓ６６及びＳ６７における比較結果を相互にチェックする（Ｓ６８，Ｓ６９）。第１付加情報処理部１４０Ａ及び１４０Ｂは、何れかの比較結果で異常が発生している場合に、モータ３０を停止するようにモータ制御装置２０に指示を送るようにしてもよいし、両方の比較結果で異常が発生している場合に、モータ３０を停止するようにモータ制御装置２０に指示を送るようにしてもよい。
【００８３】
回転位置選択部１５０は、制御出力部１３０が使用する回転位置を複数の送信データの中から選択する（Ｓ７０）。先述のように、安全データに含まれる１回転内の回転位置は、Ｓ３で生成された古いものであるので、回転位置選択部１５０は、安全データでない送信データ（即ち、通常データ）より、回転位置を選択する。例えば、回転位置選択部１５０は、直近で受信した通常データに含まれる１回転内の回転位置を選択する。続くＳ７１は、Ｓ１８と同様である。
【００８４】
上記のように、Ｓ４１〜Ｓ７１の処理が実行されて安全データが送信された後は、次の送信周期ＴＳの開始時点ｔ４が訪れて通常データが送信されることになる。以降、第１付加情報の生成が完了するまでは、通常データが送信され、第１付加情報の生成が完了すると、安全データが送信されることになる。即ち、送信部４５０は、送信周期ＴＳごとに、通常データ又は安全データの何れかの送信データを送信する。別の言い方をすれば、送信部４５０は、少なくとも１回転内の回転位置を含む送信データを送信周期ＴＳで送信することになる。
【００８５】
［４．第１の機能のまとめ］
モータ制御システム１の第１の機能によれば、光学式ディスク４４Ａの１回転内の回転位置と、磁気式ディスク４４Ｂの回転数と、の各々によるデータの２重化チェックが可能になるので、エンコーダからのデータを２重化しつつ、機器のサイズ、重量、及びコストを抑制することができる。即ち、例えば、エンコーダ４０自体を２重化したり、プロセッサ４１や通信制御部４２等の位置検出回路を２重化したりするような場合に比べて機器のサイズ、重量、及びコストを抑制することができ、更に、これらの２重化と同等のデータ信頼性を得ることができる。更に、光学センサ４５Ａがエンコーダであることによって、レゾルバ等を利用する場合に比べて小型化が可能になる。
【００８６】
また、回転数に対するＣＲＣ値と、送信データに対するＣＲＣ値と、を用いて２重のチェックを行い、データの信頼性を向上させることができる。更に、１つのハードウェアだけでＣＲＣ値を計算すると、そのハードウェアが故障していた場合に異常を検出できない可能性があるがここでは、プロセッサ４１及び通信制御部４２という別々のハードウェアを使ってＣＲＣ値を計算しているので、データの信頼性をより向上させることができる。
【００８７】
また、送信データ全体のデータ長を短くしてデータの伝送効率を高めようとするとビット数が多く強度の高いＣＲＣを使用することができないが、強度の高いＣＲＣを用いなくても、回転数をチェックすることによりデータの信頼性を確保することができる。
【００８８】
また、回転数だけでなく、安全データの送信毎に異なる値となるテストカウンタに対しＣＲＣ値を付加するので、モータ３０の停止時や低速時のように回転数が更新されないような場合であっても、テストカウンタを参照することで、エンコーダ４０の動作が正常かどうかをチェックすることができる。
【００８９】
また、光学式ディスク４４Ａと磁気式ディスク４４Ｂを組み合わせて使用することで、異なる検出方式でモータの回転位置や回転数を検出することができるので、例えば、埃などが多く光学式ディスク４４Ａでは影響を受けやすい環境であっても、磁気式ディスク４４Ｂによって正確な位置を検出したり異常検出をしたりすることができる。逆に、周囲の環境から磁気変化の影響があり磁気式ディスク４４Ｂではその影響を受けやすい環境であっても、光学式ディスク４４Ａによって正確な位置を検出したり異常検出をしたりすることができる。
【００９０】
また、コントローラ１０側で、回転位置の変化に基づいて取得する回転数と、送信データに含まれる回転数と、を第１プロセッサ１１Ａ及び第２プロセッサ１１Ｂという別々のハードウェアを使用して比較することで動作確認を行うことができる。また、コントローラ１０側で、第１通信制御部１２Ａ及び第２通信制御部１２Ｂという別々のハードウェアを使用してＣＲＣ値のチェックを行うことによって、データの信頼性検証の精度を向上することができる。
【００９１】
［５．第２の機能のまとめ］
モータ制御システム１の第２の機能によれば、ＣＲＣ値のように生成するのに複数の送信周期ＴＳを要する第１付加情報をコントローラ１０に送信することができる。例えば、送信周期ＴＳ毎に第１付加情報を送信するような場合は、次の送信周期ＴＳが訪れるまでに第１付加情報を生成しなければならず、高速に動作する汎用プロセッサか専用の集積回路が必要となるが、本機能によれば、低クロック・低スペックである比較的低コストの汎用プロセッサを用いても第１付加情報を送信可能になる。
【００９２】
また、第１付加情報を生成するのに複数の送信周期ＴＳを要する場合であっても、誤り検出が必要な情報に対して誤り検出符号の付加が可能となる。更に、計算時間がかかるＣＲＣ値を用いた誤り検出も可能になる。
【００９３】
また、安全データには、回転位置が含まれており、第１付加情報には回転数が含まれているため、コントローラ１０等においてデータの２重チェックが可能になる。例えば、安全データに含まれる回転位置から回転数を取得して、第１付加情報に含まれる回転数と比較してデータのチェックを行うことができる。
【００９４】
また、先述のように、安全データに最新の１回転内の回転位置を含めてしまうと正確にチェックをすることができない可能性があるが、回転数が検出されたタイミングの１回転内の回転位置を使用することで正確に２重チェックを行うことができる。また、モータの停止時等のように１回転内の回転位置が更新されないような場合であっても、テストカウンタを参照することで、エンコーダ４０が正常かどうかをチェックすることができる。
【００９５】
また、１送信周期ＴＳ内において通常データと安全データとの何れを送信するかを選択することで、無駄のないデータ伝送を可能にする。例えば、生成するのに複数の送信周期ＴＳを要する第１付加情報を含む安全データと、送信周期ＴＳ内に確実に生成できる第２付加情報を含む通常データと、の何れかを各送信周期ＴＳにおいて送信できるので、効率のよいデータ伝送が可能になる。また、通常データと安全データの両方を同時に送信するのではなく、何れかを選択して送信することで、送信周期ＴＳを短縮化し、１送信周期ＴＳで送信すべきデータ量も少なくすることもできる。また、第１付加情報が生成されて安全データの送信可能な状態になった場合に、安全データを送信し、それ以外のときは通常データを送信することで、無駄のないデータ伝送が可能になる。
【００９６】
また、送信データ全体に対してＣＲＣ値を付加しているので、送信データ全体の中で誤り検出が必要な情報に対し、誤り検出符号の付加が可能となる。例えば、安全データでは、第１付加情報に付加されたＣＲＣ値と、安全データ全体に対して付加されたＣＲＣ値と、があるので、第１付加情報の誤り検出と、送信データ全体の誤り検出と、の２重の誤り検出が可能になる。
【００９７】
また、送信データに識別情報を含めていることで、コントローラ１０側は、識別情報に基づいて、送信データに第１付加情報が含まれていることを識別してデータのチェック等の情報処理を行うことができる。また、コントローラ１０は、回転位置により取得する回転数と、第１付加情報に含まれる回転数と、を比較することでエンコーダ４０の動作確認を行うことができる。また、安全データに含まれる１回転内の回転位置は最新のものではなく古いものであるため、コントローラ１０が、直近の１回転内の回転位置を使ってモータ３０を制御することで、モータ制御の精度を上げることができる。
【００９８】
［６．変形例］
なお、実施形態では、モータ制御システム１において第１の機能及び第２の機能の両方が実現される場合を説明したが、モータ制御システム１は、第１の機能又は第２の機能の何れかのみを実現してもよい。
【００９９】
例えば、第１の機能だけが実現される場合には、通常データと安全データとの間で送信データを切り替えることは必須ではないので、コントローラ１０において、処理決定部１２０Ａ及び１２０Ｂは省略可能であり、エンコーダ４０において、送信データ選択部４５１と識別情報生成部４４０は省略可能である。即ち、エンコーダ４０は、通常データと安全データとの間で送信データを切り替えなくてもよい。このため、エンコーダ４０が送信する送信データは、１種類だけであってもよい。この場合、送信データには、１回転内の回転位置及び回転数が含まれているようにすればよい。更に、エンコーダ４０は、送信周期ＴＳ内で第１付加情報の生成を完了してしまうようにしてもよい。この場合は、エンコーダ４０は、通常データと安全データの両方を一度に送信してもよい。
【０１００】
また例えば、第２の機能だけが実現される場合には、ハードウェアの２重化は必須ではないので、コントローラ１０において、受信部１１１Ａや第１付加情報処理部１４０Ａ及び１４０Ｂは、何れか一方のみであってよい。コントローラ１０において、プロセッサと通信制御部の組み合わせは１系統だけであってもよい。同様に、エンコーダ４０において、ディスクとセンサの組み合わせは１系統だけであってもよい。更に、送信データに１回転内の回転位置と回転数の両方を含めるのではなく、少なくとも１回転内の回転位置が送信データに含まれているようにすればよい。エンコーダ４０は、回転数を検出しなくてもよい。この場合、コントローラ１０は、過去に受信した回転位置から回転数を計算すればよい。
【０１０１】
また、送信データのデータ格納例は、図２の例に限られない。送信データは、少なくとも１回転内の回転位置を含んでいればよく、他の情報を含んでいてもよい。例えば、安全データには、温度情報が含まれていてもよい。同様に、第１付加情報及び第２付加情報は、他の情報を含んでいてもよい。例えば、第１付加情報は、ＣＲＣ値やテストカウンタを含まずに他の情報を含んでいてもよい。
【０１０２】
また、第１の機能に関し、エンコーダ４０に含まれるディスクは、光学式ディスク４４Ａと磁気式ディスク４４Ｂの組み合わせに限られない。例えば、エンコーダ４０は、２枚の光学式ディスクを含んでいてもよいし、２枚の磁気式ディスクを含んでいてもよい。更に、実施形態では、ディスクとセンサの組み合わせが２系統あることにより、２重化相当のデータ信頼性が確保されている場合を例に挙げて説明したが、ディスクとセンサの組み合わせが多系統あることにより、多重化相当のデータ信頼性を確保すればよく、３重化以上であってもよい。
【０１０３】
また、第２の機能に関し、第１付加情報は、送信周期ＴＳよりも長い時間をかけて生成するものであればよく、他の情報であってもよい。ＣＲＣ値等の誤り検出符号以外が第１付加情報に相当してもよい。また、第１付加情報は、通常データに含まれていてもよい。この場合、第１付加情報の生成が完了するまでは、直近で生成した第１付加情報を通常データに毎回含めるようにしてもよい。また、通常データは、第２付加情報を含んでいなくてもよい。
【０１０４】
また、コントローラ１０において、第１通信制御部１２Ａ及び第２通信制御部１２Ｂが送信データのＣＲＣを行ったが、第１プロセッサ１１Ａ及び第２プロセッサ１１ＢでＣＲＣを行ってもよい。また、回転数及びテストカウンタだけでなく、アドレスもＣＲＣの計算対象としてもよい。
【０１０５】
また、モータ制御システム１が、コントローラ１０、モータ制御装置２０、モータ３０、及びエンコーダ４０を含む場合を説明したが、モータ制御システム１は、コントローラ１０及びエンコーダ４０のみを含むものとしてもよい。
【０１０６】
また、上記説明した本発明に係る各処理をロボットシステムに適用してもよい。図６は、ロボットシステムの一例を示す図である。図６に示すように、ロボットシステム２は、モータ制御システム１と、ロボット３と、を含む。なお、図６では、モータ制御装置２０を省略している。ロボット３は、コントローラ１０の制御対象となる装置であり、例えば、モータ３０やエンコーダ４０を含む。即ち、ロボット３には、モータ３０やエンコーダ４０が組み込まれている。図６に示す例では、ロボット３は、アームを有するマニピュレータを含む。また、ここでのロボット３は、２つ以上の軸を有する機械である多軸機械（例えば、金属の加工機械等）を含む意味である。図６に示すロボット３は、４つのモータ３０−１〜３０−４を有するため、４つの軸を有する多軸機械といえる。
【０１０７】
ロボットシステム２では、コントローラ１０の指示のもとでモータ３０−１〜３０−４が回転することで、ロボット３が動作する。例えば、コントローラ１０は、ロボット３のアームが所定のタイミングで所定の位置で物をつかむように、モータ３０−１〜３０−４を回転させる。ここでは、４つのモータ３０−１〜３０−４の各々に、エンコーダ４０−１〜４０−４が接続されている。図６に示す例では、各エンコーダ４０は、デイジーチェーン接続されており、各エンコーダ４０を接続する配線を破線で示している。この配線は、例えば、半二重通信路や全二重通信路であってもよい。デイジーチェーン接続は、複数の機器を数珠繋ぎにした接続方式であり、接続順位が最上位の機器から最下位の機器まで、接続順位の順番にデータを転送する接続方式である。ここでは、エンコーダ４０−１の接続順位は最上位であり、エンコーダ４０−４の接続順位は最下位である。エンコーダ４０−１〜４０−３の各々は、上位の機器（コントローラ１０やエンコーダ４０−１，４０−２）から受信したコマンドを下位の機器（エンコーダ４０−２〜４０−４）に転送する。エンコーダ４０−１〜４０−４の各々は、コマンドの実行結果を上位の機器（コントローラ１０やエンコーダ４０−１〜４０−３）に送信する。エンコーダ４０−１〜４０−３の各々は、下位の機器（エンコーダ４０−２〜４０−４）から受信した実行結果を、上位の機器（コントローラ１０やエンコーダ４０−１〜４０−３）に転送することになる。特にロボットのような用途では、エンコーダ４０−１〜４０−４をデイジーチェーン接続してコントローラ１０との間で例えばシリアル通信することによって、ロボット３の内部の配線に要するスペースの抑制と、実施形態で説明したようなデータの２重化による安全性確保との両立が可能となる。なお、図６では、他の配線や補器類は省略している。
【０１０８】
ロボットシステム２においては、実施形態で説明した第１の機能及び第２の機能の少なくとも一方が実現されるようにすればよい。即ち、ロボットシステム２でも、第１の機能のようにして、プロセッサ４１や通信制御部４２を２重化することなく、２重化相当のデータの信頼性を得るようにしてもよいし、第２の機能のようにして、通常データと安全データを切り替えることで、生成するのに送信周期ＴＳ以上かかる第１付加情報をコントローラ１０に送信できるようにしてもよい。
【０１０９】
また、コントローラ１０は、モータ制御装置２０（サーボコントローラ又はサーボアンプ）とは別体であってもよいし、モータ制御装置２０を含んでいてもよい。また例えば、エンコーダ４０の通信相手が１又は複数のモータ制御装置２０であり、１又は複数のモータ制御装置２０が別の上位装置によって制御されるようにしてもよい。即ち、コントローラ１０は、モータ制御装置２０と、モータ制御装置を制御する上位装置と、の両方を含む意味であってもよいし、モータ制御装置２０と、モータ制御装置２０を制御する装置と、が別体であってもよい。後者の場合、モータ制御装置２０がコントローラ１０に相当してもよいし、モータ制御装置２０を制御する上位装置がコントローラ１０に相当してもよい。
【０１１０】
なお、エンコーダ４０が有する第１の回転手段及び第２の回転手段の一例として、それぞれ光学式ディスク４４Ａ及び磁気式ディスク４４Ｂを説明したが、モータ３０の回転軸に取り付けられる回転手段であればよく、ディスクでなくてもよい。例えば、円盤以外の回転体が第１の回転手段及び第２の回転手段であってもよい。また、エンコーダ４０の第１の検出手段及び第２の検出手段の一例として、光学センサ４５Ａ及び磁気センサ４５Ｂを説明したが、検出手段としては、１回転内の回転位置や回転数を検出する検出器であればよく、センサ以外であってもよい。また、エンコーダ４０の送信手段の一例として、送信部４５０を説明したが、例えば、無線通信が可能なエンコーダ４０であれば、無線通信インタフェースが送信手段であってもよい。
【０１１１】
また、コントローラ１０のデータ受信手段の一例として、受信部１１１Ａ及び１１１Ｂを説明したが、例えば、無線通信が可能なコントローラ１０であれば、無線通信インタフェースがデータ受信手段であってもよい。また、比較部１４４Ａ及び１４４Ｂは、上記回転数取得手段により取得された回転数と、上記データ取得手段により取得された回転数と、によりモータ３０のエンコーダ４０の動作を確認する手段であればよく、実施形態で説明した方法以外によって動作を確認してもよい。例えば、比較部１４４Ａ及び１４４Ｂは、上記２つの回転数の差が基準以内であるか否かにより動作を確認してもよいし、上記２つの回転数を所与の数式に代入することによって得られる値が基準範囲であるか否かにより動作を確認してもよい。
【符号の説明】
【０１１２】
１  モータ制御システム、２  ロボットシステム、３  ロボット、１０  コントローラ、１１Ａ  第１プロセッサ、１１Ｂ  第２プロセッサ、１２Ａ  第１通信制御部、１２Ｂ  第２通信制御部、１３  メモリ、２０  モータ制御装置、３０  モータ、４０  エンコーダ、４１  プロセッサ、４２  通信制御部、４３  メモリ、４４Ａ  光学式ディスク、４５Ａ  光学センサ、４４Ｂ  磁気式ディスク、４５Ｂ  磁気センサ、１００  送信部、１１１Ａ，１１１Ｂ  受信部、１１２Ａ，１１２Ｂ  第１の誤り検出部、１１３Ａ，１１３Ｂ  第２の誤り検出部、１２０Ａ，１２０Ｂ  処理決定部、１３０  制御出力部、１４０Ａ，１４０Ｂ  第１付加情報処理部、１４１Ａ，１４１Ｂ  テストカウンタ判定部、１４２Ａ，１４２Ｂ  第１の回転数取得部、１４３Ａ，１４３Ｂ  第２の回転数取得部、１４４Ａ，１４４Ｂ  比較部、１５０  回転位置選択部、４００  受信部、４１０  回転位置検出部、４２０  第１付加情報生成部、４２１  回転数検出部、４２２  テストカウンタ生成部、４２３  第１の誤り検出符号付加部、４３０  第２付加情報生成部、４４０  識別情報生成部、４５０  送信部、４５１  送信データ選択部、４５２  第２の誤り検出符号付加部。
【図１】
0006274153.tif 000002
【図２】
0006274153.tif 000003
【図３】
0006274153.tif 000004
【図４】
0006274153.tif 000005
【図５】
0006274153.tif 000006
【図６】
0006274153.tif 000007