以下、本発明の実施形態を図面を参照して説明する。
まず、図1及び図2を参照して、本発明の一実施形態による数値制御装置2が適用される工作機械の構成について説明する。
この工作機械は、門型の工作機械であり、テーブル102b上にセットされた被加工物としてのワーク100上で工具106をワーク座標系で表されたツールパスに沿って移動させながらその工具106によってワーク100の切削加工を行うものである。なお、前記ワーク座標系は、テーブル102b上にセットされたワーク100上に設定されるものであり、水平面内におけるテーブル102bの移送方向に平行なx軸と、水平面内においてx軸に直交するy軸と、それらx軸及びy軸の両方に直交し、鉛直方向に延びるz軸とからなる。
この工作機械は、図1に示すように、ワーク移送装置102と、2本のコラム104と、工具106と、主軸ヘッド108と、揺動装置110と、回動装置112と、第1鉛直移送装置114と、水平移送装置116と、第2鉛直移送装置118と、制御ボックス120とを備えている。なお、ワーク移送装置102、揺動装置110、回動装置112、第1鉛直移送装置114、水平移送装置116及び第2鉛直移送装置118は、ワーク100又は工具106を移送対象物としてその移送対象物をワーク100を加工するために複数の移送軸に沿って動かすものであり、それぞれ、本発明の移送装置の概念に含まれるものである。
ワーク移送装置102は、ワーク100を水平面内において特定方向に延びるX軸に沿って移送するものである。なお、X軸は、本発明の移送軸の概念に含まれるものである。このワーク移送装置102は、ベッド102aと、テーブル102bと、テーブル移送部102c(図2参照)とを有する。ベッド102aは、所定の設置場所に設置されており、テーブル102bは、X軸に沿って移動可能となるようにベッド102a上に搭載されている。テーブル102bは、その上にセットされたワーク100を下から支持する。テーブル移送部102cは、ベッド102aに設けられており、テーブル102bをX軸に沿って移送することにより、そのテーブル102b上にセットされたワーク100をX軸に沿って移送する。このテーブル移送部102cは、駆動源として図略のサーボモータを有しており、そのモータの動力によりテーブル102bを移送する。
2つのコラム104は、テーブル102bの移動方向(X軸方向)に直交するワーク移送装置102の幅方向においてそのワーク移送装置102の両側に分かれて立設されている。各コラム104は、鉛直方向(後述するW軸方向)に延びている。
工具106は、ワーク100を切削加工するためのものであり、主軸ヘッド108によって保持される。主軸ヘッド108は、保持した工具106をその軸回りに回転させる。この主軸ヘッド108によって回転させられた工具106がワーク100に当接することによってワーク100の加工が行われる。
揺動装置110は、水平軸回りのA軸に沿って工具106を揺動させるためのものである。なお、A軸は、本発明の移送軸の概念に含まれるものである。この揺動装置110は、揺動支持体110aと、揺動支持体移送部110b(図2参照)とを有する。揺動支持体110aは、水平軸回りに揺動可能となるように回動装置112に支持されている。また、揺動支持体110aは、主軸ヘッド108による工具の回転軸が当該揺動支持体110aの揺動中心である水平軸に対して直交するようにその主軸ヘッド108を支持している。揺動支持体移送部110bは、揺動支持体110aをA軸に沿って揺動させることにより、当該揺動支持体110aとともにその揺動支持体110aが支持する主軸ヘッド108及び工具106をA軸に沿って揺動させる。揺動支持体移送部110bは、駆動源として図略のサーボモータを有しており、そのモータの動力により揺動支持体110aを揺動させる。
回動装置112は、鉛直軸回りのC軸に沿って工具106を回動させるためのものである。なお、C軸は、本発明の移送軸の概念に含まれるものである。この回動装置112は、回動支持体112aと、回動支持体移送部112b(図2参照)とを有する。回動支持体112aは、鉛直軸回りに回転可能となるように第1鉛直移送装置114に支持されている。また、回動支持体112aは、その下部において揺動装置110を支持している。回動支持体移送部112bは、回動支持体112aをC軸に沿って回動させることにより、当該回動支持体112aとともにその回動支持体112aが支持する揺動装置110、主軸ヘッド108及び工具106をC軸に沿って回動させる。回動支持体移送部112bは、駆動源として図略のサーボモータを有しており、そのモータの動力により回動支持体112aを回動させる。
第1鉛直移送装置114は、X軸に直交し、鉛直方向に延びるZ軸に沿って工具106を移送するためのものである。なお、第1鉛直移送装置114は、本発明の第1移送装置の概念に含まれるものであり、Z軸は、本発明の第1移送軸の概念に含まれるものである。この第1鉛直移送装置114は、ラム114a(第1鉛直支持体)と、ラム移送部114b(図2参照)とを有する。ラム114aは、テーブル102bの上方に配置され、Z軸に沿って鉛直方向(上下方向)に移動可能となるように水平移送装置116に支持されている。また、ラム114aは、その下部によりテーブル102bよりも上方で且つ後述のクロスレール118aよりも下方の位置において回動装置112を支持している。ラム移送部114bは、ラム114aをZ軸に沿って移送することにより、当該ラム114aとともにそのラム114aが支持する回動装置112、揺動装置110、主軸ヘッド108及び工具106をZ軸に沿って移送する。ラム移送部114bは、駆動源として図略のサーボモータを有しており、そのモータの動力によりラム114aを移送する。
水平移送装置116は、X軸とZ軸の両方に直交するY軸に沿って工具106を移送するためのものである。なお、Y軸は、本発明の移送軸の概念に含まれるものである。この水平移送装置116は、サドル116a(水平支持体)と、サドル移送部116b(図2参照)とを有する。サドル116aは、テーブル102bの上方でY軸に沿って移動可能となるように第2鉛直移送装置118に支持されている。すなわち、サドル116aは、テーブル102bの上方においてテーブル102bを幅方向に横切るように移動可能となっている。また、サドル116aは、その下部により第1鉛直移送装置114を支持している。サドル移送部116bは、サドル116aをY軸に沿って移送することにより、当該サドル116aとともにそのサドル116aが支持する第1鉛直移送装置114、回動装置112、揺動装置110、主軸ヘッド108及び工具106をY軸に沿って移送する。サドル移送部116bは、駆動源として図略のサーボモータを有しており、そのモータの動力によりサドル116aを移送する。
第2鉛直移送装置118は、Z軸と平行なW軸に沿って鉛直方向に工具106を移送するためのものである。なお、第2鉛直移送装置118は、本発明の第2移送装置の概念に含まれるものであり、W軸は、本発明の第2移送軸の概念に含まれるものである。また、W軸及び前記Z軸は、共にワーク座標系のz軸と平行な移送軸であり、それらW軸及びZ軸の位置座標は、共通の座標軸成分であるz軸座標成分を含む。このため、W軸及びZ軸は、ワーク座標系のz軸の座標に対して一意的に座標が定まらない不定軸となっている。
第2鉛直移送装置118は、クロスレール118a(第2鉛直支持体)と、クロスレール移送部118b(図2参照)とを有する。クロスレール118aは、テーブル102bの上方に配置され、テーブル102bの幅方向(Y軸方向)に延びる姿勢をとるように前記2本のコラム104に掛け渡されている。このクロスレール118aは、コラム104の前面で支持されている。また、クロスレール118aは、W軸に沿って鉛直方向(上下方向)に移動可能となるようにコラム104によって支持されている。また、クロスレール118aは、水平移送装置116を支持している。
クロスレール移送部118bは、クロスレール118aをW軸に沿って移送することにより、当該クロスレール118aとともにそのクロスレール118aが支持する水平移送装置116、第1鉛直移送装置114、回動装置112、揺動装置110、主軸ヘッド108及び工具106をW軸に沿って移送する。具体的には、クロスレール移送部118bは、クロスレール118aに設けられた図略のサーボモータと、各コラム104にそれぞれ沿うように付設された図略のボールねじと、それら2本のボールねじが同期して回転するように前記サーボモータの動力を各ボールねじに伝達する図略の伝達機構とを有している。各ボールねじは、クロスレール118aの長手方向(Y軸方向)の対応する端部と螺合しており、そのボールねじの軸回りの回転に応じてクロスレール118aがW軸方向に移送される。
また、第2鉛直移送装置118は、全ての移送装置の中で最も加速性の悪い移送装置であり、その加速性は、他の移送装置102,110,112,114,116の加速性に比べて極端に悪い。すなわち、この第2鉛直移送装置118について設定されるW軸についての工具106(クロスレール118a)の移送の許容加速度は、他の移送装置102,110,112,114,116について設定される対応する移送軸についての移送対象物の移送の許容加速度に比べて極端に低い値となる。この第2鉛直移送装置118による工具106の移送の加速性の悪さは、当該第2鉛直移送装置118においてクロスレール移送部118bが移送するクロスレール118aとその上に搭載された水平移送装置116、第1鉛直移送装置114、回動装置112、揺動装置110、主軸ヘッド108及び工具106との合計重量が非常に大きいことに起因している。
制御ボックス120は、ワーク移送装置102、揺動装置110、回動装置112、第1鉛直移送装置114、水平移送装置116及び第2鉛直移送装置118の動作制御や、主軸ヘッド108の動作制御、その他、工作機械の各部の制御を行うための機能を有する。この制御ボックス120内に本実施形態による数値制御装置2が組み込まれている。
次に、本実施形態による数値制御装置2の構成について説明する。
本実施形態による数値制御装置2は、前記各移送装置102,110,112,114,116,118の移送部102c,110b,112b,114b,116b,118bに特定周期毎の指令パルスを出力することにより各移送装置102,110,112,114,116,118の数値制御を行う。この数値制御装置2は、図2に示すように、記憶部4と、メモリ5と、演算処理部6とを有する。
なお、本実施形態では、工具106の動きを、工具106の先端の軌跡と工具106の姿勢変化の軌跡とからなるツールパスと、ツールパス上の各位置に対応するW軸の位置座標の軌跡であるW軸パスとで指令することによって、工具106の動きとそれに対応する各移送軸上の位置座標の動きを確定させる。このように、工具106の動きをツールパスと併せてW軸パスで指令することによって、互いに平行な移送軸であるZ軸とW軸の移送軸座標が無数に存在するという不定問題を解消することが可能である。
記憶部4は、ワーク100の加工を指示する加工指令である加工プログラム(NCプログラム)を記憶するものである。この加工プログラムには、ワーク100の加工時に工具106の先端が通るべきワーク座標系(xyz軸座標系)での位置座標及びそのワーク座標系において工具106の姿勢(傾き)を規定する工具軸ベクトルからなる多数の指令点の情報と、その各指令点に対応するW軸上の特定点の座標の情報と、工具106の移送速度を示す工具移送速度指令とが含まれている。なお、W軸上の特定点は、ワーク100の加工時に第2鉛直移送装置118がクロスレール118aを動かして工具106をW軸に沿って動かす基準となる点である。このW軸上の各特定点の座標は、加工プログラムの作成時にその作成者が任意に指定するものである。
また、記憶部4は、ワーク100の加工時の加減速条件やその他の設定値を記憶する。加減速条件には、例えば、前記各移送軸毎に設定される移送対象物の許容速度、許容加速度及び許容ジャーク、工具106の姿勢変化を含む移動量の積算値である媒介変数の速度の上限値や、媒介変数の加速度の上限値、媒介変数のジャークの上限値などが含まれる。なお、媒介変数は、工具106の先端点の移動量に工具106の姿勢(傾き)の変化量を加味した値の積算値であり、具体的には、本実施形態では、工具106の先端点の移動量とその先端点から工具106の軸心に沿って当該工具106の基端側へ一定距離だけ離れた点の移動量との平均値からなる。また、前記その他の設定値には、W軸パスの二次微分上限値などが含まれる。また、記憶部4は、ツールパス(工具106の先端点のワーク座標系における各座標軸上の座標の軌跡及び工具106の姿勢を表すA軸上及びC軸上の座標の軌跡)とW軸パスのW軸上の座標の軌跡のそれぞれについて設定する二次微分値不連続箇所用の分配区間幅テーブルと二次微分上限値超過箇所用の分配区間幅テーブルとを記憶している。二次微分値不連続箇所用の分配区間幅テーブルは、各移送軸パスのうち媒介変数による一次微分値が連続で、二次微分値が不連続になっている箇所の一次微分値を分配する分配区間幅が、その箇所の二次微分値の差の複数の値毎に登録されたものである。また、二次微分上限値超過箇所用の分配区間幅テーブルは、各移送軸パスのうち媒介変数による二次微分値が二次微分値上限値を超えた箇所の一次微分値を分配する分配区間幅が、その箇所の二次微分値の複数の値毎に登録されたものである。
メモリ5は、各種情報を一次的に記憶するものであり、例えば、後述する補間後積算関数やその他の情報を記憶する。
演算処理部6は、各種演算処理を行うものであり、機能ブロックとして、パス導出部12と、パス補間部14と、媒介変数時間関数導出部18と、パルス補間部22と、制御部24とを有する。
パス導出部12は、記憶部4に記憶された加工プログラムを読み取り、その読み取った加工プログラムからツールパス及びW軸パスを求める。ツールパスは、ワークの加工時における工具106の動きを工具106のワーク座標系での位置座標と前記媒介変数とによって表す関数を含み、具体的には、ツールパスは、ワーク100の加工時における工具106の先端点の動きをその先端点のワーク座標系での位置座標と前記媒介変数とによって表す関数(x軸パス、y軸パス及びz軸パス)及びワーク100の加工時における工具106の姿勢変化をA軸上の位置座標及びC軸上の位置座標と前記媒介変数とによって表す関数(A軸パス及びC軸パス)からなる。また、W軸パスは、ツールパス上の各位置に対応するW軸上の特定点の動きをその特定点のW軸上の位置座標と前記媒介変数の関数によって表したものである。なお、W軸パスは、本発明の第2移送軸パスの概念に含まれるものである。
パス導出部12は、機能ブロックとしてツールパス導出部32と移送軸パス導出部34とを有している。なお、移送軸パス導出部34は、本発明の第2移送軸パス導出部の概念に含まれるものである。ツールパス導出部32は、記憶部4から読み取った加工プログラムに含まれる工具106の先端の位置座標及び工具軸ベクトルからなる指令点の情報と工具移送速度指令に基づいてツールパスを求める。また、移送軸パス導出部34は、記憶部4から読み取った加工プログラムに含まれるW軸上の特定点の座標の情報と工具移送速度指令に基づいてW軸パスを求める。
パス補間部14は、パス導出部12によって導出されたツールパス及びW軸パスをそれぞれ補間する。このパス補間部14は、機能ブロックとして、ツールパスを補間するツールパス補間部15と、W軸パスを補間する移送軸パス補間部16とを有する。
ツールパス補間部15は、ツールパス導出部32によって導出されたツールパスをそのツールパスが表す工具106の動きが滑らかになるように補間する滑らか補間を行い、ツールパスに媒介変数による二次微分値が不連続になっている箇所がある場合には、その箇所の二次微分値が連続になるように補間する局部補間を行う。このツールパス補間部15は、機能ブロックとしてツールパス滑らか補間部15aとツールパス局部フィルタ15bとを有する。
ツールパス滑らか補間部15aは、ツールパス導出部32によって導出されたツールパスを構成する、工具106の先端点のワーク座標系における各座標軸パス(x軸パス、y軸パス及びz軸パス)、前記A軸パス及び前記C軸パスのそれぞれについて前記滑らか補間を行うものである。具体的には、このツールパス滑らか補間部15aは、ツールパス導出部32によって導出されたツールパスのうち解析的に可能な範囲で指令点を通る滑らかな曲線となるように補間できる部分について、その補間を行う。このツールパス滑らか補間部15aが行う補間は、いわゆるブロック滑らか補間であり、ツールパスのうちの隣り合う指令点間の区間を指令ブロックとしてその指令ブロックと隣接する指令ブロックとがそれらの境界の指令点において滑らかに繋がるように補間するものである。詳しくは、ツールパス滑らか補間部15aは、ツールパス導出部32によって導出されたツールパスを、隣接する指令ブロックの境界の指令点の前後において媒介変数による一次微分値と二次微分値がそれぞれ連続し、かつ、その指令点を通るようなツールパスとなるように補間する。ただし、ツールパスには、媒介変数の変化に対するツールパスの軌跡の変化が急激で、このようなブロック滑らか補間によってはその軌跡の指令点を通る滑らかな曲線となるように補間できない箇所が含まれている場合がある。このような箇所としては、微小単位で増減を繰り返す異常データ部や、加工プログラムにおいて意図して指示されているコーナー部がある。また、ツールパスには、二次微分が不連続であっても、直線と円弧の接点部や、円と円の接点部などのように、当該ツールパス滑らか補間部15aでは補間せずにそのまま放置する箇所もある。ツールパス滑らか補間部15aは、ツールパスのうち以上のような箇所については補間せずに元のツールパスのまま残し、上記のように指令点を通り、その指令点の前後で媒介変数による一次微分値と二次微分値とがそれぞれ連続するような曲線に補間できる部分を滑らか補間する。
ツールパス局部フィルタ15bは、ツールパス(x軸パス、y軸パス、z軸パス、A軸パス及びC軸パス)のうちツールパス滑らか補間部15aによって補間されなかった箇所で、且つ、その箇所が示す速度(媒介変数による一次微分値)が0にならない箇所を対象として前記局部補間を行うものである。具体的には、このツールパス局部フィルタ15bは、ツールパスのうち媒介変数による一次微分値または二次微分値が不連続になっている指令点を補間対象点とする。そして、ツールパス局部フィルタ15bは、ツールパスのうち補間対象点の前後に特定の区間幅ずつ加えた区間である補間区間を当該補間対象点で二次微分値が連続となるように局部補間する。
また、ツールパス局部フィルタ15bは、ツールパス局部補間部15c及びツールパス誤差補正部15dを機能ブロックとして有している。
ツールパス局部補間部15cは、ツールパスの補間区間を前後に拡大した調整区間にかかる複数の補間ブロックのそれぞれについて補間処理を行うことにより各補間ブロックの補間後関数を求めるとともに、それらの補間後関数を積算して補間後積算関数を求め、その求めた補間後積算関数から補間区間に相当する区間を抜き出すことによって、補間区間内の補間対象点において不連続となっている微分の変化が連続的な変化となるように補間したツールパスの誤差付き補間パスを求める。また、ツールパス誤差補正部15dは、ツールパス局部補間部15cによって求められたツールパスの誤差付き補間パスの補間区間の始点に対応する値が局部補間していないツールパスの補間区間の始点の値と一致し、かつ、そのツールパス誤差付き補間パスの補間区間の終点に対応する値が局部補間していないツールパスの補間区間の終点の値に一致するように当該誤差付き補間パスを補正し、その補正後の補間パスをツールパスの補間区間と置換する。
移送軸パス補間部16は、移送軸パス導出部34によって導出されたW軸パスをそのパスが表すW軸上の特定点の座標の動きが滑らかになるように補間する滑らか補間と、その滑らか補間後のW軸パスを当該W軸パスの媒介変数による二次微分値が小さくなるように補間し、その滑らか補間後のW軸パスに媒介変数による二次微分値が不連続になっている箇所がある場合には、その箇所の二次微分値が連続になるように補間する局部補間とを行う。この移送軸パス補間部16は、本発明の第2移送軸パス補間部の概念に含まれるものである。移送軸パス補間部16は、機能ブロックとして移送軸パス滑らか補間部16aと移送軸パス局部フィルタ16bとを有する。
移送軸パス滑らか補間部16aは、移送軸パス導出部34によって導出されたW軸パスについて滑らか補間を行うものである。この移送軸パス滑らか補間部16aは、前記ツールパス滑らか補間部15aがツールパスについて行う滑らか補間と同様のブロック滑らか補間をW軸パスについて行う。
移送軸パス局部フィルタ16bは、移送軸パス導出部34によって導出されたW軸パスのうち移送軸パス滑らか補間部16aによって補間されなかった箇所と、そのW軸パスのうち媒介変数による二次微分値がW軸について設定された二次微分上限値を上回っている箇所とを対象として局部補間を行う。具体的には、この移送軸パス局部フィルタ16bは、W軸パスのうち媒介変数による二次微分値が不連続になっている指令点と、媒介変数による二次微分値が前記二次微分上限値を上回っている指令点とを補間対象点とする。そして、移送軸パス局部フィルタ16bは、W軸パスのうち補間対象点の前後に特定の区間幅ずつ加えた区間である補間区間において、その補間区間内の補間対象点で媒介変数による二次微分値が前記二次微分上限値を上回っている場合にはその二次微分値が前記二次微分上限値以下となるように当該補間区間を局部補間し、その補間区間内の補間対象点で媒介変数による二次微分値が不連続になっている場合にはその補間対象点で媒介変数による二次微分値が連続となるように当該補間区間を局部補間する。なお、二次微分値が不連続になっている補間対象点についての補間区間は、前記二次微分値不連続箇所用の分配区間幅テーブルに基づいて設定される区間幅を補間対象点の前後に加えて得られる区間であり、二次微分値が二次微分上限値を上回っている補間対象点についての補間区間は、前記二次微分上限値超過箇所用の分配区間幅テーブルに基づいて設定される区間幅を補間対象点の前後に加えて得られる区間である。
媒介変数による二次微分値が不連続になっている箇所の一例としては、例えばW軸パスについて示されている図8中のコーナー部や図9中の異常データ部が挙げられる。コーナー部の頂点に位置する指令点(図8のt[3])や異常データ部の各頂点に位置する各指令点(図9のt[2]〜t[6])では、媒介変数による一次微分値及び二次微分値が不連続になっており、これらの指令点は補間対象点となる。また、移送軸パス局部フィルタ16bは、W軸パスに補間対象点が複数存在し、隣り合う補間対象点の補間区間同士が重複している場合には、それら重複している補間区間のうち最もW軸パスの始点寄りに位置する補間区間の始点から最もW軸パスの終点寄りに位置する補間区間の終点までを1つの補間区間として、その補間区間内のW軸パスを局部補間する。また、移送軸パス局部フィルタ16bは、局部補間後のW軸パスが各補間区間(隣り合う補間区間同士が重複している場合はそれらを結合した補間区間)の始点の前後及び終点の前後でそれぞれ連続して繋がるようにその補間区間を局部補間する。
移送軸パス局部フィルタ16bの具体的な構成として、当該移送軸パス局部フィルタ16bは、移送軸パス局部補間部16c及び移送軸パス誤差補正部16dを機能ブロックとして有している。
移送軸パス局部補間部16cは、W軸パスの補間区間を前後に拡大した調整区間にかかる複数の補間ブロックのそれぞれについて補間処理を行うことによって各補間ブロックの補間後関数を求めるとともに、それらの補間後関数を積算して補間後積算関数を求め、その求めた補間後積算関数から補間区間に相当する区間を抜き出すことによって、補間区間内の補間対象点において媒介変数による二次微分値が不連続になっていた場合にはその二次微分値が連続となり、補間区間内の補間対象点において媒介変数による二次微分値が前記上限値を超えていた場合にはその二次微分値が前記二次微分上限値以下となるように補間したW軸パスの誤差付き補間パスを求める。また、移送軸パス誤差補正部16dは、移送軸パス局部補間部16cによって求められた誤差付き補間パスの補間区間の始点に対応する値が局部補間していないW軸パスの補間区間の始点の値と一致し、かつ、その誤差付き補間パスの補間区間の終点に対応する値が局部補間していないW軸パスの補間区間の終点の値に一致するように誤差付き補間パスを補正し、その補正後の補間パスをW軸パスの補間区間と置換する。この移送軸パス局部フィルタ16bの移送軸パス局部補間部16cと移送軸パス誤差補正部16dとによる局部補間の詳細なプロセスについては、後述する。
媒介変数時間関数導出部18は、各移送軸に沿って移送対象物を動かすときのその移送軸毎の許容加速度を含む加減速条件と、ツールパス補間部15によって補間された後のツールパスである補間後ツールパスと、移送軸パス補間部16によって補間された後のW軸パスである補間後W軸パスとに基づいて、移送対象物の各移送軸毎の加速度が加減速条件に含まれたその移送軸についての許容加速度を超えないという条件を満たすように、特定の基準時刻の経過に対する媒介変数の変化を表す媒介変数時間関数(媒介変数の速度曲線)を求める。具体的には、媒介変数時間関数導出部18は、前記加減速条件に含まれる許容加速度の範囲内で前記補間後ツールパス及び前記補間後W軸パスに従って移送対象物を移動させ得る最大の加速度を示すような媒介変数時間関数を導出する。なお、補間後W軸パスは、本発明の補間後第2移送軸パスの概念に含まれるものである。
パルス補間部22は、媒介変数時間関数導出部18によって求められた媒介変数時間関数と、前記補間後ツールパスと、前記補間後W軸パスとに基づいて、前記特定周期毎の指令パルスを求めるものである。このパルス補間部22は、基準時刻の単位時間毎の各時点に対応する媒介変数の導出、その導出した各時点の媒介変数に応じた補間後ツールパスの各座標軸(x軸、y軸、z軸、A軸及びC軸)上の位置座標及び補間後W軸パスのW軸上の位置座標の導出、導出した各時点における補間後ツールパスの各座標軸上の位置座標及び補間後W軸パスのW軸上の位置座標に基づく各移送軸(X軸、Y軸、Z軸、W軸、A軸及びC軸)上の前記各時点での位置座標の導出、及び、実時刻の単位時間当たりの各移送軸の位置座標の変化量(各移送軸についての移送対象物の単位時間毎の移送量)を示す指令パルスの導出を行う。なお、実時刻とは、前記特定周期に等しい単位時間毎に進行する時刻のことである。
具体的には、パルス補間部22は、媒介変数時間関数導出部18によって導出された媒介変数時間関数から基準時刻の基準単位時間毎の各時点に対応する媒介変数を求める。また、パルス補間部22は、その求めた各時点での媒介変数に対応する前記補間後ツールパスの各座標軸上の位置座標と、その各時点の媒介変数に対応する前記補間後W軸パスのW軸上での位置座標とを求める。また、パルス補間部22は、求めた各時点のW軸上での位置座標を拘束条件とし、ワーク座標系における工具106の姿勢を含む位置座標(x軸、y軸、z軸、A軸及びC軸の各座標)と各移送軸上の位置座標との相関関係を示す関係式に基づいて、前記各時点での媒介変数に対応する補間後ツールパスの各座標軸上の位置座標に対応した各移送軸上の位置座標を求める。また、パルス補間部22は、求めた各時点における各移送軸上の位置座標からそれらの移送軸上での位置座標の基準単位時間当たりの変化量を求め、その変化量を対応する移送軸についての移送対象物の基準単位時間毎の移送量とする。そして、パルス補間部22は、このように求めた各移送軸についての移送対象物の基準単位時間毎の移送量を実時刻の単位時間毎(前記特定周期毎)の指令パルスとする。
制御部24は、各移送装置102,110,112,114,116,118の移送部102c,110b,112b,114b,116b,118bの動作を制御するものである。制御部24は、各移送部102c,110b,112b,114b,116b,118bのサーボモータに対して、パルス補間部22によって求められた特定周期毎の指令パルスのうちその移送部に対応する移送軸についての移送量を示す指令パルスを出力し、それによって、各移送装置102,110,112,114,116,118に出力した指令パルスに応じて移送対象物を動かさせる。これにより、テーブル移送部102cはテーブル102bを、揺動支持体移送部110bは揺動支持体110aを、回動支持体移送部112bは回動支持体112aを、ラム移送部114bはラム114aを、サドル移送部116bはサドル116aを、クロスレール移送部118bはクロスレール118aを、それぞれ対応する移送軸に沿って制御部24からの指令パルスが示す移送量ずつ前記特定周期毎に移送する。
次に、図3〜図5のフローチャートを参照して、ワーク100の加工時における本実施形態の数値制御装置2による数値制御プロセスについて説明する。
まず、パス導出部12が記憶部4に記憶された加工プログラム(NCプログラム)を読み取り(図3のステップS1)、その読み取った加工プログラムからパス導出部12がツールパスとW軸パスを導出する(ステップS2)。このとき、パス導出部12のツールパス導出部32が、記憶部4から読み取った加工プログラムに含まれる工具106の先端点の位置座標及び工具軸ベクトルからなる多数の指令点の情報と工具移送速度指令とに基づいてツールパス(工具106の先端点の軌跡を表すx軸パス、y軸パス及びz軸パスと、工具106の姿勢変化を表すA軸パス及びC軸パス)を導出し、パス導出部12の移送軸パス導出部34が、記憶部4から読み取った加工プログラムに含まれるW軸上の特定点の座標の情報と工具移送速度指令とに基づいてW軸パスを導出する。なお、本実施形態の数値制御プロセスでは、工作機械に工具106の姿勢を変化させずにワーク100の加工を行わせるものとする。このため、記憶部4には、ワーク座標系(x,y,z)における工具軸ベクトルとして一定値(0,0,1)を記憶させておく。その結果、ツールパス導出部32は、ツールパスを構成するA軸パス及びC軸パスとして共に一定値0を導出する。従って、本実施形態の以下のプロセスでは、特に記載していない場合には、ツールパスに関する処理についてはx軸、y軸及びz軸についてのみ実施し、各移送軸パス及び各移送軸に関する処理についてはX軸、Y軸、Z軸及びW軸についてのみ実施し、A軸及びC軸については処理を行わない。
次に、ツールパス滑らか補間部15aがツールパス導出部32によって導出されたツールパスについてブロック滑らか補間を行うとともに、移送軸パス滑らか補間部16aが移送軸パス導出部34によって導出されたW軸パスについてブロック滑らか補間を行う(ステップS3)。
具体的には、ツールパス滑らか補間部15aは、ツールパス(工具106の先端点のx軸パス、y軸パス及びz軸パス)のうち隣接する指令ブロック同士の境界に位置する指令点の前後において一次微分と二次微分がそれぞれ連続し、かつ、その指令点を補間後のツールパスが通るようにツールパスを補間する。この際、ツールパス滑らか補間部15aは、ツールパスのうちこのような補間が解析的に可能な部分についてのみブロック滑らか補間を行い、このような補間が解析的に不可能な部分については補間せずに元のツールパスのまま残す。詳しくは、ツールパス滑らか補間部15aは、指令点におけるツールパスの折れ曲がりの角度が予め設定された一定角度よりも大きい部分、及び、補間前のツールパスに対してブロック滑らか補間を行った後のツールパスに生じた誤差が予め設定された許容誤差よりも大きくなる部分については、補間せずに元のツールパスのまま残す。また、移送軸パス滑らか補間部16aは、ツールパス滑らか補間部15aがツールパスについて行ったのと同様のブロック滑らか補間をW軸パスについて行う。
次に、ツールパス局部フィルタ15bがブロック滑らか補間後のツールパスについて局部補間を行うとともに、移送軸パス局部フィルタ16bがブロック滑らか補間後のW軸パスについて局部補間を行う(ステップS4)。このツールパス局部フィルタ15bによる局部補間と移送軸パス局部フィルタ16bによる局部補間は、対象が異なる以外は同様に行われるので、以下、移送軸パス局部フィルタ16bによるW軸パスの局部補間のプロセスについて代表して説明する。
移送軸パス局部フィルタ16bは、滑らか補間後のW軸パスのうち媒介変数による二次微分値が予め設定された前記二次微分値上限値を上回る箇所と、媒介変数による二次微分値が不連続になっている箇所(一次微分値と二次微分値の両方が不連続になっている箇所及び一次微分値が連続で二次微分値が不連続になっている箇所)とを補間対象箇所とし、滑らか補間後のW軸パスのうちその補間対象箇所を前後に特定の区間幅ずつ拡大した補間区間のみを局部補間する。これにより、滑らか補間後のW軸パスにおいて媒介変数による二次微分値が二次微分値上限値を上回る箇所があった場合には、その箇所の二次微分値が当該二次微分値上限値以下になるように当該箇所が補間される。また、W軸パスにおいて前記ブロック滑らか補間が行われず、媒介変数による二次微分値が不連続となっている箇所がある場合には、その箇所の二次微分値が連続となるように補間される。この移送軸パス局部フィルタ16bによって行われる局部補間の詳細なプロセスが図4に示されている。
この局部補間では、まず、移送軸パス局部フィルタ16bの移送軸パス局部補間部16cが、補間区間の区間幅である補間区間幅をまだ算出していない指令点である補間対象点が滑らか補間後のW軸パスに存在するか否かを判断する(ステップS12)。移送軸パス局部補間部16cは、そのような補間対象点が滑らか補間後のW軸パスに存在すると判断した場合には、その補間区間幅をまだ算出していない補間対象箇所について分配区間幅及び補間区間幅の算出を行う(ステップS14)。
移送軸パス局部補間部16cは、まず、滑らか補間後のW軸パスのうち媒介変数による一次微分値と二次微分値の両方が不連続になっている箇所について分配区間幅を求める。なお、ここでの分配区間幅は、W軸パスの媒介変数による一次微分値を後述する分配関数に基づいて分配する区間幅のことである。具体的には、移送軸パス局部補間部16cは、局部補間前のW軸パスと局部補間後のW軸パスとの補間対象点における位置誤差がW軸における許容誤差に等しくなるという条件を満たすように分配区間幅を算出し、補間区間幅をその算出した分配区間幅以上の区間幅として求める。詳しくは、例えば、次のようにして分配区間幅が算出される。
分配区間幅の算出式は、後述のW軸パスの一次微分値の分配を行うために用いる分配関数によって異なるが、ここでは、後述のW軸パスの一次微分値の分配にベル型の分配関数を用いるものとして、分配区間幅を算出する。
W軸パスの媒介変数sによる一次微分値の補間対象点直前の値をb1とし、補間対象点直後の値をb2とすると、W軸パスの位置座標wの媒介変数sによる一次微分関数w’(s)は、次式(1)で表せる。なお、この一次微分関数w’(s)は、図6に示すような二次曲線となる。
w’(s)=dw/ds=ks2+b1・・・(1)
なお、kは、所定の係数である。ここで、局部補間前のW軸パスに対する局部補間後のW軸パスの補間対象点での位置誤差は、図6中のハッチングを付した領域の面積に相当する。従って、この位置誤差をEとすると、当該位置誤差Eは、次式(2)で求められる。
そして、上記一次微分関数w’(s)が示す二次曲線は、補間区間幅の中央において前記b1と前記b2のちょうど中間の値を取るとすると、次式(3)が成り立つ。
ks2+b1=(b1+b2)/2・・・(3)
この式(3)を式変形することにより、次式(4)が得られる。
k=(b2−b1)/2s2・・・(4)
ここで、補間区間幅の中央の点では、s=A/2であるため、上記式(4)から係数kは、次式(5)で求められる。
k=2(b2−b1)/A2・・・(5)
そして、この式(5)で得られる係数kを上記式(2)に代入して式変形することにより、次式(6)が得られる。
E=2(b2−b1)A/3・・・(6)
ここで、W軸における許容誤差をτとすると、前記誤差Eが許容誤差τに等しいという条件を満たす分配区間幅Aは、上記式(6)から次式(7)のように求められる。
A=3τ/2(b2−b1)・・・(7)
なお、上記式(7)で求められる分配区間幅の値が予め設定された上限パラメータを超える場合には、その上限パラメータの値を分配区間幅Aとする。
一方、移送軸パス局部補間部16cは、滑らか補間後のW軸パスのうち媒介変数による一次微分値は連続で、二次微分値が不連続になっている箇所については、記憶部4に記憶されているW軸パスについての二次微分不連続箇所用の分配区間幅テーブルに基づいて分配区間幅を求める。具体的には、移送軸パス局部補間部16cは、滑らか補間後のW軸パスのうち二次微分値が不連続になっている箇所におけるその二次微分値の差を求め、その求めた二次微分値の差に対応する分配区間幅を対応する二次微分不連続箇所用の分配区間幅テーブルに基づいて算出する。この際、移送軸パス局部補間部16cが求めた二次微分値の差の値がW軸パスについての二次微分不連続箇所用の分配区間幅テーブルに登録されている多数の二次微分値の差の値のうち隣接する2つの値の間にある場合には、移送軸パス局部補間部16cは、比例配分によって、当該移送軸パス局部補間部16cが求めた二次微分値の差に対応する分配区間幅を求める。
また、移送軸パス局部補間部16cは、滑らか補間後のW軸パスのうち媒介変数による二次微分値が予め設定された二次微分上限値を超える箇所については、記憶部4に記憶されているW軸パスについての二次微分値超過箇所用の分配区間幅テーブルに基づいて分配区間幅を求める。具体的には、移送軸パス局部補間部16cは、滑らか補間後のW軸パスのうち二次微分値が二次微分上限値を超える箇所のその二次微分値に基づいて、記憶部4に記憶されているW軸パスについての二次微分値超過箇所用の分配区間幅テーブルから対応した分配区間幅を求める。この際、滑らか補間後のW軸パスの二次微分上限値を超える箇所の二次微分値がW軸パスについての二次微分値超過箇所用の分配区間幅テーブルに登録されている多数の二次微分値のうち隣接する2つの値の間にある場合には、移送軸パス局部補間部16cは、比例配分によって、その二次微分上限値を超える箇所の二次微分値に対応する分配区間幅を求める。
そして、本実施形態では、以上のようにして算出された分配区間幅に等しい区間幅を補間区間幅とする。
次に、移送軸パス局部補間部16cは、現在対象としている補間対象点についての補間区間が他の補間対象点の補間区間と重なるか否かを判断する(ステップS16)。ここで、移送軸パス局部補間部16cは、補間区間が重ならないと判断した場合には、上記ステップS12に戻り、以降のプロセスを繰り返し行う。一方、移送軸パス局部補間部16cは、補間区間が重なると判断した場合には、重なった補間区間同士を結合して1つの補間区間とする(ステップS18)。具体的には、移送軸パス局部補間部16cは、重なった各補間区間のうち最もW軸パスの始点寄りに位置する補間区間の始点から最もW軸パスの終点寄りに位置する補間区間の終点までの区間を1つの補間区間とする。なお、この場合、結合した後の1つの補間区間について後述の分配の際に用いる分配区間幅としては、各補間区間に対応する分配区間幅のうち最も小さい分配区間幅が採用される。この後、上記ステップS12に戻り、以降のプロセスが繰り返し行われる。
そして、ステップS12において、移送軸パス局部補間部16cが滑らか補間後のW軸パスに補間区間幅を算出していない補間対象点がもう存在しないと判断した場合には、移送軸パス局部補間部16cは、次に、以降の局部補間処理を行う1つの補間区間を抽出する(ステップS20)。ここで、滑らか補間後のW軸パスに局部補間処理を行っていない複数の補間区間が存在する場合には、移送軸パス局部補間部16cは、それらの補間区間のうち最もW軸パスの始点寄りに位置する補間区間を抽出する。なお、上記ステップS18で結合された補間区間は、1つの補間区間として扱われる。
その後、移送軸パス局部補間部16cは、抽出した補間区間について調整区間を求める(ステップS22)。この調整区間(図7及び図8参照)は、補間区間を前後に分配区間幅Aの半分の区間幅aずつ拡大した区間であり、後述する補間後関数の算出対象となる補間ブロックを判断する基準となる。この後、移送軸パス局部補間部16cは、メモリ5に記憶されている補間後積算関数を0に初期セットする(ステップS24)。
次に、移送軸パス局部補間部16cは、後述の補間後関数を求める補間処理を実施するための指令ブロックである補間ブロックを抽出する(ステップS26)。具体的には、移送軸パス局部補間部16cは、上記ステップS22で求めた調整区間内に少なくとも区間の一部が含まれる複数の指令ブロック(図7では指令ブロックw0(s)〜w5(s)、図8ではw0(s)〜w7(s))を選択するとともに、それらの指令ブロックのうち後述の補間後関数を求める補間処理が終わっていないブロックでかつ最もW軸パスの始点寄りに位置するブロックを補間ブロックとして抽出する。
次に、移送軸パス局部補間部16cは、抽出した補間ブロックの補間後関数を求める(ステップS28)。本実施形態では、移送軸パス局部補間部16cは、ベル型の分配関数f(s)を用いて補間後関数を求める。なお、ベル型の分配関数f(s)は、次式で表される。
なお、分配区間−A/2≦s≦A/2の外側では、f(s)=0である。
移送軸パス局部補間部16cは、補間後関数の算出に当たって、まず、上記抽出した補間ブロック内の媒介変数が異なる各第1位置sを中央とし且つ分配区間幅Aと等しい区間幅を有する積分区間[s−A/2,s+A/2]を設定する。そして、移送軸パス局部補間部16cは、その設定した積分区間[s−A/2,s+A/2]内の媒介変数が異なる各第2位置SでのW軸パスの媒介変数による一次微分wi’(S)を求め、その各第2位置Sでの一次微分wi’(S)を対応する第2位置Sを中央とし且つ前記分配区間幅Aを有する分配区間内に分配関数f(s)に基づいて分配した場合に得られる分配後微分関数wi’(S)・f(S−s)を積分区間[s−A/2,s+A/2]にわたって積分し、それによって補間後関数qi’(s)を求める。以上のような補間ブロックの媒介変数による一次微分wi’(S)の分配関数f(s)による分配演算及びその分配演算によって得られる分配後微分関数wi’(S)・f(s−S)の積分の結果、当該補間ブロックの媒介変数による二次微分値が小さくなるように当該補間ブロックが補間される。移送軸パス局部補間部16cは、より具体的には、次式(9)によって補間ブロックwi(s)の補間後関数qi’(s)を求める。
このようにして得られた補間後関数qi’(s)は、補間ブロックwi(s)の区間幅が補間区間幅Aよりも大きい場合と小さい場合とで異なった形で表される。その各場合における補間後関数qi’(s)は、以下の通りである。
補間ブロックpi(s)の区間幅が補間区間幅A=2aよりも大きい場合(図9参照)には、その補間ブロックwi(s)の両端を規定する2つの指令点のうちW軸パスの始点寄りの指令点をt[i]、W軸パスの終点寄りの指令点をt[i+1]とし、補間区間幅Aの半分の区間幅をaとすると、当該補間ブロックwi(s)に対応する区間はt[i]<s<t[i+1]で表され、t[i]−a<t[i]+a<t[i+1]−a<t[i+1]+aの関係が成り立つ。そして、補間ブロックwi(s)の媒介変数sによる一次微分wi’(s)は、図9中の太線で表される。
この場合において、上記補間処理によって得られる補間後関数qi’(s)は、下記のt[i]−a<s<t[i]+aの区間の関数qi11’(s)と、t[i]+a<s<t[i+1]−aの区間の関数qi12’(s)と、t[i+1]−a<s<t[i+1]+aの区間の関数qi13’(s)とに細分化される。
t[i]−a<s<t[i]+aの区間の関数qi11’(s)は、次式(10)で表される。
t[i]+a<s<t[i+1]−aの区間の関数qi12’(s)は、次式(11)で表される。
t[i+1]−a<s<t[i+1]+aの区間の関数qi13’(s)は、次式(12)で表される。
次に、補間ブロックwi(s)の区間幅が補間区間幅A=2aよりも小さい場合(図10及び図11参照)には、その補間ブロックwi(s)の両端を規定する2つの指令点のうちW軸パスの始点寄りの指令点をt[i]、W軸パスの終点寄りの指令点をt[i+1]とし、補間区間幅Aの半分の区間幅をaとすると、当該補間ブロックwi(s)に対応する区間はt[i]<s<t[i+1]で表され、t[i]−a<t[i+1]−a<t[i]+a<t[i+1]+aの関係が成り立つ。この補間ブロックwi(s)の媒介変数sによる一次微分関数wi’(s)は、図10及び図11中の太線で表される。
この場合において、上記補間処理によって得られる補間後関数qi’(s)は、下記のt[i]−a<s<t[i+1]−aの区間の関数qi21’(s)と、t[i+1]−a<s<t[i]+aの区間の関数qi22’(s)と、t[i]+a<s<t[i+1]+aの区間の関数qi23’(s)とに細分化される。
t[i]−a<s<t[i+1]−aの区間の関数qi21’(s)は、次式(13)で表される。
t[i+1]−a<s<t[i]+aの区間の関数qi22’(s)は、次式(14)で表される。
t[i]+a<s<t[i+1]+aの区間の関数qi23’(s)は、次式(15)で表される。
次に、移送軸パス局部補間部16cは、求めた補間後関数をメモリ5に記憶されている補間後積算関数に加算する(ステップS30)。ここでは、ステップS24で0にセットされた補間後積算関数に補間後関数が加算されるので、加算後の補間後積算関数は、上記ステップS28で求められた補間後関数に等しくなる。
次に、移送軸パス局部補間部16cは、調整区間に少なくとも区間の一部が含まれる全ての補間ブロックについて補間後関数を求めてその補間後関数を補間後積算関数に加算する補間処理を行ったか否かを判断する(ステップS32)。ここで、移送軸パス局部補間部16cは、まだ全ての補間ブロックの補間処理を終了していないと判断した場合には、上記ステップS26に戻り、次に補間処理を行う補間ブロックを抽出する。この際に抽出される補間ブロックは、調整区間に少なくとも区間の一部が含まれる指令ブロックのうち先に補間処理された補間ブロックに対してW軸パスの終点側に隣り合う指令ブロックとなる。その後、移送軸パス局部補間部16cは、その抽出した補間ブロックについてステップS28の補間後関数の算出を行い、それによって得られた補間後関数を補間後積算関数に加算する。移送軸パス局部補間部16cは、このようなステップS26〜S30のプロセスを、ステップS32において調整区間に少なくとも一部が含まれる全ての補間ブロックの補間処理(分配、積分、加算)を終了したと判断するまで繰り返し行う。
そして、移送軸パス局部補間部16cは、ステップS32において調整区間に少なくとも一部が含まれる全ての補間ブロックの補間処理を終了したと判断した場合には、次に、W軸についての誤差付き補間パスを求める(ステップS34)。具体的には、移送軸パス局部補間部16cは、上記補間後関数の加算によって得られた補間後積算関数から上記ステップS20で抽出した補間区間に相当する区間を抜き出すことによって誤差付き補間パスを求める。
その後、移送軸パス誤差補正部16dが、誤差付き補間パスのうち補間区間の始点に対応する点と終点に対応する点とにおけるW軸パスとの誤差を補正するための誤差補正パスを求める(ステップS36)。具体的には、移送軸パス誤差補正部16dは、補間区間の始点における誤差補正パスの値が当該始点における誤差付き補間パスの値から当該始点におけるW軸パスの値を減じて得た値に等しく、かつ、補間区間の終点における誤差補正パスの値が当該終点における誤差付き補間パスの値から当該終点におけるW軸パスの値を減じて得た値に等しいという条件を満たす誤差補正パスを求める。より具体的には、移送軸パス誤差補正部16dは、誤差補正パスをEp(s)とし、誤差付き補間パスをr(s)とし、W軸パスをw(s)とし、補間区間の始点をSsとし、補間区間の終点をSeとすると、以下の式(16),(17)を満たす誤差補正パスEp(s)を求める。本実施形態では、移送軸パス誤差補正部16dは、この条件を満たす誤差補正パスEp(s)の一例として、Ep(Ss)とEp(Se)を直線で繋いだ誤差補正パスを求める。
Ep(Ss)=r(Ss)−w(Ss)・・・(16)
Ep(Se)=r(Se)−w(Se)・・・(17)
次に、移送軸パス誤差補正部16dは、誤差付き補間パスをステップS36で求めた誤差補正パスによって補正し、その補正後の補間パスをW軸パスの補間区間と置換して局部補間後の補間区間のW軸パスとする(ステップS38)。具体的には、移送軸パス誤差補正部16dは、誤差付き補間パスから誤差補正パスを差し引くことによって誤差付き補間パスを補正し、当該補正により、補間区間の始点でのW軸パスに対する誤差付き補間パスの誤差と、補間区間の終点でのW軸パスに対する誤差付き補間パスの誤差とを除去する。このため、補正後の補間パスは、補間区間の始点においてW軸パスと連続して繋がり、補間区間の終点においてW軸パスと連続して繋がるパスとなる。以上のプロセスにより、W軸パスのうちの1つの補間区間が、当該補間区間内の補間対象点において不連続となっている微分値の変化が連続的な変化となるように局部補間される。
この後、移送軸パス局部補間部16cは、W軸パスの全ての補間区間の局部補間が終了したか否かを判断する(ステップS40)。ここで、移送軸パス局部補間部16cが局部補間が終了していない補間区間がまだ存在すると判断した場合には、上記ステップS20以降のプロセスが繰り返し行われる。具体的には、移送軸パス局部補間部16cが局部補間が終了していない補間区間のうち最もW軸パスの始点寄りに位置する補間区間を抽出し、その抽出した補間区間について補間後関数の算出、補間後積算関数への加算、誤差付き補間パスの導出、誤差補正パスの導出及び誤差付き補間パスの補正等が行われる。
一方、移送軸パス局部補間部16cがW軸パスの全ての補間区間の局部補間が終了したと判断した場合には、移送軸パス局部フィルタ16bによるW軸パスの局部補間処理のプロセスが終了する。
そして、上記のW軸パスに対する局部補間処理と並行して、同様の局部補間処理が、ツールパス局部フィルタ15bのツールパス局部補間部15c及びツールパス誤差補正部により滑らか補間後のツールパスの各座標軸パス(x軸パス、y軸パス及びz軸パス)に対して行われる。なお、このツールパスの局部補間処理では、補間対象点の前後におけるツールパスの媒介変数による一次微分値の差がワーク座標系を構成する各座標軸で異なる場合には、ツールパス局部補間部15cは、補間対象点の前後の一次微分値の差が最大となる座標軸について、分配区間幅及び補間区間幅の導出を行う。例えば、ツールパスのx軸パスの媒介変数による一次微分値、ツールパスのy軸パスの媒介変数による一次微分値及びツールパスのz軸パスの媒介変数による一次微分値のうちx軸パスの媒介変数による一次微分値の補間対象点の前後における差が最も大きい場合には、ツールパス局部補間部15cは、そのx軸パスについて分配区間幅及び補間区間幅を導出する。そして、その導出された分配区間幅及び補間区間幅を用いて、ツールパスのx軸パス、y軸パス及びz軸パス毎に上記W軸パスと同様の局部補間が行われる。
以上の局部補間処理の後、媒介変数時間関数導出部18により基準時刻Tの経過に対する媒介変数の変化を表す媒介変数時間関数が求められる(図3のステップS5)。
具体的には、媒介変数時間関数導出部18は、記憶部4に記憶されている各移送軸毎の許容加速度を含む加減速条件と、全ての補間区間が局部補間された後のツールパスである補間後ツールパスと、全ての補間区間が局部補間された後のW軸パスである補間後W軸パスとに基づいて、媒介変数時間関数(媒介変数の速度曲線)を求める。より具体的には、媒介変数時間関数導出部18は、ワーク座標系における工具106の先端の位置を補間後ツールパス(補間後のx軸パス、y軸パス及びz軸パス)に従って移動させることができるとともに補間後W軸パスに従って工具106をW軸方向に動かすことができ、かつ、移送対象物の各移送軸毎の加速度が加減速条件に含まれたその移送軸についての許容加速度を超えないという条件を満たすような媒介変数時間関数を求める。詳しくは、媒介変数時間関数導出部18は、以下のようにして媒介変数時間関数を求める。
媒介変数時間関数導出部18は、まず、図12中の階段状速度曲線で表される媒介変数速度上限関数を求める。媒介変数速度上限関数は、各移送軸パスの各指令点間のブロック毎の媒介変数sの速度ds/dTの上限値を表す関数である。図12中の階段状速度曲線のうち水平になっている各部分がブロックを表し、当該部分の速度ds/dTがそのブロックの媒介変数sの速度ds/dTの上限値に相当する。なお、各ブロックは、それぞれについての媒介変数sの増分が等しくなるように元々設定されているが、その各ブロックの媒介変数sの増分に相当する距離を進むのに要する時間は様々であり、図12では、媒介変数sの増加を時間tの進行に換算して横軸に表している。そして、媒介変数時間関数導出部18は、以下のようにして各ブロックの媒介変数sの速度ds/dTの上限値を求めることによって媒介変数速度上限関数を求める。
媒介変数時間関数導出部18は、補間後ツールパス及び補間後W軸パスに基づいて、対象とするブロックに対応する所定の媒介変数saの点とその点の近傍の前後2点ずつの合計5点(sa−2e,sa−e,sa,sa+e,sa+2e)における各移送軸の移送軸座標kp[i][](i=0,1,2,3,4)を求める。このとき、Z軸座標は、補間後のz軸パスのz軸座標から補間後W軸パスのW軸座標を差し引くことによって求める。なお、前記eは、媒介変数における微小距離を示すパラメータである。また、i=0は点(sa−2e)に、i=1は点(sa−e)に、i=2は点saに、i=3は点(sa+e)に、i=4は点(sa+2e)にそれぞれ対応している。また、[]は、各移送軸それぞれについての値であることを意味する。そして、媒介変数時間関数導出部18は、下記式(18)によって点(sa−e)における媒介変数による一次微分の近似値ds1[ax]を求め、下記式(19)によって点(sa+e)における媒介変数による一次微分の近似値ds2[ax]を求め、この求めた2つの近似値ds1[ax],ds2[ax]と下記式(20)を用いて前記媒介変数saに対応する点における移送軸パスの媒介変数による二次微分の近似値ddss[ax]を求める。なお、axは、各移送軸を表すインデックスである。
ds1[ax]=(kp[2][ax]−kp[0][ax])/2e・・・(18)
ds2[ax]=(kp[4][ax]−kp[2][ax])2e・・・(19)
ddss[ax]=(ds2[ax]−ds1[ax])/2e・・・(20)
仮に、媒介変数saの点を等速度vで通過するとした場合には、各移送軸毎の加速度a[]は、v2×ddss[]で近似できることから、記憶部4に記憶されている加減速条件中の各移送軸毎の許容加速度をA[]とすると、媒介変数時間関数導出部18は、対象とするブロックの速度上限値vmを次式(21)によって求める。
vm=(A[ax]/ddss[ax])1/2・・・(21)
そして、媒介変数時間関数導出部18は、このようにして求めた各移送軸毎の対応するブロックの速度上限値vmと加工プログラムに含まれる速度指令のうちそのブロックに対応する速度との中で最も低い値をそのブロックの媒介変数sの速度ds/dTの上限値とする。媒介変数時間関数導出部18は、全てのブロックの媒介変数sの速度ds/dTの上限値を以上のような方法でそれぞれ求め、その求めた各ブロックの上限値を繋いで媒介変数速度上限関数を求める。
次に、媒介変数時間関数導出部18は、記憶部4に記憶された加減速条件に含まれる媒介変数sの許容速度、許容加速度及び許容ジャークに基づいて、媒介変数速度上限関数が表す階段状速度曲線を超えないように連続変化する加減速曲線ds(T)/dTを求め、その求めた加減速曲線ds(T)/dTを基準時刻Tで積分することにより媒介変数時間関数s(T)を算出する。
具体的には、媒介変数時間関数導出部18は、まず、加減速曲線ds(T)/dTのうちの加速領域の速度曲線(速度関数)を始点側から終点側へ向かって所定の時刻区間毎にその時刻区間の時刻区間幅tsとともに順次求めてメモリ5に登録していく。この時、媒介変数時間関数導出部18は、それまでにメモリ5に登録した速度曲線の最終点(s1,f1,t1)から目標点(s2,f2)として設定したブロックの終点へ到達する過程でその最終点における速度f1がそのブロックの速度ds/dTの上限値(速度上限値f2)まで上昇し得るような速度曲線を各時刻区間毎にその区間の時刻区間幅tsとともに求める。なお、このとき求められる速度曲線の形態は、前記最終点と目標点との媒介変数の差(s2−s1)、前記最終点における速度f1、速度上限値f2、前記最終点における加速度a1、許容加速度及び許容ジャーク等の条件によって異なる。その各条件に応じた速度曲線の求め方が図13〜図19に示されている。
図13及び図14には、最終点(s1,f1,t1)から目標点(s2,f2)に達する前に速度が速度上限値f2に達する場合が示されている。なお、t2は、s2に到達したときの時刻である。具体的には、図13は、最終点(s1,f1,t1)から許容ジャークに従って加速度がa1から許容加速度まで増加するように速度をf1から上昇させ(時刻区間ts1)、その後、許容加速度に等しい加速度で速度が上昇し(時刻区間ts2)、その後、速度が速度上限値f2を超えないように許容ジャークに従って加速度を低下させて速度が速度上限値f2に達し(時刻区間ts3)、その後、速度上限値f2に等しい速度で目標点(s2,f2)に到達する(時刻区間ts4)という形態の速度曲線を示しており、媒介変数時間関数導出部18は、このような条件に従って各時刻区間毎の速度曲線(速度関数)をその各区間の時刻区間幅ts1〜ts4とともに算出し、その算出した速度曲線を対応する時刻区間とともにメモリ5に登録する。また、図14は、最終点(s1,f1,t1)から許容ジャークに従って加速度がa1から増加するように速度をf1から上昇させる(時刻区間ts5)が、速度上限値f2が近いため、速度が許容加速度に達する前に許容ジャークに従って加速度を低下させて速度上限値f2に達し(時刻区間ts6)、その後、速度上限値f2に等しい速度で目標点(s2,f2)に到達する(時刻区間ts7)という形態の速度曲線を示しており、媒介変数時間関数導出部18は、このような条件に従って各時刻区間毎の速度曲線(速度関数)をその各区間の時刻区間幅ts5〜ts7とともに算出し、その算出した速度曲線を対応する時刻区間とともにメモリ5に登録する。
また、図15〜図17には、許容ジャークに従って加速度が低下している途中に目標点(s2,f2)に達する場合が示されている。具体的には、図15は、最終点(s1,f1,t1)から許容ジャークに従って加速度がa1から増加するように速度をf1から上昇させる(時刻区間ts8)が、最終点から目標点(s2,f2)までの距離(s2−s1)が小さいため、速度が許容加速度に達する前に、許容ジャークに従って加速度を低下させて速度が速度上限値f2に達するとともに目標点(s2,f2)に到達する(時刻区間ts9)という形態の速度曲線を示しており、媒介変数時間関数導出部18は、このような条件に従って各時刻区間毎の速度曲線(速度関数)をその各区間の時刻区間幅ts8,ts9とともに算出し、その算出した速度曲線を対応する時刻区間とともにメモリ5に登録する。また、図16は、最終点(s1,f1,t1)から許容ジャークに従って加速度がa1から許容加速度まで増加するように速度をf1から上昇させ(時刻区間ts10)、その後、許容加速度に等しい加速度で速度が上昇し(時刻区間ts11)、その後、速度が速度上限値f2を超えないように許容ジャークに従って加速度を低下させている途中で目標点(s2,f2)に到達する(時刻区間ts12)という形態の速度曲線を示しており、媒介変数時間関数導出部18は、このような条件に従って各時刻区間毎の速度曲線(速度関数)をその各区間の時刻区間幅ts10〜ts12とともに算出し、その算出した速度曲線を対応する時刻区間とともにメモリ5に登録する。また、図17は、最終点(s1,f1,t1)から目標点(s2,f2)までが非常に近いとともにその最終点における速度f1と速度上限値f2とが非常に近く、且つ、最終点における加速度a1が大きいため、その最終点から許容ジャークに従って加速度をa1から低下させながら速度がf1から上昇して速度上限値f2に達するとともに目標点(s2,f2)に到達する(時刻区間ts13)という形態の速度曲線を示しており、媒介変数時間関数導出部18は、このような条件に従って時刻区間幅ts13とともにその区間の速度曲線(速度関数)を算出し、その算出した速度曲線を時刻区間ts13とともにメモリ5に登録する。
また、図18には、媒介変数sが目標点に対応する値s2に達しても速度上限値f2まで速度を上げることができない場合が示されている。媒介変数時間関数導出部18は、速度曲線を算出していてこのような場合に該当する場合には、その算出した速度曲線をメモリ5に登録しない。
また、図19には、最終点(s1,f1,t1)における速度f1と速度上限値f2が非常に接近しているとともにその最終点における加速度a1が比較的大きいため、最終点(s1,f1,t1)から許容ジャークに従って加速度を低下させても速度が速度上限値f2を超えてしまう場合が示されている。媒介変数時間関数導出部18は、速度曲線の算出に際してこのような場合に該当する場合には、1つ前にメモリ5に登録された速度曲線のデータを取り消すとともに、さらにその1つ前にメモリ5に登録された速度曲線の最終点から今回の目標点に至り、且つ、速度が今回の目標点に対応する速度上限値に達し得るような速度曲線を求めるための再計算を行う。この場合の再計算の方法は、上記各場合と同様である。
そして、媒介変数時間関数導出部18は、上記のような速度曲線の算出と登録を順次行う。媒介変数時間関数導出部18は、求めた速度曲線をメモリ5に登録する際、併せて、目標点に到達時の時刻t2及び加速度a2をメモリ5に登録しておき、次の目標点を設定して速度曲線を算出するときには、その登録した時刻t2を最終点における時刻t1として用いるとともにその登録した加速度a2を最終点における加速度a1として用いて次の速度曲線を算出する。このように最終点における速度に対して次の目標点に対応する速度上限値が小さくなるまで求めた速度曲線によって、加減速曲線のうち加速領域の速度曲線が得られる。
次に、媒介変数時間関数導出部18は、加減速曲線のうちの減速領域についてパスの終点側から始点側へ向かって上記と同様の速度曲線の算出と登録を順次行い、それによってその減速領域の速度曲線を求める。そして、媒介変数時間関数導出部18は、求めた加速領域の速度曲線の終点と減速領域の速度曲線の始点を繋ぎ合わせることによって加減速曲線ds(T)/dTを求める。そして、媒介変数時間関数導出部18は、その求めた加減速曲線ds(T)/dTを基準時刻Tで積分することにより媒介変数時間関数s(T)を算出する。
次に、パルス補間部22による基準時刻Tの導出及びパルス補間と、制御部24による各移送部102c,110b,112b,114b,116b,118bへのパルス出力が行われる(ステップS6)。
このステップS6の詳細なプロセスは、図5のフローチャートに示されている。このプロセスでは、まず、パルス補間部22は、基準時刻Tが上記ステップS5で求められた媒介変数時間関数の始点となる時刻に合うように当該基準時刻Tを初期セットする(図5のステップS52)。
次に、パルス補間部22は、初期セットした基準時刻Tに対応する補間後ツールパスの各座標軸上の位置座標と、その基準時刻Tに対応する補間後W軸パス上の位置座標とを求める(ステップS54)。具体的には、パルス補間部22は、媒介変数時間関数導出部18によって求められた媒介変数時間関数s(T)から、初期セットした基準時刻Tに対応する媒介変数sを求め、その求めた媒介変数sと補間後ツールパスからその媒介変数sに対応する補間後ツールパス(補間後のx軸パス、y軸パス及びz軸パス)の各座標軸上の位置座標を求めるとともに、求めた媒介変数sと補間後W軸パスからその媒介変数sに対応する補間後W軸パス上の位置座標を求める。
次に、パルス補間部22は、求めたW軸パスのW軸上での位置座標を拘束条件とし、ワーク座標系における工具106の先端点の位置座標と各移送軸上の位置座標との相関関係を示す関係式に基づいて、上記ステップS54で求めた補間後ツールパスの各座標軸上の位置座標及び補間後W軸パスの位置座標に対応する各移送軸上の位置座標を求める(ステップS56)。
具体的には、パルス補間部22は、まず、補間後ツールパスが示す工具106の先端点のワーク座標系での位置座標(Tx,Ty,Tz)を求め、その位置座標と一定値0であるA軸パスの座標a及びC軸パスの座標cとから工具軸ベクトル(Si,Sj,Sk)と主軸位置の座標(Sx,Sy,Sz)を以下の式(22)〜(27)によって求める。なお、前記主軸位置は、主軸ヘッド108に保持された工具106の基端(先端と反対側の端)のワーク座標系における位置である。また、前記工具軸ベクトルは、工具106の軸方向(工具106の中心線が延びる方向)をワーク座標系で表すものであり、工具106の先端点から基端(主軸位置)へ向かうベクトルである。
Si=sin(a)×sin(c)・・・(22)
Sj=−sin(a)×cos(c)・・・(23)
Sk=cos(a)・・・(24)
Sx=Tx+length×Si・・・(25)
Sy=Ty+length×Sj・・・(26)
Sz=Tz+length×Sk・・・(27)
ここで、lengthは、工具106の軸方向の長さである。
そして、パルス補間部22は、補間後W軸パスからW軸上の位置座標wを算出し、続いて、以下の運動学関係式(28)〜(30)に基づいて、補間後ツールパスが示す位置座標及び補間後W軸パスが示す位置座標に対応する各移送軸(X軸、Y軸、Z軸)上の位置座標(x,y,z)を求める。
x=Sx−Tx+Cx×cos(c)−(Ay×cos(a)−Az×sin(a)+Cy−Ay)×sin(c)−Cx・・・(28)
y=Sy−Ty+Cx×sin(c)+(Ay×cos(a)−Az×sin(a)+Cy−Ay)×cos(c)−Cy・・・(29)
z=Sz−Tz+Ay×sin(a)+Az×cos(a)−Az−w・・・(30)
これらの式において、Ayは、YZ平面において工具106の先端のうちその工具106の中心線上に位置する点から揺動支持体110aの揺動中心へ向かうベクトルのY軸成分であり、Azは、同ベクトルのZ軸成分である。また、Cxは、XY平面において工具106の先端のうちその工具106の中心線上に位置する点(工具106の先端点)から回動支持体112aの回動中心へ向かうベクトルのX軸成分であり、Cyは、同ベクトルのY軸成分である。なお、上記式(22)〜(30)が、本発明の特定の関係式の概念に含まれるものである。また、Z軸とW軸は互いに平行な不定軸であり、上記式(30)だけではzとwの値が一意的に定まらないが、上記ステップS54で求めた補間後W軸パスのW軸上での位置座標をwとする拘束条件を用いることによって、この式(30)からzの値を求めることができる。パルス補間部22が以上のようにして求めた各移送軸の位置座標をnewp[]とする。
次に、パルス補間部22は、ステップS56で求めた各移送軸毎の位置座標newp[]を旧座標oldp[]とする(ステップS58)。
次に、パルス補間部22は、上記ステップS52で初期セットした基準時刻Tに基準単位時間dTを加算して新たな基準時刻Tを求める(ステップS60)。
次に、パルス補間部22は、新たな基準時刻Tに対応する補間後ツールパスの各座標軸上の位置座標及び補間後W軸パスのW軸上での位置座標を上記ステップS54と同様にして求め(ステップS62)、その求めたW軸上での位置座標を拘束条件として、その求めた補間後ツールパスの位置座標に対応する各移送軸上の位置座標を上記ステップS56と同様に求める(ステップS64)。
その後、パルス補間部22は、指令パルスを算出する(ステップS66)。具体的には、パルス補間部22は、ステップS64で求めた各移送軸毎の位置座標newp[]から上記ステップS58で設定された各移送軸毎の旧座標oldp[]の対応するものを差し引くことによって、基準単位時間dT当たりの各移送軸における位置座標の変化量、すなわち各移送軸についての移送対象物の基準単位時間dT当たりの移送量を求め、その求めた移送量を実時刻の単位時間毎(前記特定周期毎)の指令パルスとする。
その後、制御部24が、各移送部102c,114b,116b,118bのサーボモータへ、パルス補間部22によって求められた前記特定周期当たりの指令パルスのうちその移送部に対応する移送軸についての移送量を示す指令パルスを出力する(ステップS68)。これにより、各移送部102c,114b,116b,118bは、移送対象物を支持して動かすための対応する支持体をそれぞれ制御部24からの指令パルスが示す移送量の分、前記特定周期当たりに対応する移送軸に沿って動かす。具体的には、テーブル移送部102cはテーブル102bを、ラム移送部114bはラム114aを、サドル移送部116bはサドル116aを、クロスレール移送部118bはクロスレール118aをそれぞれ制御部24からの指令パルスが示す移送量の分、前記特定周期当たりに対応する移送軸に沿って動かす。
次に、パルス補間部22は、シャットダウンの処理を行うか否かを判断する(ステップS70)。ここで、パルス補間部22がシャットダウンの処理を行うと判断した場合には、シャットダウンの処理が実行されて本実施形態の数値制御プロセスは終了し、パルス補間部22がシャットダウンを行わないと判断した場合には、上記ステップS58以降の処理が繰り返し行われる。再度行われるステップS58では、パルス補間部22は、上記ステップS64で求めた各移送軸毎の位置座標newp[]を旧座標oldp[]に設定する。
以上のようにして、本実施形態の数値制御装置2による制御プロセスが行われる。
以上説明したように、本実施形態の数値制御装置2では、加工プログラムから求めたW軸パスを補間し、補間後のW軸パスが示すW軸上の位置座標を拘束条件として補間後ツールパスの単位時間毎の各時点の位置座標に対応する各移送軸上の位置座標を求めるため、全ての移送軸のうちZ軸とW軸が不定軸となっていても、ツールパスに対応するZ軸上及びW軸上での前記各時点における位置座標を求めることができ、移送装置102,114,116,118の同時制御を行うことができる。
しかも、本実施形態の数値制御装置2では、工作機械が、W軸についての許容加速度が低い、すなわち動きの緩慢な第2鉛直移送装置118を含みながらも、その緩慢な動きを許容加速度の高い第1鉛直移送装置114によるZ軸に沿った工具106の移送で補わせることにより、第2鉛直移送装置118によるW軸についての低い許容加速度に支配されることなく、迅速かつ高精度の加工制御を実現できる。具体的には、本実施形態では、まず、W軸パスをそのW軸パスの媒介変数による二次微分値が小さくなるように局部補間してW軸に沿った工具106(クロスレール118a)の速度変化が緩やかになるように当該W軸パスを補間した上で、その補間後のW軸パスが示すW軸上での各時点の位置座標を拘束条件として各移送軸上の位置座標を求めるため、W軸に沿った工具106(クロスレール118a)の動きを緩やかにしてその動きの加速度を低い許容加速度に収めながら、Z軸上では、W軸について工具106(クロスレール118a)の動きを緩やかにした分をカバーするような工具106の素早い動きを指示することができる。このため、加速性の良い第1鉛直移送装置114については、第2鉛直移送装置118の加速性の悪さを補う制御、すなわち、第2鉛直移送装置118の加速性の悪さをカバーするようにZ軸に沿って工具106を素早く移送する制御が行われる。このため、第2鉛直移送装置118の加速性が極端に悪くても、それによってワーク100の加工速度が制限を受けるのを防ぐことができ、工作機械に高速でのワーク100の加工を実施させることができる。また、本実施形態では、補間後W軸パスのW軸上での各時点の位置座標を拘束条件として他の移送軸上での各時点の位置座標を求めるため、W軸と同じワーク座標系の座標軸成分(z軸成分)を含むZ軸上の位置座標として、W軸パスの補間によって生じた位置誤差を吸収した位置座標が求められる。このため、ワーク100の加工時には、W軸パスの補間によって生じた位置誤差は工具106の動きに反映されない。その結果、工作機械に高い加工精度でのワーク100の加工を実施させることができる。
なお、本実施形態では、移送軸パス局部補間部16cが分配区間幅の算出に用いるW軸についての許容誤差を、ワーク座標系におけるツールパスのz軸上の位置の許容誤差よりも大きな誤差にしてもよい。このようにすれば、媒介変数による一次微分値の分配、その後の積分によって得られる補間後関数がより緩やかな曲線を示すようになり、その結果、加速性の悪い第2鉛直移送装置118を非常に緩やかに動作させて、より機械ショックの低減を図ることができる。そして、このようにW軸についての許容誤差を大きくして第2鉛直移送装置118の動作を非常に緩やかにしても、上記のように加速性の良い第1鉛直移送装置114によるZ軸上での工具106の素早い動きでカバーすることができるとともに、W軸についての位置誤差を第1鉛直移送装置114によるZ軸上での工具106の移送で吸収して高い加工精度を保つことができる。
また、本実施形態では、ワークの加工時に工具106が通るべき複数の指令点の位置座標の情報と工具移送速度指令に加えてW軸上での特定点の位置座標の軌跡を含む加工プログラムを記憶部4に記憶させておき、その加工プログラムに含まれるW軸上での特定点の位置座標の軌跡と工具移送速度指令とから移送軸パス導出部34がW軸パスを求め、そのW軸パスに基づいてその後の第2鉛直移送装置118の動作を制御するための処理が行われる。このため、本実施形態では、加工プログラムを作成する段階で、加速性の悪い第2鉛直移送装置114による工具106のW軸についての移送の挙動を任意に指定することができる。
なお、今回開示された実施形態は、すべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した実施形態の説明ではなく特許請求の範囲によって示され、さらに特許請求の範囲と均等の意味及び範囲内でのすべての変更が含まれる。
例えば、本発明による数値制御装置は、上記実施形態で示した工作機械以外の各種工作機械に適用することが可能である。図20には、本発明の一実施形態の変形例による数値制御装置が適用される工作機械の一例が示されている。
この工作機械は、パラレルリンク機構126を備えた工作機械である。この工作機械では、パラレルリンク機構126を構成する各工具移送装置131〜136が工具106を移送するL1〜L6軸、及び、水平移送装置124がパラレルリンク機構126全体を水平方向に移送するU軸が、共通の座標軸成分であるワーク座標系のx軸成分を含み、そのx軸座標に対して一意的に座標が定まらない不定軸となっている。
具体的には、この工作機械は、ワーク支持装置122と、工具106と、主軸ヘッド123と、水平移送装置124と、パラレルリンク機構126と、図略の制御盤とを備えている。
ワーク支持装置122は、図略のワークを支持するための装置であり、所定の設置場所に設置されている。このワーク支持装置122は、鉛直面である支持面122aを有しており、この支持面122aにワークを接触させた状態でそのワークを支持する。このワーク支持装置122にセットされたワーク上にワーク座標系が設定される。具体的には、水平面内で支持面122aと平行なx軸と、水平面内で支持面122aに対して垂直なy軸と、それらx軸及びy軸の両方に直交するz軸とからなるワーク座標系がワーク上に設定される。
主軸ヘッド123は、上記実施形態と同様、工具106を保持し、その工具106を軸回りに回転させるものである。
水平移送装置124は、パラレルリンク機構126全体を水平面内においてワーク支持装置122の支持面122aに平行な方向、すなわちワーク座標系のx軸と平行な方向に延びるU軸に沿って移送し、それによって工具106をU軸に沿って移送する。なお、水平移送装置124は、本発明の移送装置及び第2移送装置の概念に含まれるものであり、U軸は、本発明の移送軸及び第2移送軸の概念に含まれるものである。水平移送装置124は、この工作機械に設けられている全ての移送装置の中で最も加速性の悪い移送装置であり、U軸についての許容加速度は他の移送軸についての許容加速度に比べて低い値に設定されている。また、水平移送装置124は、基台124aと、水平支持体124bと、水平支持体移送部124c(図21参照)とを有する。
基台124aは、支持面122aに垂直な方向においてワーク支持装置122から離間した場所に設置されており、この基台124a上に水平支持体124bがU軸に沿って移動可能となるように設けられている。この水平支持体124bは、パラレルリンク機構126を下から支持している。具体的には、この水平支持体124bの上面にパラレルリンク機構126の後述する支持脚128aが設置されている。水平支持体移送部124cは、水平支持体124bをU軸に沿って移送するものである。この水平支持体移送部124cは、駆動源として図略のサーボモータを有しており、そのモータの動力によって水平支持体124bを移送する。
パラレルリンク機構126は、主軸ヘッド123に装着された工具106を、加工プログラムに含まれる工具106の先端の位置座標の軌跡と工具軸ベクトルの変化に従って動かすものであるが、本実施形態では、工具軸ベクトルについてはワーク座標系(x,y,z)において(0,0,1)に固定した状態で当該パラレルリンク機構126を作動させるものとする。このパラレルリンク機構126は、ヘッド支持部128と、複数の工具移送装置131〜136と、先端ジョイント138と、ストラット支持機構140とを有する。
ヘッド支持部128は、主軸ヘッド123を支持するものである。
第1〜第6工具移送装置131〜136は、それぞれ、主軸ヘッド123を各々の移送軸であるL1〜L6軸に沿って動かすことによりそのL1〜L6軸方向に工具106を動かすものである。これら第1〜第6工具移送装置131〜136は、それぞれ、本発明の移送装置及び第1移送装置の概念に含まれるものであり、L1〜L6軸は、それぞれ、本発明の第1移送軸の概念に含まれるものである。第1工具移送装置131は、第1ストラット131a及び第1ストラット移送部131bを備えており、第2工具移送装置132は、第2ストラット132a及び第2ストラット移送部132bを備えている。第3工具移送装置133は、第3ストラット133a及び第3ストラット移送部133bを備えており、第4工具移送装置134は、第4ストラット134a及び第4ストラット移送部134bを備えている。また、第5工具移送装置135は、第5ストラット135a及び第5ストラット移送部135bを備えており、第6工具移送装置136は、第6ストラット136a及び第6ストラット移送部136bを備えている。
第1〜第6ストラット131a〜136aは、それぞれ、一方向に延びる棒状に形成されている。各ストラット131a〜136aは、その一端部が先端ジョイント138を介してヘッド支持部128の基端部側(主軸ヘッド123を支持する側と反対側)に関節移送可能なように接続され、それによって、ヘッド支持部128を支持している。各ストラット131a〜136aは、各々の長手方向に延びるL軸に沿って移動可能となるようにストラット支持機構140によって支持されている。ストラット支持機構140は、水平移送装置124の水平支持体124b上に設置されている。このストラット支持機構140は、ヘッド支持部128を支持する各ストラット131a〜136aの一端部側が水平支持体124b上からワーク支持装置122側へ張り出すようにそれら各ストラット131a〜136aをそれぞれ支持する。
ストラット支持機構140は、水平支持体124b上に設置された支持脚140aと、その支持脚140aによって支えられたストラット支持部140bとを有する。ストラット支持部140bは、ワーク支持装置122側から見て正三角形の各頂点に位置するように配設されている。各ストラット支持部140bは、ストラット131a〜136aを2本ずつ支持しており、その支持しているストラットが各々の長手方向(軸方向)に移動可能となるようにそのストラットを支持している。
第1〜第6ストラット移送部131b〜136b(図21参照)は、第1〜第6ストラット131a〜136aのうち対応するものを対応するL軸に沿って動かすことにより、ヘッド支持部128及び主軸ヘッド123とともに工具106をそのL軸方向に動かす。各ストラット移送部131b〜136bは、駆動源として図略のサーボモータを有しており、そのモータの動力により対応するストラット131a〜136aを移送する。
図略の制御盤は、前記各移送装置124c,131b〜136bや主軸ヘッド123、その他の移送部の制御及び操作を行うためのものである。この制御盤内に、図21に示す当該変形例による数値制御装置2が組み込まれている。
当該変形例による数値制御装置2は、上記実施形態による数値制御装置2と同様の記憶部4、メモリ5及び演算処理部6を備えている。
この変形例では、記憶部4は、ワークの加工時に工具106が通るべきワーク座標系での工具106の位置座標の軌跡と、工具106の移送速度を示す工具移送速度指令と、ワーク座標系での工具106の位置座標の軌跡に対応するU軸上の位置座標の軌跡とを含む加工プログラムを記憶している。なお、この変形例では、工具106の姿勢をその工具軸ベクトルがワーク座標系(x,y,z)において(0,0,1)となる姿勢に固定した状態でワークの加工を行うので、加工プログラムには工具106の姿勢(傾き)を変える命令は含まれていない。また、この変形例では、移送軸パス導出部34、移送軸パス滑らか補間部16a、移送軸パス局部フィルタ16bの移送軸パス局部補間部16c及び移送軸パス誤差補正部16dは、ワークの加工時に水平移送装置124がパラレルリンク機構126及び主軸ヘッド123とともに工具106を動かす基準となるU軸上での特定点の動きをU軸上の位置座標と媒介変数の関数によって表すU軸パスについて、上記実施形態でW軸パスについて行われた処理と同様の処理を行う。なお、U軸パスは、本発明の第2移送軸パスの概念に含まれるものである。また、媒介変数時間関数導出部18は、上記補間後W軸パスの代わりとして補間後U軸パスを用いて、上記実施形態と同様の手法により媒介変数時間関数を導出する。
また、パルス補間部22は、媒介変数時間関数導出部18によって導出された媒介変数時間関数から基準時刻の基準単位時間毎の各時点に対応する媒介変数を求め、その求めた各時点での媒介変数に対応する補間後ツールパスのワーク座標系での位置座標と、その各時点の媒介変数に対応する補間後U軸パスのU軸上での位置座標とを求める。そして、パルス補間部22は、求めた各時点のU軸上での位置座標を拘束条件とし、ワーク座標系における工具106の位置座標と各移送軸上の位置座標との相関関係を示す関係式に基づいて、各移送軸上の位置座標を求める。
この際、パルス補間部22は、上記実施形態と同様にして主軸位置の座標(Sx,Sy,Sz)を求めるとともに、一定値である工具軸ベクトル(0,0,1)を求め、その後、以下の運動学関係式(31)、(32)に基づいて、補間後ツールパスが示す位置座標と、補間後U軸パスが示す位置座標とに対応する各移送軸(U軸、L1〜L6軸)上の位置座標を求める。この時、上記のように求めた補間後U軸パスのU軸上での位置座標を下記uの値とするという拘束条件を用いて各移送軸(L1〜L6軸)上の位置座標を求める。なお、ここで求めるL1〜L6軸上の各位置座標をl[i](i=0,1,2,3,4,5)とする。
(l[i]+o[i])2+d2=(N[j][0]−t[k][0])2+(N[j][1]−t[k][1])2+(N[j][2]−t[k][2])2・・・(31)
t[k][ii]=(Sx−u,Sy,Sz)+T[k][0]×m[0][ii]+T[k][0]×m[1][ii]+T[k][2])×m[2][ii]・・・(32)
ここで、dは、ストラット支持部140bの中心とそのストラット支持部140bに支持されているストラットの軸心との間のずれを示す機械定数である。また、i=0,1,2,3,4,5であり、ii=0,1,2である。また、N[j][0]、N[j][1]、N[j][2]は、3つのストラット支持部140bの中心のワーク座標系での位置座標である。また、T[k][0]、T[k][1]、T[k][2]は、3つの先端ジョイント138の位置座標である。また、o[i]は、各ストラット131a〜136aがストラット支持部140bに支持された点から対応する先端ジョイント138までの対応するL軸上における距離である。また、m[0][]、m[1][]、m[2][]は、ヘッド支持部128の主軸中心回り(工具106の軸心回り)の回転姿勢を拘束した状態において、ヘッド支持部128上に設定されたヘッド支持部128の姿勢を規定するための主軸座標系の互いに直交する3つの座標軸のワーク座標系への余弦を表すものである。当該変形例では、上記したように工具軸ベクトルを(0,0,1)に固定するため、x軸と平行な軸回りにおける当該主軸ヘッド123の回転角度α及びy軸と平行な軸回りにおける当該主軸ヘッド123の回転角度βは0に固定される。そこで、m[0][]は以下の式(33)で表され、m[1][]は以下の式(34)で表され、m[2][]は以下の式(35)で表される。
m[0][]=(cos(β),0,−sin(β))=(1,0,0)・・・(33)
m[1][]=(sin(α)×sin(β),cos(α),sin(α)×cos(β))=(0,1,0)・・・(34)
m[2][]=(cos(α)×sin(β),−sin(α),cos(α)×cos(β))=(0,0,1)・・・(35)
また、パルス補間部22は、求めた各移送軸の基準単位時間毎の位置座標から上記実施形態と同様にしてU軸及びL1〜L6軸の各移送軸についての基準単位時間当たりの移送量を求める。そして、制御部24は、その移送量を指令パルスとし、U軸についての指令パルスを水平支持体移送部124cのサーボモータへ出力し、L1〜L6軸についての指令パルスをそれぞれ対応するストラット移送部131b〜136bのサーボモータへ出力する。これにより、水平支持体移送部124cは水平支持体124bを、第1〜第6ストラット移送部131b〜136bは第1〜第6ストラット131a〜136aの対応するものをそれぞれ制御部24からの指令パルスが示す移送量の分、特定周期当たりに対応する移送軸に沿って動かす。
この変形例による数値制御装置2の上記以外の構成及び制御プロセスは、上記実施形態による数値制御装置2と同様である。
この変形例では、加工プログラムから求めたU軸パスを補間し、補間後のU軸パスが示すU軸上の位置座標を拘束条件として補間後ツールパスの単位時間毎の各時点の位置座標に対応する各移送軸上(L1〜L6軸上)の位置座標を求めるため、L1〜L6軸とU軸が不定軸となっていても、ツールパスに対応するL1〜L6軸上及びU軸上での前記各時点における位置座標を求めることができ、全ての移送軸について対応する移送装置131〜136,124の同時制御を行うことができる。また、この変形例では、工作機械が、U軸方向についての許容加速度が低い、すなわち、U軸に沿った動きが緩慢な水平移送装置124を含んでいても、その緩慢な動きを許容加速度の高い第1〜第6工具移送装置131〜136によるL1〜L6軸に沿った各ストラットの動作に伴う工具106の動きで補わせることにより、ワーク座標系におけるx軸方向への工具106の動きが悪くなるのを防ぐことができ、高速な加工制御を実現できる。また、この変形例では、補間後U軸パスのU軸上での各時点の位置座標を拘束条件としてL1〜L6軸上での各時点の位置座標を求めるため、U軸と同じx軸成分を含むL1〜L6軸上の位置座標として、U軸パスの補間によって生じた位置誤差を吸収した位置座標が求められる。このため、U軸パスの補間によって生じた位置誤差は、ワーク加工時の工具106の動きに反映されず、高精度の加工制御を実現できる。
また、上記実施形態では、移送軸パス導出部34が加工プログラムに含まれるW軸上での特定点の位置座標の軌跡と工具移送速度指令とに基づいてW軸パスを求めたが、W軸パスを導出するための構成は、このような構成に限定されない。例えば、移送軸パス導出部34は、ツールパス導出部32によって導出されたツールパスから特定の導出ルールに基づいてW軸パスを導出してもよい。ここで、特定の導出ルールとは、ツールパスが示すz軸座標に対して特定の比率(例えば1/2)を乗じて得た値をW軸パスのW軸座標とするというルールである。
この構成によれば、ワークの加工時に工具106の先端点が通るべき複数の指令点の位置座標の情報と工具移送速度指令を含む加工プログラムを記憶部4に記憶させておくだけで、その加工プログラムからツールパス導出部32がツールパスを導出した後、そのツールパスから移送軸パス導出部34が自動的にW軸パスを導出するので、加工プログラムにおいてW軸上での特定点の位置座標の軌跡を指定しておく必要がなく、加工プログラムを簡略化することができる。
また、同様に、上記変形例において、移送軸パス導出部34が、ツールパス導出部32によって導出されたツールパスから特定の導出ルールに基づいてU軸パスを導出してもよい。ここで、特定の導出ルールとは、例えばツールパスが示すx軸座標をそのままU軸パスのU軸座標とするというルールである。なお、この導出ルールとして、ツールパスが示すx軸座標に特定の比率を乗じて得た値をU軸パスのU軸座標とするというルールを採用してもよい。
また、本発明による数値制御装置は、上記実施形態及び上記変形例で示したような工作機械以外の各種工作機械に適用することも可能である。上記実施形態及び上記変形例で示した工作機械以外の工作機械に本発明の数値制御装置を適用する場合において、第1移送軸と第2移送軸は、互いに平行な移送軸に限定されず、ワーク座標系における特定の同じ座標軸成分を含む移送軸であればよい。
また、ツールパス局部フィルタ15bと移送軸パス局部フィルタ16bとによる分配区間幅及び補間区間幅の導出方法は、上記した方法に限定されるものではなく、上記方法以外の種々の導出方法により分配区間幅及び補間区間幅を求めてもよい。また、上記実施形態では、補間区間幅を分配区間幅に等しい大きさの区間幅としたが、補間区間幅はこのような区間幅に限定されない。すなわち、補間区間幅は、分配区間幅よりも大きい区間幅であってもよい。
また、ツールパスの一次微分値を分配する際に用いる分配関数は、上記ベル型の分配関数に限定されず、ベル型以外の種々の分配関数によりその分配を行ってもよい。
また、ツールパスの局部補間においては、補間区間内の補間対象点において必ずしも媒介変数による二次微分値が連続となるように補間する必要はない。例えば、ツールパスの補間区間内の補間対象点において媒介変数による一次微分値は連続となるが、二次微分値は依然不連続である状態にその補間区間を局部補間してもよい。
また、滑らか補間後のパスにおいて媒介変数による二次微分値が上限値を超える区間が一定区間連続して存在する場合には、その一定区間分だけ分配区間を広げた区間を補間区間としてもよい。
また、上記実施形態では、加工プログラムに工具の先端点が通るべき指令点のワーク座標系における位置座標の情報とその指令点に対応する工具軸ベクトルの情報とが含まれている例を示したが、加工プログラムに含まれる各指令点は、工具の先端点が通るべき位置座標と工具の姿勢を規定するA軸座標及びC軸座標からなっていてもよい。