(57)【要約】【課題】加工途中で、工具を他のものと干渉せずに退避させる。【解決手段】切削開始する前の位置決めブロックＮ１を、退避ブロックとして、該ブロックを解読した結果の実行可能形式データと、該ブロックの指令終点座標位置Ｐ１を記憶しておく。加工を中断し、工具１を退避させる要求が入力されると、加工中断位置Ｐ２から記憶した退避ブロックの終点座標位置Ｐ１まで工具を退避させる退避動作１を行う。その後、記憶する退避ブロックの実行可能形式データの移動方向を逆にして該実行可能形式データを実行して工具１を移動させる。工具１は、退避ブロックの移動経路を逆方向に移動する退避動作２を行う。この退避動作１、２によって工具を他のものと干渉させずに退避させることができる。【選択図】図１
2018034254.tif 000002
【特許請求の範囲】
【請求項１】
工作機械を制御する数値制御装置において、
加工途中で加工を中断し工具を退避させる際に、指令移動経路を逆方向に移動させる加工プログラムのブロックを退避ブロックとして選択する条件を設定する退避ブロック判定条件設定手段と、
加工プログラムを実行し加工を実行する際に、解読した加工プログラムのブロックが前記退避ブロック判定条件設定手段で設定された条件を満たした退避ブロックか否か判定する判定手段と、
前記判定手段で退避ブロックと判定されたブロックの解読結果の実行可能形式データを読取る手段と、
前記判定手段で退避ブロックと判定されたブロックによる終点座標位置を読み取る手段と、
前記読み取った実行可能形式データ及び終点座標位置を記憶するメモリ手段と、
工具退避指令が入力されたとき、その時の工具位置より前記メモリ手段に記憶された退避ブロックの終点座標位置まで工具を移動させた後、前記メモリに記憶された退避ブロックの実行可能形式データの移動方向を逆にして実行可能形式データ実行して工具を退避させる工具退避手段と、
を備え干渉を回避する工具退避機能を備えた数値制御装置。
【請求項２】
前記メモリ手段に複数の退避ブロックの実行可能形式データ及び終点座標位置が記憶可能で、工具退避手段は、前記メモリ手段に記憶した退避ブロック情報を記憶とは逆の順序で読み出し、工具退避指令が入力された時の工具位置より読みだした退避ブロックの終点座標位置まで工具を移動させた後、この退避ブロックの実行可能形式データの移動方向を逆にして実行可能形式データ実行し、次に読みだした退避ブロックの終点座標位置まで工具を移動させた後、この退避ブロックの実行可能形式データの移動方向を逆にして実行可能形式データ実行を繰り返し行い、最後に読み出した退避ブロックの実行可能形式データの移動方向を逆にして実行可能形式データ実行するまで行い、工具を退避させる請求項１に記載の干渉を回避する工具退避機能を備えた数値制御装置。
【請求項３】
前記退避ブロック判定条件設定手段は、退避ブロックとして選択するブロックの加工プログラムのシーケンス番号若しくはブロックの行数を設定し、前記判定手段は設定されたシーケンス番号若しくは加工プログラムの行数によって退避ブロックか否かを判定する請求項１又は請求項２に記載の干渉を回避する工具退避機能を備えた数値制御装置。
【請求項４】
前記退避ブロック判定条件設定手段は、加工プログラムの各ブロックが有する情報の内、退避ブロックとして指定しうる複数の情報を退避ブロックの選定条件として設定し、前記判定手段は解読したブロックの情報が設定された選定条件をすべて満たすものかを判別し、退避ブロックか否かを判定する請求項１又は請求項２に記載の干渉を回避する工具退避機能を備えた数値制御装置。
【請求項５】
前記選定条件は、少なくとも、位置決め指令と該位置決め指令されている軸及び移動距離を含む請求項４に記載の干渉を回避する工具退避機能を備えた数値制御装置。
【請求項６】
前記退避ブロック判定条件設定手段の代りに、加工プログラム中のブロックに対して予め決められたコードを付して退避ブロックを指定し、前記判定手段は、予め決められたコードが付されたブロックを退避ブロックとして判定する請求項１又は請求項２に記載の干渉を回避する工具退避機能を備えた数値制御装置。
【請求項７】
前記退避ブロック判定条件設定手段は、工具径補正指令前の直近の位置決め指令のブロック、工具径補正指令後の位置決め指令のブロック、若しくは、複合形固定サイクル指令等の加工モード切替コードが付されたブロックの直前の位置決め指令のブロックを退避ブロックとして選択する条件として設定し、前記判定手段は、解読されたブロックの情報が前記条件設定手段で設定された条件を満たすものか判別し、退避ブロックか否かを判定する請求項１又は請求項２に記載の干渉を回避する工具退避機能を備えた数値制御装置。
【請求項８】
前記判定手段は退避ブロックを判別選択する方法を複数備え、前記退避ブロック判定条件設定手段は、退避ブロックを判別選択する方法、判定条件を設定し、前記判定手段は、選択設定された方法で、退避ブロックか否かを判定する請求項１又は請求項２に記載の干渉を回避する工具退避機能を備えた数値制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、工作機械を制御する数値制御装置に関し、特に、加工途中で工具を他のものと干渉させないで退避させる機能を備えた数値制御装置に関する。
【背景技術】
【０００２】
数値制御工作機械において、加工プムグラムを実行して加工中、何らかの理由、原因によって、加工を中断したとき、その中断の理由や原因の解明ために及び復旧対策のために、工具を作業に安全な位置に退避させる必要がある。この退避動作は、退避動作途中で工具と被加工物のワークが干渉しないように工具を退避させる必要がある。  
例えば、図１２に示すように、ワークＷに穴３の加工を行っている途中で、加工を中断して、主軸２に取り付けられた工具１を退避させる場合、単純な一軸方向のみに工具１を退避させるのでは、工具１とワークＷが干渉して、ワークＷや工具１が破損してしまう恐れがある。そのため干渉の発生を回避させながら工具１を退避させる方法が必要となる。
【０００３】
特許文献１には、この干渉の発生を回避して工具を退避させる方法として、加工プログラムを実行しながら、実行されるプログラムと逆方向の工具退避プログラムを常時計算して保存しておき、加工中断時には、その時点での工具移動ベクトルに対して垂直な方向に一定距離だけ工具を移動させた後、それまで保存していた工具退避プログラムを実行して、加工経路とは逆方向に工具を移動させて工具を基準位置まで退避させることにより、工具をワークと干渉することなく退避させる方法が記載されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００７−１８８１７０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
数値制御工作機械において、加工途中で何らかの理由で加工を中断して工具を退避させる必要が生じたとき、工具が他のものと干渉しないように工具を退避させる必要がある。
特許文献１に記載された方法おいては、実行される加工プログラムとは移動方向が逆方向の工具退避プログラムを常時求め、保存しておく必要がある。そのため、この工具退避プログラムを記憶保存する記憶手段を必要とし、ＮＣ加工プログラムが大きくなれば、この記憶手段として大容量のものが必要となる。もし、この記憶手段の記憶領域が不足した場合には、前工具退避プログラムを格納しきれず、所望の位置まで退避できないという問題が生じる。
【０００６】
また、加工プログラムの内容によっては、加工時の加工経路に沿って逆方向に移動すること（加工プログラムを逆方向に実行すること）が、必ずしも適切でない場合がある。例えば、ねじ穴の加工の場合、加工を停止した工具の回転位置（位相）及び送り位置が正確に把握できないことから、加工プログラムを逆方向に実行して、加工経路を逆方向に移動させると加工済みのねじ部を破損させる恐れがある。
【０００７】
また、特許文献１に記載された、工具移動ベクトルに対して垂直な方向に一定距離だけ工具を移動させた後、加工経路とは逆方向に工具を移動させて工具を基準位置まで退避させる方法でも、干渉を回避できない場合がある。  
例えば、図１３に示すような、加工プログラムで指令された加工経路Ｌで穴加工を行う場合、その加工途中の点Ｑ１で加工を停止し、工具１を退避させる場合、特許文献１に記載されたように工具移動ベクトルに対して垂直な方向に一定距離だけ工具１を移動させシフトさせた後、加工プログラムとは移動方向が逆方向の工具退避プログラムで工具を移動させる退避動作の経路ＲＬで工具１を移動させると、点Ｑ２で工具１とワークＷの干渉が発生することになり、干渉を回避して工具を退避させることができないという問題が発生する。
【０００８】
そこで、本発明の目的は、加工途中からの工具の退避を、干渉を発生させることなく容易にできる工具退避機能を備えた数値制御装置を提供することにある。
【課題を解決するための手段】
【０００９】
本願請求項１に係る発明は、工作機械を制御する数値制御装置において、加工途中で加工を中断し工具を退避させる際に、指令移動経路を逆方向に移動させる加工プログラムのブロックを退避ブロックとして選択する条件を設定する退避ブロック判定条件設定手段と、加工プログラムを実行し加工を実行する際に、解読した加工プログラムのブロックが前記退避ブロック判定条件設定手段で設定された条件を満たした退避ブロックか否か判定する判定手段と、前記判定手段で退避ブロックと判定されたブロックの解読結果の実行可能形式データを読取る手段と、前記判定手段で退避ブロックと判定されたブロックによる終点座標位置を読み取る手段と、前記読み取った実行可能形式データ及び終点座標位置を記憶するメモリ手段と、工具退避指令が入力されたとき、その時の工具位置より前記メモリ手段に記憶された退避ブロックの終点座標位置まで工具を移動させた後、前記メモリに記憶された退避ブロックの実行可能形式データの移動方向を逆にして実行可能形式データ実行して工具を退避させる工具退避手段とを備えることによって、加工を中断した位置から工具を他のものと干渉させずに退避させることができるようにしたものである。
【００１０】
請求項２に係る発明は、前記メモリ手段に複数の退避ブロックの実行可能形式データ及び終点座標位置を記憶可能とし、前記工具退避手段は、前記メモリ手段に記憶した退避ブロック情報を記憶とは逆の順序で読み出し、工具退避指令が入力された時の工具位置より読みだした退避ブロックの終点座標位置まで工具を移動させた後、この退避ブロックの実行可能形式データの移動方向を逆にして実行可能形式データ実行し、次に読みだした退避ブロックの終点座標位置まで工具を移動させた後、この退避ブロックの実行可能形式データの移動方向を逆にして実行可能形式データ実行を繰り返し行い、最後に読み出した退避ブロックの実行可能形式データの移動方向を逆にして実行可能形式データ実行するまで行い、工具を退避させるようにした。
【００１１】
請求項３に係る発明は、前記退避ブロック判定条件設定手段で、退避ブロックとして選択するブロックの加工プログラムのシーケンス番号若しくはブロックの行数を設定し、前記判定手段で、設定されたシーケンス番号若しくは加工プログラムの行数によって退避ブロックか否かを判定するようにした。
【００１２】
請求項４に係る発明は、前記退避ブロック判定条件設定手段で、加工プログラムの各ブロックが有する情報の内、退避ブロックとして指定しうる複数の情報を退避ブロックの選定条件として設定し、前記判定手段で、解読したブロックの情報が設定された選定条件をすべて満たすものかを判別し、退避ブロックか否かを判定するようにした。また、請求項５に係る発明は、請求項４に係る発明において、前記選定条件は、少なくとも、位置決め指令と該位置決め指令されている軸及び移動距離を含むものとした。
【００１３】
請求項６に係る発明は、前記退避ブロック判定条件設定手段の代りに、加工プログラム中のブロックに対して予め決められたコードを付して退避ブロックを指定し、前記判定手段で、予め決められたコードが付されたブロックを退避ブロックとして判定するようにした。
【００１４】
請求項７に係る発明は、前記退避ブロック判定条件設定手段で、工具径補正指令前の直近の位置決め指令のブロック、工具径補正指令後の位置決め指令のブロック、若しくは、
複合形固定サイクル指令等の加工モード切替コードが付されたブロックの直前の位置決め指令のブロックを退避ブロックとして選択する条件として設定し、前記判定手段で、解読されたブロックの情報が前記条件設定手段で設定された条件を満たすものか判別し、退避ブロックか否かを判定するようにした。
【００１５】
請求項８に係る発明は、前記判定手段に退避ブロックを判別選択する方法を複数備え、前記退避ブロック判定条件設定手段で、退避ブロックを判別選択する方法、判定条件を設定し、前記判定手段により、選択設定された方法で、退避ブロックか否かを判定するようにした。
【発明の効果】
【００１６】
本発明は、加工途中で工具を退避させるとき、工具を他のものと干渉させずに退避させることが容易に実施でき、加工経路を逆方向に退避させると不都合な部分を含む加工プログラムにおいても、退避動作を干渉を起こすことなく実施できる。また、ブロック数の多い加工プログラムでも確実に所望の位置まで工具を退避させることが可能になる。
【図面の簡単な説明】
【００１７】
【図１】本発明の動作原理を穴加工の例をとって説明する説明図である。
【図２】本発明の一実施形態の数値制御装置の機能ブロック図である。
【図３】本発明において指定される退避ブロックと工具径補正指令との関係を説明する一例の説明図である。
【図４】本発明において指定される退避ブロックと複合形固定サイクル指令との関係を説明する一例の説明図である。
【図５】退避ブロックがシーケンス番号等で指定されたときの本発明の一実施形態の退避ブロック判定処理のアルゴリズムを示すフローチャートである。
【図６】退避ブロックを各種条件で選択するときの本発明の一実施形態の退避ブロック判定処理のアルゴリズムを示すフローチャートである。
【図７】加工プログラムに退避ブロックを示すコードが付されているときの本発明の一実施形態の退避ブロック判定処理のアルゴリズムを示すフローチャートである。
【図８】位置決め指令と、工具径補正指令若しくは複合形固定サイクル指令の組み合わせによって退避ブロックを判別する本発明の一実施形態の処理のアルゴリズムを示すフローチャートである。
【図９】本発明の一実施形態における退避ブロック情報読取り処理のアルゴリズムを示すフローチャートである。
【図１０】本発明の一実施形態における退避ブロックの終点座標位置を読み取る処理のアルゴリズムを示すフローチャートである。
【図１１】本発明の一実施形態における工具退避処理のアルゴリズムを示すフローチャートである。
【図１２】加工を中断して工具を退避させるとき工具とワークと干渉する説明図である。
【図１３】工具を所定量シフトさせ、加工経路とは逆方向に工具を移動させる場合において工具とワークの干渉が発生する例の説明図である。
【発明を実施するための形態】
【００１８】
本発明は、工具を安全に（干渉を発生させることなく）退避させるのに適した位置を指令位置（一般的には切削を開始する前の位置）としたブロック（加工プログラムの指令単位）を予め設定しておき、加工途中で加工を中断し、工具を退避させる際、加工中断位置より予め設定したブロックの終点座標位置まで加工プログラムの経路を無視して移動させ、それ以降は指令したブロック（退避ブロック）の経路に、沿って逆方向に移動させることにより、工具と他のものとの干渉を回避して工具を退避させるものである。
【００１９】
図１は、穴加工の例をとって本発明の動作原理を説明する説明図である。実線の矢印で示す経路は加工プログラムで指令された工具経路を示し、破線の矢印で示す経路は、工具を退避させるときの経路を表わす。  
加工プログラムのブロックＮ１で、工具１を点Ｐ１まで位置決め動作で移動させ、その後は切削動作と送り動作を行いながらワークＷを切削する加工の例である。本発明は、工具１を退避させるのに適した位置を指令位置とした加工プログラムのブロックＮ１を退避ブロックとして設定しておくものであるが、位置決め指令のブロックＮ１は、切削なしに工具１を移動させる指令のブロックであるから、このブロックの終点座標位置Ｐ１まで工具を移動させれば後は安全に工具を退避させることができる。この位置決めブロックＮ１を退避ブロックとして設定して、該ブロックの解読結果の実行可能形式データと終点座標位置（Ｐ１）を記憶しておく。そして、その後の切削加工中に、加工を停止して工具１を退避させる必要が生じたとき、例えば、ブロックＮ１１の指令を実行中に位置Ｐ２で加工を中断し、工具１を退避させるとすると、加工中断の位置Ｐ２から、設定記憶されている退避ブロックＮ１の終点座標位置Ｐ１へ工具１を移動させ（図１中破線で示す移動で、この移動を退避動作１という）、その後は、設定記憶されている退避ブロックＮ１の実行可能形式データに基づいて移動方向を逆にして移動させる（図１中破線で示す移動で、この移動を退避動作２という）。  
以上のような退避動作を行うことによって、工具１をワークＷ等に干渉することなく、安全に退避させることができる。
【００２０】
図２は、本発明の一実施形態の数値制御装置の機能ブロック図である。符号１００は数値制御装置、符号２００は、加工プログラムであり、符号３００は、工作機械の各送り軸を駆動するサーボモータを表わす。なお、主軸モータ、該モータの制御手段等の本発明と直接関係のない部分は省略している。  
数値制御装置１００は、従来と同様に、解読手段１１、パルス分配手段１２、サーボ制御手段１３、座標更新手段１４を備える。解読手段１１は、加工プログラム２００の各ブロックの指令を順次読取り、解読して実行可能形式データに変換しレジスタに記憶する。なお、解読手段１１は、ブロックで指令された指令が実行する前に複数ブロック先行して読み込まれ、複数のブロックの実行可能形式データがレジスタ（以下このレジスタを先読みレジスタという）に順次記憶される。パルス分配手段１２は解読手段１１で解読し先読みレジスタに格納された実行可能形式データを先入れ先出し方式で読み出し、該データに基づいて各送り軸へパルス分配を行い、サーボ制御手段１３は、パルス分配を受けて各送り軸のサーボモータを制御する。また、座標更新手段１４は、パルス分配手段１２からの各送り軸へのパルス分配に基づいて各送り軸の座標位置（工具の座標位置）を更新する。
【００２１】
上述した、解読手段１１、パルス分配手段１２、サーボ制御手段１３、座標更新手段１４の構成、作用は数値制御装置１００が従来から備える手段、作用であるが、本実施形態では、さらに、退避ブロック条件設定手段１５、退避ブロック判定手段１６、退避ブロック情報読取り手段１７、ブロック終点位置読取り手段１８、退避ブロック情報記憶メモリ１９、工具退避手段２０、退避指令手段２１を備える。この追加した手段によって、加工途中で工具を退避させるとき、工具を他のものと干渉させずに退避させることを可能としているものである。
【００２２】
本発明は、退避ブロックになる条件を決め、この条件を満たすブロックを退避ブロックと判定し、設定するものであるが、この退避ブロックの設定、判定方法しては、次のＡ〜Ｄの方法がある。
Ａ．加工プログラムのシーケンス番号やブロックの位置（行数）を退避ブロック判定条件として設定し、この設定条件を満たすブロックを退避ブロックとして設定する方法。
Ｂ．退避ブロックに指定できる各種条件（例えば、指令されている軸（Ｚ軸、平面に垂直な軸）の位置決め指令と、その移動方向、さらには付加的にその移動距離、又は終点座標値（始点でもよい）等）を指定し、この条件をすべて有するブロックを退避ブロックとして設定する方法。
Ｃ．ＮＣ加工プログラム中に退避ブロックであることを示すコード（例えば、ＧコードやＭコード）でブロックを指定して、このコードがブロックに付加されていることを退避ブロック決定条件として退避ブロックを設定する方法。
Ｄ．加工プログラムの特定の内容を条件として、退避ブロックを選別して設定する方法で、
Ｄ１．工具径補正オン前の直近のＺ軸（＝工具径補正方向を含む平面に垂直な軸（以下、基本軸という））の位置決め指令であることを条件として該位置決め指令のブロックを退避ブロックとする方法。
Ｄ２．工具径補正オン後のＺ軸（＝基本軸）の位置決め指令であることを条件として該位置決め指令のブロックを退避ブロックとする方法。
Ｄ３．複合形固定サイクルの指令の直前の位置決め指令であることを条件として該位置決め指令のブロックを退避ブロックとする方法。
等の方法がある。
なお、退避ブロックとして指定する方法として、上述したＤ１、Ｄ２、Ｄ３以外にも、ねじ切り加工等の加工モード切替コードが付されたブロックの直前に指令された位置決め指令のブロックを退避ブロックとして指定することも可能である。
【００２３】
図３は、上記Ｄ１、Ｄ２の方法で決定したブロックが、退避動作２を行う退避ブロックとして適していることを説明する図である。工具径補正する前又は後の基本軸の位置決め指令のブロックは、このブロックの指令で工具をワーク等と干渉を発生させることなく移動させ位置決めできるから、同じ経路を逆方向に移動させても干渉を発生させることなく移動できるので、退避動作２を行うブロックとして適している。
【００２４】
上記Ｄ１の設定方法が有効な図３に示す穴３の加工を行う加工プログラムは、次の加工プログラム例１のようなものとなる。
加工プログラム例１
Ｇ００Ｘ０Ｙ０
Ｚ-５０.０
Ｇ４２Ｇ０１Ｘ-３０.０Ｄ１Ｆ１０００
Ｇ０２Ｉ-３０.０
Ｚ-３.０
Ｇ０２Ｉ-３０.０
・・・
・・・
【００２５】
上記設定方法Ｄ１で退避ブロックを指定すれば、工具径補正指令の「Ｇ４２」が指令されたブロックの直前のＺ軸の位置決め指令の「Ｚ-５０.０」が退避ブロックとして指定されることになる。なお、「Ｇ００Ｘ０Ｙ０」は位置決め指令、「Ｇ４２」は工具径補正−右の指令、「Ｇ０１Ｘ-３０.０」は直線補間指令、「Ｄ１」は工具径補正の補正番号１を指令する指令、「Ｆ１０００」は送り速度の指令、「Ｇ０２」は時計方向の円弧補間の指令、「Ｉ-３０.０」は、Ｘ軸をＩ軸として該Ｉ軸−３０.０を円弧中心とする指令である。
【００２６】
また、上記設定方法Ｄ２が有効な図３に示す穴３の加工を行う加工プログラムは、次の加工プログラム例２のようなものとなる。
加工プログラム例２
Ｇ４２Ｘ０Ｙ０Ｄ１
Ｇ００Ｚ-５０.０
Ｇ０１Ｘ-３０.０Ｆ１０００
Ｇ０２Ｉ-３０.０
Ｚ-３.０
Ｇ０２Ｉ-３０.０
・・・
・・・
【００２７】
工具径補正指令の「Ｇ４２」が指令されたブロックの直後のＺ軸の位置決め指令の「Ｇ００Ｚ-５０.０」が退避ブロックとして指定されることになる。
【００２８】
図４は旋盤系の複合形固定サイクルを使用した内径加工で平面第１軸（Ｚ軸）の位置決め指令後のサイクル指令で加工を行う例の説明図であり、この加工を行うＮＣ加工プログラムは次の加工プログラム例３のようなものとなる。
加工プログラム例３
Ｇ００Ｚ１.０
Ｇ７１Ｕ＿Ｒ＿
Ｇ７１Ｐ１Ｑ９Ｕ＿Ｗ＿Ｆ＿Ｓ＿Ｔ＿
Ｎ１Ｇ００Ｘ４０.０Ｚ０
Ｎ２Ｇ０１Ｚ−７.０
Ｎ３Ｘ３５.０
・・・
・・・
【００２９】
上記設定方法Ｄ３で退避ブロックを設定すれば、上記複合形固定サイクルを使用した上記ＮＣ加工プログラム において、固定サイクル指令の「Ｇ７１」が指令される直前の位置決め指令「Ｇ００Ｚ１.０」のブロックが、退避動作２を行うブロックとして指定されることになる。なお、「Ｇ７１Ｕ＿Ｒ＿」の指令は、Ｇ７１で固定サイクル指令を、Ｕで切り込み量を、Ｒで逃げ量を指令するものであり、「Ｇ７１Ｐ１Ｑ９Ｕ＿Ｗ＿Ｆ＿Ｓ＿Ｔ＿」の指令は、Ｇ７１で固定サイクルを指令し、Ｐ１Ｑ９で輪郭形状を指令するものでシーケンス番号Ｎ１〜Ｎ９のその形状を指令するものである。またＵ（Ｘ方向）、Ｗ（Ｚ軸方向）は仕上げ代、Ｆは送り、Ｓは主軸速度、Ｔは工具を指令するコードである。
【００３０】
上述した退避ブロックの設定方法Ａ、Ｂの場合、数値制御装置１００が有する表示装置とキーボート等の入力手段を退避ブロック条件設定手段１５として用いて、数値制御装置のパラメータ等によって退避ブロックを決定する条件を設定する。また、上記設定方法Ｃでは、退避ブロック条件設定手段１５から退避ブロックを示すコードを入力するのではなく、加工プログラム中に退避ブロックであることを指定するコードを付加するものであるから、退避ブロック判定手段として格納された設定方法Ｃのプログラムに予め退避ブロックを示すコードを有するブロックを退避ブロックとして選択するようにプログラムしておけばよい。また、上記Ｄ１〜Ｄ３の退避ブロック設定方法においても、退避ブロック判定手段１６で、この設定条件Ｄ１〜Ｄ３を満足するか判定して退避ブロックを決定するようにすればよいものであるから、特別に退避ブロック条件設定手段１５を設ける必要はない。
【００３１】
しかし、本実施形態では、種々の加工プログラムに応じて、上述したＡ〜Ｄの退避ブロックの設定方法を選択できるようにしているもので、数値制御装置の表示装置とキーボード等の入力手段で構成される退避ブロック条件設定手段１５で、Ａ〜Ｄの設定方法を選択して退避ブロックを設定できるようにしている。
【００３２】
退避ブロック判定手段１６は、退避ブロック条件設定手段１５で設定された設定方法で、解読手段１１で読み込まれたブロックが設定条件を満たしているか否かを判定するもので、設定方法Ａがセットされていれば、シーケンス番号若しくはプログラムの位置（行数）によって、退避ブロックを特定する。設定方法Ｂが有効にセットされていれば、解読手段１１から出力されるブロック情報データが、この設定方法Ｂに対して設定されている各設定条件を満たしているものか否かで判別する。設定方法Ｃが有効にセットされていれば、解読手段１１出力されるブロック情報データに基づいて退避ブロックを指定するコード（ＧコードやＭコード）があるか否かによって退避ブロックか否かを判定する。
【００３３】
設定方法Ｄが有効にセットされていれば、工具径補正指令のブロックと基本軸の位置決め指令のブロックの組み合わせ、又は複合形固定サイクルの指令のブロックと位置決め指令のブロックの組み合わせによって、退避ブロックを判定する。
【００３４】
退避ブロック情報読取り手段１７は、退避ブロック判定手段１６が退避ブロックと判定したとき、解読手段１１で解読されたブロックの実行可能形式データを読取り、退避ブロック情報記憶メモリ１９に記憶させる。また、ブロック終点位置読取り手段１８は、退避ブロック判定手段１６が退避ブロックと判定したとき、座標更新手段１４より座標位置を読取り、退避ブロック情報記憶メモリ１９に記憶させる。その結果、退避ブロック情報記憶メモリ１９には退避ブロックの実行可能形式データとその終点座標位置が記憶されることになる。
【００３５】
加工途中において、数値制御装置１００の操作盤、ソフトキー、手動入力手段等で構成された退避指令手段２１より退避指令が入力されると、工具退避手段２０は、退避ブロック情報記憶メモリ１９に記憶された実行可能形式データ及び終点座標位置を読み出し、加工を中断した座標位置より、読み出した退避ブロックの終点座標位置に工具を移動させる指令をパルス分配手段１２に出力して「退避動作１」を実行させる。その後は、読みだした実行可能形式データの移動方向を逆にして、実行可能形式データをパルス分配手段１２に出力し、「退避動作２」を実行させる。
【００３６】
図５は、退避ブロック条件設定手段１５で退避ブロックの判定方法Ａが入力設定され、その判定条件として、シーケンス番号又はブロックの行数が入力設定されているとき、退避ブロック判定手段１６として、数値制御装置１００のプロセッサが実施する退避ブロック判定処理のアルゴリズムを示すフローチャートである。プロセッサは、加工プログラムを１ブロック読み取る毎に、この図５に示す処理を実行する。
【００３７】
まず、当該ブロックのシーケンス番号若しくはブロックの行数を読取り（ステップａ１）、該読み取ったシーケンス番号若しくはブロックの行数が設定されているシーケンス番号若しくはブロックの行数と一致しているか判別し（ステップａ２）、一致していれば、当該ブロックを解読手段１１で解読して得られ、先読みレジスタに格納されている実行可能形式データと共に設けられている退避ブロックを示すフラグＦを「１」にセットし（ステップａ３）、また、シーケンス番号若しくはブロックの行数が設定されたものと一致しなければフラグＦは「０」にセットし（ステップａ４）、当該ブロックを解読する際に実施される退避判定処理は終了する。こうして、退避ブロックと決定されたブロックの実行可能形式データと共にフラグＦ＝１のデータがレジスタに記憶されることになる。
【００３８】
図６は、退避ブロック条件設定手段１５で退避ブロックの判定方法Ｂが入力設定され、その判定条件として各種条件（所定の軸の位置決め指令、移動方向、移動距離、終点座標値等）が入力設定されているとき、退避ブロック判定手段１６として、数値制御装置１００のプロセッサが実施する退避ブロック判定処理のアルゴリズムを示すフローチャートである。プロセッサは、解読手段１１で加工プログラムを１ブロック読み取る毎に、この図６に示す処理を実行する。
【００３９】
まず、解読手段１１で解読されたブロック情報を読取り（ステップｂ１）、退避ブロックを判定するために設定された条件を特定する指標ｉを「１」にセットし（ステップｂ２）、読み取ったブロック情報はｉ番目の設定条件を満たしているか判別し（ステップｂ３）、満たしていれば、指標ｉが設定されている条件の数Ｎ以上か判別し（ステップｂ４）、条件の数Ｎに達していなければ、指標ｉを「１」インクリメントし（ステップｂ５）、ステップｂ３に戻る。以下、ステップｂ３〜ｂ５を繰り返し実行し、指標ｉが設定条件の数Ｎに達し、設定されている退避ブロックの判定条件の全てを満たしていれば、先読みレジスタに格納された実行可能形式データに設けられている退避ブロックを示すフラグＦを「１」とする（ステップｂ６）。また、ステップｂ３〜ｂ５を繰り返し実行中、１つでも設定条件を満たさず成立しなければ、ステップｂ３からステップｂ７に移行し、フラグＦを「０」とする。こうして各ブロックの実行可能形式データと共に退避ブロックを示すフラグＦを、退避ブロックであれば「１」に、退避ブロックでなければ「０」にセットされ、当該ブロックの退避ブロック判定処理は終了する。
【００４０】
図７は、退避ブロック条件設定手段１５で退避ブロックの判定方法Ｃが入力設定され、その判定条件として、退避ブロックを示すコード（Ｇコード又はＭコード）が設定されているとき（なお、この判定方法が採用されるときは、加工プログラムには、退避ブロックとして選ばれるブロックに、退避ブロックを示すコード（Ｇコード又はＭコード）が設定されている。）、退避ブロック判定手段１６として、数値制御装置１００のプロセッサが実施する退避ブロック判定処理のアルゴリズムを示すフローチャートである。プロセッサは、加工プログラムを１ブロック読み取る毎に、この図７に示す処理を実行する。
【００４１】
解読手段１１で解読されたブロック情報を読取り（ステップｃ１）、読み取ったブロック情報の中に設定されている退避ブロックを指定するコード（Ｇコード又はＭコード）が含まれているか判別し（ステップｃ２）、含まれていれば、実行可能形式データと共に記憶する退避ブロックを示すフラグＦを「１」に（ステップｃ３）、含まれていなければ該フラグＦを「０」にセットし（ステップｃ４）、当該ブロックの退避ブロック判定処理は終了する。
【００４２】
図８は、退避ブロック条件設定手段１５で退避ブロックの判定方法Ｄが入力設定されたとき、退避ブロック判定手段１６として、数値制御装置１００のプロセッサが実施する退避ブロック判定処理のアルゴリズムを示すフローチャートである。プロセッサは、加工プログラムを１ブロック読み取る毎に、この図８に示す処理を実行する。
【００４３】
解読手段１１で解読されたブロック情報を読取り（ステップｄ１）、当該ブロックが位置決め指令のブロックか否か判別し（ステップｄ２）、位置決め指令のブロックでなければ、工具径補正指令のブロックか判別し（ステップｄ３）、工具径補正指令のブロックでなければ、複合形固定サイクルの指令のブロックか判定し（ステップｄ４）、複合形固定サイクル指令でもなければ、カウンタの値が「０」か判別し（ステップｄ１３）、「０」と判別されれば、当該ブロックの実行可能形式データと共に記憶される退避ブロックを示すフラグＦを「０」にセットし（ステップｄ８）、当該処理を終了する。以下、位置決め指令のブロック、工具径補正指令のブロック、複合形固定サイクル指令のブロックが読み込まれない限り、このステップｄ１、ｄ２、ｄ３、ｄ４、ｄ１３、ｄ８の処理をブロックを解読する毎に実行する。
【００４４】
ステップｄ３で、読み出したブロックが工具径補正の指令であると判別されたときには、工具径補正のブロックが読み込まれていることを示すフラグＦｒを「１」にセットし（ステップｄ６）、又、ステップｄ４で、読みだしたブロックが複合形固定サイクル指令である判別されたときには、複合形固定サイクル指令のブロックが読み込まれていることを示すフラグＦｃを「１」にセットし（ステップｄ５）、かつ、フラグＦｒを「１」にセットする（ステップｄ６）。なお、フラグＦｒ、Ｆｃ、カウンタは、加工プログラムを実行する初期設定で「０」に設定されている。  
次に、カウンタの値が「０」か否か判別し（ステップｄ７）、「０」ならば、当該ブロックの実行可能形式データと共に記憶される退避ブロックを示すフラグＦを「０」にセットし（ステップｄ８）、当該処理を終了する。
【００４５】
次に、ステップｄ２で、読みだしたブロックが位置決め指令である判別されると、該位置決め指令の軸が基本軸か否か判別し（ステップｄ９）、基本軸ならば、工具径補正のブロックが読み込まれていることを示すフラグＦｒが「１」にセットされているか判別し（ステップｄ１０）、「１」にセットされていれば、当該ブロックの実行可能形式データと共に記憶される退避ブロックを示すフラグＦを「１」にセットし（ステップｄ１５）、フラグＦｒ、Ｆｃを「０」にリセットし（ステップｄ１６）、当該処理を終了する。また、位置決め指令が基本軸に対する位置決め指令ではないときは（ステップｄ９）、複合形固定サイクル指令のブロックが読み込まれていることを示すフラグＦｃが「１」にセットされているか判別し（ステップｄ１１）、フラグＦｃが「１」であれば、当該ブロックの実行可能形式データと共に記憶される退避ブロックを示すフラグＦを「１」にセットし（ステップｄ１５）、フラグＦｒ、Ｆｃを「０」にリセットし（ステップｄ１６）、当該処理を終了する。すなわち、位置決め指令が基本軸の位置決めであれば、工具径補正指令ブロックが既に読み込まれフラグＦｒが「１」にセットされていれば、当該位置決め指令のブロックは退避ブロックとして指定され、フラグＦが「１」にセットされる。また、位置決め指令が基本軸でなくても、複合形固定サイクル指令のブロックが既に読み込まれフラグＦｃが「１」にセットされていれば、当該位置決め指令のブロックは退避ブロックとして指定され、フラグＦが「１」にセットされるものである。
【００４６】
一方、ステップｄ１０、ｄ１１でフラグＦｃ、Ｆｒが「１」にセットされていないと判別されたときには（工具径補正の指令や複合形固定サイクルの指令のブロックよりも先に位置決め指令のブロックが読み込まれたとき）、カウンタを「１」にセットし（ステップｄ１２）、ステップｄ８に進み、当該ブロックの実行可能形式データと共に記憶される退避ブロックを示すフラグＦを「０」にセットし、当該処理を終了する。
【００４７】
工具径補正指令や複合形固定サイクル指令のブロックが読み込まれる前に位置指令のブロックが読み込まれ、カウンタが「１」にセットされた後は、工具径補正指令や複合形固定サイクル指令のブロックが読み込まれるまで、ステップｄ１、ｄ２、ｄ３、ｄ４、ｄ１３、ｄ１４、ｄ８の処理がブロックを解読する毎に実行され、カウンタはブロックを解読される毎に１カウントアップされる（ステップｄ１４）。また、工具径補正指令や複合形固定サイクル指令のブロックが読み込まれるより前に、再び位置指令のブロックが読み込まれた場合には、ｄ１、ｄ２、ｄ９、ｄ１０又はｄ１１、ｄ１２の処理が実行されて、カウンタがカウントアップ中でも、該カウンタはステップｄ１２の処理で「１」にセットされる。
【００４８】
そこで、工具径補正指令や複合形固定サイクル指令のブロックが読み込まれる（ステップｄ３〜ｄ６の処理を経て、ステップｄ７で、カウンタのカウント値が「０」か判別され、カウント値が「０」でなければ（位置決め指令のブロックがすでに読み込まれていることを示す）、当該ブロックの実行可能形式データと共に記憶される退避ブロックを示すフラグＦを「０」にセットすると共に、先読みレジスタに記憶されているブロックをカウント値で示される数だけさかのぼり、そのブロックのデータを読み出し、該ブロック（位置決め指令のブロック）の実行可能形式データと共に記憶される退避ブロックを示すフラグＦを「１」にセットする（ステップｄ１７）。そして、カウンタを「０」にセットし（ステップｄ１８）、当該処理を終了する。すなわち、先に示したプログラム例１、プログラム例３のように、位置決め指令のブロックが先に読み込まれ、その後、工具径補正の指令や複合形固定サイクルの指令のブロックが読み込まれたときは、先に読み込まれた位置決め指令のブロックの実行可能形式データと共に記憶されるフラグＦを「１」にセットして、該位置決め指令のブロックを退避ブロックと指定するものである。
【００４９】
なお、ステップｄ１７では、先読みレジスタのブロックをカウント値で示される数だけさかのぼったブロック（位置決め指令のブロック）のフラグＦを「１」にセットするが、カウント値で示される数だけさかのぼった点にブロックデータがない場合（すでに実行されブロックの実行可能形式データが除去されている場合）、フラグＦを「１」にセットできず無視されることになる。すなわち、工具径補正の指令が、位置決め指令後早い段階で指令されたときのみ、退避ブロックを指定することになる。また、ステップｄ１７でフラグＦを「１」にセットして退避ブロックを指定しても、工具径補正指令や複合形固定サイクル指令のブロックが読み込まれたことを示すフラグＦｒ、Ｆｃは、「１」にセットされたままで、「０」にリセットされることはない。そのため、次に位置決め指令のブロックが読み込まれたときは、ステップｄ１、ｄ２、ｄ９、ｄ１０若しくはｄ１１、ｄ１５と処理され、この位置決め指令のブロックのフラグＦが「１」にセットされ、退避ブロックとして指定されることになる。そして、後述するように（図９の処理参照）、退避ブロック情報記憶メモリ１９には、フラグＦが「１」にセットされているブロックの情報が上書き保存されることから、退避ブロック情報記憶メモリ１９には、その時点で一番新しく指定された退避ブロックの情報が記憶されることになる。すなわち、工具径補正指令よりも後に指令された位置決め指令のブロックが優先して退避ブロックとして指定されることになる。
【００５０】
退避ブロック条件設定手段１５で退避ブロックを判定する方法Ａ〜Ｄのいずれかを選択指定し、退避ブロック判定手段１６で、読み込んだブロックが退避ブロックであるか否か判定して、判定されたブロックの実行可能形式データにはフラグＦが「１」にセットされるので、このフラグＦ＝１によって退避ブロックが特定されている。
【００５１】
図９は、退避ブロック情報読取り手段１７として、数値制御装置１００のプロセッサが実施する退避ブロック情報読取り処理のアルゴリズムを示すフローチャートである。プロセッサは、パルス分配を開始する直前のタイミングで、この図９に示す処理を実行する。
先入れ先出し方式により、先読みレジスタに記憶するブロックの情報（実行可能形式データ）の中で一番先に記憶した情報を読み出し（ステップｅ１）、その情報の中のフラグＦが「１」にセットされているか判別し（ステップｅ２）、フラグＦが「１」にセットされていなければ、当該処理を終了し、「１」にセットされていれば、このブロックは退避ブロックとして指定されているものであるから、読み出したこのブロックの実行可能形式データを退避ブロック情報記憶メモリ１９に上書きで記憶し（ステップｅ３）、当該処理を終了する。こうして指定された退避ブロックの実行可能形式データが退避ブロック情報記憶メモリ１９に格納される。
【００５２】
図１０は、ブロック終点位置読取り手段１８として、数値制御装置１００のプロセッサが実施する退避ブロック情報読取り処理のアルゴリズムを示すフローチャートである。プロセッサは、パルス分配時に、この図１０に示す処理を実行する。  
パルス分配中のブロックはフラグＦが「１」にセットされているか判別し（ステップｆ１）、フラグＦが「１」でなければ、この処理を終了する。フラグＦが「１」にセットされていれば、当該ブロックの指令のパルス分配が終了し、ブロック指令の終点に達しているか判別し（ステップｆ２）、ブロック指令の終点に達していなければ、この処理を終了する。一方、ブロック指令の終点に達していれば、座標更新手段１４で更新されている座標位置を退避ブロック情報記憶メモリ１９に先に記憶した退避ブロックの実行可能形式データと共に記憶し（ステップｆ３）、この処理を終了する。
【００５３】
こうして、退避ブロック情報記憶メモリ１９には、指定された退避ブロックの実行可能形式データと該ブロック指令での終点座標位置が記憶されることになる。
【００５４】
図１１は、工具退避手段２０として、数値制御装置１００のプロセッサが実施する工具退避処理のアルゴリズムを示すフローチャートである。  
数値制御装置１００が加工プログラムを実行し、工作機械が加工を実施しているとき、何らかの原因、理由で、その加工を中断したとき、図１１に示す処理を開始し、プロセッサは、操作盤、ソフトキー、ＭＤＩ等で構成される工具退避指令手段２１より、工具退避要求が入力されたか監視し（ステップｇ１）、工具退避要求が入力されると、退避ブロック情報記憶メモリ１９に記憶する退避ブロックで指令された終点の座標位置と、ブロック終点位置読取り手段１８を介して読み出された、現在の座標位置より、現在の位置より退避ブロックの指令での終点座標位置までの移動させるデータ（各軸移動量）を求める。すなわち、現在位置より、退避ブロックの終点座標位置へ移動させる「退避動作１」の各軸移動量を求め（ステップｇ２）、予め設定されている退避速度で求めた移動量だけ移動させる「退避動作１」を実行させる（ステップｇ３）。次に、退避ブロック情報記憶メモリ１９に記憶する退避ブロックの実行可能形式データを一時的なバッファに格納し、この実行可能形式データより退避ブロックで指令された経路を遡る「退避動作２」のデータを求める（ステップｇ４）。すなわち、退避ブロックの実行可能形式データには、軸の移動量、移動方向、速度等を含むが、このうち、移動方向を反転させ、速度を予め設定された安全を配慮した退避速度に変更し、退避ブロックで指令された経路を逆にたどる「退避動作２」のデータを求める。そして、求めた「退避動作２」を実行してパルス分配手段１２でパルス分配を実施し、工具を退避ブロックで指令された経路で逆行させ、工具を退避させる。
【００５５】
上述した実施形態では、図１に示されるような、退避ブロックが１つ指定され、工具を退避させるとき、現在座標位置よりこの退避ブロックの終点座標位置までの移動の「退避動作１」と、退避ブロックで指令された移動経路を逆方向に移動させる「退避動作２」で構成された退避動作をさせるものであるが、退避ブロックを複数個設定し、退避させるときは、現在位置より、設定された複数の退避ブロックを経由する退避動作を実施させるようにしてもよい。この場合、複数の位置決めブロックが退避ブロックとして設定されることから、退避ブロック情報記憶メモリには、退避ブロックの情報（実行可能形式データ）が、上書きされることなく、それぞれ記憶する。またその退避ブロックの実行でえられる終点座標位置も、記憶した退避ブロックの情報（実行可能形式データ）と共に記憶するようにする。そして、工具退避要求が入力されたとき、その時の座標位置より、退避ブロック情報記憶メモリに記憶する退避ブロックの実行可能形式データ及び終点座標位置を記憶の新しい順に（後入れ先出し方式で）、読み出し、退避動作を実行させる。
【００５６】
例えば、退避ブロックとしてブロックＢ１、次にブロックＢ２、その次にブロックＢ３の情報がこの順で退避ブロック情報記憶メモリに格納されている状態で、工具退避要求が入力されると、その時の座標位置より、ブロックＢ３での終点座標位置への移動（第１の退避動作１）、ブロックＢ３で指令された経路を逆方向への移動（第１の退避動作２）、次にブロックＢ２での終点座標位置への移動（第２の退避動作１）、ブロックＢ２で指令された経路を逆方向への移動（第２の退避動作２）、さらに、ブロックＢ１での終点座標位置への移動（第３の退避動作１）、ブロックＢ１で指令された経路を逆方向への移動（第３の退避動作２）を実行し工具を退避させるようにする。
【００５７】
また、この退避ブロックを複数設定する場合は、退避ブロックの判定方法Ａ、Ｃでは、複数ブロックを指定しておけばよい。退避ブロックの判定方法Ｂでは、条件に合致するものが１以上選ばれることになる。また、退避ブロックの判定方法Ｄで退避ブロックを複数個判定し設定する場合は、図８の処理においてフラグＦｒ、Ｆｃを「０」にリセットするステップｄ１６の処理をなくし、「１」にセットされたフラグＦｒ、Ｆｃは、そのまま「１」に保持させることによって、位置決め指令のブロックが読まれる毎に退避ブロックに指定するようにする。
なお、上述した実施形態では加工を停止した位置から退避ブロックの終点座標位置まで、移動させる退避動作１を、加工を停止した位置を始点、退避ブロックの終点座標位置を終点とした直線移動で構成したが、各軸の移動速度をそれぞれの規定速度(たとえば最高速度)として、加工を停止した位置から退避ブロックの終点座標位置までの移動経路がジグザグであってもよい。また、あらかじめ移動軸の順序指定しておき、１軸ごと加工を停止した座標位置から退避ブロックの終点座標位置まで移動させるようにしてもよい。
【符号の説明】
【００５８】
１  工具
２  主軸
３  穴
１００  数値制御装置
Ｗ  ワーク（被加工物）
【図１】
2018034254.tif 000003
【図２】
2018034254.tif 000004
【図３】
2018034254.tif 000005
【図４】
2018034254.tif 000006
【図５】
2018034254.tif 000007
【図６】
2018034254.tif 000008
【図７】
2018034254.tif 000009
【図８】
2018034254.tif 000010
【図９】
2018034254.tif 000011
【図１０】
2018034254.tif 000012
【図１１】
2018034254.tif 000013
【図１２】
2018034254.tif 000014
【図１３】
2018034254.tif 000015
【手続補正書】
【提出日】平成28年9月7日(2016.9.7)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】００４４
【補正方法】変更
【補正の内容】
【００４４】
ステップｄ３で、読み出したブロックが工具径補正の指令であると判別されたときには、工具径補正のブロックが読み込まれていることを示すフラグＦｒを「１」にセットし（ステップｄ６）、又、ステップｄ４で、読みだしたブロックが複合形固定サイクル指令であると判別されたときには、複合形固定サイクル指令のブロックが読み込まれていることを示すフラグＦｃを「１」にセットする（ステップｄ５）。なお、フラグＦｒ、Ｆｃ、カウンタは、加工プログラムを実行する初期設定で「０」に設定されている。  
次に、カウンタの値が「０」か否か判別し（ステップｄ７）、「０」ならば、当該ブロックの実行可能形式データと共に記憶される退避ブロックを示すフラグＦを「０」にセットし（ステップｄ８）、当該処理を終了する。