Numerical control system

CN117795437BActive Publication Date: 2026-08-11FANUC 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-08-24
Publication Date
2026-08-11

AI Technical Summary

Benefits of technology

[0015]根据本公开,在将机床及机器人的动作联动起来进行控制的数值控制系统中,能够减轻通信负载。

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN117795437B_ABST
    Figure CN117795437B_ABST
Patent Text Reader

Abstract

This invention provides a technique for reducing communication load in a numerical control system that links the movements of a machine tool and a robot for control. The numerical control system includes a numerical control device, a robot control device, and a variable storage device. The variable storage device stores the values ​​of variables that can be read and written by the numerical control device and the robot control device. The robot control device has a read / write execution / prohibition determination unit that determines whether to execute or prohibit the reading and writing of variables performed by the robot control device. When the read / write execution / prohibition determination unit determines that execution is allowed, the value of the variable stored in the variable storage device is read, and the robot's movements are controlled based on the read value. When the read / write execution / prohibition determination unit determines that prohibition is allowed, the reading of the value of the variable stored in the variable storage device is prohibited.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This disclosure relates to a numerical control system. Background Technology

[0002] In recent years, in order to promote the automation of the processing site, there has been a demand for a numerical control system that links the actions of the machine tool that processes the workpiece with the actions of the robot that loads or unloads the workpiece or opens or closes the door (for example, see Patent Document 1).

[0003] Generally, the movements of a machine tool are controlled by a numerical control device (NCD), while the movements of a robot are controlled by a robot control device (ROC). To link the movements of the machine tool and the robot together for control, both the NCD and the ROC require operation. For example, in the numerical control system shown in Patent Document 1, the robot's motion program can be selected or set according to instructions issued by the user from the NCD.

[0004] Existing technical documents

[0005] Patent documents

[0006] Patent Document 1: Japanese Patent Application Publication No. 2018-195055 Summary of the Invention

[0007] The key issues to be addressed in the invention

[0008] However, for example, when controlling the actions of an existing machine tool in conjunction with the actions of a robot that is installed later than the machine tool, it is necessary to connect the numerical control device that controls the machine tool's actions to the robot control device that controls the robot's actions. Furthermore, it is necessary to read and write variables from the numerical control device connected to the robot control device.

[0009] Specifically, the robot control unit activates (ON) the action request to the numerical control unit via macro variables, and periodically reads the macro variables of the numerical control unit to monitor the status. When the monitoring result indicates that the action is completed, the action request is deactivated (OFF) and the process proceeds to the next sequence.

[0010] However, for example, during workpiece machining, i.e., during the operation of the numerical control device, if there is a communication interruption from the robot control device, the communication load will increase. In this case, there will be problems such as increased cycle time and reduced machining accuracy. Therefore, a technology is needed to reduce the communication load in a numerical control system that links the movements of the machine tool and the robot for control.

[0011] The purpose of this disclosure is to provide a technique for reducing communication load in a numerical control system that links the movements of machine tools and robots for control.

[0012] Methods for solving problems

[0013] One aspect of this disclosure provides a numerical control system for controlling the actions of a machine tool and a robot in a coordinated manner. The numerical control system includes: a numerical control device that controls the actions of the machine tool based on a numerical control program; a robot control device that controls the actions of the robot based on a robot control program; and a variable storage device that stores the values ​​of variables that can be read and written by the numerical control device and the robot control device. The robot control device includes: a read / write execution / prohibition determination unit that determines whether to execute or prohibit reading / writing of the variable based on a read / write permission / prohibition request from the numerical control device. When the read / write execution / prohibition determination unit determines that reading / writing of the variable should be executed, the robot control device reads the value of the variable stored in the variable storage device and controls the actions of the robot based on the read value. When the read / write determination unit determines that reading / writing of the variable should be prohibited, reading the value of the variable stored in the variable storage device is prohibited.

[0014] Invention Effects

[0015] According to this disclosure, in a numerical control system that links the movements of machine tools and robots for control, the communication load can be reduced. Attached Figure Description

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

[0017] Figure 2 This is a functional block diagram of the numerical control system of the first embodiment.

[0018] Figure 3 This is a diagram illustrating an example of the numerical control program of the first embodiment.

[0019] Figure 4A This is a flowchart illustrating the processing flow of the robot control device according to the first embodiment.

[0020] Figure 4B This is a flowchart illustrating the processing flow of the numerical control device according to the first embodiment.

[0021] Figure 5 This is a functional block diagram of the numerical control system of the second embodiment.

[0022] Figure 6A This is a flowchart illustrating the processing flow of the robot control device according to the second embodiment.

[0023] Figure 6B This is a flowchart illustrating the processing flow of the numerical control device in the second embodiment. Detailed Implementation

[0024] Hereinafter, embodiments of the present disclosure will be described in detail with reference to the accompanying drawings.

[0025] [First Implementation]

[0026] Figure 1 This is a schematic diagram of the numerical control system 1 according to the first embodiment. (As shown...) Figure 1 As shown, the numerical control system 1 includes a machine tool 20 for machining workpieces (not shown), a numerical control device (CNC) 2 for controlling the movement of the machine tool 20, a robot 30 disposed near the machine tool 20, and a robot control device 3 for controlling the movement of the robot 30. The numerical control system 1 uses the CNC device 2 and the robot control device 3, which are communicatively connected to each other, to control the movement of the machine tool 20 and the robot 30 in a coordinated manner.

[0027] Machine tool 20 may be, for example, a lathe, drilling machine, milling machine, grinding machine, laser processing machine, and injection molding machine, but is not limited thereto. Machine tool 20 performs various actions according to various command signals sent from numerical control device 2 in the order described below: machining of workpieces (not shown), opening and closing of workpiece clamps, and opening and closing of doors provided in the workpiece machining area.

[0028] The robot 30 operates under the control of the robot control device 3, for example, performing a predetermined operation on a workpiece processed by the machine tool 20. The robot 30 is, for example, a jointed robot, with a tool 30b mounted on the forearm 30a of its arm. This tool 30b is used to hold, process, or inspect the workpiece. The following description focuses on a 6-axis jointed robot as the robot 30, but is not limited to this.

[0029] The numerical control device 2 and the robot control device 3 are computers respectively composed of the following hardware: a processing unit such as a CPU (Central Processing Unit); an auxiliary storage unit such as an HDD (Hard Disk Drive) or SSD (Solid State Drive) storing various programs; a main storage unit such as RAM (Random Access Memory) for storing data temporarily needed by the processing unit when executing computer programs; an operation unit such as a keyboard for the operator to perform various operations; and a display unit such as a monitor to display various information to the operator. These numerical control devices 2 and robot control devices 3 can, for example, send and receive various signals to each other via Ethernet (registered trademark).

[0030] The numerical control system 1 of this embodiment can be exemplified by a system that adds a robot 30 to an existing machine tool 20, but is not limited thereto. For example, in order to control the movement of the machine tool 20 and the movement of the robot 30 in a coordinated manner, the numerical control system 1 of this embodiment is configured to allow the robot control device 3 to send an action request to the numerical control device 2 and to read and write the variables of the numerical control device 2 from the robot control device 3.

[0031] Figure 2 This is a functional block diagram of the numerical control system 1 according to the first embodiment.

[0032] First, the detailed structure of the numerical control device 2 will be explained. For example... Figure 2 As shown, the numerical control device 2 implements various functions through the above hardware structure, such as a machine tool control module 200 that controls the operation of the machine tool 20, a variable storage unit 24 that stores the values ​​of multiple variables that can be read and written by the machine tool control module 200 and the robot control module 300 described later, and a data transceiver unit 25.

[0033] The machine tool control module 200 reads and writes the values ​​of variables stored in the variable storage unit 24 based on the numerical control program, and controls the operation of the machine tool 20. More specifically, the machine tool control module 200 includes a storage unit 21, a program input unit 22, a parsing unit 23, an I / O control unit 26, an interpolation control unit 27, and a servo control unit 28.

[0034] The storage unit 21 stores numerical control programs for controlling the movements of the machine tool 20 (e.g., the movement of control axes, the rotation of the spindle, the opening and closing of fixtures, and the opening and closing of doors). In order to control the movements of the machine tool 20 in conjunction with the movements of the robot 30 under the control of the robot control device 3, the numerical control programs stored in the storage unit 21 are created in advance by the operator and described using programming languages ​​such as G-code or M-code.

[0035] The program input unit 22 reads the numerical control program from the storage unit 21 and inputs it step by step into the parsing unit 23.

[0036] The parsing unit 23 parses the instruction categories of the numerical control program input from the program input unit 22 according to each program block, and sends the parsing results to the I / O control unit 26, the interpolation control unit 27 and the variable storage unit 24.

[0037] When the type of instruction obtained based on the numerical control program is, for example, an instruction to open or close the fixture of the machine tool 20, or an instruction to open or close the door of the machine tool 20, the parsing unit 23 inputs the obtained instruction to the I / O control unit 26. When an instruction is input from the parsing unit 23, the I / O control unit 26 inputs the I / O signal corresponding to the input instruction to the machine tool 20. As a result, the fixture or door of the machine tool 20 will open and close in the order determined by the numerical control program.

[0038] When the type of instruction obtained from the numerical control program is, for example, an instruction to move the control axis of the machine tool 20, the analysis unit 23 inputs the obtained instruction to the interpolation control unit 27. When an instruction is input from the analysis unit 23, the interpolation control unit 27 calculates the motion path of the control axis corresponding to the instruction by performing interpolation processing, and inputs the calculated motion path to the servo control unit 28. The servo control unit 28 performs feedback control on the servo motors of the machine tool 20 so that the control axis moves along the motion path calculated by the interpolation control unit 27. Thus, the operation of the machine tool 20 is controlled according to the sequence determined by the numerical control program.

[0039] When the type of instruction obtained from the numerical control program is, for example, an instruction to read the value of a variable stored in the variable storage unit 24, or an instruction to rewrite the value of a variable stored in the variable storage unit 24, the parsing unit 23 inputs the obtained instruction into the variable storage unit 24.

[0040] The variable storage unit 24 has a variable memory (not shown) that stores the values ​​of multiple variables. It reads or rewrites the values ​​of variables stored in the variable memory according to instructions input from the parsing unit 23 or instructions input from the robot control module 300 of the robot control device 3 (described later) via the data transceiver unit 25.

[0041] In this embodiment, when the value of the variable assigned to the robot control device 3 for the action request to the machine tool 20 is set, the machine tool control module 200 and the variable storage unit 24 write the action completion time into the corresponding variable and execute the corresponding action (e.g., door opening and closing, fixture opening and closing, machining 1 to 3 described later).

[0042] The variable storage unit 24 stores the values ​​of multiple variables specified by numbers or strings in the numerical control program and the robot control program. The numerical control program is a program in the machine tool control module 200 used to control the operation of the machine tool 20, and the robot control program is a program in the robot control module 300 used to control the operation of the robot 30. In this embodiment, although a portion (e.g., #100 to #108, #200 to #207) of multiple macro variables (hereinafter referred to as variables only) defined by the numerical control device is described as variables stored in the variable storage unit, it is not limited to this.

[0043] When an instruction to read the value of a variable stored in the variable memory is input from the parsing unit 23, the variable storage unit 24 reads the value of the variable specified by the instruction from the variable memory and sends the read value to the parsing unit 23. Conversely, when an instruction to rewrite the value of a variable stored in the variable memory is input from the parsing unit 23, the variable storage unit 24 rewrites the value of the variable specified by the instruction in the variable memory to a value corresponding to the instruction. Thus, the machine tool control module 200 can read or rewrite the values ​​of variables stored in the variable memory.

[0044] When a command to read the value of a variable stored in the variable memory is input from the robot control module 300 via the data transceiver unit 25, the variable storage unit 24 reads the value of the variable specified by the command from the variable memory and sends the read value to the robot control module 300 via the data transceiver unit 25. Conversely, when a command to rewrite the value of a variable stored in the variable memory is input from the robot control module 300 via the data transceiver unit 25, the variable storage unit 24 rewrites the value of the variable specified by the command in the variable memory to a value corresponding to the command. Thus, the robot control module 300 can read or rewrite the values ​​of variables stored in the variable memory.

[0045] The variable storage unit 24 stores the values ​​of multiple variables, which are intended for use in notifications or requests from the robot control module 300 to the machine tool control module 200, but are not limited to this. It may also store the values ​​of multiple variables intended for notifications from the machine tool control module 200 to the robot control module 300. The variables can be read by both the machine tool control module 200 and the robot control module 300, and are preferably rewritten by both.

[0046] For example, variable #100 is assigned to request the robot control module 300 to stop the numerical control program being executed by the machine tool control module 200. When the value of variable #100 is 0, it indicates that the state of not requesting the stop of the numerical control program (requesting OFF) is true, and when the value of variable #100 is 1, it indicates that the state of requesting the stop of the numerical control program (requesting ON) is true.

[0047] For example, variable #101 is assigned to request the opening action of the door of machine tool 20 from robot control module 300 to machine tool control module 200. When the value of variable #101 is 0, it indicates that the door opening action has not been requested (request to close), and when the value of variable #101 is 1, it indicates that the door opening action has been requested (request to open).

[0048] For example, variable #102 is assigned to request the closing action of the door of machine tool 20 from robot control module 300 to machine tool control module 200. When the value of variable #102 is 0, it indicates that the door closing action has not been requested (request to close), and when the value of variable #102 is 1, it indicates that the door closing action has been requested (request to open).

[0049] For example, variable #103 is assigned to request the machine tool control module 200 to perform an opening action on the fixture of the machine tool 20. When the value of variable #103 is 0, it indicates that the opening action of the fixture has not been requested (request to close), and when the value of variable #103 is 1, it indicates that the opening action of the fixture has been requested (request to open).

[0050] For example, variable #104 is assigned to request the machine tool control module 200 from the robot control module 300 to close the fixture of the machine tool 20. When the value of variable #104 is 0, it indicates that the fixture closing action has not been requested (request to close), and when the value of variable #104 is 1, it indicates that the fixture closing action has been requested (request to open).

[0051] For example, variable #105 is allocated to request the machine tool control module 200 to perform machining 1 by the machine tool 20. When the value of variable #105 is 0, it indicates that machining 1 has not been requested (request closed), and when the value of variable #105 is 1, it indicates that machining 1 has been requested (request open).

[0052] For example, variable #106 is allocated to request the machine tool control module 200 to perform machining 2 by the machine tool 20. When the value of variable #106 is 0, it indicates that machining 2 has not been requested (request closed), and when the value of variable #106 is 1, it indicates that machining 2 has been requested (request opened).

[0053] For example, variable #107 is allocated to request the machine tool control module 200 to perform machining 3 by the machine tool 20. When the value of variable #107 is 0, it indicates that machining 3 has not been requested (request closed), and when the value of variable #107 is 1, it indicates that machining 3 has been requested (request open).

[0054] For example, variable #108 is assigned for requesting workpiece replacement from robot control module 300 to machine tool control module 200. When the value of variable #108 is 0, it indicates that no workpiece replacement has been requested (request closed), and when the value of variable #108 is 1, it indicates that a workpiece replacement has been requested.

[0055] For example, variable #200 is assigned to the completion time of the program stop action in the program stop request from robot control module 300 to machine tool control module 200. For example, variable #201 is assigned to the door opening completion time in the door opening request from robot control module 300 to machine tool control module 200. Variable #202 is assigned to the door closing completion time in the door closing request from robot control module 300 to machine tool control module 200. Variable #203 is assigned to the clamp opening completion time in the clamp opening request from robot control module 300 to machine tool control module 200. Variable #204 is assigned to the clamp closing completion time in the clamp closing request from robot control module 300 to machine tool control module 200. Variable #205 is assigned to the completion time of machining 1 in the machining 1 request from robot control module 300 to machine tool control module 200. Variable #206 is assigned to the completion time of machining 2 in the machining 2 request from robot control module 300 to machine tool control module 200. Variable #207 is assigned to the completion time of machining 3 in the machining 3 request from robot control module 300 to machine tool control module 200.

[0056] Furthermore, the values ​​of multiple variables stored in the variable memory are reset to predetermined initial values ​​(e.g., 0) when the numerical control device 2 is turned on.

[0057] Next, the structure of the robot control device 3 will be described in detail. For example... Figure 2As shown, in the robot control device 3, the robot control module 300, data transceiver unit 35, and read / write execution / prohibition determination unit 36, etc., are implemented through the above hardware structure to realize various functions of controlling the actions of the robot 30.

[0058] The robot control module 300 reads and writes the values ​​of variables stored in the variable storage unit 24 based on the robot control program, and controls the actions of the robot 30. More specifically, the robot control module 300 includes a storage unit 31, a program input unit 32, a parsing unit 33, a trajectory control unit 37, and a servo control unit 38.

[0059] The storage unit 31 stores a robot control program for controlling the movements of the robot 30. In order to control the movements of the robot 30 in conjunction with the movements of the machine tool 20 under the control of the numerical control device 2, the robot control program stored in the storage unit 31 is pre-created by the operator.

[0060] The program input unit 32 reads the robot control program from the storage unit 31 and inputs it step by step into the parsing unit 33.

[0061] The parsing unit 33 parses the instruction categories based on the robot control program input from the program input unit 32 according to each program block, and sends the parsing results to the trajectory control unit 37, the data transceiver unit 35, and the read / write execution / prohibition determination unit 36.

[0062] When the type of instruction obtained from the robot control program is, for example, an instruction to move the control point of robot 30 (e.g., the forearm end 30a), the parsing unit 33 inputs the obtained instruction to the trajectory control unit 37. When an instruction is input from the parsing unit 33, the trajectory control unit 37 calculates the motion trajectory of the control point that moves the control point of robot 30 to the position specified by the instruction, and calculates the angles of each joint of robot 30 corresponding to the calculated motion trajectory as target angles, and sends these target angles to the servo control unit 38. In order to realize the target angles of each joint sent from the trajectory control unit 37, the servo control unit 38 performs feedback control on each servo motor of robot 30, thereby generating robot control signals for robot 30, and inputs them to the servo motors of robot 30. Thus, the actions of robot 30 are controlled according to the sequence determined by the robot control program.

[0063] When the type of instruction obtained from the robot control program is, for example, an instruction to read the value of a variable stored in the variable storage unit 24, or an instruction to rewrite the value of a variable stored in the variable storage unit 24, the parsing unit 33 inputs the obtained instruction to the data transceiver unit 35.

[0064] When the data transceiver unit 35 receives an instruction to read the value of a variable from the parsing unit 33, it sends the instruction to the data transceiver unit 25 of the numerical control device 2. As described above, when such a read instruction is input, the variable storage unit 24 reads the value of the variable specified by the instruction from the variable memory and returns the read value to the parsing unit 33 via the data transceiver unit 25 and the data transceiver unit 35. Furthermore, when the data transceiver unit 35 receives an instruction to rewrite the value of a variable from the parsing unit 33, it sends the instruction to the data transceiver unit 25 of the numerical control device 2. As described above, when such a rewrite instruction is input, the variable storage unit 24 rewrites the value of the variable specified by the instruction in the variable memory to the value corresponding to the instruction. Thus, the robot control module 300 can read or rewrite the values ​​of variables stored in the variable memory.

[0065] The read / write execution / prohibition determination unit 36 ​​determines whether to execute or prohibit the reading and writing of variables performed by the robot control device 3 based on read / write permission / prohibition requests. These read / write permission / prohibition requests request permission or prohibition of reading and writing variables performed by the robot control device 3. Conventionally, for example, during workpiece machining, i.e., during the operation of the numerical control device 2, when communication from the robot control device 3 is interrupted, the communication load increases. In this case, there is a problem of increased cycle time and reduced machining accuracy. In contrast, in the numerical control system 1 of this embodiment, because it includes the read / write execution / prohibition determination unit 36, for example, during the operation of the numerical control device 2, reading and writing variables from the robot control device 3 to the variable storage unit 24 can be prohibited, thus reducing the communication load.

[0066] Specifically, the read / write execution / prohibition determination unit 36 ​​first obtains the completion time of the action of the numerical control device 2 or the completion time of the action of the robot control device 3. These action times are obtained via variables in the numerical control program or the robot control program. In the example above, the completion time of the action of the numerical control device 2 is obtained via variables #201 to #207, and the completion time of the action of the robot control device 3 is obtained via variable #200. Then, based on whether the obtained completion time of the action of the numerical control device 2 or the completion time of the action of the robot control device 3 has elapsed, a read / write allow / prohibition request is determined. Based on this read / write allow / prohibition request, the read / write execution / prohibition determination unit 36 ​​determines whether to execute or prohibit the read / write of variables performed by the robot control device 3.

[0067] Therefore, after the completion time of the action of the numerical control device 2 or the completion time of the action of the robot control device 3 has elapsed, the read / write execution / prohibition determination unit 36 ​​determines to execute the read / write of variables performed by the robot control device 3. Conversely, before the completion time of the action of the numerical control device 2 or the completion time of the action of the robot control device 3 has elapsed, the read / write execution / prohibition determination unit 36 ​​determines to prohibit the read / write of variables performed by the robot control device 3.

[0068] That is, when the read / write execution / prohibition determination unit 36 ​​determines that reading or writing variables performed by the robot control device 3 is to be performed, the robot control device 3 reads the value of the variable stored in the variable storage unit 24 and controls the operation of the robot 30 based on the read value of the variable. Conversely, when the read / write execution / prohibition determination unit 36 ​​determines that reading or writing variables performed by the robot control device 3 is prohibited, the robot control device 3 prohibits reading the value of the variable stored in the variable storage unit 24.

[0069] Figure 3 This is a diagram illustrating an example of the numerical control program of the first embodiment. Figure 3 In the example shown, a numerical control program with program number 0123 has a sequence number N10 appended to its initial program block. Additionally, in... Figure 3 The image shows an example of the allocation of the aforementioned custom macro variables.

[0070] exist Figure 3 In the numerical control program shown, the machine tool control module 200 reads the values ​​of variables #100 to #108 at predetermined intervals, thereby monitoring requests from the robot control module 300, and controlling the movement of the machine tool 20 based on the read values ​​of variables #100 to #108. Furthermore, based on the action requests from the robot control module 300, the machine tool control module 200 rewrites the values ​​of the action completion times of variables #200 to #207 corresponding to each action request.

[0071] The robot control module 300 controls the actions of the robot 30 according to the robot control program, and rewrites the values ​​of variables #100 to #108 stored in the variable storage unit 24 according to the robot control program. Additionally, the robot control module 300 reads the values ​​of the action completion times of variables #200 to #207 that have been rewritten in the machine tool control module 200, so that the read / write execution / prohibition determination unit 36 ​​can determine whether to execute or prohibit the read / write of variables performed by the robot control device 3.

[0072] More specifically, in the initial program block, the machine tool control module 200 reads the value of variable #101 stored in the variable memory and determines whether the read value is "1". When the value of variable #101 is "1", that is, when the robot control module 300 requests the opening action of the door of the machine tool 20, the machine tool control module 200 calls the subroutine with program number "0001" according to the command "M98" for calling a subprogram. When the value of variable #101 is "0", it moves to the next program block. Furthermore, the machine tool control module 200 opens the door of the machine tool 20 by executing the subroutine with program number "0001", resets the value of variable #101 to "0", and then returns to the previous block. Figure 3 The main program shown.

[0073] In the next program block, the machine tool control module 200 reads the value of variable #102 stored in the variable memory and determines whether the read value is "1". When the value of variable #102 is "1", that is, when the robot control module 300 requests the closing action of the door of the machine tool 20, the machine tool control module 200 executes the subroutine with program number "0002". When the value of variable #102 is "0", it moves to the next program block. Furthermore, the machine tool control module 200 closes the door of the machine tool 20 by executing the subroutine with program number "0002", resets the value of variable #102 to "0", and then returns to the previous program block. Figure 3 The main program shown.

[0074] In the next program block, the machine tool control module 200 reads the value of variable #103 stored in the variable memory and determines whether the read value is "1". When the value of variable #103 is "1", that is, when the robot control module 300 requests the opening action of the machine tool 20's fixture, the machine tool control module 200 executes the subroutine with program number "0003". When the value of variable #103 is "0", it moves to the next program block. Furthermore, by executing the subroutine with program number "0003", the machine tool control module 200 opens the machine tool 20's fixture, resets the value of variable #103 to "0", and then returns to the previous program block. Figure 3 The main program shown.

[0075] Although the illustration is omitted, similarly, the machine tool control module 200 reads the value of variable #104 stored in the variable memory and determines whether the read value is "1". When the value of variable #104 is "1", that is, when the robot control module 300 requests the closing action of the machine tool 20's fixture, the machine tool control module 200 executes the subroutine with program number "0004". When the value of variable #104 is "0", it moves to the next program block. Furthermore, by executing the subroutine with program number "0004", the machine tool control module 200 closes the machine tool 20's fixture, resets the value of variable #104 to "0", and then returns to the previous state. Figure 3 The main program shown.

[0076] In the next program block, the machine tool control module 200 reads the value of variable #105 stored in the variable memory and determines whether the read value is "1". When the value of variable #105 is "1", that is, when the robot control module 300 requests the machine tool 20 to perform machining 1, the machine tool control module 200 executes the subroutine with program number "0005". When the value of variable #105 is "0", it moves to the next program block.

[0077] exist Figure 3 The diagram shows an example of a subroutine with program number "0005". If subroutine "0005" is called, the machine tool control module 200, based on the action request for machining 1 from the robot control module 300, rewrites the value of the machining 1 completion time of variable #205 corresponding to the action request for machining 1 to, for example, 600 seconds. At this time, the robot control module 300 obtains the action completion time of machining 1 by reading the rewritten value of variable #205, and, based on a read / write allow / disallow request based on the elapsed time of the obtained machining 1 action completion time, determines in the read / write execution / disallow decision unit 36 ​​whether to execute or prohibit the read / write of the variable performed by the robot control device 3.

[0078] In addition, various commands "G00" or "G01" for machining workpieces are input into the machine tool control module 200. The machine tool control module 200 controls the positioning or linear interpolation actions of the machine tool 20 to machine the workpiece according to the sequence determined by the numerical control program. When machining 1 is completed, the machine tool control module 200 rewrites the value of machining 1 completion time in variable #205 corresponding to the machining 1 action request to 0 seconds, then rewrites the value of variable #105 stored in the variable memory to "0", and returns to the previous state according to the command "M99". Figure 3 The main program shown.

[0079] Although the illustration is omitted, the motion request from the robot control module 300 to the machine tool 20 for machining 2 or machining 3 is executed using the same numerical control program as the motion request for machining 1 described above. Furthermore, regarding the rewriting of the machining 1 completion time for variable #205 in subroutine "0005", although the illustration is omitted, the motion completion time is similarly rewritten in each of the subroutines numbered "0000" to "0007". Additionally, the rewritten motion completion times are also used in the read / write execution / prohibition determination unit 36 ​​to determine whether to execute or prohibit the reading and writing of variables performed by the robot control device 3.

[0080] In the next program block, the machine tool control module 200 reads the value of variable #100 stored in the variable memory and determines whether the read value is "0". If the value of variable #100 is "0", that is, when the robot control module 300 has not requested the stop of the numerical control program, the machine tool control module 200 returns to sequence number "N10" and monitors the values ​​of variables #100 to #107 again. Conversely, if the value of variable #100 is "1", that is, when the robot control module 300 requests the stop of the numerical control program, the machine tool control module 200 terminates according to the command "M30". Figure 3 The numerical control program shown.

[0081] Next, refer to Figure 4A and Figure 4B The processing flow of the numerical control system 1 of the first embodiment will be described in detail.

[0082] Figure 4A This is a flowchart illustrating the processing flow of the robot control device 3 according to the first embodiment. Figure 4B This is a flowchart illustrating the processing flow of the numerical control device 2 in the first embodiment. These processes are repeatedly executed according to the start of the robot 30's action, and are performed in parallel and in conjunction with each other.

[0083] First, such as Figure 4A As shown in step S11, the robot control device 3 selects a machining program number. Specifically, in the robot control module 300, the machining program number called as a subroutine is written to the corresponding macro variable, for example, variable #105. The machining program number written to variable #105 is stored in the variable storage unit 24.

[0084] At this time, as Figure 4B As shown in step S21, the numerical control device 2 switches the machining program. Specifically, in the machine tool control module 200, the machining program number written in step S11 and stored in the variable storage unit 24 is read, and the program is switched to the read machining program number.

[0085] Next, as Figure 4B As shown in step S22, a machining program is selected in the numerical control device 2. Specifically, in the machine tool control module 200, a machining program corresponding to the machining program number switched in step S21 is selected from the storage unit 21. Furthermore, for the macro variable corresponding to the machining action in the selected machining program, for example, variable #205, the machining time, i.e., the action completion time, is written. The machining time (action completion time) written to variable #205 is stored in the variable storage unit 24.

[0086] At this time, as Figure 4A As shown in step S12, the processing time (action completion time) is obtained in the robot control device 3. Specifically, in the robot control module 300, the processing time (action completion time) written in step S22 and stored in the variable storage unit 24 is read and obtained.

[0087] Next, as Figure 4A As shown in step S13, the robot control device 3 requests the numerical control device 2 to start processing. Specifically, in the robot control module 300, the macro variable assigned to the processing start request is modified, for example, the value of variable #105 is changed to "1". The variable #105 modified to "1" is stored in the variable storage unit 24.

[0088] Therefore, as Figure 4B As shown in step S23, the numerical control device 2 begins machining according to the selected machining program. Specifically, in the machine tool control module 200, machining begins by reading the value of variable #105, which was rewritten as "1" in step S13 and stored in the variable storage unit 24.

[0089] Next, as Figure 4A As shown in step S14, the robot control device 3 remains in standby mode until the processing time (action completion time) elapses. That is, the read / write execution / inhibition determination unit 36 ​​prohibits the reading and writing of variables from the robot control module 300 until the processing time (action completion time) elapses. As a result, the communication load can be reduced during the period until the processing time (action completion time) elapses.

[0090] Next, after the standby time (action completion time) of robot control device 3 has elapsed, such as... Figure 4A Step S15 determines whether the processing has ended. Specifically, in the robot control module 300, the macro variable for the processing start request, such as the value of variable #105, stored in the variable storage unit 24, is read, and it is determined whether the read value is "0". If the determination is "yes", proceed to step S16; if it is "no", repeat the determination in step S15.

[0091] At this time, as Figure 4B As shown in step S24, in the numerical control device 2, if processing is completed, the macro variable assigned to the processing start request is changed, for example, the value of variable #105 is changed to "0". The variable #105 changed to "0" is stored in the variable storage unit 24. Thus, Figure 4A The decision in step S15 will be determined as "yes".

[0092] Next, as Figure 4A As shown in step S16, the robot control device 3 requests a workpiece replacement. Specifically, in the robot control module 300, the macro variable assigned to the workpiece replacement request, for example, the value of variable #108, is changed to "1". The variable #108, changed to "1", is stored in the variable storage unit 24. The processing of the robot control device 3 ends after the above steps.

[0093] At this time, as Figure 4B As shown in step S25, in the numerical control device 2, a request is made to move the axis towards the workpiece replacement position. Specifically, in the machine tool control module 200, the value of variable #108, which was rewritten to "1" in step S16 and stored in the variable storage unit 24, is read, thereby moving the axial workpiece replacement position of the machine tool 20 to perform workpiece replacement. The processing of the numerical control device 2 then concludes.

[0094] According to this embodiment, the following effects can be achieved.

[0095] The numerical control system 1 includes: a numerical control device 2 that controls the movement of a machine tool 20 based on a numerical control program; a robot control device 3 that controls the movement of a robot 30 based on a robot control program; and a variable storage unit 24 that stores the values ​​of variables that can be read and written by the numerical control device 2 and the robot control device 3. The robot control device 3 has a read / write execution / prohibition determination unit 36 ​​that determines whether to execute or prohibit the reading or writing of variables based on a read / write allow / prohibition request, wherein the read / write allow / prohibition request requests permission or prohibition of reading or writing variables of the numerical control device 2. Furthermore, when the read / write execution / prohibition determination unit 36 ​​determines that the reading or writing of a variable is to be executed, the robot control device 3 reads the value of the variable stored in the variable storage unit 24 and controls the movement of the robot 30 based on the read variable value; when the reading or writing of a variable is determined to be prohibited, the reading of the value of the variable stored in the variable storage unit 24 is prohibited.

[0096] Previously, it was necessary to communicate with the numerical control device (NCD) via macro variables to request actions from the robot control device, periodically reading macro variables from the NCD to monitor its status, and closing the action request when the status indicated action completion. This resulted in a high communication load. In contrast, according to this embodiment, the read / write execution / prohibition determination unit 36 ​​can determine whether to execute or prohibit the reading and writing of variables performed by the robot control device 3 based on read / write permission / prohibition requests. This reduces the communication load. The read / write permission / prohibition requests request permission or prohibition of reading and writing variables performed by the robot control device 3. Especially during workpiece machining, i.e., during the operation of the numerical control device 2, the reading and writing of variables performed by the robot control device 3 can be prohibited. This avoids communication interruptions from the robot control device 3, which would increase the communication load, leading to increased cycle time or reduced machining accuracy.

[0097] Furthermore, in the numerical control system 1, the read / write execution / prohibition determination unit 36 ​​obtains the completion time of the operation of the numerical control device 2 or the completion time of the operation of the robot control device 3, and determines whether to execute or prohibit the read / write operation of variables performed by the robot control device 3 based on read / write permission / prohibition requests based on the elapsed completion times of these operation times. Additionally, the read / write execution / prohibition determination unit 36 ​​determines to execute the read / write operation of variables performed by the robot control device 3 after the completion time of the operation of the numerical control device 2 or the completion time of the operation of the robot control device 3 has elapsed. Therefore, during the period up to the elapsed completion time of the operation of the numerical control device 2 or the completion time of the operation of the robot control device 3, the read / write operation of variables performed by the robot control device 3 can be more reliably prohibited, thus more reliably reducing the communication load.

[0098] Furthermore, in the numerical control system 1, the read / write execution / prohibition determination unit 36 ​​obtains the operation completion time of the numerical control device 2 or the operation completion time of the robot control device 3 via variables in the numerical control program or robot control program. Therefore, by reading the operation completion time of the numerical control device 2 or the operation completion time of the robot control device 3, which are written into the numerical control program or robot control program, the aforementioned effect can be achieved.

[0099] Furthermore, in the numerical control system 1, the numerical control device 2 reads and writes the values ​​of variables stored in the variable storage unit 24 based on the numerical control program, and the robot control device 3 reads and writes the values ​​of variables stored in the variable storage unit 24 based on the robot control program. That is, variables defined in the numerical control program and the robot control program are used as variables for sending notifications or requests between the numerical control device 2 and the robot control device 3. Therefore, without updating the existing software of the numerical control device 2 or the robot control device 3, the movements of the machine tool 20 and the robot 30 can be linked and controlled.

[0100] Furthermore, in the numerical control system 1, variables are specified by numbers or strings in the numerical control program and robot control program. This allows for easy identification of variables whose action completion times are written.

[0101] Furthermore, according to the numerical control system 1, since notifications from the machine tool control module 200 to the robot control module 300, or notifications and requests from the robot control module 300 to the machine tool control module 200, can be performed via variables that are readable and writable by both parties, the machine tool 20 and the robot 30 can be easily linked without adding new I / O signals or external devices, or without editing the existing ladder circuit. In addition, according to the numerical control system 1, various automation methods can be handled simply by storing the values ​​of various variables in the variable storage unit 24.

[0102] [Second Implementation]

[0103] Figure 5 This is a functional block diagram of the numerical control system 1A according to the second embodiment. Compared to the numerical control system 1 of the first embodiment, the numerical control system 1A of the second embodiment differs in that it also includes a read / write enable / disable signal output unit 29 and a read / write enable / disable signal input unit 39. The structure of the read / write execution / disable determination unit 36A is different from that of the read / write execution / disable determination unit 36, while other structures are the same as in the first embodiment. Hereinafter, the differences from the first embodiment will be described in detail; descriptions of structures common to the first embodiment will be omitted.

[0104] like Figure 5 As shown, the numerical control device 2A has a read / write enable / disable signal output unit 29. During the operation of the numerical control device 2A or the robot control device 3A, the read / write enable / disable signal output unit 29 outputs a read / write disable signal, which is an I / O signal that prohibits the reading and writing of variables by the robot control device 3A. Conversely, after the operation of the numerical control device 2A or the robot control device 3A is completed, the read / write enable signal outputs a read / write enable signal, which is an I / O signal that allows the reading and writing of variables by the robot control device 3A.

[0105] In addition, the read / write enable / disable signal of the I / O signal output from the read / write enable / disable signal output unit 29 is, for example, an I / O signal based on an external input from a numerical control program such as the machine tool 20's operation panel or a step program.

[0106] The robot control device 3A has a read / write enable / disable signal input unit 39. The read / write enable / disable signal output from the read / write enable / disable signal output unit 29 is input to the read / write enable / disable signal input unit 39.

[0107] The read / write execution / prohibition determination unit 36A determines whether to execute or prohibit the reading and writing of variables performed by the robot control device 3A based on read / write permission / prohibition requests based on the aforementioned read / write permission / prohibition signals. That is, unlike the first embodiment, which determines whether to execute or prohibit the reading and writing of variables performed by the robot control device 3A based on read / write permission / prohibition requests based on the elapsed time of the operation completion time of the numerical control device 2A or the robot control device 3A obtained through variables in the numerical control program and the robot control program, in this embodiment, the determination is based on read / write permission / prohibition requests, which are I / O signals.

[0108] Figure 6A This is a flowchart illustrating the processing flow of the robot control device 3A according to the second embodiment. Figure 6B This is a flowchart illustrating the processing flow of the numerical control device 2A according to the second embodiment. These processes are repeatedly executed based on the start of the robot 30's movement, and are performed in parallel and in conjunction with each other. Furthermore, in Figure 6A and Figure 6B The description uses read / write enable signals that are closed (allowed) and read / write enable signals that are open (disallowed) to explain the read / write enable / disallow signals.

[0109] First, such as Figure 6B As shown in step S41, the read / write enable signal is initialized in the numerical control device 2A. Specifically, for example, DO

[100] is defined as the output read / write enable signal, and the read / write enable signal DO

[100] is rewritten as OFF (enabled). The read / write enable signal DO

[100] , which has been rewritten as OFF (enabled), is output from the read / write enable / disable signal output unit 29 to the read / write enable / disable signal input unit 39.

[0110] Next, as Figure 6BAs shown in step S42, the numerical control device 2A determines whether there is a communication operation request for variable read / write within the numerical control device 2A. If the determination is "yes", the process proceeds to step S43, where the read / write enable signal DO

[100] is rewritten as ON (disabled) and output from the read / write enable / disable signal output unit 29 to the read / write enable / disable signal input unit 39. Then, the process proceeds to step S44, where the variable read / write communication operation is executed. After execution, the process proceeds to step S45, where the read / write enable signal DO

[100] is rewritten as OFF (allowed) and output from the read / write enable / disable signal output unit 29 to the read / write enable / disable signal input unit 39, thereby ending the processing of the numerical control device 2A.

[0111] Furthermore, the variable read / write communication action request, for example, is a predetermined variable requested from the robot control module 300 to the machine tool control module 200 and stored in the variable storage unit 24, which the machine tool control module 200 retrieves by reading these variables. Additionally, if the determination in step S42 is "no", the determination in step S42 is repeated.

[0112] On the other hand, such as Figure 6A As shown in step S31, the robot control device 3A determines whether the read / write enable signal DI

[100] input to the read / write enable / disable signal input unit 39 is ON (disabled). If the determination is "yes", then since it is a read / write disabled state, it proceeds to step S32, waits for a predetermined time, and then returns to the determination in step S31. Alternatively, if the determination is "no", then since it is a read / write enabled state, it proceeds to step S33 and starts communication for variable read / write.

[0113] Next, as Figure 6A As shown in step S34, the robot control device 3A reads the variables stored in the numerical control device 2A. Specifically, the robot control module 300 reads the variables stored in the numerical control device 2A in the variable storage unit 24.

[0114] Next, as Figure 6A As shown in step S35, the variables in the numerical control device 2A are rewritten in the robot control device 3A. Specifically, the variables in the numerical control device 2 stored in the variable storage unit 24 are rewritten in the robot control module 300.

[0115] Next, as Figure 6A As shown in step S36, the robot control device 3A executes commands within the robot program based on the values ​​of the variables. This concludes the processing by the robot control device 3A.

[0116] According to this embodiment, in addition to the same effects as in the first embodiment, the following effects are also achieved.

[0117] The numerical control device 2A has a read / write enable / disable signal output unit 29. During the execution of either the numerical control device 2A or the robot control device 3A, this output unit 29 outputs an I / O signal (i.e., a read / write disable signal) that prohibits reading or writing variables performed by the robot control device 3A. Conversely, after either the numerical control device 2A or the robot control device 3A has completed its operation, it outputs an I / O signal (i.e., a read / write enable signal) that allows reading or writing variables performed by the robot control device 3A. The robot control device 3A has a read / write enable / disable signal input unit 39, which receives the read / write enable / disable signal output from the read / write enable / disable signal output unit 29. Furthermore, the read / write execution / disable determination unit 36A determines whether to execute or disable reading or writing variables performed by the robot control device 3A based on a read / write enable / disable request based on the read / write enable / disable signal. Therefore, it is possible not only to operate through variables in the numerical control program, but also to request read / write restrictions from external numerical control programs such as the machine tool 20's operation panel or ladder program through I / O signals.

[0118] This disclosure is not limited to the above-described embodiments, and various changes and modifications are possible.

[0119] For example, in the above embodiment, although the case in which a variable storage unit 24 storing the values ​​of multiple variables that can be read and written by both the machine tool control module 200 and the robot control module 300 is described, it is not limited to this.

[0120] The variable storage unit can also be located in, for example, a robot control device that is communicatively connected to a numerical control unit. In this case, since the machine tool control module of the numerical control unit can read and write the values ​​of the variables stored in the variable storage unit of the robot control device via the aforementioned communication, the same effect as in the above-described embodiment is achieved.

[0121] Alternatively, the variable storage unit can be located on a server, for example, that is communicatively connected to both the numerical control device and the robot control device. In this case, since the machine tool control module of the numerical control device and the robot control module of the robot control device can read and write the values ​​of the variables stored in the variable storage unit on the server via the aforementioned communication, the same effect as in the above-described embodiment is achieved.

[0122] Symbol Explanation

[0123] 1. 1A Numerical Control System

[0124] 2.2A Numerical Control Device

[0125] 3. 3A Robot Control Device

[0126] 20 machine tools

[0127] 21 Storage Department

[0128] 22 Program Input Section

[0129] 23 Analysis Department

[0130] 24 Variable Storage Section

[0131] 25 Data Transceiver Department

[0132] 26I / O Control Section

[0133] 27 Interpolation Control Unit

[0134] 28 Servo Control Unit

[0135] 29 Read / Write Enable / Disable Signal Output Section

[0136] 30 robots

[0137] 30a arm front end

[0138] 30b tools

[0139] 31 Storage Department

[0140] 32 Program Input Section

[0141] 33 Analysis Department

[0142] 35 Data Transceiver Department

[0143] 36. 36A Read / Write Execution / Prohibition Decision Unit

[0144] 37 Track Control Department

[0145] 38 Servo Control Unit

[0146] 39 Read / Write Enable / Disable Signal Input Section

[0147] 200 machine tool control module

[0148] 300 robot control module.

Claims

1. A numerical control system that links the movements of a machine tool and a robot for control, characterized in that, The numerical control system includes: A numerical control device that controls the machine tool's movements based on a numerical control program; A robot control device that controls the robot's movements based on a robot control program; as well as A variable storage device stores the values ​​of variables that can be read and written by the numerical control device and the robot control device. The robot control device includes a read / write execution / prohibition determination unit, which determines whether to execute or prohibit the reading or writing of the variable based on a read / write allow / prohibition request from the numerical control device. When the read / write execution / prohibition determination unit determines that reading or writing the variable is to be performed, the robot control device reads the value of the variable stored in the variable storage device and controls the robot's actions based on the read value. When the read / write operation is to be prohibited, the robot control device prohibits reading the value of the variable stored in the variable storage device. The read / write execution / prohibition determination unit obtains the action completion time of the numerical control device or the action completion time of the robot control device, and determines whether to execute or prohibit the read / write of the variable performed by the robot control device based on the read / write allow / prohibit requests based on the elapsed action completion times. The read / write execution / prohibition determination unit determines to execute the read / write of the variable performed by the robot control device after the completion time of the action of the numerical control device or the completion time of the action of the robot control device.

2. The numerical control system according to claim 1, characterized in that, The read / write execution / prohibition determination unit obtains the action completion time of the numerical control device or the action completion time of the robot control device through variables in the numerical control program or the robot control program.

3. The numerical control system according to claim 1, characterized in that, The numerical control device includes a read / write enable / disable signal output unit, which outputs an I / O signal (i.e., a read / write disable signal) that disables the reading and writing of the variable by the robot control device during the execution of the numerical control device's operation or the execution of the robot control device's operation, and outputs an I / O signal (i.e., a read / write enable signal) that enables the reading and writing of the variable by the robot control device after the completion of the numerical control device's operation or the completion of the robot control device's operation. The robot control device includes a read / write enable / disable signal input unit, which receives read / write enable / disable signals output from the read / write enable / disable signal output unit. The read / write execution / prohibition determination unit determines whether to execute or prohibit the reading and writing of the variable performed by the robot control device based on the read / write allow / prohibition request based on the read / write allow / prohibition signal.

4. The numerical control system according to any one of claims 1 to 3, characterized in that, The numerical control device reads and writes the values ​​of variables stored in the variable storage device based on the numerical control program. The robot control device reads and writes the values ​​of variables stored in the variable storage device based on the robot control program.

5. The numerical control system according to any one of claims 1 to 3, characterized in that, The variables are specified by number or string in the numerical control program and the robot control program.

6. The numerical control system according to claim 4, characterized in that, The variables are specified by number or string in the numerical control program and the robot control program.

Citation Information

Patent Citations

  • Machine tool control device and production system

    JP2018195055A

  • Control apparatus and control method

    JP2019053459A