(57)【要約】【課題】テーブル形式データによる運転において、バイト工具等の刃先やエンドミル工具等の径が変わっても、刃先Ｒ補正量や工具径補正量を変更するだけで、テーブル形式データの修正を不要とすることが可能なテーブル形式データでの制御における刃先Ｒ補正または工具径補正の機能を備えた数値制御装置を提供すること。【解決手段】刃先Ｒ補正または工具径補正が指令されたか否かを判断し、指令された場合にはステップＳＡ２０へ移行し、指令されていない場合にはステップＳＡ５０へ移行し（ＳＡ１０）、刃先Ｒ補正または工具径補正のスタートアップ処理を実行し（ＳＡ２０）、刃先Ｒ補正または工具径補正のメイン処理を実行し（ＳＡ３０）、補正方向の変更またはキャンセルが行われたか否かを判断し、キャンセルが行われた場合にはステップＳＡ１０へ戻り処理を継続し、キャンセルが行われない場合にはステップＳＡ３０へ戻り処理を継続し（ＳＡ４０）、刃先Ｒ補正または工具径補正のキャンセル処理を実行し（ＳＡ５０）、処理を終了する。【選択図】図２８
2011237885.tif 000002
【特許請求の範囲】
【請求項１】
時間、軸位置、あるいは主軸位置を基準とし、基準となる時間、軸あるいは主軸の位置と、前記基準となる軸あるいは主軸とは別の軸あるいは主軸の位置とを対応させたテーブル形式データをメモリに格納しておき、前記基準となる時間、軸あるいは主軸の位置と、前記基準となる軸あるいは主軸とは別の軸あるいは主軸の位置を順次読み出し、前記基準となる時間、軸あるいは主軸の位置に同期して、前記別の軸あるいは主軸の位置に同期して前記別の軸あるいは主軸の位置を制御する数値制御装置において、
刃先Ｒ補正量または工具径補正量を記憶する記憶手段と、
テーブル形式データへの刃先Ｒ補正または工具径補正の有効および無効を指令する指令手段と、
前記テーブル形式データと前記刃先Ｒ補正量または工具径補正量から、工具の進行に伴って前記テーブル形式データのブロックに対して補正する前記別の軸あるいは主軸の位置の補正量を算出する補正量算出手段と、
前記補正量算出手段により算出された補正量から前記別の軸あるいは主軸の位置を算出する算出手段と、
刃先Ｒ補正または工具径補正を行うことにより生じる、前記基準となる時間、軸あるいは主軸の位置と、前記別の軸あるいは主軸の位置の同期ずれを補正した前記別の軸あるいは主軸の位置を出力する出力手段と、
を有することを特徴とするテーブル形式データでの制御における刃先Ｒ補正または工具径補正の機能を備えた数値制御装置。
【請求項２】
前記出力手段は、テーブル形式データを先読みし、工具の進行方向の変更点を取得する取得手段と、
前記取得手段により取得した工具の進行方向の変更点から工具がワークの内側を回るか外側を回るかを判定する判定手段と、
前記判定手段による判定の結果、工具がワークの内側を回る場合、補正後の工具の経路における工具方向の変更点で同期ずれが解消されるまで工具を停止し、工具がワークの外側を回る場合は、プログラム経路に無い移動を行う区間において、同期ずれが解消されるまでプログラムによる移動量に一定の移動パルスを加算する加算手段と、
を有することを特徴とする請求項１に記載のテーブル形式データでの制御における刃先Ｒ補正または工具径補正の機能を備えた数値制御装置。
【請求項３】
前記加算手段により求められた加算結果の値が、設定リミット値を超えるか否かを判断し、リミット値を超えた場合にアラームとするアラーム手段を有することを特徴とする請求項２に記載のテーブル形式データでの制御における刃先Ｒ補正または工具径補正の機能を備えた数値制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、工作機械や産業用機械を制御する数値制御装置に関し、特に、該数値制御装置で制御される機械の各軸が同期して動作するテーブル形式データ（パステーブル運転データ）を用いるパステーブル運転を行う数値制御装置に関する。
【背景技術】
【０００２】
テーブル形式データによる運転では、例えば、プログラム経路の各点を通過する時刻をテーブル形式データ（パステーブル運転データ）により指定することによって、全ての軸が時間に同期して動作する。このように、時間、軸位置、あるいは主軸位置を基準にした軸（可動軸）の位置を設定したテーブル形式データをメモリに格納しておき、該テーブル形式データを順次読み出しながら各軸を駆動する機能（パステーブル運転機能）を備えた数値制御装置は、特許文献１や特許文献２に開示されるように公知の技術である。前記パステーブル運転機能によって、従来の加工プログラムに囚われない自由な工具の動作が可能になり、加工時間の短縮や加工の高精度化を実現できる。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開昭５９−１７７６０４号公報
【特許文献２】特開２００３−３０３００５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
背景技術で説明したように、従来のテーブル形式データによる運転（パステーブル運転）では、プログラム経路の各点を通過する時刻をテーブル形式データ（パステーブル運転データ）により指定することにより、全ての軸が時間に同期して動作する。
【０００５】
しかし、テーブル形式データによる運転（パステーブル運転）に対して、ＮＣプログラムによる運転におけるバイト工具などの刃先が持っている丸みによる誤差分を補正する刃先Ｒ補正や、エンドミル工具等の工具の半径値を補正する工具径補正を行った場合、プログラム経路と刃先Ｒ中心経路や工具中心経路が異なるため、これらの補正を行った軸において指定された時刻との同期ずれが発生する。そのため、従来のテーブル形式データによる運転（パステーブル運転）では、バイト工具などの刃先やエンドミル工具などの径が変る度に、その誤差分（径の変化分）を考慮して、テーブル形式データを修正する必要があった。
【０００６】
ここで図３６および図３７を用いて、従来のテーブル形式データによる運転（パステーブル運転）の例を説明する。図３６は、工具交換前の従来技術に係るパステーブル運転の例を説明する図である。また、図３７は、工具交換後の従来技術に係るパステーブル運転の例を説明する図である。
【０００７】
図３６（ｂ）に示されるテーブル形式データ（パステーブル運転データ）に従って、図３６（ａ）に示されるように、工具２は前記パステーブルのプログラム経路に沿ってワーク４を加工し、加工形状６を生成する。この時に使用する工具２としてはバイト工具などであり、その半径を２．０ｍｍとしている。
【０００８】
図３７（ａ）は、図３６に示される半径２．０ｍｍの工具２を半径３．０ｍｍの工具３に交換してワーク４を加工することを図示している。また、図３６（ａ）と同様にワーク４に加工形状６を生成するために、図３７（ｂ）に示されるように、工具交換に伴ってテーブル形式データ（パステーブル運転データ）のプログラム経路を変更する必要がある。
【０００９】
上述したように、従来のテーブル形式データによる運転（パステーブル運転）では、バイト工具などの刃先が持っている丸みによる誤差分を補正する刃先Ｒ補正や、エンドミル工具等の工具の半径値を補正する工具径補正ができなかったため、バイト工具などの刃先やエンドミル工具等の径が変わる度に、その誤差分を考慮して、テーブル形式データ（パステーブル運転データ）を修正し直す必要があり、手間がかかり問題であった。
【００１０】
そこで本発明の目的は、テーブル形式データ（パステーブル運転データ）による運転において、バイト工具等の刃先やエンドミル工具等の径が変わっても、刃先Ｒ補正量や工具径補正量を変更するだけで、テーブル形式データの修正を不要とすることが可能なテーブル形式データでの制御における刃先Ｒ補正または工具径補正の機能を備えた数値制御装置を提供することである。
【課題を解決するための手段】
【００１１】
本願の請求項１に係る発明は、時間、軸位置、あるいは主軸位置を基準とし、基準となる時間、軸あるいは主軸の位置と、前記基準となる軸あるいは主軸とは別の軸あるいは主軸の位置とを対応させたテーブル形式データをメモリに格納しておき、前記基準となる時間、軸あるいは主軸の位置と、前記基準となる軸あるいは主軸とは別の軸あるいは主軸の位置を順次読み出し、前記基準となる時間、軸あるいは主軸の位置に同期して、前記別の軸あるいは主軸の位置に同期して前記別の軸あるいは主軸の位置を制御する数値制御装置において、刃先Ｒ補正量または工具径補正量を記憶する記憶手段と、テーブル形式データへの刃先Ｒ補正または工具径補正の有効および無効を指令する指令手段と、前記テーブル形式データと前記刃先Ｒ補正量または工具径補正量から、工具の進行に伴って前記テーブル形式データのブロックに対して補正する前記別の軸あるいは主軸の位置の補正量を算出する補正量算出手段と、前記補正量算出手段により算出された補正量から前記別の軸あるいは主軸の位置を算出する算出手段と、刃先Ｒ補正または工具径補正を行うことにより生じる、前記基準となる時間、軸あるいは主軸の位置と、前記別の軸あるいは主軸の位置の同期ずれを補正した前記別の軸あるいは主軸の位置を出力する出力手段と、を有することを特徴とするテーブル形式データでの制御における刃先Ｒ補正または工具径補正の機能を備えた数値制御装置である。
【００１２】
請求項２に係る発明は、前記出力手段は、テーブル形式データを先読みし、工具の進行方向の変更点を取得する取得手段と、前記取得手段により取得した工具の進行方向の変更点から工具がワークの内側を回るか外側を回るかを判定する判定手段と、前記判定手段による判定の結果、工具がワークの内側を回る場合、補正後の工具の経路における工具方向の変更点で同期ずれが解消されるまで工具を停止し、工具がワークの外側を回る場合は、プログラム経路に無い移動を行う区間において、同期ずれが解消されるまでプログラムによる移動量に一定の移動パルスを加算する加算手段と、を有することを特徴とする請求項１に記載のテーブル形式データでの制御における刃先Ｒ補正または工具径補正の機能を備えた数値制御装置である。  
請求項３に係る発明は、前記加算手段により求められた加算結果の値が、設定リミット値を超えるか否かを判断し、リミット値を超えた場合にアラームとするアラーム手段を有することを特徴とする請求項２に記載のテーブル形式データでの制御における刃先Ｒ補正または工具径補正の機能を備えた数値制御装置である。
【発明の効果】
【００１３】
本発明により、テーブル形式データ（パステーブル運転データ）による運転において、バイト工具等の刃先やエンドミル工具等の径が変わっても、刃先Ｒ補正量や工具径補正量を変更するだけで、テーブル形式データの修正を不要とすることが可能なテーブル形式データでの制御における刃先Ｒ補正または工具径補正の機能を備えた数値制御装置を提供できる。
【図面の簡単な説明】
【００１４】
【図１】本発明の実施形態が実行するテーブル形式データによる運転機能の概要図である。
【図２】本発明に係るパステーブル運転（工具交換前）の例を説明する図である。
【図３】本発明に係るパステーブル運転（工具交換後）の例を説明する図である。
【図４】出発点でＧ４２指令（工具の進行方向の右側に補正）を行った時の工具の刃先Ｒ中心点の刃先Ｒ中心経路とプログラム経路を表した図である（工具の進行方向が直線から直線に変更される場合）。
【００１５】
【図５】出発点でＧ４２指令（工具の進行方向の右側に補正）を行った時の工具の刃先Ｒ中心点の刃先Ｒ中心経路とプログラム経路を表した図である（工具の進行方向が直線から円弧に変更される場合）。
【図６】刃先Ｒ補正または工具径補正指令を含むテーブル形式データ（パステーブル運転データ）を説明する図である。
【図７】図６のプログラム経路において、刃先Ｒ補正量または工具径補正量をｒとした時の工具位置を表す表である。
【図８】図６と図７に示される、刃先Ｒ補正量または工具径補正量をｒとした時の、プログラム経路と工具位置の関係を説明する図である。
【図９】Ｇ４０指令を行ったときの工具の刃先Ｒ中心経路とプログラム経路とを説明する図である（工具の進行方向が直線から直線に変更される場合）。
【図１０】Ｇ４０指令を行ったときの工具の刃先Ｒ中心経路とプログラム経路とを説明する図である（工具の進行方向が円弧から直線に変更される場合）。
【図１１】刃先Ｒ補正量または工具径補正量をｒとした時のプログラム経路の一例を表す表である。
【図１２】図１１のプログラム経路において、刃先Ｒ補正量または工具径補正量をｒとした時の工具位置を表す表である。
【図１３】図１１と図１２に示される、刃先Ｒ補正量または工具径補正量をｒとした時の、プログラム経路と工具位置の関係を説明する図である。
【図１４】刃先Ｒ補正または工具経補正中に工具の進行方向が変化しワークの内側を工具が回る場合であって、工具の進行方向が直線から直線に変更される場合を説明する図である。
【図１５】刃先Ｒ補正または工具経補正中に工具の進行方向が変化しワークの内側を工具が回る場合であって、工具の進行方向が直線から円弧に変更される場合を説明する図である。
【図１６】刃先Ｒ補正または工具経補正中に工具の進行方向が変化しワークの内側を工具が回る場合であって、工具の進行方向が円弧から直線に変更される場合を説明する図である。
【図１７】刃先Ｒ補正または工具経補正中に工具の進行方向が変化しワークの内側を工具が回る場合であって、工具の進行方向が円弧から円弧に変更される場合を説明する図である。
【図１８】工具がワークの内側を回る場合の、刃先Ｒ補正または工具径補正指令を含むテーブル形式データ（パステーブル）を説明する図である。
【図１９】図１８に示されるテーブル番号２０００において、刃先Ｒ補正量または工具径補正量をｒとした時の工具位置の一例を表す表である。
【図２０】図１８と図１９に示される、刃先Ｒ補正量または工具径補正量をｒとした時のプログラム経路と工具位置を説明する図である。
【図２１】プログラム経路の進行方向が直線から直線に変わる際に、刃先Ｒ中心がどのような経路を通るかを説明する図である。
【図２２】プログラム経路の進行方向が直線から円弧に変わる際に、刃先Ｒ中心がどのような経路を通るかを説明する図である。
【図２３】プログラム経路の進行方向が円弧から直線に変わる際に、刃先Ｒ中心がどのような経路を通るかを説明する図である。
【図２４】プログラム経路の進行方向が円弧から円弧に変わる際に、刃先Ｒ中心がどのような経路を通るかを説明する図である。
【図２５】刃先Ｒ補正量または工具径補正量をｒとし、Ｌ５とＬ６の間で同期ずれが解消すると仮定した時のプログラム経路の一例を表す表である。
【図２６】刃先Ｒ補正量または工具径補正量をｒとし、工具位置の一例を表す表である。
【図２７】図２５と図２６に示される、刃先Ｒ補正量または工具径補正量をｒとし、Ｌ５とＬ６の間で同期ずれが解消すると仮定した時のプログラム経路と工具位置の関係を説明する図である。
【図２８】本発明に係る刃先Ｒ補正または工具径補正を行うアルゴリズムを説明するフローチャートである。
【図２９】本発明に係る刃先Ｒ補正または工具径補正を行うスタートアップ処理のアルゴリズムを説明するフローチャートである。
【図３０】本発明に係る刃先Ｒ補正または工具径補正を行うメイン処理のアルゴリズムを説明するフローチャートである。
【図３１】本発明に係る刃先Ｒ補正または工具径補正のキャンセル処理のアルゴリズムを説明するフローチャートである。
【図３２】本発明に係る各軸の補正量を算出する手段を説明する図である。
【図３３】本発明に係る刃先Ｒ補正または工具径補正の中心経路の交点Ｓを算出する手段を説明する図である。
【図３４】本発明に係るプログラム経路に無い移動を行う区間の始点と終点を算出する手段を説明する図である。
【図３５】本発明の一実施形態の数値制御装置の要部ブロック図である。
【図３６】従来技術に係るパステーブル運転（工具交換前）の例を説明する図である。
【図３７】従来技術に係るパステーブル運転（工具交換後）の例を説明する図である。
【発明を実施するための形態】
【００１６】
以下、本発明の実施形態を図面と共に説明する。なお、従来技術の説明と同一の構成や類似の構成については同じ符号を用いて説明する。  
図１は、本発明の実施形態が実行するテーブル形式データによる運転機能の概要図である。本発明の実施形態では、図１の概要図において、後述して説明する図２８，図２９，図３０，図３１を用いて説明するアルゴリズムの処理を実行する。  
なお、以降では説明のために補正を行う平面をＸ−Ｙ平面と仮定するが、Ｘ−Ｙ平面以外の平面や、３次元空間にも本発明は同様に適用可能である。
【００１７】
Ｘ軸用パステーブルＴｘ、Ｙ軸用パステーブルＴｙを備えている。Ｘ軸用パステーブルＴｘは、基準位置に対して、Ｘ軸位置が記憶されている。また、Ｙ軸用パステーブルＴｙは、基準位置に対して、Ｙ軸位置が記憶されている。主軸に取り付けられたポジションコーダからのパルス（主軸位置）または軸に取り付けられたポジションコーダからのパルス（軸位置）または基準とする外部パルス発生部からの時間を基準とするパルスが、カウンタ１０１に入力され計数される。以降は簡略化のため、軸位置を省略して記述する。
【００１８】
このカウンタ１０１の計数値にオーバライド手段に設定されているオーバライド値が乗算器１０２で乗じられ基準位置カウンタ１０３に格納される。この基準位置カウンタ１０３は、パステーブル運転機能が指令された時点でリセットされる。基準位置カウンタ１０３の値が基準位置としてＸ軸、Ｙ軸パステーブル補間処理部１０４ｘ，１０４ｚに入力される。基準位置カウンタ１０３の値が基準位置としてＸ軸，Ｙ軸パステーブル補間処理部１０４ｘ，１０４ｙでは、Ｘ軸パステーブルＴｘ，Ｙ軸パステーブルＴｙを参照して基準位置に対するＸ軸，Ｙ軸の指令位置を求め、処理周期での移動量を求め該移動量を指令として加算器１０６ｘ，１０６ｙに出力する。
【００１９】
基準位置カウンタ１０３の値がさらに、刃先Ｒ補正または工具径補間処理部１０７ｘｔ，１０７ｙｔに入力される。刃先Ｒ補正または工具径補間処理部１０７ｘｔ，１０７ｙｔは、処理周期毎、刃先Ｒ補正または工具径補正テーブルＴｔを参照し、刃先Ｒ補正または工具径補正に係る補正量を補間して補間補正量を加算器１０６ｘ，１０６ｙにそれぞれ出力する。加算器１０６ｘ，１０６ｙで加算された結果の値が各制御軸モータ１０５ｘ，１０５ｙに出力されることにより、Ｘ，Ｙ軸を基準位置に合わせて同期運転することができる。
【００２０】
本発明は、テーブル形式データ（パステーブル運転データ）による運転において、バイト工具などの刃先やエンドミル工具等の径が変っても、刃先Ｒ補正量や工具径補正量を変更するだけで、テーブル形式データの修正を不要とするものである。従来技術における問題点を解決するため、本発明では、工具の外周と加工面が接する点を通る時刻が、テーブル形式データによってプログラムされた時刻と一致するように、工具の進行速度を制御する手段を備える。
【００２１】
図２は、本発明に係るパステーブル運転（工具交換前）の例を説明する図である。また、図３は、本発明に係るパステーブル運転（工具交換後）の例を説明する図である。図２（ｂ）に示されるテーブル形式データ（パステーブル運転データ）に従って、図２（ａ）に示されるように、工具２は前記パステーブル運転データのプログラム経路に沿ってワーク４を加工し、加工形状６を生成する。この時に使用する工具２としてはバイト工具などであり、その半径を２．０ｍｍとしている。図２（ａ）に示されるように、本発明においては、加工形状６とパステーブル運転データにより設定されたプログラム経路とは一致する。
【００２２】
図３（ａ）は、図２（ａ）に示される半径２．０ｍｍの工具２を半径３．０ｍｍの工具３に交換してワーク４を加工することを図示している。また、図３（ｂ）は、図２（ｂ）と同様にワーク４に加工形状６を生成するために用いられるテーブル形式データ（パステーブル運転データ）である。図２（ｂ）に示されるテーブル形式データ（パステーブル運転データ）と図３（ｂ）に示されるテーブル形式データ（パステーブル運転データ）とを対比すると理解できるが、本発明では、工具の半径を変更しても、テーブル形式データ（パステーブル運転データ）を変更することなく、ワーク４に対して同じ加工形状６を生成することができる。  
なお、テーブル形式データとしては前述したＸ軸用パステーブルＴｘ，Ｙ軸用パステーブルＴｙ、刃先Ｒ補正または工具径補正Ｔｔの３種類のテーブルが個別に存在し、それぞれが平行して動作するが、以降は図２（ｂ）や図３（ｂ）のように１つのテーブルにまとめて表現する。
【００２３】
＜スタートアップ処理＞
次に、本発明に係るパステーブル運転において、刃先Ｒ補正または工具径補正の有効を指令した場合の処理であるスタートアップ処理について説明する。  
本発明の実施形態において、刃先Ｒ補正または工具径補正では、一例として、以下の指令が可能である。  
・Ｇ４２指令：工具の進行方向の右側に補正を行う指令  
・Ｇ４１指令：工具の進行方向の左側に補正を行う指令  
・Ｇ４０指令：刃先Ｒ補正または工具径指令をキャンセルする指令  
これらの指令は、工作機械を制御する数値制御装置が有する公知の指令である。  
Ｇ４２指令とＧ４１指令とを切り換えた場合もスタートアップ処理を実行する。また、Ｇ４２指令またはＧ４１指令が有効な状態からＧ４０指令を行った場合の動作については、＜キャンセル処理＞として後述する。  
刃先Ｒ補正または工具径補正が無効の状態で、刃先Ｒ補正または工具径補正の有効を指令するブロックを実行した場合、その時点から次に工具の進行方向が変化する直前に刃先Ｒ補正または工具径補正が完了するように、等速で補正を行う。ここでブロックとは、一つの基準値から次の基準値までの区間を意味する。
【００２４】
図４や図５は、出発点でＧ４２指令（工具の進行方向の右側に補正）を行った時の工具
の刃先Ｒ中心点の刃先Ｒ中心経路とプログラム経路を表した図である。なお、工具の工具中心経路の場合も工具の刃先Ｒ中心経路の場合と同様であるので、これ以降、刃先Ｒ中心経路を例として説明する。
【００２５】
図４は、工具の進行方向が直線から直線に変更される場合である。刃先Ｒ補正を行わない場合、刃先Ｒ中心点８は実線矢印で示されるプログラム経路を通ってワーク４を加工する。この場合、加工誤差が生じてしまう。一方、Ｇ４２指令によって本発明に係る刃先Ｒ補正を行った時、刃先Ｒ中心点８は破線矢印で示される刃先Ｒ中心経路を通ってワーク４を加工する。Ｇ４２指令による刃先Ｒ補正は、刃先Ｒ中心点８が工具の進行方向が変化する点Ｓに到達する時に補正が完了する。
【００２６】
図５は、工具の進行方向が直線から円弧に変更される場合を図示している。刃先Ｒ補正を行わない場合、刃先Ｒ中心点８は実線矢印で示されるプログラム経路を通ってワーク４を加工する。一方、Ｇ４２指令によって本発明に係る刃先Ｒ補正を行った時、刃先Ｒ中心点８は破線矢印で示される刃先Ｒ中心経路を通ってワーク４を加工する。Ｇ４２指令による刃先Ｒ補正は、刃先Ｒ中心点８が工具の進行方向が変化する点Ｓに到達する時に補正が完了する。
【００２７】
次に、図６、図７、および図８を用いて、刃先Ｒ補正量をｒとした時の、プログラム経路と工具位置の関係を説明する。なお、工具径補正量をｒとした時も同様に説明できる。
【００２８】
図６は、刃先Ｒ補正または工具径補正指令を含むテーブル形式データ（パステーブル運転データ）を説明する図である。  
パステーブル番号１０００には、時間（時刻）または主軸位置の各ブロック（Ｌ０，Ｌ１，Ｌ２，Ｌ３，Ｌ４，Ｌ５，Ｌ６，Ｌ７，Ｌ８）に対して、Ｘ軸のプログラム経路、Ｙ軸のプログラム経路、および、刃先Ｒ補正または工具径補正指令が設定されている。Ｌ０におけるＧ４２指令の後、次に進行方向が変化する時刻（主軸位置）は図６に示されるＬ５の点である。なお、図６において、（Ｇ４２）の表記は、Ｇ４２指令のブロックではないが、Ｌ１〜Ｌ８の各ブロックがモーダル情報としてＧ４２指令を指令されていることを意味する。
【００２９】
図７は、図６のプログラム経路において、刃先Ｒ補正量をｒとした時の工具の位置である刃先Ｒ中心点の刃先Ｒ中心経路を表す表である。ここでは、刃先Ｒ補正量を例として説明する。図８は、図６と図７に示される、刃先Ｒ補正量をｒとした時の、プログラム経路と刃先Ｒ中心経路の関係を説明する図である。図６においてＬ０のブロックに刃先Ｒ指令であるＧ４２指令が設定され、ブロックＬ１〜Ｌ８がＧ４２の指令をモーダル情報として有していることから、刃先Ｒ補正量をｒとした場合、各ブロックにおいて補正を行うと、工具のＹ軸の位置が補正される。工具の進行方向が変化する交点Ｓ（図８参照）は、この例では、Ｌ５が工具の進行方向の変化する点である。
【００３０】
＜刃先Ｒ補正または工具径補正のメイン処理＞
次に、本発明に係るパステーブル運転において、刃先Ｒ補正または工具径補正のメイン処理について説明する。刃先Ｒ補正または工具径補正中に工具の進行方向が変化する場合、工具が、ワークの内側を回る場合とワークの外側を回る場合の２つの場合がある。
以下、それぞれの場合について説明する。なお、図１４〜図２０は、工具がワークの内側を回る場合を説明する図である。また、図２１〜図２７は、工具がワークの外側を回る場合を説明する図である。
【００３１】
（工具がワークの内側を回る場合）  
プログラム経路の交点におけるワーク側の角度が１８０度を超える場合に該当する。この場合、プログラム経路よりも工具の移動経路の方が短くなることから、同期ずれを解消するために刃先Ｒ中心経路の交点（工具の進行方向が変化する点Ｓ）で工具は一旦停止する。前記基準となる時間、軸あるいは主軸の位置に対し、工具の位置の同期ずれが解消した瞬間から、工具は同期を開始する。それにより、前記基準となる時間、軸あるいは主軸の位置と、工具の外周とワークの接点位置を同期させることができる。
【００３２】
図１４は、刃先Ｒ補正中に工具の進行方向が変化しワークの内側を工具が回る場合であって、工具の進行方向が直線から直線に変更される場合を説明する図である。刃先Ｒ補正された工具の刃先Ｒ中心は図示されたように刃先Ｒ中心経路を通り移動しながらワーク４を加工する。プログラム経路よりも工具の移動経路である刃先Ｒ中心経路の方がプログラム経路の点線の区間だけ短くなることから、同期ずれを解消するために刃先Ｒ中心経路の交点Ｓで工具は一旦停止する。前記基準となる時間、軸あるいは主軸の位置に対し、工具の位置の同期ずれが解消した瞬間から、工具は同期を開始する。それにより、前記基準となる時間、軸あるいは主軸の位置と、工具の外周とワークの接点位置を同期させることができる。一旦停止する時間は、交点Ｓからプログラム経路に対して垂線を引き、該垂線とプログラム経路との交点と交点の間の区間である。この区間は数学的に計算して求めることができる。
【００３３】
図１５は、刃先Ｒ補正中に工具の進行方向が変化しワークの内側を工具が回る場合であって、工具の進行方向が直線から円弧に変更される場合を説明する図である。刃先Ｒ補正された工具の刃先Ｒ中心は図示されたように刃先Ｒ中心経路を通り移動しながらワーク４を加工する。プログラム経路よりも工具の移動経路である刃先Ｒ中心経路の方がプログラム経路の点線の区間だけ短くなることから、同期ずれを解消するために刃先Ｒ中心経路の交点Ｓで工具は一旦停止する。前記基準となる時間、軸あるいは主軸の位置に対し、工具の位置の同期ずれが解消した瞬間から、工具は同期を開始する。それにより、前記基準となる時間、軸あるいは主軸の位置と、工具の外周とワークの接点位置を同期させることができる。
【００３４】
図１６は、刃先Ｒ補正中に工具の進行方向が変化しワークの内側を工具が回る場合であって、工具の進行方向が円弧から直線に変更される場合を説明する図である。  
刃先Ｒ補正された工具の刃先Ｒ中心は図示されたように刃先Ｒ中心経路を通り移動しながらワーク４を加工する。プログラム経路よりも工具の移動経路である刃先Ｒ中心経路の方がプログラム経路の点線の区間だけ短くなることから、同期ずれを解消するために刃先Ｒ中心経路の交点Ｓで工具は一旦停止する。前記基準となる時間、軸あるいは主軸の位置に対し、工具の位置の同期ずれが解消した瞬間から、工具は同期を開始する。それにより、前記基準となる時間、軸あるいは主軸の位置と、工具の外周とワークの接点位置を同期させることができる。
【００３５】
図１７は、刃先Ｒ補正中に工具の進行方向が変化しワークの内側を工具が回る場合であって、工具の進行方向が円弧から円弧に変更される場合を説明する図である。  
刃先Ｒ補正された工具の刃先Ｒ中心は図示されたように刃先Ｒ中心経路を通り移動しながらワーク４を加工する。プログラム経路よりも工具の移動経路である刃先Ｒ中心経路の方がプログラム経路の点線の区間だけ短くなることから、同期ずれを解消するために刃先Ｒ中心経路の交点Ｓで工具は一旦停止する。前記基準となる時間、軸あるいは主軸の位置に対し、工具の位置の同期ずれが解消した瞬間から、工具は同期を開始する。それにより、前記基準となる時間、軸あるいは主軸の位置と、工具の外周とワークの接点位置を同期させることができる。
【００３６】
図１８は、工具がワークの内側を回る場合の、刃先Ｒ補正または工具径補正指令を含むテーブル形式データ（パステーブル運転データ）を説明する図である。パステーブル番号２０００は、時間または主軸位置の各ブロック（Ｌ０，Ｌ１，Ｌ２，Ｌ３，Ｌ４，Ｌ５，Ｌ６）に対して、Ｘ軸のプログラム経路、Ｙ軸のプログラム経路、および、刃先Ｒ補正または工具径補正指令が設定されている。Ｌ０〜Ｌ６のブロックにはモーダル情報としてＧ４２指令が設定されている。ブロックＬ３が工具の進行方向の変更点である。
【００３７】
図１９は、図１８に示されるテーブル番号２０００において、刃先Ｒ補正量または工具径補正量をｒとした時の工具位置の一例を表す表である。図２０は、図１８と図１９に示される、刃先Ｒ補正量をｒとした時のプログラム経路と工具位置を説明する図である。この場合、Ｌ２→Ｌ３→Ｌ４の区間だけプログラム経路よりも工具の移動経路（刃先Ｒ中心経路）の方が短くなることから、同期ずれを解消するために刃先Ｒ中心経路の交点（工具の進行方向が変化する点Ｓ）で工具は一旦停止する。
【００３８】
（工具がワークの外側を回る場合）
次に、工具がワークの外側を回る場合を説明する。  
工具がワークの外側を回る場合は、プログラム経路の交点における、ワーク側の角度が１８０度以下の場合に該当する。図２１〜図２７は、プログラム経路の進行方向が変わる際に、刃先Ｒ中心がどのような経路を辿るかを説明する図である。
【００３９】
プログラム経路の進行方向が変わる際には、プログラムに指令のない移動を行う必要がある。この移動区間は、図２１〜図２４，図２７に点線のみの区間として示されている。点線のみの区間では、一定値の移動パルスを制御周期毎に出力することにより、工具の移動が行われる。しかし、この間も前記基準となる時間、軸あるいは主軸の位置は進み続けるため、点線のみの区間の移動が終了した時、前記基準となる時間、軸あるいは主軸の位置に対し、工具の位置は同期ずれが発生している。この同期ずれを解消するため、点線のみの区間が終了した後、同期ずれが解消されるまで、プログラム指令による移動パルスに一定値の移動パルスを加算する。
【００４０】
一定値の移動パルスに関しては、パラメータで設定できる他、Ｇ４１指令またはＧ４２指令と同時に以下のようにプログラム指令を行うことよっても設定可能である。そして、一定値は任意の値を設定可能である。  
Ｌ０Ｇ４２Ｐ８：（数値制御装置の制御周期毎に最小設定単位８つずつ補正を行う）
【００４１】
図２１は、工具がワークの外側を回る場合、プログラム経路の進行方向が直線から直線に変わる際に、刃先Ｒ中心がどのような経路を通るかを説明する図である。点線のみの点線区間では、工具は一定値の移動パルス出力により移動し、破線と点線の重なった重複区間では、補正による遅れを一定値の移動パルスを加算して遅れを取り戻し、同期ずれを解消する。
【００４２】
図２２は、プログラム経路の進行方向が直線から円弧に変わる際に、刃先Ｒ中心がどのような経路を通るかを説明する図である。点線のみの点線区間では、工具は一定値の移動パルス出力により移動し、破線と点線の重なった重複区間では、補正による遅れを一定値の移動パルスを加算して遅れを取り戻し、同期ずれを解消する。
【００４３】
図２３は、プログラム経路の進行方向が円弧から直線に変わる際に、刃先Ｒ中心がどのような経路を通るかを説明する図である。点線のみの点線区間では、工具は一定値の移動パルス出力により移動し、破線と点線の重なった重複区間では、補正による遅れを一定値の移動パルスを加算して遅れを取り戻し、同期ずれを解消する。
【００４４】
図２４は、プログラム経路の進行方向が円弧から円弧に変わる際に、刃先Ｒ中心がどのような経路を通るかを説明する図である。点線のみの点線区間では、工具は一定値の移動パルス出力により移動し、破線と点線の重なった重複区間では、補正による遅れを一定値の移動パルスを加算して遅れを取り戻し、同期ずれを解消する。
【００４５】
図２５は、工具がワークの外側を回る場合の、刃先Ｒ補正または工具径補正指令を含むテーブル形式データ（パステーブル運転データ）を説明する図である。パステーブル番号３０００は、時間または主軸位置の各ブロック（Ｌ０，Ｌ１，Ｌ２，Ｌ３，Ｌ４，Ｌ５，Ｌ６，Ｌ７）に対して、Ｘ軸のプログラム経路、Ｙ軸のプログラム経路、および、刃先Ｒ補正または工具径補正指令が設定されている。Ｌ０〜Ｌ７のブロックにはモーダル情報としてＧ４２指令が設定されている。ブロックＬ３が工具の進行方向の変更点である。
【００４６】
図２６は、図２５に示されるテーブル番号３０００において、刃先Ｒ補正量または工具径補正量をｒとし、Ｌ５とＬ６の間で同期ずれが解消すると仮定した時の工具位置の一例を表す表である。ブロックＬ４のＸ１およびＹ１、ブロックＬ５のＸ２およびＹ２は、点線区間（点線のみの区間と、および、点線および破線の重複区間）を移動する際に設定される一定値の移動パルスの設定値によって変化する。  
【００４７】
図２７は、図２５と図２６に示される、刃先Ｒ補正量または工具径補正量をｒとし、Ｌ５とＬ６の間で同期ずれが解消すると仮定した時のプログラム経路と工具位置の関係を説明する図である。
【００４８】
＜キャンセル処理＞  
次に、パステーブル運転において、刃先Ｒ補正または工具径補正の無効を指令した場合の処理であるキャンセル処理について説明する。  
刃先Ｒ補正または工具径補正が有効の状態で、刃先Ｒ補正または工具径補正の無効を指令するブロックを実行した場合、その時点から次に工具の進行方向が変化する直前に刃先Ｒ補正または工具径補正による補正量が０（ゼロ）となるように、等速で補正を行う。
【００４９】
図９や図１０は、Ｇ４０指令を行った時の工具の刃先Ｒ中心経路とプログラム経路を表した図である。なお、工具の工具中心経路の場合も工具の刃先Ｒ中心経路の場合と同様であるので、これ以降、刃先Ｒ中心経路を例として説明する。
【００５０】
図９は、工具の進行方向が直線から直線に変更される場合である。刃先Ｒ中心経路を通って移動する工具は、Ｇ４０指令によって工具の進行方向が変化する点Ｓ１から刃先Ｒ補正の補正量が０（ゼロ）になるように等速で補正量のキャンセルがなされる。刃先Ｒ中心点８は破線矢印で示される刃先Ｒ中心経路を通って、Ｇ４０指令の後、次に進行方向が変化する時刻（工具の進行方向が変化する点Ｓ２）に補正量が０になる動作が完了する。
【００５１】
また、図１０は、工具の進行方向が円弧から直線に変更される場合である。刃先Ｒ中心経路を通って移動する工具は、Ｇ４０指令によって工具の進行方向が変化する点Ｓ１から刃先Ｒ補正の補正量が０（ゼロ）になるように等速で補正量のキャンセルがなされる。工具２は破線矢印で示される刃先Ｒ中心経路を通って、Ｇ４０指令の後、次に進行方向が変化する時刻（工具の進行方向が変化する点Ｓ２）に補正量が０になる動作が完了する。
【００５２】
次に、図１１、図１２、および図１３を用いて、刃先Ｒ補正量をｒとした時の、プログラム経路と工具位置の関係を説明する。なお、工具径補正量をｒとした時も同様に説明できる。  
【００５３】
図１１は、刃先Ｒ補正または工具径補正指令を含むテーブル形式データ（パステーブル運転データ）を説明する図である。図１１のパステーブル番号１０００には、時間または主軸位置の各ブロック（Ｌ０，Ｌ１，Ｌ２，Ｌ３，Ｌ４，Ｌ５，Ｌ６，Ｌ７，Ｌ８）に対して、Ｘ軸のプログラム経路、Ｙ軸のプログラム経路、および、刃先Ｒ補正または工具径補正指令が設定されている。Ｌ０〜Ｌ１はモーダル情報としてＧ４１指令が指令されており、Ｌ２でＧ４０指令がなされている。次に進行方向が変化する時刻（主軸位置）は図１１に示されるＬ７の点である。なお、図１１において、（Ｇ４１）の表記は、Ｇ４１指令のブロックではないが、Ｌ１〜Ｌ４の各ブロックがモーダル情報としてＧ４１指令を指令されていることを意味する。また、（Ｇ４０）の表記は、Ｌ３〜Ｌ８の各ブロックがモーダル情報としてＧ４０指令を指令されていることを意味する。
【００５４】
図１２は、図１１のプログラム経路において、刃先Ｒ補正量または工具径補正量をｒとした時の工具位置（刃先Ｒ中心経路）を表す表である。なお、工具の工具中心経路の場合も工具の刃先Ｒ中心経路の場合と同様であるので、これ以降、刃先Ｒ中心経路を例として説明する。図１３は、図１１と図１２に示される、刃先Ｒ補正量をｒとした時の、プログラム経路と工具位置の関係を説明する図である。図１１においてＬ２のブロックに刃先Ｒ指令または工具径補正指令をキャンセルする指令であるＧ４０指令が設定されていることから、刃先Ｒ補正量をｒとした場合、各ブロックにおいて補正を行うと、図１２に示されるように、工具２のＹ軸の位置が補正される。工具の進行方向が変化する点Ｓは、この例では、Ｌ７が工具の進行方向の変化する点である。
【００５５】
図２８は、本発明に係る刃先Ｒ補正または工具径補正を行うアルゴリズムを説明するフローチャートである。以下、各ステップに従って説明する。なお、これ以降のフローチャートにおいて、用いられる工具が刃先Ｒ補正を行う工具の場合は刃先Ｒ補正を行い、工具径補正を行う工具の場合は工具径補正を行うことを意味する。  
フローチャートの処理はＧ４０指令またはＧ４１指令またはＧ４２指令が指令された場合にスタートする。
【００５６】
●［ステップＳＡ１０］刃先Ｒ補正または工具径補正が指令されたか否かを判断し、指令された場合にはステップＳＡ２０へ移行し、指令されていない場合にはステップＳＡ５０へ移行する。  
●［ステップＳＡ２０］刃先Ｒ補正または工具径補正のスタートアップ処理を実行する。
●［ステップＳＡ３０］刃先Ｒ補正または工具径補正のメイン処理を実行する。  
●［ステップＳＡ４０］補正方向の変更またはキャンセルが行われたか否かを判断し、補正方向の変更またはキャンセルが行われた場合にはステップＳＡ１０へ戻り処理を継続し、補正方向の変更またはキャンセルが行われない場合にはステップＳＡ３０へ戻り処理を継続する。なお、補正の方向の変更とは、Ｇ４１指令からＧ４２指令への変更，または、Ｇ４２指令からＧ４１指令への変更を意味する。キャンセルはＧ４０指令を意味する。  
●［ステップＳＡ５０］刃先Ｒ補正または工具径補正のキャンセル処理を実行し、処理を終了する。
【００５７】
図２９は、本発明に係る刃先Ｒ補正または工具径補正を行うスタートアップ処理のアルゴリズムを説明するフローチャートである。以下、各ステップに従って説明する。  
●［ステップＳＡ２００］刃先Ｒ補正または工具径補正の対象平面を構成する２軸の移動指令値から、合成速度を算出する。
●［ステップＳＡ２０１］刃先Ｒ補正または工具径補正の補正量と補正方向から各軸の補正量をそれぞれ算出する。  
●［ステップＳＡ２０２］位置指令値に各軸の補正量を加算し、補正後の移動指令値を算出する。  
●［ステップＳＡ２０３］テーブル形式データを先読みし、工具の進行方向の変更点を取得する。
●［ステップＳＡ２０４］工具の進行方向の変更点到達時に補正が完了するように補正量を補間して出力する。  
●［ステップＳＡ２０５］補正量の加算により各軸に速度超過が発生か否か判断し、超過した場合にはステップＳＡ２０６へ移行し、超過しない場合には処理を終了する。
【００５８】
図３０は、本発明に係る刃先Ｒ補正または工具径補正を行うメイン処理のアルゴリズムを説明するフローチャートである。以下、各ステップに従って説明する。  
●［ステップＳＡ３００］テーブル形式データを先読みし、工具の進行方向の変更点を取得する。  
●［ステップＳＡ３０１］ワークの内側を工具が回るか否かを判断し、内側を回る場合にはステップＳＡ３０２へ移行し、内側を回らない場合にはステップＳＡ３０４へ移行する。
●［ステップＳＡ３０２］刃先Ｒ補正を行ったときの刃先Ｒ中心経路、または、工具径補正を行った時の工具中心経路の交点Ｓを算出する。
●［ステップＳＡ３０３］同期ずれが解消されるまで交点Ｓで工具停止し、同期ずれが解消すると動作開始する。
●［ステップＳＡ３０４］プログラム経路に無い移動を行う区間の始点と終点を算出する。
●［ステップＳＡ３０５］プログラム経路に無い移動を行う区間の始点から終点まで、一定値の移動パルスを出力する。  
●［ステップＳＡ３０６］同期ずれが解消されるまで、プログラム（テーブル形式データ）による移動量に一定値の移動パルスを加算して出力する。  
●［ステップＳＡ３０７］ステップＳＡ３０６におけるプログラムによる移動量に一定値の移動パルスを加算することにより速度超過が発生したか否かを判断し、速度超過が発生した場合にはステップＳＡ３０８へ移行し、速度超過が発生しない場合には処理を終了する。  
●［ステップＳＡ３０８］速度超過アラームを発生し、処理を終了する。
【００５９】
図３１は、本発明に係る刃先Ｒ補正または工具径補正のキャンセル処理のアルゴリズムを説明するフローチャートである。以下、各ステップに従って説明する。  
●［ステップＳＡ５００］テーブル形式データを先読みし、工具の進行方向の変更点を取得する。  
●［ステップＳＡ５０１］工具の進行方向の変更点到達時に補正量が０となるように補正量を補間して出力する。なお、補正量は、図２９のステップＳＡ２０１に示される各軸の補正量を意味する。  
●［ステップＳＡ５０２］補正量の加算により速度超過が発生したか否かを判断し、速度超過が発生した場合にはステップＳＡ５０３へ移行し、速度超過が発生していない場合には処理を終了する。  
●［ステップＳＡ５０３］速度超過アラームを発生し、処理を終了する。
【００６０】
＜各軸の補正量を算出する手段＞
（図２９のステップＳＡ２０１を参照）
次に、図３２を用いて、本発明に係る各軸の補正量を算出する手段を説明する。刃先Ｒ補正または工具径補正を行う場合、補正を行う平面を構成する２軸を選択する。さらに、補正を行う平面における工具の進行方向に対して、進行方向の左側に補正を行うか、進行方向の右側に行うかを選択する。以降では、補正を行う平面を構成する２軸としてＸ軸とＹ軸を、補正方向として進行方向の左側を選択したと仮定する。
【００６１】
前記の設定を行った上で、選択した２軸の移動指令値から、補正を行う平面上での進行方向を算出する。これは、２軸の合成速度を計算した上で、合成速度のＸ成分とＹ成分を求めることで算出可能である。Ｘ軸が４００ｍｍ／ｍｉｎ、Ｙ軸が３００ｍｍ／ｍｉｎの速度で移動することを仮定すると、合成速度の大きさは図３２に示すように５００ｍｍ／ｍｉｎとなる。
【００６２】
補正方向は進行方向の左側であるため、刃先Ｒ補正または工具径補正の補正量をｒ［ｍｍ］とした場合、Ｘ軸方向およびＹ軸方向の補正量は次のようになる。  
・Ｘ軸方向の補正量：-ｒ＊３００／５００［ｍｍ］  
・Ｙ軸方向の補正量： ｒ＊４００／５００［ｍｍ］  
上記より、補正方向を進行方向の左側とした場合の補正量は、下記のように表される。
（Ｘ軸方向の補正量）＝-ｒ＊（Ｙ軸速度）／（（Ｘ軸速度）2＋（Ｙ軸速度）2））1/2
（Ｙ軸方向の補正量）＝ ｒ＊（Ｘ軸速度）／（（Ｘ軸速度）2＋（Ｙ軸速度）2））1/2
同様に、補正方向を進行方向の右側とした場合の補正量は、下記のように表される。
（Ｘ軸方向の補正量）＝ ｒ＊（Ｙ軸速度）／（（Ｘ軸速度）2＋（Ｙ軸速度）2））1/2
（Ｙ軸方向の補正量）＝-ｒ＊（Ｘ軸速度）／（（Ｘ軸速度）2＋（Ｙ軸速度）2））1/2
【００６３】
＜工具の進行方向の変化を検知する手段＞  
（図２９のステップＳＡ２０３、図３０のステップＳＡ３００、図３１のステップＳＡ５００を参照）  
次に、工具の進行方向の変化を検知する手段について説明する。補正を行う平面における工具の進行方向は、平面を構成する２軸の単位時間あたりの移動量により判断できる。
【００６４】
単位時間あたりの移動量が（Ｘ，Ｙ）＝（０．５，１．０）の場合と、（Ｘ，Ｙ）＝（１．０，２．０）の場合は、進行方向は同じと判断できる。一方、単位時間あたりの移動量が（Ｘ，Ｙ）＝（０．５，１．０）の場合と、（Ｘ，Ｙ）＝（２．０，１．０）の場合は、進行方向は異なると判断できる。
【００６５】
従って、工具の進行方向の変化を検出する手段は、以下の方法で実現できる。  
（１）補正を行う平面を構成する２軸（Ｘ軸とＹ軸）について、テーブル形式データを先読みし、数値制御装置の制御周期毎の移動量を算出する。  
（２）前制御周期のＸ軸とＹ軸の移動量をそれぞれＸ１，Ｙ１とし、現制御周期のＸ軸とＹ軸の移動量をそれぞれＸ２，Ｙ２とした時に、Ｘ１／Ｙ１  ＮＥＱ  Ｘ２／Ｙ２となる点を工具の進行方向の変化する点とみなす。なお、ＮＥＱは不等号を意味する。
【００６６】
また、工具がワークの内側を回る場合と工具がワークの外側を回る場合を区別するために必要な、プログラム経路交点のワーク側角度については、工具の変更点の前後のプログラム経路のベクトルの内積の演算に基づき、ワーク側の角度を求めることができる。
【００６７】
＜刃先Ｒ補正または工具径補正の工具の中心経路の交点Ｓを算出する手段＞
次に、図３３を用いて、本発明に係る刃先Ｒ補正または工具径補正の中心経路の交点Ｓを算出する手段を説明する。図３３に示されるようにワーク４の内側を工具２が回る場合を考える。
【００６８】
最初に、Ｌ０からＬ６までの座標値から、進行方向変更前の刃先Ｒ中心経路と、進行方向変更後の刃先Ｒ中心経路を、数式で表す。ここでは、進行方向変更前後の中心経路の数式を下記とする。  
変更前の中心経路の数式：ｙ＝ｘ＋１．０
変更後の中心経路の数式：ｙ＝１０．０
この時の交点Ｓの座標値は、進行方向変更前後の中心経路の連立方程式を解くことによって得られる。交点Ｓ＝（９．０，１０．０）
上記より、進行方向変更前後の中心経路の数式を
・変更前の中心経路の数式：ｙ＝ａ1＋ｂ1
・変更後の中心経路の数式：ｙ＝ａ2＋ｂ2
とした場合の交点Ｓの座標値は、以下のように表される。  
交点Ｓ＝（（ｂ2−ｂ1）／（ａ1−ａ2），（ａ1ｂ2−ａ2ｂ1）／（ａ1−ａ2））
【００６９】
＜プログラム経路に無い移動を行う区間の始点と終点を算出する手段＞
次に、図３４を用いて、本発明に係るプログラム経路に無い移動を行う区間の始点と終点を算出する手段を説明する。
【００７０】
工具がワークの外側を回る場合を考える。図３４に示されるように、プログラム経路に無い移動を行う区間の始点は、進行方向変更前のプログラム経路の終点Ｌ３に対し、刃先Ｒ補正または工具径補正を行った点であるＬ３ｓとなる。同様に終点は、進行方向変更後のプログラム経路の終点Ｌ３に対し、刃先Ｒ補正または工具径補正を行った点であるＬ３ｅとなる。  
Ｌ３ｓおよびＬ３ｅの座標値は、前記各軸の補正量を算出する手段により算出可能である。Ｌ３ｓとＬ３ｅの間の移動経路に関しては、次の方法が考えられる。  
・前記刃先Ｒ補正または工具径補正の中心経路の交点Ｓを算出する手段と同様に、進行方向変更前後の中心経路の式から交点Ｓを求め、交点Ｓを経由して移動を行う方法。
・Ｌ３を中心とし、始点と終点をそれぞれＬ３ｓとＬ３ｅとする、半径Ｒの円弧で移動する方法。
【００７１】
次に、図３５を用いて、本発明に係るテーブル形式データ（パステーブル運転データ）での制御における刃先Ｒ補正または工具径補正の機能を備えた数値制御装置を説明する。図３５は、本発明の一実施形態の数値制御装置の要部ブロック図である。図３５に示される数値制御装置によって、上述したフローチャートに基づくプログラムを実行することにより、刃先Ｒ補正または工具径補正を行うことが可能なパステーブル運転を実行できる。
【００７２】
ＣＰＵ５１は数値制御装置５０を全体的に制御するプロセッサである。ＣＰＵ５１は、ＲＯＭ５２に格納されたシステムプログラムをバス５９を介して読み出し、該システムプログラムに従って数値制御装置全体を制御する。ＲＡＭ５３には一時的な計算データや表示データ及び表示器／ＭＤＩユニット９０を介してオペレータが入力した各種データが格納される。
【００７３】
ＳＲＡＭメモリ５４は図示しないバッテリでバックアップされ、数値制御装置５０の電源がオフにされても記憶状態が保持される不揮発性メモリとして構成される。ＳＲＡＭメモリ５４中には、図示しないインタフェースを介して読み込まれた加工プログラムや表示器／ＭＤＩユニット９０を介して入力された加工プログラム等が記憶される。
【００７４】
さらに、前述したテーブル形式データ（パステーブル）が予め格納されている。また、ＲＯＭ５２には、加工プログラムの作成及び編集のための処理を実施するための各種システムプログラムがあらかじめ書き込まれている。
【００７５】
ＰＭＣ（プログラマブル・マシン・コントローラ）５５は、数値制御装置５０に内蔵されたシーケンスプログラムで工作機械の補助装置にＩ／Ｏユニット５６を介して信号を出力し制御する。また、工作機械の本体に配備された操作盤の各種スイッチ等の信号を受け、必要な信号処理をした後、ＣＰＵ５１に渡す。
【００７６】
表示器／ＭＤＩユニット９０は、ディスプレイやキーボード等を備えた手動データ入力装置であり、インタフェース５７は表示器／ＭＤＩユニット９０のキーボードからの指令，データを受けてＣＰＵ５１に渡す。インタフェース５８は、操作盤９１に接続され、操作盤９１からの各種指令を受け取るようになっている。
【００７７】
各軸の軸制御回路６０、７０は、ＣＰＵ５１からの各軸の移動指令量を受けて、各軸の指令をサーボアンプ６１、７１に出力する。サーボアンプ６１、７１はこの指令を受けて、Ｘ軸，Ｙ軸の各軸のサーボモータ１０５ｘ，１０５ｙを駆動する。各軸のサーボモータ１０５ｘ，１０５ｙは、位置・速度検出器を内蔵し、この位置・速度検出器からの位置、速度フィードバック信号を軸制御回路６０、６１にフィードバックし、位置・速度フィードバック制御を行う。なお、図３５では、位置・速度フィードバックについて省略している。
【００７８】
また、スピンドル制御回路８０は、主軸回転指令を受け、スピンドルアンプ８１にスピンドル速度信号を出力する。スピンドルアンプ８１はスピンドル速度信号を受けて、スピンドルモータ８２を指令された回転速度で回転させる。位置・速度検出器８３は、スピンドルモータ８２の回転に同期して帰還パルス（基準パルス）及び１回転信号をスピンドル制御回路８０にフィードバックし、速度制御を行う。この帰還パルス（基準パルス）及び１回転信号は、スピンドル制御回路８０を介してＣＰＵ５１によって読み取られ、帰還パルス（基準パルス）はＲＡＭ５３に設けたカウンタ（図示せず）で計数される。
【００７９】
本発明の実施形態では、主軸に取り付けた位置・速度検出器からの帰還パルスを基準パルスとし、主軸を基準軸、Ｘ軸（１０５ｘ），Ｙ軸（１０５ｙ）を制御軸とする例を示している。制御軸としてはこれらに限定されるものではなく、さらに増加してもよい。増加する場合、増加する制御軸のテーブル形式データ（パステーブル）を不揮発性メモリであるＳＲＡＭ５４に格納し、軸制御回路、サーボアンプ、サーボモータを増加すればよいことになる。
【００８０】
また、主軸を基準軸とせず、時間や、外部に基準軸を設けて、該基準軸の移動等に伴ってパルスを発生させ、このパルスを基準パルスとする時には、この基準パルスを計数するカウンタを設ければよい。あるいは、制御軸を基準軸としてもよい。この実施形態では、不揮発性メモリであるＳＲＡＭ５４に、図６、図１１、図１８などに示されるテーブル形式データ（パステーブル運転データ）が格納されている。そして、ＳＲＡＭ５４に記憶されているテーブル形式データで記述されている加工プログラムを実行する。
【符号の説明】
【００８１】
２  工具
３  工具
４  ワーク
６  加工形状
８  刃先Ｒ中心点
５０  数値制御装置
５１  ＣＰＵ
５２  ＲＯＭ
５３  ＲＡＭ
５４  ＳＲＡＭ
５５  プログラマブル・マシン・コントローラ
５６  Ｉ／Ｏユニット
５７，５８  インタフェース
５９  バス
６０  軸制御回路
６１  サーボアンプ
７０  軸制御回路
７１  サーボアンプ
８０  スピンドル制御回路
８１  スピンドルアンプ
８２  スピンドルモータ
８３  位置・速度検出器
９０  表示器／ＭＤＩユニット
９１  操作盤
１０１  カウンタ
１０２  乗算器
１０３  基準位置カウンタ
１０５ｘ  ｘ軸サーボモータ
１０５ｙ  ｙ軸サーボモータ
Ｓ  交点
【図１】
2011237885.tif 000003
【図２】
2011237885.tif 000004
【図３】
2011237885.tif 000005
【図４】
2011237885.tif 000006
【図５】
2011237885.tif 000007
【図６】
2011237885.tif 000008
【図７】
2011237885.tif 000009
【図８】
2011237885.tif 000010
【図９】
2011237885.tif 000011
【図１０】
2011237885.tif 000012
【図１１】
2011237885.tif 000013
【図１２】
2011237885.tif 000014
【図１３】
2011237885.tif 000015
【図１４】
2011237885.tif 000016
【図１５】
2011237885.tif 000017
【図１６】
2011237885.tif 000018
【図１７】
2011237885.tif 000019
【図１８】
2011237885.tif 000020
【図１９】
2011237885.tif 000021
【図２０】
2011237885.tif 000022
【図２１】
2011237885.tif 000023
【図２２】
2011237885.tif 000024
【図２３】
2011237885.tif 000025
【図２４】
2011237885.tif 000026
【図２５】
2011237885.tif 000027
【図２６】
2011237885.tif 000028
【図２７】
2011237885.tif 000029
【図２８】
2011237885.tif 000030
【図２９】
2011237885.tif 000031
【図３０】
2011237885.tif 000032
【図３１】
2011237885.tif 000033
【図３２】
2011237885.tif 000034
【図３３】
2011237885.tif 000035
【図３４】
2011237885.tif 000036
【図３５】
2011237885.tif 000037
【図３６】
2011237885.tif 000038
【図３７】
2011237885.tif 000039