(57)【特許請求の範囲】
【請求項１】
メインプログラムで指令された実行回数分だけサブプログラムを繰り返し実行させる加工プログラムを用いて機械を制御する数値制御方法において、サブプログラムの実行時に、サブプログラムの繰り返し回数をカウントするとともに、異常検出手段にて切削異常またはワーク異常の有無を検出してこの検出により切削またはワークの異常が検出された場合、それまでにカウントされた上記サブプログラムの繰り返し回数を最大繰り返し回数として記憶し、且つ上記サブプログラムの繰り返しを中止してメインプログラムに復帰し、更に上記サブプログラムの実行後に実行され、上記サブプログラムと同一のワークを加工するための、上記サブプログラムとは別個のサブプログラムの実行時に、そのサブプログラムの繰り返し回数が、上記記憶された最大繰り返し回数を超えた場合、そのサブプログラムの繰り返しを中止し、メインプログラムに復帰することを特徴とする数値制御方法。
【請求項２】
メインプログラムで指令されたワーク座標系が設定される毎にサブプログラムを実行させる加工プログラムを用いて機械を制御する数値制御方法において、サブプログラムの実行時に、同一のサブプログラムが連続して指令された回数を同一サブプログラム指令回数としてカウントするとともに、異常検出手段にて切削異常またはワーク異常の有無を検出してこの検出により切削またはワークの異常が検出された場合、それまでにカウントされた上記同一サブプログラム指令回数を同一サブプログラム最大指令回数として記憶し、且つそのサブプログラムの実行を中止してメインプログラムに復帰し、更に上記同一のサブプログラムの次回実行時における同一サブプログラム指令回数のカウント値が、上記記憶された同一サブプログラム最大指令回数を超えた場合、そのサブプログラムの実行を中止してメインプログラムに復帰することを特徴とする数値制御方法。
【請求項３】
加工プログラム中の一部分を繰り返すように指令される加工プログラムを用いて機械を制御する数値制御方法において、加工プログラム中の一部分を繰り返すように指令された時の繰り返し回数をプログラム部分繰り返し回数としてカウントするとともに、異常検出手段にて切削異常またはワーク異常の有無を検出してこの検出により切削またはワークの異常が検出された場合、それまでにカウントされた上記プログラム部分繰り返し回数をプログラム部分繰り返し最大回数として記憶しておき、上記プログラム部分繰り返し個所と同一のワークを加工するための、上記プログラム部分繰り返し個所とは別個のプログラム部分繰り返し個所の実行時に、そのプログラム部分繰り返し個所のプログラム部分繰り返し回数のカウンタ値が、上記記憶されたプログラム部分繰り返し最大回数を超えた場合、そのプログラム部分繰り返し個所の繰り返しをしないようにすることを特徴とする数値制御方法。
【請求項４】
メインプログラムで指令された実行回数分だけサブプログラムを繰り返し実行させる加工プログラムを用いて機械を制御する数値制御装置において、上記サブプログラムの実行時にサブプログラムの繰り返し回数をカウントし記憶するサブプログラム繰り返し回数記憶手段と、上記サブプログラムの実行時に切削異常またはワーク異常の有無を検出する検出手段と、サブプログラム最大繰り返し回数記憶手段と、サブプログラムの実行時に前記検出手段にて切削またはワークの異常が検出された場合、上記サブプログラム繰り返し回数記憶手段に記憶された、それまでに実行したサブプログラムの繰り返し回数を最大繰り返し回数として上記サブプログラム最大繰り返し回数記憶手段に記憶させるとともに、上記サブプログラムの繰り返しを中止してメインプログラムに復帰させ、且つ上記サブプログラムの実行後に実行され、上記サブプログラムと同一のワークを加工するための、上記サブプログラムとは別個のサブプログラムの実行時に、そのサブプログラムの繰り返し回数が、上記サブプログラム最大繰り返し回数記憶手段に記憶された最大繰り返し回数を超えた場合、そのサブプログラムの繰り返しを中止し、メインプログラムに復帰させる手段と、を備えてなる数値制御装置。
【請求項５】
メインプログラムで指令されたワーク座標系が設定される毎にサブプログラムを実行させる加工プログラムを用いて機械を制御する数値制御装置において、上記サブプログラムの実行時に同一のサブプログラムが連続して指令された回数をカウントし記憶する同一サブプログラム指令回数カウンタ値記憶手段と、上記サブプログラムの実行時に切削異常またはワーク異常の有無を検出する検出手段と、同一サブプログラム最大指令回数記憶手段と、上記サブプログラムの実行時に、前記検出手段にて切削またはワークの異常が検出された場合、上記同一サブプログラム指令回数カウンタ値記憶手段に記憶された回数を、最大指令回数として上記同一サブプログラム最大指令回数記憶手段に記憶させるとともに、そのサブプログラムの実行を中止してメインプログラムに復帰させ、更に上記同一のサブプログラムの次回実行時における上記同一サブプログラム指令回数カウンタ値記憶手段の指令回数カウンタ値が、上記同一サブプログラム最大指令回数記憶手段に記憶された回数を超えた場合、そのサブプログラムの実行を中止してメインプログラムに復帰させる手段とを備えてなる数値制御装置。
【請求項６】
加工プログラム中の一部分を繰り返すように指令される加工プログラムを用いて機械を制御する数値制御装置において、加工プログラム中の一部分を繰り返すように指令された時の繰り返し回数をカウントし記憶するプログラム部分繰り返し回数カウンタ値記憶手段と、上記加工プログラムの実行時に切削異常またはワーク異常の有無を検出する検出手段と、プログラム部分繰り返し最大回数記憶手段と、上記加工プログラムの実行時に上記検出手段にて切削またはワークの異常が検出された場合、上記プログラム部分繰り返し回数カウンタ値記憶手段に記憶された回数を、最大繰り返し回数として上記プログラム部分繰り返し最大回数記憶手段に記憶させるとともに、上記プログラム部分繰り返し個所と同一のワークを加工するための、上記プログラム部分繰り返し個所とは別個のプログラム部分繰り返し個所の実行時に、そのプログラム部分繰り返し個所のプログラム部分繰り返し回数のカウンタ値が、上記プログラム部分繰り返し最大回数記憶手段に記憶されたプログラム部分繰り返し最大回数を超えた場合、そのプログラム部分繰り返し個所の繰り返しをしないようにする手段とを備えてなる数値制御装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、加工プログラムに従ってテーブルなどを駆動する工作機械などを制御する数値制御方法及びその装置に関し、特に加工プログラムを変更することなく効率よく加工を行うことのできる数値制御方法及びその装置に関するものである。
【０００２】
【従来の技術】
以下、従来の技術を図１０〜図２０を用いて説明する。即ち、図１０は従来の数値制御装置のブロック図で、１は加工プログラムを記憶する加工プログラム記憶部、２は加工プログラム記憶部１から読み出した加工プログラムを解析する加工プログラム解析部、３は前記加工プログラム解析部２が、加工プログラムを解析した際、サブプログラム指令であれば、サブプログラムの繰り返し回数を記憶するためのサブプログラム繰り返し回数記憶レジスタ、４はサブプログラム繰り返し回数のうち現在何回目を実行しているかカウンタ値を記憶するサブプログラム繰り返し回数カウンタ値記憶レジスタ、５は加工プログラム解析部２からの移動量や速度などの情報をもとに各軸毎の移動量を計算する補間処理部、６は補間処理部５からの各軸毎の移動量に対して加減速を行う加減速処理部、７は加減速処理部６からの移動量に従ってモータの位置制御を行うサーボアンプ、８はサーボアンプ７で制御されるテーブルなどを稼動させるモータである。
【０００３】
図１１に示すように同じワークを少なくとも２つ以上１つのテーブルに取り付け一つの加工プログラムで加工する場合、ワーク１つの加工を行う部分をサブプログラムで指令し、メインの加工プログラムでは必要なワークの個数分繰り返し回数を指令する。その加工プログラムの一例を図１２に示す。なお図１２中、Ｍ９８はサブプログラム呼出し指令、Ｐ２００、Ｐ２０１はサブプログラム番号、Ｌはサブプログラム繰り返し回数指令、Ｍ９９はサブプログラムからメインプログラムへの復帰指令である。また図１１中、２１は工具、２２はワークである。
【０００４】
また、別の加工指令方法として図１３に示すように、ワークを取り付けた位置をワーク座標オフセットとして設定し、ワーク座標オフセットを切り換えてサブプログラムを呼ぶ出すようにする方法、換言すればＧ５４、Ｇ５５等の指令でワーク毎に設定されたワーク座標系を切換え、このワーク座標系を切換える毎にサブプログラムを呼出して加工していく方法がある。なお、図１３中、Ｇ５４，Ｇ５５、Ｇ５６はワーク座標系選択指令で、ワーク座標系の数に応じてＧ５７〜Ｇ５９も使用される場合がある。また、Ｍ９８はサブプログラム呼出し指令、Ｐ２００、Ｐ２０１はサブプログラム番号、Ｍ９９はサブプログラムからメインプログラムへの復帰指令である。
【０００５】
更ににまた、別の加工指令方法として図１４に示すように、ワーク１つの加工を行う部分の前後をプログラム制御指令で囲み、必要なワークの個数分繰り返す方法もある。
【０００６】
【発明が解決しようとする課題】
従来の技術では、例えば図１５、図１６及び図１７に示すように、５個のワークを加工するプログラムで図１８のように５個より少ないワークを加工しようとした場合、ワークがない箇所についても加工プログラムを実行し加工時間がかかってしまうという問題点があった。なお図１８中、２１は工具、２２はワークである。
【０００７】
また、上記問題点を解決し加工時間を短縮するためには、加工するワークの個数とサブプログラム繰り返し回数が同じになるように、図１５の加工プログラムを変更する必要があった。また図１６の加工プログラムの場合は、ワーク座標系の指令やサブプログラムの呼び出しなどの行を削除する必要があった。また図１７の加工プログラムの場合は、プログラム制御指令の条件式の部分を変更する必要があった。
【０００８】
さらに、加工中の工具の破損などで図１９のように間のワークが破損し、続きの加工が行えなくなり、加工を一次中断し、テーブルから取り外した場合でも、ワークがない箇所についても加工プログラムを実行し加工時間がかかってしまうという問題点があった。このような場合は加工プログラムを途中まで実行しているため、加工プログラムの変更が困難であり、加工時間の短縮ができない。なお図１９中、２３は破損した工具、２４は破損したワークである。
【０００９】
また別の問題点としては、例えば図２０のようにセンタドリルなどの加工途中で工具が破損し、以降のワークの加工ができない場合、無人運転時中は加工プログラムが停止しないため、後の穴あけ工程などで工具を破損する事故が発生する。例え工具折損検出機能があったとしても加工プログラムを変更できない為、例えば図２０に示す前の２つ正常なワークの加工も続行することができず、全ての加工を中断しなければならないなどの問題点があった。なお図２０中、２５は破損したセンタドリル、２６は破損したドリルである。
【００１０】
本発明は、上述のような課題を解決するためになされたもので、何らかの理由により加工すべきワーク数がサブプログラム繰り返し回数等よりも少ない場合、加工プログラムを変更することなしに効率よく加工することができる数値制御方法及びその装置を提供しようとするものである。
【００１１】
【課題を解決するための手段】
本発明に係る数値制御方法は、メインプログラムで指令された実行回数分だけサブプログラムを繰り返し実行させる加工プログラムを用いて機械を制御する数値制御方法において、サブプログラムの実行時に、サブプログラムの繰り返し回数をカウントするとともに、異常検出手段にて切削異常またはワーク異常の有無を検出してこの検出により切削またはワークの異常が検出された場合、それまでにカウントされた上記サブプログラムの繰り返し回数を最大繰り返し回数として記憶し、且つ上記サブプログラムの繰り返しを中止してメインプログラムに復帰し、更に上記サブプログラムの実行後に実行され、上記サブプログラムと同一のワークを加工するための、上記サブプログラムとは別個のサブプログラムの実行時に、そのサブプログラムの繰り返し回数が、上記記憶された最大繰り返し回数を超えた場合、そのサブプログラムの繰り返しを中止し、メインプログラムに復帰するものである。
【００１３】
また本発明に係る数値制御方法は、メインプログラムで指令されたワーク座標系が設定される毎にサブプログラムを実行させる加工プログラムを用いて機械を制御する数値制御方法において、サブプログラムの実行時に、同一のサブプログラムが連続して指令された回数を同一サブプログラム指令回数としてカウントするとともに、異常検出手段にて切削異常またはワーク異常の有無を検出してこの検出により切削またはワークの異常が検出された場合、それまでにカウントされた上記同一サブプログラム指令回数を同一サブプログラム最大指令回数として記憶し、且つそのサブプログラムの実行を中止してメインプログラムに復帰し、更に上記同一のサブプログラムの次回実行時における同一サブプログラム指令回数のカウント値が、上記記憶された同一サブプログラム最大指令回数を超えた場合、そのサブプログラムの実行を中止してメインプログラムに復帰するものである。
【００１４】
また本発明に係る数値制御方法は、加工プログラム中の一部分を繰り返すように指令される加工プログラムを用いて機械を制御する数値制御方法において、加工プログラム中の一部分を繰り返すように指令された時の繰り返し回数をプログラム部分繰り返し回数としてカウントするとともに、異常検出手段にて切削異常またはワーク異常の有無を検出してこの検出により切削またはワークの異常が検出された場合、それまでにカウントされた上記プログラム部分繰り返し回数をプログラム部分繰り返し最大回数として記憶しておき、上記プログラム部分繰り返し個所と同一のワークを加工するための、上記プログラム部分繰り返し個所とは別個のプログラム部分繰り返し個所の実行時に、そのプログラム部分繰り返し個所のプログラム部分繰り返し回数のカウンタ値が、上記記憶されたプログラム部分繰り返し最大回数を超えた場合、そのプログラム部分繰り返し個所の繰り返しをしないようにするものである。
【００１５】
また本発明に係る数値制御装置は、メインプログラムで指令された実行回数分だけサブプログラムを繰り返し実行させる加工プログラムを用いて機械を制御する数値制御装置において、上記サブプログラムの実行時にサブプログラムの繰り返し回数をカウントし記憶するサブプログラム繰り返し回数記憶手段と、上記サブプログラムの実行時に切削異常またはワーク異常の有無を検出する検出手段と、サブプログラム最大繰り返し回数記憶手段と、サブプログラムの実行時に前記検出手段にて切削またはワークの異常が検出された場合、上記サブプログラム繰り返し回数記憶手段に記憶された、それまでに実行したサブプログラムの繰り返し回数を最大繰り返し回数として上記サブプログラム最大繰り返し回数記憶手段に記憶させるとともに、上記サブプログラムの繰り返しを中止してメインプログラムに復帰させ、且つ上記サブプログラムの実行後に実行され、上記サブプログラムと同一のワークを加工するための、上記サブプログラムとは別個のサブプログラムの実行時に、そのサブプログラムの繰り返し回数が、上記サブプログラム最大繰り返し回数記憶手段に記憶された最大繰り返し回数を超えた場合、そのサブプログラムの繰り返しを中止し、メインプログラムに復帰させる手段と、を備えてなるものである。
【００１７】
また本発明に係る数値制御装置は、メインプログラムで指令されたワーク座標系が設定される毎にサブプログラムを実行させる加工プログラムを用いて機械を制御する数値制御装置において、上記サブプログラムの実行時に同一のサブプログラムが連続して指令された回数をカウントし記憶する同一サブプログラム指令回数カウンタ値記憶手段と、上記サブプログラムの実行時に切削異常またはワーク異常の有無を検出する検出手段と、同一サブプログラム最大指令回数記憶手段と、上記サブプログラムの実行時に、前記検出手段にて切削またはワークの異常が検出された場合、上記同一サブプログラム指令回数カウンタ値記憶手段に記憶された回数を、最大指令回数として上記同一サブプログラム最大指令回数記憶手段に記憶させるとともに、そのサブプログラムの実行を中止してメインプログラムに復帰させ、更に上記同一のサブプログラムの次回実行時における上記同一サブプログラム指令回数カウンタ値記憶手段の指令回数カウンタ値が、上記同一サブプログラム最大指令回数記憶手段に記憶された回数を超えた場合、そのサブプログラムの実行を中止してメインプログラムに復帰させる手段とを備えてなるものである。
【００１８】
更にまた、本発明に係る数値制御装置は、加工プログラム中の一部分を繰り返すように指令される加工プログラムを用いて機械を制御する数値制御装置において、加工プログラム中の一部分を繰り返すように指令された時の繰り返し回数をカウントし記憶するプログラム部分繰り返し回数カウンタ値記憶手段と、上記加工プログラムの実行時に切削異常またはワーク異常の有無を検出する検出手段と、プログラム部分繰り返し最大回数記憶手段と、上記加工プログラムの実行時に上記検出手段にて切削またはワークの異常が検出された場合、上記プログラム部分繰り返し回数カウンタ値記憶手段に記憶された回数を、最大繰り返し回数として上記プログラム部分繰り返し最大回数記憶手段に記憶させるとともに、上記プログラム部分繰り返し個所と同一のワークを加工するための、上記プログラム部分繰り返し個所とは別個のプログラム部分繰り返し個所の実行時に、そのプログラム部分繰り返し個所のプログラム部分繰り返し回数のカウンタ値が、上記プログラム部分繰り返し最大回数記憶手段に記憶されたプログラム部分繰り返し最大回数を超えた場合、そのプログラム部分繰り返し個所の繰り返しをしないようにする手段とを備えてなるものである。
【００１９】
【発明の実施の形態】
実施の形態１．
図１は本発明の実施の形態１（図１２に示す加工プログラムを用いる場合の例）である数値制御装置のブロック図を示すものである。
図１において、２ａは加工プログラム解析部で、詳細動作は図２を用いて説明する。９は切削異常を検出する検出手段である、サーボアンプからモータのフィードバック位置およびフィードバック電流を入力し切削反力を検出する切削反力推定部で、この切削反力推定部は、例えば特開平１０−２２８３０４公報に示されている。また１０は加工プログラムの解析部２ａが実際にサブプログラムを実行する繰り返し回数を記憶するサブプログラム最大繰り返し回数記憶レジスタである。なお、１、３〜８に示すものは従来のものと同様のものであるので説明を省略する。
【００２０】
図２は本発明の実施の形態１である数値制御装置のブロック図における加工プログラム解析部２ａの動作を示したフローチャートを示すもので、この加工プログラム解析部２ａは次のとおり動作する。
ｓｔｅｐ１：加工プログラム解析部２ａが加工プログラム記憶部１から加工プログラム（メインプログラム）の１行を入力して解析し、ｓｔｅｐ２へ進む。
ｓｔｅｐ２：加工プログラム解析部２ａは加工プログラムがサブプログラム呼び出し指令かどうかを判別し、サブプログラム呼び出し指令であればｓｔｅｐ５に進み、サブプログラム呼び出し指令でなければｓｔｅｐ３に進む。
ｓｔｅｐ３：ｓｔｅｐ２の判断の結果、サブプログラム呼び出し指令でなければ、移動指令から移動量や速度を解析し、その結果を補間処理部５に出力する。
ｓｔｅｐ４：加工プログラムが終了か否かを判断し、加工プログラムが終了でなければｓｔｅｐ１に戻り、加工プログラムが終了であれば加工プログラムの解析を完了する。
ｓｔｅｐ５：ｓｔｅｐ２の判断の結果、サブプログラム呼び出し指令であれば、繰り返しの指令回数をサブプログラム繰り返し回数記憶レジスタ３に記憶し、サブプログラム繰り返し回数カウンタ値記憶レジスタ４を０にしてｓｔｅｐ６に進む。
ｓｔｅｐ６：サブプログラム繰り返し回数カウンタ値記憶レジスタ４に記憶された回数を１だけ加算し、ｓｔｅｐ７へ進む。
ｓｔｅｐ７：加工プログラム記憶部１から加工プログラム（サブプログラム）の次の１行を入力して解析し、ｓｔｅｐ８へ進む。
ｓｔｅｐ８：サブプログラム実行中に切削反力推定部９から切削反力の状態を入力し、切削指令にもかかわらず切削反力が無い状態となっていないかどうかを判別し、切削反力が無い状態であればｓｔｅｐ９に進み、また切削反力がある状態であればｓｔｅｐ１１に進む。
ｓｔｅｐ９：ｓｔｅｐ８で切削反力が無い状態と判断された場合、サブプログラム繰り返し回数カウンタ値記憶レジスタ４からサブプログラム繰り返し回数カウンタ値を取得し、その値をサブプログラム最大繰り返し回数レジスタ１０に記憶し、ｓｔｅｐ１０に進む。
ｓｔｅｐ１０：メインプログラムへの復帰処理を行いｓｔｅｐ１に戻る。
ｓｔｅｐ１１：ｓｔｅｐ８で切削反力があると判断された場合、加工プログラムがサブプログラムからの復帰指令（Ｍ９９）であるかどうかを判別し、復帰指令でなければｓｔｅｐ１２に進み、また復帰指令であればｓｔｅｐ１３に進む。
ｓｔｅｐ１２：ｓｔｅｐ１１で復帰指令でないと判断された場合、加工プログラムを解析し移動量や速度などの情報を計算して補間処理部５に出力し、ｓｔｅｐ７に戻り次の行を実行する。
ｓｔｅｐ１３：サブプログラム繰り返し回数カウンタ値がサブプログラム繰り返し回数より大きいかどうか判別し、大きければｓｔｅｐ１０に進み、また小さければｓｔｅｐ１４に進む。
ｓｔｅｐ１４：サブプログラム繰り返し回数カウンタ値がサブプログラム最大繰り返し回数より大きいかどうか判別し、大きければｓｔｅｐ１０に進み、小さければｓｔｅｐ６に戻る。即ち、サブプログラム繰り返し回数カウンタ値がサブプログラム繰り返し回数より小さく、かつサブプログラム最大繰り返し回数より小さければ、ｓｔｅｐ６に戻る。
【００２１】
さらに、図１５の加工プログラムで図１８のようにワークが取り付けられた場合の動作について説明する。
図１５のドリルのセンタ加工時、サブプログラムの繰り返し回数は５であるため、４つめのワークを実行した場合、図２のｓｔｅｐ８で切削反力が無いため、ｓｔｅｐ９でサブプログラム繰り返し回数カウンタ値記憶レジスタ４からサブプログラム繰り返し回数を取得し、サブプログラム最大繰り返し回数レジスタ１０に記憶する。そして残りのワーク２個分の動作を中断し、メインプログラムに復帰する。次にドリル加工を実行した場合、３個目のワークを実行した後サブプログラム復帰指令時、ｓｔｅｐ９の処理で、センタ加工時にサブプログラム最大繰り返し回数レジスタ１０に３が設定されているために、サブプログラムが４回以上繰り返さない。即ち、４つめ以降のワークは全てスキップされる。
【００２２】
実施の形態２．
図３は本発明の実施の形態２（図１３に示す加工プログラムを用いる場合の例）である数値制御装置のブロック図を示すものである。図３において、２ｂは加工プログラム解析部で、詳細動作は図４を用いて説明する。なお、１、３〜９に示すものは実施の形態１に示すものと同様のものであるので説明を省略する。また、サブプログラム繰り返し回数記憶レジスタ３、サブプログラム繰り返し回数カウンタ値記憶レジスタ４は、図１２に示す加工プログラムを使用する場合に使用されるものであって、この実施の形態２のように図１３に示す加工プログラムを用いる場合には使用されない。
【００２３】
図４は本発明の実施の形態２である数値制御装置のブロック図における加工プログラム解析部２ｂの動作を示したフローチャートを示すもので、この加工プログラム解析部２ｂは次のとおり動作する。
ｓｔｅｐ２１：加工プログラム解析部２ｂが加工プログラム記憶部１から加工プログラム（メインプログラム）の１行を入力して解析し、ｓｔｅｐ２へ進む。
ｓｔｅｐ２２：加工プログラム解析部２ｂは加工プログラムがサブプログラム呼び出し指令かどうかを判別し、サブプログラム呼び出し指令であればｓｔｅｐ２５に進み、またサブプログラム呼び出し指令でなければｓｔｅｐ２３に進む。
ｓｔｅｐ２３：ｓｔｅｐ２２の判断の結果、サブプログラム呼び出し指令でなければ、移動指令から移動量や速度を解析し、その結果を補間処理部５に出力する。
ｓｔｅｐ２４：加工プログラムが終了か否かを判断し、加工プログラムが終了でなければｓｔｅｐ２１に戻り、加工プログラムが終了であれば加工プログラムの加工プログラムの解析を完了する。
ｓｔｅｐ２５：ｓｔｅｐ２２の判断の結果、サブプログラム呼び出し指令であれば、加工プログラム記憶部１から加工プログラム（サブプログラム）の次の１行を入力して解析し、ｓｔｅｐ２６に進む。
ｓｔｅｐ２６：サブプログラム実行中に切削反力推定部９から切削反力の状態を入力し、切削指令にもかかわらず切削反力が無い状態となっていないかどうかを判別し、切削反力が無い状態であればｓｔｅｐ２９に進み、また切削反力がある状態であればｓｔｅｐ２７に進む。
ｓｔｅｐ２７：ｓｔｅｐ２６で切削反力があると判断された場合、加工プログラムがサブプログラムからの復帰指令（Ｍ９９）であるかどうかを判別し、復帰指令であればｓｔｅｐ２９に進み、復帰指令でなければｓｔｅｐ２８に進む。
ｓｔｅｐ２８：ｓｔｅｐ２８でサブプログラム復帰指令でないと判断された場合、加工プログラムを解析し移動量や速度などの情報を計算し、補間処理部５に出力し、ｓｔｅｐ２５に戻り次の行を実行する。
ｓｔｅｐ２９：メインプログラムへの復帰処理を行いｓｔｅｐ２１に戻る。
【００２４】
さらに、図１６の加工プログラムで図１９の下のようにワークが取り付けられた場合の動作について説明する。
図１６のドリルのセンタ加工時、３つめのワークを実行した場合、図４のｓｔｅｐ２６で切削反力が無いため、そのワークでの作業を即中断し、残りのサブプログラムを実行することなくメインプログラムに戻り、４つめのワークが加工される。次にドリル加工を実行した場合も同様に、３つめのワークでの作業は中断され、４つめのワークに作業が移る。
【００２５】
実施の形態３．
図５は本発明の実施の形態３（図１３に示す加工プログラムを用いる場合の例）である数値制御装置のブロック図を示すものである。
図５において、２ｃは加工プログラム解析部で、詳細動作は図６を用いて説明する。また１３は加工プログラムの解析部が前回指令されたサブプログラム番号を記憶する前回サブプログラム番号記憶レジスタ、１４は同一のサブプログラムを連続して指令された回数をカウントし記憶する同一サブプログラム指令回数カウンタ値記憶レジスタ、１５は同一サブプログラム指令回数カウンタ値記憶レジスタ１４記憶された、同一のサブプログラムを連続して指令された回数を最大指令回数として記憶するための同一サブプログラム最大指令回数記憶レジスタである。なお、１、３〜９に示すものは実施の形態１に示すものと同様のものであるので説明を省略する。また、サブプログラム繰り返し回数記憶レジスタ３、サブプログラム繰り返し回数カウンタ値記憶レジスタ４は、図１２に示す加工プログラムを使用する場合に使用されるものであって、この実施の形態３のように図１３に示す加工プログラムを用いる場合には使用されない。
【００２６】
図６は本発明の実施の形態３である数値制御装置のブロック図における加工プログラム解析部２ｃの動作を示したフローチャートを示すもので、この加工プログラム解析部２ｃは次のとおり動作する。
ｓｔｅｐ３１：加工プログラム解析部２ｃが加工プログラム記憶部から加工プログラム（メインプログラム）の１行を入力して解析し、ｓｔｅｐ３２へ進む。
ｓｔｅｐ３２：加工プログラム解析部２ｃは加工プログラムがサブプログラム呼び出し指令かどうかを判別し、サブプログラム呼び出し指令であればｓｔｅｐ３５に進み、またサブプログラム呼び出し指令でなければｓｔｅｐ３３に進む。
ｓｔｅｐ３３：ｓｔｅｐ３２の判断の結果、サブプログラム呼び出し指令でなければ、移動指令から移動量や速度を解析し、その結果を補間処理部５に出力する。
ｓｔｅｐ３４：加工プログラムが終了か否かを判断し、加工プログラムが終了でなければｓｔｅｐ３１に戻り、加工プログラムが終了であれば加工プログラムの解析を完了する。
ｓｔｅｐ３５：ｓｔｅｐ３２の判断の結果、サブプログラム呼び出し指令であれば、その呼び出されるサブプログラムの番号が、前回サブプログラム番号記憶レジスタ１３に記憶されたサブプログラム番号と同じであるか否かを判別する。
そして、呼び出されるサブプログラムの番号が、前回サブプログラム番号記憶レジスタ１３に記憶されたサブプログラム番号と同じである場合、ｓｔｅｐ３６に進み、またそうでなければｓｔｅｐ３７に進む。
ｓｔｅｐ３６：ｓｔｅｐ３５の判断の結果、前回サブプログラム番号記憶レジスタ１３のサブプログラム番号と呼び出されたサブプログラムの番号が同じであれば、同一サブプログラム指令回数カウンタ値が同一サブプログラム最大指令回数より大きいかどうか判別し、大きければｓｔｅｐ４３に進み、そうでなければｓｔｅｐ３８に進む。
ｓｔｅｐ３７：ｓｔｅｐ３５の判断の結果、前回サブプログラム番号記憶レジスタ１３のサブプログラム番号と呼び出されたサブプログラムの番号が同じでなければ、同一サブプログラム指令回数カウンタ値記憶レジスタ１４を０にしてｓｔｅｐ３８に進む。
ｓｔｅｐ３８：加工プログラム記憶部から加工プログラム（サブプログラム）の次の１行を入力し、解析する。
ｓｔｅｐ３９：サブプログラム実行中に切削反力推定部９から切削反力の状態を入力し、切削指令にもかかわらず切削反力が無い状態となっていないかどうかを判別し、切削反力が無い状態であればｓｔｅｐ４０に進み、また切削反力がある状態であるならばｓｔｅｐ４１に進む。
ｓｔｅｐ４０：ｓｔｅｐ３９で切削反力が無い状態と判断された場合、同一サブプログラム指令回数カウンタ値記憶レジスタ１４から同一サブプログラム指令回数カウンタ値を取得し、同一サブプログラム最大指令回数記憶レジスタ１５にその値を記憶し、ｓｔｅｐ４３に進む。
ｓｔｅｐ４１：ｓｔｅｐ３９で切削反力がある状態と判断された場合、加工プログラムがサブプログラムからの復帰指令（Ｍ９９）であるかどうかを判別し、復帰指令であればｓｔｅｐ４３に進み、復帰指令でなければｓｔｅｐ４２に進む。
ｓｔｅｐ４２：ｓｔｅｐ４１でサブプログラム復帰指令でないと判断された場合、加工プログラムを解析し移動量や速度などの情報を計算し、補間処理部５に出力し、ｓｔｅｐ３８に戻り次の行を実行する。
ｓｔｅｐ４３：ｓｔｅｐ３６の判断の結果、同一サブプログラム指令回数カウンタ値が同一サブプログラム最大指令回数より小さければ、同一サブプログラム指令回数カウンタ値記憶レジスタ１４に記憶された値を１だけ加算し、ｓｔｅｐ４４に進む。
ｓｔｅｐ４４：前回サブプログラム番号記憶レジスタ１３にサブプログラム番号を記憶し、ｓｔｅｐ４５に進む。なお、前回サブプログラム番号記憶レジスタ１３には、サブプログラム番号でなくても、サブプログラムが識別できる記号等を記憶させるようにしても、所期の目的は達成できる。
ｓｔｅｐ４５：メインプログラムへの復帰処理を行いｓｔｅｐ３１に戻る。
【００２７】
さらに、図１６の加工プログラムで図１８のようにワークが取り付けられた場合の動作について説明する。
図１６のドリルのセンタ加工時、ワーク座標は５つであるため、４つめのワーク座標で切削した場合、図６のｓｔｅｐ３９で切削反力が無ければ、同一サブプログラム指令回数カウンタ値記憶レジスタ１４から同一サブプログラム指令回数カウンタ値を取得し、同一サブプログラム最大指令回数記憶レジスタ１５にその値を記憶するとともに、メインプログラムに戻る。次に５つめのワーク座標でセンタを加工する時には、ｓｔｅｐ４０の処理で同一サブプログラム最大指令回数記憶レジスタ１５に３が設定されているためにサブプログラムは実行されない。次にドリル加工を実行した場合、４つめのワーク座標で切削する時、ｓｔｅｐ４０の処理で同一サブプログラム最大指令回数記憶レジスタ１５に３が設定されているためにサブプログラムは実行されない。即ち、４つめ以降のワークは全てスキップされる。
【００２８】
実施の形態４．
図７は本発明の実施の形態４（図１４に示す加工プログラムを用いる場合の例）である数値制御装置のブロック図を示すものである。図７において、２ｄは加工プログラム解析部で、詳細動作は図８を用いて説明する。１から８は従来の技術と同じであるため説明を省略する。また１６は前回の繰り返し識別番号を記憶するための前回繰り返し識別番号記憶レジスタ、１７は加工プログラム内で一部分を繰り返すように指令された時の回数をカウントし記憶するプログラム部分繰り返し回数カウンタ値記憶レジスタ、１８は加工プログラム内で一部分を繰り返すように指令された時の回数を記憶する手段で記憶された回数を最大繰り返し回数として記憶するためにプログラム部分繰り返し最大回数記憶レジスタである。なお、１、３〜９に示すものは実施の形態１に示すものと同様のものであるので説明を省略する。また、サブプログラム繰り返し回数記憶レジスタ３、サブプログラム繰り返し回数カウンタ値記憶レジスタ４は、図１２に示す加工プログラムを使用する場合に使用されるものであって、この実施の形態４のように図１４に示す加工プログラムを用いる場合には使用されない。
【００２９】
図８は本発明の実施の形態４である数値制御装置のブロック図における加工プログラム解析部２ｄの動作を示したフローチャートを示すもので、この加工プログラム解析部２ｄは次のとおり動作する。
ｓｔｅｐ５１：加工プログラム解析部２ｄが加工プログラム記憶部から加工プログラム（メインプログラム）の１行を入力して解析し、ｓｔｅｐ５２へ進む。
ｓｔｅｐ５２：加工プログラム解析部２ｄは加工プログラムがプログラム制御指令ＷＨＩＬＥかどうかを判別し、プログラム制御指令ＷＨＩＬＥであればｓｔｅｐ５５へ進み、そうでなければｓｔｅｐ５３へ進む。
ｓｔｅｐ５３：ｓｔｅｐ５２の判断の結果、プログラム制御指令ＷＨＩＬＥでなければ、移動指令から移動量や速度を解析し、その結果を補間処理部５に出力する。
ｓｔｅｐ５４：加工プログラムが終了か否かを判断し、加工プログラムが終了でなければｓｔｅｐ５１に戻り、加工プログラムが終了であれば加工プログラムの解析を完了する。
ｓｔｅｐ５５：ｓｔｅｐ５２の判断の結果、プログラム制御指令ＷＨＩＬＥであれば、今回の繰り返し識別番号が前回繰り返し識別番号記憶レジスタ１６に記憶された繰り返し識別番号と同じであるか否かを判別し、同じであればｓｔｅｐ５６へ進み、同じでなければｓｔｅｐ５７に進む。
ｓｔｅｐ５６：ｓｔｅｐ５５の判断の結果、前回繰り返し識別番号記憶レジスタ１６の繰り返し識別番号と今回の繰り返し識別番号とが同じであれば、プログラム部分繰り返し回数カウンタ値がプログラム部分繰り返し最大回数より大きいかどうか判別し、大きければｓｔｅｐ６３に進み、そうでなければｓｔｅｐ５８に進む。
ｓｔｅｐ５７：ｓｔｅｐ５５の判断の結果、前回繰り返し識別番号と繰り返し識別番号が同じでなければ、プログラム部分繰り返し回数カウンタ値記憶レジスタ１７を０にしてｓｔｅｐ５８に進む。
ｓｔｅｐ５８：加工プログラム記憶部から加工プログラムの次の１行を入力し、解析する。
ｓｔｅｐ５９：プログラム実行中に切削反力推定部９から切削反力の状態を入力し、切削指令にもかかわらず切削反力が無い状態となっていないかどうかを判別し、切削反力が無い状態であればｓｔｅｐ６０に進み、また切削反力がある状態であるならばｓｔｅｐ６１に進む。
ｓｔｅｐ６０：ｓｔｅｐ５９で切削反力が無い状態と判断された場合、プログラム部分繰り返し回数カウンタ値記憶レジスタ１７からプログラム部分繰り返し回数カウンタ値を取得し、プログラム部分繰り返し最大回数記憶レジスタ１８にその値を記憶し、ｓｔｅｐ６３に進む。
ｓｔｅｐ６１：ｓｔｅｐ５９で切削反力がある状態と判断された場合、加工プログラムがプログラム制御指令ＥＮＤであるかどうかを判別し、プログラム制御指令ＥＮＤであればｓｔｅｐ６３に進み、プログラム制御指令ＥＮＤでなければｓｔｅｐ６２に進む。
ｓｔｅｐ６２：ｓｔｅｐ６１でプログラム制御指令ＥＮＤでなければ、加工プログラムを解析し移動量や速度などの情報を計算し、補間処理部５に出力し、ｓｔｅｐ５８に戻る。
ｓｔｅｐ６３：プログラム部分繰り返し回数カウンタ値記憶レジスタ１７に記憶された値を１だけ加算し、ｓｔｅｐ６４に進む。
ｓｔｅｐ６４：前回繰り返し識別番号記憶レジスタ１６に繰り返し識別番号を記憶し、ｓｔｅｐ６５に進む。
ｓｔｅｐ６５：メインプログラムへの復帰処理を行いｓｔｅｐ５１に戻る。
【００３０】
さらに、図１７の加工プログラムで図１８のようにワークが取り付けられた場合の動作について説明する。
図１７のドリルのセンタ加工時、プログラム部分繰り返し回数は５であるため、４つめのワークを切削した場合、図８のｓｔｅｐ５９で切削反力が無ければ、プログラム部分繰り返し回数カウンタ値記憶レジスタ１７からプログラム部分繰り返し回数カウンタ値を取得し、プログラム部分繰り返し最大回数記憶レジスタ１８にその値を記憶するとともに、メインプログラムに戻る。次に５つめのワークでセンタを加工する時には、ｓｔｅｐ６０の処理でプログラム部分繰り返し最大回数記憶レジスタ１８に３が設定されているためにプログラム部分繰り返しは実行されない。次にドリル加工を実行した場合、４つめのワーク座標で切削する時、ｓｔｅｐ６０の処理で同一サブプログラム最大指令回数記憶レジスタ１８に３が設定されているためにプログラム部分繰り返しは実行されない。即ち、４つめ以降のワークは全てスキップされる。
【００３１】
実施の形態５．
図９は本発明の実施の形態５である数値制御装置のブロック図を示すものである。この実施の形態５は、実施の形態１から実施の形態４で示す切削反力推定部９の代りに、ワークの有無等ワークの異常を検出するワーク検出装置１９を用いたもので、このワーク検出装置１９を用いても、実施の形態１から実施の形態４で説明したものと同様の作用効果を奏する。
なお、このワーク検出装置１９は、ワークの有無等ワークの異常を検出することのできる、例えば、力センサ、加速度センサ、視覚センサ、タッチセンサ、レーザセンサ、重量センサ、超音波センサなどから構成されている。
また、１〜１８に示すものは実施の形態１から実施の形態４に示すものと同様のものであるので説明を省略する。
なおまた、切削異常またはワーク異常の検出手段として、切削反力推定部９、ワーク検出装置１９以外に、工具摩耗検出装置等も採用することが出来ることは言うまでもない。
【００３２】
【発明の効果】
以上のように本発明によれば、サブプログラムの繰り返し回数をカウントするとともに、切削異常またはワーク異常の有無を検出してこの検出により切削またはワークの異常が検出された場合、上記それまでにカウントされた上記サブプログラムの繰り返し回数を最大繰り返し回数として記憶しておき、上記サブプログラムの次回実行時にそのサブプログラムの繰り返し回数が、上記記憶された最大繰り返し回数を超えた場合、上記サブプログラムの繰り返しを中止するようにすることにより、ワークの個数分、サブプログラムの繰り返し指令で指令された加工プログラムで複数個のワークを加工する場合、加工プログラムで指令されたワークの数より少ないワークを加工しようとした場合、ワークがないことを検出することができ、かつワークがななければ次の工程に進むことができ、加工プログラムの変更なしに加工時間を短縮することができる。
【００３３】
また、本発明によれば、切削異常またはワーク異常の有無を検出してこの検出により切削またはワークの異常が検出された場合、サブプログラムの実行を中止するようにすることにより、１つのワークの加工をサブプログラムで記述して複数のワークを加工するようにした加工プログラムで複数のワークを加工する場合、複数のワークの内幾つかが無い場合に、ワークがないことを検出することができ、かつワークがななければ次のワークに進むことができ、加工プログラムの変更なしに加工時間を短縮することができる。
【００３４】
また、本発明によれば、同一のサブプログラムが連続して指令された回数を同一サブプログラム指令回数としてカウントするとともに、切削異常またはワーク異常の有無を検出してこの検出により切削またはワークの異常が検出された場合、上記それまでにカウントされた同一サブプログラム指令回数を同一サブプログラム最大指令回数として記憶しておき、上記同一のサブプログラムの次回実行時における同一サブプログラム連続指令回数のカウント値が、上記記憶された同一サブプログラム最大指令回数を超えた場合、サブプログラムの実行を中止するようにすることにより、例えば、センタドリルなどの加工途中で工具が破損し、以降のワークの加工ができない場合、加工プログラムを変更しなくても、続きのワークの加工の実行を行わず、工具が破損するまでに加工できたワークは全工程加工することができる。よって、無人運転時中に工具破損しても全ての加工を中止する必要がなくなり、効率よく加工をすることができるようになる。
【００３５】
更にまた、本発明によれば、加工プログラム中の一部分を繰り返すように指令された時の繰り返し回数をプログラム部分繰り返し回数としてカウントするとともに、切削異常またはワーク異常の有無を検出してこの検出により切削またはワークの異常が検出された場合、上記それまでにカウントされたプログラム部分繰り返し回数をプログラム部分繰り返し最大回数として記憶しておき、上記プログラム部分繰り返しの次回実行時におけるプログラム部分繰り返し回数のカウンタ値が、上記記憶されたプログラム部分繰り返し最大回数を超えた場合、加工プログラム内での部分繰り返しをしないようにすることにより、例えば、センタドリルなどの加工途中で工具が破損し、以降のワークの加工ができない場合、加工プログラムを変更しなくても、続きのワークの加工の実行を行わず、工具が破損するまでに加工できたワークは全工程加工することができる。よって、無人運転時中に工具破損しても全ての加工を中止する必要がなくなり、効率よく加工をすることができるようになる。
【図面の簡単な説明】
【図１】この発明の実施の形態１である数値制御装置のブロック図である。
【図２】この発明の実施の形態１である数値制御装置の動作を説明するためのフローチャートである。
【図３】この発明の実施の形態２である数値制御装置のブロック図である。
【図４】この発明の実施の形態２である数値制御装置の動作を説明するためのフローチャートである。
【図５】この発明の実施の形態３である数値制御装置のブロック図である。
【図６】この発明の実施の形態３である数値制御装置の動作を説明するためのフローチャートである。
【図７】この発明の実施の形態４である数値制御装置のブロック図である。
【図８】この発明の実施の形態４である数値制御装置の動作を説明するためのフローチャートである。
【図９】この発明の実施の形態５である数値制御装置のブロック図である。
【図１０】従来の数値制御装置のブロック図である。
【図１１】多数個の同一ワークの加工例を示す図である。
【図１２】ワーク１つの加工を行なう部分をサブプログラムで指令し、メインプログラムではワークの個数分繰り返し回数を指令し、多数個同一ワークを加工する加工プログラムを示す図である。
【図１３】ワーク１つの加工を行なう部分をサブプログラムで指令し、ワーク座標オフセットを切り替えてサブプログラムを呼び出し、多数個同一ワークを加工する加工プログラムを示す図である。
【図１４】ワーク１つの加工を行う部分の前後をプログラム制御指令で囲み、必要なワークの個数分繰り返すことで、多数個の同一ワークを加工する加工プログラムを示す図である。
【図１５】ワーク１つの加工を行なう部分をサブプログラムで指令し、メインプログラムではワークの個数分繰り返し回数を指令し、５つの同一ワークを加工する、加工プログラムを示す図である。
【図１６】ワーク１つの加工を行なう部分をサブプログラムで指令し、ワーク座標オフセットを切り替えてサブプログラムを呼び出し、５つの同一ワークを加工する加工プログラムを示す図である。
【図１７】ワーク１つの加工を行う部分の前後をプログラム制御指令で囲み、必要なワークの個数分繰り返すことで、５つの同一ワークを加工する加工プログラムを示す図である。
【図１８】従来の問題点を説明する図である。
【図１９】従来の問題点を説明する図である。
【図２０】従来の問題点を説明する図である。
【符号の説明】
２ａ，２ｂ，２ｃ，２ｄ  加工プログラム解析部、３  サブプログラム繰り返し回数記憶レジスタ、４  サブプログラム繰り返し回数カウンタ値記憶レジスタ、９  切削反力推定部、１０  サブプログラム最大繰り返し回数記憶レジスタ、１３  前回サブプログラム番号記憶レジスタ、１４  同一サブプログラム指令回数カウンタ値記憶レジスタ、１５  同一サブプログラム最大指令回数記憶レジスタ、１６  前回繰り返し識別番号記憶レジスタ、１７  プログラム部分繰り返し回数カウンタ値記憶レジスタ、１８  プログラム部分繰り返し最大回数記憶レジスタ、１９  ワーク検出装置。
【図１】
0003575325.tif 000002
【図２】
0003575325.tif 000003
【図３】
0003575325.tif 000004
【図４】
0003575325.tif 000005
【図５】
0003575325.tif 000006
【図６】
0003575325.tif 000007
【図７】
0003575325.tif 000008
【図８】
0003575325.tif 000009
【図９】
0003575325.tif 000010
【図１０】
0003575325.tif 000011
【図１１】
0003575325.tif 000012
【図１２】
0003575325.tif 000013
【図１３】
0003575325.tif 000014
【図１４】
0003575325.tif 000015
【図１５】
0003575325.tif 000016
【図１６】
0003575325.tif 000017
【図１７】
0003575325.tif 000018
【図１８】
0003575325.tif 000019
【図１９】
0003575325.tif 000020
【図２０】
0003575325.tif 000021