Numerical control device and numerical control system

The numerical control device addresses the lack of motion trajectory specification in conventional systems by generating and transmitting precise movement commands to the robot control device, enhancing processing accuracy and efficiency for both machining and non-machining tasks.

JP7614220B2Active Publication Date: 2025-01-15FANUC LTD
View PDF 7 Cites 0 Cited by

Patent Information

Application Number
JP2022561910
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Priority Date
2020-11-13
Filing Date
2021-11-08
Publication Date
2025-01-15
Estimated Expiration
2041-11-08

AI Technical Summary

Technical Problem

Conventional numerical control systems lack the ability to specify the motion trajectory of a robot's tip from the numerical control device side, leading to insufficient accuracy in processing workpieces, especially when the robot is assigned tasks like deburring or cutting.

Method used

A numerical control device that generates movement commands for a robot based on a numerical control program, allowing for the calculation and transmission of a target motion trajectory to a robot control device, enabling precise control of the robot's motion.

Benefits of technology

Enables high-precision processing of workpieces by the robot when machining is involved and reduces cycle time by optimizing the robot's movement path for non-machining tasks, such as transportation, using dynamic characteristics.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007614220000001
    Figure 0007614220000001
  • Figure 0007614220000002
    Figure 0007614220000002
  • Figure 0007614220000003
    Figure 0007614220000003
Patent Text Reader

Abstract

A numerical control apparatus 5 controls the motion of a machine tool 2 and generates a movement command for a robot control apparatus 6 controlling the motion of a robot 3 to move a control point of the robot 3. The numerical control apparatus 5 is provided with: a first movement command generating unit 56 for calculating, on the basis of a numerical control program, a first target motion trajectory which is a motion trajectory target for the control point, and generating a first movement command including the first target motion trajectory; a second movement command generating unit 57 for generating, on the basis of the numerical control program, a second movement command not including the first target motion trajectory; a movement command generating entity selecting unit 55 for selecting one of the first and the second movement command generating units 56, 57 as a movement command generating entity; and a data transmit / receive unit 59 for transmitting a movement command generated by the movement command generating entity to the robot control apparatus 6.
Need to check novelty before this filing date? Find Prior Art

Description

[Technical field]

[0001] The present disclosure relates to a numerical control device and a numerical control system. [Background technology]

[0002] In recent years, in order to promote automation in machining sites, there is a demand for a numerical control system that controls the operation of a machine tool that processes a workpiece in conjunction with the operation of a robot installed in the vicinity of the machine tool (see, for example, Patent Document 1).

[0003] Generally, the programming languages ​​used for the numerical control programs for controlling machine tools and the robot programs for controlling robots are different, so that in order to link the operation of the machine tool with the operation of the robot, the operator needs to be familiar with both the numerical control programs and the robot programs.

[0004] Patent Document 1 shows a numerical control device that controls both a machine tool and a robot by a numerical control program. More specifically, in the numerical control system shown in Patent Document 1, a numerical control device generates a robot command signal according to the numerical control program, a robot control device generates a robot program based on the robot command signal, and generates a robot control signal for controlling the operation of the robot according to the robot program. According to the numerical control system shown in Patent Document 1, a user familiar with numerical control programs can control a robot without mastering the robot program. [Prior art documents] [Patent documents]

[0005] [Patent Document 1] Patent No. 6647472 Summary of the Invention [Problem to be solved by the invention]

[0006] In a conventional numerical control system, when the end position of the tip of the robot is specified on the numerical control device side, the robot control device drives each joint of the robot by performing kinematic transformation according to the robot program so that the tip of the robot moves to the end position specified by the numerical control device side. In this case, in the conventional numerical control system, it is not possible to specify the motion trajectory of the tip of the robot from the numerical control device side.

[0007] If the robot is only used to replace the workpieces that are machined by machine tools, it is not a big problem if the motion trajectory cannot be specified from the numerical control device as described above. However, if the robot is used to perform workpiece processing such as deburring or cutting, it is necessary to specify not only the end point position of the tip of the robot but also the motion path. For this reason, there are cases where the conventional numerical control system cannot process the workpiece with sufficient precision.

[0008] The present disclosure has been made in consideration of the above-mentioned problems, and provides a numerical control device and a numerical control system that are capable of machining a workpiece with high precision by using a machine tool and a robot. [Means for solving the problem]

[0009] One aspect of the present disclosure provides a numerical control device that controls operation of a machine tool based on a numerical control program and generates movement commands for moving a control point of a robot for a robot control device that controls operation of the robot, the numerical control device comprising: a first movement command generation unit that calculates a target movement trajectory that is a target of a movement trajectory of the control point based on the numerical control program and generates a first movement command including the target movement trajectory; a second movement command generation unit that generates a second movement command that does not include the target movement trajectory based on the numerical control program; a selection unit that selects either the first movement command generation unit or the second movement command generation unit as a movement command generation entity; and a transmission unit that transmits the movement command generated by the movement command generation entity to the robot control device.

[0010] One aspect of the present disclosure provides a numerical control system comprising: a numerical control device that controls operation of a machine tool based on a numerical control program and generates movement commands for moving a control point of a robot; and a robot control device capable of communicating with the numerical control device and controlling operation of the robot based on movement commands transmitted from the numerical control device, wherein the numerical control device comprises: a first movement command generation unit that calculates a target movement trajectory that is a target of a movement trajectory of the control point based on the numerical control program and generates a first movement command including the target movement trajectory; a second movement command generation unit that generates a second movement command that does not include the target movement trajectory based on the numerical control program; a selection unit that selects either the first movement command generation unit or the second movement command generation unit as a movement command generation entity; and a transmission unit that transmits the movement command generated by the movement command generation entity to the robot control device, wherein when the robot control device receives the second movement command, it controls the operation of the robot based on the second movement command, and when the robot control device receives the first movement command, it controls the operation of the robot so that the control point moves along the target movement trajectory. Effect of the Invention

[0011] According to one aspect of the present disclosure, for example, when a robot is assigned to perform a workpiece machining operation, a first movement command including a target motion trajectory is sent from the numerical control device to the robot control device, so that the control point of the robot can be moved along the target motion trajectory calculated by the numerical control device, and the robot can machine the workpiece with high accuracy. Also, for example, when a robot is assigned to perform an operation that does not involve machining a workpiece, specifically, a workpiece transport operation, a second movement command not including a target motion trajectory is sent from the numerical control device to the robot control device, so that the robot control device can take into account the dynamic characteristics of the robot and move the control point of the robot in the shortest time or along the shortest path, and the cycle time for machining and transporting the workpiece by the machine tool and the robot can be shortened. [Brief description of the drawings]

[0012] [Figure 1] FIG. 1 is a schematic diagram of a numerical control system according to an embodiment of the present disclosure. [Diagram 2] FIG. 2 is a functional block diagram of a numerical control device and a robot control device. [Diagram 3] FIG. 13 is a diagram illustrating an example of a numerical control program for a robot. [Figure 4A] FIG. 4 is a sequence diagram (part 1) showing the flow of signals and information between the numerical control device and the robot control device when the numerical control device is operated based on the program shown in FIG. 3, and the processing executed in the robot control device. [Figure 4B] FIG. 4 is a sequence diagram (part 2) showing the flow of signals and information between the numerical control device and the robot control device when the numerical control device is operated based on the program shown in FIG. 3, and the processing executed in the robot control device. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0013] Hereinafter, a numerical control system 1 according to an embodiment of the present disclosure will be described with reference to the drawings.

[0014] FIG. 1 is a schematic diagram of a numerical control system 1 according to the present embodiment.

[0015] The numerical control system 1 includes a machine tool 2, a numerical control device (CNC) 5 that controls the operation of the machine tool 2, a robot 3 provided near the machine tool 2, and a robot control device 6 communicatively connected to the numerical control device 5. The numerical control device 5 controls the operation of the machine tool 2 based on a predetermined numerical control program, and also generates and transmits to the robot control device 6 commands for controlling the operation of the robot 3. The robot control device 6 controls the operation of the robot 3 in response to the commands transmitted from the numerical control device 5.

[0016] The machine tool 2 machines a workpiece (not shown) in response to a machine tool control signal transmitted from a numerical control device 5. Here, the machine tool 2 is, for example, a lathe, a drilling machine, a milling machine, a grinding machine, a laser processing machine, an injection molding machine, or the like, but is not limited to these.

[0017] The robot 3 operates under the control of a robot control device 6, and performs a predetermined task on a workpiece that has been machined by a machine tool 2, for example. The robot 3 is, for example, an articulated robot, and a multifunction tool 32 for gripping and machining a workpiece is attached to an arm tip 31 of the robot 3. In the following, the robot 3 will be described as being a six-axis articulated robot, but the number of axes is not limited to this. In the following, the robot 3 will be described as being a six-axis articulated robot, but the number of axes is not limited to this.

[0018] The multi-function tool 32 includes a plurality of tools, such as a deburring tool for removing minute protrusions (so-called burrs) remaining on a workpiece machined by the machine tool 2, a cutting tool for cutting the workpiece, and a gripping tool for gripping the workpiece, and any one of these plurality of tools can be selected as the tool to be used. That is, by selecting a deburring tool as the tool to be used by the multi-function tool 32, the robot 3 can perform deburring of the workpiece machined by the machine tool 2. By selecting a cutting tool as the tool to be used by the multi-function tool 32, the robot 3 can perform cutting of the workpiece of the machine tool 2. Furthermore, by selecting a gripping tool as the tool to be used by the multi-function tool 32, the robot 3 can perform replacement of the workpiece of the machine tool 2.

[0019] The numerical control device 5 and the robot control device 6 are computers each composed of hardware such as a calculation processing means such as a CPU (Central Processing Unit), auxiliary storage means such as an HDD (Hard Disk Drive) or SSD (Solid State Drive) storing various programs, main storage means such as a RAM (Random Access Memory) for storing data temporarily required for the calculation processing means to execute the programs, operation means such as a keyboard for an operator to perform various operations, and display means such as a display for displaying various information to the operator. The robot control device 6 and the numerical control device 5 are capable of transmitting and receiving various signals to each other, for example, via Ethernet (registered trademark).

[0020] FIG. 2 is a functional block diagram of the numerical control device 5 and the robot control device 6.

[0021] The numerical control device 5 generates various commands for controlling the operation of the robot 3 and the switching operation of the tool being used in the multifunction tool 32 according to the procedures described below, and transmits the generated robot commands to the robot control device 6. Based on the robot commands transmitted from the numerical control device 5, the robot control device 6 generates robot control signals for controlling the operation of the robot 3 according to the procedures described below, and generates I / O signals for switching the tool being used in the multifunction tool 32, and inputs the generated robot control signals and I / O signals to the robot 3. In this way, the robot control device 6 controls the operation of the robot 3 and the switching operation of the tool being used.

[0022] First, a detailed configuration of the numerical control device 5 will be described. As shown in Fig. 2, the numerical control device 5 has the above-mentioned hardware configuration to realize various functions such as a machine tool control module 50 as a control system for the machine tool 2, a robot control module 51 as a control system for the robot 3, and a storage unit 52.

[0023] The storage unit 52 stores a plurality of numerical control programs created, for example, based on operations by an operator. More specifically, the storage unit 52 stores a numerical control program for a machine tool as a first numerical control program for mainly controlling the operation of the machine tool 2, a numerical control program for a robot as a second numerical control program for controlling the operation of the robot 3 via the robot control device 6, and the like. These numerical control programs for the machine tool and the numerical control programs for the robot are written in a common programming language (for example, G-code, M-code, etc.).

[0024] The numerical control program for the machine tool is written based on the machine tool coordinate system as a first coordinate system whose origin is a reference point determined on or near the machine tool 2. That is, in the numerical control program for the machine tool, the position and orientation of the control point of the machine tool 2 are described by coordinate values ​​in the machine tool coordinate system.

[0025] A numerical control program for a robot is written based on a robot coordinate system as a second coordinate system different from the machine tool coordinate system. That is, in the numerical control program for a robot, the position and posture of a control point of the robot 3 (for example, the arm tip 31 of the robot 3) are described by coordinate values ​​in the robot coordinate system different from the machine tool coordinate system. This robot coordinate system is a coordinate system whose origin is a reference point determined on the robot 3 or in the vicinity of the robot 3. Note that, although the following describes a case where the robot coordinate system is different from the machine tool coordinate system, the present disclosure is not limited to this. The robot coordinate system may be made to coincide with the machine tool coordinate system. In other words, the origin and coordinate axis directions of the robot coordinate system may be made to coincide with the origin and coordinate axis directions of the machine tool coordinate system.

[0026] In addition, in this robot numerical control program, the robot coordinate system can be switched between two or more coordinate formats with different control axes. More specifically, in the robot numerical control program, the position and orientation of the control point of the robot 3 can be specified in Cartesian coordinate format or each axis coordinate format.

[0027] In each axis coordinate format, the position and posture of the control point of the robot 3 is specified by a total of six real coordinate values ​​whose components are the rotation angle values ​​(J1, J2, J3, J4, J5, J6) of the six joints of the robot 3.

[0028] In the Cartesian coordinate format, the position and orientation of the control point of the robot 3 is specified by a total of six real coordinate values ​​consisting of three coordinate values ​​(X, Y, Z) along three Cartesian coordinate axes and three rotation angle values ​​(A, B, C) around each Cartesian coordinate axis.

[0029] Here, in the case of each axis coordinate system, the rotation angle of each joint of the robot 3 is directly specified, so that the axial arrangement of each arm and wrist of the robot 3 and the number of rotations of the joints that can rotate 360 ​​degrees or more (hereinafter, these are collectively referred to as the "configuration of the robot 3") are uniquely determined. In contrast, in the case of the Cartesian coordinate system, the position and posture of the control point of the robot 3 are specified by six coordinate values ​​(X, Y, Z, A, B, C), so that the configuration of the robot 3 cannot be uniquely determined. Therefore, in the numerical control program for the robot, it is possible to specify the configuration of the robot 3 by a configuration value P, which is an integer value of a predetermined number of digits. Therefore, the position and posture of the control point of the robot 3 and the configuration of the robot 3 are represented by six coordinate values ​​(J1, J2, J3, J4, J5, J6) in the case of each axis coordinate system, and by six coordinate values ​​and one configuration value (X, Y, Z, A, B, C, P) in the case of the Cartesian coordinate system.

[0030] In the numerical control program for a robot, the coordinate format can be set by the G-codes "G68.8" and "G68.9". More specifically, by inputting the G-code "G68.8", the coordinate format is set to each axis coordinate format, and by inputting the G-code "G68.9", the coordinate format is set to the Cartesian coordinate format. The G-codes "G68.8" and "G68.9" for setting these coordinate formats are modal. Therefore, after the coordinate format is set to each axis coordinate format or Cartesian coordinate format by these G-codes, the coordinate format is maintained until the coordinate format is changed again by these G-codes. In this embodiment, if the G-code for setting these coordinate formats is not described in the numerical control program for a robot, the coordinate format is automatically set to the Cartesian coordinate format, but this is not limited to this.

[0031] The machine tool control module 50 generates a machine tool control signal for mainly controlling the operation of the machine tool 2 in accordance with a numerical control program for the machine tool, and inputs the signal to an actuator (not shown) of the machine tool 2. More specifically, the machine tool control module 50 reads out a numerical control program for the machine tool stored in the memory unit 52, and generates the machine tool control signal by analyzing a command type based on the numerical control program. The machine tool 2 operates in response to the machine tool control signal transmitted from the machine tool control module 50, and machines a workpiece (not shown).

[0032] The robot control module 51 generates various commands for controlling the operation of the robot 3 and the switching operation of the tool being used by the multifunction tool 32 in accordance with a numerical control program for the robot, and transmits the commands to the robot control device 6. More specifically, the robot control module 51 includes a program input unit 53, an input analysis unit 54, a movement command generation subject selection unit 55, a first movement command generation unit 56, a second movement command generation unit 57, a tool / workpiece information management unit 58, and a data transmission / reception unit 59.

[0033] The program input unit 53 reads out a numerical control program for the robot from the storage unit 52, and inputs it sequentially to the input analysis unit .

[0034] The input analysis unit 54 analyzes the command type based on the robot numerical control program input from the program input unit 53 for each command block, and transmits the analysis results to the movement command generation subject selection unit 55 and the tool / work information management unit 58. Note that the input analysis unit 54 preferably outputs the analysis results of the robot numerical control program for a predetermined time in advance. In other words, the input analysis unit 54 preferably transmits the analysis results of a command block to be executed a predetermined time from the present, among the multiple command blocks constituting the robot numerical control program, to the movement command generation subject selection unit 55 and the tool / work information management unit 58.

[0035] The input analysis unit 54 transmits the acquired command to a movement command generation subject selection unit 55 when the type of command acquired based on the numerical control program for the robot is, for example, a command to move a control point of the robot 3 .

[0036] In addition, if the type of command acquired based on the numerical control program for the robot is, for example, a command to switch the tool being used by the multi-function tool 32 attached to the robot 3, the input analysis unit 54 transmits the acquired command to the tool / work information management unit 58.

[0037] When a command is input from the input analysis unit 54, the movement command generation subject selection unit 55 selects either the first movement command generation unit 56 or the second movement command generation unit 57 as a movement command generation subject that generates a movement command for moving a control point of the robot 3. When the movement command generation subject selection unit 55 selects the first movement command generation unit 56 as the movement command generation subject, it transmits the command input from the input analysis unit 54 to the first movement command generation unit 56, and when the movement command generation subject selection unit 55 selects the second movement command generation unit 57 as the movement command generation subject, it transmits the command input from the input analysis unit 54 to the second movement command generation unit 57.

[0038] As shown in FIG. 2, the numerical controller 5 can generate a movement command for moving the control point of the robot 3 by a first movement command generating unit 56 and a second movement command generating unit 57. As will be described later, under the second movement command generated by the first movement command generating unit 56, the movement trajectory between the start point and the end point of the control point of the robot 3 is determined by an interpolation process executed by the first movement command generating unit 56. On the other hand, under the second movement command generated by the second movement command generating unit 57, the movement trajectory of the control point of the robot 3 is determined by an interpolation process executed by a trajectory control unit 64 (to be described later) of the robot controller 6. That is, when the first movement command generating unit 56 is selected as the movement command generating subject, the interpolation process for determining the movement trajectory is executed on the numerical controller 5 side, and when the second movement command generating unit 57 is selected as the movement command generating subject, the interpolation process for determining the movement trajectory is executed on the robot controller 6 side.

[0039] Generally, high machining accuracy is required for machine tools, whereas high versatility is required for robots, so that numerical control devices have higher control accuracy than robot control devices. For this reason, when machining a workpiece using the robot 3 (for example, deburring or cutting), in order to machine the workpiece with high accuracy, it is preferable that the motion trajectory of the control point of the robot 3 is determined with high accuracy according to the shape of the tool used, the installation position of the workpiece, etc., by an interpolation process executed on the numerical control device 5 side. In other words, when machining a workpiece using the robot 3, it can be said that it is preferable to select the first movement command generator 56 as the main body for generating the movement command.

[0040] On the other hand, when a workpiece replacement operation is performed by the robot 3, it is only necessary to stop the control point of the robot 3 at the end point position with high accuracy, and therefore it is preferable that the movement trajectory of the control point of the robot 3 is determined in the shortest time or along the shortest path by an interpolation process executed on the robot control device 6 side, taking into consideration the dynamic characteristics of the robot 3. In other words, when the robot 3 is not used to process a workpiece, it can be said that it is preferable to select the second movement command generator 57 as the main body for generating the movement command.

[0041] In the numerical control program for the robot, the G-codes "G100.0" and "G100.1" can be used to select the motion command generating subject, i.e., the subject that executes the interpolation process. More specifically, by inputting the G-code "G100.0", the second motion command generating unit 57 is selected as the motion command generating subject. That is, the motion trajectory of the control point is determined by the interpolation process executed on the robot control device 6 side. Also, by inputting the G-code "G100.1", the first motion command generating unit 56 is selected as the motion command generating unit. That is, the motion trajectory of the control point is determined by the interpolation process executed on the numerical control device 5 side. The G-codes "G100.0" and "G100.1" for selecting these motion command generating subjects are modal. Therefore, after the motion command generating subject is set by these G-codes, it is maintained until it is changed by these G-codes again.

[0042] In this embodiment, the case will be described in which the movement command generating subject selection unit 55 selects, as the movement command generating subject, one of the first movement command generation unit 56 and the second movement command generation unit 57, whichever is specified by the G-code in the numerical control program for the robot, but is not limited to this. For example, the movement command generating subject selection unit 55 may determine whether the robot 3 is in the middle of a workpiece machining operation or a workpiece transport operation based on the numerical control program for the robot, and select the first movement command generation unit 56 as the movement command generating subject when the robot 3 is in the middle of a workpiece machining operation, and select the second movement command generation unit 57 as the movement command generating subject when the robot 3 is in the middle of a workpiece transport operation.

[0043] Whether the robot 3 is in the process of machining a workpiece or in the process of transporting a workpiece can be determined by the movement command generator selection unit 55, for example, based on the presence or absence of G codes (G40 to G42) for utilizing a tool diameter compensation function described later, G codes (G43, G44, G49) for utilizing a tool length compensation function described later, and G codes (G54.4) for utilizing a workpiece placement error compensation function described later. That is, when the command input from the input analysis unit 54 includes various G codes for utilizing the various compensation functions as described above, the movement command generator selection unit 55 may determine that the robot 3 is in the process of machining a workpiece and select the first movement command generation unit 56 as the movement command generation unit, and when the command does not include various G codes as described above, the movement command generation unit selection unit 55 may determine that the robot 3 is in the process of transporting a workpiece and select the second movement command generation unit 57 as the movement command generation unit.

[0044] When a command is input from the movement command generation subject selection unit 55, the second movement command generation unit 57 generates a second movement command according to the command, writes the generated second movement command to the data transmission / reception unit 59, and transmits this second movement command to the robot control device 6. Here, the second movement command generated by the second movement command generation unit 57 includes at least information regarding the position coordinates and speed of the end point of the control point of the robot 3 specified based on the numerical control program for the robot, but does not include information regarding a first target movement trajectory described below.

[0045] When a command is input from the movement command generation subject selection unit 55, the first movement command generation unit 56 reads out the tool usage information and work information stored in memory 58m of the tool / work information management unit 58, generates a first movement command based on the tool usage information and work information and the command input from the movement command generation subject selection unit 55, writes the generated second movement command to the data transmission / reception unit 59, and transmits this first movement command to the robot control device 6.

[0046] More specifically, the first movement command generating unit 56 executes an interpolation process based on the command input from the movement command generating subject selecting unit 55 to calculate a first target movement trajectory that is a target of the movement trajectory from the start point of the control point of the robot 3 to an end point specified based on the numerical control program for the robot, and generates a first movement command including this first target movement trajectory. Unlike the above-mentioned second movement command, this first movement command includes not only information on the position coordinates of the end point of the control point of the robot 3, but also coordinate values ​​of designated positions at each designated time obtained by time-dividing the first target movement trajectory and information on acceleration and deceleration at each designated position.

[0047] As described above, the first movement command generating unit 56 needs to calculate the first target movement trajectory by executing an interpolation process, and therefore takes longer to generate a movement command than the second movement command generating unit 57. Therefore, it is preferable that the first movement command generating unit 56 generates the first movement command by pre-reading the analysis result of the command block to be executed a predetermined time from the present among the multiple command blocks constituting the numerical control program for the robot, taking advantage of the fact that the analysis result of the command block to be executed a predetermined time from the present is pre-read as described above from the input analyzing unit 54. This allows the first movement command generating unit 56 to secure the time to generate the first movement command.

[0048] When a command to switch the tool being used by the multi-function tool 32 is input from the input analysis unit 54, the tool / work information management unit 58 generates a tool switching command in accordance with the command, writes the generated tool switching command to the data transmission / reception unit 59, and transmits this tool switching command to the robot control device 6.

[0049] Here, the tool / workpiece information management unit 58 includes a memory 58m for storing tool information relating to the shapes of a plurality of tools usable in the multi-function tool 32 attached to the robot 3, i.e., the shapes of tools that can be appropriately switched by the tool switching command (e.g., information on the tool diameter, tool length, and cutting edge shape of each tool), tool-in-use identification information for identifying the tool currently used by the robot 3, and workpiece information relating to the installation position of a workpiece currently installed on the machine tool 2 (e.g., information on the installation error of the workpiece with respect to a predetermined reference installation position), etc. Among the information stored in the memory 58m, the tool-in-use identification information and workpiece information are appropriately rewritten by the tool / workpiece information management unit 58 based on commands input from the input analysis unit 54, information transmitted from the machine tool control module 50, etc.

[0050] In addition, the tool information (tool diameter, tool length, cutting edge shape, etc.) and work information (work placement error) stored in memory 58m of the tool / work information management unit 58 can be referred to as appropriate by the first movement command generation unit 56 when generating a first movement command using the tool diameter compensation function, tool length compensation function, and work placement error compensation function in the first movement command generation unit 56.

[0051] The tool diameter correction function is a function in which the first movement command generating unit 56 calculates a first target movement trajectory of a control point by offsetting the movement path of the control point specified based on the numerical control program for the robot by the tool radius to the right or left in a plane including the movement path. When the numerical control program for the robot includes the G-code "G41", the first movement command generating unit 56 reads out tool information related to the tool specified by a predetermined command together with the G-code from the tool / work information managing unit 58, and calculates the first target movement trajectory by offsetting the movement path of the control point to the left by the tool radius. When the numerical control program for the robot includes the G-code "G42", the first movement command generating unit 56 reads out tool information related to the tool specified by a predetermined command together with the G-code from the tool / work information managing unit 58, and calculates the first target movement trajectory by offsetting the movement path of the control point to the right by the tool radius. If the numerical control program for the robot does not include a command for specifying a tool, the first movement command generating unit 56 reads out, from the tool / work information managing unit 58, tool information related to the tool identified by the tool-used identification information stored in the memory 58m of the tool / work information managing unit 58. Furthermore, if the numerical control program for the robot includes the G-code "G40", the first movement command generating unit 56 cancels the above-mentioned tool diameter correction function.

[0052] The tool length correction function is a function in which the first movement command generating unit 56 calculates a first target movement trajectory of a control point by offsetting the movement path of the control point specified based on the numerical control program for the robot to the positive or negative side in a direction perpendicular to a plane including the movement path by a predetermined correction amount according to the tool length. When the numerical control program for the robot includes the G-code "G43", the first movement command generating unit 56 reads out tool information related to the tool specified by the predetermined command together with the G-code from the tool / work information managing unit 58, and calculates the first target movement trajectory by offsetting the movement path of the control point to the positive side by a correction amount according to the tool length. When the numerical control program for the robot includes the G-code "G44", the first movement command generating unit 56 reads out tool information related to the tool specified by the predetermined command together with the G-code from the tool / work information managing unit 58, and calculates the first target movement trajectory by offsetting the movement path of the control point to the negative side by a correction amount according to the tool length currently being used. If the numerical control program for the robot does not include a command for specifying a tool, first movement command generating unit 56 reads out, from tool / work information managing unit 58, tool information related to the tool identified by the tool-used identification information stored in memory 58m of tool / work information managing unit 58. Furthermore, if the numerical control program for the robot includes G-code "G49", first movement command generating unit 56 cancels the above-mentioned tool length correction function.

[0053] The workpiece placement error correction function refers to a function in which the first movement command generating unit 56 calculates a first target movement trajectory of the control point by rotating the movement path of the control point specified based on the numerical control program for the robot by an amount corresponding to the workpiece placement error in three-dimensional space. During the period specified by the G code "G54.4" in the numerical control program for the robot, the first movement command generating unit 56 reads out workpiece information from the tool and workpiece information managing unit 58 and calculates the first target movement trajectory by rotating the movement path of the control point in three-dimensional space by an amount corresponding to the current workpiece placement error.

[0054] When the second movement command is written by the second movement command generating unit 57, the data transmitting / receiving unit 59 transmits this second movement command to the data transmitting / receiving unit 69 of the robot control device 6 at a timing determined based on the numerical control program for the robot. Also, when the first movement command is written by the first movement command generating unit 56, the data transmitting / receiving unit 59 transmits this first movement command to the data transmitting / receiving unit 69 at a timing determined based on the numerical control program for the robot. In this way, the data transmitting / receiving unit 59 transmits the movement command generated by the movement command generating entity to the robot control device 6.

[0055] As described above, the first movement command includes coordinate values ​​of the designated position for each designated time obtained by time-dividing the start of the first target motion. Therefore, when the first movement command generating unit 56 is selected as the movement command generating entity, it is preferable that the data transmitting / receiving unit 59 transmits the first movement command to the robot control device 6 for each designated time.

[0056] Furthermore, when a tool switching command is written by the tool / work information management unit 58, the data transmission / reception unit 59 transmits this tool switching command to a data transmission / reception unit 69 at a timing determined based on the numerical control program for the robot.

[0057] Next, a detailed description will be given of the configuration of the robot control device 6. As shown in Fig. 2, the robot control device 6 has various functions realized by the above hardware configuration, such as an input analysis unit 61, a movement command determination unit 62, an I / O control unit 63, a trajectory control unit 64, a program management unit 65, a robot command generation unit 66, a kinematics control unit 67, a servo control unit 68, and a data transmission / reception unit 69.

[0058] When the data transmitter / receiver 69 receives commands such as the first movement command, the second movement command, and the tool switching command transmitted from the data transmitter / receiver 59 of the numerical control device 5, it inputs these commands to the input analyzer 61 one by one.

[0059] The input analysis unit 61 analyzes commands input from the data transmission / reception unit 69, and transmits the analysis result to the movement command determination unit 62 and the I / O control unit 63. More specifically, when a first movement command or a second movement command is input from the data transmission / reception unit 69, the input analysis unit 61 transmits these movement commands to the movement command determination unit 62. In addition, when a tool switching command is input from the data transmission / reception unit 69, the input analysis unit 61 transmits this tool switching command to the I / O control unit 63.

[0060] When a tool switching command is input from the input analysis unit 61, the I / O control unit 63 inputs an I / O signal corresponding to the input tool switching command to the multi-function tool 32. As a result, the tool used by the multi-function tool 32 attached to the robot 3 is switched to a tool designated based on the numerical control program for the robot.

[0061] The movement command determination unit 62 determines whether the movement command input from the input analysis unit 61 is a first movement command including a first target movement trajectory or a second movement command not including the first target movement trajectory. When a first movement command is input, the movement command determination unit 62 transmits the first movement command to the trajectory control unit 64. When a second movement command is input, the movement command determination unit 62 transmits the second movement command to the robot command generation unit 66.

[0062] When the robot command generating unit 66 receives the second movement command transmitted from the movement command determining unit 62, it generates a command according to the received second movement command and adds it to the robot program.

[0063] When a new command is added to the robot program, the program management unit 65 executes the command one by one to generate a motion plan for the robot 3 in accordance with the second movement command and transmits the motion plan to the trajectory control unit 64.

[0064] When the trajectory control unit 64 receives the motion plan transmitted from the program management unit 65, the trajectory control unit 64 executes an interpolation process based on the motion plan to calculate a second target motion trajectory, which is a target of the motion trajectory of the control point of the robot 3, and inputs the second target motion trajectory to the kinematics control unit 67. The kinematics control unit 67 then executes a kinematic calculation based on the second target motion trajectory calculated by the trajectory control unit 64 to calculate the angles of each joint of the robot 3 as target angles, and transmits these target angles to the servo control unit 68. The servo control unit 68 also generates a robot control signal for the robot 3 by feedback-controlling each servo motor of the robot 3 so that the target angles of each joint transmitted from the trajectory control unit 64 are realized, and inputs the signal to the servo motor of the robot 3. As described above, when the robot control device 6 receives a second movement command from the numerical control device 5, the robot control device 6 controls the motion of the robot 3 so that the control point of the robot 3 moves along the second target motion trajectory calculated by the interpolation process executed on the robot control device 6 side.

[0065] Furthermore, when the trajectory control unit 64 receives from the movement command determination unit 62 the first movement command including the coordinate values ​​of the designated position at each designated time obtained by time-dividing the first target movement trajectory as described above, the trajectory control unit 64 inputs the first movement command to the kinematics control unit 67. The kinematics control unit 67 then performs kinematic calculations based on the first movement command, which is time-series data, to calculate the target angles of each joint of the robot 3 at each designated time, and transmits these target angles to the servo control unit 68. The servo control unit 68 also generates a robot control signal for the robot 3 by feedback-controlling each servo motor of the robot 3 so that the target angles of each joint transmitted from the trajectory control unit 64 are realized, and inputs the signal to the servo motor of the robot 3. As described above, when the robot control unit 6 receives the first movement command from the numerical control unit 5, it controls the operation of the robot 3 so that the control point of the robot 3 moves along the first target movement trajectory calculated by the interpolation process executed on the numerical control unit 5 side.

[0066] Next, the flow of various signals and information in the numerical control system 1 configured as above will be described with reference to FIGS. 3, 4A and 4B.

[0067] FIG. 3 is a diagram showing an example of a numerical control program for a robot. 4A and 4B are sequence diagrams showing the flow of signals and information between the numerical control device 5 and the robot control device 6 when the numerical control device 5 is operated based on the numerical control program for a robot illustrated in FIG. 3, and the processing executed in the robot control device 6.

[0068] First, in a block indicated by sequence number "N10", a G-code command "G100.0" is input to the motion command generating subject selection unit 55 of the numerical controller 5. As a result, the motion command generating subject selection unit 55 selects the second motion command generating unit 57 as a motion command generating subject in order to determine the motion trajectory of the control point of the robot 3 by an interpolation process executed on the robot controller 6 side. In response to the input of the command "G100.0", the motion command generating subject selection unit 55 instructs the robot controller 6 to generate a dynamic executable file for adding sequential commands to the robot program based on the second motion command transmitted from the numerical controller 5. In response to this, the robot controller 6 generates this dynamic executable file.

[0069] Next, in the block indicated by sequence number "N11", a G-code command "G68.8" is input to the input analysis unit 54 of the numerical controller 5. As a result, the coordinate format in the numerical controller 5 and the robot controller 6 is set to the respective axis coordinate format.

[0070] Next, in the block indicated by sequence number "N12", the command "G0 J1=_J2=_J3=_J4=_J5=_J6=_" for fast-forwarding the control point of the robot 3 to the end point specified based on the coordinate format of each axis is input to the second movement command generating unit 57 of the numerical control device 5. The coordinate value of the end point is input in the underscore part in the command. The second movement command generating unit 57 generates a second movement command according to the input command and transmits it to the robot control device 6. The robot control device 6 calculates a second target movement trajectory by performing an interpolation process based on the second movement command transmitted from the numerical control device 5, and controls the movement of the robot 3 so that the control point of the robot 3 moves along the second target movement trajectory.

[0071] Next, in the block indicated by sequence number "N20", a G-code command "G68.9" is input to the input analysis unit 54 of the numerical controller 5. As a result, the coordinate format in the numerical controller 5 and the robot controller 6 is set to the Cartesian coordinate format.

[0072] Next, in the block indicated by sequence number "N21", a command "G0 X_Y_Z_A_B_C_P_" for fast-forwarding the control point of the robot 3 to an end point specified based on the Cartesian coordinate format is input to the second movement command generating unit 57 of the numerical control device 5. The second movement command generating unit 57 generates a second movement command according to the input command and transmits it to the robot control device 6. The robot control device 6 calculates a second target movement trajectory by performing an interpolation process based on the second movement command transmitted from the numerical control device 5, and controls the movement of the robot 3 so that the control point of the robot 3 moves along the second target movement trajectory.

[0073] Next, in the block indicated by sequence number "N30", a command "G100.1" in G-code is input to the movement command generating subject selecting unit 55 of the numerical controller 5. As a result, the movement command generating subject selecting unit 55 selects the first movement command generating unit 56 as a movement command generating subject in order to determine the movement trajectory of the control point of the robot 3 by an interpolation process executed on the numerical controller 5 side. In response to the input of the command "G100.1", the movement command generating subject selecting unit 55 instructs the robot controller 6 to delete the generated dynamic executable file in order to control the movement of the robot 3 based on the first movement command, which is time-series data transmitted from the numerical controller 5. In response to this, the robot controller 6 deletes the dynamic executable file generated in the block indicated by sequence number "N10".

[0074] Next, in the block indicated by sequence number "N31", a G-code command "G68.8" is input to the input analysis unit 54 of the numerical controller 5. As a result, the coordinate format in the numerical controller 5 and the robot controller 6 is set to the respective axis coordinate format.

[0075] Next, in the block indicated by sequence number "N32", the first movement command generating unit 56 of the numerical control device 5 receives the G-code "G54.4 P1" for declaring the start of the workpiece placement error compensation function. This causes the first movement command generating unit 56 to read out workpiece information corresponding to the current workpiece placement position from the tool and workpiece information managing unit 58. The first movement command generating unit 56 also calculates the first target movement trajectory by rotating the movement path of the control point in the three-dimensional space by an amount corresponding to the acquired workpiece placement error until the G-code "G54.4 P0" for declaring the end of the workpiece placement error compensation function is received in the block indicated by sequence number "N42".

[0076] Next, in the block indicated by sequence number "N33", a command "G1 J1=_J2=_J3=_J4=_J5=_J6=_F4000 G41 D2" is input to the first movement command generating unit 56 of the numerical control device 5 to move the control point of the robot 3 by linear interpolation at a specified feed rate (F4000) toward an end point specified based on each axis coordinate format. The first movement command generating unit 56 calculates a first target movement trajectory in response to the input command, generates a first movement command that is time-series data including coordinate values ​​at each specified time along the first target movement trajectory, and transmits it to the robot control device 6. In addition, in the block indicated by "N33", a command "D_" for specifying the currently used tool is input together with a G code "G41" for utilizing the tool diameter correction function. Here, the tool number for specifying the currently used tool is input in the part indicated by the underscore of the command "D_". The first movement command generating unit 56 first reads out the tool information of the tool specified by the tool number from the tool / workpiece information managing unit 58. The first movement command generating unit 56 also rotates the movement path of the control point calculated based on the numerical value written in the underscored portion in the three-dimensional space by an amount corresponding to the installation error of the workpiece acquired in the block indicated by the sequence number "N32", and further offsets it to the left by an amount corresponding to the tool radius of the tool specified by the tool number to calculate a first target movement trajectory of the control point, and generates a first movement command corresponding to this first target movement trajectory. The robot control device 6 controls the movement of the robot 3 based on the first movement command transmitted from the numerical control device 5, thereby moving the control point of the robot 3 along the first target movement trajectory and machining (e.g., cutting) the workpiece.

[0077] Next, in the block indicated by sequence number "N40", a G-code command "G68.9" is input to the input analysis unit 54 of the numerical controller 5. As a result, the coordinate format in the numerical controller 5 and the robot controller 6 is set to the Cartesian coordinate format.

[0078] Next, in the block indicated by sequence number "N41", the second movement command generating unit 57 of the numerical control device 5 receives a command "G1 X_Y_Z_A_B_C_P_F4000 G42 D_" for moving the control point of the robot 3 by linear interpolation at a specified feed rate (F4000) toward an end point specified based on the Cartesian coordinate format. The first movement command generating unit 56 calculates a first target movement trajectory in response to the input command, generates a first movement command that is time-series data along the first target movement trajectory, and transmits it to the robot control device 6. Note that the block indicated by "N41" receives a command "D_" for specifying the currently used tool together with a G code "G42" for utilizing the tool diameter correction function. The first movement command generating unit 56 first reads out the tool information of the tool specified by the tool number from the tool / work information managing unit 58. The first movement command generating unit 56 rotates the movement path of the control point calculated based on the numerical value written in the underlined portion in three-dimensional space by an amount corresponding to the installation error of the workpiece acquired in the block indicated by sequence number "N32", and further offsets it to the left by an amount corresponding to the tool radius of the tool specified by the tool number, thereby calculating a first target movement trajectory of the control point, and generates a first movement command corresponding to this first target movement trajectory. The robot control device 6 controls the movement of the robot 3 based on the first movement command transmitted from the numerical control device 5, thereby moving the control point of the robot 3 along the first target movement trajectory and processing (e.g., cutting) the workpiece.

[0079] Next, in the block indicated by sequence number "N42," the G code "G54.4 P0" for declaring the end of the workpiece placement error compensation function is input to the first move command generating unit 56 of the numerical controller 5. This causes the first move command generating unit 56 to subsequently turn off the workpiece placement error compensation function.

[0080] According to this embodiment, the following effects are achieved. In the numerical control system 1, for example, when the robot 3 is to be assigned to perform a workpiece machining operation, a first movement command including a first target motion trajectory is sent from the numerical control device 5 to the robot control device 6, so that the control point of the robot 3 can be moved along the first target motion trajectory calculated by the numerical control device 5, and the robot 3 can machine the workpiece with high accuracy. Also, for example, when the robot 3 is assigned to perform an operation that does not involve machining the workpiece, specifically, a workpiece transport operation, a second movement command not including the first target motion trajectory is sent from the numerical control device 5 to the robot control device 6, so that the robot control device 6 can take into account the dynamic characteristics of the robot and move the control point of the robot 3 in the shortest time or along the shortest path, and therefore the cycle time for machining the workpiece by the machine tool 2 and the robot 3 can be shortened.

[0081] In the numerical control system 1, the first movement command generated by the first movement command generating unit 56 includes coordinate values ​​of a designated position for each designated time obtained by time-dividing the first target movement trajectory, and when the first movement command generating unit 56 is selected as the movement command generating entity, the data transmitting / receiving unit 59 transmits the first movement command to the robot control device 6 for each designated time. According to the numerical control system 1, by transmitting the first movement command, which is such time-series data, to the robot control device 6, the robot control device 6 can move the control point along the first target movement trajectory without performing sequential interpolation processing.

[0082] In the numerical control system 1, the first movement command generating unit 56 generates a first movement command based on the tool information and work information stored in the memory 58m of the tool / work information managing unit 58. This allows the first movement command generating unit 56 to calculate a first target movement trajectory by correcting the movement trajectory of the control point specified by the numerical control program for the robot in accordance with the shape of the tool used by the robot 3, the installation error of the work, and the like, thereby improving the machining accuracy of the work using the robot 3.

[0083] In the numerical control system 1, the movement command generating subject selection unit 55 selects, as the movement command generating subject, one of the first movement command generation unit 56 and the second movement command generation unit 57, whichever is specified based on the numerical control program for the robot. This makes it possible to input the first movement command or the second movement command to the robot control device 6 at a timing determined based on the numerical control program for the robot.

[0084] In the numerical control system 1, the movement command generating subject selection unit 55 selects the first movement command generating unit 56 as the movement command generating subject when the robot 3 is in a machining operation, and selects the second movement command generating unit 57 as the movement command generating subject when the robot 3 is in a transport operation. As a result, when the robot 3 is in a machining operation, the control point of the robot 3 can be moved along the first target movement trajectory calculated by the numerical control device 5 side, so that the robot 3 can machine the workpiece with high accuracy. Also, when the robot 3 is in a transport operation, the control point of the robot 3 can be moved along the second target movement trajectory calculated by the robot control device 6 side in consideration of the dynamic characteristics of the robot 3, so that the cycle time of machining and transporting the workpiece by the machine tool 2 and the robot 3 can be shortened.

[0085] In the numerical control system 1, the first movement command generating unit 56 generates a first movement command by looking ahead at a command block to be executed a predetermined time from the present among a plurality of command blocks constituting a numerical control program for a robot. This allows the first movement command generating unit 56 to secure time to generate the first movement command. This also allows acceleration / deceleration interpolation to be performed taking into account the preceding position, thereby further improving machining accuracy.

[0086] The present disclosure is not limited to the above-described embodiment, and various modifications and variations are possible. [Explanation of symbols]

[0087] 1. Numerical control system 2…Machine tools 3. Robot 32...Multi-tool 5...Numerical control device 50...Machine tool control module 51…Robot control module 55...Movement command generating subject selection unit (selection unit) 56…First movement command generation unit 57…Second movement command generation unit 58...Tool / Work Information Management Unit (Memory Device) 59...Data transmission / reception unit (transmission unit) 6...Robot control device (robot control device) 62…Movement command determination unit 63...I / O control unit 64...Trajectory control unit 65…Program Management Division 66...Robot command generation unit 67...Kinematics control section 69...Data transmission / reception unit

Claims

1. A numerical control device controls the operation of a machine tool based on a numerical control program, and generates a movement command for moving a control point, which is a tip end of an arm of a robot, for a robot control device that controls the operation of the robot, comprising: a first movement command generating unit that calculates a target motion trajectory that is a target of a motion trajectory of the control point based on the numerical control program, and generates a first movement command that includes the target motion trajectory and is for moving the control point; a second movement command generating unit that generates a second movement command that does not include the target motion trajectory and is for moving the control point based on the numerical control program; a selection unit that selects one of the first movement command generation unit and the second movement command generation unit as a movement command generation main unit; a transmitter that transmits the movement command generated by the movement command generating entity to the robot control device.

2. the first movement command includes coordinate values ​​of a designated position for each designated time obtained by time-dividing the target motion trajectory, The numerical control device according to claim 1 , wherein the transmission unit transmits the first movement command to the robot control device at each of the designated times when the first movement command generation unit is selected as the movement command generation subject.

3. A storage device is further provided for storing at least one of tool information relating to a shape of a tool used by the robot and workpiece information relating to a placement position of a workpiece to be machined by the machine tool, The numerical control device according to claim 1 , wherein the first movement command generating unit generates the first movement command based on at least one of the tool information and the workpiece information.

4. 4. The numerical control device according to claim 1, wherein the selection section selects one of the first movement command generation section and the second movement command generation section, which is designated based on the numerical control program, as the movement command generation entity.

5. 4. The numerical control device according to claim 1, wherein the selection unit selects the first movement command generation unit as the movement command generation subject when the robot is performing a machining operation, and selects the second movement command generation unit as the movement command generation subject when the robot is performing a transport operation.

6. 6. The numerical control device according to claim 1, wherein the first movement command generating unit generates the first movement command by looking ahead at a command block to be executed a predetermined time from the present among a plurality of command blocks constituting the numerical control program.

7. a numerical control device that controls the operation of the machine tool based on a numerical control program and generates a movement command for moving a control point that is the tip of the robot's arm; a robot control device capable of communicating with the numerical control device and controlling an operation of the robot based on a movement command transmitted from the numerical control device, The numerical control device includes: a first movement command generating unit that calculates a target motion trajectory that is a target of a motion trajectory of the control point based on the numerical control program, and generates a first movement command that includes the target motion trajectory and is for moving the control point; a second movement command generating unit that generates a second movement command that does not include the target motion trajectory and is for moving the control point based on the numerical control program; a selection unit that selects one of the first movement command generation unit and the second movement command generation unit as a movement command generation main unit; a transmission unit that transmits the movement command generated by the movement command generation entity to the robot control device, The robot control device, when receiving the second movement command, controls the movement of the robot based on the second movement command, and, when receiving the first movement command, controls the movement of the robot so that the control point moves along the target movement trajectory.

Citation Information

Patent Citations

  • Robot control device

    JP1996174378A

  • Method for correcting position and posture of held object

    JP2006137001A

  • Article retrieving apparatus that determines retaining position / posture of robot based on selecting conditions

    JP2014054715A

  • Machining system

    JP2019086823A

  • Machining control system and machining system

    JP2020170356A