(57)【特許請求の範囲】
【請求項１】
複数のサーボモータを連結して同期運転を行なう数値制御装置であって、
前記サーボモータに電流を流さない状態から電流を流す状態に切り換えた時点での指定された制御軸の実速度を検出する実速度検出手段と、
前記実速度検出手段で検出した実速度を、前記複数のサーボモータでそれぞれ駆動制御される制御軸の共通の移動指令の初速度として設定する初速度設定手段と、
前記初速度設定手段で設定された初速度を初速度としてそれぞれの制御軸を指令速度まで加減速制御する加減速制御手段とを備えたことを特徴とする同期運転を行う数値制御装置。
【請求項２】
複数のサーボモータを連結して同期運転を行なう数値制御装置であって、
前記サーボモータに電流を流さない状態から電流を流す状態に切り換えた時点での前記複数のサーボモータでそれぞれ駆動制御されるそれぞれの制御軸の実速度を検出する実速度検出手段と、
前記実速度検出手段で検出した実速度と、前記サーボモータに電流を流す状態に切り換えた後の指令速度とに基いて、前記制御軸の共通の移動指令の初速度を設定する初速度設定手段と、
前記初速度設定手段で設定された初速度を初速度としてそれぞれの制御軸を指令速度まで加減速制御する加減速制御手段とを備えたことを特徴とする同期運転を行う数値制御装置。
【請求項３】
複数のサーボモータを連結し同期運転を行なう数値制御装置であって、
前記サーボモータに電流を流さない状態から電流を流す状態に切り換えた時点での前記複数のサーボモータで駆動制御されるそれぞれの制御軸の実速度を検出する実速度検出手段と、
前記実速度検出手段で検出したそれぞれの制御軸の実速度のうちの最高速度と最低速度との中間の値の速度を、それぞれの制御軸に共通の移動指令の初速度として設定する初速度設定手段と、
前記初速度設定手段で設定された初速度を初速度としてそれぞれの制御軸を指令速度まで加減速制御する加減速制御手段とを備えたことを特徴とする同期運転を行う数値制御装置。
【請求項４】
前記初速度設定手段は、前記実速度検出手段で検出した最高速度と最低速度の平均値を、それぞれの制御軸に共通の、移動指令の初速度として設定することを特徴とする請求項３に記載の同期運転を行う数値制御装置。
【請求項５】
前記初速度設定手段は、前記実速度検出手段で検出したそれぞれの制御軸の実速度の平均値を、それぞれの制御軸に共通の、移動指令の初速度として設定することを特徴とする請求項３に記載の同期運転を行う数値制御装置。
【請求項６】
複数のサーボモータを連結して同期運転を行なう数値制御装置であって、
電流を流さない状態から電流を流す状態に切り換えた時点での前記複数のサーボモータで駆動制御されるそれぞれの制御軸の実速度を検出する実速度検出手段と、
前記実速度検出手段で検出したそれぞれの制御軸の実速度をそれぞれの制御軸の移動指令の初速度として設定する初速度設定手段と、
前記実速度検出手段で検出したそれぞれの制御軸の実速度と前記サーボモータに電流を流す状態に切り換えた後の指令速度との大小関係に基いてそれらの制御軸の中から目標対象軸を選定する目標対象軸選定手段と、
前記目標対象軸選定手段で選定されなかった制御軸は、指令の加速度・減速度により前記目標対象軸の位置および速度を目標として加減速制御する加減速制御手段とを備え、
サーボモータに電流を流さない状態から電流を流す状態に切り換えた後の移動指令実行中にそれぞれの制御軸間の位置差および速度差を徐々に解消するようにしたことを特徴とする同期運転を行う数値制御装置。
【請求項７】
前記目標対象軸設定手段は、目標対象軸を、サーボモータに電流を流さない状態から電流を流す状態に切り換えた時のそれぞれの制御軸の実速度の平均値と移動指令の指令速度とを比較した結果に基いて選定することを特徴とする請求項６に記載の同期運転を行う数値制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、サーボモータの位置又は該サーボモータで駆動制御される制御軸の位置の制御に関し、特に、サーボモータに電流を流さない状態でサーボモータ（可動部）が惰走しているとき、サーボモータに電流を流し位置制御を開始するときの位置制御に特徴を有する数値制御装置に関する。
【背景技術】
【０００２】
ダイキャストマシンやプレス機械において、サーボモータによって可動側金型（制御軸）を駆動して金型の開閉を行なう方式のものにおいては、金型を開くとき、大きな力が必要となることから、可動側金型を駆動するサーボモータへの通電を遮断し電流を流さない状態（この状態を以下「サーボオフ」という）とし、固定側金型から油圧などでワーク及び可動側金型を突き上げ、金型が開き、可動側金型が惰走しているとき、サーボモータに電流を流す状態（以下この状態を「サーボオン」という）とし、可動側金型（制御軸）の位置制御を行なうようしているのも公知である。
【０００３】
サーボオフで惰走により動いている軸に対して、位置制御による移動指令と同時にサーボオフを解除して、サーボオンに切り換えた時点の実速度を移動指令の初速度とすることにより、滑らかに移動指令を開始する数値制御装置について特願２００５−３７０８２１号として出願し、２００７年７月１５日に出願公開されている（特開２００７−１７２３９４号公報）。  
ダイキャストマシンやプレス機械において可動部が大型になったときでは、２つ以上の複数のサーボモータによってこの大型の可動部を駆動制御する同期制御が採用される。この場合、固定側金型から油圧などでワーク及び可動側金型を突き上げる際に、突き上げられる部位が微妙にずれるなどにより、２つ以上の複数のサーボモータに均等に突き上げ力が伝達されるとは限らなかった。
【０００４】
そして、その前記特願２００５−３７０８２１号（特開２００７−１７２３９４号公報）では、サーボオフの状態で外力により突き出されて惰走している軸に対して、サーボオンをして移動指令を開始する数値制御装置において、複数のサーボモータを連結して同期運転を行なう場合、サーボオンに切り換えた時点の各制御軸の実速度を各々の移動指令の初速度として、以後同一の移動指令を開始するようになっている。
【０００５】
【特許文献１】特願２００５−３７０８２１号（特開２００７−１７２３９４号公報）
【発明の開示】
【発明が解決しようとする課題】
【０００６】
複数のサーボモータを連結し同期運転を行なう場合、サーボオン時の各制御軸の実速度を移動指令の初速度として、同じ加速度で加速するため、各制御軸間の位置差が徐々に増加し、連結部に負荷がかかる等の課題がある（図２０参照）。そこで本発明は上記課題を解決することを目的とする。
【課題を解決するための手段】
【０００７】
本願の請求項１に係る発明は、複数のサーボモータを連結して同期運転を行なう数値制御装置であって、前記サーボモータに電流を流さない状態から電流を流す状態に切り換えた時点での指定された制御軸の実速度を検出する実速度検出手段と、前記実速度検出手段で検出した実速度を、前記複数のサーボモータでそれぞれ駆動制御される制御軸の共通の移動指令の初速度として設定する初速度設定手段と、前記初速度設定手段で設定された初速度を初速度としてそれぞれの制御軸を指令速度まで加減速制御する加減速制御手段とを備えたことを特徴とする同期運転を行う数値制御装置である。
【０００８】
請求項２に係る発明は、複数のサーボモータを連結して同期運転を行なう数値制御装置であって、前記サーボモータに電流を流さない状態から電流を流す状態に切り換えた時点での前記複数のサーボモータでそれぞれ駆動制御されるそれぞれの制御軸の実速度を検出する実速度検出手段と、前記実速度検出手段で検出した実速度と、前記サーボモータに電流を流す状態に切り換えた後の指令速度とに基いて、前記制御軸の共通の移動指令の初速度を設定する初速度設定手段と、前記初速度設定手段で設定された初速度を初速度としてそれぞれの制御軸を指令速度まで加減速制御する加減速制御手段とを備えたことを特徴とする同期運転を行う数値制御装置である。
【０００９】
請求項３に係る発明は、複数のサーボモータを連結し同期運転を行なう数値制御装置であって、前記サーボモータに電流を流さない状態から電流を流す状態に切り換えた時点での前記複数のサーボモータで駆動制御されるそれぞれの制御軸の実速度を検出する実速度検出手段と、前記実速度検出手段で検出したそれぞれの制御軸の実速度のうちの最高速度と最低速度との中間の値の速度を、それぞれの制御軸に共通の移動指令の初速度として設定する初速度設定手段と、前記初速度設定手段で設定された初速度を初速度としてそれぞれの制御軸を指令速度まで加減速制御する加減速制御手段とを備えたことを特徴とする同期運転を行う数値制御装置である。
【００１０】
請求項４に係る発明は、前記初速度設定手段は、前記実速度検出手段で検出した最高速度と最低速度の平均値を、それぞれの制御軸に共通の、移動指令の初速度として設定することを特徴とする請求項３に記載の同期運転を行う数値制御装置である。
【００１１】
請求項５に係る発明は、前記初速度設定手段は、前記実速度検出手段で検出したそれぞれの制御軸の実速度の平均値を、それぞれの制御軸に共通の、移動指令の初速度として設定することを特徴とする請求項３に記載の同期運転を行う数値制御装置である。
【００１２】
請求項６に係る発明は、複数のサーボモータを連結して同期運転を行なう数値制御装置であって、電流を流さない状態から電流を流す状態に切り換えた時点での前記複数のサーボモータで駆動制御されるそれぞれの制御軸の実速度を検出する実速度検出手段と、前記実速度検出手段で検出したそれぞれの制御軸の実速度をそれぞれの制御軸の移動指令の初速度として設定する初速度設定手段と、前記実速度検出手段で検出したそれぞれの制御軸の実速度と前記サーボモータに電流を流す状態に切り換えた後の指令速度との大小関係に基いてそれらの制御軸の中から目標対象軸を選定する目標対象軸選定手段と、前記目標対象軸選定手段で選定されなかった制御軸は、指令の加速度・減速度により前記目標対象軸の位置および速度を目標として加減速制御する加減速制御手段とを備え、サーボモータに電流を流さない状態から電流を流す状態に切り換えた後の移動指令実行中にそれぞれの制御軸間の位置差および速度差を徐々に解消するようにしたことを特徴とする同期運転を行う数値制御装置である。
【００１３】
請求項７に係る発明は、前記目標対象軸設定手段は、目標対象軸を、サーボモータに電流を流さない状態から電流を流す状態に切り換えた時のそれぞれの制御軸の実速度の平均値と移動指令の指令速度とを比較した結果に基いて選定することを特徴とする請求項６に記載の同期運転を行う数値制御装置である。
【発明の効果】
【００１４】
本発明では、サーボオンに切り換えた時点での指定された制御軸や各制御軸の実速度の大小関係や速度差から、最適な初速度を求め、各制御軸の移動指令の初速度をこの共通の最適な初速度とすることにより、サーボオン後の移動指令の実行に際し、各制御軸間の位置差が増加しないため、連結部への負荷が軽減できる。
【００１５】
さらに、サーボオン時の移動指令の初速度は各制御軸の実速度とし、実速度の大小関係から目標対象軸を定め、他の制御軸は指令加速度・減速度により目標対象軸の位置および速度を目標として加減速制御し、目標対象軸の位置および速度に到達した時点で、サーボオン後の各制御軸間の位置差およびサーボオン前（サーボオフ時）の位置差のいずれも解消することができるため、連結部への負荷をさらに軽減できる。
また、各制御軸間の位置差および速度差を徐々に解消するので、急激な速度変化を無くし、機械的なショックも抑制できる。
【発明を実施するための最良の形態】
【００１６】
以下、本発明の実施形態を図面と共に説明する。  
まず、本願発明の前提である前記特願２００５−３７０８２１号（特開２００７−１７２３９４号公報）に開示された発明である、サーボモータに電流を流さない状態で該サーボモータで駆動制御される制御軸が惰走している状態から、該制御軸の位置、速度を制御するためにサーボモータに電流を流して位置、速度制御状態に切り換えるとき、速度変化を無くし、滑らかな移動で切り換える数値制御装置について説明する。
【００１７】
図１は、従来からの数値制御装置と同様に、数値制御部１とサーボ制御部２で構成され、数値制御部１から指令された移動指令に基づいて、サーボ制御部２はサーボモータ３の位置、速度、さらには電流ループ制御を行いサーボモータ（該サーボモータで駆動される制御軸）の位置、速度を制御する。従来の数値制御装置と相違する点は、数値制御部１において、速度取得手段１３、実速度に応じた位置偏差量を算出する位置偏差量算出手段１４及び加減算器１５，１６が追加して設けられている点、さらに、移動指令を出力する位置指令手段１２において、サーボオン時に現在の実速度を初速度として移動指令の分配処理を行っている。
【００１８】
サーボモータ（該サーボモータで駆動される制御軸）３の位置制御を行なうときは、位置指令手段１２は、従来と同様に、ＮＣプログラムで指令された移動指令や作業者が指令した移動指令に基づいて移動指令の分配処理を行い、所定分配周期（移動指令出力周期）毎の分配指令移動量ＭＣＭＤを求め、加減算器１６を介してサーボ制御部２の位置偏差カウンタ２１に出力する。この場合、加減算器１５からの指令、及びフォローアップ手段１１からの指令は無いので、位置指令手段１２で求められた分配指令移動量ＭＣＭＤがそのまま位置偏差カウンタ２１に加算されることになる。
【００１９】
位置偏差カウンタ２１は、分配指令移動量ＭＣＭＤを加算すると共に、位置・速度検出器４からの位置フィードバック量を減算して位置偏差を求める。位置制御部２２では、この位置偏差に位置ループゲインを乗じて速度指令を求める。
【００２０】
加減算器２３は、この速度指令から、位置・速度検出器４からフィードバックされる速度フィードバック量を減じて速度偏差を求める。速度制御部２４は、ＰＩ制御（比例積分制御）等の速度ループ制御を行いトルク指令（電流指令）を求める。加減速器２５は、速度制御部２４から受取るトルク指令から、アンプ２７に設けられた電流検出器からフィードバックされてくる電流フィードバック量を減じて電流偏差を求め、電流制御部２６で電流ループ制御を行い、アンプ２７を介して、サーボモータ３を駆動制御する。
【００２１】
上述した位置制御動作については、従来の数値制御装置における位置制御動作と変わりない。  
サーボモータ３の動力源をオフにしてサーボモータ３に電流を流さないサーボオフとしたとき、サーボモータ３は自由に回転可能となる。そのため、外力の油圧等で該サーボモータ３で駆動される制御軸（ダイキャストマシンやプレス機械において可動側金型等）が突き出されたとき、可動部及びサーボモータは惰走することになる。数値制御部１は、この惰走中のサーボモータ３の位置（制御軸の位置）を把握するためにフォローアップ手段１１を備え、サーボオフ時にはこのフォローアップ手段１１が作動する。
【００２２】
サーボモータ３の惰走に伴って、位置・速度検出器４からの位置フィードバック信号は位置偏差カウンタ２１に入力される。例えば、サーボモータ３がプラス方向に惰走しているとすると、位置偏差カウンタ２１には負の値が増加することになる。数値制御部１のフォローアップ手段１１は、所定周期毎この位置偏差カウンタ２１の値を読み出し、該読み出した値によって、サーボモータ（可動部）３の現在位置を記憶する現在位置レジスタの値を更新すると共に、位置偏差カウンタ２１が「０」となるように、読み出した値の符号を反転した値を加減算器１６を介して位置偏差カウンタ２１に出力し、位置偏差カウンタを「０」とする。
【００２３】
なお、このサーボオフ時には、位置指令手段１２から加減算器１６を介しての位置偏差カウンタ２１への入力も、加減算器１５から加減算器１６を介しての位置偏差カウンタ２１への入力も無い。
【００２４】
以下、サーボオフの状態中は、フォローアップ手段１１が動作を繰り返し実行し、サーボモータの現在位置を更新しながら位置偏差カウンタを「０」にする。  
こうしたサーボオフの状態から、サーボオフを解除しサーボモータ３を動力源に接続し、サーボモータ３に電流を流すサーボオン状態に切り換えると、位置制御が開始される。可動側金型（制御軸）がサーボモータで駆動されるダイキャストマシンやプレス機械等においては、可動側金型（制御軸）が油圧等の外力で固定側金型から突き出され、金型が開いたとき、サーボオンとされて位置制御が開始される。
【００２５】
このサーボオンとなったとき、数値制御装置１の速度取得手段１３は、位置・速度検出器４で検出しフィードバックされてくる実速度を取得し、この取得した実速度を位置指令手段１２に出力する。位置指令手段１２は、この実速度を初速度として分配指令移動量を求め出力する。また、実速度に応じた位置偏差量算出手段１４は、サーボオンとなった最初の分配周期のみ、速度取得手段１３で取得したこの実速度に応じた位置偏差量を算出する。加減算器１５では、この算出された位置偏差量と位置偏差カウンタに残る位置偏差量の符号を反転した値とを加算する。この加算した値と、位置指令手段１２から出力される指令移動量とを加減算器１６で加算して、位置偏差カウンタ２１に出力する。
【００２６】
実速度に応じた位置偏差量を算出する位置偏差量算出手段１４で求める実速度に応じた位置偏差量は、次のようにして求められる。  
位置偏差量＝速度／位置ループゲイン
したがって、サーボオン時の位置・速度検出器４で検出される実速度をＶ0、サーボオン時の実速度に相当する位置偏差量をＥＲＲｖ0とすると、
ＥＲＲｖ0＝Ｖ0／位置ループゲイン
となり、位置偏差量のＥＲＲｖ0は、サーボオン時の実速度Ｖ0と位置ループゲインによって求められる。
【００２７】
ここで、位置指令手段１２で実速度を初速度として求めたサーボオン時の最初の分配周期の分配指令移動量をＭＣＭＤｖ0とし、また、サーボオン時に位置偏差カウンタ２１に残る位置偏差量をＥＲＲsvonとすると、サーボオン時の最初の分配周期で位置偏差カウンタ２１に出力される指令値は
ＭＣＭＤｖ0＋ＥＲＲｖ0−ＥＲＲsvon
となる。そして、その後の分配周期では、位置指令手段１２で実速度を初速度としてプログラムや作業者が指令した移動指令に応じて求められた分配指令移動量が位置偏差カウンタ２１に出力されることになる。
【００２８】
図２は、このサーボオン時の指令移動量の変化を示す図である。  
サーボオフでサーボモータ３が惰走している状態で、サーボオンされると、該サーボオン後の最初の分配周期では、上述したように「ＭＣＭＤｖ0＋ＥＲＲｖ0−ＥＲＲsvon」の指令値が位置偏差カウンタ２１に出力される。この後の周期では、位置指令手段１２で求められるプログラムや作業者が指令した移動指令に基づいて、速度取得手段１３で取得した実速度を初速度として、加減速処理された指令移動量が指令されることになる。
【００２９】
サーボオン時の最初の分配周期では「ＭＣＭＤｖ0＋ＥＲＲｖ0−ＥＲＲsvon」の移動指令量が出力されるが、まず、サーボオン時に位置偏差カウンタ２１に残る位置偏差量ＥＲＲsvonの符号を逆転した「−ＥＲＲsvon」が位置偏差カウンタ２１に加算されることによって、この位置偏差カウンタ２１に残っていた残移動量がクリアされる。また、サーボモータ３が今回の移動指令を出力するまでの時間、すなわち、１分配周期間に移動している移動量（その時の実速度に対応する移動量）を示す「ＥＲＲｖ0」が位置偏差カウンタ２１に加算されるが、この値は、位置フィードバック量によって減算されることになるから、結局、位置偏差カウンタ２１に残る量は、位置指令手段１２で求め出力された指令移動量「ＭＣＭＤｖ0」となり、サーボモータ３はこの分配指令移動量「ＭＣＭＤｖ0」＝位置偏差量によって駆動されることになって、サーボオン時に惰走していた速度で駆動開始されることになり、図２に示すように、サーボモータ３の速度はサーボオン時に、急激に減速されるようなことは無く滑らかに駆動開始されることになる。
【００３０】
なお、上述した例では、サーボオン時に位置偏差カウンタ２１に残る位置偏差量ＥＲＲsvonをサーボオン時の最初の分配周期に、その符号を逆転して位置偏差カウンタ２１に加算するようにしたが、サーボオンのタイミングをフォローアップ手段１１が位置偏差カウンタ２１を「０」にクリアするタイミングで行なうようにすれば、この位置偏差量ＥＲＲsvonは「０」となり、加減算器１５は必要無く、この位置偏差量ＥＲＲsvonをサーボオン時の最初の分配周期時に付勢する必要は無くなる。また、サーボオン時に位置偏差カウンタ２１に残る位置偏差量ＥＲＲsvonが無視できる程度の場合には、同様に、位置偏差量ＥＲＲsvonの符号を反転させて位置偏差カウンタ２１に加算する必要も無く加減算器１５は必要で無くなる。この場合におけるサーボオン時の指令移動量（サーボモータの速度）を図３に示す。
【００３１】
こうして駆動されたサーボモータは、図４に示すように、サーボオン時におけるサーボモータの惰走速度を初速度とし、その後、加速されてプログラムや作業者が指定した目標速度に制御されることになる。  
また、サーボオン時に取得した実速度を初速度及び目標速度とすることによって、図５に示すような、サーボオン後の速度を一定にする制御もできる。
【００３２】
図６は、サーボオフの状態から、サーボオンしたときの数値制御部１のプロセッサが所定分配周期毎実施する処理のフローチャートである。  
ＮＣプログラム若しくは作業者が指令した終点まで制御軸（サーボモータ３）が達したか判断する（ステップＡ１）。達してなければサーボオンした最初の周期かどうか判断する（ステップＡ２）。最初の周期である場合には、位置・速度検出器４から出力される現在速度である実速度Ｖ0を読み取り（ステップＡ３）、該実速度Ｖ0に相当する位置偏差量ＥＲＲｖ0を以下の式で計算する（ステップＡ４）。
ＥＲＲｖ0＝Ｖ0／位置ループゲイン
【００３３】
次に、この時点（サーボオン時）で位置偏差カウンタ２１に記憶する位置偏差量ＥＲＲsvonを読み取る（ステップＡ５）。また、ステップＡ３で読み出した実速度Ｖ0を初速度とし、該実速度Ｖ0に応じた分配移動指令量ＭＣＭＤｖ0を算出する（ステップＡ６）。それから、このステップＡ６で求めた分配移動指令量ＭＣＭＤｖ0と、ステップＡ４で求めた、実速度Ｖ0に相当する位置偏差量ＥＲＲｖ0を加算し、かつ、ステップＡ５で求めた位置偏差量ＥＲＲsvonの符号を反転してものを加算して、指令移動量Ｐoutを以下の式で求める（ステップＡ７）。  
Ｐout＝ＭＣＭＤｖ0＋ＥＲＲｖ0−ＥＲＲsvon  
こうして求めた指令移動量Ｐoutを位置偏差カウンタ２１に出力し（ステップＡ８）、今回周期の移動指令の分配処理を終了する。
【００３４】
次の周期では、サーボオン直後の周期ではないので、ステップＡ２からステップＡ９に移行し、ＮＣプログラムまたは作業員が指令した指令速度に基づいてサーボオン時の実速度Ｖ0を初速度として、分配移動指令量ＭＣＭＤを指令移動量として設定し（ステップＡ１０）、ステップＡ８に移行し、該指令移動量Ｐoutを位置偏差カウンタ２１に出力し、今回周期の移動指令の分配処理は終了する。
【００３５】
図７は、下記の処理を実行する数値制御装置の要部ブロック図である。初速度設定手段１７は、サーボオン時のそれぞれの制御軸の移動指令の初速度を、パラメータや実速度の大小関係や速度差に基づいて初速度を決定する。パラメータは実速度を初速度とする基準軸を指定するものである。初速度設定手段１７には各速度取得手段１３，１３’で取得された実速度が入力される。そして、前記入力された実速度から設定されたパラメータや実速度の大小関係や速度差に基づき初速度が決定される。決定された初速度は、位置指令手段１２，１２’と、初速度に応じた位置偏差量を算出する位置偏差量算出手段１４，１４’とに出力される。位置指令手段１２，１２’は、前記決定された初速度を初速度として分配指令移動量を求め出力する。前記分配移動指令量は図６のフローチャートに説明した手法により求めることができる。
【００３６】
図８は、複数サーボモータを連結し同期運転を行なう際に、サーボオフの状態から、サーボオンしたときの数値制御部１のプロセッサが所定分配周期毎実施するフローチャートである。以下、各ステップに従って説明する。  
ＮＣプログラム若しくは作業者が指令した終点までの制御軸が達したか判断し（ステップＢ１）、達していなければサーボオンした最初の周期か判断する（ステップＢ２）。最初の周期である場合には、初速度決定がパラメータ設定によるか判断し（ステップＢ３）、パラメータ設定による場合には、パラメータで設定された基準軸の実速度を読み取り、それを初速度Ｖｐとする（ステップＢ１１）。
【００３７】
一方、パラメータ設定によらないと判断されると、各サーボモータの現在速度Ｖ0(i)を読み取る（ステップＢ４）。そして、現在速度Ｖ0(i)から初速度判定基準に基づき初速度Ｖｐを決定し（ステップＢ５）、初速度Ｖｐに相当する位置偏差量ＥＲＲｖp(i)を計算する（ステップＢ６）。なお、(i)は軸の番号を表し、制御軸が２つある場合はｉ＝１，２であり、３つある場合は、ｉ＝１，２，３である。
【００３８】
次に、この時点（サーボオン時）で各位置偏差カウンタに記憶する位置偏差量ＥＲＲｓｖｏｎ(i)を読み取る（ステップＢ７）。また、ステップＢ５ないしステップＢ１１で求められた初速度に応じた分配移動指令量ＭＣＭＤｖp(i)を算出する（ステップＢ８）。このステップＢ８で求めた分配移動指令量ＭＣＭＤｖp(i)と、ステップＢ６で求めた初速度Ｖｐに相当する位置偏差量ＥＲＲｖｐ(i)とを加算し、かつ、ステップＢ７で求めた位置偏差量ＥＲＲsvon(i)の符号を反転して加算し、各指令移動量Ｐout(i)を求める（ステップＢ９）。求められたＰout(i)をそれぞれ位置偏差カウンタに出力し（ステップＢ１０）、今回周期の移動指令の分配処理は終了する。  
【００３９】
次に、初速度Ｖｐをどのように決定するかについて幾つかの例を説明する。  
下記の「場合Ａ」〜「場合Ｅ」は、サーボオン時のそれぞれの制御軸の移動指令の初速度にはそれぞれの制御軸に対して共通の速度を設定して、制御軸間の位置差が増加しないようにする例である。
【００４０】
●場合Ａ（図９参照）：基準軸の実速度を初速度とする例である。  
サーボオン後の移動指令は、図９に示されるフォーマットで指令される。このフォーマットにおいて、”Ｘ”は移動指令用信号の先頭アドレスを示す。動作タイプがアブソリュート式であるのかインクリメンタル式であるのか、また、軸制御データが座標値であるのか移動量であるのか、が設定される。それぞれの制御軸におけるサーボオン時の移動指令の初速度は、パラメータまたはＸ＋０６で指定された基準軸の実速度とする。初速度設定の第１の例では、初速度設定手段１７で設定されるそれぞれの制御軸におけるサーボオン時の移動指令の初速度は、パラメータまたは上記指令のＸ＋０６で指定された基準軸の実速度とする。
【００４１】
以下の場合Ｂ〜場合Ｄは、サーボモータで駆動される制御軸が２軸の場合における、サーボオン時の移動指令の初速度の決定方法の例であり、指令速度並びに第１軸及び第２軸のサーボオン時における実速度の大小関係に基づいて初速度が設定される。なお、サーボオン後の移動指令は図９（場合Ａ）で説明したとおりである。サーボオン後の移動指令における指令速度をvCMD、第１，第２軸のサーボオン時における実速度をそれぞれv01、v02とする。
【００４２】
●場合Ｂ（図１０参照）：vCMD ＞  v01 かつ  vCMD ＞  v02のとき、
v01  ＞  v02 ならば、移動指令の初速度はv01とし、
v01  ＝  v02 ならば、移動指令の初速度はv01またはv02とし、
v01  ＜  v02 ならば、移動指令の初速度はv02とする。
【００４３】
●場合Ｃ（図１１参照）：vCMD ＜  v01 かつ  vCMD ＜  v02のとき、
v01  ＞  v02 ならば、移動指令の初速度はv02とし、
v01  ＝  v02 ならば、移動指令の初速度はv01またはv02とし、
v01  ＜  v02 ならば、移動指令の初速度はv01とする。
【００４４】
●場合Ｄ（図１２参照）：vCMD ≧  v01 かつ  vCMD ≦  v02 または、
vCMD ≦  v01 かつ  vCMD ≧  v02のとき、移動指令の初速度はvCMDとする。
【００４５】
上述した場合Ｂ〜場合Ｄは、説明を簡略化するためにサーボモータで駆動される制御軸が２軸としたが、３軸以上の場合も同様に移動指令の初速度を求めることができる。
【００４６】
●場合Ｅ（図１３参照）：サーボモータで駆動される制御軸が２軸の場合における、サー
ボオン時の移動指令の初速度の決定方法で、第１、第２軸のサーボオン時における実
速度とその間の速度とに基づいて初速度が設定される。なお、サーボオン後の移動指
令は図９（場合Ａ）で説明したとおりである。
【００４７】
サーボオン後の第１，第２軸のサーボオン時における実速度をそれぞれv01、v02とし、その間の速度をvPとする。そして、第1、２軸の移動指令の初速度を共にvPとし、移動指令を開始する。  
上記は説明を簡略化するためにサーボモータで駆動される制御軸が２軸としたが、３軸以上の場合も同様に移動指令の初速度をvPとする。
【００４８】
次に、サーボモータが第１、第２、第３軸の３軸の場合における、サーボオン時における実速度とその間の速度とに基づいて初速度を設定する例について説明する。サーボオン後の移動指令は図９で説明したとおりである。サーボオン後の第１，第２，第３軸のサーボオン時における実速度をそれぞれv01、v02、v03とし、それぞれの制御軸に共通となる移動指令の初速度をvPとすると、v01＞v02＞v03 のとき、最高速度（v01）と最低速度（v03）の平均速度  vP＝（v01＋v03）／２とするか、それぞれの制御軸の実速度の平均速度  vP＝（v01＋v02＋v03）／３として、移動指令を開始する。上記は説明を簡略化するためにサーボモータで駆動される制御軸が３軸としたが、４軸以上の場合も同様に移動指令の初速度を求められる。
【００４９】
以下の「場合Ｆ」〜「場合Ｊ」は、移動指令の初速度を各軸共通の値とは設定せず、それぞれの制御軸の実速度を選択する例である。「場合Ｆ」〜「場合Ｊ」は、サーボモータで駆動される制御軸が２軸の場合における、サーボオン時の加減速を行なう例を示す。サーボオン後の移動指令は図９について説明したとおりである。サーボオン後の移動指令における指令速度をvCMD、第１，第２軸のサーボオン時における実速度をそれぞれv01、v02とする。
【００５０】
●場合Ｆ（図１４参照）：vCMD ＞  v01 かつ  vCMD ＞  v02 のとき、
速度が速い第１軸を追従軸とし、速度が遅い第２軸を目標対象軸とする。サーボオン後、目標対象軸（第２軸）は移動指令通りの制御を行い、追従軸（第１軸）は目標対象軸の速度および位置に合わせるべく、以下のような追従制御を行なう。  
（１）追従軸（第１軸）は、サーボオン時の速度v01で移動を続ける。  
（２）時間tbで追従軸（第１軸）の速度は目標対象軸（第２軸）の速度と逆転し、目標対象軸（第２軸）と追従軸（第１軸）の位置差は減少に転じるが、この時の位置差SaがSbになるように、加速に転じる時間tcを以下の計算式により求める。  
時間tbでの追従軸（第１軸）と目標対象軸（第２）の位置をそれぞれP1tb，P2tbとすると、
Sa＝Sbより、
P1tb−P2tb＝（tc−tb）×（vCMD−v01）
従って、
tc＝（P1tb−P2tb）／（vCMD−v01）＋ tb
（３）追従軸（第１軸）は時間tcになったら、加速を開始し、時間tdで目標速度vCMDに達した段階で位置差が０となる。
【００５１】
●場合Ｇ（図１５参照）：v01 ≦  vCMD ≧  （v01 ＋  v02 ）／  ２ の場合
速度が速い第１軸を追従軸、速度が遅い第２軸を目標対象軸とする。サーボオン後、目標対象軸（第２軸）は移動指令通りの制御を行い、追従軸（第１軸）は目標対象軸の速度および位置に合わせるべく、以下のような追従制御を行なう。  
（１）追従軸（第１軸）は、指令した減速度で減速する。
（２）時間tbで追従軸（第１軸）の速度は目標対象軸（第２軸）の速度と一致する。このときの速度をVtbとすると、以後追従軸（第１軸）は速度Vtbで移動を続ける。このとき、追従軸の速度は目標対象軸（第２軸）の速度と大きさが逆転し、目標対象軸と追従軸の位置差は減少に転じるが、この時の位置差SaがSbになるように、加速に転じる時間tcを以下の計算式により求める。  
時間tbでの第1軸と第2軸の位置をそれぞれP1tb，P2tbとすると、
Sa＝Sbより、
P1tb−P2tb＝（tc−tb）×（vCMD−Vtb）
従って、tc＝（P1tb−P2tb）／（vCMD−Vtb）＋ tb
（３）追従軸は時間tcになったら、加速を開始し、時間tdで目標速度vCMDに達した段階で位置差が０となる。
【００５２】
●場合Ｈ（図１６参照）：vCMD ＜  v01 かつ  vCMD ＜  v02 のとき、
速度が速い第１軸を目標対象軸、速度が遅い第2軸を追従軸とする。  
サーボオン後、目標対象軸（第１軸）は移動指令通りの制御を行い、追従軸（第２軸）は目標対象軸の速度および位置に合わせるべく、以下のような追従制御を行なう。  
（１）追従軸（第２軸）は、サーボオン時の速度v02で移動を続ける。  
（２）時間tbで追従軸（第２軸）の速度は目標対象軸（第１軸）の速度と一致し、それ以後は両軸の速度の大きさはそれ以前と逆転し、目標対象軸と追従軸との位置差は減少に転じるが、この時の位置差SaがSbになるように、減速に転じる時間tcを以下の計算式により求める。  
時間tbでの第１軸と第２軸の位置をそれぞれP1tb，P2tbとすると、
Sa＝Sbより、
P1tb−P2tb＝（tc−tb）×（v02−vCMD）
従って、
tc＝（P1tb−P2tb）／（v02−vCMD）＋ tb
（３）追従軸（第２軸）は時間tcになったら、減速を開始し、時間tdで目標速度vCMDに達した段階で位置差が０となる。
【００５３】
●場合Ｉ（図１７参照）：v02 ≦  vCMD ＜  （v01 ＋  v02 ）／  ２ のとき、
速度が速い第１軸を目標対象軸、速度が遅い第２軸を追従軸とする。サーボオン後、目標対象軸（第１軸）は移動指令通りの制御を行い、追従軸（第２軸）は目標対象軸の速度および位置に合わせるべく、以下のような追従制御を行なう。
（１）追従軸（第２軸）は、指令した加速度で加速する。  
（２）時間tbで追従軸（第２軸）の速度は目標対象軸（第１軸）の速度と一致する。このときの速度をVtbとすると、以後追従軸（第２軸）は速度Vtbで移動を続ける。このとき、追従軸の速度は目標対象軸（第１軸）の速度と逆転し、目標対象軸と追従軸の位置差は減少に転じるが、この時の位置差SaがSbになるように、減速に転じる時間tcを以下の計算式により求める。  
時間tbでの目標対象軸（第１軸）と追従軸（第２軸）の位置をそれぞれP1tb，P2tbとすると、
Sa＝Sbより、
P1tb−P2tb＝（tc−tb）×（Vtb−vCMD）
従って、
tc＝（P1tb−P2tb）／（Vtb−vCMD）＋ tb
（３）追従軸は時間tcになったら、減速を開始し、時間tdで目標速度vCMDに達した段階で位置差が０となる。
【００５４】
上記は説明を簡略化するためにサーボモータで駆動される制御軸が２軸としたが、３軸以上の場合も目標対象軸を決定し、他を追従軸とすることで、同様な加減速制御が可能である。  
【００５５】
●場合Ｊ（図１８参照）：
上記の場合Ｆ〜場合Ｉでは時間tc以降の追従軸の動作を目標対象軸と共通の加速度で加速、または減速度で減速としたが、位置差Sa＝Sbとなるように追従軸を加減速制御すればよいので、図１８に示すように時間tc以降の追従軸の加速度が目標対象軸と異なってもよい（これを場合Ｊとする）。目標対象軸が指令速度vCMDに達した時の時間をte、目標対象軸と追従軸の加速度をそれぞれA1，A2とすると
te＝tb＋（vCMD−v01）／A1、
td＝tc＋（vCMD−v01）／A2となり、
Sa＝Sbより、
P1tb−P2tb＝（（tc−tb）＋（td−te））×（vCMD−v01）／２
＝（（tc−tb）＋（（tc＋（vCMD−v01）／A2）
−（tb＋（vCMD−v01）／A1）））×（vCMD−v01）／２
従って、
tc＝（P1tb−P2tb）／（vCMD−v01）＋ tb
＋（vCMD−v01）／２A1−（vCMD−v01）／２A2
【００５６】
図１９−１から図１９−３は、本発明による数値制御装置が初速度設定と加減速制御を実行するアルゴリズムを示すフローチャートである。
【００５７】
まず、図１９−１に示されるように、サーボオンの状態にあるかどうか判断し（ステップＣ１）、サーボオンでなければステータス１を「０」、ステータス２を「０」にセットする（ステップＣ１３）。サーボオンであると、そのサーボオンがサーボオフから切り換わった直後のサーボオンかどうかを判断し（ステップＣ２）、サーボオフから切り換わった直後のサーボオンであると判断されると、それぞれの制御軸の初速度をそれぞれの制御軸の実速度とし、それぞれの制御軸の実速度の平均値を計算する（ステップＣ３）。
【００５８】
次に、ステップＣ３で求めた平均値が指令速度以下であるか否かを判断する（ステップＣ４）。平均値が指令速度以下であると判断されると、目標対象軸を最も遅い軸に設定し、追従軸を目標対象軸以外の軸に設定する（ステップＣ５）。そして、各制御軸についての処理を開始し（ステップＣ６）、図１９−２に示される処理を行なう。平均値が指令速度より大きいと判断されると、目標対象軸を最も速い軸に設定し、追従軸をその目標対象軸以外の軸に設定し（ステップＣ２６）、図１９−３に示される処理を行なう。
【００５９】
図１９−２は、追従軸を指令した減速度で動作させる処理を示すフローチャートである。それぞれの制御軸についての処理を開始し、処理対象の制御軸が追従軸か否かを判断する（ステップＣ７）。追従軸であると判断されると、次にステータス１が「０」か「２」か「４」であるか否かが判断される（ステップＣ８、Ｃ９、Ｃ１０）。
【００６０】
ステータス１が「０」と判断されると（ステップＣ８）、実速度が指令速度より小さいか否かが判断される（ステップＣ１６）。実速度が指令速度より小さいと判断されると、初速度を保持する等速動作を実行し、ステータス１を「１」にセットし（ステップＣ１７）、ステップＣ１２に移行する。一方、ステップＣ１６で実速度が指令速度より大きいと判断されると、指令した減速度で減速動作が実行され、ステータス１を「２」とし（ステップＣ２５）、ステップＣ１２に移行する。
【００６１】
ステータス１が「２」と判断されると（ステップＣ９）、制御軸と目標対象軸との速度差を計算する（ステップＣ１８）。その速度差が減少傾向から増大傾向であるか否かが判断され（ステップＣ１９）、判断がＮＯのときはステップＣ２５に行き、判断がＹＥＳのときは、前回の実速度を保持する等速動作を行いステータス１を「３」とし（ステップＣ２０）、ステップＣ１０に移行する。
【００６２】
ステータス１が「４」と判断されると（ステップＣ１０）、次に、所定時間経過したか否かを判断し（ステップＣ１１）、判断がＮＯの場合、すべての制御軸について処理したか否か判断される（ステップＣ１２）。すべての制御軸についてまだ処理していないと判断（つまり、判断がＮＯ）されるとステップＣ７に戻る。
【００６３】
ステップＣ２（図１９−１参照）で、サーボオンがサーボオフから切り換わった直後のサーボオンでないと判断されると、ステータス１と２がともに「０」か否かを判断する（ステップＣ１４）。ステータス１と２がともに「０」と判断されると、ステップＣ３に行く。ステータス１と２がともに「０」でないと判断されると、ステータス１が「０」でないか否か判断する（ステップＣ１５）。ステータス１が「０」でないと判断されるとステップＣ６へ移行する。一方、ステータス１が「０」と判断されるとステップＤ１へ進み、図１９−３に示される処理を行なう。
【００６４】
ステップＣ１０でステータス１が「４」でないと判断されると、目標対象軸との位置差を計算し（ステップＣ２１）、位置差が増加から減少に転じているか否か判断する（ステップＣ２２）。判断がＹＥＳの場合、加速に転じる時間を計算しステータス１を「４」とし（ステップＣ２３）、ステップＣ１１に移行する。ステップＣ１１で所定時間経過したかを判断する。判断がＹＥＳのとき（つまり、所定時間経過しているとき）、指令した加速度で加速動作を実行し（ステップＣ２４）、ステップＣ１２に移行する。ステップＣ２２でＮＯと判断されると前回と同じ速度で動作が実行され（ステップＣ２７）、ステップＣ１２に移行する。
【００６５】
一方、ステップＣ１１でＮＯと判断されると、すべての制御軸について処理したか否かを判断し（ステップＣ１２）、判断がＹＥＳで終了し、判断がＮＯの場合ステップＣ７に戻る。
【００６６】
図１９−３は、追従軸を指令した加速度で動作させる処理を示すフローチャートである。  
それぞれの制御軸について処理を開始し（ステップＤ１）、処理対象の制御軸が追従軸か否かを判断する（ステップＤ２）。判断がＹＥＳの場合、ステータス２が「０」か「２」か「４」か否か判断する（ステップＤ３、Ｄ４、Ｄ５）。
【００６７】
ステータス２が「０」と判断されると（ステップＤ３）、実速度が指令速度より大きいか否か判断する（ステップＤ８）。判断がＹＥＳの場合、初速度を保持する等速動作を実行し、ステータス２を「１」にセットする（ステップＤ９）。判断がＮＯの場合、指令した加速度で加速動作を実行し、ステータス２を「２」にセットし（ステップＤ１７）、ステップＤ７へ移行する。
【００６８】
ステータス２が「２」と判断されると（ステップＤ４）、目標対象軸との速度差を計算し（ステップＤ１０）、速度差が減少から増加に転じているか否か判断する（ステップＤ１１）。判断がＮＯのときはステップＤ１７へ移行する。判断がＹＥＳの場合、前回の実速度を保持する等速動作を実行し、ステータス２を「３」にセットする（ステップＤ１２）。
【００６９】
ステータス２が「４」でないと判断されると（ステップＤ５）、目標対象軸との位置差を計算（ステップＤ１３）し、位置差が増加から減少に転じているか否か判断する（ステップＤ１４）。判断がＹＥＳの場合、減速に転じる時間を計算し、ステータス２を「４」にセットする（ステップＤ１５）。判断がＮＯの場合、前回と同じ速度で動作し（ステップＤ１８）、ステップＤ７に行く。
【００７０】
ステップＤ６で所定時間経過したか否か判断し、判断がＹＥＳの場合、指令した減速度で減速動作を実行し（ステップＤ１６）、ステップＤ７に進む。ステップＤ７ですべての制御軸について処理されていないと判断されると、ステップＤ２に戻る。全ての制御軸について処理されていると判断されると、処理を終了する。
【図面の簡単な説明】
【００７１】
【図１】速度取得手段を備えた数値制御装置の要部ブロック図である。
【図２】サーボオン時の指令移動量の変化を示す図である。
【図３】位置偏差量が無視できる場合の、サーボオン時の指令移動量の変化を示す図である。
【図４】サーボオン前後のサーボモータの速度を示す図である。
【図５】サーボオン時に取得した実速度を初速度及び目標速度としたときのサーボモータの速度を示す図である。
【図６】サーボオンしたときの数値制御部のプロセッサが所定分配周期毎実施する処理のフローチャートである。
【図７】本発明による数値制御装置の一実施形態の要部ブロック図である。
【図８】複数のサーボモータを連結し同期運転を行なう際に、サーボオフの状態から、サーボオンしたときの数値制御装置のプロセッサが所定分配周期毎実施する処理のフローチャートである。
【図９】サーボオン後の移動指令のフォーマットの例（場合Ａ）。
【図１０】サーボオン時の移動指令の初速度の決定方法の第１の例（場合Ｂ）である。
【図１１】サーボオン時の移動指令の初速度の決定方法の第２の例（場合Ｃ）である。
【図１２】サーボオン時の移動指令の初速度の決定方法の第３の例（場合Ｄ）である。
【図１３】サーボオン時の移動指令の初速度の決定方法の第４の例（場合Ｅ）である。
【図１４】サーボオン時の加減速方法の第１の例（場合Ｆ）である。
【図１５】サーボオン時の加減速方法の第２の例（場合Ｇ）である。
【図１６】サーボオン時の加減速方法の第３の例（場合Ｈ）である。
【図１７】サーボオン時の加減速方法の第４の例（場合Ｉ）である。
【図１８】サーボオン時の加減速方法の第５の例（場合Ｊ）である。
【図１９−１】本発明の実施形態の初速度設定と加減速制御を実行するアルゴリズムを示すフローチャート（その１）である。
【図１９−２】本発明の実施形態の加減速制御を実行するアルゴリズムを示すフローチャート（その２）である。
【図１９−３】本発明の実施形態の加減速制御を実行するアルゴリズムを示すフローチャート（その３）である。
【図２０】従来技術である、サーボオン時の各制御軸の実速度を初速度として、以後同一の移動指令を開始する例。
【符号の説明】
【００７２】
１  数値制御部
２  サーボ制御部
３  サーボモータ
４  位置・速度検出器
【図１】
0004537473.tif 000002
【図２】
0004537473.tif 000003
【図３】
0004537473.tif 000004
【図４】
0004537473.tif 000005
【図５】
0004537473.tif 000006
【図６】
0004537473.tif 000007
【図７】
0004537473.tif 000008
【図８】
0004537473.tif 000009
【図９】
0004537473.tif 000010
【図１０】
0004537473.tif 000011
【図１１】
0004537473.tif 000012
【図１２】
0004537473.tif 000013
【図１３】
0004537473.tif 000014
【図１４】
0004537473.tif 000015
【図１５】
0004537473.tif 000016
【図１６】
0004537473.tif 000017
【図１７】
0004537473.tif 000018
【図１８】
0004537473.tif 000019
【図１９−１】
0004537473.tif 000020
【図１９−２】
0004537473.tif 000021
【図１９−３】
0004537473.tif 000022
【図２０】
0004537473.tif 000023