Numerical control device, information processing device, and computer-readable storage medium

WO2025220115A9PCT designated stage Publication Date: 2026-08-27FANUC LTD
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
PCT/JP2024/015133
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Filing Date
2024-04-16
Publication Date
2026-08-27

Smart Images

  • Figure JP2024015133_27082026_PF_FP_ABST
    Figure JP2024015133_27082026_PF_FP_ABST
Patent Text Reader

Abstract

This numerical control device reads curve instructions and a speed instruction of a processing program, derives a polynomial expressing the trajectory and speed of a tool on the basis of coefficients included in the instructions, generates a movement instruction for each control cycle from the polynomial, and outputs the movement instructions to execute control.
Need to check novelty before this filing date? Find Prior Art

Description

Numerical control device, information processing device, and computer-readable storage medium

[0001] The present disclosure relates to a numerical control device, an information processing device, and a computer-readable storage medium.

[0002] In machining of a machine tool, a cutting section and a non-cutting section are usually repeated. In the cutting section, the tool is moved along a machining path. In the non-cutting section, it is common to move each axis independently while avoiding contact with the workpiece. That is, the tool is linearly moved in the X-axis direction and the Y-axis direction while avoiding contact with the workpiece. Also, there is a technique of moving the tool curvilinearly in order to shorten the movement time in the non-cutting section (for example, Patent Document 1).

[0003] Japanese Patent Application Laid-Open No. 2021-12522

[0004] When moving the tool curvilinearly, the curve is divided into minute line segments, and the position and speed are commanded. When the curve is divided into minute line segments, the amount of commands to be processed per unit time increases and the load becomes high.

[0005] In the field of numerical control, it is desired to reduce the load of the process of analyzing and executing the tool movement command in the curvilinear non-cutting section.

[0006] A numerical control device according to an aspect of the present disclosure includes a curve command reading unit that reads a curve command of a machining program, a mathematical formula derivation unit that derives a polynomial expressing the locus of the tool based on coefficients included in the curve command, a curve command analysis unit that generates a movement command for each control cycle from the polynomial, and a curve command unit that outputs the movement command and executes control.

[0007] This is a block diagram of the numerical control device of the first embodiment. This figure shows an example of a machining program including curve commands. This figure shows the tool trajectory expressed as a polynomial. This is a flowchart explaining the operation of the numerical control device. This figure shows an example of a conventional curve machining program in a non-cutting section. This is a block diagram of the numerical control device of the second embodiment. This is an example of a machining program including a block for saving and executing curve commands. This figure shows the tool trajectory when the machining program in Figure 7 is executed. This is a block diagram of the information processing device of the third embodiment. This figure shows an example of a machining program that calls a file of move commands in binary format. This figure shows an example of move commands in binary format. This is a block diagram of the information processing device 200 of the fourth embodiment. This is a hardware configuration diagram of the numerical control devices of the first and second embodiments and the information processing device of the third embodiment.

[0008] Embodiments of this disclosure will be described below with reference to the drawings. In the following description, components having the same or similar functions will be denoted by the same reference numerals. Duplication of these components may be omitted.

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

[0010] [First Embodiment] Figure 1 is a block diagram of the numerical control device 100 of the first embodiment. The numerical control device 100 includes a curve command reading unit 1, a formula derivation unit 2, a curve command analysis unit 3, and a curve command unit 4.

[0011] The curve command reading unit 1 reads the curve command from the machining program. The grammar of the curve command is not an existing one, but is newly disclosed in this embodiment. The curve command is a machining program representation of a polynomial that calculates the "X coordinate," "Y coordinate," and "Z coordinate." The grammar of the curve command includes a word indicating the degree of the polynomial and a word indicating the coefficient of the polynomial. Figure 2 is an example of a curve command. The curve command in Figure 2 is "G0Gx.xP1A_B_C_", "P2A_B_C_", "P3A_B_C_", and "P4A_B_C_". The "Gx.x" in the first line is a word indicating that it is a curve command. "A_", "B_", and "C_" are words indicating the coefficients of each axis. In this embodiment, "A_" indicates the coefficient of the term that calculates the "X coordinate", "B_" indicates the coefficient of the term that calculates the "Y coordinate", and "C_" indicates the coefficient of the term that calculates the "Z coordinate". "P_" is a word indicating the degree. The number after "P" indicates "degree + 1". In other words, if it is "P2A_B_C_", the degree of the terms used to calculate the "X coordinate", "Y coordinate", and "Z coordinate" is "1". If it is "P3A_B_C_", the degree of the terms used to calculate the "X coordinate", "Y coordinate", and "Z coordinate" is "2".

[0012] The formula derivation unit 2 converts the curve command read from the machining program into a polynomial. The following are formulas representing the "X coordinate," "Y coordinate," and "Z coordinate." The formula represents a curve that smoothly passes through the points described later. The method of connecting multiple points with a curve is called interpolation. There are several interpolation methods, but since they are well-known techniques, their explanation will be omitted.

[0013]

[0014] Figure 3 shows the tool trajectory as represented by a polynomial. In the example in Figure 3, the tool drills holes in two locations. The section between the first machining operation (machining 1) and the next machining operation (machining 2) is a non-cutting section.

[0015] In this embodiment, the passing points include the starting position P0 for movement under the non-cutting command, the highest point P2 for lifting, and the ending position P4. Additionally, new passing points may be defined to avoid contact with the workpiece being machined.

[0016] The polynomial in this embodiment expresses the elements of the three-dimensional coordinate system, the "X coordinate," "Y coordinate," and "Z coordinate," as functions of time t. The "X coordinate," "Y coordinate," and "Z coordinate" indicate the position of the tool at time t. By differentiating the functions of the "X coordinate," "Y coordinate," and "Z coordinate," the speed of the tool at time t can be calculated. In the example shown in Figure 3, since the object is translated relative to the XZ plane, functions for the three directions of the "X axis," "Y axis," and "Z axis" are unnecessary, and only functions for the "X axis" and "Z axis" are obtained.

[0017] Furthermore, the function does not necessarily have to be a function of time t. For example, the NURBS curve equation (Non-Uniform Rational B-Splines) can be used as the function. Similar to the former, the NURBS curve allows the paths along each of the X, Y, and Z axes to be expressed as polynomial functions with respect to the parameter t. However, since the NURBS curve equation is not a function of time, the velocity must also be expressed as a polynomial. Similar to the command format described above, "G0Gx.xPnA_B_C_α_β_γ" is used, and while the command position is commanded with coefficients of order n+1 as A, B, and C, the velocity is commanded with coefficients of order n+1 as α, β, and γ.

[0018] The curve command analysis unit 3 calculates the tool position and the tool speed at that position from the polynomial obtained from the curve command, and generates a movement amount (movement command) relative to the control period.

[0019] The curve command analysis unit 3 corrects the movement commands generated from the polynomials. If the amount of movement calculated from the polynomials is not analyzable by the industrial machine per control cycle, the curve command analysis unit combines blocks to correct the amount of movement so that it falls within an appropriate range.

[0020] The curve command unit 4 outputs movement commands calculated from polynomials to a servo amplifier or the like. The tool moves through the non-cutting section along the trajectory and at the speed indicated by the curve command.

[0021] Referring to Figure 4, the operation of the numerical control device 100 will be explained. The numerical control device 100 analyzes the machining program and performs machining. If the machining program includes a curve command as shown in Figure 2, the curve command reading unit 1 reads the coefficients of the polynomial and the degree of the polynomial according to the grammar of the curve command (step S1).

[0022] The formula derivation unit 2 derives a polynomial based on the coefficients and degree read by the curve command reading unit 1 (step S2).

[0023] The curve command analysis unit 3 calculates the tool position and the tool speed at that position from the polynomial obtained from the curve command (step S3). The curve command analysis unit 3 calculates the amount of tool movement for each control cycle from the tool speed and generates a movement command (step S4).

[0024] The curve command unit 4 outputs tool movement commands for each control cycle to the servo amplifier (step S5). The servo motor moves the tool according to the movement commands. The tool moves through the non-cutting section along the trajectory and at the speed indicated by the curve command.

[0025] The numerical control device 100 of this embodiment employs a notation method called curve command, which allows for a reduction in the size of the machining program.

[0026] [Correction based on Rule 91 16.06.2026] For comparison, a conventional machining program will be described. Moving a tool along a curve in a conventional machining program requires a large number of commands. This is because, conventionally, to command a curve where the speed changes with respect to the tool's position, the curve is divided into minute line segments, and a speed command is issued for each minute line segment. Therefore, conventionally, the same number of commands as there are minute line segments are required. Figure 5 shows a conventional machining program for a curve in a non-cutting section. In the example in Figure 5, the tool is moved along a curve by executing the movement commands and speed commands for minute line segments in succession, such as "G0Z-49.998.F2000.0", "G0Z-49.995.X100.001.F2001.0", ..., "G0Z5.0X150.F2000.0". In conventional machining programs, the curve is represented by the same number of commands as the minute line segments, resulting in a large program size.

[0027] According to the numerical control device 100 of this embodiment, by representing the curve with a polynomial, the machining program can be shortened, the capacity of the machining program can be reduced, and the load on loading the machining program can be reduced.

[0028] Furthermore, because the tool moves at a high speed in the non-cutting section, if commands are generated for each minute line segment as in the conventional method, the number of commands to be processed per unit time will be large. According to the numerical control device 100 of this embodiment, by representing the curve with a polynomial, the number of movement commands to be processed per unit time can be adjusted by combining commands.

[0029] Furthermore, according to the numerical control device 100 of this embodiment, since the polynomial takes the tool's time t as a variable, the tool's coordinates and velocity can be calculated from the polynomial by differentiating it. Based on these coordinates and velocity, the numerical control device 100 can generate movement commands for the amount of movement that the machine tool can analyze per control cycle. In addition, even if the command regarding velocity is not a function of time t, such as the NURBS curve equation, the tool's coordinates and velocity can be calculated if it is expressed in the form of a polynomial.

[0030] [Second Embodiment] Figure 6 is a block diagram of the numerical control device 100 of the second embodiment. The numerical control device 100 of the second embodiment includes a curve command reading unit 1, a formula derivation unit 2, a curve command analysis unit 3, a curve command unit 4, and a curve command storage unit 5. The curve command storage unit 5 stores curve commands in the non-cutting section. The stored curve commands can be read out as needed. Note that the description of the same configuration as the first embodiment in the numerical control device 100 of the second embodiment will be omitted.

[0031] Figure 7 shows an example of a machining program that executes a stored curve command. In Figure 7, the curve command expressed in the block between "G0Gx.xL1" and "Gx.yL1" of the machining program is stored in the curve command storage unit. In the next block, "Gx.zL1X10.0", the created curve command is executed after being translated by "X10.0".

[0032] Figure 8 shows the tool trajectory when the machining program in Figure 7 is executed. This trajectory passes through the starting position P0, the highest point of lifting P2, and the ending position P4. The machining program in Figure 7 stores this curve command. Then, the starting point is shifted by "X10.0" and the tool is moved according to the stored curve command. In the numerical control device 100 of the second embodiment, defining and storing the curve command not only reduces the capacity of the machining program for the curve command but also reduces the load on the curve command analysis unit.

[0033] [Third Embodiment] Figure 9 is a block diagram of the numerical control device 100 of the third embodiment. The numerical control device 100 includes a curve command reading unit 1, a curve command analysis unit 3, a curve command unit 4, and a binary storage unit 6. Note that the description of the same configuration as the first embodiment in the numerical control device 100 of the third embodiment will be omitted.

[0034] The numerical control device 100 of the third embodiment includes a binary storage unit 6. The binary storage unit 6 is a storage area for programs that the numerical control device 100 can access. The binary storage unit 6 stores movement commands in binary format. Binary format is a data representation of the amount of tool movement. By using binary format for movement commands, analysis becomes unnecessary and processing becomes faster. In Figure 10, the curve commands of the machining program are replaced with a block called "G0.new". When the curve command reading unit 1 reads the command "G0.new" from the machining program, it reads the "G0.new" file from the binary storage unit 6. The curve command unit 4 outputs the binary format movement commands read from the "G0.new" file to a servo amplifier or the like.

[0035] In the numerical control device 100 of the second embodiment, since binary-formatted movement commands are issued directly, analysis of the machining program is unnecessary, and the computational load can be reduced.

[0036] Figure 11 shows an example of a binary-format movement command. In a binary-format movement command, the combination of movement amounts for X, Y, and Z is expressed in sequence for each control cycle. The binary format also has the advantage of being easy to read because the change in tool position is expressed in a time series.

[0037] [Fourth Embodiment] In the fourth embodiment, an external information processing device 200 analyzes the curve commands of the machining program and generates axis movement commands. Figure 12 is a block diagram of the information processing device 200 of the fourth embodiment. The information processing device 200 is, for example, a personal computer attached to the numerical control device, a personal computer connected to the numerical control device via a wired / wireless network, a cell computer, a fog computer, a cloud server, or other computer.

[0038] [Correction based on Rule 91 16.06.2026] The information processing device 200 of the fourth embodiment includes a curve command reading unit 1, a formula derivation unit 2, a curve command analysis unit 3, and a movement command output unit 7. The curve command reading unit 1, formula derivation unit 2, and curve command analysis unit 3 of the third embodiment perform substantially the same operations as those of the first embodiment. That is, the curve command reading unit 1 reads the curve command of the machining program, and the formula derivation unit 2 converts the curve read from the machining program into a polynomial. The curve command analysis unit 3 generates movement commands for each control cycle from the polynomial obtained from the curve command. The movement command output unit 7 converts the generated movement commands into a binary file and outputs it to the numerical control device. The numerical control device includes a curve command unit 4. The curve command unit 4 reads the binary format movement command and controls the curve movement of the tool.

[0039] In the third embodiment, the information processing device 200 generates movement commands from curve commands, thus reducing the load on the numerical control device to generate movement commands. Furthermore, even if the numerical control device does not have a function to analyze curve commands, the information processing device 200 can analyze the curve commands.

[0040] The hardware configuration of the numerical control device 100 and the information processing device 200 to which this disclosure is applied will be described below. Figure 13 is a hardware configuration diagram of the numerical control device 100 and the information processing device 200. The information processing device 200 also has a similar hardware configuration, but its description will be omitted. As shown in Figure 13, the numerical control device 100 includes a CPU 111 that controls the numerical control device 100 overall, a ROM 112 that records programs and data, and a RAM 113 for temporarily expanding data. The CPU 111 reads the system program recorded in the ROM 112 via the bus and converts curve commands into movement commands.

[0041] The non-volatile memory 114 is backed up, for example, by a battery (not shown), so that its stored state is maintained even when the power to the numerical control device 100 is turned off. The non-volatile memory 114 stores various data, such as programs read from external devices 120 via interfaces 115, 118, and 119, and operation inputs entered via input devices 20. The non-volatile memory 114 may also store programs and data for executing the numerical control device 100 of this embodiment.

[0042] Interface 115 is an interface for connecting the numerical control unit 100 to an external device 120 such as an adapter. Programs and various parameters are read from the external device 120. Interface 118 is an interface for connecting the numerical control unit 100 to a display device 30 such as a liquid crystal display. The display device 30 displays data read into memory, data obtained as a result of executing programs, etc. Interface 119 is an interface for connecting the numerical control unit 100 to an input device 20 such as a keyboard or pointing device. The input device 20 passes commands, data, etc. based on operator operations to the CPU 111 via interface 119.

[0043] While this disclosure has been described in detail, it is not limited to the individual embodiments described above. These embodiments can be added, replaced, modified, partially deleted, etc., in any way that does not depart from the gist of this disclosure or from the spirit of this disclosure derived from the claims and their equivalents. These embodiments can also be implemented in combination. For example, the order of operations and processes in the embodiments described above are given as examples only and are not limited thereto.

[0044] The following are the appendices according to the embodiments of the present disclosure. (Appendix 1) The numerical control device (100) includes a curve command reading unit (1) that reads a curve command of a machining program, a mathematical formula derivation unit (2) that derives a polynomial representing the tool locus based on the coefficients included in the curve command, a curve command analysis unit (3) that generates a movement command for each control cycle from the polynomial, and a curve command unit (4) that outputs the movement command and executes control. (Appendix 2) The mathematical formula derivation unit (2) derives a polynomial representing the tool locus based on the coefficients and degrees included in the curve command. (Appendix 3) The polynomial represents the position of the tool and the speed of the tool at that position. (Appendix 4) The polynomial is a function with time as a variable, and the derivative of time indicates the speed of the tool. (Appendix 5) The mathematical formula derivation unit (2) derives a plurality of polynomials, and each polynomial represents each element in three dimensions. (Appendix 6) The curve command analysis unit (3) adjusts the number of movement commands to be processed per unit time by combining commands. (Appendix 7) The curve command analysis unit (3) generates a movement command for the amount of movement that the machine tool can analyze per control cycle. (Appendix 8) The numerical control device (100) includes a curve command storage unit (5) that stores the movement command, and the curve command reading unit (1) reads the movement command stored in the curve command storage unit (5) according to the machining program, and the curve command unit (4) outputs the read movement command and executes control. (Appendix 9) The numerical control device (100) includes a curve command reading unit (1) that reads a curve command of a machining program, a mathematical formula derivation unit (2) that derives a polynomial representing the tool locus based on the coefficients included in the curve command, a curve command analysis unit (3) that generates a movement command for each control cycle from the polynomial, and a movement command output unit (7) that outputs the movement command to the numerical control device (100). (Appendix 10) A computer-readable storage medium (112, 113,  114) stores instructions for causing one or more processors (111) to execute a process of reading a curve command of a machining program, deriving a polynomial representing the tool locus based on the coefficients included in the curve command, and generating a movement command for each control cycle from the polynomial.

[0045] 100 Numerical control device 200 Information processing device 1 Curve command reading unit 2 Formula derivation unit 3 Curve command analysis unit 4 Curve command unit 5 Curve command storage unit 6 Binary storage unit 7 Movement command output unit 111 CPU 112 ROM 113 RAM 114 Non-volatile memory

Claims

1. A numerical control device comprising: a curve command reading unit that reads curve commands from a machining program; a formula derivation unit that derives a polynomial representing the tool trajectory based on coefficients included in the curve commands; a curve command analysis unit that generates movement commands for each control cycle from the polynomial; and a curve command unit that outputs the movement commands and executes the control.

2. The numerical control device according to claim 1, wherein the formula derivation unit derives a polynomial that represents the tool's trajectory based on the coefficients and degree included in the curve command.

3. The numerical control device according to claim 1, wherein the polynomial represents the position of the tool and the speed of the tool at that position.

4. The numerical control device according to claim 1, wherein the polynomial is a function of time, and the derivative of time indicates the speed of the tool.

5. The numerical control device according to claim 1, wherein the formula derivation unit derives a plurality of polynomials, and each polynomial represents each element in three dimensions.

6. The numerical control device according to claim 1, wherein the curve command analysis unit adjusts the number of movement commands to be combined and processed per unit time.

7. The numerical control device according to claim 1, wherein the curve command analysis unit generates a movement command for a movement amount that can be analyzed by the machine tool per control cycle.

8. A numerical control device according to claim 1, comprising a curve command storage unit for storing the movement commands, wherein the curve command reading unit reads the movement commands stored in the curve command storage unit in accordance with the machining program, and the curve command unit outputs the read movement commands to execute control.

9. An information processing device comprising: a curve command reading unit for reading curve commands of a machining program; a formula derivation unit for deriving a polynomial that represents the tool trajectory based on coefficients included in the curve commands; a curve command analysis unit for generating movement commands for each control cycle from the polynomial; and a movement command output unit for outputting the movement commands to a numerical control device.

10. A computer-readable storage medium that stores instructions for one or more processors to execute a process that reads curve commands of a machining program, derives a polynomial representing the tool's trajectory based on coefficients included in the curve commands, and generates movement commands for each control cycle from the polynomial.