Numerical Control Device

JPWO2025248753A5Active Publication Date: 2026-05-12FANUC LTD
View PDF 0 Cites 0 Cited by

Patent Information

Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
FANUC LTD
Filing Date
2024-05-31
Publication Date
2026-05-12

AI Technical Summary

Technical Problem

Existing numerical control systems face challenges in performing optimal acceleration and deceleration processes for control axes, particularly when gravitational acceleration affects differ between these phases, leading to large speed changes and shocks during transitions.

Method used

A numerical control device that divides interpolation pulse groups into partial groups with overlapping edges and applies different time constants for each group, using multiple acceleration/deceleration circuits to smooth transitions and minimize shocks.

Benefits of technology

Enables simultaneous execution of acceleration and deceleration processes with optimal time constants, reducing large speed changes and shocks, ensuring smooth operation of control axes.

✦ Generated by Eureka AI based on patent content.

Smart Images

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

Abstract

The numerical control device (1) includes at least one memory (2), at least one processor (3), and an acceleration / deceleration circuit capable of setting different time constants, and the processor (3) analyzes a program for operating a control axis (53) of an industrial machine (5) to obtain at least one command block included in the program, generates an interpolation pulse group consisting of a plurality of interpolation pulses obtained by distributing a fixed predetermined number of a plurality of unit pulses required for the operation of the control axis (53) according to the command block along a time axis for each predetermined interpolation period, divides the interpolation pulse group into a pair of partial interpolation pulse groups in which the trailing edge and leading edge of the partial interpolation pulse group overlap in the time axis direction, where the number of unit pulses at the trailing edge monotonically decreases in the time axis direction and the number of unit pulses at the leading edge monotonically increases in the time axis direction, and inputs each partial interpolation pulse group to a different acceleration / deceleration circuit to add up and output output pulses output from each acceleration / deceleration circuit.
Need to check novelty before this filing date? Find Prior Art

Description

[Technical field]

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

[0002] It is known that acceleration / deceleration processes with different time constants are performed for a plurality of command blocks included in a machining program that controls a control axis of an industrial machine (see, for example, Patent Document 1). [Prior art documents] [Patent documents]

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

[0004] For example, when a control axis is operated along the direction of gravity, the effect of the gravitational acceleration on the control axis differs between acceleration and deceleration. Therefore, when acceleration / deceleration processing with one time constant is performed for one command block as described above, it becomes difficult to perform optimal acceleration / deceleration processing for both acceleration and deceleration. Furthermore, when acceleration / deceleration processing with different time constants is performed for one command block, a large speed change occurs in the control axis at the timing when the two acceleration / deceleration processing are switched.

[0005] Therefore, even when acceleration / deceleration processes with different time constants are executed for one command block, it is desirable to be able to suppress the shock acting on the control axis to a small value. [Means for solving the problem]

[0006] One aspect of the present disclosure is a numerical control device comprising at least one memory, at least one processor, and a plurality of acceleration / deceleration circuits capable of setting different time constants, wherein the processor analyzes a program for operating a control axis of an industrial machine to obtain at least one command block included in the program, generates an interpolation pulse group consisting of a plurality of interpolation pulses in which a fixed number of unit pulses necessary for the operation of the control axis by the command block are distributed along a time axis at each predetermined interpolation period, divides the interpolation pulse group into a pair of partial interpolation pulse groups whose trailing edges and leading edges overlap in the time axis direction, where the number of unit pulses at the trailing edge monotonically decreases in the time axis direction and the number of unit pulses at the leading edge monotonically increases in the time axis direction, and inputs each of the partial interpolation pulse groups to different acceleration / deceleration circuits to add up and output output pulses from each of the acceleration / deceleration circuits. [Brief description of the drawings]

[0007] [Figure 1] 1 is a schematic diagram illustrating a configuration of a numerical control device according to an embodiment of the present disclosure. [Diagram 2] 2 is a block diagram conceptually dividing information stored in a memory of the numerical control device shown in FIG. 1 based on each function. FIG. [Diagram 3] 2 is an example of a machining program stored in a memory of the numerical control device shown in FIG. 1. [Figure 4] 2 is a diagram conceptually showing an interpolation pulse group in the numerical control device shown in FIG. 1. [Diagram 5] 5 is a diagram conceptually showing a pair of partial interpolation pulse groups obtained by dividing the interpolation pulse group shown in FIG. 4. FIG. [Figure 6] FIG. 6 is a diagram conceptually showing a partial interpolation pulse group formed based on a predetermined ratio from a pair of partial interpolation pulse groups shown in FIG. 5. [Figure 7] 7 is a diagram showing output pulses that are output by inputting the pair of partial interpolation pulse groups shown in FIG. 6 to an acceleration / deceleration circuit. FIG. [Figure 8] 8 is a diagram showing a combined pulse obtained by combining the two output pulses in FIG. 7; FIG. [Figure 9] 2 is a flowchart illustrating a numerical control method using the numerical control device shown in FIG. 1. [Figure 10] 2 is a block diagram conceptually dividing information stored in a memory of a modified example of the numerical control device shown in FIG. 1 based on each function. FIG. [Figure 11] 1. FIG. 4 is a diagram showing an output pulse of a modified example of the numerical control device shown in FIG. [Figure 12] 12 is a diagram showing a combined pulse obtained by combining the five output pulses shown in FIG. 11. FIG. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0008] A numerical control device 1, a numerical control method, and a numerical control program according to an embodiment of the present disclosure will be described below with reference to the drawings.

[0009] 1, a numerical control device 1 according to this embodiment is a device that controls the operation of a machine tool (industrial machine) 5 that processes a workpiece W. The numerical control device 1 includes a memory 2 having a volatile storage medium such as a RAM and a non-volatile storage medium such as a ROM, HDD, SSD, and at least one processor 3 such as a CPU or a PLC. An externally arranged input device 4 is connected to the numerical control device 1.

[0010] The input device 4 is, for example, a keyboard, a touch panel, an operation panel, a serial interface such as USB, or a combination of these. The input device 4 accepts input of various programs by a user, input of feature point data indicating the shapes of the machine tool 5 and the workpiece W, and the like.

[0011] The machine tool 5 includes a plurality of control axes 53, such as a table 51 that supports a workpiece W to be machined, and a tool 52 for cutting the workpiece W. The machine tool 5 also includes a plurality of servo motors M and servo amplifiers (not shown) that operate the respective control axes 53.

[0012] Here, the programs stored in the memory 2 will be described in more detail using a block diagram conceptually divided based on each function as shown in FIG.

[0013] The memory 2 stores a control program (numerical control program) 21 for operating each control axis 53 of the machine tool 5 based on a machining program 22 described below. The memory 2 also stores a machining program (program) 22 in which each operation command required when the machine tool 5 executes cutting processing on a workpiece W is described. The memory 2 further stores acceleration parameters 23, deceleration parameters 24, and a plurality of acceleration / deceleration circuits 25.

[0014] The control program 21 is a program that performs basic functions of the numerical control device 1, and is a program that is pre-stored in the memory 2. The control program 21 includes programs that function as an analysis unit 31, an interpolation unit 32, a selection unit 33, a calculation unit 34, an addition unit 35, and a control unit 36, which will be described later. The machining program 22, for example, as shown in FIG. 3, is a plurality of command blocks 22a that specify each operation of the machine tool 5 that cuts the workpiece W, arranged in the order of execution.

[0015] The acceleration parameter 23 is, for example, an acceleration or acceleration time required for the acceleration operation of the control axis 53 controlled by each command block 22a. Similarly, the deceleration parameter 24 is an acceleration or deceleration time required for the deceleration operation of the control axis 53 controlled by each command block 22a. The acceleration parameter 23 and the deceleration parameter 24 are values ​​that are determined in advance by prior experiments or the like, and are input to the numerical control device 1 when the user inputs the machining program 22, for example.

[0016] Each acceleration / deceleration circuit 25 is a calculation program, i.e., a software circuit, prestored in the memory 2. In this case, each acceleration / deceleration circuit 25 is a program that executes acceleration / deceleration processing based on a predetermined time constant for the input pulse signal. In other words, each acceleration / deceleration circuit 25 is a program for outputting output pulses that accelerate or decelerate the speed of the corresponding control shaft 53 at the start and stop with a predetermined time constant for the input command block 22a.

[0017] The processor 3 executes an analysis unit 31, an interpolation unit 32, a selection unit 33, a calculation unit , a summation unit 35, and a control unit of the control program 21 stored in the memory 2. The analysis unit 31 analyzes the machining program 22 stored in the memory 2 and extracts a plurality of command blocks 22 a from the machining program 22 . The interpolation unit 32 executes an interpolation process for each command block 22a. That is, as shown in Fig. 4, the interpolation unit 32 generates a plurality of unit pulses, which are drive signals required to execute the command content, for each command block 22a, and distributes the unit pulses in a fixed number for each predetermined interpolation period f to generate an interpolation pulse group P consisting of a plurality of interpolation pulses.

[0018] 5, the selection unit 33 divides the interpolation pulse group P generated for each command block 22a in the time axis direction, and divides the interpolation pulse group P into a pair of partial interpolation pulse groups P1 and P2. The selection unit 33 also divides the partial interpolation pulse group P2 into two by multiplying a portion corresponding to time t1 to time t2 by a predetermined ratio. That is, the selection unit 33 divides the partial interpolation pulse group P2 such that the number of unit pulses in each interpolation period f in one part monotonically decreases from time t1 to t2, and the number of unit pulses in each interpolation period f in the other part monotonically increases from time t1 to t2. 6, the selection unit 33 generates a partial interpolated pulse group P1' by adding one of the divided portions of the partial interpolated pulse group P2 to the partial interpolated pulse group P1. That is, the selection unit 33 divides the interpolated pulse group P into the partial interpolated pulse group P1' and the partial interpolated pulse group P2', which is the other of the divided portions of the partial interpolated pulse group P2.

[0019] That is, the number of unit pulses of each interpolated pulse monotonically decreases from time t1 to time t2 at the trailing edge of partial interpolated pulse group P1', which includes the leading edge of original interpolated pulse group P. On the other hand, the number of unit pulses of each interpolated pulse monotonically increases from time t1 to time t2 at the leading edge of partial interpolated pulse group P2', which includes the trailing edge of original interpolated pulse group P, in a manner contrary to the decrease in unit pulses at the trailing edge of partial interpolated pulse group P1'. That is, the selection unit 33 divides the interpolated pulse group P so that the leading edge of partial interpolated pulse group P1' and the trailing edge of partial interpolated pulse group P2' overlap in the time axis direction while maintaining the total number of unit pulses distributed per interpolation period f.

[0020] Furthermore, the selection unit 33 selects one of the multiple acceleration / deceleration circuits 25 for each command block 22a, and sets a time constant (first time constant) T1 corresponding to the acceleration parameter 23 in the selected acceleration / deceleration circuit 25. Similarly, the selection unit 33 selects another of the multiple acceleration / deceleration circuits 25 for each command block 22a, and sets a time constant (second time constant) T2 corresponding to the deceleration parameter 24 in the selected acceleration / deceleration circuit 25. In the following description, for convenience of explanation, the acceleration / deceleration circuit 25 in which the time constant T1 is set will be referred to as an acceleration / deceleration circuit 25a, and the acceleration / deceleration circuit 25 in which the time constant T2 is set will be referred to as an acceleration / deceleration circuit 25b.

[0021] The calculation unit 34 and the summing unit 35 are configured, for example, by sequential processing of software. The calculation unit 34 inputs the partial interpolation pulse groups P1', P2' of each command block 22a to the corresponding acceleration / deceleration circuits 25a, 25b. That is, as shown in Fig. 7, the calculation unit 34 performs acceleration / deceleration processing with a time constant T1 on the partial interpolation pulse group P1' to output an output pulse OP1. Similarly, the calculation unit 34 performs acceleration / deceleration processing with a time constant T2 on the partial interpolation pulse group P2' to output an output pulse OP2.

[0022] Here, the relationship between the output pulse OP1 and the partial interpolation pulse group P1' will be described in detail. The portion of the output pulse OP1 from time 0 to t1' is a waveform output by the acceleration / deceleration circuit 25a performing acceleration / deceleration processing on the portion of the partial interpolation pulse group P1' from time 0 to t1. Also, the portion of the output pulse OP1 from time t1' to t2' is a waveform output by the acceleration / deceleration circuit 25a performing acceleration / deceleration processing on the portion of the partial interpolation pulse group P1' from time t1 to t2, in which the number of unit pulses monotonically decreases. In this case, times t1' and t2' are times later than times t1 and t2, respectively. The relationship between the output pulse OP2 and the partial interpolation pulse group P2' is similar.

[0023] As shown in FIG. 8, the summing unit 35 sums a pair of output pulses OP1, OP2 outputted for each command block 22a, and outputs the resulting sum pulse OP to the control unit 36. The control unit 36 ​​inputs the combined pulse OP received from the combining unit 35 to a servo amplifier in accordance with the control program 21 stored in the memory 2, and drives the corresponding servo motor M.

[0024] A numerical control method using the numerical control device 1 according to this embodiment configured as above will be described below. In the following, a numerical control method for cutting a workpiece W by the machine tool 5 will be described with reference to the flowchart of FIG.

[0025] First, the user operates the input device 4 to input a machining program 22 for causing the machine tool 5 to cut the workpiece W. The user also operates the input device 4 to input acceleration parameters 23 and deceleration parameters 24 required for the cutting process.

[0026] In this state, the processor 3 of the numerical control device 1 according to this embodiment executes the control program 21 stored in the memory 2. As a result, the analysis unit 31 analyzes the input machining program 22 (step S1), and extracts and acquires the multiple command blocks 22a included in the machining program 22 one by one (step S2).

[0027] In the following steps, the processing of one command block 22a for moving tool 52 of machine tool 5 vertically upward, out of the multiple acquired command blocks 22a, will be described as an example.

[0028] Next, the interpolation unit 32 executes so-called interpolation processing, which calculates the position (interpolation point) of the tool 52 for each interpolation period f based on the command contents of the acquired command block 22a. Then, the interpolation unit 32 distributes a predetermined number of unit pulses required for executing the command block 22a for each interpolation period f so that the tool 52 moves along each of the calculated interpolation points, thereby generating an interpolation pulse group P (step S3).

[0029] The generated interpolated pulse group P is divided by the selection section 33 into a partial interpolated pulse group P1' and a partial interpolated pulse group P2' (step S4). Furthermore, the selection unit 33 selects two of the multiple acceleration / deceleration circuits 25 stored in the memory 2, and sets a time constant T1 corresponding to the acceleration parameter 23 and a time constant T2 corresponding to the deceleration parameter 24 for each of them (step S5).

[0030] Next, the calculation unit 34 inputs one of the divided partial interpolation pulse groups P1' to the acceleration / deceleration circuit 25a in which a time constant T1 is set, and inputs the other partial interpolation pulse group P2' to the acceleration / deceleration circuit 25b in which a time constant T2 is set. That is, the calculation unit 34 executes acceleration / deceleration processing with time constant T1 and acceleration / deceleration processing with time constant T2 in parallel on the partial interpolation pulse groups P1', P2', respectively, and outputs output pulses OP1, OP2 (step S6).

[0031] Then, the adder 35 adds the output pulses OP1 and OP2 (step S7), and outputs the added pulse OP to the control unit 36. Thereafter, the control unit 36 ​​inputs the combined pulse OP received from the combining unit 35 to the corresponding servo amplifier to control the servo motor M (step S8). This causes the tool 52 to move vertically upward to the destination point, completing the execution of one command block 22a.

[0032] In this manner, according to the present embodiment, two acceleration / deceleration processes with different time constants can be performed simultaneously by dividing the interpolation pulse group P of one command block 22a into two partial interpolation pulse groups P1' and P2'. Therefore, as shown in Fig. 8, acceleration / deceleration processes with optimal time constants can be performed for both the acceleration operation and the deceleration operation in the operation commanded by one command block 22a.

[0033] Also, as shown in Fig. 7, the output pulses OP1 and OP2 overlap each other from time t1' to t2', and the output pulse OP2 increases to compensate for the decrease in the output pulse OP1. This allows the boundary between the output pulses OP1 and OP2 to be smoothly continuous when they are added together as shown in Figs. 7 and 8. Therefore, even if two acceleration / deceleration processes with different time constants are executed for one command block 22a, it is possible to prevent the speed change of the control axis 53 from becoming large at the timing of switching between the two acceleration / deceleration processes.

[0034] In this embodiment, the interpolation pulse group P is divided so that the trailing edge of the partial interpolation pulse group P1' and the leading edge of the partial interpolation pulse group P2' monotonically decrease and increase, respectively, linearly as shown in Fig. 6. Alternatively, the interpolation pulse group P may be divided so that the trailing edge of the partial interpolation pulse group P1' and the leading edge of the partial interpolation pulse group P2' decrease and increase, respectively, complementarily to each other, along any function such as a quadratic function.

[0035] Furthermore, in this embodiment, one interpolated pulse group P is divided into a pair of partial interpolated pulse groups P1', P2', but instead, one interpolated pulse group P may be divided into a plurality of pairs of partial interpolated pulse groups. In this case, for example, the memory 2 stores a plurality of acceleration / deceleration circuits 25 and the number of them, and the selection unit 33 divides the interpolation pulse group P into partial interpolation pulse groups of the same number as the number of acceleration / deceleration circuits 25. The selection unit 33 also sets the time constants of the plurality of acceleration / deceleration circuits 25 stored in the memory 2 so as to divide the time constant between time constant T1 and time constant T2 at equal intervals, for example. Then, the calculation unit 34 inputs the partial interpolation pulse group including the start and end of the original interpolation pulse group P to the acceleration / deceleration circuits 25a and 25b in which the time constants T1 and T2 are set, respectively. As a result, similar to the above, it is possible to execute acceleration / deceleration processing with appropriate time constants for the acceleration operation and deceleration operation in one command block 22a.

[0036] In addition, the time constant of each acceleration / deceleration circuit 25 to which partial interpolation pulse groups other than the partial interpolation pulse groups input to the acceleration / deceleration circuits 25a and 25b in this case are input is set to approach T2 from T1 in the execution order. This allows the time constant in the acceleration / deceleration process from the acceleration operation (starting operation) to the deceleration operation (stopping operation) to be changed stepwise from T1 to T2. Therefore, the acceleration / deceleration process for the acceleration operation and the acceleration / deceleration process for the deceleration operation can be connected more smoothly.

[0037] Next, a numerical control device 1' and a numerical control method using the numerical control device 1' according to a second embodiment of the present disclosure will be described below with reference to the drawings. In the following description, parts having the same configuration as the above-described numerical control device 1 will be denoted by the same reference numerals and description thereof will be omitted.

[0038] A numerical control device 1' according to this embodiment includes, for example, a memory 2' and a processor 3. As shown in FIG. 10, the memory 2′ stores a control program 21′ including programs functioning as an analysis unit 31, a division unit 37, an interpolation unit 32′, a selection unit 33′, a calculation unit 34′, an addition unit 35′, and a control unit 36′.

[0039] The dividing unit 37 divides the command block 22a acquired by the analysis unit 31 into a plurality of divided command blocks. For example, the dividing unit 37 divides the command block 22a into five divided command blocks so as to equally distribute the amount of movement of the control axis 53 by the command block 22a. The interpolation section 32' generates an interpolation pulse group P for each of the five section command blocks divided by the division section 37. That is, the interpolation section 32' generates five interpolation pulse groups P that are continuous in the time axis direction.

[0040] The selection unit 33' shapes each pair of adjacent interpolation pulse groups P in the time axis direction so that the trailing edge of one and the leading edge of the other overlap along the time axis. In this case, the trailing edge and leading edge of each pair of interpolation pulse groups P have the same relationship as the relationship between the partial interpolation pulse groups P1' and P2' of the numerical control device 1. That is, the number of unit pulses per interpolation period f in each pair of interpolation pulse groups P is maintained at a predetermined number, and the number of unit pulses at the trailing edge of one interpolation pulse group P monotonically decreases, and the number of unit pulses at the leading edge of the other interpolation pulse group P monotonically increases.

[0041] Moreover, the selection unit 33' selects five acceleration / deceleration circuits 25a' to 25e' from among the plurality of acceleration / deceleration circuits 25 stored in the memory 2 for one command block 22a. The selection unit 33' sets the time constant T1 corresponding to the acceleration parameter 23 for the selected acceleration / deceleration circuit 25a', and sets the time constant T2 corresponding to the deceleration parameter 24 for the selected acceleration / deceleration circuit 25e'. The selection unit 33' also sets three values ​​that divide the difference between the time constant T1 and the time constant T2 into four as time constants for the selected acceleration / deceleration circuits 25b', 25c', and 25d'. That is, the time constants of the five acceleration / deceleration circuits 25a' to 25e' selected by the selection unit 33' are set to values ​​that divide the time constants T1 to T2 at equal intervals in a stepped manner.

[0042] The calculation unit 34' inputs five interpolation pulse groups P corresponding to each section command block formed by the selection unit 33' to five acceleration / deceleration circuits 25a' to 25e', respectively. In this case, the five interpolation pulse groups P are input to the acceleration / deceleration circuits 25a' to 25e' in order along the time axis. As a result, the calculation unit 34' performs acceleration / deceleration processing on the five interpolation pulse groups P based on the acceleration / deceleration circuits 25a' to 25e', respectively, and outputs five output pulses OP1' to OP5' as shown in FIG. 11. The output pulses OP1' to OP5' are formed by output pulses adjacent to each other in the time axis direction partially overlapping each other, similar to the output pulses OP1 and OP2 in the above-mentioned numerical control device 1.

[0043] 11 and 12, the summing unit 35' sums up the five output pulses OP1' to OP5' outputted by the calculation unit 34' to generate one summed pulse OP'. The generated summed pulse OP' is outputted to a control unit 36'. The control unit 36' controls the servo motor M based on the combined pulse OP' received from the combining unit 35'.

[0044] A numerical control method using the numerical control device 1' according to this embodiment configured as above will be described below. In the following, for the sake of convenience, similarly to the above, only the processing for one command block 22a out of the plurality of command blocks 22a will be described.

[0045] First, the analysis unit 31 extracts a plurality of command blocks 22a from the machining program 22 input by the user. Next, the dividing unit 37 divides the one extracted command block 22a into five divided command blocks such that the amount of movement of the control axis 53 by the command is divided into five equal parts.

[0046] Next, the interpolation section 32' generates an interpolation pulse group P for each of the five division command blocks. The selection unit 33' then shapes the boundary portions of each pair of adjacent interpolation pulse groups P in the time axis direction so that they overlap each other in the time axis direction. In this case, the number of unit pulses per interpolation period f at the trailing edge of one of the interpolation pulse groups P is multiplied by a predetermined ratio to monotonically decrease. Also, the number of unit pulses at the leading edge of the other of the interpolation pulse groups P is multiplied by a ratio that compensates for the decrease in the number of unit pulses at the trailing edge of one of the interpolation pulse groups P to monotonically increase.

[0047] Thereafter, five acceleration / deceleration circuits 25a'-25e' are selected from the plurality of acceleration / deceleration circuits 25 by a selection unit 33'. Then, the time constants of the selected five acceleration / deceleration circuits 25a'-25e' are set so that the range of the time constants T1-T2 is evenly divided. Then, a calculation unit 34' inputs the five interpolation pulse groups P to the five acceleration / deceleration circuits 25a'-25e', respectively, and outputs output pulses OP1'-OP5' as shown in FIG.

[0048] In this case, the output pulse OP1' is output by accelerating and decelerating the interpolation pulse group P corresponding to the first executed section command block of the five section command blocks with a time constant T1. Also, the output pulse OP5' is output by accelerating and decelerating the interpolation pulse group P corresponding to the last executed section command block of the five section command blocks with a time constant T2. That is, the five interpolation pulse groups P can perform acceleration / deceleration processing by changing the time constant stepwise from T1 to T2 in accordance with the execution order of the corresponding division command blocks.

[0049] The output pulses OP1' to OP5' outputted by such acceleration / deceleration processing are summed by a summing unit 35', and the resulting generated sum pulse OP' is inputted to a control unit 36'. Then, the control unit 36' controls each control axis 53 based on the received sum pulse OP'.

[0050] In this way, even if one command block 22a is divided into a plurality of divisional command blocks, the acceleration and deceleration operations of the command block 22a can be processed with different time constants T1 and T2. In this case, the five interpolation pulse groups P can be accelerated and decelerated by changing the time constant from T1 to T2 in stages according to the execution order of the divisional command blocks corresponding to each of them. Therefore, even if the difference between the acceleration parameter 23 and the deceleration parameter 24 is large, the acceleration / deceleration process for the accelerating operation and the acceleration / deceleration process for the decelerating operation can be smoothly continuous with each other.

[0051] In the present embodiment, the command block 22a is divided into five divided command blocks, but the number of divisions is not limited to this. By increasing the number of divided command blocks, the acceleration / deceleration process for the acceleration operation and the acceleration / deceleration process for the deceleration operation for one command block 22a can be smoothly continued.

[0052] Furthermore, in this embodiment, the selection unit 33' selects acceleration / deceleration circuits 25a' to 25e' to input the interpolation pulse group P corresponding to each divided command block from among the multiple acceleration / deceleration circuits 25 pre-stored in the memory 2. Alternatively, the division unit 37 may divide the command block 22a into divided command blocks as many as the number of acceleration / deceleration circuits 25 stored in the memory 2. In either case, it is sufficient to previously store in the memory 2 the acceleration / deceleration circuits 25 required for optimal acceleration / deceleration processing for the acceleration operation and deceleration operation in each command block 22a and the number of such circuits.

[0053] In the present embodiment, the division unit 37 divides the command blocks 22a so that the operation amount specified by each divided command block is equal, but the division method is not limited to this. For example, the division unit 37 may divide the command blocks so that the operation amount of a specific divided command block is a predetermined amount based on the command content of the command block 22a. Alternatively, the command blocks 22a may be divided based on the operation time of each divided command block.

[0054] In the above embodiment, the selection units 33, 33' set the time constants T1, T2 based on the acceleration parameter 23 and the deceleration parameter 24 for the acceleration / deceleration circuit 25 selected from the plurality of acceleration / deceleration circuits 25. Alternatively, the multiple acceleration / deceleration circuits 25 may have different time constants in advance. In this case, the time constants set in the multiple acceleration / deceleration circuits 25 may include at least the time constants T1 and T2 based on the acceleration parameter 23 and the deceleration parameter 24.

[0055] As a result, the selection units 33, 33' only need to select the acceleration / deceleration circuits 25 in which the time constants T1, T2 are set from among the multiple acceleration / deceleration circuits 25. In other words, it is not necessary to set a time constant for the acceleration / deceleration circuit 25 selected from the multiple acceleration / deceleration circuits 25 every time the acceleration / deceleration process of each command block 22a is executed. Therefore, the computation load on the processor 3 can be reduced.

[0056] In addition, in all of the above embodiments, the acceleration / deceleration circuit 25 was an arithmetic program (software circuit) stored in the memory 2. Therefore, the number of acceleration / deceleration circuits or the time constants set for each of them could be easily changed. Alternatively, in cases where the processing content is predetermined and will not be changed, the numerical control device 1, 1' may include the acceleration / deceleration circuit 25 as a hardware circuit. In this case, the user does not need to set the time constant of the acceleration / deceleration circuit 25, and the burden on the user can be reduced.

[0057] Although the embodiments of the present disclosure have been described above in detail, the present disclosure is not limited to the above-mentioned individual embodiments. Various additions, replacements, modifications, partial deletions, etc. are possible for these embodiments within the scope of the gist of the invention, or within the scope of the idea and intent of the present invention derived from the contents described in the claims and their equivalents. For example, in the above-mentioned embodiments, the order of each operation and the order of each process are shown as examples, and are not limited to these.

[0058] The following supplementary notes are further disclosed regarding the above-described embodiment and modified examples. (Appendix 1) A numerical control device comprising at least one memory, at least one processor, and a plurality of acceleration / deceleration circuits capable of setting different time constants, wherein the processor analyzes a program for operating a control axis of an industrial machine to obtain at least one command block included in the program, generates an interpolation pulse group consisting of a plurality of interpolation pulses obtained by distributing a fixed number of unit pulses required for the operation of the control axis by the command block along a time axis for each predetermined interpolation period, divides the interpolation pulse group into a pair of partial interpolation pulse groups whose trailing edges and leading edges overlap in the time axis direction, where the number of unit pulses at the trailing edge monotonically decreases in the time axis direction and the number of unit pulses at the leading edge monotonically increases in the time axis direction, and inputs each of the partial interpolation pulse groups to a different acceleration / deceleration circuit, thereby adding up and outputting output pulses output from each of the acceleration / deceleration circuits. (Appendix 2) The numerical control device according to Appendix 1, wherein the memory stores an acceleration parameter related to an acceleration operation and a deceleration parameter related to a deceleration operation, and the processor selects two of the acceleration / deceleration circuits from among the plurality of acceleration / deceleration circuits, sets a first time constant corresponding to the acceleration parameter in one of the selected acceleration / deceleration circuits, and inputs the partial interpolation pulse group including the starting end of the interpolation pulse group, and sets a second time constant corresponding to the deceleration parameter in the other selected acceleration / deceleration circuit, and inputs the partial interpolation pulse group including the ending end of the interpolation pulse group. (Appendix 3) The numerical control device according to Appendix 2, wherein the memory stores the number of the acceleration / deceleration circuits, and the processor divides the interpolation pulse group into the same number of partial interpolation pulse groups as the number of the acceleration / deceleration circuits, sets time constants of a magnitude that divides the difference between the first time constant and the second time constant at equal intervals to the remaining acceleration / deceleration circuits except for two selected acceleration / deceleration circuits among the plurality of acceleration / deceleration circuits, and inputs the partial interpolation pulse group that does not include the starting end and the ending end. (Appendix 4) The numerical control device according to claim 1, wherein the memory stores an acceleration parameter related to an acceleration operation and a deceleration parameter related to a deceleration operation, and the processor selects, from among the plurality of acceleration / deceleration circuits, an acceleration / deceleration circuit having a first time constant corresponding to the acceleration parameter as the acceleration / deceleration circuit to which the partial interpolation pulse group including the starting end of the interpolation pulse group is input, and an acceleration / deceleration circuit having a second time constant corresponding to the deceleration parameter as the acceleration / deceleration circuit to which the partial interpolation pulse group including the ending end of the interpolation pulse group is input. (Appendix 5) a plurality of acceleration / deceleration circuits capable of setting different time constants, the processor analyzing a program for operating a control axis of an industrial machine to obtain at least one command block included in the program, dividing the command block into a plurality of partitioned command blocks, generating a plurality of interpolation pulse groups consisting of a plurality of interpolation pulses obtained by distributing a fixed predetermined number of unit pulses for each predetermined interpolation period along a time axis, a pair of the interpolation pulse groups corresponding to the partitioned command blocks adjacent in the time axis direction, a trailing edge and a leading edge of each of the interpolation pulse groups corresponding to adjacent partitioned command blocks in the time axis direction, a number of the unit pulses at the trailing edge monotonically decreasing in the time axis direction and a number of the unit pulses at the leading edge monotonically increasing in the time axis direction, and inputting the interpolation pulse groups corresponding to each of the partitioned command blocks to different acceleration / deceleration circuits, thereby adding up and outputting output pulses output from each of the acceleration / deceleration circuits. (Appendix 6) The numerical control device according to Appendix 5, wherein the memory stores an acceleration parameter related to an acceleration operation and a deceleration parameter related to a deceleration operation, and the processor selects two of the acceleration / deceleration circuits from among the plurality of acceleration / deceleration circuits, sets a first time constant corresponding to the acceleration parameter in one of the selected acceleration / deceleration circuits, and inputs the interpolation pulse group corresponding to the section command block that is executed first, and sets a second time constant corresponding to the deceleration parameter in the other selected acceleration / deceleration circuit, and inputs the interpolation pulse group corresponding to the section command block that is executed last. (Appendix 7) 7. The numerical control device according to claim 6, wherein the memory stores the number of the acceleration / deceleration circuits, and the processor divides the command block into the same number of section command blocks as the number of the acceleration / deceleration circuits, sets time constants of a magnitude that divides the difference between the first time constant and the second time constant at equal intervals to the remaining acceleration / deceleration circuits excluding two selected acceleration / deceleration circuits among the plurality of acceleration / deceleration circuits, and inputs the interpolation pulse groups excluding the interpolation pulse groups corresponding to the section command blocks that are executed first and last. (Appendix 8) 6. The numerical control device according to claim 5, wherein the memory stores an acceleration parameter related to an acceleration operation and a deceleration parameter related to a deceleration operation, and the processor selects, from among the plurality of acceleration / deceleration circuits, the acceleration / deceleration circuit having a first time constant corresponding to the acceleration parameter as the acceleration / deceleration circuit to which the interpolation pulse group corresponding to the section command block to be executed first is input, and the acceleration / deceleration circuit having a second time constant corresponding to the deceleration parameter as the acceleration / deceleration circuit to which the interpolation pulse group corresponding to the section command block to be executed last is input. (Appendix 9) 9. The numerical control device according to any one of claims 5 to 8, wherein the processor divides the command blocks so that the amount of movement of the control axis by each of the divided command blocks is equal. (Appendix 10) 10. The numerical control device according to claim 1, wherein a total number of unit pulses per interpolation period is the predetermined number at the trailing edge and the leading edge that overlap each other in the time axis direction. (Appendix 11) 11. The numerical control device according to claim 1, wherein the acceleration / deceleration circuit is a software circuit stored in the memory. (Appendix 12) 1. A numerical control method comprising: analyzing a program for operating a control axis of an industrial machine to obtain at least one command block included in the program; generating an interpolation pulse group consisting of a plurality of interpolation pulses obtained by distributing a fixed number of unit pulses for each predetermined interpolation period along a time axis, a number of unit pulses required for the operation of the control axis by the command block; dividing the interpolation pulse group into a pair of partial interpolation pulse groups whose trailing edges and leading edges in the time axis direction overlap, wherein the number of unit pulses at the trailing edge monotonically decreases along the time axis direction and the number of unit pulses at the leading edge monotonically increases along the time axis direction; and inputting each of the partial interpolation pulse groups to an acceleration / deceleration circuit capable of setting a different time constant, thereby adding up and outputting output pulses output from each acceleration / deceleration circuit. (Appendix 13) 2. A numerical control program that causes a computer to execute the following steps: analyze a program for operating a control axis of an industrial machine, thereby obtaining at least one command block included in the program; generate an interpolation pulse group consisting of a plurality of interpolation pulses obtained by distributing a fixed number of unit pulses for each predetermined interpolation period along a time axis, a number of unit pulses required for the operation of the control axis by the command block, along the time axis; divide the interpolation pulse group into a pair of partial interpolation pulse groups whose trailing edges and leading edges in the time axis direction overlap, wherein the number of unit pulses at the trailing edge monotonically decreases along the time axis direction and the number of unit pulses at the leading edge monotonically increases along the time axis direction; and input each of the partial interpolation pulse groups to an acceleration / deceleration circuit capable of setting a different time constant, thereby adding up and outputting output pulses output from each acceleration / deceleration circuit. (Appendix 14) a plurality of unit pulses necessary for the operation of the control axis by each of the plurality of partitioned command blocks, the plurality of interpolation pulse groups being each composed of a plurality of interpolation pulses distributed in a predetermined number for each predetermined interpolation period along a time axis; shaping a pair of the interpolation pulse groups corresponding to the partitioned command blocks adjacent in the time axis direction into a shape in which a trailing edge and a leading edge of each of the interpolation pulse groups overlap in the time axis direction, the number of the unit pulses at the trailing edge monotonically decreases in the time axis direction, and the number of the unit pulses at the leading edge monotonically increases in the time axis direction; and inputting the interpolation pulse groups corresponding to each of the partitioned command blocks to acceleration / deceleration circuits capable of setting different time constants, thereby adding up and outputting output pulses output from each of the acceleration / deceleration circuits. (Appendix 15) 2. A numerical control program that causes a computer to execute the following steps: analyze a program for operating a control axis of an industrial machine, thereby obtaining at least one command block included in the program; dividing the command block into a plurality of partitioned command blocks; generating a plurality of interpolation pulse groups consisting of a plurality of interpolation pulses obtained by distributing a fixed number of unit pulses for each predetermined interpolation period along a time axis, the number of unit pulses being a number required for the operation of the control axis by each partitioned command block, the number of unit pulses being distributed along a time axis by a fixed number for each predetermined interpolation period; shaping a pair of the interpolation pulse groups corresponding to the partitioned command blocks adjacent in the time axis direction into shapes in which the trailing edge and leading edge of each group overlap in the time axis direction, the number of unit pulses at the trailing edge monotonically decreases in the time axis direction, and the number of unit pulses at the leading edge monotonically increases in the time axis direction; and inputting the interpolation pulse groups corresponding to each of the partitioned command blocks to acceleration / deceleration circuits in which different time constants can be set, thereby adding up and outputting output pulses output from each of the acceleration / deceleration circuits. [Explanation of symbols]

[0059] 1, 1´ Numerical control device 2. Memory 3 Processors 5. Machine tools (industrial machinery) 22 Machining program (program) 22a Command Block 23 Acceleration parameters 24 Deceleration parameters 25 Acceleration / Deceleration Circuit 25a, 25b acceleration / deceleration circuit 25a´, 25b´, 25c´, 25d´, 25e´ Acceleration / deceleration circuit 53 Control axis f Interpolation period P Interpolated Pulse Group P1´, P2´ Partially interpolated pulse group OP1, OP2 output pulse OP1´, OP2´, OP3´, OP4´, OP5´ Output pulse T1 Time constant (first time constant) T2 time constant (second time constant)

Claims

1. It comprises at least one memory, at least one processor, and multiple acceleration / deceleration circuits capable of setting different time constants. The aforementioned processor, By analyzing a program that operates the control axes of an industrial machine, at least one command block included in the program is obtained. The command block generates a group of interpolation pulses consisting of multiple unit pulses, each a certain number of which are distributed along the time axis at predetermined interpolation cycles, that are necessary for the operation of the control axis. The interpolation pulse group is divided into a pair of partial interpolation pulse groups in which the trailing edge and leading edge in the time axis direction overlap, wherein the number of unit pulses at the trailing edge monotonically decreases in the time axis direction, and the number of unit pulses at the leading edge monotonically increases in the time axis direction. A numerical control device that inputs each of the partial interpolation pulse groups to different acceleration / deceleration circuits, thereby summing and outputting the output pulses from each of the acceleration / deceleration circuits.

2. The memory stores acceleration parameters related to acceleration operations and deceleration parameters related to deceleration operations. The aforementioned processor, Select two of the acceleration / deceleration circuits from among the multiple acceleration / deceleration circuits, A first time constant corresponding to the acceleration parameter is set in one of the selected acceleration / deceleration circuits, and the partial interpolation pulse group, including the starting end of the interpolation pulse group, is input. The numerical control device according to claim 1, which sets a second time constant corresponding to the deceleration parameter in the other selected acceleration / deceleration circuit and inputs the partial interpolation pulse group including the termination of the interpolation pulse group.

3. The memory stores the number of acceleration / deceleration circuits, The aforementioned processor, The interpolation pulse group is divided into the same number of partial interpolation pulse groups as the aforementioned number, The numerical control device according to claim 2, wherein, among the plurality of acceleration / deceleration circuits, two selected acceleration / deceleration circuits are excluded, and a time constant of a magnitude that divides the difference between the first time constant and the second time constant into equal intervals is set for the remaining acceleration / deceleration circuits, and the partial interpolation pulse group that does not include the start and end points is input.

4. The memory stores acceleration parameters related to acceleration operations and deceleration parameters related to deceleration operations. The aforementioned processor, The numerical control device according to claim 1, wherein from among a plurality of acceleration / deceleration circuits, an acceleration / deceleration circuit having a first time constant corresponding to the acceleration parameter is selected as the acceleration / deceleration circuit to which the partial interpolation pulse group including the start of the interpolation pulse group is input, and an acceleration / deceleration circuit having a second time constant corresponding to the deceleration parameter is selected as the acceleration / deceleration circuit to which the partial interpolation pulse group including the end of the interpolation pulse group is input.

5. It comprises at least one memory, at least one processor, and multiple acceleration / deceleration circuits capable of setting different time constants. The aforementioned processor, By analyzing a program that operates the control axes of an industrial machine, at least one command block included in the program is obtained. The command block is divided into multiple sub-command blocks, Multiple interpolation pulse groups are generated, each consisting of multiple unit pulses, the number of which is necessary for the operation of the control axis by each section command block, distributed in a fixed predetermined number along the time axis at predetermined interpolation cycles. A pair of interpolation pulse groups corresponding to adjacent segment command blocks in the time axis direction are shaped such that their trailing and leading edges overlap in the time axis direction, the number of unit pulses at the trailing edge decreases monotonically in the time axis direction, and the number of unit pulses at the leading edge increases monotonically in the time axis direction. A numerical control device that inputs the interpolation pulse group corresponding to each of the aforementioned classification command blocks to different acceleration / deceleration circuits, thereby summing and outputting the output pulses output from each of the acceleration / deceleration circuits.

6. The memory stores acceleration parameters related to acceleration operations and deceleration parameters related to deceleration operations. The aforementioned processor, From among the multiple acceleration / deceleration circuits, two acceleration / deceleration circuits are selected. A first time constant corresponding to the acceleration parameter is set in one of the selected acceleration / deceleration circuits, and the interpolation pulse group corresponding to the first executed segment command block is input. The numerical control device according to claim 5, which sets a second time constant corresponding to the deceleration parameter in the other selected acceleration / deceleration circuit and inputs the interpolation pulse group corresponding to the last executed segment command block.

7. The memory stores the number of acceleration / deceleration circuits, The aforementioned processor, The command block is divided into the same number of section command blocks as the aforementioned number, The numerical control device according to claim 6, wherein, among the plurality of acceleration and deceleration circuits, two selected acceleration and deceleration circuits are excluded, and a time constant is set to the remaining acceleration and deceleration circuits such that the difference between the first time constant and the second time constant is divided into equal intervals, and the interpolation pulse group is input, excluding the interpolation pulse group corresponding to the division command block that is executed first and last.

8. The memory stores acceleration parameters related to acceleration operations and deceleration parameters related to deceleration operations. The aforementioned processor, The numerical control device according to claim 5, wherein, from among a plurality of acceleration / deceleration circuits, the acceleration / deceleration circuit having a first time constant corresponding to the acceleration parameter is selected as the acceleration / deceleration circuit to which the interpolation pulse group corresponding to the section command block that is executed first is input, and the acceleration / deceleration circuit having a second time constant corresponding to the deceleration parameter is selected as the acceleration / deceleration circuit to which the interpolation pulse group corresponding to the section command block that is executed last is input.

9. The numerical control device according to any one of claims 5 to 8, wherein the processor divides the command blocks such that the amount of movement of the control axis by each of the division command blocks is equal.

10. The numerical control device according to any one of claims 1 to 8, wherein the total number of unit pulses for each interpolation period is the predetermined number at the trailing edge and the leading edge that overlap each other in the time axis direction.

11. The numerical control device according to any one of claims 1 to 8, wherein the acceleration / deceleration circuit is a software circuit stored in the memory.