Program optimization device and computer-readable storage medium

The program optimization device addresses inefficiencies in spindle motor power consumption by converting non-cutting commands to linear interpolation, reducing energy use and heat in machine tools without additional device functions, applicable to various numerical control systems.

WO2025079207A1PCT designated stage expired Publication Date: 2025-04-17FANUC LTD
View PDF 7 Cites 0 Cited by

Patent Information

Application Number
PCT/JP2023/037047
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Filing Date
2023-10-12
Publication Date
2025-04-17

AI Technical Summary

Technical Problem

Conventional methods to reduce spindle motor power consumption and heat generation in machine tools require additional functions in numerical control devices, which are not available in all devices, leading to inefficiencies in spindle and feed axis synchronization during machining processes.

Method used

A program optimization device that analyzes machining programs to detect consecutive cutting and non-cutting commands, converts non-cutting commands to linear interpolation, and calculates command values to maintain spindle speed, thereby reducing power consumption and heat generation without requiring additional device functions.

Benefits of technology

The device generates an optimized machining program that reduces spindle motor power consumption and heat generation by synchronizing spindle and feed axis movements, applicable to any numerical control device, enhancing energy efficiency.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure JP2023037047_17042025_PF_FP_ABST
    Figure JP2023037047_17042025_PF_FP_ABST
Patent Text Reader

Abstract

A program optimization device according to the present invention: detects, from a machining program, a section in which a cutting command for synchronizing rotation of a main shaft and movement of a feed shaft and a non-cutting command are continuous; acquires, from the machining program, a physical quantity for optimizing the detected section; calculates a command value for converting the non-cutting command into linear interpolation on the basis of the physical quantity; converts the non-cutting command into linear interpolation; adds the command value to the linear interpolation; and outputs, as an optimized machining program, a machining program with less electric energy consumption among the machining programs before conversion and after conversion.
Need to check novelty before this filing date? Find Prior Art

Description

Program optimization device and computer-readable storage medium

[0001] The present disclosure relates to a program optimization device and a computer-readable storage medium.

[0002] In lathes, there are processes in which the rotation of the spindle and the movement of the feed axis are synchronized to cut the workpiece (for example, thread cutting, eccentric machining, etc.). In such processes, the rotation of the spindle and the movement of the feed axis are synchronized during cutting.

[0003] When cutting and positioning are performed consecutively, the spindle is stopped after cutting, and the spindle and feed axis are positioned to the next cutting start position before cutting is performed again. This causes the spindle to accelerate and decelerate repeatedly, which can lead to increased power consumption and heat generation in the spindle motor.

[0004] Conventionally, in order to reduce power consumption, there is a method of analyzing a machining program, calculating the time for switching a device from an operating state to a power-saving state, and creating a machine operation pattern based on this time. For example, see Patent Document 1.

[0005] Japanese Patent Application Laid-Open No. 2017-199061

[0006] However, to realize the method described in Patent Document 1, it is necessary to create operation patterns for the spindle and feed axis. A numerical control device that does not have the function to create patterns cannot reduce power consumption using the method described in Patent Document 1. It is desirable to reduce power consumption in any numerical control device without adding special functions.

[0007] In machine tool control, it is desirable to reduce the power consumption and heat generation of the spindle motor without adding special functions.

[0008] A program optimization device according to one aspect of the present disclosure includes a program analysis unit that searches a machining program, detects a portion where cutting commands that synchronize the rotation of the spindle and the movement of the feed axis are consecutive with non-cutting commands, and acquires physical quantities from the machining program to optimize the detected portion; a command value unit that calculates a command value for converting the non-cutting command into a linear interpolation based on the physical quantity; a program conversion unit that converts the non-cutting command into a linear interpolation and adds the command value to the linear interpolation; a data acquisition unit that acquires data necessary for calculating the power consumption of a spindle motor; a first power calculation unit that calculates the power consumption of the machining program before conversion; a second power calculation unit that calculates the power consumption of the converted machining program; a power comparison unit that compares the power consumption calculated by the first power calculation unit with the power consumption calculated by the second power calculation unit; and a program output unit that outputs a machining program with less power consumption as an optimized machining program.

[0009] FIG. 1 is a block diagram of a program optimization device. FIG. 2 is a flowchart explaining the operation of the program optimization device. FIG. 3 is an example of a machining program before conversion. FIG. 4 is a schematic diagram showing the movement of the spindle when the machining program is executed. FIG. 5 is a table of physical quantities acquired from the machining program. FIG. 6 is an example of a machining program after conversion. FIG. 7 is a graph showing the spindle speed and power consumption of the machining program before conversion. FIG. 8 is a graph showing the spindle speed and power consumption of the machining program after conversion. FIG. 9 is a block diagram of a modified example of the program optimization device. FIG. 10 is an example of a machining program before and after expansion. FIG. 11 is a hardware configuration diagram of the program optimization device.

[0010] The program optimization device 100 will be described below. FIG. 1 is a block diagram of the program optimization device 100. The program optimization device 100 includes a program analysis unit 1, a command value unit 2, a program conversion unit 3, a data acquisition unit 4, a first power calculation unit 5, a second power calculation unit 6, a power comparison unit 7, and a program output unit 8. The program optimization device 100 is implemented in an information processing device that includes an arithmetic unit and a storage device. The information processing device is not particularly limited. Specific examples include a numerical control device, a personal computer, and a server.

[0011] The program analysis unit 1 searches for a portion of the machining program to be optimized, and if a portion to be optimized is found, it acquires the physical quantities necessary for optimization. The portion to be optimized is a portion containing a series of cutting commands (such as thread cutting or eccentric machining) and non-cutting commands (such as rapid traverse) that synchronize the rotation of the spindle and the movement of the feed axis. When cutting and non-cutting commands are consecutive, the program analysis unit 1 acquires physical quantities related to the rotation of the spindle and the movement of the feed axis from the machining program. The physical quantities of the spindle and the feed axis include the amount of movement of the feed axis, the spindle speed, the start coordinate, the end coordinate, the coordinate value of the spindle at the start of rapid traverse, and the coordinate value of the spindle at the start of cutting. In the following description, the term "position" has two meanings. The position of the spindle refers to the rotation angle, and the position of the feed axis refers to spatial coordinates. In thread cutting or eccentric machining, the position (angle) of the spindle and the position (spatial coordinates) of the feed axis are correlated.

[0012] As mentioned above, repeated acceleration and deceleration of the spindle motor increases power consumption and heat generation. Therefore, we consider replacing the non-cutting command with a cutting command so that the spindle does not stop when a non-cutting command is issued after cutting. The numerical control device controls the spindle to maintain its previous speed without deceleration as long as the cutting command continues, so this mechanism is used to maintain the rotation of the spindle. Specifically, the non-cutting command is replaced with linear interpolation between the spindle and feed axis. The command value unit 2 calculates a command value to be added to the cutting command when replacing the non-cutting command with a cutting command, based on the physical quantities related to the rotation of the spindle and the physical quantities related to the movement of the feed axis.

[0013] This section explains how to calculate the command values. There are various possible syntaxes for the linear interpolation of the spindle and feed axes that replaces the non-cutting command, but here we will consider replacing it with G01. For linear interpolation of the spindle and feed axes, there are three command values, such as "G01 U_ H_ F_", namely, "spindle movement amount (H_)", "feed axis movement amount (U_)", and "composite speed of the spindle and feed axes (F_)". Of these command values, "feed axis movement amount (U_)" has already been specified in the non-cutting command before conversion, so the only two that need to be calculated here are "spindle movement amount (H_)" and "composite speed of the spindle and feed axes (F_)".

[0014] The formula (1) for calculating the "movement amount of the spindle" is as follows: Movement amount of the spindle [deg] = (movement amount of the feed axis) / (rapid traverse rate) × (spindle speed) × (360) (1)

[0015] The formula for calculating the "composite speed of the spindle and feed axis" is as follows: The "composite speed of the spindle and feed axis" is the quotient of the "composite movement amount of the spindle and feed axis" and the "time required for movement."

[0016] The "composite movement amount of the main axis and feed axis" is calculated using the following formula: Combined movement amount of the main axis and feed axis = √((movement amount of the main axis) 2 + (feed axis movement amount) 2 ) ... (2) "Time required for movement" is calculated using the following formula: Time required for movement = (movement amount of main axis / 360) / (main axis speed) ... (3)

[0017] Dividing the "composite movement amount of the main axis and feed axis" by the "time required for movement" gives the "composite speed of the main axis and feed axis" as shown in (4). Composite speed of the main axis and feed axis = (composite movement amount of the main axis and feed axis) / (time required for movement) ... (4) Substituting (2) and (3) into (4), the "composite movement amount of the main axis and feed axis" can be transformed as follows. Composite speed of the main axis and feed axis = √((movement amount of the main axis) 2 + (feed axis movement amount) 2 ) × (spindle speed) / (spindle movement amount / 360) ... (5)

[0018] The "composite speed of the spindle and feed axes" calculated in (4) or (5) is simply the speed at which the feed axis moves to the start position of the next command while maintaining the spindle speed at the time of the cutting command. Even if the spindle and feed axes move at this composite speed, the relative position of the spindle and feed axes at the start of the next cutting command will not match the relative position commanded in the machining program before conversion. If the relative positions do not match, for example, in thread cutting, the phases of the threads machined by each cutting command will not match. Therefore, the command value unit 2 adjusts the "composite speed of the spindle and feed axes" so that the relative position of the spindle and feed axes at the start of the cutting command matches the relative position commanded in the machining program before conversion. For example, the command value unit 2 adds the movement amount required to match the position (angle) of the spindle at the start of the cutting command with the position (angle) of the spindle command commanded in the machining program before conversion to the "movement amount of the spindle" in (5). As a result, the relative position of the spindle and feed axes at the start of the next cutting command will match between the pre-conversion machining program and the converted machining program.

[0019] The program conversion unit 3 converts the rapid traverse command of the machining program into linear interpolation. The linear interpolation is supplemented with the "movement amount of the main axis" and the "composite speed of the main axis and feed axis" calculated by the command value unit 2. According to the linear interpolation after conversion, the main axis maintains its rotation speed at the main axis speed during cutting, while the feed axis moves in a straight line to the cutting start position. The relative positions of the main axis and feed axis when they reach the cutting start position will match the relative positions of the main axis and feed axis at the start of cutting, obtained by the program analysis unit 1.

[0020] The data acquisition unit 4 acquires data necessary for calculating the power consumption of the spindle motor. Methods for calculating power consumption are well known. The data necessary for calculating power consumption includes motor resistance, motor rotation speed, friction torque, motor acceleration current, acceleration / deceleration time, etc. The motor resistance and friction torque may be acquired from the motor specifications.

[0021] The first power calculation unit 5 calculates the power consumption of the spindle motor for the machining program before conversion. The second power calculation unit 6 calculates the power consumption of the spindle motor for the machining program after conversion. Methods for calculating the power consumption of the spindle motor from a machining program are known. For example, Japanese Patent Application Laid-Open No. 2010-250697 describes a method for calculating the power consumption Ea during motor acceleration, the power consumption Ed during motor deceleration, and the power consumption Ec during constant motor speed rotation. The first power calculation unit 5 and the second power calculation unit 6 calculate and add up the power consumption in each phase.

[0022] The power comparison unit 7 compares the amount of power consumed by the spindle motor when the machining program before conversion is executed with the amount of power consumed by the spindle motor when the machining program after conversion is executed.

[0023] The program output unit 8 outputs, as an optimized machining program, the machining program with the least amount of power consumption out of the machining programs before and after conversion.

[0024] The operation of the program optimization device 100 will be described with reference to the flowchart in Figure 2. The data acquisition unit 4 acquires data necessary for calculating the power consumption of the spindle motor and feed axis motor (step S1). The acquired data includes the motor winding resistance, torque constant, and post-interpolation acceleration / deceleration time constant. These data are set as motor characteristics.

[0025] The program analysis unit 1 searches for a part to be optimized from the machining program (step S2). The part to be optimized is a part where commands for synchronizing the rotation of the spindle and the movement of the feed axis (thread cutting, eccentric machining, etc.) and fast-forward commands are consecutive.

[0026] The program analysis unit 1 further acquires physical quantities necessary for optimization from the machining program (step S3). The physical quantities necessary for optimization are physical quantities related to the rotation of the spindle and physical quantities related to the movement of the feed axis. Specifically, these include the movement amount of the feed axis, the rapid-feed rate, and the spindle speed.

[0027] The command value unit 2 uses the physical quantities acquired in step S3 to calculate a command value for converting from rapid traverse to linear interpolation (step S4). The syntax of the linear interpolation "G01" used in this embodiment is "G01 U_ H_ F_". U is the "X-axis movement amount x 2 (doubled because the X-axis is in the diameter direction)", H is the "spindle movement amount (deg)", and F is the "composite speed of the spindle and X-axis". The command value unit 2 calculates the command value H "spindle movement amount" and the command value F "composite speed of the spindle and X-axis" according to the above-mentioned formula.

[0028] The program conversion unit 3 converts the non-cutting command of the machining program into a cutting command (step S5). Specifically, the fast-forward command "G00" is converted into a cutting feed "G01", and the command values ​​"spindle movement amount" and "spindle and X-axis combined speed" calculated by the command value unit 2 are inserted into addresses "H" and "F".

[0029] The power consumption of the machining program before conversion and the power consumption of the machining program after conversion are calculated (step S6). A method for calculating the power consumption is known.

[0030] The power comparison unit 7 compares the power consumption of the machining program before and after conversion (step S7). The program output unit 8 outputs the machining program with the lowest power consumption as the optimized machining program (step S8).

[0031] (Specific example) A specific example will be described. Figure 3 is an example of a machining program before conversion. This machining program commands interpolation thread cutting. Figure 4 shows the tool path when this machining program is executed. "N1" to "N10" are sequence numbers of the machining program. In "N1", the X axis moves "-10.0" at "G00", in "N2", the Z axis moves "-62.0" at "G33.3", in "N3", the X axis moves "+10.0" at "G00", and in "N4", the Z axis moves "+62.0" at "G00". Similar processing is repeated from "N5" onwards, so explanations will be omitted.

[0032] The program analysis unit 1 first searches for the parts to be optimized. In this machining program, rapid traverse "G00" is commanded at "N1" and thread cutting "G33.3" is commanded at "N2", resulting in a series of non-cutting and cutting. Rapid traverse "G00" is commanded at "N5" and thread cutting "G33.3" is commanded at "N6", resulting in a series of non-cutting and cutting. Rapid traverse "G00" is commanded at "N9" and thread cutting "G33.3" is commanded at "N10", resulting in a series of non-cutting and cutting. The program analysis unit detects the parts with successive non-cutting and cutting as parts to be optimized.

[0033] The program analysis unit 1 further obtains physical quantities for converting a rapid traverse command into linear interpolation from the machining program and parameters. Since "G00 C0.0" is commanded at the beginning of the machining program, it is understood that the "C-axis coordinate value at the start of N1" is "0 deg." Since "N1" is "G00 U-20.0," it is understood that the "X-axis movement amount in N1" is "-10.0 mm." Since "N2" is "G33.3 W-62.0 F4.0 S800," it is understood that the "C-axis coordinate value at the start of N2" is "0 deg" and the "spindle speed" is "800 min." -1 " and "G33.3" are commanded, it can be seen that the "spindle rotation direction" is "forward rotation."

[0034] Furthermore, the program analysis unit 1 acquires the fast-forward speed and the time constant from the machining program and parameters. Figure 5 shows an example of physical quantities acquired by the program analysis unit 1. The "C-axis coordinate value at the start of N1" is "0 deg", the "X-axis movement amount in N1" is "-10.0 [mm]", the "C-axis coordinate value at the start of N2" is "0 deg", and the "spindle speed" is "800 min -1 " and "Direction of rotation of spindle" is "forward". The rapid-forward speeds are "5000 mm / min" for the "X-axis", "10000 mm / min" for the "Z-axis", and "360000 deg / min" for the "C-axis". The time constants are "100 msec" for the "X-axis" rapid-forward and "32 msec" for the "cutting feed", "100 msec" for the "Z-axis" rapid-forward and "32 msec" for the "C-axis" rapid-forward and "100 msec" for the "cutting feed".

[0035] The command value unit 2 calculates a command value for converting rapid traverse to cutting feed. The command value unit 2 calculates the command values ​​"movement amount of the main axis" and "composite speed of the main axis and X axis". The "movement amount of the main axis" is calculated using (1). Amount of movement of the main axis [deg] = 10 / 5000 x 800 x 360 = 576 deg The "composite speed of the main axis and X axis" is calculated using (5). Composite speed of the main axis and X axis = √(576 2 +10 2 ) x 800 / (576 / 360) = 288043.4

[0036] The command value unit 2 adjusts the "spindle movement amount" and the "composite speed of the spindle and X axes." In the machining program before conversion, the "C-axis coordinate value at the start of N2" is "0 deg." The "C-axis coordinate value at the start of N2" before adjustment is "216 (= 576 - 360) deg." The command value unit 2 adjusts the "composite speed of the spindle and X axes" so that the "C-axis coordinate value at the start of N2" after adjustment becomes "0 deg," i.e., a multiple of 360. To make the spindle position a multiple of 360, 144 deg is added to the "spindle movement amount" (576 + 144 = 720). The command value unit 2 substitutes the adjusted "spindle movement amount," "720 deg," into (5) to find the "composite speed of the spindle and X axes." Composite speed of the spindle and X axes (after adjustment) = √(720 2 +10 2 ) x 800 / (720 / 360) = 288027.8

[0037] The program conversion unit 3 converts non-cutting commands into linear interpolation commands (cutting commands). For example, the rapid-forward command "G00 U-20.0" for "N1" in the machining program in Figure 3 is converted to the cutting feed command "G01 U-20.0 H720.0 F288027.8." Figure 6 shows the converted machining program. In the converted machining program, the rapid-forward commands "G00" for "N1," "N3," "N4," "N5," "N7," "N8," and "N9" are converted to linear interpolation commands "G01." In this example, all rapid-forward commands are converted to linear interpolation commands, but some may also be converted to linear interpolation commands. Note that while G01 is used as the syntax for linear interpolation between the spindle and feed axes in this embodiment, interpolation-type thread cutting G33.3 may also be used. In this case, to ensure that the relative positions of the spindle and feed axes at the start of the cutting command are consistent before and after the conversion of the machining program, the thread lead command value is adjusted.

[0038] The first power calculation unit 5 calculates the amount of power consumed by the spindle motor of the machining program before conversion. Figure 7 shows the spindle speed and power consumption of the machining program before conversion. The spindle speed for thread cutting (cutting) of "N2", "N6", and "N10" is "800", and the spindle speed for positioning of "N4" and "N8" is "rapid feed rate". The area of ​​the graph below is the amount of power consumed before conversion E BF Power consumption increases during acceleration and deceleration. Note that power consumption during deceleration is less than power consumption during acceleration due to regeneration.

[0039] The second power calculation unit calculates the amount of power consumed by the spindle motor of the converted machining program. Figure 8 shows the spindle speed and power consumption of the converted machining program. The spindle speed is "0" when the machining program starts, and then the thread cutting spindle speed "800" is maintained from "N1" to "N10". The area of ​​the lower graph is the amount of power consumed after conversion E AF In the converted machining program, the speed accelerates at the start of "N1" and decelerates at the end of "N10". Power consumption is high only at the start of "N1" and the end of "N10".

[0040] The power comparison unit 7 compares the power consumption of the machining program before conversion with the power consumption of the spindle motor of the machining program after conversion.BF >E AF As a result, the power consumption of the converted machining program is low.

[0041] The program output unit 8 outputs the machining program with the lower power consumption as the optimized machining program. Note that in this example, all of the fast-forward commands "N1," "N3," "N4," "N5," "N7," "N8," and "N9" are converted to linear interpolation, but it is also possible to convert some of the fast-forward commands to linear interpolation and select the machining program with the lowest power consumption from multiple combinations.

[0042] (Modification) Fig. 9 is a block diagram of a modification of the program optimization device 100. In this modification, a canned cycle unit 9 is provided. The canned cycle unit 9 expands canned cycle commands into non-cutting commands and cutting commands. Fig. 10 shows examples of a machining program before expansion and after expansion. The cycle command "G93.3" for "N1" is expanded into "G00 U-20.0", "G33.3 W-62.0 F4.0 S800", "G00 U20.0", and "G00 W62.0 C0.0". The same applies to "N2" and onwards.

[0043] The program analysis unit 1 analyzes the expanded machining program. The remaining operations are the same as those of the program optimization device 100 in FIG.

[0044] As described above, when a machining program includes a cutting command that synchronizes the rotation of the spindle and the operation of the feed axis, the program optimization device 100 of this embodiment determines whether or not there are non-cutting commands before or after the command, and if there are non-cutting commands, it detects them as parts that should be optimized.

[0045] When the program optimization device 100 detects a portion to be optimized, it acquires physical quantities related to the rotation of the spindle and physical quantities related to the movement of the feed axis from the machining program and calculates command values ​​that convert a fast-forward command (non-cutting command) into a linear interpolation (cutting command).The program optimization device 100 adjusts the calculated command values ​​based on the physical quantities acquired from the machining program.As a result, the rotation of the spindle and the movement of the feed axis are synchronized when the next cutting command is started.

[0046] The program optimization device 100 converts non-cutting commands into cutting commands, and outputs the machining program with the least amount of power consumption between the machining program before and after conversion as an optimized machining program.

[0047] The program optimization device 100 of this embodiment can generate a machining program that reduces the power consumption / heat generation of the spindle motor. The machining program is highly versatile because it can be analyzed by any numerical control device.

[0048] The hardware configuration of a program optimization device 100 to which the present disclosure is applied will be described below. Fig. 11 is a hardware configuration diagram of the program optimization device 100. As shown in Fig. 11, the program optimization device 100 includes a CPU 111 that controls the entire program optimization device 100, a ROM 112 that records programs and data, and a RAM 113 for temporarily expanding data, and the CPU 111 executes a system program recorded in the ROM 112 via a bus.

[0049] The nonvolatile memory 114 is backed up by, for example, a battery (not shown), and the stored state is maintained even when the power to the program optimization device 100 is turned off. The nonvolatile memory 114 stores various data such as programs read from the external device 120 via the interfaces 115, 118, and 119 and operation inputs input via the input unit 30. The nonvolatile memory 114 may store programs and data for executing the program optimization device 100 of this embodiment.

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

[0051] Although the present disclosure has been described in detail, the present disclosure is not limited to the individual embodiments described above. Various additions, substitutions, modifications, partial deletions, etc. are possible in these embodiments without departing from the gist of the present disclosure or the gist of the present disclosure derived from the claims and their equivalents. Furthermore, these embodiments can also be implemented in combination. For example, in the above-described embodiments, the order of each operation and the order of each process are shown as examples and are not limited to these.

[0052] The following additional notes are provided regarding the above-described embodiment and modifications. (Supplementary Note 1) A program optimization device (100) includes a program analysis unit (1) that searches a machining program, detects a portion where cutting commands that synchronize the rotation of the spindle and the movement of the feed axis and non-cutting commands continue, and acquires physical quantities from the machining program to optimize the detected portion; a command value unit (2) that calculates a command value for converting the non-cutting command into a linear interpolation based on the physical quantity; a program conversion unit (3) that converts the non-cutting command into a linear interpolation and adds the command value to the linear interpolation; a data acquisition unit (4) that acquires data necessary for calculating the power consumption of a spindle motor; a first power calculation unit (5) that calculates the power consumption of the machining program before conversion; a second power calculation unit (6) that calculates the power consumption of the machining program after conversion; a power comparison unit (7) that compares the power consumption calculated by the first power calculation unit (1) and the second power calculation unit (2); and a program output unit (8) that outputs a machining program with less power consumption as an optimized machining program. (Supplementary Note 2) The command value unit (2) adjusts the command value so that the relative positions of the spindle and feed axis at the time the cutting command is started match between the machining program before and after conversion. (Supplementary Note 3) The program optimization device (100) expands the canned cycle command into a non-cutting command and a cutting command. (Supplementary Note 4) When there are multiple non-cutting commands, the program optimization device (100) creates multiple machining programs by converting some of the non-cutting commands into linear interpolation, and selects the machining program with the least power consumption from the multiple machining programs as the optimized machining program.(Supplementary Note 5) The computer-readable storage medium (112, 113, 114) stores instructions to cause one or more processors (111) to execute processes of: detecting, from the machining program, a portion where cutting commands that synchronize the rotation of the spindle and the movement of the feed axis and non-cutting commands continue; obtaining, from the machining program, physical quantities for optimizing the detected portion; calculating, based on the physical quantities, command values ​​for converting the non-cutting commands into linear interpolation; converting the non-cutting commands into linear interpolation; adding the command values ​​to the linear interpolation; obtaining data necessary for calculating the power consumption of the spindle motor; calculating the power consumption of the machining program before conversion; calculating the power consumption of the machining program after conversion; comparing the power consumption of the machining programs before and after conversion; and outputting the machining program with the least power consumption as the optimized machining program.

[0053] REFERENCE SIGNS LIST 100 Program optimization device 1 Program analysis unit 2 Command value unit 3 Program conversion unit 4 Data acquisition unit 5 First power calculation unit 6 Second power calculation unit 7 Power comparison unit 8 Program output unit 111 CPU 112 ROM 113 RAM 114 Non-volatile memory

Claims

1. A program optimization device comprising: a program analysis unit that searches a machining program, detects a portion where cutting commands that synchronize the rotation of a spindle and the movement of a feed axis and non-cutting commands occur one after the other, and acquires physical quantities from the machining program to optimize the detected portion; a command value unit that calculates a command value to convert the non-cutting command into a linear interpolation based on the physical quantity; a program conversion unit that converts the non-cutting command into a linear interpolation and adds the command value to the linear interpolation; a data acquisition unit that acquires data necessary for calculating the power consumption of a spindle motor; a first power calculation unit that calculates the power consumption of the machining program before conversion; a second power calculation unit that calculates the power consumption of the converted machining program; a power comparison unit that compares the power consumption calculated by the first power calculation unit and the second power calculation unit; and a program output unit that outputs a machining program with less power consumption as an optimized machining program.

2. A program optimization device as described in claim 1, wherein said command value section adjusts the command value so that the relative positions of the spindle and feed axis at the time when said cutting command is started are consistent between the machining program before and after conversion.

3. The program optimization device according to claim 1, wherein a canned cycle command is expanded into a non-cutting command and a cutting command.

4. A program optimization device as described in claim 1, wherein, when there are multiple non-cutting commands, multiple machining programs are created by converting some of the non-cutting commands into linear interpolation, and the machining program with the lowest power consumption among the multiple machining programs is selected as the optimized machining program.

5. A computer-readable storage medium storing instructions to cause one or more processors to execute the following processes: detect from a machining program a portion where cutting commands that synchronize the rotation of the spindle and the movement of the feed axis and non-cutting commands occur in succession, obtain from the machining program physical quantities for optimizing the detected portion, calculate command values ​​for converting the non-cutting commands to linear interpolation based on the physical quantities, convert the non-cutting commands to linear interpolation and add the command values ​​to the linear interpolation, obtain data necessary for calculating the power consumption of a spindle motor, calculate the power consumption of the machining program before conversion, calculate the power consumption of the machining program after conversion, compare the power consumption of the machining programs before and after conversion, and output the machining program with the least power consumption as an optimized machining program.

Citation Information

Patent Citations

  • Control device for machine tool

    JP2010250697A

  • Machine tool, and power consumption estimation apparatus and power consumption estimation method thereof

    JP2011170448A

  • Power consumption calculation device for machine tool

    JP2013164797A

  • Simulation device and simulation program

    JP2014219911A

  • NC program generation device in consideration of power saving

    JP2015135649A