Numerical control device and numerical control system

CN116745078BActive Publication Date: 2026-08-14FANUC LTD
View PDF 2 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2022-01-27
Publication Date
2026-08-14

AI Technical Summary

Benefits of technology

[0016]根据本公开的一方式,数值控制装置具备坐标值管理部及指令生成部。坐标值管理部分别取得从机器人控制装置发送的机器人控制轴及移动装置的附加轴的坐标值作为机器人基准坐标值及附加轴基准坐标值。此外,指令生成部根据数值控制程序及从机器人控制装置取得的机器人基准坐标值和附加轴基准坐标值,来生成用于使机器人控制轴移动的机器人指令及用于使附加轴移动的附加轴指令,并将这些机器人指令及附加轴指令输入于机器人控制装置。根据本公开的一方式,由于数值控制装置通过从直接控制机器人及使该机器人本身移动的移动装置的动作的机器人控制装置,取得机器人基准坐标值及附加轴基准坐标值,根据这些基准坐标值及数值控制程序,来生成机器人指令及附加轴指令,从而在数值控制装置中,不进行定义有机器人控制轴的坐标值的坐标系与定义有附加轴的坐标值的坐标系之间的坐标转换处理地生成机器人指令及附加轴指令,因此能以较小的处理负荷生成机器人指令及附加轴指令。

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN116745078B_ABST
    Figure CN116745078B_ABST
Patent Text Reader

Abstract

The numerical control device (5) controls the movement of the machine tool 2 according to the numerical control program, and generates robot commands for moving the control axis of the robot (3) and travel axis commands for moving the travel axis of the mobile device (4) for moving the robot (3) in relation to the robot control device (6) which controls the movement of the robot (3), and inputs them into the robot control device (6). The numerical control device (5) includes: a coordinate value management unit (55) which obtains the coordinate values ​​of the control axis of the robot (3) and the travel axis of the mobile device (4) obtained from the robot control device (6) as robot reference coordinate values ​​and additional axis reference coordinate values, respectively; and a command generation unit (56) which generates robot commands and travel axis commands according to the numerical control program, the robot reference coordinate values ​​and the travel axis reference coordinate values.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This disclosure relates to a numerical control device and 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 movements of the machine tool that processes the workpiece with the movements of the robot located near the machine tool (for example, see Patent Document 1).

[0003] Generally speaking, the programming languages ​​used for numerical control programs to control machine tools and robot programs to control robots are different. Therefore, in order to coordinate the movements of the machine tool and the robot, the operator must be proficient in both numerical control programs and robot programs.

[0004] Patent Document 1 discloses a numerical control device that controls both a machine tool and a robot through a numerical control program. More specifically, in the numerical control system shown in Patent Document 1, the numerical control device generates robot instructions according to the numerical control program, the robot control device generates a robot program based on the robot instructions, and generates robot control signals for controlling the robot's actions according to the robot program. With the numerical control system shown in Patent Document 1, any user familiar with numerical control programs can control the robot without needing to be proficient in robot programs.

[0005] Existing technical documents

[0006] Patent documents

[0007] Patent Document 1: Japanese Patent No. 6647472 Summary of the Invention

[0008] The problem that the invention seeks to solve

[0009] However, when using robots on a manufacturing site, in order to expand the robot's range of motion, the robot is sometimes mounted on a moving device with additional axes such as travel axes and rotation axes, allowing the robot to move freely on the additional axes of the moving device. Therefore, it is conceivable to expand the function of the numerical control device as shown in Patent Document 1, so that the numerical control device can not only generate robot instructions for controlling the robot's movements, but also generate instructions for controlling the additional axes of the moving device that move the robot, according to a common numerical control program.

[0010] However, when a robot is mounted on a mobile device, the robot's coordinates change due to the movement of the additional axes. Therefore, to generate instructions for both the robot and the mobile device on the numerical control unit (NCU) side, it is necessary to properly perform coordinate transformation between the robot coordinate system (which defines the robot's control axes) and the additional axis coordinate system (which defines the additional axes). This increases the processing load on the NCU and may even reduce the machining performance of the machine tool and the robot.

[0011] This disclosure provides a numerical control device and a numerical control system that can generate instructions for a robot and a motion device that moves the robot with a small processing load.

[0012] Methods for solving problems

[0013] One aspect of this disclosure provides a numerical control device that controls the movement of a machine tool according to a numerical control program, and generates robot instructions for moving robot control axes and additional axis instructions for moving additional axes of the mobile device for a robot control device that controls the movement of a robot and a mobile device that moves the robot, and inputs these instructions into the robot control device. The numerical control device includes: a coordinate value management unit that obtains the coordinate values ​​of the robot control axes and the additional axes obtained from the robot control device as robot reference coordinate values ​​and additional axis reference coordinate values, respectively; and an instruction generation unit that generates the robot instructions and the additional axis instructions based on the numerical control program, the robot reference coordinate values, and the additional axis reference coordinate values.

[0014] One aspect of this disclosure provides a numerical control system comprising: a numerical control device that controls the movement of a machine tool according to a numerical control program and generates robot commands for moving a control axis of a robot and additional axis commands for moving an additional axis of a moving device, the moving device causing the robot to move; and a robot control device capable of communicating with the numerical control device and controlling the movements of the robot and the moving device according to the robot commands and additional axis commands sent from the numerical control device, the robot control device comprising: a coordinate value control unit that acquires the coordinate values ​​according to a coordinate value acquisition request sent from the numerical control device. The numerical control unit receives the coordinate values ​​of the robot control axis and the coordinate values ​​of the additional axis from the robot control unit and sends them to the numerical control device; and a motion control unit controls the motion of the robot and the mobile device according to the robot instructions and the additional axis instructions. The numerical control device includes: a coordinate value management unit that obtains the coordinate values ​​of the robot control axis and the additional axis sent from the robot control unit as robot reference coordinate values ​​and additional axis reference coordinate values, respectively; and an instruction generation unit that generates the robot instructions and the additional axis instructions according to the numerical control program, the robot reference coordinate values, and the additional axis reference coordinate values.

[0015] Invention Effects

[0016] According to one aspect of this disclosure, the numerical control device includes a coordinate value management unit and an instruction generation unit. The coordinate value management unit obtains the coordinate values ​​of the robot control axis and the auxiliary axis of the moving device, respectively, sent from the robot control device, as the robot reference coordinate value and the auxiliary axis reference coordinate value. Furthermore, the instruction generation unit generates robot instructions for moving the robot control axis and auxiliary axis instructions for moving the auxiliary axis based on the numerical control program and the robot reference coordinate values ​​and auxiliary axis reference coordinate values ​​obtained from the robot control device, and inputs these robot instructions and auxiliary axis instructions into the robot control device. According to one aspect of this disclosure, since the numerical control device obtains the robot reference coordinate values ​​and auxiliary axis reference coordinate values ​​from the robot control device, which directly controls the robot and the moving device that moves the robot itself, and generates robot instructions and auxiliary axis instructions based on these reference coordinate values ​​and the numerical control program, the numerical control device generates robot instructions and auxiliary axis instructions without performing coordinate transformation processing between the coordinate system defining the robot control axis coordinate values ​​and the coordinate system defining the auxiliary axis coordinate values. Therefore, robot instructions and auxiliary axis instructions can be generated with a smaller processing load. Attached Figure Description

[0017] Figure 1 This is a schematic diagram of a numerical control system according to one embodiment of the present disclosure.

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

[0019] Figure 3 This is a flowchart illustrating the specific steps involved in generating and processing the request to obtain coordinate values.

[0020] Figure 4 This is a flowchart showing the specific steps involved in updating coordinate values.

[0021] Figure 5 This is an example of a robot using a program.

[0022] Figure 6 It means according to Figure 5 The illustrated timing diagram shows the flow of signals and information between the numerical control device and the robot control device when the robot is programmed to operate. Detailed Implementation

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

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

[0025] The numerical control system 1 includes a machine tool 2, a numerical control unit (CNC) 5 that controls the machine tool 2, a robot 3 located near the machine tool 2, a motion device 4 that moves the robot 3, and a robot control unit 6 communicatively connected to the CNC 5. The CNC 5 controls the movement of the machine tool 2 according to a predetermined numerical control program, and generates instructions for controlling the movements of the robot 3 and the motion device 4 for the robot control unit 6, and sends these instructions to the robot control unit 6. The robot control unit 6 controls the movements of the robot 3 and the motion device 4 according to the instructions sent from the CNC 5.

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

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

[0028] The mobile device 4 includes: a base 41 disposed on a floor surface F; a slider 42 slidably disposed relative to the base 41 in a horizontal direction; and an actuator (not shown) that moves the slider 42 relative to the base 41. The base 41 slidably supports the slider 42 along a travel axis parallel to the horizontal plane. A robot 3 is fixed to the slider 42. The mobile device 4 operates under the control of a robot control device 6, moving the robot 3 by moving the travel axis of the slider 42. Furthermore, in this embodiment, a mobile device 4 with a single travel axis as an additional axis is described as an example, i.e., a mobile device 4 in which the slider 42 and the robot 3 can only move along one travel axis, but this disclosure is not limited thereto. The number of travel axes can be two or more, or a rotation axis can be used as an additional axis.

[0029] The numerical control device 5 and the robot control device 6 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) used to temporarily store the required data after the processing unit executes the program; an operation unit such as a keyboard for the operator to perform various operations; and a display unit such as a display showing various information to the operator. These robot control devices 6 and numerical control devices 5 can, for example, send and receive various signals to each other via Ethernet (registered trademark).

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

[0031] The numerical control device 5 generates various instructions for controlling the actions of the robot 3 and the tool 32 and the moving device 4 (hereinafter collectively referred to as "robot 3, etc.") mounted on the robot 3, according to the steps described below, and sends the generated instructions to the robot control device 6. Based on the instructions sent from the numerical control device 5, the robot control device 6 generates robot control signals for controlling the actions of the robot 3, or I / O signals for controlling the actions of the tool 32, or moving device control signals for controlling the actions of the moving device 4, according to the steps described below, and inputs these generated signals to the robot 3, etc. Thus, the robot control device 6 controls the actions of the robot 3, etc.

[0032] First, the detailed structure of the numerical control device 5 will be explained. For example... Figure 2As shown, in the numerical control device 5, various functions such as the machine tool control module 50, which serves as the control system for the machine tool 2, the robot control module 51, which serves as the control system for the robot 3, and the storage unit 52 are realized through the above-described hardware structure.

[0033] The storage unit 52 stores, for example, multiple numerical control programs created based on operator operations. More specifically, the storage unit 52 primarily stores numerical control programs for machine tools (hereinafter referred to as "machine tool programs") consisting of multiple instruction blocks for machine tool 2, or numerical control programs for robots (hereinafter referred to as "robot programs") consisting of multiple instruction blocks for robot 3, etc. These machine tool programs and robot programs are written in a common programming language (e.g., G-code or M-code).

[0034] The machine tool program is based on a machine coordinate system with its origin at a reference point determined at or near any location on or near the machine tool 2. That is, in the machine tool program, the position and orientation of the control points of the machine tool 2 are described by coordinate values ​​defined by the machine coordinate system.

[0035] The robot program is based on a robot coordinate system and a travel axis coordinate system, which are different from the machine tool coordinate system. That is, in the robot program, the position and posture of the control points of robot 3 (e.g., the fore-end 31 of robot 3's arm), in other words, the position of each control axis of robot 3, is described by coordinate values ​​defined by the robot coordinate system. Furthermore, in the robot program, the position of the travel axis of the moving device 4 is described by coordinate values ​​defined by the travel axis coordinate system.

[0036] The robot coordinate system is a coordinate system with its origin at a reference point determined at any position on or near the robot 3. Furthermore, the following describes cases where the robot coordinate system differs from the machine tool coordinate system, but is not limited to this. It is also possible to make the robot coordinate system consistent with the machine tool coordinate system. In other words, it is also possible to make the origin and coordinate axis directions of the robot coordinate system consistent with the origin and coordinate axis directions of the machine tool coordinate system.

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

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

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

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

[0041] In the robot program, the coordinate form of the robot coordinate system can be switched between orthogonal coordinate form and individual axis coordinate form using G-codes "G68.8" and "G68.9", which serve as coordinate form switching instructions. More specifically, by inputting G-code "G68.8", the coordinate form of the robot coordinate system is set to individual axis coordinate form; by inputting G-code "G68.9", the coordinate form of the robot coordinate system is set to orthogonal coordinate form. The G-codes "G68.8" and "G68.9" used to set these coordinate forms are modal. Therefore, after setting the coordinate form to individual axis coordinate form or orthogonal coordinate form using these G-codes, the coordinate form is maintained until these G-codes are used to change the coordinate form again. Furthermore, in this embodiment, if the robot program does not include G-codes for setting these robot coordinate system coordinate forms, the coordinate form is automatically set to orthogonal coordinate form, but this is not a limitation.

[0042] The travel axis coordinate system is a coordinate system with the origin at a reference point determined at any position on or near the moving device 4, and having the same number of dimensions as the number of travel axes. In this embodiment, the case where there is only one travel axis, i.e., the travel axis coordinate system is one-dimensional, is described, but it is not limited to this. Furthermore, in this embodiment, the case where the travel axis is parallel to the Y-axis of the orthogonal coordinate form described above is described, but it is not limited to this. That is, in this embodiment, the position of the travel axis of the moving device 4 is represented by a single coordinate value (Y2), and the coordinate value of the robot's orthogonal coordinate form Y-axis changes due to the movement of the travel axis, but it is not limited to this.

[0043] In the robot program, the coordinate system can be switched between the travel axis coordinate system and the robot coordinate system using G-codes "G17.8" and "G17.9" ​​as coordinate system switching commands. More specifically, by inputting G-code "G17.9", the coordinate system is set to the travel axis coordinate system, and by inputting G-code "G17.8", the coordinate system is set to the robot coordinate system. The G-codes "G17.8" and "G17.9" ​​used to set these coordinate systems are modal. Therefore, after setting the coordinate system to the robot coordinate system or the travel axis coordinate system using these G-codes, the coordinate system is maintained until the coordinate system is changed again using these G-codes. In addition, in this embodiment, when the robot program does not include G-codes for setting these coordinate systems, the coordinate system is automatically set to the robot coordinate system, but this is not a limitation.

[0044] The machine tool control module 50 generates machine tool control signals, according to the machine tool program, to control the actions of the machine tool 2, and inputs these signals to an actuator (not shown) on the machine tool 2. More specifically, the machine tool control module 50 generates the machine tool control signals by reading the machine tool program stored in the storage unit 52 and parsing the instruction categories based on the numerical control program. The machine tool 2 operates according to the machine tool control signals sent from the machine tool control module 50 to process a workpiece (not shown).

[0045] The robot control module 51 generates various instructions for controlling the actions of the robot 3, etc., according to the robot program, and sends them to the robot control device 6. More specifically, the robot control module 51 includes a program input unit 53, an input parsing unit 54, a coordinate value management unit 55, an instruction generation unit 56, and a data transceiver unit 59.

[0046] The program input unit 53 reads the robot program from the storage unit 52 and inputs it sequentially into the input parsing unit 54.

[0047] For each instruction block, the input parsing unit 54 parses the instruction type based on the robot program input from the program input unit 53, and sends the parsing result to the coordinate value management unit 55 and the instruction generation unit 56.

[0048] The coordinate value management unit 55 has a storage medium, namely the coordinate value memory 57, which is used to manage the current coordinate values ​​of the six control axes of the robot 3, namely the current coordinate values ​​of the robot, and the current coordinate values ​​of the travel axes of the moving device 4, namely the current coordinate values ​​of the travel axes.

[0049] like Figure 2 As shown, the coordinate value memory 57 includes: a robot coordinate value storage area 57a, which stores the current coordinate value of the robot; and a travel axis coordinate value storage area 57b, which stores the current coordinate value of the travel axis.

[0050] As described above, the positions of the six control axes of robot 3 are defined in the robot coordinate system. Furthermore, in this embodiment, the robot coordinate system can switch between orthogonal coordinate form and axis-specific coordinate form. The positions of the six control axes of robot 3 are represented by seven coordinate values ​​(X, Y, Z, A, B, C, P) in orthogonal coordinate form and by six coordinate values ​​(J1, J2, J3, J4, J5, J6) in axis-specific coordinate form. In the robot coordinate value storage area 57a of the coordinate value memory 57, when the coordinate form set by the robot program, i.e., the specified coordinate form, is orthogonal coordinate form, the seven coordinate values ​​(X, Y, Z, A, B, C, P) are stored as the current robot coordinate values; when the specified coordinate form is axis-specific coordinate form, the six coordinate values ​​(J1, J2, J3, J4, J5, J6) are stored as the current robot coordinate values. The coordinate values ​​stored in the robot coordinate value storage area 57a are appropriately updated by the coordinate value management unit 55 and the instruction generation unit 56 according to the steps described later, so as to always maintain the latest coordinate values.

[0051] As described above, in a one-dimensional travel axis coordinate system, the position of the travel axis of the moving device 4 is represented by a single coordinate value (Y2). In the travel axis coordinate value storage area 57b of the coordinate value memory 57, this single coordinate value (Y2) is stored as the current coordinate value of the travel axis. The coordinate value stored in the travel axis coordinate value storage area 57b is appropriately updated by the coordinate value management unit 55 and the instruction generation unit 56 according to the steps described later, so as to always maintain the latest coordinate value.

[0052] See below for reference. Figure 3As explained below, the coordinate value management unit 55 determines whether to update the current coordinate value stored in the coordinate value memory 57 based on the parsing result sent from the input parsing unit 54. If it determines that the current coordinate value needs to be updated, it generates a coordinate value retrieval request to obtain the current coordinate value from the robot control device 6 and writes the coordinate value retrieval request to the data transceiver unit 59. As explained later, the robot control device 6 obtains the coordinate values ​​of the control axis of the robot 3 and the travel axis of the moving device 4 based on the coordinate value retrieval request received from the numerical control device 5, and sends these coordinate values ​​to the numerical control device 5.

[0053] Additionally, as referred to below Figure 4 As explained, the coordinate value management unit 55 obtains the coordinate values ​​of the control axis of the robot 3 and the travel axis of the moving device 4 sent from the robot control device 6 as robot reference coordinate values ​​and travel axis reference coordinate values, and updates the current coordinate values ​​stored in the coordinate value memory 57 using these robot reference coordinate values ​​and travel axis reference coordinate values.

[0054] Figure 3 This is a flowchart outlining the specific steps involved in generating and processing a coordinate value acquisition request. When the robot program's instruction is a coordinate system switching instruction (G17.8 or G17.9) or a coordinate form switching instruction (G68.8 or G68.9) (steps ST1, ST3, ST7, ST8), the coordinate value management unit 55 executes... Figure 3 The various processes shown (steps ST2, ST4 to ST6).

[0055] In step ST1, the coordinate value management unit 55 determines whether the instruction based on the robot program is a coordinate system switching instruction to switch the coordinate system to the travel axis coordinate system (i.e., G-code "G17.9"). If the determination result in step ST1 is "no", the coordinate value management unit 55 proceeds to step ST3.

[0056] If the determination result in step ST1 is "yes", the coordinate value management unit 55 determines that the current coordinate value stored in the travel axis coordinate value storage area 57b of the coordinate value memory 57 needs to be updated, and proceeds to step ST2. In step ST2, the coordinate value management unit 55 generates a travel axis coordinate value acquisition request to request the current coordinate value of the travel axis of the moving device 4 from the robot control device 6, and writes the travel axis coordinate value acquisition request to the data transceiver unit 59, thus ending the process. Figure 3 The processing is shown below. Therefore, the data transceiver unit 59 sends a request to the robot control device 6 to obtain the travel axis coordinate values.

[0057] In step ST3, the coordinate value management unit 55 determines whether the instruction based on the robot program is a coordinate system switching instruction (i.e., G-code "G17.8") that switches the coordinate system to the robot coordinate system. If the determination result in step ST3 is "no", the coordinate value management unit 55 proceeds to step ST7.

[0058] If the determination result in step ST3 is "yes", the coordinate value management unit 55 determines that the current coordinate value stored in the robot coordinate value storage area 57a of the coordinate value memory 57 needs to be updated, and proceeds to step ST4. In step ST4, the coordinate value management unit 55 determines whether the current specified coordinate form is an orthogonal coordinate form.

[0059] If the determination result in step ST4 is "yes", the coordinate value management unit 55 proceeds to step ST5. In step ST5, the coordinate value management unit 55 generates an orthogonal coordinate value acquisition request for requesting the current control axis coordinates of robot 3 in orthogonal coordinate form from robot control device 6, and writes the orthogonal coordinate value acquisition request into data transceiver unit 59, thus ending the process. Figure 3 The processing is shown below. Therefore, the data transceiver unit 59 sends a request to the robot control device 6 to obtain orthogonal coordinate values.

[0060] If the determination result in step ST4 is "No", the coordinate value management unit 55 proceeds to step ST6. In step ST6, the coordinate value management unit 55 generates a request for obtaining the coordinate values ​​of the current control axes of the robot 3 in each axis coordinate form from the robot control device 6, and writes the request for obtaining the coordinate values ​​of each axis coordinate to the data transceiver unit 59, thus ending the process. Figure 3 The processing is shown below. Therefore, the data transceiver unit 59 sends a request to the robot control device 6 to obtain the coordinate values ​​of each axis.

[0061] In step ST7, the coordinate value management unit 55 determines whether the instruction based on the robot program is a coordinate form switching instruction (i.e., G code "G68.9") that switches the robot coordinate system to an orthogonal coordinate system. If the determination result in step ST7 is "no", the coordinate value management unit 55 proceeds to step ST8.

[0062] If the determination result in step ST7 is "yes", the coordinate value management unit 55 determines that the current coordinate value stored in the robot coordinate value storage area 57a of the coordinate value memory 57 needs to be updated, and proceeds to step ST5. Therefore, the data transceiver unit 59 sends an orthogonal coordinate value acquisition request to the robot control device 6.

[0063] In step ST8, the coordinate value management unit 55 determines whether the instruction based on the robot program is a coordinate form switching instruction (i.e., G-code "G68.8") that switches the robot coordinate system to the coordinate form of each axis. If the determination result in step ST8 is "no", the coordinate value management unit 55 ends. Figure 3 The processing shown.

[0064] If the determination result in step ST8 is "yes", the coordinate value management unit 55 determines that the current coordinate values ​​stored in the robot coordinate value storage area 57a of the coordinate value memory 57 need to be updated, and proceeds to step ST6. Therefore, the data transceiver unit 59 sends a request to the robot control device 6 to obtain the coordinate values ​​of each axis.

[0065] The coordinate value management unit 55 determines whether the current coordinate values ​​stored in the coordinate value memory 57 need to be updated through the above steps. If it determines that the current coordinate values ​​need to be updated, it sends a request to the robot control device 6 to obtain the travel axis coordinate values, the orthogonal coordinate values, and the coordinate values ​​of each axis. As will be explained later, the robot control device 6 obtains the coordinate values ​​of the travel axis of the mobile device 4 and the coordinate values ​​of the control axis of the robot 3 based on the received coordinate value requests, and sends these coordinate values ​​to the numerical control device 5.

[0066] Figure 4 This is a flowchart illustrating the specific steps involved in the coordinate value update process. After sending a coordinate value acquisition request to the robot control device 6 through the aforementioned steps, the coordinate value management unit 55 executes... Figure 4 The coordinate values ​​shown are updated.

[0067] In step ST11, the coordinate value management unit 55 determines whether coordinate values ​​have been received from the robot control device 6. In step ST11, the coordinate value management unit 55 waits until it receives coordinate values ​​sent from the robot control device 6 based on a previously sent coordinate value acquisition request. If coordinate values ​​have been received (if the determination result of step ST11 is "yes"), it proceeds to step ST12. In step ST12, the coordinate value management unit 55 determines whether the coordinate values ​​received from the robot control device 6 are coordinate values ​​for a travel axis.

[0068] If the determination result of the coordinate value management unit 55 in step ST12 is "yes", that is, if the received coordinate value is the coordinate value of the travel axis of the moving device 4, the received coordinate value is obtained as the reference coordinate value of the travel axis, and the process proceeds to step ST13. In step ST13, the coordinate value management unit 55 updates the current coordinate value stored in the travel axis coordinate value storage area 57b of the coordinate value memory 57 according to the obtained reference coordinate value of the travel axis, and the process ends. Figure 4The processing shown.

[0069] If the determination result of the coordinate value management unit 55 in step ST12 is "no," that is, if the received coordinate value is the coordinate value of the control axis of robot 3, the received coordinate value is obtained as the robot reference coordinate value, and the process proceeds to step ST14. In step ST14, the coordinate value management unit 55 updates the current coordinate value stored in the robot coordinate value storage area 57a of the coordinate value memory 57 according to the obtained robot reference coordinate value, and the process ends. Figure 4 The processing shown.

[0070] Coordinate value management department 55 through reference Figure 4 The steps described are as follows: obtain the coordinate values ​​sent from the robot control device 6 as reference coordinate values, and update the current coordinate values ​​stored in the coordinate value memory 57 according to the reference coordinate values.

[0071] return Figure 2 The instruction generation unit 56 generates robot instructions for moving the control axis of robot 3 and driving axis instructions for moving the driving axis of mobile device 4 based on the current coordinate values ​​stored in the coordinate value memory 57 and the parsing results of the robot program sent from the input parsing unit 54. The generated robot instructions and driving axis instructions are written into the data transceiver unit 59 and sent to the robot control device 6.

[0072] More specifically, when the coordinate system is set to the robot coordinate system and the coordinate values ​​change based on the instruction type of the robot program (specifically, for example, the G-code is "G00" equivalent to positioning (fast forward), or "G01" equivalent to straight-line storage, etc.), the instruction generation unit 56 generates robot instructions through the following steps. In this case, the instruction generation unit 56 calculates the endpoint and speed of the robot 3's control axis based on the robot program, using the current coordinate value stored in the robot coordinate value storage area 57a of the coordinate value memory 57 as the starting point of the robot 3's control axis, under a specified coordinate form, and generates robot instructions containing information related to these specified coordinate forms, endpoints, and speeds, and writes them to the data transceiver unit 59. Furthermore, after calculating the endpoint coordinate value of the robot 3's control axis as described above, the instruction generation unit 56 updates the current coordinate value stored in the robot coordinate value storage area 57a of the coordinate value memory 57 according to the endpoint coordinate value calculated based on the robot program.

[0073] Furthermore, when the coordinate system is set to the travel axis coordinate system and the coordinate values ​​change based on the command type of the robot program (specifically, for example, the G-code is equivalent to "G00" for positioning (fast forward) or "G01" for straight-line storage), the command generation unit 56 generates travel axis commands through the following steps. In this case, the command generation unit 56 calculates the endpoint and speed of the travel axis of the mobile device 4 based on the robot program, taking the current coordinate value stored in the travel axis coordinate value storage area 57b of the coordinate value memory 57 as the starting point of the travel axis of the mobile device 4, generates travel axis commands containing information related to these endpoints and speeds, and writes them to the data transceiver unit 59. Additionally, after calculating the endpoint coordinate value of the travel axis of the mobile device 4 as described above, the command generation unit 56 updates the current coordinate value stored in the travel axis coordinate value storage area 57b of the coordinate value memory 57 according to the endpoint coordinate value calculated based on the robot program.

[0074] When the command generation unit 56 writes robot commands and travel axis commands, the data transceiver unit 59 sends these robot commands and travel axis commands to the data transceiver unit 69 of the robot control device 6. Additionally, the data transceiver unit 59, according to a reference... Figure 3 The steps described are as follows: when the coordinate value management unit 55 writes the travel axis coordinate value acquisition request, the orthogonal coordinate value acquisition request, and the each axis coordinate value acquisition request, these travel axis coordinate value acquisition requests, orthogonal coordinate value acquisition requests, and each axis coordinate value acquisition requests are sent to the data transceiver unit 69 of the robot control device 6.

[0075] When the data transceiver unit 59 receives the coordinate values ​​sent from the data transceiver unit 69 of the robot control device 6 according to the steps described below, it sends the received coordinate values ​​to the coordinate value management unit 55.

[0076] Next, refer to Figure 2 The structure of robot control device 6 will be described. For example... Figure 2 As shown, in the robot control device 6, the above-mentioned hardware structure realizes various functions such as the input parsing unit 60, the coordinate value control unit 61, the robot program generation unit 62, the motion control unit 63, and the data transceiver unit 69.

[0077] The input parsing unit 60 parses the instructions and requests sent from the numerical control device 5 via the data transceiver unit 69, and sends the parsing results to the coordinate value control unit 61 and the robot program generation unit 62.

[0078] More specifically, when robot commands or travel axis commands are input from the data transceiver unit 69, the input parsing unit 60 sends these robot commands and travel axis commands to the robot program generation unit 62. Additionally, when travel axis coordinate value acquisition requests, orthogonal coordinate value acquisition requests, and individual axis coordinate value acquisition requests are input from the data transceiver unit 69, the input parsing unit 60 sends these coordinate value acquisition requests to the coordinate value control unit 61.

[0079] The coordinate control unit 61 obtains the coordinate values ​​of the current control axis of the robot 3 and the coordinate values ​​of the current travel axis of the moving device 4 according to the coordinate value acquisition request sent from the input parsing unit 60, and writes the obtained coordinate values ​​into the data transceiver unit 69.

[0080] More specifically, when the coordinate value control unit 61 receives a request to obtain the travel axis coordinate value from the input parsing unit 60, it obtains the current travel axis coordinate value of the moving device 4 and writes the obtained coordinate value into the data transceiver unit 69. When the coordinate value control unit 61 receives a request to obtain orthogonal coordinate values ​​from the input parsing unit 60, it obtains the current control axis coordinate value of the robot 3 in orthogonal coordinate form and writes the obtained coordinate value into the data transceiver unit 69. Furthermore, when the coordinate value control unit 61 receives a request to obtain coordinate values ​​for each axis from the input parsing unit 60, it obtains the current control axis coordinate value of the robot 3 in each axis coordinate form and writes the obtained coordinate value into the data transceiver unit 69.

[0081] The robot program generation unit 62 generates a robot program corresponding to the robot command or travel axis command sent from the input parsing unit 60. More specifically, when a robot command is input from the input parsing unit 60, the robot program generation unit 62 appends the robot command corresponding to that robot command to the robot program stored in a storage unit (not shown). Similarly, when a travel axis command is input from the input parsing unit 60, the robot program generation unit 62 appends the travel axis command corresponding to that travel axis command to the aforementioned robot program.

[0082] The motion control unit 63 initiates the robot program generated by the robot program generation unit 62 and sequentially executes the robot commands and travel axis commands described in the initiated robot program, thereby controlling the movements of the robot 3 and the mobile device 4. More specifically, the motion control unit 63 calculates the target position of each control axis of the robot 3 by executing the robot commands, and performs feedback control on each servo motor of the robot 3 in a manner that achieves the calculated target position, thereby generating robot control signals for the robot 3 and inputting them into the servo motors of the robot 3. In addition, the motion control unit 63 calculates the target position of the travel axis of the mobile device 4 by executing the travel axis commands, and performs feedback control on the actuator of the mobile device 4 in a manner that achieves the calculated target position, thereby generating travel axis control signals for the mobile device 4 and inputting them into the actuator of the mobile device 4.

[0083] When the data transceiver unit 69 receives robot commands, travel axis commands, travel axis coordinate value acquisition requests, orthogonal coordinate value acquisition requests, and each axis coordinate value acquisition requests sent from the data transceiver unit 59 of the numerical control device 5, it sends the received commands and requests to the input parsing unit 60. Furthermore, when the coordinate value control unit 61 writes coordinate values ​​according to the above steps, the data transceiver unit 69 sends the written coordinate values ​​to the data transceiver unit 59 of the numerical control device 5.

[0084] Next, refer to Figure 5 and Figure 6 The flow of various signals and information in the numerical control system 1 constructed as described above will be explained.

[0085] Figure 5 This is an example of a robot using a program.

[0086] Figure 6 It means based on Figure 5 The illustrated timing diagram shows the flow of signals and information between the numerical control device 5 and the robot control device 6 when the robot is programmed to operate.

[0087] First, in the program block indicated by serial number "N10", the instruction "G68.8" is input to the coordinate value management unit 55 of the numerical control device 5. This sets the specified coordinate form of the coordinate system in the robot control module 51 of the numerical control device 5 to the coordinate form of each axis. Next, in the program blocks indicated by serial numbers "N11" to "N19", in the instruction generation unit 56 of the numerical control device 5, with the coordinate system set to the robot coordinate system, the instruction "G00J1_J2_J3_J4_J5_J6" based on the coordinate form of each axis is input. Additionally, the underlined portion of the instruction contains the coordinate values ​​of the endpoints of the control axes of the robot 3. The instruction generation unit 56 generates robot instructions based on the current coordinate values ​​stored in the robot coordinate value storage area 57a of the coordinate value memory 57 and the input instructions, and sends them to the robot control device 6. The robot control device 6 controls the actions of the robot 3 based on the received robot instructions.

[0088] Next, in the program block indicated by serial number "N20", the instruction "G17.9" ​​is input to the coordinate value management unit 55 of the numerical control device 5. As a result, the coordinate system in the robot control module 51 of the numerical control device 5 switches from the robot coordinate system up to this point to the travel axis coordinate system. Furthermore, the coordinate value management unit 55 switches the coordinate system in this program block and sends a travel axis coordinate value acquisition request to the coordinate value control unit 61 of the robot control device 6. Upon receiving the travel axis coordinate value acquisition request, the coordinate value control unit 61 of the robot control device 6 acquires the current travel axis coordinate value (Y2) of the moving device 4 and sends this coordinate value to the coordinate value management unit 55 of the numerical control device 5. Additionally, the coordinate value management unit 55 of the numerical control device 5 acquires the coordinate value sent from the robot control device 6 as the travel axis reference coordinate value and updates the current coordinate value stored in the travel axis coordinate value storage area 57b of the coordinate value memory 57 based on this travel axis reference coordinate value.

[0089] Next, in the program block indicated by serial number "N21", in the instruction generation unit 56 of the numerical control device 5, with the coordinate system set to the travel axis coordinate system, the instruction "G01 Y2_F_" based on the travel axis coordinate system is input. Additionally, the underlined portion of the instruction contains the coordinate values ​​of the endpoint of the travel axis of the mobile device 4 and its velocity value. The instruction generation unit 56 generates a travel axis instruction based on the current coordinate values ​​stored in the travel axis coordinate value storage area 57b of the coordinate value memory 57 and the input instruction, and sends it to the robot control device 6. The robot control device 6 controls the movement of the mobile device 4 based on the received travel axis instruction.

[0090] Next, in the program blocks indicated by serial numbers "N22" and "N23", commands "G17.8" and "G68.9" are input to the coordinate value management unit 55 of the numerical control device 5. As a result, the coordinate system in the robot control module 51 of the numerical control device 5 switches from the travel axis coordinate system to the robot coordinate system, and the specified coordinate form is set to orthogonal coordinate form. Furthermore, based on the switch of coordinate system and specified coordinate form in these program blocks, the coordinate value management unit 55 sends an orthogonal coordinate value acquisition request to the coordinate value control unit 61 of the robot control device 6. Upon receiving the orthogonal coordinate value acquisition request, the coordinate value control unit 61 of the robot control device 6 acquires the coordinate values ​​(X, Y, Z, A, B, C) of the control axis of the robot 3 after the travel axis movement in serial number "N21" in orthogonal coordinate form, and sends these coordinate values ​​to the coordinate value management unit 55 of the numerical control device 5. In addition, the coordinate value management unit 55 of the numerical control device 5 obtains the coordinate values ​​sent from the robot control device 6 as robot reference coordinate values, and updates the current coordinate values ​​stored in the robot coordinate value storage area 57a of the coordinate value memory 57 according to the robot reference coordinate values.

[0091] Next, in the program block indicated by serial number "N24", in the instruction generation unit 56 of the numerical control device 5, with the coordinate system set to the robot coordinate system, the instruction "G01 X_Y_Z_A_B_C_P_F_" based on orthogonal coordinates is input. Additionally, the underlined portion of the instruction contains the coordinate values ​​of the endpoint of the robot 3's control axis and its velocity value. The instruction generation unit 56 generates robot instructions based on the current coordinate values ​​stored in the robot coordinate value storage area 57a of the coordinate value memory 57 and the input instruction, and sends these instructions to the robot control device 6. The robot control device 6 controls the robot 3's movements based on the received robot instructions.

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

[0093] Symbol Explanation

[0094] 1 Numerical Control System

[0095] 2 machine tools

[0096] 3 robots

[0097] 4 mobile devices

[0098] 5. Numerical control device

[0099] 50 machine tool control module

[0100] 51 Robot Control Module

[0101] 52 Storage Unit

[0102] 53 Program Input Section

[0103] 54 Input Parsing Department

[0104] 55 Coordinate Value Management Department

[0105] 56 instruction generation department

[0106] 57 coordinate value memory

[0107] 57a Robot Coordinate Value Storage Area

[0108] 57b Driving Axis Coordinate Value Storage Area

[0109] 59 Data Transceiver Department

[0110] 6 Robot Control Device

[0111] 60 Input Parsing Section

[0112] 61 Coordinate Value Control Department

[0113] 62 Robot Program Generation Department

[0114] 63 Motion Control Department

[0115] 69. Data Transceiver Department.

Claims

1. A numerical control device that controls the movement of a machine tool according to a numerical control program, and generates robot commands for moving robot control axes and travel axis commands for moving travel axes of the mobile device for controlling the movement of a robot and a moving device that moves the robot, and inputs these commands into the robot control device, characterized in that, The numerical control device includes: The coordinate value management unit manages the current coordinate values ​​of the robot control axes (i.e., the current robot coordinate values) and the current coordinate values ​​of the travel axes (i.e., the current travel axis coordinate values) by using a coordinate value memory; and The instruction generation unit generates the robot instructions and the travel axis instructions based on the numerical control program, the robot's current coordinate values, and the travel axis's current coordinate values. The coordinate values ​​of the travel axis are defined in a travel axis coordinate system different from the robot coordinate system, wherein the coordinate values ​​of the robot control axis are defined in the robot coordinate system. The coordinate value management unit generates a coordinate value acquisition request based on the parsing result of the numerical control program, and sends it to the robot control device via the data transceiver unit. Based on the coordinate value acquisition request, the coordinate values ​​of the robot control axis and the travel axis sent from the robot control device are obtained as robot reference coordinate values ​​and travel axis reference coordinate values, respectively. The robot current coordinate values ​​and the travel axis current coordinate values ​​stored in the coordinate value memory are updated using the robot reference coordinate values ​​and the travel axis reference coordinate values.

2. The numerical control device according to claim 1, characterized in that, The coordinate value management unit obtains the robot reference coordinate value or the travel axis reference coordinate value from the robot control device according to the coordinate system switching instruction in the numerical control program.

3. A numerical control system, comprising: A numerical control device controls the machine tool's movements according to a numerical control program, and generates robot commands for moving the control axes of the robot and travel axis commands for moving the travel axes of the moving device, which causes the robot to move. as well as A robot control device is capable of communicating with the numerical control device and controlling the movements of the robot and the mobile device based on robot commands and travel axis commands sent from the numerical control device. Its features are, The robot control device includes: A coordinate value control unit, based on a coordinate value acquisition request sent from the numerical control device, acquires the coordinate values ​​of the robot control axis and the travel axis, and sends them to the numerical control device; and The motion control unit controls the movements of the robot and the mobile device based on the robot commands and the travel axis commands. The numerical control device includes: The coordinate value management unit manages the current coordinate values ​​of the robot control axes (i.e., the current robot coordinate values) and the current coordinate values ​​of the travel axes (i.e., the current travel axis coordinate values) by using a coordinate value memory; and The instruction generation unit generates the robot instructions and the travel axis instructions based on the numerical control program, the robot's current coordinate values, and the travel axis's current coordinate values. The coordinate values ​​of the travel axis are defined in a travel axis coordinate system different from the robot coordinate system, wherein the coordinate values ​​of the robot control axis are defined in the robot coordinate system. The coordinate value management unit generates the coordinate value acquisition request based on the parsing result of the numerical control program, and sends it to the robot control device via the data transceiver unit. Based on the coordinate value acquisition request, the coordinate values ​​of the robot control axis and the travel axis sent from the robot control device are obtained as the robot reference coordinate values ​​and the travel axis reference coordinate values, respectively. The robot reference coordinate values ​​and the travel axis reference coordinate values ​​are used to update the current robot coordinate values ​​and the current travel axis coordinate values ​​stored in the coordinate value memory.

4. The numerical control system according to claim 3, characterized in that, The coordinate value management unit generates the coordinate value acquisition request according to the coordinate system switching instruction in the numerical control program and sends it to the robot control device.

Citation Information

Patent Citations

  • Numerical control device and numerical control method

    JP6647472B1

  • Universal bridge controller for machine language interpretive collaborative robot and machine interface

    US20200364173A1