(57)【特許請求の範囲】
【請求項１】
加工プログラムのブロックを解析し実行することにより工作機械を制御しワークの加工を行う数値制御装置であって、該ワークの加工を中断した場合に、該ワークの加工を再開するためのプログラム再開ブロックデータを取得し、該プログラム再開ブロックデータに基づいて該ワークの加工を再開するプログラム再開機能を備えた該数値制御装置において、
少なくとも１つの非切削指令を登録する登録手段と、
前記加工プログラムのブロックが前記登録手段に登録された非切削指令を含むブロックであるか否か判別する非切削指令ブロック判別手段と、
前記非切削指令ブロック判別手段により前記ブロックが非切削指令を含むブロックと判別された場合に、前記プログラム再開ブロックデータを取得する手段と、
前記プログラム再開ブロックデータを取得する手段によって前記プログラム再開ブロックデータを取得するタイミングとして、前記ブロックの始点で取得するか、あるいは、終点で取得するかを前記登録手段に登録された非切削指令についてパラメータで設定する取得時点設定手段と、
を有することを特徴とするプログラム再開機能を備えた数値制御装置。
【請求項２】
前記非切削指令は、
指令１：プログラム再開ブロックデータ取得のための非切削指令として予め登録したプログラム再開ブロックデータ取得コード、
指令２：早送り指令、
指令３：補助機能指令、
指令４：予め登録した制御軸を移動する指令、
指令５：工具補正量変更指令、
指令６：ドウェル指令、
指令７：スピンドル停止指令、
指令８：スピンドル回転指令、
指令９：サブプログラム呼び出し指令、
のうちいずれか１つ以上の指令であることを特徴とする請求項１記載のプログラム再開機能を備えた数値制御装置。
【請求項３】
前記非切削指令を含むプログラムのブロックであっても、前記プログラム再開ブロックデータを取得しないように設定する設定手段を有することを特徴とする請求項１または２のいずれか１つに記載のプログラム再開機能を備えた数値制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はプログラム再開機能を備えた数値制御装置に関し、特に、プログラム再開ブロックデータをワークの切削を行っていない非切削位置で取得するようにした数値制御装置に関する。
【背景技術】
【０００２】
数値制御装置により制御された工作機械において、ワークの加工中に加工プログラムのプログラム再開ブロックデータを現在の数値制御の状態から任意に取得することは従来から行われている。例えば、特許文献１には、プログラム再開ブロックデータをあらかじめ設定されたブロック毎に定期的にデータを取得する方法が開示されている。
【０００３】
【特許文献１】特開２００２−３７３００８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
背景技術で説明した従来行われていたプログラム再開ブロックデータの取得方法は、そのブロックの状態を判断して行なわれていない。そのため、そのプログラム再開ブロックデータを用いてワークの加工を再開したとしても、加工工具の刃物がワークの既に加工された所に当たってしまい、ワークに傷（キズ）を付けてしまう問題があった。
【０００５】
そこで、本発明の目的は、加工を再開復帰してもワークに傷（キズ）が付くことがない非切削な位置でプログラム再開ブロックデータを取得し、ワークを傷付けることなくプログラム再開できる数値制御装置を提供することである。
【課題を解決するための手段】
【０００６】
本願の請求項１に係る発明は、加工プログラムのブロックを解析し実行することにより工作機械を制御しワークの加工を行う数値制御装置であって、該ワークの加工を中断した場合に、該ワークの加工を再開するためのプログラム再開ブロックデータを取得し、該プログラム再開ブロックデータに基づいて該ワークの加工を再開するプログラム再開機能を備えた該数値制御装置において、少なくとも１つの非切削指令を登録する登録手段と、前記加工プログラムのブロックが前記登録手段に登録された非切削指令を含むブロックであるか否か判別する非切削指令ブロック判別手段と、前記非切削指令ブロック判別手段により前記ブロックが非切削指令を含むブロックと判別された場合に、前記プログラム再開ブロックデータを取得する手段と、前記プログラム再開ブロックデータを取得する手段によって前記プログラム再開ブロックデータを取得するタイミングとして、前記ブロックの始点で取得するか、あるいは、終点で取得するかを前記登録手段に登録された非切削指令についてパラメータで設定する取得時点設定手段と、を有することを特徴とするプログラム再開機能を備えた数値制御装置である。  
請求項２に係る発明は、前記非切削指令は、
指令１：プログラム再開ブロックデータ取得のための非切削指令として予め登録したプログラム再開ブロックデータ取得コード、
指令２：早送り指令、
指令３：補助機能指令、
指令４：予め登録した制御軸を移動する指令、
指令５：工具補正量変更指令、
指令６：ドウェル指令、
指令７：スピンドル停止指令、
指令８：スピンドル回転指令、
指令９：サブプログラム呼び出し指令、
のうちいずれか１つ以上の指令であることを特徴とする請求項１記載のプログラム再開機能を備えた数値制御装置である。  
請求項３に係る発明は、前記非切削指令を含むプログラムのブロックであっても、前記プログラム再開ブロックデータを取得しないように設定する設定手段を有することを特徴とする請求項１または２のいずれか１つに記載のプログラム再開機能を備えた数値制御装置である。
【発明の効果】
【０００７】
本発明により、プログラムを再開してもワークに傷が付かない非切削な位置であるブロックを判別してプログラム再開ブロックデータを取得するため、ワークを傷付けることなくプログラム再開することが可能となった。  
また、プログラム再開ブロックデータを取得するための非切削指令を適宜選択して設定することが可能である。  
また、プログラム再開ブロックデータの取得をプログラムのブロックの始点で行うか終点で行うかをパラメータで選択することが可能である。  
さらに、非切削指令を含むプログラムのブロックであっても、プログラム再開ブロックデータを取得しないよう設定することが可能である。
【発明を実施するための最良の形態】
【０００８】
以下、本発明の実施形態について図面と共に説明する。  
図１は非切削送り指令を判別するためのプログラム解析処理を実行する本発明の一実施形態の機能ブロック図である。加工プログラムは、字句解析１により英記号と数値記号とに分離される。次に、例えば英記号のＧ指令の数値は何であったかを判定する構文解析２を行う。次に、例えばＧ指令の数値によりその機能を特定し、その機能別の処理を実行する意味解析３を行う。次に、意味解析の結果をオブジェクトコードに変換するオブジェクトコードの生成４を行う。次に、非切削指令判別手段５により、オブジェクトコード化された指令から非切削指令を判別する。そして、プログラム再開ブロックデータ取得手段６によりパラメータ設定手段（図示しない）で設定された非切削指令ブロックの始点のデータを取得するか、終点のデータを取得するか判別して、プログラム再開ブロックデータを取得する。  
前記取得されるプログラム再開ブロックデータは、加工プログラム実行中のプログラムのブロック番号、実行中のブロックの始点位置と終点位置、実行中のブロックの各種モーダル情報、親プログラムの番号とサブプログラムの呼び出しのブロック位置、親プログラムから実行中のブロックまでの総ブロック数などのプログラム再開に必要なデータである。
【０００９】
次に、非切削指令について説明する。
（Ａ）あらかじめ登録したプログラム再開ブロックデータ取得コードの例。  
プログラム再開用のプログラム再開ブロックデータ取得コードが入力されているブロックでプログラム再開ブロックデータを取得する例である。あらかじめプログラム中の非切削な箇所にプログラム再開用のデータ取得コードを入力しておき、このコードが実行されたところでプログラム再開ブロックデータを取得する。このコードは、パラメータで複数設定できるようにする。下記はＧ７７７をパラメータ登録したときの例である。
【００１０】
O0001;  
N01G90G00X100.Y100.;  
N02G01X200.F1000.;  
N03Y200.;  
N04X100.;  
N05Y100.;  
N06G00X0Y0;  
N07G777;  
N08G90G00X300.Y300.;  
・  
・  
プログラムＮｏ０００１のブロックデータの意味を概略説明する。  
ブロックＮｏ０１：アブソリュート指令で位置決め早送り  
ブロックＮｏ０２：直線補間  
ブロックＮｏ０３：直線補間  
ブロックＮｏ０４：直線補間  
ブロックＮｏ０５：直線補間  
ブロックＮｏ０６：位置決め早送り  
ブロックＮｏ０７：パラメータ登録（Ｇ７７７）  
ブロックＮｏ０８：アブソリュート指令で位置決め早送り  
・  
・  
この場合、Ｎｏ０７のブロックで登録されたパラメータＧ７７７が存在するので、Ｎｏ０７のブロックでプログラム再開ブロックデータを取得する。
【００１１】
（Ｂ）早送り指令ブロックの終点の例。
早送り指令のブロックの終点であればどこでもよい。
O0002;  
N01G90G00X100.Y100.;  
N02G01X200.F1000.;  
N03Y200.;  
N04X100.;  
N05Y100.;  
N06G00X0Y0;  
N07G90G00X300.Y300.;  
・  
・  
プログラムＮｏ０００２のブロックデータの意味を説明する。  
ブロックＮｏ０１：アブソリュート指令で位置決め早送り  
ブロックＮｏ０２：直線補間  
ブロックＮｏ０３：直線補間  
ブロックＮｏ０４：直線補間  
ブロックＮｏ０５：直線補間  
ブロックＮｏ０６：位置決め早送り  
ブロックＮｏ０７：アブソリュート指令で位置決め早送り  
・  
・  
この場合、Ｎｏ０５のブロックが切削送りのブロックでＮｏ０６のブロックが位置決め早送りのブロックとなり、ブロックでＮｏ０６の終点位置でプログラム再開ブロックデータを取得する。早送りブロックと早送りブロックの間の例は、Ｎｏ０６とＮｏ０７のブロックがそれにあたり、やはりＮｏ０６のブロックの終点位置でプログラム再開ブロックデータを取得することになる。
【００１２】
（Ｃ）補助機能指令の例。  
補助機能の実行時にプログラム再開ブロックデータを自動的に取得する。補助機能を実行している箇所では切削は行われていないので、再開してもワークにキズを与えることのない安全な位置である。よって補助機能コードを実行中にプログラム再開ブロックデータを取得する。さらに、データ取得を補助機能コードの実行前か実行後かをパラメータで指定できるようにするものとする。  
O0003;  
N01G90G00X100.Y100.;  
N02G01X200.F1000.;  
N03Y200.;  
N04X100.;  
N05Y100.;  
N06X0Y0;  
N07M101;  
N08G01X300.Y300.F1000.;  
N09Y400.;  
・  
・  
プログラムＮｏ０００３のブロックデータの意味を説明する。  
ブロックＮｏ０１：アブソリュート指令で位置決め早送り  
ブロックＮｏ０２：直線補間  
ブロックＮｏ０３：直線補間  
ブロックＮｏ０４：直線補間  
ブロックＮｏ０５：直線補間  
ブロックＮｏ０６：直線補間  
ブロックＮｏ０７：補助機能Ｍ１０１  
ブロックＮｏ０８：直線補間  
ブロックＮｏ０９：直線補間  
・  
・  
この場合、Ｍ１０１が補助機能なので、このブロックＮｏ０７でプログラム再開ブロックデータを取得する。前述のとおり、このブロックの始点で取得するか、ブロックを実行後に取得するかはパラメータで指定できるものとする。
【００１３】
（Ｄ）あらかじめ登録した制御軸を移動する指令の例。  
あらかじめ指定した指定軸であるあらかじめ登録した制御軸が移動動作中にプログラム再開ブロックデータを自動的に取得する。ある軸の移動がエアカットのピックフィードで使用されている時に効果的である。軸の指定はパラメータで指定できるものとする。また、指定軸が動作しているブロックの始点でプログラム再開データを取得するか、終点で前記データを取得するかはパラメータで指定できるものとする。下記はＺ軸を指定軸とした例である。
Ｚ軸を登録しておいてＺ軸が動作したらデータを取得する例。  
O0004;  
N01G90G00X0.Y0. Z-90.;  
N02G01X200.F1000.;  
N03Z-100.;  
N04X200.;  
N05X0;  
N06Z-110.;  
・  
・  
プログラムＮｏ０００４のブロックデータの意味を概略説明する。  
ブロックＮｏ０１：アブソリュート指令で位置決め早送り  
ブロックＮｏ０２：直線補間  
ブロックＮｏ０３：直線補間  
ブロックＮｏ０４：直線補間  
ブロックＮｏ０５：直線補間  
ブロックＮｏ０６：直線補間  
・  
・  
この場合、ブロックＮｏ０１、Ｎｏ３、及びＮｏ０６のブロックでデータを取得する。ブロックのデータを取得するときブロックの始点でデータを取得するか、ブロックの終点で取得するかパラメータで設定できるものとする。
【００１４】
（Ｅ）工具補正量変更指令の例。  
工具補正量の変更指令でプログラム再開ブロックデータを自動的に取得する。工具を交換し、補正量を変更するときは刃物がワークに接触していない位置であるので、この状態のとき再開データを取得する。工具補正前か工具補正後かはパラメータで指定できるものとする。  
O0005;  
N01G90G00X0.Y0. Z-90.;  
N02G00X100.Y100.;  
N03M03T001;  
N04G43H01;  
N05G01X200.F1000.;  
N06Y200;  
N07X100.;  
N08Y100.;  
N09G00X0Y0;  
・  
・  
プログラムＮｏ０００５のブロックデータの意味を概略説明する。  
ブロックＮｏ０１：アブソリュート指令で位置決め早送り  
ブロックＮｏ０２：直線補間  
ブロックＮｏ０３：主軸時計方向回転  
ブロックＮｏ０４：工具長補正＋  
ブロックＮｏ０５：直線補間  
ブロックＮｏ０６：直線補間  
ブロックＮｏ０７：直線補間  
ブロックＮｏ０８：直線補間  
ブロックＮｏ０９：位置決め早送り  
・  
・  
この場合は、ブロックＮｏ０４の工具長補正の変更指令であるＧ４３のブロックでデータを取得する。前述のとおり補正前か補正後をパラメータで設定できるものとする。
【００１５】
（Ｆ）ドウェル指令の例。  
ドウェル指令の時にプログラム再開ブロックデータを取得する。  
O0006;  
N01G90G00X0.Y0. Z-90.;  
N02G04X5.;  
N03G00X100.Y100.;  
N04G01X200.F1000.;  
N05Y200;  
N06X100.;  
N07Y100.;  
N08G00X0Y0;  
・  
・  
プログラムＮｏ０００６のブロックデータの意味を概略説明する。  
ブロックＮｏ０１：アブソリュート指令で位置決め早送り。  
ブロックＮｏ０２：ドウェル  
ブロックＮｏ０３：位置決め早送り  
ブロックＮｏ０４：直線補間  
ブロックＮｏ０５：直線補間  
ブロックＮｏ０６：直線補間
ブロックＮｏ０７：直線補間  
ブロックＮｏ０８：位置決め早送り  
・  
・  
この場合は、ブロックＮｏ０２のブロックにドウェル指令があり、５秒間プログラムが停止する。このブロックでデータを取得する。
【００１６】
（Ｇ）スピンドル停止指令またはスピンドル回転指令のブロックの始点の例。  
スピンドルが停止しているときは、切削を行っていないので、停止しているブロックであればプログラム再開ブロックデータを取得する。また、スピンドル回転指令のブロックの始点でも切削を行っていないのでプログラム再開ブロックデータを取得する。
【００１７】
（Ｈ）サブプログラム呼び出し指令の例。  
サブプログラムを呼び出すブロックでプログラム再開ブロックデータを取得する。  
O0007;  
N01G90G00X0.Y0. Z-90.;  
N03G00X100.Y100.;  
N04G01X200.F1000.;  
N05Y200;  
N06X100.;  
N07Y100.;  
N08G00X0Y0;  
N09M98P0077;  
・  
・  
プログラムＮｏ０００７のブロックデータの意味を概略説明する。  
ブロックＮｏ０１：アブソリュート指令で位置決め早送り  
ブロックＮｏ０２：位置決め早送り  
ブロックＮｏ０３：直線補間  
ブロックＮｏ０４：直線補間  
ブロックＮｏ０５：直線補間  
ブロックＮｏ０６：直線補間  
ブロックＮｏ０７：直線補間  
ブロックＮｏ０８：位置決め早送り  
ブロックＮｏ０９：サブプログラム呼び出し  
・  
・  
この場合、ブロックＮｏ０９で０７７のサブプログラムを呼び出す。この例では、メインプログラムからの呼び出しをＭ９８によって行っている。Ｐによってサブプログラムの番号を指示する。サブプログラム番号としてアドレスキャラクタ“Ｏ”を使用している。サブプログラムを呼びだすときは切削をおこなっていないので、データを取得する。
【００１８】
次に、上記の非切削指令の登録手段について説明する。  
非切削指令の登録は、表１の非切削指令の判断コードを非切削指令の判断コードテーブルとして図３に示される数値制御装置１０の例えばＣＭＯＳメモリ１４のような数値制御装置１０を構成する記憶装置に格納しておく。そして、プログラム再開ブロックデータの取得は、前記判断コードテーブルに登録された表１に示される非切削指令の判断コードを、数値制御装置を動作させるプログラムにあらかじめプログラミングすることによって実施する。  
そして、このプログラミングされた非切削指令の判断コードを常時動作させることも可能であるし、または、表１の非切削指令でプログラム再開ブロックデータを取得するか、しないかを、パラメータ設定手段によりパラメータを設定することにより決定することもできる。さらに、各々の非切削指令のブロック始点でデータを取得するか、ブロック終点でデータを取得するか、パラメータで設定することにより決定することもできる。
【００１９】
【表１】
0004374045.tif 000002
【００２０】
（＊１）プログラム再開ブロックデータを取得するために予め登録した制御軸を移動する指令であっても、加工プログラムによっては取得しないようにしたい場合がある。例えば、予め登録した制御軸を移動する指令は、ある加工ではその登録された軸が動作した場合は非切削指令であることが確定されているが、すべてのプログラムで非切削指令ということが保障されているわけではないので、加工プログラムによっては取得しないように設定したい場合がある。  
（＊２）（１）〜（１１）は単に番号を付与したものであり、この番号自体およびその順番に何らかの意味を付与するものではない。
【００２１】
下記にプログラム例（Ｏ０００８）を示す。  
下記のプログラム例は、X軸方向のワーク長が30mmでX-Z平面でジグザグに表面を加工するが、Y軸が動作するときはワークから5mm離れた位置で動作するプログラムとする。  
この場合、「予め登録した制御軸を移動する指令」としてはY軸の指令と登録することによって、Ｎｏ０６とＮｏ１１とＮｏ１６とＮｏ２１のブロックでプログラム再開ブロックデータを取得する。このように加工プログラム的にある軸が動作する時は非切削指令とわかっている場合は、「予め登録した制御軸を移動する指令」の設定をＯＮできるが、すべてのプログラムで保障できないので、ＯＦＦする設定が必要になる。  
O0008;  
N01G91G01F1000.;  
N02X10.;  
N03X10.Z10.;  
N04X10.Z-10.;  
N05X10.;  
N06Y2.;  
N07X-10.;  
N08X-10.Z10.;  
N09X-10.Z-10.;  
N10X-10.;  
N11Y2.  
N12X10.;  
N13X10.Z10.;  
N14X10.Z-10.;  
N15X10.;  
N16Y2.  
N17X-10.;  
N18X-10.Z10.;  
N19X-10.Z-10.  
N20X-10.;  
N21Y2.  
・  
・  
・  
M30;  
プログラムＮｏ０００８のブロックデータの意味を説明する。  
ブロックＮｏ０１：インクリメンタル指令で直線補間  
ブロックＮｏ０２：直線補間  
ブロックＮｏ０３：直線補間  
ブロックＮｏ０４：直線補間  
ブロックＮｏ０５：直線補間  
ブロックＮｏ０６：直線補間  
ブロックＮｏ０７：直線補間  
ブロックＮｏ０８：直線補間  
ブロックＮｏ０９：直線補間  
ブロックＮｏ１０：直線補間  
ブロックＮｏ１１：直線補間  
ブロックＮｏ１２：直線補間  
ブロックＮｏ１３：直線補間  
ブロックＮｏ１４：直線補間  
ブロックＮｏ１５：直線補間  
ブロックＮｏ１６：直線補間  
ブロックＮｏ１７：直線補間  
ブロックＮｏ１８：直線補間  
ブロックＮｏ１９：直線補間  
ブロックＮｏ２０：直線補間  
ブロックＮｏ２１：直線補間  
・  
・  
・  
プログラム終了  
表１で示される指令１であるプログラム再開ブロックデータ取得のための非切削指令として予め登録したプログラム再開ブロックデータ取得コードは、表２のようにパラメータ設定手段にて指令コードと指令データで登録する。
【００２２】
【表２】
0004374045.tif 000003
【００２３】
次に、図１の非切削指令判別手段５で実行される、図２に示される本発明の実施形態の非切削送り指令判別処理のアルゴリズムを示すフローチャートについて説明する。  
非切削送り指令判別処理を開始すると、登録されている非切削指令は存在するか否か判断する（ステップＳ１）。ステップＳ１でＮＯと判断されるとこの判別処理は終了する。ＹＥＳと判断されると、登録されている非切削指令は全部解析したか否かを判断する（ステップＳ２）。ステップＳ２でＹＥＳ、つまり、非切削指令を全部解析したと判断されると、終了する。ＮＯと判断されると、登録されている非切削指令のデータを読み込み（ステップＳ３）、ステップＳ４に進む。そして、現在解析中のブロックは非切削指令か否かを判断する（ステップＳ４）。ステップＳ４でＮＯと判断されると、ステップＳ２に戻る。ＹＥＳと判断されると、ステップＳ５に進み、登録されている非切削指令はブロック始点でデータ取得するか否かを判断する（ステップＳ５）。ステップＳ５でＹＥＳと判断されると、ブロック始点でプログラム再開ブロックデータを取得しメモリに格納し（ステップＳ６）、終了する。また、ＮＯと判断されると、ブロック終点でプログラム再開ブロックデータを取得しメモリに格納し（ステップＳ７）、処理を終了する。なお、表１で始点、終点に無関係な非切削指令の場合はステップＳ７に進みブロック終点でプログラム再開ブロックデータを取得しメモリに格納する。
【００２４】
図３は本発明の一実施形態である数値制御装置１０の要部ブロック図である。ＣＰＵ１１は数値制御装置１０を全体的に制御するプロセッサであるＣＰＵ１１は、ＲＯＭ１２に格納されたシステムプログラムを、バス１９を介して読み出し、該システムプログラムにしたがって数値制御装置全体を制御する。ＲＡＭ１３には一時的な計算データや表示データおよびＣＲＴや液晶などで構成される表示器とキーボードなどで構成される手動入力手段とからなる表示器／手動入力手段ユニット２０を介してオペレータが入力した各種データが格納される。ＣＭＯＳメモリ１４は図示しないバッテリでバックアップされ、数値制御装置１０の電源がオフされても記憶状態が保持される不揮発性メモリとして構成される。
【００２５】
ＣＭＯＳメモリ１４中には、インタフェース１５を介して読み込まれた加工プログラムや表示器／手動入力手段ユニット２０を介して入力された加工プログラムなどが記憶される。また、ＲＯＭ１２には、本発明の実施形態であるプログラム再開ブロックデータ取得のためのプログラムがあらかじめ格納されている。  
インタフェース１５は、数値制御装置１０と外部機器との接続を可能とするものである。ＰＭＣ（プログラマブル・マシン・コントローラ）１６は、数値制御装置１０に内蔵されたシーケンスプログラムで制御対象物の工作機械の補助装置（例えば、工具交換用のロボットハンドといったアクチュエータ）にＩ／Ｏユニット１７を介して信号を出力し制御する。また、数値制御装置１０で制御される制御対象物である工作機械の本体に配備された操作盤の各種スイッチなどの信号を受け、必要な信号処理をした後、ＣＰＵ１１に渡す。
【００２６】
各送り軸の軸制御回路３０〜３２はＣＰＵ１１からの各送り軸の移動指令量を受けて、各送り軸の指令をサーボアンプ４０〜４２に出力する。サーボアンプ４０〜４２はこの指令を受けて、機械（制御対象物）の各送り軸のサーボモータ５０、５１、５２を駆動する。各送り軸のサーボモータ５０〜５２は位置・速度検出器を内蔵し、この位置・速度検出器からの位置、速度フィードバック制御を行う。なお、図３では、位置・速度制御のフィードバックについては省略している。
また、スピンドル制御回路３３は主軸回転指令を受け、スピンドルアンプ６１にスピンドル速度信号を出力する。スピンドルアンプ６１はスピンドル速度信号を受けて、主軸モータ６２を指令された回転速度で回転させ、主軸を駆動する。ポジションコーダ６３は、主軸モータ６２の回転に同期して帰還パルスをスピンドル制御回路３３にフィードバックし、速度制御を行う。  
【００２７】
上述した数値制御装置１０の構成は従来の数値制御装置とほぼ同一であり、相違する点は、非切削送り指令の判別処理を実行するプログラムをＲＯＭ１２に格納し、表１の非切削指令の判断コードテーブルをＣＭＯＳメモリ１４のような数値制御装置を構成する記憶装置に格納してある点である。そして、表１に示されている非切削指令の判断コードテーブルの非切削指令に対して、プログラム再開ブロックデータを取得する場合０、取得しない場合１のようにパラメータを設定することにより、非切削指令の判断コードを常時動作させたり、動作させなかったりすることが可能である。また、始点で取得の場合０、終点で取得の場合１、ブロックの始点・終点に無関係の場合−のようにパラメータを設定することにより、ブロックのどの箇所でプログラム再開ブロックデータを取得するか選択することが可能である。
【図面の簡単な説明】
【００２８】
【図１】非切削指令を判別するためのプログラム解析処理を実行する本発明の一実施形態である機能ブロック図である。
【図２】非切削送り指令判別処理のアルゴリズムを示すフローチャートである。
【図３】本発明の一実施形態である数値制御装置の要部ブロック図である。
【符号の説明】
【００２９】
１  字句解析
２  構文解析
３  意味解析
４  オブジェクトコード生成
５  非切削指令判別手段
６  プログラム再開ブロックデータ取得手段
１０  数値制御装置
【図１】
0004374045.tif 000004
【図２】
0004374045.tif 000005
【図３】
0004374045.tif 000006