(57)【要約】【課題】連続する二つの動作指令の夫々に対応する移動動作の間に動作が停止することを、簡易な方法で抑制できる数値制御装置を提供する。【解決手段】工作機械の数値制御装置は、指令に基づいて、サンプリング周期毎の分配速度を出力する。数値制御装置は、前指令に基づく前分配速度の出力が終了してから、後指令に基づく後分配速度の出力を開始するまでの遅延時間Ｄ３を決定する。数値制御装置は、前指令の分配速度の出力が終了してから、遅延時間Ｄ３待機した後、後指令の分配速度の出力を開始する。数値制御装置は、前指令に基づく第一前時定数Ｔａ１と第二前時定数Ｔａ２とを加算した値から、後指令に基づく第一後時定数Ｔｂ１と第二後時定数Ｔｂ２とを加算した値を減算した値（（Ｔａ１＋Ｔａ２）−（Ｔｂ１＋Ｔｂ２））を、遅延時間Ｄ３として算出する。【選択図】図４
2018060242.tif 000002
【特許請求の範囲】
【請求項１】
工作機械のテーブル又は工具が移動する指令に基づいて、サンプリング周期毎に分配手段が分配速度を出力し、前記分配速度に対して第一移動平均フィルタ及び第二移動平均フィルタを適用して導出した加減速後速度で前記テーブル又は工具の移動動作を制御する数値制御装置において、
前記分配手段により、今回の指令である前指令の前記分配速度の出力が終了してから、前記前指令の次の指令である後指令の前記分配速度の出力を開始するまでの遅延時間を決定する決定手段を備え、
前記加減速後速度の前記第一移動平均フィルタの適用に応じた時定数は第一時定数であり、前記第二移動平均フィルタの適用に応じた時定数は第二時定数であり、
前記決定手段は、
所定のパラメータに基づき、前記第一時定数と前記第二時定数に対応した第一変更時定数と第二変更時定数を特定する特定手段と、
前記特定手段により特定された前記前指令の第一前変更時定数と第二前変更時定数とを加算した値から、前記特定手段により特定された前記後指令の第一後変更時定数と第二後変更時定数とを加算した値を減算した値を、前記遅延時間として算出する算出手段と
を備え、
前記第一前変更時定数は、前記特定手段により特定された前記前指令の第一変更時定数であり、前記第二前変更時定数は、前記特定手段により特定された前記前指令の第二変更時定数であり、前記第一後変更時定数は、前記特定手段により特定された前記後指令の第一変更時定数であり、前記第二後変更時定数は、前記特定手段により特定された前記後指令の第二変更時定数である
ことを特徴とする数値制御装置。
【請求項２】
前記パラメータは、所定の最大速度、前記第一時定数、及び、前記第二時定数を含み、
前記特定手段は、
前記分配速度が前記最大速度と同一の時、前記第一時定数を前記第一変更時定数として特定し、前記第二時定数を前記第二変更時定数として特定する第一特定手段を備えたことを特徴とする請求項１に記載の数値制御装置。
【請求項３】
前記パラメータは、所定の最大速度、前記第一時定数、及び、前記第二時定数を含み、
前記特定手段は、
前記分配速度が前記最大速度よりも小さく、且つ、式（１）により算出される下限速度以上の時、前記加減速後速度の加速度が一定となるように前記第一変更時定数を特定し、前記第二時定数を前記第二変更時定数として特定する第一特定手段を備えたことを特徴とする請求項１に記載の数値制御装置。
但し、前記下限速度をＶ２、前記最大速度をＶｍａｘ、前記第一時定数をＴ１、及び、前記第二時定数をＴ２と表記した時、前記式（１）は次の通りである。
Ｖ２＝Ｔ２×Ｖｍａｘ／Ｔ１・・・（１）
【請求項４】
前記パラメータは、所定の最大速度、前記第一時定数、及び、前記第二時定数を含み、
前記特定手段は、
前記分配速度が、式（２）により算出される下限速度よりも小さい時、前記加減速後速度の加加速度が一定となるように前記第一変更時定数及び前記第二変更時定数を特定する第一特定手段を備えたことを特徴とする請求項１に記載の数値制御装置。
但し、前記下限速度をＶ２、前記最大速度をＶｍａｘ、前記第一時定数をＴ１、及び、前記第二時定数をＴ２と表記した時、前記式（２）は次の通りである。
Ｖ２＝Ｔ２×Ｖｍａｘ／Ｔ１・・・（２）
【請求項５】
前記特定手段は、
前記指令に応じた移動距離が、前記加減速後速度において定速領域の時間を０とした時の移動距離である基準移動距離よりも大きい時、前記第一時定数を前記第一変更時定数として特定し、前記第二時定数を前記第二変更時定数として特定する第二特定手段を備えたことを特徴とする請求項２から４の何れかに記載の数値制御装置。
【請求項６】
前記特定手段は、
前記指令に応じた移動距離が、前記加減速後速度において定速領域の時間を０とした時の移動距離である上限距離よりも小さく、且つ、式（３）により算出される下限距離以上の時、前記加減速後速度の加速度が一定となるように前記第一変更時定数を特定し、前記第二時定数を前記第二変更時定数として特定する第二特定手段を備えたことを特徴とする請求項２から４の何れかに記載の数値制御装置。
但し、前記下限距離をＬ２、前記最大速度をＶｍａｘ、前記第一時定数をＴ１、及び、前記第二時定数をＴ２と表記した時、前記式（３）は次の通りである。
Ｌ２＝２×Ｔ２×Ｔ２×Ｖｍａｘ／Ｔ１・・・（３）
【請求項７】
前記特定手段は、
前記指令に応じた移動距離が、式（４）により算出される下限距離よりも小さい時、前記加減速後速度の加加速度が一定となるように、前記第一変更時定数、及び、前記第二変更時定数を特定する第二特定手段を備えたことを特徴とする請求項２から４の何れかに記載の数値制御装置。
但し、前記下限距離をＬ２、前記最大速度をＶｍａｘ、前記第一時定数をＴ１、及び、前記第二時定数をＴ２と表記した時、前記式（４）は次の通りである。
Ｌ２＝２×Ｔ２×Ｔ２×Ｖｍａｘ／Ｔ１・・・（４）
【請求項８】
前記特定手段は、
前記分配速度に基づいて第一変更分配速度を特定し、前記移動距離に基づいて第二変更分配速度を特定する第三特定手段を備え、
前記第一変更分配速度が前記第二変更分配速度よりも小さい時、前記第一特定手段により特定した前記第一変更時定数及び前記第二変更時定数を特定し、
前記第一変更分配速度が前記第二変更分配速度以上の時、前記第二特定手段により特定した前記第一変更時定数及び前記第二変更時定数を特定することを特徴とする請求項５から７の何れかに記載の数値制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は数値制御装置に関する。
【背景技術】
【０００２】
数値制御装置において、連続する二つの動作指令の夫々に対応する移動動作の間の移行時に動作が停止することを抑制することによって、加工時間を短縮する工作機械の制御方法が公知である。特許文献１に記載の数値制御装置は、現ブロックが早送り且つ次ブロックが切削送りの時、早送り終点位置の速度を次ブロックの指令切削速度とし、所定の減速を行う。次に、数値制御装置は、次ブロックの切削送りを指令切削速度から開始する。一方、数値制御装置は、現ブロックが切削送り且つ次ブロックが早送りの時、切削送り終点位置の速度を指令切削速度のまま維持する。次に、数値制御装置は、指令切削速度から所定の加速を行うことにより、次ブロックの早送りを開始する。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特許第２９２５４１４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
上記数値制御装置は、早送り及び切削送りの間の移行時に所定の加速及び減速を行う為、速度の推移を示す加減速曲線を算出する必要がある。故に、早送り及び切削送りの間の移行時における動作の停止を、特別な演算を要せず簡易に実現する方法が所望される。
【０００５】
本発明の目的は、連続する二つの動作指令の夫々に対応する移動動作の間に動作が停止することを、簡易な方法で抑制できる数値制御装置を提供することである。
【課題を解決するための手段】
【０００６】
本発明に係る数値制御装置は、工作機械のテーブル又は工具が移動する指令に基づいて、サンプリング周期毎に分配手段が分配速度を出力し、前記分配速度に対して第一移動平均フィルタ及び第二移動平均フィルタを適用して導出した加減速後速度で前記テーブル又は工具の移動動作を制御する数値制御装置において、前記分配手段により、今回の指令である前指令の前記分配速度の出力が終了してから、前記前指令の次の指令である後指令の前記分配速度の出力を開始するまでの遅延時間を決定する決定手段とを備え、前記加減速後速度の前記第一移動平均フィルタの適用に応じた時定数は第一時定数であり、前記第二移動平均フィルタの適用に応じた時定数は第二時定数であり、前記決定手段は、所定のパラメータに基づき、前記第一時定数と前記第二時定数に対応した第一変更時定数と第二変更時定数を特定する特定手段と、前記特定手段により特定された前記前指令の第一前変更時定数と第二前変更時定数とを加算した値から、前記特定手段により特定された前記後指令の第一後変更時定数と第二後変更時定数とを加算した値を減算した値を、前記遅延時間として算出する算出手段とを備え、前記第一前変更時定数は、前記特定手段により特定された前記前指令の第一変更時定数であり、前記第二前変更時定数は、前記特定手段により特定された前記前指令の第二変更時定数であり、前記第一後変更時定数は、前記特定手段により特定された前記後指令の第一変更時定数であり、前記第二後変更時定数は、前記特定手段により特定された前記後指令の第二変更時定数であることを特徴とする。
【０００７】
数値制御装置は、前指令に基づいて前分配速度を出力し、遅延時間分待機した後、後指令に基づいて後分配速度を出力する。数値制御装置は、第一前変更時定数と第二前変更時定数とを加算した値から、第一後変更時定数と第二後変更時定数とを加算した値を減算することによって、遅延時間を算出する。該時、前指令に基づく工具の移動が停止する前に、後指令に基づく工具の移動が開始される。故に、数値制御装置は、前指令及び後指令の夫々に対応する工具の移動動作の切替期間で工具の移動が停止することを防止できる。又、数値制御装置は、上記方法で遅延時間を算出することにより、上記切替期間において工具の速度が一旦減少した後増加することを抑制できる。故に、数値制御装置は、上記切替期間での速度の減少を抑制できるので、前指令及び後指令の夫々に対応する工具の移動を短時間で実行できる。
【０００８】
本発明において、前記パラメータは、所定の最大速度、前記第一時定数、及び、前記第二時定数を含み、前記特定手段は、前記分配速度が前記最大速度と同一の時、前記第一時定数を前記第一変更時定数として特定し、前記第二時定数を前記第二変更時定数として特定する第一特定手段を備えてもよい。前記パラメータは、所定の最大速度、前記第一時定数、及び、前記第二時定数を含み、前記特定手段は、前記分配速度が前記最大速度よりも小さく、且つ、式（１）により算出される下限速度以上の時、前記加減速後速度の加速度が一定となるように前記第一変更時定数を特定し、前記第二時定数を前記第二変更時定数として特定する第一特定手段を備えてもよい。但し、前記下限速度をＶ２、前記最大速度をＶｍａｘ、前記第一時定数をＴ１、及び、前記第二時定数をＴ２と表記した時、前記式（１）は次の通りであってもよい。
Ｖ２＝Ｔ２×Ｖｍａｘ／Ｔ１・・・（１）
本発明において、前記パラメータは、所定の最大速度、前記第一時定数、及び、前記第二時定数を含み、前記特定手段は、前記分配速度が、式（２）により算出される下限速度よりも小さい時、前記加減速後速度の加加速度が一定となるように前記第一変更時定数及び前記第二変更時定数を特定する第一特定手段を備えてもよい。但し、前記下限速度をＶ２、前記最大速度をＶｍａｘ、前記第一時定数をＴ１、及び、前記第二時定数をＴ２と表記した時、前記式（２）は次の通りであってもよい。
Ｖ２＝Ｔ２×Ｖｍａｘ／Ｔ１・・・（２）
該時、数値制御装置は、分配速度の値に関わらず、適切な遅延時間を算出できる第一変更時定数及び第二変更時定数を特定できる。
【０００９】
本発明において、前記特定手段は、前記指令に応じた移動距離が、前記加減速後速度において定速領域の時間を０とした時の移動距離である基準移動距離よりも大きい時、前記第一時定数を前記第一変更時定数として特定し、前記第二時定数を前記第二変更時定数として特定する第二特定手段を備えてもよい。本発明において、前記特定手段は、前記指令に応じた移動距離が、前記加減速後速度において定速領域の時間を０とした時の移動距離である上限距離よりも小さく、且つ、式（３）により算出される下限距離以上の時、前記加減速後速度の加速度が一定となるように前記第一変更時定数を特定し、前記第二時定数を前記第二変更時定数として特定する第二特定手段を備えてもよい。但し、前記下限距離をＬ２、前記最大速度をＶｍａｘ、前記第一時定数をＴ１、及び、前記第二時定数をＴ２と表記した時、前記式（３）は次の通りであってもよい。
Ｌ２＝２×Ｔ２×Ｔ２×Ｖｍａｘ／Ｔ１・・・（３）
本発明において、前記特定手段は、前記指令に応じた移動距離が、式（４）により算出される下限距離以下の時、前記加減速後速度の加加速度が一定となるように、前記第一変更時定数、及び、前記第二変更時定数を特定する第二特定手段を備えてもよい。但し、前記下限距離をＬ２、前記最大速度をＶｍａｘ、前記第一時定数をＴ１、及び、前記第二時定数をＴ２と表記した時、前記式（４）は次の通りであってもよい。
Ｌ２＝２×Ｔ２×Ｔ２×Ｖｍａｘ／Ｔ１・・・（４）
該時、数値制御装置は、指令に基づく移動距離に関わらず、適切な遅延時間を算出できる第一変更時定数及び第二変更時定数を特定できる。
【００１０】
本発明において、前記特定手段は、前記分配速度に基づいて第一変更分配速度を特定し、前記移動距離に基づいて第二変更分配速度を特定する第三特定手段を備え、前記第一変更分配速度が前記第二変更分配速度よりも小さい時、前記第一特定手段により特定した前記第一変更時定数及び前記第二変更時定数を特定し、前記第一変更分配速度が前記第二変更分配速度以上の時、前記第二特定手段により特定した前記第一変更時定数及び前記第二変更時定数を特定してもよい。該時、数値制御装置は、適切な遅延時間を算出できる第一変更時定数及び第二変更時定数を、第一変更初期速度と第二変更初期速度との関係から選択できる。
【図面の簡単な説明】
【００１１】
【図１】工作機械１の斜視図。
【図２】数値制御装置４０と工作機械１の電気的構成を示すブロック図。
【図３】二段のＦＩＲフィルタを適用した時の速度曲線と加速度曲線の図。
【図４】遅延時間Ｄ１、Ｄ２、Ｄ３の関係を示す速度曲線と加速度曲線の図。
【図５】メイン処理のフローチャート。
【図６】第一算出処理のフローチャート。
【図７】速度曲線と加速度曲線の関係を示す図
【図８】第二算出処理のフローチャート。
【図９】速度曲線と加速度曲線の関係を示す図
【図１０】速度曲線と加速度曲線の関係を示す図
【発明を実施するための形態】
【００１２】
本発明の実施形態を図面を参照し説明する。以下説明は、図中に矢印で示す左右、前後、上下を使用する。工作機械１の左右方向、前後方向、上下方向は夫々、工作機械１のＸ軸方向、Ｙ軸方向、Ｚ軸方向である。図１に示す工作機械１は、被削材（図示略）の切削加工と旋削加工ができる複合機である。
【００１３】
＜工作機械１の構造＞
図１を参照し、工作機械１の構造を説明する。工作機械１は基台２、Ｙ軸移動機構（図示略）、Ｘ軸移動機構（図示略）、Ｚ軸移動機構（図示略）、移動体１５、立柱５、主軸ヘッド６、主軸（図示略）、被削材支持装置８、数値制御装置４０（図２参照）等を備える。基台２は架台１１、主軸基台１２、右側基台１３、左側基台１４等を備える。架台１１は前後方向に長い略直方体状の構造体である。主軸基台１２は前後方向に長い略直方体状に形成し、架台１１上面後方に設ける。右側基台１３は架台１１上面右前方に設ける。左側基台１４は架台１１上面左前方に設ける。右側基台１３と左側基台１４は夫々、上面に被削材支持装置８を支持する。
【００１４】
Ｙ軸移動機構は主軸基台１２上面に設け、Ｙ軸モータ６２（図２参照）等を備える。Ｙ軸移動機構はＹ軸モータ６２の駆動により、略平板状の移動体１５をＹ軸方向に移動する。Ｘ軸移動機構は移動体１５上面に設け、Ｘ軸モータ６１（図２参照）等を備える。Ｘ軸移動機構はＸ軸モータ６１の駆動により、立柱５をＸ軸方向に移動する。立柱５は、Ｙ軸移動機構、移動体１５、Ｘ軸移動機構により、基台２上をＸ軸方向とＹ軸方向に移動可能である。Ｚ軸移動機構は立柱５前面に設け、Ｚ軸モータ６３（図２参照）等を備える。Ｚ軸移動機構はＺ軸モータ６３の駆動により、主軸ヘッド６をＺ軸方向に移動する。主軸（図示略）は主軸ヘッド６内部に設け、主軸下部に工具装着穴（図示略）を備える。工具装着穴は工具を装着する。故に、Ｘ軸移動機構、Ｙ軸移動機構、Ｚ軸移動機構は夫々、主軸に装着した工具を、Ｘ軸方向、Ｙ軸方向、Ｚ軸方向に移動できる。主軸は主軸ヘッド６上部に設けた主軸モータ６６（図２参照）で回転する。
【００１５】
数値制御装置４０（図２参照）は制御箱の内側に格納する。数値制御装置４０はＮＣプログラムに基づき工作機械１の動作を制御する。ＮＣプログラムはＧコード、Ｍコードの指令で構成する行を複数行有する。工作機械１を覆うカバーは外壁面に操作盤１０（図２参照）を備える。操作盤１０は操作部１７、表示部１８、接続口１９（図２参照）を備える。操作部１７は数値制御装置４０の各種設定を行う。表示部１８は各種画面、メッセージ、アラーム等を表示する。接続口１９は外部記憶媒体４６Ａ（図２参照）を装着する端子を含む。外部記憶媒体４６Ａの一例はＵＳＢメモリである。
【００１６】
被削材支持装置８は右側基台１３と左側基台１４の上面に固定する。被削材支持装置８はＡ軸台２０、左側支持台２７、右側駆動機構部２８、回転台２９、Ｃ軸駆動部３０等を備える。Ａ軸台２０は、傾斜角度が０度で上面が水平面となる平面視略長方形状の板状部である。左側支持台２７は、Ｘ軸方向に対して平行な支軸（図示略）を回転可能に支持する。左側支持台２７の底部は、左側基台１４の上面に固定する。
【００１７】
右側駆動機構部２８はＡ軸台２０右側に位置する。右側駆動機構部２８は内側にＡ軸モータ６４（図２参照）等を格納する。Ａ軸モータ６４が回転すると、Ａ軸台２０は支軸を中心に回転する。Ａ軸台２０を回転する軸はＡ軸である。右側駆動機構部２８は工具に対して被削材を、Ａ軸を中心として回転できる。Ａ軸台２０はＡ軸回りに任意角度で傾くことで、主軸に装着する工具に対して被削材を任意方向に傾けることができる。
【００１８】
回転台２９はＡ軸台２０上面略中央に回転可能に設ける。回転台２９は円盤状を有する。Ｃ軸駆動部３０はＡ軸台２０下面に設け且つＡ軸台２０の略中央に設けた穴（図示略）を介して回転台２９と連結する。Ｃ軸駆動部３０は内部に回転軸（図示略）、Ｃ軸モータ６５（図２参照）等を備える。回転軸は回転台２９に対して直交する方向に延びる。回転軸は回転台２９に固定する。Ｃ軸モータ６５は回転軸に固定する。故に、Ｃ軸モータ６５が回転軸を回転すると、回転台２９はＺ軸方向に平行な軸を中心に回転可能である。回転台２９を回転する軸はＣ軸である。回転台２９上面の冶具２００は、被削材を固定する。Ｃ軸駆動部３０は工具に対して被削材を、Ｃ軸を中心として回転できる。
【００１９】
＜電気的構成＞
図２を参照し、数値制御装置４０と工作機械１の電気的構成を説明する。数値制御装置４０は、ＣＰＵ４１、ＲＯＭ４２、ＲＡＭ４３、フラッシュメモリ４４、入出力部４５、外部インタフェース（Ｉ／Ｆ）４６、駆動回路５１〜５６を備える。工作機械１は、Ｘ軸モータ６１、Ｙ軸モータ６２、Ｚ軸モータ６３、Ａ軸モータ６４、Ｃ軸モータ６５、主軸モータ６６を備える。
【００２０】
ＣＰＵ４１は工作機械１の動作を制御する。ＣＰＵ４１はフラッシュメモリ４４に記憶した制御プログラムを実行する。ＲＯＭ４２は各種設定情報を記憶する。ＲＡＭ４３は各種処理実行中に発生する各種データを記憶する。フラッシュメモリ４４は制御プログラム、初期パラメータ、ＮＣプログラム等を記憶する。入出力部４５は駆動回路５１〜５６、操作部１７、表示部１８との間で各種信号の入出力を行う。駆動回路５１とＸ軸モータ６１、駆動回路５２とＹ軸モータ６２、駆動回路５３とＺ軸モータ６３、駆動回路５４とＡ軸モータ６４、駆動回路５５とＣ軸モータ６５、駆動回路５６と主軸モータ６６は夫々接続する。駆動回路５１〜５６（以下、総称して「駆動回路５０」と称す。）はＣＰＵ４１が出力するパルス信号を、モータ６１〜６６（以下、総称して「モータ６０」と称す。）に出力する。モータ６０は何れもサーボモータである。外部Ｉ／Ｆ４６は、接続口１９に装着した外部記憶媒体４６Ａから情報を読み出す為のインタフェース素子である。例えばＣＰＵ４１は、外部記憶媒体４６Ａに記憶した制御プログラムを、外部Ｉ／Ｆ４６により読み出す。
【００２１】
＜分配速度と加減速後速度との関係＞
図３を参照し、移動平均フィルタと時定数の関係を説明する。数値制御装置４０のＣＰＵ４１は、ＮＣプログラム中の各指令に基づき、Ｘ軸、Ｙ軸、Ｚ軸の駆動軸毎に、工具が移動する時の速度及び移動距離を夫々特定する。ＣＰＵ４１は、特定した速度と移動距離に基づき、工具が移動する時の時間を更に特定する。ＣＰＵ４１は、特定した速度に移動平均フィルタ（以下、ＦＩＲフィルタと称す）を少なくとも二回以上適用し、速度変化を滑らかにする。図３は、速度にＦＩＲフィルタを二回適用した結果を示す。一回目に適用するＦＩＲフィルタを「第一ＦＩＲフィルタ」（ＦＩＲ１）と称し、第一ＦＩＲフィルタを適用した時の速度の時定数を、「第一時定数」と称す。二回目に適用するＦＩＲフィルタを「第二ＦＩＲフィルタ」（ＦＩＲ２）と称し、第二ＦＩＲフィルタを適用した時の速度の時定数を、「第二時定数」と称す。
【００２２】
図３（Ａ）は、ＮＣプログラムの一つの指令に基づき工具が移動する時の速度（Ｖｍａｘ）及び時間（ｔ）を示す。以下、速度の経時的変化を示す曲線を、「速度曲線」と称す。図３（Ａ）に示すＶｍａｘの速度曲線に第一ＦＩＲフィルタを適用した時、図３（Ｂ）に示すように、速度曲線のうち速度が０からＶｍａｘまで変化する部分（立ち上がり部分）、及び、速度がＶｍａｘから０まで変化する部分（立ち下がり部分）の傾き（加速度）は一定となる。速度曲線の立ち上がり部分及び立ち下がり部分の時間（以下、夫々を「立ち上がり時間」「立ち下がり時間」と称す。）は、何れもＴ１となる。Ｔ１は、Ｖｍａｘの速度曲線に第一ＦＩＲフィルタを適用した時の第一時定数に対応する。速度曲線の立ち上がり部分及び立ち下がり部分の傾き（加速度）は、Ｖｍａｘ／Ｔ１である。
【００２３】
図３（Ｃ）に示すように、第一ＦＩＲフィルタを適用したＶｍａｘの速度曲線（図３（Ｂ）参照）に第二ＦＩＲフィルタ（ＦＩＲ２）を更に適用した時、速度曲線のうち加速度が一定となる部分の開始部分及び終了部分で、速度は緩やかに変化する。該時、加速度の経時的変化を示す曲線（以下、「加速度曲線」と称す。）において、速度が緩やかに変化する部分に対応する傾きは一定となる。速度曲線の立ち上がり時間及び立ち下がり時間は、夫々Ｔ２ずつ増加し、「Ｔ１＋Ｔ２」となる。Ｔ２は、Ｖｍａｘの速度曲線に第二ＦＩＲフィルタを適用した時の第二時定数に対応する。加速度曲線において、加速度が一定に推移する部分（速度曲線において傾きが一定となる部分）の値を「最大加速度」といい、Ａｍａｘと表記する。該時、ＡｍａｘはＶｍａｘ／Ｔ１と一致する。以上のように、ＣＰＵ４１は、速度に複数のＦＩＲフィルタを適用することで、速度の変化を緩和できる。
【００２４】
ＣＰＵ４１は、ＮＣプログラムの指令に基づいて、サンプリング周期毎に工具の速度を取得する。以下、ＮＣプログラムの指令に基づいてサンプリング周期毎に取得した速度を、「分配速度」（図３（Ａ）参照）と称す。ＣＰＵ４１は、分配速度に第一ＦＩＲフィルタ及び第二ＦＩＲフィルタを適用し、サンプリング周期毎に速度を算出する。以下、分配速度に第一ＦＩＲフィルタ及び第二ＦＩＲフィルタを適用して算出した速度を、「加減速後速度」（図３（Ｃ）参照）と称す。ＣＰＵ４１は、ＮＣプログラムの指令に基づいて特定した駆動軸（Ｘ軸、Ｙ軸、Ｚ軸）に対応するモータ６０を駆動する駆動回路５０に、算出した加減速後速度でモータ６０を回転させる為のパルス信号を出力する。
【００２５】
図３（Ｃ）に示すように、ＣＰＵ４１は、分配速度に基づく加減速後速度の算出と、駆動回路５０に対するパルス信号の出力を同時に実行する。駆動回路５０は、ＣＰＵ４１が出力したパルス信号に基づき、モータ６０を加減速後速度で回転する。尚、第一ＦＩＲフィルタ及び第二ＦＩＲフィルタを適用することにより、加減速後速度の算出が終了する時期（即ち、駆動回路５０に対するパルス信号の出力が終了する時期）に対して、加減速後速度で回転するモータ６０が停止する（以下、「加減速後速度が０になる」と言い換える。）時期は、立ち下がり時間（Ｔ１＋Ｔ２）分遅延する。該遅延時間中、駆動回路５０は、モータ６０にパルス信号を継続して出力し、モータ６０を加減速後速度で回転させる。故に、ＣＰＵ４１は、ＮＣプログラム中に連続する二つの指令（前指令、後指令）がある時、前指令に基づく分配速度の算出が終了した後、所定時間（以下、「遅延時間Ｄ」と称す。）分待機する。ＣＰＵ４１は、遅延時間Ｄ分待機した後、前指令の次の指令である後指令に基づく分配速度の算出を開始する。以下、前指令に基づいて分配速度から算出した加減速後速度を、「前加減速後速度」という。後指令に基づいて分配速度から算出した加減速後速度を、「後加減速後速度」と称す。
【００２６】
ＣＰＵ４１が前指令の分配速度の算出を終了してから後指令の分配速度の算出を開始するまでの遅延時間Ｄの具体例について説明する。前指令は早送り指令であり、後指令は切削送り指令であることを前提とする。早送り指令とは、工具の移動経路に関係無く軸毎に最高速で目的位置まで移動する指令である。切削送り指令とは、正確な切削経路をたどりながら移動する指令である。図４に示すように、前指令は、速度Ｖａで時間ｔ１の間連続して工具を移動する。後指令は、速度Ｖｂで時間ｔ２の間連続して工具を移動する。ＶｂはＶａよりも小さい（Ｖａ＞Ｖｂ）。前加減速後速度の第一時定数及び第二時定数を、夫々「第一前時定数」「第二前時定数」といい、Ｔａ１、Ｔａ２と表記する。後加減速後速度の第一時定数及び第二時定数を、夫々「第一後時定数」「第二後時定数」といい、Ｔｂ１、Ｔｂ２と表記する。
【００２７】
図４（Ａ）に示す第一例では、前加減速後速度が０になった時、後指令の分配速度の算出を開始する。前指令の分配速度の算出が終了してから前加減速後速度が０になる迄の時間は、第一前時定数Ｔａ１と第二前時定数Ｔｂ１とを加算した「Ｔａ１＋Ｔａ２」である。故に、図４（Ａ）の遅延時間Ｄ１は、「Ｔａ１＋Ｔａ２」となる。該時、加減速後速度の速度曲線は、Ｖａ迄増加した後０迄減少し、Ｖｂ迄増加した後０迄減少する。
【００２８】
図４（Ｂ）に示す第二例では、Ｖｂまで前加減速後速度が減少した時、後指令の分配速度の算出を開始する。遅延時間Ｄ２は「Ｔａ１＋Ｔａ２」よりも小さくなる（Ｄ２＜（Ｔａ１＋Ｔａ２））。故に、前指令及び後指令に基づくモータ６０の回転が終了する迄に要する時間（以下、「サイクルタイム」と称す。）は、第一例の時よりも短くなる。
【００２９】
第二例において、前加減速後速度でモータ６０が回転する時期と、後加減速後速度でモータ６０が回転する時期は重複する。モータ６０は、前加減速後速度と後加減速後速度が重複する部分で、前加減速後速度と後加減速後速度を加算した加算速度で回転する。モータ６０の回転速度が前加減速後速度から後加減速後速度に切り替わる期間（以下、「切替期間」と称す。）Ｇｂにおいて、前加減速後速度の加速度の変化率（以下、「加加速度」と称す。）と、後加減速後速度の加加速度との夫々の絶対値は一致せず、夫々を加算した値は０にならない。故に、加算速度の速度曲線は、Ｖａ迄増加した後Ｖｂよりも小さい値迄減少し、その後Ｖｂ迄増加した後０迄減少する。
【００３０】
上述のように、第一例（図４（Ａ））及び第二例（図４（Ｂ））の何れの時も、切替期間でモータ６０の回転速度はＶｂよりも小さい値になる。故に、モータ６０の回転速度がＶｂまで再度増加する為に時間を要する。これに対し、後述する第三例（図４（Ｃ）参照）は、切替期間でモータ６０の回転速度がＶｂよりも小さくならないように遅延時間Ｄ３を決定し、サイクルタイムを短縮化する。
【００３１】
図４（Ｃ）に示す第三例では、後述する式（１）により算出する遅延時間Ｄ３を適用する。又、第三例では、切替期間Ｇｃにおいて、前加減速後速度の加加速度と後加減速後速度の加加速度との夫々の絶対値が一致するように、分配速度、第一時定数、及び、第二時定数を必要に応じて変更する。
【００３２】
以下、変更後の分配速度を、「変更分配速度」といい、ｆ（Ｖ）と表記する。前指令に基づく変更分配速度、及び、後指令に基づく変更分配速度を、夫々「前変更分配速度」「後変更分配速度」といい、ｆ（Ｖａ）、ｆ（Ｖｂ）と表記する。変更後の第一前時定数及び第二前時定数を、夫々「第一前変更時定数」「第二前変更時定数」といい、ｆ（Ｔａ１）、ｆ（Ｔａ２）と表記する。変更後の第一後時定数及び第二後時定数を、夫々「第一後変更時定数」「第二後変更時定数」といい、ｆ（Ｔｂ１）、ｆ（Ｔｂ２）と表記する。第一前変更時定数及び第一後変更時定数を総称して「第一変更時定数」といい、ｆ（Ｔ１）と表記する。第二前変更時定数及び第二後変更時定数を総称して「第二変更時定数」といい、ｆ（Ｔ２）と表記する。
【００３３】
遅延時間Ｄ３は、次の式（１）により算出する。
Ｄ３＝（ｆ（Ｔａ１）＋ｆ（Ｔａ２））−（ｆ（Ｔｂ１）＋ｆ（Ｔｂ２））      （１）
つまり、遅延時間Ｄ３は、第一前変更時定数「ｆ（Ｔａ１）」と第二前変更時定数「ｆ（Ｔａ２）」を加算した値「ｆ（Ｔａ１）＋ｆ（Ｔａ２）」から、第一後変更時定数「ｆ（Ｔｂ１）」と第二後変更時定数「ｆ（Ｔｂ２）」を加算した値「ｆ（Ｔｂ１）＋ｆ（Ｔｂ２）」を減算することにより算出する。図４（Ｃ）は、第一前変更時定数及び第二前変更時定数が変更前と同値であり（Ｔａ１＝ｆ（Ｔａ１）、Ｔａ２＝ｆ（Ｔａ２））、且つ、第一後変更時定数及び第二後変更時定数が変更前と同値である（Ｔｂ１＝ｆ（Ｔｂ１）、Ｔｂ２＝ｆ（Ｔｂ２））時を想定した遅延時間Ｄ３（＝（Ｔａ１＋Ｔａ２）−（Ｔｂ１＋Ｔｂ２））を示す。
【００３４】
上記遅延時間Ｄ３は、第一例（図４（Ａ）参照）の遅延時間Ｄ１、及び、第二例（図４（Ｂ）参照）の遅延時間Ｄ２よりも短い。該時、切替期間Ｇｃにおいて、前加減速後速度の加加速度と後加減速後速度の加加速度との夫々の絶対値は一致するので、前加減速後速度と後加減速後速度を加算した加算速度の速度曲線は、Ｖａ迄増加した後Ｖｂ迄減少し、その後更に減少して０になる。切替期間でモータ６０の回転速度がＶｂよりも小さくならない為、サイクルタイムは、第一例及び第二例の時よりも短くなる。
【００３５】
＜メイン処理＞
図５を参照し、メイン処理を説明する。ＣＰＵ４１は、ＮＣプログラムに基づく工具の移動を開始する指示を、操作部１７を介して検出した時、フラッシュメモリ４４に記憶した制御プログラムを実行することによりメイン処理を開始する。ＣＰＵ４１は、第一算出処理を実行する（Ｓ１１）。
【００３６】
図６を参照し、第一算出処理を説明する。第一算出処理では、後述する第二算出処理（図８参照）で、指令速度Ｖ、第一時定数Ｔ１、及び、第二時定数Ｔ２を変更するかを判断する為の閾値を算出する。算出する閾値は、最大加速度Ａｍａｘ、基準移動距離Ｌ１、下限速度Ｖ２、及び、下限距離Ｌ２である。
【００３７】
ＣＰＵ４１は、フラッシュメモリ４４に記憶した初期パラメータを取得する（Ｓ５１）。初期パラメータは、最大速度Ｖｍａｘ、第一時定数Ｔ１、及び、第二時定数Ｔ２である。最大速度Ｖｍａｘは、工作機械１が工具を移動する時の最大速度である。第一時定数Ｔ１は、分配速度をＶｍａｘとした時に第一ＦＩＲフィルタを適用した時の第一時定数に対応する。第二時定数Ｔ２は、分配速度をＶｍａｘとした時に第二ＦＩＲフィルタを適用した時の第二時定数に対応する。
【００３８】
ＣＰＵ４１は、最大加速度Ａｍａｘを次の式（２）により算出する（Ｓ５３）。
Ａｍａｘ  ＝  Ｖｍａｘ／Ｔ１            （２）
ＣＰＵ４１は、基準移動距離Ｌ１、下限速度Ｖ２、及び、下限距離Ｌ２を、次の式（３−１）（３−２）（３−３）により算出する（Ｓ５５）。
Ｌ１  ＝  Ｖｍａｘ×（Ｔ１＋Ｔ２）      （３−１）
Ｖ２  ＝  Ｔ２×Ａｍａｘ                （３−２）
Ｌ２  ＝  ２×Ｔ２×Ｖ２  ＝  ２×Ｔ２×Ｔ２×Ａｍａｘ      （３−３）
ＣＰＵ４１は第一算出処理を終了し、処理をメイン処理（図５参照）に戻す。
【００３９】
最大加速度Ａｍａｘ、基準移動距離Ｌ１、下限速度Ｖ２、及び、下限距離Ｌ２について詳細に説明する。図７（Ａ）は、Ｓ５１（図６参照）の処理により取得した初期パラメータ（Ｖｍａｘ、Ｔ１、Ｔ２）により特定される速度曲線（以下、「第一速度曲線Ｃｖ１」と称す。）、及び、第一速度曲線Ｃｖ１に対応する加速度曲線（以下、「第一加速度曲線Ｃａ１」と称す。）である。第一速度曲線Ｃｖ１は、分配速度Ｖｍａｘに第一ＦＩＲフィルタ及び第二ＦＩＲフィルタを適用した時の加減速後速度の推移を示す。図７（Ｂ）は、第一速度曲線Ｃｖ１のうち速度がＶｍａｘ一定で推移する部分（矢印Ｒ１１参照）の時間を０に短縮した曲線（以下、「第二速度曲線Ｃｖ２」と称す。）、及び、第二速度曲線Ｃｖ２に対応する加速度曲線（以下、「第二加速度曲線Ｃａ２」と称す。）である。図７（Ｃ）は、第二加速度曲線Ｃａ２のうちＡｍａｘ一定で推移する部分（矢印Ｒ１２参照）の時間を０に短縮した曲線（以下、「第三加速度曲線Ｃａ３」と称す。）、及び、第三加速度曲線Ｃａ３に対応する速度曲線（以下、「第三速度曲線Ｃｖ３」と称す。）を示す。
【００４０】
最大加速度Ａｍａｘは、第一速度曲線Ｃｖ１及び第二速度曲線Ｃｖ２の夫々の立ち上がり部分及び立ち下り部分において、傾き一定となる部分の加速度の絶対値を示す。基準移動距離Ｌ１は、第二速度曲線Ｃｖ２で囲まれる部分の面積を示す。下限速度Ｖ２は、第三加速度曲線Ｃａ３で囲まれた部分の面積を示し、第三速度曲線Ｃｖ３における速度の最大値に対応する。下限距離Ｌ２は、第三速度曲線Ｃｖ３で囲まれる部分の面積を示す。
【００４１】
図５に示すように、ＣＰＵ４１は、第一算出処理（Ｓ１１参照）の終了後、ＮＣプログラムの指令を取得する。ＣＰＵ４１は、取得した指令に基づき、工具が移動する時の速度Ｆ及び移動距離Ｌを特定する（Ｓ１３）。ＣＰＵ４１は、取得した指令に基づき、第二算出処理（図８参照）を開始する（Ｓ１５）。第二算出処理は、前加減速後速度と後加減速後速度との切替期間で夫々の加加速度を一致させる為に、変更分配速度ｆ（Ｖ）、第一変更時定数ｆ（Ｔ１）、第二変更時定数ｆ（Ｔ２）を特定する。変更分配速度ｆ（Ｖ）、第一変更時定数ｆ（Ｔ１）、第二変更時定数ｆ（Ｔ２）は、後述するＳ２３の処理で遅延時間Ｄ３を算出する時に使用する。
【００４２】
図８を参照し、第二算出処理を説明する。第二算出処理では、後述する指令速度Ｖに基づき特定した変更分配速度ｆ１（Ｖ）、第一変更時定数ｆ１（Ｔ１）、及び、第二変更時定数ｆ１（Ｔ２）と、移動距離Ｌに基づき特定した変更分配速度ｆ２（Ｖ）、第一変更時定数ｆ２（Ｔ１）、及び、第二変更時定数ｆ２（Ｔ２）とに基づき、遅延時間Ｄ３を算出する時に用いる変更分配速度ｆ（Ｖ）、第一変更時定数ｆ（Ｔ１）、及び、第二変更時定数ｆ（Ｔ２）を特定する。
【００４３】
ＣＰＵ４１は、Ｓ１３（図５参照）の処理により取得した指令が早送り指令か判定する（Ｓ７１）。ＣＰＵ４１は、早送り指令であると判定した時（Ｓ７１：ＹＥＳ）、処理をＳ７３に進める。早送り指令とは、工具の移動経路に関係無く軸毎に最高速で目的位置まで移動する指令である。故に、ＣＰＵ４１は、Ｓ５１（図６参照）の処理により取得した最大速度Ｖｍａｘを、指令速度Ｖに設定する（Ｓ７３）。ＣＰＵ４１は処理をＳ７７に進める。ＣＰＵ４１は、早送り指令でなく切削送り指令と判定した時（Ｓ７１：ＮＯ）、処理をＳ７５に進める。切削送り指令とは、正確な切削経路をたどりながら移動する指令である。故に、ＣＰＵ４１は、指令に基づいて特定した速度Ｆを指令速度Ｖに設定する（Ｓ７５）。ＣＰＵ４１は処理をＳ７７に進める。
【００４４】
ＣＰＵ４１は、指令速度Ｖの値に応じて、変更分配速度ｆ１（Ｖ）、第一変更時定数ｆ１（Ｔ１）、及び、第二変更時定数ｆ１（Ｔ２）を特定する（Ｓ７７）。詳細は次の通りである。
【００４５】
ＣＰＵ４１は、指令速度ＶがＶｍａｘと一致する時（Ｖ＝Ｖｍａｘ）、次の式（４−１）（４−２）（４−３）により変更分配速度ｆ１（Ｖ）、第一変更時定数ｆ１（Ｔ１）、及び、第二変更時定数ｆ１（Ｔ２）を設定する。
ｆ１（Ｖ）＝Ｖ          （４−１）
ｆ１（Ｔ１）＝Ｔ１      （４−２）
ｆ１（Ｔ２）＝Ｔ２      （４−３）
つまり、Ｖ、Ｔ１、Ｔ２は夫々ｆ１（Ｖ）、ｆ１（Ｔ１）、ｆ１（Ｔ２）となり、変更されない。
【００４６】
上記の理由は、図９（Ａ）に示すように、指令速度Ｖ（＝Ｖｍａｘ）に第一ＦＩＲフィルタ及び第二ＦＩＲフィルタを適用した時、速度曲線Ｃｖ４の立ち上がり部分に傾き（加速度）Ａｍａｘで一定となる部分が現れる為である。該時の第一時定数はＴ１であり、第二時定数はＴ２である。図示されていないが、速度曲線Ｃｖ４の立ち下がり部分についても同様である。尚、前加減速後速度Ｖａと後加減速後速度Ｖｂとの夫々の速度曲線の立ち上がり部分及び立ち下がり部分に、傾き（加速度）Ａｍａｘで一定となる部分が現れる時、前加減速後速度の加加速度と後加減速後速度の加加速度との夫々の絶対値を、切替期間Ｇｃ（図４参照）で一致させることができる。故に、遅延時間Ｄ３を適用することにより、サイクルタイムを最短化できる。
【００４７】
ＣＰＵ４１は、指令速度ＶがＶｍａｘよりも小さく、且つ、Ｓ５５（図５参照）の処理により算出した下限速度Ｖ２以上の時（Ｖ２≦Ｖ＜Ｖｍａｘ）、次の式（５−１）（５−２）（５−３）により変更分配速度ｆ１（Ｖ）、第一変更時定数ｆ１（Ｔ１）、及び、第二変更時定数ｆ１（Ｔ２）を設定する。
ｆ１（Ｖ）＝Ｖ                  （５−１）
ｆ１（Ｔ１）＝Ｖ／Ａｍａｘ      （５−２）
ｆ１（Ｔ２）＝Ｔ２              （５−３）
つまり、Ｖ、Ｔ２は夫々ｆ１（Ｖ）、ｆ１（Ｔ２）となり変更されないのに対し、Ｔ１はｆ（Ｔ１）（＝Ｖ／Ａｍａｘ）に変更される。尚、図９（Ｂ）に示すように、Ｖは、加速度曲線Ｃａ５で囲まれた台形又は三角形の面積に対応する。このため、ｆ（Ｔ１）は、ＶをＡｍａｘで除算することにより算出される。
【００４８】
上記の理由は、図９（Ｂ）に示すように、指令速度Ｖに第一ＦＩＲフィルタ及び第二ＦＩＲフィルタを適用した時、第一時定数をＴ１からｆ１（Ｔ１）に変更することにより、速度曲線Ｃｖ５の立ち上がり部分に傾き（加速度）Ａｍａｘで一定となる部分を含めることができる為である。図示されていないが、速度曲線Ｃｖ５の立ち下がり部分についても同様である。つまり、ＣＰＵ４１は、変更分配速度ｆ１（Ｖ）（＝Ｖ）に第一ＦＩＲフィルタ及び第二ＦＩＲフィルタを適用した時、速度曲線Ｃｖ５に傾き（加速度）がＡｍａｘで一定となる部分が含まれるように、第一時定数をＴ１からｆ（Ｔ１）に変更する。該時、前加減速後速度の加加速度と後加減速後速度の加加速度との夫々の絶対値を、切替期間Ｇｃ（図４参照）で一致させることができる。故に、遅延時間Ｄ３を適用することにより、サイクルタイムを最短化できる。
【００４９】
ＣＰＵ４１は、指令速度ＶがＶ２よりも小さい時（Ｖ＜Ｖ２）、次の式（６−１）（６−２）により変更分配速度ｆ１（Ｖ）、第一変更時定数ｆ１（Ｔ１）、及び、第二変更時定数ｆ１（Ｔ２）を設定する。
ｆ１（Ｖ）＝Ｖ      （６−１）
ｆ１（Ｔ１）＝ｆ１（Ｔ２）＝√（（Ｖ×Ｔ２）／Ａｍａｘ）      （６−２）
つまり、Ｖはｆ１（Ｖ）となり変更されないのに対し、Ｔ１、Ｔ２は夫々、√（（Ｖ×Ｔ２）／Ａｍａｘ）に変更される。ｆ１（Ｔ１）、ｆ１（Ｔ２）は同値となる。尚、図９（Ｃ）に示すように、Ｖは、加速度曲線Ｃａ６で囲まれた三角形の面積に対応する。該三角形の高さは、加速度曲線Ｃａ６の立ち上がり部分及び立ち下がり部分の傾き（加加速度）（Ａｍａｘ／Ｔ２）に基づき、「（ｆ（Ｔ２）×Ａｍａｘ）／Ｔ２」で示す。故に、ｆ（Ｔ１）、ｆ（Ｔ２）は、「（Ｖ×Ｔ２）／Ａｍａｘ」の平方根で示される。
【００５０】
上記の理由は、図９（Ｃ）に示すように、指令速度Ｖに第一ＦＩＲフィルタ及び第二ＦＩＲフィルタを適用した時、第一時定数、第二時定数を夫々Ｔ１、Ｔ２からｆ１（Ｔ１）、ｆ１（Ｔ２）に変更することにより、加速度曲線Ｃａ６の立ち上がり部分に傾き（加加速度）「Ａｍａｘ／Ｔ２」で一定となる部分を含めることができる為である。図示されていないが、加速度曲線Ｃｖ６の立ち下がり部分についても同様である。つまり、ＣＰＵ４１は、変更分配速度ｆ１（Ｖ）（＝Ｖ）に第一ＦＩＲフィルタ及び第二ＦＩＲフィルタを適用した時、加速度曲線Ｃｖ６に傾き（加加速度）が「Ａｍａｘ／Ｔ２」で一定となる部分が含まれるように、第一時定数、第二時定数を夫々Ｔ１、Ｔ２からｆ１（Ｔ１）、ｆ１（Ｔ２）に変更する。該時、前加減速後速度の加加速度と後加減速後速度の加加速度との夫々の絶対値を、切替期間Ｇｃ（図４参照）で一致させることができる。故に、遅延時間Ｄ３を適用することにより、サイクルタイムを最短化できる。
【００５１】
図８に示すように、ＣＰＵ４１は、Ｓ１３（図５参照）の処理により取得した指令に基づく移動距離Ｌの値に応じて、変更分配速度ｆ２（Ｖ）、第一変更時定数ｆ２（Ｔ１）、及び、第二変更時定数ｆ２（Ｔ２）を特定する（Ｓ７９）。詳細は次の通りである。
【００５２】
ＣＰＵ４１は、移動距離Ｌが、Ｓ５３（図６参照）の処理により算出した基準移動距離Ｌ１よりも大きい時（Ｌ１＜Ｌ）、次の式（７−１）（７−２）（７−３）により変更分配速度ｆ２（Ｖ）、第一変更時定数ｆ２（Ｔ１）、及び、第二変更時定数ｆ２（Ｔ２）を設定する。
ｆ２（Ｖ）＝Ｖ          （７−１）
ｆ２（Ｔ１）＝Ｔ１      （７−２）
ｆ２（Ｔ２）＝Ｔ２      （７−３）
つまり、Ｖ、Ｔ１、Ｔ２は夫々ｆ２（Ｖ）、ｆ２（Ｔ１）、ｆ２（Ｔ２）となり、変更されない。
【００５３】
上記の理由は、次の通りである。図１０（Ａ）に示すように、移動距離Ｌは、速度曲線Ｃｖ７によって囲まれる部分の面積を示す。又、基準移動距離Ｌ１は、速度曲線Ｃｖ７において速度が一定で推移する部分の時間を０に短縮した曲線（図７（Ｂ）参照）によって囲まれる部分の面積を示す。つまり、移動距離Ｌが基準移動距離Ｌ１よりも大きい時、変更分配速度ｆ２（Ｖ）に第一ＦＩＲフィルタ及び第二ＦＩＲフィルタを適用した時に速度曲線Ｃｖ７の立ち上がり部分及び立ち下がり部分に傾き（加速度）Ａｍａｘで一定となる部分が現れる。該時の第一時定数はＴ１であり、第二時定数はＴ２である。尚、前指令の移動距離と後指令の移動距離が夫々上記条件を満たす時、前加減速後速度の加加速度と後加減速後速度の加加速度との夫々の絶対値を、切替期間Ｇｃ（図４参照）で一致させることができる。故に、遅延時間Ｄ３を適用することにより、サイクルタイムを最短化できる。
【００５４】
ＣＰＵ４１は、移動距離Ｌが、Ｓ５３（図６参照）の処理により算出した下限距離Ｌ２以上且つ基準移動距離Ｌ１よりも小さい時（Ｌ２≦Ｌ＜Ｌ）、次の式（８−１）（８−２）（８−３）（数１参照）により変更分配速度ｆ２（Ｖ）、第一変更時定数ｆ２（Ｔ１）、及び、第二変更時定数ｆ２（Ｔ２）を設定する。
【数１】
2018060242.tif 000003
つまり、Ｔ２はｆ２（Ｔ２）となり変更されないのに対し、Ｖ、Ｔ１は夫々変更される。
【００５５】
上記の理由は、次の通りである。図１０（Ｂ）に示すように、移動距離Ｌは、速度曲線Ｃｖ８によって囲まれる部分の面積を示す。又、下限距離Ｌ２は、加速度曲線Ｃａ８のうち加速度がＡｍａｘで推移する部分の時間を０に短縮した曲線（図７（Ｃ）参照）に対応する速度曲線によって囲まれる部分の面積を示す。移動距離Ｌが上記の条件を満たす時、変更分配速度ｆ２（Ｖ）に第一ＦＩＲフィルタ及び第二ＦＩＲフィルタを適用した時に、速度曲線Ｃｖ８の立ち上がり部分及び立ち下がり部分に傾き（加速度）がＡｍａｘで一定となる部分が現れる。つまり、ＣＰＵ４１は、変更分配速度ｆ２（Ｖ）に第一ＦＩＲフィルタ及び第二ＦＩＲフィルタを適用した時、速度曲線Ｃｖ８に傾き（加速度）がＡｍａｘで一定となる部分が含まれるように、速度及び第一時定数を、夫々Ｖ、Ｔ１からｆ２（Ｖ）、ｆ２（Ｔ１）に変更する。尚、前指令の移動距離と後指令の移動距離が夫々上記条件を満たす時、前加減速後速度の加加速度と後加減速後速度の加加速度との夫々の絶対値を、切替期間Ｇｃ（図４参照）で一致させることができる。故に、遅延時間Ｄ３を適用することにより、サイクルタイムを最短化できる。
【００５６】
ＣＰＵ４１は、移動距離ＬがＬ２よりも小さい時（Ｌ＜Ｌ２）、次の式（９−１）（９−２）（数２参照）により変更分配速度ｆ２（Ｖ）、第一変更時定数ｆ２（Ｔ１）、及び、第二変更時定数ｆ２（Ｔ２）を設定する。
【数２】
2018060242.tif 000004
【００５７】
上記の理由は、次の通りである。図９（Ｃ）に示すように、移動距離Ｌは、速度曲線Ｃｖ９によって囲まれる部分の面積を示す。つまり、移動距離Ｌが上記の条件を満たす時、変更分配速度ｆ２（Ｖ）に第一ＦＩＲフィルタ及び第二ＦＩＲフィルタを適用した時に、加速度曲線Ｃａ９の立ち上がり部分に傾き（加加速度）「Ａｍａｘ／ｆ２（Ｔ２）」で一定となる部分が現れる。つまり、ＣＰＵ４１は、変更分配速度ｆ２（Ｖ）に第一ＦＩＲフィルタ及び第二ＦＩＲフィルタを適用した時、加速度曲線Ｃａ９に傾き（加加速度）が「Ａｍａｘ／ｆ２（Ｔ２）」で一定となる部分が含まれるように、指令速度Ｖ、第一時定数、及び第二時定数を、夫々、Ｖ、Ｔ１、Ｔ２からｆ２（Ｖ）、ｆ２（Ｔ１）、ｆ２（Ｔ２）に変更する。尚、前指令の移動距離と後指令の移動距離が夫々上記条件を満たす時、前加減速後速度の加加速度と後加減速後速度の加加速度との夫々の絶対値を、切替期間Ｇｃ（図４参照）で一致させることができる。故に、遅延時間Ｄ３を適用することにより、サイクルタイムを最短化できる。
【００５８】
図８に示すように、ＣＰＵ４１は、ｆ１（Ｖ）、ｆ１（Ｔ１）、ｆ１（Ｔ２）（Ｓ７７参照）、ｆ２（Ｖ）、ｆ２（Ｔ１）、ｆ２（Ｔ２）（Ｓ７９参照）を設定した後、遅延時間Ｄ３の算出に用いる変更分配速度ｆ（Ｖ）、第一変更時定数ｆ（Ｔ１）、第二変更時定数ｆ（Ｔ２）を特定する（Ｓ８１）。ＣＰＵ４１は、ｆ１（Ｖ）の方がｆ２（Ｖ）よりも小さい時（ｆ１（Ｖ）＜ｆ２（Ｖ））、Ｓ７７の処理によって設定したｆ１（Ｖ）、ｆ１（Ｔ１）、ｆ１（Ｔ２）を夫々、遅延時間Ｄ３を算出する時に用いるｆ（Ｖ）、ｆ（Ｔ１）、ｆ（Ｔ２）として特定する。ＣＰＵ４１は、ｆ２（Ｖ）がｆ１（Ｖ）以下の時（ｆ２（Ｖ）≦ｆ１（Ｖ））、Ｓ７９の処理によって設定したｆ２（Ｖ）、ｆ２（Ｔ１）、ｆ２（Ｔ２）を夫々、遅延時間Ｄ３を算出する時に用いるｆ（Ｖ）、ｆ（Ｔ１）、ｆ（Ｔ２）として特定する。ＣＰＵ４１は第二算出処理を終了し、処理をメイン処理（図５参照）に戻す。尚、上記において小さい変更分配速度に対応するパラメータを用いる理由は、大きい変更分配速度に対応するパラメータを用いた場合、加速度曲線が崩れる可能性がある為である。
【００５９】
図５に示すように、ＣＰＵ４１は、第二算出処理（Ｓ１５）の終了後、前指令と後指令との両方がＺ軸方向に工具を移動する指令であるか判定する（Ｓ１９）。ＣＰＵ４１は、前指令と後指令との少なくとも一方がＺ軸以外の方向に工具を移動する指令である時（Ｓ１９：ＮＯ）、処理をＳ２７に進める。ＣＰＵ４１は、前指令と後指令との両方がＺ軸方向に工具を移動する指令である時（Ｓ１９：ＹＥＳ）、処理をＳ２１に進める。尚、上記判断の理由は、Ｚ軸に工具を移動する指令の全指令に対する割合が多い為である。ＣＰＵ４１は、前指令と後指令とで指令種別が相違するか判定する（Ｓ２１）。ＣＰＵ４１は、前指令と後指令とが何れも早送り指令か、又は、前指令と後指令とが何れも切削送り指令の時、前指令と後指令とで指令種別が一致すると判定する（Ｓ２１：ＮＯ）。該時、ＣＰＵ４１は処理をＳ２７に進める。ＣＰＵ４１は、前指令が早送り指令で後指令が切削送り指令か、又は、前指令が切削送り指令で後指令が早送り指令の時、前指令と後指令とで指令種別が相違すると判定する（Ｓ２１：ＹＥＳ）。ＣＰＵ４１は、処理をＳ２３に進める。尚、上記判断の理由は、指令種別が相違する場合、遅延時間Ｄ３は予め０に設定される為である。
【００６０】
ＣＰＵ４１は、前指令に基づきＳ１５の処理により算出したｆ（Ｔａ１）、ｆ（Ｔａ２）と、後指令に基づきＳ１５の処理により算出したｆ（Ｔｂ１）、ｆ（Ｔｂ２）を用い、式（１）によって遅延時間Ｄ３を算出する（Ｓ２３）。ＣＰＵ４１は、式（１）により算出した遅延時間Ｄ３が負の値の時、遅延時間Ｄ３を０に修正する。ＣＰＵ４１は、後述するＳ２７の処理による前指令の分配速度の算出が終了してから、遅延時間Ｄ３経過したか判定する（Ｓ２５）。ＣＰＵ４１は、前指令に基づく前指令の分配速度の算出が終了してから遅延時間Ｄ３経過していないと判定した時（Ｓ２５：ＮＯ）、処理をＳ２５に戻す。ＣＰＵ４１は、前指令に基づく前指令の分配速度の算出が終了してから遅延時間Ｄ３経過したと判定した時（Ｓ２５：ＹＥＳ）、処理をＳ２７に進める。
【００６１】
ＣＰＵ４１は、指令に基づき分配速度の算出を開始する（Ｓ２７）。該時の変更分配速度は、第二算出処理（Ｓ１５参照）により算出した変更分配速度ｆ（Ｖ）とされる。該時の第一時定数及び第二時定数は、夫々、第二算出処理により算出した第一変更時定数ｆ（Ｔ１）及び第二変更時定数ｆ（Ｔ２）と一致する。ＣＰＵ４１は同時に、算出した加減速後速度でモータ６０を回転させる為のパルス信号の出力を開始する。ＣＰＵ４１は、分配速度の算出が終了したと判定した時（Ｓ２９：ＹＥＳ）、処理をＳ１３に戻す。
【００６２】
＜本実施形態の主たる作用、効果＞
数値制御装置４０のＣＰＵ４１は、前指令に応じた前変更分配速度ｆ（Ｖａ）に基づき前加減速後速度を算出して出力し（Ｓ２７）、遅延時間Ｄ３分待機した後（Ｓ２５）、後指令に応じた後変更分配速度ｆ（Ｖｂ）に基づき後加減速後速度を算出して出力する（Ｓ２７）。ＣＰＵ４１は、第一前変更時定数ｆ（Ｔａ１）と第二前変更時定数ｆ（Ｔａ２）とを加算した値から、第一後変更時定数ｆ（Ｔｂ１）と第二後変更時定数ｆ（Ｔｂ２）とを加算した値を減算することによって、遅延時間Ｄ３（＝（Ｔａ１＋Ｔａ２）−（Ｔｂ１＋Ｔｂ２））を算出する（Ｓ２３）。該時、前指令に基づく工具の移動が停止する前に、後指令に基づく工具の移動が開始される（図４（Ｃ）参照）。故に、数値制御装置４０は、前指令及び後指令の夫々に対応する工具の移動の切替期間Ｇｃに動作が停止することを防止できる。
【００６３】
又、ＣＰＵ４１は、上記方法で遅延時間Ｄ３を算出することにより、例えば、切替期間Ｇｃにおいて工具の速度が後加減速後速度よりも小さくなることを抑制できる。故に、数値制御装置４０は、切替期間Ｇｃにおける工具の速度の減少を抑制できるので、切替期間Ｇｃを短縮できる。このため、数値制御装置４０は、前指令及び後指令に基づくモータ６０の回転が終了する迄に要する時間（サイクルタイム）を短縮できる。更に、ＣＰＵ４１は、遅延時間Ｄ３を算出する為の簡易な演算を行うことによって、サイクルタイムを容易に短縮できる。
【００６４】
ＣＰＵ４１は、指令速度ＶがＶｍａｘと一致する時（Ｖ＝Ｖｍａｘ）、式（４−１）〜（４−３）によりｆ１（Ｖ）（＝Ｖ）、ｆ１（Ｔ１）（＝Ｔ１）、ｆ１（Ｔ２）（＝Ｔ２）を設定する。該時、Ｖ、Ｔ１、Ｔ２は変更されない。ＣＰＵ４１は、指令速度ＶがＶｍａｘよりも小さく且つ下限速度Ｖ２以上の時（Ｖ２≦Ｖ＜Ｖｍａｘ）、式（５−１）〜（５−３）によりｆ１（Ｖ）（＝Ｖ）、ｆ１（Ｔ１）、ｆ１（Ｔ２）（＝Ｔ２）を設定する。該時、Ｖ、Ｔ２は変更されないのに対し、Ｔ１は異なる値に変更される。ＣＰＵ４１は、指令速度ＶがＶ２よりも小さい時（Ｖ＜Ｖ２）、式（６−１）（６−２）によりｆ１（Ｖ）（＝Ｖ）、ｆ１（Ｔ１）、ｆ１（Ｔ２）を設定する。該時、Ｖは変更されないのに対し、Ｔ１、Ｔ２は夫々変更される。ｆ１（Ｔ１）、ｆ１（Ｔ２）は同値となる。該時、前加減速後速度の加加速度と後加減速後速度の加加速度との夫々の絶対値を、切替期間Ｇｃで一致させることができる。故に、数値制御装置４０は、指令速度Ｖの値に関わらず、遅延時間Ｄ３の適用によりサイクルタイムを最短化できる。
【００６５】
ＣＰＵ４１は、移動距離Ｌが基準移動距離Ｌ１よりも大きい時（Ｌ１＜Ｌ）、式（７−１）−（７−３）により変更分配速度ｆ２（Ｖ）（＝Ｖ）、第一変更時定数ｆ２（Ｔ１）（＝Ｔ１）、第二変更時定数ｆ２（Ｔ２）（＝Ｔ２）を設定する。該時、Ｖ、Ｔ１、Ｔ２は変更されない。ＣＰＵ４１は、移動距離Ｌが、下限距離Ｌ２以上且つ基準移動距離Ｌ１よりも小さい時（Ｌ２≦Ｌ＜Ｌ）、式（８−１）〜（８−３）によりｆ２（Ｖ）、ｆ２（Ｔ１）、ｆ２（Ｔ２）（＝Ｔ２）を設定する。該時、Ｔ２は変更されないのに対し、Ｖ、Ｔ１は夫々変更される。ＣＰＵ４１は、移動距離ＬがＬ２よりも小さい時（Ｌ＜Ｌ２）、式（９−１）（９−２）によりｆ２（Ｖ）、ｆ２（Ｔ１）、ｆ２（Ｔ２）を設定する。該時、Ｖ、Ｔ１、Ｔ２は夫々変更される。ｆ２（Ｔ１）、ｆ２（Ｔ２）は同値となる。該時、前加減速後速度の加加速度と後加減速後速度の加加速度との夫々の絶対値を、切替期間Ｇｃで一致させることができる。故に、数値制御装置４０は、移動距離Ｌの値に関わらず、遅延時間Ｄ３の適用によりサイクルタイムを最短化できる。
【００６６】
ＣＰＵ４１は、ｆ１（Ｖ）の方がｆ２（Ｖ）よりも小さい時（ｆ１（Ｖ）＜ｆ２（Ｖ））、ｆ１（Ｖ）、ｆ１（Ｔ１）、ｆ１（Ｔ２）を夫々、遅延時間Ｄ３を算出する時に用いるｆ（Ｖ）、ｆ（Ｔ１）、ｆ（Ｔ２）として特定する（Ｓ８１）。ＣＰＵ４１は、ｆ２（Ｖ）がｆ１（Ｖ）以下の時（ｆ２（Ｖ）≦ｆ１（Ｖ））、ｆ２（Ｖ）、ｆ２（Ｔ１）、ｆ２（Ｔ２）を夫々、遅延時間Ｄ３を算出する時に用いるｆ（Ｖ）、ｆ（Ｔ１）、ｆ（Ｔ２）として特定する（Ｓ８１）。該時、数値制御装置４０は、適切な遅延時間Ｄ３を算出できる第一変更時定数ｆ（Ｔａ１）、ｆ（Ｔｂ１）及び第二変更時定数ｆ（Ｔａ２）、ｆ（Ｔｂ２）を、変更分配速度ｆ１（Ｖ）、ｆ２（Ｖ）の関係から選択できる。
【００６７】
＜変形例＞
本発明は上記実施形態に限定されず、種々の変更が可能である。前指令の速度Ｖａと後指令の速度Ｖｂとは同値でもよいし、前指令の速度Ｖａの方が後指令の速度Ｖｂより小さくてもよい。前指令及び後指令が何れも早送り指令である場合に、遅延時間Ｄ３を算出してもよい。前指令及び後指令が何れも切削送り指令である場合ついても同様である。ＣＰＵ４１は、Ｓ１９の処理を実行する時、前指令と後指令との両方がＸ軸方向又はＹ軸方向に工具を移動する指令であると判断した時、遅延時間Ｄ３を算出してもよい。
【００６８】
ＣＰＵ４１は、分配速度に移動平均フィルタを三回以上適用し、加減速後速度を算出してもよい。該時、三回目に移動平均フィルタ（以下、「第三ＦＩＲフィルタ」と称す。）を適用した時の時定数（以下、「第三時定数」）を、前分配速度と後分配速度とで同値としてもよい。
【００６９】
第二算出処理（図８参照）による変更分配速度ｆ（Ｖ）、第一変更時定数ｆ（Ｔ１）、第二変更時定数ｆ（Ｔ２）の設定方法は、上記実施形態に限らない。ＣＰＵ４１は、指令速度Ｖの値に基づきＳ７７の処理により設定したｆ（Ｖ）、ｆ（Ｔ１）、ｆ（Ｔ２）に基づき、遅延時間Ｄ３を算出してもよい。該時、Ｓ７９の処理は実行しなくてもよい。ＣＰＵ４１は、移動距離Ｌに基づきＳ７９の処理により設定したｆ（Ｖ）、ｆ（Ｔ１）、ｆ（Ｔ２）に基づき、遅延時間Ｄ３を算出してもよい。該時、Ｓ７７の処理は実行しなくてもよい。ＣＰＵ４１は、ｆ１（Ｖ）の方がｆ２（Ｖ）よりも小さい時（ｆ１（Ｖ）＜ｆ２（Ｖ））、ｆ２（Ｖ）、ｆ２（Ｔ１）、ｆ２（Ｔ２）を夫々、遅延時間Ｄ３を算出する時に用いるｆ（Ｖ）、ｆ（Ｔ１）、ｆ（Ｔ２）として特定してもよい。ＣＰＵ４１は、ｆ２（Ｖ）がｆ１（Ｖ）以下の時（ｆ２（Ｖ）≦ｆ１（Ｖ））、ｆ１（Ｖ）、ｆ１（Ｔ１）、ｆ１（Ｔ２）を夫々、遅延時間Ｄ３を算出する時に用いるｆ（Ｖ）、ｆ（Ｔ１）、ｆ（Ｔ２）として特定してもよい。
【００７０】
＜その他＞
Ｓ２７の処理を行うＣＰＵ４１は本発明の「分配手段」の一例である。Ｓ１５、Ｓ２３の処理を行うＣＰＵ４１は本発明の「決定手段」の一例である。Ｓ１５の処理を行うＣＰＵ４１は本発明の「特定手段」の一例である。Ｓ２３の処理を行うＣＰＵ４１は本発明の「算出手段」の一例である。Ｓ７７の処理を行うＣＰＵ４１は本発明の「第一特定手段」「第三特定手段」の一例である。Ｓ７９の処理を行うＣＰＵ４１は本発明の「第二特定手段」「第三特定手段」の一例である。
【符号の説明】
【００７１】
１        ：工作機械
４１      ：ＣＰＵ
５０      ：駆動回路
６０      ：モータ
【図１】
2018060242.tif 000005
【図２】
2018060242.tif 000006
【図３】
2018060242.tif 000007
【図４】
2018060242.tif 000008
【図５】
2018060242.tif 000009
【図６】
2018060242.tif 000010
【図７】
2018060242.tif 000011
【図８】
2018060242.tif 000012
【図９】
2018060242.tif 000013
【図１０】
2018060242.tif 000014