(57)【要約】【課題】パソコンによる複数サーボの高速な同期制御を可能にするサーボ制御方法とシステムを提供すること。【解決手段】複数のサーボ１０，２０は、パソコン１のＵＳＢハブ５に接続する。各サーボについて、該サーボへ制御指令が出されてから最後のサーボへ制御指令が出されるまでの同期ずれ量を設定する。各サーボ１０または２０は、パソコン１から新しい制御指令が送信されてから、該サーボの同期ずれ量分だけ待機して、全サーボ１０，２０への制御指令が出そろった後に、制御指令を取り込む。【選択図】図１
2006309507.tif 000002
【特許請求の範囲】
【請求項１】
パソコンを用いて複数のサーボを制御するサーボ制御方法において、複数のサーボをパソコンのＵＳＢインターフェースに接続し、全サーボへの制御指令が出そろった後に各サーボに同時に制御指令を取り込ませることを特徴とするサーボ制御方法。
【請求項２】
請求項１に記載の方法において、各サーボについて、該サーボへ制御指令が出されてから最後のサーボへ制御指令が出されるまでの同期ずれ量を設定し、各サーボを、パソコンから新しい制御指令が送信されてから、パソコンのマスタクロックに同期して、該サーボの同期ずれ量分だけ待たせてから、該サーボに制御指令を取り込ませる、サーボ制御方法。
【請求項３】
パソコンと、このパソコンにより制御する複数のサーボとを含むサーボ制御システムにおいて、パソコンがＵＳＢインターフェースと、各サーボの作動を同期させるためのマスタクロックを発生する手段とを有し、各サーボは、ＵＳＢインターフェースを介してパソコンに接続されるとともに、該サーボへ制御指令が出されてから最後のサーボへ制御指令が出されるまでの同期ずれ量の経過を判定する手段を有し、各サーボが、パソコンから新しい制御指令が送信されてから、マスタクロックに同期して、該サーボの同期ずれ量分だけ待機してから制御指令を取り込むことを特徴とするサーボ制御システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、パーソナルコンピュータ（以下、パソコン）で複数のサーボを制御するサーボ制御方法とサーボ制御システムに関する。
【背景技術】
【０００２】
近年、パソコンの性能向上に伴って、パソコンに複数のサーボを組み合わせたシステムが産業用に用いられている。
パソコンに複数のサーボを組み合わせ、各サーボを同期して動作させるための方法として、シリアル通信インターフェースに複数のサーボをマルチドロップ方式で接続する１対多のシリアル通信方法がある（例えば、特許文献１参照）。
【特許文献１】特開平１０−３２６１０７号公報
【０００３】
マルチドロップ方式（マルチポイント接続）による高速シリアル通信の実際の手段として、ＲＳ−４２２インターフェースやＲＳ−４８５インターフェースが挙げられるが、通常、パソコンはこれらの通信インターフェースを備えていない。従って、パソコンでこのような通信を実現するには、専用の通信インターフェースを準備しなければならず、追加の構成部品を必要とする。
【０００４】
また、これらのインターフェースでも、通信速度はＫｂｐｓのオーダであり、サーボ制御のための通信としては比較的速度が遅い。
さらに、このサーボ制御方法では、同時に接続するサーボの個数に比例して、パソコンからサーボへ送るデータの全サイズが大きくなり、同時に接続できるサーボの台数に限界があるという問題がある。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
本発明は、上述した従来技術の問題点に鑑みて、パソコンによる複数サーボの高速な同期制御を可能にするサーボ制御方法の提供を目的とする。
本発明の別の目的は、上記方法を実施するための簡単で安価な構成のサーボ制御システムを提供することである。
【課題を解決するための手段】
【０００６】
最近のパソコンに標準装備されているＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）インターフェースは、データ通信速度が１２Ｍｂｐｓ（ＵＳＢ１．１）や４８０Ｍｂｐｓ（ＵＳＢ２．０）と比較的高速である。本発明は、これをサーボ制御システムに用いて、専用の通信インターフェースなど多くの追加部品を用いることなく、簡単に、複数サーボを接続可能な環境を実現する。
【０００７】
しかしながら、ＵＳＢ通信は、ホストと各端末との１体１の通信であり、複数のサーボへ同時にデータ送信することができず、各サーボの作動に時間的なズレが生じる。
そこで、本発明による、パソコンを用いて複数のサーボを制御するサーボ制御方法は、複数のサーボをパソコンのＵＳＢインターフェースに接続し、全サーボへの制御指令が出そろった後に各サーボに同時に制御指令を取り込ませることを特徴とする。
こうして、全サーボへの制御指令の到着を待って各サーボへの取り込みを行わせることにより、全サーボにおいて制御指令の取り込みタイミングを一致させることができる。
【０００８】
上記方法では、各サーボについて、該サーボへ制御指令が出されてから最後のサーボへ制御指令が出されるまでの同期ずれ量を設定することが好ましい。各サーボを、パソコンのマスタクロックに同期して、この同期ずれ量だけ待機させることによって、全サーボにおける制御指令取り込みタイミングの一致を確実にすることができる。
【０００９】
パソコンと、このパソコンにより制御する複数のサーボとを含む、本発明による、サーボ制御システムでは、上記方法を実施するために、パソコンがＵＳＢインターフェースと、各サーボの作動を同期させるためのマスタクロックを発生する手段とを有する。各サーボは、ＵＳＢインターフェースを介してパソコンに接続されるとともに、該サーボへ制御指令が出されてから最後のサーボへ制御指令が出されるまでの同期ずれ量の経過を判定する手段を有する。各サーボは、パソコンから新しい制御指令が送信されてから、マスタクロックに同期して、該サーボの同期ずれ量分だけ待機してから制御指令を取り込む。
【発明の効果】
【００１０】
本発明のサーボ制御方法とシステムによると、パソコンのＵＳＢインターフェースを利用して、汎用パソコンの構成を大きく変更することなく、従って比較的簡単で安価に、複数サーボの高速な同期制御を実現することができる。
そのため、この種サーボシステムの産業用への適用を拡大し得る効果がある。
【発明を実施するための最良の形態】
【００１１】
以下、本発明を、添付図面に示す実施形態に基づいて、詳細に説明する。
図１を参照すると、本発明の実施形態によるサーボ制御システムは、パソコン１と、このパソコンに接続した第１と第２のサーボ（サーボコントローラ１０，２０のみを図示）とを有する。
パソコン１は、ＣＰＵ（演算処理装置）２と、サーボコントローラ用の送受信データを格納するメモリ３と、ＵＳＢコントローラ４と、内蔵ＨＵＢ５と、クロック８とを有する。
一方、サーボコントローラ１０，２０には、ＣＰＵ７ａ，７ｂと通信ＩＣ６ａ，６ｂがそれぞれ搭載されている。
【００１２】
パソコン１のメモリ３は、ＣＰＵ２およびＵＳＢコントローラ４の両方からアクセス可能である。また、ＵＳＢコントローラ４は、クロック８からマスタクロックを生成する機能を有している。ＵＳＢコントローラ４は、このマスタクロックに同期して、メモリ３内の送受信情報を読み取り、サーボコントローラ１０，２０への送受信の必要がある場合、それらの通信ＩＣ６ａ，６ｂに対して、送信要求および受信要求を出す。
これに応じて、サーボコントローラ１０，２０側では、通信ＩＣ６ａ，６ｂが、送信要求の場合には送られたデータを内部メモリへ格納し、受信要求の場合は、内部メモリのデータをパソコン側のＵＳＢコントローラ４へ送信する。
これらパソコン１とサーボコントローラ１０，２０の構成と機能は、本発明に関連する部分を除いて従来と同様でよく、本文ではこれ以上の説明を行わない。
【００１３】
続いて、図２と図３に示す動作タイムチャートを参照して、上述したサーボ制御システムの作動を説明する。
図２は、このサーボ制御システムで、本発明による同期処理を行わない場合の動作タイムチャートである。ＵＳＢ通信では、コントローラ４のマスタクロックはフレームとも呼ばれ、フレーム毎にＳＯＦ（Ｓｔａｒｔ  ｏｆ  Ｆｒａｍｅ）パケットと称する同期データが、コントローラ４から全局一括で送信される。
サーボコントローラ１０，２０では、通信ＩＣ６ａ，６ｂがこのＳＯＦパケットを受信すると、それぞれ対応するＣＰＵ７ａ，７ｂへ割り込みを発生させる。
【００１４】
パソコン１に、第１と第２のサーボへ送信するデータが有ると、図２の最初のマスタクロックサイクル２１で、送信要求をメモリ３に格納する（２３）。
続くマスタクロックサイクル２１ａで、ＵＳＢコントローラ４は、メモリ３に第１のサーボの送信要求があるので、サーボコントローラ１０の通信ＩＣ６ａに対してデータを送信する（２４ａ）。データ送信が完了すると、ＵＳＢコントローラ４はパソコンのＣＰＵ２に対して割り込みを発生させる。割り込みを受けたＣＰＵ２は、次のマスタクロックサイクルで第１のサーボからデータを受信するため、受信要求をメモリ３に格納する（２３ａ）。
【００１５】
次のマスタクロックサイクル２１ｂでは、ＳＯＦパケットによる割り込みを受けたサーボコントローラ１０のＣＰＵ７ａが、パソコンからのデータを通信ＩＣ６ａの内部メモリから取り込む（２８ｂ）。また、このサーボからパソコン１へ送るデータを、通信ＩＣ６ａの内部メモリに書き込む。
次いで、パソコンのＵＳＢコントローラ４は、メモリ３に第１のサーボからの受信要求があるので、サーボコントローラ１０の通信ＩＣ６ａに対して受信要求を送信する（２４ｂ）。通信ＩＣ６ａは受信要求を受けて、内部メモリのデータをＵＳＢコントローラ４へ返信する（２６ｂ）。データの受信が完了すると、USBコントローラ４はＣＰＵ２に対して割り込みを発生させる。割り込みを受けたＣＰＵ２は、次のマスタクロックサイクルで第２のサーボへデータを送信するため、送信要求をメモリ３に格納する（２３ｂ）。
【００１６】
次のマスタクロックサイクル２１ｃでは、パソコンのメモリ３に第２のサーボへの送信要求があることから、ＵＳＢコントローラ４はサーボコントローラ２０の通信ＩＣ６ｂに対して、データを送信する（２５ｃ）。データ送信が完了すると、ＵＳＢコントローラ４はＣＰＵ２に対して割り込みを発生させる。割り込みを受けたＣＰＵ２は、次のマスタクロックサイクルで第２のサーボからデータを受信するため、受信要求をメモリ３に格納する（２３ｃ）。
続いて、マスタクロックサイクル２１ｄでは、ＳＯＦパケットによる割り込みを受けたサーボコントローラ２０のＣＰＵ７ｂが、パソコンからのデータを通信ＩＣ６ｂの内部メモリから取り込み（２９ｄ）、また、このサーボからパソコン１へ送るデータを、通信ＩＣ６ｂの内部メモリに書き込む。
【００１７】
次いで、パソコンのＵＳＢコントローラ４は、メモリ３に第２のサーボからの受信要求があるので、サーボコントローラ２０の通信ＩＣ６ｂに対して受信要求を送信する（２５ｄ）。通信ＩＣ６ｂは受信要求を受けて、内部メモリのデータをＵＳＢコントローラ４へ返信する（２７ｄ）。データの受信が完了すると、USBコントローラ４はＣＰＵ２に対して割り込みを発生させる。割り込みを受けたＣＰＵ２は、次のマスタクロックサイクルで第１のサーボへデータを送信するため、送信要求をメモリ３に格納する（２３ｄ）。
【００１８】
その後のマスタクロックサイクル２１ｅ以降は、上述したマスタクロックサイクル２１ａから２１ｄまでを順次繰り返す。図１のサーボ制御システムでは、こうしてパソコン１と第１と第２のサーボ間でデータ通信を行う。
ところで、図２に見られるように、サーボコントローラ１０においてＣＰＵ７ａがパソコンからの制御指令を取り込むタイミング２８ｂと、サーボコントローラ２０のＣＰＵ７ｂがパソコンからの制御指令を取り込むタイミング２９ｄは、マスタクロックサイクルで２周期分ずれている。このずれ量が制御指令の同期ずれ量となる。また、各サーボコントローラが制御指令を取り込む周期は、マスタクロックサイクル数回に１回の割合となり、この方式では第１と第２のサーボへの指令を同時に取り込ませることはできない。
【００１９】
本発明の制御方法は全サーボへの指令が到着するタイミングで各サーボコントローラに指令を取り込ませる同期処理を行うものであり、本例のサーボ制御システムは、そのための手段を設けている。
この手段として、サーボコントローラ１０，２０のＣＰＵ７ａ，７ｂに、同期処理を実施するための同期カウンタを準備し、更に、同期ずれ量を各サーボへ送信しておく。この同期ずれ量は、同期処理を行わない場合に各サーボが制御指令を取り込むタイミングのずれ量である。同期ずれ量は、制御指令を最後に受け取るサーボにおける量を０として、パソコンに接続するサーボの個数Nにより、サーボ＃ｎの同期ずれ量＝（Ｎ−ｎ）×２の式により決定する。
本例のサーボ制御システムでは、第１のサーボでは同期ずれ量２、第２のサーボでは０となる。
【００２０】
この手段による同期処理のフローチャートを、図５に示す。
前述のようにマスタクロック周期毎にＳＯＦパケットが送信されることにより、サーボコントローラの各ＣＰＵ７ａまたは７ｂには割り込みが発生し、図５の同期処理ルーチンを実行する（ステップ５１）。
この同期処理では、まずステップ５２で、パソコン１から新しい制御指令があるかどうかを判定する。新しい制御指令がある場合、ステップ５３へ移って、同期カウンタ値が０かどうかを判定し、０の場合には、そのサーボに予め設定された同期ずれ量を同期カウンタへ代入する（ステップ５５）。一方、同期カウンタ値が０でない場合には、ステップ５４で同期カウンタ値を１減らす。次に、ステップ５６に移って、同期カウンタ値が０かどうかを再度判定する。同期カウンタ値が０の場合に初めて、制御指令を通信ＩＣ６ａまたは６ｂから取り込んで（ステップ５７）、ルーチンを終了する（ステップ５８）。
【００２１】
図３は、本例のサーボ制御システムにおいて上述の同期処理を行った場合の動作タイムチャートである。
このタイムチャートに示すマスタクロック３１〜３１ｅや、その他のタイミング３２〜３７ｄは、図２のタイミング２２〜２７ｄにそれぞれ対応するものであり、説明を行わない。
サーボコントローラ１０では、ＣＰＵ７ａが、図５の同期処理ルーチンにより、新しい制御指令が送られていても直ぐに取り込まず、同期ずれ量２の分だけタイミングを待って、制御指令を取り込む（３８ｄ）。同時に、サーボコントローラ２０でも、ＣＰＵ７ｂが制御指令を取り込む。こうして、第１のサーボがパソコン１からの制御指令を取り込むタイミング３８ｄと、第２のサーボが制御指令を取り込むタイミング３９ｄは、図３に見られるように一致し、制御指令の実行タイミングが同期する。
【００２２】
次に、参考のために、図１のシステム構成において、特開平１０−３２６１０７が提案しているような１対多の通信によるサーボ制御方法を実施できると仮定した場合の動作タイムチャートを図４に示す。
図４にみられるように、この方法によると、各サーボで制御指令を取り込む周期４６〜４７ｅは、マスタクロックサイクル４１〜４１ｅと一致する。従って、本発明による、マスタクロックサイクル数回３１〜３１ｅに１回の割合で制御指令を取り込むサーボ制御方法と比較して、制御指令を取り込む周期が短いという利点がある。
図４のタイムチャート中のタイミング４２〜４５ｅは、図２や３中の対応タイミングと同様のものであり、説明を省略する。
【００２３】
しかし、１対多の通信では、１つのマスタクロックサイクル内で、全サーボとの送受信を行う必要がある。そのため、同時に接続するサーボの数に比例して通信データ量が多くなり、通信時間が長くなるため、同時に接続できるサーボの数が自ずと限られるという問題がある。
一方、本発明によるサーボ制御方法は、１マスタクロックサイクル内では、１つのサーボとの送信または受信のみであるため、１マスタクロックサイクル内での通信時間が同時に接続するサーボの数に依存しない。すなわち、同時に接続できるサーボの数に通信上の制約がないという利点がある。
【００２４】
以上、本発明を図示の実施形態に基づいて説明したが、本発明はこの特定形態にのみ限定されるものでなく、添付の特許請求の範囲による定義内で、説明した形態に種々の変更を加えることができ、若しくは本発明を別の形態で実施し得る。
例えば、上述した実施形態はパソコンに接続したサーボが２つであるが、説明したように、接続するサーボの数に通信上の制限はなく、その他の条件が許す限りで多数のサーボを設置することが可能である。
【図面の簡単な説明】
【００２５】
【図１】本発明の実施形態によるサーボ制御システムの構成を示すブロック図である。
【図２】図１のシステムで同期処理を行わない場合の動作タイムチャートである。
【図３】図１のサーボ制御システムの動作タイムチャートである。
【図４】１対多の従来例のサーボ制御方法による動作タイムチャートである。
【図５】図１のサーボ制御システムによる同期処理のフローチャートである。
【符号の説明】
【００２６】
１  パソコン
４  ＵＳＢコントローラ
５  ＵＳＢハブ
８  クロック
１０，２０  サーボコントローラ（サーボ）
【図１】
2006309507.tif 000003
【図２】
2006309507.tif 000004
【図３】
2006309507.tif 000005
【図４】
2006309507.tif 000006
【図５】
2006309507.tif 000007