"主軸回転数を制御する機能を有した数値制御装置を制御する方法において、1ブロック以上の先読み解析を行い、この先読み解析された結果に基づいて、主軸回転指令がされてから切削送りが開始されるまでの実行時間、及び主軸起動から主軸回転指令による主軸回転数に到達するまでの主軸加速時間を得、この得られた前記実行時間及び主軸加速時間に基づいて主軸の起動タイミングを制御することを特徴とする数値制御方法。主軸回転数を制御する機能を有した数値制御装置において、1ブロック以上の先読み解析を行うプログラム先読解析手段と、このプログラム先読解析手段にて先読み解析された結果に基づいて、主軸回転指令がされてから切削送りが開始されるまでの実行時間、及び主軸起動から主軸回転指令による主軸回転数に到達するまでの主軸加速時間を得る手段と、この手段にて得られた前記実行時間及び主軸加速時間に基づいて主軸の起動タイミングを制御する主軸起動タイミング計算手段とを備えてなる数値制御装置。前記主軸起動タイミング計算手段は、主軸回転指令から、前記実行時間より前記主軸加速時間を減算した時間が経過したとき、主軸を起動することを特徴とする請求の範囲第2項に記載の数値制御装置。前記実行時間及び主軸加速時間として、ソフトウエアのサンプリング回数に変換したものを用いることを特徴とする請求の範囲第2項に記載の数値制御装置。前記主軸加速時間は、主軸の加速曲線または減速曲線を複数本の直線で近似し、この直線の式に基づいて推定することを特徴とする請求の範囲第2項に記載の数値制御装置。主軸回転数を制御する機能を有した数値制御装置を制御する方法において、1ブロック以上の先読み解析を行い、この先読み解析された結果が主軸回転指令中で且つ非切削ブロックがある場合、前記先読み解析された結果に基づいてその非切削ブロックから切削送りが開始されるまでの主軸停止時間及び主軸の加減速時間を得、この得られた前記主軸停止時間と前記主軸の加減速時間とを比較し、前者が後者より長いとき、主軸回転指令中であっても主軸を停止させることを特徴とする数値制御方法。主軸回転数を制御する機能を有した数値制御装置において、1ブロック以上の先読み解析を行うプログラム先読解析手段と、このプログラム先読解析手段にて先読み解析された結果が主軸回転指令中で且つ非切削ブロックがある場合、前記先読み解析された結果に基づいて、その非切削ブロックから切削送りが開始されるまでの主軸停止時間及び主軸の加減速時間を得る手段と、この手段にて得られた前記主軸停止時間と前記主軸の加減速時間とを比較し、前者が後者より長いとき、主軸回転指令中であっても主軸を停止させる主軸停止タイミング計算手段とを備えてなる数値制御装置。前記主軸の加減速時間は、主軸の加速曲線または減速曲線を複数本の直線で近似し、この直線の式に基づいて推定することを特徴とする請求の範囲第7項に記載の数値制御装置。ところが、上述した従来の技術では、加工プログラム中に周速一定指令G96がされると、直ちに周速一定制御を開始し、実際に周速を一定にすべき切削送りブロック以外のときN004、N005ブロック等も、周速一定演算を行っていた。そのため不必要に主軸を加減速制御し、電力を消費する結果となっていた。また、例えば所定間隔を介して位置する複数の穴の穴明け加工を行う場合、例えば次のような加工プログラムを用いて行われる。なお後述の説明のため、この加工プログラムを、加工プログラムBと称することにしておく。ところが、上述のような、所定間隔を介して位置する複数の穴の穴明け加工を行う加工プログラムが与えられた場合、従来の数値制御装置は、主軸回転指令M3がされると直ちに指令された回転数S1500で回転させ、また、切削と切削の合間にある位置決め移動時にも主軸を回転させたままの状態とする数値制御を行う。このため、切削加工の前には主軸を予め回転させておく必要があるが、加工プログラム中に主軸回転指令M3がされても、直ちに主軸を回転させなくてもよい場合があり、この場合、消費電力に無駄が生じていた。また、切削と切削の合間にある位置決め移動時における主軸の回転は、加工に寄与するものでなく、消費電力に無駄が生じていた。この発明は上記課題を解決するためになされたもので、加工プログラム中に周速一定指令が与えられた場合において、無駄な消費電力を節約できる数値制御方法及びその装置を提供することを目的とする。またこの発明は、加工プログラム中に主軸回転指令が与えられた場合において、無駄な消費電力を節約できる数値制御方法及びその装置を提供することを目的とする。またこの発明におけるその他の目的は、後述の発明を実施するための最良の形態の欄に記載の事項より明らかになるであろう。上述した課題を解決し、目的を達成するために、本発明は、主軸回転数を制御する機能を有した数値制御装置を制御する方法において、1ブロック以上の先読み解析を行い、この先読み解析された結果に基づいて、主軸回転指令がされてから切削送りが開始されるまでの実行時間、及び主軸起動から主軸回転指令による主軸回転数に到達するまでの主軸加速時間を得、この得られた前記実行時間及び主軸加速時間に基づいて主軸の起動タイミングを制御することを特徴とする。本発明によれば、主軸回転指令がされてから所定時間経過するまで主軸を停止させておくように主軸を制御するので、無駄な消費電力を節約できるというという効果を奏する。以下に、本発明にかかる数値制御方法及びその装置の実施の形態を図面に基づいて詳細に説明する。なお、この実施の形態によりこの発明が限定されるものではない。実施の形態1.本願発明の実施の形態1について第1図~第6図を用いて説明する。なお、この実施の形態1は、例えば上記加工プログラムAのような周速一定制御指令が与えられた場合において無駄な消費電力を抑制するための実施の形態を示し、第1図はこの発明の実施の形態1に係る数値制御装置の構成を示すブロック図、第2図はこの発明の実施の形態1に係る先読みバッファの一構成例を示す図、第3図はこの発明の実施の形態1に係るプログラム先読解析手段の処理手順を示すフローチャート、第4図はこの発明の実施の形態1に係る周速一定制御機能起動タイミング計算手段の処理手順を示すフローチャート、第5図はこの発明の実施の形態1に係る主軸加速時間推定手段に関する説明図、第6図はこの発明の実施の形態1に係る周速一定制御時の基準軸の動きと主軸回転の動きを示した説明図である。第1図において、1はプログラム先読解析手段であり、現在実行中のブロックから1ブロック以上先のブロックを加工プログラムから先読み及び解析し、先読みバッファ2に解析結果を格納する。先読みバッファ2には各ブロックのモーダル情報、各軸の移動量、主軸指令回転数、送り速度、周速一定制御機能起動タイミング情報などの情報が格納される。3はある一定のサンプリング周期例えば10ms毎に起動される補間手段であり、現在実行すべきブロック情報を先読みバッファ2から読み出して補間処理を実行する。補間した結果は加減速手段4により加減速処理され、位置データ出力手段5を経てサーボアンプに出力される。なお、補間手段3、加減速手段4及び位置データ出力手段5は従来から使用されている手段である。6は周速一定制御機能起動タイミング計算手段であり、先読みバッファ2に格納され補間手段3により読み出された周速一定指令がされてから切削開始までの実行時間、切削開始時点の主軸回転数、主軸加速時間等から、周速一定演算手段7を起動させるタイミングを判定し、周速一定演算手段7を起動させるとき、その起動信号を出力する。7は周速一定演算手段であり、切削送り中の基準軸の座標値に応じた主軸回転数を演算し周速を一定に保つ。8は速度データ出力手段であり、主軸アンプに対し主軸回転数を指令する。9は主軸加速時間推定手段であり、主軸が指令回転数まで加速に要する時間を推定する。第2図は第1図における先読みバッファ2の一構成例を示したものである。先読みバッファ2は1ブロック毎に情報が作成され、Gコードのモーダル情報などを格納する領域、各軸の移動指令を格納する領域、M指令やS指令などの補助主軸機能指令コードを格納する領域、周速一定指令がされてから切削開始までの実行時間を格納する領域、切削開始時点での主軸回転数を格納する領域などで構成される。第2図ではN004G96S200からN007G01Z-90.F2000までの解析が終了しており、現在実行中のブロックは先読みバッファの先頭、即ちN004G96S200となる。第1図に示すプログラム先読解析手段1は加工プログラムから1ブロックずつ読み出し解析を行い、周速一定開始指令G96を読み込むと、G01などの切削ブロックが現れるまで加工プログラムの先読みを行い、ブロックの解析を行う。切削ブロックまで先読解析を完了した時点で、現在のブロック周速一定開始指令G96のブロックから切削ブロック開始までの実行時間および切削開始位置における主軸回転数を算出し、その時間と回転数を先読みバッファ2のG96ブロック領域の主軸制御情報記憶領域切削開始までの時間を格納する領域、切削開始時点での主軸回転数を格納する領域に格納する。次にプログラム先読解析手段1の詳細な動作について第3図を用いて説明する。まず、ステップ1で加工プログラムから1ブロックを読み込み、ステップ2で読み込んだブロックを解析する。ステップ3で解析したブロックに周速一定指令GコードG96が含まれているか否かを判定し、含まれていなければ解析終了となる。G96が含まれていればステップ4に進み、後に算出する切削開始までの時間データを初期化する。ステップ5で加工プログラムに次ブロックがあるかどうか判定し、次ブロックがなければ解析終了となる。次ブロックがあればステップ6に進んで次ブロックを読み込み、ステップ7で読み込んだブロックを解析する。ステップ7で解析したブロックに周速一定指令キャンセルGコードG97があれば解析終了となる。G97でなければステップ9で切削送りかどうか判定し、切削送りであればステップ11に進み、ステップ11では前記1式に基づいて切削開始時点での基準軸座標から指令した周速となる主軸回転数を演算し、先読みバッファ2の切削開始時点の主軸回転数を格納する領域に格納する。ステップ9で切削送りでなければステップ10でそのブロックの実行時間を算出し、先読みバッファ2の切削開始までの時間を格納する領域に記憶しておく。なお、ブロックの実行時間は次の手順で求める。1早送り指令ブロックのみ場合、そのブロックで最も移動距離の長い軸の移動時間を算出し、加減速時間を加算する。例えば早送り速度60m/min、加減速時定数200ms、移動距離500mmの場合の実行時間は、500[mm]/60×1000/60×1000[mm/msec]200[msec]=700[msec]となる。2補助機能のみの場合、補助機能実行時間をあらかじめパラメータとして設定しておき、その時間をブロックの実行時間とする。即ち、パラメータメモリの所定個所に、M03:Tm1実行時間、M04:Tm2と予め記憶させておき、例えばM03を解析したとき、Tm1を読み出してそのTm1を実行時間とする。3早送り指令と補助機能指令の両方がある場合、早送り実行時間と補助機能実行時間とを比較し、時間の長い方をそのブロックの実行時間とする。4ドウェル指令G04の場合、ドウェル時間をそのブロックの実行時間とする。5早送り指令、補助機能指令共にない場合、例えばGコードのモーダル設定のみの場合である。周速一定制御機能起動タイミング計算手段6の処理周期、例えば10msecをそのブロックの実行時間とする。このようにブロック実行時間を算出した後、ステップ5から繰り返し実行し、切削送り指令が現れるまでの各ブロックの実行時間を積算していく。即ち、ブロック実行時間の積算時間は、G96指令されてから実際に切削を開始するまでの時間となる。なお、ブロック実行時間と主軸回転数は、先読みバッファ2中のG96ブロックにおける切削開始までの時間を格納する領域及び切削開始時点の主軸回転数を格納する領域に格納される。次に周速一定制御機能起動タイミング計算手段6の詳細な動作について第4図を用いて説明する。なお、本処理が最初に起動されるまでの間に、本図に示されるAブロック実行時間は初期化0クリアされており、また、Aブロック実行時間はこの発明による数値制御装置内のメモリ図示せずに記憶される。まず、ステップ41で第一回目の処理か否かを判定する。ここではAブロック実行時間が0であるとき第一回目の処理とし、0でないとき第二回目以降の処理と判定している。第一回目の処理であれば、ステップ42で先読みバッファ2中の現在実行中のブロック情報に格納されたブロック実行時間を読み出し、Aブロック実行時間として記憶する。なお、ここでいうブロック実行時間とは、第2図に示す切削開始までの時間300msを指す。次にステップ43でTa=Aブロック実行時間-主軸加速時間周速一定指令前の主軸回転数から切削ブロック開始時点に必要とされる主軸回転数に達するまでの主軸到達時間を求める。なお、主軸の加速時間の推定方法については後述する。次にステップ44でTaが0以下か否か判定し、否であれば、ステップ45でAブロック実行時間から補間時間を引いたものを、新しいAブロック実行時間として上記メモリに記憶し、本処理を終了する。第二回目以降はステップ45にて記憶したAブロック実行時間のデータが上記メモリに格納されておりAブロック実行時間が0でないので、ステップ41にて第二回目以降の処理と判断され、このデータを元にステップ43以降を実行する。ステップ44でTaが0以下であれば、ステップ46で、切削送りブロックの座標値に合わせて周速が一定となるような主軸指令回転数に変更する周速一定演算手段7を起動する。主軸はある加速時間をもって指令速度に到達するので、切削送りブロック開始時点でちょうど指令した主軸回転数に到達することになる。最後にステップ47でAブロック実行時間を0クリアし、本処理を終了する。なお、周速一定制御機能起動タイミング計算手段6は所定のサンプリング周期で周期的に処理され、上記の処理を繰り返す。また、本実施の形態1ではプログラム先読解析手段1でブロックの実行時間例えば第2図の場合300msを算出するようにしたが、この実行時間の代わりに、実行時間を周速一定制御機能起動タイミング計算手段6のサンプリング周期で除した値、即ち周速一定制御機能起動タイミング計算手段6のサンプリング回数としても良い。例えば周速一定制御機能起動タイミング計算手段6のサンプリング周期を10msとすると、サンプリング回数は300/10=30回となる。更に第4図に示されている、主軸加速時間、Aブロック実行時間、補間時間など時間を示すデータをすべて周速一定制御機能起動タイミング計算手段6のサンプリング回数に変換して第4図に置き換えると、例えばステップ45で補間時間を減ずるとは、補間時間が10msのため1だけ減ずることになり、またサンプリング回数変換以降の全ての計算を端数のない整数による減算処理だけとなり、よって処理が簡単になりソフトウエア処理する上で扱いやすくなる。なお、前記サンプリング回数変換時に端数が生じる場合があるが、この場合には切上げ、または切下げ処理して端数のない整数にしておく。次に主軸加速時間推定手段9について第5図を用いて説明する。主軸の最高回転数をSmaxとし、Smaxまで加速するのにTmaxだけ時間がかかるとする。主軸指令回転数がSmaxより小さい時は、一般にSmaxまでの加速曲線に近い加速曲線を描いて指令回転数に到達する。Smaxまで加速する時の加速曲線は予め分かっているので、任意の指令回転数に到達するまでの加速時間を推定することができる。しかし、加速曲線を数式で表現すると複雑になるので、実際に任意の指令回転数までの加速時間を求めることは難しい。そこで、加速曲線を1乃至2以上の直線で近似することで加速時間を求める。まず、主軸最高回転数までの加速波形を測定する。測定手段は問わないが、ここではシンクロスコープなどを用いて、速度波形を記録紙に記録することにする。次に記録紙上で加速曲線に沿って誤差が適当な値になるよう直線を引く。第5図aはSmaxまでの加速曲線を3つの直線a,b,cで近似した一例である。これらの直線はSmaxまでの加速曲線に対し2点を取り、適当な許容値に収まるように結んだものである。近似誤差をより小さくしたければより多くの点を曲線上に取れば良い。この例では指令速度0から主軸回転数S1までの加速時間がT1、0から主軸回転数S2までの加速時間がT2、0から主軸回転数Smaxまでの加速時間がTmaxとなる。以上のように求めた主軸回転数と加速時間を本数値制御装置内のメモリに第5図bのように設定しておく。このデータは本数値制御装置内に持つ不揮発性RAM図示せずに記憶する。次に各区分の直線の方程式を求め、指令速度に応じた各加速時間を算出すると、0<指令速度≦S1の時の加速時間は、加速時間T=T1/S1×指令速度で求められ、S1<指令速度≦S2の時は、加速時間T=S2×T1-S1×T2T2-T1×指令速度/S2-S1で求められ、S2<指令速度≦Smaxの時は、加速時間T=Smax×T2-S2×TmaxTmax-T2×指令速度/Smax-S2で求められる。従って、指令された主軸回転数が上記の区分のどれに属するかをまず判定し、次に上式に指令回転数を当てはめて計算することにより、主軸回転数に応じた加速時間を容易に計算することができる。なお、主軸加速時間周速一定指令前の主軸回転数から周速一定指令による主軸回転数に到達するまでの主軸到達時間の計算のため、主軸の加速曲線の加速時間を用いたが、減速曲線の減速時間を用いてもよい。第6図は、実施の形態1における周速一定制御時の基準軸の動きと主軸回転の動きを示した説明図である。従来は切削点までのアプローチ動作である早送りブロックに対しても周速が一定になるように主軸回転数が制御されていたが、本実施の形態1では主軸回転が必要なところで指令した周速度に到達するように無駄なく主軸回転を制御することができる。よって、加工に寄与しない位置決め等のブロックにおいて、主軸の加減速制御を行わないので、無駄に電力を消費することがなくなる。なお、実施の形態1において、周速一定指令がされてから切削送りが開始されるまでの実行時間の計算を、プログラム先読解析手段1にて行うものについて説明したが、プログラム先読解析手段1以外の手段で行っでも初期の目的は達成できる。また、周速一定指令前の主軸回転数から周速一定指令による主軸回転数に到達するまでの主軸到達時間の計算を簡単にするため、主軸の加速曲線を複数本の直線で近似し、この直線の式に基づいて主軸到達時間を求めたが、減速曲線を複数本の直線で近似し、この直線の式に基づいて主軸到達時間を求めても、初期の目的は達成できる。また、実施の形態1においては、周速一定制御による消費電力の節減を最大にするため、周速一定指令から、周速一定指令がされてから切削送りが開始されるまでの実行時間より周速一定指令前の主軸回転数から周速一定指令による切削開始時点の主軸回転数に到達するまでの主軸到達時間を減算した時間が経過したとき、前記周速一定制御機能を起動するもの、即ち、N006ブロックの途中より周速一定制御機能を起動するものについて説明したが、切削開始時点より2つ前のブロックN005ブロックより周速一定制御機能を起動しても初期の目的は達成できる。実施の形態2.次に本願発明の実施の形態2について第7図~第11図を用いて説明する。なお、この実施の形態2は、上記加工プログラムBのような加工プログラムが与えられた場合において、主軸起動指令時及び切削と切削との合間における主軸の回転に伴う無駄な消費電力を抑制するための実施の形態を示し、第7図はこの発明の実施の形態2に係る数値制御装置の構成を示すブロック図、第8図はこの発明の実施の形態2に係るプログラム先読解析手段の処理手順を示すフローチャート、第9図は主軸起動タイミング計算手段の処理手順を示すフローチャート、第10図はこの発明の実施の形態2に係る主軸停止タイミング計算手段の処理手順を示すフローチャート、第11図はこの発明の実施の形態2に係る主軸回転数の変化を示す説明図である。第7図において、61はプログラム先読解析手段であり、現在実行中のブロックから1ブロック以上先のブロックを加工プログラムから先読み及び解析し、先読みバッファ2に解析結果を格納する。先読みバッファ2には各ブロックのモーダル情報、各軸の移動量、主軸指令回転数、送り速度、主軸起動タイミング情報などの情報が格納される。3はある一定のサンプリング周期例えば10ms毎に処理される補間手段であり、現在すべきブロック情報を先読みバッファ2から読み出し補間処理を実行する。なお、補間した結果は加減速手段4により加減速され、位置データ出力手段5を経てサーボアンプに出力される。また、補間手段3、加減速手段4及び位置データ出力手段5は従来から使用されている手段である。63は主軸起動タイミング計算手段であり、先読みバッファ2に格納され補間手段3により読み出された主軸回転指令から切削開始までの時間、切削開始時点の主軸回転数、主軸加速時間等から、主軸を起動させるタイミングを判定し、主軸を起動させるとき、その起動信号を出力する。8は速度データ出力手段であり、主軸アンプに対し主軸回転数を指令する。64は主軸が指令回転数まで加速に要する時間及び減速に要する時間を推定する主軸加減速時間推定手段であり、主軸加減速時間の計算を簡単化するため、実施の形態1で説明した主軸加速時間推定手段9と同様に、主軸の加速曲線を複数本の直線で近似し、この直線の式に基づいて主軸加速時間を求め、また主軸の減速曲線を複数本の直線で近似し、この直線の式に基づいて主軸減速時間を求めている。なお、主軸の加速曲線を複数本の直線で近似し、この直線の式に基づいて主軸加速時間を求め、主軸加速時間主軸加速時間=加減速時間と計算したり、主軸の加減速曲線の式に基づいて加減速時間を推定したりされる場合もある。62は主軸停止タイミング計算手段であり、主軸回転中に主軸を停止するか否かを判定する。主軸起動タイミング計算手段63と主軸停止タイミング計算手段62の起動条件として、主軸停止中であれば主軸起動タイミング計算手段63を、主軸回転中であれば主軸停止タイミング計算手段62を起動する。次にプログラム先読解析手段61の詳細な動作について第8図を用いて説明する。まず、ステップ71で加工プログラムから1ブロックを読み込み、ステップ72で読み込んだブロックを解析する。ステップ73で現在のブロックが主軸回転中か否か判定し、回転中であればステップ82、回転中でなければステップ74に進む。なお、主軸回転中か否かはステップ75でセットしステップ91およびステップ92でクリアする主軸回転中情報を基に判断する。つまり、主軸回転中情報がセットされていれば主軸回転中、主軸回転中情報がクリアされていれば主軸停止中と判定する。ステップ74では解析したブロックに主軸回転指令が含まれているか否かを判定し、含まれていなければ解析終了となる。主軸回転が含まれていればステップ75に進み、主軸回転中情報をセットする。主軸回転指令は一般的にはM3で正転、M4で逆転であり、前述の加工プログラムBではN0403ブロックのM3が主軸回転指令となる。ステップ76では後に算出する切削開始までの時間データを初期化する。ステップ77で加工プログラムに次ブロックがあるかどうか判定し、次ブロックがなければ解析終了となる。次ブロックがあればステップ78でステップ71と同様に次ブロックを読み込み、ステップ79でステップ72と同様に1ブロック解析を行う。ステップ80で解析したブロックに主軸停止指令があるかどうか判定し、主軸停止指令があればステップ91で上記主軸回転中情報をクリアして解析終了となる。主軸停止指令は一般的にはM5が使用され、前述の加工プログラムBではN0412ブロックのM5がそれに当たる。主軸停止指令がなければステップ81で切削送りかどうか判定し、切削送りでなければステップ82に進む。切削送りであれば解析終了となる。ステップ82ではそのブロックの実行時間を算出し、先読みバッファ2に記憶しておく。以降ステップ77からステップ82を繰り返し実行しブロック実行時間を累積していく。前述の加工プログラムBではN0403で主軸回転指令されてから、N0406で切削開始する前、つまりN0405の位置決め時間までが、ブロック実行時間として格納されることになる。一方、ステップ83では解析したブロックが早送りなどの非切削ブロックであるかどうか判定し、非切削ブロックでなければ解析終了となる。これは主軸回転中で切削ブロックが続いているので主軸を回転させたままとなることを示している。解析したブロックが非切削ブロックであった場合はステップ84で主軸停止時間を初期化する。前述の加工プログラムBではN0407などがこれに該当する。ステップ85で次ブロックがあるか否か判定し、次ブロックがあればステップ86へ進み、なければ解析終了となる。ステップ86およびステップ87ではステップ71およびステップ72と同様に1ブロック読み込みおよび1ブロック解析処理を行う。ステップ88で主軸停止指令一般的にはM5が含まれているかどうか判定し、主軸停止指令が含まれていればステップ92で主軸回転中情報をクリアし、さらにステップ93で主軸停止時間をクリアして解析終了する。主軸停止指令が含まれていなければステップ89に進む。ステップ89では解析したブロックが切削送りであるか否かを判定し、含まれていなければステップ90に進み、含まれていれば解析終了となる。ステップ90ではそのブロックの実行時間、主軸停止時間をブロック実行時間として先読みバッファ2に記憶しておく。以降ステップ85からステップ90を繰り返し実行し主軸停止時間を蓄積していく。前述の加工プログラムBではN0407,N0408,N0409ブロックの実行時間が主軸停止時間として格納される。つまり主軸停止時間は、主軸回転中の切削ブロックと切削ブロックに挟まれた早送りなどの切削以外のブロックの実行時間となる。次に主軸起動タイミング計算手段63の詳細な動作について第9図を用いて説明する。なお、本処理が最初に起動されるまでの間に、本図に示されるAブロック実行時間は初期化0クリアされており、また、Aブロック実行時間はこの発明による数値制御装置内のメモリ図示せずに記憶される。まず、ステップ41で第一回目の処理か否かを判定する。ここではAブロック実行時間が0であるとき第一回目の処理とし、0でないとき第二回目以降の処理と判定している。第一回目の処理であれば、ステップ42で先読みバッファ2中の現在実行中のブロック情報に格納されたブロック実行時間を読み出し、Aブロック実行時間として記憶する。なお、ここでいうブロック実行時間とは、プログラム先読解析手段61にて第8図のステップ82にて算出累積されたブロック実行時間を指す。次にステップ43でTa=Aブロック実行時間-主軸加速時間主軸起動から主軸回転指令による主軸回転数に達するまでの加速時間を求める。なお、主軸の加速時間は、主軸加減速時間推定手段64にて実施の形態1で説明した方法と同様の方法で推定されている。次にステップ44でTaが0以下か否か判定し、否であれば、ステップ45でAブロック実行時間から補間時間を引いたものを、新しいAブロック実行時間として上記メモリに記憶し、ステップ41に戻る。第二回目以降はステップ45にて記憶したAブロック実行時間のデータが上記メモリに格納されておりAブロック実行時間が0でないので、ステップ41にて第二回目以降の処理と判断され、このデータを元にステップ43以降を実行する。ステップ44でTaが0以下であれば、ステップ46Aで、速度データ出力手段8を起動し、主軸を起動する。主軸はある加速時間をもって指令速度に到達するので、切削送りブロック開始時点でちょうど指令した主軸回転数に到達することになる。最後にステップ47でAブロック実行時間を0クリアし、本処理を終了する。主軸起動タイミング計算手段63はあるサンプリング周期で周期的に処理され、上記の処理を繰り返す。なお、本実施の形態2ではプログラム先読解析手段61でブロックの実行時間を算出するようにしたが、この実施の形態においても実施の形態1と同様にこの実行時間の代わりに、実行時間を主軸起動タイミング計算手段63のサンプリング周期で除した値、即ち主軸起動タイミング計算手段63のサンプリング回数としても良い。例えば実行時間を300ms、主軸起動タイミング計算手段63のサンプリング周期を10msとすると、サンプリング回数は300/10=30回となる。更に第9図に示されている、主軸加速時間、Aブロック実行時間、補間時間など時間を示すデータをすべて主軸起動タイミング計算手段63のサンプリング回数に変換して第9図に置き換えると、例えばステップ45で補間時間を減ずるとは、補間時間が10msのため1だけ減ずることになり、またサンプリング回数変換以降の全ての計算を端数のない整数による減算処理だけとなり、よって処理が簡単になりソフトウエア処理する上で扱いやすくなる。また、前記サンプリング回数変換時に端数が生じる場合があるが、この場合には切上げ、または切下げ処理して端数のない整数にしておく。次に主軸停止タイミング計算手段62の詳細な動作について第10図を用いて説明する。まずステップ801で現在実行中のブロックに主軸停止命令があるかどうか判定する。主軸停止命令があればステップ806で主軸を停止させて処理を終了する。主軸停止命令がなければステップ802で現在実行中のブロックが非切削ブロックか否かを判定し、非切削ブロックでない、即ち切削ブロックであればそのまま処理を終了し主軸を回転させたままとする。非切削ブロックであればステップ803に進み、主軸停止時間データがあるかどうか判定する。主軸停止時間とは第8図のステップ90で計算された時間であり、主軸回転中に位置決め等で切削送りが一時的に途切れる場合にその途切れる時間が格納されている。主軸停止時間データはない場合は、切削送りが連続しているか、主軸が回転していないことを示し、主軸停止制御の必要がない。そのためステップ803で主軸停止時間データがない場合つまり主軸停止時間が0の時はそのまま何もせず本処理を終了する。ステップ803で主軸停止時間データが格納されている場合はステップ804に進む。ステップ804では主軸停止時間と主軸加減速時間推定手段64で演算された主軸加減速時間=主軸加速時間主軸減速時間とを比較し、主軸停止時間の方が主軸加速時間よりも長ければステップ805で主軸を停止させる。さらにステップ806では第8図のステップ75で記憶した主軸回転中情報をクリアして本処理を終了する。ステップ804で主軸停止時間が主軸加減速時間以下であると判定した場合は主軸を停止させずに本処理を終了する。なお、第10図においても、主軸停止時間、主軸加減速時間の代わりに、主軸停止時間、主軸加減速時間を主軸停止タイミング計算手段62のサンプリング周期で除した値、即ち主軸停止タイミング計算手段62のサンプリング回数を用いてもよい。第11図は前述のように主軸回転数を制御した場合の主軸回転数の変化を示した説明図である。この図から明らかなように、従来は破線で示すように主軸回転指令がなされてから主軸停止指令がなされるまで主軸は回転したままであった。しかしこの実施の形態2により、主軸回転指令がなされてから実際に主軸が起動されるタイミングは、ちょうど切削が開始される時に指令速度に到達するように制御され、また、主軸回転中に切削指令が途切れる場合は主軸回転を一時的に休止し、次回切削が開始されるタイミングで再び主軸が指令速度に到達するように制御されるようになる。よって、加工に寄与しない位置決め等のブロックにおいて、主軸の回転を行わないので、無駄に電力を消費することがなくなる。なお、実施の形態2において、主軸回転指令がされてから切削送りが開始されるまでの実行時間の計算を、プログラム先読解析手段61にて行うものについて説明したが、プログラム先読解析手段61以外の手段で行っても初期の目的は達成できる。また、実施の形態2においては、主軸回転指令による消費電力の節減を最大にするため、主軸回転指令から、主軸回転指令がされてから切削送りが開始されるまでの実行時間より主軸起動から主軸回転指令による主軸回転数に到達するまでの主軸加速時間を減算した時間が経過したとき、主軸を起動するものについて説明したが、前記減算した時間より前の所定時間が経過したとき、主軸を起動しても初期の目的は達成できる。また、この実施の形態2は、実施の形態1と組み合わせて使用できることは言うまでもない。以上のようにこの発明によれば、1ブロック以上の先読み解析を行い、この先読み解析された結果に基づいて、前記周速一定制御機能の起動タイミングを制御するので、所定の条件を満たすとき、周速一定指令がされてから所定時間経過するまで周速一定制御を行わない制御を行うことができ、よって周速一定制御実行による無駄な消費電力を節約できるという効果がある。またこの発明によれば、周速一定指令から、周速一定指令がされてから切削送りが開始されるまでの実行時間より周速一定指令前の主軸回転数から周速一定指令による切削開始時点の主軸回転数に到達するまでの主軸到達時間を減算した時間が経過したとき、前記周速一定制御機能を起動するので、切削開始時にちょうど主軸が指令周速に到達することができ、よって切削に支障をきたすことなく、消費電力を最大限節約することができるという効果がある。またこの発明によれば、周速一定指令がされてから切削送りが開始されるまでの実行時間、及び周速一定指令前の主軸回転数から周速一定指令による主軸回転数に到達するまでの主軸到達時間または周速一定指令前の主軸回転数から周速一定指令による切削開始時点の主軸回転数に到達するまでの主軸到達時間として、ソフトウエアのサンプリング回数に変換したものを用いるので、ソフトウエア処理がし易くなり、CPUの負担が少なくなるという効果がある。またこの発明によれば、前記主軸到達時間を、主軸の加速曲線または減速曲線を複数本の直線で近似し、この直線の式に基づいて推定するので、任意の主軸回転数までの主軸到達時間を単純な式で導き出せ、ひいてはCPUの負担が少なくなるという効果がある。またこの発明によれば、1ブロック以上の先読み解析を行い、この先読み解析された結果に基づいて、主軸の起動タイミングを制御するので、所定の条件を満たすとき、主軸回転指令がされてから所定時間経過するまで主軸を停止させておくように主軸を制御することができ、よって非切削ブロックで主軸を回転させておくことによる無駄な消費電力を節約できるという効果がある。またこの発明によれば、主軸回転指令から、主軸回転指令がされてから切削送りが開始されるまでの実行時間より主軸起動から主軸回転指令による主軸回転数に到達するまでの主軸加速時間を減算した時間が経過したとき、主軸を起動するので、切削開始時にちょうど主軸が指令速度に到達することができ、よって切削に支障をきたすことなく、消費電力を最大限節約することができるという効果がある。またこの発明によれば、主軸回転指令がされてから切削送りが開始されるまでの実行時間、及び主軸起動から主軸回転指令による主軸回転数に到達するまでの主軸加速時間として、ソフトウエアのサンプリング回数に変換したものを用いるので、ソフトウエア処理がし易くなり、CPUの負担が少なくなるという効果がある。またこの発明によれば、前記主軸加速時間を、主軸の加速曲線または減速曲線を複数本の直線で近似し、この直線の式に基づいて推定するので、任意の主軸回転数までの加速時間を単純な式で導き出せ、ひいてはCPUの負担が少なくなるという効果がある。またこの発明によれば、主軸回転指令中に所定の条件を満たすとき、主軸を停止させるので、無駄に主軸を回転させることがなく、消費電力を節約できるという効果がある。またこの発明によれば、主軸回転中に非切削ブロックでなくなったときに、次に切削を開始するまでの時間、即ち主軸停止時間と、主軸加減速時間を比較し、主軸加減速時間の方が長いときは主軸を停止させないので、無駄に主軸を回転させることがなく、消費電力を節約でき、しかも切削開始時に主軸の速度到達を待ってサイクルタイムが延びてしまうといったことがなく、最適な主軸制御を行うことができるという効果がある。またこの発明によれば、前記主軸加減速時間を、主軸の加速曲線または減速曲線を複数本の直線で近似し、この直線の式に基づいて推定するので、任意の主軸回転数までの加減速時間を単純な式で導き出せ、ひいてはCPUの負担が少なくなるという効果がある。またこの発明によれば、1ブロック以上の先読み解析を行い、この先読み解析された結果に基づいて前記周速一定制御機能の起動タイミングを制御するので、所定の条件を満たすとき周速一定指令がされてから所定時間経過するまで周速一定制御を行わない制御を行うことができ、また先読み解析された結果に基づいて主軸の起動タイミングを制御するので、所定の条件を満たすとき主軸回転指令がされてから所定時間経過するまで主軸を停止させておくように主軸を制御することができ、よって周速一定制御実行による無駄な消費電力、及び非切削ブロックで主軸を回転させておくことによる無駄な消費電力を節約できるという効果がある。またこの発明によれば、周速一定指令から、周速一定指令がされてから切削送りが開始されるまでの実行時間より周速一定指令前の主軸回転数から周速一定指令による切削開始時点の主軸回転数に到達するまでの主軸到達時間を減算した時間が経過したとき、前記周速一定制御機能を起動するので、切削開始時にちょうど主軸が指令周速に到達することができ、また主軸回転指令から、主軸回転指令がされてから切削送りが開始されるまでの実行時間より主軸起動から主軸回転指令による主軸回転数に到達するまでの主軸加速時間を減算した時間が経過したとき、主軸を起動するので、切削開始時にちょうど主軸が指令速度に到達することができ、よって切削に支障をきたすことなく、消費電力を最大限節約することができるという効果がある。またこの発明によれば、1ブロック以上の先読み解析を行い、この先読み解析された結果に基づいて前記周速一定制御機能の起動タイミングを制御するので、所定の条件を満たすとき周速一定指令がされてから所定時間経過するまで周速一定制御を行わない制御を行うことができ、また主軸回転中に所定の条件を満たすとき、主軸を停止させるので、無駄に主軸を回転させることがなく、消費電力を節約できるという効果がある。またこの発明によれば、周速一定指令から、周速一定指令がされてから切削送りが開始されるまでの実行時間より周速一定指令前の主軸回転数から周速一定指令による切削開始時点の主軸回転数に到達するまでの主軸到達時間を減算した時間が経過したとき、前記周速一定制御機能を起動するので、また主軸回転中に非切削ブロックでなくなったときに、次に切削を開始するまでの時間、即ち主軸停止時間と、主軸加減速時間を比較し、主軸加減速時間の方が長いときは主軸を停止させないので、切削に支障をきたすことなく、消費電力を最大限節約することができ、しかも切削開始時に主軸の速度到達を待ってサイクルタイムが延びてしまうといったことがなく、最適な主軸制御を行うことができるという効果がある。またこの発明によれば、先読み解析された結果に基づいて主軸の起動タイミングを制御するので、所定の条件を満たすとき主軸回転指令がされてから所定時間経過するまで主軸を停止させておくように主軸を制御することができ、また主軸回転中に所定の条件を満たすとき主軸を停止させるので、無駄に主軸を回転させることがなく、消費電力を節約できるという効果がある。またこの発明によれば、主軸回転指令から、主軸回転指令がされてから切削送りが開始されるまでの実行時間より主軸起動から主軸回転指令による主軸回転数に到達するまでの主軸加速時間を減算した時間が経過したとき、主軸を起動するので、切削開始時にちょうど主軸が指令速度に到達することができ、また主軸回転中に非切削ブロックでなくなったときに、次に切削を開始するまでの時間、即ち主軸停止時間と、主軸加減速時間を比較し、主軸加減速時間の方が長いときは主軸を停止させないので、切削に支障をきたすことなく、消費電力を最大限節約することができ、しかも切削開始時に主軸の速度到達を待ってサイクルタイムが延びてしまうといったことがなく、最適な主軸制御を行うことができるという効果がある。"