Numerical control device and storage medium
By calculating the composite velocity and the pre-correction velocity, the acceleration and deceleration methods of the numerical control device are corrected, solving the problems of movement path deviation and vibration, and achieving precise machining path control.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- FANUC LTD
- Filing Date
- 2022-03-18
- Publication Date
- 2026-05-29
AI Technical Summary
Existing numerical control devices are prone to causing deviations in the movement path of objects during acceleration and deceleration, and may require excessive speed and acceleration, leading to vibration.
By employing a composite speed calculation unit and a pre-correction speed calculation unit, the acceleration and deceleration mode of the drive shaft is corrected by calculating the composite speed and the pre-correction speed, so that it initially accelerates from zero and finally decelerates to zero, thereby suppressing errors in the movement path.
It effectively suppressed errors in the movement path, while avoiding excessive speed and acceleration, thus improving machining accuracy.
Smart Images

Figure CN116917822B_ABST
Abstract
Description
Technical Field
[0001] The present invention relates to a numerical control device and a storage medium for non-temporarily storing numerical control programs. Background Technology
[0002] The numerical control (NCC) device controls the machining apparatus based on a machining program that represents the movement path of the object (workpiece, tool, etc.) through multiple specified coordinates and movement speeds. The NCC device analyzes the machining program, performs interpolation processing to calculate the required speed or position for each drive axis of the machining apparatus at each moment, and drives each drive axis based on the interpolated information.
[0003] Machining programs are generated without considering the characteristics of the machining equipment. Therefore, when performing the actions described in the machining program, large speeds or accelerations are required, potentially exceeding the capabilities of the drive shafts or causing vibrations. Consequently, in numerical control devices, acceleration / deceleration processes are sometimes performed for each block of movement between two consecutive specified coordinates in the machining program, correcting the movement speed of each block by initially accelerating from zero and finally decelerating to zero. Typically, in the acceleration / deceleration process, the speed is set to zero at the start of the block, increased with constant acceleration, and then decreased with constant acceleration before the end of the block to make the speed zero. In this case, after each block begins, the drive shaft is driven by a speed obtained by adding the speed data used to accelerate from zero to the speed of that block and the speed data used to decelerate to a stop at the end of the previous block.
[0004] However, if such acceleration / deceleration is performed, the movement path of the object deviates from the path specified in the machining program. In particular, it is known that when the object is moved in a manner that draws an arc, by performing acceleration / deceleration, the object passes inside the path specified in the machining program. Therefore, it has been proposed to reduce the error of the movement path by gradually decreasing the time constant (acceleration) of acceleration / deceleration at the beginning of the block specifying the arc-shaped movement path (see, for example, Patent Document 1).
[0005] Existing technical documents
[0006] Patent documents
[0007] Patent Document 1: Japanese Patent Application Publication No. 3-292508 Summary of the Invention
[0008] The problem that the invention aims to solve
[0009] If the acceleration / deceleration time constant is reduced at the beginning of a block, then when adding the speed data used for acceleration after the start of the block to the speed used for deceleration at the end of the previous block, it may require a speed exceeding the drive shaft's capacity or produce excessive acceleration that causes vibration. Therefore, a technique is desired that can suppress errors in the movement path without requiring excessive speed and acceleration.
[0010] Methods for solving problems
[0011] According to one aspect of this disclosure, a numerical control device controls a machining apparatus having multiple drive axes that drive the object, based on a machining program comprising multiple instruction blocks that respectively determine a specified speed of the object. The numerical control device includes: a composite speed calculation unit that calculates, for at least one curve block of the multiple instruction blocks that specifies curve movement, a composite speed after correction in such a way that the specified speed is initially accelerated from zero by a time constant before being reduced to zero by the time constant before being reduced to zero; and a pre-correction speed calculation unit that calculates the time-based pre-correction speed of each drive axis that realizes the composite speed.
[0012] One aspect of this disclosure relates to a numerical control program for controlling a machining apparatus having multiple drive axes that drive the object, according to a machining program comprising multiple instruction blocks that respectively determine a specified speed of the object. The numerical control program includes: a composite speed calculation control unit that calculates, for at least a curve block of the multiple instruction blocks that specifies curve movement, a composite speed corrected in such a way that the specified speed initially starts from zero before a time constant is accelerated and finally decelerated to zero by the time constant; and a pre-correction speed calculation control unit that calculates the time-based pre-correction speed of each drive axis that realizes the composite speed.
[0013] Invention Effects
[0014] According to the present invention, a numerical control device and a numerical control program can be provided that can suppress errors in the movement path without requiring excessive speed and acceleration. Attached Figure Description
[0015] Figure 1 This is a block diagram illustrating the structure of a numerical control device according to one embodiment of the present disclosure.
[0016] Figure 2 This is a diagram illustrating an example of a movement path determined by a processing procedure.
[0017] Figure 3 It means Figure 1 The numerical control device is designed to achieve Figure 2 A graph of various speeds calculated based on the movement path.
[0018] Figure 4 It means Figure 2 The graph shows the movement path, the movement path with the speed correction before calculating the curve block, and the movement path with the speed correction after calculating the curve block.
[0019] Figure 5 It is a graph showing the time variation of the moving speed when the pre-correction speed is calculated and the post-correction speed is calculated, based on the machining program. Detailed Implementation
[0020] Hereinafter, embodiments of the present invention will be described with reference to the accompanying drawings. Figure 1 This is a block diagram illustrating the structure of a numerical control device 10 according to one embodiment of the present disclosure.
[0021] The numerical control unit 10 controls a machining apparatus with multiple drive axes that drive objects, based on a machining program containing multiple instruction blocks that each specify a speed for an object (e.g., a tool, workpiece, etc.). Specifically, the numerical control unit 10 inputs instruction values to the drive circuits (servo drives) 20 that drive the multiple drive axes of the machining apparatus. In the machining program, the instruction blocks typically determine the object's movement path by specifying the coordinates of the start and end points of the movement path and the movement speed.
[0022] The numerical control device 10 can be implemented, for example, by executing the numerical control program of this disclosure on a computer device having a CPU, memory, input / output interface, etc. The numerical control device 10 includes a program loading unit 11, a preprocessing unit 12, a block discrimination unit 13, a reference speed calculation unit 14, a post-correction speed calculation unit 15, a composite speed calculation unit 16, a pre-correction speed calculation unit 17, and an output speed calculation unit 18. These structural elements are elements that categorize the functions of the numerical control device 10, and may also be elements that cannot be clearly distinguished in the physical structure and program structure.
[0023] The program loading unit 11 loads the processing program stored in the storage medium into the job memory according to each instruction block. The program loading unit 11 can also preload the instruction blocks to be executed later within the capacity allowed by the storage area.
[0024] When the instruction block to be processed continuously in the machining program specifies a stepped speed change at the beginning and end, the preprocessing unit 12 modifies the content of the instruction block to make the speed change within the allowable acceleration range.
[0025] The block discrimination unit 13 determines whether the instruction block is a straight block for linear movement of the specified object or a curve block for curved movement of the specified object.
[0026] The reference speed calculation unit 14 calculates the ideal speed value, or reference speed, of each drive shaft for achieving the specified speed for the straight block over time. That is, the reference speed calculation unit 14 calculates the ideal speed value of each drive shaft over time between the start and end points of the movement path of the object determined by the command block (reproducing the movement speed faithfully to the command block). Therefore, the reference speed calculation unit 14 performs an interpolation operation on the speed command value between the start and end points of the command block.
[0027] The post-correction speed calculation unit 15 calculates the post-correction speed after the reference speed calculated by the reference speed calculation unit 14 is initially zero, then the post-correction time constant is accelerated, and finally the post-correction time constant is decelerated back to zero. Therefore, the post-correction speed sequentially has an acceleration range where the speed gradually increases, a constant speed range where the speed is constant, and a deceleration range where the speed gradually decreases. The post-correction time constant is preset according to the characteristics of the machining equipment, etc.
[0028] Preferably, the post-correction speed calculation unit 15 sets the post-correction speed to accelerate from the starting time of the reference speed and decelerate from the ending time of the reference speed. That is, the preferred post-correction speed calculation unit 15 determines the initial time change of the post-correction speed in the instruction block by correcting the time change of the reference speed by setting the speed of the drive shaft at the starting time of the reference speed to zero and starting the drive shaft from the starting time of the reference speed. Furthermore, the preferred post-correction speed calculation unit 15 corrects the time change of the reference speed by using the speed of the drive shaft at the starting time of the reference speed as the speed calculated by the reference speed calculation unit 14, and by decelerating the drive shaft from the starting time of the reference speed (adding speed changes after the ending time), thereby determining the final time change of the post-correction speed in the instruction block. As an example, such a post-correction speed can be calculated as the average value of the reference speed from a time earlier or later than that time to that time.
[0029] The composite speed calculation unit 16 calculates the composite speed for the curve block by correcting the time constant before accelerating the specified speed from zero and then decelerating it back to zero. That is, before calculating the speed of the drive shaft at each moment, the composite speed calculation unit 16 corrects the moving speed of the object on which the speed of the drive shaft at each moment is based. This composite speed calculation unit 16 accelerates and decelerates along the movement path specified by the curve block. Specifically, the composite speed calculation unit 16 calculates the acceleration and deceleration of the specified speed as a change in angular velocity.
[0030] The composite speed calculation unit 16 can set different values for the pre-correction time constant of the acceleration zone and the pre-correction time constant of the deceleration zone, or it can set different values for the pre-correction time constant for each instruction block. However, when the previous instruction block is a straight block, the composite speed calculation unit 16 preferably makes the pre-correction time constant equal to the post-correction time constant applied to the previous instruction block. Thus, the initial deceleration of the curved block's movement speed by the composite speed calculation unit 16 is offset by the final deceleration portion added by the post-correction speed calculation unit 15 in the speed change of the previous straight block. Therefore, no deformation speed change occurs at the boundary between the straight block and the curved block, thus suppressing vibrations of the processing device. Furthermore, when the curved blocks are continuous, and the movement direction of the end point of the preceding curved block is the same as the movement direction of the starting point of the following curved block, the pre-correction time constant of the deceleration zone of the preceding curved block and the pre-correction time constant of the acceleration zone of the following curved block can be zero.
[0031] The pre-correction speed calculation unit 17 calculates the speed of each drive shaft at each time step of the composite speed calculated by the composite speed calculation unit 16, which is the pre-correction speed. In this way, based on the composite speed after correcting the speed change based on the instruction block to not produce excessive speed change near the start and end points, the speed change between the start and end points is interpolated, thereby reducing the deviation of the actual object's movement path from the movement path determined by the instruction block.
[0032] The output speed calculation unit 18 calculates the output speed by adding the post-correction speed calculated by the post-correction speed calculation unit 15 to the pre-correction speed calculated by the pre-correction speed calculation unit 17. That is, the output speed calculation unit 18 makes the end time of the previous instruction block coincide with the start time of the next instruction block, and calculates the output speed specifying the time change of the speed of each drive axis by connecting the post-correction speeds or pre-correction speeds of each instruction block. Therefore, it is possible to input instruction values that move the object relatively accurately along a complex movement path determined by multiple instruction blocks to the drive circuit 20 without requiring excessively high speeds and accelerations.
[0033] As can be seen from the above description, the numerical control program of this disclosure for implementing the numerical control device 10 includes a program loading control unit for implementing the program loading unit 11, a preprocessing control unit for implementing the preprocessing unit 12, a block discrimination control unit for implementing the block discrimination unit 13, a reference speed calculation control unit for implementing the reference speed calculation unit 14, a post-correction speed calculation control unit for implementing the post-correction speed calculation unit 15, a composite speed calculation control unit for implementing the composite speed calculation unit 16, a pre-correction speed calculation control unit for implementing the pre-correction speed calculation unit 17, and an output speed calculation control unit for implementing the output speed calculation unit 18. The numerical control program of this disclosure can be provided in a state where it is stored in a storage medium that non-temporarily stores the program.
[0034] The calculation of the output speed from the machining program in the numerical control device 10 is explained in detail. As an example, for a machining program such as... Figure 2 The following description illustrates a configuration where a first straight block N1, a curved block N2, and a second straight block N3 are sequentially arranged. In this example, the processing apparatus has an X-direction drive axis that moves the object in the X direction and a Y-direction drive axis that moves the object in the Y direction, thus moving the object in the XY plane.
[0035] Figure 3 against Figure 2 The first straight block N1, the curved block N2, and the second straight block N3 show the specified speed for each instruction block, the combined speed for each drive shaft, the pre-correction speed, the reference speed, the post-correction speed, and the output speed. Furthermore, the markings in the figure indicate the points where the speed values are determined.
[0036] In the illustrated example, the specified speeds (absolute values of the movement speeds) of the first straight block N1, the curved block N2, and the second straight block N3 remain unchanged, only their orientations change. Specifically, the first straight block N1 specifies constant speed movement in the X direction, the curved block N2 specifies constant speed movement along an arc with a central angle of 90°, and the second straight block N3 specifies constant speed movement in the Y direction.
[0037] The reference speed calculation unit 14 decomposes the speeds of the first linear block N1 and the second linear block N3 into X-direction components and Y-direction components, respectively, and calculates (interpolates) the values of the X-direction and Y-direction components at each time step. This yields continuous data of the speed of the X-direction drive axis at each moment, i.e., the X-axis reference speed, and continuous data of the speed of the Y-direction drive axis at each moment, i.e., the Y-axis reference speed. The first linear block N1 is represented by an X-axis reference speed with a certain value and a Y-axis reference speed with no value (the speed is always zero). The second linear block N3 is represented by an X-axis reference speed with no value and a Y-axis reference speed with a certain value.
[0038] The post-correction speed calculation unit 15 corrects the X-axis reference speed and Y-axis reference speed by accelerating and decelerating them with a predetermined post-correction time constant, thereby calculating the X-axis post-correction speed and Y-axis post-correction speed. In the illustrated example, the X-axis and Y-axis post-correction speeds accelerate from the starting point of the X-axis and Y-axis reference speeds and decelerate from the ending point of the X-axis and Y-axis reference speeds. As a result, the first straight block N1 is represented by an X-axis post-correction speed with a trapezoidal speed change and a Y-axis post-correction speed with no value. The second straight block N3 is represented by an X-axis post-correction speed with no value and a Y-axis post-correction speed with a trapezoidal speed change.
[0039] The synthesis speed calculation unit 16 corrects the specified speed of curve block N2, calculating the synthesis speed from an initial acceleration to zero with a correction time constant, and finally decelerating to zero with a correction time constant. Thus, curve block N2 is represented by the synthesis speed, which is a trapezoidal shape representing the absolute value of the speed change. The initial correction time constant of curve block N2 is set to be equal to the subsequent correction time constant applied to the previous first straight line block N1.
[0040] The forward correction speed calculation unit 17 calculates the speeds of the X-axis and Y-axis drive axes at each moment that enable the composite speed, namely the X-axis forward correction speed and the Y-axis forward correction speed. Observing from the center of the path of curve block N2, if the angle between the position of the object at that moment and the starting position is set as θ, then the X-axis forward correction speed is obtained by multiplying the composite speed by sinθ, and the Y-axis forward correction speed is obtained by multiplying the composite speed by cosθ.
[0041] The output speed calculation unit 18 calculates the X-axis output speed, which becomes the motion command value of the X-direction drive axis, by adding the X-axis backward correction speed of the first straight block N1, the X-axis forward correction speed of the curved block N2, and the X-axis backward correction speed of the second straight block N3. It also calculates the Y-axis output speed, which becomes the motion command value of the Y-direction drive axis, by adding the Y-axis backward correction speed of the first straight block N1, the Y-axis forward correction speed of the curved block N2, and the Y-axis backward correction speed of the second straight block N3.
[0042] Since the deceleration interval of the X-axis backward correction speed of the first straight block N1 overlaps with the acceleration interval of the X-axis forward correction speed of the curved block N2 in time, the speed obtained by adding the X-axis backward correction speed of the first straight block N1 and the X-axis forward correction speed of the curved block N2 within this time range becomes the X-axis output speed. Similarly, the deceleration interval of the X-axis forward correction speed of the curved block N2 is added to the acceleration interval of the X-axis backward correction speed of the second straight block N3. Since the speed increase used to add the deceleration interval and the speed decrease used to form the acceleration interval cancel each other out, the X-axis output speed becomes a continuous increase or decrease without excessive speed or acceleration, thus suppressing errors in the object's movement path. In addition, regarding the Y-axis output speed, the same method applies as the X-axis output speed: the deceleration interval and acceleration interval of the Y-axis backward correction speed and the Y-axis forward correction speed are added together to obtain a continuous increase or decrease without excessive speed or acceleration, thus suppressing errors in the object's movement path.
[0043] Figure 4 It shows in Figure 2The path of the object specified in the machining program, the path according to the action command value of the numerical control device 10 (the action command value when the forward correction speed is calculated by the composite speed calculation unit 16 and the forward correction speed calculation unit 17 for curve block N2), and the path according to the action command value when the backward correction speed is also calculated by the reference speed calculation unit 14 and the backward correction speed calculation unit 15 for curve block N2. Additionally, Figure 5 Indicates and Figure 4 The change in the movement speed of the corresponding object over time.
[0044] The calculated movement path (solid line) for the initial correction speed and the calculated movement path (double-dotted line) both begin acceleration in the Y-axis direction at the starting point A of the arc movement on the movement path (single-dotted line) specified in the machining program. Acceleration in the Y-axis direction is completed at points C1 and C2 respectively. The acceleration distance L1 when calculating the initial correction speed becomes shorter than the acceleration distance L2 when calculating the subsequent correction speed. Therefore, the velocity gradient when calculating the initial correction speed is greater than the velocity gradient when calculating the subsequent correction speed.
[0045] As described above, after calculating the combined speed of the acceleration and deceleration intervals at a specified speed on the curve block, the numerical control device 10 calculates the speed of each axis at each moment, i.e., the forward correction speed, thereby suppressing the error of the movement path and not requiring excessive speed and acceleration.
[0046] The embodiments of the numerical control device and numerical control program involved in this disclosure have been described above. However, the numerical control device and numerical control program involved in this disclosure are not limited to the described embodiments. In addition, the effects described in the embodiments are merely examples of the best effects produced by the numerical control device and numerical control program involved in this disclosure, and the effects of the numerical control device and numerical control program involved in this disclosure are not limited to the effects described in the described embodiments.
[0047] In the numerical control device and numerical control program disclosed herein, the curve block is not limited to the block that determines the arc. For example, it can also determine the block of two-dimensional curves such as elliptical curves, spiral curves, and involute curves, and three-dimensional curves such as helical curves.
[0048] The numerical control device and numerical control program disclosed herein can also be configured to not distinguish between curve blocks and straight blocks, and the straight blocks are also processed in the synthesis speed calculation unit and the pre-correction speed calculation unit to calculate the pre-correction speed.
[0049] Explanation of reference numerals in the attached figures
[0050] 10 Numerical Control Devices
[0051] 11 Program Input Section
[0052] 12 Pre-processing Section
[0053] 13 discriminant units
[0054] 14. Reference Speed Calculation Unit
[0055] 15 Post-Correction Speed Calculation Department
[0056] 16. Synthesis speed calculation unit.
[0057] 17. Corrected speed calculation department
[0058] 18 Output Speed Calculation Unit
[0059] 20. Drive circuit.
Claims
1. A numerical control device, comprising a machining program including a plurality of instruction blocks that respectively determine a specified speed of an object, controlling a machining apparatus having a plurality of drive axes that drive said object, characterized in that, The numerical control device includes: The synthesis speed calculation unit calculates, for at least one of the plurality of instruction blocks, a synthesis speed that is corrected such that the specified speed is initially accelerated from zero by a time constant before correction and finally decelerated to zero by the time constant before correction. The pre-correction speed calculation unit calculates the time-based pre-correction speed of each drive shaft that achieves the combined speed; The block discrimination unit determines whether the instruction block is the curve block or a straight block that specifies linear movement; The reference speed calculation unit calculates the reference speed of each drive shaft that achieves the specified speed for the linear block according to time. The post-correction speed calculation unit calculates the post-correction speed by accelerating the reference speed from zero with a post-correction time constant and then decelerating it to zero with the post-correction time constant. as well as The output speed calculation unit calculates the output speed obtained by adding the pre-correction speed and the post-correction speed.
2. The numerical control device according to claim 1, characterized in that, The synthesis speed calculation unit determines that the synthesis speed should accelerate from the starting point of the curve block and decelerate from the ending point of the curve block. The post-correction speed calculation unit determines the post-correction speed to be accelerated from the starting moment of the straight block and decelerated from the ending moment of the straight block.
3. The numerical control device according to claim 1 or 2, characterized in that, When the preceding instruction block is the linear block, the synthesis speed calculation unit makes the pre-correction time constant equal to the post-correction time constant applied to the preceding linear block.
4. A storage medium for non-temporarily storing a numerical control program for controlling a machining apparatus having multiple drive axes that drive said object, according to a machining program comprising multiple instruction blocks that respectively determine a specified speed of said object, characterized in that, The numerical control program has the following features: The synthesis speed calculation and control unit calculates, for at least one of the plurality of instruction blocks, a synthesis speed that is corrected in such a way that the specified speed is initially accelerated from zero by a time constant before correction and finally decelerated to zero by the time constant before correction. The pre-correction speed calculation and control unit calculates the time-based pre-correction speed of each drive shaft to achieve the synthesized speed. The block discrimination control unit determines whether the instruction block is the curve block or a straight block that specifies linear movement; The reference speed calculation and control unit calculates the reference speed of each drive shaft according to time for the linear block to achieve the specified speed; The post-correction speed calculation and control unit calculates the post-correction speed by accelerating the reference speed from zero with a post-correction time constant and then decelerating it to zero with the post-correction time constant. as well as The output speed calculation and control unit calculates the output speed obtained by adding the pre-correction speed and the post-correction speed.