(57)【要約】【課題】  コントローラから絶対時間を付与しない制御指令を非同期通信方式で送信し、複数のモータを同期制御させる分散型モーション制御システムを提供する。【解決手段】  コントローラは各サーボアンプへ形状指令データ送信後、パラメータ加速度データ、パラメータ加加速度データ、パラメータ位置指令データまたはパラメータ速度指令データを各サーボアンプへ非同期通信方式で一斉同報送信し、各サーボアンプが、同期信号で定められたタイミングで、それぞれ受信した形状指令データおよびパラメータ加速度データ、パラメータ加加速度データ、パラメータ位置指令データまたはパラメータ速度指令データを処理し、各モータ間での同期制御を実現するため、絶対時間指令データを作成することなく、コントローラが非同期通信方式を使って、モータ群を同期制御することができる。【選択図】図１
2009020547.tif 000002
【特許請求の範囲】
【請求項１】
コントローラと複数のサーボアンプが通信線で接続された分散型モーション制御システムにおいて、
前記コントローラは、補間する曲線の形状を示す形状指令データと、前記曲線のパラメータの時間に対する加速度を示すパラメータ加速度指令データとを前記複数のサーボアンプへ送信する手段を備え、
前記サーボアンプは、前記通信線上で同報送信される同期信号を受信してカウントアップイベントを生成する通信インタフェースと、軸制御部に対する起動イベントを生成するタイマと、前記形状指令データと前記パラメータ加速度指令データを受信する非同期通信部と、前記形状指令データと前記パラメータ加速度指令データに基いて前記サーボモータを制御する軸制御部とを備えたことを特徴とする分散型モーション制御システム。
【請求項２】
前記コントローラは、前記パラメータ加速度指令データに代えてパラメータ加加速度指令データを前記サーボアンプへ一斉同報送信し、前記サーボアンプは、前記パラメータ加速度指令データに代えてパラメータ加加速度指令データを受信することを特徴とする請求項１に記載の分散型モーション制御システム。
【請求項３】
前記コントローラは、前記パラメータ加速度指令データに代えてパラメータ位置指令データを前記サーボアンプへ一斉同報送信し、前記サーボアンプは、前記パラメータ加速度指令データに代えてパラメータ位置指令データを受信することを特徴とする請求項１に記載の分散型モーション制御システム。
【請求項４】
前記コントローラは、前記パラメータ加速度指令データに代えてパラメータ速度指令データを前記サーボアンプへ一斉同報送信し、前記サーボアンプは、前記パラメータ加速度指令データに代えてパラメータ速度指令データを受信することを特徴とする請求項１に記載の分散型モーション制御システム。
【請求項５】
前記同期信号を前記コントローラが生成することを特徴とする請求項１ないし請求項４の何れかに記載の分散型モーション制御システム。
【請求項６】
前記同期信号をある一つの前記サーボアンプが生成することを特徴とする請求項１ないし請求項４の何れかに記載の分散型モーション制御システム。
【請求項７】
前記コントローラは、前記形状指令データおよび前記パラメータ位置指令データ、前記パラメータ速度指令データ、前記パラメータ加速度指令データ若しくは前記パラメータ加加速度指令データから構成される一組のモーション指令データを複数個前記複数のサーボアンプへ送信する手段と、制御開始指令データを前記サーボアンプへ一斉同報送信する手段とを備え、
前記サーボアンプは、前記モーション指令データを記憶するバッファを備え、前記制御開始指令データの受信を確認するまで、前記モーション指令データの処理を待機する手段を備えることを特徴とする請求項１ないし請求項６の何れかに記載の分散型モーション制御システム。
【請求項８】
前記通信線がＩＥＥＥ１３９４シリアルバスであることを特徴とする請求項１ないし請求項７の何れかに記載のモーション制御システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロボットなどに用いられるモータをネットワークで接続し、複数台のモータが同期して動作するモーション制御システムに関する。
【背景技術】
【０００２】
従来、工作機械やロボットといった産業用機械においては、モーションコントローラと複数のサーボアンプがネットワークで接続され、モーションコントローラが複数サーボモータを同期して動作させるモーション制御システムが一般的な構成である。
【０００３】
また近年では、パーソナルコンピュータ（以下、「パソコン」という）の高性能化および低価格化を背景として、パソコンを利用したモーションコントローラが提案されている。特に、パソコン上で稼動するMicrosoft社製Windows（登録商標）オペレーティングシステム（以下、「Windows」という）といった非リアルタイムオペレーティングシステム（以下、「非リアルタイムＯＳ」という）を利用したモーションコントローラが注目されている。
【０００４】
以前にも、Windowsを利用したモーションコントローラや数値制御装置は開発されていたが、パソコンに数値制御用およびサーボアンプとの通信インタフェースとなる拡張ボードを装着して、サーボアンプへの指令データをこの拡張ボード上で作成しサーボアンプへ送信する、といった構成および処理が実施されていた。
【０００５】
しかし、この構成ではパソコンに装着する専用の拡張ボードが必要であり、パソコンの形状（デスクトップ型またはノートブック型）の違いにより拡張ボードが使用できないといった問題や、拡張ボード用のスロットがすべて使用済みの場合、さらに拡張ボードを追加することができないといった問題があった。
この問題を解決するために、パソコンに標準で装備されているインタフェースを使用して、モーション制御用のWindowsアプリケーションをインストールするだけでモーション制御が可能となるモーション制御システムが提案されている。
【０００６】
このようなモーション制御システムの一例として、特許文献１にはＬＡＮを利用した数値制御システムが開示されている。特許文献１においては、非同期通信機能を備えたパソコンと、非同期通信する機能と各モータの処理時刻を表す絶対時間指令データを処理する機能とを備えたサーボアンプとが通信線で接続されている。
【０００７】
図７は、特許文献１の数値制御システムの構成を示すブロック図である（特許文献１  参照）。図７において、コンピュータ装置としてのパソコン７１０は、ＣＰＵ、外部記憶装置としてのハードディスク等のメモリ及びＬＡＮ等のネットワークとの非同期通信機能を備えている。
【０００８】
複数のサーボアンプ７３０〜７３Ｎは、対応する各軸のサーボモータ７４０〜７４Ｎを制御し、絶対時間を用いた同期補間制御機能およびＬＡＮ等のネットワークとの非同期通信機能を備えている。
【０００９】
スイッチング・ハブ７２０は、切り替え回路を備え、ＬＡＮ等のネットワークにおいて２デバイス間の専用通信を可能にするために一般的に設けられている装置である。
【００１０】
図７に示す数値制御システム は、パソコン７１０と、複数のサーボアンプ７３０〜７３Ｎとが、例えばネットワークとしてのＬＡＮ７１５上に配置されるスイッチング・ハブ７２０を介して接続される構成である。ＬＡＮ７１５上では、例えばＴＣＰ／ＩＰを用いた非同期通信が行われる。
【００１１】
また、サーボアンプ７３０〜７３Ｎの間は、非常停止などを通知するホットライン７８０によって接続されている。
【００１２】
また、図８は特許文献１の数値制御システムにおけるサーボアンプの構成を示すブロック図である（特許文献１  １２ページ  図３参照）。サーボアンプ７３０〜７３Ｎは、全て同様の構成である。図８では、代表としてサーボアンプ７３０を取り上げている。
【００１３】
図８において、サーボアンプ７３０は、軸制御部としての機能を実現するサーボアンプＣＰＵ８１０と、ＬＡＮ７１５を介して信号授受を行い、ＬＡＮ７１５からサーボアンプ通信データ８７０を取り込む等を行うＬＡＮインターフェース回路８３０と、サーボモータ７４０を回転駆動するサーボモータ回転制御回路８４０と、絶対時間を示す内部タイマー８５０とが、内部バスを介して接続される構成である。ＬＡＮインターフェース回路３０には、通信データを一時的に保管するため通信データバッファメモリ８８０が接続されている。
【００１４】
また、ホットライン７８０を介して信号授受を行うＩ／Ｏインターフェース回路８６０が設けられている。ホットライン７８０の信号（内部信号）には、同期時間補正信号８２０とが含まれている。
【００１５】
次に、図８を参照して、各サーボアンプの動作について説明する。ＬＡＮ７１５から絶対位置指令データ｛データＩＤｎ、制御軸番号ＡＸ１ｎ、絶対時間指令Ｔ、位置指令Ｆ｝が受信されると、通信データバッファメモリ８８０に一時保管される。次に、通信データバッファメモリ８８０から絶対位置指令データを読み出し、絶対時間指令データＴと内部タイマー８５０の実時間データｔとの一致不一致を比較し、Ｔ＝ｔであるか否かを判断し、Ｔ＝ｔとなるまで処理を中断し、Ｔ＝ｔとなった時点で、絶対位置指令データに基づきサーボモータの回転数を演算し、サーボモータの駆動電流を制御してサーボモータを回転駆動する。これによって、複数のサーボアンプ７３０〜７３Ｎ間で同期を取りながら、サーボモータを回転させることができる。
【００１６】
また、Ｉ／Ｏインタフェース回路８６０がホットライン７８０を通して同期時間補正信号７２０を受信すると、内部タイマ８５０の時刻を補正することにより、各サーボアンプ７３０〜７３Ｎ間の絶対時間を調整する。
【００１７】
このように、この実施の形態によれば、パソコン７１０が複数のサーボアンプ７３０〜７３Ｎに対し、ＬＡＮ７１５を介した非同期通信によって絶対時間指令を送信することにより、複数のサーボアンプ７３０〜７３Ｎ間で同期補間制御が行える。
【００１８】
この方法を、サーボモータを２軸使用する構成のモーション制御システムにおいて考察する。この構成にて、電子カム機能を実現する方法について述べる。電子カム機能とは、数値制御装置で制御される機械の各軸が同期して動作をするパステーブル運転のことであり、基準軸位置に対応して制御軸の位置情報をメモリに設けられたパステーブル運転データテーブルに記憶しておき、このデータテーブルに記憶された情報に基づいて、各々の制御軸を基準軸と同期運転するといった実現手段がすでに公知である（例えば、特許文献２  参照）。
【００１９】
サーボモータＭ１，Ｍ２から構成されるモーション制御システムにおいて、仮想マスタ軸Ａに対して、サーボモータＭ１およびサーボモータＭ２をスレーブ軸とし、仮想マスタ軸Ａの位相θに対するサーボモータＭ１およびＭ２の変位Ｘ１、Ｘ２はそれぞれのカム曲線Ｆ１、Ｆ２を用いて、それぞれ次のように表現される。
Ｘ１＝Ｆ１（θ）
Ｘ２＝Ｆ２（θ）
【００２０】
そして、時刻ｔにおける仮想マスタ軸Ａの位相θを
θ＝θ（ｔ）
とした場合、数値制御装置は時刻ｔにおけるサーボモータＭ１およびＭ２に対する位置指令Ｘ１（ｔ）、Ｘ２（ｔ）を、それぞれ次のように計算する。
Ｘ１（ｔ）＝Ｆ１（θ（ｔ））
Ｘ２（ｔ）＝Ｆ２（θ（ｔ））
【００２１】
この位置指令を従来方法でパソコンからサーボアンプへ転送する場合、パソコン７１０からサーボアンプ７３０〜７３Ｎへ送信される絶対位置指令データは、サーボアンプ７３０〜７３Ｎで制御周期ごとに処理されるデータそれぞれに対して、
・  データＩＤ：k（k=1…N：自然数）
・  制御軸番号：ＡＸ１ｎ
・  絶対時間指令：Tk（単位：ミリ秒）
・  位置指令：Pｎ（単位：マイクロメートル）
となる。
【特許文献１】特開２００４−１１０３５９号公報（第１１頁、図１）
【特許文献２】特開平１１−１１００４７（第３頁、図２）
【発明の開示】
【発明が解決しようとする課題】
【００２２】
ところが、特許文献１の請求項１の手法を用いた場合、制御周期ごとの絶対位置指令データがコントローラから送信されるため、ＬＡＮ７１５上を流れるデータ量が多く、通信トラフィックが増え、システム性能に悪影響を及ぼすといった問題があった。
【００２３】
本発明はこのような問題点に鑑みてなされたものであり、コントローラから絶対時間を付与しない指令データを非同期通信方式で送信しながらも、複数のサーボアンプを同期制御させるモーション制御システムを提供することを目的とする。
【課題を解決するための手段】
【００２４】
上記問題を解決するため、本発明は、次のように構成したのである。
【００２５】
請求項１に記載の発明は、コントローラと複数のサーボアンプが通信線で接続された分散型モーション制御システムにおいて、
前記コントローラは、補間する曲線の形状を示す形状指令データと、前記曲線のパラメータの時間に対する加速度を示すパラメータ加速度指令データとを前記複数のサーボアンプへ送信する手段を備え、
前記サーボアンプは、前記通信線上で同報送信される同期信号を受信してカウントアップイベントを生成する通信インタフェースと、軸制御部に対する起動イベントを生成するタイマと、前記形状指令データと前記パラメータ加速度指令データを受信する非同期通信部と、前記形状指令データと前記パラメータ加速度指令データに基いて前記サーボモータを制御する軸制御部とを備えたことを特徴とするものである。
【００２６】
請求項２に記載の発明は、請求項１に記載の発明において、前記コントローラは、前記パラメータ加速度指令データに代えてパラメータ加加速度指令データを前記サーボアンプへ一斉同報送信し、前記サーボアンプは、前記パラメータ加速度指令データに代えてパラメータ加加速度指令データを受信することを特徴とするものである。
【００２７】
請求項３に記載の発明は、請求項１に記載の発明において、前記コントローラは、前記パラメータ加速度指令データに代えてパラメータ位置指令データを前記サーボアンプへ一斉同報送信し、前記サーボアンプは、前記パラメータ加速度指令データに代えてパラメータ位置指令データを受信することを特徴とするものである。
【００２８】
請求項４に記載の発明は、請求項１に記載の発明において、前記コントローラは、前記パラメータ加速度指令データに代えてパラメータ速度指令データを前記サーボアンプへ一斉同報送信し、前記サーボアンプは、前記パラメータ加速度指令データに代えてパラメータ速度指令データを受信すること特徴とするものである。
【００２９】
請求項５に記載の発明は、請求項１ないし請求項４の何れかに記載の発明において、前記同期信号を前記コントローラが生成することを特徴とするものである。
【００３０】
請求項６に記載の発明は、請求項１ないし請求項４の何れかに記載の発明において、前記同期信号をある一つの前記サーボアンプが生成することを特徴とするものである。
【００３１】
請求項７に記載の発明は、請求項１ないし請求項６の何れかに記載の発明において、前記コントローラは、前記形状指令データおよび前記パラメータ位置指令データ、前記パラメータ速度指令データ、前記パラメータ加速度指令データ若しくは前記パラメータ加加速度指令データから構成される一組のモーション指令データを複数個前記複数のサーボアンプへ送信する手段と、制御開始指令データを前記サーボアンプへ一斉同報送信する手段とを備え、
前記サーボアンプは、前記モーション指令データを記憶するバッファを備え、前記制御開始指令データの受信を確認するまで、前記モーション指令データの処理を待機する手段を備えることを特徴とするものである。
【００３２】
請求項８に記載の発明は、請求項１ないし請求項７の何れかに記載の発明において、前記通信線がＩＥＥＥ１３９４シリアルバスであることを特徴とするものである。
【発明の効果】
【００３３】
請求項１ないし請求項４の何れかに記載の発明によると、
コントローラが非同期通信方式で一斉同報送信したパラメータ加速度指令データ、パラメータ加加速度指令データ、パラメータ位置指令データまたはパラメータ速度指令データの何れかを各アンプが受信した後に、前記アンプ間に共通の同期タイミングで、それぞれ受信した形状指令データを処理し、各モータ間での同期制御を実現するため、絶対時間指令データを作成することなく、コントローラが非同期通信方式を使って、複数のモータ群を同期補間制御することができる。
【００３４】
請求項５または請求項６に記載の発明によると、各サーボアンプが、コントローラまたはある1つのサーボアンプが生成した同期信号に基づいて動作することができる。
【００３５】
請求項７に記載の発明によると、複数の連続した形状指令データを切れ目なく接続するモーション制御を実施しなければならない場合であっても、複数個のモーション指令データをサーボアンプに記憶しておき、制御開始指令をトリガとして、複数のサーボアンプの制御をを同時に開始させることにより、各サーボアンプが同期して複数個の形状指令データを切れ目なく連続して処理することが可能となる。
【００３６】
請求項８に記載の発明によると、ＩＥＥＥ１３９４シリアルバスを通信線として使用することができ、他のＩＥＥＥ１３９４規格に準拠した機器（例えばデジタルビデオカメラ）とアンプを同一のＩＥＥＥ１３９４シリアルバスに接続することができ、アンプと他のＩＥＥＥ１３９４規格に準拠した機器を一台のコントローラから同時に制御することができる。
【発明を実施するための最良の形態】
【００３７】
以下、本発明の実施の形態について図を参照して説明する。
【実施例１】
【００３８】
図１は、本発明の第１実施例における分散型モーション制御システムの構成を示すブロック図である。本発明の各々の実施例においては、モータとしてサーボモータ、アンプとしてサーボアンプ、通信線としてＩＥＥＥ１３９４通信線を用いているが、これに限定されないことはいうまでもない。図１において、１００はサーボアンプ１０１〜１０Ｎへの指令を作成するコントローラである。サーボアンプ１０１〜１０Ｎはコントローラ１００とＩＥＥＥ１３９４通信線１２０で接続され、非同期通信方式で通信している。ＩＥＥＥ１３９４規格（IEEE Std 1394-1995, IEEE Standard for a High Performance Serial Bus参照）では、１本のＩＥＥＥ１３９４通信線において、非同期通信方式すなわちアシンクロナス転送機能と、同期通信方式すなわちアイソクロナス転送機能が同時に使用可能である。
【００３９】
ここで、コントローラ１００は形状指令データＰｉ  １３１〜１３Ｎをサーボアンプ１０１〜１０Ｎへ送信し、パラメータ指令データ１２１をすべてのサーボアンプ１０１〜１０Ｎへ一斉同報送信する。ここで、パラメータ指令データとは、パラメータ位置指令データ、またはパラメータ速度指令データ、パラメータ加速度指令データ、パラメータ加加速度指令データのいずれかを意味するものである。
【００４０】
例えば、従来技術の項目でも例示した、コントローラ１００が２つのサーボアンプ１０１、１０２を使って、電子カム制御を実施することを考える。
まず、時刻ｔにおける仮想マスタ軸Ａの位相θおよび、θに対するサーボモータ１０１および１０２の変位Ｘ１、Ｘ２がそれぞれのカム曲線Ｆ１、Ｆ２を用いて、
θ＝θ（ｔ）
Ｘ１＝Ｆ１（θ）
Ｘ２＝Ｆ２（θ）
と表現されているとする。
【００４１】
一般にカム曲線としては、等速度、等加速度、５次曲線、サイクロイド、単弦、変形台形、変形正弦、変形等速度、トラペクロイド、逆トラペクロイド、スプライン曲線などが用いられており、本発明にはいずれの曲線でも適用可能である。
ここでは、例えば、
Ｆ１：サイクロイド
Ｆ２：５次曲線
とする。
【００４２】
また、位相θ（ｔ）も通常は、軸の速度や加速度などが考慮された曲線となり、カム曲線として上記に示したような形状が適用可能である。
ここでは説明を簡単にするため以下のような等加速度直線運動であるとする。
θａ（ｔ）＝  A,           ( 0    ≦t≦t0       )(実行時間：t0)
θａ（ｔ）＝  0,           ( t0   ≦t≦t0+t1    )(実行時間：t1)
θａ（ｔ）＝ -A,           ( t0+t1≦t≦t0+t1+t2 )(実行時間：t2)
【００４３】
ここで、位相θ（ｔ）の速度、加速度、加加速度をそれぞれθｖ（ｔ）、θａ（ｔ）、θｊ（ｔ）と表記する。すなわち、
θｖ（ｔ）＝ｄθ（ｔ）／ｄｔ
θａ（ｔ）＝ｄθｖ（ｔ）／ｄｔ
θｊ（ｔ）＝ｄθａ（ｔ）／ｄｔ
となる。
【００４４】
また、この例では、上記の位相形状に合わせて、パラメータ指令データとしてパラメータ加速度データを用いて説明する。
まず、コントローラ１００からサーボアンプ１０１および１０２へ送信される形状指令データＰ１  １３１、Ｐ２  １３２、およびパラメータ加速度指令データ１２１の内訳は、それぞれ
形状指令データＰ１：
(1)形状種類： ４
(2)係数１：   a
(3)係数２：   b
形状指令データＰ２：
(1)形状種類： ３
(2)係数１：   a
(3)係数２：   b
(4)係数３：   c
(5)係数４：   d
(6)係数５：   e
(7)係数７：   f
パラメータ加速度指令データ：
( 1)データ数：       ３
( 2)データＩＤ：     １
指令データ種別：    ３
形状種類：   １
係数１：            A
実行時間：   t0
( 3)データＩＤ：     ２
指令データ種別：    ３
形状種類：   １
係数１：            0
実行時間：   t1
( 4)データＩＤ：     ３
指令データ種別：    ３
形状種類：   １
係数1：             -A
実行時間：   t2
となる。
【００４５】
ただし、上記形状指令データの形状種類のインデックスと各形状に関する数式および係数は、図９に示すとおりである。
【００４６】
また、上記パラメータ指令データの種類のインデックスは、図１０に示すとおりである。
【００４７】
以上のような形状指令データＰ１  １３１，Ｐ２  １３２およびパラメータ加速度指令データ１２１をコントローラ１００からサーボアンプ１０１および１０２へ送信する数量は、
形状指令データ：           ２個（サーボアンプの数）
パラメータ加速度データ：   １個（一斉同報送信）
であり、従来技術のように、各制御周期ごとの大量の絶対位置指令データを逐次送信する必要はない。
【００４８】
サーボアンプ１０１〜１０Ｎもお互いにＩＥＥＥ１３９４通信線１２０で接続されているが、サーボアンプ１０１〜１０Ｎ間は一定周期のサイクルスタートパケットの受信により同期している。ＩＥＥＥ１３９４ネットワークでは、サイクルマスタと呼ばれる通信ノードが一定周期でサイクルスタートパケットをネットワークへ出力し、他の通信ノードがそのサイクルスタートパケットに含まれるサイクルタイムデータを使って各通信インタフェースのクロックを補正する機能が備わっている。
【００４９】
ここでは、サーボアンプ１０Ｎがサイクルスタートパケットの送信元となり、一定周期で他のサーボアンプ１０１〜１０（Ｎ−１）へサイクルスタートパケットを送信しているものとする。１１１〜１１Ｎはサーボモータであり、サーボアンプ１０１〜１０Ｎによって制御されている。
【００５０】
図２は本発明の第１実施例におけるサーボアンプ１０１の構成を示すブロック図である。他のサーボアンプ１０２〜１０Ｎも同様であるためここでは説明を省略する。図２において、２０１はサーボアンプ１０１の通信インタフェースであり、サイクルスタートパケット２０５と非同期通信方式の双方を混在して処理できるものである。この通信インタフェース２０１は一定周期でサイクルスタートパケット２０５をＩＥＥＥ１３９４通信線１２０へ送信すると同時にカウントアップイベント２０６を発生させる。
【００５１】
タイマ２０３はカウントアップイベント２０６を受信した後、事前に設定されていたカウント値に満たない場合はカウントをアップし、事前に設定されたカウント値に到達した場合事前に登録されていた起動イベントを発生させ、カウント値をリセットする。例えば、サイクルスタートパケットの周期が１２５μｓｅｃであり、軸制御部２０４を５００μｓｅｃ周期で起動させたい場合は、タイマ２０３にカウント値として４（＝５００／１２５）で軸制御部２０４を起動させる起動イベント２０７を登録する。これにより、設定された周期で軸制御部２０４が起動することとなる。
【００５２】
２０２は非同期通信部であり、コントローラ１００が送信する形状指令データＰ１  １３１およびパラメータ指令データ１２１を受信し、軸制御部２０４へ出力する。軸制御部２０４は形状指令データＰ１  １３１およびパラメータ指令データ１２１を入力して、形状指令データの形状種類で指定されている処理を選択して、パラメータ加速度指令データ１２１に基づき、サーボモータ１１１を制御する。軸制御部２０４は前述したようにタイマ２０３からの起動イベント２０７により起動される。
【００５３】
起動イベント２０７に関しては、前述したように軸制御部２０４が周期Ｔ１ごとに起動する必要がある場合、タイマ２０３にあらかじめ周期Ｔ１ごとに発行する起動イベントを登録しておき、設定された周期に相当する時刻に起動イベント２０７が発行されるようにする。タイマ２０３の時刻は他のサーボアンプ１０２〜１０Ｎと同期が取れているので、すべてのサーボアンプ１０１〜１０Ｎで上記起動イベント２０７の発行時刻が同一に設定された場合、すべてのサーボアンプ１０１〜１０Ｎの軸制御部が同期して起動し、サーボモータ１１１〜１１Ｎの同期補間制御が可能となる。
【００５４】
これらの同期タイミングを示したのが図６である。ＩＥＥＥ１３９４ネットワーク６０１では、１２５μｓの同期サイクル６０２ごとに、サイクルマスタであるサーボアンプ１０１がサイクルスタートパケット６０３を送信している。この時、同期サイクル６０２内で一斉同報可能なデータ量の少ない通信パケットであれば、直後のサイクルスタートパケット６０３受信時までにはすべてのサーボアンプがデータの受信を完了することができる。これにより、非同期通信方式でデータを受信しながらも、各々のサーボアンプが同時に処理を開始することができる。
【００５５】
例えば、コントローラが形状指令データＰ１  １３１をＩＥＥＥ１３９４ネットワーク６０１の送信バッファに書き込んだ後、ＩＥＥＥ１３９４ネットワーク６０１へ送信される。サーボアンプ側では、形状指令データＰ１  １３１がある時刻に非同期通信部２０２で受信される。その後、コントローラが一斉同報送信用のパラメータ加速度指令データ１２１をＩＥＥＥ１３９４ネットワーク６０１の送信バッファに書き込んだ後、ＩＥＥＥ１３９４ネットワーク６０１へ一斉同報送信される。サーボアンプ側では、一斉同報されたパラメータ加速度指令データ１２１が非同期通信部２０２で受信された後の最初の同期サイクル６０２で起動イベント２０７が発生し、軸制御部２０４が起動され、すべてのサーボアンプ１０１〜１０Ｎが同じタイミングで複数のサーボモータ１１１〜１１Ｎを同期補間制御することとなる。
【００５６】
図３は、本発明の第１実施例におけるサーボアンプ１０１の軸制御部２０４の処理手順を示すフローチャートである。まず、軸制御部２０４は処理を開始するとタイマ２０３からの起動イベント待ちとなる（ＳＴ３０１）。起動イベント２０７を受信すると、通信インタフェース２０１の受信バッファ上に形状指令データＰ１  １３１が受信されているかどうかを確認し（ＳＴ３０２）、受信していればパラメータ指令データ１２１受信のための起動イベント待ち（ＳＴ３０３）となり、受信していなければ形状指令データＰ１  １３１受信のための起動イベント待ちとなる（ＳＴ３０１）。
【００５７】
起動イベント待ち（ＳＴ３０３）において、起動イベント２０７を受信すると、通信インタフェース２０１の受信バッファ上にパラメータ指令データ１２１が受信されているかどうかを確認し（ＳＴ３０４）、受信していればモータ制御のための起動イベント待ち（ＳＴ３０５）となり、受信していなければパラメータ指令データ１２１受信のための起動イベント待ちとなる（ＳＴ３０３）。
起動イベント待ち（ＳＴ３０５）において、起動イベント２０７を受信すると、以下の手順で今回のパラメータ位置θ（ｔ＋Δｔ）を計算する。
【００５８】
まず、形状パラメータデータの指令データ種別を判別する（ＳＴ３０６）。
次に、パラメータ指令データの種別を判断する。
まず加加速度であるかどうかを判別し（ＳＴ３０７）、加加速度であればパラメータ加加速度を計算し（ＳＴ３０８）、加加速度でなければ加速度かどうか判別する（ＳＴ３０９）。加速度であればパラメータ加速度を計算し（ＳＴ３１１）加速度でなければ速度かどうか判別する（ＳＴ３１０）。速度であればパラメータ速度を計算し（ＳＴ３１２）速度でなければパラメータ位置を計算する（ＳＴ３１３）。
【００５９】
本実施例では、指令データ種別は加速度データであるから、ＳＴ３０７、ＳＴ３０９を経て、パラメータ加速度を計算する（ＳＴ３１１）。ここで、形状種類によって指定された形状関数を選択する。形状指令データＰ１  １３１と、パラメータ加速度指令データ１２１から、時間ｔにおけるパラメータθの加速度θａ(t)が、
θa(t) =  A,             ( 0    ≦t≦t0       )(実行時間：t0)
θa(t) =  0,             ( t0   ≦t≦t0+t1    )(実行時間：t1)
θa(t) = -A,        ( t0+t1≦t≦t0+t1+t2 )(実行時間：t2)
となる（ＳＴ３１１）。
【００６０】
これらを積分してパラメータ速度θｖ（ｔ）を以下のように求める（ＳＴ３１２）。
v(t) = A*t,                ( 0    ≦t≦t0       )
v(t) = v(t0),                     ( t0   ≦t≦t0+t1    )
v(t) = v(t1) - A(t-t0-t1), ( t0+t1≦t≦t0+t1+t2 )
【００６１】
最終的に、これらを積分してパラメータ位置θ（ｔ）を以下のように求める（ＳＴ３１３）。
θ(t) = A*t2/2,                                ( 0    ≦t≦t0       )
θ(t) = ｕ(t0)+A*t0(t-t0),                          ( t0   ≦t≦t0+t1    )
θ(t) = ｕ(t1)+A*t0(t-t0-t1)-A(t-t0-t1)2/2,    ( t0+t1≦t≦t0+t1+t2 )
【００６２】
そして、与えられた曲線Ｆ１（θ）上の位置Ｆ１（θ（ｔ＋Δｔ））を計算し（ＳＴ３１４）、Ｆ１（θ（ｔ＋Δｔ））を目標位置とする位置制御を実施する（ＳＴ３１５）。そして、パラメータ加速度指令データ１２１に記述された実行時間が満了したかどうかを確認し（ＳＴ３１６）、満了していれば一連の処理を終了し、そうでなければモータ制御のための起動イベント待ち（ＳＴ３０５）となる。
【００６３】
具体的には、本実施例の場合、サーボアンプ１０１および１０２に対する形状指令データがそれぞれサイクロイドおよび５次曲線であるので、サーボアンプ１０１および１０２のモータ位置Ｘ１およびＸ２はそれぞれ、
Ｘ１＝ａ−ｂ＊ＣＯＳ（θ（ｔ＋Δｔ））
Ｘ２＝a*（θ（ｔ＋Δｔ））^5
+b*（θ（ｔ＋Δｔ））^4
+c*（θ（ｔ＋Δｔ））^3
+d*（θ（ｔ＋Δｔ））^2
+e*（θ（ｔ＋Δｔ））+f
となる。
【００６４】
また、指令データ種別がパラメータ加加速度である場合は、パラメータ加加速度を積分して加速度を求める手段を設けることで、同様にモータ指令を計算することができる。
【００６５】
例えば、上述した形状指令データと同一の形状において、時間ｔにおけるパラメータθの加加速度θj(t)が、
θj(t) =  J,      ( 0      ≦t≦t01         )
θj(t) =  0,      ( t01    ≦t≦t01+t02     )
θj(t) = -J,        ( t01+t02≦t≦t01+t02+t03 )
であるとすると、パラメータ加加速度指令データは以下のようになる。
( 1)データ数：      ３
( 2)データＩＤ：    １
指令データ種別：     ４
形状種類：    １
係数１：             J
実行時間：    t01
( 3)データＩＤ：    ２
指令データ種別：     ４
形状種類：    １
係数１：             0
実行時間：    t02
( 4)データＩＤ：    ３
指令データ種別：     ４
形状種類：    １
係数１：             -J
実行時間：    t03
【００６６】
サーボアンプ１０１は、このパラメータ加加速度指令データを受信後（ＳＴ３０４）、パラメータ加加速度
θj(t) =  J,             ( 0      ≦t≦t01         )
θj(t) =  0,             ( t01    ≦t≦t01+t02     )
θj(t) = -J,        ( t01+t02≦t≦t01+t02+t03 )
を積分してパラメータ加速度θa（ｔ）を以下のように求める（ＳＴ３１１）。
θa(t) = J*t,                            ( 0      ≦t≦t01         )
θa(t) = a(t01),                         ( t01    ≦t≦t01+t02     )
θa(t) = a(t01+t02) - J(t-t01-t02),      ( t01+t02≦t≦t01+t02+t03 )
以後、パラメータ速度、パラメータ位置を求める手段は上述した通りであるため、ここでは説明を省略する。
【００６７】
以上で述べた構成および手段とすることによって、コントローラが非同期通信方式で一斉同報送信したパラメータ指令データを、各サーボアンプが受信した後に、前記サーボアンプ間に共通の同期タイミングで、それぞれ受信した形状指令データを実行し、各サーボモータ間での同期補間制御を実現するため、絶対時間指令データを作成することなく、コントローラが非同期通信方式を使って、複数のモータ群を同期補間制御することができる。
【実施例２】
【００６８】
図４は、本発明の第２実施例におけるサーボアンプの構成を示すブロック図である。図２との違いは、通信インタフェース２０１および非同期通信部４０２が制御開始指令４０１を処理していることと、形状指令データＰ１  １３１及びパラメータ指令データ１２１を記憶するバッファ４０４を設けたことである。その他の処理及びデータは図２とまったく同様であるためここでの説明は省略する。
【００６９】
図５は、本発明の第２実施例におけるサーボアンプ１０１の軸制御部２０５の処理手順を示すフローチャートである。図３との違いは、通信インタフェース２０１の受信バッファ上に制御開始指令が受信されているかどうかを確認するステップ（ＳＴ５０１）と、バッファ４０４に形状指令データＰ１  １３１及びパラメータ指令データ１２１があるかどうかを確認するステップ（ＳＴ５０２）、そのデータを取り出すステップ（ＳＴ５０３）が追加されていることである。その他のステップは図３とまったく同様であるためここでの説明は省略する。
【００７０】
以上で述べた手段とすることによって、複数の連続した形状指令データを切れ目なく接続するモーション制御を実施しなければならない場合であっても、複数個のモーション指令データをサーボアンプに記憶しておき、制御開始指令をトリガとして、複数のサーボアンプの制御を同時に開始させることにより、各サーボアンプが同期して複数個の形状指令データを切れ目なく連続して処理することが可能となる。
【産業上の利用可能性】
【００７１】
本発明によれば、ＷｉｎｄｏｗｓやＬｉｎｕｘなどの非リアルタイムＯＳを搭載し、ＩＥＥＥ１３９４インタフェースを備えた汎用のパソコンをコントローラとして、サーボモータ群を同期制御するモーション制御システムが構築できる。
【００７２】
このため、特別なハードウェアを使用することなく、汎用のパソコンにソフトウェアをインストールするだけで、サーボアンプやデジタルビデオカメラを制御するシステム、例えば、監視装置やホームオートメーションシステムという用途にも適用できる。
【図面の簡単な説明】
【００７３】
【図１】本発明の第１実施例における分散型モーション制御システムの構成を示すブロック図
【図２】本発明の第１実施例におけるサーボアンプの構成を示すブロック図
【図３】本発明の第１実施例におけるモータドライブの軸制御部の処理手順を示すフローチャート
【図４】本発明の第２実施例におけるサーボアンプの構成を示すブロック図
【図５】本発明の第２実施例におけるモータドライブの軸制御部の処理手順を示すフローチャート
【図６】本発明の第１実施例におけるデータの送受信タイミングを示すタイミングチャート
【図７】従来の数値制御システムの構成を示すブロック図
【図８】従来の数値制御システムにおけるサーボアンプの構成を示すブロック図
【図９】形状指令データの形状種類のインデックスと各形状に関する数式および係数
【図１０】パラメータ指令データの種類のインデックス
【符号の説明】
【００７４】
１００               コントローラ
１０１〜１０Ｎ       サーボアンプ
１１１〜１１Ｎ       サーボモータ
１２０               ＩＥＥＥ１３９４通信線
１２１        パラメータ指令データ
１３１〜１３Ｎ       形状指令データ
１４０        ＩＥＥＥ１３９４ハブ
２０１  通信インタフェース
２０２  非同期通信部
２０３  タイマ
２０４  軸制御部
２０５  サイクルスタートパケット
２０６  カウントアップイベント
２０７  起動イベント
４０１  制御開始指令
４０２  非同期通信部
４０３  軸制御部
４０４ バッファ
６０１  ＩＥＥＥ１３９４ネットワーク
６０２ 同期サイクル
６０３ サイクルスタートパケット
７１０  パソコン
７１５  ＬＡＮ
７２０  スイッチングハブ
７３０〜７３Ｎ  軸制御部（サーボアンプ）
７４０〜７４Ｎ  サーボモータ
７７８０  ホットライン
８１０  サーボアンプＣＰＵ
８２０  同期時間補正信号
８３０  ＬＡＮインタフェース回路
８４０  サーボモータ回転制御回路
８５０  内部タイマ
８６０  Ｉ／Ｏインタフェース回路
８７０  サーボアンプ通信データ
８８０  通信データバッファメモリ
【図１】
2009020547.tif 000003
【図２】
2009020547.tif 000004
【図３】
2009020547.tif 000005
【図４】
2009020547.tif 000006
【図５】
2009020547.tif 000007
【図６】
2009020547.tif 000008
【図７】
2009020547.tif 000009
【図８】
2009020547.tif 000010
【図９】
2009020547.tif 000011
【図１０】
2009020547.tif 000012