(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0009】
以下、実施形態に係るモータ制御システムについて図面を参照して説明する。なお、図面における各要素の寸法の関係、各要素の比率などは、現実と異なる場合がある。また、図面の相互間においても、互いの寸法の関係や比率が異なる部分が含まれている場合がある。
【0010】
最初に、
図1Aおよび
図1Bを参照しながら、実施形態に係るモータ制御システム1の概要について説明する。
図1Aは実施形態に係るモータ制御システム1の全体構成の一例を示す模式図であり、
図1Bは実施形態に係るモータ制御システム1の処理を示す模式図である。
【0011】
図1Aに示すモータ制御システム1は、アクチュエータ10の挟持部13で物体Xを挟持するとともに、挟持された物体Xの大きさに基づいて、物体Xの仕分けを行うことができる。モータ制御システム1は、たとえば、物体Xが所定の大きさよりも大きい場合は仕分け箱200に物体Xを搬入し、物体Xが所定の大きさよりも小さい場合は別の仕分け箱210に物体Xを搬入する。
【0012】
モータ制御システム1は、アクチュエータ10と、コントローラ20とを備える。モータ制御システム1は、さらに、ホスト30と、別のコントローラ40と、アクチュエータ移動部50とを備える。
【0013】
アクチュエータ10は、モータ11(
図1B参照)と、エンコーダ12(
図1B参照)と、挟持部13とを有する。モータ11は、たとえばステッピングモータであり、コントローラ20に制御されて正逆回転することにより、挟持部13を開閉させることができる。
【0014】
エンコーダ12は、モータ11の回転軸に接続される。エンコーダ12は、また、モータ11の回転位置を検出し、かかる検出した結果(エンコーダ情報)をコントローラ20に出力することができる。エンコーダ12は、たとえば、A相とB相とで構成される2相エンコーダである。
【0015】
なお、モータ11の回転位置とは、モータ11に内蔵されるロータ(回転子)における基準位置からの回転角度のことであり、かかるロータが一回転する間の回転角度と、ロータが複数回回転した場合の回転数とを、いずれも含んでいる。
【0016】
挟持部13は、モータ11からの駆動力が伝達され、仕分け対象である物体Xを挟持可能に構成される。また、挟持部13からは、物体Xを挟持する際のトルクがモータ11にフィードバックされる。
【0017】
コントローラ20は、アクチュエータ10に配線100で接続され、アクチュエータ10の各種制御を行う。コントローラ20には、また、各種のプリセットデータがあらかじめ記憶されている。かかるプリセットデータとしては、たとえば、挟持部13により挟持される物体Xの大きさが、所定の大きさである場合に対応する回転位置データなどが挙げられる。
【0018】
ホスト30は、コントローラ20に配線110で接続され、コントローラ20に各種の指令を与える。ホスト30は、たとえば、アクチュエータ10の起動や停止をコントローラ20に指令したり、コントローラ20に各種のプリセットデータを記憶するよう指令したりすることができる。
【0019】
ここで、実施形態に係るモータ制御システム1では、
図1Bに示すように、まず、挟持部13で物体Xを挟持した状態におけるモータ11の回転位置に基づくエンコーダ情報を、エンコーダ12からコントローラ20に送信する(ステップS1)。かかるエンコーダ情報は、すなわち、物体Xの大きさに対応する情報である。
【0020】
つづいて、エンコーダ情報を受信したコントローラ20は、かかるエンコーダ情報と、物体Xの大きさが所定の大きさである場合に対応する回転位置データとに基づいて、物体Xが所定の大きさよりも大きいか、あるいは小さいかを判定する(ステップS2)。
【0021】
つづいて、コントローラ20は、かかる判定の結果に基づいて、1ビットの大小情報を配線110によりホスト30に送信する(ステップS3)。これにより、物体Xの大きさに関する情報をコントローラ20からホスト30に送信する場合に、単純な1本の配線を用いてシンプルに送信することができる。
【0022】
すなわち、USBインタフェースやアナログインタフェースなどの専用の複雑なインタフェースを用いることなく、ホスト30に物体Xの大きさに関する情報を送信することができることから、コントローラ20とホスト30との間のインタフェースを簡易化することができる。
【0023】
図1Aに戻って、モータ制御システム1のさらなる構成について説明する。コントローラ40は、配線120でホスト30に接続されるとともに、配線130でアクチュエータ移動部50に接続される。コントローラ40は、ホスト30からの指令を受けて、アクチュエータ移動部50の各種制御を行う。
【0024】
アクチュエータ移動部50は、たとえば、リニアアクチュエータであり、アクチュエータ10全体を所定の位置に移動させることができる。
【0025】
つづいて、実施形態に係るモータ制御システム1の具体的な動作の一例について説明する。まず、ホスト30は、コントローラ20に、アクチュエータ10で物体Xを挟持するとともに、かかる物体Xにおける所定の大きさに対する大小情報を送信するよう指令を与える。
【0026】
かかる指令を受けたコントローラ20は、アクチュエータ10を制御して、挟持部13に物体Xを挟持させる。また、コントローラ20は、かかる挟持の際にエンコーダ12から得られるエンコーダ情報を受信する。さらに、コントローラ20は、かかるエンコーダ情報と、あらかじめプリセットされた所定の大きさに対応する回転位置データとを比較して、物体Xと所定の大きさとの大小を判定する。
【0027】
ここで、物体Xが所定の大きさよりも大きい場合、コントローラ20は、配線110を介して、物体Xが所定の大きさよりも大きいという1ビットの大小情報(たとえば、Low信号)をホスト30に送信する。また、物体Xが所定の大きさよりも小さい場合、コントローラ20は、配線110を介して、物体Xが所定の大きさよりも小さいという1ビットの大小情報(たとえば、High信号)をホスト30に送信する。
【0028】
つづいて、物体Xが所定の大きさよりも大きい(または小さい)という大小情報をコントローラ20から受信したホスト30は、かかる判定結果に基づいて、アクチュエータ10を仕分け箱200(または仕分け箱210)の位置に移動させるよう、コントローラ40に指令を与える。なおこの際、ホスト30は、アクチュエータ10で物体Xを引き続き挟持するよう、コントローラ20にも指令を与える。
【0029】
かかるホスト30からの指令に基づいて、コントローラ40は、アクチュエータ移動部50を制御して、アクチュエータ10全体を仕分け箱200(または仕分け箱210)の位置に移動させる。また、コントローラ20は、アクチュエータ10を制御して、挟持部13に物体Xを引き続き挟持させる。
【0030】
つづいて、コントローラ40からアクチュエータ10全体が仕分け箱200(または仕分け箱210)の位置に移動されたことについて受信したホスト30は、アクチュエータ10に物体Xを挟持状態から解放させるよう、コントローラ20に指令を与える。
【0031】
かかるホスト30からの指令に基づいて、コントローラ20は、アクチュエータ10を制御して、物体Xを挟持部13から解放する。これにより、物体Xの仕分け作業が完了する。
【0032】
なお、上記ではコントローラ20から受信した1ビットの大小情報に基づいて、モータ制御システム1が仕分け作業を行った例について示したが、モータ制御システム1が実施できる作業はかかる例に限られない。たとえば、コントローラ20から受信した1ビットの大小情報に基づいて、ホスト30が図示しない音声出力部を制御し、かかる音声出力部から受信した大小情報を音声で出力してもよい。
【0033】
図2は、実施形態に係るモータ制御システム1の機能的構成を示すブロック図である。
図2に示すように、モータ制御システム1は、アクチュエータ10とコントローラ20とを備える。アクチュエータ10は、モータ11と、エンコーダ12と、挟持部13とを有する。かかるアクチュエータ10の構成については上述したので、説明については省略する。
【0034】
コントローラ20は、モータ制御部21と、インタフェース制御部22と、記憶部23と、ラインレシーバ24と、操作パネル25とを有する。また、モータ制御部21は、モータ制御パラメータ26とADコンバータ27とを有し、インタフェース制御部22は、プリセットデータ28と汎用インタフェース29とを有する。
【0035】
モータ制御部21は、モータ制御パラメータ26に基づいて、アクチュエータ10のモータ11を制御する。これにより、コントローラ20は、アクチュエータ10における挟持部13の開閉動作を制御する。また、モータ11からモータ制御部21にフィードバックされる電流値から、モータ制御部21はモータ11のトルク情報を取得することができる。
【0036】
さらに、モータ制御部21は、ラインレシーバ24とADコンバータ27とを経由して、アクチュエータ10のエンコーダ12から、モータ11の回転位置などに関するエンコーダ情報を取得し、かかるエンコーダ情報をインタフェース制御部22に送信する。
【0037】
インタフェース制御部22は、汎用インタフェース29を制御して、コントローラ20に搭載される操作パネル25や、配線110で接続されるホスト30と情報の入出力を行う。また、インタフェース制御部22は、コントローラ20内でモータ制御部21とも情報の入出力を行う。
【0038】
さらに、インタフェース制御部22は、モータ11の速度やトルク、回転位置に関するプリセットデータ28を有する。ここで、回転位置に関するプリセットデータ28は、モータ11が所定の回転位置にある場合に対応する値(たとえば、ステップ数)であり、挟持部13で挟持した物体Xの大きさに対応するデータである。すなわち、回転位置に関するプリセットデータ28は、上述の「所定の大きさに対応する回転位置データ」である。
【0039】
図3Aは、実施形態に係る記憶部23に記憶されるプリセットデータ群23aの一例を示す図である。かかるプリセットデータ群23aは、たとえば、
図3Aに示すように、運転番号iと、速度Sと、トルクTと、回転位置Pとのデータが1つのセットになっており、さらに、かかるセットが複数(たとえば、16個)で構成されている。
【0040】
そして、インタフェース制御部22は、かかるプリセットデータ群23aとして記憶部23に記憶されたデータを、ホスト30から通知された運転番号iに基づいて、上述のプリセットデータ28として記憶部23から取得する。
【0041】
図3Aで示したプリセットデータ群23aでは、たとえば、運転番号0が、モータ11を所定の速度S0およびトルクT0で回転位置P0まで動かす指令であり、挟持部13を開く運転に対応する。
【0042】
また、運転番号1は、モータ11を所定の速度S1およびトルクT1で動かす指令であり、挟持部13を閉じる運転に対応する。運転番号1では、回転位置P1が物体Xの大きさと比較の対象となる値であり、すなわち上述の「所定の大きさに対応する回転位置データ」である。
【0043】
さらに、運転番号2〜15は、運転番号1と回転位置Pの値のみがそれぞれ異なる(回転位置P2〜P15)。すなわち、コントローラ20には、所定の大きさに対応する回転位置データが複数プリセットされている。これにより、モータ制御システム1では、運転番号iを切り替えるだけで、異なる所定の大きさに基づいて物体Xの大小を判定することができる。
【0044】
図3Aで示したプリセットデータ群23aは、たとえば、上述のように16個の運転番号iを有する。これにより、4ビットのシンプルなデータをホスト30からコントローラ20に送信することで、それぞれの運転番号iを通知することができる。
【0045】
なお、
図3Aで示したプリセットデータ群23aでは、挟持部13を閉じるように制御する運転番号1〜15において、速度SとトルクTがすべて等しくなるように設定されている。しかしながら、回転位置P(すなわち所定の大きさ)に対応させて、速度SやトルクTが異なるように設定してもよい。
【0046】
また、挟持部13を開くように制御する運転番号iは、運転番号0の1つのみ設定されているが、たとえば、挟持する物体Xの種類などに応じて、2以上の運転番号iで挟持部13を開くように設定してもよい。
【0047】
図2のブロック図の説明に戻る。記憶部23は、ハードディスクドライブや不揮発性メモリといった記憶デバイスで構成された記憶部であり、上述のプリセットデータ群23aや、モータ制御パラメータ26に用いられるデータなどを記憶する。
【0048】
汎用インタフェース29は、たとえば、GPIO(General Purpose Input/Output)とも呼称される汎用のインタフェースである。
図3Bは、実施形態に係るコントローラ20における汎用インタフェース29の一例を示す図であり、かかる汎用インタフェース29に配線110が接続され、ホスト30とつながっている。
【0049】
汎用インタフェース29は、たとえば、10本のピン29a〜29jを有する。たとえば、ピン29aには、ホスト30からコントローラ20に、モータ11の運転開始を命令するHighまたはLowの信号が入力される。ピン29bには、ホスト30からコントローラ20に、モータ11の運転停止を命令するHighまたはLowの信号が入力される。
【0050】
ピン29cには、ホスト30からコントローラ20に、モータ11の回転方向を指示するHighまたはLowの信号が入力される。たとえば、High信号が挟持部13を開く回転方向に対応し、Low信号が挟持部13を閉じる回転方向に対応する。
【0051】
ピン29d〜ピン29gには、ホスト30からコントローラ20に、16個の運転番号iに対応する4ビットの信号が入力され、ホスト30からコントローラ20に運転番号iが指示される。
【0052】
ピン29hからは、コントローラ20からホスト30に、モータ11の運転状態を通知する信号が出力される。たとえば、High信号が運転中の状態に対応し、Low信号が停止中の状態に対応する。
【0053】
ピン29iからは、コントローラ20からホスト30に、モータ11が指定トルクに達したか否かを通知する信号が出力される。たとえば、High信号が指定トルクに達した状態に対応し、Low信号が指定トルクに達していない状態に対応する。
【0054】
ピン29jからは、コントローラ20からホスト30に、上述した物体Xの大小情報に対応する1ビットの信号が出力される。たとえば、High信号が所定の大きさより小さい場合に対応し、Low信号が所定の大きさより大きい場合に対応する。
【0055】
このように、モータ制御システム1では、汎用インタフェース29を用いて、1ビットの大小情報をコントローラ20からホスト30に送信することができる。したがって、コントローラ20とホスト30との間のインタフェースを簡易化することができる。
【0056】
以降においては、コントローラ20が実行する処理手順について
図4を用いて説明する。
図4は、実施形態に係るコントローラ20における判定処理の手順を示すフローチャートである。
【0057】
図4に示すように、まず、コントローラ20は、ピン29aから入力される運転開始指令の信号に変化があるかどうか判定し(ステップS101)、運転開始指令の信号に変化があった場合は(ステップS101,Yes)、ホスト30からピン29d〜29gを介して運転番号iを取得する(ステップS102)。なお、ステップS101の判定条件を満たさなかった場合には(ステップS101,No)、ステップS101の処理を繰り返す。
【0058】
つづいて、コントローラ20は、取得した運転番号iに基づいて、記憶部23に記憶されるプリセットデータ群23a(
図3A参照)から、運転データを取得する(ステップS103)。かかる運転データは、たとえば、運転番号iにおける速度S(i)と、トルクT(i)と、回転位置P(i)である。
【0059】
つづいて、コントローラ20は、取得した速度S(i)およびトルクT(i)で、モータ11のトルク運転を開始させる(ステップS104)。
【0060】
つづいて、コントローラ20は、モータ11の電流値に基づいて、モータ11が指定トルクに達したか否かを判定する(ステップS105)。かかるステップS105は、挟持部13で物体Xを挟持したか否かを判定する処理であり、モータ11が指定トルクに達した場合は、挟持部13で物体Xを挟持したとみなすことができる。
【0061】
そして、モータ11が指定トルクに達した場合(ステップS105,Yes)、コントローラ20は、エンコーダ12からエンコーダ情報Eを取得する(ステップS106)。ここで、エンコーダ情報Eは、モータ11の回転位置に基づく値であり、挟持部13に挟持された物体Xの大きさに対応する。なお、ステップS105の判定条件を満たさなかった場合には(ステップS105,No)、ステップS105の処理を繰り返す。
【0062】
つづいて、コントローラ20は、取得したエンコーダ情報Eが、ステップS103で取得した回転位置P(i)の値より大きいか否かを比較する(ステップS107)。
【0063】
ここで、エンコーダ情報Eが回転位置P(i)より大きい場合は(ステップS107,Yes)、汎用インタフェース29の位置情報結果を通知するピン29jから、ホスト30にLow信号を出力する(ステップS108)。かかるステップS108は、挟持された物体Xが所定の大きさより大きいことを、コントローラ20からホスト30に通知する処理である。
【0064】
一方、エンコーダ情報Eが回転位置P(i)より小さい場合は(ステップS107,No)、汎用インタフェース29の位置情報結果を通知するピン29jから、ホスト30にHigh信号を出力する(ステップS109)。かかるステップS109は、挟持された物体Xが所定の大きさより小さいことを、コントローラ20からホスト30に通知する処理である。
【0065】
つづいて、コントローラ20は、ピン29d〜29gから入力される運転番号iの信号に変化が無いかどうか判定し(ステップS110)、運転番号iの信号に変化が無かった場合は(ステップS110,Yes)、ピン29bから入力される運転停止指令の信号に変化があるかどうかを判定する(ステップS111)。
【0066】
そして、運転停止指令の信号に変化があった場合は(ステップS111,Yes)、処理を終了する。一方、運転停止指令の信号に変化が無かった場合は(ステップS111,No)、ステップS110の処理にもどる。
【0067】
なお、ステップS110において運転番号iの信号に変化があった場合(ステップS110,No)、コントローラ20は、ホスト30からピン29d〜29gを介して、運転番号iとは異なる新たな運転番号jを取得する(ステップS112)。
【0068】
つづいて、コントローラ20は、取得した新たな運転番号jに基づいて、記憶部23に記憶されるプリセットデータ群23aから、運転データを取得する(ステップS113)。かかる運転データは、たとえば、運転番号jにおける回転位置P(j)である。
【0069】
つづいて、コントローラ20は、新たに取得した回転位置P(j)と、ステップS106で取得していたエンコーダ情報Eとの大小を比較する(ステップS107)。以降の処理は上記処理と同様である。
【0070】
このように、物体Xを挟持している際に運転番号iを運転番号jに連続的に切り替えることにより、複数の所定の大きさ(回転位置P(i)、回転位置P(j))に対する物体Xの大小を連続的に判定することができる。したがって、挟持部13での一度の挟持により、物体Xの大きさを複数のしきい値に基づいて判定することができる。
【0071】
上述したように、実施形態によれば、物体Xを挟持したアクチュエータ10からエンコーダ情報を受信したコントローラ20が、かかるエンコーダ情報と、所定のプリセットデータとを比較して、物体Xが所定の大きさよりも大きいか否かを判定し、かかる判定の結果を1ビットの大小情報としてホスト30に送信する。これにより、専用の複雑なインタフェースを用いることなく、ホスト30に物体Xの大きさに関する情報を送信することができることから、コントローラ20とホスト30との間のインタフェースを簡易化することができる。
【0072】
なお、上記の実施形態では、
図3Aで示したプリセットデータ群に16個のデータセットが記憶されていたが、かかるデータセットの数は16個に限られない。判定を行いたい所定の大きさの数(すなわち、回転位置データの数)と、汎用インタフェースのピン数とを勘案して、必要に応じたデータセットの数でシステムを構築すればよい。
【0073】
以上のように、実施形態に係るモータ制御システム1は、アクチュエータ10と、コントローラ20とを備える。アクチュエータ10は、モータ11と、モータ11の回転位置を検出するエンコーダ12と、モータ11が回転することにより物体Xを挟持する挟持部13と、を有する。コントローラ20は、アクチュエータ10を制御する。そして、コントローラ20は、ホスト30に接続され、所定の大きさに対応する回転位置データ(回転位置P)がプリセットされ、回転位置データ(回転位置P)とエンコーダ12から取得した情報(エンコーダ情報)とに基づいて、所定の大きさと物体Xとの大小を判定し、判定の結果を1ビットのデータでホスト30に送信する。これにより、コントローラ20とホスト30との間のインタフェースを簡易化することができる。
【0074】
また、実施形態に係るモータ制御システム1において、コントローラ20には、所定の大きさに対応する回転位置データ(回転位置P)が複数プリセットされる(プリセットデータ群23a)。これにより、異なる所定の大きさに基づいて物体Xの大小を判定することができる。
【0075】
また、実施形態に係るモータ制御システム1において、コントローラ20は、回転位置データ(回転位置P)を連続的に切り替えることにより、複数の所定の大きさと物体Xとの大小を連続的に判定する。これにより、挟持部13での一度の挟持により、物体Xの大きさを複数のしきい値に基づいて判定することができる。
【0076】
また、上記実施の形態により本発明が限定されるものではない。上述した各構成要素を適宜組み合わせて構成したものも本発明に含まれる。また、さらなる効果や変形例は、当業者によって容易に導き出すことができる。よって、本発明のより広範な態様は、上記の実施の形態に限定されるものではなく、様々な変更が可能である。