(57)【要約】【課題】  リアルタイムＯＳや、高速な同期通信が行えるネットワークや、専用のＮＣボードを必要とせず、リアルタイム性の低いパソコンで安価にモーションコントロールシステムを構築する。【解決手段】  パソコン１０に、複数の位置指令を保存しておく位置指令バッファ１１２と、サーボドライブ２０からの要求を受けて位置指令バッファ１１２から位置指令を取り出す位置指令要求受付手段１０４を備え、サーボドライブ２０に、パソコン１０に定周期に位置指令要求を出力する位置指令要求手段２０３を備える。【選択図】  図１
2006350768.tif 000002
【特許請求の範囲】
【請求項１】
直線や円弧等のモータの動作を記述したモーションプログラムと、
該モーションプログラムを解析し前記モータの位置指令を作り出す位置指令作成手段と、
前記位置指令をサーボドライブに出力する位置指令出力手段を有するパソコンと、
前記位置指令を入力する位置指令入力手段と、
該位置指令に基づき前記モータへの指令を演算し出力するサーボ制御手段を有する少なくとも１つのサーボドライブがネットワークで接続されたモーションコントロールシステムにおいて、
前記パソコンに、複数の位置指令を保存しておく位置指令バッファと、
前記サーボドライブからの要求を受けて前記位置指令バッファから位置指令を取り出す位置指令要求受付手段を備え、
前記サーボドライブに、前記パソコンに定周期に位置指令要求を出力する位置指令要求手段を備えることを特徴とするモーションコントロールシステム。
【請求項２】
前記パソコンに、前記位置指令バッファの位置指令の数を監視し、該位置指令バッファに空きがあれば前記位置指令作成手段に位置指令を作成させる位置指令バッファ監視設定手段を更に備えることを特徴とする請求項１記載のモーションコントロールシステム。
【請求項３】
前記サーボドライブが２つ以上ネットワークに接続される場合、１つをマスタのサーボドライブとし、他をスレーブのサーボドライブとし、前記マスタのサーボドライブに、前記スレーブのサーボドライブに同期処理開始要求を出力する同期マスタ処理手段を更に備えることを特徴とする請求項１記載のモーションコントロールシステム。
【請求項４】
前記スレーブのサーボドライブに、前記マスタのサーボドライブからの同期処理開始要求により、前期パソコンから位置指令を入力する位置指令入力手段の起動をかける同期スレーブ処理手段を更に備えることを特徴とする請求項１記載のモーションコントロールシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、パソコンとサーボドライブがネットワークで接続された構成を持つモーションコントロールシステムに関する。
【背景技術】
【０００２】
従来、パソコンとサーボドライブがネットワークで接続されたモーションコントロールシステムでは、パソコン、サーボドライブ共にリアルタイムＯＳを搭載し、リアルタイム性を実現しているものが多い。（従来例１）
図８は従来のモーションコントロールシステムの構成例を示す図である。
パソコン１００とサーボドライブ２００、３００がネットワーク１２を介して接続されている。
パソコン１００内には、直線や円弧等のモータの動作を記述したモーションプログラム１１１、そのモーションプログラム１１１を解析し、位置指令を作成する位置指令作成部１０１、作成された位置指令をサーボドライブ２００、３００に出力する位置指令出力部１０５、リアルタイムＯＳ１０７がある。
なお、サーボドライブは動作の対象となる機械の構成により、１軸の場合や３軸以上の場合もあるが、制御の方法は基本的に同一であるので、ここではＸ軸、Ｙ軸の２軸の場合で説明する。
サーボドライブ２００には、位置指令を入力する位置指令入力部２０４、入力された位置指令に基づきモータへの指令を演算し出力するサーボ制御部２０５、リアルタイムＯＳ２０６がある。サーボドライブ３００も同様の構成となっている。
【０００３】
図９は従来のモーションコントロールシステムの各処理部の動作のタイムチャートである。
パソコン１００と、サーボドライブ２００、３００は、一定周期Ｔごとに同期して繰り返し処理を行う。
パソコン１００は一定周期Ｔごとに位置指令作成Ａｉ、位置指令出力Ｂｉを順次実行する。（ｉ＝０、１、２、３・・・）
サーボドライブ２００は一定周期ごとに位置指令入力Ｅｘｉ、サーボ制御Ｆｘｉを順次実行する。サーボドライブ３００も同様にＥｙｉ、Ｆｙｉを実行する。
このとき、位置指令作成の処理で生成された位置指令は途中で途切れることなくサーボドライブへ渡されて、モータを駆動する必要がある。このデータが途中で途切れるとモータに速度変動が発生し、モータを滑らかに駆動することが出来なくなる。
そのため、パソコンとサーボドライブの実行のトリガとなる起動信号は完全に同期して数μｓ以下の精度とするする必要があり、パソコン、サーボドライブの起動信号は高速同期通信の同期信号を使用してタイミングを合わせる。
【０００４】
図１０は従来の高速同期通信を説明する図である。
高速同期通信を行うシステムは図１０に示すように、１個の通信マスタ５０と、１個または複数個の通信スレーブ５１、５２で構成され、通信マスタ５０と通信スレーブ５１、５２には通信ＬＳＩ５０１、５１１、５２１が搭載されている。モーションコントロールシステムの場合、通常、通信マスタとなる機器はモーションコントローラとして機能するパソコン、通信スレーブとなる機器はサーボドライブとなる。
このようなシステムで高速同期通信を行う場合、通信マスタ５０の通信ＬＳＩ５０１は基準となる同期信号を一定周期間隔で生成し、この同期信号を通信スレーブ５１、５２の通信ＬＳＩ５１１、５２１に供給する。全ての通信ＬＳＩはこの同期信号に同期して通信処理を行う事により各機器間で同期通信が行われる。
また、図９に示す位置指令作成Ａｉ、位置指令出力Ｂｉ、位置指令入力Ｅｘｉ、サーボ制御Ｆｘｉの各処理は、クロック１、２・・・で示す同期信号により起動されるソフトウエア処理として実行される。このとき、パソコン１００、サーボドライブ２００、３００にはリアルタイムＯＳが搭載されており、ソフトウエア処理をリアルタイムＯＳを介して起動することにより、数μｓ以下の精度での同期実行が可能となる。
【０００５】
また、パソコンにリアルタイムＯＳを搭載せずに、パソコンに拡張ボードを装着し、拡張ボード上で上記リアルタイム処理を実行させる方式もある。（従来例２、例えば特許文献１参照）
【特許文献１】特開平１０−２４０３３０号公報（第５−５頁、第１図）
【発明の開示】
【発明が解決しようとする課題】
【０００６】
従来例１でモータを制御する場合、パソコンにリアルタイムＯＳを搭載したり、パソコンとサーボドライブ間に高速な同期通信が行えるネットワークを使用してモーションコントロールシステムを構築するため、高価なシステムとなる。
また、従来例２の方法でも、リアルタイム処理を実行させる為に、専用のＮＣボードを製作する必要があり、非常に高価なシステムとなる。
そこで本発明は、リアルタイムＯＳや、高速な同期通信が行えるネットワークや、専用のＮＣボードを必要とせず、リアルタイム性の低いパソコンで安価にリアルタイム性のあるモーションコントロールシステムを構築することを目的とする。
【課題を解決するための手段】
【０００７】
上記問題を解決するため、本発明は、次のように構成したのである。
請求項１に記載の発明は、直線や円弧等のモータの動作を記述したモーションプログラムと、該モーションプログラムを解析し前記モータの位置指令を作り出す位置指令作成手段と、前記位置指令をサーボドライブに出力する位置指令出力手段を有するパソコンと、前記位置指令を入力する位置指令入力手段と、該位置指令に基づき前記モータへの指令を演算し出力するサーボ制御手段を有する少なくとも１つのサーボドライブがネットワークで接続されたモーションコントロールシステムにおいて、前記パソコンに、複数の位置指令を保存しておく位置指令バッファと、前記サーボドライブからの要求を受けて前記位置指令バッファから位置指令を取り出す位置指令要求受付手段を備え、前記サーボドライブに、前記パソコンへ定周期に位置指令要求を出力する位置指令要求手段を備えることを特徴とするものである。
【０００８】
また、請求項２に記載の発明は、前記パソコンに、前記位置指令バッファの位置指令の数を監視し、該位置指令バッファに空きがあれば前記位置指令作成手段に位置指令を作成させる位置指令バッファ監視設定手段を更に備えることを特徴とするものである。
また、請求項３に記載の発明は、前記サーボドライブが２つ以上ネットワークに接続される場合、１つをマスタのサーボドライブとし、他をスレーブのサーボドライブとし、前記マスタのサーボドライブに、前記スレーブのサーボドライブに同期処理開始要求を出力する同期マスタ処理手段を更に備えることを特徴とするものである。
また、請求項４に記載の発明は、前記スレーブのサーボドライブに、前記マスタのサーボドライブからの同期処理開始要求により、前期パソコンから位置指令を入力する位置指令入力手段の起動をかける同期スレーブ処理手段を更に備えることを特徴とするものである。
【発明の効果】
【０００９】
請求項１および請求項２に記載の発明によれば、パソコンに、複数の位置指令を保存しておく位置指令バッファと、サーボドライブからの要求を受けて前記位置指令バッファから位置指令を取り出す位置指令要求受付手段を備え、サーボドライブに、パソコンに定周期に位置指令要求を出力する位置指令要求手段を備え、また、パソコンに、位置指令バッファの位置指令の数を監視し、位置指令バッファに空きがあれば位置指令作成手段に位置指令を作成させる位置指令バッファ監視設定手段を備えたので、サーボドライブが位置指令をリアルタイムで取り出すことができる。
請求項３および請求項４に記載の発明によれば、サーボドライブが２つ以上ネットワークに接続される場合、マスタのサーボドライブに、スレーブのサーボドライブに同期処理開始要求を出力する同期マスタ処理手段を備え、スレーブのサーボドライブに、同期処理開始要求により、パソコンから位置指令を入力する位置指令入力手段の起動をかける同期スレーブ処理手段を備えたので、マスタとスレーブのサーボドライブの同期を取ることができる。
これにより、リアルタイムＯＳや、高速な同期通信が行えるネットワークや、専用のＮＣボードを必要とせず、リアルタイム性の低いパソコンで安価にリアルタイム性のあるモーションコントロールシステムを構築できる。
【発明を実施するための最良の形態】
【００１０】
以下、本発明の実施の形態について図を参照して説明する。
【実施例１】
【００１１】
図１は本発明のモーションコントロールシステムの構成例を示す図である。
パソコン１０とサーボドライブ２０、３０が非同期通信が行えるネットワーク１１を介して接続されている。
パソコン１０内には、直線や円弧等のモータの動作を記述したモーションプログラム１１１、そのモーションプログラム１１１を解析し、位置指令を作成する位置指令作成部１０１、複数の位置指令を保存しておく位置指令バッファ１１２、位置指令バッファの位置指令の数を監視し、位置指令バッファに空きがあれば位置指令作成部１０１に位置指令を作成させ、バッファを補充する位置指令バッファ監視設定部１０２、サーボドライブ２０、３０とデータのやり取りを行うパソコンデータ送受信部１０３、非リアルタイムＯＳ１０６がある。また、パソコンデータ送受信部１０３の中にはサーボドライブ２０からの位置指令の要求を受付ける位置指令要求受付部１０４、サーボドライブ２０、３０に位置指令を出力する位置指令出力部１０５がある。
【００１２】
サーボドライブ２０、３０には、パソコン１０とデータのやり取りを行うサーボデータ送受信部２０１、３０１、入力された位置指令に基づきモータへの指令を演算し出力するサーボ制御部２０５、３０５、リアルタイムＯＳ２０６、３０６がある。サーボデータ送受信部２０１、３０１には、位置指令を入力する位置指令入力部２０４、３０４がある。
また、複数のサーボドライブ２０、３０がネットワーク１１に接続されている場合、位置指令の読み出しの同期したタイミングを生成するマスタとなるサーボドライブを１つ設ける。本実施例ではＸ軸用のサーボドライブ２０をマスタとし、Ｙ軸用のサーボドライブ３０をスレーブとする。マスタとなるサーボドライブ２０のサーボデータ送受信部２０１には、パソコンとスレーブとの同期を取る同期マスタ処理部２０２と、パソコンに位置指令を要求する位置指令要求部２０３をもつ。スレーブとなるサーボドライブ３０のサーボデータ送受信部３０１には、マスタとの同期を取る同期スレーブ処理部３０２をもつ。
【００１３】
本発明が従来と異なる点は、パソコンのＯＳは非リアルタイムＯＳとし、サーボドライブが主体となって、リアルタイムでパソコンに位置指令を要求し、パソコンはその要求に応えられるように、位置指令をバッファに持つようにした点である。
具体的には、パソコン１０の位置指令バッファ監視設定部１０２、位置指令バッファ１１２、位置指令要求受付部１０４、非リアルタイムＯＳ１０６、サーボドライブ２０の同期マスタ処理部２０２、位置指令要求部２０３、サーボドライブ３０の同期スレーブ処理部３０２、ネットワーク１１が非同期通信が行えるものとなっている点である。
【００１４】
図２は本発明のモーションコントロールシステムの各処理部の動作のタイムチャートである。
Ｘ軸用のサーボドライブ２０とＹ軸用のサーボドライブ３０は一定周期ＴｓごとにクロックＳ１、Ｓ２・・・に同期して繰り返し処理を行う。
サーボドライブ２０の定周期処理が、非同期通信でパソコン１０上に設けられた位置指令バッファ１１２内の位置指令を読み出す。
同期マスタであるサーボドライブ２０の定周期処理の実行のトリガとなる起動信号はサーボドライブ２０のリアルタイムクロックを使用する。
サーボドライブ２０はリアルタイムクロックによるＳ１、Ｓ２・・・の起動信号が入ると、同期マスタ処理Ｃｘｉを実行し、スレーブであるサーボドライブ３０へ同期処理開始要求を出力する。
サーボドライブ３０はマスタからの同期処理開始要求を受けると、リアルタイムＯＳを介して同期スレーブ処理Ｃｙｉが起動されることで、サーボドライブ２０の定周期処理より数μｓｅｃ遅れて、定周期処理の実行が開始される。
サーボドライブ２０は同期マスタ処理Ｃｘｉに続いて、１周期前のタイミングでパソコンが出力した位置指令を入力する位置指令入力Ｅｘｉとその結果に基づくサーボ制御Ｆｘｉを実行する。次にパソコン１０に位置指令の出力を要求する位置指令要求Ｄｘｉを実行する。（ｉ＝０、１、２、３・・・）
サーボドライブ３０は同期スレーブ処理Ｃｙｉに続いて、位置指令入力Ｅｙｉ、サーボ制御Ｆｙｉを実行するが、位置指令要求は行わない。
【００１５】
パソコン１０は位置指令を位置指令バッファ１１２にためておいて、サーボドライブ２０からの要求により、サーボドライブ２０、３０へ非同期に出力する。
パソコン１０にリアルタイムＯＳの搭載は行わずに、位置指令を作成して位置指令バッファ１１２へセットする処理は、パソコン１０上のタイマを使用して非リアルタイムＯＳ１０６により一定周期Ｔｐごとに起動する。
そのため、位置指令バッファ１１２へ位置指令をセットする処理と、サーボドライブ２０、３０が位置指令バッファ１１２から位置指令を入力する処理が同期して実行されないので、位置指令バッファ１１２が一杯になったり、空になったりするという問題が発生する。そこで、位置指令を作成して位置指令バッファ１１２へセットする処理は、位置指令バッファ１１２の状態を監視して、バッファに貯められた位置指令の数が、予め設定されたバッファ上限値を超えると作成処理を休み、空きがあれば処理を継続するようにする。
図２ではクロックＳ１が発生するより前のタイミングで、位置指令作成Ａ１〜Ａ４が予め起動され、４個の位置指令が既に位置指令バッファ１１２上にあるものとする。クロックＳ１のタイミングで、サーボドライブ２０から位置指令要求が来ると、位置指令出力Ｂ１が起動し、位置指令バッファ１１２から位置指令作成Ａ１で作成した位置指令を１個サーボドライブ２０、３０に出力する。
同様に、クロックＳ２、クロックＳ３のタイミングでも、位置指令バッファ１１２から１個位置指令を出力する。クロックＰ２のタイミングで位置指令バッファに空きがあるので、位置指令作成Ａｉの処理が起動され、位置指令バッファ１１２に位置指令が補充される。
なお、位置指令バッファ１１２に貯められる位置指令の数であるバッファ上限値と、バッファの空きをチェックするタイミングは、モーションシステムの応答性に影響をおよぼすため、図示しないパラメータとして、作業者が予めモーションシステムを適用する機械システムの要求性能に応じた値を設定しておく。
図３は位置指令バッファを示す図である。
図３で、位置指令１（Ａ１）とは、位置指令作成の処理Ａ１で作成された位置指令という意味である。
【００１６】
以下に図１に示した各処理部の詳細を説明する。
図４は本発明のモーションコントロールシステムの位置指令バッファ監視設定部１０２の処理のフローチャートである。この処理は次のステップを実行する。
ステップＳ１：位置指令バッファ監視設定部１０２は位置指令バッファに保持されている位置指令の数を示すバッファカウンタをチェックし、予め設定されたバッファ上限値を越えているかをチェックする。バッファ上限値を超えている場合は、以降のステップを実行しない。バッファ上限値を超えていない場合は次ステップへ進む。
ステップＳ２：位置指令バッファ監視設定部１０２は位置指令作成部１０１にモーションプログラム１１１の解析を依頼し、位置指令作成部１０１は、モーションプログラム１１１に従った各軸の位置指令を作成する。
ステップＳ３：生成した位置指令を位置指令バッファ１１２にセットする。
ステップＳ４：バッファカウンタを＋１する。
ステップＳ５：バッファカウンタが予め設定されたバッファ上限値を超えていないかチェックする。超えていない場合は、ステップＳ２へ進み、再度位置指令を作成する。
以上のステップを定周期に繰り返す。
【００１７】
図５は本発明のモーションコントロールシステムのパソコンデータ送受信部１０３の処理のフローチャートである。この処理は次のステップを実行する。
ステップＳ１１：位置指令要求受付部１０４はサーボドライブ２０からの位置指令要求があるかどうかチェックし、要求があれば次のステップに進む。
ステップＳ１２：サーボドライブ２０から位置指令要求を受け取ると、位置指令バッファ１１２より位置指令を１個取り出す。
ステップＳ１３：バッファカウンタを−１する。
ステップＳ１４：位置指令出力部１０５が位置指令をサーボドライブ２０、３０に出力する。
以上のステップを繰り返す。
【００１８】
図６は本発明のモーションコントロールシステムのマスタとなるサーボドライブ２０のサーボデータ送受信部２０１の処理のフローチャートである。
ステップＳ２１：同期マスタ処理部２０２がスレーブのサーボドライブであるＹ軸用のサーボドライブ３０に同期処理開始要求を出力する。
ステップＳ２２：位置指令入力部２０４がパソコン１０からの位置指令を受信し、位置指令をサーボ制御部２０５へ転送する。
ステップＳ２３：サーボ制御部２０５がサーボ制御を行う。
ステップＳ２４：位置指令要求部２０３がパソコン１０へ位置指令要求を出力する。
以上のステップを定周期に繰り返す。
【００１９】
図７は本発明のモーションコントロールシステムのスレーブとなるサーボドライブ３０のサーボデータ送受信部３０１の処理のフローチャートである。
ステップＳ３１：同期スレーブ処理部３０２はマスタのサーボドライブ２０からの同期処理開始要求があるかどうかチェックし、あれば位置指令入力部３０４の起動をかけ、次ステップに進む。
ステップＳ３２：位置指令入力部３０４がパソコン１０からの位置指令を受信し、位置指令をサーボ制御部３０５へ転送する。
ステップＳ３３：サーボ制御部３０５がサーボ制御を行う。
以上のステップを定周期に繰り返す。
このように、本発明によれば、パソコンに、複数の位置指令を保存しておく位置指令バッファと、サーボドライブからの要求を受けて前記位置指令バッファから位置指令を取り出す位置指令要求受付手段を備え、サーボドライブに、パソコンに定周期に位置指令要求を出力する位置指令要求手段を備え、また、パソコンに、位置指令バッファの位置指令の数を監視し、位置指令バッファに空きがあれば位置指令作成手段に位置指令を作成させる位置指令バッファ監視設定手段を備えたので、サーボドライブが位置指令をリアルタイムで取り出すことができる。
また、サーボドライブが２つ以上ネットワークに接続される場合、マスタのサーボドライブに、スレーブのサーボドライブに同期処理開始要求を出力する同期マスタ処理手段を備え、スレーブのサーボドライブに、同期処理開始要求により、パソコンから位置指令を入力する位置指令入力手段の起動をかける同期スレーブ処理手段を備えたので、マスタとスレーブのサーボドライブの同期を取ることができる。
これにより、リアルタイムＯＳや、高速な同期通信が行えるネットワークや、専用のＮＣボードを必要とせず、リアルタイム性の低いパソコンで安価にリアルタイム性のあるモーションコントロールシステムを構築できるのである。
【産業上の利用可能性】
【００２０】
本発明によれば、ローコストでモーションコントロールシステムが構築できるので、一般産業用機械、半導体製造装置、ロボット、などの用途に幅広く適用できる。
【図面の簡単な説明】
【００２１】
【図１】本発明におけるモーションコントロールシステムの構成例を示す図
【図２】本発明のモーションコントロールシステムの各処理部の動作のタイムチャート
【図３】位置指令バッファを示す図
【図４】本発明のモーションコントロールシステムの位置指令バッファ監視設定部の処理のフローチャート
【図５】本発明のモーションコントロールシステムのパソコンデータ送受信部の処理のフローチャート
【図６】本発明のモーションコントロールシステムのマスタとなるサーボドライブのサーボデータ送受信部の処理のフローチャート
【図７】本発明のモーションコントロールシステムのスレーブとなるサーボドライブのサーボデータ送受信部の処理のフローチャート
【図８】従来のモーションコントロールシステムの構成例を示す図
【図９】従来のモーションコントロールシステムの各処理部の動作のタイムチャート
【図１０】従来の高速同期通信を説明する図
【符号の説明】
【００２２】
１０、５０、１００  パソコン
１１、１２、５３  ネットワーク
１０１  位置指令作成
１０２  位置指令バッファ監視設定部
１０３  パソコンデータ送受信部
１０４  位置指令要求受付部
１０５  位置指令出力部
１０６  非リアルタイムＯＳ
１０７、２０６、３０６  リアルタイムＯＳ
１１１  モーションプログラム
１１２  位置指令バッファ
２０、３０、５１、５２、２００、３００  サーボドライブ
２１、３１  モータ
２０１、３０１  サーボデータ送受信部
２０２  同期マスタ処理部
２０３  位置指令要求部
２０４、３０４  位置指令入力部
２０５、３０５  サーボ制御部
３０２  同期スレーブ処理部
５０  通信マスタ機器
５１、５２  通信スレーブ機器
５０１、５０２、５０３  通信ＬＳＩ
【図１】
2006350768.tif 000003
【図２】
2006350768.tif 000004
【図３】
2006350768.tif 000005
【図４】
2006350768.tif 000006
【図５】
2006350768.tif 000007
【図６】
2006350768.tif 000008
【図７】
2006350768.tif 000009
【図８】
2006350768.tif 000010
【図９】
2006350768.tif 000011
【図１０】
2006350768.tif 000012