IP Library Granted Patent US 12699375
Granted Patent B2
US 12699375 · App. 18/269,345 · Granted Aug 4, 2026

Numerical controller

Inventors: Kazuhiko Murakawa (Minamitsuru-gun, JP); Takeshi Mochida (Minamitsuru-gun, JP)
Assignee: FANUC CORPORATION
G05B19/4097G05B2219/35012
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12699375
App. No.
18/269,345
Granted
Aug 4, 2026
Kind
B2
Abstract

A numerical controller controls a relative speed between a tool and a workpiece on the basis of a machining program. In a case where a corner part exists between a current block and a next block of the machining program, the next block is prefetched, and an allowable speed at the corner part at an end point of the current block is calculated. At least one of pre-interpolation acceleration of an acceleration part, a pre-interpolation speed of a constant-speed part, and pre-interpolation acceleration of a deceleration part that are relative speeds between the tool and the workpiece is adjusted so that the relative speed between the tool and the workpiece is maintained at a preset allowable speed while the corner part is passed through.

Claims (41)

1 . A numerical controller that controls a relative speed between a tool and a workpiece on a basis of a machining program, the numerical controller comprising:

a processor configured to:

analyze a first block and a second block that are included in the machining program, the first block being a movement command, the second block being a next movement command;

in a case where a corner part exists between the first block and the second block, calculate an allowable speed at the corner part at the time of passing through the corner part;

calculate a block command movement amount that is a distance between a start point and an end point of the first block;

calculate a movement amount in each of an acceleration part where a pre-interpolation speed at the start point of the first block is accelerated to a command speed of the machining program, a constant-speed part where the command speed of the machining program is maintained, and a deceleration part where deceleration is performed from the command speed of the machining program to the allowable speed at the corner part adjacent to the second block on a basis of the pre-interpolation speed at the start point of the first block, the allowable speed at the corner part, and the block command movement amount of the first block;

obtain a remaining movement amount of the first block from the movement amount of each of the acceleration part, the constant-speed part, and the deceleration part, and the block command movement amount;

correct the command-speed of the constant speed, wherein in a case where a correction amount of the command speed exceeds a preset threshold value, the processor adjusts the correction amount of the command speed by increasing a number of times of interpolation processing; and

correct a pre-interpolation acceleration of the acceleration part, wherein in a case where a correction amount of the pre-interpolation acceleration of the acceleration part exceeds a preset threshold value, the processor adjusts the pre-interpolation acceleration by increasing or decreasing a number of times of interpolation processing in the acceleration part,

wherein the processor is configured to correct at least one of the pre-interpolation acceleration of the acceleration part, the command speed of the constant-speed part, and a pre-interpolation acceleration of the deceleration part to adjust the movement amount of the acceleration part, the movement amount of the constant-speed part, and the movement amount of the deceleration part to be extended by a same amount as the remaining movement amount, and to make a sum of the movement amount of the acceleration part, the movement amount of the constant-speed part, and the movement amount of the deceleration part is equal to the calculated block command movement amount, and

wherein the processor controls a movement of the tool in accordance with the adjusted movement amount of the acceleration part, the constant speed part or the decelerated part of the block command movement amount to cause the tool to pass through the corner part while maintaining the allowable speed at the corner part.

2 . A numerical controller that controls a relative speed between a tool and a workpiece on a basis of a machining program, the numerical controller comprising:

a processor configured to:

analyze a first block and a second block that are included in the machining program, the first block being a movement command, the second block being a next movement command;

in a case where a corner part exists between the first block and the second block, calculate an allowable speed at the corner part at the time of passing through the corner part;

calculate a block command movement amount that is a distance between a start point and an end point of the first block;

calculate a movement amount in each of an acceleration part where a pre-interpolation speed at the start point of the first block is accelerated to a command speed of the machining program, a constant-speed part where the command speed of the machining program is maintained, and a deceleration part where deceleration is performed from the command speed of the machining program to the allowable speed at the corner part adjacent to the second block on a basis of the pre-interpolation speed at the start point of the first block, the allowable speed at the corner part, and the block command movement amount of the first block;

obtain a remaining movement amount of the first block from the movement amount of each of the acceleration part, the constant-speed part, and the deceleration part, and the block command movement amount;

correct the command-speed of the constant speed, wherein in a case where a correction amount of the command speed exceeds a preset threshold value, the processor adjusts the correction amount of the command speed of the constant-speed part by increasing a number of times of interpolation processing; and

correct a pre-interpolation acceleration of the deceleration part, wherein in a case where a correction amount of the pre-interpolation acceleration of the deceleration part exceeds a preset threshold value, the processor adjusts the pre-interpolation acceleration by increasing or decreasing a number of times of interpolation processing,

wherein the processor is configured to correct at least one of a pre-interpolation acceleration of the acceleration part, the command speed of the constant-speed part, and the pre-interpolation acceleration of the deceleration part to adjust the movement amount of the acceleration part, the movement amount of the constant-speed part, and the movement amount of the deceleration part to be extended by a same amount as the remaining movement amount, and to make a sum of the movement amount of the acceleration part, the movement amount of the constant-speed part, and the movement amount of the deceleration part equal to the calculated block command movement amount, and

wherein the processor controls a movement of the tool in accordance with the adjusted movement amount of the acceleration part, the constant speed part or the decelerated part of the block command movement amount to cause the tool to pass through the corner part while maintaining the allowable speed at the corner part.

3 . A non-transitory computer-readable storage medium storing a computer-readable command that, when executed by one or more processors, causes the one or more processors to perform operations comprising:

analyzing a first block and a second block that are included in a machining program, the first block being a movement command, the second block being a next movement command;

in a case where a corner part exists between the first block and the second block, calculating an allowable speed at the corner part at the time of passing through the corner part;

calculating a block command movement amount that is a distance between a start point and an end point of the first block;

calculating a movement amount in each of an acceleration part where a pre-interpolation speed at the start point of the first block is accelerated to a command speed of the machining program, a constant-speed part where the command speed of the machining program is maintained, and a deceleration part where deceleration is performed from the command speed of the machining program to the allowable speed at the corner part adjacent to the second block on the basis of the pre-interpolation speed at the start point of the first block, the allowable speed at the corner part, and the block command movement amount of the first block;

obtaining a remaining movement amount of the first block from the movement amount of each of the acceleration part, the constant-speed part, and the deceleration part and the block command movement amount;

correcting at least one of a pre-interpolation acceleration of the acceleration part, the command speed of the constant-speed part, and a pre-interpolation acceleration of the deceleration part to adjust the movement amount of the acceleration part, the movement amount of the constant-speed part, and the movement amount of the deceleration part to be extended by a same amount as the remaining movement amount, and bring a sum of the movement amount of the acceleration part, the movement amount of the constant-speed part, and the movement amount of the deceleration part equal to the calculated block command movement amount,

wherein in a case where a correction amount of the command speed of the constant speed part exceeds a threshold value, the correction amount of the command speed of the constant speed part is adjusted by increasing a number of times of a pulse interpolation processing in the constant speed part,

wherein in a case where a correction amount of the pre-interpolation acceleration exceeds a threshold value, the pre-interpolation acceleration is corrected by increasing or decreasing a number of times of interpolation processing in the acceleration part; and

controlling a movement of the tool in accordance with the adjusted movement amount of the acceleration part, the constant speed part or the decelerated part of the block command movement amount to cause the tool to pass through the corner part while maintaining the allowable speed at the corner part.

4 . A non-transitory computer-readable storage medium storing a computer-readable command that, when executed by one or more processors, causes the one or more processors to perform operations comprising:

analyzing a first block and a second block that are included in a machining program, the first block being a movement command, the second block being a next movement command;

in a case where a corner part exists between the first block and the second block, calculating an allowable speed at the corner part at the time of passing through the corner part;

calculating a block command movement amount that is a distance between a start point and an end point of the first block;

calculating a movement amount in each of an acceleration part where a pre-interpolation speed at the start point of the first block is accelerated to a command speed of the machining program, a constant-speed part where the command speed of the machining program is maintained, and a deceleration part where deceleration is performed from the command speed of the machining program to the allowable speed at the corner part adjacent to the second block on the basis of the pre-interpolation speed at the start point of the first block, the allowable speed at the corner part, and the block command movement amount of the first block;

obtaining a remaining movement amount of the first block from the movement amount of each of the acceleration part, the constant-speed part, and the deceleration part and the block command movement amount;

correcting at least one of a pre-interpolation acceleration of the acceleration part, the command speed of the constant-speed part, and a pre-interpolation acceleration of the deceleration part to adjust the movement amount of the acceleration part, the movement amount of the constant-speed part, and the movement amount of the deceleration part to be extended by a same amount as the remaining movement amount, and bring a sum of the movement amount of the acceleration part, the movement amount of the constant-speed part, and the movement amount of the deceleration part equal to the calculated block command movement amount, wherein in a case where a correction amount of the command speed of the constant-speed part exceeds a threshold value, the correction amount of the command speed of the constant-speed part is adjusted by increasing a number of times of a pulse interpolation processing in the constant-speed part,

wherein in a case where a correction amount of the pre-interpolation acceleration of the deceleration part exceeds a threshold value, the pre-interpolation acceleration is corrected by increasing or decreasing a number of times of an interpolation processing in the deceleration part; and

controlling a movement of the tool in accordance with the adjusted movement amount of the acceleration part, the constant speed part or the decelerated part of the block command movement amount to cause the tool to pass through the corner part while maintaining the allowable speed at the corner part.