Numerical Control Device

The numerical control device addresses the challenge of optimal acceleration and deceleration by dividing interpolation pulse groups and applying different time constants, achieving smooth transitions and reduced shocks in control axis operations.

JP7680641B1Active Publication Date: 2025-05-20FANUC LTD
View PDF 6 Cites 0 Cited by

Patent Information

Application Number
JP2024548746
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Filing Date
2024-05-31
Publication Date
2025-05-20
Estimated Expiration
2044-05-31

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 0007680641000001
    Figure 0007680641000001
  • Figure 0007680641000002
    Figure 0007680641000002
  • Figure 0007680641000003
    Figure 0007680641000003
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. The device includes at least one memory, at least one processor, and a plurality of acceleration / deceleration circuits each capable of setting a different time constant; The processor, By analyzing a program for operating a control axis of an industrial machine, at least one command block included in the program is obtained; generating an interpolation pulse group consisting of a plurality of interpolation pulses obtained by distributing a certain number of unit pulses necessary for the operation of the control axis by the command block along a time axis at each predetermined interpolation period; Dividing the interpolation pulse group into a pair of partial interpolation pulse groups, each of which has a trailing edge and a leading edge overlapping in the time axis direction, the number of unit pulses at the trailing edge monotonically decreasing in the time axis direction and the number of unit pulses at the leading edge monotonically increasing in the time axis direction; The numerical control device inputs each of the partial interpolation pulse groups to different acceleration / deceleration circuits, thereby adding up and outputting the output pulses output from each of the acceleration / deceleration circuits.

2. the memory stores an acceleration parameter related to an acceleration operation and a deceleration parameter related to a deceleration operation; The processor, selecting two of the acceleration / deceleration circuits from among the plurality of acceleration / deceleration circuits; a first time constant corresponding to the acceleration parameter is set in the selected one of the acceleration / deceleration circuits, and the partial interpolation pulse group including the starting end of the interpolation pulse group is input; 2. The numerical control device according to claim 1, wherein a second time constant corresponding to the deceleration parameter is set in the other selected acceleration / deceleration circuit, and the partial interpolation pulse group including a terminal end of the interpolation pulse group is input.

3. the memory stores the number of the acceleration / deceleration circuits; The processor, Dividing the interpolated pulse group into the same number of partial interpolated pulse groups as the number of the interpolated pulse groups; 3. The numerical control device according to claim 2, wherein, among the plurality of acceleration / deceleration circuits, a time constant having a magnitude of each division point when a difference between the first time constant and the second time constant is divided into the number-1 at equal intervals is set to each of the remaining acceleration / deceleration circuits excluding two selected acceleration / deceleration circuits, and the partial interpolation pulse group not including the starting end and the ending end is input.

4. the memory stores an acceleration parameter related to an acceleration operation and a deceleration parameter related to a deceleration operation; The processor, 2. A numerical control device according to claim 1, wherein from among the 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 starting end 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 ending end of the interpolation pulse group is input.

5. The device includes at least one memory, at least one processor, and a plurality of acceleration / deceleration circuits each capable of setting a different time constant; The processor, By analyzing a program for operating a control axis of an industrial machine, at least one command block included in the program is obtained; Segmenting the command block into a plurality of segmented command blocks; generating a plurality of interpolation pulse groups each consisting of a plurality of interpolation pulses obtained by distributing a certain number of unit pulses necessary for the operation of the control axis by each of the division command blocks along a time axis at a predetermined interval for each predetermined interpolation period; shaping a pair of the interpolation pulse groups corresponding to the section command blocks adjacent in the time axis direction into a shape in which the trailing edge and the leading edge of each group 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; a numerical control device which inputs the interpolation pulse groups corresponding to the respective division command blocks to different acceleration / deceleration circuits, thereby adding up and outputting output pulses output from the respective acceleration / deceleration circuits.

6. the memory stores an acceleration parameter related to an acceleration operation and a deceleration parameter related to a deceleration operation; The processor, selecting two of the acceleration / deceleration circuits from among the plurality of acceleration / deceleration circuits; a first time constant corresponding to the acceleration parameter is set in the selected one of the acceleration / deceleration circuits, and the interpolation pulse group corresponding to the section command block to be executed first is input; 6. The numerical control device according to claim 5, wherein a second time constant corresponding to the deceleration parameter is set in the other selected acceleration / deceleration circuit, and the interpolation pulse group corresponding to the section command block to be executed last is input.

7. the memory stores the number of the acceleration / deceleration circuits; The processor, Dividing the command block into a number of divided command blocks equal to the number of the command blocks; 7. The numerical control device according to claim 6, wherein, among the plurality of acceleration / deceleration circuits, a time constant having a magnitude of each division point when a difference between the first time constant and the second time constant is divided into the number-1 at equal intervals is set to each of the remaining acceleration / deceleration circuits excluding two selected acceleration / deceleration circuits, and the interpolation pulse groups excluding the interpolation pulse groups corresponding to the section command block executed first and last are input.

8. the memory stores an acceleration parameter related to an acceleration operation and a deceleration parameter related to a deceleration operation; The processor, 6. A numerical control device according to claim 5, wherein from among the 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 to be 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 to be executed last is input.

9. The numerical control device according to claim 5 , wherein the processor divides the command blocks so that the amounts of movement of the control axes by the divided command blocks are equal to each other.

10. 9. The numerical control device according to claim 1, wherein a total number of the unit pulses per interpolation period is the predetermined number at the trailing edge and the leading edge which overlap each other in the time axis direction.

11. The numerical control device according to claim 1 , wherein the acceleration / deceleration circuit is a software circuit stored in the memory.

Citation Information

Patent Citations

  • Acceleration and deceleration method in vertical direction for moving member

    JP1997106310A

  • Method and device for acceleration and deceleration control over feed shaft in numerical control

    JP1999202925A

  • Moving speed command generation method and device therefor

    JP2000089815A

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

    JP2016081172A

  • Control device and computer-readable recording medium

    JP7415093B1