JP4059734B2 - 数値制御装置 - Google Patents
数値制御装置 Download PDFInfo
- Publication number
- JP4059734B2 JP4059734B2 JP2002251597A JP2002251597A JP4059734B2 JP 4059734 B2 JP4059734 B2 JP 4059734B2 JP 2002251597 A JP2002251597 A JP 2002251597A JP 2002251597 A JP2002251597 A JP 2002251597A JP 4059734 B2 JP4059734 B2 JP 4059734B2
- Authority
- JP
- Japan
- Prior art keywords
- axis
- movement
- corner
- vector
- block
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Numerical Control (AREA)
Description
【発明の属する技術分野】
この発明は、回転軸を含む加工制御を行う数値制御装置に関し、進行方向の変化角度が大きな指令ブロックの継目における加工時に発生する切削工具の振動や指令値と実際の移動軌跡の差異を抑制した数値制御装置に関するものである。
【0002】
【従来の技術】
数値制御装置(NC装置)によって、例えばワークの切削加工を行う場合、指令に基づいてワークと工具とが相対移動されワークを加工するのであるが、例えば工具の進行方向が変化する場合(換言すればコーナ形状の加工の場合)、工具の移動につき進行方向の変化の程度を判定し(換言すればコーナ判別を行い)、変化の程度によっては指令された速度よりも減速した移動処理(減速処理)を行い、指令どおりの加工を行う必要がある。すなわち、指令どおりのコーナ形状となるように高精度加工を保証するためには、コーナ部において減速処理を行う必要がある場合が存在し、この減速処理で使われる技術にコーナ判別がある。例えば、NC指令をG91(ワークと工具の相対移動指令)、G01(切削直線移動)とした場合、
G91 G01 X10.0 F10000.0 ・・・増分値でX方向に10mmを10m/分で直線補間
G01 X10.0 Y0.1 ・・・X方向に10mm、Y方向に0.1mmを直線補間
G01 X-10.0 ・・・X方向に−10mmを直線補間
という加工プログラムは、図9に示すような軌跡を描く。この図9において、第1ブロックと第2ブロックの変化する角度θ1は小さい(コーナが緩い)ので、減速することなくF10000.0にて指定された送り速度を維持して加工しても、加工面を滑らかに保つことができるが、第2ブロックと第3ブロックのなす角度θ2は大きい(コーナがきつい)ので、F10000.0より小さな速度に減速してコーナに近づき、加速しながらコーナを出て行くという処理を行わないと、加工されたコーナの形状がだれてしまう。このため第1ブロックと第2ブロックとの角度変化及び第2ブロックと第3ブロックとの角度変化についてコーナ判別という判断を行う処理が必要となる。
【0003】
図10は、このコーナ判別処理を搭載する数値制御装置の概略構成を示すブロック図である。図10において、1は加工プログラムを格納している記憶装置、2は記憶装置1内に格納されている加工プログラムを読み込んで各ブロックの移動開始点と移動終了点の算出およびコーナ判別などを行うプログラム解析部、3はプログラム解析部2により解析された移動開始点と移動終了点に基づいて補間処理を実行し、各軸方向の移動量に分配する補間部、4は各軸方向の移動量とコーナ判別部が付加した加減速情報から移動サンプリング周期当たりの移動量を計算し、移動指令パルスを出力する移動指令パルス分配部、5は移動指令パルス分配部4からの指令を入力して、移動指令に移動があった場合に指令パルスに対して加減速処理を実行する加減速部、6は加減速部5からの信号を入力して、指令パルスを出力する指令パルス出力部、7は指令パルス出力部6からの指令パルスを入力して制御対象であるモータ8を制御する駆動部である。
【0004】
ここにおいて、プログラム解析部2は以下の3つの部分から構成されている。すなわち、21は加工プログラムを取り込み、数値制御装置が計算しやすい情報へと変換するプログラム読込部、22は各ブロックの移動開始点と移動終了点を算出するパス生成部、23はブロック間における移動ベクトルの変化量からコーナの角度変化を評価し、コーナが閾値より大きな角度変化を有する場合、コーナ付近での速度を十分小さな値にクランプするという情報を付加するコーナ判別部である。
【0005】
ここで従来のコーナ判別部23でのコーナ判別処理を、図11及び図12を参照して述べる。図11は、第1ブロックから第2ブロックへの移動に際し、移動ベクトルrn-1から移動ベクトルrnへ変化した場合の様子を示しており、加工プログラムの指令としては、G91 G01 X20 Y10 Z10からG01 X10 Y20 Z30への変更を示している。そして、従来のコーナ判別処理は、cosθ=rn・rn-1/(|rn|*|rn-1|)という余弦定理(ここではベクトルの内積を表す公式)に当てはめて、コーナ角度θを算出する。なお、図11において、cosθの式中、上式はいわゆる第2余弦定理、下式は内積の公式であるが、角度θを求める式であることは、代わりがない。また、式において|rn|は移動ベクトルrnの大きさ、"・"はベクトルの内積、rnの添え字"n"はn番目のブロックであることを意味する。
【0006】
具体的には、「G91; G01 X20 Y10 Z10; G01 X10 Y20 Z30;」というプログラム指令にあって、移動ベクトルrn-1、rnを成分で表すと、rn-1=(20,10,10)、rn=(10,20,30)となり、コーナ角度は成分表示の公式からcosθ=rn・rn-1/(|rn|*|rn-1)=(20*10+10*20+10*30)/(sqrt(202+102+102)*sqrt(102+202+302))=0.7637・・・として求めることができる。ここで、sqrt(X)はXの平方根を表す。
【0007】
この結果、コーナ判別処理としては、図12に示すようにブロック継目直前の移動ベクトルrn-1の取得を行い(ステップS301)、ついでブロック継目直後の移動ベクトルrn の取得を行う(ステップS302)。この後、余弦定理によってコーナの角θを算出する(ステップS303)。
【0008】
【発明が解決しようとする課題】
以上の説明は、直線移動のみの加工を前提にして説明したものである。すなわち、ある軸の直線移動プログラム指令が急激に変化するブロックでは、その軸のモータ出力が指令についていけないので、減速しなければいけないという判断を、コーナ角度の大小を使って判断している。しかし、加工にあたっては、移動軸として回転軸を有する場合がある。この場合、従来の数値制御装置では、直線軸のみでコーナ判別を行う場合と回転軸を含む直線軸の場合とで、コーナ判別の方法を分けることなく、同一のコーナ判別処理を行っている。
【0009】
しかし、ワークと工具の刃先のなす相対軌跡という面から考えた場合、従来の判別処理にて算出されるコーナ角度は、移動軸に回転軸が含まれる場合には、以下の様な問題のある角度計算を行ってしまう。
【0010】
すなわち、例えばC軸を回転軸としZ軸を直線軸である移動軸とした場合、「G91; G01 Z100 C90; G01 Z100 C-90;」というプログラム指令では、計算されるコーナ角度はcosθ=rn・rn-1/(|rn|*|rn-1)=(100*100+90*-90)/(sqrt(1002+902)*sqrt(1002+902))=0.10497・・・と計算される。従って、従来のコーナ判別処理によって算出されるコーナ角度は、工具やワークの形状に拘らず、軸の移動量が同じ場合には、常に同じコーナ判別を行ってしまうことになる。
【0011】
ところが、図13のように、半径の大きさが極端に異なる2種類のワークA、Bを想定してみれば明らかであるが、ワークAもワークBも「G91; G01 Z100 C90; G01 Z100 C-90;」というブロックを実行しており、刃先とワークの相対軌跡、つまり切削が行われていく軌跡は、“G01 Z100 C90;”のブロックが矢印▲1▼、“G01 Z100 C-90;”のブロックが矢印▲2▼で表されているにも拘らず、矢印▲1▼と矢印▲2▼のなす角度θは、軸回転にかかわる周速度の違いから半径が小さいワークBよりも半径の大きいワークAの方が鋭くなっている。このように、従来のコーナ判別では、回転軸が含まれる場合に正しいコーナ判別を行うことができない。
【0012】
なお、回転軸制御の従来例として特開平4−340604号公報記載の技術があるが、この技術(特開平4−340604)は速度制御の判断を行うのが目的であり、ブロック間のコーナ角度を算出するものでなく、更には、回転軸が直交3軸上で任意の方向にある場合(例えば、本発明にて後述する(x,y,z)=(1,2,3)という斜めの方向ベクトルをもつ軸の回りに旋回する場合)などを含めた、一般的なベクトル変換を扱うものでもない。
【0013】
さらに、上述のコーナ判別処理が正しくできたと仮定して、隣接するブロックの移動ベクトルのなす角度に基づいて加減速処理を行う場合、従来では軸構成と軸動作に応じた加減速処理を適切に切替える機能を持っていないという点も問題である。つまり、どの回転軸がどの直線軸の周りを回転するかという軸構成の把握と、現在どの軸を動かしているかという動作状態の把握とに基づく切替え作業が、回転軸の影響を加減速処理に効率よく反映させるために必要不可欠となる。
【0014】
例えば、X,Y,Z,B,Cの5軸(図4参照)を有するNC工作機械において、XとBの2軸を同時に動かしている状態ではB軸が旋回することにより、X,Z平面での移動が行われるので、B軸旋回によるXの移動と、最初から存在するX軸の指令による移動とが干渉してしまい、3次元のベクトル演算による換算が必要である。他方、ZとCの2軸を動かしている状態では、このような干渉はおこらず、C軸旋回によるX,Y平面上の移動と、Z軸の指令による移動は独立した平面で行われることになり、1次元のスカラー演算による換算で十分である。ここで、干渉とは、例えばC軸が移動する場合、C軸はZ軸を旋回中心として回転するので、Z軸の座標値はC軸回転による影響を受けないが、X軸とY軸の座標値はC軸が回転することで変化してしまうことをいい、このようにある軸の回転が他の軸の座標値に影響を及ぼしてしまう場合、“干渉する”と判断される。
【0015】
こうして、上述のように直線軸と回転軸が同時に動いていると言っても、回転軸移動の換算を3次元ベクトルで演算しなければいけない場合と、1次元の演算で済ませることが可能な場合の2種類が存在する。そして、スカラー演算を行うだけで回転軸の影響を正しく換算することができるという1次元の演算で済ませることが可能な場合には、ベクトル演算を用いたコーナ判別処理を行うことは計算ステップ数の無駄をもたらし、また実際上、3次元のベクトル演算でも、1次元のスカラー演算でも、求まるコーナ角度としては同一となっている。
【0016】
更に、回転軸を搭載している機械でも、直線軸だけで加工を行っている状態の時は、回転軸移動量の換算自体が全く不必要となる。
【0017】
こうして、計算の無駄を防ぐという目的からすれば、軸構成と軸動作に応じた加減速処理にあって、1次元のスカラー演算で回転軸移動量の換算を行う処理機構、及び、どの加減速処理を選択するのが適切かを判断する処理機構(ベクトル演算が必要かスカラー演算で十分か、或いは換算自体が必要ないかといったことを判断する処理機構)が必要である。
【0018】
この発明は上記に鑑みてなされたもので、移動軸に回転軸を含む場合でも正しいコーナ判別を行い、また制御する軸が直線軸のみの場合、回転軸が含まれる場合、それぞれの場合に応じて、適切なコーナ加減速を行う数値制御装置を提供することを目的とする。
【0019】
【課題を解決するための手段】
上記目的を達成するため、この発明にかかる数値制御装置は、直線軸と回転軸の両方を含む工作機械を制御する数値制御装置において、2つの連続するブロック間のコーナ加減速処理を行う際に、この連続するブロックの回転軸の移動ベクトルを直交3軸座標系における移動ベクトルに換算する手段と、この換算されたベクトルを角度算出演算に当てはめてコーナ角度を求める手段と、を含むコーナ加減速処理機能を有することを特徴とする。
【0020】
また、この発明は、上記の発明において、連続するブロックの回転軸の移動ベクトルを直交3軸座標系における移動ベクトルに換算することなく前記連続するブロックの移動ベクトルを直接前記角度算出演算に当てはめてコーナ角度を求める第2の手段と、移動ベクトルが回転軸の移動を伴うか否かを判断する判断手段と、この判断手段にて移動ベクトルが回転軸の移動を伴うと判断されたとき、前記コーナ加減速処理を行う処理に切替え、前記判断手段にて移動ベクトルが回転軸の移動を伴わないと判断されたとき、前記第2の手段で求めたコーナ角度に基づくコーナ加減速処理を行う処理に切替える切換手段とを備えてなることを特徴とする。
【0027】
【発明の実施の形態】
以下に添付図面を参照して、この発明にかかる好適な実施の形態を詳細に説明する。まず、正しいコーナの判別処理を行うにあたって、図13に示すようなワークAとBにおける角度θの大きさが違う処理をNC装置に行わせるに当たっては、発明者は次のように着眼した。ワークAとBの切削軌跡を見た人が測定する角度θは、切削軌跡を直行3軸空間上での移動として観測した角度である。この場合の測定作業では、直線軸と回転軸がどのように動いたかを考えるのではなく、このそれぞれの軸が動いた結果として、切削軌跡は直行3軸空間上でどう変化していったのかということを測定している。従来のコーナ判別処理は、回転軸と直線軸が動いたときに、「結果として直行3軸空間上でどう動いたか」という置き換えをする手段を持たないので、図13の説明にて述べたようにワークAとBにおけるワークと刃物の相対軌跡が描く角度を正しく算出することができない。つまり、コーナ角度θを正しく求めるためには、回転軸の回転による移動量を直交3軸上での移動量に変換するという前処理をすればよい。従って、回転軸の回転による移動の影響を直交3軸上の移動に換算してしまえば、その換算された移動ベクトルを従来のコーナ判別処理(移動ベクトルを余弦定理に代入しコーナ角度を求める処理)に当てはめることができる。このために発明者は、ブロックの継目での加工点の位置ベクトルである刃先点位置ベクトルrtと角移動ベクトルΔθiとの外積という概念を導入し回転軸の回転による移動の影響を直交3軸上の移動に換算した。
【0028】
実施の形態1.
図1は、この発明の実施の形態1である数値制御装置におけるフローチャートである。このフローチャートの実行に当たり、具体例として、半径100[mm]、長さ300[mm]の円柱状ワークに対して、プログラム指令「G91; G01 Z100. C90.; G01 Z100. C-90.;」を実行した場合を図2を用いて説明する。図2において、まずコーナ加減速の要否を判定するために求める角度θとは、プログラムの第2ブロックと第3ブロックの継目のなす角度のことで、接線tn-1とtnのなす角度のことである。
【0029】
この場合、ブロックの継目での加工点の位置ベクトルである刃先点位置ベクトルrtは、図2における原点からブロック継目の点Ptに向かうベクトルに対応する。ここでは、このブロックを動かす前に刃先が(X, Y, Z, C)=(0, 100, 0, 0)にあったと仮定して、ブロック継目での刃先点の位置はrt=(0, 100, 100, 90)となる。
【0030】
他方、回転軸(今回のプログラム例ではC軸)に対応する旋回中心軸(プログラム例ではC軸の旋回中心軸、つまりZ軸)の方向をベクトルの方向に持ち、回転速度の大きさ(プログラム例では90[deg/min] = π/2[rad/min])をスカラー量に持つベクトルを角移動ベクトルΔθiとした。ここで、Δθi についてインデックス番号iをA軸について1、B軸について2、C軸について3とすると、今回のプログラムの第2ブロック(G01 Z100. C90.)ではΔθ3は(0, 0, π/2)となり、A軸とB軸は指令していないので、Δθ1とΔθ2は(0, 0, 0)となる。同様に、第3ブロック(G01 Z100. C-90.)では、Δθ1とΔθ2は(0, 0, 0)となり、Δθ3は(0, 0, -π/2)となる。
【0031】
図1において、ステップS101にて刃先点位置ベクトルrtをまず取得する。ついで、ステップS102にて角移動ベクトルΔθiを求める。そして、ステップS103にて外積rd=Δθi×rtiを求める。ここで、rtiは図2での回転軸の旋回中心軸上(Z軸上)の1点Pi0からrtで示す刃先点へと向かうベクトルである。ここでPi0は旋回中心軸上であれば、どの点でも構わず、今回の例ではP30を(0, 0, 0)にとる。この場合、rt3=(0, 100, 100)となる。
【0032】
Δθi、rtiの外積(Δθi×rti)によって、回転軸iの回転による移動量を(X, Y, Z)の直交3軸空間での移動量に換算することができる。今回の例では第2ブロックでのΔθ3=(0, 0, π/2)、rt3=(0, 100, 100)なので、外積による成分計算式から、Δθ3×rt3=(−100π/2, 0, 0)となる。
【0033】
そして、A軸、B軸、C軸については、換算した移動量をi=1〜3に関して足し合わせれば、つまりrd=Σ(Δθi×rti)を計算すれば、回転軸全体の移動量を直交3軸空間上のベクトルに換算できることとなる。今回の図2の例ではΔθ1=Δθ2=(0, 0, 0)なので、rd=Δθ3×rt3となる。
【0034】
そして、ステップS104に示すように換算ベクトルrdとプログラムの軸アドレスから直接求められる(X, Y, Z)の移動ベクトルrlの和rn=rl+rdを得ることで、移動に回転軸が含まれる場合でも、刃先点とワークの相対軌跡が、(X, Y, Z)の直交3軸空間において、どう変化するかを正確に求めることができる。図3はこのベクトル合成の様子を表しており、図2のPt近傍で第2ブロックの描くベクトルrnは直線軸移動によるrlと回転軸移動による換算ベクトルrdの和で表されることになる。
【0035】
このプログラムの第2ブロックではrl=(0, 0, 100)であるので、第2ブロックと第3ブロックの継目において第2ブロックの移動が作る刃先点とワークの相対軌跡はrn=(−100π/2, 0, 100)となる。同様に第3ブロック側の相対軌跡はrn=(100π/2, 0, 100)となる。なお、識別を分かりやすくするため、以後は第2ブロックの相対軌跡をrn-1、第3ブロックの相対軌跡をrnとする。
【0036】
この結果、ステップS105では、コーナ角度の式cosθ=rn・rn-1/(|rn|*|rn-1)からコーナ角度を算出する。このプログラム例では、cosθ=−0.3355・・・となり、所望のコーナ角度が算出される。
【0037】
図1のフローチャートによるコーナ角度算出の例として、上述の如くZ軸とC軸のみが動くという最も簡単な場合を用いて説明したが、このフローチャートは回転軸2軸以上を含む5軸以上を同時に動かす場合にも適用することができる。例えば図4に示す座標軸構成のように5軸X,Y, Z,B,Cの移動についてプログラム指令「G90 G01 X0. Y0. Z0. B0. C0.; G01 X100. Y100. Z100. B-45. C90.; G01 X-100. Y200. Z200. B30. C-90.;」という場合も、図1のフローチャートを用いれば、(X, Y, Z)の直交3軸空間での移動ベクトルに換算できる。
【0038】
以下にこのプログラム指令に基づき第2ブロックと第3ブロックの継目におけるコーナ角度の算出方法を説明する。この図4の座標系の特徴として、B軸とC軸がそれぞれY軸、Z軸を旋回中心にしていることがあげられる。つまり、回転軸の旋回中心が、原点を通る軸であるということが特徴である。
【0039】
まず、ステップS101の刃先点位置ベクトルrtは、(X, Y, Z)=(100, 100, 100)となる。また、ステップS102において、第2ブロック側の角移動ベクトルΔθiはΔθ1=(0, 0, 0)、Δθ2=(0, −π/4, 0)、Δθ3=(0, 0, π/2)となる。同様に第3ブロック側のΔθiはΔθ1=(0, 0, 0)、Δθ2=(0, π/6, 0)、Δθ3=(0, 0, −π/2)となる。更に、ステップS103において、旋回中心軸から刃先点に向かうベクトルrtiはP20を(0, 100, 0)にとってrt2=(100, 0, 100)、P30を(0, 0, 100)にとってrt3=(100, 100, 0)となる。rt1については第2ブロックも第3ブロックもΔθ1=0なので考え得る必要はない。このとき第2ブロック側の外積rdは外積による成分計算式からrd=Σ(Δθi×rti)=(Δθ2×rt2 + Δθ3×rt3)=(−300π/4, 100π/2, 100π/4)となる。同様に第3ブロック側の外積rdはrd=(500π/6, −100π/2, 100π/6)となる。ステップS104にて、第2ブロックのベクトルrl は、rl=(100, 100, 100)、第3ブロックでは(−100, 200, 200)である。これ以後の処理は加工プログラムによらず同じであり、和rn=rl+rdを求め、ステップS105にてコーナ角度を求める。こうして、5軸同時制御の場合にも適用可能である。
【0040】
更に、一般的な場合として、回転するワークの旋回中心軸(x,y,z)=(10,20,30)を通り、(x,y,z)=(1,2,3)の方向にある任意の回転軸を考える。この回転軸をW軸と呼ぶとして、プログラム指令「G90 G01 X0. Y0. Z50. W0.; G01 X100. Y100. Z150. W-180.; G01 X-100. Y200. Z250. W180.;」を実行した時の第2ブロックと第3ブロックのなす角度を計算する。ここで、使用している工具がZ方向に50の長さを持つとすると、刃先点位置ベクトルrt=(rtx, rty, rtz)=(0, 100, 100)となる。
【0041】
この場合、図1のステップS102における角移動ベクトルΔθiは、W軸に対するインデックス番号iを1とすると、W軸方向にて第2ブロックではΔθ1=(−π/sqrt(14), −2π/sqrt(14), −3π/sqrt(14))、Δθ2=Δθ3=Δθ4=Δθ…=(0, 0, 0)となる。同様に第3ブロックではΔθ1=(π/sqrt(14), 2π/sqrt(14), 3π/sqrt(14))、Δθ2=Δθ3=Δθ4=Δθ…=(0, 0, 0)となる。
【0042】
また、P10を(10, 20, 30)にとると、旋回中心軸から刃先点に向かうベクトルは、rt1=(90, 80, 70)となる。このとき第2ブロック側の外積rdはrd=Σ(Δθi×rti)=(Δθ1×rt1)=(100π/sqrt(14), −200π/sqrt(14), 300π/sqrt(14))となる。同様に第3ブロック側の外積rdはrd=(−100π/sqrt(14), 200π/sqrt(14), −300π/sqrt(14))となる。
【0043】
ステップS104において、第2ブロックのrl=(100, 100, 100)、第3ブロックはrl= (−200, 100, 100)であり、和rn=rl+rdを求める。そして、ステップS105にてコーナ角度を求める。こうして、任意の軸構成に対応可能なコーナ角度算出手段を提供することができる。
【0044】
実施の形態2.
次に、実施の形態2にて回転軸の移動量に倍率を乗ずるコーナ加減速処理を有する数値制御装置について説明する。実施の形態1(ベクトル換算を用いたコーナ加減速処理を行う数値制御装置)では、ワークと刃物の相対軌跡の変化に対して、回転軸が及ぼす影響を3次元のベクトルで計算し、この結果どんな軸構成のNC装置に対しても、一般的に相対軌跡を算出することができる。しかし例えば、回転軸1軸(C軸)と直線軸2軸(X,Z軸)からなるようなNCにおいて、ZとCのみで動かすときに、ワークの大きさ(半径)が既知の場合では、1次元の掛算を回転軸の移動量に対して行うだけで、回転軸の及ぼす影響を適切に計算することができる場合もある。この場合、回転軸(C軸)を移動させることによって生じるワークと刃物の相対軌跡の変化と、Z軸を移動させることによって生じる相対軌跡の変化は、それぞれXY平面での変化と、Z軸上での変化に分離されている。従って、回転軸の移動量にワークの半径を乗じた移動量は、XY平面での実際の相対軌跡の変化量と一致する。つまり、回転軸の移動量に倍率をかけるというスカラー演算を行うだけで回転軸の影響を正しく換算することができるために、この半径を乗じた移動量とZ軸の移動量を従来の余弦定理の計算式に代入することにより、実施の形態1(ベクトル換算を用いたコーナ加減速処理を行う数値制御装置)を用いた場合の結果と同一の角度を算出することができる。
【0045】
図5はこの実施の形態2(回転軸の移動量に倍率を乗ずるコーナ加減速処理を有する数値制御装置)を実現するフローチャートである。プログラム指令「G91; G01 Z100. C90.; G01 Z100. C-90.;」を例に説明する。図5において、S1001に従い、回転軸(このプログラムではC軸)の移動量にある倍率をかける。この倍率は通常、ワークの半径に比例した値を用いるのが適切であり、ここでは予めワークを計測した結果、倍率が3に設定されているとする。このとき第2ブロックの移動ベクトルはrn-1=(Z, C)=(100, 270)、第3ブロックはrn= (Z, C)=(100, -270)となる。
【0046】
次いでステップS1002では、cosθ=rn・rn-1/(|rn|*|rn-1)からコーナ角度を算出する。この例では、cosθ=−0.7587となる。
【0047】
実施の形態3.
つぎに、この発明の実施の形態3(回転軸移動量の倍率を切替える数値制御装置)について説明する。実施の形態2においては、回転軸の移動に乗ずる倍率の選び方として、ワークの半径に比例させたのであるが、モータ出力の遅れや、ワークの方向による硬度の違いが及ぼす影響などを経験的に把握している場合、ある特定の倍率を使用したほうが高精度の加工ができる。このため、パラメータまたはプログラムによって、倍率を任意に設定することも必要となる。図6は実施の形態3の倍率算出部分を搭載した場合のコーナ加減速処理、図7はその倍率算出部分のフローチャートである。以下に図7を説明する。
【0048】
ステップS1201では、倍率の計算をNC装置に自動で行わせるモード(倍率自動計算モードと呼ぶことにする)にあるか否かを判断し、その後の処理を分ける。このモードのON/OFFは、NCの内部変数にフラグとして持たせればよく、例えば増分値/絶対値切替のような機能をつければ実現できる。ここではプログラムによってON/OFFを制御することとする。
【0049】
ステップS1201で倍率自動計算モードONの場合は、ステップS1202で示す倍率計算を行う。ここでは、刃先点と各回転軸の距離を計算し、(距離×π/180)を倍率とする。例えば、X、Y、Z、B、Cの5軸を有し、B軸回りに工具が回転するNC工作機を例に挙げると、B軸に対応する距離は工具長、C軸に対応する距離はsqrt(X2+Y2)となる(但し、X、Y、Zはそれぞれ刃先のX、Y、Z座標である)。このNC工作機において、プログラム指令「G91; G01 Z100. C90.; G01 Z100. C-90.;」を実行した場合について述べれば、ここで、プログラム開始時に刃先が(X, Y, Z, B, C)=(30, 40, 0, 90, 0)にあるものとする。プログラムの第2ブロックと第3ブロックの継目において、移動する回転軸はC軸のみであり、C軸と刃先点との距離はsqrt(302+402)=50となる。従って、C軸に対応する倍率は(距離×π/180)=(50×π/180)となる。
【0050】
ステップS1201にて、倍率自動計算モードOFFの場合は、ステップS1203で示す条件判断を行う。例えば倍率の指定をするコードが「M2001 P_ Q_ R_;」であるとし、P、Q、RはそれぞれA、B、C軸に対応する倍率であるとするとき、ステップS1203においてM2001のモード中はステップS1204に示す倍率設定を行う。そして、ステップS1204はP、Q、Rのアドレスで指定した数値を各回転軸の倍率としてセットする。
【0051】
ステップS1203でプログラム指定でない場合は、ステップS1205で示す倍率設定を行う。この処理は予めパラメータとしてNCに登録しておいた倍率を各回転軸の倍率にセットする。
【0052】
以上に説明したステップS1201〜S1205の処理によって、回転軸の移動量に対する倍率を求めることができる。
【0053】
実施の形態4.
次に実施の形態4である制御対象軸の軸構成に応じて使用する加減速処理を変更できる数値制御装置について説明する。図8は実施の形態4を実現するフローチャートの一つである。図8において、まずステップS1301で制御軸に関する情報を取得する。ここでの情報とはどの軸が回転軸で、回転軸に対応する旋回中心軸はどれか(例えばC軸に対応する軸はZ軸)といった情報である。
【0054】
ステップS1302ではステップS1301で得た制御軸の情報と、読み込んだ加工プログラムの移動軸に関する情報を照合し、加工プログラムのブロック継目の前後で回転軸が移動するか否かを判断し、以後の処理を振り分ける。このステップS1302にて、移動軸に回転軸が無い場合は、回転軸の影響を計算するという無駄な処理を省き、ステップS1306のコーナ加減速処理▲3▼を呼び出す。この加減速処理▲3▼は軸の種類を考慮しない従来型のコーナ加減速処理であり、例えば従来の技術で紹介した余弦定理を用いる方法が該当する。他方、回転軸が移動する場合はステップS1303の判断処理ルーチンを呼び出す。
【0055】
ステップS1303では回転軸の移動指令と直線軸の移動指令が干渉するか否かを判断する。干渉する軸の組み合わせとしては、1:A軸とY、Z軸 2:B軸とZ、X軸 3:C軸とX、Y軸 といった組み合わせがある。従って、「G01 X100. C200.」のように同一ブロック中に干渉する軸が指令されている場合は、移動指令が“干渉する”と判断される。
【0056】
ステップS1303にて軸移動の干渉が起こる場合は、回転軸移動の影響を直行3軸上の移動ベクトルに換算してからでなければ、正しいコーナ加減速を行うことが出来ないので、ステップS1304に示すコーナ加減速処理▲1▼を呼び出す。このコーナ加減速処理▲1▼はベクトル換算を用いたコーナ加減速処理である。干渉が起こらない場合は、回転軸の移動は独立した直線軸と見なした扱いが可能で、ステップS1305に示すコーナ加減速処理▲2▼を呼び出す。このコーナ加減速処理▲2▼は回転軸の移動量に倍率を乗ずるコーナ加減速処理である。
【0057】
こうして、ステップS1304〜S1306に示すコーナ加減速処理を経て、コーナ付近で減速が必要か否かが判断される。その判断結果を元にステップS1307でモータに指令する移動速度を決定する。
【0058】
【発明の効果】
以上説明したように、この発明によれば、移動制御軸に回転軸を含む数値制御装置において、回転軸の移動を含むコーナ加減速を行う際に、隣接するブロックにおける回転軸の移動ベクトルを直交3軸における移動ベクトルに換算する手段と、この換算されたベクトルを角度算出演算に当てはめてコーナ角度を求める手段とを含むコーナ加減速処理機能を有することにより、移動軸に回転軸を含む場合でもワークと刃物の相対軌跡、つまり加工点が実際に描くコーナ角度を計算することができ正しいコーナ判別を行うことができる。
【図面の簡単な説明】
【図1】 この発明の実施の形態1の処理手順を表すフローチャートである。
【図2】 回転軸の移動ベクトルを直交3軸における移動ベクトルに換算する際の変数の取扱いを説明する図である。
【図3】 ベクトルの合成の様子を説明する図である。
【図4】 具体例における座標軸のとり方を説明する図である。
【図5】 この発明の実施の形態2の処理手順を表すフローチャートである。
【図6】 図5のフローチャートに実施の形態3を搭載した場合の処理手順を表すフローチャートである。
【図7】 実施の形態3の処理手順を表すフローチャートである。
【図8】 実施の形態4を実現する処理手順を表すフローチャートである。
【図9】 コーナ角度の説明をする図である。
【図10】 コーナ加減速機能を搭載する数値制御装置(CNC)の概略構成を示すブロック図である。
【図11】 従来のコーナ加減速方式における余弦定理の使用の仕方を補足する図である。
【図12】 従来の余弦定理を使ったコーナ加減速方式のフローチャートである。
【図13】 従来のコーナ加減速方式が抱える問題を説明する図である。
【符号の説明】
2 プログラム解析部、21 プログラム読み込み部、22 パス生成部、23 コーナ判別部、rn、rn-1 移動ベクトル、rt 刃先点位置ベクトル、Δθi 角移動ベクトル、rd 外積。
Claims (2)
- 直線軸と回転軸の両方を含む工作機械を制御する数値制御装置において、
2つの連続するブロック間のコーナ加減速処理を行う際に、この連続するブロックの回転軸の移動ベクトルを直交3軸座標系における移動ベクトルに換算する手段と、この換算されたベクトルを角度算出演算に当てはめてコーナ角度を求める手段と、を含むコーナ加減速処理機能を有することを特徴とする数値制御装置。 - 連続するブロックの回転軸の移動ベクトルを直交3軸座標系における移動ベクトルに換算することなく前記連続するブロックの移動ベクトルを直接前記角度算出演算に当てはめてコーナ角度を求める第2の手段と、
移動ベクトルが回転軸の移動を伴うか否かを判断する判断手段と、
この判断手段にて移動ベクトルが回転軸の移動を伴うと判断されたとき、前記コーナ加減速処理を行う処理に切替え、前記判断手段にて移動ベクトルが回転軸の移動を伴わないと判断されたとき、前記第2の手段で求めたコーナ角度に基づくコーナ加減速処理を行う処理に切り換える切換手段と、
を備えてなる請求項1に記載の数値制御装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002251597A JP4059734B2 (ja) | 2002-08-29 | 2002-08-29 | 数値制御装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002251597A JP4059734B2 (ja) | 2002-08-29 | 2002-08-29 | 数値制御装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2004094372A JP2004094372A (ja) | 2004-03-25 |
JP4059734B2 true JP4059734B2 (ja) | 2008-03-12 |
Family
ID=32058147
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002251597A Expired - Fee Related JP4059734B2 (ja) | 2002-08-29 | 2002-08-29 | 数値制御装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4059734B2 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8576013B2 (en) * | 2011-12-29 | 2013-11-05 | Mks Instruments, Inc. | Power distortion-based servo control systems for frequency tuning RF power sources |
-
2002
- 2002-08-29 JP JP2002251597A patent/JP4059734B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2004094372A (ja) | 2004-03-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4945664B2 (ja) | 傾斜面を加工する多軸加工機用数値制御装置 | |
JP6140130B2 (ja) | 工具及び被加工物を保護する数値制御装置 | |
US9507337B2 (en) | Numerical control device | |
JP4847428B2 (ja) | 加工シミュレーション装置およびそのプログラム | |
US4503373A (en) | Numerical control system | |
EP0129092B2 (en) | Numerical control device for use with a machine tool | |
JP2018005480A (ja) | スカイビング加工制御を行う数値制御装置 | |
KR0180953B1 (ko) | 수치제어 공작기계의 주축법선방향 제어방법 및 장치 | |
JP2008117032A (ja) | 加工制御装置およびそのプログラム | |
EP0323517A1 (en) | Profiling method | |
Otsuki et al. | Method to evaluate speed and accuracy performance of CNC machine tools by speed-error 2-D representation | |
JP4995976B1 (ja) | 回転軸のインポジションチェックを行う数値制御装置 | |
US7058473B2 (en) | Method and device for generation of machining program | |
JP2002182716A (ja) | インコーナ切削加工方法および数値制御装置 | |
JPH02178711A (ja) | 数値制御装置 | |
JP4059734B2 (ja) | 数値制御装置 | |
US10261500B2 (en) | Numerical controller controlling machining tool based on skiving instruction | |
CN111045395A (zh) | 数值控制装置 | |
JP2686293B2 (ja) | 3次元レーザ加工方法 | |
JPH08106311A (ja) | 数値制御装置 | |
JP4770076B2 (ja) | 数値制御装置 | |
JP4873082B2 (ja) | 数値制御装置 | |
JPH0218602A (ja) | プレイバック方式 | |
JP2001034318A (ja) | 加工パス作成方法、ncプログラム自動作成方法、cad/camシステム、nc加工システム及び記憶媒体 | |
JPS63105864A (ja) | Nc加工方法と装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20041217 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20060804 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20060808 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20061010 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070403 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070530 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20071218 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20071218 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101228 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111228 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111228 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121228 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121228 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131228 Year of fee payment: 6 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |