(57)【要約】【課題】  テーブル形式データに基づいて工作機械を運転する際に、工具補正による機械的ショックを緩和する。【解決手段】  Ｘ，Ｚ軸パステーブルＴｘ，Ｔｚには、基準位置（時間又は主軸位置）に対応してＸ，Ｚ軸の位置が記憶されている。工具補正テーブルＴｔには基準位置に対応してＸ，Ｚ軸の補正量（工具補正番号）が設定されている。所定周期毎、Ｘ，Ｚパステーブル補間処理部４ｘ，４ｚでは、基準位置に基づいてＸ，Ｚ軸パステーブルＴｘ，Ｔｚから指令位置を読み出し補間して移動指令量を求める。Ｘ，Ｚ軸工具補間処理部７ｘｔ，７ｚｔでは、基準位置に基づいて工具補正テーブルＴｔから補正量を読み出し補間して補正指令量を求める。加算器６ｘ，６ｚでは、移動指令量と補正指令量を加算して各モータ５ｘ，５ｚを駆動する。工具補正量の補正が徐々に行われるから機械的ショックは生じない。【選択図】          図１
2006302171.tif 000002
【特許請求の範囲】
【請求項１】
時間あるいは主軸位置を基準にして各軸位置を指令するテーブル形式データを用いて各軸モータを駆動する数値制御装置において、
工具補正を行う基準位置に対応して工具補正番号を記憶し、工具補正番号に対応する工具補正量を記憶した記憶手段と、
所定周期毎、前記記憶手段に記憶された基準位置で記憶された工具補正量を設定補正速度で補間して前記各軸モータへ出力する出力手段とを備えたことを特徴とする数値制御装置。
【請求項２】
時間あるいは主軸位置を基準にして各軸位置を指令するテーブル形式データを用いて各軸モータを駆動する数値制御装置において、
工具補正を行う基準位置に対応して工具補正番号を記憶し、工具補正番号に対応する工具補正量を記憶した記憶手段と、
補正速度を記憶する手段と、
指令された基準位置の工具補正番号に対応する各軸位置の工具補正量と、前回指令された工具補正番号に対応する各軸位置の工具補正量を前記記憶手段から求めると共に、前記指令された各軸位置の工具補正量と前回指令された各軸位置の工具補正量の差分を算出する算出手段と、
前記算出された工具補正量の差分を、前記工具補正を行う基準位置が補正開始位置あるいは補正終了位置となるように、指令された前記補正速度により変化させて補正量を出力する出力手段と、
を有することを特徴とする数値制御装置。
【請求項３】
前記記憶手段には、指令した基準位置が補正開始位置か補正終了位置かの識別情報が指令されていることを特徴とする請求項１又は請求項２に記載の数値制御装置。
【請求項４】
時間あるいは主軸位置を基準にして各軸位置を指令するテーブル形式データを用いて各軸モータを駆動する数値制御装置において、
工具補正を開始する基準位置と工具補正番号及び工具補正を終了する基準位置と工具補正番号を記憶した第１の記憶手段と、
工具補正番号に対応する工具補正量を記憶した第２の記憶手段と、
前記工具補正を開始する基準位置と工具補正番号および工具補正を終了する基準位置の間での工具補正量を漸次変化させ出力する出力手段と、
を有することを特徴とする数値制御装置。
【請求項５】
前記補正による各軸の移動量が設定リミット値を超えるか否かを判断し、リミット値を超えた場合に補正量を出力する速度を調整する手段とを有することを特徴とする請求項１乃至４の内いずれか１項に記載の数値制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、工作機械を制御する数値制御装置に関する。特に、テーブル形式で記憶されたデータに基づいて各軸を駆動制御する数値制御装置に関する。
【背景技術】
【０００２】
ＮＣプログラムのブロックによる指令ではなく、予め各軸の移動量や位置をテーブル形式で記憶しておき、該テーブルに記憶されたデータに基づいて各軸を駆動制御することによって、従来のブロックによる指令にとらわれない自由な工具の動作が可能となり、加工時間の短縮や、加工の高精度化を実現した数値制御装置はすでに公知である。  
例えば、時間毎又は回転角度毎に対する可動軸の位置を数値制御データとして記憶しておき、時間又は回転角度を監視し、記憶した時間又は回転角度に達する毎に、可動軸に対応する数値制御データを出力するようにした発明が知られている（特許文献１参照）。
【０００３】
又、基準位置に対するＸ軸、Ｚ軸の指令位置を記憶するデータテーブルを設けておき、基準パルスをカウントするカウンタの値にオーバライド値をかけて基準位置を求めて、該基準位置に基づいて、データテーブルに記憶されたＸ軸、Ｚ軸の指令位置を出力してＸ軸、Ｚ軸を同期制御することにより、データテーブルに記憶されたデータによって駆動制御する場合でもオーバライドがかけられるようにし、さらには、指令位置間を直線的に接続するか、２次関数接続、３次関数接続等を指令できると共に、補助機能も指令できるようにした発明も知られている（特許文献２参照）。
【０００４】
図１３〜図１５は、この特許文献２に記載されたテーブル形式データによる運転の概要図である。  
この図１３に示す例では、Ｘ軸用パステーブルＴｘ、Ｚ軸用パステーブルＴｚを備えている。図１４は、Ｘ軸用パステーブルＴｘの例を示すもので、基準位置に対して、Ｘ軸の位置が記憶されているものである。図１５は、この図１４に示したＸ軸用パステーブルＴｘに基づいて移動したＸ軸の位置を示すグラフである。  
同様にＺ軸用パステーブルＴｚにもＺ軸の位置が基準位置に対して記憶されている。又、主軸に取り付けられたポジションコーダからのパルス（主軸位置）又は基準とする外部パルス発生部からの時間を基準とするパルスが、カウンタ１に入力され計数される。このカウンタ１の計数値にオーバライド手段に設定されているオーバライド値が乗算器２で乗じられ基準位置カウンタ３に格納される。この基準位置カウンタ３は、パステーブル運転機能が指令された時点でリセットとされる。基準位置カウンタ３の値が基準位置としてＸ軸，Ｚ軸パステーブル補間処理部４ｘ，４ｚに入力される。Ｘ軸，Ｚ軸パステーブル補間処理部４ｘ，４ｚでは、Ｘ軸パステーブルＴｘ、Ｚ軸パステーブルＴｚを参照して基準位置に対するＸ，Ｚ軸の指令位置を求め、処理周期での移動量を求め該移動量を指令として各制御軸モータ５ｘ，５ｚに出力し、Ｘ，Ｚ軸を基準位置に合わせて同期運転するものである。
【０００５】
【特許文献１】特開昭５９−１７７６０４号公報
【特許文献２】特開２００３−３０３００５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
工作機械においては、工具の摩耗や工具の取付誤差にともない加工通路補正する必要があり、通常工具補正が行われている。上述したテーブル形式データにより運転（以下パステーブル運転という）する場合においても、工具補正が行われており、上述した特許文献２にも、主軸位置あるいは時間を基準にして指令する工具補正番号を記憶した工具補正テーブルを用意し、このテーブルに基づいて、指令された主軸位置あるいは基準時間に補正番号に対応する補正量と前補正量との差分を各軸に出力するようにしている。図１６が、この特許文献２に記載された工具補正におけるＸ軸工具補正の説明図で、テーブルには工具補正を行う基準となる主軸位置あるいは時間に対して工具補正番号が記憶され、この工具補正番号に基づいて各軸工具補正量が求められて、指令された主軸位置あるいは時間の位置で、工具補正量の差が一挙に実施される。この工具補正量の差が小さいときは、問題はないが、この補正量の差が大きいとき、一度に大きな補正量が出力されるから、この補正指令位置での速度が急激に変化し機械的ショック等で加工に影響する場合がある。
【０００７】
そこで、本発明の目的は、パステーブル運転において、工具補正による機械的ショックを緩和できる数値制御装置を提供することにある。
【課題を解決するための手段】
【０００８】
時間あるいは主軸（ここで主軸とは一方向に回転する軸をいう）位置を基準にして各軸位置を指令するテーブル形式データを用いて各軸モータを駆動する数値制御装置において、本願請求項１に係る発明は、工具補正を行う基準位置に対応して工具補正番号を記憶し、工具補正番号に対応する工具補正量を記憶した記憶手段と、所定周期毎、前記記憶手段に記憶された基準位置で記憶された工具補正量を設定補正速度で補間して前記各軸モータへ出力する出力手段とを備え、工具補正を徐々に補正するようにして機械的ショックを低減された。  
請求項２に係る発明は、工具補正を行う基準位置に対応して工具補正番号を記憶し、工具補正番号に対応する工具補正量を記憶した記憶手段と、補正速度を記憶する手段と、指令された基準位置の工具補正番号に対応する各軸位置の工具補正量と、前回指令された工具補正番号に対応する各軸位置の工具補正量を前記記憶手段から求めると共に、前記指令された各軸位置の工具補正量と前回指令された各軸位置の工具補正量の差分を算出する算出手段と、前記算出された工具補正量の差分を前記補正を行う基準位置が補正開始位置あるいは補正終了位置となるように、前記補正速度により変化させて補正量を出力する出力手段とを設けて、工具補正による機械的ショックを軽減させた。又、請求項３に係る発明は、前記記憶手段に、指令した基準位置が補正開始位置か補正終了位置かの識別情報を記憶させて制御する。
【０００９】
請求項４に係る発明は、工具補正を開始する基準位置と工具補正番号及び工具補正を終了する基準位置と工具補正番号を記憶した第１の記憶手段と、工具補正番号に対応する工具補正量を記憶した第２の記憶手段と、前記工具補正を開始する基準位置と工具補正番号および工具補正を終了する基準位置の間での工具補正量を漸次変化させ出力する出力手段とを設け、機械的ショックを軽減される。  
又、請求項５に係る発明は、前記補正による各軸の移動量が設定リミット値を超えるか否かを判断し、リミット値を超えた場合に補正量を出力する速度を調整する手段を備えるようにした。
【発明の効果】
【００１０】
工具補正量が緩やかに補正されるから、工具補正によって機械的ショックは緩和され発生しない。
【発明を実施するための最良の形態】
【００１１】
図１は、本発明の一実施形態が実行するテーブル形式データによる運転機能の概要図である。図１３に示した従来例と相違する点は、工具補正テーブルＴｔ、Ｘ軸、Ｚ軸の工具補間処理部７ｘｔ，７ｚｔ、加算器６ｘ，６ｚが設けられている点である。  
主軸に取り付けられたポジションコーダからのパルス等による主軸位置又は外部パルス発生部からの時間を基準とする基準パルスがカウンタ１に入力され計数される。又、主軸の指令値に基づいて主軸位置を計数してもよい。このカウンタ１の計数値にオーバライド手段に設定されている倍率が乗算器２で乗じられ基準位置カウンタ３に加算される。この基準位置カウンタ３は、パステーブル運転機能が指令された時点でリセットとされる。基準位置カウンタ３の値が基準位置としてＸ，Ｚ軸パステーブル運転補間処理部４ｘ，４ｚ及び工具補正補間処理部７ｘｔ，７ｚｔに入力される。Ｘ軸，Ｚ軸パステーブル運転補間処理部４ｘ，４ｚでは、Ｘ軸パステーブルＴｘ、Ｚ軸パステーブルＴｚを参照して基準位置に対するＸ，Ｚ軸の指令位置を求め、処理周期での移動量を求める。これまでは、従来のパステーブル運転と同一であるが、本実施形態では、このＸ軸，Ｚ軸パステーブル運転補間処理部４ｘ，４ｚが求めた処理周期毎の移動指令を加算器６ｘ，６ｚにそれぞれ出力する点で相違する。
【００１２】
又、工具補正補間処理部７ｘｔ，７ｚｔは、処理周期毎、工具補正テーブルＴｔを参照し、工具補正量を補間して補正移動量を加算器６ｘ，６ｚに出力し、該加算器６ｘ，６ｚで、Ｘ軸，Ｚ軸パステーブル運転補間処理部４ｘ，４ｚから出力された指令移動量と工具補正補間処理部７ｘｔ，７ｚｔからの補正移動量を加算し各制御軸モータ５ｘ，５ｚに出力する。この補正移動量と補間移動量を加算して各制御軸モータ５ｘ，５ｚに出力する点が本発明の特徴である。
【００１３】
図２は、工具補正テーブルＴｔの一例の説明図である。工具補正を行う指令基準位置Ｌcmdに対応して工具補正番号Ｔcmd、識別情報Ｍcmdが設定記憶されている。指令基準位置Ｌcmdは基準位置カウンタ３の出力である基準位置Ｌcurに対応するものである。さらに、図３に示すような工具補正番号Ｔcmdに対応してＸ，Ｚ軸の補正量ＸOFScmd，ＺOFScmdを記憶する補正量テーブルＴOFSが設けられている。すなわち工具補正番号Ｔcmdに対応してＸ軸の補正量ＸOFScmd、Ｚ軸の補正量ＺOFScmdが記憶されている。
【００１４】
本実施形態では、この工具補正テーブルＴｔ及び補正量テーブルＴOFSを用いて、指令された基準位置における工具補正量を求め、該工具補正量を指令された補正速度で補間して、パステーブル運転の移動指令量に重畳して、各軸モータ５ｘ，５ｚを駆動するものである。
【００１５】
図４は、この第１の実施形態におけるこのＸ軸における工具補正の説明図である。図２，図３のテーブルＴｔ，ＴOFSと対応させて記載している。図２に示す工具補正テーブルＴｔにおける識別情報「１」は、該指令基準位置Ｌcmdで工具補正が完了するように補正することを指令するものであり、識別情報「０」は、指令基準位置Ｌcmdで工具補正を開始することを指令するものである。  
指令基準位置Ｌ０では、識別情報が「１」であり、すでに工具補正が完了していることを意味し（このパステーブル運転前の加工等においてすでに工具補正は完了している）、指令基準位置Ｌ０で指令された工具補正番号記号Ｔ１に対するＸ軸補正量ＸOFScmdは、図３の補正量テーブルＴOFSから「ＸOFS1」であることから、このＸ軸補正量ＸOFS1が完了している。そして、基準位置Ｌcurが次の指令基準位置Ｌ１に達すると、識別情報Ｍcmdが「０」であることから、この指令基準位置Ｌ１に対して指定されている工具補正番号Ｔ２のＸ軸補正量ＸOFS2を該指令基準位置より設定補正速度で補間処理を開始している。又、基準位置Ｌcurが次の指令基準位置Ｌ２に到達する直前では、指令基準位置Ｌ２に対する識別情報が「１」であることから、この指令基準位置Ｌ２に達した時点で指定されている工具補正番号Ｔ３のＸ軸補正量ＸOFS3の補正が完了するように、指令基準位置Ｌ２に達する前から工具補正の補間が開始されるものである。なお、Ｚ軸に対しても同様である。
以上のように、この第１の実施形態では、工具補正量を設定補正速度で補間して複数周期内で補正を完了するようにしたから、この工具補正による機械的ショックの発生を防止できるものである。
【００１６】
図５は、本発明のテーブル運転により工作機械を駆動する一実施形態の数値制御装置１０の要部ブロック図である。ＣＰＵ１１は数値制御装置１０を全体的に制御するプロセッサである。ＣＰＵ１１は、ＲＯＭ１２に格納されたシステムプログラムを、バス２０を介して読み出し、該システムプログラムに従って数値制御装置全体を制御する。ＲＡＭ１３には一時的な計算データや表示データ及び表示器／ＭＤＩユニット７０を介してオペレータが入力した各種データが格納される。ＣＭＯＳメモリ１４は図示しないバッテリでバックアップされ、数値制御装置１０の電源がオフされても記憶状態が保持される不揮発性メモリとして構成される。ＣＭＯＳメモリ１４中には、インターフェイス１５を介して読み込まれた加工プログラムや表示器／ＭＤＩユニット７０を介して入力された加工プログラム等が記憶される。さらに、前述したＸ軸，Ｚ軸のパステーブルＴｘ，Ｔｚ、工具補正テーブルＴｔ、さらには補正量テーブルＴOFSが予め格納されている。
【００１７】
インターフェイス１５は、数値制御装置１０と外部機器との接続を可能とするものである。ＰＭＣ（プログラマブル・マシン・コントローラ）１６は、数値制御装置１０に内蔵されたシーケンスプログラムで工作機械の補助装置にＩ／Ｏユニット１７を介して信号を出力し制御する。また、工作機械の本体に配備された操作盤の各種スイッチ等の信号を受け、必要な信号処理をした後、ＣＰＵ１１に渡す。
【００１８】
表示器／ＭＤＩユニット７０はＣＲＴや液晶等で構成されるディスプレイやキーボード等を備えた手動データ入力装置であり、インターフェイス１８は表示器／ＭＤＩユニット７０のキーボードからの指令，データを受けてＣＰＵ１１に渡す。インターフェイス１９は操作盤７１に接続され、操作盤７１からの各種指令を受け取るようになっている。
【００１９】
各軸の軸制御回路３０、３１はＣＰＵ１１からの各軸の移動指令量を受けて、各軸の指令をサーボアンプ４０、４１に出力する。サーボアンプ４０、４１はこの指令を受けて、各軸のサーボモータ５ｘ，５ｚを駆動する。各軸のサーボモータ５ｘ，５ｚは位置・速度検出器を内蔵し、この位置・速度検出器からの位置、速度フィードバック信号を軸制御回路３０、３１にフィードバックし、位置・速度のフィードバック制御を行う。なお、図５では、位置・速度のフィードバックについては省略している。
【００２０】
また、スピンドル制御回路６０は主軸回転指令を受け、スピンドルアンプ６１にスピンドル速度信号を出力する。スピンドルアンプ６１はスピンドル速度信号を受けて、主軸を駆動する主軸モータ６２を指令された回転速度で回転させる。ポジションコーダ６３は、主軸の回転に同期して帰還パルス（基準パルス）及び１回転信号をスピンドル制御回路６０にフィードバックし、速度制御を行う。この帰還パルス及び１回転信号は、スピンドル制御回路６０を介してＣＰＵ１１によって読み取られ、帰還パルス（基準パルス）はＲＡＭ１３に設けられたカウンタ（図１におけるカウンタ１ｓ）で計数される。また、主軸の指令パルスを基準パルスとしてもよい。
【００２１】
図６〜図８は、この第１の実施形態におけるパステーブル運転時の数値制御装置ＣＰＵ１１が実施する処理のアルゴリズムを示すフローチャートである。  
数値制御装置のＣＰＵ１１は、図６に示す処理を所定周期毎実行する。  
まず、基準位置Ｌcurを更新する（図１における基準位置カウンタ３の処理）。すなわち、基準位置Ｌcurを記憶するレジスタに、主軸位置を示すポジションコーダ６３からの帰還パルス又は時間基準パルスを計数するカウンタ１のカウンタ値に設定オーバライド値を乗じた値を加算し、基準位置Ｌcurを更新する（ステップＳ１）。なお、基準位置として主軸位置を用いた場合は、主軸位置を示すポジションコーダ６３からの帰還パルスは、すでにオーバライド値が掛けられた状態で発生するパルスであることから、このオーバライド値は１とされる。また、主軸の指令パルスにより基準位置を求めることもできる。
【００２２】
次に、この基準位置ＬcurとＸ軸，Ｚ軸パステーブルＴｘ，Ｔｚに基づいて当該処理周期の指令移動量ΔＸINT，ΔＺINTを求める（ステップＳ２）。この指令移動量ΔＸINT，ΔＺINTを求める点は、特許文献２等に記載され、従来から周知の事項であるので詳細な説明は省略する。  
次に工具補正テーブルＴｔの読み込み処理（ステップＳ３）、パステーブル工具補正処理（ステップＳ４）を行い、工具補正移動量ΔＸOFS，ΔＺOFSを求める。  
こうして求められた指令移動量ΔＸINT，ΔＺINTと工具補正移動量ΔＸOFS，ΔＺOFSをそれぞれ加算し軸制御回路３０、３１に出力し（ステップＳ５）、当該周期の処理を終了する。以下、各処理周期毎この図６に示す処理を実行する。
【００２３】
図７は、図６におけるステップＳ３の工具補正テーブル読み込み処理の詳細を示すフローチャートである。  
まず、パステーブル工具補正フラグがオンか否か判断する（ステップＳ３１）。このパステーブル工具補正フラグは、電源投入時の初期設定で「オフ」とセットされ、又、パステーブル運転が終了するとき、図６に示すステップＳ２のパステーブル補間処理によって、パステーブル運転終了指令が読み込まれたとき「オフ」にセットされる。よって、最初は、該パステーブル工具補正フラグは「オフ」であり、ステップＳ３２に進み、工具補正テーブルＴｔの先頭を読み出し、該工具補正テーブルＴｔの先頭にセットされている工具補正番号Ｔcmd（＝Ｔ１）のＸ軸補正量ＸOFScmd（＝ＸOFS1），Ｚ軸補正量ＺOFScmd（＝ＺOFS1）を読み出し、現在の補正量ＸOFScur，Ｚ軸補正量ＺOFScurとして記憶するレジスタに格納する。そして、パステーブル工具補正フラグをオンとする（ステップＳ３２）。
【００２４】
次に、Ｘ軸，Ｚ軸のパステーブル工具補正準備完了フラグの少なくともいずれかがオン否か判断する（ステップＳ３３）。最初はどちらも「オフ」となっているので、ステップＳ３４に進み、前回の指令Ｘ軸補正量ＸOFSold，Ｚ軸補正量ＺOFSoldとして記憶するレジスタに、（最初は）ステップＳ３２で求めた現在の補正量ＸOFScur，Ｚ軸補正量ＺOFScurをそれぞれ格納する。  
次に、工具補正テーブルＴｔより、現在の基準位置Ｌcurに近く且つ大きく指令基準位置Ｌcmd（＝Ｌ１）と、該指令基準位置Ｌcmd（＝Ｌ１）に対応して記憶する工具補正番号Ｔcmd（＝Ｔ２）、識別情報Ｍcmd（＝０）を読み出す。又、工具補正番号Ｔcmd（＝Ｔ２）に対するＸ軸補正量ＸOFScmd（＝ＸOFS2），Ｚ軸補正量ＺOFScmd（＝ＺOFS2）を補正量テーブルＴOFSより読み出す。なお、基準位置Ｌcurとして主軸位置を採用している場合、このバステーブル運転時では、主軸は一方方向（基準位置が増加方向）に移動するものとする。
【００２５】
読み出したＸ軸補正量ＸOFScmd，Ｚ軸補正量ＺOFScmdと、前回の指令補正量ＸOFSold，ＺOFSoldとの差ＸOFSdef，ＺOFSdefをそれぞれ求める。さらに、求められた補正量の差ＸOFSdef，ＺOFSdefを設定されている補正速度ＸOFSvel，ＺOFSvelで割って、補正間隔（補正を開始してから、終了するまでの時間）ＸＬdef，ＺＬdefを求める（ステップＳ３５）。
【００２６】
ＸOFSdef＝ＸOFScmd−ＸOFSold
ＺOFSdef＝ＺOFScmd−ＺOFSold
ＸＬdef＝ＸOFSdef／ＸOFSvel
ＺＬdef＝ＺOFSdef／ＺOFSvel
ステップＳ３５で読み出した識別情報Ｍcmdを判断し（ステップＳ３６）、該識別情報Ｍcmdが「０」ならば、補正開始位置ＸＬsta，ＺＬstaをステップＳ３５で読み出した指令基準位置Ｌcmdとする（ステップＳ３７）。又、該識別情報Ｍcmdが「１」ならば、指令基準位置ＬcmdからステップＳ３５で求めた補正間隔ＸＬdef，ＺＬdefをそれぞれ減じた値を補正開始位置ＸＬsta（＝Ｌcmd−ＸＬdef），ＺＬsta（＝Ｌcmd−ＺＬdef）とする（ステップＳ３８）。なお、最初は、識別情報Ｍcmd＝０、Ｌcmd（＝Ｌ１）であるから、補正開始位置ＸＬsta，ＺＬstaはＬ１が設定される。
【００２７】
そして、Ｘ軸，Ｚ軸のパステーブル工具補正準備完了フラグＸOFSrdy，Ｚ軸補正量ＺOFSrdyを「１」にセットし（ステップＳ３９）、この周期の工具補正テーブル読み込み処理を終了しステップＳ４に移行する。
【００２８】
図８は、ステップＳ４のパステーブル工具補正処理を示すものであり、Ｘ軸に対してのみ記載している。Ｚ軸に対しても同様な処理が行われ、図８においてＸ軸の代わりにＺ軸とすれば、Ｚ軸の処理もこの図８と同じものとなるので、Ｘ軸についてのみ説明する。
【００２９】
まず、この処理周期における前回の補正量ＸOFSbefを記憶するレジスタに現在の補正量ＸOFScur（最初はステップＳ３２でその後はステップＳ４４，Ｓ４６，Ｓ４８でこの現在の補正量ＸOFScurは求められる）を格納し（ステップＳ４１）、Ｘ軸のパステーブル工具補正準備完了フラグＸOFSrdyがオン（「１」）にセットされているか判断する（ステップＳ４２）、該フラグＸOFSrdyがオンにセットされていなければステップＳ４９に移行し、現在の補正量ＸOFScurから前回の補正量ＸOFSbefを減じて当該周期の工具補正移動量ΔＸOFSを求める。ただし、この説明の段階では、ステップＳ４１の処理により、ＸOFSbef＝ＸOFScurであるから、工具補正移動量ΔＸOFSを「０」にセットして、当該周期のパステーブル工具補正処理を終了する。一方、図７に示す処理のステップＳ３９で、Ｘ軸のパステーブル工具補正準備完了フラグＸOFSrdyがオン（「１」）にセットされていると、ステップＳ４２からステップＳ４３に移行し、ステップＳ１で求めた現在の基準位置Ｌcurが、ステップＳ３７又はステップＳ３８で求められている補正開始位置ＸＬstaに到達したか判断し、到達していなければ、ステップＳ４９に移行する。ステップＳ４９では、前述したように当該周期での工具補正移動量ΔＸOFSが、この場合も、ＸOFSbef＝ＸOFScurであるから、工具補正移動量ΔＸOFSを「０」にセットされて当該周期のこの工具補正処理は終了する。
【００３０】
すなわち、図４に示すように、パステーブル運転が指令された段階では、すでに工具補正がなされていることから、図４に示すように、最初は、工具補正量ＸOFS1の変化はなく出力される工具補正移動量ΔＸOFSは「０」である。以下、所定周期毎ステップＳ１、ステップＳ２、ステップＳ３のステップＳ３１，Ｓ３３，ステップＳ４のステップＳ４１，Ｓ４２，Ｓ４３，Ｓ４９の処理を所定周期毎実行し、ステップＳ４３で、ステップＳ１で読み込んだ基準位置ＬcurがステップＳ３７又はステップＳ３８で求めた補正開始位置ＸＬstaに到達したならば、ステップＳ４４に移行し、次の（１）式により内挿補間して工具補正量ＸOFScurを求める。
【００３１】
ＸOFScur＝ＸOFSdef×((Ｌcur−ＸＬsta)／ＸＬdef)＋ＸOFSold      …（１）
そして、この求めた工具補正量ＸOFScurで補正したとき、この周期間に移動できる許容量を超えていないか判断する（ステップＳ４５）。ステップＳ２で求めたバステーブル運転における指令位置に対する移動量ΔＸINTにステップＳ４４で求めた工具補正量ＸOFScurから前回の補正量ＸOFSbefを減じた値（当該周期における工具補正量）を加算し、この値が許容値ＸCLPvelを超えていないか判断し（ステップＳ４５）、超えていなければステップＳ４７に進み、超えていると、この許容値ＸCLPvelとなるように工具補正量ＸOFScurを設定し（ステップＳ４６）、ステップＳ４７に進む。
【００３２】
ＸOFScur＝ＸCLPvel−ΔＸINT＋ＸOFSbef        …（２）
ステップＳ４７では、ステップＳ４４及びステップＳ４６で求めた工具補正量ＸOFScurがステップＳ３５で読み出した指令補正量ＸOFScmdに達したか（大きいか）判断し、達していなければそのままステップＳ４９に移行する。前述した処理を実行する。以下、補正が完了するまで、ステップＳ１，Ｓ２，ステップＳ３のＳ３１，Ｓ３３，ステップＳ４のＳ４１，Ｓ４２〜Ｓ４７、Ｓ４９、Ｓ５の処理を所定周期毎実行する。
【００３３】
図４に示すように指令基準位置ＬcmdがＬ１の位置では、テーブルＴｔでは、識別情報が「０」であることから、ステップＳ３５で読み込んだ次の指令基準位置Ｌcmd（＝Ｌ１）がステップＳ３７の処理で補正開始位置ＸＬstaにセットされるから、この位置Ｌ１から図４に示すように補正が開始され、補正量ＸOFScurが、ステップＳ３５で読み込んだ位置Ｌcmd＝Ｌ１に対して記憶されている工具補正番号Ｔ２のＸ軸補正量ＸOFScmd＝ＸOFS2に達するまで、各周期毎、工具補正が実施される。そして、工具補正量ＸOFScurがＸOFScmd（＝ＸOFS2）に達すると、現在の工具補正量ＸOFScurをＸOFScmd（＝ＸOFS2）とし、パステーブル工具補正準備完了フラグＸOFSrdyをオフ（０）とし（ステップＳ４８）、ステップＳ４９に進む。
【００３４】
かくして、パステーブル工具補正準備完了フラグＸOFSrdyをオフ（０）とされ、次の周期からは、ステップＳ１，Ｓ２，ステップＳ３のＳ３１，Ｓ３３，ステップＳ４のＳ４１，Ｓ４２と移行し、パステーブル工具補正準備完了フラグＸOFSrdyがオフ（０）であるから、ステップＳ４２からステップＳ４９に移行し、工具補正移動量ΔＸOFSを求める。しかし、ステップＳ４１の処理でＸOFSbef＝ＸOFScurとされているから、工具補正移動量ΔＸOFSは「０」であり、工具補正はされないことになる。
【００３５】
同様な処理が、Ｚ軸に対してもなされ、パステーブル工具補正準備完了フラグＺOFSrdyがオフ（０）とされると、次の周期では、ステップＳ３のステップＳ３３からステップＳ３４に移行して、前述したステップＳ３４からステップＳ３９の処理がなされる。ステップＳ３５でテーブルＴｔより基準位置Ｌcmd（＝Ｌ２）、工具補正番号Ｔcmd（＝Ｔ３）、該工具補正番号Ｔcmd（＝Ｔ３）の工具補正量ＸOFS3，ＺOFS3、識別情報Ｍcmd「１」が読み出される。この場合、識別情報Ｍcmdが「１」であることから、ステップＳ３８の処理がなされ、補正開始位置ＸＬsta，ＺＬstaとして、指令基準位置Ｌcmd（＝Ｌ２）よりステップＳ３５で求めた補正間隔ＸＬdef，ＺＬdefだけ前の位置にセットされる。
【００３６】
そしてステップＳ４３でこの補正開始位置ＸＬstaに到達したと判断されたとき、前述したステップＳ４４〜Ｓ４７の工具補正の補間処理がなされることになる。すなわち、図４に示すように、基準位置Ｌcurが指令基準位置Ｌcmd（＝Ｌ２）に達する前から、工具補正が実行され、指令基準位置Ｌcmd（＝Ｌ２）に到達した時点では、指令工具補正量ＸOFScmd（＝ＸOFS3）に達している。  
以下、上述した処理を所定周期毎、パステーブル運転が終了するまで実行する。
【００３７】
上述した第１の実施形態では、工具補正開始位置を、識別情報を用いて、指令基準位置Ｌcmdで補正が完了しているか、該指令基準位置Ｌcmdを開始するか決めていた。次に示す第２の実施形態では、補正区間をも基準位置で指令する工具補正テーブルＴｔ’を用いる。
【００３８】
数値制御装置のハードウエア構成は、図５に示したものと同じである。この第２の実施形態では図９に示したような工具補正テーブルＴｔ’を用いる。この工具補正テーブルＴｔ’は基準位置Ｌ０〜Ｌ１までは工具補正番号Ｔ１で、図３の補正量テーブルＴOFSで求められる工具補正番号Ｔ１のＸ軸の補正量ＸOFS1が図１０に示すように使用される。なお、図１０は、Ｘ軸の補正量の変化を示す図であり、Ｚ軸の補正量の変化は省略している。指令基準位置Ｌ１からＬ２の間において、工具補正番号Ｔ１から工具補正番号Ｔ２に変わり、Ｘ軸の補正量は、ＸOFS1からＸOFS2に徐々に変えられ、指令基準位置Ｌ２〜Ｌ３の間は、補正量ＸOFS2に固定され、指令基準位置Ｌ３〜Ｌ４の間は工具補正番号Ｔ２から工具補正番号Ｔ３に変わり、Ｘ軸の補正量は、ＸOFS2からＸOFS3に徐々に変えられ、指令基準位置Ｌ４〜Ｌ５の間は、工具補正番号Ｔ３で変わらず、補正量ＸOFS3で変わりがない。
【００３９】
以上のように、工具補正テーブルＴｔ’工具補正量が変化する点を全て指令基準位置Ｌcmdで指令するものである。
【００４０】
図１１及び図１２は、この第２の実施形態における工具補正テーブル読み込み処理、工具補正処理（Ｘ軸）のフローチャートである。図６に示す全体的なテーブル運転処理については、この第２の実施形態も同一であり、この図６におけるステップＳ３、Ｓ４の処理が、図１１，図１２の処理になる点において第１の実施形態と相違するのみである。
【００４１】
前述したステップＳ１，Ｓ２の処理を実施したあと、ステップＳ３の工具補正テーブル読み込み処理は図１１に示す処理であり、まず、パステーブル工具補正フラグがオンか否か判断する（ステップＳ３０１）。前述したように、このパステーブル工具補正フラグは、電源投入時の初期設定で「オフ」とセットされているから、ステップＳ３０２に進み、工具補正テーブルＴｔ’の先頭を読み出し、指令基準位置Ｌcmd（＝Ｌ０）と、該指令基準位置Ｌcmd（＝Ｌ０）に対して設定されている工具補正番号Ｔcmd（＝Ｔ１）を読み出し、該工具補正番号Ｔcmd（＝Ｔ１）のＸ軸補正量ＸOFScmd（＝ＸOFS1），Ｚ軸補正量ＺOFScmd（＝ＺOFS1）を補正量テーブルＴOFSより読み出し、現在の補正量ＸOFScur，Ｚ軸補正量ＺOFScurとして記憶するレジスタに格納する。そして、パステーブル工具補正フラグをオンとする（ステップＳ３０２）。
【００４２】
次に、Ｘ軸，Ｚ軸のパステーブル工具補正準備完了フラグの少なくともいずれかがオン否か判断する（ステップＳ３０３）。最初はどちらも「オフ」であるから、ステップＳ３０４に進み、前回の指令基準位置Ｌcmd（＝Ｌ０）と、該指令基準位置Ｌcmd（＝Ｌ０）に対して設定されている工具補正番号Ｔcmd（＝Ｔ１）を読み出し、該工具補正番号Ｔcmd（＝Ｔ１）のＸ軸補正量ＸOFScmd（＝ＸOFS1），Ｚ軸補正量ＺOFScmd（＝ＺOFS1）を補正量テーブルＴOFSより読み出し、前回の指令補正量ＸOFSold，Ｚ軸補正量ＺOFSold、工具補正テーブルの前回の基準位置Ｌoldに格納する。
【００４３】
次に、現在の基準位置Ｌcurに近く且つ大きい指令基準位置Ｌcmd（＝Ｌ１）と、その指令基準位置Ｌcmdに対応する工具補正番号Ｔcmd（＝Ｔ１）を工具補正テーブルＴｔより読み出す。又、工具補正番号Ｔcmdに対するＸ軸補正量ＸOFScmd（＝ＸOFS1），Ｚ軸補正量ＺOFScmd（＝ＺOFS1）を補正量テーブルＴofsより読み出す。
【００４４】
読み出したＸ軸補正量ＸOFScmd（＝ＸOFS1），Ｚ軸補正量ＺOFScmd（＝ＺOFS1）と、前回の指令補正量ＸOFSold（＝ＸOFS1），Ｚ軸補正量ＺOFSold（＝ＺOFS1）とのそれぞれの差を指令基準位置Ｌcmdの前回（Ｌ０）と今回（Ｌ１）の差で割り、Ｘ軸、Ｚ軸の比例乗数ＸOFSpro，ＺOFSproを求める（ステップＳ３０５）。最初は、前回と今回の補正量が等しいから、比例乗数ＸOFSpro，ＺOFSproは共に「０」である。
【００４５】
次に、Ｘ軸，Ｚ軸のパステーブル工具補正準備完了フラグＸOFSrdy，Ｚ軸補正量ＺOFSrdyを「１」にセットし（ステップＳ３０６）、この周期のこの工具補正テーブル読み込み処理を終了しステップＳ４に移行する。
【００４６】
ステップＳ４のパステーブル工具補正のＸ軸の処理は、図１２に示す処理であり、この処理周期における前回の補正量ＸOFSbefを記憶するレジスタに現在の補正量ＸOFScurを格納し（ステップＳ４０１）、Ｘ軸のパステーブル工具補正準備完了フラグＸOFSrdyがオン（「１」）にセットされているか判断する（ステップＳ４０２）、該フラグＸOFSrdyがオンにセットされていなければステップＳ４０８に移行し、現在の補正量ＸOFScurから前回の補正量ＸOFSbefを減じて当該周期の工具補正移動量ΔＸOFSを求める。ただし、現在段階では、ステップＳ４０１の処理により、ＸOFSbef＝ＸOFScurであるから、工具補正移動量ΔＸOFSを「０」にセットして、当該周期のパステーブル工具補正処理を終了する。
【００４７】
一方、図１１に示す処理のステップＳ３０６で、Ｘ軸のパステーブル工具補正準備完了フラグＸOFSrdyがオン（「１」）にセットされていると、ステップＳ４０２からステップＳ４０３に移行し、工具補正量ＸOFScurを次の式（３）を演算することによって求める。
【００４８】
ＸOFScur＝ＸOFSpro×（Ｌcur−Ｌold）＋ＸOFSold          …（３）
すなわち、ステップＳ１で求めた現在の基準位置ＬcurからステップＳ３０４で設定した前回の指令基準位置Ｌoldを減じた値に、ステップＳ３０５で求めた比例定数ＸOFSproを乗じた値にステップＳ３０４で求めた前回の補正量ＸOFSoldを加算して工具補正量ＸOFScur求める。ただし最初は、比例定数ＸOFSproは「０」であり、前回と変わりはなく、工具補正量ＸOFScur＝ＸOFSold＝ＸOFS1である。図１０に示すようにＸ軸補正量は変化なくＸOFS1が保持される。
【００４９】
そして、前述した第１の実施形態のステップＳ４５、Ｓ４６の処理と同一の処理を行い、工具補正量を補正したときの工具移動量が許容値ＸCLPvelを超えたか判断し、超えている場合は、この許容値ＸCLPvelとなるように工具補正量ＸOFScurを設定しステップＳ４０４、Ｓ４０５、ステップＳ４０６に進む。
【００５０】
ステップＳ４０６では、ステップＳ１で求めた現在の基準位置ＬcurがステップＳ３０５で求めた補正量切換点の指令基準位置Ｌcmd（＝Ｌ１）に到達したか判断する。達していなければ、ステップＳ４０８に移行する。ただし、現時点（基準位置ＬcurがＬ１とＬ２の間）では、ＸOFScur＝ＸOFSold＝ＸOFS1であり、工具補正の移動量ΔＸOFSは「０」である。
【００５１】
以下、ステップＳ１，Ｓ２，ステップＳ３のＳ３０１，Ｓ３０３，ステップＳ４のＳ４０１，Ｓ４０２，Ｓ４０３〜Ｓ４０６，Ｓ４０８，ステップＳ５の処理を各周期毎実行とし、ステップ４０６で、現在の基準位置Ｌcurがステップ３０５で求めた補正量切換点の指令基準位置Ｌcmd（＝Ｌ１）に到達したと判断されると、現在の工具補正量ＸOFScurを指令補正量ＸOFScmd（＝ＸOFS1）とし、パステーブル工具補正準備完了フラグＸOFSrdyをオフ（０）とし（ステップＳ４０７）、ステップＳ４０８に進む。
【００５２】
次の周期では、ステップＳ３０３からステップＳ３０４に進み、前回工具補正番号Ｔcmd（＝Ｔ１）を読み出し、該工具補正番号Ｔcmd（＝Ｔ１）のＸ軸補正量ＸOFScmd（＝ＸOFS1），Ｚ軸補正量ＺOFScmd（＝ＺOFS1）を補正量テーブルＴOFSより読み出し、前回の指令補正量ＸOFSold，ＺOFSoldに記憶する。また、前回の指令基準位置Ｌcmd（＝Ｌ１）を読み出し、前回の基準位置Ｌold（＝Ｌ１）に格納する。
【００５３】
次に、現在の基準位置Ｌcurに近く且つ大きい指令基準位置Ｌcmd（＝Ｌ２）、その指令基準位置Ｌcmd（＝Ｌ２）に対応する工具補正番号Ｔcmd（＝Ｔ２）を工具補正テーブルＴｔより読み出す。又、工具補正番号Ｔcmd（＝Ｔ２）に対するＸ軸補正量ＸOFScmd（＝ＸOFS2），Ｚ軸補正量ＺOFScmd（＝ＺOFS2）を補正量テーブルＴofsより読み出す。
【００５４】
読み出したＸ軸補正量ＸOFScmd（＝ＸOFS2），Ｚ軸補正量ＺOFScmd（＝ＺOFS2）と、前回の指令補正量ＸOFSold（＝ＸOFS1），Ｚ軸補正量ＺOFSold（＝ＺOFS1）とのそれぞれの差を指令基準位置Ｌcmdの前回（Ｌ１）と今回（Ｌ２）の差で割り、Ｘ軸、Ｚ軸の比例乗数ＸOFSpro，ＺOFSproを求める（ステップＳ３０５）。
【００５５】
次に、Ｘ軸，Ｚ軸のパステーブル工具補正準備完了フラグＸOFSrdy，Ｚ軸補正量ＺOFSrdyを「１」にセットし（ステップＳ３０６）、この周期のこの工具補正テーブル読み込み処理を終了しステップＳ４に移行する。
【００５６】
ステップＳ４での図１２に示す処理では、ステップＳ４０２からステップＳ４０３に移行し、ステップＳ３０５で求めた比例乗数ＸOFSproと現在基準位置Ｌcurと前回の基準位置Ｌold、前回の補正量ＸOFSoldより工具補正量前回の補正量ＸOFSoldを算出し、且つ、この工具補正によって許容値を超えるか否か判断し、超える場合には許容値と一致するように補正量を調整し（ステップＳ４０４，Ｓ４０５）、現在基準位置ＬcurがステップＳ３０５で読み込んだ次の指令基準位置Ｌcmd（＝Ｌ２）を超えたか判断し、超えてなければ、ステップＳ４０８に移行する。
【００５７】
その結果、図１０に示すように、基準位置Ｌ１からＬ２の間では、工具補正量が徐々に変化（図１０の例では増加）する。
【００５８】
そして、現在の基準位置Ｌcurが次の指令基準位置Ｌcmd（＝Ｌ２）を越えたときには、現在の工具補正量ＸOFScurを指令補正量ＸOFScmd（＝ＸOFS2）とし、パステーブル工具補正準備完了フラグＸOFSrdyをオフ（０）とし（ステップＳ４０７）、ステップＳ４０８に進む。
【００５９】
パステーブル工具補正準備完了フラグＸOFSrdyをオフ（０）となり、Ｚ軸のパステーブル工具補正準備完了フラグＺOFSrdyもオフ（０）となると、次の周期ではステップＳ３０４に移行し、前回の基準位置のレジスタの更新と、次の指令基準位置Ｌcmd（＝Ｌ３）、工具補正番号Ｔcmdが読み出され、新たな比例乗数ＸOFSpro、ＺOFSproが求められ（この場合、比例乗数は「０」である）、パステーブル工具補正準備完了フラグＸOFSrdy，ＺOFSrdyがオン（１）にセットされる（ステップＳ３０４，Ｓ３０５，Ｓ３０６）。
【００６０】
そして、ステップＳ４の工具補正処理では、ステップＳ４０２からＳ４０３に移行し、現在の基準位置Ｌcurが次の指令基準位置Ｌcmd（＝Ｌ３）に達するまで、ステップＳ４０１，Ｓ４０２〜Ｓ４０６を実行することになる。この基準位置Ｌ２とＬ３間は、基準位置Ｌ２、Ｌ３に対する工具補正番号が共にＴ２で補正量が同一であるから、補正量の変化はない。  
以下、説明を省略するが、上述した処理を所定周期毎実行し、図１０に示すように補正量を緩やかに変更する。
【図面の簡単な説明】
【００６１】
【図１】本発明の実施形態が実行するテーブル形式データによる運転機能の概要図である。
【図２】本発明の第１の実施形態における工具補正テーブルの一例の説明図である。
【図３】本発明の各実施形態で用いる補正量テーブルの一例の説明図である。
【図４】同第１の実施形態におけるＸ軸工具補正の移動状態を説明する説明図である。
【図５】本発明の第１、第２の実施形態の数値制御装置の要部ブロック図である。
【図６】本発明の各実施形態におけるパステーブル運転処理のフローチャートである。
【図７】本発明の第１の実施形態における工具補正テーブル読み込み処理のフローチャートである。
【図８】本発明の第１の実施形態における工具補正処理のフローチャートである。
【図９】本発明の第２の実施形態の工具補正テーブルの一例の説明図である。
【図１０】同第２の実施形態におけるＸ軸工具補正の移動状態を説明する説明図である。
【図１１】同第２の実施形態における工具補正テーブル読み込み処理のフローチャートである。
【図１２】同第２の実施形態における工具補正処理のフローチャートである。
【図１３】従来のテーブル形式データによる運転機能の概要図である。
【図１４】従来のテーブル形式データによる運転に用いられるＸ軸パステーブルの一例である。
【図１５】従来のテーブル形式データによる運転によるＸ軸の状態を説明する説明図である。
【図１６】従来のテーブル形式データによる運転での工具補正の説明図である。
【符号の説明】
【００６２】
１  カウンタ
２  乗算器
３  基準位置カウンタ
５ｘ  Ｘ軸サーボモータ
５ｚ  Ｚ軸サーボモータ
１０  数値制御装置
６２  主軸モータ
６３  ポジションコーダ
【図１】
2006302171.tif 000003
【図２】
2006302171.tif 000004
【図３】
2006302171.tif 000005
【図４】
2006302171.tif 000006
【図５】
2006302171.tif 000007
【図６】
2006302171.tif 000008
【図７】
2006302171.tif 000009
【図８】
2006302171.tif 000010
【図９】
2006302171.tif 000011
【図１０】
2006302171.tif 000012
【図１１】
2006302171.tif 000013
【図１２】
2006302171.tif 000014
【図１３】
2006302171.tif 000015
【図１４】
2006302171.tif 000016
【図１５】
2006302171.tif 000017
【図１６】
2006302171.tif 000018