(57)【要約】ＣＰＵ４１は次のブロックを読み込み（Ｓ１）、読み込んだブロックが工具先端点制御終了指令「G49」であるか否かを判断する（Ｓ２）。工具先端点制御終了指令「G49」であると判断した場合は、工具先端点制御を終了する。工具先端点制御終了指令「G49」でないと判断した場合は、読み込んだブロックが座標系変換指令「P1」であるか否かを判断する（Ｓ３）。次に、座標系変換指令「P1」でないと判断した場合は、座標系変換を行うことなく、当該ブロックの指令に従って工具先端点制御を行う（Ｓ１１）。次に、Ｓ１に戻り、Ｓ１以下の処理を実行する。座標系変換指令「P1」であると判断した場合は、当該ブロックの非機械座標系上の始点(xs, ys, zs, bs, cs)、終点(xe, ye, ze, be, ce)を、それぞれ機械座標系上の始点(Xs, Ys, Zs, Bs, Cs)、終点(Xe, Ye, Ze, Be, Ce)に変換する（Ｓ４）。
2010095164.tif 000002
【特許請求の範囲】
【請求項１】
加工プログラムに基づいて複数の直線移動軸とテーブルを回転させる回転移動軸を少なくとも１軸有する工作機械を制御して、前記テーブルに固定されたワークを工具により加工するための数値制御装置において、
中央処理装置と、
加工動作にかかる補間指令と予め定義された指令コードが付された非加工動作にかかる非機械座標系上の補間指令とを含む加工プログラムを記録する記録媒体と、
前記補間指令に基づいて前記中央処理装置が求めた前記各軸に対応する移動量に従って前記各軸に対応するサーボモータを駆動するサーボアンプと、
を備えることを特徴とする数値制御装置。
【請求項２】
前記指令コードは、前記指令コードが付された前記非加工動作にかかる非機械座標系上の補間指令を機械座標系上の補間指令へ変換することを指令するためのものであることを特徴とする請求項１記載の数値制御装置。
【請求項３】
複数の直線移動軸とテーブルを回転させる回転移動軸を少なくとも１軸有する工作機械を制御して、前記テーブルに固定されたワークを工具により加工するための数値制御装置の制御方法において、
加工プログラムに含まれる補間指令を読み込む補間指令読込ステップと、
前記補間指令読込ステップで読み込まれた補間指令が非加工動作にかかる非機械座標系上の補間指令であるか否かを判断する補間指令判断ステップと、
前記補間指令判断ステップにて前記補間指令が非加工動作にかかる非機械座標系上の補間指令でないと判断した場合、前記補間指令に従って前記各移動軸に対応するサーボモータを駆動する第１の駆動ステップと、
前記補間指令判断ステップにて前記補間指令が非加工動作にかかる非機械座標系上の補間指令であると判断した場合、前記補間指令を機械座標系上の補間指令へ変換し、前記補間指令における始点座標から終点座標までを、前記工具が直線軌道上を補間により移動するように、前記各移動軸に対応するサーボモータを駆動する第２の駆動ステップと、
を備えることを特徴とする数値制御装置の制御方法。
【請求項４】
前記補間指令判断ステップでは、前記補間指令読込ステップで読み込まれた補間指令に前記補間指令を非機械座標系上の補間指令から機械座標系上の補間指令へ変換する座標系変換指令が付されているか否かを判断することを特徴とする請求項３記載の数値制御装置の制御方法。
【請求項５】
加工プログラムに基づいて複数の直線移動軸とテーブルを回転させる回転移動軸を少なくとも１軸有する工作機械を制御して、前記テーブルに固定されたワークを工具により加工するための数値制御装置の中央処理装置に実行させるためのシステムプログラムにおいて、
加工プログラムに含まれる補間指令を読み込む補間指令読込ステップと、
前記補間指令読込ステップで読み込まれた補間指令に前記補間指令を非機械座標系上の補間指令から機械座標系上の補間指令へ変換する座標系変換指令が付されているか否かを判断する座標系変換指令判断ステップと、
前記座標系変換指令判断ステップにて前記補間指令に前記座標系変換指令が付されていないと判断した場合、前記補間指令に従って前記各移動軸に対応する第１の移動量を求める第１の補間ステップと、
前記座標系変換指令判断ステップにて前記補間指令に前記座標系変換指令が付されていると判断した場合、前記補間指令を機械座標系上の補間指令に変換し、前記変換された補間指令に従って前記各移動軸に対応する第２の移動量を求める第２の補間ステップと、
前記第１の移動量または前記第２の移動量に基づいて対応する前記各移動軸のサーボモータを駆動する駆動ステップと、
を前記中央処理装置に実行させることを特徴とするシステムプログラム。
【請求項６】
前記第２の補間ステップは、前記座標系変換指令が付された補間指令における非機械座標系上の始点座標および終点座標を、それぞれ機械座標系上の始点座標および終点座標に変換することを特徴とする請求項５記載のシステムプログラム。
【請求項７】
前記座標系変換指令が付された補間指令は、非加工動作にかかる非機械座標系上の補間指令であること特徴とする請求項５または６に記載のシステムプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、加工プログラムに基づいて複数の直線移動軸とテーブルを回転させる回転移動軸を少なくとも１軸有する工作機械を制御して、前記テーブルに固定されたワークを工具により加工するための数値制御装置、数値制御装置の制御方法、及び中央処理装置に実行させるためのシステムプログラムに関する。
【背景技術】
【０００２】
従来、ワークを固定したテーブルを回転させる回転軸を少なくとも１軸有する工作機械として、複数の直線軸と１軸のテーブル回転軸とを有し、さらに少なくとも１軸のテーブル回転軸または少なくとも１軸の工具回転軸を有するものが知られている。例えば、図１に示すような、互いに直交するＸ、Ｙ、Ｚ軸の３つの直線軸によって工具２が駆動されるとともに、Ｙ軸周りの回転軸Ｂによって工具２が回転制御され、さらにＺ軸周りの回転軸Ｃによってテーブル１が制御されることによって、テーブル１に載置固定されたワーク３を加工する５軸加工機が知られている。【０００３】
そして、テーブル回転軸を少なくとも１軸有する工作機械では、テーブルの回転によって回転されるワークに対して工具が加工プログラムによって指令された軌跡及び速度で移動するのを担保するため、予め工作機械に設定された機械座標系とは異なる座標系上で工具を移動させる場合がある。例えば加工プログラムが指令するワーク上の軌跡及び速度と工具先端点（工具の刃先位置）のワーク上の軌跡及び速度とが一致するように制御される工具先端点制御では、機械座標系の他に、テーブルに固定されテーブルの回転とともに回転するテーブル座標系、又はテーブルの回転とともに回転しないワーク座標系上で工具を移動させる。【０００４】
例えば特許文献１では、テーブル座標系上で補間を行うことによって、ワーク上に直線を切削加工する工具先端点制御が開示されている。【０００５】
一般的に数値制御装置は、Ｇコードと呼ばれる指令のコードを用いて書かれた加工プログラムに従い、Ｘ、Ｙ、Ｚ、Ｂ、Ｃ軸等を駆動するサーボモータを回転させるサーボアンプに指令を与える。加工プログラムに指令される動作は、加工動作と加工動作以外の動作（以下、非加工動作と呼ぶ）の２通りがある。加工動作は工具が直接ワークを切削加工等する動作であり、非加工動作は例えばワークの割り出しのためのテーブル回転軸の位置決めや、ワークに穴を開ける位置まで工具を移動させる動作や、工具をワークへ接近させる動作などがある。【０００６】
以下の加工プログラムは、工具先端点制御における非加工動作指令の一例であり、ワークの反対側の面を割り出すためのテーブル座標系上のＣ軸の位置決め指令を示している。なお、説明を簡単にするため、切削加工などの加工指令は示されていない。また、テーブル回転軸であるC軸の位置は、予め0度にあるとする。
＜従来の加工プログラム例１＞
N100 G28 XYZ   ：機械原点への復帰
N200 G54 G00 X100. Y100.     ：ワーク座標系選択、始点への位置決め
N300 G43.4      ：工具先端点制御開始
N400 G00 C180.                      ：（テーブル座標系）位置決め
N500 G49          ：工具先端点制御終了
【０００７】
上記の「従来の加工プログラム例１」により、工作機械は図２のように動作する。なお、図２はＺ軸+方向から見た図であり、テーブル１には図示しないワーク３が載置固定されている。Ｎ１００のブロックにおいて、「G28」は機械原点への復帰指令のコードであり、図２の(a)に示すように、工具２は機械座標系上の原点(0.0, 0.0, 0.0)にまで移動する。またＮ２００のブロックにおいて、「G54」はワーク座標系選択指令のコードである。Ｎ２００のブロックにおいて、「G00」は位置決め指令のコードであり、非加工動作時に指令した終点まで工具またはテーブルを速く移動させたい場合に用いられる指令である。したがってＮ２００のブロックは、図２の(b)に示すように、ワーク座標系上の終点(100.0, 100.0, 0.0)まで工具２を移動させる指令である。ここで、図２の太線矢印は工具２の軌跡を示しており、また、便宜のためワーク座標系上の位置(100.0, 100.0, 0.0)はベクトルで示している。そして、Ｎ２００のブロックの終点は、次のＮ３００のブロックによって開始される工具先端点制御の始点となる。Ｎ３００のブロックにおいて、「G43.4」は工具先端点制御開始指令のコードであり、以後、工具先端点制御終了指令のコードである「G49」のブロックが読み込まれるまでは、工具先端点制御が実行される。【０００８】
Ｎ４００のブロックは、図２の(c)に示すように、位置決め指令コード「G00」によってＣ軸の終点を180度とし、当該終点までＣ軸を回転させるテーブル座標系上の位置決め指令である。したがってC軸は始点0度から終点180度まで、180度回転する。このとき、工具２はテーブル１との相対位置を保持しながら、テーブル１のＣ軸周りの回転に追従するため、太線矢印で示す円弧軌跡上を移動する。Ｎ５００のブロックにおいて、「G49」は工具先端点制御終了指令のコードであり、工具先端点制御が終了する。【０００９】
上記「従来の加工プログラム例１」のＮ４００のブロックのように、テーブル座標系上の指令では、テーブル回転軸及び工具先端点を終点まで移動させるためには、テーブル回転軸の終点のみを指令すればよい。したがって加工プログラムの作成が容易である。このように工具先端点制御では、加工動作だけでなく、非加工動作でも、機械座標系とは異なる座標系（以下、非機械座標系と呼ぶ）上の指令がされる場合が多い。【００１０】
しかしながら、上記のような非機械座標系上の指令がされると、テーブルが回転し、工具先端点は始点から終点まで円弧軌道上を移動するため、工具先端点は始点から終点までを結ぶ直線軌道上を移動しない。このため、加工プログラムを作成する者や工作機械を操作する者にとっては、特に非加工動作時において、テーブルの回転に伴って工具がどのように移動するかを予測することができず、工具がソフトリミットの範囲から逸脱して移動する恐れや、工具が周辺の機器等と干渉する恐れがある。【００１１】
一方、非加工動作時にはテーブルと工具の相対位置を保持する必要はない。したがって、上記のような問題を解決するためには、工具が始点から終点までを結ぶ直線軌道上を移動すればよい。しかし非機械座標系上の指令で工具を上記のように移動させるためには、上記「従来の加工プログラム例１」のＮ４００のブロックの代わりに、上記直線軌道上の微小線分ごとの位置をそれぞれ終点として指令する複数のブロックに置き換えることができるが、加工プログラムのブロック数が増大してしまう。【００１２】
また、工具を直線軌道上で移動させるために、「従来の加工プログラム例１」の代わりに以下の加工プログラムを作成することができる。以下の加工プログラムは、工具先端点制御における非加工動作指令の一例であり、機械座標系上のワークの反対側の面を割り出すための工具及びＣ軸の位置決め指令を示している。
＜従来の加工プログラム例２＞
N100 G28 XYZ   ：機械原点への復帰
N200 G54 G00 X100. Y100.     ：ワーク座標系選択、始点への位置決め
N300 G43.4      ：工具先端点制御開始
N400 G53 X-210. Y-150. C180.                      ：（機械座標系）位置決め
N500 G49          ：工具先端点制御終了
【００１３】
この「従来の加工プログラム例２」が「従来の加工プログラム例１」と相違する点は、Ｎ４００のブロックにおいて、「従来の加工プログラム例１」では「G00 C180.」であったが、「従来の加工プログラム例２」では「G53 X-210. Y-150. C180.」であることである。上記の「従来の加工プログラム例２」のＮ４００のブロックにより、工作機械は図３のように動作する。なお、図３はＺ軸+方向から見た図であり、テーブル１には図示しないワーク３が載置固定されている。このＮ４００のブロック以外のブロックは同じである。【００１４】
この「従来の加工プログラム例２」のＮ４００のブロックにおいて、「G53」は機械座標系選択指令のコードである。したがってＮ４００のブロックでは、図３に示すように、位置決め指令コード「G00」によってＣ軸の終点を180度とし、当該終点までＣ軸を回転させるとともに、機械座標系上の(-210.0, -150.0, 0.0)にまで工具２を移動させる位置決め指令である。この機械座標系上の(-210.0, -150.0, 0.0)は、「従来の加工プログラム例１」のＮ４００のブロックの工具２の機械座標系上の終点である。したがって「従来の加工プログラム例１」のＮ４００のブロックと「従来の加工プログラム例２」のＮ４００のブロックとは、機械座標系上の始点及び終点が同じであるが、前者は始点から終点まで工具２がテーブル１との相対位置を保持しながら円弧軌道上を移動するのに対し、後者は始点から終点まで工具２がテーブル１との相対位置を保持せずに直線軌道上を移動する。【００１５】
【特許文献１】特開2003-195917号公報
【発明の開示】
【発明が解決しようとする課題】
【００１６】
従来の数値制御装置によれば、上記の「従来の加工プログラム例２」のように、テーブル１の回転を伴う機械座標系上の位置決めを指令をする場合、加工プログラムを作成する者が機械座標系上の工具２の終点(-210.0, -150.0, 0.0)を予め求めた上で、求めた終点を当該加工プログラムにおいて指定する必要があるが、当該終点を求めるには手間やコストを要するという問題があった。
【課題を解決するための手段】
【００１７】
上記の課題を解決するために、本発明にかかる数値制御装置は、加工プログラムに基づいて複数の直線移動軸とテーブルを回転させる回転移動軸を少なくとも１軸有する工作機械を制御して、前記テーブルに固定されたワークを工具により加工するための数値制御装置において、中央処理装置と、加工動作にかかる補間指令と予め定義された指令コードが付された非加工動作にかかる非機械座標系上の補間指令とを含む加工プログラムを記録する記録媒体と、前記補間指令に基づいて前記中央処理装置が求めた前記各軸に対応する移動量に従って前記各軸に対応するサーボモータを駆動するサーボアンプと、を備えることを特徴とする。【００１８】
また、つぎの発明にかかる数値制御装置は、前記指令コードは、前記指令コードが付された前記非加工動作にかかる非機械座標系上の補間指令を機械座標系上の補間指令へ変換することを指令するためのものであることを特徴とする。【００１９】
また、本発明にかかる数値制御装置の制御方法は、複数の直線移動軸とテーブルを回転させる回転移動軸を少なくとも１軸有する工作機械を制御して、前記テーブルに固定されたワークを工具により加工するための数値制御装置の制御方法において、加工プログラムに含まれる補間指令を読み込む補間指令読込ステップと、前記補間指令読込ステップで読み込まれた補間指令が非加工動作にかかる非機械座標系上の補間指令であるか否かを判断する補間指令判断ステップと、前記補間指令判断ステップにて前記補間指令が非加工動作にかかる非機械座標系上の補間指令でないと判断した場合、前記補間指令に従って前記各移動軸に対応するサーボモータを駆動する第１の駆動ステップと、前記補間指令判断ステップにて前記補間指令が非加工動作にかかる非機械座標系上の補間指令であると判断した場合、前記補間指令を機械座標系上の補間指令へ変換し、前記補間指令における始点座標から終点座標までを、前記工具が直線軌道上を補間により移動するように、前記各移動軸に対応するサーボモータを駆動する第２の駆動ステップと、を備えることを特徴とする。【００２０】
また、つぎの発明にかかる数値制御装置の制御方法は、前記補間指令判断ステップでは、前記補間指令読込ステップで読み込まれた補間指令に前記補間指令を非機械座標系上の補間指令から機械座標系上の補間指令へ変換する座標系変換指令が付されているか否かを判断することを特徴とする。【００２１】
また、本発明にかかるシステムプログラムは、加工プログラムに基づいて複数の直線移動軸とテーブルを回転させる回転移動軸を少なくとも１軸有する工作機械を制御して、前記テーブルに固定されたワークを工具により加工するための数値制御装置の中央処理装置に実行させるためのシステムプログラムにおいて、加工プログラムに含まれる補間指令を読み込む補間指令読込ステップと、前記補間指令読込ステップで読み込まれた補間指令に前記補間指令を非機械座標系上の補間指令から機械座標系上の補間指令へ変換する座標系変換指令が付されているか否かを判断する座標系変換指令判断ステップと、前記座標系変換指令判断ステップにて前記補間指令に前記座標系変換指令が付されていないと判断した場合、前記補間指令に従って前記各移動軸に対応する第１の移動量を求める第１の補間ステップと、前記座標系変換指令判断ステップにて前記補間指令に前記座標系変換指令が付されていると判断した場合、前記補間指令を機械座標系上の補間指令に変換し、前記変換された補間指令に従って前記各移動軸に対応する第２の移動量を求める第２の補間ステップと、前記第１の移動量または前記第２の移動量に基づいて対応する前記各移動軸のサーボモータを駆動する駆動ステップと、を前記中央処理装置に実行させることを特徴とする。【００２２】
また、つぎの発明にかかるシステムプログラムは、前記第２の補間ステップは、前記座標系変換指令が付された補間指令における非機械座標系上の始点座標および終点座標を、それぞれ機械座標系上の始点座標および終点座標に変換することを特徴とする。【００２３】
また、つぎの発明にかかるシステムプログラムは、前記座標系変換指令が付された補間指令は、非加工動作にかかる非機械座標系上の補間指令であること特徴とする。
【発明の効果】
【００２４】
本発明は、加工プログラムを実行する過程で、非機械座標系上の指令を機械座標系上の指令へ変換することができるため、加工プログラムの作成者が加工プログラムを作成する際に、テーブルの回転を指令するブロックの機械座標系上の終点を求める必要がなく、工具がソフトリミットの範囲から逸脱して移動する恐れや、工具が周辺の機器等と干渉する恐れの無い加工プログラムを、容易かつ低コストで作成することができる。
【図面の簡単な説明】
【００２５】
【図１】５軸加工機の一例を示す図である。
【図２】＜従来の加工プログラム例１＞に従った工作機械の動作説明図である。
【図３】＜従来の加工プログラム例２＞または＜本発明の加工プログラム例＞に従った工作機械の動作説明図である。
【図４】本実施例にかかる数値制御装置４０の構成を示すブロック図である。
【図５】本実施例にかかる数値制御装置４０の動作を示すフローチャートである。
【符号の説明】
【００２６】
１  テーブル
２  工具
３  ワーク
４０  数値制御装置
４１  ＣＰＵ
４２  ＲＯＭ
４３  加工プログラム記憶部
５０〜５４  移動量出力部
６０〜６４  サーボアンプ
【発明を実施するための最良の形態】
【００２７】
本発明に係る第１の実施例を、図４及び図５を参照して説明する。図４は、本実施例にかかる数値制御装置４０の構成を示すブロック図である。図５は、本実施例にかかる数値制御装置４０の動作を示すフローチャートである。【００２８】
図４において、４０は数値制御装置である。ＣＰＵ(Central Processing Unit)４１は、ＲＯＭ(Read-Only Memory)４２に格納されたシステム・プログラムをバス４５を介して読み出し、当該システム・プログラムに従って数値制御装置４０全体を制御する。記録媒体であるＲＡＭ(Random-Access Memory)で構成される加工プログラム記憶部４３は、Ｉ／Ｆ(Interface)部４４または手動データ入力装置４６を介して入力された加工プログラム等を記憶する。Ｉ／Ｆ部４４は、数値制御装置４０とＦＣＡ(Fiber Cable Adapter)等の外部機器４５との間の接続を可能にする。ＣＲＴ／ＭＤＩ(Cathode Ray Tube / Multiple Document Interface)等の手動データ入力装置４６は、ディスプレイやキーボード等を備えている。【００２９】
加工プログラムは、例えば以下のようなものが入力される。以下の加工プログラムは、工具先端点制御における非加工動作指令の一例であり、座標系変換指令およびワークの反対側の面を割り出すためのＣ軸の位置決め指令を示している。なお、説明を簡単にするため、切削加工などの加工指令は示されていない。また、テーブル回転軸であるC軸の位置は、予め0度にあるとする。
＜本発明の加工プログラム例＞
N100 G28 XYZ   ：機械原点への復帰
N200 G54 G00 X100. Y100.     ：ワーク座標系選択、始点への位置決め
N300 G43.4      ：工具先端点制御開始
N400 G00 C180. P1                ：位置決め、座標系変換
N500 G49          ：工具先端点制御終了
【００３０】
この「本発明の加工プログラム例」が「従来の加工プログラム例１」および「従来の加工プログラム例２」と相違する点は、Ｎ４００のブロックにおいて、「従来の加工プログラム例１」では「G00 C180.」であり、「従来の加工プログラム例２」では「G53 X-210. Y-150. C180.」であったが、「本発明の加工プログラム例」では「G00 C180. P1」であることである。上記の「本発明の加工プログラム例」のＮ４００のブロックにより、工作機械は図３のように動作する。このＮ４００のブロック以外のブロックは同じである。【００３１】
この「本発明の加工プログラム例」のＮ４００のブロックにおいて、指令コードである「P1」は非機械座標系上の指令を機械座標系上の指令に変換する座標系変換指令のコードである。Ｎ４００のブロックでは、C軸の終点を180度とし、当該終点までC軸を回転させるテーブル座標系上の位置決め指令「G00 C180.」が、機械座標系上の指令に変換される。【００３２】
図４において、それぞれＸ、Ｙ、Ｚ、Ｂ、Ｃ軸に対応する移動量出力部５０〜５４は、ＣＰＵ４１が求める工具２及びテーブル１の現在位置から補間点位置までの移動量を、それぞれサーボアンプ６０〜６４に出力する。各軸に対応するサーボアンプ６０〜６４は、移動量出力部５０〜５４が出力する移動量に従ってそれぞれ各軸のサーボモータ７０〜７４を回転させる。各軸に対応するサーボモータ７０〜７４は、それぞれ工作機械のＸ、Ｙ、Ｚ、Ｂ、Ｃ軸を駆動する。また、主軸速度出力部５５は、ＣＰＵ４１が指令する指令回転速度を主軸アンプ６５に出力する。主軸モータ７５は、主軸アンプ６５が出力する指令回転速度に従って主軸モータ７５を回転させる。主軸モータ７５は、工具２の主軸２aを回転させる。【００３３】
次に、数値制御装置４０の動作を説明する。ＣＰＵ４１は、加工プログラム記憶部４３に記憶された加工プログラムを１ブロックずつ読み、読み込んだブロックが工具先端点制御開始指令「G43.4」であるか否かを判断する。工具先端点制御開始指令「G43.4」でないと判断した場合は、当該ブロックの指令に従って工具先端点制御以外の制御、例えば機械原点への復帰、始点への位置決め、ワーク設置誤差補正などの制御を行う。【００３４】
工具先端点制御開始指令「G43.4」であると判断したは場合は、図５に示す処理を行う。図５は、ＣＰＵ４１が工具先端点制御開始指令「G43.4」を読み込んだ後に行われる処理を示すフローチャートである。まず、ＣＰＵ４１は次のブロックを読み込み（Ｓ１）、読み込んだブロックが工具先端点制御終了指令「G49」であるか否かを判断する（Ｓ２）。工具先端点制御終了指令「G49」であると判断した場合は、工具先端点制御を終了する。工具先端点制御終了指令「G49」でないと判断した場合は、読み込んだブロックが座標系変換指令「P1」であるか否かを判断する（Ｓ３）。【００３５】
次に、座標系変換指令「P1」でないと判断した場合は、座標系変換を行うことなく、当該ブロックの指令に従って工具先端点制御を行う（Ｓ１１）。次に、Ｓ１に戻り、Ｓ１以下の処理を実行する。座標系変換指令「P1」であると判断した場合は、当該ブロックの非機械座標系上の始点(xs, ys, zs, bs, cs)、終点(xe, ye, ze, be, ce)を、それぞれ機械座標系上の始点(Xs, Ys, Zs, Bs, Cs)、終点(Xe, Ye, Ze, Be, Ce)に変換する（Ｓ４）。この非機械座標系上の座標を機械座標系上の座標に変換する方法は、従来から行われていた方法（例えば、特許文献１の式(18)〜(20)）と同じものでよい。【００３６】
例えば、「本発明の加工プログラム例」のＮ４００のブロックにおける座標系変換の手順は次のとおりである。まず、テーブル座標系上の始点(100.0, 100.0, 0.0, 0.0, 0.0)を、機械座標系上の始点(-90.0, -50.0, 0.0, 0.0, 0.0)に変換する。次に、テーブル座標系上の終点(100.0, 100.0, 0.0, 0.0, 180.0)を、機械座標系上の始点(-90.0, -50.0, 0.0, 0.0, 0.0)を機械座標系上のC軸の位置(-150.0, -100.0, 0.0)を回転の中心として180度回転させた後の、機械座標系上の終点(-210.0, -150.0, 0.0, 0.0, 180.0)に変換する。したがって、Ｎ４００のブロックでは、工具２は「従来の加工プログラム例２」のＮ４００のブロックと同様に、図３の太線矢印に示す直線軌跡上を移動する。【００３７】
次に、求めた機械座標系上の始点(Xs, Ys, Zs, Bs, Cs)、終点(Xe, Ye, Ze, Be, Ce)に基づいて、当該ブロックの全移動量たるブロック長Ｌを求める（Ｓ５）。ブロック長Ｌは、機械座標系上の始点(Xs, Ys, Zs, Bs, Cs)と終点(Xe, Ye, Ze, Be, Ce)とを結んだ線分の長さであり、以下の式で求めることができる。
2010095164.tif 000003
【００３８】
次に、時刻t=0における工具先端点及びテーブルの位置｛X(0), Y(0), Z(0), B(0), C(0)｝を、始点(Xs, Ys, Zs, Bs, Cs)として、以下のように設定する（Ｓ６）。
2010095164.tif 000004
【００３９】
次に、補間周期Δt毎に、現在時刻から補間周期Δt後の工具先端点の補間点位置を以下の式で求める（Ｓ７）。以下の式は、現在時刻tにおける現在位置｛X(t), Y(t), Z(t), B(t), C(t)｝と、現在時刻tから補間周期Δt後の補間時刻t+1における工具先端点の補間点位置｛X(t+1), Y(t+1), Z(t+1), B(t+1), C(t+1)｝との関係を表すものである。Ｆはワーク３に対する工具先端点の指令相対速度である。
2010095164.tif 000005
【００４０】
次に、現在時刻tから時刻t+1までの移動量である、上記式の時刻t+1における補間点位置｛X(t+1), Y(t+1), Z(t+1), B(t+1), C(t+1)｝から現在時刻tにおける現在位置｛X(t), Y(t), Z(t), B(t), C(t)｝を減じた各軸に対応する差分を、それぞれ各軸のサーボアンプ６０〜６４に出力する（Ｓ８）。次に、位置｛X(t+1), Y(t+1), Z(t+1), B(t+1), C(t+1)｝を現在位置｛X(t), Y(t), Z(t), B(t), C(t)｝として記憶し（Ｓ９）、工具先端点が当該ブロックの終点(Xe, Ye, Ze, Be, Ce)まで達したか否かをチェックする（Ｓ１０）。ここでは、例えば以下の式が成り立つか否かをチェックする。
2010095164.tif 000006
Ｓ１０において、終点(Xe, Ye, Ze, Be, Ce)まで達したと判断した場合は、次にＳ１に戻り、Ｓ１以下の処理を実行する。【００４１】
なお、本実施例では、工具先端点制御におけるテーブル座標系上の指令から機械座標系上の指令への変換について説明したが、工具先端点制御におけるワーク座標系上の指令から機械座標系上の指令への変換を行うようにしてもよい。また、非機械座標系上の指令から機械座標系上の指令への変換は、工具先端点制御ではなく、例えばワーク設置誤差補正などの、テーブル回転軸を少なくとも１軸有する工作機械によるいかなる制御にて行うようにしてもよい。【００４２】
また、本実施例では、座標系変換指令のコードとして「P1」を用いたが、指令コードはこれに限られない。例えば、新規のGコードにより指令してもよいし、アドレスを引数として渡すことにより指令するようにしてもよいし、パラメータを用いて指令するようにしてもよい。また、例えば「G00」の指令コードでは常に機械座標系で補間するようにしてもよい。すなわち、「G00」が機械座標系上の指令として与えられたブロックについては座標系変換を行わずに当該ブロックの指令に従った処理を行い、「G00」が非機械座標系上の指令として与えられたブロックについては当該指令を機械座標系へ変換した上で当該指令に従った処理を行うようにすることができる。【００４３】
また、本実施例では、数値制御装置が加工プログラムを実行中に座標系変換を行う場合について説明しているが、入力された加工プログラムの座標系変換を予め行った上で当該座標系変換済みの加工プログラムを記憶しておき、実際に加工を行う際には、当該入力された加工プログラムの代わりに当該座標系変換済みの加工プログラムを実行するようにしてもよい。これによって加工プログラム実行中における数値制御装置の処理を一部削減することができる。【００４４】
本実施例によれば、数値制御装置のＣＰＵが加工プログラムを実行する過程で、非機械座標系上の指令を機械座標系上の指令へ変換することができるため、加工プログラムの作成者が加工プログラムを作成する際に、テーブルの回転を指令するブロックの機械座標系上の終点を求める必要がなく、工具がソフトリミットの範囲から逸脱して移動する恐れや、工具が周辺の機器等と干渉する恐れの無い加工プログラムを、容易かつ低コストで作成することができる。
【図１】
2010095164.tif 000007
【図２】
2010095164.tif 000008
【図３】
2010095164.tif 000009
【図４】
2010095164.tif 000010
【図５】
2010095164.tif 000011
【国際調査報告】
2010095164.tif 000012
2010095164.tif 000013
2010095164.tif 000014
2010095164.tif 000015