Numerical control system and method for controlling industrial machinery
The numerical control system addresses the inefficiency of multiple handshake processes by generating and transmitting robot commands in groups, reducing communication processing time and shortening the robot control cycle.
Patent Information
- Application Number
- JP2022569957
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2020-12-15
- Filing Date
- 2021-12-10
- Publication Date
- 2025-01-15
- Estimated Expiration
- 2041-12-10
AI Technical Summary
Conventional numerical control systems require multiple handshake processes for each command block, leading to increased communication processing time and longer robot control cycle times as the number of command blocks increases.
A numerical control system that generates robot commands for each command block and transmits them as a group, followed by generating a robot program in response to a start command, reducing the number of handshake processes and shortening communication processing time.
This approach significantly reduces the number of handshake processes and communication processing time, thereby shortening the robot control cycle time.
Smart Images

Figure 0007614229000001 
Figure 0007614229000002 
Figure 0007614229000003
Abstract
Description
[Technical field]
[0001] The present disclosure relates to a numerical control system and a method for controlling an industrial machine. [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 robot commands according to the numerical control program, a robot control device generates a robot program based on the robot commands, and controls 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 having to master 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] FIG. 11 is an example of a time chart showing the procedure of various processes executed by a numerical control device and a robot control device when controlling the operation of a robot in a conventional numerical control system.
[0007] First, from time t0 to t1, the numerical control device reads out and analyzes one command block included in a numerical control program created in advance. Next, from time t1 to t2, the numerical control device and the robot control device execute a first handshake process to start transferring the robot command. Next, from time t2 to t3, the numerical control device generates a robot command according to the analysis result of the command block at time t0 to t1, and transfers the generated robot command to the robot control device. Next, from time t3 to t4, the numerical control device and the robot control device execute a second handshake process to end the transfer of the robot command.
[0008] The robot control device also analyzes the robot commands received at times t3 to t4 between t4 and t5, and then generates a robot program according to the analysis results of the robot commands between t5 and t6. Next, between times t6 and t7, the numerical control device and the robot control device execute a third handshake process to end the generation of the robot program on the robot control device side. This allows the numerical control device to confirm that the generation of the robot program according to the robot commands has ended.
[0009] Between times t7 and t8, the numerical control device transmits to the robot control device a robot program start command for starting in the robot control device a robot program created based on the robot command transmitted in advance. After time t8, the robot control device controls the operation of the robot based on the started robot program, and the numerical control device checks whether the execution of the robot program in the robot control device is completed.
[0010] As described above, in conventional numerical control systems, it is necessary to execute the handshake process at least three times each time the robot's operation is controlled based on one command block written in the numerical control program. Therefore, in conventional numerical control systems, the number of times the handshake process is executed increases as the number of command blocks included in the numerical control program increases, which increases the time required for communication processing and may result in a longer cycle time for controlling the robot.
[0011] The present disclosure aims to provide a numerical control system and a control method for industrial machinery that can shorten the time required for communication processing between a numerical control device and a robot control device, and ultimately shorten the cycle time of robot control. [Means for solving the problem]
[0012] One aspect of the present disclosure provides a numerical control system including a numerical control device that controls an operation of a machine tool and generates robot commands for controlling an operation of a robot, and a robot control device that is capable of communicating with the numerical control device and controls the operation of the robot based on the robot commands, the numerical control system including: a robot command generation unit that generates the robot commands for each robot command block based on a numerical control program including a plurality of robot command blocks for the robot; a robot program start command unit that generates a program start command; a first communication unit that transmits a plurality of the robot commands generated based on a plurality of the robot command blocks belonging to a specified block range collectively in advance from the numerical control device to the robot control device as a robot command group, and then transmits the program start command from the numerical control device to the robot control device; a second communication unit that receives the robot commands and the program start command; a robot program generation unit that generates a robot program based on the robot commands received by the second communication unit; and an operation control unit that, after the robot program based on the robot command group is generated by the robot program generation unit, starts the robot program in response to receiving the program start command by the second communication unit, and controls the operation of the robot based on the robot program.
[0013] One aspect of the present disclosure provides a method for controlling industrial machinery using a numerical control system including a numerical control device for controlling an operation of a machine tool and a robot control device capable of communicating with the numerical control device and controlling an operation of the robot, the method including: generating, by the numerical control device, a robot command for controlling the operation of the robot for each robot command block based on a numerical control program including a plurality of robot command blocks for the robot; transmitting, by the numerical control device, to the robot control device, a plurality of robot commands generated based on a plurality of the robot command blocks belonging to a specified block range, collectively in advance as a robot command group; receiving, by the robot control device, the robot command group, and generating a robot program based on the plurality of robot commands belonging to the robot command group; after the robot program based on the robot command group is generated in the robot control device, the numerical control device transmits a program start command to the robot control device; and, in response to receiving the program start command, the robot control device starts the robot program and controls the operation of the robot based on the robot program. Effect of the Invention
[0014] In one aspect of the present disclosure, the robot command generation unit generates a robot command for each robot command block based on a numerical control program including a plurality of robot command blocks for the robot, and the first communication unit transmits a plurality of robot commands generated based on a plurality of robot command blocks belonging to a specified block range collectively as a robot command group from the numerical control device to the robot control device in advance. In other words, the first communication unit transmits all of the plurality of robot commands constituting the robot command group to the robot control device before the robot control device starts to control the robot's operation based on the robot commands transmitted from the numerical control device (i.e., before the robot control device starts operating). The robot program generation unit generates a robot program based on the robot commands received by the second communication unit, and the operation control unit starts the robot program in response to receiving a program start command by the second communication unit after the robot program based on the robot command group is generated, and controls the robot's operation based on the robot program. According to one aspect of the present disclosure, by sending a group of robot commands consisting of multiple robot commands in advance all at once from the numerical control device to the robot control device, the number of times that handshake processing that was previously required each time a robot command based on one robot command block was sent can be significantly reduced, thereby shortening the time required for communication processing between the numerical control device and the robot control device, and ultimately shortening the cycle time of robot control. [Brief description of the drawings]
[0015] [Figure 1] FIG. 1 is a schematic diagram of a numerical control system according to a first 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. 2 is a diagram showing an example of a main program of a numerical control program for a machine tool and a numerical control program for a robot. [Figure 4] FIG. 11 is a diagram showing an example of a subprogram of a numerical control program for a robot. [Diagram 5] 2 is a sequence diagram showing the flow of signals and information between a numerical control device and a robot control device, the processing executed in the numerical control device, and the processing executed in the robot control device. FIG. [Figure 6] 10 is an example of a time chart showing the procedure of various processes executed by a robot control module and a robot control device when transmitting a group of robot commands and a robot program start command by batch processing. [Figure 7] FIG. 11 is a functional block diagram of a numerical control device and a robot control device of a numerical control system according to a second embodiment of the present disclosure. [Figure 8] FIG. 2 is a diagram showing an example of a main program of a numerical control program read by a numerical control device. [Figure 9A] FIG. 4 is a diagram showing an example of a subprogram read by the numerical control device. [Figure 9B] FIG. 4 is a diagram showing an example of a subprogram read by the numerical control device. [Figure 10] 2 is a sequence diagram showing the flow of signals and information between a numerical control device and a robot control device, the processing executed in the numerical control device, and the processing executed in the robot control device. FIG. [Figure 11] 1 is a time chart showing the procedure of various processes executed by a numerical control device and a robot control device when controlling the operation of a robot in a conventional numerical control system. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0016] First Embodiment Hereinafter, a numerical control system according to a first embodiment of the present disclosure will be described with reference to the drawings.
[0017] FIG. 1 is a schematic diagram of a numerical control system 1 according to the present embodiment.
[0018] 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.
[0019] 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.
[0020] The robot 3 operates under the control of a robot control device 6, and performs a predetermined task on a workpiece being machined by, for example, a machine tool 2. The robot 3 is, for example, an articulated robot, and a tool 32 for gripping, machining, and inspecting the workpiece is attached to an arm tip 31. In the following, the robot 3 will be described as being a six-axis articulated robot, but the present invention 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.
[0021] 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).
[0022] FIG. 2 is a functional block diagram of the numerical control device 5 and the robot control device 6.
[0023] The numerical control device 5 generates various commands for controlling the operations of the robot 3 and the tool 32 according to the procedures described below, and transmits the generated commands to the robot control device 6. Based on the commands transmitted from the numerical control device 5, the robot control device 6 generates robot control signals for controlling the operations of the robot 3 according to the procedures described below, and generates I / O signals for controlling the operations of the 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 operations of the robot 3 and the tool 32.
[0024] 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.
[0025] 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 that is mainly composed of a plurality of command blocks for the machine tool 2 (hereinafter also referred to as "machine tool command blocks"), a numerical control program for a robot that is mainly composed of a plurality of command blocks for the robot 3 (hereinafter also referred to as "robot command blocks"), etc. 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.).
[0026] 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.
[0027] 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.
[0028] 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.
[0029] 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.
[0030] 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.
[0031] 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.
[0032] 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.
[0033] 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).
[0034] The robot control module 51 generates various commands for controlling the operations of the robot 3 and the 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 robot command generation unit 55, a robot program start command unit 56, and a data transmission / reception unit 59 as a first communication unit.
[0035] The program input unit 53 reads out a numerical control program for a robot, which is composed of a plurality of robot command blocks, from the storage unit 52, and inputs it sequentially to the input analysis unit .
[0036] The input analysis unit 54 analyzes the command type based on the numerical control program for the robot input from the program input unit 53 for each robot command block, and transmits the analysis results to the robot command generation unit 55 and the robot program start command unit 56 for each robot command block.
[0037] The robot command generating unit 55 generates a robot command for each robot command block based on the analysis result for each robot command block sent from the input analyzing unit 54 , and writes the generated robot command to the data transmitting / receiving unit 59 .
[0038] The robot program start command unit 56 generates a robot program start command at a predetermined timing, which serves as a trigger for starting the robot program generated on the robot control device 6 side based on the robot command generated by the robot command generation unit 55, and writes the generated robot program start command to the data transmission / reception unit 59.
[0039] The data transmission / reception unit 59 transmits and receives various commands and data to and from the data transmission / reception unit 69 of the robot control device 6 under handshake communication. When a robot command or a robot program start command is written by the robot command generation unit 55 or the robot program start command unit 56 as described above, the data transmission / reception unit 59 executes a predetermined communication process including the first to third handshake processes described with reference to Fig. 11, and transmits the robot command or the robot program start command to the data transmission / reception unit 69 of the robot control device 6.
[0040] As will be described later, when a robot command is transmitted from the data transceiver unit 59 to the data transceiver unit 69, a robot program corresponding to the received robot command is generated on the robot control device 6 side. After transmitting the robot command, when a robot program start command is transmitted from the data transceiver unit 59 to the data transceiver unit 69, the robot control device 6 side starts the robot program generated by the above-mentioned procedure, and controls the operations of the robot 3 and the tool 32 based on this robot program.
[0041] Here, the transmission processing method of the robot command and the robot program start command in the data transmission / reception unit 59 can be switched between sequential processing and batch processing.
[0042] 11, and transmits a robot command and a robot program start command to the data transceiver unit 69. That is, under the sequential processing, each time a robot command is written by the robot command generating unit 55, the data transceiver unit 59 transmits the robot command to the data transceiver unit 69, and then transmits a robot program start command to the data transceiver unit 69. That is, under the sequential processing, the data transceiver unit 59 transmits one robot command and one robot program start command to the data transceiver unit 69 for each robot command block.
[0043] On the other hand, under the batch processing, the data transmission / reception unit 59 transmits a plurality of robot commands generated based on a plurality of robot command blocks belonging to a designated block range defined in a numerical control program for the robot to the data transmission / reception unit 69 in advance as a batch of robot commands, and then transmits a robot program start command to the data transmission / reception unit 69 to start a robot program generated on the robot control device 6 side based on the robot command group. In other words, the data transmission / reception unit 59 transmits all of the plurality of robot commands constituting the robot command group to the robot control device 6 before the robot control device 6 starts to control the operation of the robot 3 based on the robot command transmitted from the numerical control device 5 (i.e., before the robot control device 6 starts to operate). Here, the designated block range for the batch processing can be determined by a predetermined batch processing designation command (for example, the M code "M300" described later) based on the numerical control program for the robot. Note that in this embodiment, a case where the designated block range is designated on a subprogram basis by the batch processing designation command, i.e., a case where all robot command blocks included in the subprogram are set as the designated block range, will be described, but the present disclosure is not limited thereto. The designated block range can also be directly designated in robot command block units by a batch processing command command.
[0044] As described above, when a robot command and a robot program start command are transmitted from data transmission / reception unit 59 to data transmission / reception unit 69 under sequential processing, the first to third handshake processes must be executed once for each robot command block. Therefore, when multiple robot command blocks are to be processed under sequential processing, the number of times the first to third handshake processes are executed increases according to the number of robot command blocks, which in turn lengthens the cycle time of robot control.
[0045] In contrast, when robot commands and robot program start commands are sent from data transmission / reception unit 59 to data transmission / reception unit 69 under batch processing, multiple robot commands can be sent collectively as a robot command group from data transmission / reception unit 59 to data transmission / reception unit 69, so that the number of times the first to third handshake processes are executed can be reduced compared to sequential processing, and ultimately the cycle time of robot control can be shortened.
[0046] When robot commands and robot program start commands are transmitted from the data transmission / reception unit 59 to the data transmission / reception unit 69 under batch processing as described above, it is preferable that the analysis of the robot command block in the input analysis unit 54, the generation of the robot command in the robot command generation unit 55, the generation of the robot program start command in the robot program start command unit 56, and the transmission of the robot command group and the robot program start command in the data transmission / reception unit 59 are performed while execution of the numerical control program for the machine tool in the machine tool control module 50 is stopped, or while the axis movement of the machine tool 2 is stopped.
[0047] Next, a detailed description will be given of the configuration of the robot control device 6. As shown in Fig. 2, the above hardware configuration enables the robot control device 6 to implement various functions such as an input analysis unit 60, a robot program generation unit 61, an operation control unit 65, and a data transmission / reception unit 69 as a second communication unit.
[0048] The input analysis unit 60 analyzes the command transmitted from the numerical control device 5 via the data transmission / reception unit 69 , and transmits the analysis result to the robot program generation unit 61 and the operation control unit 65 .
[0049] More specifically, when a robot command or a robot command group consisting of a plurality of such robot commands is input from the data transmission / reception unit 69, the input analysis unit 60 transmits the robot command or the robot command group to the robot program generation unit 61. When a robot command or a robot command group is input from the input analysis unit 60, the robot program generation unit 61 generates a robot program corresponding to the robot command or the robot command group according to a procedure described later.
[0050] When a robot program start command is input from the data transmission / reception unit 69, the input analysis unit 60 transmits this robot program start command to the operation control unit 65. When a robot program start command is input from the input analysis unit 60, the operation control unit 65 starts the robot program generated by the robot program generation unit 61 in accordance with a procedure to be described later, and controls the operations of the robot 3 and the tool 32 in accordance with this robot program.
[0051] The data transmission / reception unit 69 transmits and receives various commands and data to and from the data transmission / reception unit 59 of the numerical control device 5 under handshake communication. The data transmission / reception unit 59 and the data transmission / reception unit 69 transmit and receive a robot command, a robot command group, and a robot program start command by executing first to third handshake processes according to the following procedure.
[0052] More specifically, the data transmission / reception unit 59 and the data transmission / reception unit 69 start transmitting a robot command or a group of robot commands from the data transmission / reception unit 59 to the data transmission / reception unit 69 after executing the first handshake process. Furthermore, the data transmission / reception unit 59 and the data transmission / reception unit 69 execute a second handshake process after completing the transmission of the robot command or group of robot commands from the data transmission / reception unit 59 to the data transmission / reception unit 69. Thereafter, the data transmission / reception unit 59 and the data transmission / reception unit 69 execute a third handshake process after the robot program generation unit 61 completes the generation of the robot program based on the robot command or group of robot commands received according to the above procedure. By executing this third handshake process, the numerical control device 5 can grasp that the generation of the robot program has been completed on the robot control device 6 side. Therefore, the data transmission / reception unit 59 transmits a robot program start command to the data transmission / reception unit 69 after executing this third handshake process.
[0053] When the data transmission / reception unit 69 receives the robot command, the robot command group, and the robot program start command transmitted from the data transmission / reception unit 59 under the above-mentioned handshake communication, it inputs these commands sequentially to the input analysis unit 60. Furthermore, the input analysis unit 60 transmits the robot command or the robot command group to the robot program generation unit 61, and transmits the robot program start command to the operation control unit 65, as described above.
[0054] The robot program generation unit 61 includes a robot command generation unit 612, a program management unit 613, and a memory unit 614, and by using these, generates a robot program in accordance with a robot command or a group of robot commands transmitted from the input analysis unit 60.
[0055] When a robot command is input from the input analysis unit 60, the robot command generation unit 612 notifies the program management unit 613 of a robot command corresponding to the input robot command. Furthermore, when a group of robot commands is input from the input analysis unit 60, the robot command generation unit 612 sequentially notifies the program management unit 613 of a plurality of robot commands corresponding to the plurality of robot commands included in the input group of robot commands.
[0056] When a robot command is input from the robot command generation unit 612, the program management unit 613 adds the input robot command to the robot program stored in the storage unit 614. As a result, a robot program corresponding to the robot command or a group of robot commands transmitted from the numerical control device 5 is generated in the storage unit 614.
[0057] The operation control unit 65 includes a program starting unit 651, a trajectory control unit 652, a kinematics control unit 653, and a servo control unit 654, and controls the operation of the robot 3 by using these units.
[0058] When the robot program start command is input from the input analysis unit 60, the program start unit 651 transmits a program start notification to the program management unit 613 in order to start the robot program generated by the robot program generation unit 61 based on the robot command or a group of robot commands transmitted from the numerical control device 5 prior to the robot program start command. In response to receiving the program start notification, the program management unit 613 starts the robot program stored in the storage unit 614. The program management unit 613 creates a motion plan for the robot 3 and a motion plan for the tool 32 according to the robot command or group of robot commands by sequentially executing the robot commands described in the started robot program. The program management unit 613 also transmits the generated motion plan for the robot 3 to the trajectory control unit 652, and transmits the generated motion plan for the tool 32 to the servo control unit 654.
[0059] When the trajectory control unit 652 receives the motion plan of the robot 3 from the program management unit 613, it executes an interpolation process based on this motion plan to calculate the motion trajectory of the control points of the robot 3 and inputs it to the kinematics control unit 653. The kinematics control unit 653 performs a kinematic calculation 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 transmits these target angles to the servo control unit 654.
[0060] The servo control unit 654 generates robot control signals for the robot 3 by feedback-controlling each servo motor of the robot 3 so as to realize the target angle of each joint transmitted from the kinematics control unit 653, and inputs the robot control signals to the servo motors of the robot 3. Furthermore, when the servo control unit 654 receives a motion plan for the tool 32 transmitted from the program management unit 613, it generates an I / O signal for driving the tool 32 according to the motion plan, and inputs the I / O signal to the tool 32.
[0061] As described above, in the robot control device 6, when a robot command or a group of robot commands transmitted from the numerical control device 5 is received, the robot program generation unit 61 generates a robot program based on the robot command or group of robot commands, and then, when a robot program start command transmitted from the numerical control device 5 is received, the operation control unit 65 starts the robot program and controls the operation of the robot 3 and the tool 32 based on this robot program.
[0062] Next, the flow of various signals and information in the numerical control system 1 configured as above will be described with reference to FIGS.
[0063] FIG. 3 is a diagram showing an example of a numerical control program for a machine tool (shown on the left side in FIG. 3) read by the machine tool control module 50, and a main program of a numerical control program for a robot (shown on the right side in FIG. 3) read by the robot control module 51.
[0064] In the following, a case will be described in which, after the robot control module 51 has completed execution of the main program shown on the right side of Fig. 3 (i.e., after the robot control module 51 has executed command "M30" indicating the program end and described in sequence number "N11" of the main program), the machine tool control module 50 starts reading and executing the numerical control program for the machine tool shown on the left side of Fig. 3. That is, in the following, a case will be described in which the robot control module 51 executes the main program shown on the right side of Fig. 3 while execution of the numerical control program for the machine tool in the machine tool control module 50 is stopped and while the axis movement of the machine tool 2 is stopped.
[0065] Fig. 4 is a diagram showing an example of a subprogram of a numerical control program for a robot that is read by the robot control module 51. More specifically, Fig. 4 illustrates an example of a subprogram designated by a subprogram number "2000."
[0066] FIG. 5 is a sequence diagram 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 illustrated in FIG. 3, the processing executed in the numerical control device 5, and the processing executed in the robot control device 6.
[0067] First, in the robot command block indicated by sequence number "N10", a command "P2000" specifying the subprogram with subprogram number "2000" (see FIG. 4) is input to the input analysis unit 54 of the robot control module 51 together with a batch processing specification command "M300". This causes the robot control module 51 to transmit a group of robot commands and a robot program start command according to the batch processing procedure shown in FIG.
[0068] FIG. 6 is an example of a time chart showing the procedure of various processes executed by the robot control module 51 and the robot control device 6 when transmitting a group of robot commands and a robot program start command by batch processing.
[0069] First, between times t10 and t11, the data transmitter / receiver 59 of the robot control module 51 and the data transmitter / receiver 69 of the robot control device 6 execute a first handshake process to start transmitting and receiving various commands under handshake communication.
[0070] Between times t11 and t13, the robot command generation unit 55 of the robot control module 51 designates all robot command blocks included in the subprogram shown in FIG. 4 as a designated block range, generates a plurality of robot commands based on all robot command blocks included in this designated block range (robot command blocks indicated by sequence numbers “N20” to “N40”), and writes these multiple robot commands sequentially to the data transmission / reception unit 69.
[0071] After the robot command generation unit 55 starts generating robot commands after time t11, between times t12 and t14, the data transmission / reception unit 59 transmits a plurality of robot commands sequentially generated by the robot command generation unit 55 as a robot command group collectively to the data transmission / reception unit 69. Note that, although Fig. 6 shows a case in which the robot command generation unit 55 generates robot commands and the data transmission / reception unit 59 transmits the robot command group in parallel, the present disclosure is not limited to this. After the robot command generation unit 55 generates robot commands based on all robot command blocks belonging to the specified block range, the data transmission / reception unit 59 may transmit these robot commands.
[0072] After that, between times t14 and t15, the data transmitter / receiver 59 and the data transmitter / receiver 69 execute a second handshake process in response to the completion of the transmission and reception of the robot command group.
[0073] After that, between times t15 and t17, the input analysis unit 60 of the robot control device 6 analyzes the multiple robot commands included in the robot command group received by the data transmission / reception unit 69, and sequentially transmits the analysis results to the robot program generation unit 61. After the input analysis unit 60 starts analyzing the robot commands after time t15, between times t16 and t18, the robot program generation unit 61 generates a robot program based on the multiple robot commands belonging to the robot command group.
[0074] After that, between times t18 and t19, the data transmitter / receiver 59 and the data transmitter / receiver 69 execute a third handshake process in response to the robot program generator 61 completing the generation of the robot program.
[0075] Thereafter, between times t19 and t20, the robot program start command unit 56 of the robot control module 51 confirms that the generation of the robot program on the robot control device 6 side has been completed by the third handshake process, and then generates a robot program start command and writes it to the data transmission / reception unit 59. The data transmission / reception unit 59 also transmits the robot program start command to the data transmission / reception unit 69.
[0076] After that, from time t20 onwards, the operation control unit 65 of the robot control device 6 starts the robot program in response to receiving the robot program start command, and controls the operation of the robot 3 based on this robot program.
[0077] After transmitting the robot command group and the robot program start command by the above-mentioned batch processing, the robot control module 51 returns to the main program shown in Fig. 3. After that, in the robot command block shown by sequence number "N11", a command "M30" indicating an end program is input to the input analysis unit 54 of the robot control module 51. As a result, the robot control module 51 ends the main program shown in Fig. 3, and the machine tool control module 50 reads the numerical control program for the machine tool shown in Fig. 3. Note that, as shown in Fig. 5, while the machine tool control module 50 reads the numerical control program for the machine tool and controls the operation of the machine tool 2 based on this numerical control program, the robot control device 6 controls the operation of the robot 3 in parallel according to the robot program generated based on the above-mentioned robot command group.
[0078] First, in the machine tool command block indicated by sequence number "N100", a command "M6 T3" for changing the tool attached to the spindle of the machine tool 2 to the tool indicated by tool number "3" is input to the machine tool control module 50. This causes the machine tool control module 50 to change the tool attached to the spindle of the machine tool 2 to the tool indicated by tool number "3".
[0079] Thereafter, in the machine tool command block indicated by sequence number "N101", a command "S1500" for rotating the spindle of the machine tool 2 at a speed of "1500" is input to the machine tool control module 50. This causes the machine tool control module 50 to rotate the spindle of the machine tool 2 at the speed of "1500".
[0080] Thereafter, in the machine tool command blocks indicated by sequence numbers "N102" to "N105," the machine tool control module 50 receives the G code "G00" for aligning the spindle of the machine tool 2 and the G code "G01" for moving the spindle of the machine tool 2 by linear interpolation. As a result, the machine tool control module 50 aligns the spindle to the position specified by the G code "G00," and moves the spindle to the position and at the speed specified by the G code "G01," thereby cutting a workpiece (not shown).
[0081] Thereafter, in the machine tool command block indicated by sequence number "N106", the machine tool control module 50 receives a command "M100" for waiting for processing in the robot control device 6. As a result, the machine tool control module 50 confirms that the robot program has been executed up to the robot command block indicated by sequence number "N23" in the subprogram shown in Fig. 4 on the robot control device 6 side, and then proceeds to the next machine tool command block indicated by sequence number "N107". At the same time, the robot control device 6 confirms that the numerical control program for the machine tool shown in Fig. 3 has been executed up to the machine tool command block indicated by sequence number "N107" on the machine tool control module 50 side, and then starts executing the robot program corresponding to the robot command block indicated by sequence number "N24" and thereafter in the subprogram shown in Fig. 4.
[0082] After that, in the machine tool command block indicated by sequence number "N107", a command "M30" indicating an end program is input to the machine tool control module 50. This causes the machine tool control module 50 to end the numerical control program for the machine tool shown in FIG.
[0083] According to this embodiment, the following effects are achieved. In this embodiment, the robot command generating unit 55 of the numerical controller 5 generates a robot command for each robot command block based on a numerical control program for a robot including a plurality of robot command blocks for the robot 3, and the data transmitting / receiving unit 59 of the numerical controller 5 transmits a plurality of robot commands generated based on a plurality of robot command blocks belonging to a specified block range collectively as a robot command group to the robot controller 6 in advance. The robot program generating unit 61 of the robot controller 6 generates a robot program based on the robot commands received by the data transmitting / receiving unit 69 of the robot controller 6, and the operation control unit 65 of the robot controller 6 starts the robot program in response to receiving a program start command by the data transmitting / receiving unit 69 after the robot program based on the robot command group is generated, and controls the operations of the robot 3 and the tool 32 based on this robot program. According to this embodiment, by sending a group of robot commands consisting of multiple robot commands in advance all at once from the numerical control device 5 to the robot control device 6, it is possible to significantly reduce the number of times the first to third handshake processes are executed, which was previously required each time a robot command based on one robot command block was sent. This accordingly shortens the time required for communication processing between the numerical control device 5 and the robot control device 6, and ultimately shortens the cycle time of robot control.
[0084] In this embodiment, the data transmission / reception unit 59 and the data transmission / reception unit 69 execute a first handshake process when the data transmission / reception unit 59 starts transmitting a group of robot commands, and execute a second handshake process when the data transmission / reception unit 69 completes receiving the group of robot commands. This allows the data transmission / reception unit 59 to appropriately transmit a group of robot commands made up of a plurality of robot commands to the data transmission / reception unit 69. Furthermore, the data transmission / reception unit 59 and the data transmission / reception unit 69 execute a third handshake process when the robot program generation unit 61 completes generating a robot program based on the group of robot commands. This allows the numerical control device 5 to recognize that the generation of the robot program has been completed on the robot control device 6 side.
[0085] In this embodiment, the data transceiver unit 59 transmits a program start command to the data transceiver unit 69 after executing the third handshake process. This allows the numerical control device 5 to start the robot program after the robot control device 6 appropriately generates the robot program.
[0086] In this embodiment, the designated block range for batch processing by the data transmission / reception unit 59 is determined by a batch processing designation command based on the numerical control program for the robot. This allows the user creating the numerical control program to easily designate the robot command block for batch processing.
[0087] In this embodiment, the input analysis unit 54, robot command generation unit 55, robot program start command unit 56, and data transmission / reception unit 59 analyze robot command blocks, generate robot commands, generate robot program start commands, and transmit the robot command group and the robot program start command while execution of the numerical control program for the machine tool in the machine tool control module 50 is stopped or while axial movement of the machine tool 2 is stopped. This allows the robot control module 51 to execute a series of processes relating to the generation and transmission of the robot command group and the robot program start command by utilizing a period when the calculation load in the machine tool control module 50 is low, thereby shortening the time required for this series of processes.
[0088] <Second embodiment> Hereinafter, a numerical control system according to a second embodiment of the present disclosure will be described with reference to the drawings. In the following description, the same components as those in the numerical control system 1 according to the first embodiment are denoted by the same reference numerals, and detailed description thereof will be omitted.
[0089] FIG. 7 is a functional block diagram of a numerical control device 5A and a robot control device 6 of a numerical control system 1A according to this embodiment. The numerical control system 1A according to this embodiment is different from the numerical control system 1 according to the first embodiment in the configuration of the numerical control device 5A and the numerical control program. More specifically, in the numerical control device 5 according to the first embodiment, the numerical control program is divided into a numerical control program for a machine tool mainly composed of a machine tool command block for a machine tool 2 and a numerical control program for a robot mainly composed of a robot command block for a robot 3, and further, the execution subjects of the numerical control program for the machine tool and the numerical control program for the robot are also divided into a machine tool control module 50 and a robot control module 51. In contrast, the numerical control device 5A according to this embodiment is different from the numerical control device 5 according to the first embodiment in that a numerical control program in which machine tool command blocks and robot command blocks are mixed is used as the numerical control program, and the execution subject of this numerical control program is also a common one.
[0090] The numerical control device 5A includes a memory unit 52A, a program input unit 53, an input analysis unit 54A, a robot command generation unit 55, a robot program start command unit 56, a data transmission / reception unit 59, an interpolation control unit 581A, an I / O control unit 582A, and a servo control unit 583A.
[0091] The storage unit 52A stores a plurality of numerical control programs created based on operations by an operator, for example. More specifically, the storage unit 52A stores a numerical control program that includes both machine tool command blocks for the machine tool 2 and robot command blocks for the robot 3, as well as subprograms that mainly include robot command blocks.
[0092] The input analysis unit 54A analyzes the command type based on the numerical control program input from the program input unit 53 for each command block, and transmits the analysis results for each command block to the robot command generation unit 55, the robot program start command unit 56, the interpolation control unit 581A, and the I / O control unit 582A.
[0093] As described above, the numerical control program stored in the storage unit 52A contains both machine tool command blocks and robot command blocks. Therefore, when the command block input from the program input unit 53 is a robot command block, the input analysis unit 54A transmits the analysis result to the robot command generation unit 55 and the robot program start command unit 56. Note that the subsequent processing in the robot command generation unit 55, the robot program start command unit 56, and the data transmission / reception unit 59 is the same as that in the numerical control device 5 according to the first embodiment, and therefore detailed description thereof will be omitted.
[0094] Furthermore, when the command block input from the program input unit 53 is a machine tool command block, the input analysis unit 54A transmits the analysis result to the interpolation control unit 581A and the I / O control unit 582A.
[0095] When the analysis result transmitted from input analysis unit 54A is a command to move the control axis of machine tool 2, interpolation control unit 581A calculates a movement path of the control axis according to the command by performing interpolation processing, and inputs the calculated movement path to servo control unit 583A. Servo control unit 583A feedback controls the servo motor of machine tool 2 so that the control axis moves along the movement path calculated by interpolation control unit 581A. As a result, the operation of machine tool 2 is controlled according to a procedure determined by the numerical control program.
[0096] Furthermore, when the analysis result transmitted from input analysis unit 54A is, for example, a command to open / close the chuck of machine tool 2 or a command to open / close the door of machine tool 2, I / O control unit 582A inputs an I / O signal corresponding to the input command to machine tool 2. As a result, the chuck or door of machine tool 2 is opened / closed according to a procedure determined by the numerical control program.
[0097] Next, the flow of various signals and information in the numerical control system 1A configured as above will be described with reference to FIGS.
[0098] Fig. 8 is a diagram showing an example of a main program of a numerical control program read by the numerical control device 5A. In the main program shown in Fig. 8, command blocks indicated with sequence numbers "N200" and "N207" are robot command blocks for the robot 3, and command blocks indicated with sequence numbers "N201" to "N206" are machine tool command blocks for the machine tool 2.
[0099] 9A and 9B are diagrams showing an example of a subprogram read by the numerical control device 5A. More specifically, Fig. 9A shows an example of a subprogram specified by a subprogram number "3000", and Fig. 9B shows an example of a subprogram specified by a subprogram number "4000". Note that all of the command blocks included in the subprograms shown in Figs. 9A and 9B are robot command blocks for the robot 3.
[0100] FIG. 10 is a sequence diagram showing the flow of signals and information between the numerical control device 5A and the robot control device 6 when the numerical control device 5A is operated based on the numerical control program illustrated in FIG. 8, the processing executed in the numerical control device 5A, and the processing executed in the robot control device 6.
[0101] First, in the robot command block indicated by sequence number "N200", a command "P3000" specifying the subprogram with subprogram number "3000" (see FIG. 9A) is input to the input analysis unit 54A of the numerical control device 5A together with a batch processing specification command "M300". As a result, the robot command generation unit 55, robot program start command unit 56, and data transmission / reception unit 59 of the numerical control device 5A transmit a group of robot commands and a robot program start command by batch processing similar to that of the first embodiment. Note that this batch processing procedure is the same as the procedure described with reference to FIG. 6, and therefore a detailed description thereof will be omitted.
[0102] Next, in the machine tool command block indicated by sequence number "N201", command "M6 T3" for replacing the tool attached to the spindle of machine tool 2 with the tool indicated by tool number "3" is input to input analysis unit 54A. This causes I / O control unit 582A to input an I / O signal for replacing the tool attached to the spindle of machine tool 2 with the tool indicated by tool number "3" to machine tool 2. This causes the tool attached to the spindle to be replaced.
[0103] Thereafter, in the machine tool command block indicated by sequence number "N202," a command "S1500" for rotating the spindle of the machine tool 2 at a speed of "1500" is input to the input analysis unit 54A. This causes the I / O control unit 582A to input an I / O signal for rotating the spindle at the specified speed to the machine tool 2. This causes the spindle to rotate at the specified speed.
[0104] Thereafter, in the machine tool command blocks indicated by sequence numbers "N203" to "N206," the input analysis unit 54A receives the G code "G00" for aligning the spindle of the machine tool 2 and the G code "G01" for moving the spindle of the machine tool 2 by linear interpolation. As a result, the servo control unit 583A aligns the spindle to the position specified by the G code "G00," and moves the spindle to the position and at the speed specified by the G code "G01," thereby cutting a workpiece (not shown).
[0105] After that, in the robot command block indicated by sequence number "N207", a command "P4000" specifying the subprogram with subprogram number "4000" (see FIG. 9B) is input to the input analysis unit 54A together with the batch processing specification command "M300". As a result, the robot command generation unit 55, the robot program start command unit 56, and the data transmission / reception unit 59 transmit the robot command group and the robot program start command by the same batch processing as in the first embodiment. Note that this batch processing procedure is the same as the procedure described with reference to FIG. 6, and therefore a detailed description thereof will be omitted.
[0106] After that, in the command block indicated by sequence number "N208", the command "M30" indicating an end program is input to the input analysis unit 54A, which causes the numerical control device 5A to end the numerical control program shown in FIG.
[0107] As shown in FIG. 10, it is preferable that the robot command generating unit 55, robot program start command unit 56, and data transmission / reception unit 59 of the numerical control device 5A generate robot commands, generate robot program start commands, and transmit the robot command group and the robot program start command while execution of a machine tool command block for the machine tool 2 in the numerical control program is stopped and while the axial movement of the machine tool 2 is stopped.
[0108] According to this embodiment, the same effects as those of the first embodiment can be obtained. Furthermore, the present disclosure is not limited to the above-described embodiment, and various changes and modifications are possible.
[0109] For example, in the above embodiment, the robot command generating unit 55 which generates robot commands for each robot command block based on a numerical control program is provided in the numerical control device 5, 5A, and the robot program generating unit 61 which generates a robot program based on the robot commands received by the data transmitting / receiving unit 69 is provided in the robot control device 6, but the present disclosure is not limited to this. The robot command generating unit 55 and the robot program generating unit 61 may be provided in an external computing device communicatively connected to the numerical control device 5, 5A and the robot control device 6, and the process of generating these robot commands and robot programs may be executed by the external computing device. [Explanation of symbols]
[0110] 1,1A…Numerical control system 2…Machine tools 3. Robot 5,5A…Numerical control device 50...machine tool control module 51…Robot control module 52,52A…Storage section 53...Program input section 54, 54A…Input analysis section 55...Robot command generation unit 56...Robot program startup command section 581A…Interpolation control section 582A…I / O control unit 583A…Servo control unit 59...Data transmission / reception unit (first communication unit) 6...Robot control device 60...Input analysis section 61...Robot program generation unit 612...Robot command generation unit 613…Program Management Division 614...Storage section 65...Motion control unit 651…Program startup section 652...Trajectory control unit 653...Kinematics control section 654...Servo control unit 69...Data transmission / reception unit (second communication unit)
Claims
1. a numerical control device that controls the operation of the machine tool and generates robot commands for controlling the operation of the robot; a robot control device capable of communicating with the numerical control device and controlling an operation of the robot based on the robot command, a robot command generating unit that generates the robot command for each robot command block based on a numerical control program including a plurality of robot command blocks for the robot; A robot program start command unit that generates a program start command; a first communication unit capable of switching between a batch process in which the plurality of robot commands generated based on the plurality of robot command blocks belonging to a designated block range are collectively transmitted from the numerical control device to the robot control device in advance as a robot command group, and then the program start command is transmitted from the numerical control device to the robot control device, and a sequential process in which the robot command and the program start command are transmitted from the numerical control device to the robot control device for each robot command block; A second communication unit that receives the robot command and the program start command; a robot program generation unit that generates a robot program based on the robot command received by the second communication unit; and an operation control unit that, after the robot program based on the robot command group is generated by the robot program generation unit, starts the robot program in response to receiving the program start command by the second communication unit, and controls operation of the robot based on the robot program.
2. The first communication unit and the second communication unit A first handshake process is executed when the first communication unit starts transmitting the group of robot commands; executes a second handshake process when the second communication unit completes receiving the group of robot commands; The numerical control system according to claim 1 , wherein the robot program generation unit executes a third handshake process when the generation of the robot program based on the group of robot commands is completed.
3. The numerical control system according to claim 2 , wherein the first communication unit transmits the program start command to the second communication unit after executing the third handshake process.
4. 4. The numerical control system according to claim 1, wherein the designated block range is determined based on the numerical control program.
5. the numerical control device controls an operation of the machine tool based on a numerical control program for the machine tool, the numerical control program including a plurality of machine tool command blocks; 5. The numerical control system according to claim 1, wherein the robot command generating unit, the robot program start command unit, and the first communication unit generate the robot commands, generate the program start commands, and transmit the group of robot commands and the program start commands while the numerical control program for the machine tool is stopped.
6. the numerical control device controls an operation of the machine tool based on a numerical control program for the machine tool, the numerical control program including a plurality of machine tool command blocks; 5. The numerical control system according to claim 1, wherein the robot command generating unit, the robot program start command unit, and the first communication unit generate the robot command, generate the program start command, and transmit the group of robot commands and the program start command while axial movement of the machine tool is stopped.
7. The numerical control device includes the robot command generation unit, the robot program start command unit, and the first communication unit, The numerical control system according to claim 1 , wherein the robot control device comprises the second communication unit, the robot program generation unit, and the operation control unit.
8. An external computing device communicably connected to the numerical control device and the robot control device, 7. The numerical control system according to claim 1, wherein the external calculation device comprises the robot command generation unit and the robot program generation unit.
9. A method for controlling industrial machinery, comprising: a numerical control system including a numerical control device for controlling an operation of a machine tool; and a robot control device capable of communicating with the numerical control device and for controlling an operation of a robot, the method comprising the steps of: a step of generating, by the numerical control device, a robot command for controlling an operation of the robot for each of the robot command blocks based on a numerical control program including a plurality of robot command blocks for the robot; A step of the numerical control device generating a program start command; a step of executing, by the numerical control device, either a batch process in which the plurality of robot commands generated based on the plurality of robot command blocks belonging to a designated block range are collectively transmitted to the robot control device as a robot command group in advance, or a sequential process in which the robot command is transmitted to the robot control device for each robot command block; receiving the group of robot commands or one of the robot commands by the robot controller; A step of generating a robot program based on one or more of the robot commands belonging to the robot command group by the robot control device; a step of transmitting a program start command to the robot control device from the numerical control device after the robot program is generated in the robot control device; The method for controlling industrial machinery comprises a step of: in response to receiving the program start command, the robot control device starting the robot program and controlling operation of the robot based on the robot program.
Citation Information
Patent Citations
Automatic tool changing device and method of numerically-controlled machine tool
CN105500088A
Method and device for transferring data of robot program of numerically controlled machine tool
JP1994043919A
Connection system between robot and machine
JP2001154717A
Device, method, program and recording medium for robot offline programming
JP2008152733A
Machine tool system
JP2020071533A
Cited By
Numerical control system and numerical control device
WO2026210564A1