(57)【特許請求の範囲】
【請求項１】
サーボドライブ装置がコントローラとシリアルインターフェースで接続され、前記コントローラは前記シリアルインターフェースを介して制御指令と制御データとで構成された送信データを予め定められた通信周期ごとに前記サーボドライブ装置に送信し、前記サーボドライブ装置は前記制御指令に基づいて予め定められたサーボドライブ周期でサーボモータを駆動制御するサーボシステムにおいて、
前記制御データには前記送信データに含まれる０または１以上の前記制御指令の数を指定する制御指令数を含み、
前記送信データには前記制御指令数で定められた数の前記制御指令を含み、
前記コントローラは、前記通信周期ごとに前記通信周期と前記サーボドライブ周期との周期比に基づいて求められる数の前記制御指令を生成し、該数を前記制御データの制御指令数に設定すると共に、生成した前記制御指令を前記送信データに設定して前記シリアルインターフェースを介して送信し、
前記サーボドライブ装置は、前記シリアルインターフェースを介して受信した前記送信データに含まれる前記制御データの制御指令数の前記制御指令を制御手段格納手段に順次格納し、前記制御手段格納手段に格納された前記制御指令を前記サーボドライブ周期で順次読出し前記サーボモータを駆動制御することを特徴とするサーボシステム。
【請求項２】
前記制御指令数は、前記通信周期ごとまたは前記シリアルインターフェースに接続されている前記サーボドライブ装置ごとに可変とすることを特徴とする請求項１記載のサーボシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コントローラからのネットワークを介した制御指令によりサーボを制御するサーボシステムに関する。
【背景技術】
【０００２】
従来においては、複数台のサーボモータを制御するシステムは、通信インターフェースを介してコントローラとサーボドライブ装置は１対Ｎで接続する。特に、複数台のサーボモータによるテーブルの位置決めなどの場合には、複数のサーボモータの動作を同期させる必要があり、サーボドライブ装置への指令払い出しやサーボモータからのフィードバック入力のタイミングを同期させる手段が必要であった。
これに対し、コントローラが、異なるサーボドライブ仕様の複数台のサーボモータをシリアル通信で制御するシステムでは、サーボドライブ仕様ごとにグルーピングし、そのグループごとにシリアル通信ラインを設け、それぞれの通信ラインでは最適の通信プロトコルを適用していた。そして、デージチェーン形式などのシリアル通信ラインを介してコントローラとサーボドライブ装置は１対Ｎで接続していた（特許文献１参照）。
従来のサーボシステムは、通信周期とサーボドライブの制御周期は同一であり、コントローラからネットワークを介してサーボドライブ装置に通信周期ごとに送られる制御指令は、サーボドライブ周期１回分のものであり、サーボドライブ装置では、通信周期ごとにコントローラから送られてきた制御指令に基づいてサーボ制御を行なっていた。
【特許文献１】特開平９−５４６０９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
従来のサーボシステムでは、コントローラとサーボドライブ装置がネットワークで接続され、コントローラからネットワークを介してサーボドライブ装置に制御指令を出して制御する際に、通信周期ごとにサーボドライブの制御周期（サーボドライブ周期）１回分の制御指令を出しているため、ネットワークの通信周期とサーボドライブ周期を同一とする必要があり、サーボドライブ周期を変更できないう問題があった。
特に、ネットワークとしてオープンなネットワーク及び通信プロトコルを使用する場合には、通信周期を自由に決めることができず、サーボドライブ周期を通信周期にあわせなければならないという問題があった。例えば、定通信周期のＩＥＥＥ１３９４などをネットワークとして使用した場合、通常のプロトコルでは通信周期は１２５μｓであり、サーボドライブ制御周期もこれにあわせる必要がある。
本発明はこのような問題点に鑑みてなされたものであり、使用する機器の性能や機能に応じて、通信周期とサーボドライブ周期の組み合わせを自由に設定することができるサーボシステムを提供することを目的とする。
【課題を解決するための手段】
【０００４】
上記問題を解決するため、本発明は、次のように構成したのである。
請求項１に記載の発明は、サーボドライブ装置がコントローラとシリアルインターフェースで接続され、前記コントローラは前記シリアルインターフェースを介して制御指令と制御データとで構成された送信データを予め定められた通信周期ごとに前記サーボドライブ装置に送信し、前記サーボドライブ装置は前記制御指令に基づいて予め定められたサーボドライブ周期でサーボモータを駆動制御するサーボシステムにおいて、前記制御データには前記送信データに含まれる０または１以上の前記制御指令の数を指定する制御指令数を含み、前記送信データには前記制御指令数で定められた数の前記制御指令を含み、前記コントローラは、前記通信周期ごとに前記通信周期と前記サーボドライブ周期との周期比に基づいて求められる数の前記制御指令を生成し、該数を前記制御データの制御指令数に設定すると共に、生成した前記制御指令を前記送信データに設定して前記シリアルインターフェースを介して送信し、前記サーボドライブ装置は、前記シリアルインターフェースを介して受信した前記送信データに含まれる前記制御データの制御指令数の前記制御指令を制御手段格納手段に順次格納し、前記制御手段格納手段に格納された前記制御指令を前記サーボドライブ周期で順次読出し前記サーボモータを駆動制御するものである。
また、請求項２に記載の発明は、送信データに含まれる制御指令の数は、通信周期ごとまたはシリアルインターフェースに接続されているサーボドライブ装置ごとに可変とするものである。
【発明の効果】
【０００５】
本発明によると、コントローラから出力される送信データの通信周期とサーボドライブ装置でサーボモータを駆動制御するサーボドライブ周期を一致させる必要が無く、組み合わせを柔軟に選択することができる。この柔軟な組み合わせにより、サーボモータで駆動される機器の性能や機能に最適のサーボドライブ周期と制御方法を選択することができる。
【発明を実施するための最良の形態】
【０００６】
以下、本発明の方法の具体的実施例について、図に基づいて説明する。
【実施例１】
【０００７】
図１は、本発明のサーボシステムの構成図である。図において、１００はコントローラであり、２０１，２０２，２０３はサーボドライブ装置であり、３０１，３０２，３０３はサーボモータであり、４００はネットワークである。
コントローラ１００は、予め定められた通信周期ごとに、ネットワーク４００を介して、サーボモータ３０１，３０２，３０３を駆動制御するための位置指令、速度指令、あるいはトルク指定をサーボドライブ装置２０１，２０２，２０３へ送信する。サーボドライブ装置２０１は、コントローラから受信した制御指令とサーボモータ３０１からの位置フィードバックとから、予め定められたサーボドライブ周期ごとに駆動指令を生成し、サーボモータ３０１を駆動制御する。また、サーボモータ３０１の位置フィードバックとサーボドライブ装置２０１の内部状態信号が、ネットワーク４００を介して、通信周期ごとにコントローラ１００へ送信するようになっている。サーボドライブ装置２０２とサーボモータ３０２の組、およびサーボドライブ装置２０３とサーボモータ３０３の組も同様であり、この３つのサーボモータ３０１，３０２，３０３で、例えばステージのＸ，Ｙ，Ｚの各軸を動作するようになっている。
【０００８】
図２は、本発明のサーボドライブ装置のブロック図である。図において、２１０は伝送インターフェースであり、２２０は制御指令格納手段であり、２３０はサーボドライブ部である。制御指令格納手段２２０は、サーボドライブ装置のＣＰＵのメモリに割り付けられても良い。
伝送インターフェース２１０は、通信周期ごとに受信した制御指令（位置、速度、あるいはトルク）を、制御指令格納手段２２０に書き込む。また、図示していないが、サーボモータの位置フィードバック、サーボドライブ装置の内部状態信号などを送信する。サーボドライブ部２３０は、サーボドライブ周期ごとに制御指令格納手段２２０に格納された制御指令を読み出し、制御指令とサーボモータから位置フィードバックを使ってサーボモータ駆動指令を生成し、サーボモータへ出力して駆動制御する。
制御指令格納手段２２０は、先入先出ができる構造で構成されている。伝送インターフェース２１０は、通信周期ごとに送信データに含まれる制御指令数で定められた数の制御指令をすべて制御指令格納手段２２０に順次格納する。サーボドライブ部２３０は、伝送インターフェース２１０によって制御指令格納手段２２０に格納された制御指令を順次読み出しされる。図２では、制御指令格納手段２２０をシフトレジスタのイメージで記載しているが、リングバッファの形式でも同様の効果を奏する。
【０００９】
図３は、コントローラ１００からサーボドライブ装置２０１，２０２，２０３のそれぞれに送信される送信データの一例のフォーマット図である。コントローラ１００からの送信データは、図の左から右の順に送信される。
図３は、コマンドが制御指令であるときの例である。このフォーマットでは、送信される順に、通信（送受信）の同期を確立するためのプリアンブル、データ列の始まりを示すフラグ、送信対象であるサーボドライブ装置固有の識別符号であるアドレス、サーボドライブ装置への指令内容を示すコマンド（図の例では、コマンドは制御指令であり、ここが制御指令であることを示すデータまたは符号が格納される）、本送信データに含まれる制御指令の数を示す制御指令数、サーボモータを駆動制御するための位置指令、速度指令あるいはトルク指令で表された制御指令、送信データ誤り検出用の符号であるＣＲＣＣ、最後にデータ列の終わりを示すフラグとなっている。トルク指令は、これに代わる電流指令であってもかまわない。
図の例において、制御指令数には０以上の整数に相当する符号が格納され、制御指令数に応じた数の制御指令がその後ろに続けて送信されることとなる。すなわち、制御指令数が1であれば制御指令数の後ろに１つの制御指令が格納され、制御指令数が２であれば２つの制御指令が格納される。
【００１０】
以下、通信周期がサーボドライブ周期の１．５倍であると仮定して、本発明によるサーボシステムの動作の一例を説明する。
また、コントローラにおいて、制御開始前にサーボドライブ周期とネットワークの通信周期を認識しているものとする。自動的に認識するのか、オペレータによる設定により認識させるのかは問わない。
通信周期がサーボドライブ周期の１．５倍であるとき、次の通信周期で制御指令を送信するまでの間に、サーボドライブ装置では２回目のサーボドライブ周期が開始されるため、最初は最低でも２サーボドライブ周期分の制御指令が必要となる。
図４は、本発明の送信データと制御指令の整合を説明するタイミングチャートの例である。尚、本図の送信データは、制御指令数及び制御指令以外を省いている。
コントローラでは、まず２サーボドライブ周期分の制御指令を生成する。次に、コマンドを「制御指令」、制御指令数を「２」、および生成した２個の制御指令を設定した送信データを第１通信周期で、ネットワークを介して対象のサーボドライブ装置へ送信する。（第１通信周期）
【００１１】
サーボドライブ装置では、コントローラから制御データを受信すると、伝送インターフェースで受信され、制御指令は制御指令格納手段に格納され、この格納された制御指令は、サーボドライブ装置のサーボドライブ周期で順次読み出され、サーボモータを駆動制御する。前述の第１通信周期の送信データを受信し格納された制御指令は、第１サーボドライブ周期で第１制御指令が制御指令格納手段から読み出され、この制御指令に基づき第１サーボドライブ周期の間のサーボモータを駆動制御する。この例では、通信周期の方がサーボドライブ周期より長いため、次の制御データを受信する前に第２サーボドライブ周期が開始され、第２制御指令に基づくモータの駆動制御が行なわれる。
この間、コントローラでは、第２通信周期で送信する制御指令を生成する。通信周期がサーボ制御周期の１．５倍のため、２通信周期で３サーボドライブ周期分の制御指令が必要であり、第１通信周期で２サーボドライブ周期分の制御指令を送信しているので、第２通信周期は次の１サーボドライブ周期分の制御指令が必要となる。
コントローラでは、第３サーボドライブ周期の制御指令を生成する。次に、コマンドを「制御指令」、制御指令数を「１」、および生成した１個の制御指令を設定した送信データを生成し、ネットワークを介してサーボドライブ装置へ送信する。
サーボドライブ装置では、第３サーボドライブ周期（図示していないが、第２サーボドライブ周期に続くサーボドライブ周期である）で、第２通信周期で受信した第３制御指令を使ってサーボモータ駆動制御を実行する。
【００１２】
この例では、この次の通信周期とサーボドライブ周期が一致するはずである。しかしながら、通信周期とサーボドライブ周期は別のタイマを使用しているため、わずかにずれが生じる可能性がある。このため、サーボドライブ装置内でサーボドライブ周期を通信周期にあわせて補正する必要がある。
以降も同様の手順で、コントローラ、ネットワーク、サーボドライブ装置の処理が実行される。
【００１３】
以上の実施例では、通信周期のほうがサーボドライブ周期より長い場合を仮定したが、逆の場合も考えられる。この場合は、ある通信周期で制御指令数を「０」とすることで周期比に基づき正しい数の制御指令を送信することができる。
さらに、本発明によると、１台のコントローラに複数のサーボドライブ装置を接続したシステムにおいて、各サーボドライブ装置のサーボドライブ周期が異なる場合にも対応することが可能である。
【００１４】
本発明が特許文献１と異なる部分は、通信周期とサーボドライブ周期が異なるサーボドライブシステムで、コントローラはこの周期比に基づいて送信する制御指令の数を調整し、サーボドライブ装置では、制御指令格納手段を備え、サーボドライブ周期ごとに整合された制御指令に基づきサーボモータを駆動制御する部分である。
【００１５】
上述の実施例では、各サーボドライブ周期で必要かつ最小限の制御指令を送信しているが、サーボドライブ周期とネットワークの通信周期を誤って認識していると、サーボドライブ装置側に必要な個数だけ制御指令が送信されて来ない場合も考えられる。サーボドライブ装置では、受信した制御データ中の制御指令数により、判断することが可能である。制御システムの仕様、制御状態、制御指令の種類などにもよるため一概には言えないが、エラーとすること以外にも、不足している分はＮＯＰ（無効コマンド）を受信したとして動作することも考えられる。
逆に、制御指令の個数が制御に必要な数より多い場合も考えられる。受信エリアは通信周期ごとに更新されるため、実際にはそのまま使用することは少ない。サーボドライブ装置内の別のバッファにコピーしておき、受信した順に処理する方法がとられる。
【００１６】
本実施例では、コントローラ1台に対してサーボドライブ装置およびサーボモータは３組としているが、構成はこれに限定されるものではない。また、コントローラとサーボドライブ装置との接続をネットワークとしているが、各１台を一般に使用される例えばＥＩＡ−ＲＳ４２２などのシリアル通信や無線通信で接続されるときも同様である。
【図面の簡単な説明】
【００１７】
【図１】本発明のサーボシステムの構成図
【図２】本発明のサーボドライブ装置のブロック図
【図３】本発明の送信データフォーマットの一例を示す図
【図４】本発明の送信データと制御指令の整合を説明するタイミングチャート
【符号の説明】
【００１８】
１００  コントローラ
２０１，２０２，２０３  サーボドライブ装置
２１０  伝送インターフェース
２２０  制御指令格納手段
２３０  サーボドライブ部
３０１，３０２，３０３  サーボモータ
４００  ネットワーク
【図１】
0004548613.tif 000002
【図２】
0004548613.tif 000003
【図３】
0004548613.tif 000004
【図４】
0004548613.tif 000005