Control device

The control device addresses the inefficiencies of constant speed control by using a pulse buffer to switch time constants during movement, reducing cycle time and preventing speed steps for improved industrial machinery performance.

WO2026018437A1PCT designated stage Publication Date: 2026-01-22FANUC LTD
View PDF 6 Cites 0 Cited by

Patent Information

Application Number
PCT/JP2024/026013
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Filing Date
2024-07-19
Publication Date
2026-01-22

AI Technical Summary

Technical Problem

Current speed control methods for multiple-axis industrial machinery use a constant acceleration change time value regardless of movement direction, leading to increased cycle time and surface quality deterioration due to speed steps when switching time constants without deceleration.

Method used

A control device with a pulse buffer that switches time constants during movement by storing and managing acceleration and deceleration pulses to maintain constant speed, using a time constant changing pulse buffer to connect movements smoothly.

Benefits of technology

Reduces cycle time and prevents speed steps by optimizing time constants based on movement direction, ensuring smooth transitions and improved surface quality.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure JP2024026013_22012026_PF_FP_ABST
    Figure JP2024026013_22012026_PF_FP_ABST
Patent Text Reader

Abstract

An acceleration / deceleration unit provided in a control device according to the present disclosure: stores, when performing acceleration / deceleration processing on interpolation data of a first movement command and interpolation data of a subsequent second movement command in a case where a time constant switches between the first movement command and the second movement command, at least deceleration pulses from the interpolation data of the first movement command and acceleration pulses from the interpolation data of the second movement command into a time-constant-change pulse buffer; generates, using the pulses stored in the time-constant-change pulse buffer, a speed command that causes movement at a constant speed within a predetermined allowable speed-step from the command speed of the first movement command; and connects movement according to the first movement command and movement according to the second movement command by the speed command.
Need to check novelty before this filing date? Find Prior Art

Description

control device

[0001] The present disclosure relates to a control device.

[0002] When controlling multiple motors installed in industrial machinery such as machine tools, speed control is currently performed by setting the same acceleration change time (time constant) value regardless of the movement direction of the axis related to the motor (for example, Patent Document 1, etc.). In a drive system operated by multiple axes, the stiffness of each axis may differ, and the ratio of the allowable jerk to the allowable acceleration may differ. In such a case, if a constant time constant that is independent of the movement direction is used, control will be performed with a time constant that is greater than the minimum necessary time constant, leading to an increase in cycle time.

[0003] Japanese Patent Application Publication No. 8-076827

[0004] If there was a mechanism to switch the time constant while the axis was moving, it would lead to a reduction in cycle time. However, with the current control method, if the time constant is switched at a constant speed without decelerating and stopping, there is an issue that speed steps occur and the quality of the machined surface deteriorates. In production sites, a mechanism to switch the time constant while the axis is moving is desired, so that speed steps do not occur.

[0005] The control device according to the present disclosure solves the above problem by providing a pulse buffer for changing the time constant, and by switching the time constant under the condition that the speed is constant, without changing the mechanism for accelerating and decelerating the filter.

[0006] One aspect of the present disclosure is a control device that includes an acceleration / deceleration unit that performs acceleration / deceleration processing on interpolated data that commands a movement amount for each control cycle that controls a servo motor using a moving average filter to adjust the movement amount in each control cycle, and a servo control unit that controls the servo motor based on the interpolated data that has been accelerated / decelerated, wherein when a time constant is switched between a first movement command and a second movement command that follows the first movement command, the acceleration / deceleration unit stores at least pulses for deceleration in the interpolated data of the first movement command and pulses for acceleration in the interpolated data of the second movement command in a time constant changing pulse buffer when performing acceleration / deceleration processing on the interpolated data of the first movement command and the interpolated data of the second movement command, and uses the pulses stored in the time constant changing pulse buffer to generate a speed command for uniform movement at a speed within a predetermined allowable speed step from the command speed of the first movement command, and connects the movement according to the first movement command and the movement according to the second movement command using the speed command.

[0007] 1 is a schematic hardware configuration diagram of a control device according to a first embodiment; FIG. 2 is a block diagram showing schematic functions of a control device according to a first embodiment; FIG. 3 is a schematic diagram showing an example of interpolated data; FIG. 4 is a schematic diagram showing an example of interpolated data subjected to acceleration / deceleration processing; FIG. 5 is a schematic diagram showing an example of interpolated data before and after a time constant is switched; FIG. 6 is a schematic diagram showing an example of a case where a speed step occurs; FIG. 7 is a schematic diagram showing an example of interpolated data subjected to acceleration / deceleration processing according to a conventional technique; FIG. 8 is a schematic diagram explaining acceleration / deceleration processing by an acceleration / deceleration unit in response to a first movement command; c 10 is a schematic diagram illustrating an example of storing pulses of minute interpolation data in a time constant changing pulse buffer. FIG. 11 is a schematic diagram illustrating acceleration / deceleration processing by an acceleration / deceleration unit in response to a second movement command.

[0008] Hereinafter, embodiments of the present disclosure will be described with reference to the drawings. In the following description, components having the same or similar functions will be denoted by the same reference numerals. Duplicate descriptions of those components may be omitted.

[0009] In this application, "based on XX" means "based on at least XX," and includes cases where it is based on other elements in addition to XX. Furthermore, "based on XX" is not limited to cases where XX is used directly, but also includes cases where it is based on XX that has been calculated or processed. "XX" is any element (for example, any information).

[0010] First Embodiment Fig. 1 is a schematic hardware configuration diagram showing the main parts of a control device according to an embodiment of the present disclosure. The control device 1 of the present disclosure can be implemented as a motor control device that controls a motor that drives industrial machinery such as a machine tool or a robot. The control device 1 of the present disclosure can also be implemented as a numerical control device that controls industrial machinery equipped with a moving object that moves when driven by a motor, based on a numerical control program or the like. An example of implementation as a numerical control device that controls based on a numerical control program or the like will be described below.

[0011] The CPU 11 included in the control device 1 of the present disclosure is a processor that performs overall control of the control device 1. The CPU 11 reads a system program stored in the ROM 12 via the bus 22 and controls the entire control device 1 in accordance with the system program. The RAM 13 temporarily stores temporary calculation data, display data, various data input from outside, and the like.

[0012] The nonvolatile memory 14 is configured, for example, by a memory backed up by a battery (not shown) or an SSD (Solid State Drive), and retains its stored state even when the power to the control device 1 is turned off. The nonvolatile memory 14 stores operation programs and data read from an external device 72 via the interface 15, data and operation programs input via the input device 71, and various data acquired from the industrial machine 3. The operation programs and data stored in the nonvolatile memory 14 may be expanded into the RAM 13 when executed / used. Furthermore, various system programs such as known analysis programs are written in the ROM 12 in advance.

[0013] The interface 15 is an interface for connecting the CPU 11 of the control device 1 to an external device 72 such as a USB memory, CompactFlash (registered trademark), or SD card. For example, operation programs and various data used to control the industrial machine 3 can be read from the external device 72. Furthermore, operation programs and various data edited within the control device 1 can be stored in the external device 72. A PLC (programmable logic controller) 16 outputs signals to the industrial machine 3 and its peripheral devices (e.g., tool changers, actuators such as robots, sensors attached to the industrial machine 3, etc.) via an I / O unit 17 to control the industrial machine 3 using a sequence program built into the control device 1. The PLC 16 also receives signals from various switches on an operation panel installed on the main body of the industrial machine 3 and from peripheral devices, performs the necessary signal processing, and then passes the signals to the CPU 11.

[0014] The display device 70 displays various data loaded into the memory, data obtained as a result of executing operation programs, system programs, etc., output via the interface 18. In addition, the input device 71, which is composed of a keyboard, pointing device, etc., passes instructions, data, etc. based on operations by an operator to the CPU 11 via the interface 19.

[0015] The interface 20 is an interface for connecting the CPU 11 of the control device 1 to a wired or wireless network 5. The network 5 may communicate using technologies such as serial communication such as RS-485, Ethernet (registered trademark), optical communication, wireless LAN, Wi-Fi (registered trademark), Bluetooth (registered trademark), etc. Other control devices 4, fog computers 6, cloud servers 7, etc. are connected to the network 5, and data is exchanged between the network 5 and the control device 1.

[0016] The axis control circuit 30 for controlling the drive axes of the industrial machine 3 receives position commands for the drive axes from the CPU 11 and outputs commands for the drive axes to the servo amplifier 40. The servo amplifier 40 receives these commands and drives the servo motors 50 associated with the drive axes, moving each component of the industrial machine 3 along the respective axes. Each servo motor 50 has a built-in position detector, and feeds back a position feedback signal from the position detector to the axis control circuit 30. The axis control circuit 30 performs feedback control of the servo motor 50 based on the position feedback signal. Note that while only one axis control circuit 30, servo amplifier 40, and servo motor 50 are shown in the hardware configuration diagram of FIG. 1 , in reality, there are as many axis control circuits 30, servo amplifiers 40, and servo motors 50 as there are drive axes of the industrial machine 3 to be controlled. For example, to control a typical machine tool with three linear axes and two rotational axes, five sets of axis control circuits 30, servo amplifiers 40, and servo motors 50 are provided to move a spindle to which a tool is attached and a workpiece relatively in the three linear axes and two rotational axes (X-axis, Y-axis, Z-axis, A-axis, and C-axis directions).

[0017] The spindle control circuit 60 receives a spindle rotation command and outputs a spindle speed signal to a spindle amplifier 61. The spindle amplifier 61 receives this spindle speed signal and rotates a spindle motor 62 of the industrial machine 3 at the commanded rotation speed to drive the spindle. A position coder 63 is connected to the spindle motor 62. The position coder 63 outputs a feedback pulse in synchronization with the rotation of the spindle, and the feedback pulse is read by the CPU 11.

[0018] The control device 1 may be configured as a separate entity from the industrial machine 3. In this case, the control device 1 and the industrial machine 3 may be connected by a signal line or the like, or may be connected via a network. Furthermore, the control device 1 may be connected to the industrial machine 3 by being incorporated in the industrial machine 3.

[0019] 2 is a schematic block diagram illustrating functions of the control device 1 according to the first embodiment of the present disclosure. Each function of the control device 1 according to this embodiment is realized by the CPU 11 of the control device 1 shown in FIG. 1 executing a system program and controlling the operation of each part of the control device 1.

[0020] The control device 1 of this embodiment includes a program analysis unit 100, an interpolation unit 120, an acceleration / deceleration unit 130, and a servo control unit 150. A control program 200 such as a numerical control program including commands for controlling the industrial machine 3 is stored in advance in the RAM 13 to the nonvolatile memory 14 of the control device 1. Furthermore, a time constant changing pulse buffer 210, which is an area for storing pulses related to the amount of movement when the time constant is changed, is provided in advance in the RAM 13 to the nonvolatile memory 14 of the control device 1.

[0021] The program analysis unit 100 sequentially reads blocks included in the control program 200 and analyzes the commands generated by those blocks for the operation of the industrial machine 3. Then, based on the analysis results, it creates command data for instructing the operation of the industrial machine 3. The analysis by the program analysis unit 100 is based on parameters set in the control device 1 and the settings of the industrial machine 3. For example, if a block read from the control program 200 is a command for moving a moving object of the industrial machine 3, the command data created by the program analysis unit 100 becomes data for instructing the amount of movement or rotation of at least one axis related to the movement, or the combined amount of movement or rotation of multiple drive axes. Furthermore, for example, if a block read from the control program 200 commands the operation of the spindle motor 62, the command data becomes data for instructing the rotation amount of the spindle motor 62. The program analysis unit 100 outputs data for instructing the rotation operation of the servo motor 50 to the interpolation unit 120. It also outputs other command data for controlling the operation of the industrial machine 3 to the control unit 140.

[0022] The interpolation unit 120 generates interpolation data that indicates the amount of movement or rotation of at least one axis related to the movement, or the amount of combined movement or rotation of multiple drive axes, per predetermined interpolation period (control period) based on the command data output by the program analysis unit 100. In the interpolation data generated by the interpolation unit 120, the amount of movement per interpolation period is indicated, for example, by the number of pulses. The interpolation unit 120 outputs the generated interpolation data to the acceleration / deceleration unit 130.

[0023] The acceleration / deceleration unit 130 performs acceleration / deceleration processing on the interpolated data created by the interpolation unit 120, adjusting the amount of movement in each interpolation period to prevent sudden acceleration or deceleration. The acceleration / deceleration unit 130 performs acceleration / deceleration processing using, for example, a moving average filter. The acceleration / deceleration unit 130 then outputs the interpolated data that has undergone acceleration / deceleration processing to the servo control unit 150. The servo control unit 150 controls the amount of movement of the servo motor 50 for each interpolation period based on the interpolated data that has undergone acceleration / deceleration processing.

[0024] The control unit 140 controls each part of the industrial machine 3 based on the command data created by the program analysis unit 100. For example, based on the command data created by the program analysis unit 100, the control unit 140 creates control commands for the spindle motor 62 provided in the industrial machine 3, signals for controlling peripheral devices, and the like, and outputs them to the industrial machine 3. The control unit 140 also acquires the state of each part of the industrial machine 3 as feedback values ​​and uses them in each control process. The control unit 140 includes a servo control unit 150 that controls the servo motor 50 provided in the industrial machine 3. The servo control unit 150 controls the movement amount of the servo motor 50 for each interpolation period based on the interpolation data that has been subjected to acceleration / deceleration processing by the acceleration / deceleration unit 130.

[0025] When acceleration / deceleration processing is performed using a moving average filter, the output movement amount in a predetermined interpolation period is set to a value obtained by averaging the input movement amounts in interpolation periods of a predetermined width in the vicinity of the interpolation period. This predetermined width is the size of the moving average filter. The size of the moving average filter is defined by a time constant. In other words, the size of the moving average filter is the same value as the time constant. A predetermined interpolation period P t The output movement amount y(t) is calculated based on the predetermined interpolation period P tWhen the input movement amount in is x(t) and the size of the moving average filter is k, it can be calculated using the following formula 1.

[0026]

[0027] The acceleration / deceleration processing of the acceleration / deceleration unit 130 according to the prior art will be described below with reference to FIGS. 3 to 7. FIG. 3 is a schematic diagram illustrating an example of interpolation data created by the interpolation unit 120. In FIG. 3, the movement amount per interpolation period in the interpolation data is represented by the pulse amount. The interpolation data illustrated in FIG. 3 commands the servo motor 50 to move 10 pulses (10 unit movement amounts) per interpolation period P from time t1 onward. Since these 10 unit movement amounts are the movement amount per interpolation period, they represent a command speed F. If the servo motor 50 were controlled based on such interpolation data, the servo motor 50 would suddenly accelerate at time t1, causing a shock to the industrial machine 3. This would cause vibrations in the industrial machine, adversely affecting its operation and the controlled object. Therefore, the acceleration / deceleration unit 130 performs acceleration / deceleration processing on such interpolation data to prevent sudden acceleration and deceleration.

[0028] Fig. 4 is a schematic diagram showing an example in which the acceleration / deceleration unit 130 performs acceleration / deceleration processing on the interpolated data shown in Fig. 3. The example in Fig. 4 shows a case in which the size of the moving average filter is set to 5 and acceleration / deceleration processing is performed on the interpolated data shown in Fig. 3. By performing acceleration / deceleration processing on the interpolated data in this way, the movement amount per interpolation cycle is adjusted so that sudden acceleration does not occur when the servo motor 50 accelerates.

[0029] When the acceleration / deceleration unit 130 performs acceleration / deceleration processing, a delay occurs in the time it takes to reach the commanded speed. For example, as shown in FIG. 3, if acceleration / deceleration processing is not performed and the servo motor 50 is controlled based on the interpolated data, the speed of the servo motor 50 will reach the commanded speed f at time t1. However, as shown in FIG. 4, if acceleration / deceleration processing is performed once using a moving average filter of size 5, the commanded speed f will be reached at time t5. At this stage, there are still pulses remaining to be processed in the moving average filter.

[0030] As described above, the time constant may be switched during acceleration / deceleration processing by the moving average filter. For example, suppose the moving average filter size is set to 5 in the first movement command and 4 in the subsequent second movement command. Consider the case shown in FIG. 5 , where interpolated data is generated based on the first movement command until time t5, and interpolated data is generated based on the second movement command from time t6 onward. In this case, at time t5, the interpolated data generated based on the first movement command has not yet been fully output; specifically, approximately 20 pulses remain. After that, the remaining pulses before the time constant was switched and the pulses generated based on the second movement command after the time constant was switched are integrated and output as the movement amount. This results in a speed step, as shown in FIG. 6 . To prevent this speed step, the acceleration / deceleration unit 130 of the prior art switches the time constant after the output of pulses based on the previous command is completed, and then outputs pulses based on the next command, as shown in FIG. 7 .

[0031] In this embodiment, the acceleration / deceleration unit 130 switches the time constant while continuing movement without changing the filter's acceleration / deceleration mechanism by introducing a time constant changing pulse buffer 210 during acceleration / deceleration processing when the time constant is switched. The acceleration / deceleration unit 130 accumulates, in the time constant changing pulse buffer 210, pulses for deceleration movement immediately before the end of movement in a first movement command, which is the movement command before the time constant is switched, and pulses for acceleration movement immediately after the start of movement in a second movement command, which is the movement command after the time constant is switched. Then, for the movements before and after the switch, the time constant changing pulse buffer 210 outputs pulses that are equally divided so that the speed step is within an allowable range. This connects the movement based on the first movement command and the movement based on the second movement command so that a speed step exceeding a predetermined allowable speed step Δf does not occur. At this time, if the pulses for deceleration in the first movement command and the pulses for acceleration in the second movement command are not enough to compensate for the pulses for the constant-speed movement, the missing pulse amount is compensated for by pulses for movement based on the first movement command or the second movement command.

[0032] The acceleration / deceleration process by the acceleration / deceleration unit 130 according to this embodiment will be described below with reference to FIGS. 8 to 10. The acceleration / deceleration unit 130 determines the time constant T A , the time constant T of the second movement command B The number of interpolation data (pulses) required to compensate for the pulses for the uniform velocity movement is calculated using the command speed f by the first and second movement commands, the allowable velocity step difference Δf, etc. In the following, the number of interpolation periods (time) of this interpolation data is defined as the interpolation time t c The acceleration / deceleration unit 130 calculates the interpolation time t c The acceleration / deceleration unit 130 secures a pulse of the interpolated data for the first movement command or the interpolated data for the second movement command in advance. ch The interpolation time t c and time constant switching time T ch The calculation of the interpolation time t c , time constant T A , time constant T B , time constant switching time T ch is a time width in units of an interpolation period, and is expressed as an integer value. For ease of explanation, the command speed f and the allowable speed step Δf are also expressed as integer values ​​in units of one pulse. In the following explanation, the time constant T A is 5, the time constant T of the second movement command B is 4, the command speed f by the first movement command and the second movement command is 10, the allowable speed step Δf is 1, and the interpolation time t c is one interpolation period, and the time constant switching time T ch is calculated to be 5.

[0033] FIG. 8 is a schematic diagram illustrating acceleration / deceleration processing performed by the acceleration / deceleration unit 130 according to this embodiment in response to a first movement command. FIG. 8 illustrates an example of acceleration / deceleration processing performed by the acceleration / deceleration unit 130 according to this embodiment on interpolated data based on the cutting command illustrated in FIG. 5 . In FIG. 8 , a moving average filter is represented by multiple connected rectangular boxes. Each moving average filter box numerically indicates the number of pulses used to calculate the output movement amount at each time. The right side of the moving average filter box numerically indicates the number of pulses in an interpolation period at a newer time, while the left side indicates the number of pulses in an interpolation period at an older time. In the example of FIG. 8 , when 10 pulses are input as interpolated data at time t3, the output movement amount is calculated based on the number of pulses at time t3 and the number of pulses in the four interpolation periods up to that time, as illustrated in FIG. 8 . In the example of FIG. 5 , 10 pulses were input at time t3, and 10 pulses were input as interpolated data each time before time t3, so all of the moving average filter boxes are 10. Therefore, the output movement amount at time t3 is (10+10+10+10+10) / 5=10 (remainder 0). Therefore, the acceleration / deceleration unit 130 outputs 10 pulses to the servo control unit 150 as the output movement amount at time t3. In this way, the state in which all frames of the moving average filter are 10 pulses continues until time t5. Then, at time t6, the interpolation data by the first movement command runs out, so the rightmost frame of the moving average filter becomes 0 pulse. Note that the processing at time t6 will continue in the following explanation, so in FIG. 8, time t 6-1 From this point on, the acceleration / deceleration unit 130 stores the output pulses in the time constant changing pulse buffer 210 until the number of pulses remaining in the moving average filter becomes zero. 6-1 At time t, a pulse of (10+10+10+10+0) / 5=8 (remainder 0) is stored in the time constant changing pulse buffer 210. 6-2 At the time of (10+10+10+0+0) / 5=6 (remainder 0) pulses, at time t 6-3 At the time of (10+10+0+0+0) / 5=4 (remainder 0) pulses, at time t 6-4At this point, (10+0+0+0+0) / 5=2 (remainder 0) pulses are stored in time constant changing pulse buffer 210. At this point, the number of pulses remaining in the moving average filter becomes 0, so acceleration / deceleration unit 130 ends processing based on the interpolated data in accordance with the first movement command.

[0034] Next, the acceleration / deceleration unit 130 calculates the interpolation time t c = Pulses of interpolation data for one interpolation period are stored in the time constant changing pulse buffer 210.

[0035] 10 is a schematic diagram illustrating the acceleration / deceleration process performed by the acceleration / deceleration unit 130 according to this embodiment in response to the second movement command. 6-6 ) and the length of the moving average filter is set to the time constant T B After that, the acceleration / deceleration unit 130 sequentially inputs the interpolated data of the second movement command to the moving average filter, and stores the output in the time constant changing pulse buffer 210. The acceleration / deceleration unit 130 continues this process until just before all the frames of the moving average filter are filled. In the example of FIG. 10, at time t 6-7 At this point, the first interpolation data of the second movement command is input to the moving average filter. The output movement amount at this time is (0+0+0+10) / 4=2 (remainder 2). This output movement amount is not output to the servo control unit 150 at this point, but is stored in the time constant changing pulse buffer 210. Thereafter, the acceleration / deceleration unit 130 continues to input the interpolation data of the second movement command to the moving average filter in sequence, and stores the output in the time constant changing pulse buffer 210. Then, when the pulses in the moving average filter are filled, the acceleration / deceleration unit 130 outputs the pulses stored in the time constant changing pulse buffer 210 at the time constant switching time T ch In this example, 45 pulses are stored in the time constant changing pulse buffer 210, and the time constant switching time T ch Therefore, the acceleration / deceleration unit 130 performs the interpolation for five periods (time t6 to t 10 ) and outputs 45 / 5=9 pulses each to the servo control unit 150.

[0036] After that, the acceleration / deceleration unit 130 11 The output from the moving average filter is output to the servo control unit 150, and thereafter acceleration / deceleration processing is performed using a normal moving average filter.

[0037] In the following, the interpolation time t c and time constant switching time T ch The calculation of the interpolation time t c and time constant switching time T ch is the command speed of the first movement command and the second movement command, f, and the time constant of the first movement command is T A , the time constant of the first movement command is T B If the allowable speed step is Δf, an integer value that satisfies the following formula 2 should be used. c , time constant T A , time constant T B , time constant switching time T ch is a time width in units of the interpolation period, and is a positive integer value.

[0038]

[0039] In Equation 2, the time constant T A + time constant T B If is odd, the interpolation time t c and time constant switching time T ch satisfies the following formula 3, where the interpolation time t c is the smallest positive integer that satisfies the inequality in Equation 3, and the time constant switching time T ch Shorten it.

[0040]

[0041] In this case, the integer T that satisfies the inequality in Equation 3 ch In order for the time constant switching time T to exist, the allowable speed step Δf must satisfy the following formula 4. Therefore, if a value smaller than this value is set as the allowable speed step Δf, an appropriate allowable speed step Δf is calculated using the following formula 5, and then the time constant switching time T ch In the formula 5, M is the number of buffered interpolated data.

[0042]

[0043]

[0044] In addition, in the formula 5, when the number of interpolated data M is sufficiently large, the range of Δf becomes Δf>0, and the time constant T A + time constant T B T when is odd ch Therefore, the time constant switching time T ch When an upper limit value of T' is given for f, a solution can be found by setting Δf=f / 2T'.

[0045] In addition, in the formula 2, the time constant T A + time constant T B If is an even number, the interpolation time t c and time constant switching time T ch The interpolation time t c can be set to 0.

[0046]

[0047] The control device 1 according to this embodiment, which has the above configuration, always uses the optimal time constant (a time constant that satisfies the allowable jerk) and can change the time constant depending on the direction of travel of the controlled object. Since deceleration and re-acceleration are not required when switching the time constant, a reduction in cycle time can be expected.

[0048] Furthermore, it is also possible to change the time constant to one interpolation period. In the prior art, if the time constant is set to two interpolation periods, half of the input pulse is output in the next interpolation period. Therefore, it is necessary to assume that the time constant is 2 or more in the next interpolation period. In the control device 1 according to this embodiment, when the time constant is switched to 1, an appropriate allowable speed step Δf is applied, thereby reducing the input interpolation time t c The time constant switching time T ch Since the speed step can be suppressed to the allowable speed step Δf or less, it is possible to change the time constant to one interpolation period without generating a shock.

[0049] Although the embodiments of the present disclosure have been described in detail above, the present disclosure is not limited to the individual embodiments described above. Various additions, substitutions, modifications, partial deletions, etc. are possible in these embodiments without departing from the gist of the invention or the idea and intent of the present disclosure derived from the content described in the claims and their equivalents. For example, in the above-described embodiments, the order of each operation and the order of each process are shown as examples and are not limited to these. The same applies when numerical values ​​or mathematical expressions are used in the description of the above-described embodiments.

[0050] Below are notes related to the embodiments of the present disclosure. (Supplementary Note 1) A control device (1) according to one aspect of the present disclosure includes an acceleration / deceleration unit (130) that performs acceleration / deceleration processing on interpolated data that commands a movement amount for each control cycle that controls a servo motor (50) using a moving average filter to adjust the movement amount in each control cycle, and a servo control unit (150) that controls the servo motor (50) based on the interpolated data that has been accelerated / decelerated, and when a time constant is switched between a first movement command and a second movement command that follows the first movement command, the acceleration / deceleration unit (130) stores at least pulses for deceleration in the interpolated data of the first movement command and pulses for acceleration in the interpolated data of the second movement command in a time constant changing pulse buffer when performing acceleration / deceleration processing on the interpolated data of the first movement command and the interpolated data of the second movement command, and generates, using the pulses stored in the time constant changing pulse buffer, a speed command for moving at a constant speed within a predetermined allowable speed step from the command speed of the first movement command, and connects the movement according to the first movement command and the movement according to the second movement command using the speed command.

[0051] (Supplementary Note 2) When a speed command for uniform movement at a speed within a predetermined allowable speed step from the command speed cannot be generated using only the deceleration pulses in the interpolated data of the first movement command and the acceleration pulses in the interpolated data of the second movement command, the acceleration / deceleration unit (130) provided in the control device (1) according to another aspect of the present disclosure stores further interpolated data from the interpolated data of the first movement command or the interpolated data of the second movement command in the time constant changing pulse buffer so that a speed command for uniform movement can be generated.

[0052] REFERENCE SIGNS LIST 1 Control device 3 Industrial machine 4 Control device 5 Network 6 Fog computer 7 Cloud server 11 CPU 12 ROM 13 RAM 14 Non-volatile memory 15, 18, 19, 20 Interface 16 PLC 17 I / O unit 22 Bus 30 Axis control circuit 40 Servo amplifier 50 Servo motor 60 Spindle control circuit 61 Spindle amplifier 62 Spindle motor 63 Position coder 70 Display device 71 Input device 72 External device 100 Program analysis unit 120 Interpolation unit 130 Acceleration / deceleration unit 140 Control unit 150 Servo control unit 200 Control program 210 Time constant changing pulse buffer

Claims

1. A control device comprising: an acceleration / deceleration unit that performs acceleration / deceleration processing on interpolated data that commands the amount of movement for each control period that controls a servo motor using a moving average filter to adjust the amount of movement in each control period; and a servo control unit that controls the servo motor based on the interpolated data that has been accelerated / decelerated, wherein when a time constant is switched between a first movement command and a second movement command that follows the first movement command, the acceleration / deceleration unit stores at least pulses for deceleration in the interpolated data of the first movement command and pulses for acceleration in the interpolated data of the second movement command in a time constant changing pulse buffer when performing acceleration / deceleration processing on the interpolated data of the first movement command and the interpolated data of the second movement command, and uses the pulses stored in the time constant changing pulse buffer to generate a speed command for uniform movement at a speed within a predetermined allowable speed step from the command speed of the first movement command, and connects the movement according to the first movement command and the movement according to the second movement command using the speed command.

2. The control device according to claim 1, wherein, when a speed command for uniform movement at a speed within a predetermined allowable speed step from the command speed cannot be generated using only the deceleration pulses in the interpolated data of the first movement command and the acceleration pulses in the interpolated data of the second movement command, the acceleration / deceleration unit further stores interpolated data from the interpolated data of the first movement command or the interpolated data of the second movement command in the time constant changing pulse buffer so that a speed command for uniform movement can be generated.

Citation Information

Patent Citations

  • Moving speed command generation method and device therefor

    JP2000089815A

  • Correction device and numerical control apparatus

    JP2010182157A

  • Numerical control device provided with overlap function between discretionary blocks by common acceleration / deceleration control unit

    JP2016081172A

  • Numerical control device dynamically switching time constant of acceleration / deceleration filter

    JP2018005304A

  • Control unit, machine tool, control method, and computer program

    JP2022157479A