Numerical control device and control method

JPWO2026018339A5Active Publication Date: 2026-06-23MITSUBISHI ELECTRIC CORP

Patent Information

Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
MITSUBISHI ELECTRIC CORP
Filing Date
2024-07-17
Publication Date
2026-06-23

AI Technical Summary

Technical Problem

Existing numerical control devices for machine tools face challenges in precisely controlling acceleration and jerk, especially when line segment lengths are short or time constants of moving average filters are mismatched, leading to increased cycle times.

Method used

A numerical control device that includes an analysis processing unit to acquire movement data from machining programs, first and second deceleration/acceleration processing units to calculate and adjust speeds based on position and speed loops, and an interpolation processing unit to generate motor commands, ensuring precise control of acceleration and jerk.

Benefits of technology

The proposed solution effectively suppresses the increase in cycle time by achieving highly accurate control of acceleration and jerk, thereby improving machining efficiency and accuracy.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 00000021_0000
    Figure 00000021_0000
  • Figure 00000021_0001
    Figure 00000021_0001
  • Figure 00000021_0002
    Figure 00000021_0002
Patent Text Reader

Abstract

The numerical control device (1) includes an analysis processing unit (10) that obtains movement data representing the operation commanded to the feed axis of the machine tool (2) by analyzing a machining program and determines a feed rate based on the movement data, a first acceleration / deceleration processing unit (11) that obtains a first speed, which is the speed after the first acceleration / deceleration processing, by performing a first acceleration / deceleration processing that is an acceleration / deceleration processing for the data of the feed rate, a second acceleration / deceleration processing unit (12) that obtains a second speed, which is the speed after the second acceleration / deceleration processing, by performing a second acceleration / deceleration processing that is an acceleration / deceleration processing for the data of the acceleration, which is the change rate per unit time of the first speed, and an interpolation processing unit (13) that generates a motor command, which is a speed command for the motor that drives the feed axis, based on the second speed.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present disclosure relates to a numerical control device and a control method for controlling a machine tool.

Background Art

[0002] Numerical Control (NC) machine tools are required to be capable of machining with desired accuracy and in a short time. Hereinafter, an NC machine tool is simply referred to as a machine tool. When a motor command sent to a motor that drives a feed axis of a machine tool is generated, by performing acceleration / deceleration processing that adjusts the acceleration / deceleration characteristics of a speed waveform indicating the time-series change of speed, the impact received by the motor can be reduced and the machining accuracy can be improved.

[0003] Patent Document 1 relates to a numerical control device that executes acceleration / deceleration processing based on a time constant when a table to which a workpiece is fixed or a tool moves, and corrects the time constant so that the vibration amount of the machine tool does not exceed a threshold value, and executes acceleration / deceleration processing using the corrected time constant. The numerical control device according to Patent Document 1 executes acceleration / deceleration processing in which a moving average filter is applied to a speed waveform twice, thereby making each of the acceleration and jerk not exceed a limit value and smoothing the speed change.

Prior Art Documents

Patent Documents

[0004]

Patent Document 1

Summary of the Invention

Problems to be Solved by the Invention

[0005] However, according to the technology of Patent Document 1, when the line segment length, which is the length between command points shown in the machining program, is short, or when the time constant of the moving average filter applied for the second time is larger than the time constant of the moving average filter applied for the first time, etc., it may not be possible to control acceleration and jerk with high precision. According to the technology of Patent Document 1, since it may not be possible to control acceleration and jerk with high precision and there may often occur situations where each of acceleration and jerk is far below the limit value, there has been a problem that the cycle time increases unnecessarily.

[0006] The present disclosure has been made in view of the above, and an object thereof is to obtain a numerical control device capable of suppressing an increase in cycle time by precisely controlling acceleration and jerk.

Means for Solving the Problems

[0007] In order to solve the above-described problems and achieve the object, a numerical control device according to the present disclosure includes an analysis processing unit that acquires movement data representing an operation commanded to a feed axis of a machine tool by analyzing a machining program and obtains a feed rate based on the movement data, a first deceleration / acceleration processing unit that obtains a first speed, which is the speed after the first deceleration / acceleration processing, by performing a first deceleration / acceleration processing that is a deceleration / acceleration processing on the data of the feed rate, a second deceleration / acceleration processing unit that obtains a second speed, which is the speed after the second deceleration / acceleration processing, by performing a second deceleration / acceleration processing that is a deceleration / acceleration processing on the data of acceleration, which is the change rate per unit time of the first speed, and an interpolation processing unit that generates a motor command, which is a speed command for a motor that drives the feed axis, based on the second speed. The first acceleration / deceleration processing unit calculates a position loop, which is the difference between a target position defined by a machining program and a position indicated by an integral value of a first speed, and a deceleration required distance, which is a moving distance required until the feed motion of the feed axis stops due to deceleration, and executes the first acceleration / deceleration processing that makes the position loop longer than the deceleration required distance. The second deceleration / acceleration processing unit , eyes a position loop, which is the difference between the reference position and the position indicated by the integral value of the second speed, and a deceleration required distance, which is the moving distance required until the feed movement of the feed axis stops due to deceleration , and Calculate a speed loop, which is the difference between a target speed that is the speed defined by a machining program and a second speed, and a deceleration required speed, which is the speed required until the acceleration reaches zero due to deceleration, and execute a second acceleration / deceleration process that makes the position loop longer than the deceleration required distance and makes the speed loop higher than the deceleration required speed.

Effect of the Invention

[0008] The numerical control device according to the present disclosure has an effect that an increase in cycle time can be suppressed by highly accurate control of acceleration and jerk.

Brief Description of the Drawings

[0009]

Figure 1

Figure 2

Figure 3

Figure 4

Figure 5

Figure 6

Figure 7

Figure 8

Figure 9

Figure 10

Figure 11

Figure 12

Figure 13

Figure 14

Figure 15

Figure 16

Mode for Carrying Out the Invention

[0010] Hereinafter, a numerical control device and a control method according to an embodiment will be described in detail with reference to the drawings.

[0011] Embodiment 1. FIG. 1 is a diagram showing a configuration example of a numerical control system including a numerical control device 1 according to Embodiment 1. The numerical control system shown in FIG. 1 includes a numerical control device 1 and a machine tool 2.

[0012] The machine tool 2 is a device that performs machining by driving a motor. Examples of the machine tool 2 include a machining center that performs cutting. The machine tool 2 may be an additive manufacturing device that manufactures a shaped object by sequentially stacking melted materials, or a laser processing machine that processes a processing object by irradiating the processing object with a laser beam. Hereinafter, it is assumed that the machine tool 2 is a machining center that cuts a processing object while moving a tool relative to the processing object. The machine tool 2 drives each of a plurality of feed axes by a motor to operate one or both of the tool and the processing object. Note that illustration of the motor is omitted.

[0013] The numerical control device 1 controls each of a plurality of motors provided in the machine tool 2. The numerical control device 1 includes an analysis processing unit 10, a first acceleration / deceleration processing unit 11, a second acceleration / deceleration processing unit 12, and an interpolation processing unit 13. The first acceleration / deceleration processing unit 11 and the second acceleration / deceleration processing unit 12 constitute an acceleration / deceleration control device 3. The acceleration / deceleration control device 3 executes acceleration / deceleration processing, which is processing for adjusting the acceleration characteristics appearing in the rising part and the falling part of the speed waveform.

[0014] A machining program, which is an NC program, is input to the numerical control device 1. The machining program is created by a device or a system external to the numerical control system, such as a CAM (Computer Aided Manufacturing) device or a CAD (Computer-Aided Design) / CAM system.

[0015] The analysis processing unit 10 acquires movement data representing an operation commanded to the feed axis of the machine tool 2 by analyzing the machining program. The movement data can be said to be a movement command for moving the tool on the path described in the machining program. The analysis processing unit 10 obtains the feed speed when moving the tool on the path described in the machining program based on the movement data.

[0016] The analysis processing unit 10 performs look-ahead of the machining program. Look-ahead refers to performing analysis of processing to be executed after the currently executed processing in the analysis of the machining program. The analysis processing unit 10 outputs a speed command, which is a command indicating the obtained feed speed, to the first acceleration / deceleration processing unit 11.

[0017] The first acceleration / deceleration processing unit 11 executes first acceleration / deceleration processing, which is acceleration / deceleration processing for the data of the feed speed indicated by the speed command. The first acceleration / deceleration processing is acceleration / deceleration processing with a preset acceleration. The first acceleration / deceleration processing unit 11 obtains a first speed, which is the speed after the first acceleration / deceleration processing, by the first acceleration / deceleration processing. The first acceleration / deceleration processing unit 11 outputs information indicating the obtained first speed to the second acceleration / deceleration processing unit 12.

[0018] The second acceleration / deceleration processing unit 12 executes a second acceleration / deceleration process, which is an acceleration / deceleration process for the acceleration data that is the change rate per unit time of the first speed. The second acceleration / deceleration process is an acceleration / deceleration process based on a preset jerk. The second acceleration / deceleration processing unit 12 obtains a second speed, which is the speed after the second acceleration / deceleration process, by the second acceleration / deceleration process. The second acceleration / deceleration processing unit 12 outputs information indicating the obtained second speed to the interpolation processing unit 13.

[0019] The interpolation processing unit 13 generates a motor command, which is a speed command for the motor that drives the feed axis, based on the second speed. The interpolation processing unit 13 outputs the generated motor command to the machine tool 2.

[0020] Next, the procedure of the process executed by the numerical control device 1 will be described. FIG. 2 is a flowchart showing an example of the procedure of the process executed by the numerical control device 1 according to Embodiment 1.

[0021] In step S1, the analysis processing unit 10 analyzes the machining program input to the analysis processing unit 10. The machining program describes movement data necessary to move the tip position of the object to be machined or the tool on a preset path. In the movement data, the command position is specified by coordinate values, and the movement mode is specified by a G code. The G code is a command code related to axis movement and is, for example, a command code described when performing positioning, linear interpolation, circular interpolation, or plane specification. The analysis processing unit 10 analyzes the machining shape, which is the shape intended for machining, by look-ahead of the machining program and acquires the movement data. Further, the machining program describes machining conditions such as the type of tool, the feed rate of the tool relative to the object to be machined, or the rotational speed of the spindle. In the following description, only the feed rate of the tool will be mainly dealt with regarding the machining conditions. The feed rate is specified by an F code in which a speed value is described. The numerical control device 1 stores one or more sets of data that are machining conditions including the feed rate of the tool, and machining conditions suitable for the desired machining may be specified by the G code or M code of the machining program. The M code is a command code related to machine operation.

[0022] In step S2, the analysis processing unit 10 generates a speed command based on the movement data acquired by the analysis in step S1. The analysis processing unit 10 generates a speed command when moving the tip position of the tool in accordance with the machining shape. The analysis processing unit 10 outputs the generated speed command to the first acceleration / deceleration processing unit 11. By steps S1 and S2, the analysis processing unit 10 acquires movement data by analyzing the machining program, obtains the feed rate based on the movement data, and generates a speed command.

[0023] In step S3, the first acceleration / deceleration processing unit 11 performs a first acceleration / deceleration process on the feed rate data indicated by the speed command output from the analysis processing unit 10. The first acceleration / deceleration processing unit 11 performs a first acceleration / deceleration process on the feed rate data with a preset acceleration. The first acceleration / deceleration processing unit 11 obtains a first speed, which is the speed after the first acceleration / deceleration process, by the first acceleration / deceleration process.

[0024] The first acceleration / deceleration processing unit 11 calculates a position loop and a deceleration required distance. The position loop calculated by the first acceleration / deceleration processing unit 11 is the difference between the target position, which is the position defined by the machining program, and the position indicated by the integral value of the first speed. The first acceleration / deceleration processing unit 11 obtains the position after the first acceleration / deceleration, which is the position indicated by the integral value of the first speed, by integrating the first speed for each control cycle. The target position is, for example, the command position obtained by pre-reading the machining program in the analysis processing unit 10. The target position may be the cumulative value of the feed speed indicated by the speed command output from the analysis processing unit 10 for each control cycle. The deceleration required distance is the moving distance required for the feed movement of the feed axis to stop due to deceleration. The first acceleration / deceleration processing unit 11 calculates the deceleration required distance due to deceleration from the latest output speed based on the first speed. The output speed is the speed indicated by the motor command output to the machine tool 2. The first acceleration / deceleration processing unit 11 calculates the position loop and the deceleration required distance for each control cycle.

[0025] The first acceleration / deceleration processing unit 11 executes a first acceleration / deceleration process that makes the position loop longer than the deceleration required distance. Specifically, the first acceleration / deceleration processing unit 11 controls the acceleration in the rising part of the speed waveform and the acceleration in the falling part of the speed waveform so that the position loop becomes longer than the deceleration required distance. The first acceleration / deceleration processing unit 11 outputs information indicating the first speed to the second acceleration / deceleration processing unit 12.

[0026] In step S4, the second acceleration / deceleration processing unit 12 executes a second acceleration / deceleration process on the information of the first speed output from the first acceleration / deceleration processing unit 11. The second acceleration / deceleration processing unit 12 executes a second acceleration / deceleration process based on a preset jerk on the acceleration data, which is the change rate per unit time of the first speed. The second acceleration / deceleration processing unit 12 obtains the second speed, which is the speed after the second acceleration / deceleration process, by the second acceleration / deceleration process.

[0027] The second acceleration / deceleration processing unit 12 calculates a position loop and a deceleration required distance for each control cycle. The position loop calculated by the second acceleration / deceleration processing unit 12 is the difference between a target position, which is a position defined by a machining program, and a position indicated by the integrated value of the second speed. The second acceleration / deceleration processing unit 12 obtains a post-second acceleration / deceleration position, which is a position indicated by the integrated value of the second speed, by integrating the second speed for each control cycle. The target position is, for example, a command position obtained by look-ahead of the machining program in the analysis processing unit 10. The target position may be the cumulative value of the feed speed indicated by the speed command output from the analysis processing unit 10 for each control cycle. The second acceleration / deceleration processing unit 12 calculates a deceleration required distance due to deceleration from the latest output speed based on the second speed.

[0028] Furthermore, the second acceleration / deceleration processing unit 12 calculates a speed loop and a deceleration required speed for each control cycle. The speed loop calculated by the second acceleration / deceleration processing unit 12 is the difference between a target speed, which is a speed defined by a machining program, and the obtained second speed. The target speed is, for example, a speed command obtained by look-ahead of the machining program in the analysis processing unit 10. The target speed may be the first speed for each control cycle indicated by the information output from the first acceleration / deceleration processing unit 11. The deceleration required speed is the speed required until the feed movement of the feed axis stops due to deceleration. The second acceleration / deceleration processing unit 12 calculates a deceleration required speed due to deceleration from the latest output acceleration based on the second speed. The output acceleration is the rate of change per unit time of the speed indicated by the motor command output to the machine tool 2.

[0029] The second acceleration / deceleration processing unit 12 executes a second acceleration / deceleration process that makes the position loop longer than the deceleration required distance and makes the speed loop higher than the deceleration required speed. Specifically, the second acceleration / deceleration processing unit 12 controls the jerk in the rising part of the speed waveform and the jerk in the falling part of the speed waveform so that the position loop becomes longer than the deceleration required distance and the speed loop becomes higher than the deceleration required speed. The second acceleration / deceleration processing unit 12 outputs information indicating the second speed to the interpolation processing unit 13.

[0030] In step S5, the interpolation processing unit 13 generates a motor command based on the second speed indicated by the information output from the second acceleration / deceleration processing unit 12. The interpolation processing unit 13 generates motor commands for each of the plurality of feed axes by decomposing the components of the second speed in a plurality of feed directions, which are the moving directions of the tool by each feed axis. The interpolation processing unit 13 outputs motor commands to each of the plurality of motors for each control cycle.

[0031] In step S6, the second acceleration / deceleration processing unit 12 determines whether the movement of the tool to the target position has been completed. The second acceleration / deceleration processing unit 12 determines whether the movement of the tool to the target position has been completed based on the value of the position loop calculated by the second acceleration / deceleration processing unit 12 for each control cycle. If the movement of the tool to the target position has not been completed (step S6, No), the numerical control device 1 returns the procedure to step S2.

[0032] On the other hand, if the movement of the tool to the target position has been completed (step S6, Yes), the numerical control device 1 determines in step S7 whether the machining has been completed. The numerical control device 1 determines whether the machining has been completed based on whether the processing indicated in the machining program to be executed has been finished. If the machining has not been completed (step S7, No), the numerical control device 1 returns the procedure to step S1. On the other hand, if the machining has been completed (step S7, Yes), the numerical control device 1 ends the processing according to the procedure shown in FIG. 2.

[0033] Next, the details of the processing in each of the components of the numerical control device 1 will be described. FIG. 3 is a diagram for explaining the content of the control by the numerical control device 1 according to the first embodiment. FIG. 3 shows a graph representing the relationship between speed and time. In FIG. 3, the broken-line graph represents the speed command for the tip position of the tool output from the analysis processing unit 10. The one-dot chain-line graph represents the first speed output from the first acceleration / deceleration processing unit 11. The solid-line graph represents the second speed output from the second acceleration / deceleration processing unit 12.

[0034] <Analysis processing unit 10> The analysis processing unit 10 pre-reads the machining shape shown in the machining program input from outside the numerical control device 1 to obtain movement data. The analysis processing unit 10 determines a speed command for moving the tool tip along the machining shape from the movement data. Further, the analysis processing unit 10 determines the type of tool used for cutting and the rotational speed of the spindle based on the machining program.

[0035] FIG. 4 is a diagram for explaining the pre-reading by the analysis processing unit 10 included in the numerical control device 1 according to the first embodiment. In FIG. 4, the arrows represent the trajectory of the machining program. The solid-line arrows shown in FIG. 4 represent the trajectories for which the output of the motor command to the motor has been completed. The dashed-dotted-line arrows shown in FIG. 4 represent the trajectories for which the analysis by the analysis processing unit 10 has been completed, but the output of the motor command to the motor has not been completed. The dashed arrows shown in FIG. 4 represent the trajectories for which neither the analysis by the analysis processing unit 10 nor the output of the motor command to the motor has been completed. The command position P1 is the tool tip position at the current time. The pre-read position P2 is the position that is the target of pre-reading at the current time. Note that the pre-reading by the analysis processing unit 10 may be executed simultaneously with each of the processing by the first acceleration / deceleration processing unit 11, the processing by the second acceleration / deceleration processing unit 12, and the interpolation processing unit 13.

[0036] The analysis processing unit 10 outputs a speed command for the tool tip according to the machining shape. The analysis processing unit 10 controls the output of the speed command to the first acceleration / deceleration processing unit 11 for each control cycle. When the analysis processing unit 10 stops the output of the speed command for the tool tip according to the machining shape, a speed command with a speed of zero is forcibly inserted into the output to the first acceleration / deceleration processing unit 11.

[0037] The analysis processing unit 10 may monitor the states of each of the first acceleration / deceleration processing unit 11 and the second acceleration / deceleration processing unit 12, and select whether to output a speed command that sets the speed to zero. By outputting a speed command that sets the speed to zero, the analysis processing unit 10 forcibly reduces the position loop obtained by the first acceleration / deceleration processing unit 11 and the position loop obtained by the second acceleration / deceleration processing unit 12. Thereby, the numerical control device 1 can reduce the first speed and the second speed.

[0038] <First acceleration / deceleration processing unit 11> The first acceleration / deceleration processing unit 11 performs first acceleration / deceleration processing based on a preset acceleration on the data of the feed speed for each control command, and calculates the first speed which is the speed after the first acceleration / deceleration processing. The first acceleration / deceleration processing unit 11 calculates the deceleration required distance for each control cycle. The first acceleration / deceleration processing unit 11 determines the acceleration rise and the acceleration fall of the speed such that the position loop is longer than the deceleration required distance, and controls the acceleration.

[0039] FIG. 5 is a first diagram for explaining the first acceleration / deceleration processing executed by the numerical control device 1 according to the first embodiment. FIG. 5 shows a graph representing an example of the relationship between the speed which is the first speed and time. Here, let the variable representing time be t. Let the time point when the first acceleration / deceleration processing starts be t1. The first speed at t1 is zero. Let the time point when the first speed reaches the command speed due to acceleration from t1 be t2. The command speed is the speed specified in the machining program. Let a certain time point after a while has elapsed from t2 be t3. Let the time point when the first speed reaches zero due to deceleration from t3 be t4. Hereinafter, let the first speed at time t be vc1(t). Let the acceleration at time t be A(t). Let the control cycle be Δt.

[0040] When t1 ≤ t < t2 holds, the position loop is excessive with respect to the deceleration required distance obtained from vc1(t - Δt) which is the first speed when going back one control cycle from t. When t1 ≤ t < t2 holds, an acceleration operation that satisfies vc1(t) = vc1(t - Δt) + A(t)·Δt is performed.

[0041] The acceleration A(t) in the interval from t1 to t2 is the acceleration used in the first acceleration / deceleration process and represents the acceleration during acceleration. The first acceleration / deceleration processing unit 11 executes the first acceleration / deceleration process with the acceleration being A(t) during acceleration. For example, A(t) is a set value prestored in the numerical control device 1. A(t) may be the upper limit value of the acceleration preset so as not to exceed the allowable mechanical vibration level, or the upper limit value of the acceleration preset so as not to exceed the allowable motor load. Alternatively, A(t) may be the line segment length calculated by the look-ahead in the analysis processing unit 10, that is, the acceleration determined according to the line segment length shown in the machining program.

[0042] When t2 ≤ t < t3 holds, the position loop becomes excessive with respect to the deceleration required distance obtained from the first speed vc1(t - Δt) when going back one control cycle from t. However, even if the position loop is excessive with respect to the deceleration required distance, the first speed after the first acceleration / deceleration process is maintained at the commanded speed. When t2 ≤ t < t3 holds, a constant speed operation that satisfies vc1(t) = vc1(t - Δt) is performed.

[0043] When t3 ≤ t < t4 holds, the position loop is insufficient with respect to the deceleration required distance obtained from the first speed vc1(t - Δt) when going back one control cycle from t. When t3 ≤ t < t4 holds, a deceleration operation that satisfies vc1(t) = vc1(t - Δt) - A(t)·Δt is performed.

[0044] The acceleration A(t) in the interval from t3 to t4 represents the acceleration during deceleration used in the first acceleration / deceleration process. The first acceleration / deceleration processing unit 11 executes the first acceleration / deceleration process with the acceleration being A(t) during deceleration. For example, A(t) is a set value prestored in the numerical control device 1. A(t) may be the upper limit value of the acceleration preset so as not to exceed the allowable mechanical vibration level, or the upper limit value of the acceleration preset so as not to exceed the allowable motor load. Alternatively, A(t) may be the line segment length calculated by look-ahead in the analysis processing unit 10, that is, the acceleration determined according to the line segment length shown in the machining program. Alternatively, taking into account the discretization error or calculation error occurring in the first acceleration / deceleration process, the acceleration when the position loop is equal to the deceleration required distance may be calculated, and the calculated acceleration may be set as the acceleration during deceleration. By the above first acceleration / deceleration process, the speed waveform of the first speed becomes a trapezoidal shape as shown in FIG. 5.

[0045] FIG. 6 is a second diagram for explaining the first acceleration / deceleration process executed by the numerical control device 1 according to the first embodiment. FIG. 6 shows a graph representing an example of the relationship between the acceleration, which is the first acceleration, and time. Here, the change rate per unit time of the first speed is defined as the first acceleration. As shown in FIG. 6, the waveform of the first acceleration is a waveform including a rectangular portion convex in the positive direction and a rectangular portion convex in the negative direction.

[0046] In the above, the case where the first speed reaches the commanded speed due to the relatively long line segment length calculated by look-ahead in the analysis processing unit 10 has been described. The first acceleration / deceleration process described in the first embodiment is also applicable to the case where the line segment length calculated by look-ahead in the analysis processing unit 10 is relatively short and the first speed does not reach the commanded speed.

[0047] FIG. 7 is a third diagram for explaining the first acceleration / deceleration process executed by the numerical control device 1 according to Embodiment 1. FIG. 7 shows a graph representing an example of the relationship between the speed, which is the first speed, and time in a case where the first speed does not reach the commanded speed. In the case where the first speed does not reach the commanded speed, after the acceleration operation, the deceleration operation is performed without passing through the constant-speed operation. In this case, according to the above-described first acceleration / deceleration process, the speed waveform of the first speed becomes a triangular shape as shown in FIG. 7.

[0048] In the above, the first acceleration / deceleration processing unit 11 determines the acceleration operation based on the result of comparing the position loop and the deceleration required distance. The first acceleration / deceleration processing unit 11 may also determine the acceleration operation based on the result of comparing the position loop with a value obtained by adding an offset amount to the calculated value of the deceleration required distance. In this case, even when the line segment length is relatively short, the speed waveform of the first speed does not become a triangular shape but a trapezoidal shape. In this case, since the constant-speed operation is performed at a speed lower than the commanded speed, the height of the trapezoidal shape becomes lower than when the first speed reaches the commanded speed. As an example, the offset amount may be determined in accordance with the jerk used in the second acceleration / deceleration process so that the maximum value of the first speed and the maximum value of the second speed are the same as each other.

[0049] In the above, the first acceleration / deceleration process by the first acceleration / deceleration processing unit 11 is started at the timing when the speed command for each control cycle is output from the analysis processing unit 10. The first acceleration / deceleration processing unit 11 may start the first acceleration / deceleration process at an arbitrary timing after the calculation results of the position loop are accumulated to a certain extent.

[0050] The first acceleration / deceleration processing unit 11 outputs information indicating the first speed, which is the speed after the first acceleration / deceleration process, to the second acceleration / deceleration processing unit 12 for each control cycle.

[0051] <Second acceleration / deceleration processing unit 12> The second acceleration / deceleration processing unit 12 performs a second acceleration / deceleration process based on a preset jerk on the acceleration data, which is the change rate per unit time of the first speed, and calculates a second speed, which is the speed after the second acceleration / deceleration process. The second acceleration / deceleration processing unit 12 calculates, for each control cycle, a deceleration required speed, which is the speed required for the acceleration to become zero due to deceleration from the latest output acceleration. The second acceleration / deceleration processing unit 12 determines the rise and fall of the speed such that the speed loop becomes higher than the deceleration required speed, and controls the jerk.

[0052] FIG. 8 is a first diagram for explaining the second acceleration / deceleration process executed by the numerical control device 1 according to the first embodiment. FIG. 8 shows a graph representing an example of the relationship between acceleration, which is the second acceleration, and time. Here, the acceleration after the second acceleration / deceleration process is defined as the second acceleration.

[0053] Let the time point when the second acceleration / deceleration process starts be t11. Let the time point when the second acceleration is increased from t11 and reaches the first acceleration be t12. Let a certain time point after t12 have elapsed be t13. Let the time point when the second acceleration is decreased from t13 and reaches zero be t14. Let the time point when the decrease of the second acceleration from zero starts after the state where the second acceleration is zero is maintained from t14 be t15. Let the time point when the second acceleration is decreased from t15 and reaches the first acceleration be t16. Let a certain time point after t16 have elapsed be t17. Let the time point when the second acceleration is increased from t17 and reaches zero be t18. Hereinafter, let the second speed at time t be vc2(t). Let the second acceleration at time t be ac2(t). Let the jerk at time t, which is the jerk during acceleration / deceleration after the second acceleration / deceleration process, be J(t).

[0054] When t11 ≤ t < t12 holds, the speed loop becomes excessive with respect to the deceleration required speed obtained from ac2(t - Δt), which is the second acceleration when going back one control cycle from t. Also, the position loop becomes excessive with respect to the deceleration required distance obtained from ac2(t - Δt), which is the second acceleration. When t11 ≤ t < t12 holds, an operation to increase the acceleration is performed that satisfies ac2(t) = ac2(t - Δt) + J(t)·Δt. At this time, it is assumed that ac2(t) ≥ 0 holds. When t11 ≤ t < t12 holds, an acceleration operation that satisfies vc2(t) = vc2(t - Δt) + ac2(t)·Δt and gradually strengthens the acceleration is performed. At t12, the second acceleration reaches the first acceleration.

[0055] The jerk J(t) in the interval of t11 - t12 is the jerk used in the second acceleration / deceleration process and represents the jerk when strengthening the acceleration in the positive direction from the start of the second acceleration / deceleration process. The second acceleration / deceleration processing unit 12 executes the second acceleration / deceleration process with the jerk being J(t) when increasing the acceleration from the start of the second acceleration / deceleration process. For example, J(t) is a set value pre-stored in the numerical control device 1. J(t) may be the upper limit value of the jerk preset so as not to exceed the allowable mechanical vibration level, or the upper limit value of the jerk preset so as not to exceed the allowable motor load. Alternatively, J(t) may be the line segment length calculated by the look-ahead in the analysis processing unit 10, that is, the jerk determined according to the line segment length shown in the machining program.

[0056] When t12 ≤ t < t13 holds, the speed loop becomes excessive with respect to the deceleration required speed obtained from ac2(t - Δt), which is the second acceleration when going back one control cycle from t. Also, the position loop becomes excessive with respect to the deceleration required distance obtained from ac2(t - Δt). However, even if the speed loop is excessive with respect to the deceleration required speed and the position loop is excessive with respect to the deceleration required distance, the second acceleration after the second acceleration / deceleration process is maintained. When t12 ≤ t < t13 holds, a constant acceleration operation that satisfies ac2(t) = ac2(t - Δt) is performed. At this time, it is assumed that ac2(t) ≥ 0 holds. When t12 ≤ t < t13 holds, an acceleration operation that satisfies vc2(t) = vc2(t - Δt) + ac2(t)·Δt is performed.

[0057] When t13 ≤ t < t14 holds, the position loop becomes excessive with respect to the deceleration required distance obtained from ac2(t - Δt), which is the second acceleration when going back one control cycle from t. Also, the speed loop is insufficient with respect to the deceleration required speed obtained from ac2(t - Δt). When t13 ≤ t < t14 holds, an operation to decrease the acceleration that satisfies ac2(t) = ac2(t - Δt) - J(t)·Δt is performed. At this time, it is assumed that ac2(t) ≥ 0 holds. When t13 ≤ t < t14 holds, an acceleration operation that satisfies vc2(t) = vc2(t - Δt) + ac2(t)·Δt, and the acceleration is gradually reduced. The acceleration is gradually reduced from t13, and at t14, the second speed reaches the first speed. At t14, the first speed reaches the commanded speed.

[0058] The jerk J(t) in the interval of t13 - t14 is the jerk used in the second acceleration / deceleration process, and represents the jerk when the acceleration in the plus direction is weakened after being strengthened in the plus direction from the start of the second acceleration / deceleration process. The second acceleration / deceleration processing unit 12 executes the second acceleration / deceleration process with the jerk as J(t) when the acceleration is decreased after being increased from the start of the second acceleration / deceleration process. The details of the setting of J(t) are assumed to be the same as those of the jerk J(t) in the interval of t11 - t12 described above.

[0059] When t14 ≤ t < t15 holds, the first acceleration becomes zero, and the deceleration required speed and the speed droop become the same as each other. On the other hand, the position droop is excessive with respect to the deceleration required distance obtained from ac2(t - Δt), which is the second acceleration when going back one control cycle from t. When t14 ≤ t < t15 holds, a constant speed operation that satisfies ac2(t) = 0 and vc2(t) = vc2(t - Δt) is performed. At t15, the decrease in the first speed is started.

[0060] When t15 ≤ t < t16 holds, the speed droop becomes excessively negative with respect to the deceleration required speed obtained from ac2(t - Δt), which is the second acceleration when going back one control cycle from t. Also, the position droop is insufficient with respect to the deceleration required distance obtained from ac2(t - Δt). When t15 ≤ t < t16 holds, an operation to strengthen the acceleration in the negative direction that satisfies ac2(t) = ac2(t - Δt) - J(t)·Δt is performed. At this time, it is assumed that ac2(t) ≤ 0 holds. When t15 ≤ t < t16 holds, a deceleration operation that satisfies vc2(t) = vc2(t - Δt) + ac2(t)·Δt and gradually strengthens the deceleration is performed. At t16, the second acceleration reaches the first acceleration.

[0061] The jerk J(t) in the interval of t15 - t16 is the jerk used in the second acceleration / deceleration process and represents the jerk when strengthening the acceleration from zero to the negative direction. The second acceleration / deceleration processing unit 12 executes a second acceleration / deceleration process with the jerk being J(t) when strengthening the acceleration from zero to the negative direction. The details regarding the setting of J(t) are assumed to be the same as in the case of the jerk J(t) in the interval of t11 - t12 described above.

[0062] When t16 ≤ t < t17 holds, the speed loop becomes excessive in the negative direction with respect to the deceleration required speed obtained from ac2(t - Δt), which is the second acceleration when going back one control cycle from t. Also, the position loop is insufficient with respect to the deceleration required distance obtained from ac2(t - Δt). However, even if the speed loop is excessive in the negative direction with respect to the deceleration required speed and the position loop is insufficient with respect to the deceleration required distance, the second acceleration after the second acceleration / deceleration process is maintained. When t16 ≤ t < t17 holds, a constant acceleration operation that satisfies ac2(t) = ac2(t - Δt) is performed. At this time, it is assumed that ac2(t) ≤ 0 holds. When t16 ≤ t < t17 holds, a deceleration operation that satisfies vc2(t) = vc2(t - Δt) + ac2(t)·Δt is performed.

[0063] When t17 ≤ t < t18 holds, the position loop becomes excessive with respect to the deceleration required distance obtained from ac2(t - Δt), which is the second acceleration when going back one control cycle from t. Also, the speed loop is insufficient with respect to the deceleration required speed obtained from ac2(t - Δt). When t17 ≤ t < t18 holds, an operation to decrease the acceleration in the negative direction that satisfies ac2(t) = ac2(t - Δt) + J(t)·Δt is performed. At this time, it is assumed that ac2(t) ≤ 0 holds. When t17 ≤ t < t18 holds, a deceleration operation that satisfies vc2(t) = vc2(t - Δt) + ac2(t)·Δt and gradually eases the deceleration is performed. The deceleration is gradually eased from t17, and at t18, the second speed reaches the first speed. At t18, the first speed reaches zero.

[0064] The jerk J(t) in the interval from t17 to t18 is the jerk used in the second acceleration / deceleration process, and represents the jerk when the acceleration is strengthened from zero in the negative direction and then the acceleration in the negative direction is weakened. The second acceleration / deceleration processing unit 12 executes a second acceleration / deceleration process with the jerk being J(t) when the acceleration is strengthened from zero in the negative direction and then the acceleration in the negative direction is weakened. For example, J(t) is a set value stored in advance in the numerical control device 1. J(t) may be an upper limit value of the jerk set in advance so as not to exceed an allowable mechanical vibration level, or an upper limit value of the jerk set in advance so as not to exceed an allowable motor load. Alternatively, J(t) may be a line segment length calculated by look-ahead in the analysis processing unit 10, that is, a jerk determined according to the line segment length shown in the machining program.

[0065] Alternatively, taking into account the discretization error or calculation error occurring in the second acceleration / deceleration process, the jerk when the position loop is equal to the deceleration required distance is calculated, and the calculated jerk may be set as J(t) which is the jerk at the time of deceleration. In this case, since two simultaneous equations will be solved, it is necessary to set a physical quantity other than the jerk as a variable. The physical quantity which is a physical quantity other than the jerk and is set as a variable may be any physical quantity related to the second acceleration / deceleration process. For example, ac2(t) when t16≦t<t17 is satisfied may be set as a variable. By the above-described second acceleration / deceleration process, the waveform of the second acceleration becomes a waveform including a trapezoidal portion convex in the positive direction and a trapezoidal portion convex in the negative direction as shown in FIG. 8.

[0066] FIG. 9 is a second diagram for explaining the second acceleration / deceleration process executed by the numerical control device 1 according to the first embodiment. FIG. 9 shows a graph representing an example of the relationship between the jerk which is the change rate per unit time of the second acceleration and time. As shown in FIG. 9, the waveform of the jerk becomes a waveform including a strip-shaped portion convex in the positive direction and a strip-shaped portion convex in the negative direction.

[0067] As an example, the second acceleration / deceleration process by the second acceleration / deceleration processing unit 12 starts after the end of the first acceleration / deceleration process by the first acceleration / deceleration processing unit 11. The second acceleration / deceleration process by the second acceleration / deceleration processing unit 12 may be executed simultaneously with the first acceleration / deceleration process by the first acceleration / deceleration processing unit 11.

[0068] In the above, a case where the first speed calculated by the first acceleration / deceleration processing unit 11 is relatively high and the second acceleration reaches the first acceleration has been described. The second acceleration / deceleration process described in Embodiment 1 is also applicable to a case where the first speed is relatively low and the second acceleration does not reach the first acceleration. In a case where the second acceleration does not reach the first acceleration, after an acceleration operation of gradually strengthening the acceleration, an acceleration operation of gradually weakening the acceleration is performed without going through a constant acceleration operation. Also, after a deceleration operation of gradually strengthening the deceleration, a deceleration operation of gradually weakening the deceleration is performed without going through a constant acceleration operation. In this case, by the above-described second acceleration / deceleration process, the waveform of the second acceleration becomes a waveform including a triangular portion convex in the positive direction and a triangular portion convex in the negative direction.

[0069] The second acceleration / deceleration processing unit 12 outputs, for each control cycle, information indicating the second speed, which is the speed after the second acceleration / deceleration process, to the interpolation processing unit 13.

[0070] <Interpolation processing unit 13> The interpolation processing unit 13 generates a motor command based on the second speed indicated by the information output from the second acceleration / deceleration processing unit 12. The interpolation processing unit 13 generates motor commands for each of the plurality of feed axes by decomposing the components of the second speed in a plurality of feed directions according to the machining shape. The interpolation processing unit 13 outputs motor commands to each of the plurality of motors for each control cycle.

[0071] According to Embodiment 1, the numerical control device 1 includes an analysis processing unit 10 that acquires movement data by analyzing a machining program and obtains a feed rate based on the movement data, a first acceleration / deceleration processing unit 11 that obtains a first speed, which is the speed after the first acceleration / deceleration processing, by performing a first acceleration / deceleration processing on the data of the feed rate, a second acceleration / deceleration processing unit 12 that obtains a second speed, which is the speed after the second acceleration / deceleration processing, by performing a second acceleration / deceleration processing, which is an acceleration / deceleration processing on the data of the acceleration, which is the change rate per unit time of the first speed, and an interpolation processing unit 13 that generates a motor command based on the second speed. The numerical control device 1 obtains the first speed by performing the first acceleration / deceleration processing on the data of the feed rate and obtains the second speed by performing the second acceleration / deceleration processing on the data of the acceleration, that is, by performing step-by-step calculations considering the jerk, it is possible to prevent a situation where the acceleration becomes low despite having room to increase the acceleration. The numerical control device 1 can perform highly accurate control of the acceleration and jerk without generating an overshoot that exceeds the target position. The numerical control device 1 can appropriately increase the acceleration by highly accurate control of the acceleration and jerk, and can suppress an increase in the cycle time of the machine tool 2. As described above, the numerical control device 1 has the effect of being able to suppress an increase in the cycle time by highly accurate control of the acceleration and jerk.

[0072] Further, the second acceleration / deceleration processing unit 12 calculates a position loop, which is the difference between the target position and the position indicated by the integral value of the second speed, and a deceleration required distance, which is the moving distance required for the feed movement of the feed axis to stop due to deceleration, and calculates a speed loop, which is the difference between the target speed and the second speed, and a deceleration required speed, which is the speed required for the acceleration to reach zero due to deceleration. The second acceleration / deceleration processing unit 12 executes a second acceleration / deceleration processing that makes the position loop longer than the deceleration required distance and makes the speed loop higher than the deceleration required speed. Thereby, the numerical control device 1 can perform highly accurate control of the acceleration and jerk without generating an overshoot that exceeds the target position.

[0073] Embodiment 2. FIG. 10 is a diagram showing a configuration example of the numerical control device 5 according to the second embodiment. The numerical control device 5 is provided in the numerical control system in the same manner as the numerical control device 1 shown in FIG. 1. Such a numerical control system includes the numerical control device 5 and the machine tool 2. In the second embodiment, the same components as those in the first embodiment are denoted by the same reference numerals, and the configuration different from that in the first embodiment will be mainly described.

[0074] The numerical control device 5 controls each of a plurality of motors provided in the machine tool 2. The numerical control device 5 includes an acceleration / deceleration control device 6, an analysis processing unit 20, and an interpolation processing unit 23. The acceleration / deceleration control device 6 executes an acceleration / deceleration process, which is a process for adjusting the acceleration characteristics appearing in the rising part and the falling part of the speed waveform.

[0075] The acceleration / deceleration control device 6 includes a plurality of acceleration / deceleration processing units. Each acceleration / deceleration processing unit has a plurality of acceleration / deceleration processing parts. In the example shown in FIG. 10, the acceleration / deceleration control device 6 includes n acceleration / deceleration processing units 21-1, 21-2, ···, 21-n. Let n be an arbitrary integer of 3 or more. In the example shown in FIG. 10, each acceleration / deceleration processing unit 21-1, 21-2, ···, 21-n includes m acceleration / deceleration processing parts 22-1, 22-2, ···, 22-m. Let m be an arbitrary integer of 3 or more.

[0076] The acceleration / deceleration processing units 21-1, 21-2, ···, 21-n are connected in parallel to each other. In each acceleration / deceleration processing unit 21-1, 21-2, ···, 21-n, the acceleration / deceleration processing parts 22-1, 22-2, ···, 22-m are connected in series to each other.

[0077] The acceleration / deceleration processing unit 22-1 in each of the acceleration / deceleration processing units 21-1, 21-2, ···, 21-n functions as a first acceleration / deceleration processing unit that obtains a first speed by performing a first acceleration / deceleration process on the data of the feed speed. The acceleration / deceleration processing unit 22-2 in each of the acceleration / deceleration processing units 21-1, 21-2, ···, 21-n functions as a second acceleration / deceleration processing unit that obtains a second speed by performing a second acceleration / deceleration process on the data of the acceleration, which is the change rate per unit time of the first speed. That is, each of the acceleration / deceleration processing units 21-1, 21-2, ···, 21-n has two or more acceleration / deceleration processing units 22-1, 22-2, ···, 22-m that are connected in series to each other and include a first acceleration / deceleration processing unit and a second acceleration / deceleration processing unit.

[0078] The analysis processing unit 20 executes look-ahead of the machining program. The analysis processing unit 20 acquires movement data representing the operation commanded to the feed axis of the machine tool 2 by analyzing the machining program. The analysis processing unit 20 obtains the feed speed when moving the tool on the path described in the machining program based on the movement data.

[0079] The analysis processing unit 20 distributes the movement amount indicated by the movement data and obtains the feed speed based on the distributed movement data. The analysis processing unit 20 sends a speed command, which is a command indicating the obtained feed speed, to the acceleration / deceleration processing unit 22-1 of each of the acceleration / deceleration processing units 21-1, 21-2, ···, 21-n. In this way, the analysis processing unit 20 sends the data of the feed speed obtained based on the distributed movement data to the first acceleration / deceleration processing unit of each of the plurality of acceleration / deceleration processing units 21-1, 21-2, ···, 21-n.

[0080] Each of the acceleration / deceleration processing units 21-1, 21-2, ···, 21-n has a similar configuration to each other. Here, as an example, the configuration of the acceleration / deceleration processing unit 21-1 will be described. The acceleration / deceleration processing unit 22-1 of the acceleration / deceleration processing unit 21-1 executes a first acceleration / deceleration process, which is an acceleration / deceleration process on the data of the feed speed indicated by the speed command. The acceleration / deceleration processing unit 22-1 outputs information indicating the obtained first speed to the acceleration / deceleration processing unit 22-2 within the acceleration / deceleration processing unit 21-1.

[0081] The acceleration processing unit 22-2 of the acceleration / deceleration processing unit 21-1 executes a second acceleration / deceleration processing which is an acceleration / deceleration processing for the data of acceleration that is the change rate per unit time of the first speed. The acceleration processing unit 22-2 obtains a second speed which is the speed after the second acceleration / deceleration processing by the second acceleration / deceleration processing. The acceleration processing unit 22-2 outputs information indicating the second speed to the next acceleration / deceleration processing unit within the acceleration / deceleration processing unit 21-1.

[0082] It can be said that the acceleration / deceleration processing unit 22-1 performs an acceleration / deceleration processing on the speed which is the time derivative of the position that is a function of time. It can be said that the acceleration / deceleration processing unit 22-2 performs an acceleration / deceleration processing on the acceleration which is the time derivative of the speed. In the acceleration / deceleration processing unit 21-1, in each of the m acceleration / deceleration processing units 22-1, 22-2, ···, 22-m, the acceleration / deceleration processing for the time derivative of the input value is sequentially executed. The m-th acceleration / deceleration processing unit 22-m in the acceleration / deceleration processing unit 21-1 outputs the result of obtaining the speed after the acceleration / deceleration processing to the interpolation processing unit 23.

[0083] The interpolation processing unit 23 acquires the outputs from each of the acceleration / deceleration processing units 21-1, 21-2, ···, 21-n. The interpolation processing unit 23 generates a motor command based on the outputs from each of the acceleration / deceleration processing units 21-1, 21-2, ···, 21-n. The interpolation processing unit 23 outputs the generated motor command to the machine tool 2.

[0084] Next, the procedure of the process executed by the numerical control device 5 will be described. FIG. 11 is a flowchart showing an example of the procedure of the process executed by the numerical control device 5 according to the second embodiment.

[0085] In step S11, the analysis processing unit 20 analyzes the machining program input to the analysis processing unit 20. In step S12, the analysis processing unit 20 generates a speed command based on the movement data obtained by the analysis in step S11. The analysis processing unit 20 distributes the movement amount shown in the movement data and sends the data of the feed speed obtained based on the distributed movement data to the acceleration / deceleration control device 6.

[0086] In step S13, the acceleration / deceleration control device 6 executes acceleration / deceleration processing by each of the plurality of acceleration / deceleration processing units 21-1, 21-2, ···, 21-n. Each of the plurality of acceleration / deceleration processing units 21-1, 21-2, ···, 21-n executes acceleration / deceleration processing by each of the acceleration / deceleration processing sections 22-1, 22-2, ···, 22-m. The acceleration / deceleration processing section 22-1 executes the same acceleration / deceleration processing as the first acceleration / deceleration processing in step S3 shown in FIG. 2. The acceleration / deceleration processing section 22-2 executes the same acceleration / deceleration processing as the second acceleration / deceleration processing in step S4 shown in FIG. 2. In each of the m acceleration / deceleration processing sections 22-1, 22-2, ···, 22-m, acceleration / deceleration processing for the time derivative of the input value is sequentially executed.

[0087] The acceleration / deceleration processing section 22-1 calculates a position loop and a deceleration required distance in the same manner as the first acceleration / deceleration processing section 11 shown in FIG. 1. The acceleration / deceleration processing section 22-1 executes acceleration / deceleration processing to make the position loop longer than the deceleration required distance. The acceleration / deceleration processing sections 22-2, ···, 22-m calculate a position loop, a deceleration required distance, a speed loop, and a deceleration required speed in the same manner as the second acceleration / deceleration processing section 12 shown in FIG. 1. The acceleration / deceleration processing sections 22-2, ···, 22-m execute acceleration / deceleration processing to make the position loop longer than the deceleration required distance and to make the speed loop higher than the deceleration required speed. The acceleration / deceleration control device 6 outputs information indicating the speed calculated by each of the plurality of acceleration / deceleration processing units 21-1, 21-2, ···, 21-n to the interpolation processing section 23.

[0088] In step S14, the interpolation processing section 23 generates a motor command based on the speed indicated by the information output from the acceleration / deceleration control device 6. The interpolation processing section 23 outputs a motor command to each of the plurality of motors for each control cycle.

[0089] In step S15, the acceleration / deceleration control device 6 determines whether the movement of the tool to the target position has been completed. The acceleration / deceleration control device 6 determines whether the movement of the tool to the target position has been completed based on the value of the position loop calculated for each control cycle by each of the plurality of acceleration / deceleration processing units 21-1, 21-2, ···, 21-n. If the movement of the tool to the target position has not been completed (step S15, No), the numerical control device 5 returns the procedure to step S12.

[0090] On the other hand, if the movement of the tool to the target position has been completed (step S15, Yes), the numerical control device 5 determines in step S16 whether the machining has been completed. The numerical control device 5 determines whether the machining has been completed based on whether the processing shown in the machining program to be executed has been finished. If the machining has not been completed (step S16, No), the numerical control device 5 returns the procedure to step S11. On the other hand, if the machining has been completed (step S16, Yes), the numerical control device 5 ends the processing according to the procedure shown in FIG. 11.

[0091] Next, the details of the processing in each of the components of the numerical control device 5 will be described.

[0092] <Analysis processing unit 20> The analysis processing unit 20 pre-reads the machining shape shown in the machining program input from the outside of the numerical control device 5 and acquires movement data. The analysis processing unit 20 distributes the movement amount shown in the movement data and determines a speed command for the tool tip according to the machining shape based on the distributed movement data. The analysis processing unit 20 outputs the speed command distributed to each of the plurality of acceleration / deceleration processing units 21-1, 21-2, ···, 21-n for each control cycle.

[0093] FIG. 12 is a first diagram for explaining the distribution of the speed command in the numerical control device 5 according to the second embodiment. FIG. 13 is a second diagram for explaining the distribution of the speed command in the numerical control device 5 according to the second embodiment. FIG. 14 is a diagram showing a configuration example of the acceleration / deceleration control device 6 included in the numerical control device 5 according to the second embodiment.

[0094] The acceleration / deceleration control device 6A shown in FIG. 14 is an example of the acceleration / deceleration control device 6 shown in FIG. 10. In the following description, it is assumed that the acceleration / deceleration control device 6 is the acceleration / deceleration control device 6A shown in FIG. 14. The acceleration / deceleration control device 6A has three acceleration / deceleration processing units 21-1, 21-2, and 21-3. The analysis processing unit 20 distributes speed commands to each of the three acceleration / deceleration processing units 21-1, 21-2, and 21-3.

[0095] FIG. 12 shows a graph representing an example of the relationship between speed and time. In FIG. 12, let V0 be the graph of the speed indicated by the speed command before distribution. Let V1 be the graph of the speed indicated by the speed command distributed to the acceleration / deceleration processing unit 21-1. Let V2 be the graph of the speed indicated by the speed command distributed to the acceleration / deceleration processing unit 21-2. Let V3 be the graph of the speed indicated by the speed command distributed to the acceleration / deceleration processing unit 21-3. It is assumed that the ratio of the speed distribution to each of the acceleration / deceleration processing units 21-1, 21-2, and 21-3 is arbitrary. The sum of the first-order integral values of the speeds distributed to each of the acceleration / deceleration processing units 21-1, 21-2, and 21-3 is the same as the amount of movement indicated by the movement data obtained by previewing the machining shape.

[0096] In the example shown in FIG. 12, the analysis processing unit 20 starts distributing speed commands to each of the acceleration / deceleration processing units 21-1, 21-2, and 21-3 at the same timing. Also, the analysis processing unit 20 ends distributing speed commands to the acceleration / deceleration processing units 21-1, 21-2, and 21-3 at the same timing. The timing at which the distribution of the speed command starts is the timing at which the analysis processing unit 20 starts outputting the distributed speed command. The timing at which the distribution of the speed command ends is the timing at which the analysis processing unit 20 ends outputting the distributed speed command.

[0097] FIG. 13 shows a graph representing an example of the relationship between speed and time. Here, it is assumed that speed commands are distributed to each of the three acceleration / deceleration processing units 21-1, 21-2, and 21-3.

[0098] In FIG. 13, let V10 be the graph of the speed indicated by the speed command before distribution. Let V11 be the graph of the speed indicated by the speed command distributed to the acceleration / deceleration processing unit 21-1. Let V12 be the graph of the speed indicated by the speed command distributed to the acceleration / deceleration processing unit 21-2. Let V13 be the graph of the speed indicated by the speed command distributed to the acceleration / deceleration processing unit 21-3.

[0099] In the example shown in FIG. 13, the analysis processing unit 20 appropriately controls, for each of the acceleration / deceleration processing units 21-1, 21-2, and 21-3, the timing to start the distribution of the speed command and the timing to end the distribution of the speed command. In the example shown in FIG. 13, the timings to start the distribution of the speed command are different for each of the acceleration / deceleration processing units 21-1, 21-2, and 21-3. Also, in the example shown in FIG. 13, the timings to end the distribution of the speed command are different for each of the acceleration / deceleration processing units 21-1, 21-2, and 21-3. Note that the sum of the first-order integral values of the speeds distributed to each of the acceleration / deceleration processing units 21-1, 21-2, and 21-3 is the same as the amount of movement indicated by the movement data obtained by previewing the machining shape.

[0100] As shown in FIG. 12, the analysis processing unit 20 may start the distribution of the speed command and end the distribution of the speed command at the same timing for each of the plurality of acceleration / deceleration processing units 21-1, 21-2, and 21-3. Alternatively, as shown in FIG. 13, the analysis processing unit 20 may appropriately control the timing to start the distribution of the speed command and the timing to end the distribution of the speed command for each of the acceleration / deceleration processing units 21-1, 21-2, and 21-3.

[0101] <Acceleration / Deceleration Control Device 6A> As shown in FIG. 14, the acceleration / deceleration control device 6A has three acceleration / deceleration processing units 21-1, 21-2, and 21-3. Each of the acceleration / deceleration processing units 21-1, 21-2, and 21-3 has three acceleration / deceleration processing sections 22-1, 22-2, and 22-3. The speed command output from the analysis processing section 20 is input to the acceleration / deceleration processing section 22-1 of each of the acceleration / deceleration processing units 21-1, 21-2, and 21-3. Each of the acceleration / deceleration processing units 21-1, 21-2, and 21-3 has the same configuration as each other. Here, as an example, the configuration of the acceleration / deceleration processing unit 21-1 will be described.

[0102] The acceleration / deceleration processing section 22-1 functions as a first acceleration / deceleration processing section that obtains a first speed by performing a first acceleration / deceleration process on the data of the feed speed. Similar to the first acceleration / deceleration processing section 11 shown in FIG. 1, the acceleration / deceleration processing section 22-1 obtains a first speed, which is the speed after the first acceleration / deceleration process, by performing the first acceleration / deceleration process. Similar to the first acceleration / deceleration processing section 11, the acceleration / deceleration processing section 22-1 calculates the position loop and the deceleration required distance for each control cycle. Similar to the first acceleration / deceleration processing section 11, the acceleration / deceleration processing section 22-1 executes a first acceleration / deceleration process that makes the position loop longer than the deceleration required distance. The acceleration / deceleration processing section 22-1 outputs information indicating the first speed to the acceleration / deceleration processing section 22-2 within the acceleration / deceleration processing unit 21-1.

[0103] The acceleration / deceleration processing section 22-2 functions as a second acceleration / deceleration processing section that executes a second acceleration / deceleration process on the data of the acceleration, which is the change rate per unit time of the first speed. Similar to the second acceleration / deceleration processing section 12 shown in FIG. 1, the acceleration / deceleration processing section 22-2 obtains a second speed, which is the speed after the second acceleration / deceleration process, by performing the second acceleration / deceleration process. Similar to the second acceleration / deceleration processing section 12, the acceleration / deceleration processing section 22-2 calculates the position loop, the deceleration required distance, the speed loop, and the deceleration required speed for each control cycle. Similar to the second acceleration / deceleration processing section 12, the acceleration / deceleration processing section 22-2 executes a second acceleration / deceleration process that makes the position loop longer than the deceleration required distance and makes the speed loop higher than the deceleration required speed. The acceleration / deceleration processing section 22-2 outputs information indicating the second speed to the acceleration / deceleration processing section 22-3 within the acceleration / deceleration processing unit 21-1.

[0104] The acceleration / deceleration processing unit 22-3 performs a third acceleration / deceleration process, which is an acceleration / deceleration process based on a preset differential value of jerk, on the jerk data that is the change rate per unit time of the second acceleration. The acceleration / deceleration processing unit 22-3 obtains a third speed, which is the speed after the third acceleration / deceleration process, by the third acceleration / deceleration process.

[0105] The acceleration / deceleration processing unit 22-3 calculates an acceleration loop and a deceleration required acceleration for each control cycle. The acceleration loop calculated by the acceleration / deceleration processing unit 22-3 is the difference between the target acceleration, which is the change rate per unit time of the target speed, and the third acceleration, which is the change rate per unit time of the obtained third speed. The deceleration required acceleration is the acceleration required for the feed motion of the feed axis to stop due to deceleration. The acceleration / deceleration processing unit 22-3 calculates the deceleration required acceleration due to deceleration from the latest output jerk based on the third speed. The output jerk is the second derivative value of the speed indicated in the motor command output to the machine tool 2.

[0106] Furthermore, the acceleration / deceleration processing unit 22-3 calculates a speed loop and a deceleration required speed for each control cycle. The speed loop calculated by the acceleration / deceleration processing unit 22-3 is the difference between the target speed, which is the speed defined by the machining program, and the third speed. The acceleration / deceleration processing unit 22-3 calculates the deceleration required speed due to deceleration from the latest output acceleration based on the third speed.

[0107] Furthermore, the acceleration / deceleration processing unit 22-3 calculates a position loop and a deceleration required distance for each control cycle. The position loop calculated by the acceleration / deceleration processing unit 22-3 is the difference between the target position defined by the machining program and the position indicated by the integral value of the third speed. The acceleration / deceleration processing unit 22-3 calculates the deceleration required distance due to deceleration from the latest output speed based on the third speed.

[0108] The acceleration / deceleration processing unit 22-3 executes acceleration / deceleration processing to make the position loop longer than the required deceleration distance, make the speed loop higher than the required deceleration speed, and make the acceleration loop higher than the required deceleration acceleration. Specifically, the acceleration / deceleration processing unit 22-3 controls the differential value of the jerk in the rising part of the speed waveform and the differential value of the jerk in the falling part of the speed waveform so that the position loop becomes longer than the required deceleration distance, the speed loop becomes higher than the required deceleration speed, and the acceleration loop becomes higher than the required deceleration acceleration.

[0109] <Interpolation processing unit 23> The interpolation processing unit 23 acquires the information output from the acceleration / deceleration processing units 22-3 of the respective acceleration / deceleration processing units 21-1, 21-2, 21-3. The interpolation processing unit 23 generates a motor command based on the third speed indicated in the information output from the acceleration / deceleration processing unit 22-3. The interpolation processing unit 23 generates motor commands for each of the plurality of feed axes by decomposing the components of the third speed in a plurality of feed directions according to the machining shape. The interpolation processing unit 23 outputs motor commands to each of the plurality of motors for each control cycle.

[0110] Note that the number of acceleration / deceleration processing units included in the acceleration / deceleration control device 6 is assumed to be arbitrary. The acceleration / deceleration control device 6 only needs to include a plurality of acceleration / deceleration processing units connected in parallel to each other. Each of the plurality of acceleration / deceleration processing units executes acceleration / deceleration processing by two or more acceleration / deceleration processing units and outputs the result of obtaining the speed after the acceleration / deceleration processing. Also, the number of acceleration / deceleration processing units included in each of the plurality of acceleration / deceleration processing units is assumed to be arbitrary. Each of the plurality of acceleration / deceleration processing units only needs to have two or more acceleration / deceleration processing units connected in series to each other, including a first acceleration / deceleration processing unit and a second acceleration / deceleration processing unit.

[0111] For example, in the acceleration / deceleration control device 6A shown in FIG. 14, each of the plurality of acceleration / deceleration processing units includes three acceleration / deceleration processing sections 22-1, 22-2, and 22-3, and it is decided that the third acceleration / deceleration processing section 22-3 executes acceleration / deceleration processing on the jerk data. Each of the plurality of acceleration / deceleration processing units may execute acceleration / deceleration processing with an even higher differentiation degree from the above case. For example, each of the plurality of acceleration / deceleration processing units may further include a fourth acceleration / deceleration processing section, and it is decided that the fourth acceleration / deceleration processing section executes acceleration / deceleration processing on the jounce data.

[0112] The acceleration / deceleration control device 6 is not limited to having a plurality of acceleration / deceleration units. The acceleration / deceleration control device 6 may have only one acceleration / deceleration unit. The acceleration / deceleration control device 6 may have a plurality of acceleration / deceleration processing sections including at least a first acceleration / deceleration processing section and a second acceleration / deceleration processing section.

[0113] Note that in the acceleration / deceleration control device 6, the mode of adjusting the acceleration characteristics by the acceleration processing in each of the plurality of acceleration / deceleration processing sections provided in the plurality of acceleration / deceleration processing units may be determined based on the allowable value of the vibration amount of the machine tool 2 or the vibration frequency of the machine tool 2. Thereby, the numerical control device 5 can reduce the vibration of the machine tool 2 during machining and enable highly accurate control of the speed and jerk.

[0114] The acceleration / deceleration control device 6 may be provided with a connection configuration determination section that determines the connection configuration of the plurality of acceleration / deceleration processing sections in the acceleration / deceleration control device 6 by adjusting at least one of the number of acceleration / deceleration processing units connected in parallel to each other and the number of acceleration / deceleration processing sections connected in series to each other. That is, in the acceleration / deceleration control device 6, at least one of the number of acceleration / deceleration processing units that execute acceleration / deceleration processing among the plurality of acceleration / deceleration processing units and the number of acceleration / deceleration processing sections that execute acceleration / deceleration processing among the two or more acceleration / deceleration processing sections that the acceleration / deceleration processing unit that executes acceleration / deceleration processing has may be adjustable. Note that the illustration of the connection configuration determination section is omitted.

[0115] For example, the connection configuration of the acceleration / deceleration processing unit may be determined by obtaining the connection configuration when at least one of the evaluation values, which are the evaluation results for each of the machining accuracy, surface quality, and cycle time, falls within the allowable range. The machining accuracy can be obtained based on the machining error, which is the difference between the machining shape indicated in the machining program and the shape that is the machining result. Alternatively, the connection configuration of the acceleration / deceleration processing unit may be determined by obtaining the connection configuration when the vibration level during machining falls within the allowable range.

[0116] The numerical control device 5 can determine a connection configuration suitable for the desired machining because at least one of the number of acceleration / deceleration processing units that execute acceleration / deceleration processing and the number of acceleration / deceleration processing parts that execute acceleration / deceleration processing is adjustable. The numerical control device 5 can achieve highly accurate control of acceleration and jerk with a connection configuration suitable for the desired machining.

[0117] According to Embodiment 2, the numerical control device 5 includes a plurality of acceleration / deceleration processing units connected in parallel to each other, and each of the plurality of acceleration / deceleration processing units has two or more acceleration / deceleration processing parts connected in series to each other, including a first acceleration / deceleration processing part and a second acceleration / deceleration processing part. The analysis processing unit 20 distributes the movement amount indicated in the movement data and sends the feed speed data obtained based on the distributed movement data to the first acceleration / deceleration processing part of each of the plurality of acceleration / deceleration processing units. Each of the plurality of acceleration / deceleration processing units executes acceleration / deceleration processing by two or more acceleration / deceleration processing parts and outputs the result of obtaining the speed after the acceleration / deceleration processing. The interpolation processing unit 23 generates a motor command based on the output from each of the plurality of acceleration / deceleration processing units. Since the numerical control device 5 is provided with a plurality of acceleration / deceleration processing units having two or more acceleration / deceleration processing parts, compared with the case of having only one first acceleration / deceleration processing part and one second acceleration / deceleration processing part, acceleration / deceleration processing using a larger number of acceleration / deceleration processing parts becomes possible. The numerical control device 5 can make the rising part and the falling part in the speed waveform smoother by acceleration / deceleration processing using a larger number of acceleration / deceleration processing parts. The numerical control device 5 can adjust the acceleration / deceleration characteristics with a high degree of freedom by acceleration / deceleration processing using a larger number of acceleration / deceleration processing parts.

[0118] Further, the mode of adjustment of the acceleration characteristics by the acceleration processing in each of the plurality of acceleration / deceleration processing units provided in the plurality of acceleration / deceleration processing units is determined based on the allowable value of the vibration amplitude of the machine tool 2 or the vibration frequency of the machine tool 2. Thereby, the numerical control device 5 can reduce the vibration of the machine tool 2 during machining and enable highly accurate control of speed and jerk.

[0119] Also, the numerical control device 5 can adjust at least one of the number of acceleration / deceleration processing units that execute acceleration / deceleration processing among the plurality of acceleration / deceleration processing units and the number of acceleration / deceleration processing units that execute acceleration / deceleration processing among two or more acceleration / deceleration processing units included in the acceleration / deceleration processing unit that executes acceleration / deceleration processing. Thereby, the numerical control device 5 can achieve highly accurate control of acceleration and jerk with a connection configuration suitable for the desired machining.

[0120] Next, the hardware for realizing the numerical control devices 1 and 5 according to Embodiment 1 or 2 will be described. The numerical control devices 1 and 5 are realized by using a processing circuit. The processing circuit may be a circuit in which a processor executes software, or may be a dedicated circuit.

[0121] When the processing circuit is realized by software, the processing circuit is, for example, the control circuit shown in FIG. 15. FIG. 15 is a diagram showing a configuration example of the control circuit 40 according to Embodiment 1 or 2. The control circuit 40 includes an input unit 41, a processor 42, a memory 43, and an output unit 44. The input unit 41 is an interface circuit that receives data from the outside of the control circuit 40 and supplies it to the processor 42. The output unit 44 is an interface circuit that sends data from the processor 42 or the memory 43 to the outside of the control circuit 40.

[0122] When the processing circuit is the control circuit 40 shown in FIG. 15, the processing units of the numerical control device 1 and the numerical control device 5 are realized by software, firmware, or a combination of software and firmware. The acceleration / deceleration control device 3, the analysis processing unit 10, and the interpolation processing unit 13 shown in FIG. 1 are the processing units of the numerical control device 1. The acceleration / deceleration control device 6, the analysis processing unit 20, and the interpolation processing unit 23 shown in FIG. 10 are the processing units of the numerical control device 5. The software or firmware is described as a program and stored in the memory 43.

[0123] The processing circuit realizes the processing units of the numerical control devices 1 and 5 by the processor 42 reading and executing the program stored in the memory 43. That is, the processing circuit includes a memory 43 for storing a program in which the processing of the numerical control devices 1 and 5 is ultimately executed. The program stored in the memory 43 can also be said to be a program that causes a computer to execute the procedures and methods of the numerical control devices 1 and 5. The memory 43 is also used as a temporary memory when the processor 42 executes various processes.

[0124] The processor 42 is a CPU (Central Processing Unit). The processor 42 may also be a central processing unit, a processing device, an arithmetic device, a microprocessor, a microcomputer, a processor, or a DSP (Digital Signal Processor). The memory 43 is, for example, a non-volatile or volatile semiconductor memory such as RAM (Random Access Memory), ROM (Read Only Memory), flash memory, EPROM (Erasable Programmable Read Only Memory), EEPROM (registered trademark) (Electrically Erasable Programmable Read Only Memory), a magnetic disk, a flexible disk, an optical disk, a compact disk, a mini disk, or a DVD (Digital Versatile Disc).

[0125] When the processing circuit is a dedicated circuit, the numerical control devices 1 and 5 are realized by, for example, the hardware circuit shown in FIG. 16. FIG. 16 is a diagram showing a configuration example of the hardware circuit 45 according to the first or second embodiment.

[0126] The processing unit of the numerical control device 1 and the processing unit of the numerical control device 5 are realized by a processing circuit 46 which is a dedicated circuit. The processing circuit 46 is a single circuit, a composite circuit, a programmed processor, a parallel-programmed processor, an ASIC (Application Specific Integrated Circuit), an FPGA (Field Programmable Gate Array), or a circuit combining these. The processing units of the numerical control devices 1 and 5 may be realized by the processing circuit 46 according to function, or each function may be realized by the processing circuit 46 together. Note that the processing unit of the numerical control device 1 or the processing unit of the numerical control device 5 may be realized by combining the control circuit 40 shown in FIG. 15 and the processing circuit 46 shown in FIG. 16.

[0127] The configurations shown in the above embodiments are examples of the content of the present disclosure. The configurations of each embodiment can be combined with other known technologies. The configurations of each embodiment may be combined with each other as appropriate. A part of the configuration of each embodiment can be omitted or changed without departing from the gist of the present disclosure.

Explanation of Reference Numerals

[0128] 1,5 Numerical control device, 2 Machine tool, 3,6,6A Acceleration / deceleration control device, 10,20 Analysis processing unit, 11 First acceleration / deceleration processing unit, 12 Second acceleration / deceleration processing unit, 13,23 Interpolation processing unit, 21-1,21-2,21-3,21-n Acceleration / deceleration processing unit, 22-1,22-2,22-3,22-m Acceleration / deceleration processing unit, 40 Control circuit, 41 Input unit, 42 Processor, 43 Memory, 44 Output unit, 45 Hardware circuit, 46 Processing circuit.

Claims

1. An analysis processing unit obtains movement data representing the operation commanded to the feed axis of a machine tool by analyzing the machining program, and determines the feed rate based on the movement data. A first acceleration / deceleration processing unit determines a first speed, which is the speed after the first acceleration / deceleration processing, by performing a first acceleration / deceleration processing on the feed rate data, A second acceleration / deceleration processing unit that determines a second velocity, which is the velocity after the second acceleration / deceleration processing, by performing acceleration / deceleration processing on acceleration data, which is the rate of change of the first velocity per unit time, The system includes an interpolation processing unit that generates a motor command, which is a speed command for a motor that drives the feed axis, based on the second speed, The second acceleration / deceleration processing unit is: The position droop, which is the difference between the target position, which is the position defined by the machining program, and the position indicated by the integral value of the second velocity, and the deceleration distance, which is the distance traveled until the feed motion of the feed axis stops due to deceleration, are calculated. The speed droop, which is the difference between the target speed (which is the speed defined by the aforementioned processing program) and the second speed, and the deceleration speed (which is the speed required for the acceleration to reach zero due to deceleration) are calculated. The second acceleration / deceleration process is performed such that the position droop is longer than the required deceleration distance, and the velocity droop is higher than the required deceleration speed. A numerical control device characterized by the following features.

2. It is equipped with multiple acceleration / deceleration processing units connected in parallel to each other, Each of the multiple acceleration / deceleration processing units has two or more acceleration / deceleration processing units connected in series with each other, including the first acceleration / deceleration processing unit and the second acceleration / deceleration processing unit. The analysis processing unit distributes the amount of movement shown in the movement data and sends the feed rate data obtained based on the distributed movement data to each of the first acceleration / deceleration processing units of the plurality of acceleration / deceleration processing units. Each of the multiple acceleration / deceleration processing units performs acceleration / deceleration processing by two or more acceleration / deceleration processing units and outputs the result of determining the speed after acceleration / deceleration processing. The interpolation processing unit generates the motor command based on the output from each of the multiple acceleration / deceleration processing units. The numerical control device according to feature 1.

3. The manner in which acceleration characteristics are adjusted by acceleration processing in each of the multiple acceleration / deceleration processing units provided in the multiple acceleration / deceleration processing units is determined based on the allowable value of the vibration amplitude of the machine tool or the vibration frequency of the machine tool. The numerical control device according to claim 2.

4. It is possible to adjust at least one of the following: the number of acceleration / deceleration processing units that perform the acceleration / deceleration processing among a plurality of acceleration / deceleration processing units, and the number of acceleration / deceleration processing units that perform the acceleration / deceleration processing among the two or more acceleration / deceleration processing units that perform the acceleration / deceleration processing. The numerical control device according to claim 2 or 3.

5. The process involves analyzing the machining program to obtain movement data representing the operation commanded to the feed axis of the machine tool, and determining the feed rate based on the movement data. The steps include: determining a first speed, which is the speed after the first acceleration / deceleration process, by performing an acceleration / deceleration process on the feed rate data; The steps include: determining a second velocity, which is the velocity after the second acceleration / deceleration process, by performing an acceleration / deceleration process on acceleration data, which is the rate of change of the first velocity per unit time; The process includes the step of generating a motor command, which is a speed command for a motor that drives the feed axis, based on the second speed, In the step of determining the second speed, The position droop, which is the difference between the target position, which is the position defined by the machining program, and the position indicated by the integral value of the second velocity, and the deceleration distance, which is the distance traveled until the feed motion of the feed axis stops due to deceleration, are calculated. The speed droop, which is the difference between the target speed (which is the speed defined by the aforementioned processing program) and the second speed, and the deceleration speed (which is the speed required for the acceleration to reach zero due to deceleration) are calculated. The second acceleration / deceleration process is performed such that the position droop is longer than the required deceleration distance, and the velocity droop is higher than the required deceleration speed. A control method characterized by the following: