Numerical control device and numerical control method

The numerical control device addresses processing time issues by using corner curve equations and interpolation processing to smooth movement paths and speeds at connection points, maintaining efficient machining operations.

JP7805541B1Active Publication Date: 2026-01-23MITSUBISHI ELECTRIC CORP
View PDF 7 Cites 0 Cited by

Patent Information

Application Number
JP2025564017
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Filing Date
2025-07-24
Publication Date
2026-01-23
Estimated Expiration
2045-07-24

AI Technical Summary

Technical Problem

Conventional numerical control devices experience increased processing time due to complex insertion curves in smoothing movement paths at connection points of movement commands.

Method used

A numerical control device with an analysis processing unit, acceleration/deceleration processing unit, allowable path error distribution unit, acceleration/deceleration waveform distribution unit, and corner curve calculation units to smooth movement paths and speeds at connection points while minimizing processing time, using corner curve equations and interpolation processing.

Benefits of technology

The device effectively suppresses processing time increases while smoothing movement paths and speeds at complex connection points, ensuring efficient machining operations.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007805541000002
    Figure 0007805541000002
  • Figure 0007805541000003
    Figure 0007805541000003
  • Figure 0007805541000004
    Figure 0007805541000004
Patent Text Reader

Abstract

The numerical control device includes an analysis processing unit, an acceleration / deceleration processing unit, an allowable path error distribution unit, an acceleration / deceleration waveform distribution unit, N i-th corner curve calculation units, and an interpolation processing unit. The analysis processing unit outputs a movement path and a feed rate on the movement path based on a machining program. The acceleration / deceleration processing unit calculates a speed obtained by accelerating or decelerating the movement path using the feed rate and a preset acceleration, and outputs an acceleration / deceleration waveform. The allowable path error distribution unit distributes the allowable path error into N i-th allowable path errors based on the movement path and a preset allowable acceleration and allowable jerk. The acceleration / deceleration waveform distribution unit distributes the acceleration / deceleration waveform into N i-th velocity waveforms based on the N i-th allowable path errors. The N i-th corner curve calculation units calculate an i-th corner curve equation that smooths the movement path based on the i-th allowable path error, the movement path, and the i-th velocity waveform. The interpolation processing unit outputs movement commands to each of the N i-th corner curve equations.
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 numerical control method that smooth a movement path at a connection portion of a movement command. [Background technology]

[0002] A numerical control device controls the translational axes of a machine tool based on commands written in a machining program, causing the machine tool to perform machining while changing the relative position between a workpiece and a tool. In a numerical control device, pre-interpolation acceleration / deceleration control is a technique for accurately moving a tool along a movement path written in a machining program at a commanded speed. Pre-interpolation acceleration / deceleration control generates an acceleration / deceleration waveform in a direction along the movement path, i.e., a tangential direction, and then performs interpolation by matching the generated acceleration / deceleration waveform with the movement path. Generally, when pre-interpolation acceleration / deceleration control is used, excessive acceleration occurs at sharply changing paths, such as corners where movement commands connect. Conventionally, the speed is decelerated to an appropriate speed at each corner, and then accelerated to the commanded feedrate after passing the corner, resulting in a problem of long movement times.

[0003] Patent Document 1 discloses a numerical control device that inserts a curve equation for a corner curve into a movement path to replace a sharply changing path with a smooth path, and outputs movement commands to each translation axis that moves a table or tool based on the inserted curve, which is the curve equation for the inserted curve. The technology described in Patent Document 1 calculates a curve equation for a corner curve that smooths the movement path at the joints of command blocks based on a preset allowable path error, movement path, and velocity waveform. The technology described in Patent Document 1 also calculates a velocity waveform between a stop state and a feedrate state based on preset allowable acceleration, allowable jerk, and feedrate. The numerical control device described in Patent Document 1 can smooth not only the movement path when smoothing the connection between each movement command, but also the velocity changes before and after the start and end points of the insertion curve at the connection between each movement command. [Prior art documents] [Patent documents]

[0004] [Patent Document 1] Patent No. 6410826 Summary of the Invention [Problem to be solved by the invention]

[0005] However, with the above-mentioned conventional technology, there is a problem that the processing time increases when the insertion curve becomes complicated.

[0006] The present disclosure has been made in consideration of the above, and aims to provide a numerical control device that can smooth the movement path and the speed at the connection points of each movement command while suppressing an increase in processing time, even when the insertion curve used in the interpolation process for the connection points of each movement command becomes complex. [Means for solving the problem]

[0007] In order to solve the above-mentioned problems and achieve the object, the present disclosure provides a numerical control device for controlling a machine tool having multiple translational axes, and includes an analysis processing unit, an acceleration / deceleration processing unit, an allowable path error distribution unit, an acceleration / deceleration waveform distribution unit, N i-th corner curve calculation units, and an interpolation processing unit. The analysis processing unit outputs a movement path and a feedrate along the movement path based on a machining program including movement commands for the multiple translational axes. The acceleration / deceleration processing unit calculates a speed obtained by accelerating and decelerating the movement path between a stop state and a feedrate state using the feedrate and a preset acceleration, and outputs an acceleration / deceleration waveform indicating the speed after acceleration / deceleration. The allowable path error distribution unit distributes the allowable path error to N i-th allowable path errors, where N is an integer equal to or greater than 2 and i is an integer from 1 to N, based on the movement path and the preset allowable acceleration and allowable jerk. The acceleration / deceleration waveform distribution unit distributes the acceleration / deceleration waveform to N i-th speed waveforms based on the N i-th allowable path errors. The N ith corner curve calculation units calculate an ith corner curve equation by smoothing the movement path, with the movement path to be smoothed at the joints of command blocks corresponding to the movement commands written in the machining program as the smoothing section, based on the ith allowable path error, the movement path, and the ith speed waveform. The interpolation processing unit outputs movement commands to each of the multiple translation axes based on the N ith corner curve equations. [Effects of the Invention]

[0008] The numerical control device according to the present disclosure has the advantage of being able to suppress an increase in processing time while smoothing the movement path and the speed at the connection points of each movement command, even when the insertion curve used in the interpolation process for the connection points of each movement command becomes complex. [Brief explanation of the drawings]

[0009] [Figure 1] FIG. 1 is a diagram showing an example of a functional configuration of a numerical control device according to a first embodiment; [Figure 2] 1 is a flowchart showing an example of a procedure of a numerical control method according to the first embodiment. [Figure 3] 1 is a flowchart showing an example of a procedure of a numerical control method according to the first embodiment. [Figure 4] FIG. 4 is a diagram showing an example of the functional configuration of a numerical control device that executes the numerical control methods of FIGS. 2 and 3. [Figure 5] A diagram showing an example of the movement paths of two command blocks [Figure 6] FIG. 10 is a diagram showing an example of acceleration / deceleration waveforms in the two command blocks shown in the diagram. [Figure 7] FIG. 7 is a diagram showing an example of a velocity waveform between time ts and time te in FIG. 6; [Figure 8] Figure 7 shows the jerk [Figure 9] FIG. 1 is a diagram showing an example of the relationship between acceleration / deceleration waveforms and a first velocity equation. [Figure 10] A diagram showing an example of the second velocity equation [Figure 11] FIG. 1 is a diagram showing an example of a first corner curve formula and a second corner curve formula; [Figure 12] FIG. 1 is a diagram showing an outline of the process of a numerical control method according to the first embodiment; [Figure 13] FIG. 1 is a diagram showing an example of the configuration of a control circuit according to a first embodiment; [Figure 14] FIG. 1 is a diagram showing an example of a configuration of a hardware circuit according to a first embodiment; DETAILED DESCRIPTION OF THE INVENTION

[0010] DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS A numerical control device and a numerical control method according to embodiments of the present disclosure will be described in detail below with reference to the accompanying drawings.

[0011] Embodiment 1 1 is a diagram showing an example of the functional configuration of a numerical control device according to embodiment 1. The numerical control device 10 is a device that receives as input a machining program MP, which is a computer program, and measurement data that has been measured in advance, and outputs control commands to a servo amplifier 20 provided in a machine tool (not shown), which is the object to be controlled.

[0012] A machine tool equipped with the numerical control device 10 controls each translation axis to move to a position commanded by a machining program MP, thereby moving a table, which is a movable part on which a workpiece to be machined can be placed, or a tool, which is a movable part that performs machining on the workpiece. In this way, machining of the workpiece is performed by the tool.

[0013] The numerical controller 10 performs machining on a workpiece by appropriately controlling multiple translational axes, namely, the X-axis, Y-axis, and Z-axis (not shown), so that the tool position relative to the workpiece is the desired tool position. In other words, the numerical controller 10 is a device that controls a machine tool having multiple translational axes. Specifically, the numerical controller 10 outputs a movement command to a servo amplifier 20. The servo amplifier 20 includes an X-axis amplifier 20X, a Y-axis amplifier 20Y, and a Z-axis amplifier 20Z corresponding to the X-axis, Y-axis, and Z-axis, respectively. The movement command is sent to the X-axis amplifier 20X, the Y-axis amplifier 20Y, and the Z-axis amplifier 20Z. In response to this, the X-axis amplifier 20X, the Y-axis amplifier 20Y, and the Z-axis amplifier 20Z output voltage commands to drive the X-axis servo motor, the Y-axis servo motor, and the Z-axis servo motor (not shown), respectively.

[0014] The numerical control device 10 includes an analysis processing unit 11, an acceleration / deceleration processing unit 12, an allowable information storage unit 13, a movement path distribution unit 14, a first corner curve calculation unit 15-1, ..., an Nth corner curve calculation unit 15-N, and an interpolation processing unit 16. When the first corner curve calculation units 15-1, ..., and the Nth corner curve calculation unit 15-N are not individually distinguished, they are referred to as N ith corner curve calculation units 15-i, where N is an integer equal to or greater than 2, and i is an integer equal to or greater than 1 and equal to or less than N.

[0015] The analysis processing unit 11 determines the movement path and the feed rate along the movement path based on a machining program MP containing externally input movement commands for multiple translational axes. The machining program MP describes the movement commands, tool type, feed rate command, and rotation speed command required to move the workpiece or tool tip position along a predetermined path. In the machining program MP, position movement commands are specified by G-codes such as G0 and G1, which specify coordinate values ​​and the corresponding movement mode. To perform the desired cutting, the tool type, feed rate command, and rotation speed command are important. In the machining program MP, the tool type is specified by a T-code containing the tool number, the feed rate command is specified by an F-code containing a speed value, and the rotation speed command is specified by an S-code containing a rotation value. Note that information including the tool type, feed rate command, and rotation speed command may be stored as a single data set in the numerical control device 10, and data suitable for the desired cutting may be specified in the machining program MP using G-codes or M-codes.

[0016] The machining program MP is generally a computer program written using G-code, which is the command code for the above-mentioned movement commands, and each movement command written in the machining program MP is called a command block. Usually, each line in the machining program MP corresponds to one command block, and the machining program MP has multiple command blocks.

[0017] The analysis processing unit 11 determines a tool tip speed command that matches the shape from movement data obtained by look-ahead analysis of the program shape, which is the shape of the workpiece to be machined by the externally input machining program MP. The analysis processing unit 11 also determines the type of tool and rotation speed command required for cutting. Look-ahead analysis means analyzing the part of the machining program MP that will be executed after the part currently being executed by the machine tool. The movement data is data obtained as a result of interpreting the commands of each command block, and includes information such as the start and end points of each translation axis of each command block, the movement distance, the movement speed, and the angle between the previous and next command paths, i.e., the amount of change in the axis ratio. Furthermore, the analysis processing unit 11 interpolates a tool tip speed command that matches the shape for each control cycle.

[0018] The acceleration / deceleration processing unit 12 calculates the post-acceleration / deceleration speed using the feed rate and a preset acceleration, and outputs an acceleration / deceleration waveform. The post-acceleration / deceleration speed is the speed at which the tool is accelerated from a stopped state to a feed rate state when moving the tool along the movement path relative to the workpiece, or at which the tool is decelerated from the feed rate state to a stopped state. Specifically, the acceleration / deceleration processing unit 12 performs acceleration / deceleration processing at a preset acceleration for the speed command data for each control cycle, and calculates the post-acceleration / deceleration speed, which is the speed after the acceleration / deceleration processing. This provides an acceleration / deceleration waveform that indicates the change in the post-acceleration / deceleration speed over time.

[0019] At this time, the acceleration / deceleration processing unit 12 determines the rise and fall of the speed and controls the acceleration so that the position command droop is greater than the required deceleration distance. Here, the position command droop is the difference between the target position specified by the machining program MP for each control cycle and the calculated post-acceleration / deceleration position. The post-acceleration / deceleration position is an integral value calculated by integrating the post-acceleration / deceleration speed for each control cycle. The target position specified by the machining program MP may be a position pre-analyzed by the analysis processing unit 11, or may be the accumulated value of the speed command data for each control cycle output from the analysis processing unit 11. Furthermore, the post-acceleration / deceleration speed may be determined based on the amount of change in the axial ratio between adjacent command blocks, or based on the angle between the adjacent command blocks.

[0020] The acceleration / deceleration processing unit 12 performs smoothing processing so that the tool movement command and velocity waveform are smoothed using the time constant of the moving average filter that is set. The smoothing processing may be performed using a filter. When using a moving average filter, the interpolation point v on the velocity after the moving average filter is expressed by the average value of the point V on the path before the moving average filter, and can be expressed by the following equation (1).

[0021]

number

[0022] Here, n indicates the number of interpolation points from the start point to the end point, and m is the time constant of the moving average filter, which is set by a parameter.

[0023] The tolerance information storage unit 13 stores tolerance information used in the calculation of a curve equation in the numerical control device 10. The tolerance information includes a tolerance path error, a tolerance acceleration which is a tolerance value of acceleration, and a tolerance jerk which is a tolerance value of a derivative value of acceleration. The tolerance acceleration and the tolerance jerk are values ​​that are set in advance according to the capabilities of each of the translation axes attached to the machine tool.

[0024] The allowable acceleration and allowable jerk may be expressed as a combination of speed and the time constants of multiple moving average filters, or the allowable acceleration may be calculated by dividing the maximum speed by the time constant of a first moving average filter, and then further dividing the maximum speed by the time constant of the first moving average filter by the time constant of a second moving average filter. Here, the time constant of the first moving average filter is a linear acceleration / deceleration time constant, and the time constant of the second moving average filter is an S-curve acceleration / deceleration time constant, i.e., a soft acceleration / deceleration filter time constant.

[0025] Alternatively, the allowable acceleration and allowable jerk common to all axes may be calculated from the allowable acceleration and allowable jerk of each axis, and these may be used as allowable values ​​for acceleration and deceleration.

[0026] The allowable path error, also called tolerance, is an allowable value for the path error between the movement path described in the machining program MP and the movement command output from the numerical control device 10. The allowable path error is set in advance. Note that the allowable path error may be specified in the machining program MP and may be changed during the machining program MP.

[0027] The movement path distribution unit 14 includes an allowable path error distribution unit 141 that distributes an allowable path error to N parts based on the movement path, allowable acceleration, and allowable jerk, and an acceleration / deceleration waveform distribution unit 142 that distributes an acceleration / deceleration waveform indicating a post-acceleration / deceleration speed at a joint portion of a command block that curves the movement path to N parts based on the allowable path error distributed to N parts. The acceleration / deceleration waveforms distributed to N parts are also referred to as speed waveforms. Details of the processing by the movement path distribution unit 14 will be described later.

[0028] The i-th corner curve calculation unit 15-i calculates an i-th corner curve equation obtained by smoothing the movement path, using the i-th allowable path error among the N distributed allowable path errors, the movement path, and the i-th speed waveform among the N distributed speed waveforms as the smoothing section for the movement path to be smoothed at the joints of the command blocks corresponding to the movement commands written in the machining program MP. N i-th corner curve calculation units 15-i are provided. In other words, the N curve equations are calculated in parallel by the N i-th corner curve calculation units 15-i.

[0029] The interpolation processing unit 16 outputs a movement command for each of the multiple translation axes based on the N ith corner curve equations output from the N ith corner curve calculation units 15-i. Specifically, the interpolation processing unit 16 performs interpolation on the movement path based on the N ith corner curve equations output from the N ith corner curve calculation units 15-i, and outputs a movement command for each of the multiple translation axes that move a table supporting a workpiece or a tool. The interpolation processing unit 16 may perform interpolation using a corner curve equation obtained by adding together the N ith corner curve calculation equations to generate a movement command for each translation axis. Alternatively, the interpolation processing unit 16 may perform interpolation using each of the N ith corner curve calculation equations to generate movement command information for each translation axis, and then add together the generated N movement command information to generate a movement command.

[0030] Next, a numerical control method for controlling a machine tool having multiple translation axes, which is performed by the numerical control device 10, will be described. FIGS. 2 and 3 are flowcharts showing an example of the procedure of the numerical control method according to the first embodiment. Note that the following will take as an example a case where N=2, i.e., a case where two corner curve calculation formulas are calculated. FIG. 4 is a diagram showing an example of the functional configuration of a numerical control device that executes the numerical control method of FIGS. 2 and 3. FIG. 4 differs from FIG. 1 in that it has a first corner curve calculation unit 15-1 and a second corner curve calculation unit 15-2 instead of N i-th corner curve calculation units 15-i.

[0031] First, when a machining program MP is input to the numerical control device 10 from outside (step S11), the analysis processing unit 11 determines a speed command for the tool tip relative to the workpiece, which is tailored to the shape to be machined, from movement data obtained by look-ahead analysis of the machining program MP (step S12). At this time, the analysis processing unit 11 determines the tool type and rotation speed command in addition to the speed command. The processing of step S12 corresponds to an analysis processing step that outputs a movement path and a feed rate on the movement path based on the machining program MP, which includes movement commands for multiple translation axes. Next, the analysis processing unit 11 interpolates a speed command for the tool tip tailored to the shape for each control cycle (step S13). The speed command interpolated for each control cycle is called speed command data for each control cycle.

[0032] Thereafter, the acceleration / deceleration processing unit 12 performs acceleration / deceleration processing at a predetermined acceleration for the speed command data for each control cycle, calculates the post-acceleration / deceleration speed, which is the speed after the acceleration / deceleration processing, and generates an acceleration / deceleration waveform indicating the relationship between speed and time (step S14). The processing in step S14 corresponds to an acceleration / deceleration processing step that calculates the speed accelerated / decelerated along the movement path between a stop state and a feed rate state using the feed rate and a predetermined acceleration, and outputs an acceleration / deceleration waveform indicating the post-acceleration / deceleration speed. The acceleration / deceleration processing unit 12 also performs smoothing processing of the tool movement command and the acceleration / deceleration waveform (step S15).

[0033] Next, the acceleration / deceleration waveform distribution unit 142 of the movement path distribution unit 14 determines the joints of the command blocks that will curve the movement path (step S16). Specifically, the acceleration / deceleration waveform distribution unit 142 extracts the joints of the command blocks that exhibit oscillatory behavior based on the movement data. The joints of the command blocks that exhibit oscillatory behavior are joints of the command blocks that may cause oscillatory behavior in the operation of the machine tool due to discontinuous changes in the direction or curvature of the movement path. Here, whether or not oscillatory behavior will occur may be determined based on the angle between the movement paths of adjacent command blocks or the amount of change in the axial ratio. Furthermore, the movement paths at the joints of all command blocks may be smoothed regardless of the change in the movement path, or the number of joints of the command blocks to be smoothed may be limited taking into account the processing load when generating a smoothed path.

[0034] Next, the acceleration / deceleration waveform distribution unit 142 determines whether there is a command block seam that curves the movement path (step S17). If there is a command block seam that curves the movement path (if Yes in step S17), the acceleration / deceleration waveform distribution unit 142 selects the command block seam that is determined to have a command block seam that curves the movement path (step S18). The acceleration / deceleration waveform distribution unit 142 formulates the velocity waveforms before and after the seam of the selected command block using a first velocity equation and a second velocity equation that can be expressed by a simple curve (step S19). Note that when distributing the acceleration / deceleration waveform of the command block seam that curves the movement path into N velocities, the acceleration / deceleration waveform distribution unit 142 formulates the N velocity equations from the first velocity equation to the Nth velocity equation.

[0035] The first velocity equation is a velocity equation that indicates the velocity in the first corner curve equation calculated by the first corner curve calculation unit 15-1. As the first velocity equation, a velocity equation is formulated in which the composite velocity does not become a constant value at the joint of the command blocks, and the composite acceleration and composite jerk become values ​​other than 0.

[0036] The second velocity equation is a velocity equation that indicates the velocity in the second corner curve equation calculated by the second corner curve calculation unit 15-2. As the second velocity equation, a velocity equation is formulated such that the composite velocity becomes a constant value at the joint of the command block. In other words, a second velocity equation is formulated such that the composite acceleration and composite jerk of the composite velocity become 0.

[0037] Fig. 5 is a diagram showing an example of the movement paths of two command blocks. Fig. 5 shows a movement path R1 by command block N1 and a movement path R2 by command block N2. Movement path R1 is a path along the positive direction of the X axis, and movement path R2 is a path along the positive direction of the Y axis that intersects with movement path R1 at an angle of 90°. Point j corresponds to the joint between the command blocks.

[0038] FIG. 6 shows an example of acceleration / deceleration waveforms for the two command blocks shown in the figure. FIG. 6 shows a composite of the acceleration / deceleration waveforms in the X-axis direction and the Y-axis direction. In FIG. 6, the horizontal axis represents time, and the vertical axis represents speed. As shown in FIG. 6, along movement path R1 corresponding to command block N1, the tool accelerates to the speed specified in command block N1 and moves at the specified speed. When transitioning to movement path R2, the tool movement direction changes. To prevent the acceleration from increasing when switching, the speed along the X-axis direction is reduced, and movement along the Y-axis direction begins at time ts, before time tj, when the tool passes through point j, which is the joint. Furthermore, the speed along the X-axis direction becomes zero at time te, which is after time tj. Thereafter, the speed along the Y-axis direction is accelerated to the speed specified in command block N2. Then, along movement path R2 corresponding to command block N2, the tool moves at the speed specified in command block N2, and then decelerates to zero.

[0039] FIG. 7 is a diagram showing an example of a velocity waveform between time ts and time te in FIG. 6. In FIG. 7, the horizontal axis represents time, and the vertical axis represents velocity. FIG. 8 is a diagram showing the jerk in FIG. 7. In FIG. 8, the horizontal axis represents time, and the vertical axis represents jerk. In the following example, an acceleration / deceleration waveform is used in which the jerk is constant as shown in FIG. 8, and the velocity decelerates once before the joint between command blocks, and then accelerates again after passing the joint as shown in FIG. 7.

[0040] If the time at the smoothing start point is t = -Δt, the time at the smoothing end point is t = Δt, and acceleration or deceleration is at the allowable jerk J, the first velocity equation to be formulated is expressed as the following equations (2) and (3). However, if the velocity waveform of the path before the command block join is V 1,1 (t), and the velocity waveform of the path after the command block join is V 1,2 Let (t).

[0041] V 1,1 (t)=J×(Δt-t) 2 / 4 (2)

[0042] V 1,2 (t)=J×(Δt+t) 2 / 4 (3)

[0043] At this time, V 1,1 (t) and V 1,2 The sum V1(t) of (t) can be expressed by the following equation (4).

[0044] V1(t)=J×(Δt 2 +t 2 ) / twenty four)

[0045] FIG. 9 is a diagram showing an example of the relationship between the acceleration / deceleration waveform and the first velocity equation. In FIG. 9, the horizontal axis indicates time, and the vertical axis indicates velocity. FIG. 9 shows velocity waveforms V0(t) generated by the acceleration / deceleration processing unit 12 before and after the joint between the command blocks. Also, the velocity waveform V0(t) of the path before the time tj, which is the joint between the command blocks, is shown. 1,1(t) and the velocity waveform V of the path after the joint time tj 1,2 (t) and the velocity waveform V1(t) are also shown. 1,1 (t) and velocity waveform V 1,2 (t) and (t).

[0046] The velocity waveform V0(t) indicating the velocity after acceleration / deceleration generated by the acceleration / deceleration processing unit 12 before and after the joint of the command block shown in Fig. 9 is compared with the velocity waveform V1(t) of the first velocity equation calculated by the acceleration / deceleration waveform distribution unit 142. 1,1 (t) and velocity waveform V 1,2 The jerk calculated by the second-order differentiation of the velocity waveform V1(t) of the first velocity equation, which is the sum of V1(t) and V0(t), matches the jerk of the velocity waveform V0(t) generated by the acceleration / deceleration processing unit 12. This indicates that the shapes of the velocity waveform V1(t) of the first velocity equation and the velocity waveform V0(t) generated by the acceleration / deceleration processing unit 12 match. However, as shown in Figure 9, it can be seen that there are cases where the magnitude of the velocity waveform V1(t) of the first velocity equation does not match the magnitude of the velocity waveform V0(t) generated by the acceleration / deceleration processing unit 12, resulting in a certain amount of error.

[0047] Therefore, the second velocity equation to be formulated additionally is expressed as the following equations (5) and (6) using the allowable acceleration A. However, the velocity waveform of the path before the joint of the command block is V 2,1 (t), and the velocity waveform of the path after the command block join is V 2,2 (t). Fs is the difference error between the velocity waveform V0(t) generated by the acceleration / deceleration processor 12 and the velocity waveform V1(t) of the first velocity equation.

[0048] V 2,1 (t)=Fs-A(Δt-t) (5)

[0049] V 2,2 (t)=A(Δt+t) (6)

[0050] Fig. 10 is a diagram showing an example of the second velocity equation. In Fig. 10, the horizontal axis indicates time and the vertical axis indicates velocity. Fig. 10 shows a velocity waveform V of a path before time tj, which is the joint between command blocks. 2,1 (t) and the velocity waveform V of the path after the joint time tj 2,2 (t) and the velocity waveform V2(t) are shown. 2,1 (t) and velocity waveform V 2,2 (t) and (t).

[0051] As shown in Figure 10, the second velocity equation is 2,1 (t) and V 2,2 The velocity waveform V2(t), which is the sum of V2(t) and V2(t), is constant, and the acceleration, which is the first derivative of the velocity waveform V2(t), and the jerk, which is the second derivative of the velocity waveform V2(t), are defined as zero.

[0052] In this manner, the acceleration / deceleration waveform distribution unit 142 formulates the acceleration / deceleration waveform using the first speed formula and the second speed formula.

[0053] Returning to FIG. 3, the acceleration / deceleration waveform distribution unit 142 expresses the forward and backward movement paths centered on the joint of the command block selected in step S18 in a mathematical formula, and associates them with the first speed formula and the second speed formula calculated in step S19 (step S20).

[0054] A specific explanation will be given. First, the movement path is expressed by a formula. The distance s1 along the path calculated from the first velocity formula is input, and s1=0 is set as the joint of the command block selected in step S18. In addition, the range of s1<0 is set as the path formula P that indicates the path before the joint of the command block. 1,1 (s1), and the range of s1>0 is the path formula P 1,2 (s1). Here, the path expression P 1,1 (s1) and the path expression P 1,2 (s1) is expressed as a position vector with the positions of all translation axes as elements, and is a mathematical expression that indicates the position according to the distance s1 along the path.

[0055] Also, the distance s2 along the path calculated from the second velocity equation is input, and s2=0 is set as the joint of the command block selected in step S18. Also, the range of s2<0 is set as the path equation indicating the path before the joint of the command block, P 2,1 (s2), and the range of s2>0 is P 2,2 (s2). Here, the path expression P 2,1 (s2) and the path expression P 2,2 (s2) is expressed as a position vector with the positions of all translation axes as elements, and is a mathematical expression that indicates the position according to the distance s2 along the path.

[0056] Next, the equation representing the moving route is associated with the formulated speed equation. Specifically, the equation representing the moving route is associated with the formulated first speed equation, and the equation representing the moving route is associated with the formulated second speed equation.

[0057] The correspondence between the mathematical expression representing the movement path and the formulated first velocity equation will be explained. In one example, in the case of a path after the joint of the command block of the first velocity equation, the time at the distance s1=0 along the path is defined as t 1,2 = 0, and the first velocity equation V shown in equation (3) 1,2 (t) at time t 1,2 Position X in 1,2 (t 1,2 ) to calculate the position X 1,2 (t 1,2 ) is, for example, the first rate equation V 1,2 (t) to t 1,2 =0 to t 1,2 Then, the position X 1,2 (t 1,2 ) to the path expression P after the command block join 1,2 By using s1 as a parameter of (s1), time t 1,2 Distance s along the path 1,2 That is, the distance s is calculated by the following equation (7). 1,2 Calculate.

[0058] s1,2 =X 1,2 (t 1,2 ) ···(7)

[0059] In the case of a path before the joint of the command block of the first velocity equation, the time at the distance s1=0 along the path is t 1,1 = 0, and the first velocity equation V shown in equation (2) 1,1 (t) is used to calculate time -t 1,1 Position X in 1,1 (t 1,1 ) to calculate the position X 1,1 (t 1,1 ) is, for example, the first rate equation V 1,1 (t) to t 1,1 =0 to -t 1,1 Then, the position X 1,1 (t 1,1 ) to the path expression P before the command block join 1,1 By using s1 as a parameter of (s1), time -t 1,1 Distance s along the path 1,1 That is, the distance s is calculated by the following equation (8). 1,1 Calculate.

[0060] s 1,1 =X 1,1 (t 1,1 ) ···(8)

[0061] The correspondence between the mathematical expression indicating the movement path and the formulated second velocity expression will be explained. In one example, in the case of a path after the joint of the command block of the second velocity expression, the time at the distance s2=0 along the path is defined as t 2,2 = 0, and the second velocity equation V shown in equation (6) 2,2 (t) at time t 2,2 Position X in 2,2 (t 2,2 ) to calculate the position X 2,2 (t 2,2 ) is, in one example, the second velocity equation V 2,2 (t) to t 2,2 =0 to t 2,2 Then, the position X 2,2 (t2,2 ) to the path expression P after the command block join 2,2 By using s2 as a parameter of (s2), time t 2,2 Distance s along the path 2,2 That is, the distance s is calculated by the following equation (9). 2,2 Calculate.

[0062] s 2,2 =X 2,2 (t 2,2 ) ···(9)

[0063] In the case of a path before the joint of the command block of the second velocity formula, the time at the distance s2=0 along the path is defined as t 2,1 = 0, and the second velocity equation V shown in equation (5) 2,1 (t) is used to calculate time -t 2,1 Position X in 2,1 (t 2,1 ) to calculate the position X 2,1 (t 2,1 ) is, in one example, the second velocity equation V 2,1 (t) to t 2,1 =0 to -t 2,1 Then, the position X 2,1 (t 2,1 ) to the path expression P before the command block join 2,1 By using s2 as a parameter of (s2), time -t 2,1 Distance s along the path 2,1 That is, the distance s is calculated by the following equation (10). 2,1 Calculate.

[0064] s 2,1 =X 2,1 (t 2,1 ) ···(10)

[0065] Next, the allowable path error distribution unit 141 of the moving path distribution unit 14 distributes the allowable path error TOL and determines the start point position and the end point position of each smoothed path (step S21). 1,1 (s1) and P 1,2(s1) and the movement distance Δs centered on the joint of the command block, the movement path associated with the first velocity equation and the first path error E r,1 The relationship between these is expressed by the following formula (11). 2,1 (s2) and P 2,2 (s2) and the movement distance Δs centered on the joint of the command block, the movement path associated with the second velocity formula and the second path error E r,2 The relationship is expressed by the following equation (12).

[0066] E r,1 =|P 1,1 (-Δs1)-P 1,1 (0)+P 1,2 (Δs1)-P 1,2 (0)| (11)

[0067] E r,2 =|P 2,1 (-Δs2)-P 2,1 (0)+P 2,2 (Δs2)-P 2,2 (0)| (12)

[0068] In addition, the path error E r is the first path error E r,1 and the second path error E r,2 and is expressed by the following equation (13).

[0069] E r =E r,1 +E r,2 ···(13)

[0070] In the first speed equation, the travel time Δt1 required to travel a distance Δs1 on the path from the joint of the command blocks is calculated from the relational expression shown in the following equation (14).

[0071] Δs1=X 1,2 (Δt1) (14)

[0072] In addition, in the second speed equation, the movement time Δt2 required to move a distance Δs2 on the path from the joint of the command blocks is calculated from the relational expression shown in the following equation (15).

[0073] Δs2=X 2,2 (Δt2) (15)

[0074] If the first allowable path error TOL1 is the allowable value of the amount of inner turning of the trajectory generated from the first corner curve equation associated with the first speed equation, and the second allowable path error TOL2 is the allowable value of the amount of inner turning of the trajectory generated from the second corner curve equation associated with the second speed equation, the path allowable error TOL shall satisfy the relationship of the following equation (16).

[0075] TOL1+TOL2=TOL (16)

[0076] In equation (11), the first path error E r,1 is equal to the first allowable path error TOL1, the relational expression between Δs1 and the first allowable path error TOL1 can be derived. Furthermore, by using this relational expression and equation (14), the relational expression between Δt1 and the first allowable path error TOL1 can be derived.

[0077] Similarly, in equation (12), the second path error E r,2 is equal to the second allowable path error TOL2, the relational expression between Δs2 and the second allowable path error TOL2 can be derived. Furthermore, by using this relational expression and equation (15), the relational expression between Δt2 and the second allowable path error TOL2 can be derived.

[0078] In this case, if Δt1=Δt2=Δt so that the time required to pass through the smoothing section is the same, the relationship between Δt and the first allowable path error TOL1 and the relationship between Δt and the second allowable path error TOL2 are derived. rIf Δt coincides with the allowable path error TOL, the relationship between Δt and the first allowable path error TOL1 and the relationship between Δt and the second allowable path error TOL2 are substituted into equation (16), and the value of the allowable path error TOL stored in the allowable information storage unit 13 is substituted. As a result, equation (16) becomes an equation for Δt, and Δt can be calculated. Then, using the calculated Δt, Δs1 and Δs2 can be derived from equations (14) and (15). Since the relationship between Δs1 and the first allowable path error TOL1 and the relationship between Δs2 and the second allowable path error TOL2 have already been derived, the first allowable path error TOL1 and the second allowable path error TOL2 can be calculated. As described above, the distribution ratio of the allowable path error TOL is determined in a manner that depends on the curve equation used for smoothing and the allowable path error TOL. This makes it possible to generate a route in which the allowable route error TOL is distributed to the first allowable route error TOL1 and the second allowable route error TOL2. In this way, the allowable route error distribution unit 141 distributes the allowable route error TOL to the first allowable route error TOL1 and the second allowable route error TOL2 so that the time required to pass through the smoothing section is the same. More generally, the allowable route error distribution unit 141 distributes the allowable route error TOL to N i-th allowable route errors so that the time required to pass through the smoothing section is the same.

[0079] Furthermore, using Δt obtained as above, Δsa1 is calculated for the first rate equation using the following equation (17).

[0080] Δsa1=X 1,2 (2×Δt) (17)

[0081] Using the Δsa1 obtained in this way, the endpoint of the smoothed path is determined by setting s1 = Δsa1 as the end point of the smoothed path and s1 = -Δsa1 as the start point of the smoothed path. Similarly, for the second velocity equation, Δsa2 can be calculated using the following equation (18).

[0082] Δsa2=X 2,2 (2×Δt) (18)

[0083] Using Δsa2 thus obtained, the end points of the smoothed route are determined with s2=Δsa2 as the end point position of the smoothed route and s2=-Δsa2 as the start point position of the smoothed route.

[0084] The processing from step S19 to step S21 above corresponds to an allowable path error distribution step of distributing an allowable path error to N number of ith allowable path errors based on the movement path and preset allowable acceleration and allowable jerk, where N is an integer equal to or greater than 2 and i is an integer from 1 to N, and an acceleration / deceleration waveform distribution step of distributing an acceleration / deceleration waveform to N number of ith velocity waveforms based on the N number of ith allowable path errors.

[0085] Next, the first corner curve calculation unit 15-1 derives a first corner curve equation (step S22). FIG. 11 is a diagram showing an example of the first corner curve equation and the second corner curve equation. FIG. 11 shows an example of a path of the tool on the XY plane relative to the workpiece. The first corner curve equation is indicated by Q1(t), and the second corner curve equation is indicated by Q2(t). Also shown is a corner curve equation Q1(t)+Q2(t) that is a combination of the first corner curve equation and the second corner curve equation.

[0086] The first corner curve equation Q1(t) is a function of time, where the time at the start point of the corner curve is t=-Δt and the time at the end point of the corner curve is t=Δt. The first corner curve equation Q1(t) is expressed by the path equation P 1,1 Movement from s1=-Δsa1 to s1=0 in (s1) and the path formula P 1,2 The first corner curve equation Q1(t) is calculated by the following equation (19):

[0087] Q1(t)=P 1,1 (-X 1,2 (-t+Δt))+P 1,2 (X 1,2 (t+Δt))-P 1,2 (0) ···(19)

[0088] Then, at time t = -Δt, the start position of the first corner curve equation Q1(t) is determined using equation (17) as shown in the following equation (20). Also, at time t = Δt, the end position of the first corner curve equation Q1(t) is determined using equation (17) as shown in the following equation (21).

[0089] Q1(-Δt)=P 1,1 (-Δsa1) (20)

[0090] Q1(Δt)=P 1,2 (Δsa1) (21)

[0091] As a result of the above, the first corner curve equation Q1(t) shown in FIG. 11 is obtained.

[0092] Returning to FIG. 3, in parallel with step S22, the second corner curve calculation unit 15-2 derives a second corner curve equation (step S23). The second corner curve equation Q2(t) is a function of time, where the time at the start point of the corner curve is t=-Δt and the time at the end point of the corner curve is t=Δt. The second corner curve equation Q2(t) is calculated by the path equation P 2,1 Movement from s2=-Δsa2 to s2=0 in (s2) and the path formula P 2,2 The second corner curve equation Q2(t) is calculated by the following equation (22).

[0093] Q2(t)=P 2,1 (-X 2,2 (-t+Δt))+P 2,2 (X 2,2 (t+Δt))-P 2,2 (0) ···(22)

[0094] Then, at time t = -Δt, the start position of the second corner curve equation Q2(t) is determined using equation (18) as shown in the following equation (23). Also, at time t = Δt, the end position of the second corner curve equation Q2(t) is determined using equation (18) as shown in the following equation (24).

[0095] Q2(-Δt)=P 2,1 (-Δsa2) (23)

[0096] Q2(Δt)=P 2,2 (Δsa2) (24)

[0097] As a result, the second corner curve equation Q2(t) shown in FIG. 11 is obtained. The path represented by the corner curve equation Q1(t)+Q2(t), which is a combination of the first corner curve equation Q1(t) and the second corner curve equation Q2(t), is the smoothed path to be inserted. Furthermore, since equations (17) and (18) pass through the path obtained from the first velocity equation and the path obtained from the second velocity equation in a time 2 × Δt, the acceleration / deceleration waveform distribution unit 142 distributes the velocity to the first corner curve equation Q1(t) and the second corner curve equation Q2(t). In other words, the acceleration / deceleration waveform distribution unit 142 distributes the velocity to each of the first corner curve calculation unit 15-1 and the second corner curve calculation unit 15-2 based on the first allowable path error TOL1 and the second allowable path error TOL2 so that the time required to pass through the smoothed section is the same. More generally, the acceleration / deceleration waveform distribution unit 142 distributes speeds to each of the N i-th corner curve calculation units 15-i based on the N i-th allowable path errors so that the time it takes to pass through the smoothing section is the same.

[0098] The processing of steps S22 and S23 above corresponds to a corner curve calculation step in which the ith corner curve equation obtained by smoothing the movement path is calculated based on the ith allowable path error, the movement path, and the ith speed waveform, with the movement path to be smoothed at the joints of the command blocks as the smoothing section.

[0099] In the processing from step S20 to step S23, the acceleration / deceleration waveform distribution unit 142 distributes the speed to the first corner curve calculation unit 15-1 and the second corner curve calculation unit 15-2 based on the first allowable path error TOL1 and the second allowable path error TOL2 so that the times required to pass through the smoothed section are the same. By distributing the speed in this manner, it is possible to generate a smoothed path by parallel calculation. Furthermore, in the processing from step S20 to step S23, the allowable path error distribution unit 141 distributes the allowable path error TOL so that the times required to pass through the smoothed section are the same. In this example, it distributes to the first allowable path error TOL1 and the second allowable path error TOL2. By distributing the allowable path error TOL in this manner, it is possible to generate a smoothed path by parallel calculation.

[0100] In addition, the velocity waveform of the smoothed path is the velocity waveform V defined for curved 1,1 (t), V 1,2 (t), V 2,1 (t), V 2,2 Since it coincides with (t), it becomes possible to smooth the speed taking into account the allowable jerk.

[0101] Next, the interpolation processing unit 16 performs interpolation on the movement path including the calculated corner curve, and outputs a movement command to the servo amplifier 20 (step S24). The interpolation processing unit 16 interpolates the movement path on the corner curve using the movement speed calculated using the first corner curve equation and the second corner curve equation, and interpolates the movement path on other than the corner curve using the speed after acceleration / deceleration. The movement command generated from the first corner curve equation has a constant composite velocity waveform. That is, the composite acceleration and jerk waveforms are always 0. On the other hand, the movement command generated from the second corner curve equation does not have a constant composite velocity waveform. That is, the composite acceleration and jerk waveforms include values ​​other than 0.

[0102] In one example, the interpolation processing unit 16 inserts a corner curve represented by a corner curve equation obtained by adding the first corner curve equation calculated by the first corner curve calculation unit 15-1 and the second corner curve equation calculated by the second corner curve calculation unit 15-2 into the movement path included in the movement data, thereby replacing the sharply changing path with a smooth path. Specifically, assuming Δsa1 = Δsa2 = Δsa, the start point of the corner curve is set to a position Δsa back along the path from the connection between the command blocks, and the end point of the corner curve is set to a position Δsa forward along the path from the connection between the command blocks. The interpolation processing unit 16 replaces the section between the start point and the end point of the corner curve with a path having the corner curve equation Q1(t) + Q2(t). The interpolation processing unit 16 calculates the movement speed along the corner curve according to the corner curve equation Q1(t) + Q2(t). In one example, the movement speed passing through the corner curve is calculated by time-differentiating the corner curve equation Q1(t)+Q2(t). Then, the interpolation processing unit 16 performs interpolation on the movement path including the corner curve based on the movement speed passing through the corner curve, and outputs a movement command to the servo amplifier 20.

[0103] In another example, the interpolation processing unit 16 inserts the first corner curve represented by the first corner curve equation calculated by the first corner curve calculation unit 15-1 into the movement path included in the movement data, thereby replacing the sharply changing path with a smooth path. Specifically, the first corner curve is defined as starting from a position Δsa1 back along the path from the command block join, and as ending from a position Δsa1 forward along the path from the command block join, and the first corner curve is replaced with a path having the first corner curve equation Q1(t) between the starting and ending points of the first corner curve. The interpolation processing unit 16 calculates the movement speed passing through the first corner curve according to the first corner curve equation Q1(t). In one example, the movement speed passing through the first corner curve is calculated by time-differentiating the first corner curve equation Q1(t). Then, the interpolation processing unit 16 performs interpolation on the movement path including the first corner curve based on the movement speed passing through the first corner curve, and calculates first movement command information.

[0104] The interpolation unit 16 also inserts the second corner curve represented by the second corner curve equation calculated by the second corner curve calculation unit 15-2 into the movement path included in the movement data, replacing the sharply changing path with a smooth path. Specifically, the second corner curve is started from a position Δsa2 back along the path from the command block join, and the second corner curve is ended from a position Δsa2 forward along the path from the command block join. The interpolation unit 16 replaces the path between the start and end points of the second corner curve with a path that has the second corner curve equation Q2(t). The interpolation unit 16 calculates the movement speed along the second corner curve according to the second corner curve equation Q2(t). In one example, the movement speed along the second corner curve is calculated by time-differentiating the second corner curve equation Q2(t). Then, the interpolation processing unit 16 performs interpolation on the movement path including the second corner curve based on the movement speed passing through the second corner curve, and calculates second movement command information.

[0105] Then, the interpolation processing unit 16 outputs to the servo amplifier 20 a movement command obtained by adding together the first movement command information and the second movement command information.

[0106] In the above explanation, an example was given in which the interpolation processing unit 16 uses the corner curve equation to convert into speed information, i.e., movement speed, and then interpolates, but the position information obtained from the corner curve equation may also be stored as is.

[0107] Furthermore, the interpolation processing unit 16 may further perform smoothing processing on each translation axis before outputting the movement command to the servo amplifier 20 in order to adjust the servo response. Generally, smoothing processing using a filter is used for servo response adjustment, so the movement path after servo response adjustment will turn inward relative to the corner curve equation. For this reason, the allowable path error distribution unit 141 of the movement path distribution unit 14 may distribute the allowable path error in step S21, taking the inward turn into consideration, so that the sum of the first allowable path error TOL1 and the second allowable path error TOL2 is smaller than the set allowable path error TOL. This makes it possible to generate a smoothed path with high accuracy even when an inward turn occurs due to servo delay or filter processing.

[0108] The processing in step S24 corresponds to an interpolation processing step in which interpolation is performed on the movement path based on the N number of i-th corner curve equations, and movement commands are output to each of the plurality of translation axes that move the table that supports the workpiece or the tool. This completes the processing of the numerical control method.

[0109] If there is no joint between command blocks that curve the movement path in step S17 (No in step S17), interpolation processing unit 16 interpolates the movement path and outputs a movement command to servo amplifier 20 (step S25). That is, in this case, since a corner curve has not been calculated, interpolation processing unit 16 interpolates the movement path using the post-acceleration / deceleration speed calculated by acceleration / deceleration processing unit 12. This completes the process.

[0110] FIG. 12 is a diagram illustrating an overview of the processing of the numerical control method according to the first embodiment. In FIG. 12, the horizontal axis represents time, and the vertical axis represents speed. The corner curve is inserted in a smoothing section between time ts and time te. Here, smoothing is performed using a first corner curve equation, which has an acceleration / deceleration waveform that decelerates before a command block seam and then accelerates again after passing through the command block seam, and has a jerk waveform in which the jerk is constant throughout the smoothing section. The velocity waveform is a combination of a velocity waveform in the X-axis direction and a velocity waveform in the Y-axis direction. The jerk waveform is a combination of a jerk waveform in the X-axis direction and a jerk waveform in the Y-axis direction. Furthermore, smoothing is performed using a second corner curve equation, which has an acceleration / deceleration waveform in which the sum of the velocity waveform in the X-axis direction and the velocity waveform in the Y-axis direction is constant, and in which the acceleration, which is the first derivative of the acceleration / deceleration waveform, and the jerk, which is the second derivative of the acceleration / deceleration waveform, are zero. The corner curve to be inserted is expressed by a corner curve equation that combines these.

[0111] Next, hardware for realizing the numerical control device 10 according to the first embodiment will be described. The numerical control device 10 is 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.

[0112] When the processing circuit is realized by software, the processing circuit is, for example, the control circuit shown in Fig. 13. Fig. 13 is a diagram showing an example of the configuration of the control circuit according to the first embodiment. 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 outside the control circuit 40 and provides the data to the processor 42. The output unit 44 is an interface circuit that sends data from the processor 42 or the memory 43 to outside the control circuit 40.

[0113] When the processing circuit is the control circuit 40 shown in Fig. 13, the processing unit of the numerical control device 10 is realized by software, firmware, or a combination of software and firmware. The analysis processing unit 11, the acceleration / deceleration processing unit 12, the allowable information storage unit 13, the movement path distribution unit 14, the N i-th corner curve calculation units 15-i, and the interpolation processing unit 16 shown in Fig. 1 are processing units of the numerical control device 10. Also, the analysis processing unit 11, the acceleration / deceleration processing unit 12, the allowable information storage unit 13, the movement path distribution unit 14, the first corner curve calculation unit 15-1, the second corner curve calculation unit 15-2, and the interpolation processing unit 16 shown in Fig. 4 are processing units of the numerical control device 10. The software or firmware is written as a computer program and stored in the memory 43.

[0114] The processing circuit realizes the processing section of the numerical control device 10 by having the processor 42 read and execute programs stored in the memory 43. That is, the processing circuit is provided with the memory 43 for storing programs that result in the processing of the numerical control device 10 being executed. The programs stored in the memory 43 can also be said to be programs that cause the computer to execute the procedures and methods of the numerical control device 10. The memory 43 is also used as a temporary memory when the processor 42 executes various processes.

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

[0116] When the processing circuit is a dedicated circuit, the numerical control device 10 is realized, for example, by a hardware circuit shown in Fig. 14. Fig. 14 is a diagram showing an example of the configuration of the hardware circuit according to the first embodiment.

[0117] The processing unit of the numerical control device 10 is realized by a processing circuit 45, which is a dedicated circuit. The processing circuit 45 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 that combines these. The processing unit of the numerical control device 10 may be realized by the processing circuit 45 for each function, or all functions may be realized together by the processing circuit 45. Note that the processing unit of the numerical control device 10 may be realized by combining the control circuit 40 shown in FIG. 13 and the processing circuit 45 shown in FIG. 14.

[0118] The numerical controller 10 according to the first embodiment controls a machine tool having multiple translational axes and includes an analysis processing unit 11, an acceleration / deceleration processing unit 12, an allowable path error distribution unit 141, an acceleration / deceleration waveform distribution unit 142, N i-th corner curve calculation units 15-i, and an interpolation processing unit 16. The analysis processing unit 11 outputs a movement path and a feedrate along the movement path based on a machining program MP including movement commands for the multiple translational axes. The acceleration / deceleration processing unit 12 calculates a speed obtained by accelerating and decelerating the movement path between a stopped state and a feedrate state using the feedrate and a preset acceleration, and outputs an acceleration / deceleration waveform indicating the speed after acceleration / deceleration. The allowable path error distribution unit 141 distributes the allowable path error to N i-th allowable path errors, where N is an integer equal to or greater than 2 and i is an integer between 1 and N, based on the movement path and the preset allowable acceleration and allowable jerk. The acceleration / deceleration waveform distribution unit 142 distributes the acceleration / deceleration waveform to N i-th speed waveforms based on the N i-th allowable path errors. Based on the ith allowable path error, the movement path, and the ith velocity waveform, the N ith corner curve calculation units 15-i calculate an ith corner curve equation by smoothing the movement path, with the movement path being smoothed at the joints of command blocks corresponding to the movement commands written in the machining program MP as the smoothing section. The interpolation processing unit 16 outputs movement commands for each of the multiple translation axes based on the N ith corner curve equations. This has the effect of smoothing the movement path and the velocity at the joints of each movement command while suppressing increases in processing time, even if the insertion curve used in the interpolation processing for the joints of each movement command becomes complex. Furthermore, by increasing the number of ith corner curve calculation units, a simple and smooth movement path can be generated even for more complex corner curve equations.

[0119] The acceleration / deceleration waveform distribution unit 142 distributes the speed to each of the N ith corner curve calculation units 15-i based on the N ith allowable path errors so that the time it takes to pass through the smoothing section is the same. By distributing the speed in this manner, a smoothed path can be generated by parallel calculation.

[0120] The allowable path error distribution unit 141 distributes the allowable path error to N ith allowable path errors so that the time required to pass through the smoothed section is the same. By distributing the allowable path error in this way, it is possible to generate a smoothed path by parallel calculation.

[0121] The interpolation processing unit 16 performs interpolation on the movement path based on the N ith corner curve equations and outputs movement commands to each of the multiple translation axes, and the allowable path error distribution unit 141 distributes the allowable path error to N ith allowable path errors so that the total value of the N ith allowable path errors is smaller than the set allowable path error, taking into account servo delay or the amount of inner loop due to filtering after interpolation in the interpolation processing unit 16. In this way, even when inner loop occurs due to servo delay or filtering, a smoothed path can be generated with high accuracy.

[0122] When N is 2, the i-th corner curve calculation unit 15-i includes a first corner curve calculation unit 15-1 that calculates a first corner curve equation by smoothing the movement path in the smoothing section based on the first allowable path error, the movement path, and the distributed first velocity waveform, and a second corner curve calculation unit 15-2 that calculates a second corner curve equation by smoothing the movement path in the smoothing section based on the second allowable path error, the movement path, and the distributed second velocity waveform. The acceleration / deceleration waveform distribution unit 142 distributes to the first corner curve calculation unit 15-1 a first velocity waveform in which the combined velocity obtained by combining the velocities in the directions of the multiple translation axes in the smoothing section is not constant and the combined acceleration and combined jerk are non-zero. This makes it possible to smooth the velocity at the connection points of the movement path and the movement commands while suppressing an increase in processing time, even if the insertion curve used in the interpolation process for the connection points of the movement commands in the first corner curve equation becomes complex.

[0123] The acceleration / deceleration waveform distribution unit 142 distributes to the second corner curve calculation unit 15-2 a second velocity waveform in which the combined velocity of the velocities in the directions of the multiple translation axes is a constant value in the smoothing section. This makes it possible to smooth the velocity at the connection points of the movement path and movement commands while suppressing an increase in processing time, even if the insertion curve used in the interpolation process for the connection points of each movement command in the second corner curve formula becomes complicated.

[0124] The numerical control method according to the first embodiment is a numerical control method for controlling a machine tool having multiple translational axes, and includes an analysis process, an acceleration / deceleration process, an allowable path error distribution process, an acceleration / deceleration waveform distribution process, a corner curve calculation process, and an interpolation process. The analysis process outputs a movement path and a feedrate along the movement path based on a machining program MP including movement commands for the multiple translational axes. The acceleration / deceleration process calculates a speed obtained by accelerating and decelerating the movement path between a stop state and a feedrate state using the feedrate and a preset acceleration, and outputs an acceleration / deceleration waveform indicating the speed after acceleration / deceleration. The allowable path error distribution process distributes the allowable path error to N i-th allowable path errors, where N is an integer equal to or greater than 2 and i is an integer from 1 to N, based on the movement path and preset allowable acceleration and allowable jerk. The acceleration / deceleration waveform distribution process distributes the acceleration / deceleration waveform to N i-th speed waveforms based on the N i-th allowable path errors. In the corner curve calculation process, an i-th corner curve equation is calculated by smoothing the movement path based on the i-th allowable path error, the movement path, and the i-th speed waveform, with the movement path to be smoothed at the joints of command blocks corresponding to the movement commands written in the machining program MP as a smoothing section. In the interpolation processing process, movement commands are output for each of the multiple translation axes based on the N i-th corner curve equations. In the corner curve calculation process, the N i-th corner curve equations are calculated in parallel. This has the effect of preventing an increase in processing time while smoothing the movement path and the speed at the joints of each movement command, even if the insertion curve used in the interpolation processing for the joints of each movement command becomes complex. Furthermore, by increasing the number of i-th corner curve calculation sections, a simple and smooth movement path can be generated even for more complex corner curve equations.

[0125] The configurations shown in the above embodiments are merely examples, and may be combined with other known technologies, and parts of the configurations may be omitted or modified without departing from the spirit of the invention. [Explanation of symbols]

[0126] 10 Numerical control device, 11 Analysis processing unit, 12 Acceleration / deceleration processing unit, 13 Tolerance information storage unit, 14 Movement path distribution unit, 15-1 First corner curve calculation unit, 15-2 Second corner curve calculation unit, 15-i Ith corner curve calculation unit, 15-N Nth corner curve calculation unit, 16 Interpolation processing unit, 20 Servo amplifier, 20X X-axis amplifier, 20Y Y-axis amplifier, 20Z Z-axis amplifier, 141 Tolerance path error distribution unit, 142 Acceleration / deceleration waveform distribution unit.

Claims

1. A numerical control device for controlling a machine tool having a plurality of translation axes, an analysis processing unit that outputs a movement path and a feed rate on the movement path based on a machining program including movement commands for the plurality of translation axes; an acceleration / deceleration processing unit that calculates a speed obtained by accelerating or decelerating the movement path between a stopped state and a state at the feed speed based on the feed speed and a preset acceleration, and outputs an acceleration / deceleration waveform that indicates the speed after acceleration / deceleration; an allowable path error distribution unit that distributes the allowable path error into N i-th allowable path errors based on the movement path and preset allowable acceleration and allowable jerk, where N is an integer equal to or greater than 2 and i is an integer from 1 to N; an acceleration / deceleration waveform distribution unit that distributes the acceleration / deceleration waveform into N i-th velocity waveforms based on the N i-th allowable path errors; N i-th corner curve calculation units that calculate an i-th corner curve equation obtained by smoothing the movement path, with the movement path being smoothed at a joint between command blocks corresponding to the movement command described in the machining program as a smoothing section, based on the i-th allowable path error, the movement path, and the i-th speed waveform; an interpolation processing unit that outputs a movement command to each of the plurality of translation axes based on the N number of i-th corner curve equations; A numerical control device comprising:

2. 2. The numerical control device according to claim 1, wherein the acceleration / deceleration waveform distribution unit distributes speeds to the N i-th corner curve calculation units based on the N i-th allowable path errors so that the times required to pass through the smoothing section are the same.

3. 2. The numerical control device according to claim 1, wherein the allowable path error distribution unit distributes the allowable path error to N number of the i-th allowable path errors so that the time required to pass through the smoothing section is the same.

4. the interpolation processing unit performs interpolation on the movement path based on the N i-th corner curve equations, and outputs movement commands to each of the plurality of translation axes; 2. The numerical control device according to claim 1, wherein the allowable path error distribution unit distributes the allowable path error to N of the i-th allowable path errors so that the total value of the N of the i-th allowable path errors is smaller than the set allowable path error, taking into account servo delay or an inner loop amount of filtering processing after the interpolation in the interpolation processing unit.

5. When N is set to 2, the i-th corner curve calculation unit calculates a first corner curve calculation unit that calculates a first corner curve equation obtained by smoothing the movement path in the smoothing section based on a first allowable path error, the movement path, and the distributed first speed waveform; and a second corner curve calculation unit that calculates a second corner curve equation obtained by smoothing the movement path in the smoothing section based on a second allowable path error, the movement path, and the distributed second speed waveform; 5. The numerical control device according to claim 1, wherein the acceleration / deceleration waveform distribution unit distributes to the first corner curve calculation unit the first velocity waveform in which a composite velocity obtained by combining velocities in the directions of the plurality of translation axes does not have a constant value in the smoothing section, and a composite acceleration and a composite jerk have values ​​other than 0.

6. 6. The numerical control device according to claim 5, wherein the acceleration / deceleration waveform distribution unit distributes to the second corner curve calculation unit the second velocity waveform in which a combined velocity obtained by combining velocities in the directions of the plurality of translation axes becomes a constant value in the smoothing section.

7. 1. A numerical control method for controlling a machine tool having multiple translation axes, comprising: an analysis processing step of outputting a movement path and a feed rate on the movement path based on a machining program including movement commands for the plurality of translation axes; an acceleration / deceleration processing step of calculating a speed obtained by accelerating or decelerating the movement path between a stopped state and a state at the feed speed based on the feed speed and a preset acceleration, and outputting an acceleration / deceleration waveform indicating the speed after acceleration / deceleration; an allowable path error distribution step of distributing the allowable path error into N i-th allowable path errors based on the movement path and preset allowable acceleration and allowable jerk, where N is an integer equal to or greater than 2 and i is an integer from 1 to N; an acceleration / deceleration waveform distribution step of distributing the acceleration / deceleration waveform into N i-th velocity waveforms based on the N i-th allowable path errors; a corner curve calculation step of calculating an i-th corner curve equation obtained by smoothing the movement path, with the movement path being smoothed at a joint between command blocks corresponding to the movement command described in the machining program as a smoothing section, based on the i-th allowable path error, the movement path, and the i-th speed waveform; an interpolation processing step of outputting a movement command for each of the plurality of translation axes based on the N number of i-th corner curve equations; Including, A numerical control method, characterized in that in the corner curve calculation step, N number of the i-th corner curve equations are calculated in parallel.

Citation Information

Patent Citations

  • Multi-cycle optimal corner interpolation method based on straight line segments and arc paths

    CN111736532A

  • Operation command generating method for industrial machine

    JP1999194813A

  • Numerical control method

    JP2001051708A

  • Numerical control device and control method

    JP2016133987A

  • Numerical control device

    WO2016024338A1