Numerical control device and numerical control system

By pre-generating and storing program block robot instructions and information that the robot control device can recognize in the numerical control device, the problem of excessively long loop time in the existing system is solved, and the efficiency of robot control is improved.

CN116635801BActive Publication Date: 2026-04-07FANUC LTD
View PDF 2 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2021-12-16
Publication Date
2026-04-07

AI Technical Summary

Technical Problem

In existing numerical control systems, the cycle time of robot control increases due to the large program size and the long conversion processing time, resulting in a decrease in the efficiency of robot control.

Method used

By pre-generating and storing program block robot instructions and information that the robot control device can recognize in the numerical control device, and sending them when necessary, the need for real-time generation is reduced, and program block synchronization is achieved.

Benefits of technology

It shortens the robot control cycle time, improves the efficiency of generating robot instructions in program blocks, reduces the conversion processing time, and improves the overall system efficiency.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN116635801B_ABST
    Figure CN116635801B_ABST
Patent Text Reader

Abstract

The numerical control device (5) includes: a program preprocessing section (54) that generates a program block robot command that can be recognized in the robot control device (6) and program block information associated with the program block robot command based on the analysis result of each program block of a numerical control program; a robot command storage section (523) that stores the program block robot command and the program block information generated by the program preprocessing section (54); a program execution management section (58) that reads the program block robot command associated with the program block information specified by a program execution instruction from the robot command storage section (523); and a first communication section (59) that transmits the program block robot command read by the program execution management section (58) to the robot control device (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

[0002] In recent years, in order to promote automation of a machining site, a numerical control system that controls the operation of a machine tool that machines a workpiece and the operation of a robot that is provided near the machine tool in conjunction with each other is desired (see, for example, Patent Literature 1).

[0003] Generally, a numerical control program for controlling a machine tool and a program language for a robot program for controlling a robot are different. Therefore, in order to control the operation of a machine tool and the operation of a robot in conjunction with each other, an operator must be proficient in both the numerical control program and the robot program.

[0004] In Patent Literature 1, a numerical control device that controls both a machine tool and a robot by a numerical control program is shown. More specifically, in the numerical control system shown in Patent Literature 1, a robot instruction that can be recognized in a robot control device is generated in the numerical control device in accordance with a numerical control program, a robot program is generated in the robot control device in accordance with the robot instruction, and the operation of the robot is controlled in accordance with the robot program. According to the numerical control system shown in Patent Literature 1, a user who is familiar with the numerical control program can control the robot without being proficient in the robot program.

[0005] However, a numerical control program according to a program language such as G code or M code is basically described in units of program blocks, and a numerical control device executes the numerical control program in units of instruction program blocks. Therefore, in the existing numerical control system, the robot instruction is generated in the numerical control device in units of instruction program blocks, and the robot instruction is transmitted to the robot control device. In the robot control device, the robot program is generated in accordance with the robot instruction transmitted in units of instruction program blocks, and the operation of the robot is controlled in accordance with the robot program in units of instruction program blocks. Thus, in the numerical control device and the robot control device, the execution program blocks of the programs that are executed respectively are synchronized.

[0006] PATENT LITERATURE

[0007] Patent Literature 1: Japanese Patent No. 6647472 SUMMARY

[0008] PROBLEMS TO BE SOLVED BY THE INVENTION

[0009] However, in existing numerical control systems, whenever the robot's movement is controlled in units of instruction blocks on the robot control device side, at least three processes need to be executed on the numerical control device side: reading the next instruction block, converting the read instruction block into robot instructions, and sending the robot instructions. Therefore, in existing numerical control systems, the number of conversion processes increases proportionally to the program size of the numerical control program (i.e., the number of instruction blocks constituting the numerical control program). Consequently, in existing numerical control systems, the larger the program size, the longer the conversion process takes, and thus the robot control cycle time may also increase accordingly due to the time spent on these conversion processes.

[0010] The purpose of this disclosure is to provide a numerical control device and a numerical control system that can synchronize the program execution blocks between a numerical control device and a robot control device, and shorten the cycle time of robot control.

[0011] Methods for solving problems

[0012] One aspect of this disclosure provides a numerical control device that controls the movement of a machine tool according to a numerical control program and generates robot instructions for a robot control device that controls the movement of a robot. The numerical control device includes: a program preprocessing unit that generates program block robot instructions recognizable in the robot control device and program block information associated with those program block robot instructions based on the parsing results of each program block of the numerical control program; a robot instruction storage unit that stores the program block robot instructions and program block information generated by the program preprocessing unit; a program execution management unit that reads program block robot instructions associated with program block information specified by a predetermined program execution instruction from the robot instruction storage unit; and a communication unit that sends the program block robot instructions read by the program execution management unit to the robot control device.

[0013] One aspect of this disclosure provides a numerical control system comprising: a numerical control device that controls the movement of a machine tool according to a numerical control program and generates robot instructions for controlling the movement of a robot; and a robot control device capable of communicating with the numerical control device and controlling the movement of the robot according to the robot instructions sent from the numerical control device. The numerical control device includes: a program preprocessing unit that generates program block robot instructions recognizable in the robot control device and program block information associated with those program block robot instructions based on the parsing results of each program block of the numerical control program; and a robot instruction storage unit that stores the instructions generated by the program preprocessing unit. The robot control device comprises: a robot block instruction and a program block information generated by a program execution management unit; a program execution management unit that reads the program block robot instruction associated with the program block information specified by the prescribed program execution instruction from the robot instruction storage unit; a first communication unit that sends the program block robot instruction read by the program execution management unit to the robot control device; and a robot control device comprising: a second communication unit that receives the program block robot instruction sent from the first communication unit; a robot program generation unit that generates a robot program based on the program block robot instruction received by the second communication unit; and a motion control unit that controls the motion of the robot based on the robot program generated by the robot program generation unit.

[0014] Invention Effects

[0015] In one aspect of this disclosure, the program preprocessing unit of the numerical control device generates program block robot instructions and associated program block information that can be recognized in the robot control device based on the parsing results of each program block of the numerical control program. The robot instruction storage unit of the numerical control device stores the generated program block robot instructions and program block information. Furthermore, the program execution management unit of the numerical control device reads the program block robot instructions associated with the program block information specified by the program execution instructions from the robot instruction storage unit, and the communication unit of the numerical control device sends the program block robot instructions read by the program execution management unit to the robot control device. As described above, according to one aspect of this disclosure, before inputting the program execution instructions into the program execution management unit, the program preprocessing unit generates program block robot instructions and program block information for all program blocks included in the numerical control program in advance and stores them in the robot instruction storage unit. Therefore, when sending the program block robot instructions from the numerical control device to the robot control device, it is not necessary to perform the processing of generating program block robot instructions from the numerical control program. Therefore, according to one aspect of this disclosure, the execution program blocks of a program can be synchronized between a numerical control device and a robot control device, and compared to existing numerical control systems, the cycle time of robot control will be shortened by reducing the time consumed by generating and processing robot instructions in the program blocks. Attached Figure Description

[0016] Figure 1 This is a schematic diagram of the numerical control system according to the first embodiment of this disclosure.

[0017] Figure 2 This is a functional block diagram of a numerical control device and a robot control device.

[0018] Figure 3 This is a diagram schematically representing multiple program block robot instructions generated by the preprocessing of the program preprocessing unit.

[0019] Figure 4 It is a timing diagram that represents the flow of signals and information between the numerical control device and the robot control device, the processing performed in the numerical control device, and the processing performed in the robot control device.

[0020] Figure 5 This is a diagram illustrating an example of a robot using a numerical control program, and multiple block robot instructions generated by preprocessing the numerical control program.

[0021] Figure 6This is a timing diagram showing the flow of signals and information between the numerical control device and the robot control device, the processing performed in the numerical control device, and the processing performed in the robot control device in the numerical control system of the second embodiment of this disclosure. Detailed Implementation

[0022] <First Implementation Method>

[0023] The numerical control system of the first embodiment of this disclosure will be described below with reference to the figures.

[0024] Figure 1 This is a schematic diagram of the numerical control system 1 of this embodiment.

[0025] The numerical control system 1 includes: a machine tool 2; a numerical control unit (CNC) 5 that controls the movements of the machine tool 2; a robot 3 disposed near the machine tool 2; and a robot control unit 6 communicatively connected to the CNC 5. The CNC 5 controls the movements of the machine tool 2 according to a prescribed numerical control program and generates instructions for the robot control unit 6, which are then sent to the robot control unit 6. The robot control unit 6 controls the movements of the robot 3 according to the instructions sent from the CNC 5.

[0026] Machine tool 2 processes the unlabelled workpiece according to the machine tool control signals sent from numerical control device 5. Here, machine tool 2 is, for example, a lathe, drilling machine, milling machine, grinding machine, laser processing machine, and injection molding machine, but is not limited to these.

[0027] Robot 3 operates under the control of robot control device 6, for example, performing a prescribed operation on a workpiece processed by machine tool 2. Robot 3 is, for example, a multi-joint robot, with a tool 32 for gripping, processing, or inspecting the workpiece mounted on the forearm 31 of its arm. The following describes the case where robot 3 is a 6-axis multi-joint robot, but it is not limited to this. Furthermore, the following describes the case where robot 3 is a 6-axis multi-joint robot, but the number of axes is not limited to this.

[0028] The numerical control device 5 and the robot control device 6 are computers composed of hardware such as a CPU (Central Processing Unit), auxiliary storage units such as HDD (Hard Disk Drive) or SSD (Solid State Drive) storing various programs, main storage units such as RAM (Random Access Memory) storing data temporarily needed for the execution of programs by the processing unit, operation units such as a keyboard for the operator to perform various operations, and display units such as a display showing various information to the operator. These robot control devices 6 and numerical control devices 5 can send and receive various signals to each other via, for example, Ethernet (registered trademark).

[0029] Figure 2 This is a functional block diagram of the numerical control device 5 and the robot control device 6.

[0030] The numerical control device 5 generates various instructions for controlling the actions of the robot 3 or the tool 32 according to the procedure described below, and sends the generated instructions to the robot control device 6. Based on the instructions sent from the numerical control device 5, the robot control device 6 generates robot control signals for controlling the actions of the robot 3, or generates I / O signals for controlling the actions of the tool 32, according to the procedure described below, and inputs the generated robot control signals or I / O signals into the robot 3. Thus, the robot control device 6 controls the actions of the robot 3 and the tool 32.

[0031] First, the detailed structure of the numerical control device 5 will be explained. For example... Figure 2 As shown, the numerical control device 5 implements various functions through the above hardware structure, such as a machine tool control module 50 as the control system of the machine tool 2, a robot control module 51 as the control system of the robot 3, a storage unit 52 storing numerical control programs that are executed in the machine tool control module 50 or the robot control module 51, and a program editing unit 53 that creates, selects or edits numerical control programs according to the operator's operation.

[0032] The storage unit 52 includes: a machine tool program storage unit 521, which stores a machine tool numerical control program, which is a numerical control program used to generate machine tool control signals for machine tool 2 in machine tool control module 50; a robot program storage unit 522, which stores a robot numerical control program, which is a numerical control program used to generate robot instructions for robot 3 in robot control module 51; and a robot instruction storage unit 523, which stores program block robot instructions and program block information, etc., as described later.

[0033] The machine tool numerical control program stored in the machine tool program storage unit 521 and the robot numerical control program stored in the robot program storage unit 522 are composed of multiple instruction program blocks described in a common programming language (such as G-code or M-code). Multiple numerical control programs are stored in each of these program storage units 521 and 522. Furthermore, each of the multiple numerical control programs stored in these program storage units 521 and 522 is assigned a unique program number.

[0034] The program editing unit 53 regenerates a new numerical control program and stores it in the program storage units 521 and 522 based on the operator's operation on the operation panel (not shown), or selects or edits the numerical control program stored in the program storage units 521 and 522.

[0035] The numerical control program for the machine tool is described based on the machine tool coordinate system, which serves as the first coordinate system. The origin of the first coordinate system 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 posture of the control points of the machine tool 2 are described by the coordinate values ​​of the machine tool coordinate system.

[0036] The numerical control program for the robot is described using a robot coordinate system, which is a second coordinate system different from the machine tool coordinate system. That is, in the robot numerical control program, the position and posture of the control points of robot 3 (e.g., the fore-end 31 of the robot arm) are described by coordinate values ​​in a robot coordinate system different from the machine tool coordinate system. This robot coordinate system has its origin at a reference point determined on or near robot 3. Furthermore, although the following describes the case where the robot coordinate system differs from the machine tool coordinate system, this disclosure is not limited thereto. The robot coordinate system can also be made consistent with the machine tool coordinate system. In other words, the origin and coordinate axis directions of the robot coordinate system can be made consistent with the origin and coordinate axis directions of the machine tool coordinate system.

[0037] Furthermore, in this robot numerical control program, the robot coordinate system can switch between two or more different coordinate forms for the control axes. More specifically, in the robot numerical control program, the position and posture of the control points of robot 3 can be specified using orthogonal coordinates or coordinates for each axis.

[0038] In each axis coordinate system, the position and orientation of the control point of robot 3 are specified by a total of six real coordinate values, which are composed of the rotation angle values ​​(J1, J2, J3, J4, J5, J6) of the six joints of robot 3.

[0039] In orthogonal coordinate form, the position and orientation of the control point of robot 3 are specified by a total of 6 real coordinate values, which consist of 3 coordinate values ​​(X, Y, Z) along the 3 orthogonal coordinate axes and 3 rotation angle values ​​(A, B, C) around each orthogonal coordinate axis.

[0040] Here, in the all-axis coordinate system, since the rotation angles of each joint of robot 3 are directly specified, the axis configuration of each arm or wrist of robot 3 and the number of rotations of joints capable of rotating more than 360 degrees (hereinafter collectively referred to as the "shape of robot 3") are also uniquely determined. In contrast, in the orthogonal coordinate system, since the position and pose of the control points of robot 3 are specified by 6 coordinate values ​​(X, Y, Z, A, B, C), the shape of robot 3 cannot be uniquely determined. Therefore, in the numerical control program for the robot, the shape of robot 3 can be specified by an integer value with a specified number of bits, namely the shape value P. Therefore, the position and pose of the control points of robot 3 and the shape of robot 3 are represented by 6 coordinate values ​​(J1, J2, J3, J4, J5, J6) in the all-axis coordinate system, and by 6 coordinate values ​​and 1 shape value (X, Y, Z, A, B, C, P) in the orthogonal coordinate system.

[0041] In the numerical control program for the robot, the coordinate form can be set using G-codes "G68.8" and "G68.9". More specifically, by inputting G-code "G68.8", the coordinate form is set to the individual axis coordinate form, and by inputting G-code "G68.9", the coordinate form is set to the orthogonal coordinate form. The G-codes "G68.8" and "G68.9" used to set these coordinate forms are modal. Therefore, after setting the coordinate form to the individual axis coordinate form or the orthogonal coordinate form using these G-codes, the coordinate form is maintained until it is changed again using these G-codes. Furthermore, in this embodiment, when the G-codes for setting these coordinate forms are not included in the robot's numerical control program, the coordinate form is automatically set to the orthogonal coordinate form, but this is not a limitation.

[0042] The machine tool control module 50 generates machine tool control signals for controlling the operation of the machine tool 2 according to the machine tool numerical control program stored in the machine tool program storage unit 521, and inputs them to the actuator (not shown) of the machine tool 2. More specifically, the machine tool control module 50 reads a numerical control program with a program number specified by a predetermined program execution instruction from a plurality of machine tool numerical control programs stored in the machine tool program storage unit 521, and generates machine tool control signals by parsing the instruction type according to the numerical control program. The machine tool 2 performs operations according to the machine tool control signals sent from the machine tool control module 50 to process a workpiece (not shown).

[0043] The robot control module 51 generates various instructions for controlling the actions of the robot 3 and the tool 32 based on the robot numerical control program stored in the robot program storage unit 522, and sends them to the robot control device 6. More specifically, the robot control module 51 includes a program preprocessing unit 54, a program execution instruction unit 57, a program execution management unit 58, and a first communication unit 59.

[0044] The program preprocessing unit 54 reads a robot numerical control program consisting of multiple instruction program blocks from the robot program storage unit 522, and performs preprocessing as shown in the following steps on the read robot numerical control program. As a result, robot instructions, namely program block robot instructions, are generated for each instruction program block that constitutes the robot numerical control program and described in a form that can be recognized by the robot control device 6. The robot instruction storage unit 523 stores the generated multiple program block robot instructions.

[0045] More specifically, the program preprocessing unit 54 includes a program input unit 541, an input parsing unit 542, and a robot instruction generation unit 543, which are used to preprocess the numerical control program for the robot.

[0046] The following describes the case where the program preprocessing unit 54, for example, has completed the generation, selection, or editing of the numerical control program for the robot, and the preprocessing described below begins accordingly. However, the timing of starting the preprocessing is not limited to this. The program preprocessing unit 54 may begin the preprocessing described below no later than before the program execution instruction unit 57, which will be described later, inputs the program execution instruction into the program execution management unit 58.

[0047] First, the program input unit 541 reads the unprocessed robot numerical control program from the multiple robot numerical control programs stored in the robot program storage unit 522. Specifically, it reads the robot numerical control program that has been generated, selected or edited by the program editing unit 53 and inputs it into the input parsing unit 542 one by one according to each instruction program block.

[0048] The input parsing unit 542 parses the instruction category of the robot numerical control program input from the program input unit 541 according to each instruction program block, and sends the parsing results to the robot instruction generation unit 543 according to each instruction program block.

[0049] The robot instruction generation unit 543 generates, according to the parsing results sent from the input parsing unit 542 for each instruction block, robot instructions recognizable in the robot control device 6, namely program block robot instructions, and program block information associated with those program block robot instructions, and stores the generated program block robot instructions or program block information in the robot instruction storage unit 523. More specifically, the robot instruction generation unit 543 generates program block robot instructions recognizable in the robot control device 6 by converting the language of the read robot numerical control program into a language recognizable in the robot control device 6. Here, the process of converting the language of the robot numerical control program into a language recognizable in the robot control device 6 also includes the process of converting the character code of the robot numerical control program into a character code recognizable in the robot control device 6, and the process of converting the robot numerical control program into signals recognizable in the robot control device 6. In addition, the program block information includes the program number of the robot numerical control program read when generating the program block robot instructions, the program block number in the robot numerical control program, etc.

[0050] Figure 3 This is a schematic diagram representing the program block robot instructions generated by the program preprocessing unit 54 as described above.

[0051] like Figure 3 As shown, the program preprocessing unit 54 performs the preprocessing described above on each of the n groups ("n" is any integer) of numerical control programs stored in the robot program storage unit 522, namely, numerical control program P1 with program number 1, numerical control program P2 with program number 2, ..., numerical control program Pn with program number n, thereby generating multiple program block robot instructions Ci_j and multiple program block information (ij) associated with each program block robot instruction Ci_j. The robot instruction storage unit 523 processes the multiple program block robot instructions Ci_j generated by the program preprocessing unit 54 as follows: Figure 3 The information is stored in the state associated with the program block information (ij). Here, "i" is equivalent to the program number and is any integer between 1 and n. "j" is equivalent to the program block number and is any integer between 1 and the number of instruction program blocks for each numerical control program. Furthermore, although the following describes the case where preprocessing is performed by the program preprocessing unit 54 for all n groups of numerical control programs P1, ..., Pn stored in the robot program storage unit 522, this disclosure is not limited to this. The program preprocessing unit 54 may also perform preprocessing only for the numerical control program selected by the selection process (not shown) among the multiple numerical control programs stored in the robot program storage unit 522.

[0052] More specifically, the program preprocessing unit 54 performs preprocessing on the numerical control program P1, which consists of b1 instruction program blocks, thereby generating a total of b1 program block robot instructions C1_1, C1_2, ..., C1_b1. It also performs preprocessing on the numerical control program P2, which consists of b2 instruction program blocks, to generate a total of b2 program block robot instructions C2_1, C2_2, ..., C2_b2. Finally, it performs preprocessing on the numerical control program Pn, which consists of bn instruction program blocks, to generate a total of bn program block robot instructions Cn_1, Cn_2, ..., Cn_bn.

[0053] return Figure 2 The program execution instruction unit 57 generates program execution instructions for the numerical control program with the program number specified according to, for example, the operator's operation, among the multiple robot numerical control programs stored in the robot program storage unit 522, and inputs them into the program execution management unit 58.

[0054] When a program execution instruction is input from the program execution instruction unit 57, the program execution management unit 58 reads multiple program block robot instructions specified by the program execution instruction from the robot instruction storage unit 523 and writes the read multiple program block robot instructions into the first communication unit 59. More specifically, the program execution management unit 58 reads multiple program block robot instructions Ci_1, Ci_2, ..., Ci_bi belonging to program number i specified by the program execution instruction in a specified order based on the program execution instruction (e.g., from program block number in ascending order), and writes the read multiple program block robot instructions Ci_1, Ci_2, ..., Ci_bi into the first communication unit 59 in the specified order based on the program execution instruction.

[0055] The first communication unit 59 sends the multiple program block robot instructions Ci_1, Ci_2, ..., Ci_bi that have been read into the program execution management unit 58, one by one, to the second communication unit 69 of the robot control device 6, described later, in the same order as the writing order of the program execution management unit 58 (i.e., the same as the reading order of the program execution management unit 58 and the same as the order of instructions according to the program execution instructions). More specifically, whenever the first communication unit 59 receives an action completion notification (described later) sent from the second communication unit 69, it sends the multiple program block robot instructions Ci_1, Ci_2, ..., Ci_bi that have been read into the program execution management unit 58, one by one, in the same order as the writing order of the program execution management unit 58.

[0056] Next, the structure of the robot control device 6 will be described in detail. For example... Figure 2As shown, the robot control device 6, through the above-described hardware configuration, realizes various functions such as the input parsing unit 60, the robot program generation unit 61, the motion control unit 65, and the second communication unit 69.

[0057] The second communication unit 69 exchanges and receives various instructions and notifications with the first communication unit 59 of the numerical control device 5. More specifically, when the second communication unit 69 receives a program block robot instruction sent from the first communication unit 59, it sequentially inputs the program block robot instruction into the input parsing unit 60. Furthermore, when an action completion notification is written by the program management unit 613 according to the procedure described later, the second communication unit 69 sends the action completion notification to the first communication unit 59.

[0058] The input parsing unit 60 parses the program block robot instructions sent from the numerical control device 5 via the second communication unit 69, and sends the parsing results to the robot program generation unit 61 and the motion control unit 65.

[0059] The robot program generation unit 61 includes a robot command generation unit 612, a program management unit 613, and a storage unit 614. By using these, a robot program corresponding to the program block robot instructions sent from the input parsing unit 60 is generated.

[0060] When a program block robot instruction is input from the input parsing unit 60, the robot command generation unit 612 notifies the program management unit 613 of the robot command corresponding to the input program block robot instruction.

[0061] When a robot command is input from the robot command generation unit 612, the program management unit 613 appends the input robot command to the robot program stored in the storage unit 614. As a result, a robot program corresponding to the program block robot instructions sent from the numerical control device 5 is generated in the storage unit 614.

[0062] The motion control unit 65 includes a program initiation unit 651, a trajectory control unit 652, a kinematic control unit 653, and a servo control unit 654, which are used to control the motion of the robot 3.

[0063] After the program block robot instruction is input from the input parsing unit 60, the program startup unit 651, corresponding to the robot program already generated by the robot program generation unit 61 based on the program block robot instruction, sends a program startup notification to the program management unit 613 in order to start the robot program. Upon receiving the program startup notification, the program management unit 613 starts the robot program stored in the storage unit 614. The program management unit 613 generates a motion plan for the robot 3 or the tool 32 corresponding to the program block robot instruction by sequentially executing the robot commands described within the started robot program. Furthermore, the program management unit 613 sends the generated motion plan for the robot 3 to the trajectory control unit 652 and the generated motion plan for the tool 32 to the servo control unit 654.

[0064] When the trajectory control unit 652 receives the motion plan of the robot 3 from the program management unit 613, it performs interpolation processing based on the motion plan to calculate the motion trajectory of the control points of the robot 3, and inputs it into the kinematics control unit 653. The kinematics control unit 653 performs kinematic calculations based on the motion trajectory calculated by the trajectory control unit 652 to calculate the angles of each joint of the robot 3 as target angles, and sends these target angles to the servo control unit 654.

[0065] In order to achieve the target angle of each joint sent from the kinematic control unit 653, the servo control unit 654 performs feedback control on each servo motor of the robot 3, thereby generating robot control signals for the robot 3 and inputting them into the servo motors of the robot 3. In addition, when the servo control unit 654 receives the motion plan of the tool 32 sent from the program management unit 613, it generates I / O signals for driving the tool 32 according to the motion plan and inputs them into the tool 32.

[0066] Furthermore, when the program management unit 613 completes the motion control of the robot 3 and tool 32 according to the robot instruction of one program block through the above program, it writes the motion completion notification to the second communication unit 69. When the motion completion notification is written by the program management unit 613, the second communication unit 69 sends the motion completion notification to the first communication unit 59 of the numerical control device 5. In addition, corresponding to receiving the motion completion notification sent from the second communication unit 69, the first communication unit 59 sends the next robot instruction of the program block to the second communication unit 69 in the writing order of the program execution management unit 58 as described above.

[0067] As described above, in the robot control device 6, when receiving block robot instructions sent from the numerical control device 5, the robot program generation unit 61 generates a robot program based on these block robot instructions, and then controls the action of the robot 3 or the tool 32 by executing the robot program.

[0068] Then, while referring to Figure 4 and Figure 5 The flow of various signals or information in the numerical control system 1 constructed as described above will be explained.

[0069] Figure 4 It is a timing diagram that represents the flow of signals and information between the numerical control device 5 and the robot control device 6, the processing performed in the numerical control device 5, and the processing performed in the robot control device 6.

[0070] First, the program preprocessing unit 54 and the program editing unit 53 of the numerical control device 5 have completed the editing of the numerical control program for the robot. Correspondingly, by performing preprocessing on the numerical control program, multiple program block robot instructions are generated and stored in the robot instruction storage unit 523.

[0071] Figure 5 This is a diagram illustrating an example of a numerical control program for a robot, and multiple block robot instructions generated by preprocessing the numerical control program.

[0072] exist Figure 5 The left side represents an example of a numerical control program with the program number set to "i" and the instruction block number set to "bi". Figure 5 The instruction block numbered "1" of the numerical control program consists of a command that moves the control point of robot 3 to the specified coordinate value (0,0,0,0,-90,0) in each axis coordinate form by fast forward. The instruction block numbered "2" consists of a command that moves the control point of robot 3 to the specified coordinate value (200.,0,150.,0,0,0,_) in orthogonal coordinate form by linear interpolation. The instruction block numbered "bi" consists of a command that moves the control point of robot 3 to the specified coordinate value (0,0,0,0,-90,0) in each axis coordinate form by fast forward.

[0073] The program preprocessing unit 54 performs preprocessing on this numerical control program, thereby enabling... Figure 5 As shown on the right, a total of "bi" program block robot instructions are generated, along with program block information associated with each program block robot instruction, and stored in the robot instruction storage unit 523. Figure 5The diagram illustrates a preprocessing step where the numerical control program performs a language conversion into a language recognizable by the robot control unit 6. The robot instruction associated with program block information (i-1) is “Move deg(0,0,0,0,-90.,0)”, the robot instruction associated with program block information (i-2) is “Move abs(200.,0,150,0,0,0)”, and the robot instruction associated with program block information (i-bi) is “Move deg(0,0,0,0,-90.,0)”.

[0074] return Figure 4 Then, the program execution instruction unit 57 of the numerical control device 5 generates a program execution instruction for the numerical control program with program number "i" that has been preprocessed as described above according to the operator's operation, and inputs it into the program execution management unit 58.

[0075] Then, the program execution management unit 58 of the numerical control device 5 reads the program block robot instructions associated with the program block information (ij) ("j" is the program block number, which is an integer between 1 and bi) from the robot instruction storage unit 523 in sequence, corresponding to the input program execution instructions, and writes the read program block robot instructions into the first communication unit 59 in sequence.

[0076] Then, the first communication unit 59 of the numerical control device 5 first sends the program block robot instructions associated with the program block information (i-1) to the robot control device 6.

[0077] Then, the robot control device 6, in accordance with the robot instruction of the program block associated with the program block information (i-1), generates and executes the robot program, thereby moving the control point of the robot 3 to the specified coordinate values ​​(0,0,0,0,-90,0) in each axis coordinate form by fast forward. Furthermore, when the motion control of the robot 3 is completed, the robot control device 6 sends a motion completion notification to the numerical control device 5.

[0078] Then, the first communication unit 59 of the numerical control device 5 sends the program block robot instruction associated with the next program block information (i-2) to the robot control device in response to receiving the action completion notification.

[0079] Then, the robot control device 6 receives the program block robot instruction associated with the program block information (i-2), generates and executes the robot program according to the program block robot instruction, thereby moving the control point of robot 3 to the specified coordinate value (200.,0,150.,0,0,0,_) in orthogonal coordinate form by linear interpolation. In addition, when the motion control of robot 3 is completed, the robot control device 6 sends a motion completion notification to the numerical control device 5.

[0080] After this, the numerical control device 5 and the robot control device 6 repeatedly send and receive program block robot instructions and action completion notifications until the robot 3 completes the action control based on the program block robot instructions associated with the program block information (i-bi).

[0081] The following effects will be achieved according to this embodiment.

[0082] In this embodiment, the program preprocessing unit 54 of the numerical control device 5 generates program block robot instructions that can be recognized in the robot control device 6, and program block information associated with the program block robot instructions, based on the parsing results of each program block of the numerical control program. The robot instruction storage unit 523 of the numerical control device 5 stores the generated program block robot instructions and program block information. Furthermore, the program execution management unit 58 of the numerical control device 5 reads the program block robot instructions associated with the program block information specified by the program execution instructions from the robot instruction storage unit 523, and the first communication unit 59 of the numerical control device 5 sends the program block robot instructions read by the program execution management unit 58 to the robot control device 6. As described above, according to this embodiment, before inputting the program execution instructions into the program execution management unit 58, the program preprocessing unit 54 generates program block robot instructions and program block information for all program blocks included in the numerical control program in advance, and stores them in the robot instruction storage unit 523. Therefore, when sending the program block robot instructions from the numerical control device 5 to the robot control device 6, it is not necessary to perform the processing of generating program block robot instructions from the numerical control program. Therefore, according to this embodiment, the program execution block can be synchronized between the numerical control device 5 and the robot control device 6, and compared with the existing numerical control system, the cycle time of robot control is shortened, which is the time consumed by generating and processing the robot instructions of the program block.

[0083] In this embodiment, the program preprocessing unit 54 begins parsing the numerical control program for the robot and generating program block robot instructions and program block information before inputting the program execution instructions from the program execution instruction unit 57 to the program execution management unit 58. Therefore, compared to existing numerical control systems, the time consumed in generating and processing program block robot instructions can be shortened from the robot control cycle time.

[0084] In this embodiment, the program preprocessing unit 54 and the program editing unit 53, having completed the creation, selection, or editing of the numerical control program for the robot, begin parsing the numerical control program for the robot and generating program block robot instructions and program block information. This allows for the rapid commencement of robot motion control based on the completed numerical control program for the robot.

[0085] In this embodiment, the program preprocessing unit 54 generates block robot instructions by converting the language of the numerical control program into a language recognizable by the robot control device 6. Furthermore, the program preprocessing unit 54 generates block robot instructions by converting the character code of the numerical control program into character code recognizable by the robot control device 6. Therefore, block robot instructions that can be recognized even by existing robot control devices 6 can be generated.

[0086] In this embodiment, the program execution management unit 58 reads multiple program block robot instructions, each associated with information about multiple program blocks specified by the program execution instructions, in a specified order based on the program execution instructions. Whenever the first communication unit 59 receives an action completion notification from the second communication unit 69, it sends the multiple program block robot instructions one by one to the second communication unit 69 in the order they were read by the program execution management unit 58. This allows for more reliable synchronization of program execution blocks between the numerical control device 5 and the robot control device 6.

[0087] <Second Implementation Method>

[0088] The numerical control system of the second embodiment of this disclosure will be described below with reference to the accompanying drawings. The main difference between the numerical control system of this embodiment and the numerical control system 1 of the first embodiment is in the step of sending program block robot instructions.

[0089] Figure 6This is a timing diagram illustrating the flow of signals and information between the numerical control device and the robot control device in this embodiment, the processing executed in the numerical control device, and the processing executed in the robot control device. Since the steps in this embodiment's numerical control system—including the steps of the program editing unit creating, selecting, or editing the numerical control program; the steps of the program preprocessing unit generating multiple program block robot instructions and program block information and storing them in the robot instruction storage unit; the steps of the program execution instruction unit generating program execution instructions for the numerical control program and inputting them into the program execution management unit; the steps of the program execution management unit reading multiple program block robot instructions from the robot instruction storage unit; and the steps of the robot control device controlling the robot's actions according to the program block robot instructions—are the same as in the numerical control system of the first embodiment, detailed descriptions are omitted below. Furthermore, the following describes the execution and... Figure 5 Let's take the same numerical control program as an example to illustrate.

[0090] like Figure 6 As shown, the program execution management unit of the numerical control device, corresponding to the input of program execution instructions, begins reading program block robot instructions from the robot instruction storage unit and begins writing the read program block instructions into a buffer located in the first communication unit, similar to the first embodiment. Furthermore, the buffer located in the first communication unit is a so-called FIFO buffer that outputs program block robot instructions in the order they are written. Although the following description uses a buffer in the first communication unit, this disclosure is not limited thereto. The same buffer can also be provided in the second communication unit. Even when a buffer is provided in the second communication unit, the same operation can be achieved with minor modifications.

[0091] like Figure 6 As shown, the program execution management unit first writes the program block robot instruction associated with the program block information (i-1) into the buffer of the first communication unit, and generates an execution instruction for the program block robot instruction associated with the program block information (i-1). Then, the first communication unit sends the program block robot instruction associated with the program block information (i-1), along with the execution instruction for that program block robot instruction, to the robot control device 6.

[0092] Then, the robot program generation unit of the robot control device reads the received program block robot instructions and generates a robot program. In addition, the motion control unit of the robot control device starts the generated robot program in accordance with the execution instructions received from the numerical control unit, thereby starting the motion control of the robot based on the program block robot instructions associated with the program block information (i-1).

[0093] As described above, during the control of the robot's actions, the second communication unit of the robot control device and the robot program generation unit have completed reading the previously received program block robot instructions and send a reading completion notification to the first communication unit.

[0094] Then, in response to receiving the read completion notification from the second communication unit, the first communication unit of the numerical control device sends the program block robot instruction to be written into the buffer, i.e., the program block robot instruction associated with the program block information (i-2), in the writing order of the program execution management unit.

[0095] Then, the robot program generation unit of the robot control device reads the received program block robot instructions and generates a robot program based on the program block robot instructions associated with the program block information (i-2).

[0096] Then, the second communication unit of the robot control device sends an action completion notification to the first communication unit in correspondence with the robot action control that has been completed based on the program block robot instructions associated with the program block information (i-1).

[0097] Then, in response to receiving the action completion notification from the second communication unit, the program execution management unit of the numerical control device sends the execution instructions for the robot instructions of the next program block, namely the execution instructions for the robot instructions of the program block associated with the program block information (i-2), to the robot control device via the first communication unit in order to transfer to the execution of the next instruction program block.

[0098] Then, the motion control unit of the robot control device, in accordance with the execution instructions received from the numerical control device, starts the motion control of the robot based on the program block robot instructions associated with the program block information (i-2) by activating the previously generated robot program.

[0099] Subsequently, the program execution management unit of the numerical control device reads multiple program block robot instructions, each associated with information about multiple program blocks specified by the program execution instructions, in a specified order (e.g., from smallest to largest program block number). The read program block robot instructions are then written into the buffer of the first communication unit in this specified order. Furthermore, whenever the reading of one program block robot instruction is completed, the second communication unit of the robot control device sends a read completion notification to the first communication unit. Additionally, whenever the first communication unit receives a read completion notification from the second communication unit, it sends the program block robot instructions written to the buffer to the second communication unit one by one in the writing order of the program execution management unit. Thus, multiple program block robot instructions can be sent from the numerical control device to the robot control device in an appropriate order, and a robot program corresponding to each program block robot instruction can be generated in the robot control device.

[0100] Furthermore, during the process of sending multiple program block robot instructions from the numerical control device to the robot control device through the above steps, whenever the robot's motion control based on one program block robot instruction is completed, the second communication unit sends an action completion notification associated with the completed program block robot instruction to the first communication unit. Additionally, corresponding to the first communication unit receiving the action completion notification, the program execution management unit generates an execution instruction for the next program block robot instruction associated with the action completion notification in the specified sequence. The first communication unit, in conjunction with the program execution management unit, sends the execution instruction to the second communication unit. Furthermore, corresponding to the second communication unit receiving the execution instruction, the motion control unit executes the robot program associated with the execution instruction, controlling the robot's motion. In the numerical control system of this embodiment, since the execution instructions for each program block robot instruction are sent from the numerical control device to the robot control device through such steps, the generated robot program can be started in parallel with the generation of the robot program based on multiple program block robot instructions. Therefore, compared to the numerical control system 1 of the first embodiment, the cycle time can be further shortened.

[0101] According to this embodiment, the same effect as the first embodiment can be achieved. Furthermore, this disclosure is not limited to the above embodiment, and various modifications and variations are possible.

[0102] Explanation of reference numerals in the attached figures

[0103] 1…Numerical Control System

[0104] 2… machine tools

[0105] 3… Robot

[0106] 5…Numerical control device

[0107] 50…Machine Tool Control Module

[0108] 51… Robot Control Module

[0109] 52… Storage Department

[0110] 521…Machine Tool Program Storage Unit

[0111] 522…Robot Program Storage Unit (Program Storage Unit)

[0112] 523…Instruction Storage Unit for Machine Tools

[0113] 53…Programming Department

[0114] 54…Preprocessing Department

[0115] 57…Program Execution Instruction Section

[0116] 58…Program Execution Management Department

[0117] 59…First Ministry of Communications

[0118] 6… Robot control device

[0119] 60… Input parsing section

[0120] 61…Robot Program Generation Department

[0121] 65…Motion Control Department

[0122] 69…Second Communications Department.

Claims

1. A numerical control device that controls the movement of a machine tool according to a numerical control program and generates robot instructions for a robot control device that controls the movement of a robot, characterized in that, The numerical control device includes: The program preprocessing unit generates program block robot instructions that can be recognized in the robot control device and program block information associated with those program block robot instructions based on the parsing results of each program block of the numerical control program. A robot instruction storage unit stores multiple program block robot instructions and program block information generated by the program preprocessing unit. The program execution management unit reads from the robot instruction storage unit program block robot instructions that are associated with program block information specified by the prescribed program execution instructions; The communication unit, whenever it receives an action completion notification or read completion notification from the robot control device, sends the program block robot instructions read by the program execution management unit to the robot control device one by one.

2. The numerical control device according to claim 1, characterized in that, The numerical control device also includes: The program storage unit stores the numerical control program used to generate robot instructions, i.e., the numerical control program for the robot. The program execution instruction unit generates program execution instructions for the numerical control program of the robot and inputs them to the program execution management unit. Before inputting the program execution instructions to the program execution management unit, the program preprocessing unit begins parsing the numerical control program for the robot and generating the program block robot instructions and the program block information.

3. The numerical control device according to claim 2, characterized in that, The numerical control device also includes a program editing unit, which creates, selects, or edits the numerical control program for the robot. Corresponding to the completion of the creation, selection, or editing of the numerical control program for the robot by the program editing unit, the program preprocessing unit begins the parsing of the numerical control program for the robot, as well as the generation of the program block robot instructions and the program block information.

4. The numerical control device according to any one of claims 1 to 3, characterized in that, The program preprocessing unit generates the program block robot instructions by converting the language of the numerical control program into a language that can be recognized in the robot control device.

5. A numerical control system comprising: a numerical control device that controls the movement of a machine tool according to a numerical control program and generates robot instructions for controlling the movement of a robot; and a robot control device capable of communicating with the numerical control device and controlling the movement of the robot according to the robot instructions sent from the numerical control device, characterized in that... The numerical control device includes: The program preprocessing unit generates program block robot instructions that can be recognized in the robot control device and program block information associated with those program block robot instructions based on the parsing results of each program block of the numerical control program. A robot instruction storage unit stores multiple program block robot instructions and program block information generated by the program preprocessing unit. The program execution management unit reads from the robot instruction storage unit program block robot instructions that are associated with program block information specified by the prescribed program execution instructions; The first communication unit, whenever it receives an action completion notification or read completion notification from the robot control device, sends the program block robot instructions read by the program execution management unit to the robot control device one by one. The robot control device includes: The second communication unit receives program block robot instructions sent from the first communication unit; The robot program generation unit generates a robot program based on the program block robot instructions received from the second communication unit; The motion control unit controls the robot's movements based on the robot program generated by the robot program generation unit. The second communication unit sends the action completion notification to the first communication unit whenever the control of the robot's action based on a program block robot instruction is completed, or whenever the control of the robot's action based on a program block robot instruction is completed.

6. The numerical control system according to claim 5, characterized in that, The numerical control device also includes: The program storage unit stores the numerical control program for generating robot instructions, i.e., the numerical control program for the robot; the program execution instruction unit generates program execution instructions for the numerical control program for the robot and inputs them into the program execution management unit. Before inputting the program execution instructions into the program execution management unit, the program preprocessing unit begins parsing the numerical control program for the robot and generating the program block robot instructions and the program block information.

7. The numerical control system according to claim 6, characterized in that, The numerical control device also includes a program editing unit, which creates, selects, or edits the numerical control program for the robot. Corresponding to the completion of the creation, selection, or editing of the numerical control program for the robot by the program editing unit, the program preprocessing unit begins the parsing of the numerical control program for the robot, as well as the generation of the program block robot instructions and the program block information.

8. The numerical control system according to claim 5, characterized in that, The program preprocessing unit generates the program block robot instructions by converting the language of the numerical control program into a language that can be recognized in the robot control device.

9. The numerical control system according to any one of claims 5 to 8, characterized in that, The program execution management unit reads multiple program block robot instructions, which are associated with multiple program block information specified by the program execution instructions, in a specified order based on the program execution instructions. Whenever the first communication unit receives the action completion notification, it sends multiple program block robot instructions to the second communication unit one by one in the order they were read by the program execution management unit.

10. The numerical control system according to any one of claims 5 to 8, characterized in that, The program execution management unit reads multiple program block robot instructions, each associated with multiple program block information specified by the program execution instructions, in a specified order based on the program execution instructions, and writes them into the storage area of ​​the first communication unit. Whenever the first communication unit receives the read completion notification, it sends the program block robot instructions to be written to the storage area one by one to the second communication unit in the writing order of the program execution management unit.

11. The numerical control system according to claim 10, characterized in that, Whenever the robot's motion control based on a block of robot instructions is completed, the second communication unit sends an motion completion notification associated with the completed block of robot instructions to the first communication unit. In response to receiving the action completion notification in the first communication unit, the program execution management unit generates an execution instruction for the next program block robot instruction associated with the action completion notification in the specified sequence. Corresponding to the execution instruction generated by the program execution management unit, the first communication unit sends the execution instruction to the second communication unit. Corresponding to the execution instruction received in the second communication unit, the motion control unit executes the robot program associated with the execution instruction and controls the robot's actions.

Citation Information

Patent Citations

  • Numerical control program execution by robot

    US20130166068A1

  • Numerical control device and numerical control method

    WO2020144772A1