NUMERICAL CONTROLLER
A numerical controller, which reciprocates a parent axis and a child axis according to a predetermined synchronization ratio by multi-axis synchronization control, is provided with a command decoding unit configured to decode a command including a plurality of command blocks, a distribution processing unit configured to generate a distribution movement amount, which is an amount of movement for each control period of a motor, based on the command blocks, an end-point correction unit configured to perform first correction processing for correcting the distribution movement amount so that a feedback position of the child axis reaches an end point, which is a turning point of the reciprocating motion, and second correction processing for recovering synchronization destroyed by the first correction processing, and a motor control unit configured to drivingly control the motor based on the corrected distribution movement amount.
Latest Fanuc Corporation Patents:
The present application claims priority to Japanese Application Number 2018-185850 filed Sep. 28, 2018, the disclosure of which is hereby incorporated by reference herein in its entirety.
BACKGROUND OF THE INVENTION Field of the InventionThe present invention relates to a numerical controller, and more particularly, to a numerical controller configured to correct a command for an end point in a reciprocating motion.
Description of the Related ArtA numerical controller having a multi-axis synchronization control function is known in the art. The multi-axis synchronization control is a control system for settling the movement amount of a child axis based on that of a parent axis. According to the multi-axis synchronization control, a trajectory in the shape of a triangle wave, such as the command waveform shown in
If the child axis makes a reciprocating motion under the multi-axis synchronization control, however, a phenomenon may sometimes occur such that the child axis cannot reach an end point, as indicated by the feedback waveform of
Presumably, this cause can be overcome by activating feedforward control. Since the child axis is synchronous with the parent axis in the multi-axis synchronization control, however, acceleration and deceleration are not performed at the end point. If the feedforward control is activated during the reciprocating motion, therefore, too much shock is caused, so that the activation is not realistic.
Methods described in Japanese Patent Application Laid-Open No. 5-173619 and Japanese Patent No. 5931289 are intended to solve similar problems in the multi-axis synchronization control.
In the methods described in Japanese Patent Application Laid-Open No. 5-173619 and Japanese Patent No. 5931289, however, a movement operation must be repeated as a correction amount is calculated by trial and error. Thus, an appropriate correction is not performed initially. Accordingly, the non-woven fabric wrapper, for example, suffers such a problem that it cannot obtain a uniform band shape in an initial stage.
Moreover, Japanese Patent Application Laid-Open No. 5-173619 and Japanese Patent No. 5931289 do not disclose any specific methods for recovering synchronization between parent and child axes after correction.
SUMMARY OF THE INVENTIONThe present invention has been made to solve the above problems and has an object to provide a numerical controller configured to correct a command for an end point in a reciprocating motion.
A numerical controller according to one embodiment of the present invention is a numerical controller which reciprocates a parent axis and a child axis according to a predetermined synchronization ratio by multi-axis synchronization control, and comprises a command decoding unit configured to decode a command including a plurality of command blocks, a distribution processing unit configured to generate a distribution movement amount, which is an amount of movement for each control period of a motor, based on the command blocks, an end-point correction unit configured to perform first correction processing for correcting the distribution movement amount so that a feedback position of the child axis reaches an end point, which is a turning point of the reciprocating motion, and second correction processing for recovering synchronization destroyed by the first correction processing, and a motor control unit configured to drivingly control the motor based on the corrected distribution movement amount.
In the numerical controller according to the one embodiment of the present invention, the end-point correction unit adds, in the first correction processing, an additional movement amount (Ac) of the child axis calculated based on the child-axis feedback position and the end point to a remaining movement amount of the child axis in the command block being executed.
In the numerical controller according to the one embodiment of the present invention, the end-point correction unit corrects the synchronization ratio based on an additional movement amount (Δc) of the child axis in the first correction processing.
In the numerical controller according to the one embodiment of the present invention, the end-point correction unit subtracts, in the second correction processing, an additional movement amount (Δp) of the parent axis calculated based on the additional movement amount (Δc) of the child axis and the synchronization ratio from a remaining movement amount of the parent axis in the next command block.
In the numerical controller according to the one embodiment of the present invention, the end-point correction unit changes the synchronization ratio in the next command block for a predetermined period of time in the second correction processing.
According to the present invention, there can be provided a numerical controller configured to correct a command for an end point in a reciprocating motion.
The above and other objects and features of the present invention will be obvious from the ensuing description of embodiments with reference to the accompanying drawings, in which:
A numerical controller 1 according to Embodiment 1 moves the feedback position of a child axis to an end point by the following method.
(1) An amount of movement before the child-axis feedback position reaches the end point is calculated at the time of final distribution in a command block.
(2) The command block is extended for the amount of movement calculated in (1) above and synchronization is continued during the movement.
(3) After (2) above, acceleration is performed in a first fixed period of the next block for a turnaround, whereby a position delayed relative to a parent axis is recovered.
The CPU 11 is a processor for generally controlling the numerical controller 1. The CPU 11 reads out a system program stored in the ROM 12 via the bus 10 and controls the entire numerical controller 1 according to the system program.
The ROM 12 is previously loaded with system programs for executing various controls of industrial machines such as a non-woven fabric wrapper and a machine tool.
The RAM 13 temporarily stores temporary calculation data and display data, data and programs input by an operator through the input/output device 60, and the like.
The non-volatile memory 14 is backed by, for example, a battery (not shown) so that its storage state can be maintained even when the numerical controller 1 is switched off. The non-volatile memory 14 stores data, programs, and the like input through the input/output device 60. The programs and data stored in the non-volatile memory 14 may be developed in the RAM 13 during execution and use.
The axis control circuit 16 controls the motion axes of the industrial machines. The axis control circuit 16 receives a movement command amount for each axis output by the CPU 11 and outputs a movement command for the motion axes to the servo amplifier 17.
On receiving the axis movement command output by the axis control circuit 16, the servo amplifier 17 drives the servomotor 50.
The servomotor 50 is driven by the servo amplifier 17 to move the motion axes of the industrial machines. The servomotor 50 typically has a position/speed detector built-in. The position/speed detector outputs a position/speed feedback signal, and position/speed feedback control is performed as this signal is fed back to the axis control circuit 16.
In
The input/output device 60 is a data input/output device equipped with a display, hardware keys, and the like, and is typically an MDI or control panel. The input/output device 60 displays information received from the CPU 11 through the interface 18 on the display. The input/output device 60 delivers commands and data input from the hardware keys and the like to the CPU 11 through the interface 18.
The command decoding unit 101 reads a command (typically, an NC program, etc.) including a plurality of command blocks from, for example, the non-volatile memory 14 onto the RAM 13 and analyzes it.
Based on the result of the analysis by the command decoding unit 101, the distribution processing unit 102 creates a distribution movement amount, which is an amount of movement for each control period of the servomotor 50 to be controlled.
The end-point correction unit 103 corrects the distribution movement amount created by the distribution processing unit 102 and generates a distribution movement amount such that the child-axis feedback position reaches the end point. The corrected distribution movement amount is output to the motor control unit 104.
The motor control unit 104 drivingly controls the servomotor 50 based on the corrected distribution movement amount input from the end-point correction unit 103.
The operation of end-point correction unit 103 for implementing (1) to (3) above will be described with reference to
The following is a specific description of the correction processing (a), that is, correction processing for causing the child axis to reach the end. This processing is performed immediately before the child axis reaches the end.
[1] An amount of movement (Δc) on a command additionally required for the current feedback position of the child axis to reach the end is calculated on termination of commands in an execution block N. A method for calculating the movement amount Δc will be described later.
[2] A parent-axis movement amount (Δp) is calculated based on a synchronization ratio (α=child-axis movement amount/parent-axis movement amount) of the execution block N and the movement amount Δc calculated in [1] above.
[3] The movement amounts Δc and Δp calculated in [1] and [2] above are reflected in (or added to) the remaining movement amount in the execution block N. Specifically, the remaining movement amounts in the command block N currently being executed are changed as follows:
- remaining movement amount of child axis=current remaining movement amount of child axis+Δc, and
- remaining movement amount of parent axis=current remaining movement amount of parent axis+Δp.
The following is a specific description of the correction processing (b), that is, processing for recovering the synchronous relationship. This processing is performed immediately after the end is reached by the child axis.
[1] After the end is reached by the child axis, Δp is subtracted from the remaining movement amount of the parent axis in an execution block N+1. Specifically, the remaining movement amount in the execution block N+1 after a turnaround from the arrival at the end point (with the child axis moved in the opposite direction) is changed as follows:
- remaining movement amount of child axis=command movement amount of child axis in next block, and
- remaining movement amount of parent axis=command movement amount of parent axis in next block−Δp.
[2] After the end is reached by the child axis, the child axis is located in a position delayed relative to the position of the parent axis by (2×Δc). In order to recover this delay, a child-axis movement amount based on the control period calculated from the child- and parent-axis movement amounts in the execution block N+1 is corrected (or accelerated) for a period of time specified by a parameter or the like. Specifically, the synchronization ratio is changed for a fixed period of time so that the delay is recovered.
The method for calculating the movement amount Δc will be described with reference to
[1] It is assumed that the command block N+1 (with the child axis moved in the opposite direction relative to the command block N) is started (i.e., Δc=0) in the next control period.
[2] Predicted speed feedback values (predicted actual speeds) for the next and subsequent periods are calculated based on the assumed movement amount Δc, a speed command, a position loop gain, and a position feedback value (actual position) at the time of the final distribution in the command block N. It is determined whether or not the end is reached by the predicted position feedback value (predicted actual position) at the time of sign inversion of the predicted speed feedback value.
[3] If the position feedback predicted in [2] above is short of the end, the assumption is corrected so as to extend the command block N (or add a predetermined amount to Δc) and the determination of [2] is performed again. If the end is reached by the position feedback predicted in [2] above, in contrast, the movement amount Δc at that time is employed as the movement amount Δc used in the above correction processing steps (a) and (b).
The end-point correction unit 103 may briefly adopt the difference (or shortage) between the end and the position feedback predicted if Δc=0 is given as the movement amount Δc used in the above correction processing steps (a) and (b).
Embodiment 2Embodiment 2, as compared with Embodiment 1, is characterized in that the start timing of the next block N+1 cannot be shifted. A numerical controller 1 according to Embodiment 2 moves the feedback position of a child axis to an end point by the following method.
(1) An amount of movement before the child-axis feedback position reaches the end point is calculated at an appropriate point in time before the arrival at the end point.
(2) The movement amount calculated in (1) above is divided and added for a fixed period of time. Specifically, the speed is increased.
(3) After (2) above, acceleration is performed in a first fixed period of the next block for a turnaround, whereby a position delayed relative to a parent axis is recovered.
Since the hardware configuration and functional configuration of the numerical controller 1 of Embodiment 2 are similar to those of Embodiment 1, a description thereof is omitted.
The operation of end-point correction unit 103 for implementing (1) to (3) above will be described with reference to
The following is a specific description of the correction processing (a′), that is, correction processing for causing the child axis to reach the end. This processing is performed at an appropriate point in time before the child axis reaches the end.
[1] An amount of movement (Δc) on a command additionally required for the current feedback position of the child axis to reach the end is calculated at a point in time preceding the termination of commands in an execution block N by a period of time previously specified by a parameter or the like. The method for calculating the movement amount Δc has already been described in connection with Embodiment 1.
[2] The movement amount Δc calculated in [1] above is reflected in (or added to) the child-axis movement amount of the synchronization ratio (α=child-axis movement amount/parent-axis movement amount) of the execution block N and the synchronization ratio is changed as follows:
a′=(child-axis movement amount+Δc)/parent-axis movement amount.
[3] The movement amount Δc calculated in [1] above is reflected in (or added to) the remaining movement amount in the execution block N. Specifically, the remaining movement amount in the command block N currently being executed is changed as follows:
- remaining movement amount of child axis=current remaining movement amount of child axis+Δc.
The following is a specific description of the correction processing (b′), that is, processing for recovering the synchronous relationship. This processing is performed immediately after the end is reached by the child axis.
[1] After the end is reached by the child axis, the child axis is located in a position delayed relative to the position of the parent axis by Δc. In order to recover this delay, a child-axis movement amount based on the control period calculated from the child- and parent-axis movement amounts in the execution block N+1 is corrected (or accelerated) for a period of time specified by a parameter or the like. Specifically, the synchronization ratio is changed for a fixed period of time so that the delay is recovered.
According to these embodiments, the end-point correction unit 103 calculates an additional movement amount Δc required for the arrival at the end point before the child axis reaches the end point and corrects the command for implementing the movement amount Δc. In this way, a reciprocating motion under multi-axis synchronization control can be properly corrected without trial and error.
Moreover, according to the above embodiments, the end-point correction unit 103 performs control for recovering the synchronization between the parent axis and the child axis after the execution of the correction processing. Thus, the synchronization can immediately be recovered even if the axes are temporarily rendered asynchronous by the correction processing, so that a uniform band shape of, for example, a non-woven fabric wrapper cannot be damaged.
While embodiments of the present invention have been described above, the invention is not limited to the examples of the above-described embodiments and may be suitably modified and embodied in other forms.
Claims
1. A numerical controller configured to reciprocate a parent axis and a child axis according to a predetermined synchronization ratio by multi-axis synchronization control, the numerical controller comprising:
- a command decoding unit configured to decode a command including a plurality of command blocks;
- a distribution processing unit configured to generate a distribution movement amount, which is an amount of movement for each control period of a motor, based on the command blocks;
- an end-point correction unit configured to perform first correction processing for correcting the distribution movement amount so that a feedback position of the child axis reaches an end point, which is a turning point of the reciprocating motion, and second correction processing for recovering synchronization destroyed by the first correction processing; and
- a motor control unit configured to drivingly control the motor based on the corrected distribution movement amount.
2. The numerical controller according to claim 1, wherein the end-point correction unit adds, in the first correction processing, an additional movement amount (Δc) of the child axis calculated based on the child-axis feedback position and the end point to a remaining movement amount of the child axis in the command block being executed.
3. The numerical controller according to claim 1, wherein the end-point correction unit corrects the synchronization ratio based on an additional movement amount (Δc) of the child axis in the first correction processing.
4. The numerical controller according to claim 2, wherein the end-point correction unit subtracts, in the second correction processing, an additional movement amount (Δp) of the parent axis calculated based on the additional movement amount (Δc) of the child axis and the synchronization ratio from a remaining movement amount of the parent axis in the next command block.
5. The numerical controller according to claim 1, wherein the end-point correction unit changes the synchronization ratio in the next command block for a predetermined period of time in the second correction processing.
Type: Application
Filed: Sep 25, 2019
Publication Date: Apr 2, 2020
Patent Grant number: 10915093
Applicant: Fanuc Corporation (Yamanashi)
Inventor: Noboru Hirose (Yamanashi)
Application Number: 16/582,438