(57)【要約】【課題】  並列実行指令の場合において、予め完了待ち時間の有無及び完了待ち時間の長さ等を確認して、そのような完了待ち時間を削減することができるように、ＮＣプログラムを自動で変更することを可能にし、加工時間を短縮し無駄な電力消費をなくすことが可能な工作機械の数値制御装置を提供すること。【解決手段】  並列実行指令に基づいて複数の制御を並列処理するように構成した工作機械の数値制御装置において、並列実行指令には並列処理を開始させるための並列実行開始指令と開始された並列処理の完了を待つ並列実行完了待ち指令とがあり、並列実行開始指令及び又は並列実行完了待ち指令の指令タイミングを並列実行完了待ち指令の完了待ち時間が短縮される方向で変更が可能か否かを判別し、変更が可能な場合には指令タイミングの変更を行うもの。  【選択図】  図１
2007233624.tif 000002
【特許請求の範囲】
【請求項１】
並列実行指令に基づいて複数の制御を並列処理するように構成した工作機械の数値制御装置において、 
上記並列実行指令には上記並列処理を開始させるための並列実行開始指令と該並列実行開始指令によって開始された並列処理の完了を待つ並列実行完了待ち指令とがあり、
上記並列実行開始指令及び又は並列実行完了待ち指令の指令タイミングを並列実行完了待ち指令の完了待ち時間が短縮される方向で変更が可能か否かを判別し、変更が可能な場合には上記指令タイミングの変更を行うようにしたことを特徴とする工作機械の数値制御装置。
【請求項２】
請求項１記載の工作機械の数値制御装置において、
並列実行開始指令の指令タイミングを変更可能か否かを判別し、変更可能な場合には上記並列実行開始指令の指令タイミングを前又は後ろに移動させるようにしたことを特徴とする工作機械の数値制御装置。
【請求項３】
請求項１記載の工作機械の数値制御装置において、
並列実行完了待ち指令の指令タイミングを変更可能か否かを判別し、変更可能な場合には上記並列実行完了待ち指令の指令タイミングを後ろに移動させるようにしたことを特徴とする工作機械の数値制御装置。
【請求項４】
請求項１記載の工作機械の数値制御装置において、
分割可能な通常指令を並列実行開始指令と並列実行完了待ち指令とに分割し、
上記並列実行開始指令の指令タイミングを変更可能か否かを判別し、変更可能な場合には上記並列実行開始指令の指令タイミングを前又は後ろに移動させるようにし、
上記並列実行完了待ち指令の指令タイミングをその後の指令内容及び状態から変更可能か否かを判別し、変更可能な場合には上記並列実行完了待ち指令の指令タイミングを後ろに移動させるようにしたことを特徴とする工作機械の数値制御装置。    
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は工作機械の数値制御装置（ＮＣ）に係り、特に、他の指令と並列に実行できる並列実行指令の並列実行開始指令の指令タイミング及び又は並列実行完了待ち指令の指令タイミングを適宜変更可能に構成することにより、待ち時間を削減して加工に要する時間の短縮を図ることができるとともに、電力消費量の低減を図ることができるように工夫したものに関する。
【背景技術】
【０００２】
工作機械の数値制御装置においてはいわゆる「通常指令」というものがある。すなわち、ＮＣプログラムを１ブロック（行）読み込んでその指令を実行する。この動作が完了すると次のブロックに移行して、ＮＣプログラムを１ブロック読み込んでその指令を実行する。この動作を繰り返し行う。これが「通常指令」である。
【０００３】
これに対して、指令を実行して完了する前に次のブロックへ移行し、完了待ち指令で完了待ちを行ういわゆる「並列実行指令」がある。この種の並列実行指令の場合には、数値制御装置は１ブロック目の指令と２ブロック目の指令を並列に処理する。そして、この１ブロック目の完了を待つ指令が行われた時に完了待ちを行い、次ブロックへ移行する。上記並列実行指令は、処理を開始する「並列実行開始指令」と、処理の完了待ちを行う「並列実行完了待ち指令」とから構成されている。
【０００４】
又、通常指令の一例を図２３に示すとともに、「並列実行指令」の一例を図２４に示す。又、図２３に示した「通常指令」を時系列的に示したものが図２５であり、図２４に示した「並列実行指令」を時系列的に示したものが図２６である。    
【０００５】
まず、図２３及び図２５を参照して「通常指令」の場合から説明する。まず、主軸の割出指令がある。すなわち、１ブロック目において主軸に対して割り出す角度が指令される。具体的には、スピンドル動作として、「Ｎ１  ＳＰＯＳ＝０」という指令が出力される。この指令に基づいて主軸は指令された角度に向かって回転動作する。主軸の割出動作が終了した後２ブロック目に移行してＸ軸の位置決めが指令される。具体的には、Ｘ軸動作として、「Ｎ２  Ｇ０  Ｘ２０．０」という指令が出される。これによって、Ｘ軸は２０．０へ位置決め動作する。Ｘ軸の位置決め動作が終了した後３ブロック目に移行して、Ｘ軸の移動による加工動作指令が出される。具体的には、Ｘ軸動作として、「Ｎ３  Ｇ１  Ｘ１０．０  Ｆ０．１」という指令が出される。これによって、Ｘ軸は１０．０まで加工動作を行なう。これが「通常指令」である。
【０００６】
次に、図２４及び図２６を参照して「並列実行指令」の場合について説明する。まず、１ブロック目で主軸に対して割り出す角度が指令される。具体的には、スピンドル動作として、「Ｎ１  ＳＰＯＳＡ＝０」という指令が出力される。この指令に基づいて主軸は指令された角度に向かって移動を開始する。それと同時に次の２ブロック目へ移行する。２ブロック目ではＸ軸の位置決め指令が行われる。具体的には、Ｘ軸動作として、「Ｎ２  Ｇ０  Ｘ２０．０」という指令が出される。これによって、Ｘ軸は２０．０へ位置決め動作する。つまり、主軸の割り出し動作とＸ軸の移動動作が同時に並列で実行されることになる。
【０００７】
次に、２ブロック目のＸ軸移動が完了すると、次の３ブロック目へ移行する。３ブロック目で主軸の割り出し完了待ち指令が行われる。すなわち、「Ｎ３  ＷＡＩＴＳ（１）」なる指令である。そして、主軸割り出しの完了を待って次４ブロック目へ移行する。４ブロック目では次の指令を行う。すなわち、「Ｎ４  Ｇ１  Ｘ１０．０  Ｆ０．１」なる指令が出される。その際、３ブロック目において２ブロック目のＸ軸位置決め完了より先に１ブロック目の主軸割り出し動作が完了している場合は直ぐに４ブロック目の動作を開始する。これに対して、主軸割り出しが完了していない場合は、Ｘ軸は停止したまま主軸割り出しの完了を待ち、次の４ブロック目へ移行することになる。これが「並列実行指令」である。
【０００８】
尚、本願の先行技術を開示するものとして、例えば、特許文献１がある。
【０００９】
【特許文献１】特開平１１−３４７８８７号公報
【発明の開示】
【発明が解決しようとする課題】
【００１０】
上記従来の構成によると次のような問題があった。
すなわち、「並列実行指令」の場合であって二個以上の指令を並列で実行できる場合において、指令方法によっては並列実行完了待ち指令で完了待ち時間が発生する場合がある。その際、そのような完了待ち時間が発生するか否か、又、完了待ち時間が発生する場合にそれがどの程度の待ち時間であるか、等に関して実際に運転するまで確認することができないという問題があった。
具体的に説明すると、図２４及び図２６を参照して説明したように、「並列実行指令」の場合には、１ブロック目と２ブロック目の指令を並列的に実行する場合において、２ブロック目の指令が完了しているが１ブロック目の指令、すなわち、主軸割り出しが完了していない場合は、Ｘ軸は停止したまま主軸割り出しの完了を待ち、次の４ブロック目へ移行することになる。その際、そのような完了待ち時間が発生するか否か、発生する場合にはどの程度の完了待ち時間になるかについて、実際に運転するまでは確認することができないというものである。
又、そのような完了待ち時間をなくす或いは短縮させるべくＮＣプログラムを変更した後も、再度運転してみないと完了待ち時間がなくなった或いは短縮されたことを確認することができないという問題もあった。
又、そのような完了待ち時間をなくす或いは短縮させるべくＮＣプログラムを変更する場合には、使用者が１ブロックずつ判断して指令位置を変更しなければならず、煩雑な作業を余儀なくされてしまうという問題があった。
又、指令タイミングを早くし過ぎた場合には無用なスピンドルの回転等によって無駄な電力を消費してしまうという問題もあった。
【００１１】
本発明はこのような点に基づいてなされたものでその目的とするところは、「並列実行指令」の場合において、予め完了待ち時間の有無及び完了待ち時間の長さ等を確認して、そのような完了待ち時間を削減することができるように、ＮＣプログラムを自動で変更することを可能にし、それによって、加工に要する時間を短縮するとともに無駄な電力消費をなくしてエネルギー消費量の削減を図ることが可能な工作機械の数値制御装置を提供することにある。
【課題を解決するための手段】
【００１２】
上記目的を達成するべく本願発明の請求項1による工作機械の数値制御装置は、並列実行指令に基づいて複数の制御を並列処理するように構成した工作機械の数値制御装置において、上記並列実行指令には上記並列処理を開始させるための並列実行開始指令と該並列実行開始指令によって開始された並列処理の完了を待つ並列実行完了待ち指令とがあり、上記並列実行開始指令及び又は並列実行完了待ち指令の指令タイミングを並列実行完了待ち指令の完了待ち時間が短縮される方向で変更が可能か否かを判別し、変更が可能な場合には上記指令タイミングの変更を行うようにしたことを特徴とするものである。
又、請求項２による工作機械の数値制御装置は、請求項１記載の工作機械の数値制御装置において、並列実行開始指令の指令タイミングを変更可能か否かを判別し、変更可能な場合には上記並列実行開始指令の指令タイミングを前又は後ろに移動させるようにしたことを特徴とするものである。
又、請求項３による工作機械の数値制御装置は、請求項１記載の工作機械の数値制御装置において、並列実行完了待ち指令の指令タイミングを変更可能か否かを判別し、変更可能な場合には上記並列実行完了待ち指令の指令タイミングを後ろに移動させるようにしたことを特徴とするものである。
又、請求項４による工作機械の数値制御装置は、請求項１記載の工作機械の数値制御装置において、分割可能な通常指令を並列実行開始指令と並列実行完了待ち指令とに分割し、上記並列実行開始指令の指令タイミングを変更可能か否かを判別し、変更可能な場合には上記並列実行開始指令の指令タイミングを前又は後ろに移動させるようにし、上記並列実行完了待ち指令の指令タイミングをその後の指令内容及び状態から変更可能か否かを判別し、変更可能な場合には上記並列実行完了待ち指令の指令タイミングを後ろに移動させるようにしたことを特徴とするものである。    
【発明の効果】
【００１３】
以上述べたように本願発明の請求項1による工作機械の数値制御装置は、並列実行指令に基づいて複数の制御を並列処理するように構成した工作機械の数値制御装置において、上記並列実行指令には上記並列処理を開始させるための並列実行開始指令と該並列実行開始指令によって開始された並列処理の完了を待つ並列実行完了待ち指令とがあり、上記並列実行開始指令及び又は並列実行完了待ち指令の指令タイミングを並列実行完了待ち指令の完了待ち時間が短縮される方向で変更が可能か否かを判別し、変更が可能な場合には上記指令タイミングの変更を行うようにしたので、完了待ち時間を短縮させることが可能となり、それによって、加工に要する時間の短縮ひいては加工効率の向上を図ることができる。又、無駄な消費電力を低減させてエネルギー消費量の低減を図ることができる。
又、請求項２による工作機械の数値制御装置は、請求項１記載の工作機械の数値制御装置において、並列実行開始指令の指令タイミングを変更可能か否かを判別し、変更可能な場合には上記並列実行開始指令の指令タイミングを前又は後ろに移動させるようにしたので、それによっても、完了待ち時間を短縮させることが可能となり、それによって、加工に要する時間の短縮ひいては加工効率の向上を図ることができる。
又、請求項３による工作機械の数値制御装置は、請求項１記載の工作機械の数値制御装置において、並列実行完了待ち指令の指令タイミングを変更可能か否かを判別し、変更可能な場合には上記並列実行完了待ち指令の指令タイミングを後ろに移動させるようにしたので、完了待ち時間をさらに効果的に短縮させることが可能となり、それによって、加工に要する時間の短縮ひいては加工効率の向上を図ることができる。
又、請求項４による工作機械の数値制御装置は、請求項１記載の工作機械の数値制御装置において、分割可能な通常指令を並列実行開始指令と並列実行完了待ち指令とに分割し、上記並列実行開始指令の指令タイミングを変更可能か否かを判別し、変更可能な場合には上記並列実行開始指令の指令タイミングを前又は後ろに移動させるようにし、上記並列実行完了待ち指令の指令タイミングをその後の指令内容及び状態から変更可能か否かを判別し、変更可能な場合には上記並列実行完了待ち指令の指令タイミングを後ろに移動させるようにしたので、完了待ち時間をさらに効果的に短縮させることが可能となり、それによって、加工に要する時間の短縮ひいては加工効率の向上を図ることができる。
【発明を実施するための最良の形態】
【００１４】
以下、図１乃至図２１を参照して本発明の第１の実施の形態を説明する。図１は本実施の形態による工作機械の数値制御装置の全体構成を示すブロック図であり、又、図２は工作機械としての数値制御自動旋盤の概略制御軸構成を示す平面図である。
図１において、数値制御自動旋盤１は、主軸回転用モータ３、工具移動用モータ５、被加工物移動用モータ７、背面主軸移動用モータ９、背面主軸回転用モータ１１及びこれら主軸回転用モータ３、工具移動用モータ５、被加工物移動用モータ７、背面主軸移動用モータ９、背面主軸回転用モータ１１の駆動を制御するための制御ユニット部１３を備えている。
【００１５】
上記主軸回転用モータ３は、被加工物が保持可能に構成された主軸（図２中符号Ｓ１で示す）を回転駆動させるためのものであり、駆動回路１５及び主軸回転制御回路１７等を介して制御ユニット部１３に接続されている。又、主軸回転用モータ３には、主軸回転用モータ３の回転を検知するためのパルスエンコーダ１９が設けられている。このパルスエンコーダ１９の出力は制御ユニット部１３及び速度信号生成回路２１に接続されており、パルスエンコーダ１９から出力される回転検出信号が制御ユニット部１３及び速度信号生成回路２１に入力される。パルスエンコーダ１９は、主軸回転用モータ３の回転に同期して回転検出信号を発生し、制御ユニット部１３及び速度信号生成回路２１に出力する。速度信号生成回路２１は、パルスエンコーダ１９から出力される回転検出信号を主軸回転用モータ３の回転速度を意味する主軸回転速度信号に変換する。速度信号生成回路２１の出力は主軸回転制御回路１７に接続されており、変換された主軸回転速度信号が主軸回転制御回路１７に入力される。
【００１６】
上記主軸回転制御回路１７は、クロック信号発生回路２３にて発生して出力されたクロック信号を基準にして所望の回転速度となるように被加工物（主軸Ｓ１に把持されるワーク）の回転を制御するためのものであり、制御ユニット部１３から出力される主軸回転速度指令信号と、速度信号生成回路２１から出力される主軸回転速度信号とを比較して、その差に応じた制御信号をクロック信号を基準にして生成する。主軸回転制御回路１７にて生成された制御信号は、駆動回路１５に出力される。
【００１７】
上記駆動回路１５は、主軸回転制御回路１７から出力された制御信号に基づいて、主軸回転用モータ３（主軸Ｓ１）の回転速度が後述する主軸回転速度指令値となるように主軸回転用モータ３への供給電力を制御する。これら駆動回路１５、主軸回転制御回路１７、及び、速度信号生成回路２１は、主軸回転用モータ３（主軸Ｓ１）の回転速度のフィードバック制御系を構成している。
【００１８】
次に、上記工具移動用モータ５は、被加工物を加工するための工具（旋削加工用バイト等、図２中符号ＴＳ１で示す）を、例えば、主軸回転用モータ３（主軸Ｓ１）の回転中心軸に対して直交する方向（Ｘ１軸方向、Ｙ１軸方向）に移動させるためのもので、駆動回路２５及び工具送り制御回路２７を介して制御ユニット部１３に接続されている。
【００１９】
又、工具としては工具ＴＳ１以外に、背面加工用工具ＴＳ２が設けられている。
又、工具移動用モータ５には、工具移動用モータ５の回転を検出するパルスエンコーダ２９が設けられている。このパルスエンコーダ２９の出力は工具送り制御回路２７に接続されており、パルスエンコーダ２９の回転検出信号が工具送り制御回路２７に入力される。パルスエンコーダ２９は、工具移動用モータ５の所定回転角度毎に回転位置信号を発生して、工具送り制御回路２７に出力する。
【００２０】
工具送り制御回路２７は、パルスエンコーダ２９から出力された回転位置信号に基づいて実際の工具ＴＳ１の移動位置を認識すると共に、認識した実際の工具ＴＳ１の移動位置と後述する制御ユニット部１３から出力される工具位置指令信号とを比較して、この比較結果に基づいて工具駆動信号を生成する。工具送り制御回路２７にて生成された工具駆動信号は、駆動回路２５に出力される。駆動回路２５は、工具送り制御回路２７から出力された工具駆動信号に基づいて工具移動用モータ５への供給電力を制御する。これら、駆動回路２５及び工具送り制御回路２７は、工具ＴＳ１の移動位置のフィードバック制御系を構成している。
【００２１】
次に、上記被加工物移動用モータ７は、被加工物を、例えば、主軸回転用モータ３（主軸Ｓ１）の回転中心軸に対して平行な方向（Ｚ１軸方向）に移動させるためのもので、駆動回路３１及び被加工物送り制御回路３３を介して制御ユニット部１３に接続されている。又、被加工物移動用モータ７には、被加工物移動用モータ７の回転を検出するパルスエンコーダ３５が設けられている。このパルスエンコーダ３５の出力は被加工物送り制御回路３３に接続されており、パルスエンコーダ３５の回転検出信号が被加工物送り制御回路３３に入力される。パルスエンコーダ３５は、被加工物移動用モータ７の所定回転角度毎に回転検出信号を発生して、被加工物送り制御回路３３に出力する。
【００２２】
上記被加工物送り制御回路３３は、パルスエンコーダ３５から出力された回転検出信号に基づいて実際の被加工物の移動位置を認識すると共に、認識した実際の被加工物の移動位置と制御ユニット部１３から出力される被加工物位置指令信号とを比較して、この比較結果に基づいて被加工物駆動信号を生成する。所定回転角度毎に生成された被加工物駆動信号は、駆動回路３１に出力される。駆動回路３１は、所定回転角度毎に出力された被加工物駆動信号に基づいて被加工物移動用モータ７への供給電力を制御する。これら、駆動回路３１及び上記被加工物送り制御回路３３は、被加工物の移動位置のフィードバック制御系を構成している。
【００２３】
次に、上記背面主軸台移動用モータ９は、背面主軸Ｓ２を、例えば、主軸回転用モータ３（主軸Ｓ１）の回転中心軸に対して平行な方向（Ｚ２軸方向）、又は、これと直交する方向（Ｘ２軸方向）に移動させるためのもので、駆動回路３７及び背面主軸台送り制御回路３９を介して制御ユニット部１３に接続されている。又、背面主軸台移動用モータ９には、背面主軸台移動用モータ９の回転を検出するパルスエンコーダ４１が設けられている。このパルスエンコーダ４１の出力は背面主軸台送り制御回路３９に接続されており、パルスエンコーダ４１の回転検出信号が背面主軸台送り制御回路３９に入力される。パルスエンコーダ４１は、背面主軸台移動用モータ９の所定回転角度毎に回転位置信号を発生して、背面主軸台送り制御回路３９に出力する。
【００２４】
上記背面主軸台送り制御回路３９は、パルスエンコーダ４１から出力された回転位置信号に基づいて実際の背面主軸Ｓ２の移動位置を認識すると共に、認識した実際の背面主軸Ｓ２の移動位置と後述する制御ユニット部１３から出力される背面主軸台位置指令信号とを比較して、この比較結果に基づいて背面主軸台駆動信号を生成する。背面主軸台送り制御回路３９にて生成された背面主軸台駆動信号は、駆動回路３７に出力される。駆動回路３７は、背面主軸台送り制御回路３９から出力された駆動信号に基づいて背面主軸台移動用モータ９への供給電力を制御する。これら、駆動回路３７及び背面主軸台送り制御回路３９は、背面主軸台の移動位置のフィードバック制御系を構成している。
【００２５】
次に、上記背面主軸回転用モータ１１は、被加工物を保持可能に構成された背面主軸Ｓ２をＣ２方向に回転駆動させるためのもので、駆動回路４３及び背面主軸回転制御回路４５等を介して制御ユニット部１３に接続されている。又、背面主軸回転用モータ１１には、背面主軸回転用モータ１１の回転を検知するためのパルスエンコーダ４７が設けられている。このパルスエンコーダ４７の出力は制御ユニット部１３及び速度信号生成回路４９に接続されており、パルスエンコーダ４７から出力される回転検出信号が制御ユニット部１３及び速度信号生成回路４９に入力される。パルスエンコーダ４７は、背面主軸回転用モータ１１（背面主軸Ｓ２）の回転に同期して回転検出信号を発生し、制御ユニット部１３及び速度信号生成回路４９に出力する。速度信号生成回路４９は、パルスエンコーダ４７から出力される回転検出信号を背面主軸回転用モータ１１（背面主軸Ｓ２）の回転速度をあらわす背面主軸回転速度信号に変換する。速度信号生成回路４９の出力は背面主軸回転制御回路４５に接続されており、変換された背面主軸回転速度信号が背面主軸回転制御回路４５に入力される。
【００２６】
上記背面主軸回転制御回路４５は、クロック信号発生回路２３にて発生して出力されたクロック信号を基準にして所望の回転速度となるように被加工物（背面主軸Ｓ２）の回転を制御するためのものであり、制御ユニット部１３から出力される背面主軸回転速度指令信号と、速度信号生成回路４９から出力される背面主軸回転速度信号とを比較して、その差に応じた制御信号をクロック信号を基準にして生成する。背面主軸回転制御回路４５にて生成された制御信号は、駆動回路４３に出力される。
【００２７】
上記駆動回路４３は、背面主軸回転制御回路４５から出力された制御信号に基づいて、背面主軸回転用モータ１１（背面主軸Ｓ２）の回転速度が後述する背面主軸回転速度指令値となるように背面主軸回転用モータ１１への供給電力を制御する。これら駆動回路４３、背面主軸回転制御回路４５、及び、速度信号生成回路４５は、背面主軸回転用モータ１１（背面主軸Ｓ２）の回転速度のフィードバック制御系を構成している。
【００２８】
上記制御ユニット部１３は、図１に示されるように、中央演算ユニット（ＣＰＵ）５１、パルス信号発生回路５３、５５、既に説明したクロック信号発生回路２３、分割タイミング信号発生回路５７、ＲＡＭ５９、６１、ＲＯＭ６３等を有している。
【００２９】
上記ＣＰＵ５１は、制御ユニット部１３全体の信号処理等を司る演算部である。ＣＰＵ５１は、周知のマルチプロセッシング（ｍｕｌｔｉ―ｐｒｏｃｅｓｓｉｎｇ）処理、すなわち多重処理を行う。多重処理は、複数の仕事（プログラム）を記憶しておき、これら複数のプログラムを短い時間で切り替えながら実行し、見かけ上、複数のプログラムが同時処理されているようにするもので、時分割処理するものや、各々の仕事に優先順位を付しておき優先順位が高い順に処理を切り替えながらタスク処理するもの等が知られている。
【００３０】
上記パルス信号発生回路５３、５５は、それぞれ、パルスエンコーダ１９、４７に接続されており、パルスエンコーダ１９、４７の夫々から出力された回転検出信号が図示しないインターフェース（Ｉ／Ｆ）等を介して入力される。この入力された回転検出信号に基づいて、所定回転角度毎にパルス信号を発生するように構成されている。又、パルス信号発生回路５３、５５は、ＣＰＵ５１にも接続されており、所定回転角度毎に発生するパルス信号をＣＰＵ５１に出力するようにも構成されている。本実施形態において、パルス信号発生回路５３、５５は、主軸回転用モータ３（主軸Ｓ１）或いは、背面主軸回転用モータ１１（背面主軸Ｓ２）が一回転する間に、主軸回転用モータ３（主軸Ｓ１）、背面主軸回転用モータ１１（背面主軸Ｓ２）に同期して等間隔で４０９６個のパルス信号が出力されるように構成されている。
【００３１】
上記クロック信号発生回路２３は、ＣＰＵ５１から出力される所定の指令信号を受けて、所定の周期、例えば、０．２５ミリ秒周期のクロック信号を生成して出力するように構成されており、クロック信号発生回路２３にて生成されたクロック信号は分割タイミング信号発生回路５７に出力される。分割タイミング信号発生回路５７は、クロック信号発生回路２３から出力されたクロック信号の発生回数をカウントするように構成されており、カウントの結果たとえば１ミリ秒経過する毎に分割タイミング信号を生成してＣＰＵ５１に出力する。したがって、分割タイミング信号発生回路５７は、１ミリ秒周期の分割タイミング信号を後述する割込みタイミング信号としてＣＰＵ５１に出力することになる。
尚、クロック信号及び分割タイミング信号の周期は上述した数値に限られることなく、ＣＰＵ５１の処理能力、パルスエンコーダ２９、３５、４１の分解能、各モータ３、５、７、９の性能等を考慮して適宜設定可能である。
【００３２】
上記ＲＡＭ５９には、加工手順記憶部（運転するＮＣプログラムを記憶）６５、電子カムデータテーブル６７、加工情報記憶部６９が設けられている。又、ＲＡＭ５９は、ＣＰＵ５１における各種演算の結果を読み出し可能に一時的に記憶するように構成されている。上記加工情報記憶部６９には、例えば、ワークの径が２０．０ｍｍ、Ｔ１００の工具種類が切削バイト、Ｔ５００の工具の種類がクロス回転ドリル、といった情報が記憶されている。
【００３３】
上記加工手順記憶部６５は、複数種類のワークの加工に対応できるように、それぞれのワークの加工用ＮＣプログラムが複数記憶される領域である。この記憶領域に対して図示しない操作入力装置を操作してアクセスすることによって、所望の加工用ＮＣプログラムを選択可能となるようにしている。
【００３４】
上記ＲＯＭ６３は各種処理プログラムを記憶する記憶部であって、並列実行開始指令及び並列実行完了待ち指令記憶部７１と分割可能な通常指令記憶部７３と並列実行指令移動条件記憶部７４が設けられている。上記並列実行開始指令及び並列実行完了待ち指令記憶部７１には、例えば、図８に示すような情報が記憶されている。具体的には、並列実行開始指令の一例が「ＳＰＯＳＡ」であって、それに対応する並列実行完了待ち指令が「ＷＡＩＴＳ」である。同様に、並列実行開始開指令が「Ｍ３」であって、それに対応する並列実行完了待ち指令が「Ｇ１、Ｇ２、Ｇ３３等の加工指令」である。同様に、並列実行開始開指令が「Ｍ４」であって、それに対応する並列実行完了待ち指令が「Ｇ１、Ｇ２、Ｇ３３等の加工指令」である。同様に、並列実行開始開指令が「Ｍ５」であって、それに対応する並列実行完了待ち指令が「Ｇ１、Ｇ２、Ｇ３３等の加工指令」である。又、上記分割可能な通常指令記憶部７３には、例えば、図９に示すような情報が記憶されている。すなわち、分割可能な通常指令としては「ＳＰＯＳ」があり、それが並列実行開始指令「ＳＰＯＳＡ」と並列実行完了待ち指令「ＷＡＩＴＳ」に分割されるものである。  
【００３５】
又、上記ＲＡＭ６１には、電子カムデータ作成ソフトウェア記憶部７５と指令タイミング最適化処理部７７とが設けられている。上記指令タイミング最適化処理部７７には、タイミング変更ソフト記憶部７９、プログラムに対するタイミング情報保持部８１、タイミング変更ソフト計算結果一時記憶部８３、プログラムに対する解析結果保持部８５が設けられている。上記プログラムに対する解析結果保持部８５には、例えば、図１０に示すようなプログラムの動作解析結果が記憶されることになる。すなわち、図１０には、「Ｎ１０  Ｇ１  Ｚ３．０  Ｆ０．３」等の複数個の指令に関して、それが実行された後のＸ・Ｙ・Ｚの座標値、スピンドル回転数、回転到達の有無、Ｃ軸角度、選択中工具番号が記憶されているものである。
【００３６】
又、それら以外に、電子カムデータ作成ボタン８７、機種固有情報記憶部８９が設けられている。
【００３７】
以上の構成を基にその作用を説明する。
まず、図３を参照して基本的な手順を説明する。ステップＳ１において、加工手順記憶部６５からＮＣプログラムを読み込む。次に、ステップＳ２に移行して開始時刻の計算が実行される。次に、ステップＳ３に移行して指令タイミングの最適化処理が実行される。次いで、ステップＳ４に移行して、ステップＳ３で最適化されたタイミングを用いて電子カムテーブルが作成される。そして、ステップＳ５に移行して変更結果の出力が実行される。
尚、この実施の形態の場合には、上記したように、ステップＳ４において電子カムへの変換を行っているが、そのような電子カムへの変換を行わない場合もある。
【００３８】
次に、各ステップの処理について詳細に説明する。まず、上記ステップＳ２における開始時刻の計算処理について図４を参照して詳細に説明する。まず、ステップＳ１１において加工手順記憶部６５からＮＣプログラムの中のブロックを読み込み、次いで、ステップＳ１２において開始時刻設定を行う。この場合、開始時刻は、次の式（Ｉ）によって求められる。
開始時刻＝直前の開始時刻＋直前の処理時間+開始時刻変更時間−直前の開始
時刻変更時間―――（Ｉ）
上記式（Ｉ）における「開始時刻変更時間」と「直前の開始時刻変更時間」の初期値は「０」である。
そして、このステップＳ１２によって算出された開始時刻の情報はプログラムに対するタイミング情報保持部８１に記憶される。又、具体例で示すと、図１７に示すようなものである。
尚、図１７〜図２１は実際に処理した具体例を時系列的に示すものであり、図１７は開始時刻の計算結果及び後述するステップＳ２２の処理時間の設定結果を示したものである。
次に、ステップＳ１３に移行して、ステップＳ１１において読み込んだ指令を解析してその結果をプログラムに対する解析結果保持部８５に保存する。解析結果の一例を図１０に示す。図１０においては、「Ｎ１０  Ｇ１  Ｚ３．０  Ｆ０．３」をはじめとする幾つかの指令に関して、その実行後の状態を示すものである。
【００３９】
次に、ステップＳ１４に移行する。ステップＳ１４においては、ステップＳ１１で読み込んだ指令が並列処理完了待ち指令であるか否かの判別が行われる。すなわち、並列実行開始指令及び並列実行完了待ち指令記憶部７１に記憶されている情報、具体的には図８に示した情報と対比するものである。ここで並列処理完了待ち指令ではないと判別された場合にはステップＳ１５に移行する。ステップＳ１５において並列処理開始指令であるか否かの判別が行われる。すなわち、並列実行開始指令及び並列実行完了待ち指令記憶部７１に記憶されている情報、具体的には図８に示した情報と対比するものである。ここで並列処理開始指令ではないと判別された場合にはステップＳ１６に移行する。ステップＳ１６において処理時間が計算される。この計算された処理時間はタイミング変更ソフト計算結果一時記憶部８３に記憶される。
【００４０】
一方、ステップＳ１５において、並列処理開始指令であると判別された場合には、ステップＳ１７に移行する。このステップＳ１７では並列実行処理が完了するまでの時間が計算される。この計算された時間はタイミング情報記憶部８１に記憶される。そして、ステップＳ１８に移行して、処理時間を「０」とする。これについてもタイミング変更ソフト計算結果一時記憶部８３に記憶される。
【００４１】
又、ステップＳ１４において、並列処理完了待ち指令であると判別された場合には、ステップＳ１９に移行する。ステップＳ１９においては、完了時刻の算出が行われる。この場合、完了時刻は次の式（ＩＩ）によって算出される。
完了時刻＝完了待ち原因指令の開始時刻＋完了時間―――（ＩＩ）
尚、ここでいう完了待ち原因指令とは、「並列処理完了待ち指令」で完了待ちをしている処理を開始する「並列処理開始指令」のことを意味する。
ここで算出された完了時刻はタイミング変更ソフト計算結果一時記憶部８３に記憶される。
【００４２】
次に、ステップＳ２０に移行する。このステップＳ２０においては、完了待ち時間の計算が実行される。この場合、完了待ち時間は次の式（ＩＩＩ）によって算出される。
完了待ち時間＝完了時刻−開始時刻---（ＩＩＩ）
ここで算出された完了待ち時間はプログラムに対するタイミング情報記憶部８１に記憶される。
【００４３】
次に、ステップＳ２１に移行して、完了待ち時間の設定が実行される。次いで、ステップＳ２２に移行して、ステップＳ１６又はステップＳ１８で計算された処理時間若しくはステップＳ２１で設定された完了待ち時間が処理時間として設定される。尚、ステップＳ２１で設定された完了待ち時間が「０」以下の場合は、処理時間は「０」が設定される。ここで算出された完了待ち時間、処理時間はプログラムに対するタイミング情報記憶部８１に記憶される。次いで、ステップＳ２３に移行して、プログラムの終了の有無が判別される。プログラムが終了していない場合には、ステップＳ１１に戻って繰り返すことになる。
上記各処理の結果を具体例で示すと図１７及び図１８に示すようなものとなる。
【００４４】
次に、図５を参照して指令タイミング最適化処理について説明する。まず、ステップＳ３２において、プログラムに対するタイミング情報記憶部８１から指令を読み込む。次いで、ステップＳ３３に移行して読み込んだ指令が分割可能であるか否かを判別する。すなわち、分割可能な通常指令記憶部７３に記憶されている情報、具体的には図９に示す情報に基づいて、上記読み込んだ指令が分割が可能であるか否かを判別するものである。
【００４５】
上記ステップＳ３３において、読み込んだ指令が分割が可能であると判別された場合には、ステップＳ３４に移行する。ステップＳ３４においては、指令を分割して元の指令と置き換える。この時、分割前の処理時間を分割後の並列実行開始指令の完了時間と、並列実行完了待ち指令の処理時間及び完了待ち時間として設定する。又、並列実行開始指令の処理時間を「０」に設定する。具体例でみてみると、図１７に示す状態から図１８に示す状態に移行するものである。次いで、ステップＳ３５に移行する。ステップＳ３５においては、分割した並列実行開始指令を読み込む。次いで、ステップＳ３６に移行して、並列実行開始指令であるか否かの判別が実行される。すなわち、並列実行開始指令及び並列実行完了待ち指令記憶部７１に記憶されている情報、具体的には、図８に示す情報と比較するものである。一方、上記ステップＳ３３において、分割不可能であると判別された場合には、ステップＳ３４、Ｓ３５を迂回して直接ステップＳ３６に移行する。
【００４６】
ステップＳ３６において、並列実行開始指令ではないと判別された場合は、ステップＳ３７に移行する。このステップＳ３７では、並列実行完了待ち指令であるか否かの判別が実行される。すなわち、並列実行開始指令及び並列実行完了待ち指令記憶部７１に記憶されている情報、具体的には、図８に示す情報と比較するものである。上記ステップＳ３６において、並列実行開始指令であると判別された場合には、ステップＳ３８に移行する。このステップＳ３８において並列実行開始指令移動が実行される。一方、ステップＳ３７において、並列実行完了待ち指令であると判別された場合には、ステップＳ３９に移行する。このステップＳ３９においては、並列実行完了待ち指令移動が実行される。
【００４７】
そして、何れの場合も、ステップＳ４０に移行して、プログラムの終了の有無が判別される。プログラムが未だ終了していない場合には、ステップＳ３２に戻って繰り返す。
【００４８】
次に、図５のステップＳ３８において示した「並列実行開始指令移動」の詳細について図６と具体例を示す図１９を参照して説明する。まず、ステップＳ５１において完了待ち時間が「０」以下であるか否かの判別が実行される。すなわち、プログラムに対するタイミング情報保持部８１から必要な情報（対応する並列実行完了待ち指令の完了待ち時間）を読み取って判別するものである。完了待ち時間が「０」以下ではない場合には、ステップと５２に移行する。このステップＳ５２においては、直前指令の有無が判別される。すなわち、プログラムに対するタイミング情報保持部８１から必要な情報（並列実行開始指令の直前の指令の有無）を読み取って判別するものである。直前指令有りと判別された場合にはステップＳ５３に移行する。ステップＳ５３においては、直前指令が読み込まれる。
【００４９】
次に、ステップＳ５４に移行する。このステップＳ５４においては、読み取った直前指令が無条件で移動不可の指令であるか否かの判別が実行される。この判別は並列実行指令移動条件記憶部７４に記憶された条件を基に実行される。ここで無条件で移動不可ではないと判別された場合には、ステップＳ５５に移行する。このステップＳ５５では、読み取った直前指令が所定の条件に一致した場合に移動不可の指令であるか否かが判別される。ここで所定の条件に一致した場合に移動不可の指令であると判別された場合には、ステップＳ５６に移行する。ステップＳ５６においては、プログラムに対する解析結果保持部８５から図１０に示した解析結果が取得される。又、上記ステップＳ５５における条件とは、座標のようにプログラムの解析結果から求められる情報と、工具の種類等、加工情報記憶部６９に保持されている情報とがある。
【００５０】
又、上記条件の具体例を図１１〜図１３に示す。図１１は「ＳＰＯＳＡ」（スピンドル位置決め開始指令）の場合の条件であり、並列実行指令移動条件記憶部７４に記憶されている。図１１に示すように、無条件で移動できない指令と、条件に一致した場合に移動できない指令がある。後者の例としては、「Ｇ０  Ｘ＋」と「Ｇ０  Ｚ−」の二つがある。「Ｇ０  Ｘ＋」は、Ｘ軸のプラス方向への早送り移動であり、この場合には、図１２に示すように、「スピンドルが停止中」、「移動前のＸ座標がワークの径より小さい（工具１０３の先端がワーク１０１の径の内側に入っている）」、「クロス回転工具選択中」という三つの条件が揃った場合には「移動不可」となる。
尚、図１２中符号１０１はワークであり、符号１０３はクロスドリルである。
【００５１】
又、「Ｇｏ  Ｚ−」はＺ軸のマイナス方向への早送り移動であり、この場合は、図１４に示すように、「スピンドルが停止中」、「移動前のＺ座標が原点（０）より大きい（工具１０５の先端がワーク１０１の端面よりもワーク１０１側に入っている）」、「正面ドリル工具選択中」という三つの条件が揃った場合には「移動不可」となる。
尚、図１３中符号１０５は正面ドリルである。
【００５２】
図６に戻って、次にステップＳ５７に移行する。このステップＳ５７においては、その他必要な情報が取得される。すなわち、加工情報記憶部６９から必要な情報を取り出すものである。次いで、ステップＳ５８に移行する。このステップＳ５８においては、条件の一致の有無を判別する。ここで、条件が一致していないと判別された場合にはステップＳ５９に移行する。このステップＳ５９においては、直前指令の前に移動する。次いで、ステップＳ６０に移行する。このステップＳ６０においては、開始時刻が再計算される。ここでいう開始時刻の再計算とは、図４に示した処理を再度実行することを意味するものである。そして、ステップＳ５１に戻って繰り返す。
【００５３】
又、ステップＳ５１において完了待ち時間が「０」以下であると判別された場合には、ステップＳ６１に移行して、開始時刻変更時間を「−完了待ち時間」とする処理が実行される。そして、ステップＳ６２に移行して、開始時刻が再計算される。ここでいう開始時刻の再計算とは図４に示した処理を再度実行することを意味するものである。又、ステップＳ５２において直前指令なしと判別された場合、ステップＳ５４において無条件で移動不可であると判別された場合、ステップＳ５８において条件一致と判別された場合にはリターンする。
又、上記ステップＳ６１の処理を詳しく説明すると、まず、ステップＳ５１において、完了待ち時間が「０」以下であると判別されたということは、そもそもそれ以上の時間短縮は不要であることを意味している。後は、それを「０」とすることにより、無駄な電力消費量を低減させることになる。ステップＳ６１の処理はそのような処理を意味しており、ステップＳ６１で設定した開始時刻変更時間を用いてステップＳ６２で再計算することで、並列実行開始指令のタイミングを所定量だけ遅延させることにより、上記完了待ち時間を「０」とするようにしているものである。
【００５４】
次に、図５のステップＳ３９において示した「並列実行完了待ち指令移動」の詳細について図７と具体例を示す図２０を参照して説明する。まず、ステップ７１において完了待ち時間が「０」以下であるか否かの判別が実行される。すなわち、プログラムに対するタイミング情報保持部８１から必要な情報（完了待ち時間）を読み取って判別するものである。完了待ち時間が「０」以下ではない場合には、ステップＳ７２に移行する。このステップＳ７２においては、直後指令の有無が判別される。すなわち、プログラムに対するタイミング情報保持部８１から必要な情報（並列実行完了待ち指令の直後の指令の有無）を読み取って判別するものである。ここで直後指令有りと判別された場合には、ステップＳ７３に移行する。ステップＳ７３においては、直後指令が読み込まれる。
【００５５】
次に、ステップＳ７４に移行する。このステップＳ７４においては、読み取った直後指令が無条件で移動不可の指令であるか否かの判別が実行される。この判別は並列実行指令移動条件記憶部７４に記憶された条件を基に実行される。ここで無条件で移動不可ではないと判別された場合には、ステップＳ７５に移行する。このステップＳ７５では、条件が一致した場合に移動不可の指令であるか否かの判別が行われる。ここで条件が一致した場合に移動不可の指令であると判別された場合には、ステップＳ７６に移行する。ステップＳ７６においては、解析結果の取得が実行される。
【００５６】
上記条件について図１４〜図１６を参照して説明する。図１４は「ＷＡＩＴＳ」（スピンドル位置決め完了待ち指令）の場合の条件であり、並列実行指令移動条件記憶部７４に記憶されている。図１４に示すように、無条件で移動できない指令と、条件に一致した場合に移動できない指令がある。後者の例としては、「Ｇ０  Ｘ−」と「Ｇ０  Ｚ＋」の二つがある。「Ｇ０  Ｘ−」は、Ｘ軸のマイナス方向への早送り移動であり、この場合には、図１５に示すように、「移動後のＸ座標がワーク径より小さい」、「クロス回転工具選択中」という二つの条件が揃った場合には「移動不可」となる。
【００５７】
又、「Ｇ０  Ｚ＋」はＺ軸のプラス方向への早送り移動であり、この場合は、図１６に示すように、「移動後のＺ座標が原点（０）より小さい」、「正面ドリル工具選択中」という二つの条件が揃った場合には「移動不可」となる。
【００５８】
次いで、ステップＳ７７に移行する。このステップＳ７７においては、その他必要な情報が取得される。すなわち、加工情報記憶部６９から必要な情報を取り出すものである。次いで、ステップＳ７８に移行する。このステップＳ７８においては、条件の一致の有無を判別する。ここで、条件が一致していないと判別された場合には、ステップＳ７９に移行する。このステップＳ７９においては、直後指令の後に移動する。次いで、ステップＳ８０に移行する。このステップＳ８０においては、開始時刻が再計算される。そして、ステップＳ７１に戻って繰り返す。上記開始時刻の再計算とは、図４に示した開始時刻計算処理を再度実行することを意味している。
【００５９】
又、ステップＳ７１において完了待ち時間が「０」以下であると判別された場合には、ステップＳ８１に移行して、開始時刻変更時間を「−完了待ち時間」とする処理が実行される。そして、ステップＳ８２に移行して開始時刻の再計算が実行される。ここでいう開始時刻の再計算とは図４に示した処理を再度実行することを意味するものである。又、ステップＳ７２において直後指令なしと判別された場合、ステップＳ７４において無条件で移動不可であると判別された場合、ステップＳ７８において条件一致と判別された場合にはリターンする。
上記ステップＳ８１の処理を詳しく説明すると、まず、ステップＳ７１において、完了待ち時間が「０」以下であると判別されたということは、そもそもそれ以上の時間短縮は不要であることを意味している。後は、それを「０」とすることにより、無駄な電力消費量を低減させることになる。ステップＳ８１の処理はそのような処理を意味しており、ステップＳ８１で設定した開始時刻変更時間を用いてステップＳ８２で再計算することで、並列実行開指令のタイミングを所定量だけ遅延させることにより、上記完了待ち時間を「０」とするようにしているものである。これを具体例で示すと図２１にしめすようなものである。
【００６０】
次に、実際に指令タイミング最適化処理を実行した具体例を、図１７〜図２１を参照して説明する。まず、図１７は図４に示した開始時刻計算の処理を示す図である。例えば、「Ｎ１  Ｇ１  Ｚ３．０  Ｆ０．３」は「Ｚ軸加工」を
示すものであり、その処理時間は「３．０秒」であって、開始時刻は「０」秒である。次に、「Ｎ２  Ｇ０  Ｘ６０．０」は「Ｘ軸６０．０へ位置決め」を示すものであり、その処理時間は「１．０」秒である。又、この場合の開始時刻は、「Ｎ１  Ｇ１  Ｚ３．０  Ｆ０．３」の処理時間が経過した時であるから、「３．０」秒となる。以下、順次前のブロックの開始時刻に処理時間を加算したものが次のブロックの開始時刻になるものである。
【００６１】
又、分割可能な通常指令である「Ｎ４  ＳＰＯＳ＝０」に関しては分割可能指令であることが確認されたものであり、以下、この「Ｎ４  ＳＰＯＳ＝０」指令を並列実行開始指令と並列実行完了待ち指令に分割していくことになる。これが、図５に示した処理の中のステップＳ３３以降の処理ということになる。
【００６２】
すなわち、図１８に示すように、分割可能な通常指令「Ｎ４  ＳＰＯＳ＝０」を並列実行開始指令「Ｎ４１  ＳＰＯＳＡ＝０」と並列実行完了待ち指令「Ｎ４２  ＷＡＩＴＳ（１）」に分割する。上記並列実行開始指令「Ｎ４１  ＳＰＯＳＡ＝０」は、「スピンドル０度への位置決め開始指令」であり、上記並列実行完了待ち指令「Ｎ４２  ＷＡＩＴＳ（１）」は、「スピンドル０度位置決め完了待ち指令」である。上記「スピンドル０度への位置決め開始指令」の処理時間は「０秒」である。又、開始時刻は前のブロックの開始時刻「４．０」秒に処理時間「２．０秒」を加算した「６．０」秒である。又、完了時間は「５．０」秒である。
【００６３】
又、上記並列実行完了待ち指令「Ｎ４２  ＷＡＩＴＳ（１）」の開始時刻は前のブロックの処理時間「０秒」に開始時刻「６．０」秒を加算した「６．０秒」となる。そして、この場合の完了待ち時間は「５．０秒」となる。すなわち、並列実行開始指令による動作の完了時刻を計算する。これは並列実行開始指令「Ｎ４１  ＳＰＯＳＡ＝０」の開始時刻「６．０」秒に、同じく並列実行開始指令「Ｎ４１  ＳＰＯＳＡ＝０」の完了時間「５．０」秒を加えて「１１．０」秒を算出する。次に、完了時刻「１１．０」秒から並列実行完了待ち指令「Ｎ４２  ＷＡＩＴＳ（１）」の開始時刻「６．０」秒を引いて完了待ち時間「５．０」を得る。したがって、後は、この完了待ち時間をできるだけ少なくすることができるように処理していくことになる。
【００６４】
まず、図１９に示すように、分割した並列実行開始指令「Ｎ４１  ＳＰＯＳＡ＝０」を前に移動させる処理を行う。この処理は図６に示した処理である。この場合には、並列実行開始指令「Ｎ４１  ＳＰＯＳＡ＝０」を「Ｎ１  Ｇ１  Ｚ３．０  Ｆ０．３」と「Ｎ２  Ｇ０  Ｘ６０．０」の間に移動させている。完了待ち時間が「０」以下となるように移動させるものである。このように、並列実行開始指令「Ｎ４１  ＳＰＯＳＡ＝０」を
前に移動させることにより、並列実行完了待ち指令「Ｎ４２  ＷＡＩＴＳ（１）」の完了待ち時間が「２．０秒」になったものであり、それによって、当初の待ち時間「５．０秒」に対して「３．０秒」だけ完了待ち時間を短縮させることができたものである。
【００６５】
次に、並列実行完了待ち指令「Ｎ４２  ＷＡＩＴＳ（１）」を後ろに移動させる処理を行い、それによって、完了待ち時間をさらに短縮させるものである。この処理は図７に示した処理である。具体的には、図２０に示すように、並列実行完了待ち指令「Ｎ４２  ＷＡＩＴＳ（１）」を
「Ｎ６  Ｇ０  Ｙ３．０」と「Ｎ７  Ｇ１  Ｘ１０．０  Ｆ０．１」の間に移動させるものである。この場合にも完了待ち時間が「０」以下となるように移動させるものである。このような移動によって完了待ち時間が「−１」になったものである。すなわち、完了時刻は「Ｎ４１  ＳＰＯＳＡ＝０」の開始時刻「３．０秒」に完了時間「５．０」秒を加算して「８」秒である。これに対して、「Ｎ４２  ＷＡＩＴＳ（１）」の開始時刻は「９．０秒」であり、よって、「８．０秒」から「９．０秒」を差し引いて「−１秒」となるものである。このように、並列実行完了待ち指令「Ｎ４２  ＷＡＩＴＳ（１）」を後ろに移動させる処理を行うことにより、完了待ち時間を「２．０秒」から「−１秒」に短縮させることができたものである。
【００６６】
次に、図２１に示すように、完了待ち時間が「０」となるように処理を行う。この処理は図７におけるステップＳ８１及びステップＳ８２の処理である。具体的には、並列実行開始指令「Ｎ４１  ＳＰＯＳＡ＝０」の開始時刻を「１．０秒」だけ遅延させることにより、並列実行完了待ち指令「Ｎ４２  ＷＡＩＴＳ（１）」の完了待ち時間を
「０」としたものである。このような処理を行うことにより、無駄な電力消費量を低減させることができるものである。
【００６７】
以上本実施の形態によると次のような効果を奏することができる。
まず、並列実行指令に関して予め完了待ち時間を算出し、並列実行開始指令と並列実行完了待ち指令を適宜前後に移動させることにより、完了待ち時間を短縮させることができるようになった。それによって、加工時間を短縮させて加工効率を向上させることができるようになったものである。又、分割可能な通常指令を並列実行開始指令と並列実行完了待ち指令に分割することで、より加工時間短縮と加工効率向上を実現できた。
又、そのような作業を全て自動で行うことが可能となり、従来のように煩雑なプログラム変更作業や確認作業を余儀なくされるようなことはない。
又、完了待ち時間が「０」以下になることを目標とし、好ましくは「０」となるように変更作業を実行するように構成されているので、無駄な電力消費量を削減させることが可能となり、それによって、エネルギー消費量の低減を図ることができるようになった。
【００６８】
次に、図２２を参照して第２の実施の形態を説明する。前記第１の実施の形態の場合には、同じ系統内における処理を例に挙げて説明したが、この第２の実施の形態の場合には、異なる系統間における処理を示すものである。この点に関して若干説明を加えると、図２において、主軸Ｓ１と工具ＴＳ１側はチャンネル１、すなわち、系統１となっている。これに対して、背面主軸Ｓ２と工具ＴＳ２はチャンネル２、すなわち、系統２となっている。前記第１の実施の形態の場合には、夫々の系統１、系統２が相互に独立して動作することを前提に、各系統内における処理を例に挙げて説明したものである。これに対して、この第２の実施の形態の場合には、例えば、系統１と系統２の間に同期・同時制御が存在し、よって、一方の系統におけるタイミングの変更が他方の系統に影響を与えるという前提で、本願発明を適用した例を説明するものである。
具体的には、自系統（系統２）内において指令を直前に移動できた場合、それが他の系統（系統１）に影響を与えるか否かを判別していくものである。以下、図２２を参照して具体的に説明する。
【００６９】
図２２において、自系統（系統２）における「指令２−４」の並列実行処理開始指令を前に移動するものとする。まず、並列実行処理開始指令と開始時刻が同じ指令を他系統（系統１）において検索する。その際、開始時刻が同じものがない場合にはその直後の指令を検索する。この場合には「指令１−５」が直後の指令となる。次に、他系統（系統１）の「指令１−５」の直前の「指令１−４」に対して、「指令２−４」を前に移動することが可能であるか否かを判別する。この判別は前記第１の実施の形態の場合と同様に、図６のステップＳ５３〜ステップＳ５８の処理を「指令１−４」に対して実行することで可能になる。
【００７０】
次に、「指令１−４」の開始時刻を取得する。そして、他系統（系統１）も移動可能な場合であって、且つ、「変更後の自系統（系統２）の開始時刻」が「指令１−４」の開始時刻より遅い場合には「移動可能」であると判別される。
又、他系統（系統１）も移動可能な場合であって、且つ、「変更後の自系統（系統２）の開始時刻」が「指令１−４」の開始時刻より早い場合には、さらに直前の「指令１−３」を
読み込んで再度判断する。これに対して、他系統（系統２）が移動不可の場合には「移動不可」となる。このような処理を完了時間が「０」以下、又は、「移動不可」になるまで繰り返す。
【００７１】
図２２に示す場合には、まず、自系統（系統２）についてみてみると、「指令２−４」を「指令２−２」の前まで移動させることができる。一方、他系統（系統１）についてみてみると、「指令１−３」の前まで移動させることができる。そして、「指令２−２」の開始のタイミングと「指令１−３」の開始のタイミングを対比すると、「指令１−３」の開始のタイミングが遅くなっているので、結局、「指令２−３」の前まで移動可能ということになる。
【００７２】
よって、前記第１の実施の形態の場合と同様の効果を奏することができるとともに、異なる系統間との関係についても吟味しながら移動の是非を確認することができるものである。
【００７３】
尚、本発明は前記第１、第２の実施の形態に限定されるものではない。
前記各実施の形態の場合には、工作機械として数値制御自動旋盤を例に挙げて説明したが、その他の工作機械についても同様に適用可能である。
その他図示した構成はあくまで一例である。
又、前記各実施の形態の場合には最終的に電子カムへ変換する場合を例に挙げて説明したが、それに限定されるものではなく、電子カムへ変換しない場合もある。
又、前記第１の実施の形態の場合には、最初に並列実行開始指令を前に移動させることにより完了待ち時間を短縮させ、次いで、並列実行完了待ち指令を後ろに移動させることにより完了待ち時間をさらに短縮させ、最後に、完了待ち時間が「０」になるように調整したが、それに限定されるものではない。例えば、並列実行開始指令を前ではなく後ろに移動させることも考えられる。又、並列実行開始指令の前又は後ろへの移動によって所望の完了待ち時間の短縮が完了する場合もある。又、並列実行開始指令の前又は後ろへの移動と並列実行完了待ち指令の後ろへの移動によって所望の完了待ち時間の短縮が完了する場合もある。その他、様々なケースが想定される。  
【産業上の利用可能性】
【００７４】
本発明は工作機械の数値制御装置（ＮＣ）に係り、特に、他の指令と並列に実行できる並列実行指令の並列実行開始指令の指令タイミング及び又は並列実行完了待ち指令の指令タイミングを適宜自動で変更可能に構成することにより、完了待ち時間を削減して加工に要する時間の短縮を図ることができるとともに、電力消費量の低減を図ることができるように工夫したものに関し、例えば、自動旋盤の数値制御装置に好適である。
【図面の簡単な説明】
【００７５】
【図１】本発明の第１の実施の形態を示す図で、数値制御工作機械の構成を示すブロック図である。
【図２】本発明の第１の実施の形態を示す図で、数値制御工作機械のチャンネル構成を示す平面図である。
【図３】本発明の第１の実施の形態を示す図で、制御プログラムの主たる手順を示すフローチャートである。
【図４】本発明の第１の実施の形態を示す図で、図３に示した手順の中の開始時刻計算の処理を詳細に示すフローチャートである。
【図５】本発明の第１の実施の形態を示す図で、図３に示した手順の中の指令タイミング最適化処理の内容を詳細に示すフローチャートである。
【図６】本発明の第１の実施の形態を示す図で、図５に示した手順の中の並列実行開始指令移動の内容を詳細に示すフローチャートである。
【図７】本発明の第１の実施の形態を示す図で、図５に示した手順の内並列実行完了待ち指令移動の内容を詳細に示すフローチャートである。
【図８】本発明の第１の実施の形態を示す図で、分割可能な通常指令記憶部に記憶されている情報の一例を示す図である。
【図９】本発明の第１の実施の形態を示す図で、分割可能指令記憶部に記憶されている情報の一部を示す図である。
【図１０】本発明の第１の実施の形態を示す図で、プログラムの動作解析結果の一例を示す図である。
【図１１】本発明の第１の実施の形態を示す図で、条件の一例を示す図である。
【図１２】本発明の第１の実施の形態を示す図で、条件の一例を説明するための図である。
【図１３】本発明の第１の実施の形態を示す図で、条件の一例を説明するための図である。
【図１４】本発明の第１の実施の形態を示す図で、条件の一例を示す図である。
【図１５】本発明の第１の実施の形態を示す図で、条件の一例を説明するための図である。
【図１６】本発明の第１の実施の形態を示す図で、条件の一例を説明するための図である。
【図１７】本発明の第１の実施の形態を示す図で、指令タイミング最適化処理を施した場合の具体例を示す図である。
【図１８】本発明の第１の実施の形態を示す図で、指令タイミング最適化処理を施した場合の具体例を示す図である。
【図１９】本発明の第１の実施の形態を示す図で、指令タイミング最適化処理を施した場合の具体例を示す図である。
【図２０】本発明の第１の実施の形態を示す図で、指令タイミング最適化処理を施した場合の具体例を示す図である。
【図２１】本発明の第１の実施の形態を示す図で、指令タイミング最適化処理を施した場合の具体例を示す図である。
【図２２】本発明の第２の実施の形態を示す図で、異なる系統間における処理を示す図である。
【図２３】従来例の説明に使用した図で、通常指令の一例を示す図である。
【図２４】従来例の説明に使用した図で、並列実行指令の一例を示す図である。
【図２５】従来例の説明に使用した図で、通常指令の場合の処理を時系列的に示した図である。
【図２６】従来例の説明に使用した図で、並列実行指令の場合の処理を時系列的に示した図である。
【符号の説明】
【００７６】
１  数値制御工作機械
１３  制御ユニット
５１  中央演算ユニット
５９  ＲＡＭ
６１  ＲＡＭ
６３  ＲＯＭ
６５  加工手順記憶部
６７  電子カムデータテーブル
６９  加工情報記憶部
７１  並列実行開始指令及び並列実行完了待ち指令記憶部
７３  分割可能な通常指令記憶部
７４  並列実行指令移動条件記憶部  
７５  電子カムデータ作成ソフトウェア記憶部
７７  指令タイミング最適化処理部
７９  タイミングソフト記憶部
８１  プログラムに対するタイミング情報記憶部
８３  タイミング変更ソフト記憶部
８５  プログラムに対する解析結果保持部
Ｓ１  主軸
Ｓ２  背面主軸
ＴＳ１  工具
ＴＳ２  工具
【図１】
2007233624.tif 000003
【図２】
2007233624.tif 000004
【図３】
2007233624.tif 000005
【図４】
2007233624.tif 000006
【図５】
2007233624.tif 000007
【図６】
2007233624.tif 000008
【図７】
2007233624.tif 000009
【図８】
2007233624.tif 000010
【図９】
2007233624.tif 000011
【図１０】
2007233624.tif 000012
【図１１】
2007233624.tif 000013
【図１２】
2007233624.tif 000014
【図１３】
2007233624.tif 000015
【図１４】
2007233624.tif 000016
【図１５】
2007233624.tif 000017
【図１６】
2007233624.tif 000018
【図１７】
2007233624.tif 000019
【図１８】
2007233624.tif 000020
【図１９】
2007233624.tif 000021
【図２０】
2007233624.tif 000022
【図２１】
2007233624.tif 000023
【図２２】
2007233624.tif 000024
【図２３】
2007233624.tif 000025
【図２４】
2007233624.tif 000026
【図２５】
2007233624.tif 000027
【図２６】
2007233624.tif 000028