(57)【要約】  【課題】  複数のモータを同時に駆動して軌跡制御を行うことのできる、正確な加減速度の位置指令を発生する位置制御装置およびその指令生成方法を提供する。  【解決手段】  連続する第１および第２の二つの区間の切換点を含むサンプリング周期の移動量を、第１の区間の前記切換点に到達する時刻を切換時刻として前記切換時刻の一つ前のサンプリング時刻から前記切換時刻までの第１の区間の移動量と、前記切換時刻から今回のサンプリング時刻までの第２の区間の移動量との和として求め今回の移動量として算出する。  【選択図】    図２
2005216026.tif 000002
【特許請求の範囲】
【請求項１】
移動ブロックの全移動区間を複数の区間に分割し、予め設定された所定のサンプリング周期における移動量を算出し、前記移動量を前記サンプリング周期毎に指令値とする位置制御装置の指令生成方法において、
連続する第１および第２の二つの区間の切換点を含むサンプリング周期の移動量を、第１の区間の前記切換点に到達する時刻を切換時刻として前記切換時刻の一つ前のサンプリング時刻から前記切換時刻までの第１の区間の移動量と、前記切換時刻から今回のサンプリング時刻までの第２の区間の移動量との和を求め今回のサンプリング周期における移動量とすることを特徴とする位置制御装置の指令生成方法。
【請求項２】
移動ブロックの全移動区間を複数の区間に分割し、予め設定された所定のサンプリング周期における移動量を算出し、前記移動量を前記サンプリング周期毎に指令値とする位置制御装置の指令生成方法において、
連続する第１および第２の二つの区間の切換点を含むサンプリング周期の指令を、第１の区間の前記切換点に到達する時刻を切換時刻として前記切換時刻の一つ前のサンプリング時刻から前記切換時刻までの時間を今回のサンプリング周期とし、前記切換時刻の一つ前のサンプリング時刻から前記切換時刻までの第１の区間の移動量を今回の移動量とし、前記切換時刻を新たに所定のサンプリング周期の起点として第２の区間の指令を生成することを特徴とする位置制御装置の指令生成方法。
【請求項３】
予め設定された所定のサンプリング周期における移動量を算出し、前記移動量を前記サンプリング周期毎に指令値とする位置制御装置の指令生成方法において、
前後する第１の移動ブロックと第２の移動ブロックからなる二つの移動ブロックを連続して指令するとき、第１の移動ブロックの目標位置に到達する一つ前のサンプリング時刻から前記目標位置に到達する切換時刻までの移動量と、前記切換時刻を第２の移動ブロックの開始時刻とし前記切換時刻から今回のサンプリング時刻までの移動量との和を今回のサンプリング周期における移動量とすることを特徴とする位置制御装置の指令生成方法。
【請求項４】
予め設定された所定のサンプリング周期における移動量を算出し、前記移動量を前記サンプリング周期毎に指令値とする位置制御装置の指令生成方法において、
前後する第１の移動ブロックと第２の移動ブロックからなる二つの移動ブロックを連続して指令するとき、第１の移動ブロックの目標位置に到達する一つ前のサンプリング時刻から前記目標位置に到達する時刻を今回のサンプリング周期とし、前記目標位置に到達する一つ前のサンプリング時刻から前記目標位置に到達する時刻までの移動量を今回の移動量として算出し、前記目標位置に到達する時刻を新たに所定のサンプリング周期の起点として第２の移動ブロックの開始時刻として指令を生成することを特徴とする位置制御装置の指令生成方法。
【請求項５】
移動ブロックの全移動区間を複数の区間に分割し、予め設定された所定のサンプリング周期における移動量を算出し、前記移動量を前記サンプリング周期毎にパルス分配手段に指令する指令生成手段を備えた位置制御装置において、
前記指令生成手段は、連続する第１および第２の二つの区間の切換点を含むサンプリング周期の移動量を、第１の区間の前記切換点に到達する時刻を切換時刻として前記切換時刻の一つ前のサンプリング時刻から前記切換時刻までの第１の区間の移動量と、前記切換時刻から今回のサンプリング時刻までの第２の区間の移動量との和を求め今回のサンプリング周期における移動量とすることを特徴とする位置制御装置。
【請求項６】
移動ブロックの全移動区間を複数の区間に分割し、予め設定された所定のサンプリング周期における移動量を算出し、前記移動量を前記サンプリング周期毎にパルス分配手段に指令する指令生成手段を備えた位置制御装置において、
前記指令生成手段は、連続する第１および第２の二つの区間の切換点を含むサンプリング周期の指令を、第１の区間の前記切換点に到達する時刻を切換時刻として前記切換時刻の一つ前のサンプリング時刻から前記切換時刻までの時間を今回のサンプリング周期とし、前記切換時刻の一つ前のサンプリング時刻から前記切換時刻までの第１の区間の移動量を今回の移動量とし、前記切換時刻を新たに所定のサンプリング周期の起点として第２の区間の指令を生成することを特徴とする位置制御装置。
【請求項７】
予め設定された所定のサンプリング周期における移動量を算出し、前記移動量を前記サンプリング周期毎にパルス分配手段に指令する指令生成手段を備えた位置制御装置において、
前記指令生成手段は、前後する第１の移動ブロックと第２の移動ブロックからなる二つの移動ブロックを連続して指令するとき、第１の移動ブロックの目標位置に到達する一つ前のサンプリング時刻から前記目標位置に到達する切換時刻までの移動量と、前記切換時刻を第２の移動ブロックの開始時刻とし前記切換時刻から今回のサンプリング時刻までの移動量との和を今回のサンプリング周期における移動量とすることを特徴とする位置制御装置。
【請求項８】
予め設定された所定のサンプリング周期における移動量を算出し、前記移動量を前記サンプリング周期毎にパルス分配手段に指令する指令生成手段を備えた位置制御装置において、
前記指令生成手段は、前後する第１の移動ブロックと第２の移動ブロックからなる二つの移動ブロックを連続して指令するとき、第１の移動ブロックの目標位置に到達する一つ前のサンプリング時刻から前記目標位置に到達する時刻を今回のサンプリング周期とし、前記目標位置に到達する一つ前のサンプリング時刻から前記目標位置に到達する時刻までの移動量を今回の移動量として算出し、前記目標位置に到達する時刻を新たに所定のサンプリング周期の起点として第２の移動ブロックの開始時刻として指令を生成することを特徴とする位置制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、所定の周期毎に移動量を計算し、アクチュエータを駆動する位置制御装置の指令生成方法に関する。
【背景技術】
【０００２】
従来の位置制御装置の指令生成方法として、位置制御装置に、所定のサンプリング周期毎に移動量を計算し、位置指令を与える指令生成方法として、移動ブロックの全移動区間を加速区間と一定速区間と減速区間とに分割し、各区間において必要なサンプリング数と各サンプリング周期における移動量とを計画し、加速区間の最終サンプリング周期における移動量あるいは減速区間の最初の最終サンプリング周期における移動量が一定速区間の一サンプリング周期における移動量より大きい場合にはそれが解消されるまで加速区間あるいは減速区間のサンプリング数を減じて一定速区間のサンプリング数を増加し、一定速区間の一サンプリング周期における移動量を修正して、端数の生じない加減速度パターンにて送り速度を制御し、指令位置に正確に位置決めするものがある（特許文献１参照）。
図１５は従来技術による指令生成を行う数値制御装置の基本的構成である。数値制御装置は、キー入力部２１と、主制御部２２と、機械側入出力部２３と、表示部２４と、データ入出力制御部２５と、プログラム解析部２６と、パルス分配部２７と、サーボ制御部２８とを有している。
図１６は、従来技術による指令生成を行う処理フローを示すフローチャートである。図１６において、先ず、ステップ１０で初期処理を行う。つぎに、ステップ２０で移動指令を読込む。つぎに、ステップ３０で速度制限値の計算を行う。
ステップ４０では、Ｌｆ、Ｌａ、Ｌａｐｈ、Ｌａｍｈ、Ｌｍａｘ、Ｎａ、Ｌｄ１、Ｓｄ、Ｎｆ、Ｎの計算を行う。つぎに、ステップ５０でＬｍａｘを再計算する。
ステップ６０では、妥当性の評価を行い、妥当であればステップ７０へ進み、妥当でなければステップ８０へ進む。
ステップ７０では、パルス分配を実行する。つぎに、ステップ１１０で移動指令が終了したか否かを判定し、終了していれば終り、終了していなければステップ２０へ戻る。
ステップ８０では、ＬｄがＬａよりも大きいか否かを判定し、Ｌｄ＞Ｌａであればステップ９０へ進み、Ｌｄ＞Ｌａでなければステップ１００へ進む。
ステップ９０では、Ｎｄを減らしＮｆを増やし再計算してステップ５０へ戻る。また、ステップ１００では、Ｎａを減らしＮｆを増やし再計算してステップ５０へ戻る。
このようにして、端数の生じない加減速度パターンにて送り速度を制御し、指令位置に正確に位置決めする指令を生成している。
【特許文献１】特開平７−３０６７０８号公報（第４−６頁、図１、図２）
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、位置制御装置においては複数のモータを同時に駆動して平面的または立体的に軌跡を制御することが要求されるが、特許文献１では、端数の生じない加減速度パターンにて送り速度を制御し、指令位置に正確に位置決めする指令を生成しているので、指令位置に正確に位置決めはできるが、正確な加減速度の位置指令を発生できないため、複数のモータを同時に駆動して軌跡制御を行う場合、正確な軌跡の位置指令を発生できないという問題点があった。
本発明はこのような問題点に鑑みてなされたものであり、複数のモータを同時に駆動して軌跡制御を行うことのできる、正確な加減速度の位置指令を発生する位置制御装置およびその指令生成方法を提供することを目的とする。
【課題を解決するための手段】
【０００４】
上記問題を解決するため、本発明は、次のように構成した。
請求項１に記載の発明は、移動ブロックの全移動区間を複数の区間に分割し、予め設定された所定のサンプリング周期における移動量を算出し、前記移動量を前記サンプリング周期毎に指令値とする位置制御装置の指令生成方法において、
連続する第１および第２の二つの区間の切換点を含むサンプリング周期の移動量を、第１の区間の前記切換点に到達する時刻を切換時刻として前記切換時刻の一つ前のサンプリング時刻から前記切換時刻までの第１の区間の移動量と、前記切換時刻から今回のサンプリング時刻までの第２の区間の移動量との和を求め今回のサンプリング周期における移動量とすることを特徴とするものである。
【０００５】
また、請求項２に記載の発明は、移動ブロックの全移動区間を複数の区間に分割し、予め設定された所定のサンプリング周期における移動量を算出し、前記移動量を前記サンプリング周期毎に指令値とする位置制御装置の指令生成方法において、
連続する第１および第２の二つの区間の切換点を含むサンプリング周期の指令を、第１の区間の前記切換点に到達する時刻を切換時刻として前記切換時刻の一つ前のサンプリング時刻から前記切換時刻までの時間を今回のサンプリング周期とし、前記切換時刻の一つ前のサンプリング時刻から前記切換時刻までの第１の区間の移動量を今回の移動量とし、前記切換時刻を新たに所定のサンプリング周期の起点として第２の区間の指令を生成することを特徴とするものである。
【０００６】
また、請求項３に記載の発明は、予め設定された所定のサンプリング周期における移動量を算出し、前記移動量を前記サンプリング周期毎に指令値とする位置制御装置の指令生成方法において、
前後する第１の移動ブロックと第２の移動ブロックからなる二つの移動ブロックを連続して指令するとき、第１の移動ブロックの目標位置に到達する一つ前のサンプリング時刻から前記目標位置に到達する切換時刻までの移動量と、前記切換時刻を第２の移動ブロックの開始時刻とし前記切換時刻から今回のサンプリング時刻までの移動量との和を今回のサンプリング周期における移動量とすることを特徴とするものである。
【０００７】
また、請求項４に記載の発明は、予め設定された所定のサンプリング周期における移動量を算出し、前記移動量を前記サンプリング周期毎に指令値とする位置制御装置の指令生成方法において、
前後する第１の移動ブロックと第２の移動ブロックからなる二つの移動ブロックを連続して指令するとき、第１の移動ブロックの目標位置に到達する一つ前のサンプリング時刻から前記目標位置に到達する時刻を今回のサンプリング周期とし、前記目標位置に到達する一つ前のサンプリング時刻から前記目標位置に到達する時刻までの移動量を今回の移動量として算出し、前記目標位置に到達する時刻を新たに所定のサンプリング周期の起点として第２の移動ブロックの開始時刻として指令を生成することを特徴とするものである。
【０００８】
また、請求項５に記載の発明は、移動ブロックの全移動区間を複数の区間に分割し、予め設定された所定のサンプリング周期における移動量を算出し、前記移動量を前記サンプリング周期毎にパルス分配手段に指令する指令生成手段を備えた位置制御装置において、
前記指令生成手段は、連続する第１および第２の二つの区間の切換点を含むサンプリング周期の移動量を、第１の区間の前記切換点に到達する時刻を切換時刻として前記切換時刻の一つ前のサンプリング時刻から前記切換時刻までの第１の区間の移動量と、前記切換時刻から今回のサンプリング時刻までの第２の区間の移動量との和を求め今回のサンプリング周期における移動量とすることを特徴とするものである。
【０００９】
また、請求項６に記載の発明は、移動ブロックの全移動区間を複数の区間に分割し、予め設定された所定のサンプリング周期における移動量を算出し、前記移動量を前記サンプリング周期毎にパルス分配手段に指令する指令生成手段を備えた位置制御装置において、
前記指令生成手段は、連続する第１および第２の二つの区間の切換点を含むサンプリング周期の指令を、第１の区間の前記切換点に到達する時刻を切換時刻として前記切換時刻の一つ前のサンプリング時刻から前記切換時刻までの時間を今回のサンプリング周期とし、前記切換時刻の一つ前のサンプリング時刻から前記切換時刻までの第１の区間の移動量を今回の移動量とし、前記切換時刻を新たに所定のサンプリング周期の起点として第２の区間の指令を生成することを特徴とするものである。
【００１０】
また、請求項７に記載の発明は、予め設定された所定のサンプリング周期における移動量を算出し、前記移動量を前記サンプリング周期毎にパルス分配手段に指令する指令生成手段を備えた位置制御装置において、
前記指令生成手段は、前後する第１の移動ブロックと第２の移動ブロックからなる二つの移動ブロックを連続して指令するとき、第１の移動ブロックの目標位置に到達する一つ前のサンプリング時刻から前記目標位置に到達する切換時刻までの移動量と、前記切換時刻を第２の移動ブロックの開始時刻とし前記切換時刻から今回のサンプリング時刻までの移動量との和を今回のサンプリング周期における移動量とすることを特徴とするものである。
【００１１】
また、請求項８に記載の発明は、予め設定された所定のサンプリング周期における移動量を算出し、前記移動量を前記サンプリング周期毎にパルス分配手段に指令する指令生成手段を備えた位置制御装置において、
前記指令生成手段は、前後する第１の移動ブロックと第２の移動ブロックからなる二つの移動ブロックを連続して指令するとき、第１の移動ブロックの目標位置に到達する一つ前のサンプリング時刻から前記目標位置に到達する時刻を今回のサンプリング周期とし、前記目標位置に到達する一つ前のサンプリング時刻から前記目標位置に到達する時刻までの移動量を今回の移動量として算出し、前記目標位置に到達する時刻を新たに所定のサンプリング周期の起点として第２の移動ブロックの開始時刻として指令を生成することを特徴とするものである。
【発明の効果】
【００１２】
本発明によれば、正確な加減速度の位置指令を発生できるので、複数のモータを同時に駆動して軌跡制御を行うことのできる位置指令を発生できる位置制御装置およびその指令生成方法を提供することができる。
【発明を実施するための最良の形態】
【００１３】
以下、本発明の実施の形態について図を参照して説明する。
実際のフィードバック制御装置には様々な機能や手段が内蔵されているが、図には本発明に関係する機能や手段のみを記載し説明することとする。また、以下同一名称には極力同一符号を付け重複説明を省略する。
【００１４】
まず、本発明の基盤となる技術について説明する。
図１は、本発明の位置制御装置のブロック図である。位置制御装置においては、駆動するモータの軸数は限定ものではないので、図１の位置制御装置の例では、任意の軸数であるｎ軸を備えている。
また、本発明の指令生成方法は、１軸のみに限らず複数の軸に対しても適用できるものであるが、理解し易くするため、実施例においては、１軸に対する指令作成方法を示している。
【００１５】
図１において、２は主制御部、５は移動データ入力部、６は指令生成手段、７はパルス分配手段、８ａは第１軸サーボ制御部、８ｂは第２軸サーボ制御部、８ｎは第ｎ軸サーボ制御部、９ａは第１軸モータ、９ｂは第２軸モータ、９ｎは第ｎ軸モータである。
主制御部２は位置制御装置全体を管理し、位置制御装置内の各機能ブロック間のデータの流れとタイミングを制御する。図１中、実線の矢印はデータの流れを表し、破線の矢印は主制御部２と各機能ブロックとの制御信号の流れを表している。
移動データ入力部５はパートプログラムを入力し指令生成手段６へ移動ブロックの移動データを出力する。前記パートプログラムは、紙テープリーダ、フレキシブルディスクドライブや外部メモリから入力してもよいし、位置制御装置内の記憶装置に格納されているデータであってもよい。
指令生成手段６は移動データ入力部５より前記移動ブロックの移動データを入力し、後述の各実施例に従って位置指令を生成し、パルス分配手段７へ指令値を出力する。
パルス分配手段７は前記指令値を入力し、そのデータに基づいて各軸のサーボ制御部８ａ〜８ｎへパルス分配を行う。
各軸のサーボ制御部８ａ〜８ｎは各軸にパルス分配されたデータに従って各軸に対応した軸のモータ９ａ〜９ｎを駆動する。
【００１６】
例えば、パルス分配手段７は各軸毎に分割して各軸のサーボ制御部（８ａ〜８ｎ）に分散して配置してもよい。またその場合、指令生成手段６は位置指令を各軸のサーボ制御部（８ａ〜８ｎ）に配置されたパルス分配手段へネットワークを介して出力してもよい。
パルス分配手段７の実現方法としては従来から様々な方法が知られているが、参考として、その一例を紹介する。
図１２はパルス分配の実現方法の一例を示すフローチャートである。図１２において、まず、Ｓ８１でパルス分配をを行うための前準備として、サンプリング周期中に発生させるパルス数（移動量の絶対値）をレジスタＡＲに設定し、また、サンプリング周期のクロックパルス数をレジスタＢＲ、レジスタＥＲ、およびレジスタＴＲに設定する。つぎに、Ｓ８２でレジスタＴＲの値が正か否かを判定し、正であればＳ８３へ進み、正でなければサンプリング周期のパルス分配を終了する。
Ｓ８３では、パルス分配を行うトリガーとなるクロックパルスが入力されるまで待機し、該クロックパルスが入力されるとＳ８４に進む。
Ｓ８４では、レジスタＴＲの値から１差し引いて、その値をレジスタＴＲへ格納し、また、レジスタＥＲの値からレジスタＡＲの値を差し引いて、その値をレジスタＥＲへ格納してＳ８５へ進む。
Ｓ８５では、レジスタＥＲの値が正か否かを判定し、正でなければＳ８６へ進み、正であればＳ８２へ戻る。
Ｓ８６では、位置指令となるパルスを移動方向に応じた方向に出力し、レジスタＥＲの値にレジスタＢＲの値を加算した値をレジスタＥＲへ格納して、Ｓ８２へ戻る。
このようにして、パルス分配を行うことができる。
【００１７】
図１３は、走行パターンを決定する手順を示すフローチャートである。
ステップＳ９１で、予め設定された加速度αで加速し、予め設定された減速度βで減速して移動ブロックの目標位置ＸＢに到達する走行パターンを求める。即ち、加速時間Ｔａｔおよび加速終了速度Ｖａｔを計算する。
位置制御装置においては、位置決め時間を最短にするために、加速度αおよび減速度βを一定値即ち定数とした直線関数加減速とすることが多いが、加速度および減速度を、加速度や減速度が急変して機械の動作に与える衝撃を小さくする指数関数や三角関数などの関数とすることもある。また、加速区間や減速区間を複数区間に分割した例もある。本発明は、加速度αおよび減速度βは、一定値即ち定数とした直線関数加減速に限定するものではなく、このような関数であってもよいし、加速区間や減速区間を複数区間に分割したものであってもよい。
ここでは、説明を簡単かつ理解し易くするために、加速度αおよび減速度βは、一定値即ち定数とした直線関数加減速とし、加速区間および減速区間はいずれも単数区間としてている。
【００１８】
一般的に、時刻ｔ＝０における位置Ｘａ０、速度Ｖａ０の物体を、ｔ＝０からｔ＝Ｔａまで加速度αで加速すると、位置Ｘ、および速度Ｖは、
Ｘ＝Ｘａ０＋Ｖａ０・Ｔａ＋α・Ｔａ２／２      ・・・（１）
Ｖ＝Ｖａ０＋α・Ｔａ                        ・・・（２）
によって求めることができる。
また、時刻ｔ＝０における位置Ｘｄ０、速度Ｖｄ０の物体を、ｔ＝０からｔ＝Ｔｄまで減速度βで減速すると、位置Ｘ、および速度Ｖは、
Ｘ＝Ｘｄ０＋Ｖｄ０・Ｔｄ−β・Ｔｄ２／２      ・・・（３）
Ｖ＝Ｖｄ０−β・Ｔｄ                        ・・・（４）
によって求めることができる。
ここでは、理解し易くするため、Ｘａ０＝０、Ｖａ０＝０、また、減速終了速度Ｖｆ＝０、α＝βとして説明する。
【００１９】
加速距離をＸａｔ、減速距離をＸｄｔとすると、
ＸＢ＝Ｘａｔ＋Ｘｄｔ            ・・・（５）
であり、加速度と減速度が等しい（α＝β）ので、
Ｘａｔ＝Ｘｄｔ                  ・・・（６）
ＸＢ＝２・Ｘａｔ              ・・・（７）
Ｘａｔ＝α・Ｔａｔ２／２        ・・・（８）
Ｔａｔ＝（ＸＢ／α）１／２      ・・・（９）
となり、
Ｖａｔ＝α・Ｔａｔ            ・・・（１０）
となる。
つぎに、ステップＳ９２で、加速終了速度Ｖａｔと予め設定された走行の最高速度Ｖｍとを比較し、
（Ｖａｔ≦Ｖｍ）であれば、ステップＳ９３へ進み、（Ｖａｔ＞Ｖｍ）であれば、ステップＳ９４へ進む。
ステップＳ９３では、走行パターンをステップＳ９１で求めた走行パターン、即ち、前記移動ブロックの全区間を、加速区間と減速区間とに分割した第１の走行パターンに決定する。
具体的には、加速終了速度Ｖａｃｃ＝Ｖａｔ、加速時間Ｔａｃｃ＝Ｔａｔ、加速距離Ｘａｃｃ＝Ｘａｔであり、減速時間Ｔｄｅｃ＝Ｔａｃｃ＝Ｔａｔ、減速距離Ｘｄｅｃ＝Ｘａｃｃ＝Ｘａｔとして走行パターンの決定は終わる。
また、ステップＳ９４では、前記移動ブロックの全区間を、加速区間と一定速区間と減速区間とに分割した第２の走行パターンとして、再度、走行パターンの計算を行う。
Ｖａｃｃ＝Ｖｍ                      ・・・（１１）
Ｔａｃｃ＝Ｖａｃｃ／α＝Ｖｍ／α      ・・・（１２）
Ｘａｃｃ＝α・Ｔａｃｃ２／２          ・・・（１３）
であり、
Ｔｄｅｃ＝Ｔａｃｃ                  ・・・（１４）
Ｘｄｅｃ＝Ｘａｃｃ                  ・・・（１５）
であるので、一定速区間の走行距離ＸＣは、
ＸＣ＝ＸＢ−（Ｘａｃｃ＋Ｘｄｅｃ）＝ＸＢ−２・Ｘａｃｃ      ・・・（１６）
により計算でき、一定速区間の走行時間Ｔｃは、
ＴＣ＝ＸＣ／Ｖｍ                                      ・・・（１７）
となり、走行パターンの決定は終わる。
【００２０】
図１４は、走行パターンを説明する図であり、図１４（ａ）は（Ｖａｔ≦Ｖｍ）の場合の第１の走行パターンであり、図１４（ｂ）は（Ｖａｔ＞Ｖｍ）の場合の第２の走行パターンである。
【実施例１】
【００２１】
図２は、本発明の実施例１の動作を説明するフローチャートである。図２において、先ず、ステップＳ２１では、加速区間における所定のサンプリング周期中の移動量ΔＸａを計算して指令する。
具体的には、所定のサンプリング周期をτ、移動開始時刻をｔ＝０、所定のサンプリング開始時刻をｔ＝τａ０とすると、ｉ番目のサンプリング周期の終りの時刻ｔｉ、および（ｉ−１）番目のサンプリング周期の終りの時刻ｔｉ−１は、
ｔｉ＝τａ０＋τ・ｉ、またｔｉ−１＝τａ０＋τ・（ｉ−１）
となり、ｉ番目のサンプリング周期中の移動量ΔＸａ（ｉ）は、
ΔＸａ（ｉ）＝Ｘａ（ｉ）−Ｘａ（ｉ−１）
＝α・ｔｉ２／２−α・ｔｉ−１２／２
＝α・（τａ０＋τ・ｉ）２／２−α・（τａ０＋τ・（ｉ−１））２／２
・・・（１８）
によって計算され、ｉ番目のサンプリング周期の始めに指令する。
ただし、実施例１では、τａ０＝０として差し支えない。
ステップＳ２２では、切換点を含むサンプリング周期であるか否かを判定し、切換点を含むサンプリング周期であればステップＳ２３へ進み、切換点を含むサンプリング周期でなければステップＳ２１へ戻る。
【００２２】
ステップＳ２３では、切換点を含むサンプリング周期の升目に乗らない加速距離の端数ｘａｒおよび前記サンプリング周期の升目に乗らない加速時間の端数τａｒを計算する。
即ち、加速距離Ｘａｃｃに到達する直前のサンプリング、すなわち加速終了直前の所定の周期のサンプリングまでのサンプリング回数をｎａとすると、
ｎａ番目のサンプリングまでの移動時間（加速時間）Ｔａｎは、
Ｔａｎ＝τａ０＋τ・ｎａ                    ・・・（１９）
であり、移動距離（加速距離）Ｘａｎは、
Ｘａｎ＝α・Ｔａｎ２／２
＝α・（τａ０＋τ・ｎａ）２／２      ・・・（２０）
となり、サンプリング周期の升目に乗らない加速距離の端数ｘａｒは、
ｘａｒ＝Ｘａｃｃ−Ｘａｎ＝Ｘａｃｃ−α・（τａ０＋τ・ｎａ）２／２      ・・・（２１）
となる。また、サンプリング周期の升目に乗らない加速時間の端数τａｒは、
τａｒ＝Ｔａｃｃ−Ｔａｎ＝Ｔａｃｃ−（τａ０＋τ・ｎａ）              ・・・（２２）
となる。
ただし、実施例１では、τａ０＝０として差し支えない。
つぎに、ステップＳ２４では、切換後の区間が一定速区間であるか否かを判定し、一定速区間であればステップＳ２５へ進み、一定速区間ではない即ち減速区間であればステップＳ３１へ進む。
【００２３】
ステップＳ２５では、加速区間との切換点を含むサンプリング周期中の一定速走行時間τＣＯおよび前記サンプリング周期中の一定速走行距離ｘＣＯを計算する。
即ち、
τＣＯ＝τ−τａｒ      ・・・（２３）
となるので、
ｘＣＯ＝Ｖｍ・τＣＯ      ・・・（２４）
となる。
ステップＳ２６では、前記切換点を含むサンプリング周期の指令値ｘａｃを計算し、指令する。
ｘａｃ＝ｘａｒ＋ｘＣＯ      ・・・（２５）
つぎに、ステップＳ２７では、一定速区間の所定のサンプリング周期中の移動量ΔＸｃを計算して指令する。
前記切換点を含むサンプリング周期の次回のサンプリング周期をｊ＝１番目の所定のサンプリング周期としたときの、ｊ番目までの一定速走行距離ＸＣ（ｊ）は、
ＸＣ（ｊ）＝Ｖｍ・（τＣ０＋τ・ｊ）      ・・・（２６）
により計算できる。
一定速区間終了直前の所定の周期のサンプリングまで、
ΔＸｃ＝Ｘｃ（ｊ）−Ｘｃ（ｊ−１）      ・・・（２７）
を求め、ｊ番目のサンプリング周期の始めに指令する。
【００２４】
つぎに、ステップＳ２８では、切換点を含むサンプリング周期であるか否かを判定し、切換点を含むサンプリング周期であればステップＳ２９へ進み、切換点を含むサンプリング周期でなければステップＳ２７へ戻る。
ステップＳ２９では、サンプリング周期の升目に乗らない一定速走行距離の端数ｘＣｒおよび前記サンプリング周期の升目に乗らない一定速走行時間の端数τＣｒを計算する。
一定速区間終了直前の所定の周期のサンプリングまでの一定速区間における所定のサンプリング回数をｎＣとすると、
ｎＣ番目のサンプリングまでの移動時間（一定速走行時間）ＴＣｎは、
ＴＣｎ＝τＣ０＋τ・ｎＣ                ・・・（２８）
であり、移動距離（一定速走行距離）ＸＣｎは、
ＸＣｎ＝Ｖｍ・ＴＣｎ
＝Ｖｍ・（τＣ０＋τ・ｎＣ）      ・・・（２９）
となり、ｘＣｒおよびτＣｒは、
ｘＣｒ＝ＸＣ−ＸＣｎ＝ＸＣ−ｘＣＯ−Ｖｍ・τ・ｎＣ      ・・・（３０）
τＣｒ＝ＴＣ−ＴＣｎ＝ＴＣ−τＣ０−τ・ｎＣ          ・・・（３１）
となる。
ステップＳ３０では、
ｘ１ｒ＝ｘＣｒ      ・・・（３２）
τ１ｒ＝τＣｒ      ・・・（３３）
Ｖｄ０＝Ｖｍ      ・・・（３４）
とおいて、ステップＳ３２へ進む。
【００２５】
ステップＳ３１では、
ｘ１ｒ＝ｘａｒ        ・・・（３５）
τ１ｒ＝τａｒ        ・・・（３６）
Ｖｄ０＝Ｖａｃｃ        ・・・（３７）
とおいて、ステップＳ３２へ進む。
ステップＳ３２では、切換点を含むサンプリング周期中の減速時間τｄ０、および前記サンプリング周期中の減速距離ｘｄ０を計算する。
τｄ０＝τ−τ１ｒ                        ・・・（３８）
ｘｄ０＝Ｖｄ０・τｄ０−α・τｄ０２／２      ・・・（３９）
ステップＳ３３では、切換点を含むサンプリング周期の指令値ｘａｄを計算して、指令する。
ｘａｄ＝ｘ１ｒ＋ｘｄ０                      ・・・（４０）
ステップＳ３４では、減速区間の所定のサンプリング周期中の移動量ΔＸｄを計算し、指令する。
前記切換点を含むサンプリング周期の次回のサンプリング周期をｋ＝１番目の所定のサンプリング周期としたときの、ｋ番目までの減速距離Ｘｄ（ｋ）は、
Ｘｄ（ｋ）＝Ｖｄ０・（τｄ０＋τ・ｋ）−α・（τｄ０＋τ・ｋ）２／２
・・・（４１）
により計算できる。
減速区間終了直前の所定のサンプリング周期まで、
ΔＸｄ＝Ｘｄ（ｋ）−Ｘｄ（ｋ−１）      ・・・（４２）
を求め、ｋ番目のサンプリング周期の始めに指令する。
【００２６】
ステップＳ３５では、移動ブロックの終点ＸＢに到達するか否かを判定し、到達すればステップＳ３６に進み、到達しなければステップＳ３４へ戻る。
ステップＳ３６では、移動ブロックの終点ＸＢに到達するサンプリング周期中の減速距離ｘｄｒおよび減速時間τｄｒを計算する。
減速区間終了直前の所定の周期のサンプリングまでの減速区間におけるサンプリング回数をｎｄとすると、
ｎｄ番目のサンプリングまでの移動時間（一定速走行時間）Ｔｄｎは、
Ｔｄｎ＝τｄ０＋τ・ｎｄ      ・・・（４３）
であり、移動距離（減速走行距離）Ｘｄｎは、
Ｘｄｎ＝Ｖｄ０・Ｔｄｎ−α・Ｔｄｎ２／２
＝Ｖｄ０・（τｄ０＋τ・ｎｄ）−α・（τｄ０＋τ・ｎｄ）２／２
・・・（４４）
となり、ｘｄｒおよびτｄｒは、
ｘｄｒ＝Ｘｄｅｃ−Ｘｄｎ      ・・・（４５）
τｄｒ＝Ｔｄｅｃ−Ｔｄｎ      ・・・（４６）
となる。
ステップＳ３７では、前記減速距離ｘｄｒ指令して終わる。
このようにして、指令を生成する。
【００２７】
図３は実施例１を説明する走行パターンの概念図であり、第１の走行パターンとした例である。また、図４は該概念図の切換点部の拡大図である。
【００２８】
実施例１では、所定の周期のサンプリングを継続できるのでパルス分配手段７の構成を従来技術と同等にすることができるにもかかわらず、正確な加速度、一定走行速度、および減速度の指令を生成することができる。
【実施例２】
【００２９】
図５は、実施例２の指令生成方法を説明するフローチャートである。
実施例2は、切換点を含むサンプリング周期の処理方法が実施例１と異なっている。実施例１が切換点を含むサンプリング周期においてもサンプリング周期は所定の周期τを継続することに対して、実施例２では切換点を新たなサンプリング周期の始点とし、以後のサンプリング周期を所定の周期τとすることである。
実施例１と異なる点に重点を置いて説明する。
図５において、図２と同じステップ番号は、実施例１と同じ処理を行う。
【００３０】
実施例２では、ステップＳ２３とステップＳ２４との間にステップＳ４０の処理を行い、ステップＳ２４で、切換後の区間が一定速区間であるか否かを判定し、一定速区間であればステップＳ２７へ進み、一定速区間ではない即ち減速区間であればステップＳ３４へ進む。即ち、ステップＳ３１乃至ステップＳ３３並びにステップＳ２５及びステップＳ２６の処理は行わない。
また、ステップＳ２９の後にステップＳ４１を実行し、ステップＳ３０乃至ステップＳ３３は実行せずに、ステップＳ３４に進む。
また、ステップＳ３６の後にステップＳ４２を実行して終わる。ステップＳ３７は実行しない。
ステップＳ４０では、ステップＳ２３で計算したτａｒをサンプリング周期とし、ｘａｒをそのサンプリング周期の移動量として指令し、ステップＳ２４へ進む。
ステップＳ４１では、ステップＳ２９で計算したτＣｒをサンプリング周期とし、ｘＣｒをそのサンプリング周期の移動量として指令し、ステップＳ３４へ進む。
ステップＳ４２では、ステップＳ３６で計算したτｄｒをサンプリング周期とし、ｘｄｒをそのサンプリング周期の移動量として指令し、終わる。
このようにして、指令を生成する。
【００３１】
図６は実施例２を説明する走行パターンの概念図であり、第１の走行パターンとした例である。また、図７は該概念図の切換点部の拡大図である。
【００３２】
実施例２では、切換点の移動量とサンプリング周期との関係を正確に指令するので、実施例１に比較して、各区間の切換点の前後において、より正確な加速度、一定走行速度、および減速度の指令を生成することができる。
【実施例３】
【００３３】
図８は、実施例３の指令生成方法を説明するフローチャートである。実施例３が実施例１と異なる点は、実施例１が一つの移動ブロック内での指令生成方法に関するものであるのに対して、実施例３は二つの連続した移動ブロックの指令生成方法に関するものである。
また、実施例３においては、全移動区間を複数の区間に分割する必要はないが、実施例１との差異を理解し易くするため、全移動区間を複数の区間に分割している。
【００３４】
ステップＳ２１乃至ステップＳ３６は、実施例１と同じである。実施例３ではステップＳ３６の後ステップＳ５０に進む。
ステップＳ５０では、全ての移動ブロックが完了したか否かを判定する。全ての移動ブロックが完了していれば、ステップＳ３７（実施例１と同じ）へ進んで終わる。全ての移動ブロックが完了していなければ、ステップＳ５１へ進む。
ステップＳ５１では、所定のサンプリング周期τから前の移動ブロックの目標位置に到達するまでの時間τｄｒを差し引いた時間、即ち後の移動ブロックの加速時間τａ０、および後の移動ブロックのその時間内の加速距離ｘａ０を計算する。
τａ０＝τ−τｄｒ
ｘａ０＝α・τａ０２／２
ステップＳ５２では、前の移動ブロックの目標位置に到達する時刻を含むサンプリング周期の指令値ｘｄａを計算して、指令し、ステップＳ２１へ戻る。
ｘｄａ＝ｘｄｒ＋ｘａ０
このようにして、指令を生成する。
【００３５】
図９は実施例３を説明する走行パターンの概念図である。図９（ａ）は、第１の移動ブロックの終了から第２の移動ブロックの開始へ移行する部分を図示した例であり、図９（ｂ）は、図９（ａ）中Ａ部の拡大図である。
図９において、第１の移動ブロックの走行パターンおよび第２の移動ブロックの走行パターンのいずれも第２の走行パターンとしているが、これに限定するものではない。
【００３６】
実施例３によれば、所定の周期のサンプリングを継続できるのでパルス分配手段７の構成を従来技術と同等にすることができるにもかかわらず、正確な加速度、一定走行速度、および減速度の指令を生成することができ、第１の移動ブロックの終了から第２の移動ブロックの開始への移行を連続して指令することが可能となる。
【実施例４】
【００３７】
図１０は、実施例４の指令生成方法を説明するフローチャートである。実施例４が実施例２と異なる点は、実施例２が一つの移動ブロック内での指令生成方法に関するものであるのに対して、実施例４は二つの連続した移動ブロックの指令生成方法に関するものである点である。
また、実施例４が実施例３と異なる点は、実施例３が第１の移動ブロックの目標位置に到達する直前の所定の周期のサンプリングから第１の移動ブロックの目標位置に到達するまでの残り時間の後から第２の移動ブロックの動作（移動）を開始させたとして、所定の周期から前記残り時間を差し引いた時間内の第２の移動ブロックの移動距離を求め、前記残り時間内の第１の移動ブロックの残り距離との和を、そのサンプリング周期の指令値とするのに対して、実施例４では第１の移動ブロックの目標位置に到達する直前の所定の周期のサンプリングから第１の移動ブロックの目標位置に到達するまでの残り時間をサンプリング周期として前記残り時間内の第１の移動ブロックの残り距離をそのサンプリング周期の指令値し、次回からは新たに所定の周期のサンプリングとして第２の移動ブロックの動作（移動）を開始する点である。
また、実施例４においては、全移動区間を複数の区間に分割する必要はないが、実施例２または実施例３との差異を理解し易くするため、全移動区間を複数の区間に分割している。
【００３８】
図１０において、ステップＳ２１乃至ステップＳ４２は、図５と同じである。
実施例２がステップＳ４２の終了で終わることに対して、実施例４では、ステップＳ４２の終了後ステップＳ６０へ進む。
ステップＳ６０では、全ての移動ブロックが完了したか否かを判定する。全ての移動ブロックが完了していれば、終わる。全ての移動ブロックが完了していなければ、ステップＳ２１へ戻る。
【００３９】
図１１は実施例４を説明する走行パターンの概念図である。図１１（ａ）は第１の移動ブロックの終了から第２の移動ブロックの開始へ移行する部分を図示した例であり、図１１（ｂ）は、図１１（ａ）中Ａ部の拡大図である。
図１１において、第１の移動ブロックの走行パターンおよび第２の移動ブロックの走行パターンのいずれも第２の走行パターンとしているが、これに限定するものではない。
【００４０】
実施例４によれば、移動ブロックの終点の移動量とサンプリング周期との関係を正確に指令するので、実施例３に比較して、各移動ブロックの継点の前後において、より正確な減速度および加速度の指令を生成することができる。
【産業上の利用可能性】
【００４１】
本発明は、半導体製造装置の位置決め駆動用位置制御装置、タッピングマシン、工作機械や産業用ロボットを駆動する位置制御装置に利用できる。
【図面の簡単な説明】
【００４２】
【図１】本発明の位置制御装置のブロック図
【図２】本発明の実施例１の動作を説明するフローチャート
【図３】実施例１を説明する走行パターンの概念図
【図４】実施例１における図３の切換点部の拡大図
【図５】実施例２の指令生成方法を説明するフローチャート
【図６】実施例２を説明する走行パターンの概念図
【図７】実施例２における図６の切換点部の拡大図
【図８】実施例３の指令生成方法を説明するフローチャート
【図９】実施例３を説明する走行パターンの概念図
【図１０】実施例４の指令生成方法を説明するフローチャート
【図１１】実施例４を説明する走行パターンの概念図
【図１２】本発明のパルス分配の実現方法の一例を示すフローチャート
【図１３】本発明の走行パターンを決定する手順を示すフローチャート
【図１４】本発明の走行パターンを説明する図
【図１５】従来技術による指令生成を行う数値制御装置の基本的構成
【図１６】従来技術による指令生成を行う処理フローを示すフローチャート
【符号の説明】
【００４３】
２  主制御部
５  移動データ入力部
６  指令生成手段
７  パルス分配手段
８ａ〜８ｎ  サーボ制御部
９ａ〜９ｎ  モータ
２１  キー入力部
２２  主制御部
２３  機械側入出力制御部
２４  表示部
２５  データ入出力制御部
２６  プログラム解析部
２７  パルス分配部（ＤＤＡ）
２８  サーボ制御部
２９  サーボモータ
【図１】
2005216026.tif 000003
【図２】
2005216026.tif 000004
【図３】
2005216026.tif 000005
【図４】
2005216026.tif 000006
【図５】
2005216026.tif 000007
【図６】
2005216026.tif 000008
【図７】
2005216026.tif 000009
【図８】
2005216026.tif 000010
【図９】
2005216026.tif 000011
【図１０】
2005216026.tif 000012
【図１１】
2005216026.tif 000013
【図１２】
2005216026.tif 000014
【図１３】
2005216026.tif 000015
【図１４】
2005216026.tif 000016
【図１５】
2005216026.tif 000017
【図１６】
2005216026.tif 000018