(57)【要約】【課題】加工プログラムのブロックの解析を一時中断し、そのブロック１つ前のブロックの実行が終了したことをもって、一時中断していた箇所からブロックの解析を再開して続行することで、先読み停止制御を提供する。【解決手段】加工プログラムのブロックを順次先読みして解析して先読みバッファに格納しその後前記ブロックを実行して数値制御する数値制御装置であって、前記ブロックにブロックの解析を一時中断する先読み停止コードがあるか判別する判別手段と、前記判別手段により前記先読み停止コードを判別したときこのブロックの解析を一時中断する手段と、一時中断したこのブロックより順番が１つ手前のブロックの実行が終了したことを判断する終了判断手段と、前記終了判断手段の判断結果に基づき一時中断したこのブロックの解析を再開する再開手段を備えた数値制御装置。【選択図】図２
2008293261.tif 000002
【特許請求の範囲】
【請求項１】
加工プログラムのブロックを順次先読みして解析して先読みバッファに格納しその後前記ブロックを実行して数値制御する数値制御装置であって、前記ブロックにブロックの解析を一時中断し先読み停止するコードがあるか判別する判別手段と、前記判別手段により前記一時中断するコードを判別したときにこのブロックの解析を一時中断する手段と、一時中断したこのブロックより順番が１つ手前のブロックの実行が終了したことを判断する終了判断手段と、前記終了判断手段の判断結果に基づき一時中断したこのブロックの解析を再開する再開手段を備えた数値制御装置。
【請求項２】
加工プログラムのブロックを順次先読みして解析して先読みバッファに格納しその後前記ブロックを実行して数値制御する数値制御装置であって、前記ブロックにブロックの解析を一時中断し先読み停止するマクロ変数操作を行なっているコードがあるか判別する判別手段と、前記判別手段により前記一時中断するマクロ変数操作を行なっているコードを判別したときにこのブロックの解析を一時中断する手段と、一時中断したこのブロックより順番が１つ手前のブロックの実行が終了したことを判断する終了判断手段と、前記終了判断手段の判断結果に基づき一時中断したこのブロックの解析を再開する再開手段を備えた数値制御装置。
【請求項３】
加工プログラムのブロックを順次先読みして解析して先読みバッファに格納しその後前記ブロックを実行して数値制御する数値制御装置であって、前記ブロックに先読み停止するコードがあるか判別する判断手段と、前記判別手段により判別された前記コードがこのブロックの解析を一時中断するコードか一時中断しないコードかの種別を判断するコード種別判断手段と、一時中断したこのブロックより順番が１つ手前のブロックの実行が終了したことを判断する終了判断手段と、前記コード種別判断手段及び前記終了判断手段の判断結果に基づき解析を一時中断して再開しこのブロックの解析を終了するか、または、解析を継続してこのブロックの解析を終了するかを選択して実行する数値制御装置。
【請求項４】
前記先読み停止コードをパラメータにより１つあるいは複数登録できる先読み停止コード登録手段を有する請求項１または３のいずれか１つに記載の数値制御装置。
【請求項５】
前記マクロ変数操作を行っているコードがあるかの判別に使用するマクロ変数の範囲をパラメータにより複数指定できるマクロ変数範囲指定手段を有する請求項２に記載の数値制御装置。
【請求項６】
前記マクロ変数操作はその判別される操作方法をパラメータにより指定できるマクロ変数操作指定手段を有する請求項２または５のいずれか１つに記載の数値制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は工作機械を制御する数値制御装置に関する。特に、プログラムから指令ブロックを先読みして実行可能なデータを作成し、先読みバッファに一時的に格納した後に該データに基づいて補間処理を行なう数値制御装置に関し、特に、先読み停止制御のサイクルタイムの短縮化を図る数値制御装置に関する。
【背景技術】
【０００２】
数値制御装置において先読み制御を行なう際には、シーケンスの後の順番にある例えばシステム変数操作を行なうようなブロックが先読みバッファに格納されず直接実行され、先読みバッファに一時格納中の実行データが処理される際に前記システム変数の操作が及ぼされることがあり、このような場合は先読み停止制御を行なっていた。  
数値制御装置における従来の先読み停止制御は、先読み停止制御を行なう指令をプログラム中の１ブロックとして挿入し、その挿入されたブロックで加工プログラムの先読み処理を停止していた（図８（ａ））。図８（ａ）で示されるプログラムの例では、Ｎ１５のブロックを先読みさせないようにするため、Ｎ１４の先読み停止コードのブロックを挿入していた。先読み停止制御を行なう指令をプログラムの既存ブロックの中に挿入して加工プログラムと一緒に指令できる先読み停止コードもあったが、その一緒に指令された加工プログラムの処理が全て完了してから先読み停止を行なう仕様であった（図８（ｂ））。図８（ｂ）で示されるプログラムの例では、Ｎ１４のブロックを先読みさせないため、Ｎ１３のブロックの中に補助機能であるＭコードを先読み停止コードとして挿入することもあった。また、ロボットの制御方法において変数が確定した場合に先読みを再開する技術が知られている（特許文献１参照）。
【０００３】
【特許文献１】特開平５−２１８４４５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
先読み停止プログラムを１ブロック挿入する場合は、その１ブロック分の処理時間が加工プログラムの処理時間に加算されてしまい加工時間が延びるという問題があった。また、加工プログラムと一緒に指令できる先読み停止コードは補助機能であるため、ブロックの実行の最後にＰＭＣの信号操作が必要となり実行が遅くなり、加工時間が延びるという問題があった。  
そこで、本発明の目的は、加工プログラムの指令と同時に先読み停止コードまたはマクロ変数操作を行なっているコードによって、その指令されたプログラムの指令の解析を行なう処理において、その先読み停止コードまたは先読みを停止するマクロ変数操作が指令されていることを判別して、そのブロックの処理を一時中断し、そのブロックの１つ前のブロックの実行が終了したことをもって、一時中断していた箇所からブロックの解析を再開して続行することで、先読み停止制御を提供するものである。
【課題を解決するための手段】
【０００５】
請求項１に係る発明は、加工プログラムのブロックを順次先読みして解析して先読みバッファに格納しその後前記ブロックを実行して数値制御する数値制御装置であって、前記ブロックにブロックの解析を一時中断し先読み停止するコードがあるか判別する判別手段と、前記判別手段により前記一時中断するコードを判別したときにこのブロックの解析を一時中断する手段と、一時中断したこのブロックより順番が１つ手前のブロックの実行が終了したことを判断する終了判断手段と、前記終了判断手段の判断結果に基づき一時中断したこのブロックの解析を再開する再開手段を備えた数値制御装置である。
【０００６】
請求項２に係る発明は、加工プログラムのブロックを順次先読みして解析して先読みバッファに格納しその後前記ブロックを実行して数値制御する数値制御装置であって、前記ブロックにブロックの解析を一時中断し先読み停止するマクロ変数操作を行なっているコードがあるか判別する判別手段と、前記判別手段により前記一時中断するマクロ変数操作を行なっているコードを判別したときにこのブロックの解析を一時中断する手段と、一時中断したこのブロックより順番が１つ手前のブロックの実行が終了したことを判断する終了判断手段と、前記終了判断手段の判断結果に基づき一時中断したこのブロックの解析を再開する再開手段を備えた数値制御装置である。
【０００７】
請求項３に係る発明は、加工プログラムのブロックを順次先読みして解析して先読みバッファに格納しその後前記ブロックを実行して数値制御する数値制御装置であって、前記ブロックに先読み停止するコードがあるか判別する判断手段と、前記判別手段により判別された前記コードがこのブロックの解析を一時中断するコードか一時中断しないコードかの種別を判断するコード種別判断手段と、一時中断したこのブロックより順番が１つ手前のブロックの実行が終了したことを判断する終了判断手段と、前記コード種別判断手段及び前記終了判断手段の判断結果に基づき解析を一時中断して再開しこのブロックの解析を終了するか、または、解析を継続してこのブロックの解析を終了するかを選択して実行する数値制御装置である。
請求項４に係る発明は、前記先読み停止コードをパラメータにより１つあるいは複数登録できる先読み停止コード登録手段を有する請求項１または３のいずれか１つに記載の数値制御装置である。
請求項５に係る発明は、前記マクロ変数操作を行っているコードがあるかの判別に使用するマクロ変数の範囲をパラメータにより複数指定できるマクロ変数範囲指定手段を有する請求項２に記載の数値制御装置である。
請求項６に係る発明は、前記マクロ変数操作はその判別される操作方法をパラメータにより指定できるマクロ変数操作指定手段を有する請求項２または５のいずれか１つに記載の数値制御装置である。
【発明の効果】
【０００８】
先読みを停止させる指令を通常の加工プログラム指令に含ませることで、従来の先読み停止ブロックを挿入する方法よりも加工プログラムのサイクルタイムを短縮することが可能となる。また、従来の加工プログラムと同一ブロックに指令する場合の欠点であった一緒に指令された加工プログラムの処理が完了してから先読み停止することも、加工プログラムの解析を一時中断できるので解消することができる。さらに、加工プログラムの解析処理を一時中断し、その中断したところから再開することで、従来の先読み制御方法よりも処理の無駄が無くなるので、これによりさらにサイクルタイムの短縮が可能となる。
【発明を実施するための最良の形態】
【０００９】
以下、本発明の実施形態を図面と共に説明する。  
図１に示される本発明の実施形態の数値制御装置８は先読み停止コードテーブル４を備えている。この先読み停止コードテーブル４は、先読みを停止するタイプのコードと、ブロックの解析を一時中断し先読みを停止するタイプのコードとを格納している。先読み停止コードテーブル４に格納されるコードとしてマクロ変数の場合もある。図１において、プログラム先読み解析手段１は、現在実行中のブロックから１ブロック以上先までのブロックを加工プログラムから先読み及び解析を行い、先読みバッファ２に解析結果を格納する。先読みバッファ２には各ブロックのモーダル情報、各軸の移動量、主軸指令回転数、送り速度などの情報が格納される。図１に示すプログラム先読み解析手段１が加工プログラムから１ブロックずつ読み出しブロックの解析を行い、先読み停止コードテーブル４に記憶されている先読みを停止させるコードが現れると加工プログラムの先読みを停止する。図６の加工プログラムの例にあるＮ１４のＧ９００や、図７の加工プログラムの例にあるＮ１４の♯１３０２０のように、先読み停止コードには登録されたコードや登録されたマクロ変数がある。
【００１０】
ここで、数値制御装置８においてブロックの解析とは、ソースコードであるブロックをコンピュータが認識できる実行データであるオブジェクトコードへ変換することを意味する。この変換には、（１）字句解析、（２）マクロ解析、（３）マクロ実行、（４）構文解析、（５）意味解析、（６）オブジェクトコードの生成、（７）最適化の７種類の工程がある。（１）字句解析は英記号と数値記号とを分ける処理を意味する。（２）マクロ解析は字句解析でマクロ変数の特殊記号があった場合にマクロ解析を実行することを意味する。ここで変数番号やマクロ構文を解析し、先読み停止コードテーブル４に登録されている変数操作があった場合は停止する。（３）マクロ実行は解析されたマクロを実行する。マクロプログラムによっては字句解析の結果でマクロのマクロの領域を書き換える。例えば、Ｇ００Ｘ＃１００；は、この指令を実行した時に♯１００の値が３５０．０ならば、字句解析の結果データのＸアドレスに３５０．０が入力された、という情報になる。（４）構文解析はＧ指令の数値は何であるかだけを判定する。（５）意味解析はＧ指令の数値により、その機能を特定でき、その機能別の処理を実行する。（６）オブジェクトコードの生成は意味解析結果をオブジェクトコード化することである。（７）最適化は生成したオブジェクトコードを最適化することである。本発明の実施形態において順次先読みされたブロックは前記の工程を経て実行データが作成される。マクロ変数操作による先読み停止を行なわない場合には（２）マクロ解析、（３）マクロの実行の変換工程は行なわれない。
【００１１】
そして、数値制御装置８は、前記一時中断するタイプのコードがブロック内にあると前記工程の所定工程でそのブロックの解析を中断する処理を行なう。先読み停止コードをパラメータにより１つあるいは複数登録できるように先読み停止コード登録手段５や、♯１００００〜♯１１０００までの範囲の変数を操作した時はブロック解析を一時中断し先読みを停止するように、ブロックの解析を中断する判別に使用されるマクロ変数の範囲をパラメータにより指定できるマクロ変数範囲指定手段６を備える。また、変数を操作する例としては、例えば、（１）その変数の値を読み込む時、（２）その変数の内容を変更する時、といった操作をパラメータで指定することも可能である。このような指定を行なうことにより、前記（１）の操作は先読み停止しないで、前記（２）の操作のみを先読み停止するというような指定が可能なマクロ変数操作方法指定手段７を備えることができる。なお、数値制御装置８は先読み停止コード登録手段５、マクロ変数変数範囲指定手段６、マクロ変数操作方法指定手段７から適宜選択して備えればよい。
パラメータの具体例としては、例えば、変数番号の範囲を指定して、操作方法をさらに指定する方法がある。例えば、
パラメータ１５０１０＝１３０００
パラメータ１５０１１＝１３１００（または個数を入力する、例えば、１００個）
パラメータ１５０１２＝０  リード操作、ライト操作も対象
１  リードのみ対象
２  ライトのみ対象
機能で指定する方法として、例えば、
パラメータ１５０００＃＝０＝１  オフセット機能の変数をリード／ライトした時に                                    先読み停止する。
パラメータ１５０００＃＝１＝１  オフセット機能の変数をリードした時のみ先読み                                    停止する。
パラメータ１５０００＃＝２＝１  オフセット機能の変数をライトした時のみ先読み
停止する。
このように、パラメータに意味を持たせて設定し、このセットをいくつか登録する。
【００１２】
図２は本実施形態における数値制御装置のプロセッサが実施するブロック解析を一時中断し先読み停止させる意味をもったコードを使用する先読み処理のアルゴリズムのフローチャートである。ブロック解析を一時中断するタイプの先読み停止させる意味をもったコードとしては図６の加工プログラムの例に用いられるＧ９００のように設定される。まず、加工プログラムから１ブロック読み込む（ステップＡ１）。読み込んだブロックがプログラムエンドかいなかを判断する（ステップＡ２）。例えば、このプログラムのエンドかいなかはシーケンス番号、プログラムのエンドを示すコードを認識することにより行なえる。図６に示される加工プログラム例ではプログラムエンドを示す補助機能であるＭ３０を認識することによりプログラムのエンドを判断することが可能である。プログラムのエンドと判断されると加工プログラムの処理は終了する。  
ステップＡ３では数値制御装置に用意されている先読みバッファが満杯かいなかを判断する。先読みバッファが満杯であれば満杯で無くなるまで待つ（ステップＡ３）。満杯かいなかは先読みバッファにブロックの実行データが保存されている位置を示すポインタを認識することなどにより行なうことができる。先読みバッファが満杯でないと判断されると、先読み停止を意味するフラグＦ１が立っているかいなかを判断する（ステップＡ４）。フラグが１でない場合（つまり、先読み停止でない場合）、読み込んだブロックの解析を行なう（ステップＡ５）。ステップＡ５での解析は字句解析と構文解析が行なわれる。ステップＡ５で解析されたブロックの情報にブロックの解析を一時中断するタイプの先読み停止コードがあるかいなかを判断する（ステップＡ６）。ステップＡ６でブロックの解析を一時中断するタイプの先読み停止コードが無いと判断されると、読み込んだブロックの解析処理を続行し、実行データを作成する（ステップＡ７）。ステップＡでの解析は意味解析から処理を続行することになる。作成された前記実行データは先読みバッファに保存される（ステップＡ８）。そして、次の１ブロックを読むため最初に戻る。  
ステップＡ６でブロックの解析を一時中断するタイプの先読み停止コードがあると判断されると、ブロックの解析を一時中断するタイプの先読み停止コードを含んだブロックの解析を一時中断する（ステップＡ９）。そして、先読み停止を意味するためフラグに１を立てる（ステップＡ１０）。ブロックの解析は一時中断であることから、次のブロックを読み込まないように、プログラムエンドを判断するステップＡ２と先読みバッファは満杯かを判断するステップＡ３との間に戻る。
【００１３】
ステップＡ４でフラグ１つまり先読み停止と判断されると、次に先読みバッファは空かいなかが判断される（ステップＡ１１）。ステップＡ１１で先読みバッファが空でないと判断されると先読みバッファが空になるまで待つ。先読みバッファが空と判断されるとステップＡ９で解析を一時中断したブロックの解析処理を再開して続行し実行データを作成する（ステップＡ１２）。Ａ１２の解析処理の続行は意味解析から解析処理を続行する。そして、作成された実行データは先読みバッファに保存される（ステップＡ１３）。一時中断したブロックの解析処理を再開して続行されたことから、次のブロックの解析を可能とするため、フラグを下げ（Ｆ１←０）先読み停止状態を解除する（ステップＡ１４）。そして、次のブロックを読み込むため最初に戻る。
【００１４】
図３は本実施形態における数値制御装置のプロセッサが実施するブロック解析を一時中断しブロックの先読みを停止する判別コードとしてマクロ変数操作を使用する先読み処理のアルゴリズムのフローチャートである。まず、加工プログラムから１ブロック読み込む（ステップＢ１）。読み込んだブロックがプログラムエンドかいなかを判断する（ステップＢ２）。例えば、このプログラムのエンドかいなかはシーケンス番号、プログラムのエンドを示すコードを認識することにより行なえる。図６に示される加工プログラム例ではプログラムエンドを示す補助機能であるＭ３０を認識することによりプログラムのエンドを判断することが可能である。プログラムのエンドと判断されると加工プログラムの処理は終了する。
【００１５】
ステップＢ３では数値制御装置に用意されている先読みバッファが満杯かいなかを判断する。先読みバッファが満杯であれば満杯で無くなるまで待つ（ステップＢ３）。満杯かいなかは先読みバッファにブロックの実行データが保存されている位置を示すポインタを認識することなどにより行なうことができる。先読みバッファが満杯でないと判断されると、先読み停止を意味するフラグＦ１が立っているかいなかを判断する（ステップＢ４）。フラグが１でない場合（つまり、先読み停止でない場合）、読み込んだブロックの解析を行なう（ステップＢ５）。ステップＢ５でのブロックの解析は字句解析とマクロ解析が行なわれる。ステップＢ５で解析されたブロックの情報にブロックの解析を一時中断するタイプのマクロ変数操作があるかないかを判断する（ステップＢ６）。ステップＢ６で前記タイプのマクロ変数操作が無いと判断されると、読み込んだブロックの解析処理を続行し、実行データを作成する（ステップＢ７）。ステップＢ７ではマクロ実行から処理が続行される。作成された前記実行データは先読みバッファに保存される（ステップＢ８）。そして、次の１ブロックを読むため最初に戻る。  
ステップＢ６でブロックの解析を一時中断するタイプのマクロ変数操作があると判断されると、前記マクロ変数操作を含んだブロックの解析を一時中断する（ステップＢ９）。そして、先読み停止を意味するためフラグに１を立てる（ステップＢ１０）。ブロックの解析は一時中断であることから、次のブロックを読み込まないように、プログラムエンドを判断するステップＢ２と先読みバッファは満杯かを判断するステップＢ３との間に戻る。
【００１６】
ステップＢ４でフラグ１つまり先読み停止と判断されると、次に先読みバッファは空かいなかが判断される（ステップＢ１１）。ステップＢ１１で先読みバッファが空でないと判断されると先読みバッファが空になるまで待つ。先読みバッファが空と判断されるとステップＢ９で解析を一時中断したブロックの解析処理を再開して続行し実行データを作成する（ステップＢ１２）。ステップＢ１２ではマクロ実行から解析処理を続行する。そして、実行処理がなされる（ステップＢ１３）。一時中断したブロックの解析処理を再開して続行したことから、次のブロックの解析を可能とするため、フラグを下げ（Ｆ１←０）先読み停止状態を解除し先読みを可能な状態にする（ステップＢ１４）。そして、次のブロックを読み込むため最初に戻る。
【００１７】
図３に示されるフローチャートと図２に示されるフローチャートとの相違するところは、ステップＡ１３とステップＢ１３のところである。前者は得られた実行データを先読みバッファに保存しているのに対し、後者は先読みバッファに保存されずにそのまま実行処理がなされている。
【００１８】
図４は図１の先読み停止コードテーブル４に格納されている２種類のコード（先読みしたブロックの解析を一時中断するコード、解析処理を続行し実行データを作成するコード）を用いた先読み処理のアルゴリズムのフローチャートの例である。まず、加工プログラムから１ブロック読み込む（ステップＣ１）。読み込んだブロックがプログラムエンドかいなかを判断する（ステップＣ２）。例えば、このプログラムのエンドかいなかはシーケンス番号、プログラムのエンドを示すコードを認識することにより行なえる。図６に示される加工プログラム例ではプログラムエンドを示す補助機能であるＭ３０を認識することによりプログラムのエンドを判断することが可能である。プログラムのエンドと判断されると加工プログラムの処理は終了する。  
ステップＣ３では数値制御装置に用意されている先読みバッファが満杯かいなかを判断する。先読みバッファが満杯であれば満杯で無くなるまで待つ（ステップＣ３）。満杯かいなかは先読みバッファにブロックの実行データが保存されている位置を示すポインタを認識することなどにより行なうことができる。先読みバッファが満杯でないと判断されると、先読み停止を意味するフラグＦ１が立っているかいなかを判断する（ステップＣ４）。フラグが１でない場合（つまり、先読み停止でない場合）、読み込んだブロックの解析を行なう（ステップＣ５）。ステップＣ５では字句解析と構文解析が行なわれる。ステップＣ５で解析されたブロックの情報に先読み停止コードがあるかいなかを判断する（ステップＣ６）。ステップＣ６で先読み停止コードが無いと判断されると、読み込んだブロックの解析処理を続行し、実行データを作成する（ステップＣ７）。作成された前記実行データは先読みバッファに保存される（ステップＣ８）。そして、次の１ブロックを読むため最初に戻る。  
ステップＣ６で先読み停止コードがあると判断されると、先読み停止コードはブロックの解析を一時中断するタイプかいなかが判断される（ステップＣ９）。先読みコードＧ９００がブロックの解析を一時中断するタイプとして図６の加工プログラムの例に示されている。また、Ｍ９００が読み込んだブロックの解析処理を行い、実行データを作成するものとして図８に示されている。そして、Ｃ９でブロックの解析を一時中断するタイプの先読み停止コードと判断されると、前記コードを含んだブロックの解析を一時中断し（ステップＣ１０）、先読み停止を意味するためフラグに１を立てる（ステップＣ１１）。ブロックの解析は一時中断であることから、次のブロックを読み込まないように、プログラムエンドを判断するステップＣ２と先読みバッファは満杯かを判断するステップＣ３との間に戻る。
【００１９】
ステップＣ９で先読み一時停止コードがＭ９００のようにブロックの解析を一時中断するタイプではないと判断されると、先読み停止コードを含んだブロックの解析を続行し実行データを作成する（ステップＣ１２）。得られた実行データは先読みバッファに保存される（ステップＣ１３）。そして、先読みバッファが空になるまで待ち（ステップＣ１４）最初に戻る。
【００２０】
ステップＣ４でフラグ１つまり先読み停止と判断されると、次に先読みバッファは空かいなかが判断される（ステップＣ１５）。ステップＣ１５で先読みバッファが空でないと判断されると先読みバッファが空になるまで待つ。先読みバッファが空と判断されるとステップＣ１０で解析を一時中断したブロックの解析処理を再開して続行し実行データを作成する（ステップＣ１６）。作成された実行データは先読みバッファに保存される（ステップＣ１７）。一時中断したブロックの解析処理を再開して続行されたことから、次のブロックの解析を可能とするため、フラグを下げ（Ｆ１←０）先読み停止状態を解除する（ステップＣ１８）。そして、次のブロックを読み込むため最初に戻る。
【００２１】
図５には先読みバッファから実行データを読み出し本実行するアルゴリズムのフローチャートが示されている。先読みバッファが空かいなかを判断し、空でないなら先読みバッファより実行データを取り出し本実行を行う。先読みバッファに格納された実行データは１ブロック単位もしくは多ブロックずつ取り出され本実行される。
【００２２】
図６はＧ９００を先読み停止させる意味をもったコードとした場合の加工プログラム例である。例えば、加工プログラムにおける先頭のブロックは「Ｇ９０  Ｇ００  Ｘ０．Ｙ０．；」であり、その次のブロックは「Ｇ４１  Ｄ１０  Ｇ０１  Ｘ１００  Ｙ１００  Ｆ５００．；」である。Ｄ１０は工具径補正量である。加工プログラムにおける最終ブロックは「Ｍ３０；」である。図６に示される加工プログラムは２１ブロックで構成されている。♯１３０１０は内容を変更すると工具径補正の１０番目のオフセット量を変更することができるマクロ変数であり、♯１００の変数に０．５を加算し♯１３０１０に格納することを意味している。そして、ブロック解析においてＧ９００を判別するとプログラムの解析を一時中断する。「（ＣＨＡＮＧＥ  ＶＡＬＵＥ＝Ｄ１０）」はＤ１０の値を変更するという説明文である。
図７はマクロ変数操作を行っているコードをブロック解析の一時中断を判断するコードとした場合の加工プログラムの例である。Ｎ１４のマクロ変数操作を行なっているコードをブロック解析で判別したところでブロックの解析は一時中断する。Ｎ１３のブロックの実行が終了したことをもって、解析を中断したＮ１４のブロックから解析を再開し、先読みも再開する。
【図面の簡単な説明】
【００２３】
【図１】本発明の一実施形態の工作機械を制御する先読み機能を有する数値制御装置の概要図である。
【図２】同実施形態における解析を一時中断し先読みバッファに保存するアルゴリズムを示すフローチャートである。
【図３】同実施形態における解析を一時中断し先読みバッファに保存しないアルゴリズムを示すフローチャートである。
【図４】同実施形態における先読み停止コードが２種類あるアルゴリズムを示すフローチャートである。
【図５】先読みバッファから実行データを読み出し実行するフローチャートである。
【図６】Ｇ９００が先読みを停止させる意味をもったコードとした場合のプログラム例。
【図７】マクロ変数操作を行なっているコードが先読みを停止させるコードとした場合のプログラム例。
【図８】Ｍ９００が先読みを停止させる意味をもったコードとした場合のプログラム例。
【符号の説明】
【００２４】
１  プログラム先読み解析手段
２  先読みバッファ
３  補間手段
４  先読み停止コードテーブル
５  先読み停止コード登録手段
６  マクロ変数範囲指定手段
７  マクロ変数操作方法指定手段
８  数値制御装置
【図１】
2008293261.tif 000003
【図２】
2008293261.tif 000004
【図３】
2008293261.tif 000005
【図４】
2008293261.tif 000006
【図５】
2008293261.tif 000007
【図６】
2008293261.tif 000008
【図７】
2008293261.tif 000009
【図８】
2008293261.tif 000010