(57)【特許請求の範囲】
【請求項１】
テーブルに取付けられたワークに対して直線軸３軸と回転軸２軸によって加工する５軸加工機を制御する数値制御装置において、ワークを設置した時の設置誤差を補正するワーク設置誤差補正手段を備え、該ワーク設置誤差補正手段とは、前記直線軸３軸と前記回転軸２軸の指令数値に基づいて工具の指令座標系上の位置と方向を計算する工具位置方向計算手段と、該工具位置方向計算手段で計算された工具の指令座標系上の位置と方向とが設置誤差を有するワーク上で保たれるように、ワークを設置した時の設置誤差に対応してあらかじめ設定した誤差量によって前記直線軸３軸と前記回転軸２軸に対する誤差補正を行う誤差補正手段と、該誤差補正手段の中の三角関数の計算において解が複数存在した場合に前記誤差補正手段によって補正された回転軸２軸の位置は前記指令座標系上での前記指令数値に近い解を選択する解選択手段を備え、該ワーク設置誤差補正手段によって求めた直線軸３軸と回転軸２軸の座標値に基づいて各軸を駆動することを特徴とする数値制御装置。
【請求項２】
該誤差補正手段の中の三角関数の計算において、回転軸２軸に対するarctan、arccos、またはarcsinによる解が複数存在した場合に該工具位置方向計算手段において計算した工具の指令座標上の方向に近い解を選択する解選択手段を備えたことを特徴とする請求項１記載の数値制御装置。
【請求項３】
ワークに設置した時の設置誤差を補正するワーク設置誤差補正手段およびあらかじめ回転軸の動作可能な範囲を設定する回転軸動作範囲設定手段を備え、前記ワーク設置誤差補正手段は更に前記誤差補正手段によって求められる回転軸２軸の位置が前記回転軸動作範囲設定手段によって設定した範囲内の位置となるように丸める回転軸位置丸め手段を備え、該ワーク設置誤差補正手段によって求めた直線軸３軸と回転軸２軸の座標値に基づいて各軸を駆動することを特徴とする請求項１または２のいずれか１つに記載の数値制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、テーブルに取付けられたワーク（加工物）に対して直線軸３軸と回転軸２軸によって加工する５軸加工機を制御する数値制御装置に関し、特に、ワークを設置した時の設置誤差を補正するワーク設置誤差補正手段を備える数値制御装置に関する。
【背景技術】
【０００２】
工作機械での加工を容易にするために、ワーク（加工物）を固定する治具が用いられる。この場合、治具を使用することにより工作機械に対するワーク（加工物）の取付誤差（オフセット）が生じるために、このような取付誤差を補正する必要がある。
【０００３】
特許文献１には前記取付誤差を補正する技術が開示されている。同技術は、治具に取付けられたワークに対して工具を同時５軸制御する数値制御装置におけるワークの取付誤差補正方法であり、数値指令に基づいてワークの座標系における工具の位置と方向とを決定し、各方向に対してあらかじめ設定した量の誤差補正を行い、誤差補正を行った結果の工具位置と方向とを満足させる５軸の座標値を求め、前記５軸の座標値に基づいて数値制御指令を各軸の駆動手段に与えるワークの取付誤差を補正するものである。
【０００４】
【特許文献１】特開平７−２９９６９７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
背景技術の欄で説明した特許文献１に開示される技術は、Ｂ軸やＡ軸位置を求めるためにarctanを使用した計算を実行することが説明されている（段落「００４３」、段落「００４６」参照）。arctanを使用した計算は０度〜３６０度の角度の間において通常２つの解を持っており、これでは補正されたＢ軸やＡ軸位置を一意的に確定することができない。
【０００６】
また、求めた補正位置は指令位置とは通常相違しており、求めた補正位置に移動しようとしても機械構造上の制限などから移動できない場合もあり得る。例えば、特許文献１において図２、図４などに示されるように、Ａ軸がテーブル傾斜軸であれば０度〜３６０度における任意の位置には通常移動できない。換言すれば、指令位置は通常ＣＡＭ（Computer Aided Manufacturing）から出力されるが、ＣＡＭ側で移動範囲が設定できるようになっており、ＣＡＭ側の処理によって移動範囲内で指令位置が作成されるようになっている。しかし、数値制御装置側で求めた補正位置は指令位置とは通常相違するため、求めた補正位置に移動しようとしても、構造上の制限などから移動できない場合がある。あるいは、本来移動できない位置に移動しようとしてオーバータラベルのアラームになったり、機械が破損する危険も考えられる。
【０００７】
そこで、本発明は、誤差補正後の回転軸を指令位置に近くのより望ましい位置に移動できる、テーブルに取付けられたワーク（加工物）に対して直線軸３軸と回転軸２軸によって加工する５軸加工機を制御する数値制御装置であって、ワークを設置した時の設置誤差を補正するワーク設置誤差補正手段を備える数値制御装置を提供することを目的とする。
また、本発明は、制限範囲内のより望ましい位置に移動できる、テーブルに取付けられたワーク（加工物）に対して直線軸３軸と回転軸２軸によって加工する５軸加工機を制御する数値制御装置であって、ワークを設置した時の設置誤差を補正するワーク設置誤差補正手段を備える数値制御装置を提供することを目的とする。
【課題を解決するための手段】
【０００８】
本願の請求項１に係る発明は、テーブルに取付けられたワークに対して直線軸３軸と回転軸２軸によって加工する５軸加工機を制御する数値制御装置において、ワークを設置した時の設置誤差を補正するワーク設置誤差補正手段を備え、該ワーク設置誤差補正手段とは、前記直線軸３軸と前記回転軸２軸の指令数値に基づいて工具の指令座標系上の位置と方向を計算する工具位置方向計算手段と、該工具位置方向計算手段で計算された工具の指令座標系上の位置と方向とが設置誤差を有するワーク上で保たれるように、ワークを設置した時の設置誤差に対応してあらかじめ設定した誤差量によって前記直線軸３軸と前記回転軸２軸に対する誤差補正を行う誤差補正手段と、該誤差補正手段の中の三角関数の計算において解が複数存在した場合に前記誤差補正手段によって補正された回転軸２軸の位置は前記指令座標系上での前記指令数値に近い解を選択する解選択手段を備え、該ワーク設置誤差補正手段によって求めた直線軸３軸と回転軸２軸の座標値に基づいて各軸を駆動することを特徴とする数値制御装置である。  
請求項２に係る発明は、該誤差補正手段の中の三角関数の計算において、回転軸２軸に対するarctan、arccos、またはarcsinによる解が複数存在した場合に該工具位置方向計算手段において計算した工具の指令座標上の方向に近い解を選択する解選択手段を備えたことを特徴とする請求項１記載の数値制御装置である。
【０００９】
請求項３に係る発明は、ワークに設置した時の設置誤差を補正するワーク設置誤差補正手段およびあらかじめ回転軸の動作可能な範囲を設定する回転軸動作範囲設定手段を備え、前記ワーク設置誤差補正手段は更に前記誤差補正手段によって求められる回転軸２軸の位置が前記回転軸動作範囲設定手段によって設定した範囲内の位置となるように丸める回転軸位置丸め手段を備え、該ワーク設置誤差補正手段によって求めた直線軸３軸と回転軸２軸の座標値に基づいて各軸を駆動することを特徴とする請求項１または２のいずれか１つに記載の数値制御装置である。
【発明の効果】
【００１０】
本発明は、テーブルに取付けられたワークに対して直線軸３軸と回転軸２軸によって加工する５軸加工機を制御する数値制御装置において、誤差補正の三角関数の計算において解が複数存在した場合に回転軸位置は指令数値に基づいて計算した工具の指令座標系上の
前記指令数値に近い解を選択する解選択手段を備えることにより、誤差補正後の回転軸は指令位置に近くのより望ましい位置に移動することが可能となった。
また、回転軸位置はあらかじめ設定した回転軸動作範囲内になるよう丸める回転軸位置丸め手段をさらに備えることにより、制限範囲内のより望ましい位置に移動することが可能となった。
【発明を実施するための最良の形態】
【００１１】
以下、本発明の実施形態について図面とともに説明する。  
図１は工具ヘッド回転形の工作機械におけるワーク設置誤差補正を説明する図である。この機械においては、直線軸Ｘ、Ｙ、Ｚ軸の動作とともに工具ヘッドがＺ軸回りのＣ軸とＹ軸回りのＢ軸によって回転するようになっている。  
ワークを設置した時のずれやテーブルの傾斜などによって本来のワーク位置に対して実ワーク位置がずれている。そのずれ量はあらかじめ測定され、基準機械座標系に対するＸ、Ｙ、Ｚ軸方向の並進誤差量（δｘ、δｙ、δｚ）、Ｘ軸回りの回転誤差量（α）、Ｙ軸回りの回転誤差量（β）、Ｚ軸回りの回転誤差量（γ）として設定されている。そして、基準機械座標系上の基準ワーク位置と実機械座標系上の実ワークの位置が同じとなるように、この誤差量にしたがって基準機械座標系に対する実機械座標系が作成されている。
【００１２】
プログラム指令（Ｘｃ、Ｙｃ、Ｚｃ、Ｂｃ、Ｃｃ）は基準機械座標系で指令される。つまり、基準機械座標系を指令座標系とする。実機械座標系上においてプログラム指令に基づく工具の指令座標系上の位置と方向を保つように、換言すれば、実機械座標系上の工具の位置と方向がプログラム指令に基づく基準座標系上の工具の位置と方向と同じになるように、あらかじめ設定されたＸ、Ｙ、Ｚ軸方向の並進誤差量（δｘ、δｙ、δｚ）、Ｘ軸回りの回転誤差量（α）、Ｙ軸回りの回転誤差量（β）、Ｚ軸回りの回転誤差量（γ）による直線軸３軸と回転軸２軸に対するワーク設置誤差補正を次のように実施する。
【００１３】
図２には、Ｂ＝０、Ｃ＝０の位置、Ｂ軸Ｃ軸の回転方向を示している。ここで、Ｂ＝０、Ｃ＝０の時の工具方向を（０、０、１）Tとする。  
まず、指令数値に基づいて工具の指令座標系上の、換言すれば、本発明の実施形態では、基準機械座標系上の位置と方向とを計算する。  
Ｂ＝Ｂｃ、Ｃ＝Ｃｃの時の工具方向（Ｉ、Ｊ、Ｋ）Tは「数１」に記載されるように求められる。なおここで、工具方向（Ｉ、Ｊ、Ｋ）Tが、工具の指令座標系上の方向である。そして、Ｔは転置を表す。また、ｃｏｓ（Ｃｃ）などの三角関数の表記において自明の場合には（）を省略して記載する。
【００１４】
【数１】
0004291386.tif 000002
【００１５】
プログラム指令は基準機械座標系で指令されるので、工具の指令座標系上の位置は直線軸のプログラム指令（Ｘｃ、Ｙｃ、Ｚｃ）そのものである。
【００１６】
次に、誤差補正を次のように行う。Ｘ軸回りの回転誤差量（α）、Ｙ軸回りの回転誤差量（β）、Ｚ軸回りの回転誤差量（γ）によって、工具方向（Ｉ、Ｊ、Ｋ）Tは（Ｉａ、Ｊａ、Ｋａ）Tと補正される。ここで、回転誤差を補正する順は（α）、（β）、（γ）の順とする。
【００１７】
【数２】
0004291386.tif 000003
【００１８】
同様に、（Ｘｃ、Ｙｃ、Ｚｃ）Tは（Ｘａ、Ｙａ、Ｚａ）Tと補正される。（Ｘｃ、Ｙｃ、Ｚｃ）Tの補正においては、回転誤差の補正とともに並進誤差（δｘ、δｙ、δｚ）の補正も加算される。
【００１９】
【数３】
0004291386.tif 000004
【００２０】
「数２」によって求められる（Ｉａ、Ｊａ、Ｋａ）Tに対し、それを実現するＢ、Ｃ軸位置Ｂａ、Ｃａは次のように計算される。ここで、ａｒｃｃｏｓの計算、ａｒｃｔａｎの計算はともに０度〜１８０度の値を得るとする。ａｒｃｔａｎの計算におけるｎ＊３６０度の項のｎは整数値であり、３６０度のｎ倍の値を加算した位置も解であることを示す。つまり、Ｃ軸は正負方向に何回転でも動作可能だが、Ｂ軸は−１８０度〜１８０度内の動作が可能としている。
１）Ｉａ＞０、Ｊａ＞０の場合
【００２１】
【数４】
0004291386.tif 000005
【００２２】
【数５】
0004291386.tif 000006
【００２３】
２）Ｉａ＜０、Ｊａ＞０の場合
【００２４】
【数６】
0004291386.tif 000007
【００２５】
【数７】
0004291386.tif 000008
【００２６】
３）Ｉａ＜０、Ｊａ＜０の場合
【００２７】
【数８】
0004291386.tif 000009
【００２８】
【数９】
0004291386.tif 000010
【００２９】
４）Ｉａ＞０、Ｊａ＜０の場合
【００３０】
【数１０】
0004291386.tif 000011
【００３１】
【数１１】
0004291386.tif 000012
【００３２】
５）Ｉａ＝０、Ｊａ＞０の場合
【００３３】
【数１２】
0004291386.tif 000013
【００３４】
【数１３】
0004291386.tif 000014
【００３５】
６）Ｉａ＝０、Ｊａ＜０の場合
【００３６】
【数１４】
0004291386.tif 000015
【００３７】
【数１５】
0004291386.tif 000016
【００３８】
７）Ｉａ＞０、Ｊａ＝０の場合
【００３９】
【数１６】
0004291386.tif 000017
【００４０】
【数１７】
0004291386.tif 000018
【００４１】
８）Ｉａ＜０、Ｊａ＝０の場合
【００４２】
【数１８】
0004291386.tif 000019
【００４３】
【数１９】
0004291386.tif 000020
【００４４】
９）Ｉａ＝０、Ｊａ＝０、Ｋａ＝１の場合
【００４５】
【数２０】
0004291386.tif 000021
【００４６】
Ｉａ＝０、Ｊａ＝０、Ｋａ＝−１の場合については、機械構造上そのようなケースが発生しないので記載していない。「数４」〜「数１９」において、Ｂａはａｒｃｃｏｓの計算によって求めているが、次のようにａｒｃｓｉｎの計算によって求めることも可能である。ここで、ａｒｃｓｉｎの計算は０度〜９０度の値を得るとする。
【００４７】
【数２１】
0004291386.tif 000022
【００４８】
ここで、１）、２）、３）、４）、５）、６）、７）、８）の場合ごとに２組の解があるが、それぞれの解の組およびｎに対して「数２２」の式のＤを計算し、最も小さなＤとなる解の組およびｎを選択する。ただし、９）の場合は解は１組のみであるので、「数２０」の式の解を選択する。
【００４９】
【数２２】
0004291386.tif 000023
【００５０】
このことによって、指令値Ｂｃ、Ｃｃに基づいて計算された工具の指令座標系上の方向により近い工具方向が選択される。そのようにして選択した解をＢｓ、Ｃｓとする。  
図３はＢ軸とＣ軸の駆動範囲を回転軸位置の数直線で表した図である。Ｂ軸、Ｃ軸には動作範囲があることがある。ここでは、Ｂ軸は機械構造上−４５度〜４５度内、Ｃ軸は−１３５度〜１３５度内でしか動作しないとする。この回転動作範囲はあらかじめ設定されている。この場合、上記のように最も小さなＤとなる解の組およびｎを選択した後、選択された解Ｂｓ、ＣｓがＢ軸、Ｃ軸の動作範囲を超えると、Ｂ軸、Ｃ軸位置をそれらの動作範囲内でＢｓ、Ｃｓに最も近い位置となるように丸める。例えば、Ｂｓ＝−５０度、Ｃｓ＝１４０度となった場合、それぞれ丸められたＢ軸位置Ｃ軸位置をＢｒ、Ｃｒとすると、Ｂｒは−４５度、Ｃｒは１３５度とし、それらの位置および「数２」で求められた（Ｘａ、Ｙａ、Ｚａ）Tへ、直線軸３軸と回転軸２軸を駆動する。それを回転軸位置の数直線で表すと図３のようになる。
【００５１】
図４は指令解析部で解析されたプログラム指令に対して設置誤差補正を実行する場合の本発明の実施形態の概略ブロック図である。この実施形態では、指令数値とはプログラムで指令された数値としている。  
図５は補間位置に対してワーク設置誤差補正を行う本発明の実施形態の概略ブロック図である。この実施形態では、指令数値とは補間されたＸ、Ｙ、Ｚ、Ｂ、Ｃ軸位置としその位置に対してワーク設置誤差補正を行う場合である。
【００５２】
また、工具ヘッド回転形の機械で説明してきたが、５軸加工機には回転軸２軸によってテーブルが回転するテーブル回転形の機械、回転軸１軸によってテーブルが回転し他の回転軸１軸によって工具ヘッドが回転する混合形の機械がある。それらの機械においても同様に、ワーク設置誤差補正の三角関数の計算において、回転軸２軸に対するarctan、arccos、またはarcsinによる解が複数存在することがあり、その場合にも同様に指令数値に基づいて計算した工具の指令座標系上の方向に近い解を選択することができる。また、それらの機械においても回転軸の動作範囲があることがあり、同様に、回転軸位置をそれらの動作範囲内で選択された解に最も近い位置とすることができる。  
また、ここでは回転軸２軸としてＢ軸とＣ軸とを使用して説明してきたが、Ｘ軸回りのＡ軸を使用したＡ軸とＣ軸やＡ軸とＢ軸が回転軸２軸である場合、およびそれらの回転軸２軸によるテーブル回転形機械、混合形機械においても同様である。
【００５３】
図６は本発明の誤差補正を実行する部分のアルゴリズムのフローチャートを示している。[Ｓ１]並進誤差量（δｘ、δｙ、δｚ）、回転誤差量（α、β、γ）、回転軸２軸の動作範囲を得る。[Ｓ２]「数１」〜「数２０」式によって、補正された直線軸位置（Ｘａ、Ｙａ、Ｚａ）、回転軸位置（Ｂａ１、Ｃａ１）（Ｂａ２、Ｃａ２）を求める。[Ｓ３]「数４」〜「数１９」式に記載の回転軸の第１解、第２解およびｎのうち、「数２２」式に記載されたＤが最も小さくなる第１解または第２解およびｎを選択し、Ｂｓ、Ｃｓとする。Ｂｒ＝Ｂｓ、Ｃｒ＝Ｃｓとしておく。[Ｓ４]ＢｓはＢ軸動作範囲外であるか否かを判断する。ＹＥＳの場合ステップＳ５に進み、ＮＯの場合ステップＳ６に行く。[Ｓ５]Ｂ軸動作範囲内でＢｓに最も近い位置をＢｒとする。[Ｓ６]ＣｓはＣ軸動作範囲外であるか否かを判断する。ＹＥＳの場合ステップＳ７へ進み、ＮＯの場合ステップＳ８へ行く。[Ｓ７]Ｃ軸動作範囲内でＣｓに最も近い位置をＣｒとする。[Ｓ８]Ｂｒ、ＣｒをＢ軸、Ｃ軸の誤差補正位置とし、終了する。
【００５４】
図７は本発明の一実施形態における数値制御装置（ＣＮＣ）１００のブロック図である。ＣＰＵ１１は数値制御装置１００を全体的に制御するプロセッサである。ＣＰＵ１１は、ＲＯＭ１２に格納されたシステムプログラムを、バス２０を介して読み出し、該システムプログラムにしたがって数値制御装置全体を制御する。ＲＡＭ１３には一時的な計算データや表示データおよび表示器／ＭＤＩユニット７０を介してオペレータが入力した各種データが格納される。ＣＭＯＳメモリ１４は図示しないバッテリでバックアップされ、数値制御装置１００の電源がＯＦＦされても記憶状態が保持される不揮発性メモリとして構成される。ＣＭＯＳメモリ１４内には、インタフェース１５を介して読み込まれた加工プログラムや表示器／ＭＤＩユニット７０を介して入力された加工プログラムなどが記憶される。また、ＲＯＭ１２には、加工プログラムの作成および編集のために必要とされる編集モードの処理や自動運転のための処理を実施するための各種システムプログラムがあらかじめ書き込まれている。ＣＡＭなどを使って作成された加工プログラムがインタフェース１５を介して入力され、ＣＭＯＳメモリ１４に格納されている。
【００５５】
各軸の軸制御回路３０〜３４はＣＰＵ１１からの各軸の移動指令を受けて、各軸の指令をサーボアンプ４０〜４４に出力する。サーボアンプ４０〜４４はこの指令を受けて、各軸のサーボモータ５０〜５４を駆動する。各軸のサーボモータ５０〜５４は位置・速度検出器を内蔵し、この位置・速度検出器からの位置・速度フィードバック信号を軸制御回路３０〜３４にフィードバックし、位置・速度のフィードバック制御を行なう。なお、図７では位置・速度のフィードバックについては省略している。
【００５６】
サーボモータ５０〜５４は、工作機械のＸ、Ｙ、Ｚ、Ｂ、Ｃ軸を駆動するもので、５軸工作機械を駆動制御するものである。スピンドル制御回路６０は主軸回転指令を受け、スピンドルアンプ６１にスピンドル速度信号を出力する。スピンドルアンプ６１はスピンドル速度信号を受けて、主軸モータ（ＳＭ）６２を指令された回転速度でスピンドル制御回路６０にフィードバックし、速度制御を行う。
【００５７】
以上のような数値制御装置１００の構成は従来の数値制御装置の構成と変わりはなく、この数値制御装置１００によって５軸加工機が駆動制御される。そして、数値制御装置１００のプロセッサ（ＣＰＵ）１１が、ワークを設置したときの設置誤差の補正処理や回転軸位置丸め処理のアルゴリズムを実行する。
【図面の簡単な説明】
【００５８】
【図１】工具ヘッド回転形の工作機械におけるワーク設置誤差補正を説明する図である。
【図２】Ｂ軸、Ｃ軸の回転方向を示す図である。
【図３】Ｂ軸とＣ軸の駆動範囲を回転軸位置の数直線で表した図である。
【図４】プログラム指令に対してワーク設置誤差補正を行う本発明の機能ブロック概要図である。
【図５】補間位置に対してワーク設置誤差補正を行う本発明の機能ブロック概要図である。
【図６】本発明の誤差補正を実行する部分のアルゴリズムのフローチャートを示している。
【図７】本発明の一実施形態の要部ブロック図である。
【符号の説明】
【００５９】
１  指令解析部
２  ワーク設置誤差補正部
３  補間処理部
【図１】
0004291386.tif 000024
【図２】
0004291386.tif 000025
【図３】
0004291386.tif 000026
【図４】
0004291386.tif 000027
【図５】
0004291386.tif 000028
【図６】
0004291386.tif 000029
【図７】
0004291386.tif 000030