JP6435872B2 - Numerical control device and control method - Google Patents
Numerical control device and control method Download PDFInfo
- Publication number
- JP6435872B2 JP6435872B2 JP2015008206A JP2015008206A JP6435872B2 JP 6435872 B2 JP6435872 B2 JP 6435872B2 JP 2015008206 A JP2015008206 A JP 2015008206A JP 2015008206 A JP2015008206 A JP 2015008206A JP 6435872 B2 JP6435872 B2 JP 6435872B2
- Authority
- JP
- Japan
- Prior art keywords
- block
- command
- interpolation
- angle
- arc
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/18—Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form
- G05B19/416—Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form characterised by control of velocity, acceleration or deceleration
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/18—Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form
- G05B19/41—Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form characterised by interpolation, e.g. the computation of intermediate points between programmed end points to define the path to be followed and the rate of travel along that path
- G05B19/4103—Digital interpolation
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/18—Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form
- G05B19/41—Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form characterised by interpolation, e.g. the computation of intermediate points between programmed end points to define the path to be followed and the rate of travel along that path
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/35—Nc in input of data, input till input file format
- G05B2219/35097—Generation of cutter path, offset curve
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/41—Servomotor, servo controller till figures
- G05B2219/41151—Finite impulse response filter
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/43—Speed, acceleration, deceleration control ADC
- G05B2219/43203—Limitation of speed, permissible, allowable, maximum speed
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/49—Nc machine tool, till multiple
- G05B2219/49164—Corner, making corner
Landscapes
- Engineering & Computer Science (AREA)
- Human Computer Interaction (AREA)
- Manufacturing & Machinery (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Automation & Control Theory (AREA)
- Computing Systems (AREA)
- Theoretical Computer Science (AREA)
- Numerical Control (AREA)
- Automatic Control Of Machine Tools (AREA)
Description
本発明は、数値制御装置と制御方法に関する。 The present invention relates to a numerical control device and a control method.
工作機械の数値制御装置は、NCプログラムで指令した指令点を補間して得られる経路に沿って工具又はワークを移動して加工を行う。その際、数値制御装置は自動的に滑らかな加減速を行い、工作機械の振動を抑える為の加減速制御を行う。一般的な加減速制御として、補間後加減速がある。補間後加減速は、工作機械への経路を駆動パルスとして可動軸毎に分配した後に、移動平均フィルタ等による加減速処理を適用する方法である。該方法は計算が簡便で安定性が高い利点があるが、工作機械の速度が速くなると経路からの誤差が大きくなるという問題点があった。そこで、経路からの誤差を小さく抑え、且つ高速での移動を可能にする技術として、特許文献1は、NCプログラムで指令するワーク形状と許容誤差に応じて、一の制御指令の実行後に、次の制御指令を実行する為のパルス分配演算の開始時機を遅らせる数値制御方式を提案する。パルス分配演算とは、経路方向の駆動パルスを可動軸毎に分配する演算を意味する。該制御方式は、所定の演算式と複数のパラメータで加工誤差を演算し、該演算した加工誤差と許容誤差の差と、パルス分配演算の開始を遅らせる遅延時間との対応を記憶するテーブルにより、加工誤差と許容誤差の差に応じた遅延時間を求める。 A numerical control device of a machine tool performs machining by moving a tool or a workpiece along a path obtained by interpolating command points commanded by an NC program. At that time, the numerical control device automatically performs smooth acceleration / deceleration and performs acceleration / deceleration control for suppressing vibration of the machine tool. General acceleration / deceleration control includes post-interpolation acceleration / deceleration. The post-interpolation acceleration / deceleration is a method of applying acceleration / deceleration processing using a moving average filter or the like after distributing the path to the machine tool as a drive pulse for each movable axis. This method has the advantage that the calculation is simple and the stability is high, but there is a problem that the error from the path increases as the speed of the machine tool increases. Therefore, as a technique for minimizing an error from a path and enabling a high-speed movement, Japanese Patent Laid-Open No. 2004-086105 describes the following after execution of one control command in accordance with a workpiece shape commanded by an NC program and an allowable error. We propose a numerical control method that delays the start of pulse distribution calculation to execute the control command. The pulse distribution calculation means a calculation for distributing the driving pulse in the path direction for each movable axis. The control method calculates a processing error with a predetermined arithmetic expression and a plurality of parameters, and stores a correspondence between a difference between the calculated processing error and an allowable error and a delay time for delaying the start of the pulse distribution calculation. The delay time corresponding to the difference between the machining error and the allowable error is obtained.
特許文献1は、加工誤差と許容誤差の差と遅延時間との対応について、想定する全てのパターンを予め演算し、テーブルに全て記憶しなければならないので、作業が手間である上、メモリの記憶する領域を多く消費してしまうという問題点があった。また、特許文献1は、加工誤差と許容誤差の差から遅延時間を演算する方法を開示していない。それ故、工具の移動する経路について、テーブルを使わずに且つ小さい計算負荷で、NCプログラムが指令する経路からの誤差が常に許容誤差内に制御できる数値制御装置の開発が望まれていた。
In
本発明の目的は、小さい計算負荷で、NCプログラムの経路からの誤差を常に許容誤差内に制御できる数値制御装置と制御方法を提供することである。 An object of the present invention is to provide a numerical controller and a control method capable of always controlling an error from the NC program path within an allowable error with a small calculation load.
本発明の請求項1に係る数値制御装置は、NCプログラムが指令する複数の指令点について隣接する指令点を補間して得られる経路に沿って工具又はワークを移動してワーク加工を実行する数値制御装置において、前記工具又はワークを移動するモータの加減速時定数と、前記経路に対して許容する許容誤差と、前記経路のうち、前記NCプログラム中の今回の補間指令で補間する第一ブロックと、前回の補間指令で補間した第二ブロックの間の角度であるブロック間角度と、前記第一ブロックと前記第二ブロックでの前記工具又は前記ワークの移動速度を指令する夫々の指令速度のうちどちらか大きなものに基づき、前記経路からの誤差の最大値を演算し、当該最大値と前記第一ブロックの速度波形と前記第二ブロックの速度波形との重なり具合に応じて、前記モータに前記今回の補間指令を開始させる時機を演算する演算手段と、前記演算手段が演算した前記時機に基づき、前記モータに前記今回の補間指令を実行させる実行手段とを備えたことを特徴とする。それ故、数値制御装置は、加減速時定数、許容誤差、指令速度、ブロック間角度の各種パラメータを用いることで、工具が移動する経路について、小さい計算負荷で、NCプログラムが指令する経路からの誤差を常に許容誤差内に制御できる。
A numerical control device according to
請求項2に係る発明の数値制御装置は、請求項1に記載の発明の構成に加え、前記第一ブロックと前記第二ブロックのうち少なくとも一方のブロックが円弧補間を行う円弧補間ブロックである時、前記円弧補間ブロックに対応する円弧補間指令が指令する指令円弧の円弧半径と、前記許容誤差と、前記加減速時定数とに基づき、前記円弧補間ブロックにおいて前記工具又はワークが移動する円弧速度を演算する円弧速度演算手段と、前記円弧速度演算手段が演算した前記円弧速度と、前記指令速度とを対比し、小さい方の速度を前記指令速度に設定する指令速度設定手段と、前記ブロック間角度を演算するブロック間角度演算手段とを備え、前記ブロック間角度演算手段は、前記円弧補間ブロックについて、前記第一ブロックと前記第二ブロックを繋ぐ第一指令点から引いた線分であって、前記指令円弧の接線ベクトルである指令円弧接線ベクトルと、前記第一指令点から引いた線分であって、前記指令速度と前記指令円弧の円弧半径と前記許容誤差から導出される内回り誤差を含む実円弧の接線ベクトルである実円弧接線ベクトルとのうち、他方のブロックとの成す角度が小さい方の角度を前記ブロック間角度として演算することを特徴とする。それ故、数値制御装置は、少なくとも一方が円弧補間ブロックである時の第一ブロックと第二ブロックのブロック間角度を演算できるので、演算したブロック間角度を用いることで、今回の補間指令を開始させる時機を適切に演算できる。 The numerical control device according to a second aspect of the present invention is the numerical controller according to the first aspect, wherein at least one of the first block and the second block is a circular interpolation block that performs circular interpolation. Based on the arc radius of the command arc commanded by the arc interpolation command corresponding to the arc interpolation block, the allowable error, and the acceleration / deceleration time constant, the arc speed at which the tool or workpiece moves in the arc interpolation block is determined. An arc speed calculating means for calculating, an instruction speed setting means for comparing the command speed with the arc speed calculated by the arc speed calculating means, and setting a smaller speed as the command speed; and an angle between the blocks An inter-block angle calculating means for calculating the first block and the second block for the circular interpolation block. A command arc tangent vector which is a tangent vector of the command arc, and a line segment subtracted from the first command point, the command speed and the command Of the arc radius of the arc and the actual arc tangent vector that is the tangent vector of the actual arc including the inward error derived from the allowable error, the smaller angle formed with the other block is calculated as the inter-block angle. It is characterized by doing. Therefore, the numerical controller can calculate the angle between the first block and the second block when at least one of them is a circular interpolation block, so the current interpolation command is started by using the calculated block angle. It is possible to properly calculate the timing to make it happen.
請求項3に係る発明の数値制御装置は、請求項1又は2に記載の発明の構成に加え、前記ブロック間角度演算手段は、前記第一ブロックと前記第二ブロックの両方が直線補間を行う直線補間ブロックである場合に、前記直線補間ブロック同士間の前記ブロック間角度を演算する第一角度演算手段と、前記第一ブロックと前記第二ブロックのうち一方が前記円弧補間ブロックである場合に、前記円弧補間ブロックと他方の直線補間ブロック間の前記ブロック間角度を演算する第二角度演算手段と、前記第一ブロックと前記第二ブロックの両方が前記円弧補間ブロックである場合に、前記円弧補間同士間の前記ブロック間角度を演算する第三角度演算手段とを備え、前記第二角度演算手段は、前記指令円弧接線ベクトルと前記実円弧接線ベクトルのうち、前記直線補間ブロックに対応する直線補間指令が指令する指令直線と成す角度が小さい方の角度を前記ブロック間角度とし、前記第三角度演算手段は、前記円弧補間ブロックである前記第一ブロックと前記第二ブロックを繋ぐ第二指令点から夫々引いた線分であって、前記第一ブロックに対応する前記指令円弧接線ベクトル及び前記実円弧接線ベクトルと、前記第二ブロックに対応する前記指令円弧接線ベクトル及び前記実円弧接線ベクトルとが相互に成す角度のうち、最も小さい角度を前記ブロック間角度とすることを特徴とする。それ故、数値制御装置は、直線ブロック間同士、円弧補間ブロックと直線補間ブロック、円弧補間ブロック間同士の夫々のブロック間角度を演算できるので、今回の補間指令を開始させる時機を適切に演算できる。 According to a third aspect of the present invention, in addition to the configuration of the first or second aspect, the inter-block angle calculating means performs linear interpolation on both the first block and the second block. In the case of a linear interpolation block, when one of the first block and the second block is the circular interpolation block, the first angle calculation means for calculating the inter-block angle between the linear interpolation blocks A second angle calculation means for calculating an angle between the circular interpolation block and the other linear interpolation block, and when both the first block and the second block are the circular interpolation blocks, the circular arc Third angle calculating means for calculating the inter-block angle between the interpolations, and the second angle calculating means includes the command arc tangent vector and the actual arc tangent vector. Of these, the angle formed by the smaller angle formed with the command straight line commanded by the linear interpolation command corresponding to the linear interpolation block is the inter-block angle, and the third angle calculating means is the first block that is the circular interpolation block. And the second command point connecting the second block, the command arc tangent vector and the actual arc tangent vector corresponding to the first block, and the command corresponding to the second block. Of the angles formed by the arc tangent vector and the actual arc tangent vector, the smallest angle is defined as the inter-block angle. Therefore, the numerical control device can calculate the angle between each of the linear blocks, between the circular interpolation block and the linear interpolation block, and between the circular interpolation blocks, so that the timing for starting the current interpolation command can be calculated appropriately. .
請求項4に係る発明の制御方法は、NCプログラムが指令する複数の指令点について隣接する指令点を補間して得られる経路に沿って工具又はワークを移動してワーク加工を実行する数値制御装置の制御方法において、前記工具又はワークを移動するモータの加減速時定数と、前記経路に対して許容する許容誤差と、前記経路のうち、前記NCプログラム中の今回の補間指令で補間する第一ブロックと、前回の補間指令で補間した第二ブロックの間の角度であるブロック間角度と、前記第一ブロックと前記第二ブロックでの前記工具又は前記ワークの移動速度を指令する夫々の指令速度のうちどちらか大きなものに基づき、前記経路からの誤差の最大値を演算し、当該最大値と前記第一ブロックの速度波形と前記第二ブロックの速度波形との重なり具合に応じて、前記モータに前記今回の補間指令を開始させる時機を演算する演算工程と、前記演算工程で演算した前記時機に基づき、前記モータに前記今回の補間指令を実行させる実行工程とを備えたことを特徴とする。それ故、数値制御装置は上記制御方法を行うことにより、請求項1に記載の効果を得ることができる。
According to a fourth aspect of the present invention, there is provided a numerical control apparatus for moving a tool or a workpiece along a path obtained by interpolating adjacent command points with respect to a plurality of command points commanded by an NC program and performing workpiece machining. In the control method, the acceleration / deceleration time constant of the motor that moves the tool or workpiece, the allowable error that is allowed for the path, and the first one of the paths that are interpolated by the current interpolation command in the NC program. Inter-block angle which is an angle between the block and the second block interpolated by the previous interpolation command, and respective command speeds for commanding the moving speed of the tool or the workpiece in the first block and the second block based on either large among calculates the maximum value of the error from the path, the velocity waveform of the the maximum value and the velocity waveform of the first block second block Becomes Depending on the degree, the calculation step of calculating a timing for starting the current interpolation command to the motor, based on the timing calculated in the calculating step, an execution step of executing the current interpolation command to the motor It is provided with. Therefore, the numerical control device can obtain the effect of the first aspect by performing the control method.
以下、本発明の実施形態を図面を参照し説明する。以下説明は、図中に矢印で示す上下、左右、前後、を使用する。数値制御装置30は工作機械1を制御しテーブル(図示略)上面に保持したワーク(図示略)の切削加工を行う。工作機械1の左右方向、前後方向、上下方向は、夫々X軸方向、Y軸方向、Z軸方向である。
Embodiments of the present invention will be described below with reference to the drawings. In the following description, the top, bottom, left and right, front and back indicated by arrows in the figure are used. The
図1を参照し、工作機械1の構成を簡単に説明する。工作機械1は図示しない主軸機構、主軸移動機構、工具交換装置等を備える。主軸機構は主軸モータ52を備え、工具を装着した主軸を回転する。主軸移動機構は、Z軸モータ51、X軸モータ53、Y軸モータ54を備え、テーブル(図示略)上面に支持したワークに対し相対的に主軸をXYZの各軸方向に夫々移動する。工具交換装置はマガジンモータ55を備え、複数の工具を収納する工具マガジン(図示略)を駆動し、主軸に装着した工具を他の工具と交換する。工作機械1は操作盤10を更に備える。操作盤10は入力部24と表示部25を備える。入力部24は各種入力、指示、設定等を行う為の機器である。表示部25は各種画面を表示する機器である。操作盤10は数値制御装置30の入出力部35に接続する。Z軸モータ51はエンコーダ51Bを備える。主軸モータ52はエンコーダ52Bを備える。X軸モータ53はエンコーダ53Bを備える。Y軸モータ54はエンコーダ54Bを備える。マガジンモータ55はエンコーダ55Bを備える。エンコーダ51B〜55Bは数値制御装置30の後述する駆動回路51A〜55Aに各々接続する。
A configuration of the
図1を参照し、数値制御装置30の電気的構成を説明する。数値制御装置30は、CPU31、ROM32、RAM33、記憶装置34、入出力部35、駆動回路51A〜55A等を備える。CPU31は数値制御装置30を統括制御する。ROM32は、メインプログラム等の各種プログラムを記憶する。RAM33は各種処理実行中の各種データを記憶する。記憶装置34は不揮発性メモリである。入出力部35は操作盤10に接続する。駆動回路51AはZ軸モータ51とエンコーダ51Bに接続する。駆動回路52Aは主軸モータ52とエンコーダ52Bに接続する。駆動回路53AはX軸モータ53とエンコーダ53Bに接続する。駆動回路54AはY軸モータ54とエンコーダ54Bに接続する。駆動回路55Aはマガジンモータ55とエンコーダ55Bに接続する。駆動回路51A〜55AはCPU31から後述する駆動信号を受け、対応する各モータ51〜55に駆動電流(パルス)を夫々出力する。駆動回路51A〜55Aはエンコーダ51B〜55Bからフィードバック信号を受け、位置と速度のフィードバック制御を行う。駆動回路51A〜55Aは例えばFPGA回路でもよい。
The electrical configuration of the
図2を参照し、補間後加減速に用いる移動平均フィルタと時定数を説明する。数値制御装置30は、NCプログラム中の補間指令に基づき、X軸、Y軸、Z軸の駆動軸毎に、目標位置、移動距離、移動速度、移動時間等を夫々演算する。補間指令は、アドレスで指定した移動速度で軸を動かす時に使用する制御指令であり、例えば直線補間指令、円弧補間指令等である。数値制御装置30は、演算した駆動軸毎の移動速度に、移動平均フィルタ(以下、FIRフィルタと呼ぶ)を少なくとも二回以上通して速度変化を滑らかにする補間後加減速を行う。NCプログラムはGコード、Mコード等の制御指令から構成するブロックを複数有する。
The moving average filter and time constant used for post-interpolation acceleration / deceleration will be described with reference to FIG. The
図2は、X軸方向においてx1からx2に移動する工具の移動速度を、FIRフィルタで二回処理した結果を示す図表である。FIRフィルタの加減速時定数(以下、時定数と呼ぶ)は、FIRフィルタが平均を行うサンプル数に相当する。例えば、サンプル時間が1msecで、FIRフィルタの時定数が10msecの時、FIRフィルタは今回の補間指令を含めて10個前までの指令の平均を今回の出力とする。一段目のFIRフィルタ(FIR1)の時定数をt1、二段目のFIRフィルタ(FIR2)の時定数をt2とする。 2, the moving speed of the tool to be moved from x 1 to x 2 in the X-axis direction is a chart showing the result of processing twice with FIR filters. The acceleration / deceleration time constant of the FIR filter (hereinafter referred to as the time constant) corresponds to the number of samples that the FIR filter averages. For example, when the sampling time is 1 msec and the time constant of the FIR filter is 10 msec, the FIR filter uses the average of up to 10 commands including the current interpolation command as the current output. The time constant of the first stage of the FIR filter (FIR1) t 1, the time constant of the second stage of the FIR filter (FIR2) and t 2.
移動速度を二段のFIRフィルタ(FIR1、FIR2)で処理した結果、加速度の変化は一定以下となるので、工具はt1+t2をかけて緩やかに速度を上げて最高速度に達し、その後、t1+t2をかけて緩やかに速度を落として停止する。それ故、数値制御装置30は、移動速度を複数のFIRフィルタで処理することで、移動速度の急激な変化を吸収できるので、工作機械1の振動と、動作に必要な最大トルクを抑制できる。
As a result of processing the moving speed with the two-stage FIR filter (FIR1, FIR2), the change in the acceleration is less than a certain value, so the tool gradually increases the speed by applying t 1 + t 2 and reaches the maximum speed. Apply t 1 + t 2 and slow down to stop. Therefore, the
上述の如く、補間後加減速では、時定数t1,t2の影響により、工具が実際に移動する経路は、NCプログラムが指令する経路に対して誤差を生じる。それ故、数値制御装置30は、使用者が予め設定する許容誤差内で工具を移動する為に、前回の補間指令の移動終了後から、今回の補間指令の移動開始時機を遅延させる。数値制御装置30は、後述するメイン処理を実行することで、今回の補間指令の指令開始遅延時間を、小さい計算負荷で簡単に演算できる。
As described above, in the post-interpolation acceleration / deceleration, due to the influence of the time constants t 1 and t 2 , the path on which the tool actually moves causes an error with respect to the path commanded by the NC program. Therefore, the
図3を参照し、CPU31が実行するメイン処理を説明する。作業者は、加工するワーク形状のNCプログラムの番号を操作盤10の入力部24で入力し、加工開始キー(図示略)を押下する。CPU31は加工開始キーの押下を検出すると、ROM32に記憶したメインプログラムを読み込んで本処理を実行する。
A main process executed by the
先ず、CPU31は、記憶装置34から入力部24で入力した番号に対応するNCプログラムを読み込む(S1)。CPU31は読み込んだNCプログラムを先頭行から解釈し(S2)、一行内の制御指令を認識する。CPU31は認識した制御指令がNCプログラムの終了を指示する終了指令か否か判断する(S3)。制御指令が終了指令で無い時(S3:NO)、CPU31は制御指令が補間指令か否か判断する(S4)。制御指令が補間指令以外の指令(例えば、位置決め指令、工具径補正指令、工具交換指令等)の時(S4:NO)、CPU31は制御指令に対応する動作を実行する(S14)。
First, the
制御指令が補間指令の時(S4:YES)、CPU31は補間後の指令点の座標位置(指令位置)を生成する(S5)。続いて、CPU31は誤差一定制御が有効か否か判断する(S6)。誤差一定制御とは、補間後加減速において、NCプログラムが指令する経路に対し、工具が実際に移動する経路が予め設定した許容誤差内となるように、工作機械1の動作を制御する制御方式である。作業者は、操作盤10で誤差一定制御の有効又は無効を予め選択できる。CPU31は、作業者が入力した誤差一定制御の有効又は無効を、例えばフラグ等を用いてRAM33等に記憶する。
When the control command is an interpolation command (S4: YES), the
−誤差一定制御無効−
誤差一定制御が無効の時(S6:NO)、CPU31は誤差一定制御を実行せずに、補間処理を実行する(S12)。補間処理では、現在位置と指令位置の二点間を補間し、X軸、Y軸、Z軸の駆動軸毎に、目標位置、移動距離、移動速度、移動時間等を演算する。次いで、CPU31はFIRフィルタ処理を実行する(S13)。FIRフィルタ処理では、上述の如く、駆動軸毎に移動速度を二段のFIRフィルタ(FIR1,FIR2)で処理する。それ故、各駆動軸の速度変化は滑らかになる。
−Invalid constant error control−
When the constant error control is invalid (S6: NO), the
CPU31は駆動信号を生成し、対応する駆動回路51A,53A,54Aに出力する(S11)。駆動信号とは、各駆動軸における目標位置、移動距離、移動速度、移動時間等の各種情報を含む信号である。駆動回路51A,53A,54AはCPU31から受信した駆動信号に基づき、対応するモータ51,53,54に駆動電流(パルス)を夫々出力する。それ故、数値制御装置30はNCプログラムの補間指令が指令する経路に従い、工具を移動できる。
The
−誤差一定制御有効−
誤差一定制御が有効の時(S6:YES)、CPU31は誤差一定制御を実行する(S7)。図4を参照し、誤差一定制御処理を説明する。CPU31は解釈した補間指令が円弧補間指令か否か判断する(S21)。円弧補間指令の時(S21:YES)、後に実行するFIRフィルタ処理の時定数t1とt2の影響により、工具は円弧補間指令が指令する指令円弧に対して内回りに移動する可能性がある。そこで、CPU31は、工具を指令円弧に対して許容誤差内で移動させる為に、以下のパラメータと[数1]を用いて、円弧速度Fcを計算する(S22)。[数1]は、FIRフィルタの伝達関数のゲインをテイラー展開近似して整理したものである。
・Fc:円弧速度(mm/分)
・Rc:円弧半径(mm)
・ε:許容誤差(mm)
・t1:時定数1(FIR1)
・t2:時定数2(FIR2)
なお、Rcは円弧補間指令から演算する。指令円弧の始点と終点の半径が異なる時、CPU31は小さい方を円弧半径とすればよい。ε、t1、t2は、作業者が操作盤10の入力部24で予め入力したもので、例えば記憶装置34等に記憶する。
When the constant error control is valid (S6: YES), the
Fc : arc speed (mm / min)
・Rc : Arc radius (mm)
・ Ε: Allowable error (mm)
T 1 : Time constant 1 (FIR1)
T 2 : Time constant 2 (FIR2)
Rc is calculated from a circular interpolation command. When the radius of the start point and the end point of the command arc is different, the
CPU31は、計算した円弧速度Fcが、円弧補間指令の指令速度Fよりも小さいか否か判断する(S23)。計算した円弧速度Fcは、許容誤差ε内で移動する為の数値であるので、円弧速度Fcの方が小さい時(S23:YES)、CPU31は計算した円弧速度Fcを指令速度Fに設定する(S24)。その反対に、指令速度Fの方が小さい時(S23:NO)、許容誤差ε内で移動できるので、CPU31は指令速度Fを変更しない。なお、解釈した補間指令が直線補間指令である時(S21:NO)、経路に対して誤差を生じないので、CPU31は処理をS25に進める。
CPU31 is calculated arc rate F c is less determines whether than the command speed F of the circular interpolation command (S23). Since the calculated arc speed F c is a numerical value for moving within the allowable error ε, when the arc speed F c is smaller (S23: YES), the
−ブロック間角度βの計算−
CPU31は、第一ブロックと第二ブロックのうち、少なくとも一方が円弧補間ブロックか否か判断する(S25)。第一ブロックは今回の補間指令で補間するブロック、第二ブロックは第一ブロックの始点と繋がる前回の補間指令で補間したブロックである。円弧補間ブロックとは、円弧軌跡で補間するブロック、直線補間ブロックとは、直線軌跡で補間するブロックを意味する。第一ブロックと第二ブロックのうち少なくとも一方が円弧補間ブロックである時(S25:YES)、CPU31は円弧補間を考慮したブロック間角度βを計算する(S26)。他方、第一ブロックと第二ブロックの両方が直線補間ブロックである時(S25:NO)、CPU31は二つの直線補間のブロック間角度βを計算する(S27)。ブロック間角度βとは、第一ブロックと第二ブロックを繋ぐ指令点における角度を意味する。CPU31は、二つの直線補間ブロックの方向ベクトルを夫々求め、これらベクトル間の角度をブロック間角度βとして求める。
−Calculation of inter-block angle β−
The
他方、第一ブロックと第二ブロックのうち少なくとも一方が円弧補間ブロックである時、上記の通り、円弧補間指令の指令円弧に対して工具は内回りに移動する。それ故、CPU31は、指令円弧に加え、該指令円弧に内回り誤差を含んだ実円弧を考慮して、円弧補間ブロックの方向ベクトルを決定し、他方のブロックの方向ベクトルとのブロック間角度βを計算する必要がある。
On the other hand, when at least one of the first block and the second block is a circular interpolation block, as described above, the tool moves inward with respect to the command arc of the circular interpolation command. Therefore, the
第一ブロックと第二ブロックのうち少なくとも一方が円弧補間ブロックとなる場面は、補間順(第二ブロック、第一ブロックの順)に示すと、以下の3パターンがある。
(1)直線補間ブロック−円弧補間ブロック
(2)円弧補間ブロック−直線補間ブロック
(3)円弧補間ブロック−円弧補間ブロック
A scene in which at least one of the first block and the second block is a circular interpolation block has the following three patterns in the order of interpolation (the order of the second block and the first block).
(1) Linear interpolation block-Circular interpolation block (2) Circular interpolation block-Linear interpolation block (3) Circular interpolation block-Circular interpolation block
(1)直線補間ブロック−円弧補間ブロック
図6は、直線補間ブロックB1の次に、円弧補間ブロックB2が指令点Pで繋がる経路である。CPU31は、前回の直線補間ベクトルa、今回の指令円弧接線ベクトルb、今回の実円弧接線ベクトルcを求める。ベクトルaは、ブロックB1の指令直線のベクトルである。ベクトルbは、ブロックB2の指令円弧の指令点Pから引いた接線ベクトルである。ベクトルcは、実円弧Kの指令点Pから引いた接線ベクトルである。実円弧Kは、ブロックB2の指令円弧に内回り誤差を含む軌跡である。内回り誤差は許容誤差εに置き換えることができる。実円弧Kは、ブロックB2の指令円弧の指令速度Fと実円弧Kの半径から求める。実円弧Kの半径は、ブロックB2の指令円弧の円弧半径Rcから許容誤差εを差し引いた長さである。CPU31は、ベクトルaとベクトルbが成す角度、ベクトルaとベクトルcが成す角度を求める。コーナにおける内回り誤差は、同一速度であれば角度が小さいほど大きくなる。図6に示す例では、ベクトルaとベクトルbが成す角度の方が、ベクトルaとベクトルcが成す角度よりも小さい。それ故、CPU31はベクトルaとベクトルbが成す角度をブロック間角度βに決定する。
(1) Linear Interpolation Block-Circular Interpolation Block FIG. 6 shows a path in which the circular interpolation block B2 is connected at the command point P after the linear interpolation block B1. The
図7は、円弧補間ブロックB2の指令円弧が反時計回りになった経路である。図6と同様に、CPU31は、前回の直線補間ベクトルa、今回の指令円弧接線ベクトルb、今回の実円弧接線ベクトルcを求め、ベクトルaとベクトルbが成す角度、ベクトルaとベクトルcが成す角度を求める。図7に示す例では、ベクトルaとベクトルcが成す角度の方が、ベクトルaとベクトルbが成す角度よりも小さい。それ故、CPU31はベクトルaとベクトルcが成す角度をブロック間角度βに決定する。
FIG. 7 shows a path in which the command arc of the arc interpolation block B2 is counterclockwise. Similarly to FIG. 6, the
(2)円弧補間ブロック−直線補間ブロック
図8は、図6とは逆に、円弧補間ブロックB1の次に、直線補間ブロックB2が指令点Pで繋がる経路である。CPU31は、前回の指令円弧接線ベクトルa、前回の実円弧接線ベクトルb、今回の直線補間ベクトルcを求める。ベクトルaは、ブロックB1の指令円弧の指令点Pから引いた接線ベクトルである。ベクトルbは、実円弧Kの指令点Pから引いた接線ベクトルである。実円弧Kは、ブロックB1の指令円弧に内回り誤差を含む軌跡である。内回り誤差は許容誤差εに置き換えることができる。実円弧Kは、ブロックB1の指令円弧の指令速度Fと実円弧Kの半径から求める。実円弧Kの半径は、ブロックB1の指令円弧の円弧半径Rcから許容誤差εを差し引いた長さである。ベクトルcは、ブロックB2の指令直線のベクトルである。CPU31は、ベクトルaとベクトルcが成す角度、ベクトルbとベクトルcが成す角度を求める。図8に示す例では、ベクトルaとベクトルcが成す角度の方が、ベクトルbとベクトルcが成す角度よりも小さい。それ故、CPU31はベクトルaとベクトルcが成す角度をブロック間角度βに決定する。
(2) Circular Interpolation Block-Linear Interpolation Block FIG. 8 shows a path where the linear interpolation block B2 is connected at the command point P next to the circular interpolation block B1, contrary to FIG. The
(3)円弧補間ブロック−円弧補間ブロック
図9は、円弧補間ブロックB1の次に、円弧補間ブロックB2が指令点Pで繋がる経路である。該場面では、第一ブロックと第二ブロックの何れもが円弧補間ブロックであるので、CPU31は、前回の指令円弧接線ベクトルa、前回の実円弧接線ベクトルb、今回の指令円弧接線ベクトルc、今回の実円弧接線ベクトルdを求める。ベクトルaは、ブロックB1の指令円弧の指令点Pから引いた接線ベクトルである。ベクトルbは、実円弧K1の指令点Pから引いた接線ベクトルである。実円弧K1は、ブロックB1の指令円弧に内回り誤差を含む軌跡である。内回り誤差は許容誤差εに置き換えることができる。実円弧K1は、ブロックB1の指令円弧の指令速度Fと実円弧Kの半径から求める。実円弧K1の半径は、ブロックB1の指令円弧の円弧半径Rcから許容誤差εを差し引いた長さである。
(3) Circular Interpolation Block-Circular Interpolation Block FIG. 9 shows a path in which the circular interpolation block B2 is connected at the command point P after the circular interpolation block B1. In this scene, since both the first block and the second block are circular interpolation blocks, the
他方、ベクトルcは、ブロックB2の指令円弧の指令点Pから引いた接線ベクトルである。ベクトルdは、実円弧K2の指令点Pから引いた接線ベクトルである。実円弧K2は、ブロックB2の指令円弧に内回り誤差を含む軌跡である。内回り誤差は許容誤差εに置き換えることができる。実円弧K2は、ブロックB2の指令円弧の指令速度Fと実円弧K2の半径から求める。実円弧K2の半径は、ブロックB2の指令円弧の円弧半径Rcから許容誤差εを差し引いた長さである。 On the other hand, the vector c is a tangent vector drawn from the command point P of the command arc of the block B2. The vector d is a tangent vector drawn from the command point P of the real arc K2. The actual arc K2 is a trajectory including an inward error in the command arc of the block B2. The inward error can be replaced with an allowable error ε. The actual arc K2 is obtained from the command speed F of the command arc of the block B2 and the radius of the actual arc K2. The radius of the actual arc K2 is the length obtained by subtracting the allowable error ε from the arc radius R c of the instruction arc block B2.
CPU31は、ベクトルaとベクトルcが成す角度、ベクトルaとベクトルdが成す角度、ベクトルbとベクトルcが成す角度、ベクトルbとベクトルdが成す角度を求める。コーナにおける内回り誤差は、同一速度であれば角度が小さいほど大きくなる。図9に示す例では、ベクトルaとベクトルcが成す角度が、他の角度に比べて最も小さい。それ故、CPU31はベクトルaとベクトルcが成す角度をブロック間角度βに決定する。
The
−ブロック間角度βの補正−
図4に戻り、上述の如く、ブロック間角度βを計算した後(S26,S27)、計算したブロック間角度βについて、CPU31はブロック間角度補正処理を実行する(S28)。
-Correction of inter-block angle β-
Returning to FIG. 4, as described above, after calculating the inter-block angle β (S26, S27), the
図10〜図12を参照し、ブロック間角度βを補正する理由を説明する。図10に示す経路L1は、二つの直線補間指令で形成され、直線補間ブロックB1の次に、直線補間ブロックB2が指令点Pで繋がる経路である。ブロックB1はX軸方向への直線補間、ブロックB2はY軸方向への直線補間である。ブロック間角度βは90°である。図11は、図10の経路L1を移動する際のブロックB1の移動速度(速度1)とブロックB2の移動速度(速度2)を、二段のFIRフィルタ(FIR1,2)で夫々処理した図である。 The reason for correcting the inter-block angle β will be described with reference to FIGS. A path L1 shown in FIG. 10 is formed by two linear interpolation commands. The linear interpolation block B2 is connected by the command point P next to the linear interpolation block B1. Block B1 is linear interpolation in the X-axis direction, and block B2 is linear interpolation in the Y-axis direction. The inter-block angle β is 90 °. FIG. 11 is a diagram in which the moving speed (speed 1) of the block B1 and the moving speed (speed 2) of the block B2 when moving along the path L1 in FIG. 10 are respectively processed by the two-stage FIR filters (FIR1, 2). It is.
速度1が最大速度から下降を開始する時、速度2は上昇を開始する。速度1と速度2が重なる部分では、工具は経路L1のコーナを内回りに移動する。速度1が最大速度から下降を開始する時、工具はA1に位置する。速度1と速度2が同一速度で最も重なる時、工具はA2に位置する。速度1が最大速度から下降して0になる時、工具はA3に位置する。A2は、経路L1に対して誤差が最大となる位置である。A3は誤差が解消する位置である。誤差が生じて解消するまでのA1〜A3までの時間は、時定数t1とt2の合計に相当する。即ち、経路L1のコーナで発生した誤差はA3を通過しなければ解消しない。例えばA2を過ぎた直後に次ブロックのコーナがある時、誤差が時定数の合計の半分の時間だけ残る可能性がある。それ故、本実施形態は、過去にコーナで生じた誤差の影響を考慮し、S26,S27で計算したブロック間角度βを補正する。
When
図5,図12,図13を参照し、ブロック間角度補正処理を説明する。本実施形態は、図12に示す経路L2を想定して説明する。経路L2は、複数のコーナが連続し、全体的に湾曲する経路である。PNは今回の補間指令の開始点である。PN+1は今回の補間指令の移動指令位置である。PN−1は前回(一個前)の補間指令の開始点である。PN−2は二個前の補間指令の開始点である。PN−3は三個前の補間指令の開始点である。PN−4は四個前の補間指令の開始点である。図13は、図12に示す経路L2を移動する時の移動速度の変化について、FIRフィルタ処理を施す前の図表である。 The inter-block angle correction process will be described with reference to FIGS. 5, 12, and 13. This embodiment will be described assuming a route L2 shown in FIG. The path L2 is a path in which a plurality of corners are continuous and curved as a whole. P N is the starting point of the current interpolation command. P N + 1 is the movement command position of the current interpolation command. PN-1 is the start point of the previous (previous) interpolation command. P N−2 is the start point of the previous interpolation command. P N-3 is the start point of the previous three interpolation commands. PN-4 is the start point of the previous four interpolation commands. FIG. 13 is a chart before the FIR filter processing is performed on the change in the moving speed when moving along the route L2 shown in FIG.
図5に示す如く、先ず、CPU31は、遡り時間TBを以下の(数2)で求める(S40)。遡り時間TBは時定数t1,t2の合計の半分である。
(数2)
TB=(t1+t2)/2
・TB:遡り時間(msec)
・t1:FIR1の時定数(msec)
・t2:FIR2の時定数(msec)
As shown in FIG. 5, first,
(Equation 2)
T B = (t 1 + t 2 ) / 2
・ T B : Retroactive time (msec)
T 1 : Time constant of FIR1 (msec)
T 2 : Time constant of FIR2 (msec)
次いで、CPU31は、TBがTN−1以下か否か判断する(S41)。図13に示す如く、TN−1は、一個前の補間指令の指令開始遅延時間Tdと移動時間の合計である。指令開始遅延時間Tdとは、一個前の補間指令に基づく移動が終了した時から、今回の補間指令に基づく移動を開始する時機を遅延させる時間である。なお、後述するが、今回の補間指令のTdは、ブロック間角度補正処理の後で計算するが(図4のS29参照)、過去の補間指令のTdは既に計算済みである。TBがTN−1以下の時(S41:YES)、過去の経路誤差は既に解消しているので、CPU31は何もせずに本処理を終了し、図4のS29に処理を進める。
Then,
他方、TBがTN−1より大きい時(S41:NO)、過去の誤差が残っているので、CPU31はMに2を代入した上で(S42)、TBが以下の[数3]を満たすか否か判断する(S43)。Mは整数のパラメータである。
・βN−M:直線PN−MPNと直線PNPN+1の内角(deg)
・β´:補正後のブロック間角度(deg)
On the other hand, when T B is larger than T N−1 (S41: NO), the past error remains, so the
.Beta.N -M : Interior angle (deg) of straight line P N-M P N and straight line P N P N + 1
Β ′: Angle between blocks after correction (deg)
但し、TN−Mは以下の[数4]で求める。
・LN−M:M個前の補間指令のブロック長(mm)
・FN−M:M個前の補間指令の指令速度(mm/min)
However, TN-M is obtained by the following [Equation 4].
・ L N-M : Block length of mm previous interpolation command (mm)
・ F N-M : Command speed of mm previous interpolation command (mm / min)
M=2で[数3]を満たす時(S43:YES)、過去の誤差が解消しているので、CPU31は角度β〜βN−Mを求める(S45)。他方、M=2で[数3]を満たさない時(S43:NO)、CPU31はMに更に1加算した上で(S44)、S43に戻って[数3]を満たすか否か再度判断する。[数3]を満たした時(S43:YES)、CPU31は[数3]を満たしたMの値で、角度β〜βN−Mを求める(S45)。例えば、図12,図13に示す如く、今回の補間指令の開始点PNから遡り時間TB分過去に遡った位置PB(図12参照)を想定する。PNがPN−2とPN−3の間にある時、CPU31は、三つ前のブロック(本発明の「過去ブロック」に相当)の補間指令の開始点PN−3まで遡り、角度βN−2,βN−3を求める。CPU31は、S45で求めた角度β〜βN−Mのうち最小の角度を補正後のブロック間角度β´に決定する(S46)。図12に示す例では、βN−3をβ´に決定する。CPU31は本処理を終了し、図4のS29に処理を進める。
When satisfying the
−指令開始遅延時間Tdの計算−
図4の誤差一定制御処理に戻り、CPU31はTdを計算する(S29)。図10に示す経路L1で説明する。図14は、図11と同様に、Tdを0とした時のFIRフィルタ処理を施した速度1と2の夫々の変化を示す。速度1と2が重なる部分は、工具がコーナを内回りする部分である。速度1と2が重なる部分の長さは、時定数t1+t2に相当する。速度1と2が重なる部分において、速度1と2の曲線部分は二段目のFIR2の幅t2に相当する。速度1と2が最も重なるA2は誤差最大点である。本実施形態は、該誤差からTdを求める。誤差最大点の誤差を求めるには、速度1と2が重なり始めてから、速度が曲線で変化する曲線部分と、直線で変化する直線部分の両方を計算する必要がある。
- calculation of the command start delay time T d -
Returning to the constant error control process of FIG. 4, the
他方、図15に示す如く、速度1と2の重なり時間が2×t2よりも短い時、速度1と2が重なる部分の速度変化は全て曲線となる。それ故、誤差からTdを求める式は、図14の時と異なる。なお、図16に示す如く、Tdをt1+t2とした時、速度1と2は重ならず、コーナにおける誤差は0である。この時のTdは最大値である。
On the other hand, as shown in FIG. 15, when the overlapping time of the
以上のことを踏まえ、Tdについて、以下の関係が成り立つ。εmaxは誤差の最大値である。
・Td=0 ならば 誤差=εmax
・Td=t1+t2 ならば 誤差=0
Based on the above, the following relationship holds for Td . ε max is the maximum value of error.
If T d = 0, error = ε max
If T d = t 1 + t 2 then error = 0
図14に示す如く、Td<t1−t2では、速度1と2が重なる部分の変化は、直線部分と曲線部分の両方を含む。他方、図15に示す如く、Td≧t1−t2では、速度1と2が重なる部分の変化は曲線部分のみである。即ち、Tdの長さによって誤差を求める式は異なる。それ故、本実施形態は、許容誤差εからTdを求める為に、Td=t1−t2となる時の誤差εt1−t2を予め求めておけば、二通りの計算式のうち何れの式を使ってTdを求めればよいかを容易に判別できる。そこで、CPU31は、(εt1−t2/εmax)=Kと置き換え、以下の[数5]と[数6]に示す如く、ε/εmaxがK未満か以上かで、Tdを計算する式を判別する。[数5]と[数6]に示すTdの算出式は、図15に示す速度波形を積分して得られる位置とTdの関係より求めた。
As shown in FIG. 14, when T d <t 1 -t 2 , the change in the portion where the
なお、指令速度Fが大きければ大きいほど、誤差は大きくなることから、Tdは大きくなる。それ故、Tdを計算する時の指令速度Fは、ブロックB1の指令速度とブロックB2の指令速度のうち大きいものを用いるのが望ましい。 Note that the larger the command speed F, the larger the error, so that Td increases. Therefore, it is desirable to use a larger command speed F of the block B1 and the command speed of the block B2 when calculating Td .
図4に示す如く、CPU31は、Kの値に応じて何れか一方の式を使ってTdを計算し、計算したTdを記憶装置34に記憶する(S30)。それ故、CPU31は、時定数t1,t2、許容誤差ε、指令速度F、ブロック間角度βに基づき、速度1と2の重なり具合に応じて、Tdを簡単に計算できる。CPU31は誤差一定制御処理を終了し、図3のメイン処理のS8に処理を進める。
As shown in FIG. 4, the
次いで、CPU31は、今回の補間指令に基づき、前回の補間指令の指令点(現在位置)から指令位置までの補間処理を実行する(S8)。次いで、CPU31は、駆動軸毎の移動速度に対して二段のFIRフィルタ処理を実行し(S9)、駆動軸毎に駆動信号を生成する。次いで、CPU31は、前回の補間指令の移動が終了した時から記憶装置34に記憶したTdが経過したか否か判断する(S10)。Tdが経過していない時(S10:NO)、CPU31は待機する。Tdが経過した時(S10:YES)、CPU31は補間指令に対応するモータ51,53,54の駆動回路51A,53A,54Aに駆動信号を出力する(S11)。駆動信号を受信した駆動回路51A,53A,54Aに対応するモータ51,53,54は駆動する。前回の補間指令の移動が終了してTd経過後に、今回の補間指令に基づく工具の移動が開始する。
Next, based on the current interpolation command, the
CPU31はS2に戻り、次ブロックを解釈する。次ブロックが終了指令で無い時(S3:NO)、CPU31は次ブロックについて処理を繰り返す。次ブロックが終了指令の時(S3:YES)、CPU31は本処理を終了する。それ故、数値制御装置30は、本処理を実行することにより、NCプログラムが指令する経路に対して、工具を許容誤差ε内で移動できる。
The
以上説明の如く、本実施形態の数値制御装置30は、NCプログラムが指令する経路に沿って工具を移動してワーク加工を実行する。経路は、複数の指令点について隣接する指令点を補間して得られる。数値制御装置30のCPU31は、工具を移動するモータの加減速時定数t1,t2と、経路に対して許容する許容誤差εと、工具の移動速度を指令する指令速度Fと、経路のうち、NCプログラム中の第一ブロックと第二ブロックのブロック間角度βに基づき、モータ51,53,54に前回の補間指令の移動が終了してから今回の補間指令を開始するまでの指令開始遅延時間Tdを演算する。第一ブロックは今回の補間指令で補間するブロック、第二ブロックは前回の補間指令で補間したブロックである。CPU31は、演算したTdに基づき、対応するモータ51,53,54に今回の補間指令の移動を実行する駆動信号を駆動回路51A,53A,54Aに出力する。それ故、数値制御装置30は、NCプログラムが指令する経路について、小さい計算負荷で、経路誤差を常に許容誤差ε内に制御できる。
As described above, the
上記実施形態は更に、第一ブロックと第二ブロックのうち少なくとも一方のブロックが円弧補間を行う円弧補間ブロックである時、指令円弧の円弧半径と、許容誤差εと、時定数t1,t2とに基づき、円弧補間ブロックにて工具が移動する円弧速度Fcを演算する。さらに、数値制御装置30は、演算した円弧速度と、指令速度Fとを対比し、小さい方の速度を指令速度Fに設定する。それ故、数値制御装置30は、円弧補間ブロックにおいて許容誤差ε内で経路を移動できる。また、数値制御装置30は、円弧補間ブロックについて、第一ブロックと第二ブロックを繋ぐ指令点から引いた線分であって、指令円弧の指令円弧接線ベクトルと、指令点から引いた実円弧接線ベクトルのうち、他方のブロックとの成す角度が小さい方の角度をブロック間角度βとして演算する。それ故、数値制御装置30は、少なくとも一方が円弧補間ブロックである時の第一ブロックと第二ブロックのブロック間角度βを適切に演算できるので、Tdを適切に演算できる。
In the above embodiment, when at least one of the first block and the second block is a circular interpolation block that performs circular interpolation, the circular arc radius of the command circular arc, the allowable error ε, and the time constants t 1 and t 2 based on bets, it calculates the arc rate F c which tool is moved in circular interpolation block. Further, the
上記実施形態は更に、第一ブロックと第二ブロックの両方が直線補間ブロックである時、直線補間ブロック同士間のブロック間角度βを演算する。第一ブロックと第二ブロックのうち一方が円弧補間ブロックである時、数値制御装置30は、指令円弧接線ベクトルと実円弧接線ベクトルのうち、他方の直線補間ブロックの指令直線と成す角度が小さい方の角度をブロック間角度βとする。第一ブロックと第二ブロックの両方が円弧補間ブロックである時、数値制御装置30は、円弧補間ブロック同士を繋ぐ指令点から夫々引いた線分であって、第一ブロックに対応する指令円弧接線ベクトル及び実円弧接線ベクトルと、第二ブロックに対応する指令円弧接線ベクトル及び実円弧接線ベクトルとが相互に成す角度のうち、最も小さい角度をブロック間角度βとする。それ故、数値制御装置30は、直線ブロック間同士、円弧補間ブロックと直線補間ブロック、円弧補間ブロック間同士の夫々のブロック間角度βを適切に演算できるので、Tdを適切に演算できる。
The above embodiment further calculates an inter-block angle β between the linear interpolation blocks when both the first block and the second block are linear interpolation blocks. When one of the first block and the second block is a circular interpolation block, the
以上説明にて、S7の処理を実行するCPU31が本発明の演算手段に相当し、S10,S11の処理を実行するCPU31が本発明の実行手段に相当し、S22の処理を実行するCPU31が本発明の円弧速度演算手段に相当し、S27の処理を実行するCPU31ご本発明の第一角度演算手段に相当し、S26にて、円弧補間ブロックと直線補間ブロック間のブロック間角度βを演算するCPU31が本発明の第二角度演算手段に相当し、
S26にて、円弧補間ブロック同士間のブロック間角度βを演算するCPU31が本発明の第三角度演算手段に相当する。また、CPU31が実行するS7の処理ステップが本発明の演算工程に相当し、CPU31が実行するS10,S11の処理ステップが本発明の実行手段に相当する。
In the above description, the
In S26, the
本発明は上記実施形態に限らず種々の変更が可能である。例えば、上記実施形態は、移動速度を二段のFIRフィルタ(FIR1,FIR2)で処理するが、三段、若しくはそれ以上のFIRフィルタで処理してもよい。例えば、三段のFIRフィルタで処理する時の時定数を大きいほうから順に、夫々、t1,t2,t3とした時、指令開始遅延時間Tdの計算は以下の[数7]〜[数11]のように計算すればよい。以下、[t1≦t2+t3の場合]と[t1>t2+t3の場合]に分けて説明する。 The present invention is not limited to the above embodiment, and various modifications can be made. For example, in the above embodiment, the moving speed is processed by a two-stage FIR filter (FIR1, FIR2), but may be processed by a three-stage or more FIR filter. For example, when the time constant when processing with a three-stage FIR filter is set to t 1 , t 2 , and t 3 in order from the largest, the command start delay time T d is calculated as follows: What is necessary is just to calculate like [Formula 11]. Hereinafter, the description will be divided into [when t 1 ≦ t 2 + t 3 ] and [when t 1 > t 2 + t 3 ].
[t1≦t2+t3の場合]
・0≦ε/εmax≦K1の時
[1]ルート内の計算結果が0以上である。
[2]Tdが「−t1+t2+t3≦Td≦t1−t2+t3」を満たす。
・K3<ε/εmax≦1の時
[1]ルート内の計算結果が0以上である。
[2]Tdが「0≦Td≦−t1+t2+t3」を満たす。
但し、
・ When 0 ≦ ε / ε max ≦ K 1
[1] The calculation result in the route is 0 or more.
[2] T d satisfies “−t 1 + t 2 + t 3 ≦ T d ≦ t 1 −t 2 + t 3 ”.
・ When K 3 <ε / ε max ≦ 1
[1] The calculation result in the route is 0 or more.
[2] T d satisfies “0 ≦ T d ≦ −t 1 + t 2 + t 3 ”.
However,
[t1>t2+t3の場合]
・0≦ε/εmax≦K1の時
[1]ルート内の計算結果が0以上である。
[2]Tdが「t1−t2−t3≦Td≦t1−t2+t3」を満たす。
・K3≦ε/εmax≦1の時
・ When 0 ≦ ε / ε max ≦ K 1
[1] The calculation result in the route is 0 or more.
[2] T d satisfies “t 1 −t 2 −t 3 ≦ T d ≦ t 1 −t 2 + t 3 ”.
・ When K 3 ≦ ε / ε max ≦ 1
また、上記実施形態は、更に種々の変更が可能である。上記実施形態は、図4に示す誤差一定制御処理の中のブロック間角度補正処理(S28)を省略してもよい。 Further, various modifications can be made to the above embodiment. In the above embodiment, the inter-block angle correction process (S28) in the constant error control process shown in FIG. 4 may be omitted.
また上記実施形態は、NCプログラムが指令する経路に沿って工具を移動するが、経路に沿ってワークを移動させてもよい。 Moreover, although the said embodiment moves a tool along the path | route which an NC program commands, you may move a workpiece | work along a path | route.
また上記実施形態は、主軸の軸線が上下方向に延びる立型の工作機械1を例に説明したが、主軸の軸線が水平方向に延びる横型の工作機械にも適用可能である。
Moreover, although the said embodiment demonstrated the vertical
また上記実施形態は、モータの加減速時定数として移動平均を行うFIRフィルタの時定数を用いたが、時定数を持つその他フィルタについても適用可能である。例えば、FIRフィルタの代わりに[数17]に示すような1次のローパスフィルタを用いて加減速を行っても良い。Tは時定数である。
1 工作機械
30 数値制御装置
31 CPU
51 Z軸モータ
52 X軸モータ
53 Y軸モータ
1
51 Z-
Claims (4)
前記工具又はワークを移動するモータの加減速時定数と、前記経路に対して許容する許容誤差と、前記経路のうち、前記NCプログラム中の今回の補間指令で補間する第一ブロックと、前回の補間指令で補間した第二ブロックの間の角度であるブロック間角度と、前記第一ブロックと前記第二ブロックでの前記工具又は前記ワークの移動速度を指令する夫々の指令速度のうちどちらか大きなものに基づき、前記経路からの誤差の最大値を演算し、当該最大値と前記第一ブロックの速度波形と前記第二ブロックの速度波形との重なり具合に応じて、前記モータに前記今回の補間指令を開始させる時機を演算する演算手段と、
前記演算手段が演算した前記時機に基づき、前記モータに前記今回の補間指令を実行させる実行手段と
を備えたことを特徴とする数値制御装置。 In a numerical control apparatus for moving a tool or a workpiece along a path obtained by interpolating adjacent command points for a plurality of command points commanded by an NC program,
The acceleration / deceleration time constant of the motor that moves the tool or workpiece, the allowable error allowed for the path, the first block to be interpolated by the current interpolation command in the NC program, and the previous block The larger of the inter-block angle, which is the angle between the second blocks interpolated by the interpolation command, and the command speeds for commanding the moving speed of the tool or the workpiece in the first block and the second block And calculating the maximum value of the error from the path , and depending on how the maximum value, the velocity waveform of the first block and the velocity waveform of the second block overlap , the current interpolation is performed on the motor. A calculation means for calculating a timing for starting the command;
A numerical control apparatus comprising: an execution unit that causes the motor to execute the current interpolation command based on the timing calculated by the calculation unit.
前記円弧速度演算手段が演算した前記円弧速度と、前記指令速度とを対比し、小さい方の速度を前記指令速度に設定する指令速度設定手段と、
前記ブロック間角度を演算するブロック間角度演算手段と
を備え、
前記ブロック間角度演算手段は、
前記円弧補間ブロックについて、前記第一ブロックと前記第二ブロックを繋ぐ第一指令点から引いた線分であって、前記指令円弧の接線ベクトルである指令円弧接線ベクトルと、前記第一指令点から引いた線分であって、前記指令速度と前記指令円弧の円弧半径から導出される内回り誤差を含む実円弧の接線ベクトルである実円弧接線ベクトルとのうち、他方のブロックとの成す角度が小さい方の角度を前記ブロック間角度として演算する
ことを特徴とする請求項1に記載の数値制御装置。 When at least one of the first block and the second block is a circular interpolation block that performs circular interpolation, a circular arc radius of a command circular arc commanded by a circular interpolation command corresponding to the circular interpolation block, and the allowable error And an arc speed calculation means for calculating an arc speed at which the tool or workpiece moves in the arc interpolation block based on the acceleration / deceleration time constant;
Command speed setting means for comparing the arc speed calculated by the arc speed calculation means with the command speed, and setting a smaller speed as the command speed;
An inter-block angle calculating means for calculating the inter-block angle;
The inter-block angle calculation means includes:
For the circular interpolation block, a line segment drawn from the first command point connecting the first block and the second block, a command arc tangent vector that is a tangent vector of the command arc, and the first command point Of the drawn line segment, the angle formed with the other block out of the command arc and the actual arc tangent vector that is the tangent vector of the actual arc including the inward error derived from the arc radius of the command arc is small. The numerical controller according to claim 1, wherein the angle is calculated as the inter-block angle.
前記第一ブロックと前記第二ブロックの両方が直線補間を行う直線補間ブロックである場合に、前記直線補間ブロック同士間の前記ブロック間角度を演算する第一角度演算手段と、
前記第一ブロックと前記第二ブロックのうち一方が前記円弧補間ブロックである場合に、前記円弧補間ブロックと他方の直線補間ブロック間の前記ブロック間角度を演算する第二角度演算手段と、
前記第一ブロックと前記第二ブロックの両方が前記円弧補間ブロックである場合に、前記円弧補間同士間の前記ブロック間角度を演算する第三角度演算手段と
を備え、
前記第二角度演算手段は、
前記指令円弧接線ベクトルと前記実円弧接線ベクトルのうち、前記直線補間ブロックに対応する直線補間指令が指令する指令直線と成す角度が小さい方の角度を前記ブロック間角度とし、
前記第三角度演算手段は、
前記円弧補間ブロックである前記第一ブロックと前記第二ブロックを繋ぐ第二指令点から夫々引いた線分であって、前記第一ブロックに対応する前記指令円弧接線ベクトル及び前記実円弧接線ベクトルと、前記第二ブロックに対応する前記指令円弧接線ベクトル及び前記実円弧接線ベクトルとが相互に成す角度のうち、最も小さい角度を前記ブロック間角度とする
ことを特徴とする請求項2に記載の数値制御装置。 The inter-block angle calculation means includes:
When both the first block and the second block are linear interpolation blocks that perform linear interpolation, first angle calculation means for calculating the inter-block angle between the linear interpolation blocks;
When one of the first block and the second block is the circular interpolation block, a second angle calculating means for calculating the inter-block angle between the circular interpolation block and the other linear interpolation block;
When both the first block and the second block are the circular interpolation blocks, a third angle calculation means for calculating the inter-block angle between the circular interpolations,
The second angle calculation means includes
Of the command arc tangent vector and the actual arc tangent vector, the smaller angle formed with the command straight line commanded by the linear interpolation command corresponding to the linear interpolation block is defined as the inter-block angle.
The third angle calculation means includes
Line segments respectively drawn from second command points connecting the first block and the second block, which are the circular interpolation blocks, and the command arc tangent vector and the actual arc tangent vector corresponding to the first block; The numerical value according to claim 2, wherein the smallest angle among the angles formed by the command arc tangent vector and the actual arc tangent vector corresponding to the second block is the inter-block angle. Control device.
前記工具又はワークを移動するモータの加減速時定数と、前記経路に対して許容する許容誤差と、前記経路のうち、前記NCプログラム中の今回の補間指令で補間する第一ブロックと、前回の補間指令で補間した第二ブロックの間の角度であるブロック間角度と、前記第一ブロックと前記第二ブロックでの前記工具又は前記ワークの移動速度を指令する夫々の指令速度のうちどちらか大きなものに基づき、前記経路からの誤差の最大値を演算し、当該最大値と前記第一ブロックの速度波形と前記第二ブロックの速度波形との重なり具合に応じて、前記モータに前記今回の補間指令を開始させる時機を演算する演算工程と、
前記演算工程で演算した前記時機に基づき、前記モータに前記今回の補間指令を実行させる実行工程と
を備えたことを特徴とする制御方法。 In a control method of a numerical controller that moves a tool or a workpiece along a path obtained by interpolating adjacent command points for a plurality of command points commanded by an NC program,
The acceleration / deceleration time constant of the motor that moves the tool or workpiece, the allowable error allowed for the path, the first block to be interpolated by the current interpolation command in the NC program, and the previous block The larger of the inter-block angle, which is the angle between the second blocks interpolated by the interpolation command, and the command speeds for commanding the moving speed of the tool or the workpiece in the first block and the second block And calculating the maximum value of the error from the path , and depending on how the maximum value, the velocity waveform of the first block and the velocity waveform of the second block overlap , the current interpolation is performed on the motor. A calculation process for calculating the timing to start the command;
A control method comprising: an execution step of causing the motor to execute the current interpolation command based on the timing calculated in the calculation step.
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015008206A JP6435872B2 (en) | 2015-01-20 | 2015-01-20 | Numerical control device and control method |
DE102016100808.7A DE102016100808B4 (en) | 2015-01-20 | 2016-01-19 | Numerical control device and control method |
CN201610037763.2A CN105807721B (en) | 2015-01-20 | 2016-01-20 | Numerical controller and control method thereof |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015008206A JP6435872B2 (en) | 2015-01-20 | 2015-01-20 | Numerical control device and control method |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2016133987A JP2016133987A (en) | 2016-07-25 |
JP6435872B2 true JP6435872B2 (en) | 2018-12-12 |
Family
ID=56293888
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2015008206A Active JP6435872B2 (en) | 2015-01-20 | 2015-01-20 | Numerical control device and control method |
Country Status (3)
Country | Link |
---|---|
JP (1) | JP6435872B2 (en) |
CN (1) | CN105807721B (en) |
DE (1) | DE102016100808B4 (en) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107817761B (en) * | 2016-09-12 | 2020-02-07 | 上海铼钠克数控科技股份有限公司 | Part processing method and system based on error iterative learning |
CN106444625B (en) * | 2016-09-18 | 2019-03-12 | 合肥工业大学 | A kind of the cutter head follow-up control method and its control device of glass cutting machine |
JP6769219B2 (en) * | 2016-09-30 | 2020-10-14 | ブラザー工業株式会社 | Numerical control device |
CN106227152A (en) * | 2016-10-17 | 2016-12-14 | 合肥工业大学 | A kind of CNC processing smooth transient method and seamlessly transit device |
CN108375957B (en) * | 2017-01-31 | 2021-03-26 | 兄弟工业株式会社 | Numerical controller and control method |
JP6881362B2 (en) * | 2018-03-16 | 2021-06-02 | ブラザー工業株式会社 | Numerical control device |
JP7037457B2 (en) * | 2018-09-05 | 2022-03-16 | オークマ株式会社 | Numerical control device and numerical control method |
CN109240215B (en) * | 2018-11-22 | 2019-05-24 | 山东易码智能科技股份有限公司 | A kind of PVT control method based on modified S curve acceleration and deceleration |
CN110032142B (en) * | 2019-04-29 | 2020-08-14 | 大连理工大学 | Contour error pre-compensation method based on numerical control machining path minimum correction |
JP7376260B2 (en) * | 2019-06-19 | 2023-11-08 | ファナック株式会社 | numerical control device |
JP7238673B2 (en) * | 2019-07-30 | 2023-03-14 | ブラザー工業株式会社 | Numerical controller and control method |
JP7487468B2 (en) * | 2019-12-09 | 2024-05-21 | ブラザー工業株式会社 | Numerical control device, numerical control method, and storage medium |
Family Cites Families (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5835607A (en) | 1981-08-27 | 1983-03-02 | Fanuc Ltd | Numerical controlling system |
JPH05313729A (en) * | 1992-05-08 | 1993-11-26 | Hitachi Seiki Co Ltd | Numerical controller |
JPH06110534A (en) * | 1992-09-29 | 1994-04-22 | Intetsuku:Kk | Position control method for machine tool |
DE10351781B4 (en) | 2003-11-06 | 2006-12-07 | Siemens Ag | Computer-aided adaptation method for a user program for a machine tool and objects corresponding thereto |
JP4115925B2 (en) * | 2003-11-28 | 2008-07-09 | ヤマザキマザック株式会社 | Machine tool control method and control device therefor |
JP4891528B2 (en) * | 2004-04-07 | 2012-03-07 | オークマ株式会社 | Machining time calculation device |
JP2006309645A (en) * | 2005-05-02 | 2006-11-09 | Fanuc Ltd | Curve interpolation method |
JP4508969B2 (en) * | 2005-07-28 | 2010-07-21 | 日本電産シンポ株式会社 | Linear interpolation method in drive controller |
US7979158B2 (en) * | 2007-07-31 | 2011-07-12 | Rockwell Automation Technologies, Inc. | Blending algorithm for trajectory planning |
JP5317532B2 (en) * | 2008-05-23 | 2013-10-16 | 三菱電機株式会社 | Numerical controller |
JP2011134169A (en) * | 2009-12-25 | 2011-07-07 | Mitsubishi Heavy Ind Ltd | Control parameter adjusting method and adjusting device |
JP5149421B2 (en) * | 2011-05-20 | 2013-02-20 | ファナック株式会社 | Numerical control device having machining time prediction unit and machining error prediction unit |
JP5192578B2 (en) * | 2011-06-03 | 2013-05-08 | ファナック株式会社 | Numerical control device with a function to correct the movement path of machining programs |
CN102222143A (en) * | 2011-06-21 | 2011-10-19 | 江苏科技大学 | Spatial spiral line numerical control interpolation system and method of parallel machine tool for machining marine propeller |
JP5208325B1 (en) * | 2011-09-15 | 2013-06-12 | 三菱電機株式会社 | Numerical control apparatus, machining system, and numerical control method |
JP5374616B1 (en) * | 2012-06-14 | 2013-12-25 | ファナック株式会社 | Tool path display device for displaying tool vectors of machine tools |
JP5653972B2 (en) * | 2012-07-19 | 2015-01-14 | ファナック株式会社 | Numerical control device with multi-curve insertion section |
CN104166376A (en) * | 2013-05-18 | 2014-11-26 | 刘希汉 | Compound interpolation method and system software thereof |
CN104020718A (en) * | 2014-05-28 | 2014-09-03 | 张万军 | Self-adaption real-time interpolation method for NURBS curve reference model |
-
2015
- 2015-01-20 JP JP2015008206A patent/JP6435872B2/en active Active
-
2016
- 2016-01-19 DE DE102016100808.7A patent/DE102016100808B4/en active Active
- 2016-01-20 CN CN201610037763.2A patent/CN105807721B/en active Active
Also Published As
Publication number | Publication date |
---|---|
JP2016133987A (en) | 2016-07-25 |
CN105807721A (en) | 2016-07-27 |
DE102016100808B4 (en) | 2019-05-16 |
CN105807721B (en) | 2020-02-18 |
DE102016100808A1 (en) | 2016-07-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6435872B2 (en) | Numerical control device and control method | |
JP6380119B2 (en) | Numerical control device and control method | |
JP6450732B2 (en) | Numerical controller | |
JP4299805B2 (en) | Numerical control device that performs tool compensation using table format data | |
EP1720085A1 (en) | Curve interpolating method | |
JP5762625B2 (en) | Trajectory control device | |
JP5079165B2 (en) | Numerical control apparatus and numerical control method | |
CN108375957B (en) | Numerical controller and control method | |
JP2009146152A (en) | Numerical controller for controlling five-axis machining apparatus | |
JP2011237885A (en) | Numerical control apparatus with function of tip r correction or tool diameter correction in control by tabular data | |
JP2013030103A (en) | Numerical controller | |
EP1508843B1 (en) | Numerical control apparatus | |
JP2008046899A (en) | Numerical control device | |
JP5905521B2 (en) | Numerical control device characterized by suppressing backlash generated during tool tip point control | |
JP5573664B2 (en) | Numerical control apparatus, movement control method, movement control program, and storage medium | |
JP2007245247A (en) | Machine having program validation function | |
JP2007304714A (en) | Numerical control device | |
JP5983181B2 (en) | Numerical control device and control method | |
JP5875740B1 (en) | Numerical controller | |
JP5375703B2 (en) | Numerical controller | |
JP5143661B2 (en) | NC lathe control method and control device | |
JP5659666B2 (en) | Numerical control apparatus, moving path correcting method, moving path correcting program, and storage medium | |
JP6068614B2 (en) | Numerical control device characterized by suppressing backlash generated during tool tip point control | |
JPH06180606A (en) | Controller for object to be driven | |
JP5005366B2 (en) | Robot controller |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20170324 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20180314 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20180403 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20180530 |
|
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: 20181016 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20181029 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6435872 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |