(57)【要約】【課題】数値制御装置において、簡単な構成により補助動作の実施タイミングを良好に設定する。【解決手段】数値制御装置１０は、加工プログラム２０を構成する複数のブロックを先読解析するプログラム先読部２２と、ブロックを実行して加工動作及び補助動作を制御するプログラム実行部２４と、を備える。プログラム実行部２４は、先頭のブロックから順にブロックを実行するものであって、補助動作ブロックＢＭに関しては、補助動作ブロックＢＭの実行タイミングを、補助動作ブロックＢＭに記された補助機能コードに対応するオフセット時間ＴSETだけずらす。【選択図】図１
2018067245.tif 000002
【特許請求の範囲】
【請求項１】
工具を用いて加工対象物を加工する工作機械を制御する数値制御装置であって、
加工プログラムを構成する複数のブロックを、先頭から順次先読みして解析するプログラム先読部と、
前記プログラム先読部が先読みして解析した前記ブロックを実行して加工動作及び前記加工動作を補助する補助動作を制御するプログラム実行部と、
を備え、
前記複数のブロックは、加工動作を行うための加工コードが記された加工動作ブロックと、前記補助動作を行うための補助機能コードが記された補助動作ブロックと、
を含み、
前記プログラム実行部は、先頭の前記ブロックから順に前記ブロックを実行するものであって、前記補助動作ブロックに関しては、前記補助動作ブロックの実行タイミングを、前記補助動作ブロックに記された前記補助機能コードに対応するオフセット時間だけずらす
ことを特徴とする数値制御装置。
【請求項２】
請求項１記載の数値制御装置であって、
前記プログラム実行部は、前記プログラム先読部の先読みによって前記補助動作ブロックが検出された検出タイミングで、既に先読みされた前記加工動作ブロックのうち、未だ実行していない前記加工動作ブロックの実行が全て完了する完了時間を算出し、算出した前記完了時間から前記オフセット時間だけずらした前記実行タイミングで、検出された前記補助動作ブロックを実行する
ことを特徴とする数値制御装置。
【請求項３】
請求項２に記載の数値制御装置であって、
前記プログラム先読部又は前記プログラム実行部は、前記検出タイミングから前記実行タイミングまでの実行待機時間を算出し、前記検出タイミングから前記実行待機時間が経過すると、検出された前記補助動作ブロックを実行する
ことを特徴とする数値制御装置。
【請求項４】
請求項２又は３記載の数値制御装置であって、
前記プログラム先読部又は前記プログラム実行部は、前記加工動作ブロック毎の実行時間を算出し、
前記プログラム実行部は、算出された前記加工動作ブロック毎の実行時間を用いて、前記完了時間を算出する
ことを特徴とする数値制御装置。
【請求項５】
請求項４記載の数値制御装置であって、
前記プログラム先読部又は前記プログラム実行部は、前記加工動作ブロックが工作機械の軸移動を指令するものである場合は、前記加工動作ブロックによって指定される軸移動の移動量及び移動速度に基づいて、前記工作機械の軸移動に要する時間を前記実行時間として算出する
ことを特徴とする数値制御装置。
【請求項６】
請求項５記載の数値制御装置であって、
前記プログラム先読部又は前記プログラム実行部は、前記移動速度を調整するためのオーバライド係数を用いて、前記実行時間を補正する
ことを特徴とする数値制御装置。
【請求項７】
請求項４〜６のいずれか１項に記載の数値制御装置であって、
前記プログラム先読部又は前記プログラム実行部は、前記加工動作ブロックがドウェルを指令するものである場合は、前記加工動作ブロックによって指定されるドウェル時間を前記実行時間とする
ことを特徴とする数値制御装置。
【請求項８】
請求項７に記載の数値制御装置であって、
前記プログラム先読部又は前記プログラム実行部は、前記加工動作ブロックに基づく前記ドウェル時間を調整するためのオーバライド係数を用いて、前記実行時間を補正する
ことを特徴とする数値制御装置。
【請求項９】
請求項１〜８のいずれか１項に記載の数値制御装置であって、
前記プログラム実行部は、前記補助機能コード毎に前記オフセット時間を対応付けて記憶したテーブルを有する
ことを特徴とする数値制御装置。
【請求項１０】
請求項１〜８のいずれか１項に記載の数値制御装置であって、
前記補助動作ブロックには、前記補助機能コードに対応した前記オフセット時間が記されている
ことを特徴とする数値制御装置。
【請求項１１】
工具を用いて加工対象物を加工する工作機械を制御する数値制御装置の制御方法であって、
加工プログラムを構成する複数のブロックを、先頭から順次先読みして解析する先読ステップと、
前記先読ステップで先読みして解析した前記ブロックを実行して加工動作及び前記加工動作を補助する補助動作を制御する実行ステップと、
を含み、
前記複数のブロックは、前記加工動作を行うための加工コードが記された加工動作ブロックと、前記補助動作を行うための補助機能コードが記された補助動作ブロックと、
を含み、
前記実行ステップは、先頭の前記ブロックから順に前記ブロックを実行するものであって、前記補助動作ブロックに関しては、前記ブロックの実行タイミングを、前記ブロックに記された前記補助機能コードに対応するオフセット時間だけずらす
ことを特徴とする制御方法。
【請求項１２】
請求項１１記載の制御方法であって、
前記実行ステップは、前記先読ステップの先読みによって前記補助動作ブロックが検出された検出タイミングで、既に先読みされた前記加工動作ブロックのうち、まだ実行していない前記加工動作ブロックの実行が全て完了する完了時間を算出し、算出した前記完了時間から前記オフセット時間だけずらした前記実行タイミングで、検出された前記補助動作ブロックを実行する
ことを特徴とする制御方法。
【請求項１３】
請求項１２記載の制御方法であって、
前記先読ステップは、前記加工動作ブロック毎の実行時間を算出し、
前記実行ステップは、算出された前記加工動作ブロック毎の実行時間を用いて、前記完了時間を算出する
ことを特徴とする制御方法。
【請求項１４】
請求項１１〜１３のいずれか１項に記載の制御方法であって、
前記実行ステップは、前記補助機能コード毎に前記オフセット時間を対応付けて記憶したテーブルから前記オフセット時間を取得する
ことを特徴とする制御方法。
【請求項１５】
請求項１１〜１３のいずれか１項に記載の制御方法であって、
前記補助動作ブロックには、前記補助機能コードに対応した前記オフセット時間が記述されている
ことを特徴とする制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、工具により加工対象物を加工する加工動作と、加工動作を補助する補助動作とを制御する数値制御装置、及び数値制御装置の制御方法に関する。
【背景技術】
【０００２】
工作機械の数値制御装置は、工具を軸移動しつつワークに対する切削や研磨等の加工動作を行うと共に、加工動作のための補助的な動作（補助動作）を行っている。補助動作としては、例えば、工具の交換、ワークの交換、切削油の供給／供給停止等があげられる。この種の補助動作は、必要に応じて加工動作中に事前に実施することで、ワークの加工全体として作業時間（サイクルタイム）を短縮化することが可能となる。
【０００３】
そのため、数値制御装置では、加工プログラムを先読みして補助動作の実施を判断している。例えば、特許文献１に開示の数値制御装置は、加工プログラムを全て解析する第１加工プログラム解析部と、加工プログラムの補助動作のみを解析する第２加工プログラム解析部とを備える。そして、第２プログラム解析部が解析する補助動作を先行して実施することで、加工時間を短縮している。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特許第５２１００７０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、特許文献１に開示の数値制御装置では、加工プログラムを解析する解析部が２つ必要となるため、数値制御装置全体としての処理負荷が増加する。また、第２プログラム解析部は、加工プログラムの補助機能コードを単純に解析するだけであり、加工動作中における補助動作の実施タイミングについては調整することができない。そのため、加工動作と相対的に実施する補助動作のタイミングが意図しないものとなるおそれがある。
【０００６】
本発明は、上記の実情に鑑みてなされたものであって、簡単な構成により補助動作の実施タイミングを良好に設定して、制御の計画性を高めると共に、加工時間の短縮化を達成可能な数値制御装置、及び数値制御装置の制御方法を提供することを目的とする。
【課題を解決するための手段】
【０００７】
前記の目的を達成するために、本発明は、工具を用いて加工対象物を加工する工作機械を制御する数値制御装置であって、加工プログラムを構成する複数のブロックを、先頭から順次先読みして解析するプログラム先読部と、前記プログラム先読部が先読みして解析した前記ブロックを実行して加工動作及び前記加工動作を補助する補助動作を制御するプログラム実行部と、を備え、前記複数のブロックは、加工動作を行うための加工コードが記された加工動作ブロックと、前記補助動作を行うための補助機能コードが記された補助動作ブロックと、を含み、前記プログラム実行部は、先頭の前記ブロックから順に前記ブロックを実行するものであって、前記補助動作ブロックに関しては、前記補助動作ブロックの実行タイミングを、前記補助動作ブロックに記された前記補助機能コードに対応するオフセット時間だけずらすことを特徴とする。
【０００８】
上記によれば、数値制御装置は、プログラム先読部により加工プログラム内の補助動作ブロックを検出すると、補助動作ブロックの補助機能コードに対応するオフセット時間だけ補助動作ブロックの実行タイミングをずらすことができる。すなわち、補助動作ブロックの実施は、補助動作の種類に対応したタイミングで行うことが可能となる。そのため、プログラム実行部は、加工動作に合ったタイミングで補助動作の制御を開始することができる。従って、数値制御装置は、補助動作の実施タイミングを良好に設定して、制御の計画性を高めると共に、加工時間の短縮化を図ることができる。
【０００９】
この場合、前記プログラム実行部は、前記プログラム先読部の先読みによって前記補助動作ブロックが検出された検出タイミングで、既に先読みされた前記加工動作ブロックのうち、未だ実行していない前記加工動作ブロックの実行が全て完了する完了時間を算出し、算出した前記完了時間から前記オフセット時間だけずらした前記実行タイミングで、検出された前記補助動作ブロックを実行することが好ましい。
【００１０】
数値制御装置は、先読みされた加工動作ブロックのうち、未だ実行していない加工動作ブロックの実行が全て完了する完了時間を算出して、この完了時間からオフセット時間をずらすことで、補助動作の実行タイミングを精度よく算出することができる。
【００１１】
また、前記プログラム先読部又は前記プログラム実行部は、前記検出タイミングから前記実行タイミングまでの実行待機時間を算出し、前記検出タイミングから前記実行待機時間が経過すると、検出された前記補助動作ブロックを実行するとよい。
【００１２】
数値制御装置は、実行待機時間を算出することで、補助動作ブロックをより精度が高いタイミングで実行することができる。
【００１３】
さらに、前記プログラム先読部又は前記プログラム実行部は、前記加工動作ブロック毎の実行時間を算出し、前記プログラム実行部は、算出された前記加工動作ブロック毎の実行時間を用いて、前記完了時間を算出することが好ましい。
【００１４】
数値制御装置は、ブロック毎の実行時間を算出することで、完了時間をより正確に算出することができる。
【００１５】
上記構成に加えて、前記プログラム先読部又は前記プログラム実行部は、前記加工動作ブロックが工作機械の軸移動を指令するものである場合は、前記加工動作ブロックによって指定される軸移動の移動量及び移動速度に基づいて、前記工作機械の軸移動に要する時間を前記実行時間として算出するとよい。
【００１６】
数値制御装置は、加工動作ブロックによって指定される軸移動の移動量及び移動速度に基づいて、工作機械の軸移動に要する実行時間を算出することで、加工動作ブロックの実際の作業にかかる時間をより正確に算出することが可能となる。
【００１７】
前記プログラム先読部又は前記プログラム実行部は、前記移動速度を調整するためのオーバライド係数を用いて、前記実行時間を補正するとよい。
【００１８】
数値制御装置は、実行時間にオーバライド係数を用いて実施時間を補正することで、より一層正確な時間を反映することができる。そのため、精度のよい完了時間を算出することができる。
【００１９】
前記プログラム先読部又は前記プログラム実行部は、前記加工動作ブロックがドウェルを指令するものである場合は、前記加工動作ブロックによって指定されるドウェル時間を前記実行時間とするとよい。
【００２０】
数値制御装置は、ドウェルの加工動作ブロックの時間まで勘案して完了時間を算出することができ、補助動作をより精度よく開始することができる。
【００２１】
前記プログラム先読部又は前記プログラム実行部は、前記加工動作ブロックに基づく前記ドウェル時間を調整するためのオーバライド係数を用いて、前記実行時間を補正してもよい。
【００２２】
これにより、ドウェル時間のオーバライドも含めて完了時間を算出することが可能となる。
【００２３】
前記プログラム実行部は、前記補助機能コード毎に前記オフセット時間を対応付けて記憶したテーブルを有するとよい。
【００２４】
このように、プログラム実行部は、補助機能コード毎にオフセット時間を対応付けて記憶したテーブルを参照することで、補助動作の種類に応じたオフセット時間を簡単に設定することができる。
【００２５】
或いは、前記補助動作ブロックには、前記補助機能コードに対応した前記オフセット時間が記されていてもよい。
【００２６】
このように、数値制御装置は、補助機能コードに記されたオフセット時間によっても、補助動作の実施タイミングを簡単に設定することができる。
【００２７】
また、前記目的を達成するために、本発明は、工具を用いて加工対象物を加工する工作機械を制御する数値制御装置の制御方法であって、加工プログラムを構成する複数のブロックを、先頭から順次先読みして解析する先読ステップと、前記先読ステップで先読みして解析した前記ブロックを実行して加工動作及び前記加工動作を補助する補助動作を制御する実行ステップと、を含み、前記複数のブロックは、前記加工動作を行うための加工コードが記された加工動作ブロックと、前記補助動作を行うための補助機能コードが記された補助動作ブロックと、を含み、前記実行ステップは、先頭の前記ブロックから順に前記ブロックを実行するものであって、前記補助動作ブロックに関しては、前記ブロックの実行タイミングを、前記ブロックに記された前記補助機能コードに対応するオフセット時間だけずらすことを特徴とする。
【００２８】
この場合、前記実行ステップは、前記先読ステップの先読みによって前記補助動作ブロックが検出された検出タイミングで、既に先読みされた前記加工動作ブロックのうち、まだ実行していない前記加工動作ブロックの実行が全て完了する完了時間を算出し、算出した前記完了時間から前記オフセット時間だけずらした前記実行タイミングで、検出された前記補助動作ブロックを実行するとよい。
【００２９】
上記構成に加えて、前記先読ステップは、前記加工動作ブロック毎の実行時間を算出し、前記実行ステップは、算出された前記加工動作ブロック毎の実行時間を用いて、前記完了時間を算出することが好ましい。
【００３０】
また、前記実行ステップは、前記補助機能コード毎に前記オフセット時間を対応付けて記憶したテーブルから前記オフセット時間を取得するとよい。
【００３１】
或いは、前記補助動作ブロックには、前記補助機能コードに対応した前記オフセット時間が記述されていてもよい。
【発明の効果】
【００３２】
本発明に係る数値制御装置、及び数値制御装置の制御方法によれば、簡単な構成により補助動作の実施タイミングを良好に設定して、制御の計画性を高めると共に、加工時間の短縮化を図ることができる。
【図面の簡単な説明】
【００３３】
【図１】第１実施形態に係る数値制御装置、及び数値制御装置が設けられた工作機械の全体構成を概略的に示すブロック図である。
【図２】図１の数値制御装置に適用される加工プログラムの一例を示す説明図である。
【図３】図３Ａは、加工プログラムのブロックと算出する実行時間長を概念的に示す説明図であり、図３Ｂは、同じくブロックと先読時間長を概念的に示す説明図であり、図３Ｃは、同じくブロックとオフセット時間長を概念的に示す説明図であり、図３Ｄは、同じくブロックと開始時間長及び補助動作カウンタを概念的に示す説明図である。
【図４】条件テーブルの一例を示す表である。
【図５】プログラム先読部の処理フローを示すフローチャートである。
【図６】プログラム実行部の処理フローを示すフローチャートである。
【図７】第２実施形態に係る加工プログラムの一例を示す説明図である。
【発明を実施するための形態】
【００３４】
以下、本発明に係る数値制御装置、及び数値制御装置の制御方法について好適な実施形態を挙げ、添付の図面を参照して詳細に説明する。
【００３５】
〔第１実施形態〕
本発明の第１実施形態に係る数値制御装置１０は、図１に示すように、工作機械１２に設けられ、工作機械１２の加工動作を制御する。加工動作では、工作機械１２が保持している工具又は加工対象物を移動して、工具により加工対象物を加工する。数値制御装置１０が行う加工対象物の加工としては、例えば、切削加工（旋削、フライス削り、穴開け、中ぐり等）、研削加工（平面研削、内面研削等）、特殊加工（レーザ加工、放電加工等）があげられる。
【００３６】
また、数値制御装置１０は、加工動作時に、進行中の加工動作を補助する、又は将来に行う加工動作のための準備を行う等の補助動作を併せて実施している。特に、本実施形態に係る数値制御装置１０は、加工動作に対して補助動作の実施タイミングを適切且つ詳細に設定する構成となっている。これにより、数値制御装置１０は、加工動作の実施及び動作の切替等を、より円滑且つ短時間に実施することが可能となる。
【００３７】
第１実施形態に係る数値制御装置１０は、直動軸や旋回軸等の軸を複数有する工作機械１２に設けられて、工作機械１２に駆動指令を出力する。例えば、工作機械１２は、相互に直交するＸ方向、Ｙ方向及びＺ方向の３軸の直動軸と、工具を軸回りに回転させる主軸とを有する。以下では、この３軸の工作機械１２と、該工作機械１２に設置された数値制御装置１０について代表的に述べていく。なお、数値制御装置１０が適用される工作機械１２の軸数や構造については、特に限定されず、工作機械以外の機械に適用されてもよいことは勿論である。
【００３８】
工作機械１２は、数値制御装置１０の制御下に駆動装置が軸毎に駆動して、工具の回転、工具やワークの軸送り等を行う。具体的には、工作機械１２の駆動装置は、サーボモータ（サーボアンプを含む）等で構成される加工軸駆動装置１４と、スピンドルモータ等で構成される主軸駆動装置１６と、補助動作を行う補助駆動装置１８とを含む。
【００３９】
加工軸駆動装置１４は、３軸の軸方向に応じて３つ設けられる。各加工軸駆動装置１４は、所定の軸に沿って移動する図示しない移動体を有し、数値制御装置１０から駆動指令（回転速度や回転量の情報）に基づき、指令された位置に移動体を移動させる。一方、主軸駆動装置１６は、数値制御装置１０からの駆動指令（回転速度や回転量の情報）に基づき、工具を主軸回りに回転させる。
【００４０】
なお、工具の回転開始及び回転停止の指令は、加工プログラム２０の補助機能コード（Ｍコード）によって記述されるため、基本的には、補助動作の範疇に含まれるものである。すなわち、補助動作には、加工軸駆動装置１４や主軸駆動装置１６の加工動作に連続して行うもの（以下、連動補助動作ともいう）と、加工軸駆動装置１４や主軸駆動装置１６以外の装置（補助駆動装置１８等）が加工動作中に個別に行うもの（以下、独立補助動作ともいう）とがある。本実施形態において加工動作中に行う補助動作は、基本的に独立補助動作を指す。なお、連動補助動作でも、加工動作中に準備のための動作を行うことがあり、この場合は、本発明の補助動作の実施タイミングの設定を適用することができる。
【００４１】
連動補助動作としては、例えば、主軸の回転開始又は回転停止を行う場合、プログラムを一時停止する場合等があげられる。これに対し、独立補助動作としては、例えば、切削液の供給又は供給停止を行うためにクーラント装置を動作させる場合、工具交換の準備のためにマガジン装置を動作させる場合、ワークの交換ために搬送ロボットを動作させる場合等があげられる。つまり、補助駆動装置１８には、クーラント装置、マガジン装置、搬送ロボット等の独立的に動作する装置が含まれる。
【００４２】
上記の工作機械１２を制御する数値制御装置１０は、図示しないプロセッサ、メモリ及び入出力インタフェースを有するコンピュータにより構成される。この数値制御装置１０は、メモリに記憶されているシステムプログラム（不図示）をプロセッサが実行することで、工作機械１２の制御部として機能するようになる。
【００４３】
数値制御装置１０の内部には、制御部の機能により、プログラム先読部２２及びプログラム実行部２４が構築される。なお、プログラム先読部２２とプログラム実行部２４の間には、プログラム先読部２２の解析結果（実行データ）を記憶する図示しないバッファが設けられるとよい。
【００４４】
さらに、数値制御装置１０は、工作機械１２の工具や加工対象物を任意に動作させる上記の加工プログラム２０をプログラム記憶部２６（メモリの記憶領域）に記憶している。加工プログラム２０は、工作機械１２のユーザにより任意に構築される。
【００４５】
数値制御装置１０は、加工プログラム２０を実行処理することで、加工軸駆動装置１４及び主軸駆動装置１６を駆動して加工動作を行う。なお、数値制御装置１０は、内部に設けられた図示しない通信装置によって、外部から送信された加工プログラム２０を受信して直ちに実行処理する構成でもよい。
【００４６】
例えば、加工プログラム２０は、図２に示すようなコードの羅列、及び軸の移動を示す数値等により構成されている。ここで、頭文字Ｎとその後に連なる数値は、シーケンス番号を示すものである。シーケンス番号は、図示例において番号順に記述しているが、番号順でなくてもよい。
【００４７】
また、頭文字Ｘ、Ｙ、Ｚとその後に連なる数値は、軸毎の移動量を示すものである。頭文字Ｆとその後に連なる数値は、各軸の送り速度を示す加工コードである。頭文字Ｇとその後に連なる数値は、加工準備（加工動作の種類）のコードを示すものである。そして、頭文字Ｍとその後に連なる数値は、補助動作のコード（補助機能コード）を示すものである。なお、補助機能コードは、Ｍコードに限定されるものではなく、例えば、Ｂコード（頭文字Ｂとその後に連なる数値）も含まれる。
【００４８】
つまり、図２中の加工プログラム２０は、Ｇコードにより加工動作の詳細な内容（動作種類）を設定し、またシーケンス番号Ｎ０１、Ｎ０２、…、Ｎ１００（Ｇコードが記述されていないもの）によって、加工動作を行うことが記述されている。さらに、Ｎ１００後のＭコードで補助動作を行うことが記述されている。
【００４９】
Ｇコードに基づく加工動作の動作種類は、加工プログラム２０中でＧコードが挿入されたシーケンス番号から次のＧコードが挿入される前までのシーケンス番号を１つの動作種類の区間としている。動作種類の一例としては、各軸に沿った移動を行って加工対象物の切削を行う切削送り動作、軸の早送りを行う早送り動作、プログラムを設定時間停止させるドウェル動作等があげられる。なお、本実施形態における切削送り動作では、アブソリュート（絶対値方式）とインクリメンタル（相対値方式）をまとめて取り扱っているが、異なる動作種類に分けてもよい。以下、動作種類に関わる説明では、上述した切削送り動作、早送り動作、ドウェル動作の３つを例に述べることとする。
【００５０】
図１に示すプログラム先読部２２は、プログラム実行部２４よりも先に加工プログラム２０を読み込んで、この加工プログラム２０の解析を行う機能部である。プログラム先読部２２は、図示例のような加工プログラム２０をプログラム記憶部２６から読み出して、加工プログラム２０を構成する複数のブロックのうち、先頭のブロックから順にシーケンシャルに解析（以下、先読解析という）していく。
【００５１】
この先読解析では、ブロックの動作内容、先読解析しているブロック数、複数のブロック単位で構成される加工動作の詳細な内容（動作種類）を認識する。そしてプログラム先読部２２は、独立補助動作以外のブロック（加工動作ブロックＢＰ）を先読解析した際には、その解析結果をプログラム実行部２４に出力する。一方、プログラム先読部２２は、先読解析によって加工プログラム２０内に含まれる補助機能コードを有する独立補助動作のブロック（補助動作ブロックＢＭ）を検出すると、その検出結果（以下、補助動作検出情報Ｉという）をプログラム実行部２４に出力する。
【００５２】
また図３Ａに示すように、プログラム先読部２２は、先読解析において１ブロック毎の実行時間Ｔを以下の式（１）を用いて計算している。
Ｔ＝ＬB／ＦBI  …（１）
【００５３】
ここで、ＬBは、加工軸駆動装置１４の移動体が軸を移動する際の移動量であり、Ｘ軸、Ｙ軸、Ｚ軸毎の移動量に基づき計算することができる。ＦBIは、移動体が軸を移動する際の送り速度であり、Ｇコードの行に併記されるＦコードにより設定される（図２も参照）。なお、移動体の停止（例えば、Ｇコードによりドウェル動作の時間を設ける）等の場合には、そのＧコードの行に併記される記号及び数値が停止時間を表す（図２中のシーケンス番号Ｎ１６のＸ５．０）。式（１）により計算された１ブロック毎の実行時間Ｔは、上述した動作種類に紐付けて、プログラム先読部２２内の図示しない先読解析記憶部（メモリの記憶領域）に記憶される。
【００５４】
そして補助機能コードを検出すると、プログラム先読部２２は、先読解析記憶部に記憶したブロック毎の実行時間Ｔを読み出すと共に、下記の式（２）〜（４）により動作種類毎の時間を算出する（図２及び図３Ａ参照）。プログラム実行部２４において独立補助動作の実施タイミングを指示するためである。
ＴF＝ＴF1＋ＴF2＋…＋ＴFn  …（２）
ＴR＝ＴR1＋ＴR2＋…＋ＴRn  …（３）
ＴW＝ＴW1＋ＴW2＋…＋ＴWn  …（４）
ここで、ＴFは、切削送り動作にかかる時間（切削送り時間）である。
ＴRは、早送り動作にかかる時間（早送り時間）である。
ＴWは、ドウェル動作の時間（ドウェル時間）である。
また、ｎは、各動作種類に含まれているブロック数である。
【００５５】
数値制御装置１０は、上記のように動作種類毎の時間（切削送り時間ＴF、早送り時間ＴR、ドウェル時間ＴW等）をそれぞれ算出することで、動作種類毎にかかる時間を認識することができる。なお、プログラム先読部２２は、通常の先読解析時に、ブロック毎の実行時間Ｔを算出せずに、独立補助動作の検出をトリガとして実行時間Ｔを算出し、さらに切削送り時間ＴF、早送り時間ＴR、ドウェル時間ＴWを算出する構成でもよい。
【００５６】
また、プログラム先読部２２は、独立補助動作の検出時に、検出した補助動作ブロックＢＭと、算出した動作種類毎の時間（切削送り時間ＴF、早送り時間ＴR、ドウェル時間ＴW等）とを含む補助動作検出情報Ｉを生成する。そして、この補助動作検出情報Ｉをプログラム実行部２４に出力する。
【００５７】
図１に戻り、数値制御装置１０のプログラム実行部２４は、プログラム先読部２２が先読解析した加工プログラム２０を実行処理する機能部として構成されている。このプログラム実行部２４内には、加工軸駆動装置１４及び主軸駆動装置１６の動作を主に制御する加工動作制御部２８と、補助駆動装置１８の動作を主に制御する補助動作制御部３０とが設けられている。
【００５８】
加工動作制御部２８は、プログラム先読部２２により先読解析され、バッファに記憶されたブロックを読込及び実行処理することで、制御対象となる工作機械１２の加工動作及び連動補助動作を実施する。特に、加工動作制御部２８は、加工軸駆動装置１４及び主軸駆動装置１６を駆動制御して、工具又は加工対象物の動作を制御する。
【００５９】
この際、加工動作制御部２８は、バッファに記憶されているブロックの中で一番先頭のブロックの実行データに基づいて実行処理を行う。そして加工動作制御部２８は、実行処理が完了した実行データをバッファから削除する。これによりバッファには、プログラム先読部２２に先読みされた後、まだ実行されていないブロックのみが残される。
【００６０】
また、プログラム実行部２４の補助動作制御部３０は、独立補助動作が検出されていない通常の加工動作時に待機状態となっている。そして、プログラム先読部２２から補助動作検出情報Ｉを受信すると、独立補助動作の実施を制御するために処理を開始する。
【００６１】
この補助動作制御部３０は、カウンタ算出部３２及びカウント処理部３４を内部に有する。また、補助動作制御部３０の内部には、カウンタ算出部３２の処理に使用する情報を記憶した補助動作処理用記憶部３６（メモリの記憶領域）が設けられている。
【００６２】
カウンタ算出部３２は、実施中の加工動作に対応するように独立補助動作を開始するため、独立補助動作の開始までの時間に係る情報（補助動作カウンタＣMS）を算出する（図３Ｄ参照）。すなわち、補助動作制御部３０は、カウンタ算出部３２が算出した補助動作カウンタＣMSに基づき、補助駆動装置１８を適切なタイミングで動作させる。
【００６３】
カウンタ算出部３２は、補助動作カウンタＣMSの算出において、補助動作検出情報Ｉに含まれる動作種類毎の時間（切削送り時間ＴF、早送り時間ＴR、ドウェル時間ＴW）を用いる。具体的には、図２及び図３Ｂに示すように、補助動作検出情報Ｉの受信時に、加工動作制御部２８が現在実行処理している実行ブロックＢＥを認識する。この際、実行ブロックＢＥ内でのより詳細な時間（実行ブロックＢＥにおける実行検出タイミングｔ1）を認識することが好ましい。
【００６４】
そして、カウンタ算出部３２は、実行ブロックＢＥから補助機能コードが記述された補助動作ブロックＢＭまでの時間（以下、完了時間ＴMという）を算出する。この完了時間ＴMは、プログラム先読部２２の先読みによって補助動作ブロックＢＭが検出された検出タイミングで、既に先読みされた加工動作ブロックＢＰのうち、未だ実行していない加工動作ブロックＢＰの実行が全て完了するまでの時間に相当する。この際カウンタ算出部３２は、工作機械１２のユーザ等が設定するオーバライドの情報を勘案する。オーバライドは、加工動作における軸送り等の速度をユーザが任意に調整する倍率であり、例えばユーザは、加工対象物の加工形状等に応じて０％〜２００％の範囲で設定する。
【００６５】
つまり、カウンタ算出部３２は、以下の式（５）を用いて完了時間ＴMを算出する。
ＴM＝ＴF×ＫFO＋ＴR×ＫRO＋ＴW×ＫWO  …（５）
ここで、ＫFOは、切削送り動作のオーバライド係数である。
ＫROは、早送り動作のオーバライド係数である。
ＫWOは、ドウェル動作のオーバライド係数である。
【００６６】
このように切削送り時間ＴF、早送り時間ＴR、ドウェル時間ＴWに対しオーバライド係数ＫFO、ＫRO、ＫWOをそれぞれ乗算することで、より正確な完了時間ＴMを算出することが可能となる。
【００６７】
また、カウンタ算出部３２は、補助動作検出情報Ｉに含まれる補助機能コード（ＭコードやＢコード）に基づき、独立補助動作を開始する実行タイミングｔ2を設定する。この際、カウンタ算出部３２は、補助動作処理用記憶部３６に予め記憶されている条件テーブル４０を参照して、補助機能コード毎に設定されているオフセット時間ＴSETを選択及び抽出する。
【００６８】
図４に示すように、条件テーブル４０には、複数の補助機能コードと、補助機能コード毎に対応付けされたオフセット時間ＴSETとが記載されている。従って、カウンタ算出部３２は、補助動作検出情報Ｉに含まれる補助機能コードに基づき、対応するオフセット時間ＴSETを簡単に抽出することができる。このオフセット時間ＴSETは、図３Ｃに示すように、独立補助動作の検出タイミングｔ0に対する実行タイミングｔ2のずれに相当する。すなわち、独立補助動作は、補助動作ブロックに対してオフセット時間ＴSET分だけ先行又は遅延して実施されるものである。
【００６９】
なお、図４中の条件テーブル４０の補助機能コードのうち、例えばＭ１０２及びＢ１０２は、マイナスのオフセット時間ＴSETが設定されている。これは独立補助動作の実施を遅延させることを定義している。例えば、切削液の供給又は供給停止は、補助動作ブロックＢＭよりも後に実施してもよいので、このようにマイナスを設定することで遅延したタイミングで適切に動作を行うことができる。
【００７０】
オフセット時間ＴSETを抽出すると、図３Ｄに示すように、カウンタ算出部３２は、以下の式（６）を用いることで、プログラム実行部２４が現在実行している実行ブロックＢＥから独立補助動作を開始する実行待機時間ＴMSを算出する。
ＴMS＝ＴM−ＴSET  …（６）
【００７１】
すなわち、実行待機時間ＴMSは、完了時間ＴMからオフセット時間ＴSETを減算することで簡単に算出される。これにより、数値制御装置１０は、加工動作の実施中に、現在の実行ブロックＢＥ（実行検出タイミングｔ1）からどの程度時間が経過して独立補助動作を実施すればよいか、について精度よく認識することができる。
【００７２】
また、カウンタ算出部３２は、式（６）により実行待機時間ＴMSを算出した後、実際に独立補助動作を開始するまでの期間をカウントするために、補助動作カウンタＣMSを計算する。例えば、補助動作カウンタＣMSは、以下の式（７）によって算出される。換言すれば、補助動作カウンタＣMSは、実行待機時間ＴMSに関わる情報である。
ＣMS＝ＴMS／Ｃ  …（７）
【００７３】
ここで、Ｃは、後記のカウント処理部３４が補助動作カウンタＣMSをカウントする所定の時間長を規定する補間周期であり、数値制御装置１０が設置される工作機械１２に応じて適宜設定される。補間周期Ｃは、補助動作処理用記憶部３６に予め記憶されており、補助動作カウンタＣMSの算出時に読み出される。なお、補間周期Ｃは、ユーザが任意に設定できるように構成されていてもよい。
【００７４】
例えば、補間周期Ｃは、加工プログラム２０において１ブロック分の加工動作を行う平均時間よりもある程度短い時間幅であるとよい。これにより、プログラム実行部２４がブロック毎のプログラムを実行処理している間に、補助動作カウンタＣMSを均等的に減らしていくことができる。また、プログラム実行部２４が加工動作ブロックＢＰを実行している最中でも、補助動作カウンタが０となることに基づき、独立補助動作を直ちに開始することが可能となる。
【００７５】
カウンタ算出部３２は、補助動作カウンタＣMSを算出すると、プログラム実行部２４のカウンタレジスタにこの補助動作カウンタＣMSをセットする。その後カウント処理部３４の処理に移行させる。
【００７６】
カウント処理部３４は、加工動作時に、カウンタ算出部３２により補助動作カウンタＣMSの情報がセットされることに基づき、この補助動作カウンタＣMSのカウントを実施する。カウント処理部３４は、所定のフローを繰り返して一定の時間が経過する毎に、セットされた補助動作カウンタＣMSを１つずつ減らすカウントを行い、補助動作カウンタＣMSが０になることに基づき独立補助動作の制御を開始する。
【００７７】
本実施形態に係る数値制御装置１０は、基本的には以上のように構成されるものであり、以下その作用効果について説明する。
【００７８】
数値制御装置１０は、工作機械１２の制御時に、プログラム先読部２２により加工プログラム２０を読み出して加工プログラム２０の解析を行う（先読ステップ）。図５に示すように、プログラム先読部２２では、上述した式（１）により加工プログラム２０に記述された１ブロック毎の実行時間Ｔを計算し（ステップＳ１１）、算出した実行時間Ｔを記憶する。この際、加工動作の動作種類に実行時間Ｔを紐付けて記憶させる。
【００７９】
そして、プログラム先読部２２は、先読解析中に、補助動作ブロックＢＭ（補助機能コード）を検出したか否かを判定する（ステップＳ１２）。補助動作ブロックＢＭを検出しない場合には、ステップＳ１１に戻って先読解析を繰り返す。一方、補助動作ブロックＢＭを検出した場合には、ステップＳ１３に進む。
【００８０】
補助動作ブロックＢＭを検出すると、プログラム先読部２２は、切削送り動作を実施する切削送り時間ＴFを算出する（ステップＳ１３）。この際、プログラム先読部２２は、先読解析記憶部に記憶されている切削送り動作に該当するブロックを実行時間Ｔと共に読み出して、上述した式（２）により切削送り時間ＴFを算出し、数値制御装置１０のメモリに記憶する。
【００８１】
また、プログラム先読部２２は、切削送り時間ＴFと同様の処理により、早送り動作を実施する早送り時間ＴRを算出し（ステップＳ１４）、さらにドウェル動作を実施するドウェル時間ＴWを算出する（ステップＳ１５）。すなわち、早送り時間ＴRの算出には式（３）を用い、ドウェル時間ＴWの算出には式（４）を用いる。なお、動作種類の時間を算出する処理順（ステップＳ１３〜Ｓ１５）については、特に限定されないことは勿論である。
【００８２】
以上の処理により、プログラム先読部２２は、補助動作ブロックＢＭを検出した際の処理を終了する。またプログラム先読部２２は、ある程度の時間経過（例えば、プログラム実行部２４が独立補助動作を開始するタイミング）に基づき、上記の処理フローを再開して先読解析を行う。
【００８３】
一方、プログラム実行部２４は、プログラム先読部２２により先読解析された加工プログラム２０に基づき加工動作又は連続補助動作を行っている。この際、加工動作制御部２８が、加工プログラム２０の加工動作ブロックＢＰを先頭から順に実行処理することで、加工軸駆動装置１４及び主軸駆動装置１６を駆動制御する。そして、プログラム実行部２４は、補助動作制御部３０を待機状態とし、プログラム先読部２２から補助動作検出情報Ｉを受信することに基づき、独立補助動作の開始タイミングを設定する処理フロー（実行ステップ）を開始する。
【００８４】
図６に示すように、補助動作制御部３０は、まず実行待機時間ＴMSや補助動作カウンタＣMSの算出が必要か否かを判定する（ステップＳ２１）。詳細には、補助動作制御部３０は、補助動作検出情報Ｉを最初に受信したか否か、又はオーバライドの変更があったか否かを判定する。実行待機時間ＴMSや補助動作カウンタＣMSの算出が必要な場合、つまり補助動作検出情報Ｉを最初に受信した場合やユーザによりオーバライドの変更があった場合には、ステップＳ２２に進む。一方、実行待機時間ＴMSや補助動作カウンタＣMSの算出が必要ない場合には、ステップＳ２２〜Ｓ２５を飛ばしてステップＳ２６に進む。
【００８５】
ステップＳ２２において、カウンタ算出部３２は、プログラム実行部２４が現在実行処理している実行ブロックＢＥから補助動作検出情報Ｉに含まれる補助動作ブロックＢＭまでの完了時間ＴMを、式（５）を用いて算出する。また、カウンタ算出部３２は、補助動作処理用記憶部３６に記憶されている条件テーブル４０を参照して、補助機能コードに対応した独立補助動作のオフセット時間ＴSETを設定する（ステップＳ２３）。
【００８６】
そして、カウンタ算出部３２は、算出した完了時間ＴMと、抽出したオフセット時間ＴSETとに基づき、式（６）により実行待機時間ＴMSを算出する（ステップＳ２４）。これにより現在の実行ブロックＢＥから独立補助動作を開始するまでの正確な時間を得ることができる。
【００８７】
その後、カウンタ算出部３２は、カウント処理部３４によりカウントを行うため、算出した実行待機時間ＴMSと、補助動作処理用記憶部３６に記憶されている補間周期Ｃとに基づき、式（７）により補助動作カウンタＣMSを算出する（ステップＳ２５）。算出された補助動作カウンタＣMSは、カウンタレジスタにセットされる。
【００８８】
次に、カウント処理部３４が処理を開始して、補助動作カウンタＣMSが０以外か、又は０となっているかを判定する（ステップＳ２６）。そして、補助動作カウンタＣMSが０以外の場合には、ステップＳ２７に進み、補助動作カウンタＣMSが０となっている場合には、ステップＳ３０に進む。
【００８９】
ステップＳ２７において、カウント処理部３４は、補間周期Ｃに対応する時間だけ待機して時間を経過させる。その後、カウント処理部３４は、加工プログラム２０が実行中か停止中か判定し（ステップＳ２８）、停止中の場合にはステップＳ２１に戻り、加工プログラム２０を実行中の場合にはステップＳ２９に進む。
【００９０】
そして、ステップＳ２９において、カウント処理部３４は、補助動作カウンタＣMSを１回カウントする。つまりＣMS＝ＣMS−１の処理を行う。このステップＳ２９の後はステップＳ２１に戻って、上記の処理フローを行う。２回目以降の処理フローでは、オーバライドが変更されていなければ、ステップＳ２１からステップＳ２６に飛ぶことになり、補助動作カウンタＣMSの判定を直ぐに実施することになる。
【００９１】
そして、ステップＳ２６で補助動作カウンタＣMSが０となっている場合に、補助動作制御部３０は、補助駆動装置１８に独立補助動作の開始信号（動作指令）を出力して、独立補助動作の制御を開始する（ステップＳ３０）。これにより、補助動作制御部３０は、補助駆動装置１８による補助動作を最適なタイミングで実施することができる。
【００９２】
以上のように、本実施形態に係る数値制御装置１０は、加工プログラム２０内の補助動作ブロックＢＭを先読みにより検出すると、補助機能コードに対応するオフセット時間ＴSETだけ補助動作ブロックＢＭの実行タイミングｔ2をずらすことができる。そのため、プログラム実行部２４は、加工動作に合ったタイミングで補助動作の制御を開始することができる。従って、数値制御装置１０は、補助動作の実施タイミングを良好に設定して、制御の計画性を高めると共に、加工時間の短縮化を図ることができる。
【００９３】
また、数値制御装置１０は、完了時間ＴMを算出して、この完了時間ＴMからオフセット時間ＴSETをずらすことで、補助動作の実行タイミングｔ2を精度よく算出することができる。さらに、プログラム実行部２４は、補助動作処理用記憶部３６から条件テーブル４０を参照することで、補助動作の種類に応じたオフセット時間ＴSETを簡単に設定することができる。
【００９４】
またさらに、数値制御装置１０は、加工動作ブロックＢＰによって指定される軸移動の移動量及び移動速度に基づいてブロック毎の実行時間Ｔを算出することで、完了時間ＴMをより正確に算出することができる。そして、数値制御装置１０は、加工動作の種類毎の動作時間を算出し、加工速度を調整するためのオーバライド係数をそれぞれ乗算することで、加工動作の実施時間をより一層正確に反映することができる。そのため、精度のよい先読時間を得ることができる。
【００９５】
なお、本発明に係る数値制御装置、及び数値制御装置の制御方法は、上記の実施形態に限定されず、種々の変形例や応用例をとり得る。例えば、完了時間ＴMの算出、オフセット時間ＴSETの設定、実行待機時間ＴMSの算出、補助動作カウンタＣMSの算出を行う各構成（つまりカウンタ算出部３２の機能）は、一部又は全部がプログラム先読部２２に設けられていてもよい。また、カウント処理部３４は、補助動作カウンタＣMSの情報を用いてカウントを行うだけでなく、実行待機時間ＴMSをそのまま時間計測して独立補助動作を開始する構成でもよい。
【００９６】
〔第２実施形態〕
図７に示すように、数値制御装置１０は、第２実施形態に係る加工プログラム５０に基づき、オフセット時間ＴSETをセットする際に、条件テーブル４０の参照に代えて、加工プログラム５０のブロックでアドレス指定を行ってもよい。なお第２実施形態において、加工プログラム５０以外の構成は、第１実施形態と同一であり、その詳細な説明は省略する。
【００９７】
この場合、加工プログラム５０は、独立補助動作の補助機能コード（ＭコードやＢコード）と同じ行に、頭文字Ｑ及びその後に連なる数値によりオフセット時間ＴSETを規定する。なお図示例では、補助動作の実行タイミングｔ2を補助動作ブロックＢＭに対して３ｓｅｃ先行することを意味している。
【００９８】
このように、加工プログラム２０の補助動作ブロックＢＭに補助動作のオフセット時間ＴSETを記述することでも、第１実施形態に係る数値制御装置１０と同様の効果を得ることができる。特に、数値制御装置１０は、補助機能コードに併記されたオフセット時間ＴSETを用いることで、条件テーブル４０を用意する必要がなくなり、また加工プログラム２０の作成時に、ユーザの任意によって、補助動作の実行タイミングｔ2を良好に設定することが可能となる。
【００９９】
なお、本発明は、上記の実施形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において、種々の改変が可能なことは言うまでもない。
【符号の説明】
【０１００】
１０…数値制御装置                      １２…工作機械
２０、５０…加工プログラム              ２２…プログラム先読部
２４…プログラム実行部                  ２６…プログラム記憶部
２８…加工動作制御部                    ３０…補助動作制御部
３２…カウンタ算出部                    ３４…カウント処理部
３６…補助動作処理用記憶部              ４０…条件テーブル
ＢＥ…実行ブロック                      ＢＭ…補助動作ブロック
ＢＰ…加工動作ブロック                  Ｃ…補間周期
ＣMS…補助動作カウンタ                  Ｉ…補助動作検出情報
Ｔ…実行時間                            ＴM…先読時間長
ＴMS…実行待機時間                      ＴSET…オフセット時間長
【図１】
2018067245.tif 000003
【図２】
2018067245.tif 000004
【図３】
2018067245.tif 000005
【図４】
2018067245.tif 000006
【図５】
2018067245.tif 000007
【図６】
2018067245.tif 000008
【図７】
2018067245.tif 000009