(57)【要約】【課題】  リアルタイム性のない安価なコントローラで、非同期通信を用いて補間位置指令による軌跡制御ができるモーションコントロールシステムを提供する。【解決手段】  プログラム解析部５と、補間位置９を出力する補間演算部７と、サーボアンプへ前記補間位置９を送信する通信部１０を有するモーションコントローラ２と、前記補間位置９を受信する通信部１２と、前記補間位置９から前記モータ１６の制御信号を演算し出力する制御部１５を有するサーボアンプ３とが通信線１１で接続されたモーションコントロールシステム１において、前記モーションコントローラ２から前記サーボアンプ３に前記補間位置９を非同期通信により繰り返し送信し、前記サーボアンプ３は前期非同期通信により受信した補間位置９を複数個保有する補間位置バッファ１３を備える。【選択図】図１
2006072399.tif 000002
【特許請求の範囲】
【請求項１】
位置データと移動指令が書かれたモーションプログラムを解析するプログラム解析部と、
該プログラム解析部で解析された目標位置を補間演算し、補間位置を出力する補間演算部と、
モータを駆動するサーボアンプへ前記補間位置を送信する通信部を有するモーションコントローラと、
該モーションコントローラからの前記補間位置を受信する通信部と、
前記補間位置から前記モータの制御信号を演算し前記モータに出力する制御部を有する１台または複数台のサーボアンプとが通信線で接続されたモーションコントロールシステムにおいて、
前記モーションコントローラから前記サーボアンプに前記補間位置を非同期通信により繰り返し送信し、
前記サーボアンプは前期非同期通信により受信した補間位置を複数個保有する補間位置バッファを備え、
該補間位置バッファのデータを前記モータの制御信号の演算に使用することを特徴とするモーションコントロールシステム。
【請求項２】
前記サーボアンプに、あらかじめ調査した非同期通信の繰り返し間隔の最長時間にしたがって、前記補間位置バッファに保存するデータの個数を決めるバッファサイズ決定手段を備えることを特徴とする請求項１記載のモーションコントロールシステム。
【請求項３】
前記非同期通信の繰り返し間隔の最長時間を、前記サーボアンプがモータの制御を開始する前に、前記モーションコントローラが通信テスト用データを非同期通信で前記サーボアンプへ繰り返し送信し、前記サーボアンプが受信した前期通信テスト用データの受信間隔を繰り返し計測することで決定することを特徴とする請求項２記載のモーションコントロールシステム。
【請求項４】
前記サーボアンプに、前記モーションコントローラからの補間位置の受信が途切れて前記補間位置バッファに保存されたデータがなくなる前に、前記モータを減速停止させる減速停止データを作成する減速停止手段を備えることを特徴とする請求項１記載のモーションコントロールシステム。
【請求項５】
前記非同期通信には、ＩＥＥＥ１３９４シリアルバスのアシンクロナス転送を用いることを特徴とする請求項１記載のモーションコントロールシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、モータを制御するサーボアンプとモーションコントローラが通信線で接続されたモーションコントロールシステムに関する。  
【背景技術】
【０００２】
従来のモーションコントローラとサーボアンプが通信線で接続されているモーションコントロールシステムでの位置制御の形態としては、目標位置までの途中の軌跡を補間して制御する補間位置制御と、途中の軌跡は制御せず目標位置の終点のみを制御する位置決め制御の２つがある。（非特許文献１の１−４ページの補間送りＩＮＴＥＲＰＯＬＡＴＥ、１−９ページの早送り位置決めＰＯＳＩＮＧ参照）
補間位置制御の場合はリアルタイムでの軌跡制御が必要であり、モーションコントローラとサーボアンプ間の通信は同期通信方式によって行われ、モーションコントローラにはリアルタイム性が要求される。
位置決め制御の場合は、途中の軌跡は管理しないため、モーションコントローラとサーボアンプ間の通信は非同期通信方式でも制御は可能である。
【０００３】
以下に従来の補間位置制御について説明する。
図６は、従来のモーションコントロールシステムで補間位置制御を行う場合の構成を示す図である。図において、３１はモーションコントロールシステムであり、モーションコントローラ３２とサーボアンプ３３から構成されている。サーボアンプ３３には、機械の軸を移動させるモータ１６とパルスジェネレータ１７が接続される。サーボアンプ３３は制御対象の機械により１台または複数台接続されるが、ここでは２台の場合を例示する。モーションコントロールシステム３１はモーションプログラム３４にしたがってモータ１６の位置を計算して指令し、モータ１６が描く軌跡を制御する。モーションコントローラ３２は、リアルタイムＯＳを搭載しており、軌跡を表す位置データと移動指令が書かれたモーションプログラム３４を入力してプログラム解析部３５で解析しデータ領域に目標位置３６を書き込む。補間演算部３７は目標位置３６間を補間する補間位置３９を計算し補間位置バッファ３８に書き込む。通信部４０は補間位置バッファ３８のデータを同期形コマンドの補間位置指令にして通信周期ごとにサーボアンプ３３へ送信する。
【０００４】
サーボアンプ３３はモーションコントローラ３２と通信線４１で接続され、モーションコントローラ３２から同期形コマンドの補間位置指令を通信部４２経由で受信し、データ領域に補間位置４４を書き込む。制御部４５は補間位置４４とモータ１６に接続されたパルスジェネレータ１７の信号を入力して位置制御ループの計算をして位置偏差を求め、モータに位置偏差に比例した制御信号を出力する。
モーションコントローラ３２からの補間位置指令は同期形コマンドを用いて定周期でサーボアンプ３３へ送られ、サーボアンプ３３は定周期でモータ１６へ制御信号を出力する。モーションコントローラ３２とサーボアンプ３３の通信周期と、サーボアンプ３３内で補間位置４４を制御部４５へ入力する周期とは同期しており、通信線４１で複数のサーボアンプ３３が接続されていれば、全てのサーボアンプ３３が同期して動作する。
【０００５】
図７は従来のモーションコントロールシステムの補間位置制御の処理手順を示すフローチャートであり、図６のモーションコントロールシステム３１の動作例を示している。
モーションコントローラ３２はステップＳ７１で補間位置指令を送信するための送信用通信同期割り込みを有効にする。割り込みを有効にした後は、サーボアンプとの通信を行う送信用通信同期割り込みが定周期で起こる。ステップＳ７２で軌跡を表す位置データと移動指令が書かれたモーションプログラム３４を一行読み込み、ステップＳ７３でモーションプログラム３４の終了まで読み込んだかどうかの判断をし、モーションプログラムの終了であれば動作を終了する。
【０００６】
終了でなければステップＳ７４に進み、モーションプログラム３４の解析を行い、データ領域に目標位置３６を書き込む。ステップＳ７５でデータ領域から目標位置３６を読み込み補間演算を行い、目標位置３６の間を補間する補間位置３９を１つ生成し、補間位置バッファ３８へ書き込む。ステップＳ７６で目標位置３６までの補間が完了したかどうかの判断をし、補間が完了していなければ次の補間位置３９を生成するためにステップＳ７５へ戻り、補間が完了したのであればモーションプログラム３４の次の行を読み込むためにステップＳ７２へ戻る。
ステップＳ７３でモーションプログラム３４の終了を読み込んだと判断するまで、ステップＳ７２からステップＳ７６までを繰り返す。
【０００７】
モーションコントローラ３２で送信用通信同期割り込みが起こると、ステップＳ７８で補間位置バッファ３８のデータを同期形コマンドの補間位置指令にして、サーボアンプ３３へ送信する。モーションコントローラ３２は、送信用通信同期割り込みが起こるごとにステップＳ７８を繰り返し実行する。
【０００８】
次にサーボアンプ３３側の処理フローを説明する。まずステップＳ７９で、モーションコントローラ３２との通信周期に同期して割り込み、補間位置指令を受信するための受信用通信同期割り込みを有効にする。割り込みを有効にした後は、受信用通信同期割り込みが定周期で起こる。受信用通信同期割り込みが起こると、ステップＳ８１でモーションコントローラ３２からの補間位置指令を受信してデータ領域に補間位置４４を書き込み、ステップＳ８２で制御部４５で補間位置４４とパルスジェネレータ１７の信号を入力として位置制御ループの制御演算を行い、ステップＳ８３でモータへ制御信号を出力する。サーボアンプ３３は、受信用通信同期割り込みが起こるごとにステップＳ８１からステップＳ８３を繰り返す。
【０００９】
図８は従来の補間位置制御の位置データの例を示す図であり、図７のフローチャートの各段階で扱われる位置データと軌跡の例を示している。モーションプログラム３４で平面上の軌跡が指令されており、サーボアンプ３３、モータ１６がＸ軸用、Ｙ軸用にそれぞれ一組ずつ割り当てられているものとする。図８の（ａ）はモーションプログラム３４で指令された目標位置３６を点で表しており、目標位置３６までを直線移動する指令であることを直線矢印で表している。図８（ａ）の点は、図７のステップＳ７４の処理で出力されるものである。図８（ｂ）の点は補間位置３９を表していて、目標位置３６の間の直線上で補間された位置であり、通信周期でサーボアンプへ送信する位置である。図８（ｂ）の点は、図７のステップＳ７５の処理で出力されるものである。図８（ｂ）のように直線上を補間することで、目標位置間で直線の軌跡を描くことができる。
【００１０】
次に、従来の位置決め制御について説明する。
位置決め制御では、モーションコントローラ３２で補間演算は行わずに、目標位置３６のみを非同期形コマンドの位置決め指令としてサーボアンプ３３へ送り、サーボアンプ３３は位置決め指令を受信してデータ領域に目標位置３６を書き込み、そのデータを制御部４５に入力してモータの駆動を開始し、位置決め完了時にモーションコントローラへ位置決め完了を通知する。
このため、位置決め制御のみを行うシステムでは図６のモーションコントロールシステム３１のうち、補間演算部３７、補間位置バッファ３８、補間位置データ３９は不要であるが、一台のモーションコントローラで補間位置制御と位置決め制御の両方を制御する場合もあり、図６のブロック図を使用し説明する。
【００１１】
図９は、従来の位置決め制御の処理手順を示すフローチャートであり、図６のモーションコントロールシステム３１の動作例を示している。
モーションコントローラ３２はステップＳ９１で位置データと移動指令が書かれたモーションプログラム３４を一行読み込み、ステップＳ９２でモーションプログラムの終了まで読み込んだかどうかの判断をし、モーションプログラムの終了であれば動作を終了する。終了でなければステップＳ９３に進み、モーションプログラム３４の解析を行い、データ領域に目標位置３６を書き込む。ステップＳ９４で目標位置３６を非同期形コマンドの位置決め指令にして、サーボアンプ３３へ送信する。そしてステップＳ１０７に移って、位置決め完了待ちをする。
【００１２】
次にサーボアンプ３３側の処理フローを説明する。サーボアンプ３３は内部タイマを備えており、ステップＳ９５で、モータの制御周期で起こる定周期のタイマ割り込みを有効にする。この定周期割り込みは、サーボアンプ３３が制御演算してモータ１６へ制御信号を出力するための制御演算用内部タイマ割り込みとして使用する。次に、ステップＳ９６からステップＳ１０３までの処理を無限ループとして繰り返し実行する。ステップＳ９７、ステップＳ９８で、モーションコントローラ３２からの位置決めの目標位置指令の受信があるかどうかの判断をし、受信があればステップＳ９９の受信処理でデータ領域に目標位置４３を書き込む。
【００１３】
次に、ステップＳ１００で位置決め完了の監視のために現在位置を取得し、目標位置４３に到達しているかどうかを判断し、目標位置に到達していなければステップＳ１００に戻り、目標位置４３に到達するまでステップＳ１００からステップＳ１０１までを繰り返す。
サーボアンプ３３で定周期の内部タイマ割り込みが起こると、ステップＳ１０５で制御部４５の制御演算で目標位置４３を入力として位置制御ループの処理を行い、ステップＳ１０６でモータ１６へ制御信号を出力する。ステップＳ１０５からステップＳ１０６の処理は割り込みが起こるごとに繰り返し、モータ１６は目標位置へ到達する。
【００１４】
サーボアンプ３３はステップＳ１０１において目標位置に到達したと判断すると、ステップＳ１０２で位置決め完了をモーションコントローラ３２へ送信する。そして、ステップＳ１０３からステップＳ９７へ戻り、再びモーションコントローラ３２からの受信を待つ。モーションコントローラ３２はステップＳ１０７で受信待ちをしており、サーボアンプ３３からの位置決め完了を受信するとステップＳ９１に戻る。そして、ステップＳ９２でモーションプログラムの終わりを読み込んだと判断するまで、ステップＳ９１からステップＳ１０８までを繰り返す。
【００１５】
図１０は従来の位置決め制御の位置データの例を示す図であり、図９のフローチャートで扱われる位置データと軌跡の例を示している。図１０の点はモーションプログラム３４で指令された平面上の目標位置３６を表しており、目標位置３６まで位置決め指令で移動した場合の軌跡を表している。位置決め指令では目標位置３６間の直線上の補間位置３９は指令されず、各サーボアンプ３３は移動中にモーションコントローラ３２および別のサーボアンプ３３と同期しておらず独立に目標位置３６に向かってモータを動かすので、目標点間で図１０のような軌跡を描くことになり、目標位置間の軌跡は制御できない。
【００１６】
また、別の従来技術として、モーションコントロールシステムの補間位置制御において、サーボアンプに位置バッファを備え、モーションコントローラおよびサーボアンプが特定イベントの発生によりモータを停止し、イベント完了待ち状態でモータが停止している間にも、通信を継続し、今すぐに実行しない次の補間位置の計算を継続し、補間位置指令を位置バッファに溜め込み、イベント完了時にサーボアンプが位置バッファにある次の補間位置指令を用いて、すぐに続きを実行するという手順にすることで、補間演算完了の待ち時間分による遅れを短縮する方法がある。（例えば、特許文献１参照）
【００１７】
また、位置決め制御装置の位置決め制御において、通信部をサーボコマンド発行処理部とサーボレスポンス処理部に分け、サーボコマンド処理部は位置決め完了の確認はせずに、サーボアンプがコマンドを受け付けられる状態にあるかどうかを確認するだけで送信するようにし、モーションコントローラがサーボアンプからの位置決め完了通知を待つ間にもモーションコントローラから次の指令を送るという手順にすることで、位置決め完了の待ち時間分による遅れを短縮する方法がある。（例えば、特許文献２参照）
【００１８】
このように、従来のモーションコントロールシステムでは、補間位置制御の場合、モーションコントローラとサーボアンプとの間では同期通信方式で補間位置を送信して、サーボアンプは通信に同期してモータへ制御信号を出力するという手順がとられていた。また、位置決め制御の場合、モーションコントローラとサーボアンプとの間では非同期通信方式で目標位置を送信して、サーボアンプは位置決め完了をモーションコントローラへ通知するという手順がとられていた。また、補間位置制御と位置決め制御において、待ち時間を短縮するための方法が考えられた。
【特許文献１】特開平成９−１９０２２６号公報（第３頁、図２）
【特許文献２】特開２００２−６９１２号公報（第４頁、図１）
【非特許文献１】資料番号ＳＩ−Ｓ８００−２６．２、「高速フィールドネットワーク  ＭＥＣＨＡＴＲＯＬＩＮＫ  サーボコマンド説明書」、株式会社安川電機、２００１年６月、ｐ．１−４、１−９、１−１０
【発明の開示】
【発明が解決しようとする課題】
【００１９】
従来のモーションコントロールシステムでは、補間位置制御の場合、モーションコントローラとサーボアンプの通信には同期通信方式を用いて、モーションコントローラはサーボアンプへ定周期で補間位置指令を送信し、サーボアンプはモーションコントローラから定周期で補間位置指令を受信するという手順をとっているので、補間演算と同期通信による補間位置指令送信を実現するために、モーションコントローラにはリアルタイム性が必要であり、リアルタイムＯＳを搭載した専用コントローラを準備する必要があり、非リアルタイムＯＳが使われているパソコン等で、安価に補間位置指令を送信するモーションコントローラを構築できないという問題がある。
また、位置決め制御用のモーションコントロールシステムの場合、モーションコントローラとサーボアンプの通信は非同期通信方式でも良くモーションコントローラはリアルタイム性のない安価なもので構築できるが、目標位置間の軌跡は制御できず、安価なモーションコントローラでは、位置決め制御専用にしか使用出来ないという問題がある。
本発明はこのような問題点に鑑みてなされたものであり、リアルタイム性のない安価なモーションコントローラで、非同期通信を用いて補間位置指令による軌跡制御ができるモーションコントロールシステムを提供することを目的とする。
【課題を解決するための手段】
【００２０】
上記問題を解決するため、本発明は、次のようにしたのである。
請求項１に記載の発明は、位置データと移動指令が書かれたモーションプログラムを解析するプログラム解析部と、該プログラム解析部で解析された目標位置を補間演算し、補間位置を出力する補間演算部と、モータを駆動するサーボアンプへ前記補間位置を送信する通信部を有するモーションコントローラと、該モーションコントローラからの前記補間位置を受信する通信部と、前記補間位置から前記モータの制御信号を演算し前記モータに出力する制御部を有する１台または複数台のサーボアンプとが通信線で接続されたモーションコントロールシステムにおいて、前記モーションコントローラから前記サーボアンプに前記補間位置を非同期通信により繰り返し送信し、前記サーボアンプは前期非同期通信により受信した補間位置を複数個保有する補間位置バッファを備え、該補間位置バッファのデータを前記モータの制御信号の演算に使用することを特徴としている。
また、請求項２に記載の発明は、前記サーボアンプに、あらかじめ調査した非同期通信の繰り返し間隔の最長時間にしたがって、前記補間位置バッファに保存するデータの個数を決めるバッファサイズ決定手段を備えることを特徴としている。
【００２１】
また、請求項３に記載の発明は、前記非同期通信の繰り返し間隔の最長時間を、前記サーボアンプがモータの制御を開始する前に、前記モーションコントローラが通信テスト用データを非同期通信で前記サーボアンプへ繰り返し送信し、前記サーボアンプが受信した前期通信テスト用データの受信間隔を繰り返し計測することで決定することを特徴としている。
また、請求項４に記載の発明は、前記サーボアンプに、前記モーションコントローラからの補間位置の受信が途切れて前記補間位置バッファに保存されたデータがなくなる前に、前記モータを減速停止させる減速停止データを作成する減速停止手段を備えることを特徴としている。
また、請求項５に記載の発明は、前記非同期通信には、ＩＥＥＥ１３９４シリアルバスのアシンクロナス転送を用いることを特徴としている。
【発明の効果】
【００２２】
請求項１に記載の発明によると、モーションコントローラからサーボアンプへの非同期通信による受信タイミングのばらつきを補間位置バッファで吸収することができ、非同期通信で補間位置指令による軌跡制御をすることができる。
また、請求項２に記載の発明によると、非同期通信の間隔が空いて補間位置データが途切れることを起こりにくくすることができる。
また、請求項３に記載の発明によると、補間位置バッファの大きさを自動的に決定することができる。
また、請求項４に記載の発明によると、非同期通信による受信間隔が予想以上に長くなり補間位置データが途切れた場合にも、モーションコントローラの制御対象に衝撃を与えずに減速停止することができる。
また、請求項５に記載の発明によると、モーションコントローラとサーボアンプをＩＥＥＥ１３９４シリアルバスで接続して、ＩＥＥＥ１３９４のアシンクロナス転送を非同期通信の手段として補間位置データを転送することができる。
このように、本発明のモーションコントローラシステムは、リアルタイム性のない安価なモーションコントローラで、非同期通信を用いて補間位置指令による軌跡制御ができる。
【発明を実施するための最良の形態】
【００２３】
以下、本発明の具体的実施例について、図に基づいて説明する。
【実施例１】
【００２４】
図１は、本発明のモーションコントロールシステムの構成を示すブロック図である。図において１はモーションコントローラ２と１つまたは複数のサーボアンプ３からなるモーションコントロールシステムであり、モーションプログラム４にしたがってモータ１６の位置を計算して指令し、モータ１６が描く軌跡を制御する。モーションコントローラ２は軌跡を表す位置データと移動指令が書かれたモーションプログラム４を入力して解析し、目標位置６を出力するプログラム解析部５と、目標位置間の補間位置９を計算して出力する補間演算部７と、補間位置９のデータを格納する補間位置バッファ８と、補間位置バッファ８のデータを非同期形コマンドで補間位置指令としてサーボアンプ３へ送信する通信部１０とを備えている。
サーボアンプ３は、モーションコントローラ２からの非同期形コマンドを受信して補間位置１４を入力する通信部１２と、受信した補間位置１４を複数保存する補間位置バッファ１３と、補間位置バッファ１３のデータとモータ１６に接続されたパルスジェネレータ１７の信号を入力して位置制御ループの計算をし、モータ１６への制御信号を出力する制御部１５を備えている。コントローラ２とサーボアンプ３は通信線１１で接続されている。
【００２５】
本発明が従来技術と異なる部分は、補間位置制御時にも補間位置指令を非同期通信で転送する部分と、非同期通信によるデータの途切れが起こりにくくするようにバッファサイズを決定する手段と、データが途切れても自動的に減速停止する手段を備えている部分である。
【００２６】
図２は本発明のモーションコントロールシステムの処理手順を示すフローチャートであり、図１のモーションコントロールシステム１の動作を示している。
ステップＳ１でモーションコントローラ２は軌跡を表す位置データと移動指令が書かれたモーションプログラム４を一行読み込み、モーションプログラムの終了まで読み込んだかどうかの判断をし、ステップＳ２でモーションプログラムの終了かどうかをチェックし、終了であれば動作を終了する。終了でなければステップＳ３に進み、モーションプログラム４の解析を行い、データ領域に目標位置６を書き込む。ステップＳ４でデータ領域から目標位置を読み込み、補間演算を行い、目標位置６の間を補間する補間位置９を１つ生成し、補間位置バッファ８へ書き込む。ステップＳ５で補間位置バッファ８に指定個数のデータがたまったかどうかの判断をし、指定個数たまっていれば、ステップＳ６で指定個数の補間位置バッファ８のデータを一度に補間位置指令として非同期通信でサーボアンプ３へ送信する。ステップＳ７で目標位置６までの補間が完了したかどうかの判断をし、補間が完了していなければ次の補間位置データ９を生成するためにステップＳ４へ戻り、補間が完了したのであればモーションプログラム４の次の行を読み込むためにステップＳ１へ戻り、ステップＳ２でモーションプログラム４の終了を読み込んだと判断するまで、ステップＳ１からステップＳ７を繰り返す。
【００２７】
次にサーボアンプ３側の処理フローを説明する。サーボアンプ３は内部タイマを備えており、ステップＳ８で、モータの制御周期で起こる定周期のタイマ割り込みを有効にする。この定周期割り込みは、サーボアンプ３が制御演算してモータ１６へ制御信号を出力するための制御演算用内部タイマ割り込みとして使用する。例えば、補間位置データは１ｍｓの補間周期として計算されており、タイマ割り込みは１ｍｓ周期に設定されているとする。ステップＳ８で割り込みを有効にした後は、内部タイマ割り込みが１ｍｓ周期で起こる。
次に、ステップＳ９で実行フラグを０にする。この実行フラグは、制御演算を行う制御部１５が補間位置バッファ１３の読み出しを行って良いかどうかを示し、補間位置バッファ１３に、指定された個数の補間位置のデータが保存されている状態になったときに１にする。次に、ステップＳ１０からステップＳ１７までの処理を無限ループとして繰り返し実行する。ステップＳ１１、ステップＳ１２で、モーションコントローラ２からの非同期通信の受信があるかどうかの判断をし、受信があればステップＳ１３の受信処理でデータ領域に補間位置を書き込み、ステップＳ１４でそのデータを補間位置バッファ１３へ保存する。ステップＳ１５であらかじめ指定された個数だけの補間位置のデータが補間位置バッファ１３に入っているかどうかの判断をし、指定された個数入っていれば、ステップＳ１６で実行フラグを１にする。ここでは、あらかじめ補間位置バッファ１３の指定個数は６に設定してあるとする。ただし、補間位置バッファ１３のサイズは指定個数以上のデータを保存できるだけの大きさがある。ステップＳ１２において受信がなければ、何もせずに次の受信を待つためにステップＳ１１に戻る。ステップＳ１５において補間位置バッファ１３に指定された個数である６個の補間位置データ９が入っていなければ、何もせずに次の受信を待つためにステップＳ１１へ戻る。
【００２８】
サーボアンプ３で定周期の内部タイマ割り込みが起こると、ステップＳ１９で実行フラグが１であるかどうかの判断をし、実行フラグが１であればステップＳ２０で補間位置バッファ１３の先頭に入っている補間位置のデータを新規に読み出す。ステップＳ２１で制御部１５で補間位置のデータとパルスジェネレータ１７の信号を入力として位置制御ループの制御演算を行い、ステップＳ２２でモータへ制御信号を出力する。ステップＳ１９において実行フラグが１でなければ、新規に読み出さずに前回値を入力としてステップＳ２１、ステップＳ２２を行う。そして、ステップＳ１８の割り込みが起こるたびにステップＳ１９からステップＳ２２を行う。
【００２９】
本発明の手順をとることで、補間位置バッファ１３にデータが６個たまってからモータが動作を開始し、指定した個数である６個の補間位置のデータが補間位置バッファ８に入っている間は、バッファ先頭の補間位置データを定周期で読み出して制御部１５が動作する。ただし、モーションコントローラ２からの正常な最終位置データがバッファに入った後は、データが６個以下になっても制御部１５がデータを読み出す必要があるので、例えば次のようにする。モーションコントローラ２からサーボアンプ３へ送るデータの中に最終位置データであることを示す最終データフラグを設けておき、モーションコントローラ２が最終データフラグを１にして送信することで、サーボアンプ３は最終位置データであることを判断し、最終位置データである場合は補間位置バッファ１３にたまったデータの個数が６個以下になっても実行フラグを１のままにすることで、制御部１５が補間位置バッファ１３から補間位置のデータを読み出すようにする。
このように、サーボアンプ３がモーションコントローラ２からの受信データを補間位置バッファ１３にためてから定周期で補間位置バッファ１３から読み出すので、非同期通信による受信間隔のばらつきを吸収することができる。
【実施例２】
【００３０】
図３は本発明のモーションコントロールシステムの第２実施例の処理手順の例を示すフローチャートであり、図１のモーションコントロールシステム１の動作を示している。  
モーションコントローラ２は非同期通信の間隔を調査するためのテストモーションプログラムを持っており、補間演算して出力される補間位置９の個数はあらかじめ分っているものとする。また、サーボアンプ３は計測のためのタイムスタンプを持っており、タイムスタンプを読み込むと、現在時刻を取得できるものとする。計測開始と計測終了の時点でタイムスタンプを読み込んで、差を計算することで計測時間とする。
【００３１】
動作は次のようになる。モーションコントローラ２はステップＳ３１で非同期通信の通信間隔を調査するために、テスト用の軌跡を表す位置データと移動指令が書かれたテストモーションプログラムを一行読み込み、ステップＳ３２でテストモーションプログラムの終了かどうかをチェックし、終了でなければステップＳ３３に進み、テストモーションプログラムの解析を行い、データ領域に目標位置６を書き込む。ステップＳ３４では補間演算を行い、目標位置６の間を補間する補間位置９を求め、ステップＳ３５で補間位置９を非同期通信でサーボアンプ３へ送信する。
次に、ステップＳ３６で目標位置６までの補間が完了したかどうかの判断をし、補間が完了していなければ次の補間位置９を生成するためにステップＳ３４へ戻り、補間が完了したのであればテストモーションプログラムの次の行を読み込むためにステップＳ３１へ戻り、ステップＳ３２でテストモーションプログラムの終わりを読み込んだと判断するまで、ステップＳ３１からステップＳ３６を繰り返す。ステップＳ３２でテストモーションプログラムの終わりを読み込んだと判断したら、ステップＳ５０に行き、サーボアンプ３からのバッファ指定個数の受信待ちとなる。
【００３２】
サーボアンプ３は、まず計測のための初期化をする。ステップＳ３７で最長時間を０にし、ステップＳ３８で時刻１を０にする。次に、ステップＳ３９からステップＳ４７までの処理を補間点の数だけ繰り返し実行する。ステップＳ４０で時刻２を０にし、ステップＳ４１で受信待ちとなる。次にモーションコントローラ２から非同期通信で送信された補間位置指令を受信し、ステップＳ４２で受信時の現在時刻を読み込んで時刻２に代入し、ステップＳ４３で時刻２と時刻１の差を計算して計測時間とする。次に、ステップＳ４４で最長時間と計測時間を比較し、最長時間よりも計測時間が長ければ、今回の計測時間が最長であるとして、ステップＳ４５で最長時間に計測時間を代入し、最長時間よりも計測時間が長くなければ何もせずに次の処理に移る。次に、ステップＳ４６で時刻２を時刻１に代入し、ステップＳ４７からステップＳ３９へ戻る。モーションコントローラ２から送信される補間位置指令を何回受信して計測するかはあらかじめ設定されており、設定された受信回数分（補間点の数分）、ステップＳ３９からステップＳ４７を繰り返し実行し、非同期通信の受信間隔の最長時間を得る。次に、ステップＳ４８で、最長時間をもとに、バッファ指定個数の計算をする。たとえば、サーボアンプ３から見て、モーションコントローラ２は最長時間の周期で補間位置データを送信してくるとみなして、バッファ指定個数を次の（１）式によって計算する。
バッファ指定個数＝（最長時間／制御周期）＋１          （１）
【００３３】
図３のフローチャートの手順で得られた最長時間が５．２ｍｓ、サーボアンプ３の制御周期が１ｍｓであるとすると、バッファ指定個数は６となる。あるいは、さらに余裕を持たせるために、モーションコントローラ２は最長時間の２倍の周期で補間位置データを送信してくるとみなして、バッファ指定個数を次の式（２）によって計算しても良い。
バッファ指定個数＝（最長時間／制御周期）×２          （２）
図３のフローチャートの手順で得られた最長時間が５．２ｍｓ、サーボアンプ３の制御周期が１ｍｓであるとすると、バッファ指定個数は１０となる。
【００３４】
次に、ステップＳ４９でサーボアンプ３は決定したバッファ指定個数をモーションコントローラ２に送信し、モーションコントローラ２はステップＳ５０でバッファ指定個数を受信して保存する。この後は、実施例１に説明した手順により、非同期通信で補間位置指令による軌跡制御をすることができる。モーションコントローラ２は指定個数の補間位置データ９を一度に非同期通信でサーボアンプ３へ送信し、サーボアンプ３は受信した補間位置データ９を補間位置バッファ１３に保存し、制御周期で補間位置バッファ１３のデータをひとつずつ実行する。
このように、あらかじめテストモーションプログラム１９により、サーボアンプ３が非同期通信の受信間隔の最長時間を計測してから補間位置バッファ１３のバッファ指定個数を決定するので、非同期通信の間隔が空いて補間位置データが途切れることを起こりにくくすることができる。
【実施例３】
【００３５】
本発明のモーションコントロールシステムの第３実施例の処理手順として、次のようにする。図１のモーションコントロールシステム１において、実施例１で説明した図２の手順を開始する前に、実施例２で説明した図３の手順をとる。
このように、あらかじめテストモーションプログラム１８により、サーボアンプ３が非同期通信の受信間隔の最長時間を計測してから補間位置バッファ１３のバッファ指定個数を決定し、その後に続けて、軌跡を表す位置データと移動指令が書かれたモーションプログラム４を実行し、サーボアンプ３はモーションコントローラ２からの受信データを補間位置バッファ１３にバッファ指定個数だけためてから定周期で補間位置バッファ１３から読み出すことによって、補間位置バッファ１３の大きさを自動的に決定することができ、非同期通信の受信間隔が空いて補間位置のデータが途切れることを起こりにくくすることができる。
【実施例４】
【００３６】
図４は本発明のモーションコントロールシステムの第４実施例の処理手順を示すフローチャートであり、図１のモーションコントロールシステム１の動作を示している。図４は図２のステップＳ１２とステップＳ１５に減速停止の処理を追加したものであり、他の部分は図２と同一であるので説明は省略する。
ステップＳ５１は図２のステップＳ１２に相当するステップであり、モーションコントローラ２からの非同期通信の受信を確認し、受信があるかどうかの判断をする。受信がある場合はステップＳ１３に進み、この場合は図２で説明した処理と同一である。受信が無い場合、ステップＳ５２に進み、タイムスタンプの読み込みにより受信待ち経過時間を計測し、ステップＳ５３で受信待ちタイムアウトする時間が経過したかどうかを判断し、受信待ちタイムアウトの場合はステップＳ５４で減速停止データを作成し、補間位置バッファ１３に書き込み終了する。減速停止データは、補間位置バッファ１３に入っている最後の補間位置のデータを減速開始点として作成する。ステップＳ５３において受信タイムアウトではない場合は、受信待ち経過時間を計測しながら次の受信を待つためにステップＳ１７からステップＳ１０に戻る。ステップＳ５５は図２のステップＳ１５に相当するステップで、補間位置バッファ１３をチェックし、補間位置バッファ１３に指定された個数である６個のデータが入っていなければ、ステップＳ５６に進み、実行フラグが０であるかどうかで分岐する。実行フラグが０であれば何もせずに次の受信を確認するためにステップＳ１７からステップＳ１０に戻り、実行フラグが０でなければ、ステップＳ５７に進み、減速停止データを作成し、補間位置バッファ１３に書き込み終了する。
【００３７】
本発明の手順をとることで、補間位置バッファ１３に指定個数のデータがたまってからモータ１６が動作を開始し、指定した個数である６個の補間位置のデータが補間位置バッファ１３に入っている間は、補間位置バッファ１３の先頭のデータを定周期で読み出して制御部１５が動作し、受信間隔が長くなるか、補間位置バッファ１３のデータが指定個数以下になった場合に、自動的に減速停止データを作成して停止する。このように、非同期通信による受信間隔が予想以上に長くなった場合に補間位置のデータが途切れるが、モーションコントロールシステム１の制御対象に衝撃を与えずに自動的に減速停止することができる。
【実施例５】
【００３８】
図５は本発明のモーションコントロールシステムの第５実施例の構成を示すブロック図である。図において２１はモーションコントローラ２２とサーボアンプか２３らなるモーションコントロールシステムであり、モーションプログラムにしたがってモータ１６の位置を計算して指令し、モータ１６が描く軌跡を制御する。モーションコントローラ２２は、パソコン２４とＩＥＥＥ１３９４インタフェースボード２５から構成され、サーボアンプ２３とはＩＥＥＥ１３９４ケーブル２６で接続される。ここで、２４ａはパソコン制御部、２４ｂはパソコンの表示、キーボード部であり、両者でパソコン２４を形成している。また、ＩＥＥＥ１３９４インターフェースボード２５はパソコン制御部２４ａに内蔵されている。
このようにすることで、モーションコントローラとサーボアンプをＩＥＥＥ１３９４シリアルバスで接続して、ＩＥＥＥ１３９４のアシンクロナス転送を非同期通信の手段として補間位置データを転送することができ、モーションコントローラおよびサーボアンプは実施例１に説明した手順を実施することができる。
このように、本発明のモーションコントローラシステムは、リアルタイム性のない安価なモーションコントローラで、非同期通信を用いて補間位置指令による軌跡制御ができる。
【産業上の利用可能性】
【００３９】
モーションコントローラは、プログラム解析部、補間演算部、通信部の順に一連の処理を繰り返すことによって、補間位置指令をサーボアンプに送信することができるので、一連の処理を繰り返すだけのシングルタスクＯＳで安価にモーションコントローラを構築して、軌跡制御をするという用途にも適用できる。
【図面の簡単な説明】
【００４０】
【図１】本発明のモーションコントロールシステムの構成を示すブロック図
【図２】本発明のモーションコントロールシステムの処理手順を示すフローチャート
【図３】本発明のモーションコントロールシステムの第２および第３実施例の処理手順を示すフローチャート
【図４】本発明のモーションコントロールシステムの第４実施例の処理手順を示すフローチャート
【図５】本発明のモーションコントロールシステムの第５実施例の構成を示すブロック図
【図６】従来のモーションコントロールシステムで補間位置制御を行う場合の構成を示す図
【図７】従来のモーションコントロールシステムの補間位置制御の処理手順を示すフローチャート
【図８】従来の補間位置制御の位置データの例を示す図
【図９】従来の位置決め制御の処理手順を示すフローチャート
【図１０】従来の位置決め制御の位置データの例を示す図
【符号の説明】
【００４１】
１、２１、３１  モーションコントロールシステム
２、２２、３２  モーションコントローラ
３、２３、３３  サーボアンプ
４、３４  モーションプログラム
５、３５  プログラム解析部
６、３６、４３  目標位置
７、３７  補間演算部
８、１３、３８  補間位置バッファ
９、１４、３９、４４  補間位置
１０、１２、４０、４２通信部
１１、４１  通信線
１５、４５  制御部
１６  モータ
１７  パルスジェネレータ
２４  パソコン
２４ａ  パソコン制御部
２４ｂ  パソコン表示、キーボード部
２５  ＩＥＥＥ１３９４インタフェースボード
２６  ＩＥＥＥ１３９４ケーブル
【図１】
2006072399.tif 000003
【図２】
2006072399.tif 000004
【図３】
2006072399.tif 000005
【図４】
2006072399.tif 000006
【図５】
2006072399.tif 000007
【図６】
2006072399.tif 000008
【図７】
2006072399.tif 000009
【図８】
2006072399.tif 000010
【図９】
2006072399.tif 000011
【図１０】
2006072399.tif 000012