Control device and computer-readable recording medium
Patent Information
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- FANUC LTD
- Filing Date
- 2025-01-27
- Publication Date
- 2026-07-30
Smart Images

Figure JP2025002477_30072026_PF_FP_ABST
Abstract
Description
Control device and computer-readable recording medium
[0001] This disclosure relates to a control device and a computer-readable recording medium.
[0002] There is a technique for overlapping blocks in a machining program (for example, Patent Document 1). By pre-setting the overlap amount, which is a parameter of the control device that controls the industrial machine, the degree of overlap can be controlled. Within the range of the set overlap amount, the control device starts execution of the next block before the currently executing block reaches its end point. This shortens the cycle time. On the other hand, if the overlap amount is large, the amount of inward turning between overlapping blocks increases, which can lead to a deterioration in machining accuracy and interference between the tool and the workpiece. For this reason, the overlap amount is generally set to be small.
[0003] Japanese Patent Application Publication No. 02-040701
[0004] To shorten cycle time, it is necessary to increase the overlap amount. However, depending on the command path, the amount of inward rotation due to overlap may increase, or shocks may occur due to sudden speed reversals. Therefore, depending on the command path, it may be necessary to reduce the overlap amount in order to maintain machining accuracy.
[0005] Furthermore, while it's desirable to increase the overlap amount when retracting from the workpiece to shorten cycle time, increasing the overlap amount during workpiece entry would alter the machining path. Therefore, the overlap amount needs to be reduced during workpiece entry. This modification of the overlap amount according to the movement situation can be achieved by the program creator when creating the machining program by changing the settings related to the inward rotation amount according to the purpose of each command. However, inserting a command to change the overlap amount for each movement command is a significant burden for the program creator. It also increases the possibility of unexpected behavior due to setting errors. In the field, there is a desire for a system that appropriately sets the overlap amount according to the situation.
[0006] The control device according to this disclosure solves the above problem by having the overlap amount determination unit automatically determine the overlap amount based on the direction of the command path.
[0007] One aspect of the present disclosure is a control device comprising: an overlap amount determination unit that determines an overlap amount based on the direction of movement of a command path by a command for an adjacent block included in a machining program for controlling an industrial machine; an overlap execution unit that overlaps the movement of the adjacent block by the overlap amount determined by the overlap amount determination unit; and a control unit that drives and controls each axis of the industrial machine based on the overlapped movement of the adjacent block.
[0008] This is a schematic hardware configuration diagram of the control device according to the first embodiment. This is a block diagram showing the schematic functions of the control device according to the first embodiment. This is a schematic diagram showing an example of a command path based on commands from adjacent blocks. This is a schematic diagram showing another example of a command path based on commands from adjacent blocks. This is a schematic diagram showing an example of a command path when performing lathe machining.
[0009] 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.
[0010] 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).
[0011] [First Embodiment] Figure 1 is a schematic hardware configuration diagram showing the main parts of a control device according to one embodiment of the present disclosure. The control device 1 of the present disclosure can be implemented as a control device for controlling industrial machinery such as machine tools and robots.
[0012] The CPU 11 in the control device 1 of this disclosure is a processor that controls the control device 1 as a whole. The CPU 11 reads a system program stored in the ROM 12 via the bus 22 and controls the entire control device 1 according to the system program. The RAM 13 temporarily stores temporary calculation data, display data, and various data input from external sources.
[0013] The non-volatile memory 14 is composed of, for example, a memory backed up by a battery (not shown) or an SSD (Solid State Drive), and its stored state is maintained even when the power to the control device 1 is turned off. The non-volatile memory 14 stores control programs and data read from an external device 72 via the interface 15, data and control programs input via the input device 71, and various data acquired from the industrial machine 3. The control programs and data stored in the non-volatile memory 14 may be expanded into the RAM 13 when executed or used. In addition, various system programs, such as known analysis programs, are pre-written in the ROM 12.
[0014] Interface 15 is an interface for connecting the CPU 11 of the control device 1 to an external device 72 such as a USB memory, CompactFlash®, or SD card. The external device 72 can read control programs and various data used to control the industrial machine 3, for example. Control programs and various data edited within the control device 1 can also be stored in the external device 72. The PLC (Programmable Logic Controller) 16 controls the industrial machine 3 and its peripheral devices (for example, tool changers, actuators such as robots, sensors attached to the industrial machine 3, etc.) by outputting signals via the I / O unit 17 according to the sequence program built into the control device 1. The PLC 16 also receives signals from various switches on the control panel and peripheral devices located on the main body of the industrial machine 3, performs the necessary signal processing, and then passes the signals to the CPU 11.
[0015] The display device 70 displays data loaded into memory, data obtained as a result of the execution of control programs and system programs, etc., which are output via the interface 18. In addition, the input device 71, which consists of a keyboard and a pointing device, transmits commands and data based on the operator's operations to the CPU 11 via the interface 19.
[0016] Interface 20 is an interface for connecting the CPU 11 of the control device 1 to a wired or wireless network 5. The network 5 may communicate using technologies such as serial communication (RS-485, for example), Ethernet® communication, optical communication, wireless LAN, Wi-Fi®, Bluetooth®, etc. At least one computer 4, fog computer 6, cloud server 7, etc. are connected to the network 5 and exchange data with the control device 1.
[0017] The axis control circuit 30, which controls the drive shafts of the industrial machine 3, receives a position command for the drive shaft from the CPU 11 and outputs a command for the drive shaft to the servo amplifier 40. The servo amplifier 40 receives this command and drives the servo motor 50, which is the drive shaft, to move each part of the industrial machine 3 along its respective axis. Each servo motor 50 has a built-in position sensor and feeds back the position feedback signal from this position sensor to the axis control circuit 30. The axis control circuit 30 performs feedback control of the servo motor 50 based on this position feedback signal. In the hardware configuration diagram of Figure 1, only one axis control circuit 30, servo amplifier 40, and servo motor 50 are shown, but in reality, as many as the number of axes on the industrial machine 3 to be controlled are provided. For example, when controlling a machine tool with a typical linear three-axis system, three sets of axis control circuits 30, servo amplifiers 40, and servo motors 50 are provided to move the spindle to which the tool is attached and the workpiece relative to each other in the linear three-axis direction (X axis, Y axis, Z axis).
[0018] 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 spindle motor 62 of the industrial machine 3 at the commanded rotational speed, driving the spindle. The spindle motor 62 rotates the tool or workpiece attached to the industrial machine 3. A position coder 63 is coupled to the spindle motor 62. The position coder 63 outputs a feedback pulse synchronized with the rotation of the spindle, and this feedback pulse is read by the CPU 11.
[0019] Figure 2 is a schematic block diagram showing the functions of the control device 1 according to the first embodiment of this disclosure. Each function of the control device 1 according to this embodiment is realized by the CPU 11 of the control device 1 shown in Figure 1 executing a system program and controlling the operation of each part of the control device 1.
[0020] The control device 1 of this embodiment includes an overlap amount determination unit 100, an overlap execution unit 110, and a control unit 120. Furthermore, a control program 200 for controlling the industrial machine 3 is pre-stored in the RAM 13 to non-volatile memory 14 of the control device 1.
[0021] The overlap amount determination unit 100 sequentially reads and analyzes blocks of the control program 200. If both commands in adjacent blocks are cutting feed commands (for example, G01 command and G01 command), the overlap amount between those blocks is determined to be a preset overlap amount for cutting feed. On the other hand, if at least one of the commands in adjacent blocks is a rapid traverse command (for example, a G00 command), the overlap amount between those blocks is determined based on the direction of movement of the command path due to that command. This command path may be a path obtained by analyzing the control program 200. Alternatively, the command path may be the path used when driving and controlling the axis based on the results of analyzing the control program 200. The overlap amount determination unit 100 outputs the determined overlap amount to the overlap execution unit 110.
[0022] The overlap amount determination unit 100 may determine the overlap amount based on the movement direction of each adjacent block. For example, a predetermined overlap amount may be directly determined based on the angle θ [deg] between the movement direction of the adjacent block due to the earlier command and the movement direction of the later command. Alternatively, the ratio to the overlap amount may be determined based on the angle θ [deg] using the following equation 1, and the overlap amount O l It is also possible to determine this indirectly. Note that in equation 1, O base This is a predetermined standard overlap amount.
[0023]
[0024] Figure 3 is a schematic diagram showing an example of a command path based on commands from adjacent blocks. In the example in Figure 3, the tool movement starts from the origin, and the command "G01 X100.0" is given in the first of two adjacent blocks, and the command "G00 X170.0 Z70.0" is given in the second block. At this time, the direction of the movement path based on the command from the first block and the direction of the movement path based on the command from the second block form an angle of θ = 135°. In such a case, the overlap amount determination unit 100 determines the overlap amount between the two blocks as 0.75 × 0 base We have decided on this.
[0025] Figure 4 is a schematic diagram showing another example of a command path based on commands from adjacent blocks. In the example in Figure 4, the tool movement starts from the origin, and the command "G01 X100.0" is given in the first of two adjacent blocks, and the command "G00 X50.0 Z50.0" is given in the second block. At this time, the direction of the movement path based on the command from the first block and the direction of the movement path based on the command from the second block form an angle of θ = 45°. In such a case, the overlap amount determination unit 100 determines the overlap amount between the two blocks as 0.25 × 0 base Decide
[0026] In overlap control, the movement of the later block begins while the movement of the earlier block is still decelerating. Therefore, if the movement changes direction at a sharp angle, the direction of axis movement reverses, and if a large overlap amount is set, a shock will occur due to the sudden reversal of speed. To prevent this from happening, it is desirable for the overlap amount determination unit 100 to determine the overlap amount so that it is large when the command path of the adjacent block is at a gentle angle, and small when the movement changes direction at a sharp angle. Note that the method by which the overlap amount determination unit 100 determines the overlap amount is not limited to the method using equation 1. Any determination method can be adopted as long as the overlap amount is reduced when a sharp change in the direction of movement occurs depending on the direction of the earlier and later blocks.
[0027] The overlap execution unit 110 overlaps the movement of adjacent blocks based on the overlap amount determined by the overlap amount determination unit 100. The overlap execution unit 110 advances the start timing of the execution of the later block's command by the overlap amount determined by the overlap amount determination unit 100 for adjacent blocks. In other words, it adjusts the execution timing so that the movement of the later block's command starts when the movement of the earlier block's command has been left for the amount of overlap. The overlap execution unit 110 notifies the control unit 120 of the command from each block and the start timing of the execution of that command.
[0028] The control unit 120 has the general functions required to control the industrial machine 3. It outputs commands to control the industrial machine 3 based on the commands from each block of the given control program 200. Based on the analysis results of the commands from the block, the control unit 120 outputs position commands to drive each part of the industrial machine 3 along a predetermined axis. The output of these position commands is based on the start timing of the commands from each block determined by the overlap execution unit 110. The control unit 120 also outputs a rotation command for the spindle of the industrial machine 3 based on the analysis results of the commands from the block.
[0029] The control device 1 according to this embodiment, having the above configuration, automatically adjusts the overlap amount according to the command paths of adjacent blocks in the control program 200. Therefore, it becomes easy to adjust the overlap amount, such as increasing the overlap amount where the cycle time can be shortened and decreasing the overlap amount where shocks are likely to occur. In addition, since it is no longer necessary to change the settings related to the inward turning amount based on the command, the effort required for setting changes and setting errors can be reduced.
[0030] [Second Embodiment] The control device according to the second embodiment of the present disclosure will be described below. The control device 1 according to this embodiment has the same hardware configuration as the control device 1 according to the first embodiment.
[0031] The control device 1 according to this embodiment includes an overlap amount determination unit 100, an overlap execution unit 110, and a control unit 120, similar to the control device 1 according to the first embodiment. Furthermore, a control program 200 for controlling the industrial machine 3 is pre-stored in the RAM 13 to the non-volatile memory 14 of the control device 1.
[0032] The overlap execution unit 110 and control unit 120 according to this embodiment have the same functions as the overlap execution unit 110 and control unit 120 according to the first embodiment.
[0033] The overlap amount determination unit 100 according to this embodiment determines the overlap amount between adjacent blocks based on the direction of movement of the command path specified by the command for that block, similar to the first embodiment. At this time, the overlap amount determination unit 100 according to this embodiment determines the overlap amount based on the direction of movement of any of the command paths specified by the command for the adjacent block. This direction of movement may be, for example, the direction of movement for a predetermined axis. For example, in the command for any adjacent block, the overlap amount may be set to 0.9 times the base overlap amount when the X-axis is moved in the negative direction, and to 1.1 times the base overlap amount when the X-axis is moved in the positive direction, while the Z-axis may not be considered in determining the overlap amount regardless of the direction of movement. In this way, the amount of change in the overlap amount according to the direction of movement for each axis may be predetermined. The multiplier of the overlap amount according to the direction of movement for each axis may be determined according to the machine configuration of the industrial machine 3 to be controlled.
[0034] Figure 5 is a schematic diagram showing an example of a command path during lathe machining. The example in Figure 5 shows the command paths P1 to P4 of the tool when machining a workpiece 300 on a lathe. Command path P1 is a rapid traverse path that moves the tool in the negative direction of the Z axis while moving it in the negative direction of the X axis. Command paths P2 and P3 are cutting paths that move the tool in the negative direction of the Z axis without moving it in the X axis direction. Furthermore, command path P4 is a rapid traverse path that moves the tool in the positive direction of the X axis without moving it in the Z axis direction. In such a case, when moving the X axis in the negative direction as described above, the overlap amount is the reference overlap amount O base 0.9 times the overlap amount when moving the X-axis in the positive direction, the overlap amount is the reference overlap amount O base Let's assume it's set to 1.1 times that. In this case, the tool moves in the negative direction of the X-axis in command paths P1 and P2, so the overlap amount between command paths P1 and P2 is O l is 0.9 × O base This is the result. Also, in command paths P3 and P4, the tool moves in the positive X-axis direction, so the overlap amount between command paths P1 and P2 is O.l is 0.9×O base becomes
[0035] Incidentally, the overlap amount determination unit 100 according to the present embodiment uses the moving direction of a predetermined axis of the command path by the commands of adjacent blocks for determining the overlap amount, and further, similar to the first embodiment, the moving directions of the respective adjacent blocks may be considered. For example, in the example of FIG. 5, the angle formed by the command path P1 and the command path P2 is 135°. At this time, the overlap amount is further adjusted using Equation 1, and the overlap amount O l is set to 0.9×0.75×O base or the like.
[0036] The control device 1 according to the present embodiment having the above configuration can perform flexible adjustment of the overlap amount according to the structure of the industrial machine 3, such as increasing the overlap amount when retracting from the workpiece to shorten the cycle time by determining the cutting into the workpiece and the retraction from the workpiece from the moving direction of the axis, and reducing the change in the machining path by reducing the overlap amount when cutting into the workpiece.
[0037] For example, when the position of the workpiece viewed from the tool is determined according to the axial direction, such as in a lathe processing machine, it becomes possible to consider the influence of the positional relationship on the actual processing. In the example of FIG. 5, when moving in the direction in which the tool approaches the workpiece (negative X-axis direction), the overlap amount is reduced to consider the machining accuracy, while when moving in the direction in which the tool moves away from the workpiece (positive X-axis direction), the overlap amount is increased to save the cycle time, and such adjustments are possible.
[0038] [Other Embodiments] The overlap amount may be determined based on the distance from the end point of the command path. Alternatively, it may be determined based on the time taken to reach the end point of the path. Furthermore, the overlap amount may be determined as a ratio with respect to the length of the command path. Also, the overlap amount may be determined using a deceleration ratio indicating a predetermined ratio with respect to the speed at the start of deceleration. For example, when deceleration of the feed speed in the X-axis direction is started based on the command of the current block and the feed speed is set based on the speed deceleration ratio determined by the overlap amount determination unit, acceleration of the feed speed in the Y-axis direction based on the command of the next block may be started.
[0039] Also, the direction of the command path when determining the overlap amount may be the movement direction of the axis in a predetermined coordinate system. For example, when the tilt axis control function is enabled, the axial direction may be determined based on the virtual axis of the tilt axis coordinate system. Similarly, when the three-dimensional coordinate conversion function is enabled, the axial direction may be determined based on the virtual axis in the converted coordinate system. With such a configuration, calculations based on a complex coordinate system become unnecessary.
[0040] Furthermore, in the control of the industrial machine 3, when an axis group is configured or when control is performed separately for a plurality of systems, the overlap amount may be adjusted for each axis group and each system. Also, when control is performed in a plurality of different coordinate systems, the overlap amount may be adjusted for each coordinate system. With such a configuration, the functions of the control device 1 according to the present disclosure can be effectively utilized for balance cutting, machines with opposed spindles, etc.
[0041] As described above, the embodiments of the present disclosure have been described in detail. However, the present disclosure is not limited to the individual embodiments described above. These embodiments can be variously added, replaced, changed, partially deleted, etc., without departing from the gist of the invention or without departing from the spirit and scope of the present disclosure derived from the content described in the claims and its equivalents. For example, in the above-described embodiments, the order of each operation and the order of each process are shown as an example and are not limited thereto. The same applies when numerical values or mathematical formulas are used in the description of the above-described embodiments.
[0042] The following shows an appendix according to an embodiment of the present disclosure. (Appendix 1) A control device (1) according to an aspect of the present disclosure includes an overlap amount determination unit (100) that determines an overlap amount based on the moving direction of a command path by commands of adjacent blocks included in a control program (200) for controlling an industrial machine (3), an overlap execution unit (110) that overlaps the movement in the adjacent blocks with the overlap amount determined by the overlap amount determination unit (100), and a control unit (120) that drives and controls each axis of the industrial machine (3) based on the movement in the overlapped adjacent blocks.
[0043] (Appendix 2) The moving direction of the command path handled by the control device (1) according to another aspect of the present disclosure is at least any one of the moving directions of each of the adjacent blocks and the moving direction of any one of the adjacent blocks. (Appendix 3) The overlap amount determination unit (100) included in the control device (1) according to another aspect of the present disclosure determines the overlap amount directly or indirectly by determining a ratio to a preset overlap amount.
[0044] (Note 4) The direction of the command path handled by the control device (1) according to another aspect of the present disclosure is the direction of movement of the axis in a predetermined coordinate system. (Note 5) The overlap amount determination unit (100) provided in the control device (1) according to another aspect of the present disclosure determines the overlap amount for each system, for each group of one or more axes, and for each predetermined coordinate system. The control device according to claim 1. (Note 6) The command path handled by the control device (1) according to another aspect of the present disclosure is the path obtained by analyzing the control program (200) or the path used when driving and controlling the axis based on the results of analyzing the control program (200).
[0045] (Note 7) A computer-readable recording medium according to one aspect of the present disclosure records a program that causes the computer to operate as: an overlap amount determination unit (100) that determines the amount of overlap based on the direction of movement of the command path by the command of adjacent blocks included in a control program (200) for controlling an industrial machine (3); an overlap execution unit (110) that overlaps the movement of adjacent blocks by the overlap amount determined by the overlap amount determination unit (100); and a control unit (120) that drives and controls each axis of the industrial machine based on the overlapped movement of adjacent blocks.
[0046] 1 Control device 3 Industrial machine 4 Computer 5 Network 6 Fog computer 7 Cloud server 11 CPU 12 ROM 13 RAM 14 Non-volatile memory 15, 18, 19, 20 Interface 16 PLC 17 I / O unit 22 Bus 30 Axis control circuit 40 Servo amplifier 50 Servo motor 60 Spindle control circuit 61 Spindle amplifier 62 Spindle motor 63 Position coder 70 Display device 71 Input device 72 External device 100 Overlap amount determination unit 110 Overlap execution unit 120 Control unit 200 Control program 210 Motor information storage unit
Claims
1. A control device comprising: an overlap amount determination unit that determines the amount of overlap based on the direction of movement of the command path by the commands of adjacent blocks included in a control program for controlling an industrial machine; an overlap execution unit that overlaps the movement of adjacent blocks by the overlap amount determined by the overlap amount determination unit; and a control unit that drives and controls each axis of the industrial machine based on the overlapped movement of adjacent blocks.
2. The control device according to claim 1, wherein the direction of movement of the command path is at least one of the movement directions of each of the adjacent blocks and the movement direction of any of the adjacent blocks.
3. The control device according to claim 1, wherein the overlap amount determination unit determines the overlap amount directly or indirectly by determining a ratio to a preset overlap amount.
4. The control device according to claim 2, wherein the direction of the command path is the direction of movement of an axis in a predetermined coordinate system.
5. The control device according to claim 1, wherein the overlap amount determination unit determines the overlap amount for each system, for each group of one or more axes, and for each predetermined coordinate system.
6. The control device according to claim 1, wherein the command path is a path obtained by analyzing the control program or a path used when driving and controlling the shaft based on the results of analyzing the control program.
7. A computer-readable recording medium that records a program causing a computer to operate as: an overlap amount determination unit that determines the amount of overlap based on the direction of movement of command paths by commands of adjacent blocks included in a control program for controlling industrial machinery; an overlap execution unit that overlaps the movement of adjacent blocks by the overlap amount determined by the overlap amount determination unit; and a control unit that drives and controls each axis of the industrial machinery based on the overlapped movement of adjacent blocks.