Numerical control device

By generating tool backoff and return paths in the numerical control device, the problem of interference between tool and machining path is solved, ensuring workpiece quality and cutting efficiency.

CN112558551BActive Publication Date: 2025-08-12FANUC LTD
View PDF 4 Cites 0 Cited by

Patent Information

Application Number
CN202011025474.3
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Priority Date
2019-09-25
Filing Date
2020-09-25
Publication Date
2025-08-12
Estimated Expiration
2040-09-25

AI Technical Summary

Technical Problem

In the numerical control device, the tool is prone to interference with the processing path when it is backed and returned, resulting in damage to the workpiece, especially when the external storage device is delayed to read, which cannot be buffered in time, affecting the cutting speed and workpiece quality.

Method used

By automatically calculating the backward direction in the middle of the program block, the tool backwards and returns when appropriate, the tool backwards and return paths are generated to avoid interference with the processing path.

Benefits of technology

Effectively suppress the interference between the tool's backing and return paths and the processing paths, ensure the integrity of the workpiece surface, avoid damage, and improve cutting efficiency and stability.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN112558551B_ABST
    Figure CN112558551B_ABST
Patent Text Reader

Abstract

The present invention provides a numerical control device, comprising: a pre-reading unit, which pre-reads program blocks of a program into a buffer; a remaining program block determination unit, which determines whether a tool needs to be retracted or returned based on the amount of program blocks pre-read into the buffer; a tool motion control unit, which controls the retraction and return of the tool when the remaining program block determination unit determines that the tool needs to be retracted; a program block splitting unit, which splits the program block as a split object at positions away from both ends according to instructions from the tool motion control unit; and a tool path generation unit, which generates a tool retraction path and a tool return path, and inserts them into the split positions of the program blocks split by the program block splitting unit.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention relates to a numerical control device, and in particular to a numerical control device for automatically performing the retreat and return of a tool. Background Art

[0002] Numerical controllers automatically operate by reading and executing machining programs. Machining programs executed by numerical controllers were previously created manually, but recently, CAD / CAM programs that interpolate free-form surfaces using tiny line segments have become available. Compared to manually created programs, CAD / CAM-generated machining programs are larger, consisting of many more blocks.

[0003] When executing a large machining program, if the entire machining program is read into the internal memory of the numerical controller at once, the numerical controller needs to be equipped with a large-capacity internal memory. However, if the internal memory of the numerical controller is set to a large capacity, the cost of the numerical controller itself increases. Therefore, when executing a large machining program, cost reduction is sought by pre-storing the machining program in an external storage device connected to the numerical controller, and sequentially reading the machining program from the external storage device and executing it. Examples of external storage devices connected to the numerical controller include SD cards, CF cards, USB memories, and servers connected via Ethernet (registered trademark).

[0004] When a machining program is read from an external storage device, the transmission time is increased compared to when it is read from an internal memory, and the transmission speed is also not fixed. For example, when a server connected via Ethernet (registered trademark) is used as an external storage device, if the Ethernet (registered trademark) connection is disconnected, the machine will wait for the machining program to be transmitted. Furthermore, if the machine waits for the machining program to be transmitted during the cutting process, the next program block cannot be executed. Therefore, the tool stops in contact with the workpiece, which may damage the machined surface of the workpiece.

[0005] Numerical control devices generally have a pre-reading function for pre-reading and parsing machining programs. When the pre-reading function is used to control the machine, the numerical control device pre-reads and buffers the program blocks of the machining program, and controls the machine based on the buffered program blocks. At this time, the program blocks that have been executed and used for control are deleted from the buffer. There is a technology that slows down the cutting speed if the pre-reading speed cannot keep up with the machining speed and the program blocks of the machining program in the buffer disappear from the buffer. However, even if this technology is used to slow down the cutting speed, sometimes there is no time for buffering, and there are situations where the tool must be retracted. In addition, there is generally a technology for retracting (retracting) the tool from the machining surface, but the situation of returning after retraction is not considered.

[0006] Japanese Patent Application Laid-Open No. 11-015513 discloses a technique for retracting the tool in a manner that depicts a tangent trajectory relative to the tool trajectory when the amount of pre-read and buffered tool trajectory data is less than a predetermined amount, and for returning the tool in a manner that depicts a tangent trajectory relative to the tool trajectory to resume cutting processing when the amount of data accumulated exceeds a predetermined amount.

[0007] When the buffered data becomes smaller than the predetermined amount, for example, near a point where the velocity vector changes during inner circumference machining, the tool may interfere with the workpiece when the tool retreats or returns. Figure 8 、 Figure 9 This is a diagram showing the situation of the tool retreating and returning at the inner peripheral processing position. Figure 8 As an example, consider machining a concave shape on a workpiece using tool feed instructions for two consecutive straight line segments, blocks N100 and N101. In this case, a delay occurs while reading from an external storage device, and the N101 block cannot be buffered during machining based on the instructions in block N100. If, at the end of the instructions in block N100, the tool is retracted from the machining surface along the tangent line of block N100 to prevent it from coming to a stop on the machining surface, the tool tip may enter closer to the workpiece than the machining path based on block N101, potentially damaging the workpiece surface.

[0008] This phenomenon also occurs when returning a tool that has been retracted. For example, consider the case where the N102 block cannot be buffered. Figure 9 As shown in the example, when the N101 program block starts, the tool is retracted from the machining surface. Then, when the N102 program block is buffered, if the tool is to be returned in the tangent direction of the N101 program block, the front end of the tool enters closer to the workpiece than the machining path based on the N100 program block, which may cause damage to the workpiece surface. Summary of the Invention

[0009] In order to avoid such problems, a technology is needed that can minimize the possibility of interference between the tool retraction path and the tool return path and the machining path and perform tool retraction and return.

[0010] A numerical controller according to one embodiment of the present invention solves the above-mentioned problem by automatically calculating a retraction direction in the middle of a program block to retract the tool when it is determined that the tool needs to be retracted, and by returning the tool when it is determined that the tool can be returned.

[0011] Furthermore, one embodiment of the present invention is a numerical control device that controls the relative position of a tool and a workpiece of a machine tool according to a program block of a program to thereby process the workpiece, the numerical control device comprising: a tool motion control unit that controls the retraction and return of the tool when the tool needs to be retracted; a program block splitting unit that splits the program block as a split object at positions away from both ends according to an instruction of the tool motion control unit; and a tool path generating unit that generates a tool retraction path and a tool return path, and inserts them into the split position of the program block split by the program block splitting unit.

[0012] According to one aspect of the present invention, by retreating from the middle of a program block, the tool can be retreated and returned while minimizing the possibility of interference between the tool retreat path and the tool return path and the machining path. BRIEF DESCRIPTION OF THE DRAWINGS

[0013] The above and other objects and features of the present invention will become more apparent from the following description of embodiments with reference to the accompanying drawings.

[0014] Figure 1 This is a schematic hardware configuration diagram of a numerical controller according to one embodiment of the present invention.

[0015] Figure 2 This is a schematic functional block diagram of the numerical control device according to the first embodiment.

[0016] Figure 3 It is a diagram showing an example of an arc-shaped tool retraction path and a tool return path.

[0017] Figure 4 This is a diagram for explaining a method for generating an arc-shaped tool retraction path and a tool return path.

[0018] Figure 5 1 and 2 are diagrams showing examples of a tool retraction path and a tool return path according to the present embodiment, and illustrate examples of a three-axis mechanical structure and a five-axis mechanical structure.

[0019] Figure 6 This is a schematic functional block diagram of a numerical control device according to the second embodiment.

[0020] Figure 7 It is a diagram for explaining another embodiment of the divided block determining unit and the block dividing unit.

[0021] Figure 8 This is a diagram showing an example of interference between a tool and a workpiece during tool retraction.

[0022] Figure 9 This is a diagram showing an example of interference between the tool and the workpiece when the tool returns. DETAILED DESCRIPTION

[0023] Hereinafter, embodiments of the present invention will be described together with the accompanying drawings.

[0024] Figure 1 This is a schematic hardware configuration diagram showing the main parts of a numerical controller according to one embodiment of the present invention. The numerical controller 1 of the present invention can be implemented as a numerical controller that controls a machine tool according to a machining program, for example.

[0025] The CPU 11 included in the numerical controller 1 of this embodiment is a processor that performs overall control of the numerical controller 1. The CPU 11 reads a system program stored in the ROM 12 via the bus 22 and controls the entire numerical controller 1 according to the system program. The RAM 13 temporarily stores temporary calculation data, display data, and various data input from the outside.

[0026] The nonvolatile memory 14 is composed of, for example, a battery-backed memory (not shown) or an SSD (Solid State Drive), and maintains stored data even when the numerical controller 1 is powered off. The nonvolatile memory 14 stores parameters read from an external device 72 via the interface 15 and parameters input via the display / MDI unit 70. The parameters and various data stored in the nonvolatile memory 14 can be expanded into the RAM 13 during execution or use. Various system programs, such as well-known analysis programs, are pre-written in the ROM 12.

[0027] The interface 15 connects the CPU 11 of the numerical controller 1 to an external device 72, such as a USB device. Machining programs and various parameters used to control the machine tool are read from the external device 72 into the numerical controller 1. Furthermore, programs and various parameters edited within the numerical controller 1 can be stored in an external storage unit via the external device 72. The PMC (Programmable Machine Controller) 16 outputs signals to and controls the machine tool and its peripheral devices (e.g., tool changers, actuators such as robots, and sensors mounted on the machine tool) via the I / O unit 17, using a sequence program built into the numerical controller 1. Furthermore, the PMC 16 receives signals from various switches and peripheral devices on the operating panel of the machine tool and transmits them to the CPU 11 after performing necessary signal processing.

[0028] Interface 20 connects the CPU of numerical controller 1 to a wired or wireless network 5. Network 5 is connected to at least one computer 3, which exchanges data with numerical controller 1. Computer 3 can be another control device, a server storing machining programs, a fog computer, a cloud server, or the like.

[0029] The display / MDI unit 70 is a manual data input device equipped with a display, keyboard, etc. Interface 18 receives commands and data from the keyboard of the display / MDI unit 70 and transmits them to the CPU 11. Interface 19 is connected to an operation panel 71 equipped with a manual pulse generator, etc., used to manually drive each axis.

[0030] Axis control circuit 30, which controls the axes of a machine tool, receives axis movement commands from CPU 11 and outputs the axis commands to servo amplifier 40. Servo amplifier 40 receives these commands and drives servo motor 50, which moves the axes of the machine tool. Axis servo motor 50 has a built-in position and speed detector, and position and speed feedback signals from the position and speed detector are fed back to axis control circuit 30, performing position and speed feedback control.

[0031] In addition, Figure 1 The hardware configuration diagram shows only one axis control circuit 30, servo amplifier 40, and servo motor 50 each. However, in practice, the same number of axes as the machine tool being controlled possesses is provided. For example, to control a machine tool that processes a workpiece by relatively moving a tool mounted on a spindle with three linear axes, three sets of axis control circuits 30, servo amplifiers 40, and servo motors 50 are provided to move the axes in the X, Y, and Z directions.

[0032] The spindle control circuit 60 receives a spindle rotation command and outputs a spindle speed signal to the spindle amplifier 61. The spindle amplifier 61 receives this spindle speed signal and rotates the machine tool's spindle motor 62 at the commanded speed, thereby driving the tool. The spindle motor 62 is coupled to a position encoder 63. The position encoder 63 outputs feedback pulses in sync with the spindle's rotation. These feedback pulses are read by the CPU 11.

[0033] Figure 2 This is a schematic functional block diagram of the numerical control device 1 according to the first embodiment of the present invention. Figure 2 The functional blocks shown are Figure 1 This is achieved by the CPU 11 included in the numerical controller 1 shown executing a system program and controlling the operation of each component of the numerical controller 1. The numerical controller 1 of this embodiment controls the servo motor 50 to relatively move a tool mounted on a spindle and a workpiece, thereby controlling a machine tool that processes a workpiece using the tool rotated by a spindle motor 62.

[0034] The numerical controller 1 of this embodiment includes a pre-reading unit 100, a remaining block determination unit 110, an analysis unit 120, a control unit 130, a tool motion control unit 140, a block division unit 150, a tool path generation unit 160, and a tool return determination unit 170. Furthermore, a buffer 210 is provided in advance in the RAM 13 or nonvolatile memory 14 of the numerical controller 1 as an area for buffering program blocks of the program 200 pre-read from the external storage device 4.

[0035] The pre-reading unit 100 executes Figure 1 The CPU 11 of the numerical controller 1 shown in FIG. 1 reads a system program from the ROM 12. Furthermore, the pre-reading unit 100 primarily performs arithmetic processing executed by the CPU 11 using the RAM 13 and non-volatile memory 14, as well as read control processing executed by the interface 15 or 20. The pre-reading unit 100 reads a program block of the program 200 stored in the external storage device 4 and stores it in the buffer 210. If the buffer 210 has sufficient free space to store one or more blocks of the program 200, the pre-reading unit 100 reads the program block of the program 200 from the external storage device 4 and stores it in the buffer 210. Unless there are any particular problems, the pre-reading unit 100 pre-reads the block following the pre-read block from the external storage device 4.

[0036] The remaining block determination unit 110 executes Figure 1 The CPU 11 of the numerical controller 1 shown in FIG. reads the system program from the ROM 12. Furthermore, the remaining block determination unit 110 primarily performs computational processing executed by the CPU 11 using the RAM 13 and nonvolatile memory 14. The remaining block determination unit 110 determines the number of remaining program blocks in the buffer 210. When the number of remaining program blocks exceeds a predetermined first threshold, or when all program blocks of the program 200 have been pre-read into the buffer 210, the remaining block determination unit 110 reads the program blocks from the buffer 210 and outputs them to the analysis unit 120. On the other hand, when the number of remaining program blocks in the buffer 210 falls below the predetermined first threshold, the remaining block determination unit 110 notifies the tool operation control unit 140 of this fact. Subsequently, the remaining block determination unit 110 reads and outputs the program blocks in the buffer 210 in response to a request from the program block division unit 150, and then temporarily stops reading program blocks from the buffer 210. While temporarily suspending the reading of program blocks, the remaining block determination unit 110 also monitors the remaining amount of program blocks in the buffer 210. If the remaining amount of pre-read program blocks in the buffer 210 exceeds a predetermined second threshold, the remaining block determination unit 110 outputs this fact to the tool operation control unit 140, and the buffer reading is resumed.

[0037] The analysis unit 120 executes Figure 1 The CPU 11 of the numerical controller 1 shown in FIG. 1 reads a system program from the ROM 12. Furthermore, the analysis unit 120 primarily performs computational processing executed by the CPU 11 using the RAM 13 and the nonvolatile memory 14. The analysis unit 120 analyzes program blocks input from the remaining program block determination unit 110, the program block division unit 150, the tool return determination unit 170, and the like, generating movement command data for each servo motor and spindle command data indicating the spindle speed. The analysis unit 120 generates movement command data for the servo motor 50 based on the feed command indicated by the program block. Furthermore, the analysis unit 120 generates spindle command data for the spindle motor 62 based on the spindle rotation command indicated by the program block of the program 200.

[0038] The control unit 130 executes Figure 1 The CPU 11 included in the numerical controller 1 shown in FIG. 1 reads a system program from the ROM 12. Furthermore, the control unit 130 primarily performs arithmetic processing using the RAM 13 and nonvolatile memory 14, executed by the CPU 11; control processing of the servo motor 50, executed by the axis control circuit 30 and servo amplifier 40; and control processing of the spindle motor 62, executed by the spindle control circuit 60 and spindle amplifier 61. The control unit 130 drives the servo motor 50 and the spindle motor 62 based on the movement command data and spindle command data generated by the analysis unit 120.

[0039] The tool operation control unit 140 executes Figure 1The CPU 11 of the numerical controller 1 shown reads the system program from the ROM 12. Furthermore, the tool motion control unit 140 primarily performs computational processing executed by the CPU 11 using the RAM 13 and non-volatile memory 14. When the tool needs to be retracted, the tool motion control unit 140 instructs the block splitter 150 to split the current block and retract the tool. Furthermore, when the tool has returned to a good state, the tool motion control unit 140 instructs the tool return determination unit 170 to return the tool from the retracted state. The tool motion control unit 140 can also control the tool's retraction and return based on input from the remaining block determination unit 110, for example. Furthermore, the tool motion control unit 140 can also receive notifications from sources other than the remaining block determination unit 110. For example, upon receipt of a feed hold signal, the tool motion control unit 140 can determine that the tool needs to be stopped immediately, obtain the current block from the remaining block determination unit 110, and instruct the block splitter 150 to retract the tool using that block. At this time, the tool operation control unit 140 issues an instruction to the remaining block determination unit 110 to temporarily stop reading from the buffer 210 until a signal to resume machining arrives.

[0040] The block division unit 150 executes Figure 1 The CPU 11 of the numerical control device 1 shown reads the system program from the ROM 12. In addition, the program block division unit 150 is mainly realized by the calculation processing using the RAM 13 and the non-volatile memory 14 executed by the CPU 11. The program block division unit 150 obtains the current program block from the remaining program block determination unit 110 based on the input from the tool motion control unit 140, and divides the program block. Then, the program block division unit 150 outputs the first half of the divided program block to the analysis unit 120, and outputs the second half of the divided program block to the tool path generation unit 160. If it is the simplest implementation, the program block division unit 150 can divide the specified program block at the middle point. In addition, when the program block to be divided is a non-cutting path, the program block division unit 150 issues an instruction to the tool path generation unit 160 that there is no need to create a tool retreat path and a tool return path.

[0041] In addition, the program block segmentation unit 150 can also analyze the program block to be segmented, for example, and segment the specified program block at any position in the program block that is away from the two ends of the program block by a distance calculated by multiplying the moving speed of the tool by the acceleration and deceleration time constant. By doing so, when the tool is retreated or returned, the tool can be kept from being exposed on the path of the program block as much as possible. If the program block segmentation unit 150 segments the program block at a position that is away from the starting position of the program block by a predetermined margin from the calculated distance, the possibility of interference between the tool retreat path and the processing path of the program block before the program block can be suppressed as much as possible. In addition, when the program block is short and cannot be segmented at a position away from the two ends of the program block by a calculated distance, it is sufficient to segment it at the middle point as a segmentation unit.

[0042] The toolpath generation unit 160 executes Figure 1 The CPU 11 of the numerical control device 1 shown in FIG. 1 reads the system program from the ROM 12. In addition, the tool path generation unit 160 is mainly realized by the operation processing using the RAM 13 and the non-volatile memory 14 performed by the CPU 11. The tool path generation unit 160 generates a path in which the tool retreat path and the tool return path are inserted before the second half of the divided program block input from the program block division unit 150. The tool path generation unit 160 outputs the generated path to the tool return determination unit 170. Figure 3 As shown, the tool path generation unit 160 can also generate a tool retreat path and a tool return path in the shape of an arc with the divided path as a tangent. In addition, the tool path generation unit 160 can also generate a tool retreat path and a tool return path in the shape of an ellipse with the divided path as a tangent, instead of an arc shape. The tool path generation unit 160 can also generate a tool retreat path and a tool return path in the shape of an inverted triangle that leaves the workpiece at a predetermined angle from the divided position of the program block and returns to the workpiece at a predetermined angle, etc., as different shapes. The tool retreat path and the tool return path generated by the tool path generation unit 160 can be any path as long as they retreat from the workpiece at a gentle angle and return to the workpiece at a gentle angle in order to prevent cutter marks from remaining on the workpiece when the tool retreats and returns.

[0043] use Figure 4The following illustrates how the toolpath generation unit 160 creates an arc-shaped tool retraction path and tool return path. To create an arc-shaped tool retraction path and tool return path, the toolpath generation unit 160 first calculates the tool direction vector Tool, a vector along the tool axis and in the direction of retraction from the workpiece. Next, the toolpath generation unit 160 calculates the outer product of the tool direction vector Tool and the tool velocity vector v at the block division position. When the modal information for the current machining is left offset (G41), this outer product value becomes the tool radial retraction vector Ed, a vector indicating the tool's radial direction and in the direction of retraction from the workpiece. On the other hand, when the modal information is right offset (G42), the outer product value multiplied by -1 becomes the tool radial retraction vector Ed. Furthermore, on the surface containing the velocity vector v and the tool direction vector Tool, a tool longitudinal retraction vector Eh is calculated as a vector perpendicular to the velocity vector v. (In cases where the tool's axial direction is tilted due to the rotation axis, such as in a five-axis machining center, the tool direction vector Tool and the tool longitudinal retraction vector Eh may differ.) Then, the tool path generation unit 160 calculates the tool retreat unit vector E1 based on the sum of the unit vector of the tool radial retreat vector Ed and the unit vector of the tool longitudinal retreat vector Ed. The vector obtained by multiplying the tool retreat unit vector E1 by a predetermined tool retreat amount is used as the tool retreat vector E. Finally, the tool path generation unit 160 generates a path that draws a 180-degree arc (spiral) with the calculated tool retreat vector E as the center, thereby generating a tool retreat path and a tool return path. The tool retreat path and tool return path generated in this way are as follows: Figure 5 As illustrated, in a three-linear-axis machine tool or a five-axis machining center including two rotary axes, the tool is retracted from the workpiece at a gentle angle and returned to the workpiece at a gentle angle in order to minimize damage.

[0044] The tool return determination unit 170 executes Figure 1The CPU 11 of the numerical controller 1 shown in FIG. 1 reads a system program from the ROM 12. Furthermore, the tool return determination unit 170 is primarily implemented through computational processing executed by the CPU 11 using the RAM 13 and non-volatile memory 14. If a command to return the tool from the evacuation state is issued from the tool motion control unit 140 before executing control based on the divided first-half program block, the tool return determination unit 170 discards the tool evacuation path and the tool return path and outputs the divided second-half program block to the analysis unit 120. On the other hand, if a command to return the tool from the evacuation state is not issued from the tool motion control unit 140 before executing the first-half program block, the tool return determination unit 170 outputs the tool evacuation path to the analysis unit 120. Then, upon receiving a command to return the tool from the evacuation state from the tool motion control unit 140, the tool return determination unit 170 outputs the tool return path and the divided second-half program block to the analysis unit 120.

[0045] The numerical control device 1 of this embodiment having the above-described structure can minimize the possibility of interference between the tool retraction path and the tool return path and the machining path by retracting the tool from positions away from both ends of the program block when retracting the tool from the workpiece.

[0046] Figure 6 This is a schematic functional block diagram of a numerical control device 1 according to a second embodiment of the present invention. Figure 6 The functional blocks shown are composed of Figure 1 The CPU 11 included in the numerical controller 1 shown executes a system program to control the operation of each component of the numerical controller 1. The numerical controller 1 of this embodiment controls the servo motor 50 to relatively move a tool mounted on a spindle and a workpiece, thereby controlling a machine tool that processes the workpiece using the tool rotated by a spindle motor 62.

[0047] The numerical controller 1 of this embodiment includes a pre-reading unit 100, a remaining block determination unit 110, an analysis unit 120, a control unit 130, a tool motion control unit 140, a block division unit 150, a tool path generation unit 160, a tool return determination unit 170, and a division block determination unit 180. Furthermore, a buffer 210 is provided in advance in the RAM 13 or nonvolatile memory 14 of the numerical controller 1 as an area for buffering blocks of the program 200 pre-read from the external storage device 4.

[0048] The pre-reading unit 100 , analysis unit 120 , control unit 130 , tool path generation unit 160 , and tool return determination unit 170 of this embodiment have the same functions as those of the first embodiment.

[0049] If the remaining number of program blocks exceeds a predetermined first threshold, or if all program blocks of program 200 have been pre-read into buffer 210, remaining program block determination unit 110 outputs the read program blocks to analysis unit 120. On the other hand, if the remaining number of program blocks is below a predetermined first threshold, remaining program block determination unit 110 outputs this fact to tool operation control unit 140. Subsequently, when a program block to be split for tool retraction and return is specified by split program block determination unit 180, remaining program block determination unit 110 sequentially reads the program blocks preceding the program block to be split and outputs them to analysis unit 120. It then reads the program block to be split and outputs it to program block splitting unit 150. Remaining program block determination unit 110 then temporarily stops reading program blocks from buffer 210. While temporarily stopping reading program blocks, remaining program block determination unit 110 also monitors the remaining number of program blocks in buffer 210. When the remaining amount of pre-read program blocks in the buffer 210 is equal to or greater than a predetermined second threshold, the remaining program block determination unit 110 outputs this fact to the tool operation control unit 140 and resumes reading from the buffer.

[0050] In the case where the tool needs to be retreated, the tool action control unit 140, for example, issues an instruction to the split block determination unit 180 based on the input from the remaining program block determination unit 110 to determine the program block to be split for tool retreat. In addition, in the case where the tool can be returned to a state, the tool action control unit 140, for example, issues an instruction to the tool return determination unit 170 based on the input from the remaining program block determination unit 110 to return the tool from the retreat state. In the case where the tool action control unit 140 receives a notification other than the remaining program block determination unit 110, and the notification is a feed hold signal or the like indicating retreat in the current program block, the tool action control unit 140 issues an instruction to the split program block determination unit 180 to perform a split in the current program block. On the other hand, particularly in the case of a notification that retreat in the current program block is not required, the tool action control unit 140 issues an instruction to the split program block determination unit 180 to determine the program block to be split for tool retreat.

[0051] The split block determination unit 180 executes Figure 1The CPU 11 of the numerical controller 1 shown in FIG. 1 reads a system program from the ROM 12. Furthermore, the split block determination unit 180 primarily performs arithmetic processing executed by the CPU 11 using the RAM 13 and the non-volatile memory 14. When the split block determination unit 180 receives an instruction from the tool motion control unit 140 to determine a program block to be split for tool retraction, it references the program blocks in the buffer 210 and determines a program block to be split from the referenced program blocks. For example, if a non-cutting program block is included in the pre-read program blocks in the buffer 210, the split block determination unit 180 determines that program block as the split program block. Alternatively, if no non-cutting program block is included in the pre-read program blocks in the buffer 210, the split block determination unit 180 may determine the program block with the longest path in the cutting program block as the split program block. Furthermore, if a program block to be split is specified by the tool motion control unit 140, the split block determination unit 180 selects that program block as the program block to be split.

[0052] Based on input from the split block determination unit 180, the block division unit 150 obtains the block designated as the split block from the remaining block determination unit 110 and divides it. The block division unit 150 then outputs the first half of the split block to the analysis unit 120 and the second half of the split block to the toolpath generation unit 160. The remaining functions of the block division unit 150 are the same as those of the block division unit 150 of the first embodiment.

[0053] The numerical controller 1 of this embodiment, having the above-described structure, can select a more appropriate block from among the blocks currently pre-read in the buffer 210 as the block for retracting the tool from the workpiece. Therefore, by retracting the tool from a position away from both ends of the block, the possibility of the tool retraction path and the tool return path interfering with the machining path can be minimized.

[0054] As mentioned above, although one embodiment of the present invention has been described, the present invention is not limited to the above-mentioned embodiment example, and can be implemented in various forms by adding appropriate changes.

[0055] For example, in the above-mentioned embodiment, the block division unit 150 and the block division determination unit 180 determine the block division position and the block to be divided according to a predetermined rule. The block division unit 150 and the block division determination unit 180 may also be configured to determine whether the machining path interferes with the tool retreat path and the tool return path, and determine the block division position and the block to be divided at a position where there is no interference. For example, Figure 7As shown, in a program in which a tool is moved in a crank-like manner for processing, when processing needs to be temporarily stopped after the execution of the N3 program block is completed, the program block division unit 150 and the division program block determination unit 180 determine whether there is overlap with other processing paths when a tool retreat path and a tool return path are set at each position of each program block that has been pre-read in the buffer. In addition, a program block that does not overlap with other processing paths even if a tool retreat path and a tool return path are set can be determined as a division program block, and a position in the division program block that does not overlap with other processing paths even if a tool retreat path and a tool return path are set can be used as a division position. For example, Figure 7 In the example, the N4 block or the N7 block is used as the split block. In the case of the N4 block, the front position of the block can be used as the split position.

[0056] In addition, in the above-mentioned embodiment, the tool retraction amount when the tool is retracted is predetermined, but for example, based on the distance from the split position of the program block to the two ends of the program block, an appropriate tool retraction amount can be calculated and used to ensure that the two ends of the program block are not exposed and can stay sufficiently when the tool is retracted from the position where the program block is split from the program block splitting unit 150.

Claims

1. A numerical control device that controls the relative positions of a tool and a workpiece of a machine tool according to a program block to thereby process the workpiece, characterized in that: The numerical control device has: a pre-reading unit configured to pre-read a program block of the program into a buffer; a remaining program block determination unit for determining whether the tool needs to be retracted or returned based on the amount of program blocks pre-read into the buffer; a tool motion control unit for controlling the tool to retract or return when the remaining block determination unit determines that the tool needs to be retracted or returned; a program block dividing unit that divides the program block at positions away from both ends of the program block to be divided according to an instruction of the tool motion control unit; a tool path generating unit that generates a tool retraction path and a tool return path and inserts the generated tool path into the division positions of the program blocks divided by the program block dividing unit; as well as The divided block determining unit determines a divided block to be subjected to tool retraction and return from among the blocks pre-read into the buffer.

2. The numerical control device according to claim 1, wherein The tool operation control unit controls the retraction and return of the tool when receiving a notification instructing the tool to retract.

3. The numerical control device according to claim 1, wherein The tool path generation unit creates a tool retraction path for retracting the tool while maintaining a feed speed of the tool in a cutting direction.

4. The numerical control device according to claim 1, wherein The tool path generation unit creates a tool return path for returning the tool while maintaining a feed speed in the cutting direction of the tool at the same speed as a feed speed in the cutting direction during retraction.

Citation Information

Patent Citations

  • Control method for cutting device

    JP1999015513A

  • Numerical controller including DNC operation unit

    CN105320066A

  • Numerical controller

    JP1987049514A

  • Machining control device and program thereof

    JP2008158726A